From 6fae5ea99658178804ee0c5a7280b0287718c9e8 Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Fri, 2 Oct 2026 20:59:53 +0000 Subject: [PATCH] Regenerate client from commit 1c94dd3 of spec repo --- .generator/schemas/v2/openapi.yaml | 187682 ++++++++------- .../v2/experiments/ArchiveExposureSQLModel.ts | 28 + examples/v2/experiments/CancelExperiment.ts | 38 + examples/v2/experiments/ConcludeExperiment.ts | 36 + examples/v2/experiments/CreateExperiment.ts | 34 + .../CreateExperimentMetricGroup.ts | 47 + ...eateExperimentMetricGroupFromCollection.ts | 36 + .../v2/experiments/CreateExposureSQLModel.ts | 53 + examples/v2/experiments/CreateMetric.ts | 46 + .../v2/experiments/CreateMetricCollection.ts | 34 + .../v2/experiments/CreateMetricSQLModel.ts | 60 + examples/v2/experiments/CreateSubjectType.ts | 36 + examples/v2/experiments/DeleteExperiment.ts | 27 + .../DeleteExperimentMetricGroup.ts | 35 + .../DeleteExperiment_2793607571.ts | 30 + examples/v2/experiments/DeleteMetric.ts | 31 + .../v2/experiments/DeleteMetricCollection.ts | 31 + examples/v2/experiments/DeleteSubjectType.ts | 27 + .../DeleteSubjectType_3300790820.ts | 31 + examples/v2/experiments/GetExperiment.ts | 30 + .../experiments/GetExperimentAnalysisPlan.ts | 30 + .../experiments/GetExperimentDiagnostics.ts | 30 + .../v2/experiments/GetExperimentProtocol.ts | 27 + .../v2/experiments/GetExperimentResults.ts | 27 + .../GetExperimentTrafficSummary.ts | 30 + .../v2/experiments/GetExposureSQLModel.ts | 27 + examples/v2/experiments/GetMetric.ts | 31 + .../v2/experiments/GetMetricCollection.ts | 31 + examples/v2/experiments/GetMetricSQLModel.ts | 27 + examples/v2/experiments/GetSubjectType.ts | 31 + .../experiments/ListExperimentMetricGroups.ts | 30 + .../v2/experiments/ListExperimentProtocols.ts | 23 + examples/v2/experiments/ListExperiments.ts | 23 + .../v2/experiments/ListExposureSQLModels.ts | 23 + .../v2/experiments/ListMetricCollections.ts | 23 + .../v2/experiments/ListMetricSQLModels.ts | 23 + examples/v2/experiments/ListMetrics.ts | 23 + examples/v2/experiments/ListSubjectTypes.ts | 23 + examples/v2/experiments/PatchExperiment.ts | 38 + examples/v2/experiments/PatchSubjectType.ts | 39 + .../experiments/RefreshExperimentResults.ts | 27 + .../RefreshExperimentResultsForOrg.ts | 23 + .../v2/experiments/SetDefaultSubjectType.ts | 27 + examples/v2/experiments/StartExperiment.ts | 31 + .../experiments/UnarchiveExposureSQLModel.ts | 28 + .../UpdateExperimentAnalysisPlanAttributes.ts | 39 + .../UpdateExperimentMetricGroup.ts | 44 + .../v2/experiments/UpdateExposureSQLModel.ts | 54 + examples/v2/experiments/UpdateMetric.ts | 40 + .../v2/experiments/UpdateMetricCollection.ts | 39 + .../v2/experiments/UpdateMetricSQLModel.ts | 61 + .../test-runner-data/manifest.json | 238 + ...its-feature-flag-allocations-response.json | 50 + ...m-collection-returns-created-response.json | 51 + ...metric-group-returns-created-response.json | 55 + ...e-experiment-returns-created-response.json | 33 + ...c-collection-returns-created-response.json | 33 + ...reate-metric-returns-created-response.json | 45 + ...subject-type-returns-created-response.json | 37 + ...ric-group-returns-no-content-response.json | 51 + ...xperiment-returns-no-content-response.json | 35 + ...ollection-returns-no-content-response.json | 35 + ...turns-the-metric-was-deleted-response.json | 35 + ...ject-type-returns-no-content-response.json | 35 + ...ent-analysis-plan-returns-ok-response.json | 35 + ...iment-diagnostics-returns-ok-response.json | 35 + .../get-experiment-returns-ok-response.json | 35 + ...t-traffic-summary-returns-ok-response.json | 35 + ...metric-collection-returns-ok-response.json | 35 + .../get-metric-returns-ok-response.json | 35 + .../get-subject-type-returns-ok-response.json | 35 + ...ent-metric-groups-returns-ok-response.json | 35 + ...eriment-protocols-returns-ok-response.json | 18 + .../list-experiments-returns-ok-response.json | 18 + ...posure-sql-models-returns-ok-response.json | 18 + ...etric-collections-returns-ok-response.json | 18 + ...metric-sql-models-returns-ok-response.json | 18 + .../list-metrics-returns-ok-response.json | 18 + ...ist-subject-types-returns-ok-response.json | 18 + .../patch-experiment-returns-ok-response.json | 50 + ...atch-subject-type-returns-ok-response.json | 50 + ...s-the-experiment-was-started-response.json | 35 + ...s-plan-attributes-returns-ok-response.json | 51 + ...ment-metric-group-returns-ok-response.json | 67 + ...metric-collection-returns-ok-response.json | 50 + .../update-metric-returns-ok-response.json | 51 + .../test-server-data/manifest.json | 5 + .../test-server-data/v2/experiments.json | 3263 + features/support/scenarios_model_mapping.ts | 564 + features/v2/experiments.feature | 1303 + features/v2/given.json | 104 + features/v2/undo.json | 356 + .../apis/ExperimentsApi.ts | 8607 + packages/datadog-api-client-v2/index.ts | 289 + .../models/EnvironmentAttributes.ts | 8 + .../models/ExperimentsAnalysisPlanV2DTO.ts | 54 + .../ExperimentsAnalysisPlanV2DTOData.ts | 73 + ...ODataAttributesConfidenceIntervalMethod.ts | 23 + ...perimentsAnalysisPlanV2MutationResponse.ts | 63 + ...sisPlanV2MutationResponseDataAttributes.ts | 149 + ...tionResponseDataAttributesBayesianPrior.ts | 62 + .../ExperimentsAnalysisPlanWriteV2Request.ts | 54 + ...perimentsAnalysisPlanWriteV2RequestData.ts | 72 + ...nalysisPlanWriteV2RequestDataAttributes.ts | 141 + ...iteV2RequestDataAttributesBayesianPrior.ts | 63 + ...mentsAnalysisPlanWriteV2RequestDataType.ts | 16 + .../ExperimentsCancelExperimentV2Request.ts | 54 + ...xperimentsCancelExperimentV2RequestData.ts | 72 + ...CancelExperimentV2RequestDataAttributes.ts | 54 + ...imentsCancelExperimentV2RequestDataType.ts | 16 + .../ExperimentsConcludeExperimentV2Request.ts | 54 + ...erimentsConcludeExperimentV2RequestData.ts | 72 + ...ncludeExperimentV2RequestDataAttributes.ts | 53 + ...entsConcludeExperimentV2RequestDataType.ts | 16 + ...ntsCreateExperimentMetricGroupV2Request.ts | 54 + ...reateExperimentMetricGroupV2RequestData.ts | 72 + ...imentMetricGroupV2RequestDataAttributes.ts | 70 + ...roupV2RequestDataAttributesMetricsItems.ts | 54 + .../ExperimentsCreateExperimentV2Request.ts | 54 + ...xperimentsCreateExperimentV2RequestData.ts | 72 + ...CreateExperimentV2RequestDataAttributes.ts | 218 + ...tDataAttributesDatadogFlagConfiguration.ts | 92 + ...dogFlagConfigurationTargetingRulesItems.ts | 54 + ...questDataAttributesDecisionMetricsItems.ts | 63 + ...2RequestDataAttributesRelatedLinksItems.ts | 69 + ...estDataAttributesSplitByPropertiesItems.ts | 70 + ...stDataAttributesStructuredMetadataItems.ts | 69 + ...equestDataAttributesTrafficExposureMode.ts | 16 + ...DataAttributesTrafficExposureStepsItems.ts | 64 + ...entV2RequestDataAttributesVariantsItems.ts | 97 + ...ttributesWarehouseExposureConfiguration.ts | 72 + ...erimentsCreateExposureSQLModelV2Request.ts | 54 + ...entsCreateExposureSQLModelV2RequestData.ts | 72 + ...lV2RequestDataAttributesItemsColumnType.ts | 27 + ...2RequestDataAttributesSubjectTypesItems.ts | 62 + ...erimentsCreateMetricCollectionV2Request.ts | 54 + ...entsCreateMetricCollectionV2RequestData.ts | 72 + ...MetricCollectionV2RequestDataAttributes.ts | 78 + ...tionV2RequestDataAttributesMetricsItems.ts | 54 + ...erimentsCreateMetricNumeratorAttributes.ts | 113 + ...rimentsCreateMetricPercentileAttributes.ts | 105 + ...xperimentsCreateMetricSQLModelV2Request.ts | 54 + ...imentsCreateMetricSQLModelV2RequestData.ts | 72 + ...delV2RequestDataAttributesMeasuresItems.ts | 87 + .../ExperimentsCreateMetricV2Request.ts | 54 + .../ExperimentsCreateMetricV2RequestData.ts | 64 + ...entsCreateMetricV2RequestDataAttributes.ts | 18 + ...icV2RequestDataAttributesDataSourceType.ts | 20 + ...ricV2RequestDataAttributesDesiredChange.ts | 18 + ...questDataAttributesNumeratorAggregation.ts | 19 + ...uestDataAttributesPercentileAggregation.ts | 19 + ...entileAggregationWarehouseMetricMeasure.ts | 54 + .../ExperimentsCreateSubjectTypeV2Request.ts | 54 + ...perimentsCreateSubjectTypeV2RequestData.ts | 72 + ...reateSubjectTypeV2RequestDataAttributes.ts | 77 + .../ExperimentsDatadogEntryPointFilter.ts | 82 + ...xperimentsDatadogMetricAggregationInput.ts | 212 + .../ExperimentsDatadogMetricMeasureInput.ts | 112 + ...imentsDatadogPercentileAggregationInput.ts | 82 + ...xperimentsDatadogPercentileMeasureInput.ts | 113 + .../ExperimentsExperimentDiagnosticsV2DTO.ts | 54 + ...perimentsExperimentDiagnosticsV2DTOData.ts | 73 + ...xperimentDiagnosticsV2DTODataAttributes.ts | 82 + ...ticsV2DTODataAttributesDiagnosticsItems.ts | 98 + ...AttributesDiagnosticsItemsSkippedReason.ts | 23 + ...DTODataAttributesDiagnosticsItemsStatus.ts | 25 + ...V2DTODataAttributesDiagnosticsItemsType.ts | 48 + ...entDiagnosticsV2DTODataAttributesResult.ts | 22 + ...mentDiagnosticsV2DTODataAttributesState.ts | 22 + ...mentsExperimentDiagnosticsV2DTODataType.ts | 16 + ...erimentsExperimentMetricGroupMutationV2.ts | 63 + ...entsExperimentMetricGroupMutationV2Data.ts | 73 + ...oupMutationV2DataAttributesMetricsItems.ts | 71 + ...erimentsExperimentMetricGroupV2DTOArray.ts | 54 + ...xperimentMetricGroupV2DTODataAttributes.ts | 77 + .../ExperimentsExperimentResultsV2MetaDTO.ts | 70 + .../models/ExperimentsExperimentV2DTO.ts | 54 + .../models/ExperimentsExperimentV2DTOData.ts | 73 + ...entV2DTODataAttributesConclusionOutcome.ts | 26 + ...DTODataAttributesSplitByPropertiesItems.ts | 81 + ...entsExperimentV2DTODataAttributesStatus.ts | 28 + ...erimentV2DTODataAttributesVariantsItems.ts | 97 + .../ExperimentsExperimentV2ListDTOArray.ts | 72 + .../ExperimentsExperimentV2ListDTOData.ts | 73 + ...imentsExperimentV2ListDTODataAttributes.ts | 232 + .../ExperimentsExposureSQLModelV2DTO.ts | 54 + .../ExperimentsExposureSQLModelV2DTOArray.ts | 72 + .../ExperimentsExposureSQLModelV2DTOData.ts | 73 + ...entsExposureSQLModelV2DTODataAttributes.ts | 154 + ...xposureSQLModelV2DTODataAttributesItems.ts | 100 + .../models/ExperimentsInlineCondition.ts | 72 + ...ExperimentsMeasureComparisonFilterInput.ts | 81 + ...tsMeasureComparisonFilterInputOperation.ts | 26 + .../ExperimentsMeasureNullFilterInput.ts | 80 + .../ExperimentsMeasureRangeFilterInput.ts | 81 + ...rimentsMeasureRangeFilterInputOperation.ts | 16 + .../ExperimentsMetricCollectionV2DTO.ts | 54 + .../ExperimentsMetricCollectionV2DTOArray.ts | 72 + .../ExperimentsMetricCollectionV2DTOData.ts | 73 + ...entsMetricCollectionV2DTODataAttributes.ts | 104 + ...llectionV2DTODataAttributesMetricsItems.ts | 60 + .../models/ExperimentsMetricPropertyFilter.ts | 76 + .../ExperimentsMetricSQLModelPropertyInput.ts | 88 + .../models/ExperimentsMetricSQLModelV2DTO.ts | 54 + .../ExperimentsMetricSQLModelV2DTOArray.ts | 72 + .../ExperimentsMetricSQLModelV2DTOData.ts | 73 + ...imentsMetricSQLModelV2DTODataAttributes.ts | 179 + ...QLModelV2DTODataAttributesMeasuresItems.ts | 93 + ...delV2DTODataAttributesSubjectTypesItems.ts | 68 + .../models/ExperimentsMetricV2DTO.ts | 54 + .../models/ExperimentsMetricV2DTOArray.ts | 72 + .../models/ExperimentsMetricV2DTOData.ts | 73 + .../ExperimentsMetricV2DTODataAttributes.ts | 182 + ...MetricV2DTODataAttributesDataSourceType.ts | 24 + ...sMetricV2DTODataAttributesDesiredChange.ts | 20 + ...entsMetricV2DTODataAttributesMetricType.ts | 22 + ...V2DTODataAttributesNumeratorAggregation.ts | 216 + ...2DTODataAttributesPercentileAggregation.ts | 88 + ...rcentileAggregationDatadogMetricMeasure.ts | 108 + ...entileAggregationWarehouseMetricMeasure.ts | 60 + ...imentsNullableDatadogMetricMeasureInput.ts | 112 + ...tsNullableDatadogPercentileMeasureInput.ts | 113 + ...entsNullableWarehouseMetricMeasureInput.ts | 54 + .../models/ExperimentsOffsetLinks.ts | 84 + .../models/ExperimentsOffsetMeta.ts | 53 + .../models/ExperimentsOffsetMetaPage.ts | 115 + ...entsPatchExperimentMetricGroupV2Request.ts | 54 + ...PatchExperimentMetricGroupV2RequestData.ts | 72 + ...imentMetricGroupV2RequestDataAttributes.ts | 69 + ...hExperimentMetricGroupV2RequestDataType.ts | 16 + .../ExperimentsPatchExperimentV2MetaDTO.ts | 70 + ...tsPatchExperimentV2MetaDTOWarningsItems.ts | 62 + .../ExperimentsPatchExperimentV2Request.ts | 54 + ...ExperimentsPatchExperimentV2RequestData.ts | 71 + ...sPatchExperimentV2RequestDataAttributes.ts | 208 + ...tDataAttributesDatadogFlagConfiguration.ts | 86 + .../ExperimentsPatchExperimentV2Response.ts | 63 + ...PatchExperimentV2ResponseDataAttributes.ts | 294 + ...imentV2ResponseDataAttributesConclusion.ts | 69 + ...eDataAttributesDatadogFlagConfiguration.ts | 87 + ...butesDatadogFlagConfigurationEntryPoint.ts | 63 + ...onEntryPointFiltersItemsItemsColumnType.ts | 31 + ...ionEntryPointFiltersItemsItemsOperation.ts | 31 + ...getingRulesItemsConditionsItemsOperator.ts | 47 + ...ributesSplitByPropertiesItemsColumnType.ts | 43 + ...ributesStructuredMetadataItemsFieldType.ts | 16 + ...V2ResponseDataAttributesTrafficExposure.ts | 72 + ...ttributesWarehouseExposureConfiguration.ts | 72 + ...arehouseExposureConfigurationEntryPoint.ts | 63 + ...gurationEntryPointFiltersItemsOperation.ts | 16 + ...imentsPatchExperimentV2ResponseDataType.ts | 16 + ...perimentsPatchMetricCollectionV2Request.ts | 54 + ...mentsPatchMetricCollectionV2RequestData.ts | 71 + ...MetricCollectionV2RequestDataAttributes.ts | 77 + ...sPatchMetricCollectionV2RequestDataType.ts | 16 + .../ExperimentsPatchSubjectTypeV2Request.ts | 54 + ...xperimentsPatchSubjectTypeV2RequestData.ts | 72 + ...PatchSubjectTypeV2RequestDataAttributes.ts | 76 + .../models/ExperimentsPropertyFilterInput.ts | 81 + .../ExperimentsPropertyNullFilterInput.ts | 80 + ...rimentsPropertyNullFilterInputOperation.ts | 18 + ...erimentsPublicProtocolListResponseArray.ts | 72 + ...perimentsPublicProtocolListResponseData.ts | 73 + ...ublicProtocolListResponseDataAttributes.ts | 113 + .../ExperimentsPublicProtocolResponse.ts | 54 + .../ExperimentsPublicProtocolResponseData.ts | 73 + ...ntsPublicProtocolResponseDataAttributes.ts | 272 + ...tocolResponseDataAttributesAnalysisPlan.ts | 77 + ...sAssignmentSourceDefaultPropertiesItems.ts | 68 + ...otocolResponseDataAttributesEnforcement.ts | 164 + ...lResponseDataAttributesExposureSchedule.ts | 86 + ...ibutesExposureScheduleRolloutStepsItems.ts | 88 + ...ResponseDataAttributesMetricGroupsItems.ts | 69 + ...licProtocolResponseDataAttributesStatus.ts | 20 + ...otocolResponseDataAttributesSubjectType.ts | 60 + ...sponseDataAttributesTargetingRulesItems.ts | 53 + ...butesTargetingRulesItemsConditionsItems.ts | 85 + ...perimentsPublicProtocolResponseDataType.ts | 16 + ...sRefreshExperimentResultsBatchMetaV2DTO.ts | 62 + ...rimentResultsBatchMetaV2DTOResultsItems.ts | 61 + ...esultsBatchMetaV2DTOResultsItemsOutcome.ts | 25 + ...xperimentsRefreshExperimentResultsV2DTO.ts | 54 + ...mentsRefreshExperimentResultsV2DTOArray.ts | 63 + ...imentsRefreshExperimentResultsV2DTOData.ts | 73 + ...eshExperimentResultsV2DTODataAttributes.ts | 52 + ...tsRefreshExperimentResultsV2DTODataType.ts | 16 + .../ExperimentsSQLModelPropertyInput.ts | 87 + .../models/ExperimentsSavedFilterCondition.ts | 54 + .../ExperimentsStartExperimentV2Request.ts | 54 + ...ExperimentsStartExperimentV2RequestData.ts | 62 + ...rimentsStartExperimentV2RequestDataType.ts | 16 + .../ExperimentsStructuredMetadataResponse.ts | 86 + .../models/ExperimentsSubjectTypeV2DTO.ts | 54 + .../ExperimentsSubjectTypeV2DTOArray.ts | 72 + .../models/ExperimentsSubjectTypeV2DTOData.ts | 73 + ...perimentsSubjectTypeV2DTODataAttributes.ts | 138 + .../ExperimentsSubjectTypeV2DTODataType.ts | 16 + .../ExperimentsTargetingRuleCondition.ts | 18 + .../models/ExperimentsTrafficSummaryV2DTO.ts | 54 + .../ExperimentsTrafficSummaryV2DTOData.ts | 72 + ...imentsTrafficSummaryV2DTODataAttributes.ts | 70 + ...SummaryV2DTODataAttributesVariantsItems.ts | 69 + .../ExperimentsTrafficSummaryV2DTODataType.ts | 16 + ...ExposureSQLModelV2RequestDataAttributes.ts | 124 + ...UpdateExposureSQLModelV2RequestDataType.ts | 16 + ...rimentsUpdateExposureSQLModelV2Response.ts | 63 + ...ntsUpdateExposureSQLModelV2ResponseMeta.ts | 60 + ...teMetricSQLModelV2RequestDataAttributes.ts | 123 + ...tsUpdateMetricSQLModelV2RequestDataType.ts | 16 + ...perimentsUpdateMetricSQLModelV2Response.ts | 63 + ...mentsUpdateMetricSQLModelV2ResponseMeta.ts | 68 + .../ExperimentsUpdateMetricV2Request.ts | 54 + .../ExperimentsUpdateMetricV2RequestData.ts | 72 + ...entsUpdateMetricV2RequestDataAttributes.ts | 129 + .../ExperimentsVariantResultsV2DTOArray.ts | 63 + .../ExperimentsVariantResultsV2DTOData.ts | 72 + ...imentsVariantResultsV2DTODataAttributes.ts | 94 + ...tResultsV2DTODataAttributesMetricsItems.ts | 148 + ...DataAttributesMetricsItemsAnalysesItems.ts | 231 + ...icsItemsAnalysesItemsConfidenceInterval.ts | 62 + ...ibutesMetricsItemsAnalysesItemsLiftType.ts | 17 + ...tributesMetricsItemsAnalysesItemsMethod.ts | 25 + ...tricsItemsAnalysesItemsUnreliableReason.ts | 29 + ...taAttributesMetricsItemsCoverageSummary.ts | 107 + .../ExperimentsVariantResultsV2DTODataType.ts | 16 + .../ExperimentsWarehouseExposureFilter.ts | 72 + .../models/ExperimentsWarehouseFilterInput.ts | 24 + ...erimentsWarehouseMetricAggregationInput.ts | 212 + ...entsWarehousePercentileAggregationInput.ts | 82 + .../models/FeatureFlagAttributes.ts | 17 + .../models/FeatureFlagEnvironment.ts | 8 + .../models/FeatureFlagEnvironmentListItem.ts | 8 + .../models/FeatureFlagListItemAttributes.ts | 17 + .../FeatureFlagStalenessCodeReference.ts | 68 + .../models/FeatureFlagStalenessDetails.ts | 103 + .../FeatureFlagStalenessRecommendedAction.ts | 60 + .../models/ObjectSerializer.ts | 746 + 337 files changed, 134922 insertions(+), 88014 deletions(-) create mode 100644 examples/v2/experiments/ArchiveExposureSQLModel.ts create mode 100644 examples/v2/experiments/CancelExperiment.ts create mode 100644 examples/v2/experiments/ConcludeExperiment.ts create mode 100644 examples/v2/experiments/CreateExperiment.ts create mode 100644 examples/v2/experiments/CreateExperimentMetricGroup.ts create mode 100644 examples/v2/experiments/CreateExperimentMetricGroupFromCollection.ts create mode 100644 examples/v2/experiments/CreateExposureSQLModel.ts create mode 100644 examples/v2/experiments/CreateMetric.ts create mode 100644 examples/v2/experiments/CreateMetricCollection.ts create mode 100644 examples/v2/experiments/CreateMetricSQLModel.ts create mode 100644 examples/v2/experiments/CreateSubjectType.ts create mode 100644 examples/v2/experiments/DeleteExperiment.ts create mode 100644 examples/v2/experiments/DeleteExperimentMetricGroup.ts create mode 100644 examples/v2/experiments/DeleteExperiment_2793607571.ts create mode 100644 examples/v2/experiments/DeleteMetric.ts create mode 100644 examples/v2/experiments/DeleteMetricCollection.ts create mode 100644 examples/v2/experiments/DeleteSubjectType.ts create mode 100644 examples/v2/experiments/DeleteSubjectType_3300790820.ts create mode 100644 examples/v2/experiments/GetExperiment.ts create mode 100644 examples/v2/experiments/GetExperimentAnalysisPlan.ts create mode 100644 examples/v2/experiments/GetExperimentDiagnostics.ts create mode 100644 examples/v2/experiments/GetExperimentProtocol.ts create mode 100644 examples/v2/experiments/GetExperimentResults.ts create mode 100644 examples/v2/experiments/GetExperimentTrafficSummary.ts create mode 100644 examples/v2/experiments/GetExposureSQLModel.ts create mode 100644 examples/v2/experiments/GetMetric.ts create mode 100644 examples/v2/experiments/GetMetricCollection.ts create mode 100644 examples/v2/experiments/GetMetricSQLModel.ts create mode 100644 examples/v2/experiments/GetSubjectType.ts create mode 100644 examples/v2/experiments/ListExperimentMetricGroups.ts create mode 100644 examples/v2/experiments/ListExperimentProtocols.ts create mode 100644 examples/v2/experiments/ListExperiments.ts create mode 100644 examples/v2/experiments/ListExposureSQLModels.ts create mode 100644 examples/v2/experiments/ListMetricCollections.ts create mode 100644 examples/v2/experiments/ListMetricSQLModels.ts create mode 100644 examples/v2/experiments/ListMetrics.ts create mode 100644 examples/v2/experiments/ListSubjectTypes.ts create mode 100644 examples/v2/experiments/PatchExperiment.ts create mode 100644 examples/v2/experiments/PatchSubjectType.ts create mode 100644 examples/v2/experiments/RefreshExperimentResults.ts create mode 100644 examples/v2/experiments/RefreshExperimentResultsForOrg.ts create mode 100644 examples/v2/experiments/SetDefaultSubjectType.ts create mode 100644 examples/v2/experiments/StartExperiment.ts create mode 100644 examples/v2/experiments/UnarchiveExposureSQLModel.ts create mode 100644 examples/v2/experiments/UpdateExperimentAnalysisPlanAttributes.ts create mode 100644 examples/v2/experiments/UpdateExperimentMetricGroup.ts create mode 100644 examples/v2/experiments/UpdateExposureSQLModel.ts create mode 100644 examples/v2/experiments/UpdateMetric.ts create mode 100644 examples/v2/experiments/UpdateMetricCollection.ts create mode 100644 examples/v2/experiments/UpdateMetricSQLModel.ts create mode 100644 features/generated-test/test-runner-data/v2/experiments/cancel-experiment-returns-the-experiment-was-canceled-and-unlinked-from-its-feature-flag-allocations-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/create-experiment-metric-group-from-collection-returns-created-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/create-experiment-metric-group-returns-created-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/create-experiment-returns-created-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/create-metric-collection-returns-created-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/create-metric-returns-created-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/create-subject-type-returns-created-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/delete-experiment-metric-group-returns-no-content-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/delete-experiment-returns-no-content-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/delete-metric-collection-returns-no-content-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/delete-metric-returns-the-metric-was-deleted-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/delete-subject-type-returns-no-content-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/get-experiment-analysis-plan-returns-ok-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/get-experiment-diagnostics-returns-ok-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/get-experiment-returns-ok-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/get-experiment-traffic-summary-returns-ok-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/get-metric-collection-returns-ok-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/get-metric-returns-ok-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/get-subject-type-returns-ok-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/list-experiment-metric-groups-returns-ok-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/list-experiment-protocols-returns-ok-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/list-experiments-returns-ok-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/list-exposure-sql-models-returns-ok-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/list-metric-collections-returns-ok-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/list-metric-sql-models-returns-ok-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/list-metrics-returns-ok-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/list-subject-types-returns-ok-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/patch-experiment-returns-ok-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/patch-subject-type-returns-ok-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/start-experiment-returns-the-experiment-was-started-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/update-experiment-analysis-plan-attributes-returns-ok-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/update-experiment-metric-group-returns-ok-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/update-metric-collection-returns-ok-response.json create mode 100644 features/generated-test/test-runner-data/v2/experiments/update-metric-returns-ok-response.json create mode 100644 features/generated-test/test-server-data/v2/experiments.json create mode 100644 features/v2/experiments.feature create mode 100644 packages/datadog-api-client-v2/apis/ExperimentsApi.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanV2DTO.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanV2DTOData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanV2DTODataAttributesConfidenceIntervalMethod.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanV2MutationResponse.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanV2MutationResponseDataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanV2MutationResponseDataAttributesBayesianPrior.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanWriteV2Request.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanWriteV2RequestData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanWriteV2RequestDataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanWriteV2RequestDataAttributesBayesianPrior.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanWriteV2RequestDataType.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCancelExperimentV2Request.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCancelExperimentV2RequestData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCancelExperimentV2RequestDataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCancelExperimentV2RequestDataType.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsConcludeExperimentV2Request.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsConcludeExperimentV2RequestData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsConcludeExperimentV2RequestDataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsConcludeExperimentV2RequestDataType.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateExperimentMetricGroupV2Request.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateExperimentMetricGroupV2RequestData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateExperimentMetricGroupV2RequestDataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateExperimentMetricGroupV2RequestDataAttributesMetricsItems.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2Request.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfiguration.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfigurationTargetingRulesItems.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesDecisionMetricsItems.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesRelatedLinksItems.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesSplitByPropertiesItems.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesStructuredMetadataItems.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureMode.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureStepsItems.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesVariantsItems.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesWarehouseExposureConfiguration.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateExposureSQLModelV2Request.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateExposureSQLModelV2RequestData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateMetricCollectionV2Request.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateMetricCollectionV2RequestData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateMetricCollectionV2RequestDataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateMetricCollectionV2RequestDataAttributesMetricsItems.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateMetricNumeratorAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateMetricPercentileAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateMetricSQLModelV2Request.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateMetricSQLModelV2RequestData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateMetricSQLModelV2RequestDataAttributesMeasuresItems.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2Request.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2RequestData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2RequestDataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2RequestDataAttributesDataSourceType.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2RequestDataAttributesDesiredChange.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2RequestDataAttributesNumeratorAggregation.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregation.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregationWarehouseMetricMeasure.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateSubjectTypeV2Request.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateSubjectTypeV2RequestData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsCreateSubjectTypeV2RequestDataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsDatadogEntryPointFilter.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsDatadogMetricAggregationInput.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsDatadogMetricMeasureInput.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsDatadogPercentileAggregationInput.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsDatadogPercentileMeasureInput.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTO.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTOData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItems.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsSkippedReason.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsStatus.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsType.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataAttributesResult.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataAttributesState.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataType.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExperimentMetricGroupMutationV2.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExperimentMetricGroupMutationV2Data.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExperimentMetricGroupMutationV2DataAttributesMetricsItems.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExperimentMetricGroupV2DTOArray.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExperimentMetricGroupV2DTODataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExperimentResultsV2MetaDTO.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExperimentV2DTO.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExperimentV2DTOData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExperimentV2DTODataAttributesConclusionOutcome.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExperimentV2DTODataAttributesSplitByPropertiesItems.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExperimentV2DTODataAttributesStatus.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExperimentV2DTODataAttributesVariantsItems.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExperimentV2ListDTOArray.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExperimentV2ListDTOData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExperimentV2ListDTODataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExposureSQLModelV2DTO.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExposureSQLModelV2DTOArray.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExposureSQLModelV2DTOData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExposureSQLModelV2DTODataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsExposureSQLModelV2DTODataAttributesItems.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsInlineCondition.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsMeasureComparisonFilterInput.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsMeasureComparisonFilterInputOperation.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsMeasureNullFilterInput.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsMeasureRangeFilterInput.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsMeasureRangeFilterInputOperation.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsMetricCollectionV2DTO.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsMetricCollectionV2DTOArray.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsMetricCollectionV2DTOData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsMetricCollectionV2DTODataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsMetricCollectionV2DTODataAttributesMetricsItems.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsMetricPropertyFilter.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsMetricSQLModelPropertyInput.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsMetricSQLModelV2DTO.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsMetricSQLModelV2DTOArray.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsMetricSQLModelV2DTOData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsMetricSQLModelV2DTODataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsMetricSQLModelV2DTODataAttributesMeasuresItems.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsMetricSQLModelV2DTODataAttributesSubjectTypesItems.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsMetricV2DTO.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsMetricV2DTOArray.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsMetricV2DTOData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributesDataSourceType.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributesDesiredChange.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributesMetricType.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributesNumeratorAggregation.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributesPercentileAggregation.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributesPercentileAggregationDatadogMetricMeasure.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributesPercentileAggregationWarehouseMetricMeasure.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsNullableDatadogMetricMeasureInput.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsNullableDatadogPercentileMeasureInput.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsNullableWarehouseMetricMeasureInput.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsOffsetLinks.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsOffsetMeta.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsOffsetMetaPage.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchExperimentMetricGroupV2Request.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchExperimentMetricGroupV2RequestData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchExperimentMetricGroupV2RequestDataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchExperimentMetricGroupV2RequestDataType.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2MetaDTO.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2MetaDTOWarningsItems.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2Request.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2RequestData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2RequestDataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2RequestDataAttributesDatadogFlagConfiguration.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2Response.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesConclusion.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfiguration.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPoint.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsColumnType.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsOperation.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationTargetingRulesItemsConditionsItemsOperator.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesSplitByPropertiesItemsColumnType.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesStructuredMetadataItemsFieldType.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesTrafficExposure.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfiguration.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPoint.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPointFiltersItemsOperation.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataType.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchMetricCollectionV2Request.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchMetricCollectionV2RequestData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchMetricCollectionV2RequestDataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchMetricCollectionV2RequestDataType.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchSubjectTypeV2Request.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchSubjectTypeV2RequestData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPatchSubjectTypeV2RequestDataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPropertyFilterInput.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPropertyNullFilterInput.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPropertyNullFilterInputOperation.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPublicProtocolListResponseArray.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPublicProtocolListResponseData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPublicProtocolListResponseDataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponse.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesAnalysisPlan.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesAssignmentSourceDefaultPropertiesItems.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesEnforcement.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesExposureSchedule.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesExposureScheduleRolloutStepsItems.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesMetricGroupsItems.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesStatus.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesSubjectType.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItems.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItemsConditionsItems.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataType.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsBatchMetaV2DTO.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItems.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItemsOutcome.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsV2DTO.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsV2DTOArray.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsV2DTOData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsV2DTODataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsV2DTODataType.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsSQLModelPropertyInput.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsSavedFilterCondition.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsStartExperimentV2Request.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsStartExperimentV2RequestData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsStartExperimentV2RequestDataType.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsStructuredMetadataResponse.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsSubjectTypeV2DTO.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsSubjectTypeV2DTOArray.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsSubjectTypeV2DTOData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsSubjectTypeV2DTODataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsSubjectTypeV2DTODataType.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsTargetingRuleCondition.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsTrafficSummaryV2DTO.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsTrafficSummaryV2DTOData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsTrafficSummaryV2DTODataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsTrafficSummaryV2DTODataAttributesVariantsItems.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsTrafficSummaryV2DTODataType.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsUpdateExposureSQLModelV2RequestDataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsUpdateExposureSQLModelV2RequestDataType.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsUpdateExposureSQLModelV2Response.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsUpdateExposureSQLModelV2ResponseMeta.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsUpdateMetricSQLModelV2RequestDataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsUpdateMetricSQLModelV2RequestDataType.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsUpdateMetricSQLModelV2Response.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsUpdateMetricSQLModelV2ResponseMeta.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsUpdateMetricV2Request.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsUpdateMetricV2RequestData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsUpdateMetricV2RequestDataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTOArray.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTOData.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributesMetricsItems.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItems.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsConfidenceInterval.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsLiftType.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsMethod.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsUnreliableReason.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsCoverageSummary.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataType.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsWarehouseExposureFilter.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsWarehouseFilterInput.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsWarehouseMetricAggregationInput.ts create mode 100644 packages/datadog-api-client-v2/models/ExperimentsWarehousePercentileAggregationInput.ts create mode 100644 packages/datadog-api-client-v2/models/FeatureFlagStalenessCodeReference.ts create mode 100644 packages/datadog-api-client-v2/models/FeatureFlagStalenessDetails.ts create mode 100644 packages/datadog-api-client-v2/models/FeatureFlagStalenessRecommendedAction.ts diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 62da8be0f948..1606032e9da3 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -39095,6 +39095,11 @@ components: description: The name of the environment. example: "env-search-term" type: string + observe_full_evaluation_data: + description: >- + Indicates whether feature flag evaluation events include original targeting identifiers and full evaluation context. + example: false + type: boolean queries: description: List of queries to define the environment scope. example: ["staging", "test"] @@ -40881,14478 +40886,17062 @@ components: - effect - action_pattern type: object - ExposureRolloutStepRequest: - description: Rollout step request payload. + ExperimentsAnalysisPlanV2DTO: + description: "Response containing the analysis settings for an experiment." + example: + data: + attributes: + bayesian_prior: + degrees_of_freedom: + standard_deviation: 0.05 + confidence_interval_method: Bayesian + confidence_level: 0.95 + cuped_lookback_period_days: 30 + experiment_auto_end_days: 0 + experiment_min_duration: 0 + experiment_min_sample_size: 0 + has_custom_analysis_settings: false + is_cuped_enabled: true + is_multiple_testing_correction_enabled: false + preferential_bonferroni_primary_metric_weight: 0.5 + target_duration_days: 14 + id: 550e8400-e29b-41d4-a716-446655440000 + type: analysis-plans + properties: + data: + $ref: "#/components/schemas/ExperimentsAnalysisPlanV2DTOData" + required: + - data + type: object + ExperimentsAnalysisPlanV2DTOData: + description: "Analysis plan resource with its identifier and settings." + example: + attributes: + bayesian_prior: + degrees_of_freedom: + standard_deviation: 0.05 + confidence_interval_method: Bayesian + confidence_level: 0.95 + cuped_lookback_period_days: 30 + experiment_auto_end_days: 0 + experiment_min_duration: 0 + experiment_min_sample_size: 0 + has_custom_analysis_settings: false + is_cuped_enabled: true + is_multiple_testing_correction_enabled: false + preferential_bonferroni_primary_metric_weight: 0.5 + target_duration_days: 14 + id: 550e8400-e29b-41d4-a716-446655440000 + type: analysis-plans + properties: + attributes: + $ref: "#/components/schemas/ExperimentsAnalysisPlanV2MutationResponseDataAttributes" + id: + description: "Identifier of the experiment whose analysis plan is returned." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid + type: string + type: + $ref: "#/components/schemas/ExperimentsAnalysisPlanWriteV2RequestDataType" + required: + - id + - type + type: object + ExperimentsAnalysisPlanV2DTODataAttributesConfidenceIntervalMethod: + description: "Statistical method used to calculate the experiment results." + enum: + - Sequential + - FixedSample + - Bayesian + - SequentialFixedHybrid + example: Bayesian + type: string + x-enum-varnames: + - SEQUENTIAL + - FIXEDSAMPLE + - BAYESIAN + - SEQUENTIALFIXEDHYBRID + ExperimentsAnalysisPlanV2MutationResponse: + description: "Response containing the saved analysis plan and result refresh information." properties: - exposure_ratio: - description: The exposure ratio for this step. - example: 0.5 + data: + $ref: "#/components/schemas/ExperimentsAnalysisPlanV2DTOData" + meta: + $ref: "#/components/schemas/ExperimentsPatchExperimentV2MetaDTO" + required: + - data + type: object + ExperimentsAnalysisPlanV2MutationResponseDataAttributes: + description: "Statistical settings and duration targets in the saved analysis plan." + properties: + bayesian_prior: + $ref: "#/components/schemas/ExperimentsAnalysisPlanV2MutationResponseDataAttributesBayesianPrior" + confidence_interval_method: + $ref: "#/components/schemas/ExperimentsAnalysisPlanV2DTODataAttributesConfidenceIntervalMethod" + confidence_level: + description: "Confidence level used for statistical analysis, expressed as a fraction." format: double - maximum: 1 - minimum: 0 type: number - grouped_step_index: - description: Logical index grouping related steps. - example: 1 + cuped_lookback_period_days: + description: "Number of days of pre-experiment data used for CUPED variance reduction." format: int64 - minimum: 0 type: integer - id: - description: The unique identifier of the progression step. - example: "550e8400-e29b-41d4-a716-446655440040" - format: uuid - type: string - interval_ms: - description: Step duration in milliseconds. - example: 3600000 + experiment_auto_end_days: + description: "Number of days configured for the experiment to end automatically." format: int64 - nullable: true type: integer - is_pause_record: - description: Whether this step represents a pause record. - example: false + experiment_min_duration: + description: "Minimum experiment duration in days configured in the analysis plan." + format: int64 + type: integer + experiment_min_sample_size: + description: "Minimum sample size configured in the analysis plan." + format: int64 + type: integer + has_custom_analysis_settings: + description: "Whether the experiment has custom analysis settings." type: boolean - required: - - exposure_ratio - - is_pause_record - - grouped_step_index + is_cuped_enabled: + description: "Whether CUPED uses pre-experiment data to reduce variance in the analysis." + type: boolean + is_multiple_testing_correction_enabled: + description: "Whether the analysis adjusts for testing multiple hypotheses." + type: boolean + preferential_bonferroni_primary_metric_weight: + description: "Weight assigned to the primary metric in the preferential Bonferroni correction." + format: double + type: number + target_duration_days: + description: "Planned experiment duration in days." + format: int64 + nullable: true + type: integer type: object - ExposureScheduleRequest: - description: Progressive release request payload. + ExperimentsAnalysisPlanV2MutationResponseDataAttributesBayesianPrior: + description: "Parameters of the prior distribution used for Bayesian analysis." properties: - absolute_start_time: - description: The absolute UTC start time for this schedule. - example: "2025-06-13T12:00:00Z" - format: date-time - nullable: true - type: string - control_variant_id: - description: The control variant ID used for experiment comparisons. - example: "550e8400-e29b-41d4-a716-446655440012" - nullable: true - type: string - control_variant_key: - description: The control variant key used during creation workflows. - example: "control" + degrees_of_freedom: + description: "Degrees of freedom of the prior distribution." + format: double nullable: true - type: string - id: - description: The unique identifier of the progressive rollout. - example: "550e8400-e29b-41d4-a716-446655440010" - format: uuid - type: string - rollout_options: - $ref: "#/components/schemas/RolloutOptionsRequest" - rollout_steps: - description: Ordered progression steps for exposure. - items: - $ref: "#/components/schemas/ExposureRolloutStepRequest" - minItems: 1 - type: array - required: - - rollout_options - - rollout_steps + type: number + standard_deviation: + description: "Standard deviation of the prior distribution." + format: double + type: number type: object - FacetInfoRequest: - description: Request body for retrieving facet value information for a specified attribute with optional filtering. + ExperimentsAnalysisPlanWriteV2Request: + description: "Request to update the analysis settings for an experiment." example: data: attributes: - facet_id: first_browser_name - limit: 10 - search: - query: user_org_id:5001 AND first_country_code:US - term_search: - value: Chrome - id: facet_info_request - type: users_facet_info_request + bayesian_prior: + degrees_of_freedom: + standard_deviation: 0.05 + confidence_interval_method: Bayesian + confidence_level: 0.95 + cuped_lookback_period_days: 30 + experiment_auto_end_days: 0 + experiment_min_duration: 0 + experiment_min_sample_size: 0 + is_cuped_enabled: true + is_multiple_testing_correction_enabled: false + preferential_bonferroni_primary_metric_weight: 0.5 + target_duration_days: 14 + id: 550e8400-e29b-41d4-a716-446655440000 + type: analysis-plans properties: data: - $ref: "#/components/schemas/FacetInfoRequestData" + $ref: "#/components/schemas/ExperimentsAnalysisPlanWriteV2RequestData" + required: + - data type: object - FacetInfoRequestData: - description: The data object containing the resource type and attributes for the facet info request. - properties: + ExperimentsAnalysisPlanWriteV2RequestData: + description: "Analysis plan resource to update." + example: attributes: - $ref: "#/components/schemas/FacetInfoRequestDataAttributes" - id: - description: Unique identifier for the facet info request resource. + bayesian_prior: + degrees_of_freedom: + standard_deviation: 0.05 + confidence_interval_method: Bayesian + confidence_level: 0.95 + cuped_lookback_period_days: 30 + experiment_auto_end_days: 0 + experiment_min_duration: 0 + experiment_min_sample_size: 0 + is_cuped_enabled: true + is_multiple_testing_correction_enabled: false + preferential_bonferroni_primary_metric_weight: 0.5 + target_duration_days: 14 + id: 550e8400-e29b-41d4-a716-446655440000 + type: analysis-plans + properties: + attributes: + $ref: "#/components/schemas/ExperimentsAnalysisPlanWriteV2RequestDataAttributes" + id: + description: "Identifier of the experiment. If supplied, it must match experiment_id in the path." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid type: string type: - $ref: "#/components/schemas/FacetInfoRequestDataType" + $ref: "#/components/schemas/ExperimentsAnalysisPlanWriteV2RequestDataType" required: - type type: object - FacetInfoRequestDataAttributes: - description: Attributes for the facet info request, specifying which facet to query and optional filters to apply. - properties: - facet_id: - description: The identifier of the facet attribute to retrieve value information for. - example: "" - type: string - limit: - description: Maximum number of facet values to return in the response. + ExperimentsAnalysisPlanWriteV2RequestDataAttributes: + description: "Statistical settings and duration targets to apply to the experiment." + example: + bayesian_prior: + degrees_of_freedom: + standard_deviation: 0.05 + confidence_interval_method: Bayesian + confidence_level: 0.95 + cuped_lookback_period_days: 30 + experiment_auto_end_days: 0 + experiment_min_duration: 0 + experiment_min_sample_size: 0 + is_cuped_enabled: true + is_multiple_testing_correction_enabled: false + preferential_bonferroni_primary_metric_weight: 0.5 + target_duration_days: 14 + properties: + bayesian_prior: + $ref: "#/components/schemas/ExperimentsAnalysisPlanWriteV2RequestDataAttributesBayesianPrior" + confidence_interval_method: + $ref: "#/components/schemas/ExperimentsAnalysisPlanV2DTODataAttributesConfidenceIntervalMethod" + confidence_level: + description: "Confidence level used for statistical analysis, expressed as a fraction." + example: 0.95 + format: double + type: number + cuped_lookback_period_days: + description: Only a 30-day CUPED lookback is supported. + example: 30 + format: int64 + maximum: 30 + minimum: 30 + type: integer + experiment_auto_end_days: + description: "Number of days configured for the experiment to end automatically." example: 0 format: int64 type: integer - search: - $ref: "#/components/schemas/FacetInfoRequestDataAttributesSearch" - term_search: - $ref: "#/components/schemas/FacetInfoRequestDataAttributesTermSearch" - required: - - facet_id - - limit - type: object - FacetInfoRequestDataAttributesSearch: - description: Query-based search configuration for filtering the audience context when retrieving facet values. - properties: - query: - description: The filter expression used to scope the audience from which facet values are retrieved. - type: string + experiment_min_duration: + description: "Minimum experiment duration in days configured in the analysis plan." + example: 0 + format: int64 + type: integer + experiment_min_sample_size: + description: "Minimum sample size configured in the analysis plan." + example: 0 + format: int64 + type: integer + is_cuped_enabled: + description: "Whether CUPED uses pre-experiment data to reduce variance in the analysis." + example: true + type: boolean + is_multiple_testing_correction_enabled: + description: "Whether the analysis adjusts for testing multiple hypotheses." + example: false + type: boolean + preferential_bonferroni_primary_metric_weight: + description: "Weight assigned to the primary metric in the preferential Bonferroni correction." + example: 0.5 + format: double + type: number + target_duration_days: + description: "Planned experiment duration in days." + example: 14 + format: int64 + nullable: true + type: integer type: object - FacetInfoRequestDataAttributesTermSearch: - description: Term-level search configuration for filtering facet values by an exact or partial term match. + ExperimentsAnalysisPlanWriteV2RequestDataAttributesBayesianPrior: + description: "Parameters of the prior distribution to use for Bayesian analysis." + example: + degrees_of_freedom: + standard_deviation: 0.05 properties: - value: - description: The term string to match against facet values. - type: string + degrees_of_freedom: + description: "Degrees of freedom of the prior distribution." + example: + format: double + nullable: true + type: number + standard_deviation: + description: "Standard deviation of the prior distribution." + example: 0.05 + format: double + type: number + required: + - standard_deviation type: object - FacetInfoRequestDataType: - default: users_facet_info_request - description: Users facet info request resource type. + ExperimentsAnalysisPlanWriteV2RequestDataType: + default: analysis-plans + description: Analysis plans resource type. enum: - - users_facet_info_request - example: users_facet_info_request + - analysis-plans + example: analysis-plans type: string x-enum-varnames: - - USERS_FACET_INFO_REQUEST - FacetInfoResponse: - description: Response containing facet information for an attribute, including its distinct values and occurrence counts. + - ANALYSIS_PLANS + ExperimentsCancelExperimentV2Request: + description: "Request to cancel an experiment and record a reason." example: data: attributes: - result: - values: - - count: 4892 - value: Chrome - - count: 2341 - value: Safari - - count: 1567 - value: Firefox - - count: 892 - value: Edge - - count: 234 - value: Opera - id: facet_info_response - type: users_facet_info + reason: Experiment configuration was incorrect + type: cancel-experiment-request properties: data: - $ref: "#/components/schemas/FacetInfoResponseData" + $ref: "#/components/schemas/ExperimentsCancelExperimentV2RequestData" + required: + - data type: object - FacetInfoResponseData: - description: The data object containing the resource type and attributes for the facet info response. + ExperimentsCancelExperimentV2RequestData: + description: "Experiment cancellation resource with the experiment identifier and reason." + example: + attributes: + reason: Experiment configuration was incorrect + type: cancel-experiment-request properties: attributes: - $ref: "#/components/schemas/FacetInfoResponseDataAttributes" + $ref: "#/components/schemas/ExperimentsCancelExperimentV2RequestDataAttributes" id: - description: Unique identifier for the facet info response resource. + description: "Identifier of the experiment to cancel." type: string type: - $ref: "#/components/schemas/FacetInfoResponseDataType" + $ref: "#/components/schemas/ExperimentsCancelExperimentV2RequestDataType" required: - type + - attributes type: object - FacetInfoResponseDataAttributes: - description: Attributes of the facet info response, containing the facet result data. - properties: - result: - $ref: "#/components/schemas/FacetInfoResponseDataAttributesResult" - type: object - FacetInfoResponseDataAttributesResult: - description: The facet query result containing discrete value counts or a numeric range for the requested facet. - properties: - range: - $ref: "#/components/schemas/FacetInfoResponseDataAttributesResultRange" - values: - description: List of discrete facet values with their occurrence counts. - items: - $ref: "#/components/schemas/FacetInfoResponseDataAttributesResultValuesItems" - type: array - type: object - FacetInfoResponseDataAttributesResultRange: - description: The numeric range of a facet attribute, representing the minimum and maximum observed values. - properties: - max: - description: The maximum observed value for the numeric facet attribute. - type: object - min: - description: The minimum observed value for the numeric facet attribute. - type: object - type: object - FacetInfoResponseDataAttributesResultValuesItems: - description: A single facet value with its occurrence count in the dataset. + ExperimentsCancelExperimentV2RequestDataAttributes: + description: "Reason to record when canceling the experiment." + example: + reason: Experiment configuration was incorrect properties: - count: - description: The number of records that have this facet value. - format: int64 - type: integer - value: - description: The facet value (for example, a browser name or country code). + reason: + description: |- + Reason the experiment was canceled. Stored as the decision reason on the experiment conclusion. Must not + be blank. + example: Experiment configuration was incorrect + minLength: 1 + pattern: ".*\\S.*" type: string + required: + - reason type: object - FacetInfoResponseDataType: - default: users_facet_info - description: Users facet info resource type. + ExperimentsCancelExperimentV2RequestDataType: + default: cancel-experiment-request + description: Cancel experiment request resource type. enum: - - users_facet_info - example: users_facet_info + - cancel-experiment-request + example: cancel-experiment-request type: string x-enum-varnames: - - USERS_FACET_INFO - FastlyAPIKey: - description: The definition of the `FastlyAPIKey` object. + - CANCEL_EXPERIMENT_REQUEST + ExperimentsConcludeExperimentV2Request: + description: "Request to conclude an experiment with a winning variant." + example: + data: + attributes: + decision_variant_key: treatment + type: conclude-experiment-request properties: - api_key: - description: The `FastlyAPIKey` `api_key`. - example: "" + data: + $ref: "#/components/schemas/ExperimentsConcludeExperimentV2RequestData" + required: + - data + type: object + ExperimentsConcludeExperimentV2RequestData: + description: "Experiment conclusion resource with the experiment identifier and decision." + example: + attributes: + decision_variant_key: treatment + type: conclude-experiment-request + properties: + attributes: + $ref: "#/components/schemas/ExperimentsConcludeExperimentV2RequestDataAttributes" + id: + description: "Identifier of the experiment to conclude." type: string type: - $ref: "#/components/schemas/FastlyAPIKeyType" + $ref: "#/components/schemas/ExperimentsConcludeExperimentV2RequestDataType" required: - type - - api_key + - attributes type: object - FastlyAPIKeyType: - description: The definition of the `FastlyAPIKey` object. + ExperimentsConcludeExperimentV2RequestDataAttributes: + description: "Decision to record when concluding the experiment." + example: + decision_variant_key: treatment + properties: + decision_variant_key: + description: Key of the winning variant. Must match a variant on the experiment and must not be blank. + example: treatment + minLength: 1 + pattern: ".*\\S.*" + type: string + required: + - decision_variant_key + type: object + ExperimentsConcludeExperimentV2RequestDataType: + default: conclude-experiment-request + description: Conclude experiment request resource type. enum: - - FastlyAPIKey - example: FastlyAPIKey + - conclude-experiment-request + example: conclude-experiment-request type: string x-enum-varnames: - - FASTLYAPIKEY - FastlyAPIKeyUpdate: - description: The definition of the `FastlyAPIKey` object. + - CONCLUDE_EXPERIMENT_REQUEST + ExperimentsCreateExperimentMetricGroupV2Request: + description: "Request to create a metric group on an experiment." + example: + data: + attributes: + metrics: + - metric_id: 550e8400-e29b-41d4-a716-446655440021 + name: Diagnostics + type: experiment-metric-groups properties: - api_key: - description: The `FastlyAPIKeyUpdate` `api_key`. + data: + $ref: "#/components/schemas/ExperimentsCreateExperimentMetricGroupV2RequestData" + required: + - data + type: object + ExperimentsCreateExperimentMetricGroupV2RequestData: + description: "Metric group resource to create on the experiment." + example: + attributes: + metrics: + - metric_id: 550e8400-e29b-41d4-a716-446655440021 + name: Diagnostics + type: experiment-metric-groups + properties: + attributes: + $ref: "#/components/schemas/ExperimentsCreateExperimentMetricGroupV2RequestDataAttributes" + id: + description: "Optional JSON:API resource identifier field." type: string type: - $ref: "#/components/schemas/FastlyAPIKeyType" + $ref: "#/components/schemas/ExperimentsPatchExperimentMetricGroupV2RequestDataType" required: + - attributes - type type: object - FastlyAccounResponseAttributes: - description: Attributes object of a Fastly account. + ExperimentsCreateExperimentMetricGroupV2RequestDataAttributes: + description: "Name and metric selection for the new experiment metric group." + example: + metrics: + - metric_id: 550e8400-e29b-41d4-a716-446655440021 + name: Diagnostics properties: - name: - description: The name of the Fastly account. - example: "test-name" - type: string - services: - description: A list of services belonging to the parent account. + metrics: + description: "Metrics to include in the experiment metric group." + example: + - metric_id: 550e8400-e29b-41d4-a716-446655440021 items: - $ref: "#/components/schemas/FastlyService" + $ref: "#/components/schemas/ExperimentsCreateExperimentMetricGroupV2RequestDataAttributesMetricsItems" type: array + migration_metadata: + description: "Metadata associated with migration of this resource." + name: + description: "Display name of the experiment metric group." + example: Checkout conversion + type: string required: - name type: object - FastlyAccountCreateRequest: - description: Payload schema when adding a Fastly account. + ExperimentsCreateExperimentMetricGroupV2RequestDataAttributesMetricsItems: + description: "Reference to a metric to include in the experiment metric group." + example: + metric_id: 550e8400-e29b-41d4-a716-446655440021 properties: - data: - $ref: "#/components/schemas/FastlyAccountCreateRequestData" + metric_id: + description: "Identifier of the metric to include in the group." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid + type: string required: - - data + - metric_id type: object - FastlyAccountCreateRequestAttributes: - description: Attributes object for creating a Fastly account. + ExperimentsCreateExperimentV2Request: + description: "Request to create an experiment draft." + example: + data: + attributes: + assignments_end_date: "2026-08-15T00:00:00Z" + assignments_start_date: "2026-08-01T00:00:00Z" + datadog_flag_configuration: + entry_point: + environment_id: 550e8400-e29b-41d4-a716-446655440005 + feature_flag_id: 550e8400-e29b-41d4-a716-446655440004 + targeting_rules: [] + decision_metrics: + - is_primary: true + metric_id: b1a2c3d4-0000-0000-0000-000000000000 + events_end_date: "2026-08-22T00:00:00Z" + events_start_date: "2026-08-01T00:00:00Z" + name: Checkout button test + structured_metadata: + - enum_values: + - beta + field_key: launch_stage + - field_key: notes + freetext_value: Checkout redesign + subject_type_id: c2b3d4e5-0000-0000-0000-000000000000 + traffic_exposure: + fraction: 1 + mode: STATIC + variants: + - feature_flag_variant_id: 550e8400-e29b-41d4-a716-446655440010 + is_active: true + is_control: true + key: control + weight: 50 + - feature_flag_variant_id: 550e8400-e29b-41d4-a716-446655440011 + is_active: true + is_control: false + key: treatment + weight: 50 + type: experiments + properties: + data: + $ref: "#/components/schemas/ExperimentsCreateExperimentV2RequestData" + required: + - data + type: object + ExperimentsCreateExperimentV2RequestData: + description: "Experiment resource to create." + example: + attributes: + assignments_end_date: "2026-08-15T00:00:00Z" + assignments_start_date: "2026-08-01T00:00:00Z" + datadog_flag_configuration: + entry_point: + environment_id: 550e8400-e29b-41d4-a716-446655440005 + feature_flag_id: 550e8400-e29b-41d4-a716-446655440004 + targeting_rules: [] + decision_metrics: + - is_primary: true + metric_id: b1a2c3d4-0000-0000-0000-000000000000 + events_end_date: "2026-08-22T00:00:00Z" + events_start_date: "2026-08-01T00:00:00Z" + name: Checkout button test + structured_metadata: + - enum_values: + - beta + field_key: launch_stage + - field_key: notes + freetext_value: Checkout redesign + subject_type_id: c2b3d4e5-0000-0000-0000-000000000000 + traffic_exposure: + fraction: 1 + mode: STATIC + variants: + - feature_flag_variant_id: 550e8400-e29b-41d4-a716-446655440010 + is_active: true + is_control: true + key: control + weight: 50 + - feature_flag_variant_id: 550e8400-e29b-41d4-a716-446655440011 + is_active: true + is_control: false + key: treatment + weight: 50 + type: experiments + properties: + attributes: + $ref: "#/components/schemas/ExperimentsCreateExperimentV2RequestDataAttributes" + id: + description: "Optional JSON:API resource identifier field." + type: string + type: + $ref: "#/components/schemas/ExperimentsPatchExperimentV2ResponseDataType" + required: + - attributes + - type + type: object + ExperimentsCreateExperimentV2RequestDataAttributes: + description: "Configuration and descriptive fields for the new experiment draft." + example: + assignments_end_date: "2026-08-15T00:00:00Z" + assignments_start_date: "2026-08-01T00:00:00Z" + datadog_flag_configuration: + entry_point: + environment_id: 550e8400-e29b-41d4-a716-446655440005 + feature_flag_id: 550e8400-e29b-41d4-a716-446655440004 + targeting_rules: [] + decision_metrics: + - is_primary: true + metric_id: b1a2c3d4-0000-0000-0000-000000000000 + events_end_date: "2026-08-22T00:00:00Z" + events_start_date: "2026-08-01T00:00:00Z" + name: Checkout button test + structured_metadata: + - enum_values: + - beta + field_key: launch_stage + - field_key: notes + freetext_value: Checkout redesign + subject_type_id: c2b3d4e5-0000-0000-0000-000000000000 + traffic_exposure: + fraction: 1 + mode: STATIC + variants: + - feature_flag_variant_id: 550e8400-e29b-41d4-a716-446655440010 + is_active: true + is_control: true + key: control + weight: 50 + - feature_flag_variant_id: 550e8400-e29b-41d4-a716-446655440011 + is_active: true + is_control: false + key: treatment + weight: 50 properties: - api_key: - description: The API key for the Fastly account. - example: "ABCDEFG123" + assignments_end_date: + description: End of the window assignments are read from. Optional; must be after assignments_start_date. + example: "2026-08-15T00:00:00Z" + format: date-time + nullable: true + type: string + assignments_start_date: + description: Start of the window assignments are read from. Optional. + example: "2026-08-01T00:00:00Z" + format: date-time + nullable: true + type: string + datadog_flag_configuration: + $ref: "#/components/schemas/ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfiguration" + decision_metrics: + description: "Metrics selected to support the experiment decision." + example: + - is_primary: true + metric_id: b1a2c3d4-0000-0000-0000-000000000000 + items: + $ref: "#/components/schemas/ExperimentsCreateExperimentV2RequestDataAttributesDecisionMetricsItems" + type: array + events_end_date: + description: End of the window metric events are read from. Optional; must be after events_start_date. + example: "2026-08-22T00:00:00Z" + format: date-time + nullable: true + type: string + events_start_date: + description: >- + Start of the window metric events are read from. Optional; must fall within the assignments window. + example: "2026-08-01T00:00:00Z" + format: date-time + nullable: true type: string + hypothesis: + description: What the experiment is expected to show. Optional and free-form. + type: string + migration_metadata: + description: "Metadata associated with migration of this resource." name: - description: The name of the Fastly account. - example: "test-name" + description: >- + Display name for the experiment. The only required attribute: a request carrying nothing but a name is accepted. + example: Checkout button test type: string - services: - description: A list of services belonging to the parent account. + protocol_id: + description: >- + Published protocol whose defaults create this draft. May be combined with hypothesis, tags, teams, related links, and date overrides. Omit subject_type_id, decision_metrics, variants, warehouse_exposure_configuration, datadog_flag_configuration, traffic_exposure, and structured_metadata. + type: string + related_links: + description: "External links associated with the experiment." items: - $ref: "#/components/schemas/FastlyService" + $ref: "#/components/schemas/ExperimentsCreateExperimentV2RequestDataAttributesRelatedLinksItems" + type: array + split_by_properties: + description: >- + Complete Datadog split-by selection. Identify each property by column_name. Omit this field to copy organization defaults. + items: + $ref: "#/components/schemas/ExperimentsCreateExperimentV2RequestDataAttributesSplitByPropertiesItems" + type: array + structured_metadata: + description: "Custom metadata fields and their values for the experiment." + example: + - enum_values: + - beta + field_key: launch_stage + - field_key: notes + freetext_value: Checkout redesign + items: + $ref: "#/components/schemas/ExperimentsCreateExperimentV2RequestDataAttributesStructuredMetadataItems" + type: array + subject_type_id: + description: Canonical ID of an existing subject type. Optional; defaults to the organization default. + example: c2b3d4e5-0000-0000-0000-000000000000 + format: uuid + type: string + summary: + description: Summary of the experiment. Optional and free-form. + type: string + tags: + description: Non-team tag names to apply. Optional. + items: + description: Non-team tag names to apply. Optional. + type: string + type: array + teams: + description: Team handles that own the experiment. Optional. + items: + description: Team handles that own the experiment. Optional. + type: string type: array + traffic_exposure: + $ref: "#/components/schemas/ExperimentsPatchExperimentV2ResponseDataAttributesTrafficExposure" + variants: + description: "Variants selected for the experiment and their traffic allocations." + example: + - feature_flag_variant_id: 550e8400-e29b-41d4-a716-446655440010 + is_active: true + is_control: true + key: control + weight: 50 + - feature_flag_variant_id: 550e8400-e29b-41d4-a716-446655440011 + is_active: true + is_control: false + key: treatment + weight: 50 + items: + $ref: "#/components/schemas/ExperimentsCreateExperimentV2RequestDataAttributesVariantsItems" + type: array + warehouse_exposure_configuration: + $ref: "#/components/schemas/ExperimentsCreateExperimentV2RequestDataAttributesWarehouseExposureConfiguration" required: - - api_key - name type: object - FastlyAccountCreateRequestData: - description: Data object for creating a Fastly account. + ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfiguration: + description: "Feature flag, environment, and targeting configuration for a Datadog experiment." + example: + entry_point: + environment_id: 550e8400-e29b-41d4-a716-446655440005 + feature_flag_id: 550e8400-e29b-41d4-a716-446655440004 + targeting_rules: [] + nullable: true properties: - attributes: - $ref: "#/components/schemas/FastlyAccountCreateRequestAttributes" - type: - $ref: "#/components/schemas/FastlyAccountType" + entry_point: + $ref: >- + #/components/schemas/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPoint + environment_id: + description: "Identifier of the feature flag environment." + example: 550e8400-e29b-41d4-a716-446655440005 + format: uuid + type: string + feature_flag_id: + description: "Identifier of the Datadog feature flag used by the experiment." + example: 550e8400-e29b-41d4-a716-446655440004 + format: uuid + type: string + reset_on_feature_flag_change: + description: Accepted on create but has no effect. + type: boolean + targeting_rules: + description: Use an empty array when no targeting rules apply. + example: [] + items: + $ref: >- + #/components/schemas/ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfigurationTargetingRulesItems + type: array required: - - attributes - - type + - entry_point + - environment_id + - feature_flag_id + - targeting_rules type: object - FastlyAccountResponse: - description: The expected response schema when getting a Fastly account. + ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfigurationTargetingRulesItems: + description: Use an empty array when no targeting rules apply. properties: - data: - $ref: "#/components/schemas/FastlyAccountResponseData" + conditions: + description: >- + Conditions that must all match for this rule. Each condition must use exactly one shape: saved_filter_id alone or operator plus attribute plus value. + example: [] + items: + $ref: "#/components/schemas/ExperimentsTargetingRuleCondition" + type: array + required: + - conditions type: object - FastlyAccountResponseData: - description: Data object of a Fastly account. + ExperimentsCreateExperimentV2RequestDataAttributesDecisionMetricsItems: + description: "Metric used to make an experiment decision, with its primary metric designation." + example: + is_primary: true + metric_id: b1a2c3d4-0000-0000-0000-000000000000 properties: - attributes: - $ref: "#/components/schemas/FastlyAccounResponseAttributes" - id: - description: The ID of the Fastly account, a hash of the account name. - example: "abc123" + is_primary: + description: Whether this is the experiment primary metric. + example: true + type: boolean + metric_id: + description: Decision metric UUID. + example: b1a2c3d4-0000-0000-0000-000000000000 + format: uuid type: string - type: - $ref: "#/components/schemas/FastlyAccountType" required: - - attributes - - id - - type + - is_primary + - metric_id type: object - FastlyAccountType: - default: fastly-accounts - description: The JSON:API type for this API. Should always be `fastly-accounts`. - enum: - - fastly-accounts - example: fastly-accounts - type: string - x-enum-varnames: - - FASTLY_ACCOUNTS - FastlyAccountUpdateRequest: - description: Payload schema when updating a Fastly account. + ExperimentsCreateExperimentV2RequestDataAttributesRelatedLinksItems: + description: "External link associated with an experiment." properties: - data: - $ref: "#/components/schemas/FastlyAccountUpdateRequestData" + id: + description: Link ID. Omit it when adding a link. + nullable: true + type: string + title: + description: Optional display title. + nullable: true + type: string + url: + description: Absolute URL. + example: https://example.com + type: string required: - - data + - url type: object - FastlyAccountUpdateRequestAttributes: - description: Attributes object for updating a Fastly account. + ExperimentsCreateExperimentV2RequestDataAttributesSplitByPropertiesItems: + description: >- + Complete Datadog split-by selection. Identify each property by column_name. Omit this field to copy organization defaults. properties: - api_key: - description: The API key of the Fastly account. - example: "ABCDEFG123" + column_name: + description: Exposure field that identifies the property. + example: column name type: string + column_type: + $ref: >- + #/components/schemas/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsColumnType name: - description: The name of the Fastly account. + description: Optional display name. Defaults to column_name for a new property. type: string + required: + - column_name type: object - FastlyAccountUpdateRequestData: - description: Data object for updating a Fastly account. - properties: - attributes: - $ref: "#/components/schemas/FastlyAccountUpdateRequestAttributes" - type: - $ref: "#/components/schemas/FastlyAccountType" - type: object - FastlyAccountsResponse: - description: The expected response schema when getting Fastly accounts. + ExperimentsCreateExperimentV2RequestDataAttributesStructuredMetadataItems: + description: "Metadata field key and values to set on the experiment." + example: + enum_values: + - beta + field_key: launch_stage properties: - data: - description: The JSON:API data schema. + enum_values: + description: "Selected values for an enumerated metadata field." + example: + - beta items: - $ref: "#/components/schemas/FastlyAccountResponseData" + description: "One selected value for the metadata field." + example: beta + type: string type: array - type: object - FastlyCredentials: - description: The definition of the `FastlyCredentials` object. - oneOf: - - $ref: "#/components/schemas/FastlyAPIKey" - FastlyCredentialsUpdate: - description: The definition of the `FastlyCredentialsUpdate` object. - oneOf: - - $ref: "#/components/schemas/FastlyAPIKeyUpdate" - FastlyIntegration: - description: The definition of the `FastlyIntegration` object. - properties: - credentials: - $ref: "#/components/schemas/FastlyCredentials" - type: - $ref: "#/components/schemas/FastlyIntegrationType" + field_key: + description: "Key that identifies the metadata field." + example: launch_stage + type: string + freetext_value: + description: "Text value for a free-text metadata field." + type: string required: - - type - - credentials + - field_key type: object - FastlyIntegrationType: - description: The definition of the `FastlyIntegrationType` object. + ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureMode: + description: "Whether exposure uses a fixed fraction or a sequence of steps." enum: - - Fastly - example: Fastly + - STATIC + - STEPS + example: STATIC type: string x-enum-varnames: - - FASTLY - FastlyIntegrationUpdate: - description: The definition of the `FastlyIntegrationUpdate` object. + - STATIC + - STEPS + ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureStepsItems: + description: >- + Configured exposure plan rather than wall-clock history. At least two steps must have strictly increasing fractions and no gaps. Warehouse steps start at assignments_start_date and can use different durations. New Datadog plans have at most five steps and a first fraction above zero. Their nonfinal durations must be equal and exclude time paused. Datadog steps start with the experiment. Running warehouse experiments can replace step fractions, durations, and the exposure mode. After start, Datadog exposure plans cannot change through the public API. The final duration is null and its fraction holds until assignment ends. properties: - credentials: - $ref: "#/components/schemas/FastlyCredentialsUpdate" - type: - $ref: "#/components/schemas/FastlyIntegrationType" + duration_ms: + description: >- + Positive step duration in milliseconds. Datadog durations exclude pauses. Send null for the final step. + example: + format: int64 + nullable: true + type: integer + fraction: + description: "Fraction of traffic exposed during this step." + example: 0 + format: double + type: number required: - - type + - duration_ms + - fraction type: object - FastlyService: - description: The schema representation of a Fastly service. + ExperimentsCreateExperimentV2RequestDataAttributesVariantsItems: + description: "Variant selected for an experiment, with its identity and traffic allocation." + example: + feature_flag_variant_id: 550e8400-e29b-41d4-a716-446655440010 + is_active: true + is_control: true + key: control + weight: 50 properties: - id: - description: The ID of the Fastly service - example: 6abc7de6893AbcDe9fghIj + feature_flag_variant_id: + description: >- + Stable backing flag variant ID. Required for Datadog-backed experiments and omitted for Warehouse-only experiments. + example: 550e8400-e29b-41d4-a716-446655440010 + format: uuid type: string - tags: - description: A list of tags for the Fastly service. - example: - - myTag - - myTag2:myValue - items: - description: A tag for the Fastly service. - type: string - type: array + is_active: + description: >- + Whether this variant participates in the experiment. Responses always include this field. On writes an included variant defaults to active; omit its row to remove or unselect it. Explicit false supports sending an unchanged response back. + example: true + type: boolean + is_control: + description: Whether this is the single control variant. + example: true + type: boolean + key: + description: Assignment value. Datadog flag variant keys are server-owned. + example: control + type: string + name: + description: Display name. Datadog flag variant names are server-owned. + nullable: true + type: string + weight: + description: >- + Traffic allocation percentage. Existing variant weights cannot change through the public API after the experiment starts. + example: 50 + format: double + type: number required: - - id - type: object - FastlyServiceAttributes: - description: Attributes object for Fastly service requests. - properties: - tags: - description: A list of tags for the Fastly service. - example: - - myTag - - myTag2:myValue - items: - description: A tag for the Fastly service. - type: string - type: array + - is_control + - key + - weight type: object - FastlyServiceData: - description: Data object for Fastly service requests. + ExperimentsCreateExperimentV2RequestDataAttributesWarehouseExposureConfiguration: + description: "Warehouse model and experiment key used to read assignment data." + example: + entry_point: + experiment_key: checkout_button_test + exposure_sql_model_id: f5e6a7b8-0000-0000-0000-000000000000 + nullable: true properties: - attributes: - $ref: "#/components/schemas/FastlyServiceAttributes" - id: - description: The ID of the Fastly service. - example: "abc123" + entry_point: + $ref: >- + #/components/schemas/ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPoint + experiment_key: + description: Warehouse experiment key. Must not be blank. + example: checkout_button_test + maxLength: 255 + minLength: 1 + pattern: ".*\\S.*" + type: string + exposure_sql_model_id: + description: ID of the exposure SQL model that provides assignment data. + example: f5e6a7b8-0000-0000-0000-000000000000 type: string - type: - $ref: "#/components/schemas/FastlyServiceType" required: - - id - - type + - entry_point + - experiment_key + - exposure_sql_model_id type: object - FastlyServiceRequest: - description: Payload schema for Fastly service requests. + ExperimentsCreateExposureSQLModelV2Request: + description: "Request to create a SQL model for experiment assignment data." + example: + data: + attributes: + date_partition_column: + experiment_column: experiment_id + name: Exposure events + properties: + - column_name: country + column_type: STRING + description: + name: country + sql: SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + timestamp_column: exposed_at + variant_column: variant + type: exposure-sql-models properties: data: - $ref: "#/components/schemas/FastlyServiceData" + $ref: "#/components/schemas/ExperimentsCreateExposureSQLModelV2RequestData" required: - data type: object - FastlyServiceResponse: - description: The expected response schema when getting a Fastly service. + ExperimentsCreateExposureSQLModelV2RequestData: + description: "Exposure SQL model resource to create." + example: + attributes: + date_partition_column: + experiment_column: experiment_id + name: Exposure events + properties: + - column_name: country + column_type: STRING + description: + name: country + sql: SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + timestamp_column: exposed_at + variant_column: variant + type: exposure-sql-models properties: - data: - $ref: "#/components/schemas/FastlyServiceData" + attributes: + $ref: "#/components/schemas/ExperimentsUpdateExposureSQLModelV2RequestDataAttributes" + id: + description: "Optional JSON:API resource identifier field." + type: string + type: + $ref: "#/components/schemas/ExperimentsUpdateExposureSQLModelV2RequestDataType" + required: + - type + - attributes type: object - FastlyServiceType: - default: fastly-services - description: The JSON:API type for this API. Should always be `fastly-services`. + ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType: + description: "Data type of a column in the SQL model." enum: - - fastly-services - example: fastly-services + - STRING + - INTEGER + - FLOAT + - BOOLEAN + - DATE + - TIMESTAMP + example: STRING type: string x-enum-varnames: - - FASTLY_SERVICES - FastlyServicesResponse: - description: The expected response schema when getting Fastly services. + - STRING + - INTEGER + - FLOAT + - BOOLEAN + - DATE + - TIMESTAMP + ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems: + description: "Mapping between a subject type and its identifier column in the SQL model." + example: + column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + properties: + column_name: + description: "SQL result column that contains the subject identifier." + example: user_id + type: string + subject_type_id: + description: "Identifier of the subject type mapped to this column." + example: 550e8400-e29b-41d4-a716-446655440010 + type: string + required: + - column_name + - subject_type_id + type: object + ExperimentsCreateMetricCollectionV2Request: + description: "Request to create a reusable collection of metrics." + example: + data: + attributes: + name: Activation + type: metric-collections properties: data: - description: The JSON:API data schema. - items: - $ref: "#/components/schemas/FastlyServiceData" - type: array + $ref: "#/components/schemas/ExperimentsCreateMetricCollectionV2RequestData" + required: + - data type: object - FeatureFlag: - description: A feature flag resource. + ExperimentsCreateMetricCollectionV2RequestData: + description: "Metric collection resource to create." + example: + attributes: + name: Activation + type: metric-collections properties: attributes: - $ref: "#/components/schemas/FeatureFlagAttributes" + $ref: "#/components/schemas/ExperimentsCreateMetricCollectionV2RequestDataAttributes" id: - description: The unique identifier of the feature flag. - example: "550e8400-e29b-41d4-a716-446655440000" - format: uuid + description: "Optional JSON:API resource identifier field." type: string type: - $ref: "#/components/schemas/CreateFeatureFlagDataType" + $ref: "#/components/schemas/ExperimentsPatchMetricCollectionV2RequestDataType" required: - - id - - type - attributes + - type type: object - FeatureFlagAttributes: - description: Attributes of a feature flag. + ExperimentsCreateMetricCollectionV2RequestDataAttributes: + description: "Name, description, and metric selection for the new collection." + example: + name: Activation properties: - archived_at: - description: The timestamp when the feature flag was archived. - example: "2023-01-01T00:00:00Z" - format: date-time - nullable: true - type: string - created_at: - description: The timestamp when the feature flag was created. - example: "2023-01-01T00:00:00Z" - format: date-time - type: string - created_by: - description: The ID of the user who created the feature flag. - example: "550e8400-e29b-41d4-a716-446655440010" - format: uuid - type: string description: - description: The description of the feature flag. - example: "This is an example feature flag for demonstration" - type: string - distribution_channel: - description: Distribution channel for the feature flag. - example: "ALL" - type: string - feature_flag_environments: - description: Environment-specific settings for the feature flag. - items: - $ref: "#/components/schemas/FeatureFlagEnvironment" - type: array - json_schema: - description: JSON schema for validation when value_type is JSON. - example: '{"type": "object", "properties": {"enabled": {"type": "boolean"}}}' + description: "Description of the metric collection." nullable: true type: string - key: - description: The unique key of the feature flag. - example: "feature-flag-abc123" - type: string - last_updated_by: - description: The ID of the user who last updated the feature flag. - example: "550e8400-e29b-41d4-a716-446655440010" - format: uuid - type: string - name: - description: The name of the feature flag. - example: "Feature Flag ABC123" - type: string - require_approval: - description: Indicates whether this feature flag requires approval for changes. - example: false + is_guardrail: + description: "Whether the collection is designated as a guardrail collection." type: boolean - staleness_status: - description: Indicates the whether a feature flag is stale or not. - example: "ACTIVE" - type: string - tags: - description: Tags associated with the feature flag. - example: [] + metrics: + description: "Metrics to include in the collection." items: - description: A tag associated with the feature flag. - type: string + $ref: "#/components/schemas/ExperimentsCreateMetricCollectionV2RequestDataAttributesMetricsItems" type: array - updated_at: - description: The timestamp when the feature flag was last updated. - example: "2023-01-01T00:00:00Z" - format: date-time + name: + description: "Display name of the metric collection." + example: Checkout conversion type: string - value_type: - $ref: "#/components/schemas/ValueType" - variants: - description: The variants of the feature flag. - items: - $ref: "#/components/schemas/Variant" - type: array required: - - key - name - - description - - value_type - - variants type: object - FeatureFlagDistributionChannel: - description: The distribution channel for the feature flag. - enum: - - ALL - - CLIENT - - SERVER - example: "ALL" - type: string - x-enum-varnames: - - ALL - - CLIENT - - SERVER - FeatureFlagEnvironment: - description: Environment-specific settings for a feature flag. + ExperimentsCreateMetricCollectionV2RequestDataAttributesMetricsItems: + description: "Reference to a metric to include in the collection." properties: - allocations: - additionalProperties: {} - description: Allocation metadata for this environment. - nullable: true - type: object - default_allocation_key: - description: The allocation key used for the default variant. - example: "allocation-default-123abc" - type: string - default_variant_id: - description: The ID of the default variant for this environment. - example: "550e8400-e29b-41d4-a716-446655440002" - nullable: true - type: string - environment_id: - description: The ID of the environment. - example: "550e8400-e29b-41d4-a716-446655440001" + metric_id: + description: "Identifier of the metric to include in the collection." + example: 550e8400-e29b-41d4-a716-446655440000 format: uuid type: string - environment_name: - description: The name of the environment. - example: "env-search-term" - type: string - environment_queries: - description: Queries that target this environment. + required: + - metric_id + type: object + ExperimentsCreateMetricNumeratorAttributes: + additionalProperties: false + description: >- + Configuration for a metric calculated from a numerator and an optional denominator. Omit percentile_aggregation. Omit denominator_aggregation when unused. + example: + data_source_type: CUSTOMER_WAREHOUSE + description: + desired_change: METRIC_INCREASES + format_as_percent: true + guardrail_cutoff_threshold: + name: Checkout conversion + numerator_aggregation: + operation: sum + property_filters: + - - operation: IS + property_id: 550e8400-e29b-41d4-a716-446655440023 + values: + - US + timeframe_start_value: 0 + warehouse_metric_measure: + id: 550e8400-e29b-41d4-a716-446655440021 + properties: + data_source_type: + $ref: "#/components/schemas/ExperimentsCreateMetricV2RequestDataAttributesDataSourceType" + denominator_aggregation: + $ref: "#/components/schemas/ExperimentsCreateMetricV2RequestDataAttributesNumeratorAggregation" + description: + description: Description of the metric. Send null to leave it unset. example: - - "test-feature-flag" - - "env-search-term" - items: - description: A query string targeting the environment. - type: string - type: array - is_production: - description: Indicates whether the environment is production. - example: false - type: boolean - override_allocation_key: - description: The allocation key used for the override variant. - example: "allocation-override-123abc" - type: string - override_variant_id: - description: The ID of the override variant for this environment. - example: "550e8400-e29b-41d4-a716-446655440003" nullable: true type: string - pending_suggestion_id: - description: Pending suggestion identifier, if approval is required. - example: "550e8400-e29b-41d4-a716-446655440099" + desired_change: + $ref: "#/components/schemas/ExperimentsCreateMetricV2RequestDataAttributesDesiredChange" + format_as_percent: + description: Whether results render as a percentage. Defaults to false when omitted. + example: true + type: boolean + guardrail_cutoff_threshold: + description: Guardrail cutoff threshold. Send null to leave it unset. + example: + format: double nullable: true + type: number + migration_metadata: + description: Metadata associated with migration of this resource. + name: + description: Name of the metric. + example: Checkout conversion type: string - require_feature_flag_approval: - description: Indicates whether feature flag changes require approval in this environment. - example: false - type: boolean - status: - $ref: "#/components/schemas/FeatureFlagStatus" + numerator_aggregation: + $ref: "#/components/schemas/ExperimentsCreateMetricV2RequestDataAttributesNumeratorAggregation" required: - - environment_id - - status + - data_source_type + - desired_change + - name + - numerator_aggregation type: object - FeatureFlagEnvironmentListItem: - description: Environment-specific settings for a feature flag in list responses. - properties: - default_allocation_key: - description: The allocation key used for the default variant. - example: "allocation-default-123abc" - type: string - default_variant_id: - description: The ID of the default variant for this environment. - example: "550e8400-e29b-41d4-a716-446655440002" - nullable: true - type: string - environment_id: - description: The ID of the environment. - example: "550e8400-e29b-41d4-a716-446655440001" - format: uuid - type: string - environment_name: - description: The name of the environment. - example: "env-search-term" - type: string - environment_queries: - description: Queries that target this environment. + ExperimentsCreateMetricPercentileAttributes: + additionalProperties: false + description: Configuration for a percentile metric. Omit numerator_aggregation and denominator_aggregation. + example: + data_source_type: CUSTOMER_WAREHOUSE + description: + desired_change: METRIC_INCREASES + format_as_percent: true + guardrail_cutoff_threshold: + name: Checkout conversion + percentile_aggregation: + percentile: 0.95 + warehouse_metric_measure: + id: 550e8400-e29b-41d4-a716-446655440021 + properties: + data_source_type: + $ref: "#/components/schemas/ExperimentsCreateMetricV2RequestDataAttributesDataSourceType" + description: + description: Description of the metric. Send null to leave it unset. example: - - "test-feature-flag" - - "env-search-term" - items: - description: A query string targeting the environment. - type: string - type: array - is_production: - description: Indicates whether the environment is production. - example: false - type: boolean - override_allocation_key: - description: The allocation key used for the override variant. - example: "allocation-override-123abc" - type: string - override_variant_id: - description: The ID of the override variant for this environment. - example: "550e8400-e29b-41d4-a716-446655440003" nullable: true type: string - pending_suggestion_id: - description: Pending suggestion identifier, if approval is required. - example: "550e8400-e29b-41d4-a716-446655440099" + desired_change: + $ref: "#/components/schemas/ExperimentsCreateMetricV2RequestDataAttributesDesiredChange" + format_as_percent: + description: Whether results render as a percentage. Defaults to false when omitted. + example: true + type: boolean + guardrail_cutoff_threshold: + description: Guardrail cutoff threshold. Send null to leave it unset. + example: + format: double nullable: true + type: number + migration_metadata: + description: Metadata associated with migration of this resource. + name: + description: Name of the metric. + example: Checkout conversion type: string - require_feature_flag_approval: - description: Indicates whether feature flag changes require approval in this environment. - example: false - type: boolean - status: - $ref: "#/components/schemas/FeatureFlagStatus" + percentile_aggregation: + $ref: "#/components/schemas/ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregation" required: - - environment_id - - status + - data_source_type + - desired_change + - name + - percentile_aggregation type: object - FeatureFlagListItem: - description: A feature flag resource for list responses. + ExperimentsCreateMetricSQLModelV2Request: + description: "Request to create a SQL model that supplies metric data." + example: + data: + attributes: + date_partition_column: + description: + measures: + - column_name: revenue + column_type: FLOAT + description: + name: + name: Order facts + properties: + - column_name: item_type + column_type: STRING + description: + name: item_type + sql: SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + timestamp_column: created_at + type: metric-sql-models properties: + data: + $ref: "#/components/schemas/ExperimentsCreateMetricSQLModelV2RequestData" + required: + - data + type: object + ExperimentsCreateMetricSQLModelV2RequestData: + description: "Metric SQL model resource to create." + example: attributes: - $ref: "#/components/schemas/FeatureFlagListItemAttributes" + date_partition_column: + description: + measures: + - column_name: revenue + column_type: FLOAT + description: + name: + name: Order facts + properties: + - column_name: item_type + column_type: STRING + description: + name: item_type + sql: SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + timestamp_column: created_at + type: metric-sql-models + properties: + attributes: + $ref: "#/components/schemas/ExperimentsUpdateMetricSQLModelV2RequestDataAttributes" id: - description: The unique identifier of the feature flag. - example: "550e8400-e29b-41d4-a716-446655440000" - format: uuid + description: "Optional JSON:API resource identifier field." type: string type: - $ref: "#/components/schemas/CreateFeatureFlagDataType" + $ref: "#/components/schemas/ExperimentsUpdateMetricSQLModelV2RequestDataType" required: - - id - type - attributes type: object - FeatureFlagListItemAttributes: - description: Attributes of a feature flag in list responses. + ExperimentsCreateMetricSQLModelV2RequestDataAttributesMeasuresItems: + description: "Column in the SQL model that supplies values for a metric measure." + example: + column_name: revenue + column_type: FLOAT + description: + name: properties: - archived_at: - description: The timestamp when the feature flag was archived. - example: "2023-01-01T00:00:00Z" - format: date-time - nullable: true - type: string - created_at: - description: The timestamp when the feature flag was created. - example: "2023-01-01T00:00:00Z" - format: date-time - type: string - created_by: - description: The ID of the user who created the feature flag. - example: "550e8400-e29b-41d4-a716-446655440010" - format: uuid + column_name: + description: "SQL result column that contains the measure values." + example: revenue type: string + column_type: + $ref: "#/components/schemas/ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType" description: - description: The description of the feature flag. - example: "This is an example feature flag for demonstration" - type: string - distribution_channel: - description: Distribution channel for the feature flag. - example: "ALL" - type: string - feature_flag_environments: - description: Environment-specific settings for the feature flag. - items: - $ref: "#/components/schemas/FeatureFlagEnvironmentListItem" - type: array - json_schema: - description: JSON schema for validation when value_type is JSON. - example: '{"type": "object", "properties": {"enabled": {"type": "boolean"}}}' + description: "Description of the measure." + example: nullable: true type: string - key: - description: The unique key of the feature flag. - example: "feature-flag-abc123" - type: string - last_updated_by: - description: The ID of the user who last updated the feature flag. - example: "550e8400-e29b-41d4-a716-446655440010" - format: uuid - type: string + migration_metadata: + description: "Metadata associated with migration of this resource." name: - description: The name of the feature flag. - example: "Feature Flag ABC123" - type: string - require_approval: - description: Indicates whether this feature flag requires approval for changes. - example: false - type: boolean - staleness_status: - description: Indicates the staleness status of the feature flag. - example: "ACTIVE" - type: string - tags: - description: Tags associated with the feature flag. - example: [] - items: - description: A tag associated with the feature flag. - type: string - type: array - updated_at: - description: The timestamp when the feature flag was last updated. - example: "2023-01-01T00:00:00Z" - format: date-time + description: "Display name of the measure." + example: + nullable: true type: string - value_type: - $ref: "#/components/schemas/ValueType" - variants: - description: The variants of the feature flag. - items: - $ref: "#/components/schemas/Variant" - type: array required: - - key - - name - - description - - value_type - - variants + - column_name + - column_type type: object - FeatureFlagResponse: - description: Response containing a feature flag. + ExperimentsCreateMetricV2Request: + description: "Request to create an experiment metric." + example: + data: + attributes: + data_source_type: CUSTOMER_WAREHOUSE + description: + desired_change: METRIC_INCREASES + format_as_percent: true + guardrail_cutoff_threshold: + name: Checkout conversion + numerator_aggregation: + operation: sum + property_filters: + - - operation: IS + property_id: 550e8400-e29b-41d4-a716-446655440023 + values: + - US + timeframe_start_value: 0 + warehouse_metric_measure: + id: 550e8400-e29b-41d4-a716-446655440021 + type: metrics properties: data: - $ref: "#/components/schemas/FeatureFlag" + $ref: "#/components/schemas/ExperimentsCreateMetricV2RequestData" required: - data type: object - FeatureFlagStatus: - description: The status of a feature flag in an environment. - enum: - - ENABLED - - DISABLED - example: "ENABLED" - type: string - x-enum-varnames: - - ENABLED - - DISABLED - FeatureFlagsPaginationMeta: - description: Pagination metadata for feature flags. + ExperimentsCreateMetricV2RequestData: + description: "Metric resource to create." + example: + attributes: + data_source_type: CUSTOMER_WAREHOUSE + description: + desired_change: METRIC_INCREASES + format_as_percent: true + guardrail_cutoff_threshold: + name: Checkout conversion + numerator_aggregation: + operation: sum + property_filters: + - - operation: IS + property_id: 550e8400-e29b-41d4-a716-446655440023 + values: + - US + timeframe_start_value: 0 + warehouse_metric_measure: + id: 550e8400-e29b-41d4-a716-446655440021 + type: metrics properties: - page: - $ref: "#/components/schemas/FeatureFlagsPaginationMetaPage" + attributes: + $ref: "#/components/schemas/ExperimentsCreateMetricV2RequestDataAttributes" + type: + $ref: "#/components/schemas/MetricType" + required: + - type + - attributes type: object - FeatureFlagsPaginationMetaPage: - description: Pagination metadata for feature flags list responses. + ExperimentsCreateMetricV2RequestDataAttributes: + description: >- + Configuration for the new metric. Supply either numerator_aggregation or percentile_aggregation. A denominator_aggregation requires numerator_aggregation. Omit unused aggregation fields; do not send them as null. + example: + data_source_type: CUSTOMER_WAREHOUSE + description: + desired_change: METRIC_INCREASES + format_as_percent: true + guardrail_cutoff_threshold: + name: Checkout conversion + numerator_aggregation: + operation: sum + property_filters: + - - operation: IS + property_id: 550e8400-e29b-41d4-a716-446655440023 + values: + - US + timeframe_start_value: 0 + warehouse_metric_measure: + id: 550e8400-e29b-41d4-a716-446655440021 + oneOf: + - $ref: "#/components/schemas/ExperimentsCreateMetricNumeratorAttributes" + - $ref: "#/components/schemas/ExperimentsCreateMetricPercentileAttributes" + ExperimentsCreateMetricV2RequestDataAttributesDataSourceType: + description: Source of the data backing this metric. + enum: + - DATADOG + - DATADOG_REFERENCE_TABLE + - CUSTOMER_WAREHOUSE + example: CUSTOMER_WAREHOUSE + type: string + x-enum-varnames: + - DATADOG + - DATADOG_REFERENCE_TABLE + - CUSTOMER_WAREHOUSE + ExperimentsCreateMetricV2RequestDataAttributesDesiredChange: + description: "Direction of change that represents an improvement for this metric." + enum: + - METRIC_INCREASES + - METRIC_DECREASES + example: METRIC_INCREASES + type: string + x-enum-varnames: + - METRIC_INCREASES + - METRIC_DECREASES + ExperimentsCreateMetricV2RequestDataAttributesNumeratorAggregation: + description: >- + Measure and calculation settings for a numerator or denominator aggregation. Supply exactly one non-null measure. + example: + operation: sum + property_filters: + - - operation: IS + property_id: 550e8400-e29b-41d4-a716-446655440023 + values: + - US + timeframe_start_value: 0 + warehouse_metric_measure: + id: 550e8400-e29b-41d4-a716-446655440021 + oneOf: + - $ref: "#/components/schemas/ExperimentsWarehouseMetricAggregationInput" + - $ref: "#/components/schemas/ExperimentsDatadogMetricAggregationInput" + ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregation: + description: Measure and percentile to calculate for the metric. Supply exactly one non-null measure. + oneOf: + - $ref: "#/components/schemas/ExperimentsWarehousePercentileAggregationInput" + - $ref: "#/components/schemas/ExperimentsDatadogPercentileAggregationInput" + ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregationWarehouseMetricMeasure: + description: "Reference to a measure defined in a warehouse metric SQL model." properties: - total_count: - description: Total number of items. - example: 100 - format: int64 - type: integer - total_filtered_count: - description: Total number of items matching the filter. - example: 25 - format: int64 - type: integer + id: + description: "Identifier of the warehouse metric measure." + example: 550e8400-e29b-41d4-a716-446655440021 + format: uuid + type: string + required: + - id type: object - FileCoverageLines: - description: Per-file line coverage data including executable, covered, and added lines. + ExperimentsCreateSubjectTypeV2Request: + description: "Request to create a subject type for experiment assignments." + example: + data: + attributes: + name: User + product_analytics_attribute: "@usr.id" + warehouse_column_names: + - user_id + - customer_id + type: subject-types properties: - added_lines: - description: Line numbers that were added in the specified scope (for example, in a PR diff). - example: [11, 12] + data: + $ref: "#/components/schemas/ExperimentsCreateSubjectTypeV2RequestData" + required: + - data + type: object + ExperimentsCreateSubjectTypeV2RequestData: + description: "Subject type resource to create." + example: + attributes: + name: User + product_analytics_attribute: "@usr.id" + warehouse_column_names: + - user_id + - customer_id + type: subject-types + properties: + attributes: + $ref: "#/components/schemas/ExperimentsCreateSubjectTypeV2RequestDataAttributes" + id: + description: "Optional JSON:API resource identifier field." + type: string + type: + $ref: "#/components/schemas/ExperimentsSubjectTypeV2DTODataType" + required: + - type + - attributes + type: object + ExperimentsCreateSubjectTypeV2RequestDataAttributes: + description: "Name and data field mappings for the new subject type." + example: + name: User + product_analytics_attribute: "@usr.id" + warehouse_column_names: + - user_id + - customer_id + properties: + migration_metadata: + description: "Metadata associated with migration of this resource." + name: + description: "Display name of the subject type." + example: User + maxLength: 40 + minLength: 3 + pattern: ".*\\S.*" + type: string + product_analytics_attribute: + description: "Product Analytics attribute used to identify subjects of this type." + example: "@usr.id" + type: string + warehouse_column_names: + description: "Warehouse column names associated with this subject type." + example: + - user_id + - customer_id items: - format: int64 - type: integer + description: "One warehouse column name associated with the subject type." + example: user_id + type: string type: array - covered_lines: - description: Line numbers that were covered by tests. - example: [10, 11, 15] + required: + - name + type: object + ExperimentsDatadogEntryPointFilter: + description: Complete Datadog OR-of-ANDs entry-point filter expression. + properties: + column: + description: "Exposure field evaluated by the entry-point filter." + example: column + type: string + column_type: + $ref: >- + #/components/schemas/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsColumnType + operation: + $ref: >- + #/components/schemas/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsOperation + values: + description: "Comparison values used by the filter operation." + example: [] items: - format: int64 - type: integer + description: "One comparison value for the filter." + type: string type: array - executable_lines: - description: Line numbers that are executable (can be covered). - example: [10, 11, 12, 15, 20] + required: + - column + - column_type + - operation + - values + type: object + ExperimentsDatadogEntryPointFilterGroup: + description: Entry-point filters combined with AND. + items: + $ref: "#/components/schemas/ExperimentsDatadogEntryPointFilter" + type: array + ExperimentsDatadogMetricAggregationInput: + description: >- + Settings for a metric aggregation that uses a Datadog measure. The other measure must be omitted or null. + properties: + aging_threshold_days: + description: >- + Stored aging threshold in days. The subject aging filter uses the aggregation window end and unit. + format: int64 + type: integer + datadog_metric_measure: + $ref: "#/components/schemas/ExperimentsDatadogMetricMeasureInput" + enable_aging_subject_filter: + description: Whether to exclude subjects whose observation time is shorter than the aggregation window. + type: boolean + operation: + description: Calculation applied to the measure values, such as sum. + example: sum + minLength: 1 + pattern: \S + type: string + property_filters: + description: Property filters that select data for this aggregation. + example: + - - operation: IS + property_id: 550e8400-e29b-41d4-a716-446655440023 + values: + - US items: - format: int64 - type: integer + $ref: "#/components/schemas/ExperimentsPropertyFilterInputGroup" + nullable: true + type: array + threshold_aggregation_type: + description: Calculation used to evaluate the threshold. + type: string + threshold_breach_value: + description: Value used to determine whether the threshold is breached. + format: double + type: number + threshold_comparison_operator: + description: Operator used to compare the calculated value with the threshold. + type: string + threshold_timeframe_dimension: + description: |- + Time unit for the threshold evaluation window. Supports seconds, minutes, hours, days, calendar_days, and + weeks. Calendar days start at midnight on the assignment day. Other units start at the assignment time. + type: string + threshold_timeframe_value: + description: End of the threshold evaluation window, measured from assignment in the configured time unit. + format: double + type: number + timeframe_end_value: + description: End offset of the aggregation window from assignment, in timeframe_unit. + format: double + type: number + timeframe_start_value: + description: Start offset of the aggregation window from assignment, in timeframe_unit. + example: 0 + format: double + type: number + timeframe_unit: + description: |- + Time unit for the aggregation window. Calendar days are measured from midnight on the assignment day. + Other units are measured from the assignment time. + type: string + warehouse_metric_measure: + $ref: "#/components/schemas/ExperimentsNullableWarehouseMetricMeasureInput" + winsor_lower_fixed_value: + description: Fixed lower bound used to cap extreme measure values. + format: double + type: number + winsor_lower_percentile: + description: Percentile used to determine the lower bound for extreme measure values. + format: double + type: number + winsor_upper_fixed_value: + description: Fixed upper bound used to cap extreme measure values. + format: double + type: number + winsor_upper_percentile: + description: Percentile used to determine the upper bound for extreme measure values. + format: double + type: number + winsorization_strategy: + description: Method used to cap extreme measure values before aggregation. + type: string + required: + - operation + - datadog_metric_measure + type: object + ExperimentsDatadogMetricMeasureInput: + description: Datadog source and query that supply values for the metric. + properties: + column_name: + description: Name of the Datadog event field used by this measure. + example: "@view.time_spent" + type: string + column_type: + description: Data type of the source column. + example: double + minLength: 1 + pattern: \S + type: string + filters: + description: Conditions used to select the metric's source data. + name: + description: Display name of the Datadog measure. + example: View duration + minLength: 1 + pattern: \S + type: string + query: + description: Query used to retrieve the Datadog measure. + type: string + source_definition_filter: + description: Filter applied to the Datadog source definition. + source_subtype: + description: Subtype of the Datadog data source. + example: RUM_VIEWS + minLength: 1 + pattern: \S + type: string + source_type: + description: Type of Datadog data source used for the measure. + example: PRODUCT_ANALYTICS + minLength: 1 + pattern: \S + type: string + required: + - name + - source_type + - source_subtype + - column_type + type: object + ExperimentsDatadogPercentileAggregationInput: + description: >- + Settings for a percentile aggregation that uses a Datadog measure. The other measure must be omitted or null. + properties: + datadog_metric_measure: + $ref: "#/components/schemas/ExperimentsDatadogPercentileMeasureInput" + percentile: + description: Percentile to calculate from the measure values. + example: 0.95 + exclusiveMaximum: true + exclusiveMinimum: true + format: double + maximum: 1 + minimum: 0 + type: number + property_filters: + description: Property filters that select data for the percentile calculation. + items: + $ref: "#/components/schemas/ExperimentsPropertyFilterInputGroup" + nullable: true type: array + warehouse_metric_measure: + $ref: "#/components/schemas/ExperimentsNullableWarehouseMetricMeasureInput" + required: + - percentile + - datadog_metric_measure type: object - FilesCoverageAttributes: - description: Attributes of the per-file code coverage response. + ExperimentsDatadogPercentileMeasureInput: + description: Datadog measure used to calculate a percentile. properties: - base_commit_sha: - description: The SHA of the base commit used for comparison (for example, the merge base for a PR). - example: abc1234567890abcdef1234567890abcdef12345 + column_name: + description: Name of the Datadog event field used by this measure. + example: "@view.time_spent" + minLength: 1 + pattern: \S type: string - event_timestamp: - description: Unix timestamp (milliseconds) of the coverage event. - example: 1709564000000 - format: int64 - type: integer - files: - additionalProperties: - $ref: "#/components/schemas/FileCoverageLines" - description: Map of file paths to per-file coverage line data. - type: object - head_commit_sha: - description: The SHA of the head commit for which coverage was evaluated. - example: 66adc9350f2cc9b250b69abddab733dd55e1a588 + column_type: + description: Data type of the source column. + example: double + minLength: 1 + pattern: \S type: string - report_count: - description: Number of coverage reports evaluated. - example: 3 - format: int64 - type: integer + filters: + description: Conditions used to select the metric's source data. + name: + description: Display name of the Datadog measure. + example: View duration + minLength: 1 + pattern: \S + type: string + query: + description: Query used to retrieve the Datadog measure. + type: string + source_definition_filter: + description: Filter applied to the Datadog source definition. + source_subtype: + description: Subtype of the Datadog data source. + example: RUM_VIEWS + minLength: 1 + pattern: \S + type: string + source_type: + description: Type of Datadog data source used for the measure. + example: PRODUCT_ANALYTICS + minLength: 1 + pattern: \S + type: string + required: + - name + - source_type + - source_subtype + - column_type + - column_name type: object - FilesCoverageData: - description: Data object for files coverage response. + ExperimentsExperimentDiagnosticsV2DTO: + description: "Response containing the diagnostic checks for an experiment." + properties: + data: + $ref: "#/components/schemas/ExperimentsExperimentDiagnosticsV2DTOData" + required: + - data + type: object + ExperimentsExperimentDiagnosticsV2DTOData: + description: "Experiment diagnostics resource with its identifier and check results." properties: attributes: - $ref: "#/components/schemas/FilesCoverageAttributes" + $ref: "#/components/schemas/ExperimentsExperimentDiagnosticsV2DTODataAttributes" id: - description: Unique identifier for the files coverage response. - example: ZGQxMjM0NV9tYWluXzE3MDk1NjQwMDA= + description: "Identifier of the experiment whose diagnostics are returned." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid type: string type: - $ref: "#/components/schemas/FilesCoverageResponseType" + $ref: "#/components/schemas/ExperimentsExperimentDiagnosticsV2DTODataType" + required: + - type + - id type: object - FilesCoverageRequest: - description: Request object for getting per-file code coverage data. + ExperimentsExperimentDiagnosticsV2DTODataAttributes: + description: "Diagnostic check results and their evaluation state." properties: - data: - $ref: "#/components/schemas/FilesCoverageRequestData" + diagnostics: + description: "Results of individual diagnostic checks." + example: [] + items: + $ref: "#/components/schemas/ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItems" + type: array + evaluated_at: + description: "Time when the diagnostic checks were evaluated." + format: date-time + nullable: true + type: string + result: + $ref: "#/components/schemas/ExperimentsExperimentDiagnosticsV2DTODataAttributesResult" + state: + $ref: "#/components/schemas/ExperimentsExperimentDiagnosticsV2DTODataAttributesState" required: - - data + - diagnostics + - state type: object - FilesCoverageRequestAttributes: - description: Attributes for requesting per-file code coverage data. Exactly one of `commit_sha`, `branch`, or `pr_number` must be provided. At most one of `service`, `codeowner`, or `flag` may be provided. + ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItems: + description: "Result of one diagnostic check for an experiment." properties: - branch: - description: The branch name. - example: main + message: + description: "Explanation of the diagnostic check result." + nullable: true type: string - changed_only: - description: When true, return coverage data only for files that were changed in the specified scope. - example: true - type: boolean - codeowner: - description: Filter coverage by code owner. At most one of `service`, `codeowner`, or `flag` may be provided. - example: "@my-team" + metric_id: + description: "Identifier of the metric associated with this check." + nullable: true type: string - commit_sha: - description: The commit SHA (40-character hexadecimal string). - example: 66adc9350f2cc9b250b69abddab733dd55e1a588 - pattern: "^[a-fA-F0-9]{40}$" + skipped_reason: + $ref: "#/components/schemas/ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsSkippedReason" + status: + $ref: "#/components/schemas/ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsStatus" + title: + description: "Short title of the diagnostic check." + example: title type: string - flag: - description: Filter coverage by coverage flag. At most one of `service`, `codeowner`, or `flag` may be provided. - example: unit-tests + type: + $ref: "#/components/schemas/ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsType" + required: + - status + - title + - type + type: object + ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsSkippedReason: + description: "Reason the diagnostic check could not be evaluated." + enum: + - NO_ASSIGNMENTS + - NO_DIMENSIONAL_DATA + - NO_METRIC_DATA + - ZERO_VARIANCE + nullable: true + type: string + x-enum-varnames: + - NO_ASSIGNMENTS + - NO_DIMENSIONAL_DATA + - NO_METRIC_DATA + - ZERO_VARIANCE + ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsStatus: + description: "Outcome of an individual diagnostic check." + enum: + - PASS + - FAIL + - WARN + - ERROR + - SKIPPED + example: PASS + type: string + x-enum-varnames: + - PASS + - FAIL + - WARN + - ERROR + - SKIPPED + ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsType: + description: "Kind of diagnostic check performed." + enum: + - EXPERIMENT_HAS_ASSIGNMENTS + - METRIC_HAS_DATA + - ASSIGNMENT_IMBALANCE + - METRIC_WINSORIZE_ZERO + - PRE_EXPERIMENT_IMBALANCE + - MIXED_ASSIGNMENTS + - DIMENSIONAL_ASSIGNMENT_IMBALANCE + - FLAG_HAS_EVALUATIONS + - IMPLAUSIBLE_PRIOR + - DIMENSIONAL_DEGRADATION + - PIPELINE_STATUS + - MAPPED_ANALYSIS_CONFIGURATION + - MAPPED_ANALYSIS_COVERAGE + - MAPPED_ANALYSIS_COLLISIONS + - MAPPED_ANALYSIS_FANOUT + - MAPPED_ANALYSIS_CHANGE + example: EXPERIMENT_HAS_ASSIGNMENTS + type: string + x-enum-varnames: + - EXPERIMENT_HAS_ASSIGNMENTS + - METRIC_HAS_DATA + - ASSIGNMENT_IMBALANCE + - METRIC_WINSORIZE_ZERO + - PRE_EXPERIMENT_IMBALANCE + - MIXED_ASSIGNMENTS + - DIMENSIONAL_ASSIGNMENT_IMBALANCE + - FLAG_HAS_EVALUATIONS + - IMPLAUSIBLE_PRIOR + - DIMENSIONAL_DEGRADATION + - PIPELINE_STATUS + - MAPPED_ANALYSIS_CONFIGURATION + - MAPPED_ANALYSIS_COVERAGE + - MAPPED_ANALYSIS_COLLISIONS + - MAPPED_ANALYSIS_FANOUT + - MAPPED_ANALYSIS_CHANGE + ExperimentsExperimentDiagnosticsV2DTODataAttributesResult: + description: "Overall result of the experiment diagnostic checks." + enum: + - PASS + - FAIL + - WARN + - NO_DATA + nullable: true + type: string + x-enum-varnames: + - PASS + - FAIL + - WARN + - NO_DATA + ExperimentsExperimentDiagnosticsV2DTODataAttributesState: + description: "Current state of the diagnostic evaluation." + enum: + - NOT_STARTED + - RUNNING + - COMPLETED + - FAILED + example: NOT_STARTED + type: string + x-enum-varnames: + - NOT_STARTED + - RUNNING + - COMPLETED + - FAILED + ExperimentsExperimentDiagnosticsV2DTODataType: + default: experiment-diagnostics + description: Experiment diagnostics resource type. + enum: + - experiment-diagnostics + example: experiment-diagnostics + type: string + x-enum-varnames: + - EXPERIMENT_DIAGNOSTICS + ExperimentsExperimentMetricGroupMutationV2: + description: "Response containing the saved experiment metric group and result refresh information." + properties: + data: + $ref: "#/components/schemas/ExperimentsExperimentMetricGroupMutationV2Data" + meta: + $ref: "#/components/schemas/ExperimentsPatchExperimentV2MetaDTO" + required: + - data + type: object + ExperimentsExperimentMetricGroupMutationV2Data: + description: "Experiment metric group resource with its identifier and metric selection." + properties: + attributes: + $ref: "#/components/schemas/ExperimentsExperimentMetricGroupV2DTODataAttributes" + id: + description: "Identifier of the experiment metric group." + example: "550e8400-e29b-41d4-a716-446655440022" + format: uuid type: string - pr_number: - description: The pull request number. Must be a positive integer. - example: 42 - format: int64 - minimum: 1 - type: integer - repository_id: - deprecated: true - description: "Deprecated: use `repository_url` instead. The repository URL." - example: github.com/datadog/shopist - minLength: 1 + type: + $ref: "#/components/schemas/ExperimentsPatchExperimentMetricGroupV2RequestDataType" + required: + - id + - type + type: object + ExperimentsExperimentMetricGroupMutationV2DataAttributesMetricsItems: + description: "Metric in an experiment metric group, with its name and primary metric designation." + properties: + is_primary: + description: Whether this is the experiment primary metric. + example: false + type: boolean + metric_id: + description: "Identifier of the metric in the group." + example: 550e8400-e29b-41d4-a716-446655440000 type: string - repository_url: - description: The repository URL. Accepts a full URL with or without a scheme (for example, `https://github.com/org/repo` or `github.com/org/repo`). - example: https://github.com/datadog/shopist - minLength: 1 + metric_name: + description: "Display name of the metric in the group." + example: metric name type: string - service: - description: Filter coverage by service name. At most one of `service`, `codeowner`, or `flag` may be provided. - example: my-service + required: + - is_primary + - metric_id + - metric_name + type: object + ExperimentsExperimentMetricGroupV2DTOArray: + description: "Response containing the metric groups for an experiment." + properties: + data: + description: "Metric groups associated with the experiment." + example: [] + items: + $ref: "#/components/schemas/ExperimentsExperimentMetricGroupMutationV2Data" + type: array + required: + - data + type: object + ExperimentsExperimentMetricGroupV2DTODataAttributes: + description: "Name, purpose, and selected metrics of an experiment metric group." + properties: + is_decision: + description: "Whether this group contains the experiment decision metrics." + type: boolean + metrics: + description: "Metrics selected for this experiment metric group." + items: + $ref: "#/components/schemas/ExperimentsExperimentMetricGroupMutationV2DataAttributesMetricsItems" + type: array + migration_metadata: + description: "Metadata associated with migration of this resource." + name: + description: "Display name of the experiment metric group." type: string type: object - FilesCoverageRequestData: - description: Data object for files coverage request. + ExperimentsExperimentResultsV2MetaDTO: + description: "Information about when experiment results were updated and whether they are stale." + example: + is_stale: true + results_last_updated: "2026-08-05T09:25:00Z" + stale_reasons: + - ANALYSIS_PLAN_CHANGED properties: + is_stale: + description: |- + Whether the saved results require a refresh or their freshness cannot be confirmed. See stale_reasons for + details. + example: true + type: boolean + results_last_updated: + description: "Time when the experiment results were last updated." + example: "2026-08-05T09:25:00Z" + format: date-time + nullable: true + type: string + stale_reasons: + description: "Reasons the saved experiment results are stale." + example: + - ANALYSIS_PLAN_CHANGED + items: + description: "One reason the saved experiment results are stale." + example: ANALYSIS_PLAN_CHANGED + type: string + type: array + type: object + ExperimentsExperimentV2DTO: + description: "Response containing an experiment and its configuration." + example: + data: + attributes: + assignments_end_date: "2026-08-15T00:00:00Z" + assignments_start_date: "2026-08-01T00:00:00Z" + concluded_at: "2026-08-05T09:30:00Z" + conclusion: + decision_reason: The primary metric improved without material regressions + outcome: POSITIVE + summary: The treatment improved conversion + created_at: "2026-08-01T12:00:00Z" + datadog_flag_configuration: + decision_metrics: + - is_primary: true + metric_id: b1a2c3d4-0000-0000-0000-000000000000 + decision_variant_key: treatment + events_end_date: "2026-08-22T00:00:00Z" + events_start_date: "2026-08-01T00:00:00Z" + experiment_type: STANDARD + hypothesis: A clearer checkout button increases purchase conversion + name: Checkout button test + pipeline_table_suffix: a1b2c3d4 + protocol_id: e4d5f6a7-0000-0000-0000-000000000000 + related_links: + - id: d1d2d3d4-0000-0000-0000-000000000000 + title: Experiment design + url: https://docs.example.com/checkout-experiment + results_last_updated: "2026-08-05T09:25:00Z" + split_by_properties: [] + status: DECISION_MADE + structured_metadata: + - enum_values: + - beta + field_display_name: Launch stage + field_key: launch_stage + field_type: ENUM + - field_display_name: Notes + field_key: notes + field_type: FREETEXT + freetext_value: Checkout redesign + subject_type_id: c2b3d4e5-0000-0000-0000-000000000000 + summary: The treatment improved conversion + tags: + - growth + teams: + - growth + traffic_exposure: + fraction: 1 + mode: STATIC + updated_at: "2026-08-05T09:30:00Z" + variants: + - is_active: true + is_control: true + key: control + name: Control + weight: 50 + - is_active: true + is_control: false + key: treatment + name: Treatment + weight: 50 + warehouse_exposure_configuration: + entry_point: + experiment_key: checkout_button_test + exposure_sql_model_id: f5e6a7b8-0000-0000-0000-000000000000 + id: 550e8400-e29b-41d4-a716-446655440000 + type: experiments + properties: + data: + $ref: "#/components/schemas/ExperimentsExperimentV2DTOData" + required: + - data + type: object + ExperimentsExperimentV2DTOData: + description: "Experiment resource with its identifier and configuration." + example: attributes: - $ref: "#/components/schemas/FilesCoverageRequestAttributes" + assignments_end_date: "2026-08-15T00:00:00Z" + assignments_start_date: "2026-08-01T00:00:00Z" + concluded_at: "2026-08-05T09:30:00Z" + conclusion: + decision_reason: The primary metric improved without material regressions + outcome: POSITIVE + summary: The treatment improved conversion + created_at: "2026-08-01T12:00:00Z" + datadog_flag_configuration: + decision_metrics: + - is_primary: true + metric_id: b1a2c3d4-0000-0000-0000-000000000000 + decision_variant_key: treatment + events_end_date: "2026-08-22T00:00:00Z" + events_start_date: "2026-08-01T00:00:00Z" + experiment_type: STANDARD + hypothesis: A clearer checkout button increases purchase conversion + name: Checkout button test + pipeline_table_suffix: a1b2c3d4 + protocol_id: e4d5f6a7-0000-0000-0000-000000000000 + related_links: + - id: d1d2d3d4-0000-0000-0000-000000000000 + title: Experiment design + url: https://docs.example.com/checkout-experiment + results_last_updated: "2026-08-05T09:25:00Z" + split_by_properties: [] + status: DECISION_MADE + structured_metadata: + - enum_values: + - beta + field_display_name: Launch stage + field_key: launch_stage + field_type: ENUM + - field_display_name: Notes + field_key: notes + field_type: FREETEXT + freetext_value: Checkout redesign + subject_type_id: c2b3d4e5-0000-0000-0000-000000000000 + summary: The treatment improved conversion + tags: + - growth + teams: + - growth + traffic_exposure: + fraction: 1 + mode: STATIC + updated_at: "2026-08-05T09:30:00Z" + variants: + - is_active: true + is_control: true + key: control + name: Control + weight: 50 + - is_active: true + is_control: false + key: treatment + name: Treatment + weight: 50 + warehouse_exposure_configuration: + entry_point: + experiment_key: checkout_button_test + exposure_sql_model_id: f5e6a7b8-0000-0000-0000-000000000000 + id: 550e8400-e29b-41d4-a716-446655440000 + type: experiments + properties: + attributes: + $ref: "#/components/schemas/ExperimentsPatchExperimentV2ResponseDataAttributes" + id: + description: "Identifier of the experiment." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid + type: string type: - $ref: "#/components/schemas/FilesCoverageRequestType" + $ref: "#/components/schemas/ExperimentsPatchExperimentV2ResponseDataType" required: + - id - type - - attributes type: object - FilesCoverageRequestType: - description: JSON:API type for files coverage request. The value must always be `ci_app_coverage_files_request`. + ExperimentsExperimentV2DTODataAttributesConclusionOutcome: + description: Recorded experiment outcome. enum: - - ci_app_coverage_files_request - example: ci_app_coverage_files_request + - POSITIVE + - NEGATIVE + - NEUTRAL + - INCONCLUSIVE + - MISCONFIGURED + - UNKNOWN + example: POSITIVE + nullable: true type: string x-enum-varnames: - - CI_APP_COVERAGE_FILES_REQUEST - FilesCoverageResponse: - description: Response object containing per-file code coverage data. + - POSITIVE + - NEGATIVE + - NEUTRAL + - INCONCLUSIVE + - MISCONFIGURED + - UNKNOWN + ExperimentsExperimentV2DTODataAttributesSplitByPropertiesItems: + description: "Property used to split experiment results into analysis dimensions." properties: - data: - $ref: "#/components/schemas/FilesCoverageData" + column_name: + description: Exposure field or Warehouse column used for the analysis dimension. + example: column name + type: string + column_type: + $ref: >- + #/components/schemas/ExperimentsPatchExperimentV2ResponseDataAttributesSplitByPropertiesItemsColumnType + id: + description: Read-only property ID. Omit it from POST and PATCH; writes identify properties by column_name. + example: 550e8400-e29b-41d4-a716-446655440000 + type: string + name: + description: Display name for the analysis dimension. + example: Checkout conversion + type: string + required: + - column_name + - column_type + - id + - name type: object - FilesCoverageResponseType: - description: JSON:API type for files coverage response. The value must always be `ci_app_coverage_files`. + ExperimentsExperimentV2DTODataAttributesStatus: + description: "Current stage in the experiment lifecycle." enum: - - ci_app_coverage_files - example: ci_app_coverage_files + - DRAFT + - SCHEDULED + - IN_PROGRESS + - READY_FOR_DECISION + - DECISION_MADE + - CANCELLED + - UNKNOWN + example: DECISION_MADE type: string x-enum-varnames: - - CI_APP_COVERAGE_FILES - FiltersPerProduct: - description: Product-specific filters for the dataset. + - DRAFT + - SCHEDULED + - IN_PROGRESS + - READY_FOR_DECISION + - DECISION_MADE + - CANCELLED + - UNKNOWN + ExperimentsExperimentV2DTODataAttributesVariantsItems: + description: "Variant in an experiment, with its identity and traffic allocation." + example: + is_active: true + is_control: true + key: control + name: Control + weight: 50 properties: - filters: - description: |- - Defines the list of tag-based filters used to restrict access to telemetry data for a specific product. - These filters act as access control rules. Each filter must follow the tag query syntax used by - Datadog (such as `@tag.key:value`), and only one tag or attribute may be used to define the access strategy - per telemetry type. + feature_flag_variant_id: + description: >- + Backing feature flag variant ID. Present for Datadog feature flag experiments and omitted for Warehouse experiments. + type: string + is_active: + description: Whether this variant participates in the experiment. + example: true + type: boolean + is_control: + description: Whether this is the single control variant. + example: true + type: boolean + key: + description: Value recorded in exposure data for this variant. + example: control + type: string + name: + description: "Display name of the experiment variant." + example: Control + nullable: true + type: string + weight: + description: Traffic allocation percentage. + example: 50 + format: double + type: number + required: + - is_active + - is_control + - key + - weight + type: object + ExperimentsExperimentV2ListDTOArray: + description: "Response containing a page of experiment summaries." + example: + data: + - attributes: + assignments_end_date: "2026-08-15T00:00:00Z" + assignments_start_date: "2026-08-01T00:00:00Z" + concluded_at: "2026-08-05T09:30:00Z" + conclusion: + decision_reason: The primary metric improved without material regressions + outcome: POSITIVE + summary: The treatment improved conversion + created_at: "2026-08-01T12:00:00Z" + events_end_date: "2026-08-22T00:00:00Z" + events_start_date: "2026-08-01T00:00:00Z" + experiment_type: STANDARD + hypothesis: A clearer checkout button increases purchase conversion + name: Checkout button test + pipeline_table_suffix: a1b2c3d4 + protocol_id: e4d5f6a7-0000-0000-0000-000000000000 + related_links: + - id: d1d2d3d4-0000-0000-0000-000000000000 + title: Experiment design + url: https://docs.example.com/checkout-experiment + results_last_updated: "2026-08-05T09:25:00Z" + status: DECISION_MADE + structured_metadata: + - enum_values: + - beta + field_display_name: Launch stage + field_key: launch_stage + field_type: ENUM + - field_display_name: Notes + field_key: notes + field_type: FREETEXT + freetext_value: Checkout redesign + subject_type_id: c2b3d4e5-0000-0000-0000-000000000000 + summary: The treatment improved conversion + tags: + - growth + teams: + - growth + updated_at: "2026-08-05T09:30:00Z" + id: 550e8400-e29b-41d4-a716-446655440000 + type: experiments + properties: + data: + description: "Experiment summaries in the current page." example: - - "@application.id:ABCD" + - attributes: + assignments_end_date: "2026-08-15T00:00:00Z" + assignments_start_date: "2026-08-01T00:00:00Z" + concluded_at: "2026-08-05T09:30:00Z" + conclusion: + decision_reason: The primary metric improved without material regressions + outcome: POSITIVE + summary: The treatment improved conversion + created_at: "2026-08-01T12:00:00Z" + events_end_date: "2026-08-22T00:00:00Z" + events_start_date: "2026-08-01T00:00:00Z" + experiment_type: STANDARD + hypothesis: A clearer checkout button increases purchase conversion + name: Checkout button test + pipeline_table_suffix: a1b2c3d4 + protocol_id: e4d5f6a7-0000-0000-0000-000000000000 + related_links: + - id: d1d2d3d4-0000-0000-0000-000000000000 + title: Experiment design + url: https://docs.example.com/checkout-experiment + results_last_updated: "2026-08-05T09:25:00Z" + status: DECISION_MADE + structured_metadata: + - enum_values: + - beta + field_display_name: Launch stage + field_key: launch_stage + field_type: ENUM + - field_display_name: Notes + field_key: notes + field_type: FREETEXT + freetext_value: Checkout redesign + subject_type_id: c2b3d4e5-0000-0000-0000-000000000000 + summary: The treatment improved conversion + tags: + - growth + teams: + - growth + updated_at: "2026-08-05T09:30:00Z" + id: 550e8400-e29b-41d4-a716-446655440000 + type: experiments items: - description: A tag-based filter expression using Datadog tag query syntax. - example: "@application.id:ABCD" - type: string + $ref: "#/components/schemas/ExperimentsExperimentV2ListDTOData" type: array - product: - description: |- - Name of the product the dataset is for. Possible values are 'apm', 'rum', - 'metrics', 'logs', 'error_tracking', 'cloud_cost', 'sd_repoinfo', 'secruntime', and 'signal'. - example: "logs" - type: string + links: + $ref: "#/components/schemas/ExperimentsOffsetLinks" + meta: + $ref: "#/components/schemas/ExperimentsOffsetMeta" required: - - product - - filters + - data type: object - Finding: - description: A single finding without the message and resource configuration. + ExperimentsExperimentV2ListDTOData: + description: "Experiment resource returned in a list." + example: + attributes: + assignments_end_date: "2026-08-15T00:00:00Z" + assignments_start_date: "2026-08-01T00:00:00Z" + concluded_at: "2026-08-05T09:30:00Z" + conclusion: + decision_reason: The primary metric improved without material regressions + outcome: POSITIVE + summary: The treatment improved conversion + created_at: "2026-08-01T12:00:00Z" + events_end_date: "2026-08-22T00:00:00Z" + events_start_date: "2026-08-01T00:00:00Z" + experiment_type: STANDARD + hypothesis: A clearer checkout button increases purchase conversion + name: Checkout button test + pipeline_table_suffix: a1b2c3d4 + protocol_id: e4d5f6a7-0000-0000-0000-000000000000 + related_links: + - id: d1d2d3d4-0000-0000-0000-000000000000 + title: Experiment design + url: https://docs.example.com/checkout-experiment + results_last_updated: "2026-08-05T09:25:00Z" + status: DECISION_MADE + structured_metadata: + - enum_values: + - beta + field_display_name: Launch stage + field_key: launch_stage + field_type: ENUM + - field_display_name: Notes + field_key: notes + field_type: FREETEXT + freetext_value: Checkout redesign + subject_type_id: c2b3d4e5-0000-0000-0000-000000000000 + summary: The treatment improved conversion + tags: + - growth + teams: + - growth + updated_at: "2026-08-05T09:30:00Z" + id: 550e8400-e29b-41d4-a716-446655440000 + type: experiments properties: attributes: - $ref: "#/components/schemas/FindingAttributes" + $ref: "#/components/schemas/ExperimentsExperimentV2ListDTODataAttributes" id: - $ref: "#/components/schemas/FindingID" + description: "Identifier of the experiment." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid + type: string type: - $ref: "#/components/schemas/FindingType" + $ref: "#/components/schemas/ExperimentsPatchExperimentV2ResponseDataType" + required: + - id + - type type: object - FindingAttributes: - description: The JSON:API attributes of the finding. + ExperimentsExperimentV2ListDTODataAttributes: + description: "Summary fields for an experiment returned in a list." + example: + assignments_end_date: "2026-08-15T00:00:00Z" + assignments_start_date: "2026-08-01T00:00:00Z" + concluded_at: "2026-08-05T09:30:00Z" + conclusion: + decision_reason: The primary metric improved without material regressions + outcome: POSITIVE + summary: The treatment improved conversion + created_at: "2026-08-01T12:00:00Z" + events_end_date: "2026-08-22T00:00:00Z" + events_start_date: "2026-08-01T00:00:00Z" + experiment_type: STANDARD + hypothesis: A clearer checkout button increases purchase conversion + name: Checkout button test + pipeline_table_suffix: a1b2c3d4 + protocol_id: e4d5f6a7-0000-0000-0000-000000000000 + related_links: + - id: d1d2d3d4-0000-0000-0000-000000000000 + title: Experiment design + url: https://docs.example.com/checkout-experiment + results_last_updated: "2026-08-05T09:25:00Z" + status: DECISION_MADE + structured_metadata: + - enum_values: + - beta + field_display_name: Launch stage + field_key: launch_stage + field_type: ENUM + - field_display_name: Notes + field_key: notes + field_type: FREETEXT + freetext_value: Checkout redesign + subject_type_id: c2b3d4e5-0000-0000-0000-000000000000 + summary: The treatment improved conversion + tags: + - growth + teams: + - growth + updated_at: "2026-08-05T09:30:00Z" properties: - datadog_link: - $ref: "#/components/schemas/FindingDatadogLink" - description: - $ref: "#/components/schemas/FindingDescription" - evaluation: - $ref: "#/components/schemas/FindingEvaluation" - evaluation_changed_at: - $ref: "#/components/schemas/FindingEvaluationChangedAt" - external_id: - $ref: "#/components/schemas/FindingExternalId" - mute: - $ref: "#/components/schemas/FindingMute" - resource: - $ref: "#/components/schemas/FindingResource" - resource_discovery_date: - $ref: "#/components/schemas/FindingResourceDiscoveryDate" - resource_type: - $ref: "#/components/schemas/FindingResourceType" - rule: - $ref: "#/components/schemas/FindingRule" + assignments_end_date: + description: "End of the window used to read experiment assignments." + example: "2026-08-15T00:00:00Z" + format: date-time + nullable: true + type: string + assignments_start_date: + description: "Start of the window used to read experiment assignments." + example: "2026-08-01T00:00:00Z" + format: date-time + nullable: true + type: string + concluded_at: + description: "Time when the experiment was concluded." + example: "2026-08-05T09:30:00Z" + format: date-time + nullable: true + type: string + conclusion: + $ref: "#/components/schemas/ExperimentsPatchExperimentV2ResponseDataAttributesConclusion" + created_at: + description: "Time when the experiment was created." + example: "2026-08-01T12:00:00Z" + format: date-time + type: string + events_end_date: + description: "End of the window used to read metric events." + example: "2026-08-22T00:00:00Z" + format: date-time + nullable: true + type: string + events_start_date: + description: "Start of the window used to read metric events." + example: "2026-08-01T00:00:00Z" + format: date-time + nullable: true + type: string + experiment_type: + description: >- + Kind of experiment. STANDARD is an ordinary experiment. Other values, such as CANARY and HOLDOUT, identify experiments owned by another workflow. New kinds may be added; treat unknown values as non-standard. + example: STANDARD + type: string + hypothesis: + description: "Expected effect that the experiment is designed to test." + example: A clearer checkout button increases purchase conversion + type: string + migration_metadata: + description: "Metadata associated with migration of this resource." + name: + description: "Display name of the experiment." + example: Checkout button test + type: string + pipeline_table_suffix: + description: "Suffix used for the experiment tables in the analysis pipeline." + example: a1b2c3d4 + type: string + protocol_id: + description: "Identifier of the protocol associated with the experiment." + example: e4d5f6a7-0000-0000-0000-000000000000 + type: string + related_links: + description: "External links associated with the experiment." + example: + - id: d1d2d3d4-0000-0000-0000-000000000000 + title: Experiment design + url: https://docs.example.com/checkout-experiment + items: + $ref: "#/components/schemas/ExperimentsCreateExperimentV2RequestDataAttributesRelatedLinksItems" + type: array + results_last_updated: + description: "Time when the experiment results were last updated." + example: "2026-08-05T09:25:00Z" + format: date-time + nullable: true + type: string status: - $ref: "#/components/schemas/FindingStatus" + $ref: "#/components/schemas/ExperimentsExperimentV2DTODataAttributesStatus" + structured_metadata: + description: "Custom metadata fields and their values for the experiment." + example: + - enum_values: + - beta + field_display_name: Launch stage + field_key: launch_stage + field_type: ENUM + - field_display_name: Notes + field_key: notes + field_type: FREETEXT + freetext_value: Checkout redesign + items: + $ref: "#/components/schemas/ExperimentsStructuredMetadataResponse" + type: array + subject_type_id: + description: "Identifier of the subject type used for experiment assignments." + example: c2b3d4e5-0000-0000-0000-000000000000 + nullable: true + type: string + summary: + description: "Free-form summary of the experiment." + example: The treatment improved conversion + type: string tags: - $ref: "#/components/schemas/FindingTags" - vulnerability_type: - $ref: "#/components/schemas/FindingVulnerabilityType" + description: "Tag names associated with the experiment." + example: + - growth + items: + description: "One tag name associated with the experiment." + example: growth + type: string + type: array + teams: + description: "Team handles associated with the experiment." + example: + - growth + items: + description: "One team handle associated with the experiment." + example: growth + type: string + type: array + updated_at: + description: "Time when the experiment was last updated." + example: "2026-08-05T09:30:00Z" + format: date-time + type: string type: object - FindingCaseResponse: - description: Case response. + ExperimentsExposureSQLModelV2DTO: + description: "Response containing a SQL model for experiment assignment data." + example: + data: + attributes: + created_at: "2024-01-01T12:00:00Z" + experiment_column: experiment_id + name: Exposure events + properties: + - column_name: country + column_type: STRING + id: 550e8400-e29b-41d4-a716-446655440031 + name: country + pipeline_column_suffix: cty001 + sql: SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + timestamp_column: exposed_at + updated_at: "2024-01-01T12:00:00Z" + variant_column: variant + id: 550e8400-e29b-41d4-a716-446655440030 + type: exposure-sql-models properties: data: - $ref: "#/components/schemas/FindingCaseResponseData" + $ref: "#/components/schemas/ExperimentsExposureSQLModelV2DTOData" + required: + - data type: object - FindingCaseResponseArray: - description: List of case responses. - properties: + ExperimentsExposureSQLModelV2DTOArray: + description: "Response containing a page of exposure SQL models." + example: data: - description: Array of case response data objects. - items: - $ref: "#/components/schemas/FindingCaseResponseData" + - attributes: + created_at: "2024-01-01T12:00:00Z" + experiment_column: experiment_id + name: Exposure events + properties: + - column_name: country + column_type: STRING + id: 550e8400-e29b-41d4-a716-446655440031 + name: country + pipeline_column_suffix: cty001 + sql: SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + timestamp_column: exposed_at + updated_at: "2024-01-01T12:00:00Z" + variant_column: variant + id: 550e8400-e29b-41d4-a716-446655440030 + type: exposure-sql-models + properties: + data: + description: "Exposure SQL models in the current page." + example: + - attributes: + created_at: "2024-01-01T12:00:00Z" + experiment_column: experiment_id + name: Exposure events + properties: [] + sql: SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + timestamp_column: exposed_at + updated_at: "2024-01-01T12:00:00Z" + variant_column: variant + id: 550e8400-e29b-41d4-a716-446655440030 + type: exposure-sql-models + items: + $ref: "#/components/schemas/ExperimentsExposureSQLModelV2DTOData" type: array + links: + $ref: "#/components/schemas/ExperimentsOffsetLinks" + meta: + $ref: "#/components/schemas/ExperimentsOffsetMeta" required: - data type: object - FindingCaseResponseData: - description: Data of the case. - properties: + ExperimentsExposureSQLModelV2DTOData: + description: "Exposure SQL model resource with its identifier and configuration." + example: attributes: - $ref: "#/components/schemas/FindingCaseResponseDataAttributes" - id: - description: Unique identifier of the case. - example: "c1234567-89ab-cdef-0123-456789abcdef" + created_at: "2024-01-01T12:00:00Z" + experiment_column: experiment_id + name: Exposure events + properties: + - column_name: country + column_type: STRING + id: 550e8400-e29b-41d4-a716-446655440031 + name: country + pipeline_column_suffix: cty001 + sql: SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + timestamp_column: exposed_at + updated_at: "2024-01-01T12:00:00Z" + variant_column: variant + id: 550e8400-e29b-41d4-a716-446655440030 + type: exposure-sql-models + properties: + attributes: + $ref: "#/components/schemas/ExperimentsExposureSQLModelV2DTODataAttributes" + id: + description: "Identifier of the exposure SQL model." + example: 550e8400-e29b-41d4-a716-446655440030 + format: uuid type: string - relationships: - $ref: "#/components/schemas/FindingCaseResponseDataRelationships" type: - $ref: "#/components/schemas/CaseDataType" + $ref: "#/components/schemas/ExperimentsUpdateExposureSQLModelV2RequestDataType" required: + - id - type type: object - FindingCaseResponseDataAttributes: - description: Attributes of the case. + ExperimentsExposureSQLModelV2DTODataAttributes: + description: "Query and column mappings used to read experiment assignment data." + example: + created_at: "2024-01-01T12:00:00Z" + experiment_column: experiment_id + name: Exposure events + properties: + - column_name: country + column_type: STRING + id: 550e8400-e29b-41d4-a716-446655440031 + name: country + pipeline_column_suffix: cty001 + sql: SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + timestamp_column: exposed_at + updated_at: "2024-01-01T12:00:00Z" + variant_column: variant properties: archived_at: - description: Timestamp of when the case was archived. - example: "2025-01-01T00:00:00.000Z" - format: date-time - type: string - assigned_to: - $ref: "#/components/schemas/RelationshipToUser" - description: User assigned to the case. - attributes: - additionalProperties: - items: - description: A custom attribute value string. - type: string - type: array - description: Custom attributes associated with the case as key-value pairs where values are string arrays. - type: object - closed_at: - description: Timestamp of when the case was closed. - example: "2025-01-01T00:00:00.000Z" + description: "Time when the exposure SQL model was archived." format: date-time + nullable: true type: string created_at: - description: Timestamp of when the case was created. - example: "2025-01-01T00:00:00.000Z" + description: "Time when the exposure SQL model was created." + example: "2024-01-01T12:00:00Z" format: date-time type: string - creation_source: - description: Source of the case creation. - example: "CS_SECURITY_FINDING" + date_partition_column: + description: "Column used to identify date partitions in the exposure data." + nullable: true type: string - description: - description: Description of the case. - example: "A description of the case." + experiment_column: + description: "SQL result column that contains the experiment key." + example: experiment_id type: string - due_date: - description: Due date of the case. - example: "2025-01-01" + experiment_count: + description: "Number of experiments associated with the exposure SQL model." + format: int64 + nullable: true + type: integer + migration_metadata: + description: "Metadata associated with migration of this resource." + name: + description: "Display name of the exposure SQL model." + example: Exposure events type: string - insights: - description: Insights of the case. + properties: + description: "Property columns available for filtering or splitting exposure data." + example: + - column_name: country + column_type: STRING + id: 550e8400-e29b-41d4-a716-446655440031 + name: country + pipeline_column_suffix: cty001 items: - $ref: "#/components/schemas/CaseInsightsItems" + $ref: "#/components/schemas/ExperimentsExposureSQLModelV2DTODataAttributesItems" type: array - jira_issue: - $ref: "#/components/schemas/FindingJiraIssue" - description: Jira issue associated with the case. - key: - description: Key of the case. - example: "PROJ-123" + sql: + description: "SQL query that supplies the experiment assignment data." + example: SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures type: string - linear_issue: - $ref: "#/components/schemas/FindingLinearIssue" - description: Linear issue associated with the case. - modified_at: - description: Timestamp of when the case was last modified. - example: "2025-01-01T00:00:00.000Z" + subject_types: + description: "Mappings between subject types and their identifier columns." + example: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + items: + $ref: "#/components/schemas/ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems" + type: array + timestamp_column: + description: "SQL result column that contains the assignment timestamp." + example: exposed_at + type: string + updated_at: + description: "Time when the exposure SQL model was last updated." + example: "2024-01-01T12:00:00Z" format: date-time type: string - priority: - description: Priority of the case. - example: "P4" + variant_column: + description: "SQL result column that contains the assigned variant." + example: variant type: string - servicenow_ticket: - $ref: "#/components/schemas/FindingServiceNowTicket" - description: ServiceNow ticket associated with the case. - status: - description: Status of the case. - example: "OPEN" + type: object + ExperimentsExposureSQLModelV2DTODataAttributesItems: + description: "Property column available from the exposure SQL model." + example: + column_name: country + column_type: STRING + id: 550e8400-e29b-41d4-a716-446655440031 + name: country + pipeline_column_suffix: cty001 + properties: + column_name: + description: "SQL result column that contains this property." + example: country type: string - status_group: - description: Status group of the case. - example: "SG_OPEN" + column_type: + description: "Data type of the property column." + example: STRING type: string - status_name: - description: Status name of the case. - example: "Open" + description: + description: "Description of the exposure property." type: string - title: - description: Title of the case. - example: "A title for the case." + id: + description: "Identifier of the exposure property." + example: 550e8400-e29b-41d4-a716-446655440031 type: string - type: - description: Type of the case. For security cases, this is always "SECURITY". - example: "SECURITY" + migration_metadata: + description: "Metadata associated with migration of this resource." + name: + description: "Display name of the exposure property." + example: country + type: string + pipeline_column_suffix: + description: "Suffix used for this property column in the analysis pipeline." + example: cty001 type: string type: object - FindingCaseResponseDataRelationships: - description: Relationships of the case. + ExperimentsInlineCondition: + description: An inline condition. The saved_filter_id field must be omitted or null. properties: - created_by: - $ref: "#/components/schemas/RelationshipToUser" - description: User who created the case. - modified_by: - $ref: "#/components/schemas/RelationshipToUser" - description: User who last modified the case. - project: - $ref: "#/components/schemas/CaseManagementProject" - description: Project in which the case was created. + attribute: + description: Attribute to evaluate. + example: country + minLength: 1 + type: string + operator: + $ref: >- + #/components/schemas/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationTargetingRulesItemsConditionsItemsOperator + value: + description: Values used by the operator. Every operator requires at least one value. + example: + - US + items: + description: A comparison value. + type: string + minItems: 1 + type: array + required: + - attribute + - operator + - value type: object - FindingData: - description: Data object representing a security finding. + ExperimentsMeasureComparisonFilterInput: + description: A measure comparison for metric source data. + example: + measure_id: 550e8400-e29b-41d4-a716-446655440023 + operation: "=" + values: + - "1" properties: - id: - description: Unique identifier of the security finding. - example: "ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw==" + measure_id: + description: ID of the measure on the aggregation source. + example: 550e8400-e29b-41d4-a716-446655440023 + format: uuid + minLength: 1 + pattern: \S type: string - type: - $ref: "#/components/schemas/FindingDataType" + operation: + $ref: "#/components/schemas/ExperimentsMeasureComparisonFilterInputOperation" + property_id: + description: Omit this target or use null or a blank string. + example: "" + nullable: true + pattern: ^\s*$ + type: string + values: + description: Values used by the comparison. + example: + - "1" + items: + description: One comparison value. + example: "1" + type: string + maxItems: 1 + minItems: 1 + type: array required: - - type - - id + - measure_id + - operation + - values type: object - FindingDataType: - default: findings - description: Security findings resource type. + ExperimentsMeasureComparisonFilterInputOperation: + description: Comparison applied by this filter. enum: - - findings - example: findings + - "=" + - "!=" + - ">" + - ">=" + - < + - <= + example: "=" type: string x-enum-varnames: - - FINDINGS - FindingDatadogLink: - description: The Datadog relative link for this finding. - example: "/security/compliance?panels=cpfinding%7Cevent%7CruleId%3Adef-000-u5t%7CresourceId%3Ae8c9ab7c52ebd7bf2fdb4db641082d7d%7CtabId%3Aoverview" - type: string - FindingDescription: - description: The description and remediation steps for this finding. - example: "## Remediation\n\n1. In the console, go to **Storage Account**.\n2. For each Storage Account, navigate to **Data Protection**.\n3. Select **Set soft delete enabled** and enter the number of days to retain soft deleted data." - type: string - FindingEvaluation: - description: The evaluation of the finding. - enum: - - pass - - fail - example: pass - type: string - x-enum-varnames: ["PASS", "FAIL"] - FindingEvaluationChangedAt: - description: The date on which the evaluation for this finding changed (Unix ms). - example: 1678721573794 - format: int64 - minimum: 1 - type: integer - FindingExternalId: - description: The cloud-based ID for the resource related to the finding. - example: "arn:aws:s3:::my-example-bucket" - type: string - FindingID: - description: The unique ID for this finding. - example: ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw== - type: string - FindingJiraIssue: - description: Jira issue associated with the case. + - EQ + - NEQ + - GT + - GT_EQ + - LT + - LT_EQ + ExperimentsMeasureNullFilterInput: + description: A measure comparison for metric source data. + example: + measure_id: 550e8400-e29b-41d4-a716-446655440023 + operation: IS_NULL + values: [] properties: - error_message: - description: Error message if the Jira issue creation failed. - example: '{"errorMessages":["An error occured."],"errors":{}}' + measure_id: + description: ID of the measure on the aggregation source. + example: 550e8400-e29b-41d4-a716-446655440023 + format: uuid + minLength: 1 + pattern: \S type: string - result: - $ref: "#/components/schemas/FindingJiraIssueResult" - status: - description: Status of the Jira issue creation. Can be "COMPLETED" if the Jira issue was created successfully, or "FAILED" if the Jira issue creation failed. - example: "COMPLETED" + operation: + $ref: "#/components/schemas/ExperimentsPropertyNullFilterInputOperation" + property_id: + description: Omit this target or use null or a blank string. + example: "" + nullable: true + pattern: ^\s*$ type: string + values: + description: Values used by the comparison. + items: + description: One comparison value. + type: string + maxItems: 0 + nullable: true + type: array + required: + - measure_id + - operation type: object - FindingJiraIssueResult: - description: Result of the Jira issue creation. + ExperimentsMeasureRangeFilterInput: + description: A measure comparison for metric source data. + example: + measure_id: 550e8400-e29b-41d4-a716-446655440023 + operation: BETWEEN + values: + - "1" + - "2" properties: - account_id: - description: Account ID of the Jira issue. - example: "463a8631-680e-455c-bfd3-3ed04d326eb7" - type: string - issue_id: - description: Unique identifier of the Jira issue. - example: "2871276" - type: string - issue_key: - description: Key of the Jira issue. - example: "PROJ-123" + measure_id: + description: ID of the measure on the aggregation source. + example: 550e8400-e29b-41d4-a716-446655440023 + format: uuid + minLength: 1 + pattern: \S type: string - issue_url: - description: URL of the Jira issue. - example: "https://domain.atlassian.net/browse/PROJ-123" + operation: + $ref: "#/components/schemas/ExperimentsMeasureRangeFilterInputOperation" + property_id: + description: Omit this target or use null or a blank string. + example: "" + nullable: true + pattern: ^\s*$ type: string + values: + description: Values used by the comparison. + example: + - "1" + - "2" + items: + description: One comparison value. + example: "1" + type: string + maxItems: 2 + minItems: 2 + type: array + required: + - measure_id + - operation + - values type: object - FindingLinearIssue: - description: Linear issue associated with the case. + ExperimentsMeasureRangeFilterInputOperation: + description: Comparison applied by this filter. + enum: + - BETWEEN + example: BETWEEN + type: string + x-enum-varnames: + - BETWEEN + ExperimentsMetricCollectionV2DTO: + description: "Response containing the metric collection." + example: + data: + attributes: + created_at: "2026-08-01T12:00:00Z" + description: Metrics reviewed for every checkout experiment. + is_guardrail: false + metrics: + - metric_id: 550e8400-e29b-41d4-a716-446655440020 + metric_name: Checkout conversion + name: Checkout metrics + updated_at: "2026-08-02T09:30:00Z" + id: 550e8400-e29b-41d4-a716-446655440040 + type: metric-collections properties: - error_message: - description: Error message if the Linear issue creation failed. - example: "Linear issue creation failed." - type: string - result: - $ref: "#/components/schemas/FindingLinearIssueResult" - status: - description: Status of the Linear issue creation. Can be "COMPLETED" if the Linear issue was created successfully, or "FAILED" if the Linear issue creation failed. - example: "COMPLETED" - type: string + data: + $ref: "#/components/schemas/ExperimentsMetricCollectionV2DTOData" + required: + - data type: object - FindingLinearIssueResult: - description: Result of the Linear issue creation. + ExperimentsMetricCollectionV2DTOArray: + description: "List of metric collection resources with pagination information." properties: - account_id: - description: Account ID of the Linear workspace. - example: "463a8631-680e-455c-bfd3-3ed04d326eb7" - type: string - issue_id: - description: Unique identifier of the Linear issue. - example: "9c1e5f8a-2b3d-4c7e-8f6a-1d2e3f4a5b6c" - type: string - issue_key: - description: Key of the Linear issue. - example: "ENG-123" - type: string - team_id: - description: Team ID of the Linear issue. - example: "b5d3c8a1-7e6f-4d2c-9a8b-3c4d5e6f7a8b" - type: string - url: - description: URL of the Linear issue. - example: "https://linear.app/your-workspace/issue/ENG-123" + data: + description: "Resources returned in this response." + example: [] + items: + $ref: "#/components/schemas/ExperimentsMetricCollectionV2DTOData" + type: array + links: + $ref: "#/components/schemas/ExperimentsOffsetLinks" + meta: + $ref: "#/components/schemas/ExperimentsOffsetMeta" + required: + - data + type: object + ExperimentsMetricCollectionV2DTOData: + description: "JSON:API resource containing the metric collection identity and fields." + properties: + attributes: + $ref: "#/components/schemas/ExperimentsMetricCollectionV2DTODataAttributes" + id: + description: "ID of the metric collection." + example: "550e8400-e29b-41d4-a716-446655440023" + format: uuid type: string + type: + $ref: "#/components/schemas/ExperimentsPatchMetricCollectionV2RequestDataType" + required: + - id + - type type: object - FindingMute: - additionalProperties: false - description: Information about the mute status of this finding. + ExperimentsMetricCollectionV2DTODataAttributes: + description: "Details of the metric collection." properties: + created_at: + description: "Time when this resource was created." + format: date-time + type: string description: - description: Additional information about the reason why this finding is muted or unmuted. - example: To be resolved later + description: "Text that explains the metric collection." + nullable: true type: string - expiration_date: - description: The expiration date of the mute or unmute action (Unix ms). - example: 1778721573794 - format: int64 - type: integer - muted: - description: Whether this finding is muted or unmuted. - example: true + is_guardrail: + description: "Whether the collection is used for guardrail metrics." type: boolean - reason: - $ref: "#/components/schemas/FindingMuteReason" - start_date: - description: The start of the mute period. - example: 1678721573794 + metric_count: + description: "Number of metrics in this collection." format: int64 type: integer - uuid: - description: The ID of the user who muted or unmuted this finding. - example: e51c9744-d158-11ec-ad23-da7ad0900002 + metrics: + description: "Metrics included in this collection." + items: + $ref: "#/components/schemas/ExperimentsMetricCollectionV2DTODataAttributesMetricsItems" + type: array + name: + description: "Display name of the metric collection." + type: string + updated_at: + description: "Time when this resource was last updated." + format: date-time type: string type: object - FindingMuteReason: - description: The reason why this finding is muted or unmuted. - enum: - - PENDING_FIX - - FALSE_POSITIVE - - ACCEPTED_RISK - - NO_PENDING_FIX - - HUMAN_ERROR - - NO_LONGER_ACCEPTED_RISK - - OTHER - example: ACCEPTED_RISK - type: string - x-enum-varnames: ["PENDING_FIX", "FALSE_POSITIVE", "ACCEPTED_RISK", "NO_PENDING_FIX", "HUMAN_ERROR", "NO_LONGER_ACCEPTED_RISK", "OTHER"] - FindingResource: - description: The resource name of this finding. - example: my_resource_name - type: string - FindingResourceDiscoveryDate: - description: The date on which the resource was discovered (Unix ms). - example: 1678721573794 - format: int64 - minimum: 1 - type: integer - FindingResourceType: - description: The resource type of this finding. - example: azure_storage_account - type: string - FindingRule: - additionalProperties: false - description: The rule that triggered this finding. + ExperimentsMetricCollectionV2DTODataAttributesMetricsItems: + description: "A metric included in the collection." properties: - id: - description: The ID of the rule that triggered this finding. - example: dv2-jzf-41i + metric_id: + description: "ID of the metric represented by this entry." type: string - name: - description: The name of the rule that triggered this finding. - example: Soft delete is enabled for Azure Storage + metric_name: + description: "Display name of the metric represented by this entry." type: string type: object - FindingServiceNowTicket: - description: ServiceNow ticket associated with the case. + ExperimentsMetricPropertyFilter: + description: "A comparison that selects metric data by a property or measure." + example: + operation: IS + property_id: 550e8400-e29b-41d4-a716-446655440023 + values: + - US properties: - result: - $ref: "#/components/schemas/FindingServiceNowTicketResult" - status: - description: Status of the ServiceNow ticket operation. Can be "COMPLETED" if successful, or "FAILED" if the operation failed. - example: "COMPLETED" + measure_id: + description: "ID of the measure evaluated by the filter." + type: string + operation: + description: "Comparison applied by the filter." + example: IS + type: string + property_id: + description: "ID of the property evaluated by the filter." + example: 550e8400-e29b-41d4-a716-446655440023 type: string + values: + description: "Values used by the filter's comparison." + example: + - US + items: + description: "One value used in the filter comparison." + example: US + type: string + type: array type: object - FindingServiceNowTicketResult: - description: Result of the ServiceNow ticket creation or attachment. + ExperimentsMetricPropertyFilterGroup: + description: Metric property filters combined with AND. + example: + - operation: IS + property_id: 550e8400-e29b-41d4-a716-446655440023 + values: + - US + items: + $ref: "#/components/schemas/ExperimentsMetricPropertyFilter" + type: array + ExperimentsMetricSQLModelPropertyInput: + description: A property column defined by a metric SQL model. + example: + column_name: item_type + column_type: STRING + description: + name: item_type properties: - instance_name: - description: ServiceNow instance name extracted from the ticket URL. - example: "example" - type: string - sys_id: - description: Unique identifier of the ServiceNow incident record. - example: "abcdef0123456789abcdef0123456789" + column_name: + description: Name of the SQL result column that supplies this property. + example: item_type type: string - sys_target_link: - description: Direct link to the ServiceNow incident record. - example: "https://example.service-now.com/incident.do?sys_id=abcdef0123456789abcdef0123456789" + column_type: + $ref: "#/components/schemas/ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType" + description: + description: Optional text that explains what this property represents. + example: + nullable: true type: string - sys_target_sys_id: - description: Unique identifier of the target ServiceNow record. - example: "abcdef0123456789abcdef0123456789" - type: string - table_name: - description: ServiceNow table containing the incident record. - example: "incident" - type: string - url: - description: URL of the ServiceNow incident record. - example: "https://example.service-now.com/now/nav/ui/classic/params/target/incident.do?sys_id=abcdef0123456789abcdef0123456789" + migration_metadata: + description: Opaque metadata preserved when this property is migrated. + name: + description: Name used to identify the property in the model. + example: item_type type: string + required: + - column_name + - column_type + - name type: object - FindingStatus: - description: The status of the finding. - enum: - - critical - - high - - medium - - low - - info - example: critical - type: string - x-enum-varnames: ["CRITICAL", "HIGH", "MEDIUM", "LOW", "INFO"] - FindingTags: - description: The tags associated with this finding. + ExperimentsMetricSQLModelV2DTO: + description: "Response containing the metric SQL model." example: - - cloud_provider:aws - - myTag:myValue - items: - description: The list of tags. - type: string - type: array - FindingType: - default: finding - description: The JSON:API type for findings. - enum: - - finding - example: finding - type: string - x-enum-varnames: ["FINDING"] - FindingVulnerabilityType: - description: The vulnerability type of the finding. - enum: - - misconfiguration - - attack_path - - identity_risk - - api_security - example: misconfiguration - type: string - x-enum-varnames: - - MISCONFIGURATION - - ATTACK_PATH - - IDENTITY_RISK - - API_SECURITY - Findings: - description: A list of security findings. + data: + attributes: + created_at: "2024-01-01T12:00:00Z" + event_count_measure_id: 550e8400-e29b-41d4-a716-446655440024 + is_certified: false + measures: + - column_name: revenue + column_type: FLOAT + id: 550e8400-e29b-41d4-a716-446655440021 + name: revenue + name: Order facts + properties: + - column_name: item_type + column_type: STRING + id: 550e8400-e29b-41d4-a716-446655440023 + name: item_type + sql: SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + unique_subject_count_measure_id: 550e8400-e29b-41d4-a716-446655440022 + timestamp_column: created_at + updated_at: "2024-01-01T12:00:00Z" + id: 550e8400-e29b-41d4-a716-446655440020 + type: metric-sql-models properties: data: - description: Array of security finding data objects. - items: - $ref: "#/components/schemas/FindingData" + $ref: "#/components/schemas/ExperimentsMetricSQLModelV2DTOData" + required: + - data + type: object + ExperimentsMetricSQLModelV2DTOArray: + description: "List of metric SQL model resources with pagination information." + example: + data: + - attributes: + created_at: "2024-01-01T12:00:00Z" + event_count_measure_id: 550e8400-e29b-41d4-a716-446655440024 + is_certified: false + measures: + - column_name: revenue + column_type: FLOAT + id: 550e8400-e29b-41d4-a716-446655440021 + name: revenue + name: Order facts + properties: + - column_name: item_type + column_type: STRING + id: 550e8400-e29b-41d4-a716-446655440023 + name: item_type + sql: SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + unique_subject_count_measure_id: 550e8400-e29b-41d4-a716-446655440022 + timestamp_column: created_at + updated_at: "2024-01-01T12:00:00Z" + id: 550e8400-e29b-41d4-a716-446655440020 + type: metric-sql-models + properties: + data: + description: "Resources returned in this response." + example: + - attributes: + created_at: "2024-01-01T12:00:00Z" + event_count_measure_id: 550e8400-e29b-41d4-a716-446655440024 + is_certified: false + measures: + - column_name: revenue + column_type: FLOAT + id: 550e8400-e29b-41d4-a716-446655440021 + name: revenue + name: Order facts + properties: [] + sql: SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + unique_subject_count_measure_id: 550e8400-e29b-41d4-a716-446655440022 + timestamp_column: created_at + updated_at: "2024-01-01T12:00:00Z" + id: 550e8400-e29b-41d4-a716-446655440020 + type: metric-sql-models + items: + $ref: "#/components/schemas/ExperimentsMetricSQLModelV2DTOData" type: array + links: + $ref: "#/components/schemas/ExperimentsOffsetLinks" + meta: + $ref: "#/components/schemas/ExperimentsOffsetMeta" + required: + - data type: object - FlakyTest: - description: A flaky test object. - properties: + ExperimentsMetricSQLModelV2DTOData: + description: "JSON:API resource containing the metric SQL model identity and fields." + example: attributes: - $ref: "#/components/schemas/FlakyTestAttributes" - id: - description: |- - Test's ID. This ID is the hash of the test's Fully Qualified Name and Git repository ID. It is the - value of the `@test.fingerprint_fqn` facet on test events, which you can search on in the Test - Optimization Explorer to locate a specific test. To filter search results by this ID, use the - `fingerprint_fqn` search key. + created_at: "2024-01-01T12:00:00Z" + event_count_measure_id: 550e8400-e29b-41d4-a716-446655440024 + is_certified: false + measures: + - column_name: revenue + column_type: FLOAT + id: 550e8400-e29b-41d4-a716-446655440021 + name: revenue + name: Order facts + properties: + - column_name: item_type + column_type: STRING + id: 550e8400-e29b-41d4-a716-446655440023 + name: item_type + sql: SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + unique_subject_count_measure_id: 550e8400-e29b-41d4-a716-446655440022 + timestamp_column: created_at + updated_at: "2024-01-01T12:00:00Z" + id: 550e8400-e29b-41d4-a716-446655440020 + type: metric-sql-models + properties: + attributes: + $ref: "#/components/schemas/ExperimentsMetricSQLModelV2DTODataAttributes" + id: + description: "ID of the metric SQL model." + example: 550e8400-e29b-41d4-a716-446655440020 + format: uuid type: string type: - $ref: "#/components/schemas/FlakyTestType" + $ref: "#/components/schemas/ExperimentsUpdateMetricSQLModelV2RequestDataType" + required: + - id + - type type: object - FlakyTestAttributes: - description: Attributes of a flaky test. + ExperimentsMetricSQLModelV2DTODataAttributes: + description: "Details of the metric SQL model." + example: + created_at: "2024-01-01T12:00:00Z" + event_count_measure_id: 550e8400-e29b-41d4-a716-446655440024 + is_certified: false + measures: + - column_name: revenue + column_type: FLOAT + id: 550e8400-e29b-41d4-a716-446655440021 + name: revenue + name: Order facts + properties: + - column_name: item_type + column_type: STRING + id: 550e8400-e29b-41d4-a716-446655440023 + name: item_type + sql: SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + unique_subject_count_measure_id: 550e8400-e29b-41d4-a716-446655440022 + timestamp_column: created_at + updated_at: "2024-01-01T12:00:00Z" properties: - attempt_to_fix_id: - description: |- - Unique identifier for the attempt to fix this flaky test. Use this ID in the Git commit message in order to trigger the attempt to fix workflow. - - When the workflow is triggered the test is automatically retried by the tracer a certain number of configurable times. When all retries pass, the test is automatically marked as fixed in Flaky Test Management. - Test runs are tagged with @test.test_management.attempt_to_fix_passed and @test.test_management.is_attempt_to_fix when the attempt to fix workflow is triggered. - example: I42TEO + certified_at: + description: "Time when this resource was certified." + format: date-time + nullable: true type: string - codeowners: - description: The name of the test's code owners as inferred from the repository configuration. - example: ["@foo", "@bar"] - items: - description: A code owner of the test as inferred from the repository configuration. - type: string - type: array - envs: - description: List of environments where this test has been flaky. - example: prod - items: - description: An environment name where this test has been flaky. - type: string - type: array - first_flaked_branch: - description: The branch name where the test exhibited flakiness for the first time. - example: main + created_at: + description: "Time when this resource was created." + example: "2024-01-01T12:00:00Z" + format: date-time type: string - first_flaked_sha: - description: The commit SHA where the test exhibited flakiness for the first time. - example: 0c6be03165b7f7ffe96e076ffb29afb2825616c3 + date_partition_column: + description: "SQL column used to partition the source data by date." + nullable: true type: string - first_flaked_ts: - description: Unix timestamp when the test exhibited flakiness for the first time. - example: 1757688149 + description: + description: "Text that explains the metric SQL model." + nullable: true + type: string + event_count_measure_id: + description: Read-only measure ID. Pass it as warehouse_metric_measure.id when the metric operation is count. + example: 550e8400-e29b-41d4-a716-446655440024 + type: string + experiment_count: + description: "Number of experiments that reference this resource." format: int64 + nullable: true type: integer - flaky_category: - description: The category of a flaky test. - example: Timeout + is_certified: + description: "Whether this resource has been certified." + example: false + type: boolean + measures: + description: "Measures available from the SQL model's result columns." + example: + - column_name: revenue + column_type: FLOAT + id: 550e8400-e29b-41d4-a716-446655440021 + name: revenue + items: + $ref: "#/components/schemas/ExperimentsMetricSQLModelV2DTODataAttributesMeasuresItems" + type: array + metric_count: + description: "Number of metrics that use this SQL model." + format: int64 nullable: true + type: integer + migration_metadata: + description: "Metadata retained for resources imported from another system." + name: + description: "Display name of the metric SQL model." + example: Order facts type: string - flaky_state: - $ref: "#/components/schemas/FlakyTestAttributesFlakyState" - history: - description: |- - Chronological history of status changes for this flaky test, ordered from most recent to oldest. - Includes state transitions like new -> quarantined -> fixed, along with the associated commit SHA when available. + properties: + description: "Property columns exposed by the SQL model." example: - - commit_sha: abc123def456 - policy_id: ftm_policy.quarantine.failure_rate - policy_meta: - config: - failure_rate: 0.1 - required_runs: 100 - failure_rate: 0.25 - total_runs: 200 - status: quarantined - timestamp: 1704067200000 - - commit_sha: "" - policy_id: unknown - policy_meta: - status: new - timestamp: 1703980800000 + - column_name: item_type + column_type: STRING + id: 550e8400-e29b-41d4-a716-446655440023 + name: item_type items: - $ref: "#/components/schemas/FlakyTestHistory" + $ref: "#/components/schemas/ExperimentsMetricSQLModelV2DTODataAttributesMeasuresItems" type: array - impact_level: - $ref: "#/components/schemas/FlakyTestImpactLevel" - nullable: true - impact_score: - description: A score from 0 to 1 indicating the impact of this flaky test, based on factors such as how often it fails and how many pipelines it affects. - example: 0.78 - format: double - maximum: 1 - minimum: 0 - nullable: true - type: number - last_flaked_branch: - description: The branch name where the test exhibited flakiness for the last time. - example: main + sql: + description: "SQL query that produces the model's source data." + example: SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders type: string - last_flaked_sha: - description: The commit SHA where the test exhibited flakiness for the last time. - example: 0c6be03165b7f7ffe96e076ffb29afb2825616c3 + subject_types: + description: "Subject types mapped to columns in the SQL model." + example: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + unique_subject_count_measure_id: 550e8400-e29b-41d4-a716-446655440022 + items: + $ref: "#/components/schemas/ExperimentsMetricSQLModelV2DTODataAttributesSubjectTypesItems" + type: array + timestamp_column: + description: "SQL column that supplies the event timestamp." + example: created_at type: string - last_flaked_ts: - description: Unix timestamp when the test exhibited flakiness for the last time. - example: 1757688149 - format: int64 - type: integer - module: - description: |- - The name of the test module. The definition of module changes slightly per language: - - In .NET, a test module groups every test that is run under the same unit test project. - - In Swift, a test module groups every test that is run for a given bundle. - - In JavaScript, the test modules map one-to-one to test sessions. - - In Java, a test module groups every test that is run by the same Maven Surefire/Failsafe or Gradle Test task execution. - - In Python, a test module groups every test that is run under the same `.py` file as part of a test suite, which is typically managed by a framework like `unittest` or `pytest`. - - In Ruby, a test module groups every test that is run within the same test file, which is typically managed by a framework like `RSpec` or `Minitest`. - example: TestModule - nullable: true + updated_at: + description: "Time when this resource was last updated." + example: "2024-01-01T12:00:00Z" + format: date-time + type: string + type: object + ExperimentsMetricSQLModelV2DTODataAttributesMeasuresItems: + description: "A measure available from a metric SQL model column." + example: + column_name: revenue + column_type: FLOAT + id: 550e8400-e29b-41d4-a716-446655440021 + name: revenue + properties: + column_name: + description: "Name of the SQL result column that supplies this measure." + example: revenue + type: string + column_type: + $ref: "#/components/schemas/ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType" + description: + description: "Text that explains the measure." type: string + id: + description: "ID of the measure." + example: 550e8400-e29b-41d4-a716-446655440021 + type: string + migration_metadata: + description: "Metadata retained for resources imported from another system." name: - description: The test name. A concise name for a test case. Defined in the test itself. - example: TestName + description: "Display name of the measure." + example: revenue type: string - pipeline_stats: - $ref: "#/components/schemas/FlakyTestPipelineStats" - nullable: true - services: - description: |- - List of test service names where this test has been flaky. - - A test service is a group of tests associated with a project or repository. It contains all the individual tests for your code, optionally organized into test suites, which are like folders for your tests. - example: ["foo", "bar"] - items: - description: A test service name where this test has been flaky. - type: string - type: array - suite: - description: The name of the test suite. A group of tests exercising the same unit of code depending on your language and testing framework. - example: TestSuite + type: object + ExperimentsMetricSQLModelV2DTODataAttributesSubjectTypesItems: + description: "A mapping between a subject type and its identifying SQL column." + example: + column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + unique_subject_count_measure_id: 550e8400-e29b-41d4-a716-446655440022 + properties: + column_name: + description: "Name of the SQL result column that identifies subjects of this type." + example: user_id + type: string + subject_type_id: + description: "ID of the subject type used by this configuration." + example: 550e8400-e29b-41d4-a716-446655440010 + type: string + unique_subject_count_measure_id: + description: >- + Read-only measure ID. Pass it as warehouse_metric_measure.id when the metric operation is `uniqueSubjects`. + example: 550e8400-e29b-41d4-a716-446655440022 type: string - test_run_metadata: - $ref: "#/components/schemas/FlakyTestRunMetadata" - test_stats: - $ref: "#/components/schemas/FlakyTestStats" type: object - FlakyTestAttributesFlakyState: - description: The current state of the flaky test. - enum: [active, fixed, quarantined, disabled] - example: active - type: string - x-enum-varnames: [ACTIVE, FIXED, QUARANTINED, DISABLED] - FlakyTestHistory: - description: A single history entry representing a status change for a flaky test. + ExperimentsMetricV2DTO: + description: "Response containing the metric." + example: + data: + attributes: + created_at: "2024-01-01T12:00:00Z" + data_source_type: CUSTOMER_WAREHOUSE + description: Share of sessions that reach the order confirmation page + desired_change: METRIC_INCREASES + format_as_percent: true + metric_type: SIMPLE + name: Checkout conversion + numerator_aggregation: + operation: sum + pipeline_column_suffix: agg001 + timeframe_start_value: 0 + warehouse_metric_measure: + id: 550e8400-e29b-41d4-a716-446655440021 + pipeline_column_suffix: rev001 + reference_url: "" + updated_at: "2024-01-01T12:00:00Z" + id: 550e8400-e29b-41d4-a716-446655440002 + type: metrics + properties: + data: + $ref: "#/components/schemas/ExperimentsMetricV2DTOData" + required: + - data + type: object + ExperimentsMetricV2DTOArray: + description: "List of metric resources with pagination information." + example: + data: + - attributes: + created_at: "2024-01-01T12:00:00Z" + data_source_type: CUSTOMER_WAREHOUSE + description: Share of sessions that reach the order confirmation page + desired_change: METRIC_INCREASES + format_as_percent: true + metric_type: SIMPLE + name: Checkout conversion + numerator_aggregation: + operation: sum + pipeline_column_suffix: agg001 + timeframe_start_value: 0 + warehouse_metric_measure: + id: 550e8400-e29b-41d4-a716-446655440021 + pipeline_column_suffix: rev001 + reference_url: "" + updated_at: "2024-01-01T12:00:00Z" + id: 550e8400-e29b-41d4-a716-446655440002 + type: metrics + properties: + data: + description: "Resources returned in this response." + example: + - attributes: + created_at: "2024-01-01T12:00:00Z" + data_source_type: CUSTOMER_WAREHOUSE + description: Share of sessions that reach the order confirmation page + desired_change: METRIC_INCREASES + format_as_percent: true + metric_type: SIMPLE + name: Checkout conversion + numerator_aggregation: + operation: sum + pipeline_column_suffix: agg001 + timeframe_start_value: 0 + warehouse_metric_measure: + id: 550e8400-e29b-41d4-a716-446655440021 + pipeline_column_suffix: rev001 + reference_url: "" + updated_at: "2024-01-01T12:00:00Z" + id: 550e8400-e29b-41d4-a716-446655440002 + type: metrics + items: + $ref: "#/components/schemas/ExperimentsMetricV2DTOData" + type: array + links: + $ref: "#/components/schemas/ExperimentsOffsetLinks" + meta: + $ref: "#/components/schemas/ExperimentsOffsetMeta" + required: + - data + type: object + ExperimentsMetricV2DTOData: + description: "JSON:API resource containing the metric identity and fields." + example: + attributes: + created_at: "2024-01-01T12:00:00Z" + data_source_type: CUSTOMER_WAREHOUSE + description: Share of sessions that reach the order confirmation page + desired_change: METRIC_INCREASES + format_as_percent: true + metric_type: SIMPLE + name: Checkout conversion + numerator_aggregation: + operation: sum + pipeline_column_suffix: agg001 + timeframe_start_value: 0 + warehouse_metric_measure: + id: 550e8400-e29b-41d4-a716-446655440021 + pipeline_column_suffix: rev001 + reference_url: "" + updated_at: "2024-01-01T12:00:00Z" + id: 550e8400-e29b-41d4-a716-446655440002 + type: metrics properties: - commit_sha: - description: The commit SHA associated with this status change. Will be an empty string if the commit SHA is not available. - example: abc123def456 + attributes: + $ref: "#/components/schemas/ExperimentsMetricV2DTODataAttributes" + id: + description: "ID of the metric." + example: 550e8400-e29b-41d4-a716-446655440002 + format: uuid type: string - policy_id: - $ref: "#/components/schemas/FlakyTestHistoryPolicyId" - policy_meta: - $ref: "#/components/schemas/FlakyTestHistoryPolicyMeta" + type: + $ref: "#/components/schemas/MetricType" + required: + - id + - type + type: object + ExperimentsMetricV2DTODataAttributes: + description: "Details of the metric." + example: + created_at: "2024-01-01T12:00:00Z" + data_source_type: CUSTOMER_WAREHOUSE + description: Share of sessions that reach the order confirmation page + desired_change: METRIC_INCREASES + format_as_percent: true + metric_type: SIMPLE + name: Checkout conversion + numerator_aggregation: + operation: sum + pipeline_column_suffix: agg001 + timeframe_start_value: 0 + warehouse_metric_measure: + id: 550e8400-e29b-41d4-a716-446655440021 + pipeline_column_suffix: rev001 + reference_url: "" + updated_at: "2024-01-01T12:00:00Z" + properties: + certified_at: + description: "Time when this resource was certified." + format: date-time nullable: true - status: - description: The test status at this point in history. - example: quarantined type: string - timestamp: - description: Unix timestamp in milliseconds when this status change occurred. - example: 1704067200000 + created_at: + description: "Time when this resource was created." + example: "2024-01-01T12:00:00Z" + format: date-time + type: string + data_source_type: + $ref: "#/components/schemas/ExperimentsMetricV2DTODataAttributesDataSourceType" + denominator_aggregation: + $ref: "#/components/schemas/ExperimentsMetricV2DTODataAttributesNumeratorAggregation" + description: + description: "Text that explains the metric." + example: Share of sessions that reach the order confirmation page + type: string + desired_change: + $ref: "#/components/schemas/ExperimentsMetricV2DTODataAttributesDesiredChange" + experiment_count: + description: "Number of experiments that reference this resource." format: int64 + nullable: true type: integer - required: - - status - - commit_sha - - timestamp + format_as_percent: + description: "Whether to display the metric value as a percentage." + example: true + type: boolean + guardrail_cutoff_threshold: + description: "Threshold used when evaluating this metric as a guardrail." + format: double + nullable: true + type: number + metric_type: + $ref: "#/components/schemas/ExperimentsMetricV2DTODataAttributesMetricType" + migration_metadata: + description: "Metadata retained for resources imported from another system." + name: + description: "Display name of the metric." + example: Checkout conversion + type: string + numerator_aggregation: + $ref: "#/components/schemas/ExperimentsMetricV2DTODataAttributesNumeratorAggregation" + percentile_aggregation: + $ref: "#/components/schemas/ExperimentsMetricV2DTODataAttributesPercentileAggregation" + reference_url: + description: "URL with supporting information about the metric." + example: "" + type: string + updated_at: + description: "Time when this resource was last updated." + example: "2024-01-01T12:00:00Z" + format: date-time + type: string type: object - FlakyTestHistoryPolicyId: - description: The policy that triggered this status change. + ExperimentsMetricV2DTODataAttributesDataSourceType: + description: "Source of the data used to calculate the metric." enum: - - ftm_policy.manual - - ftm_policy.fixed - - ftm_policy.disable.failure_rate - - ftm_policy.disable.branch_flake - - ftm_policy.disable.days_active - - ftm_policy.quarantine.failure_rate - - ftm_policy.quarantine.branch_flake - - ftm_policy.quarantine.days_active - - unknown - example: ftm_policy.quarantine.failure_rate - nullable: false + - DATADOG + - DATADOG_REFERENCE_TABLE + - CUSTOMER_WAREHOUSE + - IMPORTED + - UNKNOWN + example: CUSTOMER_WAREHOUSE type: string x-enum-varnames: - - MANUAL - - FIXED - - DISABLE_FAILURE_RATE - - DISABLE_BRANCH_FLAKE - - DISABLE_DAYS_ACTIVE - - QUARANTINE_FAILURE_RATE - - QUARANTINE_BRANCH_FLAKE - - QUARANTINE_DAYS_ACTIVE + - DATADOG + - DATADOG_REFERENCE_TABLE + - CUSTOMER_WAREHOUSE + - IMPORTED - UNKNOWN - FlakyTestHistoryPolicyMeta: - description: Metadata about the policy that triggered this status change. + ExperimentsMetricV2DTODataAttributesDesiredChange: + description: "Direction of metric change considered desirable." + enum: + - METRIC_INCREASES + - METRIC_DECREASES + - UNKNOWN + example: METRIC_INCREASES + type: string + x-enum-varnames: + - METRIC_INCREASES + - METRIC_DECREASES + - UNKNOWN + ExperimentsMetricV2DTODataAttributesMetricType: + description: "Type of metric calculation." + enum: + - SIMPLE + - RATIO + - PERCENTILE + - UNKNOWN + example: SIMPLE + type: string + x-enum-varnames: + - SIMPLE + - RATIO + - PERCENTILE + - UNKNOWN + ExperimentsMetricV2DTODataAttributesNumeratorAggregation: + description: "Source measure and aggregation settings for a metric value." + example: + operation: sum + pipeline_column_suffix: agg001 + timeframe_start_value: 0 + warehouse_metric_measure: + id: 550e8400-e29b-41d4-a716-446655440021 + pipeline_column_suffix: rev001 + nullable: true properties: - branches: - description: Branches where the test was flaky at the time of the status change. - example: ["main", "develop"] + aging_threshold_days: + description: |- + Stored aging threshold in days. The subject aging filter uses the aggregation window end and unit. + format: int64 + type: integer + datadog_metric_measure: + $ref: "#/components/schemas/ExperimentsMetricV2DTODataAttributesPercentileAggregationDatadogMetricMeasure" + enable_aging_subject_filter: + description: "Whether to exclude subjects whose observation time is shorter than the aggregation window." + type: boolean + operation: + description: "Aggregation applied to the selected measure." + example: sum + type: string + pipeline_column_suffix: + description: "Suffix used to identify this value in pipeline output columns." + example: agg001 + type: string + property_filters: + description: "Filters applied to the metric aggregation." items: - type: string - nullable: true + $ref: "#/components/schemas/ExperimentsMetricPropertyFilterGroup" type: array - config: - $ref: "#/components/schemas/FlakyTestHistoryPolicyMetaConfig" - nullable: true - days_active: - description: The number of days the test has been active at the time of the status change. - example: 15 - format: int32 - maximum: 2147483647 - nullable: true - type: integer - days_without_flake: - description: The number of days since the test last exhibited flakiness. - example: 30 - format: int32 - maximum: 2147483647 - nullable: true - type: integer - failure_rate: - description: The failure rate of the test at the time of the status change. - example: 0.25 + threshold_aggregation_type: + description: "Aggregation used to evaluate the threshold." + type: string + threshold_breach_value: + description: "Value used to determine whether the threshold is breached." format: double - maximum: 1 - minimum: 0 - nullable: true type: number - state: - description: The previous state of the test. - example: quarantined - nullable: true + threshold_comparison_operator: + description: "Comparison applied between the aggregated value and the threshold." + type: string + threshold_timeframe_dimension: + description: "Time unit used for the threshold evaluation window." + type: string + threshold_timeframe_value: + description: "Size of the threshold evaluation window." + format: double + type: number + timeframe_end_value: + description: "End of the aggregation window in the specified time unit." + format: double + type: number + timeframe_start_value: + description: "Start of the aggregation window in the specified time unit." + example: 0 + format: double + type: number + timeframe_unit: + description: "Time unit used for the aggregation window." + type: string + warehouse_metric_measure: + $ref: "#/components/schemas/ExperimentsMetricV2DTODataAttributesPercentileAggregationWarehouseMetricMeasure" + winsor_lower_fixed_value: + description: "Fixed lower bound used to cap metric values." + format: double + type: number + winsor_lower_percentile: + description: "Percentile used to determine the lower bound for capped metric values." + format: double + type: number + winsor_upper_fixed_value: + description: "Fixed upper bound used to cap metric values." + format: double + type: number + winsor_upper_percentile: + description: "Percentile used to determine the upper bound for capped metric values." + format: double + type: number + winsorization_strategy: + description: "Method used to cap extreme metric values." type: string - total_runs: - description: The total number of test runs at the time of the status change. - example: 200 - format: int32 - maximum: 2147483647 - nullable: true - type: integer type: object - FlakyTestHistoryPolicyMetaConfig: - description: Configuration parameters of the policy that triggered this status change. + ExperimentsMetricV2DTODataAttributesPercentileAggregation: + description: "Source measure and settings for a percentile metric." + nullable: true properties: - branches: - description: The branches considered by the policy. - example: ["main"] - items: - type: string - nullable: true - type: array - days_active: - description: The number of days a test must have been active for the policy to trigger. - example: 30 - format: int32 - maximum: 2147483647 - nullable: true - type: integer - failure_rate: - description: The failure rate threshold for the policy to trigger. - example: 0.7 + datadog_metric_measure: + $ref: "#/components/schemas/ExperimentsMetricV2DTODataAttributesPercentileAggregationDatadogMetricMeasure" + percentile: + description: "Percentile calculated from the selected measure." format: double - maximum: 1 - minimum: 0 - nullable: true type: number - forget_branches: - description: Branches excluded from the policy evaluation. - example: ["release"] - items: - type: string - nullable: true - type: array - required_runs: - description: The minimum number of test runs required for the policy to trigger. - example: 100 - format: int32 - maximum: 2147483647 - nullable: true - type: integer - state: - description: The target state the policy transitions the test from. - example: quarantined - nullable: true + pipeline_column_suffix: + description: "Suffix used to identify this value in pipeline output columns." type: string - test_services: - description: Test services excluded from the policy evaluation. - example: ["my-service"] + property_filters: + description: "Filters applied to the metric aggregation." items: - type: string - nullable: true + $ref: "#/components/schemas/ExperimentsMetricPropertyFilterGroup" type: array + warehouse_metric_measure: + $ref: "#/components/schemas/ExperimentsMetricV2DTODataAttributesPercentileAggregationWarehouseMetricMeasure" type: object - FlakyTestImpactLevel: - description: The impact level of the flaky test, derived from its impact score. - enum: [low, medium, high] - example: medium - type: string - x-enum-varnames: [LOW, MEDIUM, HIGH] - FlakyTestPipelineStats: - description: CI pipeline related statistics for the flaky test. This information is only available if test runs are associated with CI pipeline events from CI Visibility. - properties: - failed_pipelines: - description: The number of pipelines that failed due to this test for the past 7 days. This is computed as the sum of failed CI pipeline events associated with test runs where the flaky test failed. - example: 319 - format: int64 - nullable: true - type: integer - total_lost_time_ms: - description: The total time lost by CI pipelines due to this flaky test in milliseconds. This is computed as the sum of the duration of failed CI pipeline events associated with test runs where the flaky test failed. - example: 1527550000 - format: int64 - nullable: true - type: integer - type: object - FlakyTestRunMetadata: - description: Metadata about the latest failed test run of the flaky test. + ExperimentsMetricV2DTODataAttributesPercentileAggregationDatadogMetricMeasure: + description: "Datadog source and query that supply values for the metric." properties: - duration_ms: - description: The duration of the test run in milliseconds. - example: 27398 - format: int64 - nullable: true - type: integer - error_message: - description: The error message from the test failure. - example: "Expecting actual not to be empty" - nullable: true + column_name: + description: "Name of the Datadog event field used by this measure." type: string - error_stack: - description: The stack trace from the test failure. - example: "Traceback (most recent call last):\n File \"test_foo.py\", line 10, in test_foo\n assert actual == expected\nAssertionError: Expecting actual not to be empty" - nullable: true + column_type: + description: "Data type of the source column." type: string - source_end: - description: The line number where the test ends in the source file. - example: 20 - format: int64 - nullable: true - type: integer - source_file: - description: The source file where the test is defined. - example: test_foo.py - nullable: true + filters: + description: "Conditions used to select the metric's source data." + name: + description: "Display name of the Datadog measure." + type: string + query: + description: "Query used to retrieve the Datadog measure." + type: string + source_definition_filter: + description: "Filter applied to the Datadog source definition." + source_subtype: + description: "Subtype of the Datadog data source." + type: string + source_type: + description: "Type of Datadog data source used for the measure." type: string - source_start: - description: The line number where the test starts in the source file. - example: 10 - format: int64 - nullable: true - type: integer type: object - FlakyTestStats: - description: Test statistics for the flaky test. + ExperimentsMetricV2DTODataAttributesPercentileAggregationWarehouseMetricMeasure: + description: "Warehouse measure that supplies values for the metric." properties: - failure_rate_pct: - description: The failure rate percentage of the test for the past 7 days. This is the number of failed test runs divided by the total number of test runs (excluding skipped test runs). - example: 0.1 - format: double - nullable: true - type: number + id: + description: "ID of the measure." + type: string + pipeline_column_suffix: + description: "Suffix used to identify this value in pipeline output columns." + type: string type: object - FlakyTestType: - description: The type of the flaky test from Flaky Test Management. - enum: [flaky_test] - type: string - x-enum-varnames: [FLAKY_TEST] - FlakyTestsPagination: - description: Pagination metadata for flaky tests. + ExperimentsNullableDatadogMetricMeasureInput: + description: Optional Datadog measure. Use null when the other measure is selected. + nullable: true properties: - next_page: - description: Cursor for the next page of results. - nullable: true + column_name: + description: Name of the Datadog event field used by this measure. + example: "@view.time_spent" + type: string + column_type: + description: Data type of the source column. + example: double + minLength: 1 + pattern: \S + type: string + filters: + description: Conditions used to select the metric's source data. + name: + description: Display name of the Datadog measure. + example: View duration + minLength: 1 + pattern: \S + type: string + query: + description: Query used to retrieve the Datadog measure. + type: string + source_definition_filter: + description: Filter applied to the Datadog source definition. + source_subtype: + description: Subtype of the Datadog data source. + example: RUM_VIEWS + minLength: 1 + pattern: \S + type: string + source_type: + description: Type of Datadog data source used for the measure. + example: PRODUCT_ANALYTICS + minLength: 1 + pattern: \S type: string + required: + - name + - source_type + - source_subtype + - column_type type: object - FlakyTestsSearchFilter: - description: Search filter settings. + ExperimentsNullableDatadogPercentileMeasureInput: + description: Optional Datadog percentile measure. Use null when the warehouse measure is selected. + nullable: true properties: - include_history: - default: false - description: |- - Whether to include the status change history for each flaky test in the response. - When set to true, each test will include a `history` array with chronological status changes. - Defaults to false. - example: true - type: boolean + column_name: + description: Name of the Datadog event field used by this measure. + example: "@view.time_spent" + minLength: 1 + pattern: \S + type: string + column_type: + description: Data type of the source column. + example: double + minLength: 1 + pattern: \S + type: string + filters: + description: Conditions used to select the metric's source data. + name: + description: Display name of the Datadog measure. + example: View duration + minLength: 1 + pattern: \S + type: string query: - default: "*" - description: |- - Search query following log syntax used to filter flaky tests, same as on Flaky Tests Management UI. The supported search keys are: - - `flaky_test_state` - - `flaky_test_category` - - `@test.name` - - `@test.suite` - - `@test.module` - - `@test.service` - - `@git.repository.id_v2` - - `@git.branch` - - `@test.codeowners` - - `env` - - `fingerprint_fqn` - - Use `fingerprint_fqn` to filter by a test's stable Fingerprint FQN (the same value as the test's `id`). - example: 'flaky_test_state:active @git.repository.id_v2:"github.com/datadog/shopist"' + description: Query used to retrieve the Datadog measure. + type: string + source_definition_filter: + description: Filter applied to the Datadog source definition. + source_subtype: + description: Subtype of the Datadog data source. + example: RUM_VIEWS + minLength: 1 + pattern: \S type: string + source_type: + description: Type of Datadog data source used for the measure. + example: PRODUCT_ANALYTICS + minLength: 1 + pattern: \S + type: string + required: + - name + - source_type + - source_subtype + - column_type + - column_name type: object - FlakyTestsSearchPageOptions: - description: Pagination attributes for listing flaky tests. + ExperimentsNullableWarehouseMetricMeasureInput: + description: Optional warehouse measure. Use null when the other measure is selected. + nullable: true properties: - cursor: - description: |- - List following results with a cursor provided in the previous request. - example: "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" + id: + description: Identifier of the warehouse metric measure. + example: 550e8400-e29b-41d4-a716-446655440021 + format: uuid + type: string + required: + - id + type: object + ExperimentsOffsetLinks: + description: "Links for navigating a paginated result set." + properties: + first: + description: "URL of the first page of results." + type: string + last: + description: "URL of the last page of results." + type: string + next: + description: "URL of the next page of results." + type: string + prev: + description: "URL of the previous page of results." + type: string + self: + description: "URL of the current page of results." type: string + type: object + ExperimentsOffsetMeta: + description: "Pagination information for a list response." + properties: + page: + $ref: "#/components/schemas/ExperimentsOffsetMetaPage" + type: object + ExperimentsOffsetMetaPage: + description: "Result counts and offsets for a page of results." + properties: + first_offset: + description: "Offset of the first page of results." + format: int64 + type: integer + last_offset: + description: "Offset of the last page of results." + format: int64 + nullable: true + type: integer limit: - default: 10 - description: Maximum number of flaky tests in the response. - example: 25 + description: "Maximum number of results returned in one page." format: int64 - maximum: 1000 - minimum: 1 type: integer + next_offset: + description: "Offset of the next page of results." + format: int64 + nullable: true + type: integer + offset: + description: "Number of results skipped before this page." + format: int64 + type: integer + prev_offset: + description: "Offset of the previous page of results." + format: int64 + nullable: true + type: integer + total: + description: "Total number of matching results across all pages." + format: int64 + nullable: true + type: integer + type: + description: "Pagination method used for this result set." + type: string type: object - FlakyTestsSearchRequest: - description: The request for a flaky tests search. - properties: + ExperimentsPatchExperimentMetricGroupV2Request: + description: "Request to update the experiment metric group." + example: data: - $ref: "#/components/schemas/FlakyTestsSearchRequestData" - type: object - FlakyTestsSearchRequestAttributes: - description: Attributes for the flaky tests search request. + attributes: + metrics: + - metric_id: 550e8400-e29b-41d4-a716-446655440021 + name: Reliability + id: 550e8400-e29b-41d4-a716-446655440022 + type: experiment-metric-groups properties: - filter: - $ref: "#/components/schemas/FlakyTestsSearchFilter" - page: - $ref: "#/components/schemas/FlakyTestsSearchPageOptions" - sort: - $ref: "#/components/schemas/FlakyTestsSearchSort" + data: + $ref: "#/components/schemas/ExperimentsPatchExperimentMetricGroupV2RequestData" + required: + - data type: object - FlakyTestsSearchRequestData: - description: The JSON:API data for flaky tests search request. + ExperimentsPatchExperimentMetricGroupV2RequestData: + description: "JSON:API resource containing the experiment metric group identity and fields." + example: + attributes: + metrics: + - metric_id: 550e8400-e29b-41d4-a716-446655440021 + name: Reliability + id: 550e8400-e29b-41d4-a716-446655440022 + type: experiment-metric-groups properties: attributes: - $ref: "#/components/schemas/FlakyTestsSearchRequestAttributes" + $ref: "#/components/schemas/ExperimentsPatchExperimentMetricGroupV2RequestDataAttributes" + id: + description: "ID of the experiment metric group." + example: 550e8400-e29b-41d4-a716-446655440022 + format: uuid + type: string type: - $ref: "#/components/schemas/FlakyTestsSearchRequestDataType" + $ref: "#/components/schemas/ExperimentsPatchExperimentMetricGroupV2RequestDataType" + required: + - type type: object - FlakyTestsSearchRequestDataType: - description: The definition of `FlakyTestsSearchRequestDataType` object. - enum: - - search_flaky_tests_request - type: string - x-enum-varnames: - - SEARCH_FLAKY_TESTS_REQUEST - FlakyTestsSearchResponse: - description: Response object with flaky tests matching the search request. + ExperimentsPatchExperimentMetricGroupV2RequestDataAttributes: + description: "Fields supplied to update the experiment metric group." + example: + metrics: + - metric_id: 550e8400-e29b-41d4-a716-446655440021 + name: Reliability properties: - data: - description: Array of flaky tests matching the request. + metrics: + description: "Metrics included in this group." + example: + - metric_id: 550e8400-e29b-41d4-a716-446655440021 items: - $ref: "#/components/schemas/FlakyTest" + $ref: "#/components/schemas/ExperimentsCreateExperimentMetricGroupV2RequestDataAttributesMetricsItems" type: array - meta: - $ref: "#/components/schemas/FlakyTestsSearchResponseMeta" - type: object - FlakyTestsSearchResponseMeta: - description: Metadata for the flaky tests search response. - properties: - pagination: - $ref: "#/components/schemas/FlakyTestsPagination" + migration_metadata: + description: "Metadata retained for resources imported from another system." + name: + description: "Display name of the experiment metric group." + example: Reliability + type: string type: object - FlakyTestsSearchSort: - description: Parameter for sorting flaky test results. The default sort is by ascending Fully Qualified Name (FQN). The FQN is the concatenation of the test module, suite, and name. + ExperimentsPatchExperimentMetricGroupV2RequestDataType: + default: experiment-metric-groups + description: Experiment metric groups resource type. enum: - - fqn - - -fqn - - first_flaked - - -first_flaked - - last_flaked - - -last_flaked - - failure_rate - - -failure_rate - - pipelines_failed - - -pipelines_failed - - pipelines_duration_lost - - -pipelines_duration_lost - example: failure_rate + - experiment-metric-groups + example: experiment-metric-groups type: string x-enum-varnames: - - FQN_ASCENDING - - FQN_DESCENDING - - FIRST_FLAKED_ASCENDING - - FIRST_FLAKED_DESCENDING - - LAST_FLAKED_ASCENDING - - LAST_FLAKED_DESCENDING - - FAILURE_RATE_ASCENDING - - FAILURE_RATE_DESCENDING - - PIPELINES_FAILED_ASCENDING - - PIPELINES_FAILED_DESCENDING - - PIPELINES_DURATION_LOST_ASCENDING - - PIPELINES_DURATION_LOST_DESCENDING - FleetAgentAttributesTagsItems: - description: A key-value pair representing a tag associated with a Datadog Agent. - properties: - key: - description: The tag key. - type: string - value: - description: The tag value. - type: string - type: object - FleetAgentConfigurationFilesV2: - description: Configuration details for an agent, organized by configuration layer. + - EXPERIMENT_METRIC_GROUPS + ExperimentsPatchExperimentV2MetaDTO: + description: "Refresh requirements and warnings returned by an experiment update." properties: - agent_configuration: - $ref: "#/components/schemas/FleetConfigurationLayer" - application_monitoring_configuration: - $ref: "#/components/schemas/FleetConfigurationLayer" - otel_collectors_configuration: + needs_pipeline_refresh: description: >- - Configuration for OpenTelemetry collectors associated with the agent. Present only when the agent has associated OpenTelemetry collectors. + Whether this edit needs a full or non-full pipeline run. This operation does not start the run. A later false value does not clear a refresh required by an earlier edit. + example: false + type: boolean + refresh_endpoint: + description: >- + POST to this endpoint after finishing your edits. The full_refresh query parameter selects the required run type. Across multiple edits any full_refresh=true requirement takes priority. + type: string + warnings: + description: "Warnings returned after the experiment update." items: - $ref: "#/components/schemas/FleetOtelCollectorConfigurationV2" + $ref: "#/components/schemas/ExperimentsPatchExperimentV2MetaDTOWarningsItems" type: array - security_agent_configuration: - $ref: "#/components/schemas/FleetConfigurationLayer" - system_probe_configuration: - $ref: "#/components/schemas/FleetConfigurationLayer" + required: + - needs_pipeline_refresh type: object - FleetAgentDetailV2: - description: Detailed information about a specific Datadog Agent. + ExperimentsPatchExperimentV2MetaDTOWarningsItems: + description: "A warning returned after an experiment update." + properties: + code: + description: "Code that identifies the warning." + example: code + type: string + detail: + description: "Explanation of the warning and its effect on the update." + example: detail + type: string + required: + - code + - detail + type: object + ExperimentsPatchExperimentV2Request: + description: "Request to update the experiment." + example: + data: + attributes: + datadog_flag_configuration: + entry_point: + environment_id: 550e8400-e29b-41d4-a716-446655440005 + feature_flag_id: 550e8400-e29b-41d4-a716-446655440014 + reset_on_feature_flag_change: true + targeting_rules: [] + structured_metadata: + - enum_values: + - general_availability + field_key: launch_stage + traffic_exposure: + fraction: 1 + mode: STATIC + variants: + - feature_flag_variant_id: 550e8400-e29b-41d4-a716-446655440020 + is_active: true + is_control: true + key: control + weight: 50 + - feature_flag_variant_id: 550e8400-e29b-41d4-a716-446655440021 + is_active: true + is_control: false + key: treatment + weight: 50 + type: experiments + properties: + data: + $ref: "#/components/schemas/ExperimentsPatchExperimentV2RequestData" + required: + - data + type: object + ExperimentsPatchExperimentV2RequestData: + description: "JSON:API resource containing the experiment identity and fields." + example: + attributes: + datadog_flag_configuration: + entry_point: + environment_id: 550e8400-e29b-41d4-a716-446655440005 + feature_flag_id: 550e8400-e29b-41d4-a716-446655440014 + reset_on_feature_flag_change: true + targeting_rules: [] + structured_metadata: + - enum_values: + - general_availability + field_key: launch_stage + traffic_exposure: + fraction: 1 + mode: STATIC + variants: + - feature_flag_variant_id: 550e8400-e29b-41d4-a716-446655440020 + is_active: true + is_control: true + key: control + weight: 50 + - feature_flag_variant_id: 550e8400-e29b-41d4-a716-446655440021 + is_active: true + is_control: false + key: treatment + weight: 50 + type: experiments properties: attributes: - $ref: "#/components/schemas/FleetAgentDetailV2Attributes" + $ref: "#/components/schemas/ExperimentsPatchExperimentV2RequestDataAttributes" id: - description: The unique agent key identifier. - example: "a1b2c3d4e5f67890a1b2c3d4e5f67890" + description: "ID of the experiment." type: string type: - $ref: "#/components/schemas/FleetAgentV2ResourceType" + $ref: "#/components/schemas/ExperimentsPatchExperimentV2ResponseDataType" required: - - id - type - - attributes - type: object - FleetAgentDetailV2Attributes: - description: Attributes for the v2 agent detail response. - properties: - agent_infos: - $ref: "#/components/schemas/FleetAgentInfoDetailsV2" - configuration_files: - $ref: "#/components/schemas/FleetAgentConfigurationFilesV2" - description: Configuration file details, present only when `configuration_files` is included in the `include` query parameter. - integrations: - $ref: "#/components/schemas/FleetIntegrationsByStatusV2" - description: Integration details, present only when `integrations` is included in the `include` query parameter. - required: - - agent_infos - type: object - FleetAgentDetailV2Response: - description: Response containing detailed information about a specific Datadog Agent. - properties: - data: - $ref: "#/components/schemas/FleetAgentDetailV2" - required: - - data type: object - FleetAgentInfoDetailsV2: - description: Detailed information about a Datadog Agent. + ExperimentsPatchExperimentV2RequestDataAttributes: + description: "Fields supplied to update the experiment." + example: + datadog_flag_configuration: + entry_point: + environment_id: 550e8400-e29b-41d4-a716-446655440005 + feature_flag_id: 550e8400-e29b-41d4-a716-446655440014 + reset_on_feature_flag_change: true + targeting_rules: [] + structured_metadata: + - enum_values: + - general_availability + field_key: launch_stage + traffic_exposure: + fraction: 1 + mode: STATIC + variants: + - feature_flag_variant_id: 550e8400-e29b-41d4-a716-446655440020 + is_active: true + is_control: true + key: control + weight: 50 + - feature_flag_variant_id: 550e8400-e29b-41d4-a716-446655440021 + is_active: true + is_control: false + key: treatment + weight: 50 properties: - active_ha_agent: - description: The currently active agent in the high-availability group. - type: string - agent_version: - description: The Datadog Agent version. - example: "7.50.0" - type: string - api_key_name: - description: The API key name (if available and not redacted). - example: "Production API Key" - type: string - api_key_uuid: - description: The API key UUID. - example: "a1b2c3d4-e5f6-4321-a123-123456789abc" - type: string - cloud_provider: - description: The cloud provider where the agent is running. - example: "aws" - type: string - cluster_name: - description: Kubernetes cluster name (if applicable). + assignments_end_date: + description: "End of the time window for experiment assignments." + format: date-time + nullable: true type: string - config_id: - description: The configuration identifier applied to the agent. + assignments_start_date: + description: "Start of the time window for experiment assignments." + format: date-time + nullable: true type: string - datadog_agent_key: - description: The unique agent key identifier. - example: "a1b2c3d4e5f67890a1b2c3d4e5f67890" + datadog_flag_configuration: + $ref: "#/components/schemas/ExperimentsPatchExperimentV2RequestDataAttributesDatadogFlagConfiguration" + decision_metrics: + description: "Metrics used to decide the experiment outcome." + items: + $ref: "#/components/schemas/ExperimentsCreateExperimentV2RequestDataAttributesDecisionMetricsItems" + type: array + events_end_date: + description: "End of the time window for metric events." + format: date-time + nullable: true type: string - datadog_data_center: - description: The Datadog data center the agent reports to. - example: "us1" + events_start_date: + description: "Start of the time window for metric events." + format: date-time + nullable: true type: string - ecs_fargate_cluster_name: - description: The ECS Fargate cluster name, if the agent runs in an ECS Fargate environment. - example: "my-ecs-cluster" + hypothesis: + description: "Expected effect that the experiment is intended to test." type: string - ecs_fargate_task_arn: - description: The ECS Fargate task ARN, if the agent runs in an ECS Fargate environment. - example: "arn:aws:ecs:us-east-1:123456789012:task/my-cluster/abc123" + migration_metadata: + description: "Metadata retained for resources imported from another system." + name: + description: "Display name of the experiment." type: string - enabled_products: - description: Datadog products enabled on the agent. + related_links: + description: "Links to supporting material for the experiment." items: - description: A Datadog product enabled on the agent. - type: string + $ref: "#/components/schemas/ExperimentsCreateExperimentV2RequestDataAttributesRelatedLinksItems" type: array - env: - description: Environments the agent is reporting from. + split_by_properties: + description: >- + Complete replacement for the Datadog split-by selection. Identify each property by column_name. Omit this field to leave the selection unchanged. items: - description: An environment name the agent is reporting from. - type: string + $ref: "#/components/schemas/ExperimentsCreateExperimentV2RequestDataAttributesSplitByPropertiesItems" type: array - first_seen_at: - description: Timestamp when the agent was first seen. - format: int64 - type: integer - ha_agent_hosts: - description: Hosts participating in the agent's high-availability group. + structured_metadata: + description: >- + Metadata values to update. Omit this field, send null, or send an empty array to leave metadata unchanged. + example: + - enum_values: + - general_availability + field_key: launch_stage items: - description: A hostname participating in the high-availability group. - type: string + $ref: "#/components/schemas/ExperimentsCreateExperimentV2RequestDataAttributesStructuredMetadataItems" + nullable: true type: array - ha_agent_state: - description: The high-availability state of the agent. + subject_type_id: + description: "ID of the subject type used by this configuration." type: string - hostname: - description: The hostname of the agent. - example: "my-hostname" + summary: + description: "Summary text recorded for the experiment." + nullable: true type: string - hostname_aliases: - description: Alternative hostname list for the agent. + tags: + description: "Tags attached to the experiment." items: - description: An alternative hostname alias for the agent. + description: "A tag attached to the experiment." type: string type: array - install_method_installer_version: - description: The version of the installer used. - example: "1.2.3" - type: string - install_method_tool: - description: The tool used to install the agent. - example: "chef" - type: string - ip_addresses: - description: IP addresses of the agent. + teams: + description: "Teams associated with the experiment." items: - description: An IP address of the agent. + description: "A team associated with the experiment." type: string type: array - is_single_step_instrumentation_enabled: - description: Whether single-step instrumentation is enabled. + traffic_exposure: + $ref: "#/components/schemas/ExperimentsPatchExperimentV2ResponseDataAttributesTrafficExposure" + variants: + description: "Variants configured for the experiment." + example: + - feature_flag_variant_id: 550e8400-e29b-41d4-a716-446655440020 + is_active: true + is_control: true + key: control + weight: 50 + - feature_flag_variant_id: 550e8400-e29b-41d4-a716-446655440021 + is_active: true + is_control: false + key: treatment + weight: 50 + items: + $ref: "#/components/schemas/ExperimentsCreateExperimentV2RequestDataAttributesVariantsItems" + type: array + warehouse_exposure_configuration: + $ref: "#/components/schemas/ExperimentsCreateExperimentV2RequestDataAttributesWarehouseExposureConfiguration" + type: object + ExperimentsPatchExperimentV2RequestDataAttributesDatadogFlagConfiguration: + description: "Feature flag, environment, and targeting configuration for the experiment." + example: + entry_point: + environment_id: 550e8400-e29b-41d4-a716-446655440005 + feature_flag_id: 550e8400-e29b-41d4-a716-446655440014 + reset_on_feature_flag_change: true + targeting_rules: [] + nullable: true + properties: + entry_point: + $ref: >- + #/components/schemas/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPoint + environment_id: + description: "ID of the feature flag environment used by the experiment." + example: 550e8400-e29b-41d4-a716-446655440005 + type: string + feature_flag_id: + description: "ID of the feature flag linked to the experiment." + example: 550e8400-e29b-41d4-a716-446655440014 + type: string + reset_on_feature_flag_change: + description: >- + Set true to replace an existing draft allocation when feature_flag_id changes. The replacement resets all flag-bound randomization state. + example: true type: boolean - last_restart_at: - description: Timestamp of the last agent restart. - format: int64 - type: integer - os: - description: The operating system. - example: "linux" + targeting_rules: + description: Omit to keep the stored rules. Use an empty array to remove targeting rules. + example: [] + items: + $ref: >- + #/components/schemas/ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfigurationTargetingRulesItems + type: array + type: object + ExperimentsPatchExperimentV2Response: + description: "Response containing the updated experiment, refresh requirements, and warnings." + example: + data: + attributes: + assignments_end_date: "2026-08-15T00:00:00Z" + assignments_start_date: "2026-08-01T00:00:00Z" + concluded_at: "2026-08-05T09:30:00Z" + conclusion: + decision_reason: The primary metric improved without material regressions + outcome: POSITIVE + summary: The treatment improved conversion + created_at: "2026-08-01T12:00:00Z" + datadog_flag_configuration: + decision_metrics: + - is_primary: true + metric_id: b1a2c3d4-0000-0000-0000-000000000000 + decision_variant_key: treatment + events_end_date: "2026-08-22T00:00:00Z" + events_start_date: "2026-08-01T00:00:00Z" + experiment_type: STANDARD + hypothesis: A clearer checkout button increases purchase conversion + name: Checkout button test + pipeline_table_suffix: a1b2c3d4 + protocol_id: e4d5f6a7-0000-0000-0000-000000000000 + related_links: + - id: d1d2d3d4-0000-0000-0000-000000000000 + title: Experiment design + url: https://docs.example.com/checkout-experiment + results_last_updated: "2026-08-05T09:25:00Z" + split_by_properties: [] + status: DECISION_MADE + structured_metadata: + - enum_values: + - beta + field_display_name: Launch stage + field_key: launch_stage + field_type: ENUM + - field_display_name: Notes + field_key: notes + field_type: FREETEXT + freetext_value: Checkout redesign + subject_type_id: c2b3d4e5-0000-0000-0000-000000000000 + summary: The treatment improved conversion + tags: + - growth + teams: + - growth + traffic_exposure: + fraction: 1 + mode: STATIC + updated_at: "2026-08-05T09:30:00Z" + variants: + - is_active: true + is_control: true + key: control + name: Control + weight: 50 + - is_active: true + is_control: false + key: treatment + name: Treatment + weight: 50 + warehouse_exposure_configuration: + entry_point: + experiment_key: checkout_button_test + exposure_sql_model_id: f5e6a7b8-0000-0000-0000-000000000000 + id: 550e8400-e29b-41d4-a716-446655440000 + type: experiments + properties: + data: + $ref: "#/components/schemas/ExperimentsExperimentV2DTOData" + meta: + $ref: "#/components/schemas/ExperimentsPatchExperimentV2MetaDTO" + required: + - data + type: object + ExperimentsPatchExperimentV2ResponseDataAttributes: + description: "Details of the experiment." + example: + assignments_end_date: "2026-08-15T00:00:00Z" + assignments_start_date: "2026-08-01T00:00:00Z" + concluded_at: "2026-08-05T09:30:00Z" + conclusion: + decision_reason: The primary metric improved without material regressions + outcome: POSITIVE + summary: The treatment improved conversion + created_at: "2026-08-01T12:00:00Z" + datadog_flag_configuration: + decision_metrics: + - is_primary: true + metric_id: b1a2c3d4-0000-0000-0000-000000000000 + decision_variant_key: treatment + events_end_date: "2026-08-22T00:00:00Z" + events_start_date: "2026-08-01T00:00:00Z" + experiment_type: STANDARD + hypothesis: A clearer checkout button increases purchase conversion + name: Checkout button test + pipeline_table_suffix: a1b2c3d4 + protocol_id: e4d5f6a7-0000-0000-0000-000000000000 + related_links: + - id: d1d2d3d4-0000-0000-0000-000000000000 + title: Experiment design + url: https://docs.example.com/checkout-experiment + results_last_updated: "2026-08-05T09:25:00Z" + split_by_properties: [] + status: DECISION_MADE + structured_metadata: + - enum_values: + - beta + field_display_name: Launch stage + field_key: launch_stage + field_type: ENUM + - field_display_name: Notes + field_key: notes + field_type: FREETEXT + freetext_value: Checkout redesign + subject_type_id: c2b3d4e5-0000-0000-0000-000000000000 + summary: The treatment improved conversion + tags: + - growth + teams: + - growth + traffic_exposure: + fraction: 1 + mode: STATIC + updated_at: "2026-08-05T09:30:00Z" + variants: + - is_active: true + is_control: true + key: control + name: Control + weight: 50 + - is_active: true + is_control: false + key: treatment + name: Treatment + weight: 50 + warehouse_exposure_configuration: + entry_point: + experiment_key: checkout_button_test + exposure_sql_model_id: f5e6a7b8-0000-0000-0000-000000000000 + properties: + assignments_end_date: + description: "End of the time window for experiment assignments." + example: "2026-08-15T00:00:00Z" + format: date-time + nullable: true type: string - os_version: - description: The operating system version. - example: "Ubuntu 20.04" + assignments_start_date: + description: "Start of the time window for experiment assignments." + example: "2026-08-01T00:00:00Z" + format: date-time + nullable: true type: string - otel_collectors: - description: OpenTelemetry collectors associated with the agent (if applicable). + concluded_at: + description: "Time when the experiment was concluded." + example: "2026-08-05T09:30:00Z" + format: date-time + nullable: true + type: string + conclusion: + $ref: "#/components/schemas/ExperimentsPatchExperimentV2ResponseDataAttributesConclusion" + created_at: + description: "Time when this resource was created." + example: "2026-08-01T12:00:00Z" + format: date-time + type: string + datadog_flag_configuration: + $ref: "#/components/schemas/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfiguration" + decision_metrics: + description: "Metrics used to decide the experiment outcome." + example: + - is_primary: true + metric_id: b1a2c3d4-0000-0000-0000-000000000000 items: - $ref: "#/components/schemas/FleetOtelCollector" + $ref: "#/components/schemas/ExperimentsCreateExperimentV2RequestDataAttributesDecisionMetricsItems" type: array - pod_name: - description: Kubernetes pod name (if applicable). + decision_variant_key: + description: "Key of the variant selected in the experiment decision." + example: treatment type: string - preferred_ha_active_agent: - description: The preferred active agent in the high-availability group. + events_end_date: + description: "End of the time window for metric events." + example: "2026-08-22T00:00:00Z" + format: date-time + nullable: true type: string - python_version: - description: The Python version used by the agent. - example: "3.9.5" + events_start_date: + description: "Start of the time window for metric events." + example: "2026-08-01T00:00:00Z" + format: date-time + nullable: true type: string - region: - description: Regions where the agent is running. + experiment_type: + description: >- + Kind of experiment. STANDARD is an ordinary experiment. Other values, such as CANARY and HOLDOUT, identify experiments owned by another workflow. New kinds may be added; treat unknown values as non-standard. + example: STANDARD + type: string + hypothesis: + description: "Expected effect that the experiment is intended to test." + example: A clearer checkout button increases purchase conversion + type: string + migration_metadata: + description: "Metadata retained for resources imported from another system." + name: + description: "Display name of the experiment." + example: Checkout button test + type: string + pipeline_table_suffix: + description: "Suffix used to identify the experiment's pipeline output table." + example: a1b2c3d4 + type: string + protocol_id: + description: "ID of the protocol associated with the experiment." + example: e4d5f6a7-0000-0000-0000-000000000000 + type: string + related_links: + description: "Links to supporting material for the experiment." + example: + - id: d1d2d3d4-0000-0000-0000-000000000000 + title: Experiment design + url: https://docs.example.com/checkout-experiment items: - description: A region where the agent is running. - type: string + $ref: "#/components/schemas/ExperimentsCreateExperimentV2RequestDataAttributesRelatedLinksItems" type: array - remote_agent_management: - description: Remote agent management status. - example: "enabled" + results_last_updated: + description: "Time of the most recent update to the experiment's results." + example: "2026-08-05T09:25:00Z" + format: date-time + nullable: true type: string - remote_config_status: - description: Remote configuration status. - example: "connected" + split_by_properties: + description: "Properties used to split the experiment results into groups." + example: + items: + $ref: "#/components/schemas/ExperimentsExperimentV2DTODataAttributesSplitByPropertiesItems" + type: array + status: + $ref: "#/components/schemas/ExperimentsExperimentV2DTODataAttributesStatus" + structured_metadata: + description: "Values of structured metadata fields attached to the experiment." + example: + - enum_values: + - beta + field_display_name: Launch stage + field_key: launch_stage + field_type: ENUM + - field_display_name: Notes + field_key: notes + field_type: FREETEXT + freetext_value: Checkout redesign + items: + $ref: "#/components/schemas/ExperimentsStructuredMetadataResponse" + type: array + subject_type_id: + description: "ID of the subject type used by this configuration." + example: c2b3d4e5-0000-0000-0000-000000000000 + nullable: true type: string - services: - description: Services running on the agent. + summary: + description: "Summary text recorded for the experiment." + example: The treatment improved conversion + type: string + tags: + description: "Tags attached to the experiment." + example: + - growth items: - description: A service name running on the agent. + description: "A tag attached to the experiment." + example: growth type: string type: array - support_agent_upgrade: - description: Whether the agent supports remote agent upgrade. - type: boolean - tags: - description: Tags associated with the agent. + teams: + description: "Teams associated with the experiment." + example: + - growth items: - description: A tag string assigned to the agent. + description: "A team associated with the experiment." + example: growth type: string type: array - team: - description: Team associated with the agent. + traffic_exposure: + $ref: "#/components/schemas/ExperimentsPatchExperimentV2ResponseDataAttributesTrafficExposure" + updated_at: + description: "Time when this resource was last updated." + example: "2026-08-05T09:30:00Z" + format: date-time type: string - type: object - FleetAgentV2: - description: A Datadog Agent resource in the v2 list response. + variants: + description: "Variants configured for the experiment." + example: + - is_active: true + is_control: true + key: control + name: Control + weight: 50 + - is_active: true + is_control: false + key: treatment + name: Treatment + weight: 50 + items: + $ref: "#/components/schemas/ExperimentsExperimentV2DTODataAttributesVariantsItems" + type: array + warehouse_exposure_configuration: + $ref: "#/components/schemas/ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfiguration" + type: object + ExperimentsPatchExperimentV2ResponseDataAttributesConclusion: + description: "Outcome and supporting text recorded when the experiment is concluded." + example: + decision_reason: The primary metric improved without material regressions + outcome: POSITIVE + summary: The treatment improved conversion properties: - attributes: - $ref: "#/components/schemas/FleetAgentV2Attributes" - id: - description: The unique agent key identifier. - example: "my-agent-hostname" + decision_reason: + description: Reason for the recorded decision. + example: The primary metric improved without material regressions + nullable: true + type: string + outcome: + $ref: "#/components/schemas/ExperimentsExperimentV2DTODataAttributesConclusionOutcome" + summary: + description: Summary of the experiment conclusion. + example: The treatment improved conversion + nullable: true type: string - type: - $ref: "#/components/schemas/FleetAgentV2ResourceType" - required: - - id - - type - - attributes type: object - FleetAgentV2Attributes: - description: Attributes of a Datadog Agent in the v2 list response. + ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfiguration: + description: "Feature flag, environment, and targeting configuration for the experiment." + example: + nullable: true properties: - agent_version: - description: The Datadog Agent version. - example: "7.50.0" - type: string - api_key_name: - description: The name of the API key used by the agent, if available and not redacted. - example: "Production API Key" - type: string - api_key_uuid: - description: The UUID of the API key used by the agent. - example: "a1b2c3d4-e5f6-4321-a123-123456789abc" - type: string - cloud_provider: - description: The cloud provider where the agent is running. - example: "aws" - type: string - cluster_name: - description: The Kubernetes cluster name, if the agent runs in a cluster. - example: "production-us-east-1" - type: string - datadog_data_center: - description: The Datadog data center the agent reports to. - example: "us1" + allocation_key: + description: "Key of the feature flag allocation linked to the experiment." type: string - ecs_fargate_cluster_name: - description: The ECS Fargate cluster name, if the agent runs in an ECS Fargate environment. - example: "my-ecs-cluster" + entry_point: + $ref: >- + #/components/schemas/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPoint + environment_id: + description: "ID of the feature flag environment used by the experiment." type: string - ecs_fargate_task_arn: - description: The ECS Fargate task ARN, if the agent runs in an ECS Fargate environment. - example: "arn:aws:ecs:us-east-1:123456789012:task/my-cluster/abc123" + feature_flag_id: + description: "ID of the feature flag linked to the experiment." type: string - enabled_products: - description: Datadog products enabled on the agent. - items: - description: A Datadog product enabled on the agent. - type: string - type: array - env: - description: Environments the agent is reporting from. + targeting_rules: + description: "Rules that select subjects for the experiment." items: - description: An environment name the agent is reporting from. - type: string + $ref: >- + #/components/schemas/ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfigurationTargetingRulesItems type: array - first_seen_at: - description: Unix timestamp when the agent was first seen. - example: 1699900000 - format: int64 - type: integer - fleet_policies: - description: Identifiers of fleet policies applied to the agent. + required: + - entry_point + type: object + ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPoint: + description: "Datadog measure and filters used to select analyzed subjects." + nullable: true + properties: + filters: + description: Complete Datadog OR-of-ANDs entry-point filter expression. + example: [] items: - description: A fleet policy identifier applied to the agent. - type: string + $ref: "#/components/schemas/ExperimentsDatadogEntryPointFilterGroup" type: array - hostname: - description: The hostname of the agent. - example: "my-hostname" + measure_id: + description: Datadog measure UUID. + example: 550e8400-e29b-41d4-a716-446655440000 type: string - instrumentation_error_counts: + required: + - filters + - measure_id + type: object + ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsColumnType: + description: "Data type of the column evaluated by the entry-point filter." + enum: + - varchar + - int + - double + - boolean + - varchar_array + - int_array + - double_array + - raw + example: varchar + type: string + x-enum-varnames: + - VARCHAR + - INT + - DOUBLE + - BOOLEAN + - VARCHAR_ARRAY + - INT_ARRAY + - DOUBLE_ARRAY + - RAW + ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsOperation: + description: "Comparison applied by the Datadog entry-point filter." + enum: + - eq + - in + - neq + - not_in + - gte + - lte + - gt + - lt + example: eq + type: string + x-enum-varnames: + - EQ + - IN + - NEQ + - NOT_IN + - GTE + - LTE + - GT + - LT + ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationTargetingRulesItemsConditionsItemsOperator: + description: Required with attribute and value for an inline condition; omit when saved_filter_id is set. + enum: + - LT + - LTE + - GT + - GTE + - MATCHES + - NOT_MATCHES + - ONE_OF + - NOT_ONE_OF + - IS_NULL + - EQUALS + - SEMVER_EQ + - SEMVER_NEQ + - SEMVER_LT + - SEMVER_LTE + - SEMVER_GT + - SEMVER_GTE + example: LT + type: string + x-enum-varnames: + - LT + - LTE + - GT + - GTE + - MATCHES + - NOT_MATCHES + - ONE_OF + - NOT_ONE_OF + - IS_NULL + - EQUALS + - SEMVER_EQ + - SEMVER_NEQ + - SEMVER_LT + - SEMVER_LTE + - SEMVER_GT + - SEMVER_GTE + ExperimentsPatchExperimentV2ResponseDataAttributesSplitByPropertiesItemsColumnType: + description: Type of the Datadog exposure field or Warehouse column. + enum: + - varchar + - int + - double + - boolean + - varchar_array + - int_array + - double_array + - raw + - STRING + - INTEGER + - FLOAT + - BOOLEAN + - DATE + - TIMESTAMP + example: varchar + type: string + x-enum-varnames: + - VARCHAR + - INT + - DOUBLE + - BOOLEAN_DATADOG + - VARCHAR_ARRAY + - INT_ARRAY + - DOUBLE_ARRAY + - RAW + - STRING + - INTEGER + - FLOAT + - BOOLEAN_WAREHOUSE + - DATE + - TIMESTAMP + ExperimentsPatchExperimentV2ResponseDataAttributesStructuredMetadataItemsFieldType: + description: "Type of value stored in the structured metadata field." + enum: + - FREETEXT + - ENUM + example: ENUM + type: string + x-enum-varnames: + - FREETEXT + - ENUM + ExperimentsPatchExperimentV2ResponseDataAttributesTrafficExposure: + description: "Traffic exposure fraction or schedule configured for the experiment." + example: + fraction: 1 + mode: STATIC + properties: + fraction: description: >- - Number of instrumentation errors on the agent. Absent from the response when the count is zero. - example: 3 - format: int64 - type: integer - instrumentation_status: - $ref: "#/components/schemas/FleetAgentV2AttributesInstrumentationStatus" - integrations: - description: Names of integrations configured on the agent. - items: - description: An integration name configured on the agent. - type: string - type: array - ip_addresses: - description: IP addresses of the agent host. - items: - description: An IP address of the agent host. - type: string - type: array - is_single_step_instrumentation_enabled: - description: Whether single-step instrumentation is enabled on the agent. - example: true - type: boolean - last_restart_at: - description: Unix timestamp of the last agent restart. - example: 1699999999 - format: int64 - type: integer - os: - description: The operating system of the host. - example: "linux" - type: string - otel_collector_deployment_types: - description: OpenTelemetry collector deployment types associated with the agent. - items: - description: An OpenTelemetry collector deployment type. - type: string - type: array - otel_collector_distributions: - description: OpenTelemetry collector distributions associated with the agent. - items: - description: An OpenTelemetry collector distribution. - type: string - type: array - otel_collector_versions: - description: All OpenTelemetry collector versions associated with the agent. - items: - description: An OpenTelemetry collector version string. - type: string - type: array - otel_resource_attributes: - description: OpenTelemetry resource attributes reported by the agent. + STATIC exposure fraction. Draft experiments can change this value. After start only warehouse experiments without a Datadog flag can change a STATIC fraction through the public API. + example: 1 + format: double + type: number + mode: + $ref: "#/components/schemas/ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureMode" + steps: + description: >- + Configured exposure plan rather than wall-clock history. At least two steps must have strictly increasing fractions and no gaps. Warehouse steps start at assignments_start_date and can use different durations. New Datadog plans have at most five steps and a first fraction above zero. Their nonfinal durations must be equal and exclude time paused. Datadog steps start with the experiment. Running warehouse experiments can replace step fractions, durations, and the exposure mode. After start, Datadog exposure plans cannot change through the public API. The final duration is null and its fraction holds until assignment ends. items: - description: An OpenTelemetry resource attribute. - type: string + $ref: "#/components/schemas/ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureStepsItems" type: array - pod_name: - description: The Kubernetes pod name, if the agent runs as a pod. - example: "datadog-agent-abc123" - type: string - remote_agent_management: - description: The remote agent management status. - example: "enabled" + required: + - mode + type: object + ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfiguration: + description: "Warehouse exposure model and settings used to identify experiment assignments." + example: + entry_point: + experiment_key: checkout_button_test + exposure_sql_model_id: f5e6a7b8-0000-0000-0000-000000000000 + nullable: true + properties: + entry_point: + $ref: >- + #/components/schemas/ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPoint + experiment_key: + description: >- + Warehouse experiment key. Reads can return null for incomplete configuration; configuration writes require a value. + example: checkout_button_test + nullable: true type: string - remote_config_status: - description: The remote configuration connection status of the agent. - example: "connected" + exposure_sql_model_id: + description: ID of the exposure SQL model that provides assignment data. + example: f5e6a7b8-0000-0000-0000-000000000000 type: string - services: - description: Services running on the agent. - items: - description: A service name running on the agent. - type: string - type: array - tags: - description: >- - Tags associated with the agent. Returned as an empty array when the agent has no tags. + required: + - entry_point + - experiment_key + - exposure_sql_model_id + type: object + ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPoint: + description: Optional Warehouse measure that scopes analyzed subjects. + example: + nullable: true + properties: + filters: + description: Complete ordered Warehouse entry-point filter set. + example: [] items: - $ref: "#/components/schemas/FleetAgentAttributesTagsItems" + $ref: "#/components/schemas/ExperimentsWarehouseExposureFilter" type: array - team: - description: The team associated with the agent. - example: "platform" + measure_id: + description: Warehouse measure UUID. + example: 550e8400-e29b-41d4-a716-446655440000 type: string + required: + - filters + - measure_id type: object - FleetAgentV2AttributesInstrumentationStatus: - description: The single-step instrumentation status of the Agent. + ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPointFiltersItemsOperation: + description: "Comparison applied by the warehouse entry-point filter." enum: - - success - - failure - example: "success" + - IS + - IS_NOT + example: IS type: string x-enum-varnames: - - SUCCESS - - FAILURE - FleetAgentV2ResourceType: - default: agent - description: The type of the agent resource. + - IS + - IS_NOT + ExperimentsPatchExperimentV2ResponseDataType: + default: experiments + description: Experiments resource type. enum: - - agent - example: agent + - experiments + example: experiments type: string x-enum-varnames: - - AGENT - FleetAgentVersionV2: - description: An available Datadog Agent version resource. + - EXPERIMENTS + ExperimentsPatchMetricCollectionV2Request: + description: "Request to update the metric collection." + example: + data: + attributes: + metrics: [] + type: metric-collections + properties: + data: + $ref: "#/components/schemas/ExperimentsPatchMetricCollectionV2RequestData" + required: + - data + type: object + ExperimentsPatchMetricCollectionV2RequestData: + description: "JSON:API resource containing the metric collection identity and fields." + example: + attributes: + metrics: [] + type: metric-collections properties: attributes: - $ref: "#/components/schemas/FleetAgentVersionV2Attributes" + $ref: "#/components/schemas/ExperimentsPatchMetricCollectionV2RequestDataAttributes" id: - description: The agent version string used as the unique identifier. - example: "7.81.1" + description: "ID of the metric collection." type: string type: - $ref: "#/components/schemas/FleetAgentVersionV2ResourceType" + $ref: "#/components/schemas/ExperimentsPatchMetricCollectionV2RequestDataType" required: - - id - type - - attributes type: object - FleetAgentVersionV2Attributes: - description: Attributes of an available Datadog Agent version. + ExperimentsPatchMetricCollectionV2RequestDataAttributes: + description: "Fields supplied to update the metric collection." + example: + metrics: [] properties: - version: - description: The agent version string. - example: "7.81.1" + description: + description: "Text that explains the metric collection." + nullable: true + type: string + is_guardrail: + description: "Whether the collection is used for guardrail metrics." + type: boolean + metrics: + description: "Metrics included in this collection." + example: [] + items: + $ref: "#/components/schemas/ExperimentsCreateMetricCollectionV2RequestDataAttributesMetricsItems" + type: array + name: + description: "Display name of the metric collection." type: string type: object - FleetAgentVersionV2ResourceType: - default: agent_version - description: The type of the agent version resource. + ExperimentsPatchMetricCollectionV2RequestDataType: + default: metric-collections + description: Metric collections resource type. enum: - - agent_version - example: agent_version + - metric-collections + example: metric-collections type: string x-enum-varnames: - - AGENT_VERSION - FleetAgentVersionsV2Page: - description: Pagination details for the v2 list of agent versions. + - METRIC_COLLECTIONS + ExperimentsPatchSubjectTypeV2Request: + description: "Request to update the subject type." + example: + data: + attributes: + name: Updated User + product_analytics_attribute: "@usr.id" + warehouse_column_names: + - user_id + type: subject-types properties: - total_count: - description: Total number of available agent versions. - example: 10 - format: int64 - type: integer + data: + $ref: "#/components/schemas/ExperimentsPatchSubjectTypeV2RequestData" + required: + - data type: object - FleetAgentVersionsV2Response: - description: Response containing a list of available Datadog Agent versions. + ExperimentsPatchSubjectTypeV2RequestData: + description: "JSON:API resource containing the subject type identity and fields." + example: + attributes: + name: Updated User + product_analytics_attribute: "@usr.id" + warehouse_column_names: + - user_id + type: subject-types properties: - data: - description: Array of available agent versions. + attributes: + $ref: "#/components/schemas/ExperimentsPatchSubjectTypeV2RequestDataAttributes" + id: + description: "ID of the subject type." + type: string + type: + $ref: "#/components/schemas/ExperimentsSubjectTypeV2DTODataType" + required: + - type + - attributes + type: object + ExperimentsPatchSubjectTypeV2RequestDataAttributes: + description: "Fields supplied to update the subject type." + example: + name: User + product_analytics_attribute: "@usr.id" + warehouse_column_names: + - user_id + - customer_id + properties: + migration_metadata: + description: "Metadata retained for resources imported from another system." + name: + description: "Display name of the subject type." + example: User + maxLength: 40 + minLength: 3 + pattern: ".*\\S.*" + type: string + product_analytics_attribute: + description: "Product Analytics attribute used to identify subjects of this type." + example: "@usr.id" + type: string + warehouse_column_names: + description: "Warehouse columns that identify subjects of this type." + example: + - user_id + - customer_id items: - $ref: "#/components/schemas/FleetAgentVersionV2" + description: "Name of a warehouse column that identifies subjects." + example: user_id + type: string type: array - meta: - $ref: "#/components/schemas/FleetAgentVersionsV2ResponseMeta" - required: - - data type: object - FleetAgentVersionsV2ResponseMeta: - description: Metadata for the v2 list of agent versions. + ExperimentsPropertyFilterInput: + description: A property comparison for metric source data. + example: + operation: IS + property_id: 550e8400-e29b-41d4-a716-446655440023 + values: + - US properties: - page: - $ref: "#/components/schemas/FleetAgentVersionsV2Page" + measure_id: + description: Omit this target or use null or a blank string. + example: "" + nullable: true + pattern: ^\s*$ + type: string + operation: + $ref: >- + #/components/schemas/ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPointFiltersItemsOperation + property_id: + description: ID of the property on the aggregation source. + example: 550e8400-e29b-41d4-a716-446655440023 + format: uuid + minLength: 1 + pattern: \S + type: string + values: + description: Values used by the comparison. + example: + - "" + items: + description: One comparison value. + type: string + minItems: 1 + type: array + required: + - property_id + - operation + - values type: object - FleetAgentsV2Page: - description: Pagination details for the v2 list of agents. + ExperimentsPropertyFilterInputGroup: + description: Metric filters combined with AND. Each group must contain at least one filter. + example: + - operation: IS + property_id: 550e8400-e29b-41d4-a716-446655440023 + values: + - US + items: + $ref: "#/components/schemas/ExperimentsPropertyFilterInput" + minItems: 1 + type: array + ExperimentsPropertyNullFilterInput: + description: A property comparison for metric source data. + example: + operation: IS_NULL + property_id: 550e8400-e29b-41d4-a716-446655440023 + values: [] properties: - total_count: - description: Total number of agents in the fleet, regardless of any filter. - example: 500 - format: int64 - type: integer - total_filtered_count: - description: Total number of agents matching the current filter criteria. - example: 42 - format: int64 - type: integer + measure_id: + description: Omit this target or use null or a blank string. + example: "" + nullable: true + pattern: ^\s*$ + type: string + operation: + $ref: "#/components/schemas/ExperimentsPropertyNullFilterInputOperation" + property_id: + description: ID of the property on the aggregation source. + example: 550e8400-e29b-41d4-a716-446655440023 + format: uuid + minLength: 1 + pattern: \S + type: string + values: + description: Values used by the comparison. + items: + description: One comparison value. + type: string + maxItems: 0 + nullable: true + type: array + required: + - property_id + - operation type: object - FleetAgentsV2Response: - description: Response containing a paginated list of Datadog Agents. + ExperimentsPropertyNullFilterInputOperation: + description: Comparison applied by this filter. + enum: + - IS_NULL + - IS_NOT_NULL + example: IS_NULL + type: string + x-enum-varnames: + - IS_NULL + - IS_NOT_NULL + ExperimentsPublicProtocolListResponseArray: + description: "List of protocol resources with pagination information." properties: data: - description: Array of agents matching the query criteria. + description: "Resources returned in this response." + example: [] items: - $ref: "#/components/schemas/FleetAgentV2" + $ref: "#/components/schemas/ExperimentsPublicProtocolListResponseData" type: array + links: + $ref: "#/components/schemas/ExperimentsOffsetLinks" meta: - $ref: "#/components/schemas/FleetAgentsV2ResponseMeta" + $ref: "#/components/schemas/ExperimentsOffsetMeta" required: - data type: object - FleetAgentsV2ResponseMeta: - description: Metadata for the v2 list of agents, including pagination information. - properties: - page: - $ref: "#/components/schemas/FleetAgentsV2Page" - type: object - FleetConfigurationFileV2: - description: A configuration file for an integration. + ExperimentsPublicProtocolListResponseData: + description: "JSON:API resource containing the protocol identity and fields." properties: - agent_hash: - description: Hash of the configuration file as seen by the agent. - type: string - file_content: - description: The raw content of the configuration file. - type: string - file_path: - description: Path to the configuration file. - example: "/conf.d/postgres.d/postgres.yaml" - type: string - filename: - description: Name of the configuration file. - example: "postgres.yaml" + attributes: + $ref: "#/components/schemas/ExperimentsPublicProtocolListResponseDataAttributes" + id: + description: "ID of the protocol." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid type: string + type: + $ref: "#/components/schemas/ExperimentsPublicProtocolResponseDataType" + required: + - type + - id type: object - FleetConfigurationLayer: - description: Configuration information organized by layers. + ExperimentsPublicProtocolListResponseDataAttributes: + description: "Summary of the protocol and its selected subject type and primary metric." properties: - compiled_configuration: - description: The final compiled configuration. + description: + description: "Text that explains the protocol." type: string - env_configuration: - description: Configuration from environment variables. + name: + description: "Display name of the protocol." + example: Checkout conversion type: string - file_configuration: - description: Configuration from files. + primary_metric: + $ref: "#/components/schemas/ExperimentsPublicProtocolResponseDataAttributesSubjectType" + primary_metric_id: + description: "ID of the primary metric supplied by the protocol." type: string - remote_configuration: - description: Remote configuration settings. + status: + $ref: "#/components/schemas/ExperimentsPublicProtocolResponseDataAttributesStatus" + subject_type: + $ref: "#/components/schemas/ExperimentsPublicProtocolResponseDataAttributesSubjectType" + subject_type_id: + description: "ID of the subject type used by this configuration." type: string - runtime_configuration: - description: Runtime configuration. + updated_at: + description: "RFC3339 update time. Preserve all fractional seconds when passing this value as expected_updated_at." + example: "2026-01-01T00:00:00Z" type: string + required: + - name + - status + - updated_at type: object - FleetDeployment: - description: A deployment that defines automated configuration changes for a fleet of hosts. + ExperimentsPublicProtocolResponse: + description: "Response containing the protocol." + properties: + data: + $ref: "#/components/schemas/ExperimentsPublicProtocolResponseData" + required: + - data + type: object + ExperimentsPublicProtocolResponseData: + description: "JSON:API resource containing the protocol identity and fields." properties: attributes: - $ref: "#/components/schemas/FleetDeploymentAttributes" + $ref: "#/components/schemas/ExperimentsPublicProtocolResponseDataAttributes" id: - description: Unique identifier for the deployment. - example: "aeadc05e-98a8-11ec-ac2c-da7ad0900001" + description: "ID of the protocol." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid type: string type: - $ref: "#/components/schemas/FleetDeploymentResourceType" + $ref: "#/components/schemas/ExperimentsPublicProtocolResponseDataType" required: - - id - type - - attributes + - id type: object - FleetDeploymentAttributes: - description: Attributes of a deployment in the response. + ExperimentsPublicProtocolResponseDataAttributes: + description: "Settings and defaults supplied by the protocol." properties: - config_operations: - description: Ordered list of configuration file operations to perform on the target hosts. + analysis_plan: + $ref: "#/components/schemas/ExperimentsPublicProtocolResponseDataAttributesAnalysisPlan" + assignment_source_default_properties: + description: "Default properties supplied by the protocol's assignment source." items: - $ref: "#/components/schemas/FleetDeploymentOperation" + $ref: >- + #/components/schemas/ExperimentsPublicProtocolResponseDataAttributesAssignmentSourceDefaultPropertiesItems type: array - estimated_end_time_unix: - description: Estimated completion time of the deployment as a Unix timestamp (seconds since epoch). - example: 1699999999 + assignment_source_id: + description: "ID of the assignment source selected by the protocol." + type: string + default_duration_days: + description: "Default experiment duration supplied by the protocol, in days." format: int64 type: integer - filter_query: - description: Query used to filter and select target hosts for the deployment. Uses the Datadog query syntax. - example: "env:prod AND service:web" + description: + description: "Text that explains the protocol." type: string - high_level_status: - description: |- - Current high-level status of the deployment (for example, "pending", "running", - "completed", "failed"). - example: "pending" + enforcement: + $ref: "#/components/schemas/ExperimentsPublicProtocolResponseDataAttributesEnforcement" + environment_id: + description: "ID of the feature flag environment used by the experiment." type: string - hosts: - description: |- - Paginated list of hosts in this deployment with their individual statuses. Only included - when fetching a single deployment by ID. Use the `limit` and `page` query parameters to - navigate through pages. Pagination metadata is included in the response `meta.hosts` field. - items: - $ref: "#/components/schemas/FleetDeploymentHost" - type: array - packages: - description: List of packages to deploy to target hosts. Present only for package upgrade deployments. + exposure_schedule: + $ref: "#/components/schemas/ExperimentsPublicProtocolResponseDataAttributesExposureSchedule" + is_duration_required_to_start: + description: "Whether the protocol requires a duration before an experiment can start." + example: false + type: boolean + is_equal_split_enforced: + description: "Whether the protocol requires equal traffic allocation across variants." + example: false + type: boolean + is_metric_limit_enabled: + description: "Whether the protocol limits the number of metrics." + example: false + type: boolean + is_minimum_duration_enabled: + description: "Whether the protocol enforces a minimum experiment duration." + example: false + type: boolean + metric_groups: + description: "Metric groups supplied by the protocol." + example: [] items: - $ref: "#/components/schemas/FleetDeploymentPackage" + $ref: "#/components/schemas/ExperimentsPublicProtocolResponseDataAttributesMetricGroupsItems" type: array - total_hosts: - description: Total number of hosts targeted by this deployment. - example: 42 + metric_limit: + description: "Maximum number of metrics allowed by the protocol." format: int64 type: integer - type: object - FleetDeploymentConfigureV2Attributes: - description: Attributes for creating a new v2 configuration deployment. - properties: - config_operations: - description: Ordered list of configuration file operations to perform on the target hosts. - items: - $ref: "#/components/schemas/FleetDeploymentOperation" - type: array - dry_run: - description: |- - Set to `true` to validate the configuration and resolve target hosts and packages - without deploying anything. Returns a 200 with the validation result instead of - creating and starting a real deployment. - example: false - type: boolean - filter_query: - description: Query used to filter and select target hosts for the deployment. Uses the Datadog query syntax. - example: "env:prod AND service:web" + migration_metadata: + description: "Metadata retained for resources imported from another system." + minimum_duration_unit: + description: "Unit used to express the protocol's minimum duration." type: string - target_packages: - description: |- - List of packages and their target versions to additionally deploy alongside - the configuration change. + minimum_duration_value: + description: "Minimum experiment duration in the specified unit." + format: int64 + type: integer + name: + description: "Display name of the protocol." + example: Checkout conversion + type: string + primary_metric: + $ref: "#/components/schemas/ExperimentsPublicProtocolResponseDataAttributesSubjectType" + primary_metric_id: + description: "ID of the primary metric supplied by the protocol." + type: string + published_at: + description: "Time when the protocol was published." + format: date-time + type: string + status: + $ref: "#/components/schemas/ExperimentsPublicProtocolResponseDataAttributesStatus" + subject_type: + $ref: "#/components/schemas/ExperimentsPublicProtocolResponseDataAttributesSubjectType" + subject_type_id: + description: "ID of the subject type used by this configuration." + type: string + targeting_rules: + description: "Rules that select subjects for the experiment." items: - $ref: "#/components/schemas/FleetDeploymentConfigureV2Package" + $ref: "#/components/schemas/ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItems" type: array + updated_at: + description: "RFC3339 update time. Preserve all fractional seconds when passing this value as expected_updated_at." + example: "2026-01-01T00:00:00Z" + type: string required: - - filter_query - - config_operations + - is_duration_required_to_start + - is_equal_split_enforced + - is_metric_limit_enabled + - is_minimum_duration_enabled + - metric_groups + - name + - status + - updated_at type: object - FleetDeploymentConfigureV2Create: - description: Data for creating a new v2 configuration deployment. + ExperimentsPublicProtocolResponseDataAttributesAnalysisPlan: + description: "Default statistical settings supplied by the protocol." properties: - attributes: - $ref: "#/components/schemas/FleetDeploymentConfigureV2Attributes" - type: - $ref: "#/components/schemas/FleetDeploymentResourceType" - required: - - type - - attributes + compute_cuped: + description: "Whether to use pre-experiment data to reduce variance with CUPED." + type: boolean + confidence_interval_method: + description: "Statistical method used to calculate confidence intervals." + type: string + confidence_level: + description: "Confidence level used by the statistical analysis." + format: double + type: number + multiple_testing_correction_method: + description: "Method used to adjust for testing multiple metrics." + type: string type: object - FleetDeploymentConfigureV2CreateRequest: - description: Request payload for creating a new v2 configuration deployment. + ExperimentsPublicProtocolResponseDataAttributesAssignmentSourceDefaultPropertiesItems: + description: "A default property supplied by the protocol's assignment source." properties: - data: - $ref: "#/components/schemas/FleetDeploymentConfigureV2Create" - required: - - data + column_name: + description: "Source column that supplies this assignment property." + type: string + column_type: + description: "Data type of the source column." + type: string + name: + description: "Display name of the assignment source property." + type: string type: object - FleetDeploymentConfigureV2DryRun: - description: The result of a configuration deployment dry run. + ExperimentsPublicProtocolResponseDataAttributesEnforcement: + description: "Controls that determine which protocol settings can be changed in an experiment." properties: - attributes: - $ref: "#/components/schemas/FleetDeploymentConfigureV2DryRunAttributes" - id: - description: |- - Always `"dry-run"` for a dry-run response. Does not identify a real deployment - and cannot be used to fetch a deployment by ID. - example: "dry-run" + confidence_interval_method: + description: "LOCKED prevents changes to confidence interval method. EDITABLE permits changes." + type: string + confidence_level: + description: "LOCKED prevents changes to confidence level. EDITABLE permits changes." + type: string + cuped_calculation: + description: "LOCKED prevents changes to CUPED variance reduction. EDITABLE permits changes." + type: string + default_duration: + description: "LOCKED prevents changes to default duration. EDITABLE permits changes." + type: string + environment: + description: "LOCKED prevents changes to environment. EDITABLE permits changes." + type: string + flag_source: + description: "LOCKED prevents changes to feature flag source. EDITABLE permits changes." + type: string + multiple_testing_correction: + description: "LOCKED prevents changes to multiple testing correction. EDITABLE permits changes." + type: string + notifications: + description: "LOCKED prevents changes to notifications. EDITABLE permits changes." + type: string + primary_metric: + description: "LOCKED prevents changes to primary metric. EDITABLE permits changes." + type: string + secondary_metrics: + description: "LOCKED prevents changes to secondary metrics. EDITABLE permits changes." + type: string + split_by_exploration_dimensions: + description: "LOCKED prevents changes to result exploration dimensions. EDITABLE permits changes." + type: string + subject_type: + description: "LOCKED prevents changes to subject type. EDITABLE permits changes." + type: string + targeting_rules: + description: "LOCKED prevents changes to targeting rules. EDITABLE permits changes." + type: string + traffic_exposure: + description: "LOCKED prevents changes to traffic exposure. EDITABLE permits changes." + type: string + warehouse_exposure_source: + description: "LOCKED prevents changes to warehouse exposure source. EDITABLE permits changes." type: string - type: - $ref: "#/components/schemas/FleetDeploymentResourceType" - required: - - id - - type - - attributes type: object - FleetDeploymentConfigureV2DryRunAttributes: - description: Attributes of a configuration deployment dry-run response. + ExperimentsPublicProtocolResponseDataAttributesExposureSchedule: + description: "Schedule that controls traffic exposure for experiments created from the protocol." properties: - dry_run: - $ref: "#/components/schemas/FleetDeploymentConfigureV2DryRunResult" - query: - description: Query used to filter and select target hosts for the deployment. - example: "env:prod AND service:web" + autostart: + description: "Whether the exposure schedule starts automatically." + type: boolean + guardrail_triggered_action: + description: "Action taken when a guardrail triggers during the exposure schedule." type: string - total_hosts: - description: Total number of hosts targeted by this deployment. - example: 42 + rollout_steps: + description: "Ordered steps that define changes in traffic exposure." + items: + $ref: >- + #/components/schemas/ExperimentsPublicProtocolResponseDataAttributesExposureScheduleRolloutStepsItems + type: array + selection_interval_ms: + description: "Interval between traffic selections, in milliseconds." format: int64 type: integer + strategy: + description: "Method used to increase traffic exposure over the schedule." + type: string type: object - FleetDeploymentConfigureV2DryRunResponse: - description: Response containing the result of a configuration deployment dry run. - properties: - data: - $ref: "#/components/schemas/FleetDeploymentConfigureV2DryRun" - required: - - data - type: object - FleetDeploymentConfigureV2DryRunResult: - description: Validation result of a configuration deployment dry run. + ExperimentsPublicProtocolResponseDataAttributesExposureScheduleRolloutStepsItems: + description: "One step in the protocol's traffic exposure schedule." properties: - config_validated: - description: Whether the configuration passed schema validation. - example: true + exposure_ratio: + description: "Fraction of traffic exposed during this rollout step." + format: double + type: number + grouped_step_index: + description: "Index of the group that contains this rollout step." + format: int64 + type: integer + interval_ms: + description: "Duration of this rollout step, in milliseconds." + format: int64 + type: integer + is_pause_record: + description: "Whether this schedule entry represents a pause." type: boolean - non_upgradable_by_reason: - additionalProperties: - format: int64 - type: integer - description: |- - Breakdown of ineligible host counts by reason. Only includes reasons with a - non-zero count. Absent from the response when no targeted host is ineligible. - example: {} - type: object - non_upgradable_hosts: - description: Number of targeted hosts that are not eligible to receive this configuration. - example: 0 + order_position: + description: "Position of this entry in the ordered configuration." format: int64 type: integer type: object - FleetDeploymentConfigureV2Package: - description: A package and its target version to additionally deploy alongside a configuration change. + ExperimentsPublicProtocolResponseDataAttributesMetricGroupsItems: + description: "A group of metrics supplied by the protocol." properties: - apm_instrumentation: - description: APM auto-instrumentation mode to enable for this package, if applicable. - example: "host" - type: string + is_decision: + description: "Whether the group contains decision metrics." + type: boolean + metrics: + description: "Metrics included in this group." + items: + $ref: "#/components/schemas/ExperimentsCreateMetricCollectionV2RequestDataAttributesMetricsItems" + type: array name: - description: The name of the package to deploy. - example: "datadog-agent" - type: string - version: - description: The target version of the package to deploy. - example: "7.52.0" + description: "Display name of the metric group." type: string - required: - - name - - version type: object - FleetDeploymentFileOp: - description: |- - Type of file operation to perform on the target configuration file. - - `merge-patch`: Merges the provided patch data with the existing configuration file. - Creates the file if it doesn't exist. - - `delete`: Removes the specified configuration file from the target hosts. + ExperimentsPublicProtocolResponseDataAttributesStatus: + description: "Publication status of the protocol." enum: - - "merge-patch" - - "delete" - example: "merge-patch" + - DRAFT + - PUBLISHED + - ARCHIVED + example: PUBLISHED type: string x-enum-varnames: - - MERGE_PATCH - - DELETE - FleetDeploymentHost: - description: A host that is part of a deployment with its current status. + - DRAFT + - PUBLISHED + - ARCHIVED + ExperimentsPublicProtocolResponseDataAttributesSubjectType: + description: "Subject type selected by the protocol." properties: - error: - description: Error message if the deployment failed on this host. - example: "" - type: string - hostname: - description: The hostname of the agent. - example: "web-server-01.example.com" + id: + description: "ID of the subject type." type: string - status: - description: Current deployment status for this specific host. - example: "succeeded" + name: + description: "Display name of the subject type." type: string - versions: - description: List of packages and their versions currently installed on this host. + type: object + ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItems: + description: "A targeting rule supplied by the protocol." + properties: + conditions: + description: "Conditions that define this targeting rule." items: - $ref: "#/components/schemas/FleetDeploymentHostPackage" + $ref: >- + #/components/schemas/ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItemsConditionsItems type: array type: object - FleetDeploymentHostPackage: - description: |- - Package version information for a host, showing the initial version before deployment, - the target version to deploy, and the current version on the host. + ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItemsConditionsItems: + description: "One condition in a protocol targeting rule." properties: - current_version: - description: The current version of the package on the host. - example: "7.51.0" - type: string - initial_version: - description: The initial version of the package on the host before the deployment started. - example: "7.51.0" + attribute: + description: "Subject attribute evaluated by the targeting condition." type: string - package_name: - description: The name of the package. - example: "datadog-agent" + operator: + description: "Comparison applied to the subject attribute." type: string - target_version: - description: The target version that the deployment is attempting to install. - example: "7.52.0" + order_position: + description: "Position of this entry in the ordered configuration." + format: int64 + type: integer + saved_filter_id: + description: "ID of the saved filter used by this targeting condition." type: string + value: + description: "Values compared with the subject attribute in this condition." + items: + description: "One value compared with the subject attribute." + type: string + type: array type: object - FleetDeploymentHostsPage: - description: Pagination details for the list of hosts in a deployment. + ExperimentsPublicProtocolResponseDataType: + default: protocols + description: Protocols resource type. + enum: + - protocols + example: protocols + type: string + x-enum-varnames: + - PROTOCOLS + ExperimentsRefreshExperimentResultsBatchMetaV2DTO: + description: "Summary of refresh outcomes across the organization's experiments." properties: - current_page: - description: Current page index (zero-based). - example: 0 - format: int64 - type: integer - page_size: - description: Number of hosts returned per page. - example: 50 - format: int64 - type: integer - total_hosts: - description: Total number of hosts in this deployment. - example: 150 - format: int64 - type: integer - total_pages: - description: Total number of pages available. - example: 3 + experiments_updated: + description: "Number of experiments updated by the refresh request." format: int64 type: integer + results: + description: "Refresh outcome reported for each experiment." + items: + $ref: "#/components/schemas/ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItems" + type: array type: object - FleetDeploymentOperation: - description: A single configuration file operation to perform on the target hosts. + ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItems: + description: "Refresh outcome for one experiment." + nullable: true properties: - file_op: - $ref: "#/components/schemas/FleetDeploymentFileOp" - file_path: - description: Absolute path to the target configuration file on the host. - example: "/datadog.yaml" + experiment_id: + description: "ID of the experiment associated with this result." type: string - patch: - additionalProperties: {} - description: |- - Patch data in JSON format to apply to the configuration file. - When using `merge-patch`, this object is merged with the existing configuration, - allowing you to add, update, or override specific fields without replacing the entire file. - The structure must match the target configuration file format (for example, YAML structure - for Datadog Agent config). Not applicable when using the `delete` operation. - example: - apm_config: - enabled: true - log_level: "debug" - logs_enabled: true - type: object - required: - - file_op - - file_path + outcome: + $ref: "#/components/schemas/ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItemsOutcome" type: object - FleetDeploymentPackage: - description: A package and its target version for deployment. + ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItemsOutcome: + description: "Outcome of attempting to refresh one experiment." + enum: + - TRIGGERED + - SKIPPED_ALREADY_RUNNING + - SKIPPED_NOT_EDITABLE + - SKIPPED_ORG_AT_CAPACITY + - FAILED + type: string + x-enum-varnames: + - TRIGGERED + - SKIPPED_ALREADY_RUNNING + - SKIPPED_NOT_EDITABLE + - SKIPPED_ORG_AT_CAPACITY + - FAILED + ExperimentsRefreshExperimentResultsV2DTO: + description: "Response containing the experiment refresh result." properties: - name: - description: The name of the package to deploy. - example: "datadog-agent" - type: string - version: - description: The target version of the package to deploy. - example: "7.52.0" - type: string + data: + $ref: "#/components/schemas/ExperimentsRefreshExperimentResultsV2DTOData" required: - - name - - version + - data type: object - FleetDeploymentPackageUpgradeV2Attributes: - description: Attributes for creating a new v2 package upgrade deployment. + ExperimentsRefreshExperimentResultsV2DTOArray: + description: "List of experiment refresh result resources." properties: - filter_query: - description: Query used to filter and select target hosts for the deployment. Uses the Datadog query syntax. - example: "env:prod AND service:web" - type: string - target_packages: - description: List of packages and their target versions to deploy to the selected hosts. + data: + description: "Resources returned in this response." + example: [] items: - $ref: "#/components/schemas/FleetDeploymentPackage" + $ref: "#/components/schemas/ExperimentsRefreshExperimentResultsV2DTOData" type: array + meta: + $ref: "#/components/schemas/ExperimentsRefreshExperimentResultsBatchMetaV2DTO" required: - - filter_query - - target_packages + - data type: object - FleetDeploymentPackageUpgradeV2Create: - description: Data for creating a new v2 package upgrade deployment. + ExperimentsRefreshExperimentResultsV2DTOData: + description: "JSON:API resource containing the experiment refresh result identity and fields." properties: attributes: - $ref: "#/components/schemas/FleetDeploymentPackageUpgradeV2Attributes" + $ref: "#/components/schemas/ExperimentsRefreshExperimentResultsV2DTODataAttributes" + id: + description: "ID of the experiment whose results were refreshed." + example: "550e8400-e29b-41d4-a716-446655440000" + format: uuid + type: string type: - $ref: "#/components/schemas/FleetDeploymentResourceType" + $ref: "#/components/schemas/ExperimentsRefreshExperimentResultsV2DTODataType" required: + - id - type - - attributes type: object - FleetDeploymentPackageUpgradeV2CreateRequest: - description: Request payload for creating a new v2 package upgrade deployment. + ExperimentsRefreshExperimentResultsV2DTODataAttributes: + description: "Details of the experiment refresh result." + properties: + success: + description: "Whether the refresh request succeeded." + type: boolean + type: object + ExperimentsRefreshExperimentResultsV2DTODataType: + default: experiment-results-refresh + description: Experiment results refresh resource type. + enum: + - experiment-results-refresh + example: experiment-results-refresh + type: string + x-enum-varnames: + - EXPERIMENT_RESULTS_REFRESH + ExperimentsSQLModelPropertyInput: + description: A property column defined by an exposure SQL model. + example: + column_name: country + column_type: STRING + description: + name: country + properties: + column_name: + description: Name of the SQL result column that supplies this property. + example: country + type: string + column_type: + $ref: "#/components/schemas/ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType" + description: + description: Optional text that explains what this property represents. + example: + nullable: true + type: string + migration_metadata: + description: Opaque metadata preserved when this property is migrated. + name: + description: Name used to identify the property in the model. + example: country + type: string + required: + - column_name + - name + type: object + ExperimentsSavedFilterCondition: + description: A condition that uses a saved filter. Inline fields must be omitted or null. properties: + saved_filter_id: + description: Saved-filter UUID. + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid + type: string + required: + - saved_filter_id + type: object + ExperimentsStartExperimentV2Request: + description: "Request to start the experiment." + example: data: - $ref: "#/components/schemas/FleetDeploymentPackageUpgradeV2Create" + type: start-experiment-request + properties: + data: + $ref: "#/components/schemas/ExperimentsStartExperimentV2RequestData" required: - data type: object - FleetDeploymentResourceType: - default: deployment - description: The type of deployment resource. + ExperimentsStartExperimentV2RequestData: + description: "JSON:API resource containing the experiment identity." + example: + type: start-experiment-request + properties: + id: + description: "ID of the experiment." + type: string + type: + $ref: "#/components/schemas/ExperimentsStartExperimentV2RequestDataType" + required: + - type + type: object + ExperimentsStartExperimentV2RequestDataType: + default: start-experiment-request + description: Start experiment request resource type. enum: - - deployment - example: deployment + - start-experiment-request + example: start-experiment-request type: string x-enum-varnames: - - DEPLOYMENT - FleetDeploymentResponse: - description: Response containing a single deployment. + - START_EXPERIMENT_REQUEST + ExperimentsStructuredMetadataResponse: + description: "Metadata field values with their display name and type." + example: + enum_values: + - beta + field_key: launch_stage properties: - data: - $ref: "#/components/schemas/FleetDeployment" - meta: - $ref: "#/components/schemas/FleetDeploymentResponseMeta" + enum_values: + description: "Selected values for an enumerated metadata field." + example: + - beta + items: + description: "One selected value for the metadata field." + example: beta + type: string + type: array + field_display_name: + description: "Display name of the metadata field." + type: string + field_key: + description: "Key that identifies the metadata field." + example: launch_stage + type: string + field_type: + $ref: >- + #/components/schemas/ExperimentsPatchExperimentV2ResponseDataAttributesStructuredMetadataItemsFieldType + freetext_value: + description: "Text value for a free-text metadata field." + type: string + required: + - field_key type: object - FleetDeploymentResponseMeta: - description: Metadata for a single deployment response, including pagination information for hosts. + ExperimentsSubjectTypeV2DTO: + description: "Response containing the subject type." + example: + data: + attributes: + created_at: "2024-01-01T12:00:00Z" + is_default: true + name: User + product_analytics_attribute: "@usr.id" + updated_at: "2024-01-01T12:00:00Z" + warehouse_column_names: + - user_id + - customer_id + id: 550e8400-e29b-41d4-a716-446655440010 + type: subject-types properties: - hosts: - $ref: "#/components/schemas/FleetDeploymentHostsPage" + data: + $ref: "#/components/schemas/ExperimentsSubjectTypeV2DTOData" + required: + - data type: object - FleetDeploymentV2: - description: A deployment in the v2 API response. + ExperimentsSubjectTypeV2DTOArray: + description: "List of subject type resources with pagination information." + example: + data: + - attributes: + created_at: "2024-01-01T12:00:00Z" + is_default: true + name: User + product_analytics_attribute: "@usr.id" + updated_at: "2024-01-01T12:00:00Z" + warehouse_column_names: + - user_id + - customer_id + id: 550e8400-e29b-41d4-a716-446655440010 + type: subject-types + properties: + data: + description: "Resources returned in this response." + example: + - attributes: + created_at: "2024-01-01T12:00:00Z" + is_default: true + name: User + product_analytics_attribute: "@usr.id" + updated_at: "2024-01-01T12:00:00Z" + warehouse_column_names: + - user_id + - customer_id + id: 550e8400-e29b-41d4-a716-446655440010 + type: subject-types + items: + $ref: "#/components/schemas/ExperimentsSubjectTypeV2DTOData" + type: array + links: + $ref: "#/components/schemas/ExperimentsOffsetLinks" + meta: + $ref: "#/components/schemas/ExperimentsOffsetMeta" + required: + - data + type: object + ExperimentsSubjectTypeV2DTOData: + description: "JSON:API resource containing the subject type identity and fields." + example: + attributes: + created_at: "2024-01-01T12:00:00Z" + is_default: true + name: User + product_analytics_attribute: "@usr.id" + updated_at: "2024-01-01T12:00:00Z" + warehouse_column_names: + - user_id + - customer_id + id: 550e8400-e29b-41d4-a716-446655440010 + type: subject-types properties: attributes: - $ref: "#/components/schemas/FleetDeploymentV2Attributes" + $ref: "#/components/schemas/ExperimentsSubjectTypeV2DTODataAttributes" id: - description: Unique identifier for the deployment. - example: "k7Q-3mX-p9Z" + description: "ID of the subject type." + example: 550e8400-e29b-41d4-a716-446655440010 + format: uuid type: string type: - $ref: "#/components/schemas/FleetDeploymentResourceType" + $ref: "#/components/schemas/ExperimentsSubjectTypeV2DTODataType" required: - id - type - - attributes type: object - FleetDeploymentV2Attributes: - description: Attributes of a deployment in the v2 API response. + ExperimentsSubjectTypeV2DTODataAttributes: + description: "Details of the subject type." + example: + created_at: "2024-01-01T12:00:00Z" + is_default: true + name: User + product_analytics_attribute: "@usr.id" + updated_at: "2024-01-01T12:00:00Z" + warehouse_column_names: + - user_id + - customer_id properties: - author: - description: Handle of the user who triggered the deployment. - example: "alice@datadoghq.com" - type: string - config_operations: - description: |- - Ordered list of configuration file operations applied by this deployment. - Absent for package deployments, which have no configuration file operations. - items: - $ref: "#/components/schemas/FleetDeploymentOperation" - type: array - duration_seconds: - description: |- - Duration of the deployment in seconds, computed as `finished_at - started_at`. - Zero if the deployment has not finished. - example: 1000 - format: int64 - type: integer - error_summary: - description: Top-level error message for the deployment. Populated only when the deployment has failed. - example: "A host failed to update" + created_at: + description: "Time when this resource was created." + example: "2024-01-01T12:00:00Z" + format: date-time type: string - estimated_finished_at: - description: Estimated completion time of the deployment as a Unix timestamp. Zero if not available. - example: 1699999999 + experiment_count: + description: "Number of experiments that reference this resource." format: int64 + nullable: true type: integer - finished_at: - description: Time the deployment finished as a Unix timestamp. Zero if not yet finished. - example: 0 + exposure_source_count: + description: "Number of exposure sources that reference this subject type." format: int64 + nullable: true type: integer - is_scheduled: - description: Whether this deployment was triggered by a schedule (`schedule_id` is non-empty). + is_default: + description: "Whether this is the organization's default subject type." example: true type: boolean - query: - description: Query used to filter and select target hosts for the deployment. - example: "env:prod AND service:web" + metric_sql_model_count: + description: "Number of metric SQL models that reference this subject type." + format: int64 + nullable: true + type: integer + migration_metadata: + description: "Metadata retained for resources imported from another system." + name: + description: "Display name of the subject type." + example: User type: string - schedule_id: - description: Identifier of the schedule that triggered this deployment. Empty if triggered manually. - example: "sched-123" + product_analytics_attribute: + description: "Product Analytics attribute used to identify subjects of this type." + example: "@usr.id" type: string - started_at: - description: Time the deployment started as a Unix timestamp. Zero if not yet started. - example: 1699990000 + protocol_count: + description: "Number of protocols that reference this subject type." format: int64 + nullable: true type: integer - status: - description: |- - Current high-level status of the deployment (for example, "pending", "running", - "completed", "failed"). - example: "pending" + updated_at: + description: "Time when this resource was last updated." + example: "2024-01-01T12:00:00Z" + format: date-time type: string - target_versions: - description: Package versions targeted by this deployment. - example: ["7.52.0"] + warehouse_column_names: + description: "Warehouse columns that identify subjects of this type." + example: + - user_id + - customer_id items: + description: "Name of a warehouse column that identifies subjects." + example: user_id type: string type: array - total_hosts: - description: Total number of hosts targeted by this deployment. - example: 42 - format: int64 - type: integer - update_type: - description: |- - Type of update operation performed by this deployment - (for example, "update_config_operations", "update_package"). - example: "update_config_operations" - type: string type: object - FleetDeploymentV2Cancel: - description: A deployment cancellation response. - properties: - attributes: - $ref: "#/components/schemas/FleetDeploymentV2CancelAttributes" - id: - description: Unique identifier for the deployment. - example: "k7Q-3mX-p9Z" - type: string - type: - $ref: "#/components/schemas/FleetDeploymentResourceType" - required: - - id - - type - - attributes - type: object - FleetDeploymentV2CancelAttributes: - description: Attributes of a deployment cancellation response. - properties: - message: - description: Human-readable message describing the outcome of the cancellation request. - example: "Cancellation has been requested; the deployment is stopping." - type: string - status: - description: Status of the deployment after the cancellation request. - example: "stopping" - type: string - type: object - FleetDeploymentV2CancelResponse: - description: Response containing the result of a deployment cancellation request. - properties: - data: - $ref: "#/components/schemas/FleetDeploymentV2Cancel" - required: - - data - type: object - FleetDeploymentV2CreateResponse: - description: Response containing the newly created deployment. + ExperimentsSubjectTypeV2DTODataType: + default: subject-types + description: Subject types resource type. + enum: + - subject-types + example: subject-types + type: string + x-enum-varnames: + - SUBJECT_TYPES + ExperimentsTargetingRuleCondition: + description: A saved-filter condition or a complete inline condition. The two forms cannot be combined. + oneOf: + - $ref: "#/components/schemas/ExperimentsSavedFilterCondition" + - $ref: "#/components/schemas/ExperimentsInlineCondition" + ExperimentsTrafficSummaryV2DTO: + description: "Response containing the experiment traffic summary." properties: data: - $ref: "#/components/schemas/FleetDeploymentV2" + $ref: "#/components/schemas/ExperimentsTrafficSummaryV2DTOData" required: - data type: object - FleetDeploymentV2Detail: - description: Detailed information about a deployment. + ExperimentsTrafficSummaryV2DTOData: + description: "JSON:API resource containing the experiment traffic summary identity and fields." properties: attributes: - $ref: "#/components/schemas/FleetDeploymentV2DetailAttributes" + $ref: "#/components/schemas/ExperimentsTrafficSummaryV2DTODataAttributes" id: - description: Unique identifier for the deployment. - example: "k7Q-3mX-p9Z" + description: "Identifier of this traffic summary." + example: "traffic-summary-1785542400000-1785628800000" type: string type: - $ref: "#/components/schemas/FleetDeploymentResourceType" + $ref: "#/components/schemas/ExperimentsTrafficSummaryV2DTODataType" required: - id - type - - attributes - type: object - FleetDeploymentV2DetailAgent: - description: Per-host status entry for a deployment. - properties: - error: - description: Error message if the deployment failed on this host. - example: "" - type: string - hostname: - description: Hostname of the agent. - example: "web-01.example.com" - type: string - running_step: - description: Name of the step currently executing on this host. - example: "applying_config" - type: string - status: - description: Deployment status for this host (for example, "pending", "running", "succeeded", "failed"). - example: "running" - type: string - status_details: - description: Additional details about the current deployment status on this host. - example: "step 2/3" - type: string - versions: - description: Package version details for this host. - items: - $ref: "#/components/schemas/FleetDeploymentHostPackage" - type: array type: object - FleetDeploymentV2DetailAttributes: - description: Attributes of a deployment detail response. + ExperimentsTrafficSummaryV2DTODataAttributes: + description: "Details of the experiment traffic summary." properties: - author: - description: Handle of the user who triggered the deployment. - example: "carol@datadoghq.com" - type: string - canceled_hosts: - description: Number of hosts on which the deployment was canceled. - example: 1 + is_traffic_imbalanced: + description: "Whether the observed variant traffic is imbalanced." + type: boolean + total_subjects: + description: "Total number of subjects included in the traffic summary." format: int64 - minimum: 0 type: integer - config_operations: - description: |- - Ordered list of configuration file operations applied by this deployment. - Absent for package deployments, which have no configuration file operations. + variants: + description: "Exposure counts for each experiment variant." items: - $ref: "#/components/schemas/FleetDeploymentOperation" + $ref: "#/components/schemas/ExperimentsTrafficSummaryV2DTODataAttributesVariantsItems" type: array - duration_seconds: - description: |- - Duration of the deployment in seconds, computed as `finished_at - started_at`. - Zero if the deployment has not finished. - example: 3600 + type: object + ExperimentsTrafficSummaryV2DTODataAttributesVariantsItems: + description: "Exposure count and identity of one experiment variant." + properties: + exposure_count: + description: "Number of recorded exposures for this variant." format: int64 type: integer - error_summary: - description: Top-level error message for the deployment. Populated only when the deployment has failed. - example: "A host failed to update" + variant_key: + description: "Key that identifies the experiment variant." type: string - estimated_finished_at: - description: Estimated completion time of the deployment as a Unix timestamp. Zero if not available. - example: 1699999999 - format: int64 - type: integer - failed_hosts: - description: Number of hosts on which the deployment failed. - example: 1 - format: int64 - minimum: 0 - type: integer - high_level_status: - description: |- - Current high-level status of the deployment (for example, "pending", "running", - "completed", "failed"). - example: "running" + variant_name: + description: "Display name of the experiment variant." type: string - hosts: - description: Per-host status list for this deployment. + type: object + ExperimentsTrafficSummaryV2DTODataType: + default: traffic-summary + description: Traffic summary resource type. + enum: + - traffic-summary + example: traffic-summary + type: string + x-enum-varnames: + - TRAFFIC_SUMMARY + ExperimentsUpdateExposureSQLModelV2RequestDataAttributes: + description: "Complete column mappings and query used to replace the exposure SQL model." + example: + date_partition_column: + experiment_column: experiment_id + name: Exposure events + properties: + - column_name: country + column_type: STRING + description: + name: country + sql: SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + timestamp_column: exposed_at + variant_column: variant + properties: + date_partition_column: + description: "SQL column used to partition the source data by date." + example: + nullable: true + type: string + experiment_column: + description: "SQL column that identifies the experiment for each exposure." + example: experiment_id + type: string + migration_metadata: + description: "Metadata retained for resources imported from another system." + name: + description: "Display name of the exposure SQL model." + example: Exposure events + type: string + properties: + description: "Property columns exposed by the SQL model." + example: + - column_name: country + column_type: STRING + description: + name: country items: - $ref: "#/components/schemas/FleetDeploymentV2DetailAgent" + $ref: "#/components/schemas/ExperimentsSQLModelPropertyInput" type: array - is_scheduled: - description: Whether this deployment was triggered by a schedule (`schedule_id` is non-empty). - example: true - type: boolean - query: - description: Query used to filter and select target hosts for the deployment. - example: "env:prod AND service:web" - type: string - running_hosts: - description: Number of hosts on which the deployment is currently running. - example: 1 - format: int64 - minimum: 0 - type: integer - schedule_id: - description: Identifier of the schedule that triggered this deployment. Empty if triggered manually. - example: "sched-789" + sql: + description: "SQL query that produces the model's source data." + example: SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures type: string - skipped_hosts: - description: Number of hosts that were skipped during the deployment. - example: 1 - format: int64 - minimum: 0 - type: integer - succeeded_hosts: - description: Number of hosts on which the deployment succeeded. - example: 1 - format: int64 - minimum: 0 - type: integer - target_versions: - description: Distinct package versions targeted by this deployment, in first-seen order. - example: ["7.52.0"] + subject_types: + description: "Subject types mapped to columns in the SQL model." + example: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 items: - type: string + $ref: "#/components/schemas/ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems" + maxItems: 10 + minItems: 1 type: array - total_hosts: - description: Total number of hosts targeted by this deployment. - example: 42 - format: int64 - type: integer - update_type: - description: |- - Type of update operation performed by this deployment - (for example, "update_config_operations", "update_package"). - example: "update_config_operations" + timestamp_column: + description: "SQL column that supplies the event timestamp." + example: exposed_at + type: string + variant_column: + description: "SQL column that identifies the variant for each exposure." + example: variant type: string - type: object - FleetDeploymentV2DetailResponse: - description: Response containing detailed information about a single deployment. - properties: - data: - $ref: "#/components/schemas/FleetDeploymentV2Detail" required: - - data - type: object - FleetDeploymentsV2Page: - description: Pagination details for the v2 list of deployments. - properties: - total_count: - description: Total number of deployments available across all pages. - example: 25 - format: int64 - type: integer - total_filtered_count: - description: Total number of deployments matching the current filter query. - example: 10 - format: int64 - type: integer + - name + - sql + - experiment_column + - variant_column + - timestamp_column + - subject_types type: object - FleetDeploymentsV2Response: - description: Response containing a paginated list of deployments. - properties: + ExperimentsUpdateExposureSQLModelV2RequestDataType: + default: exposure-sql-models + description: Exposure SQL models resource type. + enum: + - exposure-sql-models + example: exposure-sql-models + type: string + x-enum-varnames: + - EXPOSURE_SQL_MODELS + ExperimentsUpdateExposureSQLModelV2Response: + description: Updated exposure SQL model and its removed entries. + example: data: - description: Array of deployments matching the query criteria. - items: - $ref: "#/components/schemas/FleetDeploymentV2" - type: array + attributes: + created_at: "2024-01-01T12:00:00Z" + experiment_column: experiment_id + name: Exposure events + properties: + - column_name: country + column_type: STRING + id: 550e8400-e29b-41d4-a716-446655440031 + name: country + pipeline_column_suffix: cty001 + sql: SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + timestamp_column: exposed_at + updated_at: "2024-01-01T12:00:00Z" + variant_column: variant + id: 550e8400-e29b-41d4-a716-446655440030 + type: exposure-sql-models + properties: + data: + $ref: "#/components/schemas/ExperimentsExposureSQLModelV2DTOData" meta: - $ref: "#/components/schemas/FleetDeploymentsV2ResponseMeta" + $ref: "#/components/schemas/ExperimentsUpdateExposureSQLModelV2ResponseMeta" required: - data type: object - FleetDeploymentsV2ResponseMeta: - description: Metadata for the v2 list of deployments, including pagination information. - properties: - page: - $ref: "#/components/schemas/FleetDeploymentsV2Page" - type: object - FleetDetectedIntegration: - description: An integration detected on the agent but not necessarily configured. - properties: - escaped_name: - description: Escaped integration name. - example: "postgresql" - type: string - prefix: - description: Integration prefix identifier. - example: "postgres" - type: string - type: object - FleetIntegrationDetailsV2: - description: Detailed information about a single integration. + ExperimentsUpdateExposureSQLModelV2ResponseMeta: + description: Removed model entries. Present only when the update removes an entry. properties: - data_type: - description: Type of data collected, such as metrics or logs. - example: "metrics" - type: string - error_messages: - description: Error messages if the integration has issues. + removed_property_names: + description: Property names removed from the model. items: - description: An error message describing an issue with the integration. + description: Name of a removed property. type: string type: array - init_config: - description: Initialization configuration (YAML format). - type: string - instance_config: - description: Instance-specific configuration (YAML format). + removed_subject_type_ids: + description: Subject type IDs removed from the model. + items: + description: ID of a removed subject type. + type: string + type: array + type: object + ExperimentsUpdateMetricSQLModelV2RequestDataAttributes: + description: "Complete column mappings and query used to replace the metric SQL model." + example: + date_partition_column: + description: + measures: + - column_name: revenue + column_type: FLOAT + description: + name: + name: Order facts + properties: + - column_name: item_type + column_type: STRING + description: + name: item_type + sql: SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + timestamp_column: created_at + properties: + date_partition_column: + description: "SQL column used to partition the source data by date." + example: + nullable: true type: string - is_custom_check: - description: Whether this is a custom integration. - type: boolean - is_default: - description: Whether this is a default integration instance. - type: boolean - is_init: - description: Whether this integration configuration is an init config. - type: boolean - log_config: - description: Log collection configuration (YAML format). + description: + description: "Text that explains the metric SQL model." + example: + nullable: true type: string + measures: + description: "Measures available from the SQL model's result columns." + example: + - column_name: revenue + column_type: FLOAT + description: + name: + items: + $ref: "#/components/schemas/ExperimentsCreateMetricSQLModelV2RequestDataAttributesMeasuresItems" + type: array + migration_metadata: + description: "Metadata retained for resources imported from another system." name: - description: Name of the integration instance. - type: string - pod_count: - description: >- - Number of pods running this integration. Absent from the response when the count is zero. - format: int64 - type: integer - source_index: - description: Index in the configuration file. - format: int64 - type: integer - source_path: - description: Path to the configuration file. - type: string - type: - description: Integration type. - example: "postgres" + description: "Display name of the metric SQL model." + example: Order facts type: string - type: object - FleetIntegrationsByStatusV2: - description: Integrations organized by their status. - properties: - configuration_files: - description: Configuration files for integrations. + properties: + description: "Property columns exposed by the SQL model." + example: + - column_name: item_type + column_type: STRING + description: + name: item_type items: - $ref: "#/components/schemas/FleetConfigurationFileV2" + $ref: "#/components/schemas/ExperimentsMetricSQLModelPropertyInput" type: array - error_integrations: - description: Integrations with errors. + sql: + description: "SQL query that produces the model's source data." + example: SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders + type: string + subject_types: + description: "Subject types mapped to columns in the SQL model." + example: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 items: - $ref: "#/components/schemas/FleetIntegrationDetailsV2" + $ref: "#/components/schemas/ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems" + maxItems: 10 + minItems: 1 type: array - missing_integrations: - description: Detected but not configured integrations. + timestamp_column: + description: "SQL column that supplies the event timestamp." + example: created_at + type: string + required: + - name + - sql + - timestamp_column + - subject_types + type: object + ExperimentsUpdateMetricSQLModelV2RequestDataType: + default: metric-sql-models + description: Metric SQL models resource type. + enum: + - metric-sql-models + example: metric-sql-models + type: string + x-enum-varnames: + - METRIC_SQL_MODELS + ExperimentsUpdateMetricSQLModelV2Response: + description: Updated metric SQL model and its removed entries. + example: + data: + attributes: + created_at: "2024-01-01T12:00:00Z" + event_count_measure_id: 550e8400-e29b-41d4-a716-446655440024 + is_certified: false + measures: + - column_name: revenue + column_type: FLOAT + id: 550e8400-e29b-41d4-a716-446655440021 + name: revenue + name: Order facts + properties: + - column_name: item_type + column_type: STRING + id: 550e8400-e29b-41d4-a716-446655440023 + name: item_type + sql: SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + unique_subject_count_measure_id: 550e8400-e29b-41d4-a716-446655440022 + timestamp_column: created_at + updated_at: "2024-01-01T12:00:00Z" + id: 550e8400-e29b-41d4-a716-446655440020 + type: metric-sql-models + properties: + data: + $ref: "#/components/schemas/ExperimentsMetricSQLModelV2DTOData" + meta: + $ref: "#/components/schemas/ExperimentsUpdateMetricSQLModelV2ResponseMeta" + required: + - data + type: object + ExperimentsUpdateMetricSQLModelV2ResponseMeta: + description: Model entries removed by the update. Empty arrays mean no entries were removed. + properties: + deleted_measures: + description: Measure column names removed from the model. items: - $ref: "#/components/schemas/FleetDetectedIntegration" + description: SQL column name of a removed measure. + type: string type: array - warning_integrations: - description: Integrations with warnings. + deleted_properties: + description: Property names removed from the model. items: - $ref: "#/components/schemas/FleetIntegrationDetailsV2" + description: Name of a removed property. + type: string type: array - working_integrations: - description: Integrations that are working correctly. + deleted_subject_types: + description: Subject type IDs removed from the model. items: - $ref: "#/components/schemas/FleetIntegrationDetailsV2" + description: ID of a removed subject type. + type: string type: array type: object - FleetOtelCollector: - additionalProperties: {} - description: OpenTelemetry collector information. - type: object - FleetOtelCollectorConfigurationV2: - description: Configuration for a single OpenTelemetry collector associated with the agent. + ExperimentsUpdateMetricV2Request: + description: "Request to update the metric." + example: + data: + attributes: + name: Checkout conversion + id: 550e8400-e29b-41d4-a716-446655440020 + type: metrics properties: - collector_id: - description: The unique identifier of the OpenTelemetry collector. - type: string - compiled_configuration: - description: The final compiled configuration of the OpenTelemetry collector. - type: string - distribution: - description: The distribution of the OpenTelemetry collector. - type: string + data: + $ref: "#/components/schemas/ExperimentsUpdateMetricV2RequestData" + required: + - data type: object - FleetSchedule: - description: A schedule that automatically creates deployments based on a recurrence rule. + ExperimentsUpdateMetricV2RequestData: + description: "JSON:API resource containing the metric identity and fields." + example: + attributes: + name: Checkout conversion + id: 550e8400-e29b-41d4-a716-446655440020 + type: metrics properties: attributes: - $ref: "#/components/schemas/FleetScheduleAttributes" + $ref: "#/components/schemas/ExperimentsUpdateMetricV2RequestDataAttributes" id: - description: Unique identifier for the schedule. - example: "abc-def-ghi-123" + description: "ID of the metric." + example: 550e8400-e29b-41d4-a716-446655440020 + format: uuid type: string type: - $ref: "#/components/schemas/FleetScheduleResourceType" + $ref: "#/components/schemas/MetricType" required: - - id - type - - attributes type: object - FleetScheduleAttributes: - description: Attributes of a schedule in the response. + ExperimentsUpdateMetricV2RequestDataAttributes: + description: |- + Fields supplied to update the metric. Every attribute is optional; omit an attribute to leave it unchanged. + example: + name: Checkout conversion properties: - created_at_unix: - description: Unix timestamp (seconds since epoch) when the schedule was created. - example: 1699999999 - format: int64 - type: integer - created_by: - description: User handle of the person who created the schedule. - example: "user@example.com" - type: string - name: - description: Human-readable name for the schedule. - example: "Weekly Production Agent Updates" - type: string - query: - description: Query used to filter and select target hosts for scheduled deployments. Uses the Datadog query syntax. - example: "env:prod AND service:web" - type: string - rule: - $ref: "#/components/schemas/FleetScheduleRecurrenceRule" - status: - $ref: "#/components/schemas/FleetScheduleStatus" - updated_at_unix: - description: Unix timestamp (seconds since epoch) when the schedule was last updated. - example: 1699999999 - format: int64 - type: integer - updated_by: - description: User handle of the person who last updated the schedule. - example: "user@example.com" + data_source_type: + $ref: "#/components/schemas/ExperimentsCreateMetricV2RequestDataAttributesDataSourceType" + denominator_aggregation: + $ref: "#/components/schemas/ExperimentsCreateMetricV2RequestDataAttributesNumeratorAggregation" + description: + description: Send null to clear the description. Omit to leave it unchanged. + example: + nullable: true type: string - version_to_latest: - description: |- - Number of major versions behind the latest to target for upgrades. - - 0: Always upgrade to the latest version - - 1: Upgrade to latest minus 1 major version - - 2: Upgrade to latest minus 2 major versions - Maximum value is 2. - example: 0 - format: int64 - maximum: 2 - minimum: 0 - type: integer - type: object - FleetScheduleCreate: - description: Data for creating a new schedule. - properties: - attributes: - $ref: "#/components/schemas/FleetScheduleCreateAttributes" - type: - $ref: "#/components/schemas/FleetScheduleResourceType" - required: - - type - - attributes - type: object - FleetScheduleCreateAttributes: - description: Attributes for creating a new schedule. - properties: + desired_change: + $ref: "#/components/schemas/ExperimentsCreateMetricV2RequestDataAttributesDesiredChange" + format_as_percent: + description: Whether results render as a percentage. Omit to leave it unchanged. + example: true + type: boolean + guardrail_cutoff_threshold: + description: Send null to clear a stored threshold. Omit to leave it unchanged. + example: + format: double + nullable: true + type: number + migration_metadata: + description: "Metadata retained for resources imported from another system." name: - description: Human-readable name for the schedule. - example: "Weekly Production Agent Updates" - type: string - query: - description: Query used to filter and select target hosts for scheduled deployments. Uses the Datadog query syntax. - example: "env:prod AND service:web" + description: Name of the metric. Omit to leave it unchanged. + example: Checkout conversion type: string - rule: - $ref: "#/components/schemas/FleetScheduleRecurrenceRule" - status: - $ref: "#/components/schemas/FleetScheduleStatus" - version_to_latest: - description: |- - Number of major versions behind the latest to target for upgrades. - - 0: Always upgrade to the latest version (default) - - 1: Upgrade to latest minus 1 major version - - 2: Upgrade to latest minus 2 major versions - Maximum value is 2. - example: 0 - format: int64 - maximum: 2 - minimum: 0 - type: integer - required: - - name - - query - - rule + numerator_aggregation: + $ref: "#/components/schemas/ExperimentsCreateMetricV2RequestDataAttributesNumeratorAggregation" + percentile_aggregation: + $ref: "#/components/schemas/ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregation" type: object - FleetScheduleCreateRequest: - description: Request payload for creating a new schedule. + ExperimentsVariantResultsV2DTOArray: + description: "List of variant result resources." properties: data: - $ref: "#/components/schemas/FleetScheduleCreate" + description: "Resources returned in this response." + example: [] + items: + $ref: "#/components/schemas/ExperimentsVariantResultsV2DTOData" + type: array + meta: + $ref: "#/components/schemas/ExperimentsExperimentResultsV2MetaDTO" required: - data type: object - FleetSchedulePatch: - description: Data for partially updating a schedule. + ExperimentsVariantResultsV2DTOData: + description: "JSON:API resource containing the variant result identity and fields." properties: attributes: - $ref: "#/components/schemas/FleetSchedulePatchAttributes" + $ref: "#/components/schemas/ExperimentsVariantResultsV2DTODataAttributes" + id: + description: "ID of the variant result." + example: "550e8400-e29b-41d4-a716-446655440000:treatment" + type: string type: - $ref: "#/components/schemas/FleetScheduleResourceType" + $ref: "#/components/schemas/ExperimentsVariantResultsV2DTODataType" required: + - id - type type: object - FleetSchedulePatchAttributes: - description: Attributes for partially updating a schedule. All fields are optional. + ExperimentsVariantResultsV2DTODataAttributes: + description: "Details of the variant result." properties: - name: - description: Human-readable name for the schedule. - example: "Weekly Production Agent Updates" - type: string - query: - description: Query used to filter and select target hosts for scheduled deployments. Uses the Datadog query syntax. - example: "env:prod AND service:web" - type: string - rule: - $ref: "#/components/schemas/FleetScheduleRecurrenceRule" - status: - $ref: "#/components/schemas/FleetScheduleStatus" - version_to_latest: - description: |- - Number of major versions behind the latest to target for upgrades. - - 0: Always upgrade to the latest version - - 1: Upgrade to latest minus 1 major version - - 2: Upgrade to latest minus 2 major versions - Maximum value is 2. - example: 0 + assignment_count: + description: "Number of subjects assigned to this variant." format: int64 - maximum: 2 - minimum: 0 type: integer + experiment_id: + description: "ID of the experiment associated with this result." + type: string + is_control: + description: "Whether this variant is the experiment's control." + type: boolean + metrics: + description: "Metrics reported for this variant." + items: + $ref: "#/components/schemas/ExperimentsVariantResultsV2DTODataAttributesMetricsItems" + type: array + variant_key: + description: "Key that identifies the experiment variant." + type: string + variant_name: + description: "Display name of the experiment variant." + type: string type: object - FleetSchedulePatchRequest: - description: Request payload for partially updating a schedule. - properties: - data: - $ref: "#/components/schemas/FleetSchedulePatch" - required: - - data - type: object - FleetScheduleRecurrenceRule: - description: |- - Defines the recurrence pattern for the schedule. Specifies when deployments should be - automatically triggered based on maintenance windows. + ExperimentsVariantResultsV2DTODataAttributesMetricsItems: + description: "Metric values and statistical results for one variant." properties: - days_of_week: - description: |- - List of days of the week when the schedule should trigger. Valid values are: - "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun". - example: ["Mon", "Wed", "Fri"] + analyses: + description: "Statistical analyses calculated for this metric and variant." items: - description: A day of the week (for example, "Mon", "Tue"). - type: string + $ref: "#/components/schemas/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItems" type: array - maintenance_window_duration: - description: Duration of the maintenance window in minutes. - example: 1200 + assignment_count: + description: "Number of subjects assigned to this variant." format: int64 type: integer - start_maintenance_window: + coverage: description: |- - Start time of the maintenance window in 24-hour clock format (HH:MM). - Deployments will be triggered at this time on the specified days. - example: "02:00" + Estimated share of the global metric total from the eligible population if that population received + control. The estimate can exceed 1. + format: double + type: number + coverage_summary: + $ref: "#/components/schemas/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsCoverageSummary" + coverage_unavailable_reason: + description: "Reason that metric coverage could not be calculated." type: string - timezone: - description: Timezone for the schedule in IANA Time Zone Database format (e.g., "America/New_York", "UTC"). - example: "America/New_York" + denominator: + description: "Aggregated denominator value for this metric and variant." + format: double + nullable: true + type: number + desired_change: + $ref: "#/components/schemas/ExperimentsMetricV2DTODataAttributesDesiredChange" + metric_id: + description: "ID of the metric represented by this entry." + type: string + metric_name: + description: "Display name of the metric represented by this entry." + type: string + numerator: + description: "Aggregated numerator value for this metric and variant." + format: double + nullable: true + type: number + sub_metric_property_name: + description: "Name of the property used to split this metric result." + type: string + sub_metric_property_value: + description: "Property value represented by this split metric result." type: string - required: - - days_of_week - - start_maintenance_window - - maintenance_window_duration - - timezone type: object - FleetScheduleResourceType: - default: schedule - description: The type of schedule resource. + ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItems: + description: "One statistical comparison for a metric and variant." + properties: + confidence_interval: + $ref: >- + #/components/schemas/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsConfidenceInterval + confidence_level: + description: >- + Configured nominal confidence level. Interval bounds can use an adjusted level for multiple testing or hybrid methods. + format: double + type: number + evsi: + description: "Expected reduction in minimum expected regret from collecting more sample data." + format: double + type: number + expectation_above_zero: + description: "Expected effect when the effect is positive." + format: double + type: number + expectation_below_zero: + description: "Expected effect when the effect is negative." + format: double + type: number + global_lift: + description: |- + Estimated lift across the population. Calculated as metric coverage multiplied by the experiment lift. + format: double + type: number + global_lift_lower_bound: + description: "Lower bound of the estimated lift across the population." + format: double + type: number + global_lift_upper_bound: + description: "Upper bound of the estimated lift across the population." + format: double + type: number + is_cuped_adjusted: + description: "Whether CUPED used pre-experiment data to reduce variance in this result." + type: boolean + is_unreliable: + description: "Whether the statistical result is marked as unreliable." + type: boolean + lift_type: + $ref: "#/components/schemas/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsLiftType" + method: + $ref: "#/components/schemas/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsMethod" + minimum_expected_regret: + description: "The smaller expected opportunity cost of choosing treatment or control." + format: double + type: number + p_value: + description: |- + Probability, under the no-effect hypothesis, of a result at least as extreme as the observed result. + format: double + type: number + point_estimate: + description: "Estimated difference between the variant and control for this metric." + format: double + type: number + probability_above_zero: + description: "Estimated probability that the effect is greater than zero." + format: double + type: number + probability_below_zero: + description: "Estimated probability that the effect is less than zero." + format: double + type: number + standard_error: + description: "Estimated uncertainty in the effect estimate." + format: double + type: number + unreliable_reason: + $ref: >- + #/components/schemas/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsUnreliableReason + variant_metric_value: + description: "Metric value calculated for this variant." + format: double + nullable: true + type: number + z_score: + description: "Standardized statistic used to compare the observed effect with zero." + format: double + type: number + type: object + ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsConfidenceInterval: + description: "Lower and upper bounds of the reported statistical interval." + properties: + lower: + description: "Lower bound of the reported interval." + format: double + type: number + upper: + description: "Upper bound of the reported interval." + format: double + type: number + type: object + ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsLiftType: + description: "Whether the reported lift is relative or absolute." enum: - - schedule - example: schedule + - RELATIVE + - ABSOLUTE + - UNKNOWN type: string x-enum-varnames: - - SCHEDULE - FleetScheduleResponse: - description: Response containing a single schedule. + - RELATIVE + - ABSOLUTE + - UNKNOWN + ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsMethod: + description: "Statistical method used to calculate this result." + enum: + - FIXED_SAMPLE + - BAYESIAN + - SEQUENTIAL + - SEQUENTIAL_FIXED_HYBRID + - UNKNOWN + type: string + x-enum-varnames: + - FIXED_SAMPLE + - BAYESIAN + - SEQUENTIAL + - SEQUENTIAL_FIXED_HYBRID + - UNKNOWN + ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsUnreliableReason: + description: "Reason that the statistical result is marked as unreliable." + enum: + - CONTROL_DENOMINATOR_NEAR_ZERO + - TREATMENT_DENOMINATOR_NEAR_ZERO + - CONTROL_AND_TREATMENT_DENOMINATORS_NEAR_ZERO + - CONTROL_MEAN_NEAR_ZERO + - ZERO_VARIANCE + - UNKNOWN + type: string + x-enum-varnames: + - CONTROL_DENOMINATOR_NEAR_ZERO + - TREATMENT_DENOMINATOR_NEAR_ZERO + - CONTROL_AND_TREATMENT_DENOMINATORS_NEAR_ZERO + - CONTROL_MEAN_NEAR_ZERO + - ZERO_VARIANCE + - UNKNOWN + ExperimentsVariantResultsV2DTODataAttributesMetricsItemsCoverageSummary: + description: "Population totals and allocation used to calculate metric coverage." properties: - data: - $ref: "#/components/schemas/FleetSchedule" + control_total: + description: "Total metric value for the control population in the coverage calculation." + format: double + type: number + coverage: + description: |- + Estimated share of the global metric total from the eligible population if that population received + control. The estimate can exceed 1. + format: double + type: number + coverage_unavailable_reason: + description: "Reason that metric coverage could not be calculated." + type: string + eligible_population_total: + description: "Estimated metric total for the eligible population if that population received control." + format: double + type: number + experiment_total: + description: "Total metric value for the experiment population in the coverage calculation." + format: double + type: number + global_metric_total: + description: "Observed metric total across subjects inside and outside the experiment." + format: double + type: number + traffic_allocation: + description: "Fraction of eligible traffic allocated to the experiment, weighted by time." + format: double + type: number type: object - FleetScheduleStatus: - description: |- - The status of the schedule. - - `active`: The schedule is active and will create deployments according to its recurrence rule. - - `inactive`: The schedule is inactive and will not create any deployments. + ExperimentsVariantResultsV2DTODataType: + default: experiment-variant-results + description: Experiment variant results resource type. enum: - - active - - inactive - example: active + - experiment-variant-results + example: experiment-variant-results type: string x-enum-varnames: - - ACTIVE - - INACTIVE - FleetScheduleV2: - description: A fleet upgrade schedule resource in the v2 API response. + - EXPERIMENT_VARIANT_RESULTS + ExperimentsWarehouseExposureFilter: + description: "A comparison that selects warehouse exposure data by a property." properties: - attributes: - $ref: "#/components/schemas/FleetScheduleV2Attributes" - id: - description: Unique identifier for the schedule. - example: "abc-def-ghi-123" + operation: + $ref: >- + #/components/schemas/ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPointFiltersItemsOperation + property_id: + description: Warehouse property UUID. + example: 550e8400-e29b-41d4-a716-446655440000 type: string - type: - $ref: "#/components/schemas/FleetScheduleResourceType" + values: + description: Ordered values used by the filter. + example: [] + items: + description: Ordered values used by the filter. + type: string + type: array required: - - id - - type - - attributes + - operation + - property_id + - values type: object - FleetScheduleV2Attributes: - description: Attributes of a fleet schedule in the v2 API response. + ExperimentsWarehouseFilterInput: + description: >- + A property or measure comparison for a Warehouse numerator or denominator. Set exactly one target ID that is not blank. Measure comparisons require numeric measures and numeric values. BETWEEN bounds must be in ascending order. + example: + operation: IS + property_id: 550e8400-e29b-41d4-a716-446655440023 + values: + - US + oneOf: + - $ref: "#/components/schemas/ExperimentsPropertyFilterInput" + - $ref: "#/components/schemas/ExperimentsPropertyNullFilterInput" + - $ref: "#/components/schemas/ExperimentsMeasureComparisonFilterInput" + - $ref: "#/components/schemas/ExperimentsMeasureRangeFilterInput" + - $ref: "#/components/schemas/ExperimentsMeasureNullFilterInput" + ExperimentsWarehouseFilterInputGroup: + description: Metric filters combined with AND. Each group must contain at least one filter. + example: + - operation: IS + property_id: 550e8400-e29b-41d4-a716-446655440023 + values: + - US + items: + $ref: "#/components/schemas/ExperimentsWarehouseFilterInput" + minItems: 1 + type: array + ExperimentsWarehouseMetricAggregationInput: + description: >- + Settings for a metric aggregation that uses a Warehouse measure. The other measure must be omitted or null. properties: - created_at: - description: RFC3339 timestamp when the schedule was created. - example: "2023-11-14T22:13:19Z" - type: string - created_by: - description: User handle of the person who created the schedule. - example: "user@example.com" - type: string - is_default: - description: Whether this is the default schedule for the organization. - example: false + aging_threshold_days: + description: >- + Stored aging threshold in days. The subject aging filter uses the aggregation window end and unit. + format: int64 + type: integer + datadog_metric_measure: + $ref: "#/components/schemas/ExperimentsNullableDatadogMetricMeasureInput" + enable_aging_subject_filter: + description: Whether to exclude subjects whose observation time is shorter than the aggregation window. type: boolean - name: - description: Human-readable name for the schedule. - example: "Weekly Production Agent Updates" - type: string - next_run: - description: |- - RFC3339 timestamp of the next scheduled maintenance window start time. - Absent when the next run time cannot be computed. - example: "2025-01-06T02:00:00Z" - type: string - notification_rule: - $ref: "#/components/schemas/FleetScheduleV2NotificationRule" - query: - description: Query used to filter and select target hosts for scheduled deployments. - example: "env:prod AND service:web" + operation: + description: Calculation applied to the measure values, such as sum. + example: sum + minLength: 1 + pattern: \S type: string - rule: - $ref: "#/components/schemas/FleetScheduleV2RecurrenceRule" - status: - $ref: "#/components/schemas/FleetScheduleStatus" - updated_at: - description: RFC3339 timestamp when the schedule was last updated. - example: "2023-11-14T22:13:19Z" + property_filters: + description: Property filters that select data for this aggregation. + example: + - - operation: IS + property_id: 550e8400-e29b-41d4-a716-446655440023 + values: + - US + items: + $ref: "#/components/schemas/ExperimentsWarehouseFilterInputGroup" + nullable: true + type: array + threshold_aggregation_type: + description: Calculation used to evaluate the threshold. type: string - updated_by: - description: User handle of the person who last updated the schedule. - example: "user@example.com" + threshold_breach_value: + description: Value used to determine whether the threshold is breached. + format: double + type: number + threshold_comparison_operator: + description: Operator used to compare the calculated value with the threshold. type: string - version_to_latest: + threshold_timeframe_dimension: description: |- - Number of major versions behind the latest to target for upgrades. - - 0: Always upgrade to the latest version. - - 1: Upgrade to latest minus 1 major version. - - 2: Upgrade to latest minus 2 major versions. + Time unit for the threshold evaluation window. Supports seconds, minutes, hours, days, calendar_days, and + weeks. Calendar days start at midnight on the assignment day. Other units start at the assignment time. + type: string + threshold_timeframe_value: + description: End of the threshold evaluation window, measured from assignment in the configured time unit. + format: double + type: number + timeframe_end_value: + description: End offset of the aggregation window from assignment, in timeframe_unit. + format: double + type: number + timeframe_start_value: + description: Start offset of the aggregation window from assignment, in timeframe_unit. example: 0 - format: int64 - maximum: 2 - minimum: 0 - type: integer + format: double + type: number + timeframe_unit: + description: |- + Time unit for the aggregation window. Calendar days are measured from midnight on the assignment day. + Other units are measured from the assignment time. + type: string + warehouse_metric_measure: + $ref: >- + #/components/schemas/ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregationWarehouseMetricMeasure + winsor_lower_fixed_value: + description: Fixed lower bound used to cap extreme measure values. + format: double + type: number + winsor_lower_percentile: + description: Percentile used to determine the lower bound for extreme measure values. + format: double + type: number + winsor_upper_fixed_value: + description: Fixed upper bound used to cap extreme measure values. + format: double + type: number + winsor_upper_percentile: + description: Percentile used to determine the upper bound for extreme measure values. + format: double + type: number + winsorization_strategy: + description: Method used to cap extreme measure values before aggregation. + type: string + required: + - operation + - warehouse_metric_measure type: object - FleetScheduleV2NotificationRule: - description: |- - Notification configuration attached to a schedule. - - Included when available. If the notification rule cannot be retrieved, this field is - omitted and the schedule is still returned. If the notification rule is retrieved but its - handles cannot be resolved, it is still included with an empty `handles` array. - properties: - handles: - description: Notification handles (for example, Slack channels or PagerDuty integrations). - items: - description: A notification handle. - type: string - type: array - tags: - description: Tags associated with the notification rule. + ExperimentsWarehousePercentileAggregationInput: + description: >- + Settings for a percentile aggregation that uses a Warehouse measure. The other measure must be omitted or null. + properties: + datadog_metric_measure: + $ref: "#/components/schemas/ExperimentsNullableDatadogPercentileMeasureInput" + percentile: + description: Percentile to calculate from the measure values. + example: 0.95 + exclusiveMaximum: true + exclusiveMinimum: true + format: double + maximum: 1 + minimum: 0 + type: number + property_filters: + description: Property filters that select data for the percentile calculation. items: - description: A tag string. - type: string + $ref: "#/components/schemas/ExperimentsPropertyFilterInputGroup" + nullable: true type: array + warehouse_metric_measure: + $ref: >- + #/components/schemas/ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregationWarehouseMetricMeasure + required: + - percentile + - warehouse_metric_measure type: object - FleetScheduleV2RecurrenceRule: - description: Defines the recurrence pattern for the schedule. + ExposureRolloutStepRequest: + description: Rollout step request payload. properties: - days_of_week: - description: |- - Days of the week when the schedule triggers. Valid values are - "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun". - example: ["Mon", "Wed", "Fri"] - items: - description: A day of the week (for example, "Mon"). - type: string - type: array - interval: - description: |- - Interval between schedule runs in weeks. 1 means the schedule runs every week - on the specified days. Higher values repeat every N weeks. + exposure_ratio: + description: The exposure ratio for this step. + example: 0.5 + format: double + maximum: 1 + minimum: 0 + type: number + grouped_step_index: + description: Logical index grouping related steps. example: 1 format: int64 + minimum: 0 type: integer - maintenance_window_duration: - description: Duration of the maintenance window in minutes. - example: 120 - format: int64 - type: integer - start_maintenance_window: - description: |- - Start time of the maintenance window in 24-hour clock format (HHMM). - Deployments are triggered at this time on the specified days. - example: "0200" - type: string - timezone: - description: Timezone in IANA Time Zone Database format. - example: "America/New_York" + id: + description: The unique identifier of the progression step. + example: "550e8400-e29b-41d4-a716-446655440040" + format: uuid type: string - type: object - FleetScheduleV2Response: - description: Response containing a single fleet schedule. - properties: - data: - $ref: "#/components/schemas/FleetScheduleV2" - required: - - data - type: object - FleetSchedulesV2Page: - description: Pagination details for the v2 list of schedules. - properties: - total_count: - description: Total number of schedules returned. - example: 5 + interval_ms: + description: Step duration in milliseconds. + example: 3600000 format: int64 + nullable: true type: integer - type: object - FleetSchedulesV2Response: - description: Response containing a list of fleet schedules. - properties: - data: - description: Array of schedules for the organization. - items: - $ref: "#/components/schemas/FleetScheduleV2" - type: array - meta: - $ref: "#/components/schemas/FleetSchedulesV2ResponseMeta" + is_pause_record: + description: Whether this step represents a pause record. + example: false + type: boolean required: - - data - type: object - FleetSchedulesV2ResponseMeta: - description: Metadata for the v2 list of schedules response. - properties: - page: - $ref: "#/components/schemas/FleetSchedulesV2Page" + - exposure_ratio + - is_pause_record + - grouped_step_index type: object - FleetTracerAttributes: - description: Attributes of a fleet tracer representing a service instance reporting telemetry. + ExposureScheduleRequest: + description: Progressive release request payload. properties: - env: - description: The environment the tracer is reporting from. - example: "production" - type: string - hostname: - description: The hostname where the tracer is running. - example: "my-hostname" + absolute_start_time: + description: The absolute UTC start time for this schedule. + example: "2025-06-13T12:00:00Z" + format: date-time + nullable: true type: string - language: - description: The programming language of the traced application. - example: "java" + control_variant_id: + description: The control variant ID used for experiment comparisons. + example: "550e8400-e29b-41d4-a716-446655440012" + nullable: true type: string - language_version: - description: The version of the programming language runtime. - example: "17.0.1" + control_variant_key: + description: The control variant key used during creation workflows. + example: "control" + nullable: true type: string - remote_config_status: - description: The remote configuration status of the tracer. - example: "connected" + id: + description: The unique identifier of the progressive rollout. + example: "550e8400-e29b-41d4-a716-446655440010" + format: uuid type: string - runtime_ids: - description: Runtime identifiers for the tracer instances. + rollout_options: + $ref: "#/components/schemas/RolloutOptionsRequest" + rollout_steps: + description: Ordered progression steps for exposure. items: - description: A runtime identifier for a tracer instance. - type: string + $ref: "#/components/schemas/ExposureRolloutStepRequest" + minItems: 1 type: array - service: - description: The telemetry-derived service name reported by the tracer. - example: "inventory-service" - type: string - service_hostname: - description: The service hostname reported by the tracer. - example: "my-service-host" - type: string - service_version: - description: The version of the traced service. - example: "2.1.0" - type: string - tracer_version: - description: The version of the Datadog tracer library. - example: "1.32.0" - type: string + required: + - rollout_options + - rollout_steps type: object - FleetTracersResponse: - description: Response containing a paginated list of fleet tracers. + FacetInfoRequest: + description: Request body for retrieving facet value information for a specified attribute with optional filtering. + example: + data: + attributes: + facet_id: first_browser_name + limit: 10 + search: + query: user_org_id:5001 AND first_country_code:US + term_search: + value: Chrome + id: facet_info_request + type: users_facet_info_request properties: data: - $ref: "#/components/schemas/FleetTracersResponseData" - meta: - $ref: "#/components/schemas/FleetTracersResponseMeta" - required: - - data + $ref: "#/components/schemas/FacetInfoRequestData" type: object - FleetTracersResponseData: - description: The response data containing status and tracers array. + FacetInfoRequestData: + description: The data object containing the resource type and attributes for the facet info request. properties: attributes: - $ref: "#/components/schemas/FleetTracersResponseDataAttributes" + $ref: "#/components/schemas/FacetInfoRequestDataAttributes" id: - description: Status identifier. - example: "done" + description: Unique identifier for the facet info request resource. type: string type: - description: Resource type. - example: "status" - type: string + $ref: "#/components/schemas/FacetInfoRequestDataType" required: - - id - type - - attributes - type: object - FleetTracersResponseDataAttributes: - description: Attributes of the fleet tracers response containing the list of tracers. - properties: - tracers: - description: Array of tracers matching the query criteria. - items: - $ref: "#/components/schemas/FleetTracerAttributes" - type: array type: object - FleetTracersResponseMeta: - description: Metadata for the list of tracers response. + FacetInfoRequestDataAttributes: + description: Attributes for the facet info request, specifying which facet to query and optional filters to apply. properties: - total_filtered_count: - description: Total number of tracers matching the filter criteria across all pages. - example: 42 + facet_id: + description: The identifier of the facet attribute to retrieve value information for. + example: "" + type: string + limit: + description: Maximum number of facet values to return in the response. + example: 0 format: int64 type: integer + search: + $ref: "#/components/schemas/FacetInfoRequestDataAttributesSearch" + term_search: + $ref: "#/components/schemas/FacetInfoRequestDataAttributesTermSearch" + required: + - facet_id + - limit type: object - FlutterSourcemapAttributes: - description: Attributes of a Flutter symbol file. + FacetInfoRequestDataAttributesSearch: + description: Query-based search configuration for filtering the audience context when retrieving facet values. properties: - arch: - description: The target CPU architecture. - example: arm64 + query: + description: The filter expression used to scope the audience from which facet values are retrieved. type: string - created_at: - description: The timestamp when the symbol file was created. - example: "2024-01-01T00:00:00Z" - format: date-time - type: string - mapkind: - description: The type of source map. - example: flutter - type: string - service: - description: The service name associated with the symbol file. - example: my-flutter-app - type: string - size: - description: The size of the symbol file in bytes. - example: 8192 - format: int64 - type: integer - variant: - description: The build variant. - example: release - type: string - version: - description: The version of the service associated with the symbol file. - example: 1.0.0 - type: string - required: - - mapkind - - size - - created_at type: object - FlutterSourcemapData: - description: Flutter symbol file data object. + FacetInfoRequestDataAttributesTermSearch: + description: Term-level search configuration for filtering facet values by an exact or partial term match. properties: - attributes: - $ref: "#/components/schemas/FlutterSourcemapAttributes" - id: - description: The unique identifier of the source map. - example: "12" + value: + description: The term string to match against facet values. type: string - type: - $ref: "#/components/schemas/SourcemapDataType" - required: - - id - - type - - attributes type: object - FormData: - description: A form resource object. + FacetInfoRequestDataType: + default: users_facet_info_request + description: Users facet info request resource type. + enum: + - users_facet_info_request + example: users_facet_info_request + type: string + x-enum-varnames: + - USERS_FACET_INFO_REQUEST + FacetInfoResponse: + description: Response containing facet information for an attribute, including its distinct values and occurrence counts. + example: + data: + attributes: + result: + values: + - count: 4892 + value: Chrome + - count: 2341 + value: Safari + - count: 1567 + value: Firefox + - count: 892 + value: Edge + - count: 234 + value: Opera + id: facet_info_response + type: users_facet_info + properties: + data: + $ref: "#/components/schemas/FacetInfoResponseData" + type: object + FacetInfoResponseData: + description: The data object containing the resource type and attributes for the facet info response. properties: attributes: - $ref: "#/components/schemas/FormDataAttributes" + $ref: "#/components/schemas/FacetInfoResponseDataAttributes" id: - description: The ID of the form. - example: 22f6006a-2302-4926-9396-d2dfcf7b0b34 - format: uuid + description: Unique identifier for the facet info response resource. type: string type: - $ref: "#/components/schemas/FormType" + $ref: "#/components/schemas/FacetInfoResponseDataType" required: - - id - type - - attributes type: object - FormDataAttributes: - description: The attributes of a form. + FacetInfoResponseDataAttributes: + description: Attributes of the facet info response, containing the facet result data. properties: - active: - description: Whether the form is currently active. - example: true - type: boolean - anonymous: - description: Whether the form accepts anonymous submissions. - example: false - type: boolean - created_at: - description: The time at which the form was created. - example: "2026-05-29T20:06:13.677353Z" - format: date-time - type: string - datastore_config: - $ref: "#/components/schemas/FormDatastoreConfigAttributes" - description: - description: The description of the form. - example: A form to collect user feedback. - type: string - end_date: - description: The date and time at which the form stops accepting responses. - example: - format: date-time - nullable: true - type: string - has_submitted: - description: Whether the current user has already submitted this form. Only present for forms with `single_response` set to `true`. - nullable: true - type: boolean - idp_survey: - description: Whether the form is an IDP survey. - example: false - type: boolean - modified_at: - description: The time at which the form was last modified. - example: "2026-05-29T20:06:13.677353Z" - format: date-time - type: string - name: - description: The name of the form. - example: User Feedback Form - type: string - org_id: - description: The ID of the organization that owns this form. - example: 2 - format: int64 - type: integer - publication: - $ref: "#/components/schemas/FormPublicationAttributes" - self_service: - description: Whether the form is available in the self-service catalog. - example: false - type: boolean - single_response: - description: Whether each user can only submit one response. - example: false - type: boolean - user_id: - description: The ID of the user who created this form. - example: 10001 - format: int64 - type: integer - user_uuid: - description: The UUID of the user who created this form. - example: 1fc709aa-be19-4539-a47d-52a30d78a978 - format: uuid - type: string - version: - $ref: "#/components/schemas/FormVersionAttributes" - required: - - active - - anonymous - - created_at - - datastore_config - - description - - idp_survey - - modified_at - - name - - org_id - - self_service - - single_response - - user_id - - user_uuid + result: + $ref: "#/components/schemas/FacetInfoResponseDataAttributesResult" type: object - FormDataDefinition: - additionalProperties: {} - description: A JSON Schema definition that describes the form's data fields. + FacetInfoResponseDataAttributesResult: + description: The facet query result containing discrete value counts or a numeric range for the requested facet. properties: - description: - description: A description shown to form respondents. - example: Welcome to the Engineering Experience Survey. - type: string - properties: - additionalProperties: {} - description: A map of field names to their JSON Schema definitions. - type: object - required: - description: List of field names that must be answered. + range: + $ref: "#/components/schemas/FacetInfoResponseDataAttributesResultRange" + values: + description: List of discrete facet values with their occurrence counts. items: - type: string + $ref: "#/components/schemas/FacetInfoResponseDataAttributesResultValuesItems" type: array - title: - description: The title of the form schema. - example: Developer Experience Survey - type: string - type: - $ref: "#/components/schemas/FormDataDefinitionType" type: object - FormDataDefinitionType: - default: object - description: The root schema type. - enum: - - object - type: string - x-enum-varnames: - - OBJECT - FormDataList: - description: A list of form resource objects. - items: - $ref: "#/components/schemas/FormData" - type: array - FormDatastoreConfigAttributes: - description: The datastore configuration for a form. + FacetInfoResponseDataAttributesResultRange: + description: The numeric range of a facet attribute, representing the minimum and maximum observed values. properties: - datastore_id: - description: The ID of the datastore. - example: 5108ea24-dd83-4696-9caa-f069f73d0fad - format: uuid - type: string - primary_column_name: - description: The name of the primary column in the datastore. - example: id - type: string - primary_key_generation_strategy: - description: The strategy used to generate primary keys in the datastore. - example: none - type: string - required: - - datastore_id - - primary_column_name - - primary_key_generation_strategy + max: + description: The maximum observed value for the numeric facet attribute. + type: object + min: + description: The minimum observed value for the numeric facet attribute. + type: object type: object - FormPublicationAttributes: - description: The attributes of a form publication. + FacetInfoResponseDataAttributesResultValuesItems: + description: A single facet value with its occurrence count in the dataset. properties: - created_at: - description: The time at which the publication was created. - example: "2026-05-29T20:06:13.677353Z" - format: date-time - type: string - form_id: - description: The ID of the form. - example: afc67600-0511-43b1-9b18-578fb4979bd3 - format: uuid - type: string - form_version: - description: The version number that was published. - example: 1 - format: int64 - type: integer - id: - description: The ID of the form publication. - example: "42" - type: string - modified_at: - description: The time at which the publication was last modified. - example: "2026-05-29T20:06:13.677353Z" - format: date-time - type: string - org_id: - description: The ID of the organization that owns this publication. - example: 2 - format: int64 - type: integer - publish_seq: - description: The sequential publication number for this form. - example: 1 - format: int64 - type: integer - user_id: - description: The ID of the user who created this publication. - example: 10001 + count: + description: The number of records that have this facet value. format: int64 type: integer - user_uuid: - description: The UUID of the user who created this publication. - example: 1fc709aa-be19-4539-a47d-52a30d78a978 - format: uuid + value: + description: The facet value (for example, a browser name or country code). type: string - required: - - created_at - - form_id - - form_version - - modified_at - - org_id - - publish_seq - - user_id - - user_uuid type: object - FormPublicationData: - description: A form publication resource object. + FacetInfoResponseDataType: + default: users_facet_info + description: Users facet info resource type. + enum: + - users_facet_info + example: users_facet_info + type: string + x-enum-varnames: + - USERS_FACET_INFO + FastlyAPIKey: + description: The definition of the `FastlyAPIKey` object. properties: - attributes: - $ref: "#/components/schemas/FormPublicationAttributes" - id: - description: The ID of the form publication. - example: "42" + api_key: + description: The `FastlyAPIKey` `api_key`. + example: "" type: string type: - $ref: "#/components/schemas/FormPublicationType" + $ref: "#/components/schemas/FastlyAPIKeyType" required: - - id - type - - attributes - type: object - FormPublicationResponse: - description: A response containing a single form publication. - properties: - data: - $ref: "#/components/schemas/FormPublicationData" - required: - - data + - api_key type: object - FormPublicationType: - default: form_publications - description: The resource type for a form publication. + FastlyAPIKeyType: + description: The definition of the `FastlyAPIKey` object. enum: - - form_publications - example: form_publications + - FastlyAPIKey + example: FastlyAPIKey type: string x-enum-varnames: - - FORM_PUBLICATIONS - FormResponse: - description: A response containing a single form. - properties: - data: - $ref: "#/components/schemas/FormData" - required: - - data - type: object - FormTrigger: - description: "Trigger a workflow from a Form." + - FASTLYAPIKEY + FastlyAPIKeyUpdate: + description: The definition of the `FastlyAPIKey` object. properties: - formId: - description: The form UUID. - example: "" + api_key: + description: The `FastlyAPIKeyUpdate` `api_key`. type: string - type: object - FormTriggerWrapper: - description: "Schema for a Form-based trigger." - properties: - formTrigger: - $ref: "#/components/schemas/FormTrigger" - startStepNames: - $ref: "#/components/schemas/StartStepNames" + type: + $ref: "#/components/schemas/FastlyAPIKeyType" required: - - formTrigger + - type type: object - FormType: - default: forms - description: The resource type for a form. - enum: - - forms - example: forms - type: string - x-enum-varnames: - - FORMS - FormUiDefinition: - additionalProperties: {} - description: UI configuration for rendering form fields, including widget overrides, field ordering, and themes. + FastlyAccounResponseAttributes: + description: Attributes object of a Fastly account. properties: - "ui:order": - description: The order in which form fields are displayed. + name: + description: The name of the Fastly account. + example: "test-name" + type: string + services: + description: A list of services belonging to the parent account. items: - type: string + $ref: "#/components/schemas/FastlyService" type: array - "ui:theme": - $ref: "#/components/schemas/FormUiDefinitionUiTheme" + required: + - name type: object - FormUiDefinitionUiTheme: - description: The visual theme applied to the form. + FastlyAccountCreateRequest: + description: Payload schema when adding a Fastly account. properties: - primaryColor: - $ref: "#/components/schemas/FormUiDefinitionUiThemePrimaryColor" + data: + $ref: "#/components/schemas/FastlyAccountCreateRequestData" + required: + - data type: object - FormUiDefinitionUiThemePrimaryColor: - description: The primary color of the form theme. - enum: - - gray - - red - - orange - - yellow - - green - - light-blue - - dark-blue - - magenta - - indigo - type: string - x-enum-varnames: - - GRAY - - RED - - ORANGE - - YELLOW - - GREEN - - LIGHT_BLUE - - DARK_BLUE - - MAGENTA - - INDIGO - FormUpdateAttributes: - description: The fields to update on a form. At least one field must be provided. + FastlyAccountCreateRequestAttributes: + description: Attributes object for creating a Fastly account. properties: - datastore_config: - $ref: "#/components/schemas/FormDatastoreConfigAttributes" - description: - description: The updated description of the form. - example: An updated description. + api_key: + description: The API key for the Fastly account. + example: "ABCDEFG123" type: string name: - description: The updated name of the form. - example: Updated Form Name - type: string - type: object - FormVersionAttributes: - description: The attributes of a form version. - properties: - created_at: - description: The time at which the version was created. - example: "2026-05-29T20:06:14.895921Z" - format: date-time - type: string - data_definition: - $ref: "#/components/schemas/FormDataDefinition" - definition_signature: - description: The signature of the version definition. - example: '{"signature":"b7f312957a80cea2c8c9950532b205a90a3f8a7ebb7e52fc25437a25d903d545","version":1}' - type: string - etag: - description: The ETag for optimistic concurrency control. - example: b51f08b698d88d8027a935d9db649774949f5fb41a0c559bfee6a9a13225c72d - nullable: true - type: string - id: - description: The ID of the form version. - example: "126" - type: string - modified_at: - description: The time at which the version was last modified. - example: "2026-05-29T20:06:14.949163Z" - format: date-time - type: string - state: - $ref: "#/components/schemas/FormVersionState" - ui_definition: - $ref: "#/components/schemas/FormUiDefinition" - user_id: - description: The ID of the user who created this version. - example: 10001 - format: int64 - type: integer - user_uuid: - description: The UUID of the user who created this version. - example: 1fc709aa-be19-4539-a47d-52a30d78a978 - format: uuid + description: The name of the Fastly account. + example: "test-name" type: string - version: - description: The sequential version number. - example: 1 - format: int64 - type: integer + services: + description: A list of services belonging to the parent account. + items: + $ref: "#/components/schemas/FastlyService" + type: array required: - - created_at - - data_definition - - definition_signature - - etag - - modified_at - - state - - ui_definition - - user_id - - user_uuid - - version + - api_key + - name type: object - FormVersionData: - description: A form version resource object. + FastlyAccountCreateRequestData: + description: Data object for creating a Fastly account. properties: attributes: - $ref: "#/components/schemas/FormVersionAttributes" - id: - description: The ID of the form version. - example: "126" - type: string + $ref: "#/components/schemas/FastlyAccountCreateRequestAttributes" type: - $ref: "#/components/schemas/FormVersionType" + $ref: "#/components/schemas/FastlyAccountType" required: - - id - - type - attributes + - type type: object - FormVersionResponse: - description: A response containing a single form version. - properties: - data: - $ref: "#/components/schemas/FormVersionData" - required: - - data - type: object - FormVersionState: - description: The state of a form version. - enum: - - draft - - frozen - example: frozen - type: string - x-enum-varnames: - - DRAFT - - FROZEN - FormVersionType: - default: form_versions - description: The resource type for a form version. - enum: - - form_versions - example: form_versions - type: string - x-enum-varnames: - - FORM_VERSIONS - FormsResponse: - description: A response containing a list of forms. + FastlyAccountResponse: + description: The expected response schema when getting a Fastly account. properties: data: - $ref: "#/components/schemas/FormDataList" - required: - - data - type: object - FormulaLimit: - description: |- - Message for specifying limits to the number of values returned by a query. - This limit is only for scalar queries and has no effect on timeseries queries. - properties: - count: - description: The number of results to which to limit. - example: 10 - format: int32 - maximum: 2147483647 - type: integer - order: - $ref: "#/components/schemas/QuerySortOrder" + $ref: "#/components/schemas/FastlyAccountResponseData" type: object - FrameworkHandleAndVersionResponseData: - description: Contains type and attributes for custom frameworks. + FastlyAccountResponseData: + description: Data object of a Fastly account. properties: attributes: - $ref: "#/components/schemas/CustomFrameworkDataHandleAndVersion" + $ref: "#/components/schemas/FastlyAccounResponseAttributes" id: - description: The ID of the custom framework. - example: handle-version + description: The ID of the Fastly account, a hash of the account name. + example: "abc123" type: string type: - $ref: "#/components/schemas/CustomFrameworkType" + $ref: "#/components/schemas/FastlyAccountType" required: - - id - - type - attributes - type: object - FreshserviceAPIKey: - description: The definition of the `FreshserviceAPIKey` object. - properties: - api_key: - description: The `FreshserviceAPIKey` `api_key`. - example: "" - type: string - domain: - description: The `FreshserviceAPIKey` `domain`. - example: "" - type: string - type: - $ref: "#/components/schemas/FreshserviceAPIKeyType" - required: + - id - type - - domain - - api_key type: object - FreshserviceAPIKeyType: - description: The definition of the `FreshserviceAPIKey` object. + FastlyAccountType: + default: fastly-accounts + description: The JSON:API type for this API. Should always be `fastly-accounts`. enum: - - FreshserviceAPIKey - example: FreshserviceAPIKey + - fastly-accounts + example: fastly-accounts type: string x-enum-varnames: - - FRESHSERVICEAPIKEY - FreshserviceAPIKeyUpdate: - description: The definition of the `FreshserviceAPIKey` object. + - FASTLY_ACCOUNTS + FastlyAccountUpdateRequest: + description: Payload schema when updating a Fastly account. + properties: + data: + $ref: "#/components/schemas/FastlyAccountUpdateRequestData" + required: + - data + type: object + FastlyAccountUpdateRequestAttributes: + description: Attributes object for updating a Fastly account. properties: api_key: - description: The `FreshserviceAPIKeyUpdate` `api_key`. + description: The API key of the Fastly account. + example: "ABCDEFG123" type: string - domain: - description: The `FreshserviceAPIKeyUpdate` `domain`. + name: + description: The name of the Fastly account. type: string + type: object + FastlyAccountUpdateRequestData: + description: Data object for updating a Fastly account. + properties: + attributes: + $ref: "#/components/schemas/FastlyAccountUpdateRequestAttributes" type: - $ref: "#/components/schemas/FreshserviceAPIKeyType" - required: - - type + $ref: "#/components/schemas/FastlyAccountType" type: object - FreshserviceCredentials: - description: The definition of the `FreshserviceCredentials` object. + FastlyAccountsResponse: + description: The expected response schema when getting Fastly accounts. + properties: + data: + description: The JSON:API data schema. + items: + $ref: "#/components/schemas/FastlyAccountResponseData" + type: array + type: object + FastlyCredentials: + description: The definition of the `FastlyCredentials` object. oneOf: - - $ref: "#/components/schemas/FreshserviceAPIKey" - FreshserviceCredentialsUpdate: - description: The definition of the `FreshserviceCredentialsUpdate` object. + - $ref: "#/components/schemas/FastlyAPIKey" + FastlyCredentialsUpdate: + description: The definition of the `FastlyCredentialsUpdate` object. oneOf: - - $ref: "#/components/schemas/FreshserviceAPIKeyUpdate" - FreshserviceIntegration: - description: The definition of the `FreshserviceIntegration` object. + - $ref: "#/components/schemas/FastlyAPIKeyUpdate" + FastlyIntegration: + description: The definition of the `FastlyIntegration` object. properties: credentials: - $ref: "#/components/schemas/FreshserviceCredentials" + $ref: "#/components/schemas/FastlyCredentials" type: - $ref: "#/components/schemas/FreshserviceIntegrationType" + $ref: "#/components/schemas/FastlyIntegrationType" required: - type - credentials type: object - FreshserviceIntegrationType: - description: The definition of the `FreshserviceIntegrationType` object. + FastlyIntegrationType: + description: The definition of the `FastlyIntegrationType` object. enum: - - Freshservice - example: Freshservice + - Fastly + example: Fastly type: string x-enum-varnames: - - FRESHSERVICE - FreshserviceIntegrationUpdate: - description: The definition of the `FreshserviceIntegrationUpdate` object. + - FASTLY + FastlyIntegrationUpdate: + description: The definition of the `FastlyIntegrationUpdate` object. properties: credentials: - $ref: "#/components/schemas/FreshserviceCredentialsUpdate" + $ref: "#/components/schemas/FastlyCredentialsUpdate" type: - $ref: "#/components/schemas/FreshserviceIntegrationType" + $ref: "#/components/schemas/FastlyIntegrationType" required: - type type: object - FullAPIKey: - description: Datadog API key. - properties: - attributes: - $ref: "#/components/schemas/FullAPIKeyAttributes" - id: - description: ID of the API key. - type: string - relationships: - $ref: "#/components/schemas/APIKeyRelationships" - type: - $ref: "#/components/schemas/APIKeysType" - type: object - FullAPIKeyAttributes: - description: Attributes of a full API key. - properties: - category: - description: The category of the API key. - type: string - created_at: - description: Creation date of the API key. - example: "2020-11-23T10:00:00.000Z" - format: date-time - readOnly: true - type: string - date_last_used: - description: "Date the API Key was last used" - example: "2020-11-27T10:00:00.000Z" - format: date-time - nullable: true - readOnly: true - type: string - key: - description: The API key. - readOnly: true - type: string - last4: - description: The last four characters of the API key. - example: "abcd" - maxLength: 4 - minLength: 4 - readOnly: true - type: string - modified_at: - description: Date the API key was last modified. - example: "2020-11-23T10:00:00.000Z" - format: date-time - readOnly: true - type: string - name: - description: Name of the API key. - example: "API Key for submitting metrics" - type: string - private_action_runner_enroll_enabled: - description: Whether the API key can enroll a Private Action Runner. - type: boolean - remote_config_read_enabled: - description: The remote config read enabled status. - type: boolean - type: object - FullApplicationKey: - description: Datadog application key. + FastlyService: + description: The schema representation of a Fastly service. properties: - attributes: - $ref: "#/components/schemas/FullApplicationKeyAttributes" id: - description: ID of the application key. + description: The ID of the Fastly service + example: 6abc7de6893AbcDe9fghIj type: string - relationships: - $ref: "#/components/schemas/ApplicationKeyRelationships" - type: - $ref: "#/components/schemas/ApplicationKeysType" + tags: + description: A list of tags for the Fastly service. + example: + - myTag + - myTag2:myValue + items: + description: A tag for the Fastly service. + type: string + type: array + required: + - id type: object - FullApplicationKeyAttributes: - description: Attributes of a full application key. + FastlyServiceAttributes: + description: Attributes object for Fastly service requests. properties: - created_at: - description: Creation date of the application key. - example: "2020-11-23T10:00:00.000Z" - format: date-time - readOnly: true - type: string - key: - description: The application key. - readOnly: true - type: string - last4: - description: The last four characters of the application key. - example: "abcd" - maxLength: 4 - minLength: 4 - readOnly: true - type: string - last_used_at: - description: Last usage timestamp of the application key. - example: "2020-12-20T10:00:00.000Z" - format: date-time - nullable: true - readOnly: true - type: string - name: - description: Name of the application key. - example: "Application Key for managing dashboards" - type: string - scopes: - description: Array of scopes to grant the application key. - example: ["dashboards_read", "dashboards_write", "dashboards_public_share"] + tags: + description: A list of tags for the Fastly service. + example: + - myTag + - myTag2:myValue items: - description: Name of scope. + description: A tag for the Fastly service. type: string - nullable: true type: array type: object - FullCustomFrameworkData: - description: Contains type and attributes for custom frameworks. + FastlyServiceData: + description: Data object for Fastly service requests. properties: attributes: - $ref: "#/components/schemas/FullCustomFrameworkDataAttributes" + $ref: "#/components/schemas/FastlyServiceAttributes" id: - description: The ID of the custom framework. - example: handle-version + description: The ID of the Fastly service. + example: "abc123" type: string type: - $ref: "#/components/schemas/CustomFrameworkType" + $ref: "#/components/schemas/FastlyServiceType" required: - id - type - - attributes type: object - FullCustomFrameworkDataAttributes: - description: Full Framework Data Attributes. + FastlyServiceRequest: + description: Payload schema for Fastly service requests. properties: - handle: - description: Framework Handle - example: sec2 - type: string - icon_url: - description: Framework Icon URL - example: https://example.com/icon.png - type: string - name: - description: Framework Name - example: security-framework - type: string - requirements: - description: Framework Requirements + data: + $ref: "#/components/schemas/FastlyServiceData" + required: + - data + type: object + FastlyServiceResponse: + description: The expected response schema when getting a Fastly service. + properties: + data: + $ref: "#/components/schemas/FastlyServiceData" + type: object + FastlyServiceType: + default: fastly-services + description: The JSON:API type for this API. Should always be `fastly-services`. + enum: + - fastly-services + example: fastly-services + type: string + x-enum-varnames: + - FASTLY_SERVICES + FastlyServicesResponse: + description: The expected response schema when getting Fastly services. + properties: + data: + description: The JSON:API data schema. items: - $ref: "#/components/schemas/CustomFrameworkRequirement" + $ref: "#/components/schemas/FastlyServiceData" type: array - version: - description: Framework Version - example: "2" - type: string - required: - - handle - - version - - name - - requirements type: object - FullPersonalAccessToken: - description: Datadog access token, including the token key. + FeatureFlag: + description: A feature flag resource. properties: attributes: - $ref: "#/components/schemas/FullPersonalAccessTokenAttributes" + $ref: "#/components/schemas/FeatureFlagAttributes" id: - description: ID of the access token. + description: The unique identifier of the feature flag. + example: "550e8400-e29b-41d4-a716-446655440000" + format: uuid type: string - relationships: - $ref: "#/components/schemas/FullPersonalAccessTokenRelationships" type: - $ref: "#/components/schemas/PersonalAccessTokensType" + $ref: "#/components/schemas/CreateFeatureFlagDataType" + required: + - id + - type + - attributes type: object - FullPersonalAccessTokenAttributes: - description: Attributes of a full access token, including the token key. + FeatureFlagAttributes: + description: Attributes of a feature flag. properties: - created_at: - description: Creation date of the access token. - example: "2024-01-01T00:00:00+00:00" + archived_at: + description: The timestamp when the feature flag was archived. + example: "2023-01-01T00:00:00Z" format: date-time - readOnly: true + nullable: true type: string - expires_at: - description: Expiration date of the access token. - example: "2025-12-31T23:59:59+00:00" + created_at: + description: The timestamp when the feature flag was created. + example: "2023-01-01T00:00:00Z" format: date-time - nullable: true - readOnly: true type: string - key: - description: The access token key. Only returned upon creation. - readOnly: true + created_by: + description: The ID of the user who created the feature flag. + example: "550e8400-e29b-41d4-a716-446655440010" + format: uuid type: string - name: - description: Name of the access token. - example: "My Access Token" + description: + description: The description of the feature flag. + example: "This is an example feature flag for demonstration" type: string - public_portion: - description: The public portion of the access token. - example: "ddpat_abc123" - readOnly: true + distribution_channel: + description: Distribution channel for the feature flag. + example: "ALL" type: string - scopes: - description: Array of scopes granted to the access token. - example: - - "dashboards_read" - - "dashboards_write" + feature_flag_environments: + description: Environment-specific settings for the feature flag. items: - description: Name of scope. - type: string + $ref: "#/components/schemas/FeatureFlagEnvironment" type: array - type: object - FullPersonalAccessTokenRelationships: - description: Resources related to the access token. - properties: - owned_by: - $ref: "#/components/schemas/RelationshipToUser" - type: object - FullServiceAccessToken: - description: Datadog access token, including the token key. - properties: - attributes: - $ref: "#/components/schemas/FullServiceAccessTokenAttributes" - id: - description: ID of the access token. - type: string - relationships: - $ref: "#/components/schemas/FullServiceAccessTokenRelationships" - type: - $ref: "#/components/schemas/ServiceAccessTokensType" - type: object - FullServiceAccessTokenAttributes: - description: Attributes of a full access token, including the token key. - properties: - created_at: - description: Creation date of the access token. - example: "2024-01-01T00:00:00+00:00" - format: date-time - readOnly: true - type: string - expires_at: - description: Expiration date of the access token. - example: "2025-12-31T23:59:59+00:00" - format: date-time + is_favorite: + description: Indicates whether the current user has marked the feature flag as a favorite. + example: false + type: boolean + json_schema: + description: JSON schema for validation when value_type is JSON. + example: '{"type": "object", "properties": {"enabled": {"type": "boolean"}}}' nullable: true - readOnly: true type: string key: - description: The access token key. Only returned upon creation. - readOnly: true + description: The unique key of the feature flag. + example: "feature-flag-abc123" type: string - name: - description: Name of the access token. - example: "My Access Token" + last_updated_by: + description: The ID of the user who last updated the feature flag. + example: "550e8400-e29b-41d4-a716-446655440010" + format: uuid type: string - public_portion: - description: The public portion of the access token. - example: "ddsat_abc123" - readOnly: true + name: + description: The name of the feature flag. + example: "Feature Flag ABC123" type: string - scopes: - description: Array of scopes granted to the access token. - example: - - "dashboards_read" - - "dashboards_write" + require_approval: + description: Indicates whether this feature flag requires approval for changes. + example: false + type: boolean + staleness_details: + $ref: "#/components/schemas/FeatureFlagStalenessDetails" + staleness_status: + description: Indicates the whether a feature flag is stale or not. + example: "ACTIVE" + type: string + tags: + description: Tags associated with the feature flag. + example: [] items: - description: Name of scope. + description: A tag associated with the feature flag. type: string type: array - type: object - FullServiceAccessTokenRelationships: - description: Resources related to the access token. - properties: - owned_by: - $ref: "#/components/schemas/RelationshipToServiceAccount" - type: object - GCPCredentials: - description: The definition of the `GCPCredentials` object. - oneOf: - - $ref: "#/components/schemas/GCPServiceAccount" - GCPCredentialsUpdate: - description: The definition of the `GCPCredentialsUpdate` object. - oneOf: - - $ref: "#/components/schemas/GCPServiceAccountUpdate" - GCPIntegration: - description: The definition of the `GCPIntegration` object. - properties: - credentials: - $ref: "#/components/schemas/GCPCredentials" - type: - $ref: "#/components/schemas/GCPIntegrationType" + updated_at: + description: The timestamp when the feature flag was last updated. + example: "2023-01-01T00:00:00Z" + format: date-time + type: string + value_type: + $ref: "#/components/schemas/ValueType" + variants: + description: The variants of the feature flag. + items: + $ref: "#/components/schemas/Variant" + type: array required: - - type - - credentials + - key + - name + - description + - value_type + - variants type: object - GCPIntegrationType: - description: The definition of the `GCPIntegrationType` object. + FeatureFlagDistributionChannel: + description: The distribution channel for the feature flag. enum: - - GCP - example: GCP + - ALL + - CLIENT + - SERVER + example: "ALL" type: string x-enum-varnames: - - GCP - GCPIntegrationUpdate: - description: The definition of the `GCPIntegrationUpdate` object. - properties: - credentials: - $ref: "#/components/schemas/GCPCredentialsUpdate" - type: - $ref: "#/components/schemas/GCPIntegrationType" - required: - - type - type: object - GCPMetricNamespaceConfig: - description: Configuration for a GCP metric namespace. + - ALL + - CLIENT + - SERVER + FeatureFlagEnvironment: + description: Environment-specific settings for a feature flag. properties: - disabled: - default: false - description: When disabled, Datadog does not collect metrics that are related to this GCP metric namespace. - example: true - type: boolean - filters: - description: |- - When enabled, Datadog applies these additional filters to limit metric collection. A metric is collected only if it does not match all exclusion filters and matches at least one allow filter. - example: ["snapshot.*", "!*_by_region"] + allocations: + additionalProperties: {} + description: Allocation metadata for this environment. + nullable: true + type: object + default_allocation_key: + description: The allocation key used for the default variant. + example: "allocation-default-123abc" + type: string + default_variant_id: + description: The ID of the default variant for this environment. + example: "550e8400-e29b-41d4-a716-446655440002" + nullable: true + type: string + environment_id: + description: The ID of the environment. + example: "550e8400-e29b-41d4-a716-446655440001" + format: uuid + type: string + environment_name: + description: The name of the environment. + example: "env-search-term" + type: string + environment_queries: + description: Queries that target this environment. + example: + - "test-feature-flag" + - "env-search-term" items: - description: A metric namespace filter + description: A query string targeting the environment. type: string type: array - id: - description: The id of the GCP metric namespace. - example: "pubsub" + is_production: + description: Indicates whether the environment is production. + example: false + type: boolean + observe_full_evaluation_data: + description: >- + Indicates whether feature flag evaluation events include original targeting identifiers and full evaluation context. + example: false + type: boolean + override_allocation_key: + description: The allocation key used for the override variant. + example: "allocation-override-123abc" + type: string + override_variant_id: + description: The ID of the override variant for this environment. + example: "550e8400-e29b-41d4-a716-446655440003" + nullable: true type: string + pending_suggestion_id: + description: Pending suggestion identifier, if approval is required. + example: "550e8400-e29b-41d4-a716-446655440099" + nullable: true + type: string + require_feature_flag_approval: + description: Indicates whether feature flag changes require approval in this environment. + example: false + type: boolean + status: + $ref: "#/components/schemas/FeatureFlagStatus" + required: + - environment_id + - status type: object - GCPMonitoredResourceConfig: - description: Configuration for a GCP monitored resource. + FeatureFlagEnvironmentListItem: + description: Environment-specific settings for a feature flag in list responses. properties: - filters: - description: |- - List of filters to limit the monitored resources that are pulled into Datadog by using tags. - Only monitored resources that apply to specified filters are imported into Datadog. - example: ["$KEY:$VALUE"] + default_allocation_key: + description: The allocation key used for the default variant. + example: "allocation-default-123abc" + type: string + default_variant_id: + description: The ID of the default variant for this environment. + example: "550e8400-e29b-41d4-a716-446655440002" + nullable: true + type: string + environment_id: + description: The ID of the environment. + example: "550e8400-e29b-41d4-a716-446655440001" + format: uuid + type: string + environment_name: + description: The name of the environment. + example: "env-search-term" + type: string + environment_queries: + description: Queries that target this environment. + example: + - "test-feature-flag" + - "env-search-term" items: - description: A monitored resource filter + description: A query string targeting the environment. type: string type: array - type: - $ref: "#/components/schemas/GCPMonitoredResourceConfigType" - type: object - GCPMonitoredResourceConfigType: - description: The GCP monitored resource type. Only a subset of resource types are supported. - enum: ["cloud_function", "cloud_run_revision", "gce_instance"] - example: "gce_instance" - type: string - x-enum-varnames: - - CLOUD_FUNCTION - - CLOUD_RUN_REVISION - - GCE_INSTANCE - GCPSTSDelegateAccount: - description: Datadog principal service account info. - properties: - attributes: - $ref: "#/components/schemas/GCPSTSDelegateAccountAttributes" - id: - description: The ID of the delegate service account. - example: "ddgci-1a19n28hb1a812221893@datadog-gci-sts-us5-prod.iam.gserviceaccount.com" + is_production: + description: Indicates whether the environment is production. + example: false + type: boolean + observe_full_evaluation_data: + description: >- + Indicates whether feature flag evaluation events include original targeting identifiers and full evaluation context. + example: false + type: boolean + override_allocation_key: + description: The allocation key used for the override variant. + example: "allocation-override-123abc" type: string - type: - $ref: "#/components/schemas/GCPSTSDelegateAccountType" - type: object - GCPSTSDelegateAccountAttributes: - description: Your delegate account attributes. - properties: - delegate_account_email: - description: Your organization's Datadog principal email address. - example: "ddgci-1a19n28hb1a812221893@datadog-gci-sts-us5-prod.iam.gserviceaccount.com" + override_variant_id: + description: The ID of the override variant for this environment. + example: "550e8400-e29b-41d4-a716-446655440003" + nullable: true type: string + pending_suggestion_id: + description: Pending suggestion identifier, if approval is required. + example: "550e8400-e29b-41d4-a716-446655440099" + nullable: true + type: string + require_feature_flag_approval: + description: Indicates whether feature flag changes require approval in this environment. + example: false + type: boolean + status: + $ref: "#/components/schemas/FeatureFlagStatus" + required: + - environment_id + - status type: object - GCPSTSDelegateAccountResponse: - description: Your delegate service account response data. - properties: - data: - $ref: "#/components/schemas/GCPSTSDelegateAccount" - type: object - GCPSTSDelegateAccountType: - default: gcp_sts_delegate - description: The type of account. - enum: - - gcp_sts_delegate - example: gcp_sts_delegate - type: string - x-enum-varnames: - - GCP_STS_DELEGATE - GCPSTSServiceAccount: - description: Info on your service account. + FeatureFlagListItem: + description: A feature flag resource for list responses. properties: attributes: - $ref: "#/components/schemas/GCPSTSServiceAccountAttributes" + $ref: "#/components/schemas/FeatureFlagListItemAttributes" id: - description: Your service account's unique ID. - example: "d291291f-12c2-22g4-j290-123456678897" + description: The unique identifier of the feature flag. + example: "550e8400-e29b-41d4-a716-446655440000" + format: uuid type: string - meta: - $ref: "#/components/schemas/GCPServiceAccountMeta" type: - $ref: "#/components/schemas/GCPServiceAccountType" + $ref: "#/components/schemas/CreateFeatureFlagDataType" + required: + - id + - type + - attributes type: object - GCPSTSServiceAccountAttributes: - description: Attributes associated with your service account. + FeatureFlagListItemAttributes: + description: Attributes of a feature flag in list responses. properties: - account_tags: - description: Tags to be associated with GCP metrics and service checks from your account. - items: - description: Account Level Tag - type: string - type: array - automute: - description: |- - Silence monitors for expected GCE instance shutdowns. - type: boolean - client_email: - description: Your service account email address. - example: "datadog-service-account@test-project.iam.gserviceaccount.com" + archived_at: + description: The timestamp when the feature flag was archived. + example: "2023-01-01T00:00:00Z" + format: date-time + nullable: true type: string - cloud_run_revision_filters: - deprecated: true - description: |- - List of filters to limit the Cloud Run revisions that are pulled into Datadog by using tags. - Only Cloud Run revision resources that apply to specified filters are imported into Datadog. - **Note:** This field is deprecated. Instead, use `monitored_resource_configs` with `type=cloud_run_revision` - example: ["$KEY:$VALUE"] - items: - description: Cloud Run revision filters - type: string - type: array - host_filters: - deprecated: true - description: |- - List of filters to limit the VM instances that are pulled into Datadog by using tags. - Only VM instance resources that apply to specified filters are imported into Datadog. - **Note:** This field is deprecated. Instead, use `monitored_resource_configs` with `type=gce_instance` - example: ["$KEY:$VALUE"] + created_at: + description: The timestamp when the feature flag was created. + example: "2023-01-01T00:00:00Z" + format: date-time + type: string + created_by: + description: The ID of the user who created the feature flag. + example: "550e8400-e29b-41d4-a716-446655440010" + format: uuid + type: string + description: + description: The description of the feature flag. + example: "This is an example feature flag for demonstration" + type: string + distribution_channel: + description: Distribution channel for the feature flag. + example: "ALL" + type: string + feature_flag_environments: + description: Environment-specific settings for the feature flag. items: - description: VM instance filters - type: string + $ref: "#/components/schemas/FeatureFlagEnvironmentListItem" type: array - is_cspm_enabled: - description: |- - When enabled, Datadog will activate the Cloud Security Monitoring product for this service account. Note: This requires resource_collection_enabled to be set to true. - type: boolean - is_global_location_enabled: - default: true - description: When enabled, Datadog collects metrics where location is explicitly stated as "global" or where location information cannot be deduced from GCP labels. - example: true - type: boolean - is_org_folder_resource_collection_enabled: - default: false - description: |- - When enabled, Datadog scans for organization and folder-level resources - under the organization the service account belongs to. + is_favorite: + description: Indicates whether the current user has marked the feature flag as a favorite. example: false type: boolean - is_per_project_quota_enabled: - default: false - description: |- - When enabled, Datadog applies the `X-Goog-User-Project` header, attributing Google Cloud billing and quota usage to the project being monitored rather than the default service account project. - example: true - type: boolean - is_resource_change_collection_enabled: - default: false - description: |- - When enabled, Datadog scans for all resource change data in your Google Cloud environment. - example: true - type: boolean - is_security_command_center_enabled: - default: false - description: |- - When enabled, Datadog will attempt to collect Security Command Center Findings. Note: This requires additional permissions on the service account. - example: true + json_schema: + description: JSON schema for validation when value_type is JSON. + example: '{"type": "object", "properties": {"enabled": {"type": "boolean"}}}' + nullable: true + type: string + key: + description: The unique key of the feature flag. + example: "feature-flag-abc123" + type: string + last_updated_by: + description: The ID of the user who last updated the feature flag. + example: "550e8400-e29b-41d4-a716-446655440010" + format: uuid + type: string + name: + description: The name of the feature flag. + example: "Feature Flag ABC123" + type: string + require_approval: + description: Indicates whether this feature flag requires approval for changes. + example: false type: boolean - metric_namespace_configs: - description: Configurations for GCP metric namespaces. - example: [{"disabled": true, "id": "aiplatform"}, {"filters": ["snapshot.*", "!*_by_region"], "id": "pubsub"}] - items: - $ref: "#/components/schemas/GCPMetricNamespaceConfig" - type: array - monitored_resource_configs: - description: Configurations for GCP monitored resources. - example: [{"filters": ["$KEY:$VALUE"], "type": "gce_instance"}] + staleness_details: + $ref: "#/components/schemas/FeatureFlagStalenessDetails" + staleness_status: + description: Indicates the staleness status of the feature flag. + example: "ACTIVE" + type: string + tags: + description: Tags associated with the feature flag. + example: [] items: - $ref: "#/components/schemas/GCPMonitoredResourceConfig" + description: A tag associated with the feature flag. + type: string type: array - region_filter_configs: - description: Configurations for GCP location filtering, such as region, multi-region, or zone. Only monitored resources that match the specified regions are imported into Datadog. By default, Datadog collects from all locations. - example: ["nam4", "europe-north1"] + updated_at: + description: The timestamp when the feature flag was last updated. + example: "2023-01-01T00:00:00Z" + format: date-time + type: string + value_type: + $ref: "#/components/schemas/ValueType" + variants: + description: The variants of the feature flag. items: - description: Region Filter Configs - type: string + $ref: "#/components/schemas/Variant" type: array - resource_collection_enabled: - description: |- - When enabled, Datadog scans for all project-level resources in your GCP environment. - type: boolean - type: object - GCPSTSServiceAccountCreateRequest: - description: Data on your newly generated service account. - properties: - data: - $ref: "#/components/schemas/GCPSTSServiceAccountData" - type: object - GCPSTSServiceAccountData: - description: Additional metadata on your generated service account. - properties: - attributes: - $ref: "#/components/schemas/GCPSTSServiceAccountAttributes" - type: - $ref: "#/components/schemas/GCPServiceAccountType" + required: + - key + - name + - description + - value_type + - variants type: object - GCPSTSServiceAccountResponse: - description: The account creation response. + FeatureFlagResponse: + description: Response containing a feature flag. properties: data: - $ref: "#/components/schemas/GCPSTSServiceAccount" + $ref: "#/components/schemas/FeatureFlag" + required: + - data type: object - GCPSTSServiceAccountUpdateRequest: - description: Service account info. + FeatureFlagStalenessCodeReference: + description: A repository and its files that reference the feature flag. properties: - data: - $ref: "#/components/schemas/GCPSTSServiceAccountUpdateRequestData" + files: + description: Paths of files that reference the feature flag in this repository. + items: + description: A file path within the repository. + example: "src/feature_flags.ts" + type: string + type: array + repo_url: + description: The URL of the source code repository, when available. + example: "https://github.com/example/application" + type: string + scm_repository_id: + description: The identifier of the source code repository. + example: "repository-1" + type: string type: object - GCPSTSServiceAccountUpdateRequestData: - description: Data on your service account. + FeatureFlagStalenessDetails: + description: The feature flag's current staleness state and suggested actions. properties: - attributes: - $ref: "#/components/schemas/GCPSTSServiceAccountAttributes" + code_references: + description: Repositories and files where the flag is referenced in source code. + items: + $ref: "#/components/schemas/FeatureFlagStalenessCodeReference" + nullable: true + type: array + dismissed_by: + description: The ID of the user who dismissed the staleness recommendation. + example: "550e8400-e29b-41d4-a716-446655440010" + nullable: true + type: string id: - description: Your service account's unique ID. - example: "d291291f-12c2-22g4-j290-123456678897" + description: The ID of the feature flag whose staleness state is returned. + example: "550e8400-e29b-41d4-a716-446655440000" type: string - type: - $ref: "#/components/schemas/GCPServiceAccountType" - type: object - GCPSTSServiceAccountsResponse: - description: Object containing all your STS enabled accounts. - properties: - data: - description: Array of GCP STS enabled service accounts. + recommended_actions: + description: Suggested actions for the flag. The first action is the primary recommendation. items: - $ref: "#/components/schemas/GCPSTSServiceAccount" + $ref: "#/components/schemas/FeatureFlagStalenessRecommendedAction" + nullable: true type: array - type: object - GCPServiceAccount: - description: The definition of the `GCPServiceAccount` object. - properties: - private_key: - description: The `GCPServiceAccount` `private_key`. - example: "" + skip_state_check_until: + description: Time until which staleness checks are paused for the flag. + example: "2026-09-30T12:00:00Z" + format: date-time + nullable: true type: string - service_account_email: - description: The `GCPServiceAccount` `service_account_email`. - example: "" + stale_reason: + description: >- + Why the flag is stale or has a manually selected state. Values include `FULLY_ROLLED_OUT`, `NO_EVALUATIONS`, `NO_ACTIVITY`, and `USER_SET`. + example: "NO_EVALUATIONS" + nullable: true + type: string + staleness_status: + description: The current state, such as `ACTIVE`, `STALE`, or `PERMANENT`. + example: "ACTIVE" type: string - type: - $ref: "#/components/schemas/GCPServiceAccountCredentialType" - required: - - type - - service_account_email - - private_key type: object - GCPServiceAccountCredentialType: - description: The definition of the `GCPServiceAccount` object. - enum: - - GCPServiceAccount - example: GCPServiceAccount - type: string - x-enum-varnames: - - GCPSERVICEACCOUNT - GCPServiceAccountMeta: - description: Additional information related to your service account. + FeatureFlagStalenessRecommendedAction: + description: An action suggested for a feature flag based on its staleness state. properties: - accessible_projects: - description: The current list of projects accessible from your service account. - items: - description: List of GCP projects. - type: string - type: array + action: + description: >- + The action to consider. Values include `remove_from_code`, `archive_flag`, `mark_as_permanent`, `snooze`, and `check_sdk_config`. + example: "archive_flag" + type: string + description: + description: An explanation of the suggested action. + example: "Archive the feature flag." + type: string type: object - GCPServiceAccountType: - default: gcp_service_account - description: The type of account. + FeatureFlagStatus: + description: The status of a feature flag in an environment. enum: - - gcp_service_account - example: gcp_service_account + - ENABLED + - DISABLED + example: "ENABLED" type: string x-enum-varnames: - - GCP_SERVICE_ACCOUNT - GCPServiceAccountUpdate: - description: The definition of the `GCPServiceAccount` object. + - ENABLED + - DISABLED + FeatureFlagsPaginationMeta: + description: Pagination metadata for feature flags. properties: - private_key: - description: The `GCPServiceAccountUpdate` `private_key`. - type: string - service_account_email: - description: The `GCPServiceAccountUpdate` `service_account_email`. - type: string - type: - $ref: "#/components/schemas/GCPServiceAccountCredentialType" - required: - - type + page: + $ref: "#/components/schemas/FeatureFlagsPaginationMetaPage" type: object - GCPUsageCostConfig: - description: Google Cloud Usage Cost config. + FeatureFlagsPaginationMetaPage: + description: Pagination metadata for feature flags list responses. properties: - attributes: - $ref: "#/components/schemas/GCPUsageCostConfigAttributes" - id: - description: The ID of the Google Cloud Usage Cost config. - type: string - type: - $ref: "#/components/schemas/GCPUsageCostConfigType" - required: - - attributes - - type + total_count: + description: Total number of items. + example: 100 + format: int64 + type: integer + total_filtered_count: + description: Total number of items matching the filter. + example: 25 + format: int64 + type: integer type: object - GCPUsageCostConfigAttributes: - description: Attributes for a Google Cloud Usage Cost config. + FileCoverageLines: + description: Per-file line coverage data including executable, covered, and added lines. properties: - account_id: - description: The Google Cloud account ID. - example: "123456_A123BC_12AB34" - type: string - bucket_name: - description: The Google Cloud bucket name used to store the Usage Cost export. - example: "dd-cost-bucket" - type: string - created_at: - description: The timestamp when the Google Cloud Usage Cost config was created. - pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{6}$ - type: string - dataset: - description: The export dataset name used for the Google Cloud Usage Cost Report. - example: "billing" - type: string - error_messages: - description: The error messages for the Google Cloud Usage Cost config. + added_lines: + description: Line numbers that were added in the specified scope (for example, in a PR diff). + example: [11, 12] items: - description: An error message string. - type: string - nullable: true + format: int64 + type: integer type: array - export_prefix: - description: The export prefix used for the Google Cloud Usage Cost Report. - example: "datadog_cloud_cost_usage_export" - type: string - export_project_name: - description: The name of the Google Cloud Usage Cost Report. - example: "dd-cloud-cost-report" + covered_lines: + description: Line numbers that were covered by tests. + example: [10, 11, 15] + items: + format: int64 + type: integer + type: array + executable_lines: + description: Line numbers that are executable (can be covered). + example: [10, 11, 12, 15, 20] + items: + format: int64 + type: integer + type: array + type: object + FilesCoverageAttributes: + description: Attributes of the per-file code coverage response. + properties: + base_commit_sha: + description: The SHA of the base commit used for comparison (for example, the merge base for a PR). + example: abc1234567890abcdef1234567890abcdef12345 type: string - months: - deprecated: true - description: The number of months the report has been backfilled. - format: int32 - maximum: 36 + event_timestamp: + description: Unix timestamp (milliseconds) of the coverage event. + example: 1709564000000 + format: int64 type: integer - project_id: - description: The `project_id` of the Google Cloud Usage Cost report. - example: "my-project-123" - type: string - service_account: - description: The unique Google Cloud service account email. - example: "dd-ccm-gcp-integration@my-environment.iam.gserviceaccount.com" - type: string - status: - description: The status of the Google Cloud Usage Cost config. - example: "active" - type: string - status_updated_at: - description: The timestamp when the Google Cloud Usage Cost config status was updated. - pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{6}$ - type: string - updated_at: - description: The timestamp when the Google Cloud Usage Cost config status was updated. - pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{6}$ + files: + additionalProperties: + $ref: "#/components/schemas/FileCoverageLines" + description: Map of file paths to per-file coverage line data. + type: object + head_commit_sha: + description: The SHA of the head commit for which coverage was evaluated. + example: 66adc9350f2cc9b250b69abddab733dd55e1a588 type: string - required: - - account_id - - bucket_name - - dataset - - export_prefix - - export_project_name - - service_account - - status + report_count: + description: Number of coverage reports evaluated. + example: 3 + format: int64 + type: integer type: object - GCPUsageCostConfigPatchData: - description: Google Cloud Usage Cost config patch data. + FilesCoverageData: + description: Data object for files coverage response. properties: attributes: - $ref: "#/components/schemas/GCPUsageCostConfigPatchRequestAttributes" + $ref: "#/components/schemas/FilesCoverageAttributes" + id: + description: Unique identifier for the files coverage response. + example: ZGQxMjM0NV9tYWluXzE3MDk1NjQwMDA= + type: string type: - $ref: "#/components/schemas/GCPUsageCostConfigPatchRequestType" - required: - - attributes - - type + $ref: "#/components/schemas/FilesCoverageResponseType" type: object - GCPUsageCostConfigPatchRequest: - description: Google Cloud Usage Cost config patch request. + FilesCoverageRequest: + description: Request object for getting per-file code coverage data. properties: data: - $ref: "#/components/schemas/GCPUsageCostConfigPatchData" + $ref: "#/components/schemas/FilesCoverageRequestData" required: - data type: object - GCPUsageCostConfigPatchRequestAttributes: - description: Attributes for Google Cloud Usage Cost config patch request. + FilesCoverageRequestAttributes: + description: Attributes for requesting per-file code coverage data. Exactly one of `commit_sha`, `branch`, or `pr_number` must be provided. At most one of `service`, `codeowner`, or `flag` may be provided. properties: - is_enabled: - description: Whether or not the Cloud Cost Management account is enabled. + branch: + description: The branch name. + example: main + type: string + changed_only: + description: When true, return coverage data only for files that were changed in the specified scope. example: true type: boolean - required: - - is_enabled - type: object - GCPUsageCostConfigPatchRequestType: - default: gcp_uc_config_patch_request - description: Type of Google Cloud Usage Cost config patch request. - enum: - - gcp_uc_config_patch_request - example: gcp_uc_config_patch_request - type: string - x-enum-varnames: - - GCP_USAGE_COST_CONFIG_PATCH_REQUEST - GCPUsageCostConfigPostData: - description: Google Cloud Usage Cost config post data. - properties: - attributes: - $ref: "#/components/schemas/GCPUsageCostConfigPostRequestAttributes" - type: - $ref: "#/components/schemas/GCPUsageCostConfigPostRequestType" - required: - - type - type: object - GCPUsageCostConfigPostRequest: - description: Google Cloud Usage Cost config post request. - properties: - data: - $ref: "#/components/schemas/GCPUsageCostConfigPostData" - required: - - data - type: object - GCPUsageCostConfigPostRequestAttributes: - description: Attributes for Google Cloud Usage Cost config post request. - properties: - billing_account_id: - description: The Google Cloud account ID. - example: "123456_A123BC_12AB34" + codeowner: + description: Filter coverage by code owner. At most one of `service`, `codeowner`, or `flag` may be provided. + example: "@my-team" type: string - bucket_name: - description: The Google Cloud bucket name used to store the Usage Cost export. - example: "dd-cost-bucket" + commit_sha: + description: The commit SHA (40-character hexadecimal string). + example: 66adc9350f2cc9b250b69abddab733dd55e1a588 + pattern: "^[a-fA-F0-9]{40}$" type: string - export_dataset_name: - description: The export dataset name used for the Google Cloud Usage Cost report. - example: "billing" + flag: + description: Filter coverage by coverage flag. At most one of `service`, `codeowner`, or `flag` may be provided. + example: unit-tests type: string - export_prefix: - description: The export prefix used for the Google Cloud Usage Cost report. - example: "datadog_cloud_cost_usage_export" + pr_number: + description: The pull request number. Must be a positive integer. + example: 42 + format: int64 + minimum: 1 + type: integer + repository_id: + deprecated: true + description: "Deprecated: use `repository_url` instead. The repository URL." + example: github.com/datadog/shopist + minLength: 1 type: string - export_project_name: - description: The name of the Google Cloud Usage Cost report. - example: "dd-cloud-cost-report" + repository_url: + description: The repository URL. Accepts a full URL with or without a scheme (for example, `https://github.com/org/repo` or `github.com/org/repo`). + example: https://github.com/datadog/shopist + minLength: 1 type: string - service_account: - description: The unique Google Cloud service account email. - example: "dd-ccm-gcp-integration@my-environment.iam.gserviceaccount.com" + service: + description: Filter coverage by service name. At most one of `service`, `codeowner`, or `flag` may be provided. + example: my-service type: string + type: object + FilesCoverageRequestData: + description: Data object for files coverage request. + properties: + attributes: + $ref: "#/components/schemas/FilesCoverageRequestAttributes" + type: + $ref: "#/components/schemas/FilesCoverageRequestType" required: - - billing_account_id - - bucket_name - - export_project_name - - export_dataset_name - - service_account + - type + - attributes type: object - GCPUsageCostConfigPostRequestType: - default: gcp_uc_config_post_request - description: Type of Google Cloud Usage Cost config post request. + FilesCoverageRequestType: + description: JSON:API type for files coverage request. The value must always be `ci_app_coverage_files_request`. enum: - - gcp_uc_config_post_request - example: gcp_uc_config_post_request + - ci_app_coverage_files_request + example: ci_app_coverage_files_request type: string x-enum-varnames: - - GCP_USAGE_COST_CONFIG_POST_REQUEST - GCPUsageCostConfigResponse: - description: Response of Google Cloud Usage Cost config. + - CI_APP_COVERAGE_FILES_REQUEST + FilesCoverageResponse: + description: Response object containing per-file code coverage data. properties: data: - $ref: "#/components/schemas/GCPUsageCostConfig" + $ref: "#/components/schemas/FilesCoverageData" type: object - GCPUsageCostConfigType: - default: gcp_uc_config - description: Type of Google Cloud Usage Cost config. + FilesCoverageResponseType: + description: JSON:API type for files coverage response. The value must always be `ci_app_coverage_files`. enum: - - gcp_uc_config - example: gcp_uc_config + - ci_app_coverage_files + example: ci_app_coverage_files type: string x-enum-varnames: - - GCP_UC_CONFIG - GCPUsageCostConfigsResponse: - description: List of Google Cloud Usage Cost configs. - properties: - data: - description: A Google Cloud Usage Cost config. - items: - $ref: "#/components/schemas/GCPUsageCostConfig" - type: array - required: - - data - type: object - GcpScanOptions: - description: Response object containing GCP scan options for a single project. - example: - data: - attributes: - cloud_function: true - compliance_host: false - vuln_containers_os: true - vuln_host_os: true - id: company-project-id - type: gcp_scan_options - properties: - data: - $ref: "#/components/schemas/GcpScanOptionsData" - type: object - GcpScanOptionsArray: - description: Response object containing a list of GCP scan options. - example: - data: - - attributes: - cloud_function: true - compliance_host: false - vuln_containers_os: true - vuln_host_os: true - id: company-project-id - type: gcp_scan_options + - CI_APP_COVERAGE_FILES + FiltersPerProduct: + description: Product-specific filters for the dataset. properties: - data: - description: A list of GCP scan options. + filters: + description: |- + Defines the list of tag-based filters used to restrict access to telemetry data for a specific product. + These filters act as access control rules. Each filter must follow the tag query syntax used by + Datadog (such as `@tag.key:value`), and only one tag or attribute may be used to define the access strategy + per telemetry type. + example: + - "@application.id:ABCD" items: - $ref: "#/components/schemas/GcpScanOptionsData" + description: A tag-based filter expression using Datadog tag query syntax. + example: "@application.id:ABCD" + type: string type: array + product: + description: |- + Name of the product the dataset is for. Possible values are 'apm', 'rum', + 'metrics', 'logs', 'error_tracking', 'cloud_cost', 'sd_repoinfo', 'secruntime', and 'signal'. + example: "logs" + type: string required: - - data + - product + - filters type: object - GcpScanOptionsData: - description: Single GCP scan options entry. + Finding: + description: A single finding without the message and resource configuration. properties: attributes: - $ref: "#/components/schemas/GcpScanOptionsDataAttributes" + $ref: "#/components/schemas/FindingAttributes" id: - description: The GCP project ID. - example: "" - type: string + $ref: "#/components/schemas/FindingID" type: - $ref: "#/components/schemas/GcpScanOptionsDataType" - required: - - type - - id + $ref: "#/components/schemas/FindingType" type: object - GcpScanOptionsDataAttributes: - description: Attributes for GCP scan options configuration. + FindingAttributes: + description: The JSON:API attributes of the finding. properties: - cloud_function: - description: Indicates if scanning of Cloud Functions is enabled. - type: boolean - compliance_host: - description: Indicates whether host compliance scanning is enabled. - type: boolean - vuln_containers_os: - description: Indicates if scanning for vulnerabilities in containers is enabled. - type: boolean - vuln_host_os: - description: Indicates if scanning for vulnerabilities in hosts is enabled. - type: boolean + datadog_link: + $ref: "#/components/schemas/FindingDatadogLink" + description: + $ref: "#/components/schemas/FindingDescription" + evaluation: + $ref: "#/components/schemas/FindingEvaluation" + evaluation_changed_at: + $ref: "#/components/schemas/FindingEvaluationChangedAt" + external_id: + $ref: "#/components/schemas/FindingExternalId" + mute: + $ref: "#/components/schemas/FindingMute" + resource: + $ref: "#/components/schemas/FindingResource" + resource_discovery_date: + $ref: "#/components/schemas/FindingResourceDiscoveryDate" + resource_type: + $ref: "#/components/schemas/FindingResourceType" + rule: + $ref: "#/components/schemas/FindingRule" + status: + $ref: "#/components/schemas/FindingStatus" + tags: + $ref: "#/components/schemas/FindingTags" + vulnerability_type: + $ref: "#/components/schemas/FindingVulnerabilityType" type: object - GcpScanOptionsDataType: - default: gcp_scan_options - description: GCP scan options resource type. - enum: - - gcp_scan_options - example: gcp_scan_options - type: string - x-enum-varnames: - - GCP_SCAN_OPTIONS - GcpScanOptionsInputUpdate: - description: Request object for updating GCP scan options. - example: + FindingCaseResponse: + description: Case response. + properties: data: - id: company-project-id - type: gcp_scan_options + $ref: "#/components/schemas/FindingCaseResponseData" + type: object + FindingCaseResponseArray: + description: List of case responses. properties: data: - $ref: "#/components/schemas/GcpScanOptionsInputUpdateData" + description: Array of case response data objects. + items: + $ref: "#/components/schemas/FindingCaseResponseData" + type: array + required: + - data type: object - GcpScanOptionsInputUpdateData: - description: Data object for updating the scan options of a single GCP project. + FindingCaseResponseData: + description: Data of the case. properties: attributes: - $ref: "#/components/schemas/GcpScanOptionsInputUpdateDataAttributes" + $ref: "#/components/schemas/FindingCaseResponseDataAttributes" id: - description: The GCP project ID. - example: "" + description: Unique identifier of the case. + example: "c1234567-89ab-cdef-0123-456789abcdef" type: string + relationships: + $ref: "#/components/schemas/FindingCaseResponseDataRelationships" type: - $ref: "#/components/schemas/GcpScanOptionsInputUpdateDataType" + $ref: "#/components/schemas/CaseDataType" required: - type - - id type: object - GcpScanOptionsInputUpdateDataAttributes: - description: Attributes for updating GCP scan options configuration. - properties: - cloud_function: - description: Indicates if scanning of Cloud Functions is enabled. - type: boolean - compliance_host: - description: Indicates whether host compliance scanning is enabled. - type: boolean - vuln_containers_os: - description: Indicates if scanning for vulnerabilities in containers is enabled. - type: boolean - vuln_host_os: - description: Indicates if scanning for vulnerabilities in hosts is enabled. - type: boolean - type: object - GcpScanOptionsInputUpdateDataType: - default: gcp_scan_options - description: GCP scan options resource type. - enum: - - gcp_scan_options - example: gcp_scan_options - type: string - x-enum-varnames: - - GCP_SCAN_OPTIONS - GcpUcConfigResponse: - description: The definition of `GcpUcConfigResponse` object. - example: - data: - attributes: - account_id: 123456_A123BC_12AB34 - bucket_name: dd-cost-bucket - created_at: "2023-01-01T12:00:00.000000" - dataset: billing - error_messages: [] - export_prefix: datadog_cloud_cost_usage_export - export_project_name: dd-cloud-cost-report - months: 36 - project_id: my-project-123 - service_account: dd-ccm-gcp-integration@my-environment.iam.gserviceaccount.com - status: active - status_updated_at: "2023-01-01T12:00:00.000000" - updated_at: "2023-01-01T12:00:00.000000" - id: "123456789123" - type: gcp_uc_config - properties: - data: - $ref: "#/components/schemas/GcpUcConfigResponseData" - type: object - GcpUcConfigResponseData: - description: The definition of `GcpUcConfigResponseData` object. + FindingCaseResponseDataAttributes: + description: Attributes of the case. properties: + archived_at: + description: Timestamp of when the case was archived. + example: "2025-01-01T00:00:00.000Z" + format: date-time + type: string + assigned_to: + $ref: "#/components/schemas/RelationshipToUser" + description: User assigned to the case. attributes: - $ref: "#/components/schemas/GcpUcConfigResponseDataAttributes" - id: - description: The `GcpUcConfigResponseData` `id`. + additionalProperties: + items: + description: A custom attribute value string. + type: string + type: array + description: Custom attributes associated with the case as key-value pairs where values are string arrays. + type: object + closed_at: + description: Timestamp of when the case was closed. + example: "2025-01-01T00:00:00.000Z" + format: date-time type: string - type: - $ref: "#/components/schemas/GcpUcConfigResponseDataType" - required: - - type - type: object - GcpUcConfigResponseDataAttributes: - description: The definition of `GcpUcConfigResponseDataAttributes` object. - properties: - account_id: - description: The `attributes` `account_id`. + created_at: + description: Timestamp of when the case was created. + example: "2025-01-01T00:00:00.000Z" + format: date-time type: string - bucket_name: - description: The `attributes` `bucket_name`. + creation_source: + description: Source of the case creation. + example: "CS_SECURITY_FINDING" type: string - created_at: - description: The `attributes` `created_at`. + description: + description: Description of the case. + example: "A description of the case." type: string - dataset: - description: The `attributes` `dataset`. + due_date: + description: Due date of the case. + example: "2025-01-01" type: string - error_messages: - description: The `attributes` `error_messages`. + insights: + description: Insights of the case. items: - description: An error message string. - type: string - nullable: true + $ref: "#/components/schemas/CaseInsightsItems" type: array - export_prefix: - description: The `attributes` `export_prefix`. - type: string - export_project_name: - description: The `attributes` `export_project_name`. + jira_issue: + $ref: "#/components/schemas/FindingJiraIssue" + description: Jira issue associated with the case. + key: + description: Key of the case. + example: "PROJ-123" type: string - months: - description: The `attributes` `months`. - format: int64 - type: integer - project_id: - description: The `attributes` `project_id`. + linear_issue: + $ref: "#/components/schemas/FindingLinearIssue" + description: Linear issue associated with the case. + modified_at: + description: Timestamp of when the case was last modified. + example: "2025-01-01T00:00:00.000Z" + format: date-time type: string - service_account: - description: The `attributes` `service_account`. + priority: + description: Priority of the case. + example: "P4" type: string + servicenow_ticket: + $ref: "#/components/schemas/FindingServiceNowTicket" + description: ServiceNow ticket associated with the case. status: - description: The `attributes` `status`. + description: Status of the case. + example: "OPEN" type: string - status_updated_at: - description: The `attributes` `status_updated_at`. + status_group: + description: Status group of the case. + example: "SG_OPEN" type: string - updated_at: - description: The `attributes` `updated_at`. + status_name: + description: Status name of the case. + example: "Open" + type: string + title: + description: Title of the case. + example: "A title for the case." + type: string + type: + description: Type of the case. For security cases, this is always "SECURITY". + example: "SECURITY" type: string type: object - GcpUcConfigResponseDataType: - default: gcp_uc_config - description: Google Cloud Usage Cost config resource type. - enum: - - gcp_uc_config - example: gcp_uc_config - type: string - x-enum-varnames: - - GCP_UC_CONFIG - GeminiAPIKey: - description: The definition of the `GeminiAPIKey` object. + FindingCaseResponseDataRelationships: + description: Relationships of the case. properties: - api_key: - description: The `GeminiAPIKey` `api_key`. - example: "" + created_by: + $ref: "#/components/schemas/RelationshipToUser" + description: User who created the case. + modified_by: + $ref: "#/components/schemas/RelationshipToUser" + description: User who last modified the case. + project: + $ref: "#/components/schemas/CaseManagementProject" + description: Project in which the case was created. + type: object + FindingData: + description: Data object representing a security finding. + properties: + id: + description: Unique identifier of the security finding. + example: "ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw==" type: string type: - $ref: "#/components/schemas/GeminiAPIKeyType" + $ref: "#/components/schemas/FindingDataType" required: - type - - api_key + - id type: object - GeminiAPIKeyType: - description: The definition of the `GeminiAPIKey` object. + FindingDataType: + default: findings + description: Security findings resource type. enum: - - GeminiAPIKey - example: GeminiAPIKey + - findings + example: findings type: string x-enum-varnames: - - GEMINIAPIKEY - GeminiAPIKeyUpdate: - description: The definition of the `GeminiAPIKey` object. + - FINDINGS + FindingDatadogLink: + description: The Datadog relative link for this finding. + example: "/security/compliance?panels=cpfinding%7Cevent%7CruleId%3Adef-000-u5t%7CresourceId%3Ae8c9ab7c52ebd7bf2fdb4db641082d7d%7CtabId%3Aoverview" + type: string + FindingDescription: + description: The description and remediation steps for this finding. + example: "## Remediation\n\n1. In the console, go to **Storage Account**.\n2. For each Storage Account, navigate to **Data Protection**.\n3. Select **Set soft delete enabled** and enter the number of days to retain soft deleted data." + type: string + FindingEvaluation: + description: The evaluation of the finding. + enum: + - pass + - fail + example: pass + type: string + x-enum-varnames: ["PASS", "FAIL"] + FindingEvaluationChangedAt: + description: The date on which the evaluation for this finding changed (Unix ms). + example: 1678721573794 + format: int64 + minimum: 1 + type: integer + FindingExternalId: + description: The cloud-based ID for the resource related to the finding. + example: "arn:aws:s3:::my-example-bucket" + type: string + FindingID: + description: The unique ID for this finding. + example: ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw== + type: string + FindingJiraIssue: + description: Jira issue associated with the case. properties: - api_key: - description: The `GeminiAPIKeyUpdate` `api_key`. + error_message: + description: Error message if the Jira issue creation failed. + example: '{"errorMessages":["An error occured."],"errors":{}}' + type: string + result: + $ref: "#/components/schemas/FindingJiraIssueResult" + status: + description: Status of the Jira issue creation. Can be "COMPLETED" if the Jira issue was created successfully, or "FAILED" if the Jira issue creation failed. + example: "COMPLETED" type: string - type: - $ref: "#/components/schemas/GeminiAPIKeyType" - required: - - type type: object - GeminiCredentials: - description: The definition of the `GeminiCredentials` object. - oneOf: - - $ref: "#/components/schemas/GeminiAPIKey" - GeminiCredentialsUpdate: - description: The definition of the `GeminiCredentialsUpdate` object. - oneOf: - - $ref: "#/components/schemas/GeminiAPIKeyUpdate" - GeminiIntegration: - description: The definition of the `GeminiIntegration` object. + FindingJiraIssueResult: + description: Result of the Jira issue creation. properties: - credentials: - $ref: "#/components/schemas/GeminiCredentials" - type: - $ref: "#/components/schemas/GeminiIntegrationType" - required: - - type - - credentials + account_id: + description: Account ID of the Jira issue. + example: "463a8631-680e-455c-bfd3-3ed04d326eb7" + type: string + issue_id: + description: Unique identifier of the Jira issue. + example: "2871276" + type: string + issue_key: + description: Key of the Jira issue. + example: "PROJ-123" + type: string + issue_url: + description: URL of the Jira issue. + example: "https://domain.atlassian.net/browse/PROJ-123" + type: string type: object - GeminiIntegrationType: - description: The definition of the `GeminiIntegrationType` object. - enum: - - Gemini - example: Gemini - type: string - x-enum-varnames: - - GEMINI - GeminiIntegrationUpdate: - description: The definition of the `GeminiIntegrationUpdate` object. + FindingLinearIssue: + description: Linear issue associated with the case. properties: - credentials: - $ref: "#/components/schemas/GeminiCredentialsUpdate" - type: - $ref: "#/components/schemas/GeminiIntegrationType" - required: - - type + error_message: + description: Error message if the Linear issue creation failed. + example: "Linear issue creation failed." + type: string + result: + $ref: "#/components/schemas/FindingLinearIssueResult" + status: + description: Status of the Linear issue creation. Can be "COMPLETED" if the Linear issue was created successfully, or "FAILED" if the Linear issue creation failed. + example: "COMPLETED" + type: string type: object - GeneralInvestigationAttributes: - description: Attributes for a general investigation, not tied to a specific monitor alert. - oneOf: - - $ref: "#/components/schemas/GeneralInvestigationAttributesWithoutTimeBounds" - - $ref: "#/components/schemas/GeneralInvestigationAttributesWithTimeBounds" - GeneralInvestigationAttributesWithTimeBounds: + FindingLinearIssueResult: + description: Result of the Linear issue creation. + properties: + account_id: + description: Account ID of the Linear workspace. + example: "463a8631-680e-455c-bfd3-3ed04d326eb7" + type: string + issue_id: + description: Unique identifier of the Linear issue. + example: "9c1e5f8a-2b3d-4c7e-8f6a-1d2e3f4a5b6c" + type: string + issue_key: + description: Key of the Linear issue. + example: "ENG-123" + type: string + team_id: + description: Team ID of the Linear issue. + example: "b5d3c8a1-7e6f-4d2c-9a8b-3c4d5e6f7a8b" + type: string + url: + description: URL of the Linear issue. + example: "https://linear.app/your-workspace/issue/ENG-123" + type: string + type: object + FindingMute: additionalProperties: false - description: Attributes for a general investigation with an explicit time window. + description: Information about the mute status of this finding. properties: description: - description: A free-form description of what to investigate, up to 4,096 characters. - example: "Checkout latency has been elevated for the past hour." - maxLength: 4096 + description: Additional information about the reason why this finding is muted or unmuted. + example: To be resolved later type: string - end_time: - description: The end of the investigation window, in Unix milliseconds. - example: 1700003600000 + expiration_date: + description: The expiration date of the mute or unmute action (Unix ms). + example: 1778721573794 format: int64 type: integer - start_time: - description: The start of the investigation window, in Unix milliseconds. - example: 1700000000000 + muted: + description: Whether this finding is muted or unmuted. + example: true + type: boolean + reason: + $ref: "#/components/schemas/FindingMuteReason" + start_date: + description: The start of the mute period. + example: 1678721573794 format: int64 type: integer - tags: - description: Tags that scope the investigation. - example: - - "service:checkout" - items: - type: string - type: array - required: - - description - - start_time - - end_time - type: object - GeneralInvestigationAttributesWithoutTimeBounds: - additionalProperties: false - description: Attributes for a general investigation without an explicit time window. - properties: - description: - description: A free-form description of what to investigate, up to 4,096 characters. - example: "Checkout latency has been elevated for the past hour." - maxLength: 4096 + uuid: + description: The ID of the user who muted or unmuted this finding. + example: e51c9744-d158-11ec-ad23-da7ad0900002 type: string - tags: - description: Tags that scope the investigation. - example: - - "service:checkout" - items: - type: string - type: array - required: - - description - type: object - GeneralInvestigationTrigger: - additionalProperties: false - description: A trigger created from a general investigation request. - properties: - general_investigation: - $ref: "#/components/schemas/GeneralInvestigationAttributes" - type: - $ref: "#/components/schemas/GeneralInvestigationTriggerType" - required: - - type - - general_investigation type: object - GeneralInvestigationTriggerType: - description: The type of general investigation trigger. + FindingMuteReason: + description: The reason why this finding is muted or unmuted. enum: - - general_investigation - example: general_investigation + - PENDING_FIX + - FALSE_POSITIVE + - ACCEPTED_RISK + - NO_PENDING_FIX + - HUMAN_ERROR + - NO_LONGER_ACCEPTED_RISK + - OTHER + example: ACCEPTED_RISK type: string - x-enum-varnames: - - GENERAL_INVESTIGATION - GenerateCostTagDescriptionResponse: - description: Response wrapping an AI-generated Cloud Cost Management tag key description. - example: - data: - attributes: - description: AWS account that owns this cost. - id: account_id - type: cost_generated_tag_description + x-enum-varnames: ["PENDING_FIX", "FALSE_POSITIVE", "ACCEPTED_RISK", "NO_PENDING_FIX", "HUMAN_ERROR", "NO_LONGER_ACCEPTED_RISK", "OTHER"] + FindingResource: + description: The resource name of this finding. + example: my_resource_name + type: string + FindingResourceDiscoveryDate: + description: The date on which the resource was discovered (Unix ms). + example: 1678721573794 + format: int64 + minimum: 1 + type: integer + FindingResourceType: + description: The resource type of this finding. + example: azure_storage_account + type: string + FindingRule: + additionalProperties: false + description: The rule that triggered this finding. properties: - data: - $ref: "#/components/schemas/GeneratedCostTagDescription" - required: - - data + id: + description: The ID of the rule that triggered this finding. + example: dv2-jzf-41i + type: string + name: + description: The name of the rule that triggered this finding. + example: Soft delete is enabled for Azure Storage + type: string type: object - GeneratedCostTagDescription: - description: AI-generated Cloud Cost Management tag key description returned by the generate endpoint. The result is returned to the client but is not persisted by this endpoint. + FindingServiceNowTicket: + description: ServiceNow ticket associated with the case. properties: - attributes: - $ref: "#/components/schemas/GeneratedCostTagDescriptionAttributes" - id: - description: The tag key the AI description was generated for. - example: account_id + result: + $ref: "#/components/schemas/FindingServiceNowTicketResult" + status: + description: Status of the ServiceNow ticket operation. Can be "COMPLETED" if successful, or "FAILED" if the operation failed. + example: "COMPLETED" type: string - type: - $ref: "#/components/schemas/GeneratedCostTagDescriptionType" - required: - - attributes - - id - - type type: object - GeneratedCostTagDescriptionAttributes: - description: Attributes of an AI-generated Cloud Cost Management tag key description. + FindingServiceNowTicketResult: + description: Result of the ServiceNow ticket creation or attachment. properties: - description: - description: The AI-generated description for the tag key. - example: AWS account that owns this cost. + instance_name: + description: ServiceNow instance name extracted from the ticket URL. + example: "example" + type: string + sys_id: + description: Unique identifier of the ServiceNow incident record. + example: "abcdef0123456789abcdef0123456789" + type: string + sys_target_link: + description: Direct link to the ServiceNow incident record. + example: "https://example.service-now.com/incident.do?sys_id=abcdef0123456789abcdef0123456789" + type: string + sys_target_sys_id: + description: Unique identifier of the target ServiceNow record. + example: "abcdef0123456789abcdef0123456789" + type: string + table_name: + description: ServiceNow table containing the incident record. + example: "incident" + type: string + url: + description: URL of the ServiceNow incident record. + example: "https://example.service-now.com/now/nav/ui/classic/params/target/incident.do?sys_id=abcdef0123456789abcdef0123456789" type: string - required: - - description type: object - GeneratedCostTagDescriptionType: - default: cost_generated_tag_description - description: Type of the AI-generated Cloud Cost Management tag description resource. + FindingStatus: + description: The status of the finding. enum: - - cost_generated_tag_description - example: cost_generated_tag_description + - critical + - high + - medium + - low + - info + example: critical + type: string + x-enum-varnames: ["CRITICAL", "HIGH", "MEDIUM", "LOW", "INFO"] + FindingTags: + description: The tags associated with this finding. + example: + - cloud_provider:aws + - myTag:myValue + items: + description: The list of tags. + type: string + type: array + FindingType: + default: finding + description: The JSON:API type for findings. + enum: + - finding + example: finding + type: string + x-enum-varnames: ["FINDING"] + FindingVulnerabilityType: + description: The vulnerability type of the finding. + enum: + - misconfiguration + - attack_path + - identity_risk + - api_security + example: misconfiguration type: string x-enum-varnames: - - COST_GENERATED_TAG_DESCRIPTION - GetActionConnectionResponse: - description: The response for found connection - properties: - data: - $ref: "#/components/schemas/ActionConnectionData" - type: object - GetAppKeyRegistrationResponse: - description: The response object after getting an app key registration. - properties: - data: - $ref: "#/components/schemas/AppKeyRegistrationData" - type: object - GetAppResponse: - description: The full app definition response object. + - MISCONFIGURATION + - ATTACK_PATH + - IDENTITY_RISK + - API_SECURITY + Findings: + description: A list of security findings. properties: data: - $ref: "#/components/schemas/GetAppResponseData" - included: - description: Data on the version of the app that was published. + description: Array of security finding data objects. items: - $ref: "#/components/schemas/Deployment" + $ref: "#/components/schemas/FindingData" type: array - meta: - $ref: "#/components/schemas/AppMeta" - relationship: - $ref: "#/components/schemas/AppRelationship" type: object - GetAppResponseData: - description: The data object containing the app definition. + FlakyTest: + description: A flaky test object. properties: attributes: - $ref: "#/components/schemas/GetAppResponseDataAttributes" + $ref: "#/components/schemas/FlakyTestAttributes" id: - description: The ID of the app. - example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 - format: uuid + description: |- + Test's ID. This ID is the hash of the test's Fully Qualified Name and Git repository ID. It is the + value of the `@test.fingerprint_fqn` facet on test events, which you can search on in the Test + Optimization Explorer to locate a specific test. To filter search results by this ID, use the + `fingerprint_fqn` search key. type: string type: - $ref: "#/components/schemas/AppDefinitionType" - required: - - id - - type - - attributes + $ref: "#/components/schemas/FlakyTestType" type: object - GetAppResponseDataAttributes: - description: The app definition attributes, such as name, description, and components. + FlakyTestAttributes: + description: Attributes of a flaky test. properties: - components: - description: The UI components that make up the app. + attempt_to_fix_id: + description: |- + Unique identifier for the attempt to fix this flaky test. Use this ID in the Git commit message in order to trigger the attempt to fix workflow. + + When the workflow is triggered the test is automatically retried by the tracer a certain number of configurable times. When all retries pass, the test is automatically marked as fixed in Flaky Test Management. + Test runs are tagged with @test.test_management.attempt_to_fix_passed and @test.test_management.is_attempt_to_fix when the attempt to fix workflow is triggered. + example: I42TEO + type: string + codeowners: + description: The name of the test's code owners as inferred from the repository configuration. + example: ["@foo", "@bar"] items: - $ref: "#/components/schemas/ComponentGrid" + description: A code owner of the test as inferred from the repository configuration. + type: string type: array - description: - description: A human-readable description for the app. - type: string - favorite: - description: Whether the app is marked as a favorite by the current user. - type: boolean - name: - description: The name of the app. - type: string - queries: - description: An array of queries, such as external actions and state variables, that the app uses. + envs: + description: List of environments where this test has been flaky. + example: prod items: - $ref: "#/components/schemas/Query" + description: An environment name where this test has been flaky. + type: string type: array - rootInstanceName: - description: The name of the root component of the app. This must be a `grid` component that contains all other components. + first_flaked_branch: + description: The branch name where the test exhibited flakiness for the first time. + example: main type: string - tags: - description: A list of tags for the app, which can be used to filter apps. + first_flaked_sha: + description: The commit SHA where the test exhibited flakiness for the first time. + example: 0c6be03165b7f7ffe96e076ffb29afb2825616c3 + type: string + first_flaked_ts: + description: Unix timestamp when the test exhibited flakiness for the first time. + example: 1757688149 + format: int64 + type: integer + flaky_category: + description: The category of a flaky test. + example: Timeout + nullable: true + type: string + flaky_state: + $ref: "#/components/schemas/FlakyTestAttributesFlakyState" + history: + description: |- + Chronological history of status changes for this flaky test, ordered from most recent to oldest. + Includes state transitions like new -> quarantined -> fixed, along with the associated commit SHA when available. example: - - "service:webshop-backend" - - "team:webshop" + - commit_sha: abc123def456 + policy_id: ftm_policy.quarantine.failure_rate + policy_meta: + config: + failure_rate: 0.1 + required_runs: 100 + failure_rate: 0.25 + total_runs: 200 + status: quarantined + timestamp: 1704067200000 + - commit_sha: "" + policy_id: unknown + policy_meta: + status: new + timestamp: 1703980800000 items: - description: An individual tag for the app. - type: string + $ref: "#/components/schemas/FlakyTestHistory" type: array - type: object - GetAstRequest: - description: The request payload for parsing source code into an abstract syntax tree. - properties: - _authentication_token: - description: CSRF token for security, sent by browser-based clients. Ignored by the API when absent. + impact_level: + $ref: "#/components/schemas/FlakyTestImpactLevel" + nullable: true + impact_score: + description: A score from 0 to 1 indicating the impact of this flaky test, based on factors such as how often it fails and how many pipelines it affects. + example: 0.78 + format: double + maximum: 1 + minimum: 0 + nullable: true + type: number + last_flaked_branch: + description: The branch name where the test exhibited flakiness for the last time. + example: main type: string - data: - $ref: "#/components/schemas/GetAstRequestData" - required: - - data - type: object - GetAstRequestData: - description: The primary data object in the get-AST request. - properties: - attributes: - $ref: "#/components/schemas/GetAstRequestDataAttributes" - id: - description: An optional identifier for the get-AST request resource. + last_flaked_sha: + description: The commit SHA where the test exhibited flakiness for the last time. + example: 0c6be03165b7f7ffe96e076ffb29afb2825616c3 type: string - type: - $ref: "#/components/schemas/GetAstRequestDataType" - required: - - type - - attributes - type: object - GetAstRequestDataAttributes: - description: The attributes of the get-AST request, containing the source code to parse. - properties: - code: - description: The base64-encoded source code to parse into an abstract syntax tree. - example: aW1wb3J0IHN5cw== + last_flaked_ts: + description: Unix timestamp when the test exhibited flakiness for the last time. + example: 1757688149 + format: int64 + type: integer + module: + description: |- + The name of the test module. The definition of module changes slightly per language: + - In .NET, a test module groups every test that is run under the same unit test project. + - In Swift, a test module groups every test that is run for a given bundle. + - In JavaScript, the test modules map one-to-one to test sessions. + - In Java, a test module groups every test that is run by the same Maven Surefire/Failsafe or Gradle Test task execution. + - In Python, a test module groups every test that is run under the same `.py` file as part of a test suite, which is typically managed by a framework like `unittest` or `pytest`. + - In Ruby, a test module groups every test that is run within the same test file, which is typically managed by a framework like `RSpec` or `Minitest`. + example: TestModule + nullable: true type: string - file_encoding: - description: The encoding of the source code file (must be utf-8). - example: utf-8 + name: + description: The test name. A concise name for a test case. Defined in the test itself. + example: TestName type: string - language: - description: The programming language of the source code to parse. - example: python + pipeline_stats: + $ref: "#/components/schemas/FlakyTestPipelineStats" + nullable: true + services: + description: |- + List of test service names where this test has been flaky. + + A test service is a group of tests associated with a project or repository. It contains all the individual tests for your code, optionally organized into test suites, which are like folders for your tests. + example: ["foo", "bar"] + items: + description: A test service name where this test has been flaky. + type: string + type: array + suite: + description: The name of the test suite. A group of tests exercising the same unit of code depending on your language and testing framework. + example: TestSuite type: string - required: - - code - - file_encoding - - language + test_run_metadata: + $ref: "#/components/schemas/FlakyTestRunMetadata" + test_stats: + $ref: "#/components/schemas/FlakyTestStats" type: object - GetAstRequestDataType: - default: get_ast_request - description: Get AST request resource type. - enum: - - get_ast_request - example: get_ast_request + FlakyTestAttributesFlakyState: + description: The current state of the flaky test. + enum: [active, fixed, quarantined, disabled] + example: active type: string - x-enum-varnames: - - GET_AST_REQUEST - GetAstResponse: - description: The response payload containing the parsed abstract syntax tree. - properties: - data: - $ref: "#/components/schemas/GetAstResponseData" - required: - - data - type: object - GetAstResponseData: - description: The primary data object in the get-AST response. + x-enum-varnames: [ACTIVE, FIXED, QUARANTINED, DISABLED] + FlakyTestHistory: + description: A single history entry representing a status change for a flaky test. properties: - attributes: - $ref: "#/components/schemas/GetAstResponseDataAttributes" - id: - description: The identifier of the get-AST response resource, echoed from the request. - example: "" + commit_sha: + description: The commit SHA associated with this status change. Will be an empty string if the commit SHA is not available. + example: abc123def456 type: string - type: - $ref: "#/components/schemas/GetAstResponseDataType" - required: - - id - - type - - attributes - type: object - GetAstResponseDataAttributes: - description: The attributes of the get-AST response, containing the parsed abstract syntax tree. - properties: - result: - $ref: "#/components/schemas/AstNode" - description: The root node of the parsed abstract syntax tree, or null when the source code could not be parsed. + policy_id: + $ref: "#/components/schemas/FlakyTestHistoryPolicyId" + policy_meta: + $ref: "#/components/schemas/FlakyTestHistoryPolicyMeta" nullable: true + status: + description: The test status at this point in history. + example: quarantined + type: string + timestamp: + description: Unix timestamp in milliseconds when this status change occurred. + example: 1704067200000 + format: int64 + type: integer required: - - result + - status + - commit_sha + - timestamp type: object - GetAstResponseDataType: - default: get_ast_response - description: Get AST response resource type. + FlakyTestHistoryPolicyId: + description: The policy that triggered this status change. enum: - - get_ast_response - example: get_ast_response + - ftm_policy.manual + - ftm_policy.fixed + - ftm_policy.disable.failure_rate + - ftm_policy.disable.branch_flake + - ftm_policy.disable.days_active + - ftm_policy.quarantine.failure_rate + - ftm_policy.quarantine.branch_flake + - ftm_policy.quarantine.days_active + - unknown + example: ftm_policy.quarantine.failure_rate + nullable: false type: string x-enum-varnames: - - GET_AST_RESPONSE - GetBlueprintResponse: - description: The response for retrieving a single blueprint. - properties: - data: - $ref: "#/components/schemas/BlueprintData" - type: object - GetBlueprintsResponse: - description: The response for retrieving multiple blueprints. + - MANUAL + - FIXED + - DISABLE_FAILURE_RATE + - DISABLE_BRANCH_FLAKE + - DISABLE_DAYS_ACTIVE + - QUARANTINE_FAILURE_RATE + - QUARANTINE_BRANCH_FLAKE + - QUARANTINE_DAYS_ACTIVE + - UNKNOWN + FlakyTestHistoryPolicyMeta: + description: Metadata about the policy that triggered this status change. properties: - data: - description: An array of blueprints. + branches: + description: Branches where the test was flaky at the time of the status change. + example: ["main", "develop"] items: - $ref: "#/components/schemas/BlueprintData" + type: string + nullable: true type: array + config: + $ref: "#/components/schemas/FlakyTestHistoryPolicyMetaConfig" + nullable: true + days_active: + description: The number of days the test has been active at the time of the status change. + example: 15 + format: int32 + maximum: 2147483647 + nullable: true + type: integer + days_without_flake: + description: The number of days since the test last exhibited flakiness. + example: 30 + format: int32 + maximum: 2147483647 + nullable: true + type: integer + failure_rate: + description: The failure rate of the test at the time of the status change. + example: 0.25 + format: double + maximum: 1 + minimum: 0 + nullable: true + type: number + state: + description: The previous state of the test. + example: quarantined + nullable: true + type: string + total_runs: + description: The total number of test runs at the time of the status change. + example: 200 + format: int32 + maximum: 2147483647 + nullable: true + type: integer type: object - GetCustomFrameworkResponse: - description: Response object to get a custom framework. - properties: - data: - $ref: "#/components/schemas/FullCustomFrameworkData" - required: - - data - type: object - GetDataDeletionsResponseBody: - description: The response from the get data deletion requests endpoint. + FlakyTestHistoryPolicyMetaConfig: + description: Configuration parameters of the policy that triggered this status change. properties: - data: - description: The list of data deletion requests that matches the query. + branches: + description: The branches considered by the policy. + example: ["main"] items: - $ref: "#/components/schemas/DataDeletionResponseItem" + type: string + nullable: true type: array - meta: - $ref: "#/components/schemas/DataDeletionResponseMeta" - type: object - GetDataObservabilityMonitorRunStatusResponse: - description: The response for getting the status of a data observability monitor run. - properties: - data: - $ref: "#/components/schemas/GetDataObservabilityMonitorRunStatusResponseData" - required: - - data - type: object - GetDataObservabilityMonitorRunStatusResponseAttributes: - description: The attributes of a data observability monitor run status response. - properties: - error_message: - description: Error message describing why the monitor run failed. Only present when status is error. - example: "run completed but produced no metric data" + days_active: + description: The number of days a test must have been active for the policy to trigger. + example: 30 + format: int32 + maximum: 2147483647 + nullable: true + type: integer + failure_rate: + description: The failure rate threshold for the policy to trigger. + example: 0.7 + format: double + maximum: 1 + minimum: 0 + nullable: true + type: number + forget_branches: + description: Branches excluded from the policy evaluation. + example: ["release"] + items: + type: string + nullable: true + type: array + required_runs: + description: The minimum number of test runs required for the policy to trigger. + example: 100 + format: int32 + maximum: 2147483647 + nullable: true + type: integer + state: + description: The target state the policy transitions the test from. + example: quarantined + nullable: true type: string - status: - $ref: "#/components/schemas/DataObservabilityMonitorRunStatus" - required: - - status + test_services: + description: Test services excluded from the policy evaluation. + example: ["my-service"] + items: + type: string + nullable: true + type: array type: object - GetDataObservabilityMonitorRunStatusResponseData: - description: The data object for a data observability monitor run status response. + FlakyTestImpactLevel: + description: The impact level of the flaky test, derived from its impact score. + enum: [low, medium, high] + example: medium + type: string + x-enum-varnames: [LOW, MEDIUM, HIGH] + FlakyTestPipelineStats: + description: CI pipeline related statistics for the flaky test. This information is only available if test runs are associated with CI pipeline events from CI Visibility. properties: - attributes: - $ref: "#/components/schemas/GetDataObservabilityMonitorRunStatusResponseAttributes" - id: - description: The unique identifier of the monitor run. - example: "abc123def456" - type: string - type: - $ref: "#/components/schemas/DataObservabilityMonitorRunType" - required: - - id - - type - - attributes + failed_pipelines: + description: The number of pipelines that failed due to this test for the past 7 days. This is computed as the sum of failed CI pipeline events associated with test runs where the flaky test failed. + example: 319 + format: int64 + nullable: true + type: integer + total_lost_time_ms: + description: The total time lost by CI pipelines due to this flaky test in milliseconds. This is computed as the sum of the duration of failed CI pipeline events associated with test runs where the flaky test failed. + example: 1527550000 + format: int64 + nullable: true + type: integer type: object - GetDeviceAttributes: - description: The device attributes + FlakyTestRunMetadata: + description: Metadata about the latest failed test run of the flaky test. properties: - description: - description: A description of the device. - example: a device monitored with NDM - type: string - device_type: - description: The type of the device. - example: other - type: string - integration: - description: The integration of the device. - example: snmp - type: string - ip_address: - description: The IP address of the device. - example: 1.2.3.4 - type: string - location: - description: The location of the device. - example: paris - type: string - model: - description: The model of the device. - example: xx-123 - type: string - name: - description: The name of the device. - example: example device - type: string - os_hostname: - description: The operating system hostname of the device. - example: 1.0.2 - type: string - os_name: - description: The operating system name of the device. - example: example OS - type: string - os_version: - description: The operating system version of the device. - example: 1.0.2 - type: string - ping_status: - description: The ping status of the device. - example: unmonitored - type: string - product_name: - description: The product name of the device. - example: example device - type: string - serial_number: - description: The serial number of the device. - example: X12345 - type: string - status: - description: The status of the device. - example: ok - type: string - subnet: - description: The subnet of the device. - example: 1.2.3.4/24 + duration_ms: + description: The duration of the test run in milliseconds. + example: 27398 + format: int64 + nullable: true + type: integer + error_message: + description: The error message from the test failure. + example: "Expecting actual not to be empty" + nullable: true type: string - sys_object_id: - description: The device `sys_object_id`. - example: 1.3.6.1.4.1.99999 + error_stack: + description: The stack trace from the test failure. + example: "Traceback (most recent call last):\n File \"test_foo.py\", line 10, in test_foo\n assert actual == expected\nAssertionError: Expecting actual not to be empty" + nullable: true type: string - tags: - description: A list of tags associated with the device. - example: ["device_ip:1.2.3.4", "device_id:example:1.2.3.4"] - items: - description: A tag string in `key:value` format. - type: string - type: array - vendor: - description: The vendor of the device. - example: example vendor + source_end: + description: The line number where the test ends in the source file. + example: 20 + format: int64 + nullable: true + type: integer + source_file: + description: The source file where the test is defined. + example: test_foo.py + nullable: true type: string - version: - description: The version of the device. - example: 1.2.3 + source_start: + description: The line number where the test starts in the source file. + example: 10 + format: int64 + nullable: true + type: integer + type: object + FlakyTestStats: + description: Test statistics for the flaky test. + properties: + failure_rate_pct: + description: The failure rate percentage of the test for the past 7 days. This is the number of failed test runs divided by the total number of test runs (excluding skipped test runs). + example: 0.1 + format: double + nullable: true + type: number + type: object + FlakyTestType: + description: The type of the flaky test from Flaky Test Management. + enum: [flaky_test] + type: string + x-enum-varnames: [FLAKY_TEST] + FlakyTestsPagination: + description: Pagination metadata for flaky tests. + properties: + next_page: + description: Cursor for the next page of results. + nullable: true type: string type: object - GetDeviceData: - description: Get device response data. + FlakyTestsSearchFilter: + description: Search filter settings. properties: - attributes: - $ref: "#/components/schemas/GetDeviceAttributes" - id: - description: The device ID - example: example:1.2.3.4 + include_history: + default: false + description: |- + Whether to include the status change history for each flaky test in the response. + When set to true, each test will include a `history` array with chronological status changes. + Defaults to false. + example: true + type: boolean + query: + default: "*" + description: |- + Search query following log syntax used to filter flaky tests, same as on Flaky Tests Management UI. The supported search keys are: + - `flaky_test_state` + - `flaky_test_category` + - `@test.name` + - `@test.suite` + - `@test.module` + - `@test.service` + - `@git.repository.id_v2` + - `@git.branch` + - `@test.codeowners` + - `env` + - `fingerprint_fqn` + + Use `fingerprint_fqn` to filter by a test's stable Fingerprint FQN (the same value as the test's `id`). + example: 'flaky_test_state:active @git.repository.id_v2:"github.com/datadog/shopist"' type: string - type: - description: The type of the resource. The value should always be device. + type: object + FlakyTestsSearchPageOptions: + description: Pagination attributes for listing flaky tests. + properties: + cursor: + description: |- + List following results with a cursor provided in the previous request. + example: "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" type: string + limit: + default: 10 + description: Maximum number of flaky tests in the response. + example: 25 + format: int64 + maximum: 1000 + minimum: 1 + type: integer type: object - GetDeviceResponse: - description: The `GetDevice` operation's response. + FlakyTestsSearchRequest: + description: The request for a flaky tests search. properties: data: - $ref: "#/components/schemas/GetDeviceData" + $ref: "#/components/schemas/FlakyTestsSearchRequestData" type: object - GetFindingResponse: - description: The expected response schema when getting a finding. + FlakyTestsSearchRequestAttributes: + description: Attributes for the flaky tests search request. properties: - data: - $ref: "#/components/schemas/DetailedFinding" - required: - - data + filter: + $ref: "#/components/schemas/FlakyTestsSearchFilter" + page: + $ref: "#/components/schemas/FlakyTestsSearchPageOptions" + sort: + $ref: "#/components/schemas/FlakyTestsSearchSort" type: object - GetInterfacesData: - description: The interfaces list data + FlakyTestsSearchRequestData: + description: The JSON:API data for flaky tests search request. properties: attributes: - $ref: "#/components/schemas/InterfaceAttributes" - id: - description: The interface ID - example: example:1.2.3.4:99 - type: string + $ref: "#/components/schemas/FlakyTestsSearchRequestAttributes" type: - description: The type of the resource. The value should always be interface. - type: string + $ref: "#/components/schemas/FlakyTestsSearchRequestDataType" type: object - GetInterfacesResponse: - description: The `GetInterfaces` operation's response. + FlakyTestsSearchRequestDataType: + description: The definition of `FlakyTestsSearchRequestDataType` object. + enum: + - search_flaky_tests_request + type: string + x-enum-varnames: + - SEARCH_FLAKY_TESTS_REQUEST + FlakyTestsSearchResponse: + description: Response object with flaky tests matching the search request. properties: data: - description: Get Interfaces response + description: Array of flaky tests matching the request. items: - $ref: "#/components/schemas/GetInterfacesData" + $ref: "#/components/schemas/FlakyTest" type: array + meta: + $ref: "#/components/schemas/FlakyTestsSearchResponseMeta" type: object - GetInvestigationResponse: - description: Response for a single Bits AI investigation. + FlakyTestsSearchResponseMeta: + description: Metadata for the flaky tests search response. properties: - data: - $ref: "#/components/schemas/GetInvestigationResponseData" - links: - $ref: "#/components/schemas/GetInvestigationResponseLinks" - required: - - data - - links + pagination: + $ref: "#/components/schemas/FlakyTestsPagination" type: object - GetInvestigationResponseData: - description: Data for the get investigation response. + FlakyTestsSearchSort: + description: Parameter for sorting flaky test results. The default sort is by ascending Fully Qualified Name (FQN). The FQN is the concatenation of the test module, suite, and name. + enum: + - fqn + - -fqn + - first_flaked + - -first_flaked + - last_flaked + - -last_flaked + - failure_rate + - -failure_rate + - pipelines_failed + - -pipelines_failed + - pipelines_duration_lost + - -pipelines_duration_lost + example: failure_rate + type: string + x-enum-varnames: + - FQN_ASCENDING + - FQN_DESCENDING + - FIRST_FLAKED_ASCENDING + - FIRST_FLAKED_DESCENDING + - LAST_FLAKED_ASCENDING + - LAST_FLAKED_DESCENDING + - FAILURE_RATE_ASCENDING + - FAILURE_RATE_DESCENDING + - PIPELINES_FAILED_ASCENDING + - PIPELINES_FAILED_DESCENDING + - PIPELINES_DURATION_LOST_ASCENDING + - PIPELINES_DURATION_LOST_DESCENDING + FleetAgentAttributesTagsItems: + description: A key-value pair representing a tag associated with a Datadog Agent. properties: - attributes: - $ref: "#/components/schemas/GetInvestigationResponseDataAttributes" - id: - description: The unique identifier of the investigation. - example: "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d" + key: + description: The tag key. + type: string + value: + description: The tag value. type: string - type: - $ref: "#/components/schemas/InvestigationType" - required: - - id - - type - - attributes type: object - GetInvestigationResponseDataAttributes: - description: Attributes of the investigation. + FleetAgentConfigurationFilesV2: + description: Configuration details for an agent, organized by configuration layer. properties: - conclusions: - description: The conclusions drawn from the investigation. + agent_configuration: + $ref: "#/components/schemas/FleetConfigurationLayer" + application_monitoring_configuration: + $ref: "#/components/schemas/FleetConfigurationLayer" + otel_collectors_configuration: + description: >- + Configuration for OpenTelemetry collectors associated with the agent. Present only when the agent has associated OpenTelemetry collectors. items: - $ref: "#/components/schemas/InvestigationConclusion" + $ref: "#/components/schemas/FleetOtelCollectorConfigurationV2" type: array - status: - description: The current status of the investigation. - example: "conclusive" - type: string - title: - description: The title of the investigation. - example: "Monitor alert investigation for web-server-01" - type: string - required: - - title - - status - - conclusions + security_agent_configuration: + $ref: "#/components/schemas/FleetConfigurationLayer" + system_probe_configuration: + $ref: "#/components/schemas/FleetConfigurationLayer" type: object - GetInvestigationResponseLinks: - description: Links related to the investigation. + FleetAgentDetailV2: + description: Detailed information about a specific Datadog Agent. properties: - self: - description: The URL to the investigation in the Datadog app. - example: "https://app.datadoghq.com/bits-ai/investigations/a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d" + attributes: + $ref: "#/components/schemas/FleetAgentDetailV2Attributes" + id: + description: The unique agent key identifier. + example: "a1b2c3d4e5f67890a1b2c3d4e5f67890" type: string + type: + $ref: "#/components/schemas/FleetAgentV2ResourceType" required: - - self + - id + - type + - attributes type: object - GetIoCIndicatorResponse: - description: Response for the get indicator of compromise endpoint. + FleetAgentDetailV2Attributes: + description: Attributes for the v2 agent detail response. properties: - data: - $ref: "#/components/schemas/GetIoCIndicatorResponseData" + agent_infos: + $ref: "#/components/schemas/FleetAgentInfoDetailsV2" + configuration_files: + $ref: "#/components/schemas/FleetAgentConfigurationFilesV2" + description: Configuration file details, present only when `configuration_files` is included in the `include` query parameter. + integrations: + $ref: "#/components/schemas/FleetIntegrationsByStatusV2" + description: Integration details, present only when `integrations` is included in the `include` query parameter. + required: + - agent_infos type: object - GetIoCIndicatorResponseAttributes: - description: Attributes of the get indicator response. + FleetAgentDetailV2Response: + description: Response containing detailed information about a specific Datadog Agent. properties: data: - $ref: "#/components/schemas/IoCIndicatorDetailed" + $ref: "#/components/schemas/FleetAgentDetailV2" + required: + - data type: object - GetIoCIndicatorResponseData: - description: IoC indicator response data object. + FleetAgentInfoDetailsV2: + description: Detailed information about a Datadog Agent. properties: - attributes: - $ref: "#/components/schemas/GetIoCIndicatorResponseAttributes" - id: - description: Unique identifier for the response. + active_ha_agent: + description: The currently active agent in the high-availability group. type: string - type: - description: Response type identifier. + agent_version: + description: The Datadog Agent version. + example: "7.50.0" + type: string + api_key_name: + description: The API key name (if available and not redacted). + example: "Production API Key" + type: string + api_key_uuid: + description: The API key UUID. + example: "a1b2c3d4-e5f6-4321-a123-123456789abc" + type: string + cloud_provider: + description: The cloud provider where the agent is running. + example: "aws" + type: string + cluster_name: + description: Kubernetes cluster name (if applicable). + type: string + config_id: + description: The configuration identifier applied to the agent. + type: string + datadog_agent_key: + description: The unique agent key identifier. + example: "a1b2c3d4e5f67890a1b2c3d4e5f67890" + type: string + datadog_data_center: + description: The Datadog data center the agent reports to. + example: "us1" + type: string + ecs_fargate_cluster_name: + description: The ECS Fargate cluster name, if the agent runs in an ECS Fargate environment. + example: "my-ecs-cluster" + type: string + ecs_fargate_task_arn: + description: The ECS Fargate task ARN, if the agent runs in an ECS Fargate environment. + example: "arn:aws:ecs:us-east-1:123456789012:task/my-cluster/abc123" + type: string + enabled_products: + description: Datadog products enabled on the agent. + items: + description: A Datadog product enabled on the agent. + type: string + type: array + env: + description: Environments the agent is reporting from. + items: + description: An environment name the agent is reporting from. + type: string + type: array + first_seen_at: + description: Timestamp when the agent was first seen. + format: int64 + type: integer + ha_agent_hosts: + description: Hosts participating in the agent's high-availability group. + items: + description: A hostname participating in the high-availability group. + type: string + type: array + ha_agent_state: + description: The high-availability state of the agent. + type: string + hostname: + description: The hostname of the agent. + example: "my-hostname" + type: string + hostname_aliases: + description: Alternative hostname list for the agent. + items: + description: An alternative hostname alias for the agent. + type: string + type: array + install_method_installer_version: + description: The version of the installer used. + example: "1.2.3" + type: string + install_method_tool: + description: The tool used to install the agent. + example: "chef" + type: string + ip_addresses: + description: IP addresses of the agent. + items: + description: An IP address of the agent. + type: string + type: array + is_single_step_instrumentation_enabled: + description: Whether single-step instrumentation is enabled. + type: boolean + last_restart_at: + description: Timestamp of the last agent restart. + format: int64 + type: integer + os: + description: The operating system. + example: "linux" + type: string + os_version: + description: The operating system version. + example: "Ubuntu 20.04" + type: string + otel_collectors: + description: OpenTelemetry collectors associated with the agent (if applicable). + items: + $ref: "#/components/schemas/FleetOtelCollector" + type: array + pod_name: + description: Kubernetes pod name (if applicable). + type: string + preferred_ha_active_agent: + description: The preferred active agent in the high-availability group. + type: string + python_version: + description: The Python version used by the agent. + example: "3.9.5" + type: string + region: + description: Regions where the agent is running. + items: + description: A region where the agent is running. + type: string + type: array + remote_agent_management: + description: Remote agent management status. + example: "enabled" + type: string + remote_config_status: + description: Remote configuration status. + example: "connected" + type: string + services: + description: Services running on the agent. + items: + description: A service name running on the agent. + type: string + type: array + support_agent_upgrade: + description: Whether the agent supports remote agent upgrade. + type: boolean + tags: + description: Tags associated with the agent. + items: + description: A tag string assigned to the agent. + type: string + type: array + team: + description: Team associated with the agent. type: string type: object - GetIssueIncludeQueryParameterItem: - description: Relationship object that should be included in the response. - enum: - - assignee - - case - - team_owners - example: "case" - type: string - x-enum-varnames: - - ASSIGNEE - - CASE - - TEAM_OWNERS - GetMappingResponse: - description: Response containing the entity attribute mapping configuration including all available attributes and their properties. - example: - data: - attributes: - attributes: - - attribute: user_id - description: Unique user identifier - display_name: User ID - groups: - - Identity - is_custom: false - type: string - - attribute: user_email - description: User email address - display_name: Email Address - groups: - - Identity - - Contact - is_custom: false - type: string - - attribute: first_country_code - description: The ISO code of the country for the user's first session - display_name: First Country Code - groups: - - Geography - is_custom: false - type: string - - attribute: "@customer_tier" - description: Customer subscription tier - display_name: Customer Tier - groups: - - Business - is_custom: true - type: string - id: get_mappings_response - type: get_mappings_response - properties: - data: - $ref: "#/components/schemas/GetMappingResponseData" - type: object - GetMappingResponseData: - description: The data object containing the resource type and attributes for the get mapping response. + FleetAgentV2: + description: A Datadog Agent resource in the v2 list response. properties: attributes: - $ref: "#/components/schemas/GetMappingResponseDataAttributes" + $ref: "#/components/schemas/FleetAgentV2Attributes" id: - description: Unique identifier for the get mapping response resource. + description: The unique agent key identifier. + example: "my-agent-hostname" type: string type: - $ref: "#/components/schemas/GetMappingResponseDataType" + $ref: "#/components/schemas/FleetAgentV2ResourceType" required: + - id - type + - attributes type: object - GetMappingResponseDataAttributes: - description: Attributes of the get mapping response, containing the list of configured entity attributes. + FleetAgentV2Attributes: + description: Attributes of a Datadog Agent in the v2 list response. properties: - attributes: - description: The list of entity attributes and their mapping configurations. + agent_version: + description: The Datadog Agent version. + example: "7.50.0" + type: string + api_key_name: + description: The name of the API key used by the agent, if available and not redacted. + example: "Production API Key" + type: string + api_key_uuid: + description: The UUID of the API key used by the agent. + example: "a1b2c3d4-e5f6-4321-a123-123456789abc" + type: string + cloud_provider: + description: The cloud provider where the agent is running. + example: "aws" + type: string + cluster_name: + description: The Kubernetes cluster name, if the agent runs in a cluster. + example: "production-us-east-1" + type: string + datadog_data_center: + description: The Datadog data center the agent reports to. + example: "us1" + type: string + ecs_fargate_cluster_name: + description: The ECS Fargate cluster name, if the agent runs in an ECS Fargate environment. + example: "my-ecs-cluster" + type: string + ecs_fargate_task_arn: + description: The ECS Fargate task ARN, if the agent runs in an ECS Fargate environment. + example: "arn:aws:ecs:us-east-1:123456789012:task/my-cluster/abc123" + type: string + enabled_products: + description: Datadog products enabled on the agent. items: - $ref: "#/components/schemas/GetMappingResponseDataAttributesAttributesItems" + description: A Datadog product enabled on the agent. + type: string type: array - type: object - GetMappingResponseDataAttributesAttributesItems: - description: Details of a single entity attribute including its mapping configuration and metadata. - properties: - attribute: - description: The attribute identifier as used in the entity data model. + env: + description: Environments the agent is reporting from. + items: + description: An environment name the agent is reporting from. + type: string + type: array + first_seen_at: + description: Unix timestamp when the agent was first seen. + example: 1699900000 + format: int64 + type: integer + fleet_policies: + description: Identifiers of fleet policies applied to the agent. + items: + description: A fleet policy identifier applied to the agent. + type: string + type: array + hostname: + description: The hostname of the agent. + example: "my-hostname" type: string - description: - description: Human-readable explanation of what the attribute represents. + instrumentation_error_counts: + description: >- + Number of instrumentation errors on the agent. Absent from the response when the count is zero. + example: 3 + format: int64 + type: integer + instrumentation_status: + $ref: "#/components/schemas/FleetAgentV2AttributesInstrumentationStatus" + integrations: + description: Names of integrations configured on the agent. + items: + description: An integration name configured on the agent. + type: string + type: array + ip_addresses: + description: IP addresses of the agent host. + items: + description: An IP address of the agent host. + type: string + type: array + is_single_step_instrumentation_enabled: + description: Whether single-step instrumentation is enabled on the agent. + example: true + type: boolean + last_restart_at: + description: Unix timestamp of the last agent restart. + example: 1699999999 + format: int64 + type: integer + os: + description: The operating system of the host. + example: "linux" type: string - display_name: - description: The human-readable label for the attribute shown in the UI. + otel_collector_deployment_types: + description: OpenTelemetry collector deployment types associated with the agent. + items: + description: An OpenTelemetry collector deployment type. + type: string + type: array + otel_collector_distributions: + description: OpenTelemetry collector distributions associated with the agent. + items: + description: An OpenTelemetry collector distribution. + type: string + type: array + otel_collector_versions: + description: All OpenTelemetry collector versions associated with the agent. + items: + description: An OpenTelemetry collector version string. + type: string + type: array + otel_resource_attributes: + description: OpenTelemetry resource attributes reported by the agent. + items: + description: An OpenTelemetry resource attribute. + type: string + type: array + pod_name: + description: The Kubernetes pod name, if the agent runs as a pod. + example: "datadog-agent-abc123" type: string - groups: - description: List of group labels used to categorize the attribute. + remote_agent_management: + description: The remote agent management status. + example: "enabled" + type: string + remote_config_status: + description: The remote configuration connection status of the agent. + example: "connected" + type: string + services: + description: Services running on the agent. items: - description: A group label name for categorizing the attribute. + description: A service name running on the agent. type: string type: array - is_custom: - description: Whether this attribute is a custom user-defined attribute rather than a built-in one. - type: boolean - type: - description: The data type of the attribute (for example, string or number). + tags: + description: >- + Tags associated with the agent. Returned as an empty array when the agent has no tags. + items: + $ref: "#/components/schemas/FleetAgentAttributesTagsItems" + type: array + team: + description: The team associated with the agent. + example: "platform" type: string type: object - GetMappingResponseDataType: - default: get_mappings_response - description: Get mappings response resource type. + FleetAgentV2AttributesInstrumentationStatus: + description: The single-step instrumentation status of the Agent. enum: - - get_mappings_response - example: get_mappings_response + - success + - failure + example: "success" type: string x-enum-varnames: - - GET_MAPPINGS_RESPONSE - GetMultipleRulesetsRequest: - description: The request payload for retrieving rules for multiple rulesets in a single batch call. - properties: - _authentication_token: - description: CSRF token for security, sent by browser-based clients. Ignored by the API when absent. - type: string - data: - $ref: "#/components/schemas/GetMultipleRulesetsRequestData" - type: object - GetMultipleRulesetsRequestData: - description: The primary data object in the get-multiple-rulesets request, containing request attributes and resource type. + - SUCCESS + - FAILURE + FleetAgentV2ResourceType: + default: agent + description: The type of the agent resource. + enum: + - agent + example: agent + type: string + x-enum-varnames: + - AGENT + FleetAgentVersionV2: + description: An available Datadog Agent version resource. properties: attributes: - $ref: "#/components/schemas/GetMultipleRulesetsRequestDataAttributes" + $ref: "#/components/schemas/FleetAgentVersionV2Attributes" id: - description: An optional identifier for the get-multiple-rulesets request resource. + description: The agent version string used as the unique identifier. + example: "7.81.1" type: string type: - $ref: "#/components/schemas/GetMultipleRulesetsRequestDataType" + $ref: "#/components/schemas/FleetAgentVersionV2ResourceType" required: + - id - type + - attributes type: object - GetMultipleRulesetsRequestDataAttributes: - description: The request attributes for fetching multiple rulesets, specifying which rulesets to retrieve and what data to include. + FleetAgentVersionV2Attributes: + description: Attributes of an available Datadog Agent version. properties: - include_testing_rules: - description: When true, rules that are available in testing mode are included in the response. - type: boolean - include_tests: - description: When true, test cases associated with each rule are included in the response. - type: boolean - rulesets: - description: The list of ruleset names to retrieve. - items: - description: The name of a ruleset to include in the batch request. - type: string - type: array + version: + description: The agent version string. + example: "7.81.1" + type: string type: object - GetMultipleRulesetsRequestDataType: - default: get_multiple_rulesets_request - description: Get multiple rulesets request resource type. + FleetAgentVersionV2ResourceType: + default: agent_version + description: The type of the agent version resource. enum: - - get_multiple_rulesets_request - example: get_multiple_rulesets_request + - agent_version + example: agent_version type: string x-enum-varnames: - - GET_MULTIPLE_RULESETS_REQUEST - GetMultipleRulesetsResponse: - description: The response payload for the get-multiple-rulesets endpoint, containing the requested rulesets and their rules. + - AGENT_VERSION + FleetAgentVersionsV2Page: + description: Pagination details for the v2 list of agent versions. + properties: + total_count: + description: Total number of available agent versions. + example: 10 + format: int64 + type: integer + type: object + FleetAgentVersionsV2Response: + description: Response containing a list of available Datadog Agent versions. properties: data: - $ref: "#/components/schemas/GetMultipleRulesetsResponseData" + description: Array of available agent versions. + items: + $ref: "#/components/schemas/FleetAgentVersionV2" + type: array + meta: + $ref: "#/components/schemas/FleetAgentVersionsV2ResponseMeta" required: - data type: object - GetMultipleRulesetsResponseData: - description: The primary data object in the get-multiple-rulesets response, containing the response attributes and resource type. + FleetAgentVersionsV2ResponseMeta: + description: Metadata for the v2 list of agent versions. properties: - attributes: - $ref: "#/components/schemas/GetMultipleRulesetsResponseDataAttributes" - id: - description: The unique identifier of the get-multiple-rulesets response resource, echoed from the request. - example: "" - type: string - type: - $ref: "#/components/schemas/GetMultipleRulesetsResponseDataType" - required: - - id - - type - - attributes + page: + $ref: "#/components/schemas/FleetAgentVersionsV2Page" type: object - GetMultipleRulesetsResponseDataAttributes: - description: The attributes of the get-multiple-rulesets response, containing the list of requested rulesets. + FleetAgentsV2Page: + description: Pagination details for the v2 list of agents. properties: - rulesets: - description: The list of rulesets returned in response to the batch request. + total_count: + description: Total number of agents in the fleet, regardless of any filter. + example: 500 + format: int64 + type: integer + total_filtered_count: + description: Total number of agents matching the current filter criteria. + example: 42 + format: int64 + type: integer + type: object + FleetAgentsV2Response: + description: Response containing a paginated list of Datadog Agents. + properties: + data: + description: Array of agents matching the query criteria. items: - $ref: "#/components/schemas/GetMultipleRulesetsResponseDataAttributesRulesetsItems" + $ref: "#/components/schemas/FleetAgentV2" type: array + meta: + $ref: "#/components/schemas/FleetAgentsV2ResponseMeta" required: - - rulesets + - data type: object - GetMultipleRulesetsResponseDataAttributesRulesetsItems: - description: A ruleset returned in the response, containing its metadata and associated rules. + FleetAgentsV2ResponseMeta: + description: Metadata for the v2 list of agents, including pagination information. properties: - description: - description: A detailed description of the ruleset's purpose and the types of issues it targets. - example: "" + page: + $ref: "#/components/schemas/FleetAgentsV2Page" + type: object + FleetConfigurationFileV2: + description: A configuration file for an integration. + properties: + agent_hash: + description: Hash of the configuration file as seen by the agent. type: string - id: - description: The unique identifier of the ruleset, which is the same as its name. - example: "" + file_content: + description: The raw content of the configuration file. type: string - name: - description: The unique name of the ruleset. - example: "" + file_path: + description: Path to the configuration file. + example: "/conf.d/postgres.d/postgres.yaml" type: string - rules: - description: The list of static analysis rules included in this ruleset. - items: - $ref: "#/components/schemas/GetMultipleRulesetsResponseDataAttributesRulesetsItemsRulesItems" - type: array - short_description: - description: A brief summary of the ruleset, suitable for display in listings. - example: "" + filename: + description: Name of the configuration file. + example: "postgres.yaml" type: string - required: - - id - - name - - short_description - - description - - rules type: object - GetMultipleRulesetsResponseDataAttributesRulesetsItemsDataType: - default: rulesets - description: Rulesets resource type. - enum: - - rulesets - example: rulesets - type: string - x-enum-varnames: - - RULESETS - GetMultipleRulesetsResponseDataAttributesRulesetsItemsRulesItems: - description: A static analysis rule within a ruleset, including its definition, metadata, and associated test cases. + FleetConfigurationLayer: + description: Configuration information organized by layers. properties: - arguments: - description: The list of configurable arguments accepted by this rule. - items: - $ref: "#/components/schemas/GetMultipleRulesetsResponseDataAttributesRulesetsItemsRulesItemsArgumentsItems" - type: array - category: - description: The category classifying the type of issue this rule detects (e.g., security, style, performance). - example: "" - type: string - checksum: - description: A checksum of the rule definition used to detect changes. - example: "" - type: string - code: - description: The rule implementation code used by the static analysis engine. - example: "" + compiled_configuration: + description: The final compiled configuration. type: string - created_at: - description: The date and time when the rule was created. - example: "" - format: date-time + env_configuration: + description: Configuration from environment variables. type: string - created_by: - description: The identifier of the user or system that created the rule. - example: "" + file_configuration: + description: Configuration from files. type: string - cve: - description: The CVE identifier associated with the vulnerability this rule detects, if applicable. + remote_configuration: + description: Remote configuration settings. type: string - cwe: - description: The CWE identifier associated with the weakness category this rule detects, if applicable. - type: string - description: - description: A detailed explanation of what the rule detects and why it matters. - example: "" - type: string - documentation_url: - description: A URL pointing to additional documentation for this rule. - type: string - entity_checked: - description: The code entity type (e.g., function, class, variable) that this rule inspects. + runtime_configuration: + description: Runtime configuration. type: string + type: object + FleetDeployment: + description: A deployment that defines automated configuration changes for a fleet of hosts. + properties: + attributes: + $ref: "#/components/schemas/FleetDeploymentAttributes" id: - description: The unique identifier of the rule, which is the same as its name. - example: "" - type: string - is_published: - description: Indicates whether the rule is publicly published and available to all users. - example: false - type: boolean - is_testing: - description: Indicates whether the rule is in testing mode and not yet promoted to production. - example: false - type: boolean - language: - description: The programming language this rule applies to. - example: "" - type: string - last_updated_at: - description: The date and time when the rule was last modified. - example: "" - format: date-time - type: string - last_updated_by: - description: The identifier of the user or system that last updated the rule. - example: "" - type: string - name: - description: The unique name identifying this rule within its ruleset. - example: "" - type: string - regex: - description: A regular expression pattern used by the rule for pattern-based detection. - type: string - severity: - description: The severity level of findings produced by this rule (e.g., ERROR, WARNING, NOTICE). - example: "" - type: string - short_description: - description: A brief summary of what the rule detects, suitable for display in listings. - example: "" - type: string - should_use_ai_fix: - description: Indicates whether an AI-generated fix suggestion should be offered for findings from this rule. - example: false - type: boolean - tests: - description: The list of test cases used to validate the rule's behavior. - items: - $ref: "#/components/schemas/GetMultipleRulesetsResponseDataAttributesRulesetsItemsRulesItemsTestsItems" - type: array - tree_sitter_query: - description: The Tree-sitter query expression used by the rule to match code patterns in the AST. + description: Unique identifier for the deployment. + example: "aeadc05e-98a8-11ec-ac2c-da7ad0900001" type: string type: - description: The rule type indicating the detection mechanism used (e.g., tree_sitter, regex). - example: "" - type: string + $ref: "#/components/schemas/FleetDeploymentResourceType" required: - id - - name - - short_description - - description - - code - - language - type - - checksum - - created_at - - created_by - - last_updated_at - - last_updated_by - - severity - - category - - arguments - - tests - - is_published - - should_use_ai_fix - - is_testing - type: object - GetMultipleRulesetsResponseDataAttributesRulesetsItemsRulesItemsArgumentsItems: - description: An argument parameter for a static analysis rule, with a name and description. - properties: - description: - description: A human-readable explanation of the argument's purpose and accepted values. - type: string - name: - description: The name of the rule argument. - type: string + - attributes type: object - GetMultipleRulesetsResponseDataAttributesRulesetsItemsRulesItemsTestsItems: - description: A test case associated with a static analysis rule, containing the source code and expected annotation count. + FleetDeploymentAttributes: + description: Attributes of a deployment in the response. properties: - annotation_count: - description: The expected number of annotations (findings) the rule should produce when run against the test code. + config_operations: + description: Ordered list of configuration file operations to perform on the target hosts. + items: + $ref: "#/components/schemas/FleetDeploymentOperation" + type: array + estimated_end_time_unix: + description: Estimated completion time of the deployment as a Unix timestamp (seconds since epoch). + example: 1699999999 format: int64 - maximum: 65535 - minimum: 0 type: integer - code: - description: The source code snippet used as input for the rule test. + filter_query: + description: Query used to filter and select target hosts for the deployment. Uses the Datadog query syntax. + example: "env:prod AND service:web" type: string - filename: - description: The filename associated with the test code snippet. + high_level_status: + description: |- + Current high-level status of the deployment (for example, "pending", "running", + "completed", "failed"). + example: "pending" type: string + hosts: + description: |- + Paginated list of hosts in this deployment with their individual statuses. Only included + when fetching a single deployment by ID. Use the `limit` and `page` query parameters to + navigate through pages. Pagination metadata is included in the response `meta.hosts` field. + items: + $ref: "#/components/schemas/FleetDeploymentHost" + type: array + packages: + description: List of packages to deploy to target hosts. Present only for package upgrade deployments. + items: + $ref: "#/components/schemas/FleetDeploymentPackage" + type: array + total_hosts: + description: Total number of hosts targeted by this deployment. + example: 42 + format: int64 + type: integer type: object - GetMultipleRulesetsResponseDataType: - default: get_multiple_rulesets_response - description: Get multiple rulesets response resource type. - enum: - - get_multiple_rulesets_response - example: get_multiple_rulesets_response - type: string - x-enum-varnames: - - GET_MULTIPLE_RULESETS_RESPONSE - GetResourceEvaluationFiltersResponse: - description: The definition of `GetResourceEvaluationFiltersResponse` object. - properties: - data: - $ref: "#/components/schemas/GetResourceEvaluationFiltersResponseData" - required: - - data - type: object - GetResourceEvaluationFiltersResponseData: - description: The definition of `GetResourceFilterResponseData` object. + FleetDeploymentConfigureV2Attributes: + description: Attributes for creating a new v2 configuration deployment. properties: - attributes: - $ref: "#/components/schemas/ResourceFilterAttributes" - id: - description: The `data` `id`. - example: csm_resource_filter + config_operations: + description: Ordered list of configuration file operations to perform on the target hosts. + items: + $ref: "#/components/schemas/FleetDeploymentOperation" + type: array + dry_run: + description: |- + Set to `true` to validate the configuration and resolve target hosts and packages + without deploying anything. Returns a 200 with the validation result instead of + creating and starting a real deployment. + example: false + type: boolean + filter_query: + description: Query used to filter and select target hosts for the deployment. Uses the Datadog query syntax. + example: "env:prod AND service:web" type: string - type: - $ref: "#/components/schemas/ResourceFilterRequestType" + target_packages: + description: |- + List of packages and their target versions to additionally deploy alongside + the configuration change. + items: + $ref: "#/components/schemas/FleetDeploymentConfigureV2Package" + type: array + required: + - filter_query + - config_operations type: object - GetRuleVersionHistoryData: - description: Data for the rule version history. + FleetDeploymentConfigureV2Create: + description: Data for creating a new v2 configuration deployment. properties: attributes: - $ref: "#/components/schemas/RuleVersionHistory" - id: - description: ID of the rule. - type: string + $ref: "#/components/schemas/FleetDeploymentConfigureV2Attributes" type: - $ref: "#/components/schemas/GetRuleVersionHistoryDataType" - type: object - GetRuleVersionHistoryDataType: - description: Type of data. - enum: - - GetRuleVersionHistoryResponse - type: string - x-enum-varnames: - - GETRULEVERSIONHISTORYRESPONSE - GetRuleVersionHistoryResponse: - description: Response for getting the rule version history. - properties: - data: - $ref: "#/components/schemas/GetRuleVersionHistoryData" + $ref: "#/components/schemas/FleetDeploymentResourceType" + required: + - type + - attributes type: object - GetSBOMResponse: - description: The expected response schema when getting an SBOM. + FleetDeploymentConfigureV2CreateRequest: + description: Request payload for creating a new v2 configuration deployment. properties: data: - $ref: "#/components/schemas/SBOM" + $ref: "#/components/schemas/FleetDeploymentConfigureV2Create" required: - data type: object - GetSuppressionVersionHistoryData: - description: Data for the suppression version history. + FleetDeploymentConfigureV2DryRun: + description: The result of a configuration deployment dry run. properties: attributes: - $ref: "#/components/schemas/SuppressionVersionHistory" + $ref: "#/components/schemas/FleetDeploymentConfigureV2DryRunAttributes" id: - description: ID of the suppression. + description: |- + Always `"dry-run"` for a dry-run response. Does not identify a real deployment + and cannot be used to fetch a deployment by ID. + example: "dry-run" type: string type: - $ref: "#/components/schemas/GetSuppressionVersionHistoryDataType" + $ref: "#/components/schemas/FleetDeploymentResourceType" + required: + - id + - type + - attributes type: object - GetSuppressionVersionHistoryDataType: - description: Type of data. - enum: - - suppression_version_history - type: string - x-enum-varnames: - - SUPPRESSIONVERSIONHISTORY - GetSuppressionVersionHistoryResponse: - description: Response for getting the suppression version history. + FleetDeploymentConfigureV2DryRunAttributes: + description: Attributes of a configuration deployment dry-run response. properties: - data: - $ref: "#/components/schemas/GetSuppressionVersionHistoryData" + dry_run: + $ref: "#/components/schemas/FleetDeploymentConfigureV2DryRunResult" + query: + description: Query used to filter and select target hosts for the deployment. + example: "env:prod AND service:web" + type: string + total_hosts: + description: Total number of hosts targeted by this deployment. + example: 42 + format: int64 + type: integer type: object - GetTeamMembershipsSort: - description: Specifies the order of returned team memberships - enum: - - manager_name - - -manager_name - - name - - -name - - handle - - -handle - - email - - -email - type: string - x-enum-varnames: - - MANAGER_NAME - - _MANAGER_NAME - - NAME - - _NAME - - HANDLE - - _HANDLE - - EMAIL - - _EMAIL - GetWorkflowResponse: - description: The response object after getting a workflow. + FleetDeploymentConfigureV2DryRunResponse: + description: Response containing the result of a configuration deployment dry run. properties: data: - $ref: "#/components/schemas/WorkflowData" - type: object - GitCommitSHA: - description: "Git Commit SHA." - example: 66adc9350f2cc9b250b69abddab733dd55e1a588 - pattern: "^[a-fA-F0-9]{40,}$" - type: string - GitRepositoryID: - description: "Git Repository ID" - example: "github.com/organization/example-repository" - type: string - GitRepositoryURL: - description: "Git Repository URL" - example: "https://github.com/organization/example-repository" - type: string - GithubWebhookTrigger: - description: 'Trigger a workflow from a GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to "base_url"/api/v2/workflows/"workflow_id"/webhook?orgId="org_id", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.' - properties: - rateLimit: - $ref: "#/components/schemas/TriggerRateLimit" + $ref: "#/components/schemas/FleetDeploymentConfigureV2DryRun" + required: + - data type: object - GithubWebhookTriggerWrapper: - description: "Schema for a GitHub webhook-based trigger." + FleetDeploymentConfigureV2DryRunResult: + description: Validation result of a configuration deployment dry run. properties: - githubWebhookTrigger: - $ref: "#/components/schemas/GithubWebhookTrigger" - startStepNames: - $ref: "#/components/schemas/StartStepNames" - required: - - githubWebhookTrigger + config_validated: + description: Whether the configuration passed schema validation. + example: true + type: boolean + non_upgradable_by_reason: + additionalProperties: + format: int64 + type: integer + description: |- + Breakdown of ineligible host counts by reason. Only includes reasons with a + non-zero count. Absent from the response when no targeted host is ineligible. + example: {} + type: object + non_upgradable_hosts: + description: Number of targeted hosts that are not eligible to receive this configuration. + example: 0 + format: int64 + type: integer type: object - GitlabAPIKey: - description: The definition of the `GitlabAPIKey` object. + FleetDeploymentConfigureV2Package: + description: A package and its target version to additionally deploy alongside a configuration change. properties: - api_token: - description: The `GitlabAPIKey` `api_token`. - example: "" + apm_instrumentation: + description: APM auto-instrumentation mode to enable for this package, if applicable. + example: "host" + type: string + name: + description: The name of the package to deploy. + example: "datadog-agent" + type: string + version: + description: The target version of the package to deploy. + example: "7.52.0" type: string - type: - $ref: "#/components/schemas/GitlabAPIKeyType" required: - - type - - api_token + - name + - version type: object - GitlabAPIKeyType: - description: The definition of the `GitlabAPIKey` object. + FleetDeploymentFileOp: + description: |- + Type of file operation to perform on the target configuration file. + - `merge-patch`: Merges the provided patch data with the existing configuration file. + Creates the file if it doesn't exist. + - `delete`: Removes the specified configuration file from the target hosts. enum: - - GitlabAPIKey - example: GitlabAPIKey + - "merge-patch" + - "delete" + example: "merge-patch" type: string x-enum-varnames: - - GITLABAPIKEY - GitlabAPIKeyUpdate: - description: The definition of the `GitlabAPIKey` object. + - MERGE_PATCH + - DELETE + FleetDeploymentHost: + description: A host that is part of a deployment with its current status. properties: - api_token: - description: The `GitlabAPIKeyUpdate` `api_token`. + error: + description: Error message if the deployment failed on this host. + example: "" type: string - type: - $ref: "#/components/schemas/GitlabAPIKeyType" - required: - - type + hostname: + description: The hostname of the agent. + example: "web-server-01.example.com" + type: string + status: + description: Current deployment status for this specific host. + example: "succeeded" + type: string + versions: + description: List of packages and their versions currently installed on this host. + items: + $ref: "#/components/schemas/FleetDeploymentHostPackage" + type: array type: object - GitlabCredentials: - description: The definition of the `GitlabCredentials` object. - oneOf: - - $ref: "#/components/schemas/GitlabAPIKey" - GitlabCredentialsUpdate: - description: The definition of the `GitlabCredentialsUpdate` object. - oneOf: - - $ref: "#/components/schemas/GitlabAPIKeyUpdate" - GitlabIntegration: - description: The definition of the `GitlabIntegration` object. + FleetDeploymentHostPackage: + description: |- + Package version information for a host, showing the initial version before deployment, + the target version to deploy, and the current version on the host. properties: - credentials: - $ref: "#/components/schemas/GitlabCredentials" - type: - $ref: "#/components/schemas/GitlabIntegrationType" - required: - - type - - credentials + current_version: + description: The current version of the package on the host. + example: "7.51.0" + type: string + initial_version: + description: The initial version of the package on the host before the deployment started. + example: "7.51.0" + type: string + package_name: + description: The name of the package. + example: "datadog-agent" + type: string + target_version: + description: The target version that the deployment is attempting to install. + example: "7.52.0" + type: string type: object - GitlabIntegrationType: - description: The definition of the `GitlabIntegrationType` object. - enum: - - Gitlab - example: Gitlab - type: string - x-enum-varnames: - - GITLAB - GitlabIntegrationUpdate: - description: The definition of the `GitlabIntegrationUpdate` object. + FleetDeploymentHostsPage: + description: Pagination details for the list of hosts in a deployment. properties: - credentials: - $ref: "#/components/schemas/GitlabCredentialsUpdate" - type: - $ref: "#/components/schemas/GitlabIntegrationType" - required: - - type + current_page: + description: Current page index (zero-based). + example: 0 + format: int64 + type: integer + page_size: + description: Number of hosts returned per page. + example: 50 + format: int64 + type: integer + total_hosts: + description: Total number of hosts in this deployment. + example: 150 + format: int64 + type: integer + total_pages: + description: Total number of pages available. + example: 3 + format: int64 + type: integer type: object - GlobalAnnotationIds: - description: List of annotation IDs that apply to the entire page rather than a specific widget. - example: - - "00000000-0000-0000-0000-000000000001" - items: - description: Annotation ID. - format: uuid - type: string - type: array - GlobalIncidentSettingsAttributesRequest: - description: Global incident settings attributes + FleetDeploymentOperation: + description: A single configuration file operation to perform on the target hosts. properties: - analytics_dashboard_id: - description: The analytics dashboard ID - example: abc-123-def + file_op: + $ref: "#/components/schemas/FleetDeploymentFileOp" + file_path: + description: Absolute path to the target configuration file on the host. + example: "/datadog.yaml" type: string + patch: + additionalProperties: {} + description: |- + Patch data in JSON format to apply to the configuration file. + When using `merge-patch`, this object is merged with the existing configuration, + allowing you to add, update, or override specific fields without replacing the entire file. + The structure must match the target configuration file format (for example, YAML structure + for Datadog Agent config). Not applicable when using the `delete` operation. + example: + apm_config: + enabled: true + log_level: "debug" + logs_enabled: true + type: object + required: + - file_op + - file_path type: object - GlobalIncidentSettingsAttributesResponse: - description: Global incident settings attributes + FleetDeploymentPackage: + description: A package and its target version for deployment. properties: - analytics_dashboard_id: - description: The analytics dashboard ID - example: abc-123-def - type: string - created: - description: Timestamp when the settings were created - example: "2026-01-13T17:15:56.557278191Z" - format: date-time + name: + description: The name of the package to deploy. + example: "datadog-agent" type: string - modified: - description: Timestamp when the settings were last modified - example: "2026-01-13T17:15:56.557278191Z" - format: date-time + version: + description: The target version of the package to deploy. + example: "7.52.0" type: string required: - - created - - modified - - analytics_dashboard_id + - name + - version type: object - GlobalIncidentSettingsDataRequest: - description: Data object in the global incident settings request. + FleetDeploymentPackageUpgradeV2Attributes: + description: Attributes for creating a new v2 package upgrade deployment. properties: - attributes: - $ref: "#/components/schemas/GlobalIncidentSettingsAttributesRequest" - type: - $ref: "#/components/schemas/GlobalIncidentSettingsType" + filter_query: + description: Query used to filter and select target hosts for the deployment. Uses the Datadog query syntax. + example: "env:prod AND service:web" + type: string + target_packages: + description: List of packages and their target versions to deploy to the selected hosts. + items: + $ref: "#/components/schemas/FleetDeploymentPackage" + type: array required: - - type + - filter_query + - target_packages type: object - GlobalIncidentSettingsDataResponse: - description: Data object in the global incident settings response. + FleetDeploymentPackageUpgradeV2Create: + description: Data for creating a new v2 package upgrade deployment. properties: attributes: - $ref: "#/components/schemas/GlobalIncidentSettingsAttributesResponse" - id: - description: The unique identifier for the global incident settings - example: f8b9a915-ed85-48b4-9071-ceba567a3db5 - type: string + $ref: "#/components/schemas/FleetDeploymentPackageUpgradeV2Attributes" type: - $ref: "#/components/schemas/GlobalIncidentSettingsType" + $ref: "#/components/schemas/FleetDeploymentResourceType" required: - - id - type - attributes type: object - GlobalIncidentSettingsRequest: - description: Request payload for updating global incident settings. - properties: - data: - $ref: "#/components/schemas/GlobalIncidentSettingsDataRequest" - required: - - data - type: object - GlobalIncidentSettingsResponse: - description: Response payload containing global incident settings. + FleetDeploymentPackageUpgradeV2CreateRequest: + description: Request payload for creating a new v2 package upgrade deployment. properties: data: - $ref: "#/components/schemas/GlobalIncidentSettingsDataResponse" + $ref: "#/components/schemas/FleetDeploymentPackageUpgradeV2Create" required: - data type: object - GlobalIncidentSettingsType: - description: Global incident settings resource type + FleetDeploymentResourceType: + default: deployment + description: The type of deployment resource. enum: - - incidents_global_settings - example: incidents_global_settings + - deployment + example: deployment type: string x-enum-varnames: - - INCIDENTS_GLOBAL_SETTINGS - GlobalOrg: - description: Organization information for a global organization association. + - DEPLOYMENT + FleetDeploymentResponse: + description: Response containing a single deployment. properties: - name: - description: The name of the organization. - example: Example Org - type: string - public_id: - description: The public identifier of the organization. - example: abcdef12345 - nullable: true - type: string - subdomain: - description: The subdomain used to access the organization, if configured. - example: example - nullable: true - type: string - uuid: - description: The UUID of the organization. - example: "13d10a96-6ff2-49be-be7b-4f56ebb13335" - format: uuid - type: string - required: - - uuid - - name + data: + $ref: "#/components/schemas/FleetDeployment" + meta: + $ref: "#/components/schemas/FleetDeploymentResponseMeta" type: object - GlobalOrgAttributes: - description: Attributes of an organization associated with the authenticated user. + FleetDeploymentResponseMeta: + description: Metadata for a single deployment response, including pagination information for hosts. properties: - org: - $ref: "#/components/schemas/GlobalOrg" - redirect_url: - description: The login URL used to switch into the organization, if available. - example: "https://app.datadoghq.com/account/login/password?dd_oid=13d10a96-6ff2-49be-be7b-4f56ebb13335&login_hint=user%40example.com" - nullable: true - type: string - source_region: - description: The source region of the organization. - example: us1.prod.dog - type: string - user: - $ref: "#/components/schemas/GlobalOrgUser" - required: - - user - - org - - source_region + hosts: + $ref: "#/components/schemas/FleetDeploymentHostsPage" type: object - GlobalOrgData: - description: An organization associated with the authenticated user. + FleetDeploymentV2: + description: A deployment in the v2 API response. properties: attributes: - $ref: "#/components/schemas/GlobalOrgAttributes" + $ref: "#/components/schemas/FleetDeploymentV2Attributes" + id: + description: Unique identifier for the deployment. + example: "k7Q-3mX-p9Z" + type: string type: - $ref: "#/components/schemas/GlobalOrgType" + $ref: "#/components/schemas/FleetDeploymentResourceType" required: + - id - type - attributes type: object - GlobalOrgIdentifier: - description: A unique identifier for an organization including its site. - properties: - org_site: - description: The site of the organization. - example: "us1" - type: string - org_uuid: - description: The UUID of the organization. - example: "c3d4e5f6-a7b8-9012-cdef-012345678901" - format: uuid - type: string - required: - - org_uuid - - org_site - type: object - GlobalOrgType: - description: The resource type for global user organizations. - enum: [global_user_orgs] - example: global_user_orgs - type: string - x-enum-varnames: - - GLOBAL_USER_ORGS - GlobalOrgUser: - description: User information for a global organization association. - properties: - handle: - description: The handle of the user. - example: user@example.com - type: string - uuid: - description: The UUID of the user. - example: "cfab5cf9-5472-48ea-a79c-a64045f4f745" - format: uuid - type: string - required: - - uuid - - handle - type: object - GlobalOrgsLinks: - description: Pagination links. + FleetDeploymentV2Attributes: + description: Attributes of a deployment in the v2 API response. properties: - next: - description: Link to the next page. - example: "https://app.datadoghq.com/api/v2/global_orgs?user_handle=user@example.com&page[limit]=100&page[cursor]=next-page" - nullable: true + author: + description: Handle of the user who triggered the deployment. + example: "alice@datadoghq.com" type: string - prev: - description: Link to the previous page. - nullable: true + config_operations: + description: |- + Ordered list of configuration file operations applied by this deployment. + Absent for package deployments, which have no configuration file operations. + items: + $ref: "#/components/schemas/FleetDeploymentOperation" + type: array + duration_seconds: + description: |- + Duration of the deployment in seconds, computed as `finished_at - started_at`. + Zero if the deployment has not finished. + example: 1000 + format: int64 + type: integer + error_summary: + description: Top-level error message for the deployment. Populated only when the deployment has failed. + example: "A host failed to update" type: string - self: - description: Link to the current page. - example: "https://app.datadoghq.com/api/v2/global_orgs?user_handle=user@example.com&page[limit]=100" + estimated_finished_at: + description: Estimated completion time of the deployment as a Unix timestamp. Zero if not available. + example: 1699999999 + format: int64 + type: integer + finished_at: + description: Time the deployment finished as a Unix timestamp. Zero if not yet finished. + example: 0 + format: int64 + type: integer + is_scheduled: + description: Whether this deployment was triggered by a schedule (`schedule_id` is non-empty). + example: true + type: boolean + query: + description: Query used to filter and select target hosts for the deployment. + example: "env:prod AND service:web" type: string - type: object - GlobalOrgsMeta: - description: Response metadata object. - properties: - page: - $ref: "#/components/schemas/GlobalOrgsMetaPage" - type: object - GlobalOrgsMetaPage: - description: Paging attributes. - properties: - cursor: - description: The cursor used to get the current results, if any. - example: "" + schedule_id: + description: Identifier of the schedule that triggered this deployment. Empty if triggered manually. + example: "sched-123" type: string - limit: - description: Number of results returned. - example: 100 - format: int32 - maximum: 1000 + started_at: + description: Time the deployment started as a Unix timestamp. Zero if not yet started. + example: 1699990000 + format: int64 type: integer - next_cursor: - description: The cursor used to get the next results, if any. - example: next-page - nullable: true - type: string - prev_cursor: - description: The cursor used to get the previous results, if any. - nullable: true + status: + description: |- + Current high-level status of the deployment (for example, "pending", "running", + "completed", "failed"). + example: "pending" type: string - type: - $ref: "#/components/schemas/GlobalOrgsMetaPageType" - type: object - GlobalOrgsMetaPageType: - description: Type of global orgs pagination. - enum: [cursor] - example: cursor - type: string - x-enum-varnames: - - CURSOR - GlobalOrgsResponse: - description: Response containing organizations across regions for the authenticated user. - properties: - data: - description: Organizations across regions for the authenticated user. + target_versions: + description: Package versions targeted by this deployment. + example: ["7.52.0"] items: - $ref: "#/components/schemas/GlobalOrgData" + type: string type: array - links: - $ref: "#/components/schemas/GlobalOrgsLinks" - meta: - $ref: "#/components/schemas/GlobalOrgsMeta" - required: - - data + total_hosts: + description: Total number of hosts targeted by this deployment. + example: 42 + format: int64 + type: integer + update_type: + description: |- + Type of update operation performed by this deployment + (for example, "update_config_operations", "update_package"). + example: "update_config_operations" + type: string type: object - GlobalVariableData: - description: Synthetics global variable data. Wrapper around the global variable object. + FleetDeploymentV2Cancel: + description: A deployment cancellation response. properties: attributes: - $ref: "#/components/schemas/SyntheticsGlobalVariable" + $ref: "#/components/schemas/FleetDeploymentV2CancelAttributes" id: - description: Global variable identifier. + description: Unique identifier for the deployment. + example: "k7Q-3mX-p9Z" type: string type: - $ref: "#/components/schemas/GlobalVariableType" - type: object - GlobalVariableJsonPatchRequest: - description: JSON Patch request for global variable. - properties: - data: - $ref: "#/components/schemas/GlobalVariableJsonPatchRequestData" + $ref: "#/components/schemas/FleetDeploymentResourceType" required: - - data - type: object - GlobalVariableJsonPatchRequestData: - description: Data object for a JSON Patch request on a Synthetic global variable. - properties: - attributes: - $ref: "#/components/schemas/GlobalVariableJsonPatchRequestDataAttributes" - type: - $ref: "#/components/schemas/GlobalVariableJsonPatchType" + - id + - type + - attributes type: object - GlobalVariableJsonPatchRequestDataAttributes: - description: Attributes for a JSON Patch request on a Synthetic global variable. + FleetDeploymentV2CancelAttributes: + description: Attributes of a deployment cancellation response. properties: - json_patch: - description: JSON Patch operations following RFC 6902. - items: - $ref: "#/components/schemas/JsonPatchOperation" - type: array + message: + description: Human-readable message describing the outcome of the cancellation request. + example: "Cancellation has been requested; the deployment is stopping." + type: string + status: + description: Status of the deployment after the cancellation request. + example: "stopping" + type: string type: object - GlobalVariableJsonPatchType: - description: Global variable JSON Patch type. - enum: - - global_variables_json_patch - type: string - x-enum-varnames: - - GLOBAL_VARIABLES_JSON_PATCH - GlobalVariableResponse: - description: Global variable response. + FleetDeploymentV2CancelResponse: + description: Response containing the result of a deployment cancellation request. properties: data: - $ref: "#/components/schemas/GlobalVariableData" + $ref: "#/components/schemas/FleetDeploymentV2Cancel" + required: + - data type: object - GlobalVariableType: - description: Global variable type. - enum: - - global_variables - type: string - x-enum-varnames: - - GLOBAL_VARIABLES - GoogleChatAppNamedSpaceResponse: - description: Response with Google Chat space information. + FleetDeploymentV2CreateResponse: + description: Response containing the newly created deployment. properties: data: - $ref: "#/components/schemas/GoogleChatAppNamedSpaceResponseData" + $ref: "#/components/schemas/FleetDeploymentV2" required: - data type: object - GoogleChatAppNamedSpaceResponseAttributes: - description: Google Chat space attributes. - properties: - display_name: - description: Google space display name. - example: "Fake Space Name" - maxLength: 255 - type: string - organization_binding_id: - description: Organization binding ID. - example: "2f18a894-adb5-4c53-8248-39fd3f5386a5" - maxLength: 255 - type: string - resource_name: - description: Google space resource name. - example: "spaces/AAAAAAAAA" - maxLength: 255 - type: string - space_uri: - description: Google space URI. - example: "https://chat.google.com/room/AAAAAAAAA" - maxLength: 255 - type: string - type: object - GoogleChatAppNamedSpaceResponseData: - description: Google Chat space data from a response. + FleetDeploymentV2Detail: + description: Detailed information about a deployment. properties: attributes: - $ref: "#/components/schemas/GoogleChatAppNamedSpaceResponseAttributes" + $ref: "#/components/schemas/FleetDeploymentV2DetailAttributes" id: - description: The ID of the Google Chat space. - example: "596da4af-0563-4097-90ff-07230c3f9db3" - maxLength: 100 - minLength: 1 + description: Unique identifier for the deployment. + example: "k7Q-3mX-p9Z" type: string type: - $ref: "#/components/schemas/GoogleChatAppNamedSpaceType" - type: object - GoogleChatAppNamedSpaceType: - default: google-chat-app-named-space - description: Google Chat space resource type. - enum: - - google-chat-app-named-space - example: google-chat-app-named-space - type: string - x-enum-varnames: - - GOOGLE_CHAT_APP_NAMED_SPACE_TYPE - GoogleChatCreateOrganizationHandleRequest: - description: Create organization handle request. - properties: - data: - $ref: "#/components/schemas/GoogleChatCreateOrganizationHandleRequestData" - type: - $ref: "#/components/schemas/GoogleChatOrganizationHandleType" + $ref: "#/components/schemas/FleetDeploymentResourceType" required: + - id - type - - data + - attributes type: object - GoogleChatCreateOrganizationHandleRequestAttributes: - description: Organization handle attributes for a create request. + FleetDeploymentV2DetailAgent: + description: Per-host status entry for a deployment. properties: - name: - description: Organization handle name. - example: "fake-handle-name" - maxLength: 255 + error: + description: Error message if the deployment failed on this host. + example: "" type: string - space_resource_name: - description: Google space resource name. - example: "spaces/AAAAAAAAA" - maxLength: 255 + hostname: + description: Hostname of the agent. + example: "web-01.example.com" type: string - required: - - name - - space_resource_name - type: object - GoogleChatCreateOrganizationHandleRequestData: - description: Organization handle data for a create request. - properties: - attributes: - $ref: "#/components/schemas/GoogleChatCreateOrganizationHandleRequestAttributes" - required: - - attributes - type: object - GoogleChatDelegatedUserAttributes: - description: Google Chat delegated user attributes. - properties: - display_name: - description: The delegated user's display name. - example: "fake-display-name" + running_step: + description: Name of the step currently executing on this host. + example: "applying_config" type: string - email: - description: The delegated user's email address. - example: "user@example.com" + status: + description: Deployment status for this host (for example, "pending", "running", "succeeded", "failed"). + example: "running" type: string - features: - description: The list of features enabled for the delegated user. - items: - type: string + status_details: + description: Additional details about the current deployment status on this host. + example: "step 2/3" + type: string + versions: + description: Package version details for this host. + items: + $ref: "#/components/schemas/FleetDeploymentHostPackage" type: array type: object - GoogleChatDelegatedUserData: - description: Google Chat delegated user data from a response. + FleetDeploymentV2DetailAttributes: + description: Attributes of a deployment detail response. properties: - attributes: - $ref: "#/components/schemas/GoogleChatDelegatedUserAttributes" - id: - description: The ID of the delegated user. - example: "2b3c4d5e-6f78-9012-bcde-f23456789012" - maxLength: 100 - minLength: 1 + author: + description: Handle of the user who triggered the deployment. + example: "carol@datadoghq.com" type: string - type: - $ref: "#/components/schemas/GoogleChatDelegatedUserType" - type: object - GoogleChatDelegatedUserResponse: - description: Response containing a Google Chat delegated user. - properties: - data: - $ref: "#/components/schemas/GoogleChatDelegatedUserData" - required: - - data - type: object - GoogleChatDelegatedUserType: - default: google-chat-delegated-user - description: Google Chat delegated user resource type. - enum: - - google-chat-delegated-user - example: google-chat-delegated-user - type: string - x-enum-varnames: - - GOOGLE_CHAT_DELEGATED_USER_TYPE - GoogleChatOrganizationAttributes: - description: Google Chat organization attributes. - properties: - domain_id: - description: The Google Chat organization domain ID. - example: "fake-domain-id" - maxLength: 255 + canceled_hosts: + description: Number of hosts on which the deployment was canceled. + example: 1 + format: int64 + minimum: 0 + type: integer + config_operations: + description: |- + Ordered list of configuration file operations applied by this deployment. + Absent for package deployments, which have no configuration file operations. + items: + $ref: "#/components/schemas/FleetDeploymentOperation" + type: array + duration_seconds: + description: |- + Duration of the deployment in seconds, computed as `finished_at - started_at`. + Zero if the deployment has not finished. + example: 3600 + format: int64 + type: integer + error_summary: + description: Top-level error message for the deployment. Populated only when the deployment has failed. + example: "A host failed to update" type: string - domain_name: - description: The Google Chat organization domain name. - example: "example.com" - maxLength: 255 + estimated_finished_at: + description: Estimated completion time of the deployment as a Unix timestamp. Zero if not available. + example: 1699999999 + format: int64 + type: integer + failed_hosts: + description: Number of hosts on which the deployment failed. + example: 1 + format: int64 + minimum: 0 + type: integer + high_level_status: + description: |- + Current high-level status of the deployment (for example, "pending", "running", + "completed", "failed"). + example: "running" type: string - type: object - GoogleChatOrganizationData: - description: Google Chat organization data from a response. - properties: - attributes: - $ref: "#/components/schemas/GoogleChatOrganizationAttributes" - id: - description: The ID of the Google Chat organization binding. - example: "5ce87709-a12f-4086-fcc8-147045b73a19" - maxLength: 100 - minLength: 1 + hosts: + description: Per-host status list for this deployment. + items: + $ref: "#/components/schemas/FleetDeploymentV2DetailAgent" + type: array + is_scheduled: + description: Whether this deployment was triggered by a schedule (`schedule_id` is non-empty). + example: true + type: boolean + query: + description: Query used to filter and select target hosts for the deployment. + example: "env:prod AND service:web" + type: string + running_hosts: + description: Number of hosts on which the deployment is currently running. + example: 1 + format: int64 + minimum: 0 + type: integer + schedule_id: + description: Identifier of the schedule that triggered this deployment. Empty if triggered manually. + example: "sched-789" + type: string + skipped_hosts: + description: Number of hosts that were skipped during the deployment. + example: 1 + format: int64 + minimum: 0 + type: integer + succeeded_hosts: + description: Number of hosts on which the deployment succeeded. + example: 1 + format: int64 + minimum: 0 + type: integer + target_versions: + description: Distinct package versions targeted by this deployment, in first-seen order. + example: ["7.52.0"] + items: + type: string + type: array + total_hosts: + description: Total number of hosts targeted by this deployment. + example: 42 + format: int64 + type: integer + update_type: + description: |- + Type of update operation performed by this deployment + (for example, "update_config_operations", "update_package"). + example: "update_config_operations" type: string - relationships: - $ref: "#/components/schemas/GoogleChatOrganizationRelationships" - type: - $ref: "#/components/schemas/GoogleChatOrganizationType" type: object - GoogleChatOrganizationHandleResponse: - description: Organization handle for monitor notifications to a Google Chat space within a Google organization. + FleetDeploymentV2DetailResponse: + description: Response containing detailed information about a single deployment. properties: data: - $ref: "#/components/schemas/GoogleChatOrganizationHandleResponseData" + $ref: "#/components/schemas/FleetDeploymentV2Detail" required: - data type: object - GoogleChatOrganizationHandleResponseAttributes: - description: Organization handle attributes. - properties: - name: - description: Organization handle name. - example: "fake-handle-name" - maxLength: 255 - type: string - space_display_name: - description: Google space display name. - example: "Fake Space Name" - maxLength: 255 - type: string - space_resource_name: - description: Google space resource name. - example: "spaces/AAAAAAAAA" - maxLength: 255 - type: string - type: object - GoogleChatOrganizationHandleResponseData: - description: Organization handle data from a response. + FleetDeploymentsV2Page: + description: Pagination details for the v2 list of deployments. properties: - attributes: - $ref: "#/components/schemas/GoogleChatOrganizationHandleResponseAttributes" - id: - description: The ID of the organization handle. - example: "596da4af-0563-4097-90ff-07230c3f9db3" - maxLength: 100 - minLength: 1 - type: string - type: - $ref: "#/components/schemas/GoogleChatOrganizationHandleType" + total_count: + description: Total number of deployments available across all pages. + example: 25 + format: int64 + type: integer + total_filtered_count: + description: Total number of deployments matching the current filter query. + example: 10 + format: int64 + type: integer type: object - GoogleChatOrganizationHandleType: - default: google-chat-organization-handle - description: Organization handle resource type. - enum: - - google-chat-organization-handle - example: google-chat-organization-handle - type: string - x-enum-varnames: - - GOOGLE_CHAT_ORGANIZATION_HANDLE_TYPE - GoogleChatOrganizationHandlesResponse: - description: List of organization handles for monitor notifications to Google Chat spaces within a Google organization. + FleetDeploymentsV2Response: + description: Response containing a paginated list of deployments. properties: data: - description: An array of organization handles. - example: [{"attributes": {"name": "general-handle", "space_display_name": "General", "space_resource_name": "spaces/AAAAAAAAA"}, "id": "596da4af-0563-4097-90ff-07230c3f9db3", "type": "google-chat-organization-handle"}, {"attributes": {"name": "general-handle-2", "space_display_name": "General2", "space_resource_name": "spaces/BBBBBBBBB"}, "id": "596da4af-0563-4097-90ff-07230c3f9db4", "type": "google-chat-organization-handle"}] + description: Array of deployments matching the query criteria. items: - $ref: "#/components/schemas/GoogleChatOrganizationHandleResponseData" + $ref: "#/components/schemas/FleetDeploymentV2" type: array + meta: + $ref: "#/components/schemas/FleetDeploymentsV2ResponseMeta" required: - data type: object - GoogleChatOrganizationRelationships: - description: Google Chat organization relationships. - properties: - delegated_user: - $ref: "#/components/schemas/GoogleChatOrganizationRelationshipsDelegatedUser" - type: object - GoogleChatOrganizationRelationshipsDelegatedUser: - description: The delegated user relationship. + FleetDeploymentsV2ResponseMeta: + description: Metadata for the v2 list of deployments, including pagination information. properties: - data: - $ref: "#/components/schemas/GoogleChatOrganizationRelationshipsDelegatedUserData" + page: + $ref: "#/components/schemas/FleetDeploymentsV2Page" type: object - GoogleChatOrganizationRelationshipsDelegatedUserData: - description: Delegated user relationship data. + FleetDetectedIntegration: + description: An integration detected on the agent but not necessarily configured. properties: - id: - description: The ID of the delegated user. - example: "2b3c4d5e-6f78-9012-bcde-f23456789012" + escaped_name: + description: Escaped integration name. + example: "postgresql" + type: string + prefix: + description: Integration prefix identifier. + example: "postgres" type: string - type: - $ref: "#/components/schemas/GoogleChatDelegatedUserType" - type: object - GoogleChatOrganizationResponse: - description: Response containing a Google Chat organization binding. - properties: - data: - $ref: "#/components/schemas/GoogleChatOrganizationData" - required: - - data type: object - GoogleChatOrganizationType: - default: google-chat-organization - description: Google Chat organization resource type. - enum: - - google-chat-organization - example: google-chat-organization - type: string - x-enum-varnames: - - GOOGLE_CHAT_ORGANIZATION_TYPE - GoogleChatOrganizationsResponse: - description: Response containing a list of Google Chat organization bindings. + FleetIntegrationDetailsV2: + description: Detailed information about a single integration. properties: - data: - description: An array of Google Chat organization bindings. + data_type: + description: Type of data collected, such as metrics or logs. + example: "metrics" + type: string + error_messages: + description: Error messages if the integration has issues. items: - $ref: "#/components/schemas/GoogleChatOrganizationData" + description: An error message describing an issue with the integration. + type: string type: array - required: - - data - type: object - GoogleChatTargetAudienceAttributes: - description: Google Chat target audience attributes. - properties: - audience_id: - description: The audience ID. - example: "fake-audience-id-1" - maxLength: 255 + init_config: + description: Initialization configuration (YAML format). type: string - audience_name: - description: The audience name. - example: "fake audience name 1" - maxLength: 255 + instance_config: + description: Instance-specific configuration (YAML format). + type: string + is_custom_check: + description: Whether this is a custom integration. + type: boolean + is_default: + description: Whether this is a default integration instance. + type: boolean + is_init: + description: Whether this integration configuration is an init config. + type: boolean + log_config: + description: Log collection configuration (YAML format). + type: string + name: + description: Name of the integration instance. + type: string + pod_count: + description: >- + Number of pods running this integration. Absent from the response when the count is zero. + format: int64 + type: integer + source_index: + description: Index in the configuration file. + format: int64 + type: integer + source_path: + description: Path to the configuration file. + type: string + type: + description: Integration type. + example: "postgres" type: string - required: - - audience_name - - audience_id type: object - GoogleChatTargetAudienceCreateRequest: - description: Create target audience request. + FleetIntegrationsByStatusV2: + description: Integrations organized by their status. properties: - data: - $ref: "#/components/schemas/GoogleChatTargetAudienceCreateRequestData" - required: - - data + configuration_files: + description: Configuration files for integrations. + items: + $ref: "#/components/schemas/FleetConfigurationFileV2" + type: array + error_integrations: + description: Integrations with errors. + items: + $ref: "#/components/schemas/FleetIntegrationDetailsV2" + type: array + missing_integrations: + description: Detected but not configured integrations. + items: + $ref: "#/components/schemas/FleetDetectedIntegration" + type: array + warning_integrations: + description: Integrations with warnings. + items: + $ref: "#/components/schemas/FleetIntegrationDetailsV2" + type: array + working_integrations: + description: Integrations that are working correctly. + items: + $ref: "#/components/schemas/FleetIntegrationDetailsV2" + type: array type: object - GoogleChatTargetAudienceCreateRequestAttributes: - description: Attributes for creating a Google Chat target audience. + FleetOtelCollector: + additionalProperties: {} + description: OpenTelemetry collector information. + type: object + FleetOtelCollectorConfigurationV2: + description: Configuration for a single OpenTelemetry collector associated with the agent. properties: - audience_id: - description: The audience ID. - example: "fake-audience-id-1" - maxLength: 255 + collector_id: + description: The unique identifier of the OpenTelemetry collector. type: string - audience_name: - description: The audience name. - example: "fake audience name 1" - maxLength: 255 + compiled_configuration: + description: The final compiled configuration of the OpenTelemetry collector. + type: string + distribution: + description: The distribution of the OpenTelemetry collector. type: string - required: - - audience_name - - audience_id type: object - GoogleChatTargetAudienceCreateRequestData: - description: Data for a create target audience request. + FleetSchedule: + description: A schedule that automatically creates deployments based on a recurrence rule. properties: attributes: - $ref: "#/components/schemas/GoogleChatTargetAudienceCreateRequestAttributes" + $ref: "#/components/schemas/FleetScheduleAttributes" + id: + description: Unique identifier for the schedule. + example: "abc-def-ghi-123" + type: string type: - $ref: "#/components/schemas/GoogleChatTargetAudienceType" + $ref: "#/components/schemas/FleetScheduleResourceType" required: + - id - type - attributes type: object - GoogleChatTargetAudienceData: - description: Google Chat target audience data from a response. + FleetScheduleAttributes: + description: Attributes of a schedule in the response. properties: - attributes: - $ref: "#/components/schemas/GoogleChatTargetAudienceAttributes" - id: - description: The ID of the target audience. - example: "1f3e5ce6-944a-4075-97ae-105b5920b5cb" - maxLength: 100 - minLength: 1 + created_at_unix: + description: Unix timestamp (seconds since epoch) when the schedule was created. + example: 1699999999 + format: int64 + type: integer + created_by: + description: User handle of the person who created the schedule. + example: "user@example.com" type: string - type: - $ref: "#/components/schemas/GoogleChatTargetAudienceType" - type: object - GoogleChatTargetAudienceResponse: - description: Response containing a Google Chat target audience. - properties: - data: - $ref: "#/components/schemas/GoogleChatTargetAudienceData" - required: - - data - type: object - GoogleChatTargetAudienceType: - default: google-chat-target-audience - description: Google Chat target audience resource type. - enum: - - google-chat-target-audience - example: google-chat-target-audience - type: string - x-enum-varnames: - - GOOGLE_CHAT_TARGET_AUDIENCE_TYPE - GoogleChatTargetAudienceUpdateRequest: - description: Update target audience request. - properties: - data: - $ref: "#/components/schemas/GoogleChatTargetAudienceUpdateRequestData" - required: - - data - type: object - GoogleChatTargetAudienceUpdateRequestAttributes: - description: Attributes for updating a Google Chat target audience. - properties: - audience_id: - description: The audience ID. - example: "fake-audience-id-1" - maxLength: 255 + name: + description: Human-readable name for the schedule. + example: "Weekly Production Agent Updates" type: string - audience_name: - description: The audience name. - example: "fake audience name 1" - maxLength: 255 + query: + description: Query used to filter and select target hosts for scheduled deployments. Uses the Datadog query syntax. + example: "env:prod AND service:web" + type: string + rule: + $ref: "#/components/schemas/FleetScheduleRecurrenceRule" + status: + $ref: "#/components/schemas/FleetScheduleStatus" + updated_at_unix: + description: Unix timestamp (seconds since epoch) when the schedule was last updated. + example: 1699999999 + format: int64 + type: integer + updated_by: + description: User handle of the person who last updated the schedule. + example: "user@example.com" type: string + version_to_latest: + description: |- + Number of major versions behind the latest to target for upgrades. + - 0: Always upgrade to the latest version + - 1: Upgrade to latest minus 1 major version + - 2: Upgrade to latest minus 2 major versions + Maximum value is 2. + example: 0 + format: int64 + maximum: 2 + minimum: 0 + type: integer type: object - GoogleChatTargetAudienceUpdateRequestData: - description: Data for an update target audience request. + FleetScheduleCreate: + description: Data for creating a new schedule. properties: attributes: - $ref: "#/components/schemas/GoogleChatTargetAudienceUpdateRequestAttributes" + $ref: "#/components/schemas/FleetScheduleCreateAttributes" type: - $ref: "#/components/schemas/GoogleChatTargetAudienceType" + $ref: "#/components/schemas/FleetScheduleResourceType" required: - type - attributes type: object - GoogleChatTargetAudiencesResponse: - description: Response containing a list of Google Chat target audiences. + FleetScheduleCreateAttributes: + description: Attributes for creating a new schedule. + properties: + name: + description: Human-readable name for the schedule. + example: "Weekly Production Agent Updates" + type: string + query: + description: Query used to filter and select target hosts for scheduled deployments. Uses the Datadog query syntax. + example: "env:prod AND service:web" + type: string + rule: + $ref: "#/components/schemas/FleetScheduleRecurrenceRule" + status: + $ref: "#/components/schemas/FleetScheduleStatus" + version_to_latest: + description: |- + Number of major versions behind the latest to target for upgrades. + - 0: Always upgrade to the latest version (default) + - 1: Upgrade to latest minus 1 major version + - 2: Upgrade to latest minus 2 major versions + Maximum value is 2. + example: 0 + format: int64 + maximum: 2 + minimum: 0 + type: integer + required: + - name + - query + - rule + type: object + FleetScheduleCreateRequest: + description: Request payload for creating a new schedule. properties: data: - description: An array of Google Chat target audiences. - items: - $ref: "#/components/schemas/GoogleChatTargetAudienceData" - type: array + $ref: "#/components/schemas/FleetScheduleCreate" required: - data type: object - GoogleChatUpdateOrganizationHandleRequest: - description: Update organization handle request. + FleetSchedulePatch: + description: Data for partially updating a schedule. properties: - data: - $ref: "#/components/schemas/GoogleChatUpdateOrganizationHandleRequestData" + attributes: + $ref: "#/components/schemas/FleetSchedulePatchAttributes" type: - $ref: "#/components/schemas/GoogleChatOrganizationHandleType" + $ref: "#/components/schemas/FleetScheduleResourceType" required: - type - - data type: object - GoogleChatUpdateOrganizationHandleRequestAttributes: - description: Organization handle attributes for an update request. + FleetSchedulePatchAttributes: + description: Attributes for partially updating a schedule. All fields are optional. properties: name: - description: Organization handle name. - example: "fake-handle-name" - maxLength: 255 + description: Human-readable name for the schedule. + example: "Weekly Production Agent Updates" type: string - space_resource_name: - description: Google space resource name. - example: "spaces/AAAAAAAAA" - maxLength: 255 + query: + description: Query used to filter and select target hosts for scheduled deployments. Uses the Datadog query syntax. + example: "env:prod AND service:web" type: string + rule: + $ref: "#/components/schemas/FleetScheduleRecurrenceRule" + status: + $ref: "#/components/schemas/FleetScheduleStatus" + version_to_latest: + description: |- + Number of major versions behind the latest to target for upgrades. + - 0: Always upgrade to the latest version + - 1: Upgrade to latest minus 1 major version + - 2: Upgrade to latest minus 2 major versions + Maximum value is 2. + example: 0 + format: int64 + maximum: 2 + minimum: 0 + type: integer type: object - GoogleChatUpdateOrganizationHandleRequestData: - description: Organization handle data for an update request. + FleetSchedulePatchRequest: + description: Request payload for partially updating a schedule. properties: - attributes: - $ref: "#/components/schemas/GoogleChatUpdateOrganizationHandleRequestAttributes" + data: + $ref: "#/components/schemas/FleetSchedulePatch" required: - - attributes + - data type: object - GoogleDocsPostmortemSettings: - description: Settings for a postmortem template stored in Google Docs. Required when `location` is `google_docs`. + FleetScheduleRecurrenceRule: + description: |- + Defines the recurrence pattern for the schedule. Specifies when deployments should be + automatically triggered based on maintenance windows. properties: - account_id: - description: The ID of the Google Drive integration account. - example: "123456" + days_of_week: + description: |- + List of days of the week when the schedule should trigger. Valid values are: + "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun". + example: ["Mon", "Wed", "Fri"] + items: + description: A day of the week (for example, "Mon", "Tue"). + type: string + type: array + maintenance_window_duration: + description: Duration of the maintenance window in minutes. + example: 1200 + format: int64 + type: integer + start_maintenance_window: + description: |- + Start time of the maintenance window in 24-hour clock format (HH:MM). + Deployments will be triggered at this time on the specified days. + example: "02:00" type: string - parent_folder_id: - description: The ID of the Google Drive folder where postmortems are created. - example: "789012" + timezone: + description: Timezone for the schedule in IANA Time Zone Database format (e.g., "America/New_York", "UTC"). + example: "America/New_York" type: string required: - - account_id - - parent_folder_id + - days_of_week + - start_maintenance_window + - maintenance_window_duration + - timezone type: object - GoogleMeetConfigurationReference: - description: A reference to a Google Meet Configuration resource. - nullable: true + FleetScheduleResourceType: + default: schedule + description: The type of schedule resource. + enum: + - schedule + example: schedule + type: string + x-enum-varnames: + - SCHEDULE + FleetScheduleResponse: + description: Response containing a single schedule. properties: data: - $ref: "#/components/schemas/GoogleMeetConfigurationReferenceData" - required: - - data + $ref: "#/components/schemas/FleetSchedule" type: object - GoogleMeetConfigurationReferenceData: - description: The Google Meet configuration relationship data object. - nullable: true + FleetScheduleStatus: + description: |- + The status of the schedule. + - `active`: The schedule is active and will create deployments according to its recurrence rule. + - `inactive`: The schedule is inactive and will not create any deployments. + enum: + - active + - inactive + example: active + type: string + x-enum-varnames: + - ACTIVE + - INACTIVE + FleetScheduleV2: + description: A fleet upgrade schedule resource in the v2 API response. properties: + attributes: + $ref: "#/components/schemas/FleetScheduleV2Attributes" id: - description: The unique identifier of the Google Meet configuration. - example: "00000000-0000-0000-0000-000000000000" + description: Unique identifier for the schedule. + example: "abc-def-ghi-123" type: string type: - description: The type of the Google Meet configuration. - example: "google_meet_configurations" - type: string + $ref: "#/components/schemas/FleetScheduleResourceType" required: - id - type + - attributes type: object - GovernanceConfigAttributes: - description: The attributes of a Governance Console configuration. + FleetScheduleV2Attributes: + description: Attributes of a fleet schedule in the v2 API response. properties: - assignment_notifications_enabled: - description: Whether notifications are sent to users when detections are assigned to them. - example: true - type: boolean - enabled: - description: Whether the Governance Console is enabled for the organization. - example: true - type: boolean - usage_attribution_configured: - description: Whether usage attribution is configured for the organization. - example: true + created_at: + description: RFC3339 timestamp when the schedule was created. + example: "2023-11-14T22:13:19Z" + type: string + created_by: + description: User handle of the person who created the schedule. + example: "user@example.com" + type: string + is_default: + description: Whether this is the default schedule for the organization. + example: false type: boolean - xorg_insights_enabled: + name: + description: Human-readable name for the schedule. + example: "Weekly Production Agent Updates" + type: string + next_run: description: |- - Whether the organization has opted in to sharing governance data with a managing org - for cross-org insights. - example: true - type: boolean - required: - - enabled - - assignment_notifications_enabled - - usage_attribution_configured - - xorg_insights_enabled + RFC3339 timestamp of the next scheduled maintenance window start time. + Absent when the next run time cannot be computed. + example: "2025-01-06T02:00:00Z" + type: string + notification_rule: + $ref: "#/components/schemas/FleetScheduleV2NotificationRule" + query: + description: Query used to filter and select target hosts for scheduled deployments. + example: "env:prod AND service:web" + type: string + rule: + $ref: "#/components/schemas/FleetScheduleV2RecurrenceRule" + status: + $ref: "#/components/schemas/FleetScheduleStatus" + updated_at: + description: RFC3339 timestamp when the schedule was last updated. + example: "2023-11-14T22:13:19Z" + type: string + updated_by: + description: User handle of the person who last updated the schedule. + example: "user@example.com" + type: string + version_to_latest: + description: |- + Number of major versions behind the latest to target for upgrades. + - 0: Always upgrade to the latest version. + - 1: Upgrade to latest minus 1 major version. + - 2: Upgrade to latest minus 2 major versions. + example: 0 + format: int64 + maximum: 2 + minimum: 0 + type: integer type: object - GovernanceConfigData: - description: A Governance Console configuration resource. + FleetScheduleV2NotificationRule: + description: |- + Notification configuration attached to a schedule. + + Included when available. If the notification rule cannot be retrieved, this field is + omitted and the schedule is still returned. If the notification rule is retrieved but its + handles cannot be resolved, it is still included with an empty `handles` array. properties: - attributes: - $ref: "#/components/schemas/GovernanceConfigAttributes" - id: + handles: + description: Notification handles (for example, Slack channels or PagerDuty integrations). + items: + description: A notification handle. + type: string + type: array + tags: + description: Tags associated with the notification rule. + items: + description: A tag string. + type: string + type: array + type: object + FleetScheduleV2RecurrenceRule: + description: Defines the recurrence pattern for the schedule. + properties: + days_of_week: description: |- - The unique identifier of the organization the Governance Console configuration applies - to. May be the nil UUID (`00000000-0000-0000-0000-000000000000`) when the configuration - is not tied to a specific organization record. - example: "00000000-0000-0000-0000-000000000000" + Days of the week when the schedule triggers. Valid values are + "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun". + example: ["Mon", "Wed", "Fri"] + items: + description: A day of the week (for example, "Mon"). + type: string + type: array + interval: + description: |- + Interval between schedule runs in weeks. 1 means the schedule runs every week + on the specified days. Higher values repeat every N weeks. + example: 1 + format: int64 + type: integer + maintenance_window_duration: + description: Duration of the maintenance window in minutes. + example: 120 + format: int64 + type: integer + start_maintenance_window: + description: |- + Start time of the maintenance window in 24-hour clock format (HHMM). + Deployments are triggered at this time on the specified days. + example: "0200" + type: string + timezone: + description: Timezone in IANA Time Zone Database format. + example: "America/New_York" type: string - type: - $ref: "#/components/schemas/GovernanceConsoleConfigResourceType" - required: - - id - - type - - attributes type: object - GovernanceConfigResponse: - description: The Governance Console configuration for an organization. + FleetScheduleV2Response: + description: Response containing a single fleet schedule. properties: data: - $ref: "#/components/schemas/GovernanceConfigData" + $ref: "#/components/schemas/FleetScheduleV2" required: - data type: object - GovernanceConsoleConfigResourceType: - description: Governance console config resource type. - enum: - - governance_console_config - example: "governance_console_config" - type: string - x-enum-varnames: - - GOVERNANCE_CONSOLE_CONFIG - GovernanceControlAttributes: - description: The attributes of a governance control. + FleetSchedulesV2Page: + description: Pagination details for the v2 list of schedules. properties: - active_detections_count: - description: The number of active detections for the control. - example: 12 + total_count: + description: Total number of schedules returned. + example: 5 format: int64 type: integer - category: - description: The value driver the control is grouped under, such as `security` or `cost`. - example: "security" + type: object + FleetSchedulesV2Response: + description: Response containing a list of fleet schedules. + properties: + data: + description: Array of schedules for the organization. + items: + $ref: "#/components/schemas/FleetScheduleV2" + type: array + meta: + $ref: "#/components/schemas/FleetSchedulesV2ResponseMeta" + required: + - data + type: object + FleetSchedulesV2ResponseMeta: + description: Metadata for the v2 list of schedules response. + properties: + page: + $ref: "#/components/schemas/FleetSchedulesV2Page" + type: object + FleetTracerAttributes: + description: Attributes of a fleet tracer representing a service instance reporting telemetry. + properties: + env: + description: The environment the tracer is reporting from. + example: "production" type: string - created_at: - description: The time the control configuration was created. - example: "2024-01-15T09:30:00Z" - format: date-time + hostname: + description: The hostname where the tracer is running. + example: "my-hostname" type: string - created_by: - description: The UUID of the user who created the control configuration. - example: "11111111-2222-3333-4444-555555555555" + language: + description: The programming language of the traced application. + example: "java" type: string - description: - description: A human-readable description of what the control detects. - example: "Identifies API keys that have not been used within your specified time threshold, helping reduce security risks from dormant credentials." + language_version: + description: The version of the programming language runtime. + example: "17.0.1" type: string - detection_parameters: - $ref: "#/components/schemas/GovernanceControlParametersMap" - nullable: true - insights: - description: The insight slugs associated with the control. - example: [] + remote_config_status: + description: The remote configuration status of the tracer. + example: "connected" + type: string + runtime_ids: + description: Runtime identifiers for the tracer instances. items: - description: An insight slug associated with the control. + description: A runtime identifier for a tracer instance. type: string type: array - last_detection_at: - description: The time of the most recent detection for the control. `null` when there are no detections. - example: "2024-03-01T12:00:00Z" - format: date-time - nullable: true - type: string - mitigated_detections_count: - description: The number of mitigated detections for the control. - example: 3 - format: int64 - type: integer - mitigation_parameters: - $ref: "#/components/schemas/GovernanceControlParametersMap" - nullable: true - mitigation_type: - description: The configured mitigation type for the control. Empty when not configured. - example: "revoke_api_key" - type: string - mitigations: - $ref: "#/components/schemas/GovernanceControlMitigationDefinitionArray" - name: - description: Human-readable name of the control. - example: "Unused API Keys" - type: string - priority: - description: The priority of the control, such as `High`. - example: "High" - type: string - product: - description: The product the control belongs to. - example: "api_keys" + service: + description: The telemetry-derived service name reported by the tracer. + example: "inventory-service" type: string - resource_type: - description: The type of resource the control evaluates. - example: "api_key" + service_hostname: + description: The service hostname reported by the tracer. + example: "my-service-host" type: string - resource_type_display_name: - description: The human-readable name of the resource type. - example: "API Key" + service_version: + description: The version of the traced service. + example: "2.1.0" type: string - supported_detection_parameters: - $ref: "#/components/schemas/GovernanceControlParameterDefinitionArray" - type: - description: The control type, such as `Proactive` or `Detection`. - example: "Proactive" + tracer_version: + description: The version of the Datadog tracer library. + example: "1.32.0" type: string + type: object + FleetTracersResponse: + description: Response containing a paginated list of fleet tracers. + properties: + data: + $ref: "#/components/schemas/FleetTracersResponseData" + meta: + $ref: "#/components/schemas/FleetTracersResponseMeta" required: - - name - - description - - supported_detection_parameters - - resource_type - - resource_type_display_name - - product - - category - - insights - - mitigations - - type - - priority - - detection_parameters - - mitigation_type - - mitigation_parameters - - created_at - - created_by - - active_detections_count - - mitigated_detections_count - - last_detection_at + - data type: object - GovernanceControlData: - description: A governance control resource. + FleetTracersResponseData: + description: The response data containing status and tracers array. properties: attributes: - $ref: "#/components/schemas/GovernanceControlAttributes" + $ref: "#/components/schemas/FleetTracersResponseDataAttributes" id: - description: The detection type that uniquely identifies the control. - example: "unused_api_keys" + description: Status identifier. + example: "done" type: string type: - $ref: "#/components/schemas/GovernanceControlResourceType" + description: Resource type. + example: "status" + type: string required: - id - type - attributes type: object - GovernanceControlDetectionAssignmentSource: - description: How the detection's current assignment was determined. Possible values are `auto_resolved`, `manual`, `reassigned`, and `cleared`. - enum: - - auto_resolved - - manual - - reassigned - - cleared - example: "manual" - type: string - x-enum-varnames: - - AUTO_RESOLVED - - MANUAL - - REASSIGNED - - CLEARED - GovernanceControlDetectionAttributes: - description: The attributes of a governance control detection. + FleetTracersResponseDataAttributes: + description: Attributes of the fleet tracers response containing the list of tracers. properties: - assigned_team: - description: The identifier of the team the detection is assigned to, if any. - example: "platform-security" - type: string - assigned_to: - description: The identifier of the user the detection is assigned to, if any. - example: "11111111-2222-3333-4444-555555555555" - type: string - assignment_source: - $ref: "#/components/schemas/GovernanceControlDetectionAssignmentSource" - control_id: - deprecated: true - description: |- - DEPRECATED: mirrors `detection_type` for backward compatibility; use `detection_type` - instead. - example: "unused_api_keys" + tracers: + description: Array of tracers matching the query criteria. + items: + $ref: "#/components/schemas/FleetTracerAttributes" + type: array + type: object + FleetTracersResponseMeta: + description: Metadata for the list of tracers response. + properties: + total_filtered_count: + description: Total number of tracers matching the filter criteria across all pages. + example: 42 + format: int64 + type: integer + type: object + FlutterSourcemapAttributes: + description: Attributes of a Flutter symbol file. + properties: + arch: + description: The target CPU architecture. + example: arm64 type: string created_at: - description: The date and time when the detection was created. - example: "2024-03-01T12:00:00Z" - format: date-time - type: string - detection_type: - description: The type of detection, which determines what condition was detected. - example: "unused_api_keys" - type: string - display_name: - description: The human-readable name of the detected resource. - example: "CI Deploy Key" - type: string - exception_at: - description: The date and time when the detection was marked as an exception, if applicable. - example: "2024-03-05T09:00:00Z" + description: The timestamp when the symbol file was created. + example: "2024-01-01T00:00:00Z" format: date-time type: string - exception_by: - description: The identifier of the user who marked the detection as an exception, if applicable. - example: "11111111-2222-3333-4444-555555555555" - type: string - metadata: - description: Free-form metadata associated with the detection. - example: - region: "us-east-1" - mitigate_after: - description: The date and time after which the detection is scheduled to be mitigated, if applicable. - example: "2024-03-15T00:00:00Z" - format: date-time + mapkind: + description: The type of source map. + example: flutter type: string - mitigated_at: - description: The date and time when the detection was mitigated, if applicable. - example: "2024-03-10T15:30:00Z" - format: date-time + service: + description: The service name associated with the symbol file. + example: my-flutter-app type: string - priority: - description: The priority of the detection, if set. - example: 1 + size: + description: The size of the symbol file in bytes. + example: 8192 format: int64 type: integer - resource_id: - description: The identifier of the resource the detection applies to. - example: "api-key-12345" + variant: + description: The build variant. + example: release type: string - resource_type: - description: The type of resource the detection applies to, for example `api_key` or `dashboard`. - example: "api_key" + version: + description: The version of the service associated with the symbol file. + example: 1.0.0 type: string - state: - $ref: "#/components/schemas/GovernanceControlDetectionState" required: - - state - - control_id - - resource_id - - detection_type - - resource_type - - display_name + - mapkind + - size - created_at - - assignment_source - - priority type: object - GovernanceControlDetectionData: - description: A governance control detection resource. + FlutterSourcemapData: + description: Flutter symbol file data object. properties: attributes: - $ref: "#/components/schemas/GovernanceControlDetectionAttributes" + $ref: "#/components/schemas/FlutterSourcemapAttributes" id: - description: The unique identifier of the detection. - example: "3f9b2c1a-8d4e-4a6b-9c2f-1e7d5a0b3c4d" + description: The unique identifier of the source map. + example: "12" type: string type: - $ref: "#/components/schemas/GovernanceControlDetectionResourceType" + $ref: "#/components/schemas/SourcemapDataType" required: - id - type - attributes type: object - GovernanceControlDetectionResourceType: - description: Governance control detection resource type. - enum: - - governance_control_detection - example: "governance_control_detection" - type: string - x-enum-varnames: - - GOVERNANCE_CONTROL_DETECTION - GovernanceControlDetectionResponse: - description: A single governance control detection. - properties: - data: - $ref: "#/components/schemas/GovernanceControlDetectionData" - required: - - data - type: object - GovernanceControlDetectionState: - description: The current state of the detection. Possible values are `active`, `exception`, `mitigated`, `inactive`, `obsolete`, `resolved_externally`, and `mitigation_in_progress`. - enum: - - active - - exception - - mitigated - - inactive - - obsolete - - resolved_externally - - mitigation_in_progress - example: "active" - type: string - x-enum-varnames: - - ACTIVE - - EXCEPTION - - MITIGATED - - INACTIVE - - OBSOLETE - - RESOLVED_EXTERNALLY - - MITIGATION_IN_PROGRESS - GovernanceControlDetectionUpdateAttributes: - description: The attributes of a governance control detection that can be updated. Only the attributes present in the request are modified. - properties: - assigned_team: - description: The handle of the team the detection is assigned to. Set to an empty string to clear the assignment. - example: "platform-security" - type: string - assigned_to: - description: The UUID of the user the detection is assigned to. Set to an empty string to clear the assignment. - example: "11111111-2222-3333-4444-555555555555" - type: string - mitigate_after: - description: The timestamp after which the detection becomes eligible for mitigation. Used to defer mitigation to a later time. - example: "2024-03-15T00:00:00Z" - format: date-time - type: string - state: - $ref: "#/components/schemas/GovernanceControlDetectionUpdateState" - type: object - GovernanceControlDetectionUpdateData: - description: The data of a governance control detection update request. + FormData: + description: A form resource object. properties: attributes: - $ref: "#/components/schemas/GovernanceControlDetectionUpdateAttributes" + $ref: "#/components/schemas/FormDataAttributes" + id: + description: The ID of the form. + example: 22f6006a-2302-4926-9396-d2dfcf7b0b34 + format: uuid + type: string type: - $ref: "#/components/schemas/GovernanceControlDetectionResourceType" + $ref: "#/components/schemas/FormType" required: + - id - type + - attributes type: object - GovernanceControlDetectionUpdateRequest: - description: A request to update a governance control detection. - properties: - data: - $ref: "#/components/schemas/GovernanceControlDetectionUpdateData" - required: - - data - type: object - GovernanceControlDetectionUpdateState: - description: The new state to set for the detection. Set to `exception` to acknowledge the detection and exclude it from active counts, or `active` to reopen it. - enum: - - exception - - active - example: "exception" - type: string - x-enum-varnames: - - EXCEPTION - - ACTIVE - GovernanceControlDetectionsDataArray: - description: An array of governance control detection resources. - items: - $ref: "#/components/schemas/GovernanceControlDetectionData" - type: array - GovernanceControlDetectionsResponse: - description: A list of governance control detections. - properties: - data: - $ref: "#/components/schemas/GovernanceControlDetectionsDataArray" - required: - - data - type: object - GovernanceControlMitigationDefinition: - description: The definition of a mitigation available for a control. + FormDataAttributes: + description: The attributes of a form. properties: - description: - description: A human-readable description of the mitigation. - example: "Automatically identifies and revokes inactive API keys to improve security and reduce potential attack surface." + active: + description: Whether the form is currently active. + example: true + type: boolean + anonymous: + description: Whether the form accepts anonymous submissions. + example: false + type: boolean + created_at: + description: The time at which the form was created. + example: "2026-05-29T20:06:13.677353Z" + format: date-time type: string - execution_modes: - description: The execution modes the mitigation supports, such as `manual` or `automatic`. - example: - - "manual" - - "automatic" - items: - description: An execution mode the mitigation supports. - type: string - type: array - id: - description: The unique identifier of the mitigation. - example: "revoke_api_key" + datastore_config: + $ref: "#/components/schemas/FormDatastoreConfigAttributes" + description: + description: The description of the form. + example: A form to collect user feedback. type: string - permissions: - description: The permissions required to apply the mitigation. + end_date: + description: The date and time at which the form stops accepting responses. example: - - "api_keys_write" - - "api_keys_delete" - items: - description: A permission required to apply the mitigation. - type: string - type: array - supported_parameters: - $ref: "#/components/schemas/GovernanceControlParameterDefinitionArray" - title: - description: A short, human-readable name for the mitigation. - example: "Revoke Unused API Keys" - type: string - required: - - id - - title - - description - - supported_parameters - - permissions - - execution_modes - type: object - GovernanceControlMitigationDefinitionArray: - description: The mitigations available for a control. - items: - $ref: "#/components/schemas/GovernanceControlMitigationDefinition" - type: array - GovernanceControlParameterDefinition: - description: The definition of a configurable parameter on a control or mitigation. - properties: - default_value: - description: The default value of the parameter. The JSON type depends on the parameter's `type`. - example: 30 - description: - description: A human-readable description of the parameter. - example: "Number of days of inactivity before an API key is considered unused." + format: date-time + nullable: true type: string - display_name: - description: The human-readable name of the parameter. - example: "Unused API Key Threshold" + has_submitted: + description: Whether the current user has already submitted this form. Only present for forms with `single_response` set to `true`. + nullable: true + type: boolean + idp_survey: + description: Whether the form is an IDP survey. + example: false + type: boolean + modified_at: + description: The time at which the form was last modified. + example: "2026-05-29T20:06:13.677353Z" + format: date-time type: string name: - description: The machine-readable name of the parameter. - example: "api_key_threshold" + description: The name of the form. + example: User Feedback Form type: string - required: - description: Whether the parameter must be provided. + org_id: + description: The ID of the organization that owns this form. + example: 2 + format: int64 + type: integer + publication: + $ref: "#/components/schemas/FormPublicationAttributes" + self_service: + description: Whether the form is available in the self-service catalog. example: false type: boolean - supported_values: - $ref: "#/components/schemas/GovernanceControlSupportedValueArray" - type: - description: The type of the parameter, such as `integer`, `string`, `boolean`, `enum`, or `pattern_list`. - example: "integer" + single_response: + description: Whether each user can only submit one response. + example: false + type: boolean + user_id: + description: The ID of the user who created this form. + example: 10001 + format: int64 + type: integer + user_uuid: + description: The UUID of the user who created this form. + example: 1fc709aa-be19-4539-a47d-52a30d78a978 + format: uuid type: string + version: + $ref: "#/components/schemas/FormVersionAttributes" required: - - name - - display_name + - active + - anonymous + - created_at + - datastore_config - description - - type - - required - - supported_values - - default_value + - idp_survey + - modified_at + - name + - org_id + - self_service + - single_response + - user_id + - user_uuid type: object - GovernanceControlParameterDefinitionArray: - description: An array of parameter definitions. - items: - $ref: "#/components/schemas/GovernanceControlParameterDefinition" - type: array - GovernanceControlParametersMap: + FormDataDefinition: additionalProperties: {} - description: A free-form map of parameter names to their configured values. + description: A JSON Schema definition that describes the form's data fields. + properties: + description: + description: A description shown to form respondents. + example: Welcome to the Engineering Experience Survey. + type: string + properties: + additionalProperties: {} + description: A map of field names to their JSON Schema definitions. + type: object + required: + description: List of field names that must be answered. + items: + type: string + type: array + title: + description: The title of the form schema. + example: Developer Experience Survey + type: string + type: + $ref: "#/components/schemas/FormDataDefinitionType" type: object - GovernanceControlResourceType: - description: JSON:API resource type for a governance control. + FormDataDefinitionType: + default: object + description: The root schema type. enum: - - governance_control - example: "governance_control" + - object type: string x-enum-varnames: - - GOVERNANCE_CONTROL - GovernanceControlResponse: - description: A single governance control. - properties: - data: - $ref: "#/components/schemas/GovernanceControlData" - required: - - data - type: object - GovernanceControlSupportedValue: - description: A supported value for an enumerated parameter. + - OBJECT + FormDataList: + description: A list of form resource objects. + items: + $ref: "#/components/schemas/FormData" + type: array + FormDatastoreConfigAttributes: + description: The datastore configuration for a form. properties: - label: - description: The human-readable label for the value. - example: "30 days" + datastore_id: + description: The ID of the datastore. + example: 5108ea24-dd83-4696-9caa-f069f73d0fad + format: uuid type: string - value: - description: The machine-readable value. - example: "thirty" + primary_column_name: + description: The name of the primary column in the datastore. + example: id + type: string + primary_key_generation_strategy: + description: The strategy used to generate primary keys in the datastore. + example: none type: string required: - - value - - label + - datastore_id + - primary_column_name + - primary_key_generation_strategy type: object - GovernanceControlSupportedValueArray: - description: The supported values for an enumerated parameter. `null` when the parameter is not an enumerated type. - items: - $ref: "#/components/schemas/GovernanceControlSupportedValue" - nullable: true - type: array - GovernanceControlUpdateAttributes: - description: The attributes of a governance control that can be updated. Only the attributes present in the request are modified. + FormPublicationAttributes: + description: The attributes of a form publication. properties: - detection_parameters: - $ref: "#/components/schemas/GovernanceControlParametersMap" - nullable: true - mitigation_parameters: - $ref: "#/components/schemas/GovernanceControlParametersMap" - nullable: true - mitigation_type: - description: The mitigation type to configure for the control. - example: "revoke_api_key" + created_at: + description: The time at which the publication was created. + example: "2026-05-29T20:06:13.677353Z" + format: date-time + type: string + form_id: + description: The ID of the form. + example: afc67600-0511-43b1-9b18-578fb4979bd3 + format: uuid + type: string + form_version: + description: The version number that was published. + example: 1 + format: int64 + type: integer + id: + description: The ID of the form publication. + example: "42" + type: string + modified_at: + description: The time at which the publication was last modified. + example: "2026-05-29T20:06:13.677353Z" + format: date-time + type: string + org_id: + description: The ID of the organization that owns this publication. + example: 2 + format: int64 + type: integer + publish_seq: + description: The sequential publication number for this form. + example: 1 + format: int64 + type: integer + user_id: + description: The ID of the user who created this publication. + example: 10001 + format: int64 + type: integer + user_uuid: + description: The UUID of the user who created this publication. + example: 1fc709aa-be19-4539-a47d-52a30d78a978 + format: uuid type: string + required: + - created_at + - form_id + - form_version + - modified_at + - org_id + - publish_seq + - user_id + - user_uuid type: object - GovernanceControlUpdateData: - description: The data of a governance control update request. + FormPublicationData: + description: A form publication resource object. properties: attributes: - $ref: "#/components/schemas/GovernanceControlUpdateAttributes" + $ref: "#/components/schemas/FormPublicationAttributes" + id: + description: The ID of the form publication. + example: "42" + type: string type: - $ref: "#/components/schemas/GovernanceControlResourceType" + $ref: "#/components/schemas/FormPublicationType" required: + - id - type + - attributes type: object - GovernanceControlUpdateRequest: - description: A request to update a governance control. + FormPublicationResponse: + description: A response containing a single form publication. properties: data: - $ref: "#/components/schemas/GovernanceControlUpdateData" + $ref: "#/components/schemas/FormPublicationData" required: - data type: object - GovernanceControlsDataArray: - description: An array of governance control resources. - items: - $ref: "#/components/schemas/GovernanceControlData" - type: array - GovernanceControlsResponse: - description: A list of governance controls. + FormPublicationType: + default: form_publications + description: The resource type for a form publication. + enum: + - form_publications + example: form_publications + type: string + x-enum-varnames: + - FORM_PUBLICATIONS + FormResponse: + description: A response containing a single form. properties: data: - $ref: "#/components/schemas/GovernanceControlsDataArray" + $ref: "#/components/schemas/FormData" required: - data type: object - GovernanceInsightAttributes: - description: |- - The attributes of a governance insight. Exactly one of `metric_query`, `event_query`, - `usage_query`, `audit_query`, or `percentage_query` is populated, depending on the data - source the insight is computed from; the rest are `null`. + FormTrigger: + description: "Trigger a workflow from a Form." properties: - audit_query: - $ref: "#/components/schemas/GovernanceInsightAuditQuery" - nullable: true - description: - description: A human-readable description of what the insight measures. - example: "Number of users who have used the Dashboard in the last 30 days" - type: string - display_name: - description: Human-readable name of the insight. - example: "Active Dashboards" - type: string - event_query: - $ref: "#/components/schemas/GovernanceInsightEventQuery" - nullable: true - metric_query: - $ref: "#/components/schemas/GovernanceInsightMetricQuery" - nullable: true - percentage_query: - $ref: "#/components/schemas/GovernanceInsightPercentageQuery" - nullable: true - product: - description: The product the insight belongs to. - example: "Usage" - type: string - query_config: - $ref: "#/components/schemas/GovernanceInsightQueryConfig" - nullable: true - sub_product: - description: The sub-product the insight belongs to, if any. - example: "Indexes" - type: string - time_range: - description: The time range the insight value is computed over, if applicable. - example: "month" - type: string - unit_name: - description: The unit that the insight's value is measured in. - example: "active dashboards" + formId: + description: The form UUID. + example: "" type: string - usage_query: - $ref: "#/components/schemas/GovernanceInsightUsageQuery" - nullable: true - required: - - display_name - - product - - sub_product - - unit_name - - description - - time_range type: object - GovernanceInsightAuditCompute: - description: The aggregation applied to an audit log query. + FormTriggerWrapper: + description: "Schema for a Form-based trigger." properties: - aggregation: - description: The aggregation function to apply. - example: "cardinality" - type: string - interval: - description: The aggregation time window, in milliseconds. - example: 86400000 - format: int64 - type: integer - metric: - description: The metric or attribute to aggregate. - example: "@usr.id" - type: string - rollup: - description: An optional secondary aggregation applied to the audit query result. - example: "" - type: string + formTrigger: + $ref: "#/components/schemas/FormTrigger" + startStepNames: + $ref: "#/components/schemas/StartStepNames" required: - - aggregation - - metric - - interval + - formTrigger type: object - GovernanceInsightAuditQuery: - description: An audit log query used to compute an insight value. + FormType: + default: forms + description: The resource type for a form. + enum: + - forms + example: forms + type: string + x-enum-varnames: + - FORMS + FormUiDefinition: + additionalProperties: {} + description: UI configuration for rendering form fields, including widget overrides, field ordering, and themes. properties: - compute: - $ref: "#/components/schemas/GovernanceInsightAuditCompute" - indexes: - description: The audit log indexes the query runs against. - example: - - "main" + "ui:order": + description: The order in which form fields are displayed. items: - description: An audit log index name. type: string type: array - query: - description: The audit log search query string. - example: "@evt.name:Dashboard" - type: string - source: - description: The data source the query runs against. - example: "audit" - type: string - required: - - source - - query - - indexes - - compute + "ui:theme": + $ref: "#/components/schemas/FormUiDefinitionUiTheme" type: object - GovernanceInsightData: - description: A governance insight resource. + FormUiDefinitionUiTheme: + description: The visual theme applied to the form. properties: - attributes: - $ref: "#/components/schemas/GovernanceInsightAttributes" - id: - description: The unique identifier of the insight. - example: "498ee21f-8037-48b8-a961-a488692902f4" - type: string - type: - $ref: "#/components/schemas/GovernanceInsightResourceType" - required: - - id - - type - - attributes + primaryColor: + $ref: "#/components/schemas/FormUiDefinitionUiThemePrimaryColor" type: object - GovernanceInsightDirectionality: - description: Whether an increase in the insight's value is good, bad, or neutral. + FormUiDefinitionUiThemePrimaryColor: + description: The primary color of the form theme. enum: - - neutral - - increase_better - - decrease_better - example: "neutral" + - gray + - red + - orange + - yellow + - green + - light-blue + - dark-blue + - magenta + - indigo type: string x-enum-varnames: - - NEUTRAL - - INCREASE_BETTER - - DECREASE_BETTER - GovernanceInsightEventCompute: - description: The aggregation applied to an event query. + - GRAY + - RED + - ORANGE + - YELLOW + - GREEN + - LIGHT_BLUE + - DARK_BLUE + - MAGENTA + - INDIGO + FormUpdateAttributes: + description: The fields to update on a form. At least one field must be provided. properties: - aggregation: - description: The aggregation function to apply. - example: "count" + datastore_config: + $ref: "#/components/schemas/FormDatastoreConfigAttributes" + description: + description: The updated description of the form. + example: An updated description. type: string - interval: - description: The aggregation time window, in milliseconds. - example: 86400000 - format: int64 - type: integer - required: - - aggregation - - interval - type: object - GovernanceInsightEventQuery: - description: An event query used to compute an insight value. - properties: - compute: - $ref: "#/components/schemas/GovernanceInsightEventCompute" - nullable: true - indexes: - description: The event indexes the query runs against. - example: - - "main" - items: - description: An event index name. - type: string - type: array - query: - description: The event search query string. - example: "source:cloudtrail" + name: + description: The updated name of the form. + example: Updated Form Name type: string - required: - - query - - indexes type: object - GovernanceInsightMetricQuery: - description: A metric query used to compute an insight value. + FormVersionAttributes: + description: The attributes of a form version. properties: - query: - description: The query string. - example: "avg:system.cpu.user{*}" + created_at: + description: The time at which the version was created. + example: "2026-05-29T20:06:14.895921Z" + format: date-time type: string - reducer: - description: How the query result series is reduced to a single value. - example: "avg" + data_definition: + $ref: "#/components/schemas/FormDataDefinition" + definition_signature: + description: The signature of the version definition. + example: '{"signature":"b7f312957a80cea2c8c9950532b205a90a3f8a7ebb7e52fc25437a25d903d545","version":1}' type: string - source: - description: The data source the query runs against. - example: "metrics" + etag: + description: The ETag for optimistic concurrency control. + example: b51f08b698d88d8027a935d9db649774949f5fb41a0c559bfee6a9a13225c72d + nullable: true type: string - required: - - source - - query - - reducer - type: object - GovernanceInsightPercentageQuery: - description: A percentage query that computes an insight value as a ratio of two metric queries. - properties: - denominator_query: - $ref: "#/components/schemas/GovernanceInsightMetricQuery" - numerator_query: - $ref: "#/components/schemas/GovernanceInsightMetricQuery" - required: - - numerator_query - - denominator_query - type: object - GovernanceInsightQueryConfig: - description: Query execution context for running insight queries directly. - properties: - chart_type: - description: The chart type used to render the insight. - example: "line" + id: + description: The ID of the form version. + example: "126" type: string - comparison_shift: - description: The window used for the previous value comparison; for example, `week` or `month`. - example: "month" + modified_at: + description: The time at which the version was last modified. + example: "2026-05-29T20:06:14.949163Z" + format: date-time type: string - default_value: - description: The default value to display when no data is available. - example: 0 + state: + $ref: "#/components/schemas/FormVersionState" + ui_definition: + $ref: "#/components/schemas/FormUiDefinition" + user_id: + description: The ID of the user who created this version. + example: 10001 format: int64 type: integer - directionality: - $ref: "#/components/schemas/GovernanceInsightDirectionality" - effective_time_window_days: - description: The number of days the insight value is computed over. - example: 30 + user_uuid: + description: The UUID of the user who created this version. + example: 1fc709aa-be19-4539-a47d-52a30d78a978 + format: uuid + type: string + version: + description: The sequential version number. + example: 1 format: int64 type: integer required: - - effective_time_window_days - - comparison_shift + - created_at + - data_definition + - definition_signature + - etag + - modified_at + - state + - ui_definition + - user_id + - user_uuid + - version type: object - GovernanceInsightResourceType: - description: JSON:API resource type for a governance insight. - enum: - - insight - example: "insight" - type: string - x-enum-varnames: - - INSIGHT - GovernanceInsightUsageQuery: - description: A usage query used to compute an insight value. + FormVersionData: + description: A form version resource object. properties: - query: - description: The usage query string. - example: "logs_indexed_events" - type: string - reducer: - description: How the query result series is reduced to a single value. - example: "sum" + attributes: + $ref: "#/components/schemas/FormVersionAttributes" + id: + description: The ID of the form version. + example: "126" type: string + type: + $ref: "#/components/schemas/FormVersionType" required: - - query - - reducer + - id + - type + - attributes type: object - GovernanceInsightsDataArray: - description: An array of governance insight resources. - items: - $ref: "#/components/schemas/GovernanceInsightData" - type: array - GovernanceInsightsResponse: - description: A list of governance insights. + FormVersionResponse: + description: A response containing a single form version. properties: data: - $ref: "#/components/schemas/GovernanceInsightsDataArray" + $ref: "#/components/schemas/FormVersionData" required: - data type: object - GovernanceMitigationRequest: - description: A request to mitigate a set of governance detections. + FormVersionState: + description: The state of a form version. + enum: + - draft + - frozen + example: frozen + type: string + x-enum-varnames: + - DRAFT + - FROZEN + FormVersionType: + default: form_versions + description: The resource type for a form version. + enum: + - form_versions + example: form_versions + type: string + x-enum-varnames: + - FORM_VERSIONS + FormsResponse: + description: A response containing a list of forms. properties: data: - $ref: "#/components/schemas/GovernanceMitigationRequestData" + $ref: "#/components/schemas/FormDataList" required: - data type: object - GovernanceMitigationRequestAttributes: - description: The attributes of a governance mitigation request. + FormulaLimit: + description: |- + Message for specifying limits to the number of values returned by a query. + This limit is only for scalar queries and has no effect on timeseries queries. properties: - detection_ids: - description: The identifiers of the detections to mitigate in this request. - example: - - "3f9b2c1a-8d4e-4a6b-9c2f-1e7d5a0b3c4d" - items: - description: The identifier of a detection to mitigate in this request. - type: string - type: array - detection_type: - description: The detection type whose detections should be mitigated. - example: "unused_api_keys" - type: string - mitigation_parameters: - $ref: "#/components/schemas/GovernanceControlParametersMap" - nullable: true - mitigation_type: - description: The mitigation to apply to the selected detections. Defaults to the control's configured mitigation when omitted. - example: "revoke_api_key" - type: string - required: - - detection_type - - detection_ids + count: + description: The number of results to which to limit. + example: 10 + format: int32 + maximum: 2147483647 + type: integer + order: + $ref: "#/components/schemas/QuerySortOrder" type: object - GovernanceMitigationRequestData: - description: The data of a governance mitigation request. + FrameworkHandleAndVersionResponseData: + description: Contains type and attributes for custom frameworks. properties: attributes: - $ref: "#/components/schemas/GovernanceMitigationRequestAttributes" + $ref: "#/components/schemas/CustomFrameworkDataHandleAndVersion" + id: + description: The ID of the custom framework. + example: handle-version + type: string type: - $ref: "#/components/schemas/GovernanceControlDetectionResourceType" + $ref: "#/components/schemas/CustomFrameworkType" required: + - id - type + - attributes type: object - GovernanceNotificationSettingsAttributes: - description: The attributes of the organization-wide governance notification settings. - properties: - assignment_notifications_enabled: - description: Whether notifications are sent to users when detections are assigned to them. - example: true - type: boolean - required: - - assignment_notifications_enabled - type: object - GovernanceNotificationSettingsData: - description: A governance notification settings resource. + FreshserviceAPIKey: + description: The definition of the `FreshserviceAPIKey` object. properties: - attributes: - $ref: "#/components/schemas/GovernanceNotificationSettingsAttributes" - id: - description: The unique identifier of the organization the notification settings apply to. - example: "11111111-2222-3333-4444-555555555555" + api_key: + description: The `FreshserviceAPIKey` `api_key`. + example: "" + type: string + domain: + description: The `FreshserviceAPIKey` `domain`. + example: "" type: string type: - $ref: "#/components/schemas/GovernanceNotificationSettingsResourceType" + $ref: "#/components/schemas/FreshserviceAPIKeyType" required: - - id - type - - attributes + - domain + - api_key type: object - GovernanceNotificationSettingsResourceType: - description: Governance notification settings resource type. + FreshserviceAPIKeyType: + description: The definition of the `FreshserviceAPIKey` object. enum: - - governance_notification_settings - example: "governance_notification_settings" + - FreshserviceAPIKey + example: FreshserviceAPIKey type: string x-enum-varnames: - - GOVERNANCE_NOTIFICATION_SETTINGS - GovernanceNotificationSettingsResponse: - description: The organization-wide governance notification settings. - properties: - data: - $ref: "#/components/schemas/GovernanceNotificationSettingsData" - required: - - data - type: object - GovernanceNotificationSettingsUpdateAttributes: - description: The attributes of the governance notification settings that can be updated. Only the attributes present in the request are modified. - properties: - assignment_notifications_enabled: - description: Whether notifications are sent to users when detections are assigned to them. - example: true - type: boolean - type: object - GovernanceNotificationSettingsUpdateData: - description: The data of a governance notification settings update request. - properties: - attributes: - $ref: "#/components/schemas/GovernanceNotificationSettingsUpdateAttributes" - type: - $ref: "#/components/schemas/GovernanceNotificationSettingsResourceType" - required: - - type - type: object - GovernanceNotificationSettingsUpdateRequest: - description: A request to update the organization-wide governance notification settings. - properties: - data: - $ref: "#/components/schemas/GovernanceNotificationSettingsUpdateData" - required: - - data - type: object - GreyNoiseAPIKey: - description: The definition of the `GreyNoiseAPIKey` object. + - FRESHSERVICEAPIKEY + FreshserviceAPIKeyUpdate: + description: The definition of the `FreshserviceAPIKey` object. properties: api_key: - description: The `GreyNoiseAPIKey` `api_key`. - example: "" + description: The `FreshserviceAPIKeyUpdate` `api_key`. type: string - type: - $ref: "#/components/schemas/GreyNoiseAPIKeyType" - required: - - type - - api_key - type: object - GreyNoiseAPIKeyType: - description: The definition of the `GreyNoiseAPIKey` object. - enum: - - GreyNoiseAPIKey - example: GreyNoiseAPIKey - type: string - x-enum-varnames: - - GREYNOISEAPIKEY - GreyNoiseAPIKeyUpdate: - description: The definition of the `GreyNoiseAPIKey` object. - properties: - api_key: - description: The `GreyNoiseAPIKeyUpdate` `api_key`. + domain: + description: The `FreshserviceAPIKeyUpdate` `domain`. type: string type: - $ref: "#/components/schemas/GreyNoiseAPIKeyType" + $ref: "#/components/schemas/FreshserviceAPIKeyType" required: - type type: object - GreyNoiseCredentials: - description: The definition of the `GreyNoiseCredentials` object. + FreshserviceCredentials: + description: The definition of the `FreshserviceCredentials` object. oneOf: - - $ref: "#/components/schemas/GreyNoiseAPIKey" - GreyNoiseCredentialsUpdate: - description: The definition of the `GreyNoiseCredentialsUpdate` object. + - $ref: "#/components/schemas/FreshserviceAPIKey" + FreshserviceCredentialsUpdate: + description: The definition of the `FreshserviceCredentialsUpdate` object. oneOf: - - $ref: "#/components/schemas/GreyNoiseAPIKeyUpdate" - GreyNoiseIntegration: - description: The definition of the `GreyNoiseIntegration` object. + - $ref: "#/components/schemas/FreshserviceAPIKeyUpdate" + FreshserviceIntegration: + description: The definition of the `FreshserviceIntegration` object. properties: credentials: - $ref: "#/components/schemas/GreyNoiseCredentials" + $ref: "#/components/schemas/FreshserviceCredentials" type: - $ref: "#/components/schemas/GreyNoiseIntegrationType" + $ref: "#/components/schemas/FreshserviceIntegrationType" required: - type - credentials type: object - GreyNoiseIntegrationType: - description: The definition of the `GreyNoiseIntegrationType` object. + FreshserviceIntegrationType: + description: The definition of the `FreshserviceIntegrationType` object. enum: - - GreyNoise - example: GreyNoise + - Freshservice + example: Freshservice type: string x-enum-varnames: - - GREYNOISE - GreyNoiseIntegrationUpdate: - description: The definition of the `GreyNoiseIntegrationUpdate` object. + - FRESHSERVICE + FreshserviceIntegrationUpdate: + description: The definition of the `FreshserviceIntegrationUpdate` object. properties: credentials: - $ref: "#/components/schemas/GreyNoiseCredentialsUpdate" + $ref: "#/components/schemas/FreshserviceCredentialsUpdate" type: - $ref: "#/components/schemas/GreyNoiseIntegrationType" + $ref: "#/components/schemas/FreshserviceIntegrationType" required: - type type: object - GroupScalarColumn: - description: A column containing the tag keys and values in a group. + FullAPIKey: + description: Datadog API key. properties: - name: - description: The name of the tag key or group. - example: env + attributes: + $ref: "#/components/schemas/FullAPIKeyAttributes" + id: + description: ID of the API key. type: string + relationships: + $ref: "#/components/schemas/APIKeyRelationships" type: - $ref: "#/components/schemas/ScalarColumnTypeGroup" - values: - description: The array of tag values for each group found for the results of the formulas or queries. - example: [["production"], ["staging"]] - items: - description: An individual tag value for a given group column. - items: - description: One tag value within a values array. - example: production - type: string - type: array - type: array + $ref: "#/components/schemas/APIKeysType" type: object - GroupTags: - description: List of tags that apply to a single response value. - items: - description: A single tag that applies to a single response value. - example: "env:production" - type: string - type: array - GuardrailMetric: - description: Guardrail metric details. + FullAPIKeyAttributes: + description: Attributes of a full API key. properties: - metric_id: - description: The metric ID to monitor. - example: "metric-error-rate" + category: + description: The category of the API key. type: string - trigger_action: - $ref: "#/components/schemas/GuardrailTriggerAction" - triggered_by: - description: The signal or system that triggered the action. - example: "guardrail_monitor" + created_at: + description: Creation date of the API key. + example: "2020-11-23T10:00:00.000Z" + format: date-time + readOnly: true + type: string + date_last_used: + description: "Date the API Key was last used" + example: "2020-11-27T10:00:00.000Z" + format: date-time nullable: true + readOnly: true type: string - required: - - metric_id - - trigger_action - type: object - GuardrailMetricRequest: - description: Guardrail metric request payload. - properties: - metric_id: - description: The metric ID to monitor. - example: "metric-error-rate" + key: + description: The API key. + readOnly: true type: string - trigger_action: - $ref: "#/components/schemas/GuardrailTriggerAction" - required: - - metric_id - - trigger_action - type: object - GuardrailTriggerAction: - description: Action to perform when a guardrail threshold is triggered. - enum: - - PAUSE - - ABORT - example: "PAUSE" - type: string - x-enum-varnames: - - PAUSE - - ABORT - HTTPBody: - description: The definition of `HTTPBody` object. - properties: - content: - description: Serialized body content - example: '{"some-json": "with-value"}' + last4: + description: The last four characters of the API key. + example: "abcd" + maxLength: 4 + minLength: 4 + readOnly: true type: string - content_type: - description: Content type of the body - example: application/json + modified_at: + description: Date the API key was last modified. + example: "2020-11-23T10:00:00.000Z" + format: date-time + readOnly: true type: string + name: + description: Name of the API key. + example: "API Key for submitting metrics" + type: string + private_action_runner_enroll_enabled: + description: Whether the API key can enroll a Private Action Runner. + type: boolean + remote_config_read_enabled: + description: The remote config read enabled status. + type: boolean type: object - HTTPCDGatesBadRequestResponse: - description: Bad request. - properties: - errors: - description: Structured errors. - items: - $ref: "#/components/schemas/HTTPCIAppError" - type: array - type: object - HTTPCDGatesNotFoundResponse: - description: Deployment gate not found. - properties: - errors: - description: Structured errors. - items: - $ref: "#/components/schemas/HTTPCIAppError" - type: array - type: object - HTTPCDRulesNotFoundResponse: - description: Deployment rule not found. + FullApplicationKey: + description: Datadog application key. properties: - errors: - description: Structured errors. - items: - $ref: "#/components/schemas/HTTPCIAppError" - type: array + attributes: + $ref: "#/components/schemas/FullApplicationKeyAttributes" + id: + description: ID of the application key. + type: string + relationships: + $ref: "#/components/schemas/ApplicationKeyRelationships" + type: + $ref: "#/components/schemas/ApplicationKeysType" type: object - HTTPCIAppError: - description: List of errors. + FullApplicationKeyAttributes: + description: Attributes of a full application key. properties: - detail: - description: Error message. - example: "Malformed payload" + created_at: + description: Creation date of the application key. + example: "2020-11-23T10:00:00.000Z" + format: date-time + readOnly: true type: string - status: - description: Error code. - example: "400" + key: + description: The application key. + readOnly: true type: string - title: - description: Error title. - example: "Bad Request" + last4: + description: The last four characters of the application key. + example: "abcd" + maxLength: 4 + minLength: 4 + readOnly: true type: string - type: object - HTTPCIAppErrors: - description: Errors occurred. - properties: - errors: - description: Structured errors. + last_used_at: + description: Last usage timestamp of the application key. + example: "2020-12-20T10:00:00.000Z" + format: date-time + nullable: true + readOnly: true + type: string + name: + description: Name of the application key. + example: "Application Key for managing dashboards" + type: string + scopes: + description: Array of scopes to grant the application key. + example: ["dashboards_read", "dashboards_write", "dashboards_public_share"] items: - $ref: "#/components/schemas/HTTPCIAppError" + description: Name of scope. + type: string + nullable: true type: array type: object - HTTPCredentials: - description: The definition of `HTTPCredentials` object. - oneOf: - - $ref: "#/components/schemas/HTTPTokenAuth" - HTTPCredentialsUpdate: - description: The definition of `HTTPCredentialsUpdate` object. - oneOf: - - $ref: "#/components/schemas/HTTPTokenAuthUpdate" - HTTPHeader: - description: The definition of `HTTPHeader` object. + FullCustomFrameworkData: + description: Contains type and attributes for custom frameworks. properties: - name: - description: The `HTTPHeader` `name`. - example: MyHttpHeader - pattern: ^[A-Za-z][A-Za-z\\d\\-\\_]*$ - type: string - value: - description: The `HTTPHeader` `value`. - example: Some header value + attributes: + $ref: "#/components/schemas/FullCustomFrameworkDataAttributes" + id: + description: The ID of the custom framework. + example: handle-version type: string + type: + $ref: "#/components/schemas/CustomFrameworkType" required: - - name - - value + - id + - type + - attributes type: object - HTTPHeaderUpdate: - description: The definition of `HTTPHeaderUpdate` object. + FullCustomFrameworkDataAttributes: + description: Full Framework Data Attributes. properties: - deleted: - description: Should the header be deleted. - type: boolean + handle: + description: Framework Handle + example: sec2 + type: string + icon_url: + description: Framework Icon URL + example: https://example.com/icon.png + type: string name: - description: The `HTTPHeaderUpdate` `name`. - example: MyHttpHeader - pattern: ^[A-Za-z][A-Za-z\\d\\-\\_]*$ + description: Framework Name + example: security-framework type: string - value: - description: The `HTTPHeaderUpdate` `value`. - example: Updated Header Value + requirements: + description: Framework Requirements + items: + $ref: "#/components/schemas/CustomFrameworkRequirement" + type: array + version: + description: Framework Version + example: "2" type: string required: + - handle + - version - name + - requirements type: object - HTTPIntegration: - description: The definition of `HTTPIntegration` object. + FullPersonalAccessToken: + description: Datadog access token, including the token key. properties: - base_url: - description: Base HTTP url for the integration - example: http://datadoghq.com + attributes: + $ref: "#/components/schemas/FullPersonalAccessTokenAttributes" + id: + description: ID of the access token. type: string - credentials: - $ref: "#/components/schemas/HTTPCredentials" + relationships: + $ref: "#/components/schemas/FullPersonalAccessTokenRelationships" type: - $ref: "#/components/schemas/HTTPIntegrationType" - required: - - type - - base_url - - credentials + $ref: "#/components/schemas/PersonalAccessTokensType" type: object - HTTPIntegrationType: - description: The definition of `HTTPIntegrationType` object. - enum: - - HTTP - example: HTTP - type: string - x-enum-varnames: - - HTTP - HTTPIntegrationUpdate: - description: The definition of `HTTPIntegrationUpdate` object. + FullPersonalAccessTokenAttributes: + description: Attributes of a full access token, including the token key. properties: - base_url: - description: Base HTTP url for the integration - example: http://datadoghq.com + created_at: + description: Creation date of the access token. + example: "2024-01-01T00:00:00+00:00" + format: date-time + readOnly: true type: string - credentials: - $ref: "#/components/schemas/HTTPCredentialsUpdate" - type: - $ref: "#/components/schemas/HTTPIntegrationType" - required: - - type - type: object - HTTPLog: - description: Structured log message. - items: - $ref: "#/components/schemas/HTTPLogItem" - type: array - HTTPLogError: - description: List of errors. - properties: - detail: - description: Error message. - example: "Malformed payload" + expires_at: + description: Expiration date of the access token. + example: "2025-12-31T23:59:59+00:00" + format: date-time + nullable: true + readOnly: true type: string - status: - description: Error code. - example: "400" + key: + description: The access token key. Only returned upon creation. + readOnly: true type: string - title: - description: Error title. - example: "Bad Request" + name: + description: Name of the access token. + example: "My Access Token" type: string - type: object - HTTPLogErrors: - description: Invalid query performed. - properties: - errors: - description: Structured errors. + public_portion: + description: The public portion of the access token. + example: "ddpat_abc123" + readOnly: true + type: string + scopes: + description: Array of scopes granted to the access token. + example: + - "dashboards_read" + - "dashboards_write" items: - $ref: "#/components/schemas/HTTPLogError" + description: Name of scope. + type: string type: array type: object - HTTPLogItem: - additionalProperties: - description: Additional log attributes. - description: Logs that are sent over HTTP. + FullPersonalAccessTokenRelationships: + description: Resources related to the access token. properties: - ddsource: - description: |- - The integration name associated with your log: the technology from which the log originated. - When it matches an integration name, Datadog automatically installs the corresponding parsers and facets. - See [reserved attributes](https://docs.datadoghq.com/logs/log_configuration/attributes_naming_convention/#reserved-attributes). - example: nginx - type: string - ddtags: - description: Tags associated with your logs. - example: env:staging,version:5.1 + owned_by: + $ref: "#/components/schemas/RelationshipToUser" + type: object + FullServiceAccessToken: + description: Datadog access token, including the token key. + properties: + attributes: + $ref: "#/components/schemas/FullServiceAccessTokenAttributes" + id: + description: ID of the access token. type: string - hostname: - description: The name of the originating host of the log. - example: i-012345678 + relationships: + $ref: "#/components/schemas/FullServiceAccessTokenRelationships" + type: + $ref: "#/components/schemas/ServiceAccessTokensType" + type: object + FullServiceAccessTokenAttributes: + description: Attributes of a full access token, including the token key. + properties: + created_at: + description: Creation date of the access token. + example: "2024-01-01T00:00:00+00:00" + format: date-time + readOnly: true type: string - message: - description: |- - The message [reserved attribute](https://docs.datadoghq.com/logs/log_configuration/attributes_naming_convention/#reserved-attributes) - of your log. By default, Datadog ingests the value of the message attribute as the body of the log entry. - That value is then highlighted and displayed in the Logstream, where it is indexed for full text search. - example: 2019-11-19T14:37:58,995 INFO [process.name][20081] Hello World + expires_at: + description: Expiration date of the access token. + example: "2025-12-31T23:59:59+00:00" + format: date-time + nullable: true + readOnly: true type: string - service: - description: |- - The name of the application or service generating the log events. - It is used to switch from Logs to APM, so make sure you define the same value when you use both products. - See [reserved attributes](https://docs.datadoghq.com/logs/log_configuration/attributes_naming_convention/#reserved-attributes). - example: payment + key: + description: The access token key. Only returned upon creation. + readOnly: true type: string - required: - - message - type: object - HTTPToken: - description: The definition of `HTTPToken` object. - properties: name: - description: The `HTTPToken` `name`. - example: MyToken - pattern: ^[A-Za-z][A-Za-z\\d]*$ + description: Name of the access token. + example: "My Access Token" type: string - type: - $ref: "#/components/schemas/TokenType" - value: - description: The `HTTPToken` `value`. - example: Some Token Value + public_portion: + description: The public portion of the access token. + example: "ddsat_abc123" + readOnly: true type: string - required: - - name - - value - - type - type: object - HTTPTokenAuth: - description: The definition of `HTTPTokenAuth` object. - properties: - body: - $ref: "#/components/schemas/HTTPBody" - headers: - description: The `HTTPTokenAuth` `headers`. - items: - $ref: "#/components/schemas/HTTPHeader" - type: array - tokens: - description: The `HTTPTokenAuth` `tokens`. + scopes: + description: Array of scopes granted to the access token. + example: + - "dashboards_read" + - "dashboards_write" items: - $ref: "#/components/schemas/HTTPToken" + description: Name of scope. + type: string type: array + type: object + FullServiceAccessTokenRelationships: + description: Resources related to the access token. + properties: + owned_by: + $ref: "#/components/schemas/RelationshipToServiceAccount" + type: object + GCPCredentials: + description: The definition of the `GCPCredentials` object. + oneOf: + - $ref: "#/components/schemas/GCPServiceAccount" + GCPCredentialsUpdate: + description: The definition of the `GCPCredentialsUpdate` object. + oneOf: + - $ref: "#/components/schemas/GCPServiceAccountUpdate" + GCPIntegration: + description: The definition of the `GCPIntegration` object. + properties: + credentials: + $ref: "#/components/schemas/GCPCredentials" type: - $ref: "#/components/schemas/HTTPTokenAuthType" - url_parameters: - description: The `HTTPTokenAuth` `url_parameters`. - items: - $ref: "#/components/schemas/UrlParam" - type: array + $ref: "#/components/schemas/GCPIntegrationType" required: - type + - credentials type: object - HTTPTokenAuthType: - description: The definition of `HTTPTokenAuthType` object. + GCPIntegrationType: + description: The definition of the `GCPIntegrationType` object. enum: - - HTTPTokenAuth - example: HTTPTokenAuth + - GCP + example: GCP type: string x-enum-varnames: - - HTTPTOKENAUTH - HTTPTokenAuthUpdate: - description: The definition of `HTTPTokenAuthUpdate` object. - properties: - body: - $ref: "#/components/schemas/HTTPBody" - headers: - description: The `HTTPTokenAuthUpdate` `headers`. - items: - $ref: "#/components/schemas/HTTPHeaderUpdate" - type: array - tokens: - description: The `HTTPTokenAuthUpdate` `tokens`. - items: - $ref: "#/components/schemas/HTTPTokenUpdate" - type: array - type: - $ref: "#/components/schemas/HTTPTokenAuthType" - url_parameters: - description: The `HTTPTokenAuthUpdate` `url_parameters`. - items: - $ref: "#/components/schemas/UrlParamUpdate" - type: array - required: - - type - type: object - HTTPTokenUpdate: - description: The definition of `HTTPTokenUpdate` object. + - GCP + GCPIntegrationUpdate: + description: The definition of the `GCPIntegrationUpdate` object. properties: - deleted: - description: Should the header be deleted. - type: boolean - name: - description: The `HTTPToken` `name`. - example: MyToken - pattern: ^[A-Za-z][A-Za-z\\d]*$ - type: string + credentials: + $ref: "#/components/schemas/GCPCredentialsUpdate" type: - $ref: "#/components/schemas/TokenType" - value: - description: The `HTTPToken` `value`. - example: Some Token Value - type: string + $ref: "#/components/schemas/GCPIntegrationType" required: - - name - type - - value type: object - HamrOrgConnectionAttributesRequest: - description: Attributes for a HAMR organization connection request. + GCPMetricNamespaceConfig: + description: Configuration for a GCP metric namespace. properties: - hamr_status: - $ref: "#/components/schemas/HamrOrgConnectionStatus" - is_primary: - description: |- - Indicates whether this organization is the primary organization in the HAMR relationship. - If true, this is the primary organization. If false, this is the secondary/backup organization. + disabled: + default: false + description: When disabled, Datadog does not collect metrics that are related to this GCP metric namespace. example: true type: boolean - modified_by: - description: Username or identifier of the user who last modified this HAMR connection. - example: "admin@example.com" - type: string - target_org_datacenter: - description: Datacenter location of the target organization (e.g., us1, eu1, us5). - example: "us1" - type: string - target_org_name: - description: Name of the target organization in the HAMR relationship. - example: "Production Backup Org" - type: string - target_org_uuid: - description: UUID of the target organization in the HAMR relationship. - example: "660f9511-f3ac-52e5-b827-557766551111" - type: string - required: - - target_org_uuid - - target_org_name - - target_org_datacenter - - hamr_status - - is_primary - - modified_by - type: object - HamrOrgConnectionAttributesResponse: - description: Attributes of a HAMR organization connection response. - properties: - hamr_status: - $ref: "#/components/schemas/HamrOrgConnectionStatus" - is_primary: + filters: description: |- - Indicates whether this organization is the primary organization in the HAMR relationship. - If true, this is the primary organization. If false, this is the secondary/backup organization. - example: true - type: boolean - modified_at: - description: Timestamp of when this HAMR connection was last modified (RFC3339 format). - example: "2026-01-13T17:26:48.830968Z" - type: string - modified_by: - description: Username or identifier of the user who last modified this HAMR connection. - example: "admin@example.com" - type: string - target_org_datacenter: - description: Datacenter location of the target organization (e.g., us1, eu1, us5). - example: "us1" - type: string - target_org_name: - description: Name of the target organization in the HAMR relationship. - example: "Production Backup Org" - type: string - target_org_uuid: - description: UUID of the target organization in the HAMR relationship. - example: "660f9511-f3ac-52e5-b827-557766551111" + When enabled, Datadog applies these additional filters to limit metric collection. A metric is collected only if it does not match all exclusion filters and matches at least one allow filter. + example: ["snapshot.*", "!*_by_region"] + items: + description: A metric namespace filter + type: string + type: array + id: + description: The id of the GCP metric namespace. + example: "pubsub" type: string - required: - - target_org_uuid - - target_org_name - - target_org_datacenter - - hamr_status - - is_primary - - modified_at - - modified_by type: object - HamrOrgConnectionDataRequest: - description: Data object for a HAMR organization connection request. + GCPMonitoredResourceConfig: + description: Configuration for a GCP monitored resource. properties: - attributes: - $ref: "#/components/schemas/HamrOrgConnectionAttributesRequest" - id: - description: The organization UUID for this HAMR connection. Must match the authenticated organization's UUID. - example: "550e8400-e29b-41d4-a716-446655440000" - type: string + filters: + description: |- + List of filters to limit the monitored resources that are pulled into Datadog by using tags. + Only monitored resources that apply to specified filters are imported into Datadog. + example: ["$KEY:$VALUE"] + items: + description: A monitored resource filter + type: string + type: array type: - $ref: "#/components/schemas/HamrOrgConnectionType" - required: - - id - - type - - attributes + $ref: "#/components/schemas/GCPMonitoredResourceConfigType" type: object - HamrOrgConnectionDataResponse: - description: Data object for a HAMR organization connection response. + GCPMonitoredResourceConfigType: + description: The GCP monitored resource type. Only a subset of resource types are supported. + enum: ["cloud_function", "cloud_run_revision", "gce_instance"] + example: "gce_instance" + type: string + x-enum-varnames: + - CLOUD_FUNCTION + - CLOUD_RUN_REVISION + - GCE_INSTANCE + GCPSTSDelegateAccount: + description: Datadog principal service account info. properties: attributes: - $ref: "#/components/schemas/HamrOrgConnectionAttributesResponse" + $ref: "#/components/schemas/GCPSTSDelegateAccountAttributes" id: - description: The organization UUID for this HAMR connection. - example: "550e8400-e29b-41d4-a716-446655440000" + description: The ID of the delegate service account. + example: "ddgci-1a19n28hb1a812221893@datadog-gci-sts-us5-prod.iam.gserviceaccount.com" type: string type: - $ref: "#/components/schemas/HamrOrgConnectionType" - required: - - id - - type - - attributes + $ref: "#/components/schemas/GCPSTSDelegateAccountType" type: object - HamrOrgConnectionRequest: - description: Request payload for creating or updating a HAMR organization connection. + GCPSTSDelegateAccountAttributes: + description: Your delegate account attributes. properties: - data: - $ref: "#/components/schemas/HamrOrgConnectionDataRequest" - required: - - data + delegate_account_email: + description: Your organization's Datadog principal email address. + example: "ddgci-1a19n28hb1a812221893@datadog-gci-sts-us5-prod.iam.gserviceaccount.com" + type: string type: object - HamrOrgConnectionResponse: - description: Response payload for a HAMR organization connection. + GCPSTSDelegateAccountResponse: + description: Your delegate service account response data. properties: data: - $ref: "#/components/schemas/HamrOrgConnectionDataResponse" - required: - - data + $ref: "#/components/schemas/GCPSTSDelegateAccount" type: object - HamrOrgConnectionStatus: - description: |- - Status of the HAMR connection: - - 0: UNSPECIFIED - Connection status not specified - - 1: ONBOARDING - Initial setup of HAMR connection - - 2: PASSIVE - Secondary organization in passive standby mode - - 3: FAILOVER - Liminal status between PASSIVE and ACTIVE - - 4: ACTIVE - Organization is an active failover - - 5: RECOVERY - Recovery operation in progress - enum: - - 0 - - 1 - - 2 - - 3 - - 4 - - 5 - example: 4 - format: int64 - type: integer - x-enum-varnames: - - UNSPECIFIED - - ONBOARDING - - PASSIVE - - FAILOVER - - ACTIVE - - RECOVERY - HamrOrgConnectionType: - description: Type of the HAMR organization connection resource. - enum: - - hamr_org_connections - example: hamr_org_connections - type: string - x-enum-varnames: - - HAMR_ORG_CONNECTIONS - HistoricalJobDataType: - description: Type of payload. + GCPSTSDelegateAccountType: + default: gcp_sts_delegate + description: The type of account. enum: - - historicalDetectionsJob + - gcp_sts_delegate + example: gcp_sts_delegate type: string x-enum-varnames: - - HISTORICALDETECTIONSJOB - HistoricalJobListMeta: - description: Metadata about the list of jobs. - properties: - totalCount: - description: Number of jobs in the list. - format: int32 - maximum: 2147483647 - type: integer - type: object - HistoricalJobOptions: - description: Job options. + - GCP_STS_DELEGATE + GCPSTSServiceAccount: + description: Info on your service account. properties: - anomalyDetectionOptions: - $ref: "#/components/schemas/SecurityMonitoringRuleAnomalyDetectionOptions" - detectionMethod: - $ref: "#/components/schemas/SecurityMonitoringRuleDetectionMethod" - evaluationWindow: - $ref: "#/components/schemas/SecurityMonitoringRuleEvaluationWindow" - impossibleTravelOptions: - $ref: "#/components/schemas/SecurityMonitoringRuleImpossibleTravelOptions" - keepAlive: - $ref: "#/components/schemas/SecurityMonitoringRuleKeepAlive" - maxSignalDuration: - $ref: "#/components/schemas/SecurityMonitoringRuleMaxSignalDuration" - newValueOptions: - $ref: "#/components/schemas/SecurityMonitoringRuleNewValueOptions" - sequenceDetectionOptions: - $ref: "#/components/schemas/SecurityMonitoringRuleSequenceDetectionOptions" - thirdPartyRuleOptions: - $ref: "#/components/schemas/SecurityMonitoringRuleThirdPartyOptions" + attributes: + $ref: "#/components/schemas/GCPSTSServiceAccountAttributes" + id: + description: Your service account's unique ID. + example: "d291291f-12c2-22g4-j290-123456678897" + type: string + meta: + $ref: "#/components/schemas/GCPServiceAccountMeta" + type: + $ref: "#/components/schemas/GCPServiceAccountType" type: object - HistoricalJobQuery: - description: Query for selecting logs analyzed by the historical job. + GCPSTSServiceAccountAttributes: + description: Attributes associated with your service account. properties: - additionalFilters: - description: Additional filters appended to the query at evaluation time. - type: string - aggregation: - $ref: "#/components/schemas/SecurityMonitoringRuleQueryAggregation" - correlatedByFields: - description: Fields used to correlate results across queries in sequence detection rules. + account_tags: + description: Tags to be associated with GCP metrics and service checks from your account. items: - description: Field. + description: Account Level Tag type: string type: array - correlatedQueryIndex: - description: Zero-based index of the query to correlate with in sequence detection rules. Up to 10 queries are supported, so valid values are 0 to 9. - format: int64 - maximum: 9 - minimum: 0 - type: integer - customQueryExtension: - description: Custom query extension used to refine the base query. + automute: + description: |- + Silence monitors for expected GCE instance shutdowns. + type: boolean + client_email: + description: Your service account email address. + example: "datadog-service-account@test-project.iam.gserviceaccount.com" type: string - dataSource: - $ref: "#/components/schemas/SecurityMonitoringStandardDataSource" - datasetIds: - description: IDs of reference datasets used by this query. - items: - description: Dataset ID. - type: string - type: array - distinctFields: - description: Field for which the cardinality is measured. Sent as an array. + cloud_run_revision_filters: + deprecated: true + description: |- + List of filters to limit the Cloud Run revisions that are pulled into Datadog by using tags. + Only Cloud Run revision resources that apply to specified filters are imported into Datadog. + **Note:** This field is deprecated. Instead, use `monitored_resource_configs` with `type=cloud_run_revision` + example: ["$KEY:$VALUE"] items: - description: Field. + description: Cloud Run revision filters type: string type: array - groupByFields: - description: Fields to group by. + host_filters: + deprecated: true + description: |- + List of filters to limit the VM instances that are pulled into Datadog by using tags. + Only VM instance resources that apply to specified filters are imported into Datadog. + **Note:** This field is deprecated. Instead, use `monitored_resource_configs` with `type=gce_instance` + example: ["$KEY:$VALUE"] items: - description: Field. + description: VM instance filters type: string type: array - hasOptionalGroupByFields: + is_cspm_enabled: + description: |- + When enabled, Datadog will activate the Cloud Security Monitoring product for this service account. Note: This requires resource_collection_enabled to be set to true. + type: boolean + is_global_location_enabled: + default: true + description: When enabled, Datadog collects metrics where location is explicitly stated as "global" or where location information cannot be deduced from GCP labels. + example: true + type: boolean + is_org_folder_resource_collection_enabled: default: false - description: When false, events without a group-by value are ignored by the query. When true, events with missing group-by fields are processed with `N/A`, replacing the missing values. + description: |- + When enabled, Datadog scans for organization and folder-level resources + under the organization the service account belongs to. example: false type: boolean - index: - description: Index used to load the data for this query. - type: string - indexes: - description: Indexes used to load the data for this query. Mutually exclusive with `index`. + is_per_project_quota_enabled: + default: false + description: |- + When enabled, Datadog applies the `X-Goog-User-Project` header, attributing Google Cloud billing and quota usage to the project being monitored rather than the default service account project. + example: true + type: boolean + is_resource_change_collection_enabled: + default: false + description: |- + When enabled, Datadog scans for all resource change data in your Google Cloud environment. + example: true + type: boolean + is_security_command_center_enabled: + default: false + description: |- + When enabled, Datadog will attempt to collect Security Command Center Findings. Note: This requires additional permissions on the service account. + example: true + type: boolean + metric_namespace_configs: + description: Configurations for GCP metric namespaces. + example: [{"disabled": true, "id": "aiplatform"}, {"filters": ["snapshot.*", "!*_by_region"], "id": "pubsub"}] items: - description: Index name. - type: string + $ref: "#/components/schemas/GCPMetricNamespaceConfig" type: array - metrics: - description: Group of target fields to aggregate over when using the sum, max, geo data, or new value aggregations. The sum, max, and geo data aggregations only accept one value in this list, whereas the new value aggregation accepts up to five values. + monitored_resource_configs: + description: Configurations for GCP monitored resources. + example: [{"filters": ["$KEY:$VALUE"], "type": "gce_instance"}] items: - description: Field. + $ref: "#/components/schemas/GCPMonitoredResourceConfig" + type: array + region_filter_configs: + description: Configurations for GCP location filtering, such as region, multi-region, or zone. Only monitored resources that match the specified regions are imported into Datadog. By default, Datadog collects from all locations. + example: ["nam4", "europe-north1"] + items: + description: Region Filter Configs type: string type: array - name: - description: Name of the query. - type: string - query: - description: Query to run on logs. - example: a > 3 - type: string - queryLanguage: - description: Language used to parse the query string. - type: string + resource_collection_enabled: + description: |- + When enabled, Datadog scans for all project-level resources in your GCP environment. + type: boolean type: object - HistoricalJobResponse: - description: Historical job response. + GCPSTSServiceAccountCreateRequest: + description: Data on your newly generated service account. properties: data: - $ref: "#/components/schemas/HistoricalJobResponseData" - type: object - HistoricalJobResponseAttributes: - description: Historical job attributes. - properties: - createdAt: - description: Time when the job was created. - type: string - createdByHandle: - description: The handle of the user who created the job. - type: string - createdByName: - description: The name of the user who created the job. - type: string - createdFromRuleId: - description: ID of the rule used to create the job (if it is created from a rule). - type: string - jobDefinition: - $ref: "#/components/schemas/JobDefinition" - jobName: - description: Job name. - type: string - jobStatus: - description: Job status. - type: string - modifiedAt: - description: Last modification time of the job. - type: string - progressRate: - description: Job execution progress as a value between 0 and 1. Available for ongoing jobs. - format: double - type: number - signalOutput: - description: Whether the job outputs signals. - type: boolean + $ref: "#/components/schemas/GCPSTSServiceAccountData" type: object - HistoricalJobResponseData: - description: Historical job response data. + GCPSTSServiceAccountData: + description: Additional metadata on your generated service account. properties: attributes: - $ref: "#/components/schemas/HistoricalJobResponseAttributes" - id: - description: ID of the job. - type: string - type: - $ref: "#/components/schemas/HistoricalJobDataType" - type: object - HistoricalMetricsConfigurationAttributes: - description: Attributes of a historical metrics configuration. - properties: - created_at: - description: Timestamp when historical metrics ingestion was enabled for the metric. - example: "2024-01-15T12:00:00.000Z" - format: date-time - readOnly: true - type: string - type: object - HistoricalMetricsConfigurationCreateData: - description: Data object for enabling historical metrics ingestion for a metric. - properties: - id: - description: The metric name, used as the resource ID. - example: dd.test.metric - type: string + $ref: "#/components/schemas/GCPSTSServiceAccountAttributes" type: - $ref: "#/components/schemas/HistoricalMetricsConfigurationType" - required: - - id - - type + $ref: "#/components/schemas/GCPServiceAccountType" type: object - HistoricalMetricsConfigurationCreateRequest: - description: Request body for enabling historical metrics ingestion for a metric. + GCPSTSServiceAccountResponse: + description: The account creation response. properties: data: - $ref: "#/components/schemas/HistoricalMetricsConfigurationCreateData" - required: - - data - type: object - HistoricalMetricsConfigurationData: - description: >- - A historical metrics configuration resource object. Existence of this resource means historical metrics ingestion is enabled for the metric; there is no separate enabled attribute. - properties: - attributes: - $ref: "#/components/schemas/HistoricalMetricsConfigurationAttributes" - id: - description: The metric name, used as the resource ID. - example: dd.test.metric - type: string - type: - $ref: "#/components/schemas/HistoricalMetricsConfigurationType" + $ref: "#/components/schemas/GCPSTSServiceAccount" type: object - HistoricalMetricsConfigurationResponse: - description: Response containing a historical metrics configuration. + GCPSTSServiceAccountUpdateRequest: + description: Service account info. properties: data: - $ref: "#/components/schemas/HistoricalMetricsConfigurationData" - readOnly: true + $ref: "#/components/schemas/GCPSTSServiceAccountUpdateRequestData" type: object - HistoricalMetricsConfigurationType: - default: historical_metrics_configurations - description: The historical metrics configuration resource type. - enum: - - historical_metrics_configurations - example: historical_metrics_configurations - type: string - x-enum-varnames: - - HISTORICAL_METRICS_CONFIGURATIONS - HourlyUsage: - description: Hourly usage for a product family for an org. + GCPSTSServiceAccountUpdateRequestData: + description: Data on your service account. properties: attributes: - $ref: "#/components/schemas/HourlyUsageAttributes" + $ref: "#/components/schemas/GCPSTSServiceAccountAttributes" id: - description: Unique ID of the response. + description: Your service account's unique ID. + example: "d291291f-12c2-22g4-j290-123456678897" type: string type: - $ref: "#/components/schemas/UsageTimeSeriesType" + $ref: "#/components/schemas/GCPServiceAccountType" type: object - HourlyUsageAttributes: - description: Attributes of hourly usage for a product family for an org for a time period. + GCPSTSServiceAccountsResponse: + description: Object containing all your STS enabled accounts. properties: - account_name: - description: The account name. - type: string - account_public_id: - description: The account public ID. - type: string - measurements: - description: List of the measured usage values for the product family for the org for the time period. + data: + description: Array of GCP STS enabled service accounts. items: - $ref: "#/components/schemas/HourlyUsageMeasurement" + $ref: "#/components/schemas/GCPSTSServiceAccount" type: array - org_name: - description: The organization name. - type: string - product_family: - description: The product for which usage is being reported. - type: string - public_id: - description: The organization public ID. - type: string - region: - description: The region of the Datadog instance that the organization belongs to. - type: string - timestamp: - description: Datetime in ISO-8601 format, UTC. The hour for the usage. - format: date-time - type: string type: object - HourlyUsageMeasurement: - description: Usage amount for a given usage type. + GCPServiceAccount: + description: The definition of the `GCPServiceAccount` object. properties: - usage_type: - description: Type of usage. + private_key: + description: The `GCPServiceAccount` `private_key`. + example: "" type: string - value: - description: Contains the number measured for the given usage_type during the hour. - format: int64 - nullable: true - type: integer - type: object - HourlyUsageMetadata: - description: The object containing document metadata. - properties: - pagination: - $ref: "#/components/schemas/HourlyUsagePagination" - type: object - HourlyUsagePagination: - description: The metadata for the current pagination. - properties: - next_record_id: - description: The cursor to get the next results (if any). To make the next request, use the same parameters and add `next_record_id`. - nullable: true + service_account_email: + description: The `GCPServiceAccount` `service_account_email`. + example: "" type: string + type: + $ref: "#/components/schemas/GCPServiceAccountCredentialType" + required: + - type + - service_account_email + - private_key type: object - HourlyUsageResponse: - description: Hourly usage response. + GCPServiceAccountCredentialType: + description: The definition of the `GCPServiceAccount` object. + enum: + - GCPServiceAccount + example: GCPServiceAccount + type: string + x-enum-varnames: + - GCPSERVICEACCOUNT + GCPServiceAccountMeta: + description: Additional information related to your service account. properties: - data: - description: Response containing hourly usage. + accessible_projects: + description: The current list of projects accessible from your service account. items: - $ref: "#/components/schemas/HourlyUsage" + description: List of GCP projects. + type: string type: array - meta: - $ref: "#/components/schemas/HourlyUsageMetadata" type: object - HourlyUsageType: - description: Usage type that is being measured. + GCPServiceAccountType: + default: gcp_service_account + description: The type of account. enum: - - app_sec_host_count - - observability_pipelines_bytes_processed - - lambda_traced_invocations_count - example: observability_pipelines_bytes_processed + - gcp_service_account + example: gcp_service_account type: string x-enum-varnames: - - APP_SEC_HOST_COUNT - - OBSERVABILITY_PIPELINES_BYTES_PROCESSSED - - LAMBDA_TRACED_INVOCATIONS_COUNT - ID: - description: The ID of a notification rule. - example: aaa-bbb-ccc - type: string - IL2CPPSourcemapAttributes: - description: Attributes of an IL2CPP mapping file. + - GCP_SERVICE_ACCOUNT + GCPServiceAccountUpdate: + description: The definition of the `GCPServiceAccount` object. properties: - build_id: - description: The build identifier (UUID format). - example: 550e8400-e29b-41d4-a716-446655440000 - type: string - created_at: - description: The timestamp when the mapping file was created. - example: "2024-01-01T00:00:00Z" - format: date-time + private_key: + description: The `GCPServiceAccountUpdate` `private_key`. type: string - mapkind: - description: The type of source map. - example: il2cpp + service_account_email: + description: The `GCPServiceAccountUpdate` `service_account_email`. type: string - size: - description: The size of the mapping file in bytes. - example: 4096 - format: int64 - type: integer + type: + $ref: "#/components/schemas/GCPServiceAccountCredentialType" required: - - mapkind - - size - - created_at + - type type: object - IL2CPPSourcemapData: - description: IL2CPP mapping file data object. + GCPUsageCostConfig: + description: Google Cloud Usage Cost config. properties: attributes: - $ref: "#/components/schemas/IL2CPPSourcemapAttributes" + $ref: "#/components/schemas/GCPUsageCostConfigAttributes" id: - description: The unique identifier of the source map. - example: "8" + description: The ID of the Google Cloud Usage Cost config. type: string type: - $ref: "#/components/schemas/SourcemapDataType" + $ref: "#/components/schemas/GCPUsageCostConfigType" required: - - id - - type - attributes + - type type: object - IOSSourcemapAttributes: - description: Attributes of an iOS dSYM source map. + GCPUsageCostConfigAttributes: + description: Attributes for a Google Cloud Usage Cost config. properties: + account_id: + description: The Google Cloud account ID. + example: "123456_A123BC_12AB34" + type: string + bucket_name: + description: The Google Cloud bucket name used to store the Usage Cost export. + example: "dd-cost-bucket" + type: string created_at: - description: The timestamp when the source map was created. - example: "2024-01-01T00:00:00Z" - format: date-time + description: The timestamp when the Google Cloud Usage Cost config was created. + pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{6}$ type: string - mapkind: - description: The type of source map. - example: ios + dataset: + description: The export dataset name used for the Google Cloud Usage Cost Report. + example: "billing" type: string - size: - description: The size of the dSYM file in bytes. - example: 4096 - format: int64 + error_messages: + description: The error messages for the Google Cloud Usage Cost config. + items: + description: An error message string. + type: string + nullable: true + type: array + export_prefix: + description: The export prefix used for the Google Cloud Usage Cost Report. + example: "datadog_cloud_cost_usage_export" + type: string + export_project_name: + description: The name of the Google Cloud Usage Cost Report. + example: "dd-cloud-cost-report" + type: string + months: + deprecated: true + description: The number of months the report has been backfilled. + format: int32 + maximum: 36 type: integer - uuids: - description: The UUID(s) associated with the dSYM file. - example: 550e8400-e29b-41d4-a716-446655440000 + project_id: + description: The `project_id` of the Google Cloud Usage Cost report. + example: "my-project-123" + type: string + service_account: + description: The unique Google Cloud service account email. + example: "dd-ccm-gcp-integration@my-environment.iam.gserviceaccount.com" + type: string + status: + description: The status of the Google Cloud Usage Cost config. + example: "active" + type: string + status_updated_at: + description: The timestamp when the Google Cloud Usage Cost config status was updated. + pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{6}$ + type: string + updated_at: + description: The timestamp when the Google Cloud Usage Cost config status was updated. + pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{6}$ type: string required: - - mapkind - - size - - created_at + - account_id + - bucket_name + - dataset + - export_prefix + - export_project_name + - service_account + - status type: object - IOSSourcemapData: - description: iOS dSYM source map data object. + GCPUsageCostConfigPatchData: + description: Google Cloud Usage Cost config patch data. properties: attributes: - $ref: "#/components/schemas/IOSSourcemapAttributes" - id: - description: The unique identifier of the source map. - example: "11" - type: string + $ref: "#/components/schemas/GCPUsageCostConfigPatchRequestAttributes" type: - $ref: "#/components/schemas/SourcemapDataType" + $ref: "#/components/schemas/GCPUsageCostConfigPatchRequestType" required: - - id - - type - attributes + - type type: object - IPAllowlistAttributes: - description: Attributes of the IP allowlist. + GCPUsageCostConfigPatchRequest: + description: Google Cloud Usage Cost config patch request. properties: - enabled: - description: Whether the IP allowlist logic is enabled or not. + data: + $ref: "#/components/schemas/GCPUsageCostConfigPatchData" + required: + - data + type: object + GCPUsageCostConfigPatchRequestAttributes: + description: Attributes for Google Cloud Usage Cost config patch request. + properties: + is_enabled: + description: Whether or not the Cloud Cost Management account is enabled. + example: true type: boolean - entries: - description: Array of entries in the IP allowlist. - items: - $ref: "#/components/schemas/IPAllowlistEntry" - type: array + required: + - is_enabled type: object - IPAllowlistData: - description: IP allowlist data. + GCPUsageCostConfigPatchRequestType: + default: gcp_uc_config_patch_request + description: Type of Google Cloud Usage Cost config patch request. + enum: + - gcp_uc_config_patch_request + example: gcp_uc_config_patch_request + type: string + x-enum-varnames: + - GCP_USAGE_COST_CONFIG_PATCH_REQUEST + GCPUsageCostConfigPostData: + description: Google Cloud Usage Cost config post data. properties: attributes: - $ref: "#/components/schemas/IPAllowlistAttributes" - id: - description: The unique identifier of the org. - type: string + $ref: "#/components/schemas/GCPUsageCostConfigPostRequestAttributes" type: - $ref: "#/components/schemas/IPAllowlistType" + $ref: "#/components/schemas/GCPUsageCostConfigPostRequestType" required: - type type: object - IPAllowlistEntry: - description: IP allowlist entry object. + GCPUsageCostConfigPostRequest: + description: Google Cloud Usage Cost config post request. properties: data: - $ref: "#/components/schemas/IPAllowlistEntryData" + $ref: "#/components/schemas/GCPUsageCostConfigPostData" required: - data type: object - IPAllowlistEntryAttributes: - description: Attributes of the IP allowlist entry. + GCPUsageCostConfigPostRequestAttributes: + description: Attributes for Google Cloud Usage Cost config post request. properties: - cidr_block: - description: The CIDR block describing the IP range of the entry. + billing_account_id: + description: The Google Cloud account ID. + example: "123456_A123BC_12AB34" type: string - created_at: - description: Creation time of the entry. - format: date-time - readOnly: true + bucket_name: + description: The Google Cloud bucket name used to store the Usage Cost export. + example: "dd-cost-bucket" type: string - modified_at: - description: Time of last entry modification. - format: date-time - readOnly: true + export_dataset_name: + description: The export dataset name used for the Google Cloud Usage Cost report. + example: "billing" type: string - note: - description: A note describing the IP allowlist entry. + export_prefix: + description: The export prefix used for the Google Cloud Usage Cost report. + example: "datadog_cloud_cost_usage_export" type: string - type: object - IPAllowlistEntryData: - description: Data of the IP allowlist entry object. - properties: - attributes: - $ref: "#/components/schemas/IPAllowlistEntryAttributes" - id: - description: The unique identifier of the IP allowlist entry. + export_project_name: + description: The name of the Google Cloud Usage Cost report. + example: "dd-cloud-cost-report" + type: string + service_account: + description: The unique Google Cloud service account email. + example: "dd-ccm-gcp-integration@my-environment.iam.gserviceaccount.com" type: string - type: - $ref: "#/components/schemas/IPAllowlistEntryType" required: - - type + - billing_account_id + - bucket_name + - export_project_name + - export_dataset_name + - service_account type: object - IPAllowlistEntryType: - default: ip_allowlist_entry - description: IP allowlist Entry type. + GCPUsageCostConfigPostRequestType: + default: gcp_uc_config_post_request + description: Type of Google Cloud Usage Cost config post request. enum: - - ip_allowlist_entry - example: ip_allowlist_entry + - gcp_uc_config_post_request + example: gcp_uc_config_post_request type: string x-enum-varnames: - - IP_ALLOWLIST_ENTRY - IPAllowlistResponse: - description: Response containing information about the IP allowlist. + - GCP_USAGE_COST_CONFIG_POST_REQUEST + GCPUsageCostConfigResponse: + description: Response of Google Cloud Usage Cost config. properties: data: - $ref: "#/components/schemas/IPAllowlistData" + $ref: "#/components/schemas/GCPUsageCostConfig" type: object - IPAllowlistType: - default: ip_allowlist - description: IP allowlist type. + GCPUsageCostConfigType: + default: gcp_uc_config + description: Type of Google Cloud Usage Cost config. enum: - - ip_allowlist - example: ip_allowlist + - gcp_uc_config + example: gcp_uc_config type: string x-enum-varnames: - - IP_ALLOWLIST - IPAllowlistUpdateRequest: - description: Update the IP allowlist. + - GCP_UC_CONFIG + GCPUsageCostConfigsResponse: + description: List of Google Cloud Usage Cost configs. properties: data: - $ref: "#/components/schemas/IPAllowlistData" + description: A Google Cloud Usage Cost config. + items: + $ref: "#/components/schemas/GCPUsageCostConfig" + type: array required: - data type: object - IdPMetadataFormData: - description: The form data submitted to upload IdP metadata + GcpScanOptions: + description: Response object containing GCP scan options for a single project. + example: + data: + attributes: + cloud_function: true + compliance_host: false + vuln_containers_os: true + vuln_host_os: true + id: company-project-id + type: gcp_scan_options properties: - idp_file: - description: The IdP metadata XML file - format: binary - type: string - x-mimetype: application/xml + data: + $ref: "#/components/schemas/GcpScanOptionsData" type: object - IdentityProviderAttributes: - description: Attributes of an organization identity provider. + GcpScanOptionsArray: + description: Response object containing a list of GCP scan options. + example: + data: + - attributes: + cloud_function: true + compliance_host: false + vuln_containers_os: true + vuln_host_os: true + id: company-project-id + type: gcp_scan_options properties: - authentication_method: - description: The authentication method used by this identity provider. - example: "SAML" - type: string - enabled: - description: Whether this identity provider is enabled for the organization. - example: true - type: boolean + data: + description: A list of GCP scan options. + items: + $ref: "#/components/schemas/GcpScanOptionsData" + type: array required: - - authentication_method - - enabled + - data type: object - IdentityProviderData: - description: Data object representing an organization identity provider. + GcpScanOptionsData: + description: Single GCP scan options entry. properties: attributes: - $ref: "#/components/schemas/IdentityProviderAttributes" + $ref: "#/components/schemas/GcpScanOptionsDataAttributes" id: - description: The unique identifier of the identity provider. - example: "00000000-0000-0000-0000-000000000001" + description: The GCP project ID. + example: "" type: string type: - $ref: "#/components/schemas/IdentityProviderType" + $ref: "#/components/schemas/GcpScanOptionsDataType" required: - - id - type - - attributes + - id type: object - IdentityProviderDataList: - description: List of organization identity provider data objects. - items: - $ref: "#/components/schemas/IdentityProviderData" - type: array - IdentityProviderResponse: - description: Response containing a single organization identity provider. + GcpScanOptionsDataAttributes: + description: Attributes for GCP scan options configuration. properties: - data: - $ref: "#/components/schemas/IdentityProviderData" - required: - - data + cloud_function: + description: Indicates if scanning of Cloud Functions is enabled. + type: boolean + compliance_host: + description: Indicates whether host compliance scanning is enabled. + type: boolean + vuln_containers_os: + description: Indicates if scanning for vulnerabilities in containers is enabled. + type: boolean + vuln_host_os: + description: Indicates if scanning for vulnerabilities in hosts is enabled. + type: boolean type: object - IdentityProviderType: - description: The resource type for identity providers. + GcpScanOptionsDataType: + default: gcp_scan_options + description: GCP scan options resource type. enum: - - identity_providers - example: identity_providers + - gcp_scan_options + example: gcp_scan_options type: string x-enum-varnames: - - IDENTITY_PROVIDERS - IdentityProviderUpdateAttributes: - description: Attributes for updating an organization identity provider. + - GCP_SCAN_OPTIONS + GcpScanOptionsInputUpdate: + description: Request object for updating GCP scan options. + example: + data: + id: company-project-id + type: gcp_scan_options properties: - enabled: - description: Whether to enable or disable this identity provider for the organization. - example: true - type: boolean - required: - - enabled + data: + $ref: "#/components/schemas/GcpScanOptionsInputUpdateData" type: object - IdentityProviderUpdateData: - description: Data object for updating an organization identity provider. + GcpScanOptionsInputUpdateData: + description: Data object for updating the scan options of a single GCP project. properties: attributes: - $ref: "#/components/schemas/IdentityProviderUpdateAttributes" + $ref: "#/components/schemas/GcpScanOptionsInputUpdateDataAttributes" id: - description: The unique identifier of the identity provider to update. - example: "00000000-0000-0000-0000-000000000001" + description: The GCP project ID. + example: "" type: string type: - $ref: "#/components/schemas/IdentityProviderType" + $ref: "#/components/schemas/GcpScanOptionsInputUpdateDataType" required: - - id - type - - attributes + - id type: object - IdentityProviderUpdateRequest: - description: Request body for updating an organization identity provider. + GcpScanOptionsInputUpdateDataAttributes: + description: Attributes for updating GCP scan options configuration. properties: - data: - $ref: "#/components/schemas/IdentityProviderUpdateData" - required: - - data + cloud_function: + description: Indicates if scanning of Cloud Functions is enabled. + type: boolean + compliance_host: + description: Indicates whether host compliance scanning is enabled. + type: boolean + vuln_containers_os: + description: Indicates if scanning for vulnerabilities in containers is enabled. + type: boolean + vuln_host_os: + description: Indicates if scanning for vulnerabilities in hosts is enabled. + type: boolean type: object - IdentityProvidersResponse: - description: Response containing a list of identity providers for an organization. - properties: + GcpScanOptionsInputUpdateDataType: + default: gcp_scan_options + description: GCP scan options resource type. + enum: + - gcp_scan_options + example: gcp_scan_options + type: string + x-enum-varnames: + - GCP_SCAN_OPTIONS + GcpUcConfigResponse: + description: The definition of `GcpUcConfigResponse` object. + example: data: - $ref: "#/components/schemas/IdentityProviderDataList" - required: - - data - type: object - InboxRuleAction: - description: The action to take when the inbox rule matches a finding. + attributes: + account_id: 123456_A123BC_12AB34 + bucket_name: dd-cost-bucket + created_at: "2023-01-01T12:00:00.000000" + dataset: billing + error_messages: [] + export_prefix: datadog_cloud_cost_usage_export + export_project_name: dd-cloud-cost-report + months: 36 + project_id: my-project-123 + service_account: dd-ccm-gcp-integration@my-environment.iam.gserviceaccount.com + status: active + status_updated_at: "2023-01-01T12:00:00.000000" + updated_at: "2023-01-01T12:00:00.000000" + id: "123456789123" + type: gcp_uc_config properties: - description: - description: An optional description providing more context for the rule. - example: "Needs triage" - maxLength: 20000 - type: string + data: + $ref: "#/components/schemas/GcpUcConfigResponseData" type: object - InboxRuleAttributesCreate: - description: Attributes for creating or updating an inbox rule. + GcpUcConfigResponseData: + description: The definition of `GcpUcConfigResponseData` object. properties: - action: - $ref: "#/components/schemas/InboxRuleAction" - enabled: - description: Whether the inbox rule is enabled. - example: true - type: boolean - name: - description: The name of the inbox rule. - example: "Triage production misconfigurations" - maxLength: 255 - minLength: 1 + attributes: + $ref: "#/components/schemas/GcpUcConfigResponseDataAttributes" + id: + description: The `GcpUcConfigResponseData` `id`. type: string - rule: - $ref: "#/components/schemas/AutomationRuleScope" + type: + $ref: "#/components/schemas/GcpUcConfigResponseDataType" required: - - name - - rule - - action + - type type: object - InboxRuleAttributesResponse: - description: Attributes of an inbox rule returned by the API. + GcpUcConfigResponseDataAttributes: + description: The definition of `GcpUcConfigResponseDataAttributes` object. properties: - action: - $ref: "#/components/schemas/InboxRuleAction" + account_id: + description: The `attributes` `account_id`. + type: string + bucket_name: + description: The `attributes` `bucket_name`. + type: string created_at: - description: The Unix timestamp in milliseconds when the rule was created. - example: 1722439510282 - format: int64 - type: integer - created_by: - $ref: "#/components/schemas/AutomationRuleCreatedBy" - enabled: - description: Whether the inbox rule is enabled. - example: true - type: boolean - modified_at: - description: The Unix timestamp in milliseconds when the rule was last modified. - example: 1722439510282 + description: The `attributes` `created_at`. + type: string + dataset: + description: The `attributes` `dataset`. + type: string + error_messages: + description: The `attributes` `error_messages`. + items: + description: An error message string. + type: string + nullable: true + type: array + export_prefix: + description: The `attributes` `export_prefix`. + type: string + export_project_name: + description: The `attributes` `export_project_name`. + type: string + months: + description: The `attributes` `months`. format: int64 type: integer - modified_by: - $ref: "#/components/schemas/AutomationRuleModifiedBy" - name: - description: The name of the inbox rule. - example: "Triage production misconfigurations" - maxLength: 255 - minLength: 1 + project_id: + description: The `attributes` `project_id`. + type: string + service_account: + description: The `attributes` `service_account`. + type: string + status: + description: The `attributes` `status`. + type: string + status_updated_at: + description: The `attributes` `status_updated_at`. + type: string + updated_at: + description: The `attributes` `updated_at`. type: string - rule: - $ref: "#/components/schemas/AutomationRuleScope" - required: - - name - - enabled - - rule - - action - - created_at - - created_by - - modified_at - - modified_by - type: object - InboxRuleCreateRequest: - description: The body of an inbox rule create request. - properties: - data: - $ref: "#/components/schemas/InboxRuleDataCreate" - required: - - data type: object - InboxRuleDataCreate: - description: The data object for an inbox rule create request. + GcpUcConfigResponseDataType: + default: gcp_uc_config + description: Google Cloud Usage Cost config resource type. + enum: + - gcp_uc_config + example: gcp_uc_config + type: string + x-enum-varnames: + - GCP_UC_CONFIG + GeminiAPIKey: + description: The definition of the `GeminiAPIKey` object. properties: - attributes: - $ref: "#/components/schemas/InboxRuleAttributesCreate" + api_key: + description: The `GeminiAPIKey` `api_key`. + example: "" + type: string type: - $ref: "#/components/schemas/InboxRuleType" + $ref: "#/components/schemas/GeminiAPIKeyType" required: - type - - attributes + - api_key type: object - InboxRuleDataResponse: - description: The data object for an inbox rule returned by the API. + GeminiAPIKeyType: + description: The definition of the `GeminiAPIKey` object. + enum: + - GeminiAPIKey + example: GeminiAPIKey + type: string + x-enum-varnames: + - GEMINIAPIKEY + GeminiAPIKeyUpdate: + description: The definition of the `GeminiAPIKey` object. properties: - attributes: - $ref: "#/components/schemas/InboxRuleAttributesResponse" - id: - description: The ID of the inbox rule. - example: "00000000-0000-0000-0000-000000000000" - format: uuid + api_key: + description: The `GeminiAPIKeyUpdate` `api_key`. type: string type: - $ref: "#/components/schemas/InboxRuleType" + $ref: "#/components/schemas/GeminiAPIKeyType" required: - - id - type - - attributes type: object - InboxRuleDataUpdate: - description: The data object for an inbox rule update request. The `id` must match the `rule_id` path parameter. + GeminiCredentials: + description: The definition of the `GeminiCredentials` object. + oneOf: + - $ref: "#/components/schemas/GeminiAPIKey" + GeminiCredentialsUpdate: + description: The definition of the `GeminiCredentialsUpdate` object. + oneOf: + - $ref: "#/components/schemas/GeminiAPIKeyUpdate" + GeminiIntegration: + description: The definition of the `GeminiIntegration` object. properties: - attributes: - $ref: "#/components/schemas/InboxRuleAttributesCreate" - id: - description: The ID of the inbox rule to update. - example: "00000000-0000-0000-0000-000000000000" - format: uuid - type: string + credentials: + $ref: "#/components/schemas/GeminiCredentials" type: - $ref: "#/components/schemas/InboxRuleType" + $ref: "#/components/schemas/GeminiIntegrationType" required: - - id - type - - attributes + - credentials type: object - InboxRuleReorderData: - description: The ordered list of all inbox rules. Every rule must be included. - items: - $ref: "#/components/schemas/InboxRuleReorderItem" - type: array - InboxRuleReorderItem: - description: A reference to an inbox rule used for reordering. + GeminiIntegrationType: + description: The definition of the `GeminiIntegrationType` object. + enum: + - Gemini + example: Gemini + type: string + x-enum-varnames: + - GEMINI + GeminiIntegrationUpdate: + description: The definition of the `GeminiIntegrationUpdate` object. properties: - id: - description: The ID of the inbox rule. - example: "00000000-0000-0000-0000-000000000000" - format: uuid - type: string + credentials: + $ref: "#/components/schemas/GeminiCredentialsUpdate" type: - $ref: "#/components/schemas/InboxRuleType" + $ref: "#/components/schemas/GeminiIntegrationType" required: - type - - id type: object - InboxRuleReorderRequest: - description: The body of an inbox rule reorder request. + GeneralInvestigationAttributes: + description: Attributes for a general investigation, not tied to a specific monitor alert. + oneOf: + - $ref: "#/components/schemas/GeneralInvestigationAttributesWithoutTimeBounds" + - $ref: "#/components/schemas/GeneralInvestigationAttributesWithTimeBounds" + GeneralInvestigationAttributesWithTimeBounds: + additionalProperties: false + description: Attributes for a general investigation with an explicit time window. properties: - data: - $ref: "#/components/schemas/InboxRuleReorderData" + description: + description: A free-form description of what to investigate, up to 4,096 characters. + example: "Checkout latency has been elevated for the past hour." + maxLength: 4096 + type: string + end_time: + description: The end of the investigation window, in Unix milliseconds. + example: 1700003600000 + format: int64 + type: integer + start_time: + description: The start of the investigation window, in Unix milliseconds. + example: 1700000000000 + format: int64 + type: integer + tags: + description: Tags that scope the investigation. + example: + - "service:checkout" + items: + type: string + type: array required: - - data + - description + - start_time + - end_time type: object - InboxRuleReorderResponse: - description: The response of an inbox rule reorder request. + GeneralInvestigationAttributesWithoutTimeBounds: + additionalProperties: false + description: Attributes for a general investigation without an explicit time window. properties: - data: - $ref: "#/components/schemas/InboxRuleReorderData" + description: + description: A free-form description of what to investigate, up to 4,096 characters. + example: "Checkout latency has been elevated for the past hour." + maxLength: 4096 + type: string + tags: + description: Tags that scope the investigation. + example: + - "service:checkout" + items: + type: string + type: array required: - - data + - description type: object - InboxRuleResponse: - description: A single inbox rule response. + GeneralInvestigationTrigger: + additionalProperties: false + description: A trigger created from a general investigation request. properties: - data: - $ref: "#/components/schemas/InboxRuleDataResponse" + general_investigation: + $ref: "#/components/schemas/GeneralInvestigationAttributes" + type: + $ref: "#/components/schemas/GeneralInvestigationTriggerType" required: - - data + - type + - general_investigation type: object - InboxRuleType: - description: The JSON:API type for inbox rules. + GeneralInvestigationTriggerType: + description: The type of general investigation trigger. enum: - - inbox_rules - example: inbox_rules + - general_investigation + example: general_investigation type: string x-enum-varnames: - - INBOX_RULES - InboxRuleUpdateRequest: - description: The body of an inbox rule update request. + - GENERAL_INVESTIGATION + GenerateCostTagDescriptionResponse: + description: Response wrapping an AI-generated Cloud Cost Management tag key description. + example: + data: + attributes: + description: AWS account that owns this cost. + id: account_id + type: cost_generated_tag_description properties: data: - $ref: "#/components/schemas/InboxRuleDataUpdate" + $ref: "#/components/schemas/GeneratedCostTagDescription" required: - data type: object - InboxRulesDataList: - description: A list of inbox rule data objects. - items: - $ref: "#/components/schemas/InboxRuleDataResponse" - type: array - InboxRulesResponse: - description: A list of inbox rules with pagination metadata. - properties: - data: - $ref: "#/components/schemas/InboxRulesDataList" - links: - $ref: "#/components/schemas/SecurityAutomationRulesLinks" - meta: - $ref: "#/components/schemas/SecurityAutomationRulesMeta" - required: - - data - - meta - - links - type: object - IncidentAIPostmortemDataAttributesResponse: - description: Attributes of an AI-generated incident postmortem. - properties: - action_items: - description: Action items to prevent recurrence. - example: "1. Improve failover testing. 2. Add more monitoring alerts." - type: string - customer_impact: - description: The impact of the incident on customers. - example: "5% of users experienced timeouts for 30 minutes." - type: string - executive_summary: - description: An executive summary of the incident. - example: "A database failover caused a 30-minute service outage affecting 5% of users." - type: string - key_timeline: - description: Key timeline events during the incident. - example: "10:00 - Alert fired. 10:05 - On-call engineer paged. 10:30 - Issue resolved." - type: string - lessons_learned: - description: Lessons learned from the incident. - example: "We need to test the failover process under realistic load conditions." - type: string - system_overview: - description: An overview of the affected systems. - example: "The primary database cluster experienced a failover event." - type: string - type: object - IncidentAIPostmortemDataResponse: - description: AI postmortem data in a response. + GeneratedCostTagDescription: + description: AI-generated Cloud Cost Management tag key description returned by the generate endpoint. The result is returned to the client but is not persisted by this endpoint. properties: attributes: - $ref: "#/components/schemas/IncidentAIPostmortemDataAttributesResponse" + $ref: "#/components/schemas/GeneratedCostTagDescriptionAttributes" id: - description: The incident identifier. - example: 00000000-0000-0000-0000-000000000000 - format: uuid + description: The tag key the AI description was generated for. + example: account_id type: string type: - $ref: "#/components/schemas/IncidentAIPostmortemResponseType" + $ref: "#/components/schemas/GeneratedCostTagDescriptionType" required: + - attributes - id - type - - attributes type: object - IncidentAIPostmortemResponse: - description: Response with an AI-generated incident postmortem. + GeneratedCostTagDescriptionAttributes: + description: Attributes of an AI-generated Cloud Cost Management tag key description. properties: - data: - $ref: "#/components/schemas/IncidentAIPostmortemDataResponse" + description: + description: The AI-generated description for the tag key. + example: AWS account that owns this cost. + type: string required: - - data + - description type: object - IncidentAIPostmortemResponseType: - description: AI postmortem response resource type. - enum: - - get_incident_ai_postmortem_response - example: get_incident_ai_postmortem_response - type: string - x-enum-varnames: - - GET_INCIDENT_AI_POSTMORTEM_RESPONSE - IncidentAttachmentType: - default: incident_attachments - description: The incident attachment resource type. + GeneratedCostTagDescriptionType: + default: cost_generated_tag_description + description: Type of the AI-generated Cloud Cost Management tag description resource. enum: - - incident_attachments - example: incident_attachments + - cost_generated_tag_description + example: cost_generated_tag_description type: string x-enum-varnames: - - INCIDENT_ATTACHMENTS - IncidentCondition: - description: "Conditions that determine which incidents trigger the workflow." + - COST_GENERATED_TAG_DESCRIPTION + GetActionConnectionResponse: + description: The response for found connection properties: - tagValues: - description: "Incident tags and values used to filter matching incidents." + data: + $ref: "#/components/schemas/ActionConnectionData" + type: object + GetAppKeyRegistrationResponse: + description: The response object after getting an app key registration. + properties: + data: + $ref: "#/components/schemas/AppKeyRegistrationData" + type: object + GetAppResponse: + description: The full app definition response object. + properties: + data: + $ref: "#/components/schemas/GetAppResponseData" + included: + description: Data on the version of the app that was published. items: - $ref: "#/components/schemas/IncidentTagValue" + $ref: "#/components/schemas/Deployment" type: array + meta: + $ref: "#/components/schemas/AppMeta" + relationship: + $ref: "#/components/schemas/AppRelationship" type: object - IncidentConfigurationDataAttributesRequest: - description: Attributes for creating an incident configuration. + GetAppResponseData: + description: The data object containing the app definition. properties: - execute_integrations: - description: Whether to execute integrations for this incident. - example: true - type: boolean - execute_notification_rules: - description: Whether to execute notification rules for this incident. - example: true - type: boolean - include_in_analytics: - description: Whether to include this incident in analytics. - example: true - type: boolean - include_in_search: - description: Whether to include this incident in search results. - example: true - type: boolean + attributes: + $ref: "#/components/schemas/GetAppResponseDataAttributes" + id: + description: The ID of the app. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + format: uuid + type: string + type: + $ref: "#/components/schemas/AppDefinitionType" + required: + - id + - type + - attributes type: object - IncidentConfigurationDataAttributesResponse: - description: Attributes of an incident configuration in a response. + GetAppResponseDataAttributes: + description: The app definition attributes, such as name, description, and components. properties: - created_at: - description: Timestamp when the configuration was created. - example: "2024-01-01T00:00:00.000Z" - format: date-time + components: + description: The UI components that make up the app. + items: + $ref: "#/components/schemas/ComponentGrid" + type: array + description: + description: A human-readable description for the app. type: string - execute_integrations: - description: Whether integrations are executed for this incident. - example: true - type: boolean - execute_notification_rules: - description: Whether notification rules are executed for this incident. - example: true + favorite: + description: Whether the app is marked as a favorite by the current user. type: boolean - incident_id: - description: The incident identifier. - example: 00000000-0000-0000-0000-000000000000 + name: + description: The name of the app. type: string - include_in_analytics: - description: Whether this incident is included in analytics. - example: true - type: boolean - include_in_search: - description: Whether this incident is included in search results. - example: true - type: boolean - modified_at: - description: Timestamp when the configuration was last modified. - example: "2024-01-01T00:00:00.000Z" - format: date-time + queries: + description: An array of queries, such as external actions and state variables, that the app uses. + items: + $ref: "#/components/schemas/Query" + type: array + rootInstanceName: + description: The name of the root component of the app. This must be a `grid` component that contains all other components. type: string - required: - - incident_id - - created_at - - modified_at + tags: + description: A list of tags for the app, which can be used to filter apps. + example: + - "service:webshop-backend" + - "team:webshop" + items: + description: An individual tag for the app. + type: string + type: array type: object - IncidentConfigurationDataRequest: - description: Incident configuration data in a create request. + GetAstRequest: + description: The request payload for parsing source code into an abstract syntax tree. properties: - attributes: - $ref: "#/components/schemas/IncidentConfigurationDataAttributesRequest" - type: - $ref: "#/components/schemas/IncidentConfigurationType" + _authentication_token: + description: CSRF token for security, sent by browser-based clients. Ignored by the API when absent. + type: string + data: + $ref: "#/components/schemas/GetAstRequestData" required: - - type + - data type: object - IncidentConfigurationDataResponse: - description: Incident configuration data in a response. + GetAstRequestData: + description: The primary data object in the get-AST request. properties: attributes: - $ref: "#/components/schemas/IncidentConfigurationDataAttributesResponse" + $ref: "#/components/schemas/GetAstRequestDataAttributes" id: - description: The incident configuration identifier. - example: 00000000-0000-0000-0000-000000000000 - format: uuid + description: An optional identifier for the get-AST request resource. type: string - relationships: - $ref: "#/components/schemas/IncidentConfigurationRelationships" type: - $ref: "#/components/schemas/IncidentConfigurationType" + $ref: "#/components/schemas/GetAstRequestDataType" required: - - id - type - attributes type: object - IncidentConfigurationPatchDataAttributesRequest: - description: Attributes for patching an incident configuration. All fields are optional. + GetAstRequestDataAttributes: + description: The attributes of the get-AST request, containing the source code to parse. properties: - execute_integrations: - description: Whether to execute integrations for this incident. - example: true - type: boolean - execute_notification_rules: - description: Whether to execute notification rules for this incident. - example: true - type: boolean - include_in_analytics: - description: Whether to include this incident in analytics. - example: true - type: boolean - include_in_search: - description: Whether to include this incident in search results. - example: true - type: boolean + code: + description: The base64-encoded source code to parse into an abstract syntax tree. + example: aW1wb3J0IHN5cw== + type: string + file_encoding: + description: The encoding of the source code file (must be utf-8). + example: utf-8 + type: string + language: + description: The programming language of the source code to parse. + example: python + type: string + required: + - code + - file_encoding + - language type: object - IncidentConfigurationPatchDataRequest: - description: Incident configuration data in a patch request. + GetAstRequestDataType: + default: get_ast_request + description: Get AST request resource type. + enum: + - get_ast_request + example: get_ast_request + type: string + x-enum-varnames: + - GET_AST_REQUEST + GetAstResponse: + description: The response payload containing the parsed abstract syntax tree. + properties: + data: + $ref: "#/components/schemas/GetAstResponseData" + required: + - data + type: object + GetAstResponseData: + description: The primary data object in the get-AST response. properties: attributes: - $ref: "#/components/schemas/IncidentConfigurationPatchDataAttributesRequest" + $ref: "#/components/schemas/GetAstResponseDataAttributes" id: - description: The incident configuration identifier. - example: 00000000-0000-0000-0000-000000000000 - format: uuid + description: The identifier of the get-AST response resource, echoed from the request. + example: "" type: string type: - $ref: "#/components/schemas/IncidentConfigurationType" + $ref: "#/components/schemas/GetAstResponseDataType" required: - id - type + - attributes type: object - IncidentConfigurationPatchRequest: - description: Request payload for patching an incident configuration. + GetAstResponseDataAttributes: + description: The attributes of the get-AST response, containing the parsed abstract syntax tree. properties: - data: - $ref: "#/components/schemas/IncidentConfigurationPatchDataRequest" + result: + $ref: "#/components/schemas/AstNode" + description: The root node of the parsed abstract syntax tree, or null when the source code could not be parsed. + nullable: true required: - - data + - result type: object - IncidentConfigurationRelationships: - description: Relationships for an incident configuration. + GetAstResponseDataType: + default: get_ast_response + description: Get AST response resource type. + enum: + - get_ast_response + example: get_ast_response + type: string + x-enum-varnames: + - GET_AST_RESPONSE + GetBlueprintResponse: + description: The response for retrieving a single blueprint. properties: - created_by_user: - $ref: "#/components/schemas/RelationshipToUser" - last_modified_by_user: - $ref: "#/components/schemas/RelationshipToUser" + data: + $ref: "#/components/schemas/BlueprintData" type: object - IncidentConfigurationRequest: - description: Request payload for creating an incident configuration. + GetBlueprintsResponse: + description: The response for retrieving multiple blueprints. properties: data: - $ref: "#/components/schemas/IncidentConfigurationDataRequest" + description: An array of blueprints. + items: + $ref: "#/components/schemas/BlueprintData" + type: array + type: object + GetCustomFrameworkResponse: + description: Response object to get a custom framework. + properties: + data: + $ref: "#/components/schemas/FullCustomFrameworkData" required: - data type: object - IncidentConfigurationResponse: - description: Response with an incident configuration. + GetDataDeletionsResponseBody: + description: The response from the get data deletion requests endpoint. properties: data: - $ref: "#/components/schemas/IncidentConfigurationDataResponse" - included: - description: Included related resources. + description: The list of data deletion requests that matches the query. items: - $ref: "#/components/schemas/IncidentUserData" - readOnly: true + $ref: "#/components/schemas/DataDeletionResponseItem" type: array + meta: + $ref: "#/components/schemas/DataDeletionResponseMeta" + type: object + GetDataObservabilityMonitorRunStatusResponse: + description: The response for getting the status of a data observability monitor run. + properties: + data: + $ref: "#/components/schemas/GetDataObservabilityMonitorRunStatusResponseData" required: - data type: object - IncidentConfigurationType: - description: Incident configuration resource type. - enum: - - incidents_configurations - example: incidents_configurations - type: string - x-enum-varnames: - - INCIDENTS_CONFIGURATIONS - IncidentCreateAttributes: - description: The incident's attributes for a create request. + GetDataObservabilityMonitorRunStatusResponseAttributes: + description: The attributes of a data observability monitor run status response. properties: - customer_impact_scope: - description: Required if `customer_impacted:"true"`. A summary of the impact customers experienced during the incident. - example: "Example customer impact scope" - type: string - customer_impacted: - description: A flag indicating whether the incident caused customer impact. - example: false - type: boolean - fields: - additionalProperties: - $ref: "#/components/schemas/IncidentFieldAttributes" - description: A condensed view of the user-defined fields for which to create initial selections. - example: {"severity": {"type": "dropdown", "value": "SEV-5"}} - type: object - incident_type_uuid: - description: A unique identifier that represents an incident type. The default incident type will be used if this property is not provided. - example: "00000000-0000-0000-0000-000000000000" - type: string - initial_cells: - description: An array of initial timeline cells to be placed at the beginning of the incident timeline. - items: - $ref: "#/components/schemas/IncidentTimelineCellCreateAttributes" - type: array - is_test: - description: A flag indicating whether the incident is a test incident. - example: false - type: boolean - notification_handles: - description: Notification handles that will be notified of the incident at creation. - example: [{"display_name": "Jane Doe", "handle": "@user@email.com"}, {"display_name": "Slack Channel", "handle": "@slack-channel"}, {"display_name": "Incident Workflow", "handle": "@workflow-from-incident"}] - items: - $ref: "#/components/schemas/IncidentNotificationHandle" - type: array - title: - description: The title of the incident, which summarizes what happened. - example: "A test incident title" + error_message: + description: Error message describing why the monitor run failed. Only present when status is error. + example: "run completed but produced no metric data" type: string + status: + $ref: "#/components/schemas/DataObservabilityMonitorRunStatus" required: - - title - - customer_impacted + - status type: object - IncidentCreateData: - description: Incident data for a create request. + GetDataObservabilityMonitorRunStatusResponseData: + description: The data object for a data observability monitor run status response. properties: attributes: - $ref: "#/components/schemas/IncidentCreateAttributes" - relationships: - $ref: "#/components/schemas/IncidentCreateRelationships" + $ref: "#/components/schemas/GetDataObservabilityMonitorRunStatusResponseAttributes" + id: + description: The unique identifier of the monitor run. + example: "abc123def456" + type: string type: - $ref: "#/components/schemas/IncidentType" + $ref: "#/components/schemas/DataObservabilityMonitorRunType" required: + - id - type - attributes type: object - IncidentCreateOnCallPageDataAttributesRequest: - description: Attributes for creating an on-call page from an incident. + GetDeviceAttributes: + description: The device attributes properties: description: - description: The description of the page. - example: A critical incident affecting production systems. + description: A description of the device. + example: a device monitored with NDM + type: string + device_type: + description: The type of the device. + example: other + type: string + integration: + description: The integration of the device. + example: snmp + type: string + ip_address: + description: The IP address of the device. + example: 1.2.3.4 + type: string + location: + description: The location of the device. + example: paris + type: string + model: + description: The model of the device. + example: xx-123 + type: string + name: + description: The name of the device. + example: example device + type: string + os_hostname: + description: The operating system hostname of the device. + example: 1.0.2 + type: string + os_name: + description: The operating system name of the device. + example: example OS + type: string + os_version: + description: The operating system version of the device. + example: 1.0.2 + type: string + ping_status: + description: The ping status of the device. + example: unmonitored + type: string + product_name: + description: The product name of the device. + example: example device + type: string + serial_number: + description: The serial number of the device. + example: X12345 + type: string + status: + description: The status of the device. + example: ok + type: string + subnet: + description: The subnet of the device. + example: 1.2.3.4/24 + type: string + sys_object_id: + description: The device `sys_object_id`. + example: 1.3.6.1.4.1.99999 type: string - role: - $ref: "#/components/schemas/IncidentPageRoleReference" - services: - description: List of affected services. - example: - - web-store - items: - type: string - type: array tags: - description: List of tags for the page. - example: - - env:prod + description: A list of tags associated with the device. + example: ["device_ip:1.2.3.4", "device_id:example:1.2.3.4"] items: + description: A tag string in `key:value` format. type: string type: array - target: - $ref: "#/components/schemas/IncidentPageTarget" - title: - description: The title of the page. - example: Production outage - SEV-1 + vendor: + description: The vendor of the device. + example: example vendor + type: string + version: + description: The version of the device. + example: 1.2.3 type: string type: object - IncidentCreateOnCallPageDataRequest: - description: On-call page data in a create request. + GetDeviceData: + description: Get device response data. properties: attributes: - $ref: "#/components/schemas/IncidentCreateOnCallPageDataAttributesRequest" + $ref: "#/components/schemas/GetDeviceAttributes" + id: + description: The device ID + example: example:1.2.3.4 + type: string type: - $ref: "#/components/schemas/IncidentCreatePageFromIncidentType" - required: - - type - - attributes + description: The type of the resource. The value should always be device. + type: string type: object - IncidentCreateOnCallPageRequest: - description: Request payload for creating an on-call page from an incident. + GetDeviceResponse: + description: The `GetDevice` operation's response. properties: data: - $ref: "#/components/schemas/IncidentCreateOnCallPageDataRequest" + $ref: "#/components/schemas/GetDeviceData" + type: object + GetFindingResponse: + description: The expected response schema when getting a finding. + properties: + data: + $ref: "#/components/schemas/DetailedFinding" required: - data type: object - IncidentCreatePageFromIncidentDataAttributesRequest: - description: Attributes for creating a page from an incident. + GetInterfacesData: + description: The interfaces list data properties: - description: - description: The description of the page. - example: A critical incident affecting production systems. - type: string - incident_public_id: - description: The public ID of the incident. - example: "12345" + attributes: + $ref: "#/components/schemas/InterfaceAttributes" + id: + description: The interface ID + example: example:1.2.3.4:99 type: string - role: - $ref: "#/components/schemas/IncidentPageRoleReference" - services: - description: List of affected services. - example: - - web-store - - checkout - items: - type: string - type: array - tags: - description: List of tags for the page. - example: - - env:prod - items: - type: string - type: array - target: - $ref: "#/components/schemas/IncidentPageTarget" - title: - description: The title of the page. - example: Production outage - SEV-1 + type: + description: The type of the resource. The value should always be interface. type: string type: object - IncidentCreatePageFromIncidentDataRequest: - description: Page data in a create request. + GetInterfacesResponse: + description: The `GetInterfaces` operation's response. properties: - attributes: - $ref: "#/components/schemas/IncidentCreatePageFromIncidentDataAttributesRequest" - type: - $ref: "#/components/schemas/IncidentCreatePageFromIncidentType" - required: - - type - - attributes + data: + description: Get Interfaces response + items: + $ref: "#/components/schemas/GetInterfacesData" + type: array type: object - IncidentCreatePageFromIncidentRequest: - description: Request payload for creating a page from an incident. + GetInvestigationResponse: + description: Response for a single Bits AI investigation. properties: data: - $ref: "#/components/schemas/IncidentCreatePageFromIncidentDataRequest" + $ref: "#/components/schemas/GetInvestigationResponseData" + links: + $ref: "#/components/schemas/GetInvestigationResponseLinks" required: - data + - links type: object - IncidentCreatePageFromIncidentType: - description: Resource type for a page creation request. - enum: - - page - example: page - type: string - x-enum-varnames: - - PAGE - IncidentCreateRelationships: - description: The relationships the incident will have with other resources once created. + GetInvestigationResponseData: + description: Data for the get investigation response. properties: - commander_user: - $ref: "#/components/schemas/NullableRelationshipToUser" + attributes: + $ref: "#/components/schemas/GetInvestigationResponseDataAttributes" + id: + description: The unique identifier of the investigation. + example: "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d" + type: string + type: + $ref: "#/components/schemas/InvestigationType" required: - - commander_user + - id + - type + - attributes type: object - IncidentCreateRequest: - description: Create request for an incident. + GetInvestigationResponseDataAttributes: + description: Attributes of the investigation. properties: - data: - $ref: "#/components/schemas/IncidentCreateData" + conclusions: + description: The conclusions drawn from the investigation. + items: + $ref: "#/components/schemas/InvestigationConclusion" + type: array + status: + description: The current status of the investigation. + example: "conclusive" + type: string + title: + description: The title of the investigation. + example: "Monitor alert investigation for web-server-01" + type: string required: - - data + - title + - status + - conclusions type: object - IncidentCreatedTrigger: - description: "Trigger a workflow when an incident is declared." + GetInvestigationResponseLinks: + description: Links related to the investigation. properties: - incidentType: - description: "The type of incident that triggers the workflow." + self: + description: The URL to the investigation in the Datadog app. + example: "https://app.datadoghq.com/bits-ai/investigations/a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d" type: string - tagCondition: - $ref: "#/components/schemas/IncidentCondition" + required: + - self type: object - IncidentCreatedTriggerWrapper: - description: "Schema for an incident declared trigger." + GetIoCIndicatorResponse: + description: Response for the get indicator of compromise endpoint. properties: - incidentCreatedTrigger: - $ref: "#/components/schemas/IncidentCreatedTrigger" - startStepNames: - $ref: "#/components/schemas/StartStepNames" - required: - - incidentCreatedTrigger + data: + $ref: "#/components/schemas/GetIoCIndicatorResponseData" type: object - IncidentFieldAttributes: - description: Dynamic fields for which selections can be made, with field names as keys. - oneOf: - - $ref: "#/components/schemas/IncidentFieldAttributesSingleValue" - - $ref: "#/components/schemas/IncidentFieldAttributesMultipleValue" - IncidentFieldAttributesMultipleValue: - description: A field with potentially multiple values selected. + GetIoCIndicatorResponseAttributes: + description: Attributes of the get indicator response. properties: - type: - $ref: "#/components/schemas/IncidentFieldAttributesValueType" - value: - description: The multiple values selected for this field. - example: ["1.0", "1.1"] - items: - description: A value which has been selected for the parent field. - example: "1.1" - type: string - nullable: true - type: array + data: + $ref: "#/components/schemas/IoCIndicatorDetailed" type: object - IncidentFieldAttributesSingleValue: - description: A field with a single value selected. + GetIoCIndicatorResponseData: + description: IoC indicator response data object. properties: + attributes: + $ref: "#/components/schemas/GetIoCIndicatorResponseAttributes" + id: + description: Unique identifier for the response. + type: string type: - $ref: "#/components/schemas/IncidentFieldAttributesSingleValueType" - value: - description: The single value selected for this field. - example: "SEV-1" - nullable: true + description: Response type identifier. type: string type: object - IncidentFieldAttributesSingleValueType: - default: dropdown - description: Type of the single value field definitions. - enum: - - dropdown - - textbox - example: dropdown - type: string - x-enum-varnames: - - DROPDOWN - - TEXTBOX - IncidentFieldAttributesValueType: - default: multiselect - description: Type of the multiple value field definitions. + GetIssueIncludeQueryParameterItem: + description: Relationship object that should be included in the response. enum: - - multiselect - - textarray - - metrictag - - autocomplete - example: multiselect + - assignee + - case + - team_owners + example: "case" type: string x-enum-varnames: - - MULTISELECT - - TEXTARRAY - - METRICTAG - - AUTOCOMPLETE - IncidentGoogleChatConfigurationDataAttributesRequest: - description: Attributes for creating a Google Chat configuration. + - ASSIGNEE + - CASE + - TEAM_OWNERS + GetMappingResponse: + description: Response containing the entity attribute mapping configuration including all available attributes and their properties. + example: + data: + attributes: + attributes: + - attribute: user_id + description: Unique user identifier + display_name: User ID + groups: + - Identity + is_custom: false + type: string + - attribute: user_email + description: User email address + display_name: Email Address + groups: + - Identity + - Contact + is_custom: false + type: string + - attribute: first_country_code + description: The ISO code of the country for the user's first session + display_name: First Country Code + groups: + - Geography + is_custom: false + type: string + - attribute: "@customer_tier" + description: Customer subscription tier + display_name: Customer Tier + groups: + - Business + is_custom: true + type: string + id: get_mappings_response + type: get_mappings_response properties: - domain_id: - description: The Google Chat domain ID. - example: my-domain - type: string - space_name_template: - description: The template for the Google Chat space name. - example: "{{incident.title}}" - type: string - space_target_audience_id: - description: The target audience ID for the Google Chat space. - example: "123456789" - type: string - space_time_zone: - description: The time zone for the Google Chat space. - example: America/New_York + data: + $ref: "#/components/schemas/GetMappingResponseData" + type: object + GetMappingResponseData: + description: The data object containing the resource type and attributes for the get mapping response. + properties: + attributes: + $ref: "#/components/schemas/GetMappingResponseDataAttributes" + id: + description: Unique identifier for the get mapping response resource. type: string + type: + $ref: "#/components/schemas/GetMappingResponseDataType" required: - - domain_id - - space_name_template - - space_time_zone - - space_target_audience_id + - type type: object - IncidentGoogleChatConfigurationDataAttributesResponse: - description: Attributes of a Google Chat configuration. + GetMappingResponseDataAttributes: + description: Attributes of the get mapping response, containing the list of configured entity attributes. properties: - created_at: - description: Timestamp when the configuration was created. - example: "2024-01-01T00:00:00.000Z" - format: date-time - type: string - domain_id: - description: The Google Chat domain ID. - example: my-domain - type: string - modified_at: - description: Timestamp when the configuration was last modified. - example: "2024-01-01T00:00:00.000Z" - format: date-time + attributes: + description: The list of entity attributes and their mapping configurations. + items: + $ref: "#/components/schemas/GetMappingResponseDataAttributesAttributesItems" + type: array + type: object + GetMappingResponseDataAttributesAttributesItems: + description: Details of a single entity attribute including its mapping configuration and metadata. + properties: + attribute: + description: The attribute identifier as used in the entity data model. type: string - space_name_template: - description: The template for the Google Chat space name. - example: "{{incident.title}}" + description: + description: Human-readable explanation of what the attribute represents. type: string - space_target_audience_id: - description: The target audience ID for the Google Chat space. - example: "123456789" + display_name: + description: The human-readable label for the attribute shown in the UI. type: string - space_time_zone: - description: The time zone for the Google Chat space. - example: America/New_York + groups: + description: List of group labels used to categorize the attribute. + items: + description: A group label name for categorizing the attribute. + type: string + type: array + is_custom: + description: Whether this attribute is a custom user-defined attribute rather than a built-in one. + type: boolean + type: + description: The data type of the attribute (for example, string or number). type: string - required: - - domain_id - - space_name_template - - space_time_zone - - space_target_audience_id - - created_at - - modified_at type: object - IncidentGoogleChatConfigurationDataRequest: - description: Google Chat configuration data in a create request. + GetMappingResponseDataType: + default: get_mappings_response + description: Get mappings response resource type. + enum: + - get_mappings_response + example: get_mappings_response + type: string + x-enum-varnames: + - GET_MAPPINGS_RESPONSE + GetMultipleRulesetsRequest: + description: The request payload for retrieving rules for multiple rulesets in a single batch call. properties: - attributes: - $ref: "#/components/schemas/IncidentGoogleChatConfigurationDataAttributesRequest" - relationships: - $ref: "#/components/schemas/IncidentGoogleChatConfigurationRelationshipsRequest" - type: - $ref: "#/components/schemas/IncidentGoogleChatConfigurationType" - required: - - type - - attributes - - relationships + _authentication_token: + description: CSRF token for security, sent by browser-based clients. Ignored by the API when absent. + type: string + data: + $ref: "#/components/schemas/GetMultipleRulesetsRequestData" type: object - IncidentGoogleChatConfigurationDataResponse: - description: Google Chat configuration data in a response. + GetMultipleRulesetsRequestData: + description: The primary data object in the get-multiple-rulesets request, containing request attributes and resource type. properties: attributes: - $ref: "#/components/schemas/IncidentGoogleChatConfigurationDataAttributesResponse" + $ref: "#/components/schemas/GetMultipleRulesetsRequestDataAttributes" id: - description: The configuration identifier. - example: 00000000-0000-0000-0000-000000000000 - format: uuid + description: An optional identifier for the get-multiple-rulesets request resource. type: string - relationships: - $ref: "#/components/schemas/IncidentGoogleChatConfigurationRelationships" type: - $ref: "#/components/schemas/IncidentGoogleChatConfigurationType" + $ref: "#/components/schemas/GetMultipleRulesetsRequestDataType" required: - - id - type - - attributes type: object - IncidentGoogleChatConfigurationPatchDataAttributesRequest: - description: Attributes for patching a Google Chat configuration. All fields are optional. + GetMultipleRulesetsRequestDataAttributes: + description: The request attributes for fetching multiple rulesets, specifying which rulesets to retrieve and what data to include. properties: - domain_id: - description: The Google Chat domain ID. - example: my-domain - type: string - space_name_template: - description: The template for the Google Chat space name. - example: "{{incident.title}}" - type: string - space_target_audience_id: - description: The target audience ID for the Google Chat space. - example: "123456789" - type: string - space_time_zone: - description: The time zone for the Google Chat space. - example: America/New_York - type: string + include_testing_rules: + description: When true, rules that are available in testing mode are included in the response. + type: boolean + include_tests: + description: When true, test cases associated with each rule are included in the response. + type: boolean + rulesets: + description: The list of ruleset names to retrieve. + items: + description: The name of a ruleset to include in the batch request. + type: string + type: array type: object - IncidentGoogleChatConfigurationPatchDataRequest: - description: Google Chat configuration data in a patch request. + GetMultipleRulesetsRequestDataType: + default: get_multiple_rulesets_request + description: Get multiple rulesets request resource type. + enum: + - get_multiple_rulesets_request + example: get_multiple_rulesets_request + type: string + x-enum-varnames: + - GET_MULTIPLE_RULESETS_REQUEST + GetMultipleRulesetsResponse: + description: The response payload for the get-multiple-rulesets endpoint, containing the requested rulesets and their rules. + properties: + data: + $ref: "#/components/schemas/GetMultipleRulesetsResponseData" + required: + - data + type: object + GetMultipleRulesetsResponseData: + description: The primary data object in the get-multiple-rulesets response, containing the response attributes and resource type. properties: attributes: - $ref: "#/components/schemas/IncidentGoogleChatConfigurationPatchDataAttributesRequest" + $ref: "#/components/schemas/GetMultipleRulesetsResponseDataAttributes" id: - description: The configuration identifier. - example: 00000000-0000-0000-0000-000000000000 - format: uuid + description: The unique identifier of the get-multiple-rulesets response resource, echoed from the request. + example: "" type: string type: - $ref: "#/components/schemas/IncidentGoogleChatConfigurationType" + $ref: "#/components/schemas/GetMultipleRulesetsResponseDataType" required: - id - type + - attributes type: object - IncidentGoogleChatConfigurationPatchRequest: - description: Request payload for patching a Google Chat configuration. + GetMultipleRulesetsResponseDataAttributes: + description: The attributes of the get-multiple-rulesets response, containing the list of requested rulesets. properties: - data: - $ref: "#/components/schemas/IncidentGoogleChatConfigurationPatchDataRequest" - required: - - data - type: object - IncidentGoogleChatConfigurationRelationships: - description: Relationships for a Google Chat configuration. - properties: - created_by_user: - $ref: "#/components/schemas/RelationshipToUser" - incident_type: - $ref: "#/components/schemas/RelationshipToIncidentType" - last_modified_by_user: - $ref: "#/components/schemas/RelationshipToUser" - type: object - IncidentGoogleChatConfigurationRelationshipsRequest: - description: Relationships for a Google Chat configuration create request. - properties: - incident_type: - $ref: "#/components/schemas/RelationshipToIncidentType" - required: - - incident_type - type: object - IncidentGoogleChatConfigurationRequest: - description: Request payload for creating a Google Chat configuration. - properties: - data: - $ref: "#/components/schemas/IncidentGoogleChatConfigurationDataRequest" + rulesets: + description: The list of rulesets returned in response to the batch request. + items: + $ref: "#/components/schemas/GetMultipleRulesetsResponseDataAttributesRulesetsItems" + type: array required: - - data + - rulesets type: object - IncidentGoogleChatConfigurationResponse: - description: Response with a Google Chat configuration. + GetMultipleRulesetsResponseDataAttributesRulesetsItems: + description: A ruleset returned in the response, containing its metadata and associated rules. properties: - data: - $ref: "#/components/schemas/IncidentGoogleChatConfigurationDataResponse" - included: - description: Included related resources. + description: + description: A detailed description of the ruleset's purpose and the types of issues it targets. + example: "" + type: string + id: + description: The unique identifier of the ruleset, which is the same as its name. + example: "" + type: string + name: + description: The unique name of the ruleset. + example: "" + type: string + rules: + description: The list of static analysis rules included in this ruleset. items: - $ref: "#/components/schemas/IncidentUserData" - readOnly: true + $ref: "#/components/schemas/GetMultipleRulesetsResponseDataAttributesRulesetsItemsRulesItems" type: array + short_description: + description: A brief summary of the ruleset, suitable for display in listings. + example: "" + type: string required: - - data + - id + - name + - short_description + - description + - rules type: object - IncidentGoogleChatConfigurationType: - description: Google Chat configuration resource type. + GetMultipleRulesetsResponseDataAttributesRulesetsItemsDataType: + default: rulesets + description: Rulesets resource type. enum: - - google_chat_configurations - example: google_chat_configurations + - rulesets + example: rulesets type: string x-enum-varnames: - - GOOGLE_CHAT_CONFIGURATIONS - IncidentGoogleMeetConfigurationDataAttributesRequest: - description: Attributes for creating a Google Meet configuration. + - RULESETS + GetMultipleRulesetsResponseDataAttributesRulesetsItemsRulesItems: + description: A static analysis rule within a ruleset, including its definition, metadata, and associated test cases. properties: - allow_manual_meeting_creation: - description: Whether to allow manual meeting creation. - example: true - type: boolean - auto_summarize: - description: Whether to auto-summarize meetings. + arguments: + description: The list of configurable arguments accepted by this rule. + items: + $ref: "#/components/schemas/GetMultipleRulesetsResponseDataAttributesRulesetsItemsRulesItemsArgumentsItems" + type: array + category: + description: The category classifying the type of issue this rule detects (e.g., security, style, performance). + example: "" + type: string + checksum: + description: A checksum of the rule definition used to detect changes. + example: "" + type: string + code: + description: The rule implementation code used by the static analysis engine. + example: "" + type: string + created_at: + description: The date and time when the rule was created. + example: "" + format: date-time + type: string + created_by: + description: The identifier of the user or system that created the rule. + example: "" + type: string + cve: + description: The CVE identifier associated with the vulnerability this rule detects, if applicable. + type: string + cwe: + description: The CWE identifier associated with the weakness category this rule detects, if applicable. + type: string + description: + description: A detailed explanation of what the rule detects and why it matters. + example: "" + type: string + documentation_url: + description: A URL pointing to additional documentation for this rule. + type: string + entity_checked: + description: The code entity type (e.g., function, class, variable) that this rule inspects. + type: string + id: + description: The unique identifier of the rule, which is the same as its name. + example: "" + type: string + is_published: + description: Indicates whether the rule is publicly published and available to all users. example: false type: boolean - required: - - allow_manual_meeting_creation - - auto_summarize - type: object - IncidentGoogleMeetConfigurationDataAttributesResponse: - description: Attributes of a Google Meet configuration. - properties: - allow_manual_meeting_creation: - description: Whether manual meeting creation is allowed. - example: true - type: boolean - auto_summarize: - description: Whether meetings are auto-summarized. + is_testing: + description: Indicates whether the rule is in testing mode and not yet promoted to production. example: false type: boolean - created_at: - description: Timestamp when the configuration was created. - example: "2024-01-01T00:00:00.000Z" - format: date-time + language: + description: The programming language this rule applies to. + example: "" type: string - modified_at: - description: Timestamp when the configuration was last modified. - example: "2024-01-01T00:00:00.000Z" + last_updated_at: + description: The date and time when the rule was last modified. + example: "" format: date-time type: string - required: - - allow_manual_meeting_creation - - auto_summarize - - modified_at - type: object - IncidentGoogleMeetConfigurationDataRequest: - description: Google Meet configuration data in a create request. - properties: - attributes: - $ref: "#/components/schemas/IncidentGoogleMeetConfigurationDataAttributesRequest" - relationships: - $ref: "#/components/schemas/IncidentGoogleMeetConfigurationRelationshipsRequest" - type: - $ref: "#/components/schemas/IncidentGoogleMeetConfigurationType" - required: - - type - - attributes - - relationships - type: object - IncidentGoogleMeetConfigurationDataResponse: - description: Google Meet configuration data in a response. - properties: - attributes: - $ref: "#/components/schemas/IncidentGoogleMeetConfigurationDataAttributesResponse" - id: - description: The configuration identifier. - example: 00000000-0000-0000-0000-000000000000 - format: uuid + last_updated_by: + description: The identifier of the user or system that last updated the rule. + example: "" + type: string + name: + description: The unique name identifying this rule within its ruleset. + example: "" + type: string + regex: + description: A regular expression pattern used by the rule for pattern-based detection. + type: string + severity: + description: The severity level of findings produced by this rule (e.g., ERROR, WARNING, NOTICE). + example: "" + type: string + short_description: + description: A brief summary of what the rule detects, suitable for display in listings. + example: "" + type: string + should_use_ai_fix: + description: Indicates whether an AI-generated fix suggestion should be offered for findings from this rule. + example: false + type: boolean + tests: + description: The list of test cases used to validate the rule's behavior. + items: + $ref: "#/components/schemas/GetMultipleRulesetsResponseDataAttributesRulesetsItemsRulesItemsTestsItems" + type: array + tree_sitter_query: + description: The Tree-sitter query expression used by the rule to match code patterns in the AST. type: string - relationships: - $ref: "#/components/schemas/IncidentGoogleMeetConfigurationRelationships" type: - $ref: "#/components/schemas/IncidentGoogleMeetConfigurationType" + description: The rule type indicating the detection mechanism used (e.g., tree_sitter, regex). + example: "" + type: string required: - id + - name + - short_description + - description + - code + - language - type - - attributes + - checksum + - created_at + - created_by + - last_updated_at + - last_updated_by + - severity + - category + - arguments + - tests + - is_published + - should_use_ai_fix + - is_testing type: object - IncidentGoogleMeetConfigurationPatchDataAttributesRequest: - description: Attributes for patching a Google Meet configuration. All fields are optional. + GetMultipleRulesetsResponseDataAttributesRulesetsItemsRulesItemsArgumentsItems: + description: An argument parameter for a static analysis rule, with a name and description. properties: - allow_manual_meeting_creation: - description: Whether to allow manual meeting creation. - example: true - type: boolean - auto_summarize: - description: Whether to auto-summarize meetings. - example: false - type: boolean + description: + description: A human-readable explanation of the argument's purpose and accepted values. + type: string + name: + description: The name of the rule argument. + type: string type: object - IncidentGoogleMeetConfigurationPatchDataRequest: - description: Google Meet configuration data in a patch request. + GetMultipleRulesetsResponseDataAttributesRulesetsItemsRulesItemsTestsItems: + description: A test case associated with a static analysis rule, containing the source code and expected annotation count. properties: - attributes: - $ref: "#/components/schemas/IncidentGoogleMeetConfigurationPatchDataAttributesRequest" - id: - description: The configuration identifier. - example: 00000000-0000-0000-0000-000000000000 - format: uuid + annotation_count: + description: The expected number of annotations (findings) the rule should produce when run against the test code. + format: int64 + maximum: 65535 + minimum: 0 + type: integer + code: + description: The source code snippet used as input for the rule test. + type: string + filename: + description: The filename associated with the test code snippet. type: string - type: - $ref: "#/components/schemas/IncidentGoogleMeetConfigurationType" - required: - - id - - type type: object - IncidentGoogleMeetConfigurationPatchRequest: - description: Request payload for patching a Google Meet configuration. + GetMultipleRulesetsResponseDataType: + default: get_multiple_rulesets_response + description: Get multiple rulesets response resource type. + enum: + - get_multiple_rulesets_response + example: get_multiple_rulesets_response + type: string + x-enum-varnames: + - GET_MULTIPLE_RULESETS_RESPONSE + GetResourceEvaluationFiltersResponse: + description: The definition of `GetResourceEvaluationFiltersResponse` object. properties: data: - $ref: "#/components/schemas/IncidentGoogleMeetConfigurationPatchDataRequest" + $ref: "#/components/schemas/GetResourceEvaluationFiltersResponseData" required: - data type: object - IncidentGoogleMeetConfigurationRelationships: - description: Relationships for a Google Meet configuration. + GetResourceEvaluationFiltersResponseData: + description: The definition of `GetResourceFilterResponseData` object. properties: - created_by_user: - $ref: "#/components/schemas/RelationshipToUser" - incident_type: - $ref: "#/components/schemas/RelationshipToIncidentType" - last_modified_by_user: - $ref: "#/components/schemas/RelationshipToUser" + attributes: + $ref: "#/components/schemas/ResourceFilterAttributes" + id: + description: The `data` `id`. + example: csm_resource_filter + type: string + type: + $ref: "#/components/schemas/ResourceFilterRequestType" type: object - IncidentGoogleMeetConfigurationRelationshipsRequest: - description: Relationships for a Google Meet configuration create request. + GetRuleVersionHistoryData: + description: Data for the rule version history. properties: - incident_type: - $ref: "#/components/schemas/RelationshipToIncidentType" - required: - - incident_type + attributes: + $ref: "#/components/schemas/RuleVersionHistory" + id: + description: ID of the rule. + type: string + type: + $ref: "#/components/schemas/GetRuleVersionHistoryDataType" type: object - IncidentGoogleMeetConfigurationRequest: - description: Request payload for creating a Google Meet configuration. + GetRuleVersionHistoryDataType: + description: Type of data. + enum: + - GetRuleVersionHistoryResponse + type: string + x-enum-varnames: + - GETRULEVERSIONHISTORYRESPONSE + GetRuleVersionHistoryResponse: + description: Response for getting the rule version history. properties: data: - $ref: "#/components/schemas/IncidentGoogleMeetConfigurationDataRequest" - required: - - data + $ref: "#/components/schemas/GetRuleVersionHistoryData" type: object - IncidentGoogleMeetConfigurationResponse: - description: Response with a Google Meet configuration. + GetSBOMResponse: + description: The expected response schema when getting an SBOM. properties: data: - $ref: "#/components/schemas/IncidentGoogleMeetConfigurationDataResponse" - included: - description: Included related resources. - items: - $ref: "#/components/schemas/IncidentUserData" - readOnly: true - type: array + $ref: "#/components/schemas/SBOM" required: - data type: object - IncidentGoogleMeetConfigurationType: - description: Google Meet configuration resource type. + GetSuppressionVersionHistoryData: + description: Data for the suppression version history. + properties: + attributes: + $ref: "#/components/schemas/SuppressionVersionHistory" + id: + description: ID of the suppression. + type: string + type: + $ref: "#/components/schemas/GetSuppressionVersionHistoryDataType" + type: object + GetSuppressionVersionHistoryDataType: + description: Type of data. enum: - - google_meet_configurations - example: google_meet_configurations + - suppression_version_history type: string x-enum-varnames: - - GOOGLE_MEET_CONFIGURATIONS - IncidentHandleAttributesFields: - description: Dynamic fields associated with the handle - example: - severity: ["SEV-1"] + - SUPPRESSIONVERSIONHISTORY + GetSuppressionVersionHistoryResponse: + description: Response for getting the suppression version history. properties: - severity: - description: Severity levels associated with the handle - items: - $ref: "#/components/schemas/IncidentHandleAttributesFieldsSeverity" - type: array + data: + $ref: "#/components/schemas/GetSuppressionVersionHistoryData" type: object - IncidentHandleAttributesFieldsSeverity: - description: Severity level associated with an incident handle. - example: SEV-1 + GetTeamMembershipsSort: + description: Specifies the order of returned team memberships + enum: + - manager_name + - -manager_name + - name + - -name + - handle + - -handle + - email + - -email type: string - IncidentHandleAttributesRequest: - description: Incident handle attributes for requests + x-enum-varnames: + - MANAGER_NAME + - _MANAGER_NAME + - NAME + - _NAME + - HANDLE + - _HANDLE + - EMAIL + - _EMAIL + GetWorkflowResponse: + description: The response object after getting a workflow. properties: - fields: - $ref: "#/components/schemas/IncidentHandleAttributesFields" - name: - description: The handle name - example: "@incident-sev-1" - type: string - required: - - name + data: + $ref: "#/components/schemas/WorkflowData" type: object - IncidentHandleAttributesResponse: - description: Incident handle attributes for responses + GitCommitSHA: + description: "Git Commit SHA." + example: 66adc9350f2cc9b250b69abddab733dd55e1a588 + pattern: "^[a-fA-F0-9]{40,}$" + type: string + GitRepositoryID: + description: "Git Repository ID" + example: "github.com/organization/example-repository" + type: string + GitRepositoryURL: + description: "Git Repository URL" + example: "https://github.com/organization/example-repository" + type: string + GithubWebhookTrigger: + description: 'Trigger a workflow from a GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to "base_url"/api/v2/workflows/"workflow_id"/webhook?orgId="org_id", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.' properties: - created_at: - description: Timestamp when the handle was created - example: "2026-01-13T17:15:52.726905Z" - format: date-time - type: string - fields: - $ref: "#/components/schemas/IncidentHandleAttributesFields" - modified_at: - description: Timestamp when the handle was last modified - example: "2026-01-13T17:15:52.726905Z" - format: date-time - type: string - name: - description: The handle name - example: "@incident-sev-1" - type: string + rateLimit: + $ref: "#/components/schemas/TriggerRateLimit" + type: object + GithubWebhookTriggerWrapper: + description: "Schema for a GitHub webhook-based trigger." + properties: + githubWebhookTrigger: + $ref: "#/components/schemas/GithubWebhookTrigger" + startStepNames: + $ref: "#/components/schemas/StartStepNames" required: - - name - - fields - - created_at - - modified_at + - githubWebhookTrigger type: object - IncidentHandleDataRequest: - description: Data object representing an incident handle in a create or update request. + GitlabAPIKey: + description: The definition of the `GitlabAPIKey` object. properties: - attributes: - $ref: "#/components/schemas/IncidentHandleAttributesRequest" - id: - description: The ID of the incident handle (required for PUT requests) - example: "b2494081-cdf0-4205-b366-4e1dd4fdf0bf" + api_token: + description: The `GitlabAPIKey` `api_token`. + example: "" type: string - relationships: - $ref: "#/components/schemas/IncidentHandleRelationshipsRequest" type: - $ref: "#/components/schemas/IncidentHandleType" + $ref: "#/components/schemas/GitlabAPIKeyType" required: - type - - attributes + - api_token type: object - IncidentHandleDataResponse: - description: Data object representing an incident handle in a response. + GitlabAPIKeyType: + description: The definition of the `GitlabAPIKey` object. + enum: + - GitlabAPIKey + example: GitlabAPIKey + type: string + x-enum-varnames: + - GITLABAPIKEY + GitlabAPIKeyUpdate: + description: The definition of the `GitlabAPIKey` object. properties: - attributes: - $ref: "#/components/schemas/IncidentHandleAttributesResponse" - id: - description: The ID of the incident handle - example: "12ceee6d-a7c0-4407-bc54-30e54140d7f0" + api_token: + description: The `GitlabAPIKeyUpdate` `api_token`. type: string - relationships: - $ref: "#/components/schemas/IncidentHandleRelationships" type: - $ref: "#/components/schemas/IncidentHandleType" + $ref: "#/components/schemas/GitlabAPIKeyType" required: - - id - type - - attributes type: object - IncidentHandleIncludedItemResponse: - description: A single included resource item in an incident handle response, which can be a user or an incident type. + GitlabCredentials: + description: The definition of the `GitlabCredentials` object. oneOf: - - $ref: "#/components/schemas/IncidentUserData" - - $ref: "#/components/schemas/IncidentTypeObject" - IncidentHandleIncludedResponse: - description: Included related resources + - $ref: "#/components/schemas/GitlabAPIKey" + GitlabCredentialsUpdate: + description: The definition of the `GitlabCredentialsUpdate` object. + oneOf: + - $ref: "#/components/schemas/GitlabAPIKeyUpdate" + GitlabIntegration: + description: The definition of the `GitlabIntegration` object. + properties: + credentials: + $ref: "#/components/schemas/GitlabCredentials" + type: + $ref: "#/components/schemas/GitlabIntegrationType" + required: + - type + - credentials + type: object + GitlabIntegrationType: + description: The definition of the `GitlabIntegrationType` object. + enum: + - Gitlab + example: Gitlab + type: string + x-enum-varnames: + - GITLAB + GitlabIntegrationUpdate: + description: The definition of the `GitlabIntegrationUpdate` object. + properties: + credentials: + $ref: "#/components/schemas/GitlabCredentialsUpdate" + type: + $ref: "#/components/schemas/GitlabIntegrationType" + required: + - type + type: object + GlobalAnnotationIds: + description: List of annotation IDs that apply to the entire page rather than a specific widget. + example: + - "00000000-0000-0000-0000-000000000001" items: - $ref: "#/components/schemas/IncidentHandleIncludedItemResponse" + description: Annotation ID. + format: uuid + type: string type: array - IncidentHandleRelationship: - description: A single relationship object for an incident handle, wrapping the related resource data. + GlobalIncidentSettingsAttributesRequest: + description: Global incident settings attributes properties: - data: - $ref: "#/components/schemas/IncidentHandleRelationshipData" - required: - - data + analytics_dashboard_id: + description: The analytics dashboard ID + example: abc-123-def + type: string type: object - IncidentHandleRelationshipData: - description: Relationship data for an incident handle, containing the ID and type of the related resource. + GlobalIncidentSettingsAttributesResponse: + description: Global incident settings attributes properties: - id: - description: The ID of the related resource - example: "f7b538b1-ed7c-4e84-82de-fdf84a539d40" + analytics_dashboard_id: + description: The analytics dashboard ID + example: abc-123-def type: string - type: - description: The type of the related resource - example: "incident_types" + created: + description: Timestamp when the settings were created + example: "2026-01-13T17:15:56.557278191Z" + format: date-time + type: string + modified: + description: Timestamp when the settings were last modified + example: "2026-01-13T17:15:56.557278191Z" + format: date-time type: string required: - - id - - type + - created + - modified + - analytics_dashboard_id type: object - IncidentHandleRelationships: - description: Relationships associated with an incident handle response, including linked users and incident type. - nullable: true + GlobalIncidentSettingsDataRequest: + description: Data object in the global incident settings request. properties: - commander_user: - $ref: "#/components/schemas/IncidentHandleRelationship" - created_by_user: - $ref: "#/components/schemas/IncidentHandleRelationship" - incident_type: - $ref: "#/components/schemas/IncidentHandleRelationship" - last_modified_by_user: - $ref: "#/components/schemas/IncidentHandleRelationship" + attributes: + $ref: "#/components/schemas/GlobalIncidentSettingsAttributesRequest" + type: + $ref: "#/components/schemas/GlobalIncidentSettingsType" required: - - incident_type - - created_by_user - - last_modified_by_user + - type type: object - IncidentHandleRelationshipsRequest: - description: Relationships to associate with an incident handle in a create or update request. - nullable: true + GlobalIncidentSettingsDataResponse: + description: Data object in the global incident settings response. properties: - commander_user: - $ref: "#/components/schemas/IncidentHandleRelationship" - incident_type: - $ref: "#/components/schemas/IncidentHandleRelationship" + attributes: + $ref: "#/components/schemas/GlobalIncidentSettingsAttributesResponse" + id: + description: The unique identifier for the global incident settings + example: f8b9a915-ed85-48b4-9071-ceba567a3db5 + type: string + type: + $ref: "#/components/schemas/GlobalIncidentSettingsType" required: - - incident_type + - id + - type + - attributes type: object - IncidentHandleRequest: - description: Request payload for creating or updating a global incident handle. + GlobalIncidentSettingsRequest: + description: Request payload for updating global incident settings. properties: data: - $ref: "#/components/schemas/IncidentHandleDataRequest" + $ref: "#/components/schemas/GlobalIncidentSettingsDataRequest" required: - data type: object - IncidentHandleResponse: - description: Response payload for a single incident handle, including the handle data and related resources. + GlobalIncidentSettingsResponse: + description: Response payload containing global incident settings. properties: data: - $ref: "#/components/schemas/IncidentHandleDataResponse" - included: - $ref: "#/components/schemas/IncidentHandleIncludedResponse" + $ref: "#/components/schemas/GlobalIncidentSettingsDataResponse" required: - data type: object - IncidentHandleType: - description: Incident handle resource type + GlobalIncidentSettingsType: + description: Global incident settings resource type enum: - - incidents_handles - example: incidents_handles + - incidents_global_settings + example: incidents_global_settings type: string x-enum-varnames: - - INCIDENTS_HANDLES - IncidentHandlesResponse: - description: Response payload for a list of global incident handles, including handle data and related resources. - properties: - data: - $ref: "#/components/schemas/IncidentHandlesResponseData" - example: - - attributes: - name: "@incident-sev-1" - id: "12ceee6d-a7c0-4407-bc54-30e54140d7f0" - type: incident_handles - included: - $ref: "#/components/schemas/IncidentHandleIncludedResponse" - required: - - data - type: object - IncidentHandlesResponseData: - description: Array of incident handle data objects returned in a list response. - items: - $ref: "#/components/schemas/IncidentHandleDataResponse" - type: array - IncidentImpactAttributes: - description: The incident impact's attributes. + - INCIDENTS_GLOBAL_SETTINGS + GlobalOrg: + description: Organization information for a global organization association. properties: - created: - description: Timestamp when the impact was created. - example: "2025-08-29T13:17:00Z" - format: date-time - readOnly: true - type: string - description: - description: Description of the impact. - example: "Service was unavailable for external users" + name: + description: The name of the organization. + example: Example Org type: string - end_at: - description: Timestamp when the impact ended. - example: "2025-08-29T13:17:00Z" - format: date-time + public_id: + description: The public identifier of the organization. + example: abcdef12345 nullable: true type: string - fields: - $ref: "#/components/schemas/IncidentImpactFieldsObject" - impact_type: - description: The type of impact. - example: "customer" - type: string - modified: - description: Timestamp when the impact was last modified. - example: "2025-08-29T13:17:00Z" - format: date-time - readOnly: true + subdomain: + description: The subdomain used to access the organization, if configured. + example: example + nullable: true type: string - start_at: - description: Timestamp representing when the impact started. - example: "2025-08-28T13:17:00Z" - format: date-time + uuid: + description: The UUID of the organization. + example: "13d10a96-6ff2-49be-be7b-4f56ebb13335" + format: uuid type: string required: - - description - - start_at + - uuid + - name type: object - IncidentImpactCreateAttributes: - description: The incident impact's attributes for a create request. + GlobalOrgAttributes: + description: Attributes of an organization associated with the authenticated user. properties: - description: - description: Description of the impact. - example: "Service was unavailable for external users" - type: string - end_at: - description: Timestamp when the impact ended. - example: "2025-08-29T13:17:00Z" - format: date-time + org: + $ref: "#/components/schemas/GlobalOrg" + redirect_url: + description: The login URL used to switch into the organization, if available. + example: "https://app.datadoghq.com/account/login/password?dd_oid=13d10a96-6ff2-49be-be7b-4f56ebb13335&login_hint=user%40example.com" nullable: true type: string - fields: - $ref: "#/components/schemas/IncidentImpactFieldsObject" - start_at: - description: Timestamp when the impact started. - example: "2025-08-28T13:17:00Z" - format: date-time + source_region: + description: The source region of the organization. + example: us1.prod.dog type: string + user: + $ref: "#/components/schemas/GlobalOrgUser" required: - - description - - start_at + - user + - org + - source_region type: object - IncidentImpactCreateData: - description: Incident impact data for a create request. + GlobalOrgData: + description: An organization associated with the authenticated user. properties: attributes: - $ref: "#/components/schemas/IncidentImpactCreateAttributes" + $ref: "#/components/schemas/GlobalOrgAttributes" type: - $ref: "#/components/schemas/IncidentImpactType" + $ref: "#/components/schemas/GlobalOrgType" required: - type - attributes type: object - IncidentImpactCreateRequest: - description: Create request for an incident impact. - properties: - data: - $ref: "#/components/schemas/IncidentImpactCreateData" - required: - - data - type: object - IncidentImpactCreatedTrigger: - description: "Trigger a workflow when an impact is created for an incident." + GlobalOrgIdentifier: + description: A unique identifier for an organization including its site. properties: - executionLimit: - $ref: "#/components/schemas/ExecutionLimit" - incidentType: - description: "The type of incident that triggers the workflow." + org_site: + description: The site of the organization. + example: "us1" + type: string + org_uuid: + description: The UUID of the organization. + example: "c3d4e5f6-a7b8-9012-cdef-012345678901" + format: uuid type: string - tagCondition: - $ref: "#/components/schemas/IncidentCondition" - type: object - IncidentImpactCreatedTriggerWrapper: - description: "Schema for an incident impact created trigger." - properties: - incidentImpactCreatedTrigger: - $ref: "#/components/schemas/IncidentImpactCreatedTrigger" - startStepNames: - $ref: "#/components/schemas/StartStepNames" required: - - incidentImpactCreatedTrigger + - org_uuid + - org_site type: object - IncidentImpactFieldChoice: - description: A choice option for a dropdown or multiselect impact field. + GlobalOrgType: + description: The resource type for global user organizations. + enum: [global_user_orgs] + example: global_user_orgs + type: string + x-enum-varnames: + - GLOBAL_USER_ORGS + GlobalOrgUser: + description: User information for a global organization association. properties: - description: - description: The description of the choice. - example: Affects all customers - type: string - display_name: - description: The display name of the choice. - example: Critical + handle: + description: The handle of the user. + example: user@example.com type: string - value: - description: The value of the choice. - example: critical + uuid: + description: The UUID of the user. + example: "cfab5cf9-5472-48ea-a79c-a64045f4f745" + format: uuid type: string required: - - value - - display_name + - uuid + - handle type: object - IncidentImpactFieldDataAttributesRequest: - description: Attributes for creating an impact field. + GlobalOrgsLinks: + description: Pagination links. properties: - display_name: - description: The display name of the impact field. - example: Customer Impact Scope - type: string - field_choices: - description: The choices for dropdown or multiselect fields. - items: - $ref: "#/components/schemas/IncidentImpactFieldChoice" - type: array - field_type: - $ref: "#/components/schemas/IncidentImpactFieldValueType" - name: - description: The normalized name of the impact field (used as identifier). - example: customer_impact_scope + next: + description: Link to the next page. + example: "https://app.datadoghq.com/api/v2/global_orgs?user_handle=user@example.com&page[limit]=100&page[cursor]=next-page" + nullable: true type: string - tag_key: - description: The tag key associated with the field (for metrictag type). - example: env + prev: + description: Link to the previous page. nullable: true type: string - required: - - name - - display_name - - field_type + self: + description: Link to the current page. + example: "https://app.datadoghq.com/api/v2/global_orgs?user_handle=user@example.com&page[limit]=100" + type: string type: object - IncidentImpactFieldDataAttributesResponse: - description: Attributes of an impact field in a response. + GlobalOrgsMeta: + description: Response metadata object. properties: - display_name: - description: The display name of the impact field. - example: Customer Impact Scope + page: + $ref: "#/components/schemas/GlobalOrgsMetaPage" + type: object + GlobalOrgsMetaPage: + description: Paging attributes. + properties: + cursor: + description: The cursor used to get the current results, if any. + example: "" type: string - field_choices: - description: The choices for dropdown or multiselect fields. - items: - $ref: "#/components/schemas/IncidentImpactFieldChoice" - type: array - field_type: - $ref: "#/components/schemas/IncidentImpactFieldValueType" - name: - description: The normalized name of the impact field. - example: customer_impact_scope + limit: + description: Number of results returned. + example: 100 + format: int32 + maximum: 1000 + type: integer + next_cursor: + description: The cursor used to get the next results, if any. + example: next-page + nullable: true type: string - tag_key: - description: The tag key associated with the field. - example: env + prev_cursor: + description: The cursor used to get the previous results, if any. nullable: true type: string - required: - - name - - display_name - - field_type + type: + $ref: "#/components/schemas/GlobalOrgsMetaPageType" type: object - IncidentImpactFieldDataRequest: - description: Impact field data in a create request. + GlobalOrgsMetaPageType: + description: Type of global orgs pagination. + enum: [cursor] + example: cursor + type: string + x-enum-varnames: + - CURSOR + GlobalOrgsResponse: + description: Response containing organizations across regions for the authenticated user. properties: - attributes: - $ref: "#/components/schemas/IncidentImpactFieldDataAttributesRequest" - relationships: - $ref: "#/components/schemas/IncidentImpactFieldRelationshipsRequest" - type: - $ref: "#/components/schemas/IncidentImpactFieldType" + data: + description: Organizations across regions for the authenticated user. + items: + $ref: "#/components/schemas/GlobalOrgData" + type: array + links: + $ref: "#/components/schemas/GlobalOrgsLinks" + meta: + $ref: "#/components/schemas/GlobalOrgsMeta" required: - - type - - attributes - - relationships + - data type: object - IncidentImpactFieldDataResponse: - description: Impact field data in a response. + GlobalVariableData: + description: Synthetics global variable data. Wrapper around the global variable object. properties: attributes: - $ref: "#/components/schemas/IncidentImpactFieldDataAttributesResponse" + $ref: "#/components/schemas/SyntheticsGlobalVariable" id: - description: The impact field identifier. - example: 00000000-0000-0000-0000-000000000000 - format: uuid + description: Global variable identifier. type: string - relationships: - $ref: "#/components/schemas/IncidentImpactFieldRelationships" type: - $ref: "#/components/schemas/IncidentImpactFieldType" - required: - - id - - type - - attributes - type: object - IncidentImpactFieldRelationships: - description: Relationships for an impact field. - properties: - created_by_user: - $ref: "#/components/schemas/RelationshipToUser" - incident_type: - $ref: "#/components/schemas/RelationshipToIncidentType" - last_modified_by_user: - $ref: "#/components/schemas/RelationshipToUser" - type: object - IncidentImpactFieldRelationshipsRequest: - description: Relationships for an impact field create request. - properties: - incident_type: - $ref: "#/components/schemas/RelationshipToIncidentType" - required: - - incident_type + $ref: "#/components/schemas/GlobalVariableType" type: object - IncidentImpactFieldRequest: - description: Request payload for creating an impact field. + GlobalVariableJsonPatchRequest: + description: JSON Patch request for global variable. properties: data: - $ref: "#/components/schemas/IncidentImpactFieldDataRequest" + $ref: "#/components/schemas/GlobalVariableJsonPatchRequestData" required: - data type: object - IncidentImpactFieldResponse: - description: Response with a single impact field. + GlobalVariableJsonPatchRequestData: + description: Data object for a JSON Patch request on a Synthetic global variable. properties: - data: - $ref: "#/components/schemas/IncidentImpactFieldDataResponse" - included: - description: Included related resources. - items: - $ref: "#/components/schemas/IncidentUserData" - readOnly: true + attributes: + $ref: "#/components/schemas/GlobalVariableJsonPatchRequestDataAttributes" + type: + $ref: "#/components/schemas/GlobalVariableJsonPatchType" + type: object + GlobalVariableJsonPatchRequestDataAttributes: + description: Attributes for a JSON Patch request on a Synthetic global variable. + properties: + json_patch: + description: JSON Patch operations following RFC 6902. + items: + $ref: "#/components/schemas/JsonPatchOperation" type: array - required: - - data type: object - IncidentImpactFieldType: - description: Impact field resource type. + GlobalVariableJsonPatchType: + description: Global variable JSON Patch type. enum: - - impact_fields - example: impact_fields + - global_variables_json_patch type: string x-enum-varnames: - - IMPACT_FIELDS - IncidentImpactFieldValueType: - description: The type of an impact field. + - GLOBAL_VARIABLES_JSON_PATCH + GlobalVariableResponse: + description: Global variable response. + properties: + data: + $ref: "#/components/schemas/GlobalVariableData" + type: object + GlobalVariableType: + description: Global variable type. enum: - - dropdown - - text - - textarray - - metrictag - - number - - datetime - - multiselect - example: dropdown + - global_variables type: string x-enum-varnames: - - DROPDOWN - - TEXT - - TEXTARRAY - - METRICTAG - - NUMBER - - DATETIME - - MULTISELECT - IncidentImpactFieldsObject: - additionalProperties: {} - description: An object mapping impact field names to field values. - example: {"customers_impacted": "all", "products_impacted": ["shopping", "marketing"]} - type: object - IncidentImpactFieldsResponse: - description: Response with a list of impact fields. + - GLOBAL_VARIABLES + GoogleChatAppNamedSpaceResponse: + description: Response with Google Chat space information. properties: data: - description: List of impact fields. - items: - $ref: "#/components/schemas/IncidentImpactFieldDataResponse" - type: array - included: - description: Included related resources. - items: - $ref: "#/components/schemas/IncidentUserData" - readOnly: true - type: array + $ref: "#/components/schemas/GoogleChatAppNamedSpaceResponseData" required: - data type: object - IncidentImpactPatchAttributes: - description: The incident impact's attributes for a patch request. All fields are optional. + GoogleChatAppNamedSpaceResponseAttributes: + description: Google Chat space attributes. properties: - description: - description: Description of the impact. - example: "Service was unavailable for external users" + display_name: + description: Google space display name. + example: "Fake Space Name" + maxLength: 255 type: string - end_at: - description: Timestamp when the impact ended. - example: "2025-08-29T13:17:00Z" - format: date-time - nullable: true + organization_binding_id: + description: Organization binding ID. + example: "2f18a894-adb5-4c53-8248-39fd3f5386a5" + maxLength: 255 type: string - fields: - $ref: "#/components/schemas/IncidentImpactFieldsObject" - start_at: - description: Timestamp when the impact started. - example: "2025-08-28T13:17:00Z" - format: date-time + resource_name: + description: Google space resource name. + example: "spaces/AAAAAAAAA" + maxLength: 255 + type: string + space_uri: + description: Google space URI. + example: "https://chat.google.com/room/AAAAAAAAA" + maxLength: 255 type: string type: object - IncidentImpactPatchData: - description: Incident impact data for a patch request. + GoogleChatAppNamedSpaceResponseData: + description: Google Chat space data from a response. properties: attributes: - $ref: "#/components/schemas/IncidentImpactPatchAttributes" + $ref: "#/components/schemas/GoogleChatAppNamedSpaceResponseAttributes" + id: + description: The ID of the Google Chat space. + example: "596da4af-0563-4097-90ff-07230c3f9db3" + maxLength: 100 + minLength: 1 + type: string type: - $ref: "#/components/schemas/IncidentImpactType" - required: - - type + $ref: "#/components/schemas/GoogleChatAppNamedSpaceType" type: object - IncidentImpactPatchRequest: - description: Patch request for an incident impact. + GoogleChatAppNamedSpaceType: + default: google-chat-app-named-space + description: Google Chat space resource type. + enum: + - google-chat-app-named-space + example: google-chat-app-named-space + type: string + x-enum-varnames: + - GOOGLE_CHAT_APP_NAMED_SPACE_TYPE + GoogleChatCreateOrganizationHandleRequest: + description: Create organization handle request. properties: data: - $ref: "#/components/schemas/IncidentImpactPatchData" + $ref: "#/components/schemas/GoogleChatCreateOrganizationHandleRequestData" + type: + $ref: "#/components/schemas/GoogleChatOrganizationHandleType" required: + - type - data type: object - IncidentImpactRelatedObject: - description: A reference to a resource related to an incident impact. - enum: - - incident - - created_by_user - - last_modified_by_user - type: string - x-enum-varnames: - - INCIDENT - - CREATED_BY_USER - - LAST_MODIFIED_BY_USER - IncidentImpactRelationships: - description: The incident impact's resource relationships. + GoogleChatCreateOrganizationHandleRequestAttributes: + description: Organization handle attributes for a create request. properties: - created_by_user: - $ref: "#/components/schemas/RelationshipToUser" - incident: - $ref: "#/components/schemas/RelationshipToIncident" - last_modified_by_user: - $ref: "#/components/schemas/RelationshipToUser" + name: + description: Organization handle name. + example: "fake-handle-name" + maxLength: 255 + type: string + space_resource_name: + description: Google space resource name. + example: "spaces/AAAAAAAAA" + maxLength: 255 + type: string + required: + - name + - space_resource_name type: object - IncidentImpactResponse: - description: Response with an incident impact. + GoogleChatCreateOrganizationHandleRequestData: + description: Organization handle data for a create request. properties: - data: - $ref: "#/components/schemas/IncidentImpactResponseData" - included: - description: Included related resources that the user requested. + attributes: + $ref: "#/components/schemas/GoogleChatCreateOrganizationHandleRequestAttributes" + required: + - attributes + type: object + GoogleChatDelegatedUserAttributes: + description: Google Chat delegated user attributes. + properties: + display_name: + description: The delegated user's display name. + example: "fake-display-name" + type: string + email: + description: The delegated user's email address. + example: "user@example.com" + type: string + features: + description: The list of features enabled for the delegated user. items: - $ref: "#/components/schemas/IncidentUserData" - readOnly: true + type: string type: array - required: - - data type: object - IncidentImpactResponseData: - description: Incident impact data from a response. + GoogleChatDelegatedUserData: + description: Google Chat delegated user data from a response. properties: attributes: - $ref: "#/components/schemas/IncidentImpactAttributes" + $ref: "#/components/schemas/GoogleChatDelegatedUserAttributes" id: - description: The incident impact's ID. - example: "00000000-0000-0000-1234-000000000000" + description: The ID of the delegated user. + example: "2b3c4d5e-6f78-9012-bcde-f23456789012" + maxLength: 100 + minLength: 1 type: string - relationships: - $ref: "#/components/schemas/IncidentImpactRelationships" type: - $ref: "#/components/schemas/IncidentImpactType" + $ref: "#/components/schemas/GoogleChatDelegatedUserType" + type: object + GoogleChatDelegatedUserResponse: + description: Response containing a Google Chat delegated user. + properties: + data: + $ref: "#/components/schemas/GoogleChatDelegatedUserData" required: - - id - - type + - data type: object - IncidentImpactType: - default: incident_impacts - description: Incident impact resource type. + GoogleChatDelegatedUserType: + default: google-chat-delegated-user + description: Google Chat delegated user resource type. enum: - - incident_impacts - example: incident_impacts + - google-chat-delegated-user + example: google-chat-delegated-user type: string x-enum-varnames: - - INCIDENT_IMPACTS - IncidentImpactUpdatedTrigger: - description: "Trigger a workflow when an impact is updated for an incident." + - GOOGLE_CHAT_DELEGATED_USER_TYPE + GoogleChatOrganizationAttributes: + description: Google Chat organization attributes. properties: - executionLimit: - $ref: "#/components/schemas/ExecutionLimit" - incidentType: - description: "The type of incident that triggers the workflow." + domain_id: + description: The Google Chat organization domain ID. + example: "fake-domain-id" + maxLength: 255 + type: string + domain_name: + description: The Google Chat organization domain name. + example: "example.com" + maxLength: 255 type: string - tagCondition: - $ref: "#/components/schemas/IncidentCondition" type: object - IncidentImpactUpdatedTriggerWrapper: - description: "Schema for an incident impact updated trigger." + GoogleChatOrganizationData: + description: Google Chat organization data from a response. properties: - incidentImpactUpdatedTrigger: - $ref: "#/components/schemas/IncidentImpactUpdatedTrigger" - startStepNames: - $ref: "#/components/schemas/StartStepNames" - required: - - incidentImpactUpdatedTrigger + attributes: + $ref: "#/components/schemas/GoogleChatOrganizationAttributes" + id: + description: The ID of the Google Chat organization binding. + example: "5ce87709-a12f-4086-fcc8-147045b73a19" + maxLength: 100 + minLength: 1 + type: string + relationships: + $ref: "#/components/schemas/GoogleChatOrganizationRelationships" + type: + $ref: "#/components/schemas/GoogleChatOrganizationType" type: object - IncidentImpactsResponse: - description: Response with a list of incident impacts. + GoogleChatOrganizationHandleResponse: + description: Organization handle for monitor notifications to a Google Chat space within a Google organization. properties: data: - description: An array of incident impacts. - items: - $ref: "#/components/schemas/IncidentImpactResponseData" - type: array - included: - description: Included related resources that the user requested. - items: - $ref: "#/components/schemas/IncidentUserData" - readOnly: true - type: array + $ref: "#/components/schemas/GoogleChatOrganizationHandleResponseData" required: - data type: object - IncidentImpactsType: - description: The incident impacts type. - enum: - - incident_impacts - example: incident_impacts - type: string - x-enum-varnames: - - INCIDENT_IMPACTS - IncidentImportFieldAttributes: - description: Dynamic fields for which selections can be made, with field names as keys. - oneOf: - - $ref: "#/components/schemas/IncidentImportFieldAttributesSingleValue" - - $ref: "#/components/schemas/IncidentImportFieldAttributesMultipleValue" - IncidentImportFieldAttributesMultipleValue: - additionalProperties: false - description: A field with potentially multiple values selected. + GoogleChatOrganizationHandleResponseAttributes: + description: Organization handle attributes. properties: - value: - description: The multiple values selected for this field. - example: ["1.0", "1.1"] - items: - description: A value which has been selected for the parent field. - example: "1.1" - type: string - nullable: true - type: array + name: + description: Organization handle name. + example: "fake-handle-name" + maxLength: 255 + type: string + space_display_name: + description: Google space display name. + example: "Fake Space Name" + maxLength: 255 + type: string + space_resource_name: + description: Google space resource name. + example: "spaces/AAAAAAAAA" + maxLength: 255 + type: string type: object - IncidentImportFieldAttributesSingleValue: - additionalProperties: false - description: A field with a single value selected. + GoogleChatOrganizationHandleResponseData: + description: Organization handle data from a response. properties: - value: - description: The single value selected for this field. - example: "SEV-1" - nullable: true + attributes: + $ref: "#/components/schemas/GoogleChatOrganizationHandleResponseAttributes" + id: + description: The ID of the organization handle. + example: "596da4af-0563-4097-90ff-07230c3f9db3" + maxLength: 100 + minLength: 1 type: string + type: + $ref: "#/components/schemas/GoogleChatOrganizationHandleType" type: object - IncidentImportRelatedObject: - description: Object related to an incident that can be included in the response. + GoogleChatOrganizationHandleType: + default: google-chat-organization-handle + description: Organization handle resource type. enum: - - last_modified_by_user - - created_by_user - - commander_user - - declared_by_user - - incident_type + - google-chat-organization-handle + example: google-chat-organization-handle type: string x-enum-varnames: - - LAST_MODIFIED_BY_USER - - CREATED_BY_USER - - COMMANDER_USER - - DECLARED_BY_USER - - INCIDENT_TYPE - IncidentImportRelationships: - description: The relationships for an incident import request. - properties: - commander_user: - $ref: "#/components/schemas/NullableRelationshipToUser" - declared_by_user: - $ref: "#/components/schemas/NullableRelationshipToUser" - type: object - IncidentImportRequest: - description: Import request for an incident. Used to import historical incidents from external systems. + - GOOGLE_CHAT_ORGANIZATION_HANDLE_TYPE + GoogleChatOrganizationHandlesResponse: + description: List of organization handles for monitor notifications to Google Chat spaces within a Google organization. properties: data: - $ref: "#/components/schemas/IncidentImportRequestData" + description: An array of organization handles. + example: [{"attributes": {"name": "general-handle", "space_display_name": "General", "space_resource_name": "spaces/AAAAAAAAA"}, "id": "596da4af-0563-4097-90ff-07230c3f9db3", "type": "google-chat-organization-handle"}, {"attributes": {"name": "general-handle-2", "space_display_name": "General2", "space_resource_name": "spaces/BBBBBBBBB"}, "id": "596da4af-0563-4097-90ff-07230c3f9db4", "type": "google-chat-organization-handle"}] + items: + $ref: "#/components/schemas/GoogleChatOrganizationHandleResponseData" + type: array required: - data type: object - IncidentImportRequestAttributes: - description: The incident's attributes for an import request. + GoogleChatOrganizationRelationships: + description: Google Chat organization relationships. properties: - declared: - description: Timestamp when the incident was declared. - example: "2025-01-01T00:00:00Z" - format: date-time - type: string - detected: - description: Timestamp when the incident was detected. - example: "2025-01-01T00:00:00Z" - format: date-time - type: string - fields: - additionalProperties: - $ref: "#/components/schemas/IncidentImportFieldAttributes" - description: A condensed view of the user-defined fields for which to create initial selections. - example: {"severity": {"value": "SEV-5"}, "state": {"value": "active"}} - type: object - incident_type_uuid: - description: A unique identifier that represents the incident type. If not provided, the default incident type is used. - example: "00000000-0000-0000-0000-000000000000" - type: string - resolved: - description: Timestamp when the incident was resolved. Can only be set when the state field is set to 'resolved'. - example: "2025-01-01T01:00:00Z" - format: date-time - type: string - title: - description: The title of the incident that summarizes what happened. - example: "Imported incident from external system" - maxLength: 1024 - type: string - visibility: - $ref: "#/components/schemas/IncidentImportVisibility" - required: - - title + delegated_user: + $ref: "#/components/schemas/GoogleChatOrganizationRelationshipsDelegatedUser" type: object - IncidentImportRequestData: - description: Incident data for an import request. + GoogleChatOrganizationRelationshipsDelegatedUser: + description: The delegated user relationship. properties: - attributes: - $ref: "#/components/schemas/IncidentImportRequestAttributes" - relationships: - $ref: "#/components/schemas/IncidentImportRelationships" + data: + $ref: "#/components/schemas/GoogleChatOrganizationRelationshipsDelegatedUserData" + type: object + GoogleChatOrganizationRelationshipsDelegatedUserData: + description: Delegated user relationship data. + properties: + id: + description: The ID of the delegated user. + example: "2b3c4d5e-6f78-9012-bcde-f23456789012" + type: string type: - $ref: "#/components/schemas/IncidentType" + $ref: "#/components/schemas/GoogleChatDelegatedUserType" + type: object + GoogleChatOrganizationResponse: + description: Response containing a Google Chat organization binding. + properties: + data: + $ref: "#/components/schemas/GoogleChatOrganizationData" required: - - type - - attributes + - data type: object - IncidentImportResponse: - description: Response with an incident. + GoogleChatOrganizationType: + default: google-chat-organization + description: Google Chat organization resource type. + enum: + - google-chat-organization + example: google-chat-organization + type: string + x-enum-varnames: + - GOOGLE_CHAT_ORGANIZATION_TYPE + GoogleChatOrganizationsResponse: + description: Response containing a list of Google Chat organization bindings. properties: data: - $ref: "#/components/schemas/IncidentImportResponseData" - included: - description: Included related resources that the user requested. + description: An array of Google Chat organization bindings. items: - $ref: "#/components/schemas/IncidentImportResponseIncludedItem" - readOnly: true + $ref: "#/components/schemas/GoogleChatOrganizationData" type: array required: - data type: object - IncidentImportResponseAttributes: - description: The incident's attributes from an import response. + GoogleChatTargetAudienceAttributes: + description: Google Chat target audience attributes. properties: - archived: - description: Timestamp when the incident was archived. - format: date-time - nullable: true - readOnly: true - type: string - case_id: - description: The incident case ID. - format: int64 - nullable: true - type: integer - created: - description: Timestamp when the incident was created. - example: "2025-01-01T00:00:00Z" - format: date-time - readOnly: true - type: string - created_by_uuid: - description: UUID of the user who created the incident. - nullable: true - type: string - creation_idempotency_key: - description: A unique key used to ensure idempotent incident creation. - nullable: true - type: string - customer_impact_end: - description: Timestamp when customers were no longer impacted by the incident. - format: date-time - nullable: true - type: string - customer_impact_scope: - description: A summary of the impact customers experienced during the incident. - example: "An example customer impact scope" - nullable: true - type: string - customer_impact_start: - description: Timestamp when customers began to be impacted by the incident. - format: date-time - nullable: true - type: string - declared: - description: Timestamp when the incident was declared. - example: "2025-01-01T00:00:00Z" - format: date-time - nullable: true - type: string - declared_by_uuid: - description: UUID of the user who declared the incident. - nullable: true - type: string - detected: - description: Timestamp when the incident was detected. - example: "2025-01-01T00:00:00Z" - format: date-time - nullable: true - type: string - fields: - additionalProperties: - $ref: "#/components/schemas/IncidentFieldAttributes" - description: A condensed view of the user-defined fields attached to incidents. - example: {"severity": {"type": "dropdown", "value": "SEV-5"}} - type: object - incident_type_uuid: - description: A unique identifier that represents an incident type. - example: "00000000-0000-0000-0000-000000000000" - type: string - is_test: - description: A flag indicating whether the incident is a test incident. - example: false - type: boolean - last_modified_by_uuid: - description: UUID of the user who last modified the incident. - nullable: true - type: string - modified: - description: Timestamp when the incident was last modified. - format: date-time - readOnly: true - type: string - non_datadog_creator: - $ref: "#/components/schemas/IncidentNonDatadogCreator" - notification_handles: - description: Notification handles that are notified of the incident during update. - items: - $ref: "#/components/schemas/IncidentNotificationHandle" - nullable: true - type: array - public_id: - description: The monotonically increasing integer ID for the incident. - example: 1 - format: int64 - type: integer - resolved: - description: Timestamp when the incident's state was last changed from active or stable to resolved or completed. - format: date-time - nullable: true + audience_id: + description: The audience ID. + example: "fake-audience-id-1" + maxLength: 255 type: string - severity: - $ref: "#/components/schemas/IncidentSeverity" - state: - description: The state of the incident. - nullable: true + audience_name: + description: The audience name. + example: "fake audience name 1" + maxLength: 255 type: string - title: - description: The title of the incident that summarizes what happened. - example: "A test incident title" + required: + - audience_name + - audience_id + type: object + GoogleChatTargetAudienceCreateRequest: + description: Create target audience request. + properties: + data: + $ref: "#/components/schemas/GoogleChatTargetAudienceCreateRequestData" + required: + - data + type: object + GoogleChatTargetAudienceCreateRequestAttributes: + description: Attributes for creating a Google Chat target audience. + properties: + audience_id: + description: The audience ID. + example: "fake-audience-id-1" + maxLength: 255 type: string - visibility: - description: The incident visibility status. - nullable: true + audience_name: + description: The audience name. + example: "fake audience name 1" + maxLength: 255 type: string required: - - title + - audience_name + - audience_id type: object - IncidentImportResponseData: - description: Incident data from an import response. + GoogleChatTargetAudienceCreateRequestData: + description: Data for a create target audience request. properties: attributes: - $ref: "#/components/schemas/IncidentImportResponseAttributes" - id: - description: The incident's ID. - example: "00000000-0000-0000-1234-000000000000" - type: string - relationships: - $ref: "#/components/schemas/IncidentImportResponseRelationships" + $ref: "#/components/schemas/GoogleChatTargetAudienceCreateRequestAttributes" type: - $ref: "#/components/schemas/IncidentType" + $ref: "#/components/schemas/GoogleChatTargetAudienceType" required: - - id - type + - attributes type: object - IncidentImportResponseIncludedItem: - description: An object related to an incident that is included in the response. - oneOf: - - $ref: "#/components/schemas/IncidentUserData" - - $ref: "#/components/schemas/IncidentTypeObject" - IncidentImportResponseRelationships: - description: The incident's relationships from an import response. + GoogleChatTargetAudienceData: + description: Google Chat target audience data from a response. properties: - attachments: - $ref: "#/components/schemas/RelationshipToIncidentAttachment" - commander_user: - $ref: "#/components/schemas/NullableRelationshipToUser" - created_by_user: - $ref: "#/components/schemas/RelationshipToUser" - declared_by_user: - $ref: "#/components/schemas/RelationshipToUser" - impacts: - $ref: "#/components/schemas/RelationshipToIncidentImpacts" - incident_type: - $ref: "#/components/schemas/RelationshipToIncidentType" - integrations: - $ref: "#/components/schemas/RelationshipToIncidentIntegrationMetadatas" - last_modified_by_user: - $ref: "#/components/schemas/RelationshipToUser" - responders: - $ref: "#/components/schemas/RelationshipToIncidentResponders" - user_defined_fields: - $ref: "#/components/schemas/RelationshipToIncidentUserDefinedFields" + attributes: + $ref: "#/components/schemas/GoogleChatTargetAudienceAttributes" + id: + description: The ID of the target audience. + example: "1f3e5ce6-944a-4075-97ae-105b5920b5cb" + maxLength: 100 + minLength: 1 + type: string + type: + $ref: "#/components/schemas/GoogleChatTargetAudienceType" type: object - IncidentImportVisibility: - default: organization - description: The visibility of the incident. + GoogleChatTargetAudienceResponse: + description: Response containing a Google Chat target audience. + properties: + data: + $ref: "#/components/schemas/GoogleChatTargetAudienceData" + required: + - data + type: object + GoogleChatTargetAudienceType: + default: google-chat-target-audience + description: Google Chat target audience resource type. enum: - - organization - - private - example: organization + - google-chat-target-audience + example: google-chat-target-audience type: string x-enum-varnames: - - ORGANIZATION - - PRIVATE - IncidentIntegrationMetadataAttributes: - description: Incident integration metadata's attributes for a create request. + - GOOGLE_CHAT_TARGET_AUDIENCE_TYPE + GoogleChatTargetAudienceUpdateRequest: + description: Update target audience request. properties: - created: - description: Timestamp when the incident todo was created. - format: date-time - readOnly: true - type: string - incident_id: - description: UUID of the incident this integration metadata is connected to. - example: "00000000-aaaa-0000-0000-000000000000" + data: + $ref: "#/components/schemas/GoogleChatTargetAudienceUpdateRequestData" + required: + - data + type: object + GoogleChatTargetAudienceUpdateRequestAttributes: + description: Attributes for updating a Google Chat target audience. + properties: + audience_id: + description: The audience ID. + example: "fake-audience-id-1" + maxLength: 255 type: string - integration_type: - description: |- - A number indicating the type of integration this metadata is for. 1 indicates Slack; - 7 indicates Microsoft Teams; - 8 indicates Jira. - example: 1 - format: int32 - maximum: 100 - type: integer - metadata: - $ref: "#/components/schemas/IncidentIntegrationMetadataMetadata" - modified: - description: Timestamp when the incident todo was last modified. - format: date-time - readOnly: true + audience_name: + description: The audience name. + example: "fake audience name 1" + maxLength: 255 type: string - status: - description: |- - A number indicating the status of this integration metadata. 0 indicates unknown; - 1 indicates pending; 2 indicates complete; 3 indicates manually created; - 4 indicates manually updated; 5 indicates failed. - format: int32 - maximum: 5 - type: integer - required: - - integration_type - - metadata type: object - IncidentIntegrationMetadataCreateData: - description: Incident integration metadata data for a create request. + GoogleChatTargetAudienceUpdateRequestData: + description: Data for an update target audience request. properties: attributes: - $ref: "#/components/schemas/IncidentIntegrationMetadataAttributes" + $ref: "#/components/schemas/GoogleChatTargetAudienceUpdateRequestAttributes" type: - $ref: "#/components/schemas/IncidentIntegrationMetadataType" + $ref: "#/components/schemas/GoogleChatTargetAudienceType" required: - type - attributes type: object - IncidentIntegrationMetadataCreateRequest: - description: Create request for an incident integration metadata. + GoogleChatTargetAudiencesResponse: + description: Response containing a list of Google Chat target audiences. properties: data: - $ref: "#/components/schemas/IncidentIntegrationMetadataCreateData" + description: An array of Google Chat target audiences. + items: + $ref: "#/components/schemas/GoogleChatTargetAudienceData" + type: array required: - data type: object - IncidentIntegrationMetadataListResponse: - description: Response with a list of incident integration metadata. + GoogleChatUpdateOrganizationHandleRequest: + description: Update organization handle request. properties: data: - description: An array of incident integration metadata. - items: - $ref: "#/components/schemas/IncidentIntegrationMetadataResponseData" - type: array - included: - description: Included related resources that the user requested. - items: - $ref: "#/components/schemas/IncidentIntegrationMetadataResponseIncludedItem" - readOnly: true - type: array - meta: - $ref: "#/components/schemas/IncidentResponseMeta" + $ref: "#/components/schemas/GoogleChatUpdateOrganizationHandleRequestData" + type: + $ref: "#/components/schemas/GoogleChatOrganizationHandleType" required: + - type - data type: object - IncidentIntegrationMetadataMetadata: - description: Incident integration metadata's metadata attribute. - oneOf: - - $ref: "#/components/schemas/SlackIntegrationMetadata" - - $ref: "#/components/schemas/JiraIntegrationMetadata" - - $ref: "#/components/schemas/MSTeamsIntegrationMetadata" - IncidentIntegrationMetadataPatchData: - description: Incident integration metadata data for a patch request. + GoogleChatUpdateOrganizationHandleRequestAttributes: + description: Organization handle attributes for an update request. + properties: + name: + description: Organization handle name. + example: "fake-handle-name" + maxLength: 255 + type: string + space_resource_name: + description: Google space resource name. + example: "spaces/AAAAAAAAA" + maxLength: 255 + type: string + type: object + GoogleChatUpdateOrganizationHandleRequestData: + description: Organization handle data for an update request. properties: attributes: - $ref: "#/components/schemas/IncidentIntegrationMetadataAttributes" - type: - $ref: "#/components/schemas/IncidentIntegrationMetadataType" + $ref: "#/components/schemas/GoogleChatUpdateOrganizationHandleRequestAttributes" required: - - type - attributes type: object - IncidentIntegrationMetadataPatchRequest: - description: Patch request for an incident integration metadata. + GoogleDocsPostmortemSettings: + description: Settings for a postmortem template stored in Google Docs. Required when `location` is `google_docs`. properties: - data: - $ref: "#/components/schemas/IncidentIntegrationMetadataPatchData" + account_id: + description: The ID of the Google Drive integration account. + example: "123456" + type: string + parent_folder_id: + description: The ID of the Google Drive folder where postmortems are created. + example: "789012" + type: string required: - - data + - account_id + - parent_folder_id type: object - IncidentIntegrationMetadataResponse: - description: Response with an incident integration metadata. + GoogleMeetConfigurationReference: + description: A reference to a Google Meet Configuration resource. + nullable: true properties: data: - $ref: "#/components/schemas/IncidentIntegrationMetadataResponseData" - included: - description: Included related resources that the user requested. - items: - $ref: "#/components/schemas/IncidentIntegrationMetadataResponseIncludedItem" - readOnly: true - type: array + $ref: "#/components/schemas/GoogleMeetConfigurationReferenceData" required: - data type: object - IncidentIntegrationMetadataResponseData: - description: Incident integration metadata from a response. + GoogleMeetConfigurationReferenceData: + description: The Google Meet configuration relationship data object. + nullable: true properties: - attributes: - $ref: "#/components/schemas/IncidentIntegrationMetadataAttributes" id: - description: The incident integration metadata's ID. - example: "00000000-0000-0000-1234-000000000000" + description: The unique identifier of the Google Meet configuration. + example: "00000000-0000-0000-0000-000000000000" type: string - relationships: - $ref: "#/components/schemas/IncidentIntegrationRelationships" type: - $ref: "#/components/schemas/IncidentIntegrationMetadataType" + description: The type of the Google Meet configuration. + example: "google_meet_configurations" + type: string required: - id - type type: object - IncidentIntegrationMetadataResponseIncludedItem: - description: An object related to an incident integration metadata that is included in the response. - oneOf: - - $ref: "#/components/schemas/User" - IncidentIntegrationMetadataType: - default: incident_integrations - description: Integration metadata resource type. - enum: - - incident_integrations - example: incident_integrations - type: string - x-enum-varnames: - - INCIDENT_INTEGRATIONS - IncidentIntegrationRelationships: - description: The incident's integration relationships from a response. - properties: - created_by_user: - $ref: "#/components/schemas/RelationshipToUser" - last_modified_by_user: - $ref: "#/components/schemas/RelationshipToUser" - type: object - IncidentNonDatadogCreator: - description: Incident's non Datadog creator. - nullable: true + GovernanceConfigAttributes: + description: The attributes of a Governance Console configuration. properties: - image_48_px: - description: Non Datadog creator `48px` image. - type: string - name: - description: Non Datadog creator name. - type: string + assignment_notifications_enabled: + description: Whether notifications are sent to users when detections are assigned to them. + example: true + type: boolean + enabled: + description: Whether the Governance Console is enabled for the organization. + example: true + type: boolean + usage_attribution_configured: + description: Whether usage attribution is configured for the organization. + example: true + type: boolean + xorg_insights_enabled: + description: |- + Whether the organization has opted in to sharing governance data with a managing org + for cross-org insights. + example: true + type: boolean + required: + - enabled + - assignment_notifications_enabled + - usage_attribution_configured + - xorg_insights_enabled type: object - IncidentNotificationHandle: - description: A notification handle that will be notified at incident creation. + GovernanceConfigData: + description: A Governance Console configuration resource. properties: - display_name: - description: The name of the notified handle. - example: Jane Doe - type: string - handle: - description: The handle used for the notification. This includes an email address, Slack channel, or workflow. - example: "@test.user@test.com" + attributes: + $ref: "#/components/schemas/GovernanceConfigAttributes" + id: + description: |- + The unique identifier of the organization the Governance Console configuration applies + to. May be the nil UUID (`00000000-0000-0000-0000-000000000000`) when the configuration + is not tied to a specific organization record. + example: "00000000-0000-0000-0000-000000000000" type: string - type: object - IncidentNotificationRule: - description: Response with a notification rule. - properties: - data: - $ref: "#/components/schemas/IncidentNotificationRuleResponseData" - included: - description: Related objects that are included in the response. - items: - $ref: "#/components/schemas/IncidentNotificationRuleIncludedItems" - type: array + type: + $ref: "#/components/schemas/GovernanceConsoleConfigResourceType" required: - - data + - id + - type + - attributes type: object - IncidentNotificationRuleArray: - description: Response with notification rules. + GovernanceConfigResponse: + description: The Governance Console configuration for an organization. properties: data: - description: The `NotificationRuleArray` `data`. - items: - $ref: "#/components/schemas/IncidentNotificationRuleResponseData" - type: array - included: - description: Related objects that are included in the response. - items: - $ref: "#/components/schemas/IncidentNotificationRuleIncludedItems" - type: array - meta: - $ref: "#/components/schemas/IncidentNotificationRuleArrayMeta" + $ref: "#/components/schemas/GovernanceConfigData" required: - data type: object - IncidentNotificationRuleArrayMeta: - description: Response metadata. - properties: - pagination: - $ref: "#/components/schemas/IncidentNotificationRuleArrayMetaPage" - type: object - IncidentNotificationRuleArrayMetaPage: - description: Pagination metadata. + GovernanceConsoleConfigResourceType: + description: Governance console config resource type. + enum: + - governance_console_config + example: "governance_console_config" + type: string + x-enum-varnames: + - GOVERNANCE_CONSOLE_CONFIG + GovernanceControlAttributes: + description: The attributes of a governance control. properties: - next_offset: - description: The offset for the next page of results. - example: 15 - format: int64 - type: integer - offset: - description: The current offset in the results. - example: 0 - format: int64 - type: integer - size: - description: The number of results returned per page. - example: 15 + active_detections_count: + description: The number of active detections for the control. + example: 12 format: int64 type: integer - type: object - IncidentNotificationRuleAttributes: - description: The notification rule's attributes. - properties: - conditions: - $ref: "#/components/schemas/IncidentNotificationRuleConditions" - created: - description: Timestamp when the notification rule was created. - example: "2025-01-15T10:30:00Z" - format: date-time - readOnly: true - type: string - enabled: - description: Whether the notification rule is enabled. - example: true - type: boolean - handles: - $ref: "#/components/schemas/IncidentNotificationRuleHandles" - modified: - description: Timestamp when the notification rule was last modified. - example: "2025-01-15T14:45:00Z" + category: + description: The value driver the control is grouped under, such as `security` or `cost`. + example: "security" + type: string + created_at: + description: The time the control configuration was created. + example: "2024-01-15T09:30:00Z" format: date-time - readOnly: true type: string - renotify_on: - $ref: "#/components/schemas/IncidentNotificationRuleRenotifyOn" - trigger: - description: The trigger event for this notification rule. - example: "incident_created_trigger" + created_by: + description: The UUID of the user who created the control configuration. + example: "11111111-2222-3333-4444-555555555555" type: string - visibility: - $ref: "#/components/schemas/IncidentNotificationRuleAttributesVisibility" - required: - - conditions - - handles - - visibility - - trigger - - enabled - - created - - modified - type: object - IncidentNotificationRuleAttributesVisibility: - description: The visibility of the notification rule. - enum: ["all", "organization", "private"] - example: "organization" - type: string - x-enum-varnames: - - ALL - - ORGANIZATION - - PRIVATE - IncidentNotificationRuleConditions: - description: The conditions that trigger this notification rule. - example: [{"field": "severity", "values": ["SEV-1", "SEV-2"]}] - items: - $ref: "#/components/schemas/IncidentNotificationRuleConditionsItems" - type: array - IncidentNotificationRuleConditionsItems: - description: A condition that must be met to trigger the notification rule. - properties: - field: - description: The incident field to evaluate - example: "severity" + description: + description: A human-readable description of what the control detects. + example: "Identifies API keys that have not been used within your specified time threshold, helping reduce security risks from dormant credentials." type: string - values: - description: The value(s) to compare against. Multiple values are `ORed` together. - example: ["SEV-1", "SEV-2"] + detection_parameters: + $ref: "#/components/schemas/GovernanceControlParametersMap" + nullable: true + insights: + description: The insight slugs associated with the control. + example: [] items: - description: A value to compare against the incident field. + description: An insight slug associated with the control. type: string type: array - required: - - field - - values - type: object - IncidentNotificationRuleCreateAttributes: - description: The attributes for creating a notification rule. - properties: - conditions: - $ref: "#/components/schemas/IncidentNotificationRuleConditions" - enabled: - default: false - description: Whether the notification rule is enabled. - example: true - type: boolean - handles: - $ref: "#/components/schemas/IncidentNotificationRuleHandles" - renotify_on: - $ref: "#/components/schemas/IncidentNotificationRuleRenotifyOn" - trigger: - description: The trigger event for this notification rule. - example: "incident_created_trigger" + last_detection_at: + description: The time of the most recent detection for the control. `null` when there are no detections. + example: "2024-03-01T12:00:00Z" + format: date-time + nullable: true type: string - visibility: - $ref: "#/components/schemas/IncidentNotificationRuleCreateAttributesVisibility" - required: - - conditions - - handles - - trigger - type: object - IncidentNotificationRuleCreateAttributesVisibility: - description: The visibility of the notification rule. - enum: ["all", "organization", "private"] - example: "organization" - type: string - x-enum-varnames: - - ALL - - ORGANIZATION - - PRIVATE - IncidentNotificationRuleCreateData: - description: Notification rule data for a create request. - properties: - attributes: - $ref: "#/components/schemas/IncidentNotificationRuleCreateAttributes" - relationships: - $ref: "#/components/schemas/IncidentNotificationRuleCreateDataRelationships" + mitigated_detections_count: + description: The number of mitigated detections for the control. + example: 3 + format: int64 + type: integer + mitigation_parameters: + $ref: "#/components/schemas/GovernanceControlParametersMap" + nullable: true + mitigation_type: + description: The configured mitigation type for the control. Empty when not configured. + example: "revoke_api_key" + type: string + mitigations: + $ref: "#/components/schemas/GovernanceControlMitigationDefinitionArray" + name: + description: Human-readable name of the control. + example: "Unused API Keys" + type: string + priority: + description: The priority of the control, such as `High`. + example: "High" + type: string + product: + description: The product the control belongs to. + example: "api_keys" + type: string + resource_type: + description: The type of resource the control evaluates. + example: "api_key" + type: string + resource_type_display_name: + description: The human-readable name of the resource type. + example: "API Key" + type: string + supported_detection_parameters: + $ref: "#/components/schemas/GovernanceControlParameterDefinitionArray" type: - $ref: "#/components/schemas/IncidentNotificationRuleType" + description: The control type, such as `Proactive` or `Detection`. + example: "Proactive" + type: string required: + - name + - description + - supported_detection_parameters + - resource_type + - resource_type_display_name + - product + - category + - insights + - mitigations - type - - attributes - type: object - IncidentNotificationRuleCreateDataRelationships: - description: The definition of `NotificationRuleCreateDataRelationships` object. - properties: - incident_type: - $ref: "#/components/schemas/RelationshipToIncidentType" - notification_template: - $ref: "#/components/schemas/RelationshipToIncidentNotificationTemplate" - type: object - IncidentNotificationRuleHandles: - description: The notification handles (targets) for this rule. - example: ["@team-email@company.com", "@slack-channel"] - items: - description: A notification handle (email, Slack channel, etc.). - type: string - type: array - IncidentNotificationRuleIncludedItems: - description: Objects related to a notification rule. - oneOf: - - $ref: "#/components/schemas/User" - - $ref: "#/components/schemas/IncidentTypeObject" - - $ref: "#/components/schemas/IncidentNotificationTemplateObject" - IncidentNotificationRuleRelationships: - description: The notification rule's resource relationships. - properties: - created_by_user: - $ref: "#/components/schemas/RelationshipToUser" - incident_type: - $ref: "#/components/schemas/RelationshipToIncidentType" - last_modified_by_user: - $ref: "#/components/schemas/RelationshipToUser" - notification_template: - $ref: "#/components/schemas/RelationshipToIncidentNotificationTemplate" + - priority + - detection_parameters + - mitigation_type + - mitigation_parameters + - created_at + - created_by + - active_detections_count + - mitigated_detections_count + - last_detection_at type: object - IncidentNotificationRuleRenotifyOn: - description: List of incident fields that trigger re-notification when changed. - example: ["status", "severity"] - items: - description: An incident field name. - type: string - type: array - IncidentNotificationRuleResponseData: - description: Notification rule data from a response. + GovernanceControlData: + description: A governance control resource. properties: attributes: - $ref: "#/components/schemas/IncidentNotificationRuleAttributes" + $ref: "#/components/schemas/GovernanceControlAttributes" id: - description: The unique identifier of the notification rule. - example: "00000000-0000-0000-0000-000000000001" - format: uuid + description: The detection type that uniquely identifies the control. + example: "unused_api_keys" type: string - relationships: - $ref: "#/components/schemas/IncidentNotificationRuleRelationships" type: - $ref: "#/components/schemas/IncidentNotificationRuleType" + $ref: "#/components/schemas/GovernanceControlResourceType" required: - id - type + - attributes type: object - IncidentNotificationRuleType: - description: Notification rules resource type. + GovernanceControlDetectionAssignmentSource: + description: How the detection's current assignment was determined. Possible values are `auto_resolved`, `manual`, `reassigned`, and `cleared`. enum: - - incident_notification_rules - example: incident_notification_rules + - auto_resolved + - manual + - reassigned + - cleared + example: "manual" type: string x-enum-varnames: - - INCIDENT_NOTIFICATION_RULES - IncidentNotificationRuleUpdateData: - description: Notification rule data for an update request. + - AUTO_RESOLVED + - MANUAL + - REASSIGNED + - CLEARED + GovernanceControlDetectionAttributes: + description: The attributes of a governance control detection. properties: - attributes: - $ref: "#/components/schemas/IncidentNotificationRuleCreateAttributes" - id: - description: The unique identifier of the notification rule. - example: "00000000-0000-0000-0000-000000000001" - format: uuid + assigned_team: + description: The identifier of the team the detection is assigned to, if any. + example: "platform-security" type: string - relationships: - $ref: "#/components/schemas/IncidentNotificationRuleCreateDataRelationships" - type: - $ref: "#/components/schemas/IncidentNotificationRuleType" - required: - - id - - type - - attributes - type: object - IncidentNotificationTemplate: - description: Response with a notification template. - properties: - data: - $ref: "#/components/schemas/IncidentNotificationTemplateResponseData" - included: - description: Related objects that are included in the response. - items: - $ref: "#/components/schemas/IncidentNotificationTemplateIncludedItems" - type: array - required: - - data - type: object - IncidentNotificationTemplateArray: - description: Response with notification templates. - properties: - data: - description: The `NotificationTemplateArray` `data`. - items: - $ref: "#/components/schemas/IncidentNotificationTemplateResponseData" - type: array - included: - description: Related objects that are included in the response. - items: - $ref: "#/components/schemas/IncidentNotificationTemplateIncludedItems" - type: array - meta: - $ref: "#/components/schemas/IncidentNotificationTemplateArrayMeta" - required: - - data - type: object - IncidentNotificationTemplateArrayMeta: - description: Response metadata. - properties: - page: - $ref: "#/components/schemas/IncidentNotificationTemplateArrayMetaPage" - type: object - IncidentNotificationTemplateArrayMetaPage: - description: Pagination metadata. - properties: - total_count: - description: Total number of notification templates. - example: 42 - format: int64 - type: integer - total_filtered_count: - description: Total number of notification templates matching the filter. - example: 15 - format: int64 - type: integer - type: object - IncidentNotificationTemplateAttributes: - description: The notification template's attributes. - properties: - category: - description: The category of the notification template. - example: "alert" + assigned_to: + description: The identifier of the user the detection is assigned to, if any. + example: "11111111-2222-3333-4444-555555555555" type: string - content: - description: The content body of the notification template. - example: "An incident has been declared.\n\nTitle: {{incident.title}}\nSeverity: {{incident.severity}}\nAffected Services: {{incident.services}}\nStatus: {{incident.state}}\n\nPlease join the incident channel for updates." + assignment_source: + $ref: "#/components/schemas/GovernanceControlDetectionAssignmentSource" + control_id: + deprecated: true + description: |- + DEPRECATED: mirrors `detection_type` for backward compatibility; use `detection_type` + instead. + example: "unused_api_keys" type: string - created: - description: Timestamp when the notification template was created. - example: "2025-01-15T10:30:00Z" + created_at: + description: The date and time when the detection was created. + example: "2024-03-01T12:00:00Z" format: date-time - readOnly: true type: string - modified: - description: Timestamp when the notification template was last modified. - example: "2025-01-15T14:45:00Z" - format: date-time - readOnly: true + detection_type: + description: The type of detection, which determines what condition was detected. + example: "unused_api_keys" type: string - name: - description: The name of the notification template. - example: "Incident Alert Template" + display_name: + description: The human-readable name of the detected resource. + example: "CI Deploy Key" type: string - subject: - description: The subject line of the notification template. - example: "{{incident.severity}} Incident: {{incident.title}}" + exception_at: + description: The date and time when the detection was marked as an exception, if applicable. + example: "2024-03-05T09:00:00Z" + format: date-time type: string - required: - - name - - subject - - content - - category - - created - - modified - type: object - IncidentNotificationTemplateCreateAttributes: - description: The attributes for creating a notification template. - properties: - category: - description: The category of the notification template. - example: "alert" + exception_by: + description: The identifier of the user who marked the detection as an exception, if applicable. + example: "11111111-2222-3333-4444-555555555555" type: string - content: - description: The content body of the notification template. - example: "An incident has been declared.\n\nTitle: {{incident.title}}\nSeverity: {{incident.severity}}\nAffected Services: {{incident.services}}\nStatus: {{incident.state}}\n\nPlease join the incident channel for updates." + metadata: + description: Free-form metadata associated with the detection. + example: + region: "us-east-1" + mitigate_after: + description: The date and time after which the detection is scheduled to be mitigated, if applicable. + example: "2024-03-15T00:00:00Z" + format: date-time type: string - name: - description: The name of the notification template. - example: "Incident Alert Template" + mitigated_at: + description: The date and time when the detection was mitigated, if applicable. + example: "2024-03-10T15:30:00Z" + format: date-time type: string - subject: - description: The subject line of the notification template. - example: "{{incident.severity}} Incident: {{incident.title}}" + priority: + description: The priority of the detection, if set. + example: 1 + format: int64 + type: integer + resource_id: + description: The identifier of the resource the detection applies to. + example: "api-key-12345" + type: string + resource_type: + description: The type of resource the detection applies to, for example `api_key` or `dashboard`. + example: "api_key" type: string + state: + $ref: "#/components/schemas/GovernanceControlDetectionState" required: - - name - - subject - - content - - category + - state + - control_id + - resource_id + - detection_type + - resource_type + - display_name + - created_at + - assignment_source + - priority type: object - IncidentNotificationTemplateCreateData: - description: Notification template data for a create request. + GovernanceControlDetectionData: + description: A governance control detection resource. properties: attributes: - $ref: "#/components/schemas/IncidentNotificationTemplateCreateAttributes" - relationships: - $ref: "#/components/schemas/IncidentNotificationTemplateCreateDataRelationships" + $ref: "#/components/schemas/GovernanceControlDetectionAttributes" + id: + description: The unique identifier of the detection. + example: "3f9b2c1a-8d4e-4a6b-9c2f-1e7d5a0b3c4d" + type: string type: - $ref: "#/components/schemas/IncidentNotificationTemplateType" + $ref: "#/components/schemas/GovernanceControlDetectionResourceType" required: + - id - type - attributes type: object - IncidentNotificationTemplateCreateDataRelationships: - description: The definition of `NotificationTemplateCreateDataRelationships` object. - properties: - incident_type: - $ref: "#/components/schemas/RelationshipToIncidentType" - type: object - IncidentNotificationTemplateIncludedItems: - description: Objects related to a notification template. - oneOf: - - $ref: "#/components/schemas/User" - - $ref: "#/components/schemas/IncidentTypeObject" - IncidentNotificationTemplateObject: - description: A notification template object for inclusion in other resources. + GovernanceControlDetectionResourceType: + description: Governance control detection resource type. + enum: + - governance_control_detection + example: "governance_control_detection" + type: string + x-enum-varnames: + - GOVERNANCE_CONTROL_DETECTION + GovernanceControlDetectionResponse: + description: A single governance control detection. properties: - attributes: - $ref: "#/components/schemas/IncidentNotificationTemplateAttributes" - id: - description: The unique identifier of the notification template. - example: "00000000-0000-0000-0000-000000000001" - format: uuid - type: string - relationships: - $ref: "#/components/schemas/IncidentNotificationTemplateRelationships" - type: - $ref: "#/components/schemas/IncidentNotificationTemplateType" + data: + $ref: "#/components/schemas/GovernanceControlDetectionData" required: - - id - - type + - data type: object - IncidentNotificationTemplateRelationships: - description: The notification template's resource relationships. + GovernanceControlDetectionState: + description: The current state of the detection. Possible values are `active`, `exception`, `mitigated`, `inactive`, `obsolete`, `resolved_externally`, and `mitigation_in_progress`. + enum: + - active + - exception + - mitigated + - inactive + - obsolete + - resolved_externally + - mitigation_in_progress + example: "active" + type: string + x-enum-varnames: + - ACTIVE + - EXCEPTION + - MITIGATED + - INACTIVE + - OBSOLETE + - RESOLVED_EXTERNALLY + - MITIGATION_IN_PROGRESS + GovernanceControlDetectionUpdateAttributes: + description: The attributes of a governance control detection that can be updated. Only the attributes present in the request are modified. properties: - created_by_user: - $ref: "#/components/schemas/RelationshipToUser" - incident_type: - $ref: "#/components/schemas/RelationshipToIncidentType" - last_modified_by_user: - $ref: "#/components/schemas/RelationshipToUser" + assigned_team: + description: The handle of the team the detection is assigned to. Set to an empty string to clear the assignment. + example: "platform-security" + type: string + assigned_to: + description: The UUID of the user the detection is assigned to. Set to an empty string to clear the assignment. + example: "11111111-2222-3333-4444-555555555555" + type: string + mitigate_after: + description: The timestamp after which the detection becomes eligible for mitigation. Used to defer mitigation to a later time. + example: "2024-03-15T00:00:00Z" + format: date-time + type: string + state: + $ref: "#/components/schemas/GovernanceControlDetectionUpdateState" type: object - IncidentNotificationTemplateResponseData: - description: Notification template data from a response. + GovernanceControlDetectionUpdateData: + description: The data of a governance control detection update request. properties: attributes: - $ref: "#/components/schemas/IncidentNotificationTemplateAttributes" - id: - description: The unique identifier of the notification template. - example: "00000000-0000-0000-0000-000000000001" - format: uuid - type: string - relationships: - $ref: "#/components/schemas/IncidentNotificationTemplateRelationships" + $ref: "#/components/schemas/GovernanceControlDetectionUpdateAttributes" type: - $ref: "#/components/schemas/IncidentNotificationTemplateType" + $ref: "#/components/schemas/GovernanceControlDetectionResourceType" required: - - id - type type: object - IncidentNotificationTemplateType: - description: Notification templates resource type. + GovernanceControlDetectionUpdateRequest: + description: A request to update a governance control detection. + properties: + data: + $ref: "#/components/schemas/GovernanceControlDetectionUpdateData" + required: + - data + type: object + GovernanceControlDetectionUpdateState: + description: The new state to set for the detection. Set to `exception` to acknowledge the detection and exclude it from active counts, or `active` to reopen it. enum: - - notification_templates - example: notification_templates + - exception + - active + example: "exception" type: string x-enum-varnames: - - NOTIFICATION_TEMPLATES - IncidentNotificationTemplateUpdateAttributes: - description: The attributes to update on a notification template. + - EXCEPTION + - ACTIVE + GovernanceControlDetectionsDataArray: + description: An array of governance control detection resources. + items: + $ref: "#/components/schemas/GovernanceControlDetectionData" + type: array + GovernanceControlDetectionsResponse: + description: A list of governance control detections. properties: - category: - description: The category of the notification template. - example: "update" - type: string - content: - description: The content body of the notification template. - example: "Incident Status Update:\n\nTitle: {{incident.title}}\nNew Status: {{incident.state}}\nSeverity: {{incident.severity}}\nServices: {{incident.services}}\nCommander: {{incident.commander}}\n\nFor more details, visit the incident page." - type: string - name: - description: The name of the notification template. - example: "Incident Status Update Template" - type: string - subject: - description: The subject line of the notification template. - example: "Incident Update: {{incident.title}} - {{incident.state}}" - type: string + data: + $ref: "#/components/schemas/GovernanceControlDetectionsDataArray" + required: + - data type: object - IncidentNotificationTemplateUpdateData: - description: Notification template data for an update request. + GovernanceControlMitigationDefinition: + description: The definition of a mitigation available for a control. properties: - attributes: - $ref: "#/components/schemas/IncidentNotificationTemplateUpdateAttributes" + description: + description: A human-readable description of the mitigation. + example: "Automatically identifies and revokes inactive API keys to improve security and reduce potential attack surface." + type: string + execution_modes: + description: The execution modes the mitigation supports, such as `manual` or `automatic`. + example: + - "manual" + - "automatic" + items: + description: An execution mode the mitigation supports. + type: string + type: array id: - description: The unique identifier of the notification template. - example: "00000000-0000-0000-0000-000000000001" - format: uuid + description: The unique identifier of the mitigation. + example: "revoke_api_key" + type: string + permissions: + description: The permissions required to apply the mitigation. + example: + - "api_keys_write" + - "api_keys_delete" + items: + description: A permission required to apply the mitigation. + type: string + type: array + supported_parameters: + $ref: "#/components/schemas/GovernanceControlParameterDefinitionArray" + title: + description: A short, human-readable name for the mitigation. + example: "Revoke Unused API Keys" type: string - type: - $ref: "#/components/schemas/IncidentNotificationTemplateType" required: - id - - type + - title + - description + - supported_parameters + - permissions + - execution_modes type: object - IncidentOnCallPageDataAttributesRequest: - description: Attributes for linking a page to an incident. + GovernanceControlMitigationDefinitionArray: + description: The mitigations available for a control. + items: + $ref: "#/components/schemas/GovernanceControlMitigationDefinition" + type: array + GovernanceControlParameterDefinition: + description: The definition of a configurable parameter on a control or mitigation. properties: - key: - description: The key of the on-call page. - example: PAGE-12345 + default_value: + description: The default value of the parameter. The JSON type depends on the parameter's `type`. + example: 30 + description: + description: A human-readable description of the parameter. + example: "Number of days of inactivity before an API key is considered unused." type: string - page_target: - $ref: "#/components/schemas/IncidentOnCallPageTarget" - team_id: - description: The team ID associated with the page (deprecated, use page_target instead). - example: team-abc-123 + display_name: + description: The human-readable name of the parameter. + example: "Unused API Key Threshold" type: string - type: object - IncidentOnCallPageDataRequest: - description: On-call page data in a link request. - properties: - attributes: - $ref: "#/components/schemas/IncidentOnCallPageDataAttributesRequest" - id: - description: The ID of the on-call page to link. - example: PAGE-12345 + name: + description: The machine-readable name of the parameter. + example: "api_key_threshold" type: string + required: + description: Whether the parameter must be provided. + example: false + type: boolean + supported_values: + $ref: "#/components/schemas/GovernanceControlSupportedValueArray" type: - $ref: "#/components/schemas/IncidentOnCallPageType" + description: The type of the parameter, such as `integer`, `string`, `boolean`, `enum`, or `pattern_list`. + example: "integer" + type: string required: - - id + - name + - display_name + - description - type + - required + - supported_values + - default_value type: object - IncidentOnCallPageLinkRequest: - description: Request payload for linking an on-call page to an incident. + GovernanceControlParameterDefinitionArray: + description: An array of parameter definitions. + items: + $ref: "#/components/schemas/GovernanceControlParameterDefinition" + type: array + GovernanceControlParametersMap: + additionalProperties: {} + description: A free-form map of parameter names to their configured values. + type: object + GovernanceControlResourceType: + description: JSON:API resource type for a governance control. + enum: + - governance_control + example: "governance_control" + type: string + x-enum-varnames: + - GOVERNANCE_CONTROL + GovernanceControlResponse: + description: A single governance control. properties: data: - $ref: "#/components/schemas/IncidentOnCallPageDataRequest" + $ref: "#/components/schemas/GovernanceControlData" required: - data type: object - IncidentOnCallPageTarget: - description: The target of an on-call page. + GovernanceControlSupportedValue: + description: A supported value for an enumerated parameter. properties: - identifier: - description: The identifier of the page target. - example: my-oncall-team + label: + description: The human-readable label for the value. + example: "30 days" type: string - type: - description: The type of the page target. - example: team_handle + value: + description: The machine-readable value. + example: "thirty" type: string required: - - type - - identifier + - value + - label type: object - IncidentOnCallPageType: - description: On-call page resource type. - enum: - - page - example: page - type: string - x-enum-varnames: - - PAGE - IncidentOrgSettingsDataAttributesResponse: - description: Attributes of an incident org settings resource in a response. + GovernanceControlSupportedValueArray: + description: The supported values for an enumerated parameter. `null` when the parameter is not an enumerated type. + items: + $ref: "#/components/schemas/GovernanceControlSupportedValue" + nullable: true + type: array + GovernanceControlUpdateAttributes: + description: The attributes of a governance control that can be updated. Only the attributes present in the request are modified. properties: - created: - description: Timestamp when the settings were created. - example: "2024-01-01T00:00:00.000Z" - format: date-time - type: string - modified: - description: Timestamp when the settings were last modified. - example: "2024-01-01T00:00:00.000Z" - format: date-time + detection_parameters: + $ref: "#/components/schemas/GovernanceControlParametersMap" + nullable: true + mitigation_parameters: + $ref: "#/components/schemas/GovernanceControlParametersMap" + nullable: true + mitigation_type: + description: The mitigation type to configure for the control. + example: "revoke_api_key" type: string - settings: - $ref: "#/components/schemas/IncidentOrgSettingsMeta" - required: - - created - - modified - - settings type: object - IncidentOrgSettingsDataResponse: - description: Incident org settings data in a response. + GovernanceControlUpdateData: + description: The data of a governance control update request. properties: attributes: - $ref: "#/components/schemas/IncidentOrgSettingsDataAttributesResponse" - id: - description: The org settings identifier. - example: 00000000-0000-0000-0000-000000000000 - format: uuid - type: string - relationships: - $ref: "#/components/schemas/IncidentOrgSettingsRelationships" + $ref: "#/components/schemas/GovernanceControlUpdateAttributes" type: - $ref: "#/components/schemas/IncidentOrgSettingsType" + $ref: "#/components/schemas/GovernanceControlResourceType" required: - - id - type - - attributes type: object - IncidentOrgSettingsListResponse: - description: Response with a list of incident org settings resources. + GovernanceControlUpdateRequest: + description: A request to update a governance control. properties: data: - description: List of incident org settings resources. - items: - $ref: "#/components/schemas/IncidentOrgSettingsDataResponse" - type: array + $ref: "#/components/schemas/GovernanceControlUpdateData" required: - data type: object - IncidentOrgSettingsMeta: - additionalProperties: {} - description: The settings configuration for an incident org settings resource. - example: - allow_anonymous_incident_declaration: false - allow_guest_incident_declaration: false - pagerduty_paging: true - private_incidents_by_default: false - type: object - IncidentOrgSettingsRelationships: - description: Relationships for an incident org settings resource. - properties: - incident_type: - $ref: "#/components/schemas/RelationshipToIncidentType" - type: object - IncidentOrgSettingsResponse: - description: Response with a single incident org settings resource. + GovernanceControlsDataArray: + description: An array of governance control resources. + items: + $ref: "#/components/schemas/GovernanceControlData" + type: array + GovernanceControlsResponse: + description: A list of governance controls. properties: data: - $ref: "#/components/schemas/IncidentOrgSettingsDataResponse" + $ref: "#/components/schemas/GovernanceControlsDataArray" required: - data type: object - IncidentOrgSettingsType: - description: Incident org settings resource type. - enum: - - incident_org_settings - example: incident_org_settings - type: string - x-enum-varnames: - - INCIDENT_ORG_SETTINGS - IncidentPageRoleReference: - description: A reference to an incident role for a page. + GovernanceInsightAttributes: + description: |- + The attributes of a governance insight. Exactly one of `metric_query`, `event_query`, + `usage_query`, `audit_query`, or `percentage_query` is populated, depending on the data + source the insight is computed from; the rest are `null`. properties: - id: - description: The role identifier. - example: 00000000-0000-0000-0000-000000000000 - format: uuid + audit_query: + $ref: "#/components/schemas/GovernanceInsightAuditQuery" + nullable: true + description: + description: A human-readable description of what the insight measures. + example: "Number of users who have used the Dashboard in the last 30 days" type: string - type: - $ref: "#/components/schemas/IncidentPageRoleType" + display_name: + description: Human-readable name of the insight. + example: "Active Dashboards" + type: string + event_query: + $ref: "#/components/schemas/GovernanceInsightEventQuery" + nullable: true + metric_query: + $ref: "#/components/schemas/GovernanceInsightMetricQuery" + nullable: true + percentage_query: + $ref: "#/components/schemas/GovernanceInsightPercentageQuery" + nullable: true + product: + description: The product the insight belongs to. + example: "Usage" + type: string + query_config: + $ref: "#/components/schemas/GovernanceInsightQueryConfig" + nullable: true + sub_product: + description: The sub-product the insight belongs to, if any. + example: "Indexes" + type: string + time_range: + description: The time range the insight value is computed over, if applicable. + example: "month" + type: string + unit_name: + description: The unit that the insight's value is measured in. + example: "active dashboards" + type: string + usage_query: + $ref: "#/components/schemas/GovernanceInsightUsageQuery" + nullable: true required: - - type - - id + - display_name + - product + - sub_product + - unit_name + - description + - time_range type: object - IncidentPageRoleType: - description: The type of incident role for a page. - enum: - - incident_user_defined_roles - - incident_reserved_roles - example: incident_user_defined_roles - type: string - x-enum-varnames: - - INCIDENT_USER_DEFINED_ROLES - - INCIDENT_RESERVED_ROLES - IncidentPageTarget: - description: The target recipient for a page. + GovernanceInsightAuditCompute: + description: The aggregation applied to an audit log query. properties: - identifier: - description: The identifier of the target (handle, UUID, or user UUID). - example: my-team-handle + aggregation: + description: The aggregation function to apply. + example: "cardinality" + type: string + interval: + description: The aggregation time window, in milliseconds. + example: 86400000 + format: int64 + type: integer + metric: + description: The metric or attribute to aggregate. + example: "@usr.id" + type: string + rollup: + description: An optional secondary aggregation applied to the audit query result. + example: "" type: string - type: - $ref: "#/components/schemas/IncidentPageTargetType" required: - - type - - identifier + - aggregation + - metric + - interval type: object - IncidentPageTargetType: - description: The type of target for a page request. - enum: - - team_handle - - team_uuid - - user_uuid - example: team_uuid - type: string - x-enum-varnames: - - TEAM_HANDLE - - TEAM_UUID - - USER_UUID - IncidentPageUUIDDataResponse: - description: Page UUID data in a response. + GovernanceInsightAuditQuery: + description: An audit log query used to compute an insight value. + properties: + compute: + $ref: "#/components/schemas/GovernanceInsightAuditCompute" + indexes: + description: The audit log indexes the query runs against. + example: + - "main" + items: + description: An audit log index name. + type: string + type: array + query: + description: The audit log search query string. + example: "@evt.name:Dashboard" + type: string + source: + description: The data source the query runs against. + example: "audit" + type: string + required: + - source + - query + - indexes + - compute + type: object + GovernanceInsightData: + description: A governance insight resource. properties: + attributes: + $ref: "#/components/schemas/GovernanceInsightAttributes" id: - description: The UUID of the created page. - example: 00000000-0000-0000-0000-000000000001 - format: uuid + description: The unique identifier of the insight. + example: "498ee21f-8037-48b8-a961-a488692902f4" type: string type: - $ref: "#/components/schemas/IncidentPageUUIDType" + $ref: "#/components/schemas/GovernanceInsightResourceType" required: - id - type + - attributes type: object - IncidentPageUUIDResponse: - description: Response with a page UUID. - properties: - data: - $ref: "#/components/schemas/IncidentPageUUIDDataResponse" - required: - - data - type: object - IncidentPageUUIDType: - description: Resource type for a page UUID response. + GovernanceInsightDirectionality: + description: Whether an increase in the insight's value is good, bad, or neutral. enum: - - page_uuid - example: page_uuid + - neutral + - increase_better + - decrease_better + example: "neutral" type: string x-enum-varnames: - - PAGE_UUID - IncidentPostmortemType: - default: incident_postmortems - description: Incident postmortem resource type. - enum: - - incident_postmortems - example: incident_postmortems - type: string - x-enum-varnames: - - INCIDENT_POSTMORTEMS - IncidentPostmortemUpdatedTrigger: - description: "Trigger a workflow when a postmortem is updated for an incident." + - NEUTRAL + - INCREASE_BETTER + - DECREASE_BETTER + GovernanceInsightEventCompute: + description: The aggregation applied to an event query. properties: - executionLimit: - $ref: "#/components/schemas/ExecutionLimit" - incidentType: - description: "The type of incident that triggers the workflow." + aggregation: + description: The aggregation function to apply. + example: "count" type: string - tagCondition: - $ref: "#/components/schemas/IncidentCondition" + interval: + description: The aggregation time window, in milliseconds. + example: 86400000 + format: int64 + type: integer + required: + - aggregation + - interval type: object - IncidentPostmortemUpdatedTriggerWrapper: - description: "Schema for an incident postmortem updated trigger." + GovernanceInsightEventQuery: + description: An event query used to compute an insight value. properties: - incidentPostmortemUpdatedTrigger: - $ref: "#/components/schemas/IncidentPostmortemUpdatedTrigger" - startStepNames: - $ref: "#/components/schemas/StartStepNames" + compute: + $ref: "#/components/schemas/GovernanceInsightEventCompute" + nullable: true + indexes: + description: The event indexes the query runs against. + example: + - "main" + items: + description: An event index name. + type: string + type: array + query: + description: The event search query string. + example: "source:cloudtrail" + type: string required: - - incidentPostmortemUpdatedTrigger + - query + - indexes type: object - IncidentRelatedObject: - description: Object related to an incident. - enum: - - users - - attachments - type: string - x-enum-varnames: - - USERS - - ATTACHMENTS - IncidentRelationshipData: - description: Incident relationship data + GovernanceInsightMetricQuery: + description: A metric query used to compute an insight value. properties: - id: - description: Incident identifier - example: "00000000-0000-0000-0000-000000000000" + query: + description: The query string. + example: "avg:system.cpu.user{*}" + type: string + reducer: + description: How the query result series is reduced to a single value. + example: "avg" + type: string + source: + description: The data source the query runs against. + example: "metrics" type: string - type: - $ref: "#/components/schemas/IncidentResourceType" required: - - type - - id + - source + - query + - reducer type: object - IncidentResourceType: - description: Incident resource type + GovernanceInsightPercentageQuery: + description: A percentage query that computes an insight value as a ratio of two metric queries. + properties: + denominator_query: + $ref: "#/components/schemas/GovernanceInsightMetricQuery" + numerator_query: + $ref: "#/components/schemas/GovernanceInsightMetricQuery" + required: + - numerator_query + - denominator_query + type: object + GovernanceInsightQueryConfig: + description: Query execution context for running insight queries directly. + properties: + chart_type: + description: The chart type used to render the insight. + example: "line" + type: string + comparison_shift: + description: The window used for the previous value comparison; for example, `week` or `month`. + example: "month" + type: string + default_value: + description: The default value to display when no data is available. + example: 0 + format: int64 + type: integer + directionality: + $ref: "#/components/schemas/GovernanceInsightDirectionality" + effective_time_window_days: + description: The number of days the insight value is computed over. + example: 30 + format: int64 + type: integer + required: + - effective_time_window_days + - comparison_shift + type: object + GovernanceInsightResourceType: + description: JSON:API resource type for a governance insight. enum: - - incidents - example: incidents + - insight + example: "insight" type: string x-enum-varnames: - - INCIDENTS - IncidentResponderCreatedTrigger: - description: "Trigger a workflow when a responder is created for an incident." + - INSIGHT + GovernanceInsightUsageQuery: + description: A usage query used to compute an insight value. properties: - executionLimit: - $ref: "#/components/schemas/ExecutionLimit" - incidentType: - description: "The type of incident that triggers the workflow." + query: + description: The usage query string. + example: "logs_indexed_events" type: string - tagCondition: - $ref: "#/components/schemas/IncidentCondition" + reducer: + description: How the query result series is reduced to a single value. + example: "sum" + type: string + required: + - query + - reducer type: object - IncidentResponderCreatedTriggerWrapper: - description: "Schema for an incident responder created trigger." + GovernanceInsightsDataArray: + description: An array of governance insight resources. + items: + $ref: "#/components/schemas/GovernanceInsightData" + type: array + GovernanceInsightsResponse: + description: A list of governance insights. properties: - incidentResponderCreatedTrigger: - $ref: "#/components/schemas/IncidentResponderCreatedTrigger" - startStepNames: - $ref: "#/components/schemas/StartStepNames" + data: + $ref: "#/components/schemas/GovernanceInsightsDataArray" required: - - incidentResponderCreatedTrigger + - data type: object - IncidentResponderDataAttributesResponse: - description: Attributes of an incident responder in a response. + GovernanceMitigationRequest: + description: A request to mitigate a set of governance detections. properties: - created: - description: Timestamp when the responder was created. - example: "2024-01-01T00:00:00.000Z" - format: date-time - type: string - external_id: - description: The external ID of the responder. - example: - nullable: true - type: string - external_source: - description: The external source of the responder. + data: + $ref: "#/components/schemas/GovernanceMitigationRequestData" + required: + - data + type: object + GovernanceMitigationRequestAttributes: + description: The attributes of a governance mitigation request. + properties: + detection_ids: + description: The identifiers of the detections to mitigate in this request. example: - nullable: true - type: string - is_billable: - description: Whether this responder counts toward billing. - example: true - type: boolean - last_active: - description: Timestamp when the responder was last active. - example: "2024-01-01T00:00:00.000Z" - format: date-time - nullable: true + - "3f9b2c1a-8d4e-4a6b-9c2f-1e7d5a0b3c4d" + items: + description: The identifier of a detection to mitigate in this request. + type: string + type: array + detection_type: + description: The detection type whose detections should be mitigated. + example: "unused_api_keys" type: string - meta: - additionalProperties: {} - description: Additional metadata for the responder. + mitigation_parameters: + $ref: "#/components/schemas/GovernanceControlParametersMap" nullable: true - type: object - modified: - description: Timestamp when the responder was last modified. - example: "2024-01-01T00:00:00.000Z" - format: date-time + mitigation_type: + description: The mitigation to apply to the selected detections. Defaults to the control's configured mitigation when omitted. + example: "revoke_api_key" type: string required: - - created - - modified - - is_billable + - detection_type + - detection_ids type: object - IncidentResponderDataRequest: - description: Incident responder data in a create request. + GovernanceMitigationRequestData: + description: The data of a governance mitigation request. properties: - relationships: - $ref: "#/components/schemas/IncidentResponderRelationshipsRequest" + attributes: + $ref: "#/components/schemas/GovernanceMitigationRequestAttributes" type: - $ref: "#/components/schemas/IncidentResponderType" + $ref: "#/components/schemas/GovernanceControlDetectionResourceType" required: - type - - relationships type: object - IncidentResponderDataResponse: - description: Incident responder data in a response. + GovernanceNotificationSettingsAttributes: + description: The attributes of the organization-wide governance notification settings. + properties: + assignment_notifications_enabled: + description: Whether notifications are sent to users when detections are assigned to them. + example: true + type: boolean + required: + - assignment_notifications_enabled + type: object + GovernanceNotificationSettingsData: + description: A governance notification settings resource. properties: attributes: - $ref: "#/components/schemas/IncidentResponderDataAttributesResponse" + $ref: "#/components/schemas/GovernanceNotificationSettingsAttributes" id: - description: The responder identifier. - example: 00000000-0000-0000-0000-000000000000 - format: uuid + description: The unique identifier of the organization the notification settings apply to. + example: "11111111-2222-3333-4444-555555555555" type: string - relationships: - $ref: "#/components/schemas/IncidentResponderRelationships" type: - $ref: "#/components/schemas/IncidentResponderType" + $ref: "#/components/schemas/GovernanceNotificationSettingsResourceType" required: - id - type - attributes type: object - IncidentResponderRelationships: - description: Relationships for an incident responder. + GovernanceNotificationSettingsResourceType: + description: Governance notification settings resource type. + enum: + - governance_notification_settings + example: "governance_notification_settings" + type: string + x-enum-varnames: + - GOVERNANCE_NOTIFICATION_SETTINGS + GovernanceNotificationSettingsResponse: + description: The organization-wide governance notification settings. properties: - created_by: - $ref: "#/components/schemas/RelationshipToUser" - last_modified_by: - $ref: "#/components/schemas/RelationshipToUser" - role_assignments: - $ref: "#/components/schemas/IncidentResponderRoleAssignmentsRelationship" - user: - $ref: "#/components/schemas/NullableRelationshipToUser" + data: + $ref: "#/components/schemas/GovernanceNotificationSettingsData" + required: + - data type: object - IncidentResponderRelationshipsRequest: - description: Relationships for creating an incident responder. + GovernanceNotificationSettingsUpdateAttributes: + description: The attributes of the governance notification settings that can be updated. Only the attributes present in the request are modified. properties: - user: - $ref: "#/components/schemas/IncidentResponderUserRelationship" - required: - - user + assignment_notifications_enabled: + description: Whether notifications are sent to users when detections are assigned to them. + example: true + type: boolean type: object - IncidentResponderRequest: - description: Request payload for creating an incident responder. + GovernanceNotificationSettingsUpdateData: + description: The data of a governance notification settings update request. properties: - data: - $ref: "#/components/schemas/IncidentResponderDataRequest" + attributes: + $ref: "#/components/schemas/GovernanceNotificationSettingsUpdateAttributes" + type: + $ref: "#/components/schemas/GovernanceNotificationSettingsResourceType" required: - - data + - type type: object - IncidentResponderResponse: - description: Response with a single incident responder. + GovernanceNotificationSettingsUpdateRequest: + description: A request to update the organization-wide governance notification settings. properties: data: - $ref: "#/components/schemas/IncidentResponderDataResponse" - included: - description: Included related resources. - items: - $ref: "#/components/schemas/IncidentUserData" - readOnly: true - type: array + $ref: "#/components/schemas/GovernanceNotificationSettingsUpdateData" required: - data type: object - IncidentResponderRoleAssignmentRelationshipData: - description: A single role assignment relationship data object. + GreyNoiseAPIKey: + description: The definition of the `GreyNoiseAPIKey` object. properties: - id: - description: The role assignment identifier. - example: 00000000-0000-0000-0000-000000000000 - format: uuid + api_key: + description: The `GreyNoiseAPIKey` `api_key`. + example: "" type: string type: - description: The role assignment resource type. - example: incident_role_assignments - type: string + $ref: "#/components/schemas/GreyNoiseAPIKeyType" required: - - id - type + - api_key type: object - IncidentResponderRoleAssignmentsRelationship: - description: Relationship to role assignments for a responder. - properties: - data: - description: List of role assignment relationship data. - items: - $ref: "#/components/schemas/IncidentResponderRoleAssignmentRelationshipData" - type: array - type: object - IncidentResponderType: - description: Incident responder resource type. + GreyNoiseAPIKeyType: + description: The definition of the `GreyNoiseAPIKey` object. enum: - - incident_responders - example: incident_responders + - GreyNoiseAPIKey + example: GreyNoiseAPIKey type: string x-enum-varnames: - - INCIDENT_RESPONDERS - IncidentResponderUserRelationship: - description: Relationship to a user for a responder create request. - properties: - data: - $ref: "#/components/schemas/IncidentResponderUserRelationshipData" - required: - - data - type: object - IncidentResponderUserRelationshipData: - description: A user relationship data object for creating a responder. + - GREYNOISEAPIKEY + GreyNoiseAPIKeyUpdate: + description: The definition of the `GreyNoiseAPIKey` object. properties: - id: - description: The user identifier. - example: 00000000-0000-0000-0000-000000000000 - format: uuid + api_key: + description: The `GreyNoiseAPIKeyUpdate` `api_key`. type: string type: - description: The user resource type. - example: users - type: string + $ref: "#/components/schemas/GreyNoiseAPIKeyType" required: - - id - type type: object - IncidentRespondersResponse: - description: Response with a list of incident responders. + GreyNoiseCredentials: + description: The definition of the `GreyNoiseCredentials` object. + oneOf: + - $ref: "#/components/schemas/GreyNoiseAPIKey" + GreyNoiseCredentialsUpdate: + description: The definition of the `GreyNoiseCredentialsUpdate` object. + oneOf: + - $ref: "#/components/schemas/GreyNoiseAPIKeyUpdate" + GreyNoiseIntegration: + description: The definition of the `GreyNoiseIntegration` object. properties: - data: - description: List of incident responders. - items: - $ref: "#/components/schemas/IncidentResponderDataResponse" - type: array - included: - description: Included related resources. - items: - $ref: "#/components/schemas/IncidentUserData" - readOnly: true - type: array + credentials: + $ref: "#/components/schemas/GreyNoiseCredentials" + type: + $ref: "#/components/schemas/GreyNoiseIntegrationType" required: - - data + - type + - credentials type: object - IncidentRespondersType: - description: The incident responders type. + GreyNoiseIntegrationType: + description: The definition of the `GreyNoiseIntegrationType` object. enum: - - incident_responders - example: incident_responders + - GreyNoise + example: GreyNoise type: string x-enum-varnames: - - INCIDENT_RESPONDERS - IncidentResponse: - description: Response with an incident. + - GREYNOISE + GreyNoiseIntegrationUpdate: + description: The definition of the `GreyNoiseIntegrationUpdate` object. properties: - data: - $ref: "#/components/schemas/IncidentResponseData" - included: - description: Included related resources that the user requested. - items: - $ref: "#/components/schemas/IncidentResponseIncludedItem" - readOnly: true - type: array + credentials: + $ref: "#/components/schemas/GreyNoiseCredentialsUpdate" + type: + $ref: "#/components/schemas/GreyNoiseIntegrationType" required: - - data + - type type: object - IncidentResponseAttributes: - additionalProperties: {} - description: The incident's attributes from a response. + GroupScalarColumn: + description: A column containing the tag keys and values in a group. properties: - archived: - description: Timestamp of when the incident was archived. - format: date-time - nullable: true - readOnly: true - type: string - case_id: - description: The incident case id. - format: int64 - nullable: true - type: integer - created: - description: Timestamp when the incident was created. - format: date-time - readOnly: true - type: string - customer_impact_duration: - description: |- - Length of the incident's customer impact in seconds. - Equals the difference between `customer_impact_start` and `customer_impact_end`. - format: int64 - readOnly: true - type: integer - customer_impact_end: - description: Timestamp when customers were no longer impacted by the incident. - format: date-time - nullable: true - type: string - customer_impact_scope: - description: A summary of the impact customers experienced during the incident. - example: "An example customer impact scope" - nullable: true - type: string - customer_impact_start: - description: Timestamp when customers began being impacted by the incident. - format: date-time - nullable: true - type: string - customer_impacted: - description: A flag indicating whether the incident caused customer impact. - example: false - type: boolean - declared: - description: Timestamp when the incident was declared. - format: date-time - readOnly: true - type: string - declared_by: - $ref: "#/components/schemas/IncidentNonDatadogCreator" - declared_by_uuid: - description: UUID of the user who declared the incident. - nullable: true - type: string - detected: - description: Timestamp when the incident was detected. - format: date-time - nullable: true - type: string - fields: - additionalProperties: - $ref: "#/components/schemas/IncidentFieldAttributes" - description: A condensed view of the user-defined fields attached to incidents. - example: {"severity": {"type": "dropdown", "value": "SEV-5"}} - type: object - incident_type_uuid: - description: A unique identifier that represents an incident type. - example: "00000000-0000-0000-0000-000000000000" - type: string - is_test: - description: A flag indicating whether the incident is a test incident. - example: false - type: boolean - modified: - description: Timestamp when the incident was last modified. - format: date-time - readOnly: true + name: + description: The name of the tag key or group. + example: env type: string - non_datadog_creator: - $ref: "#/components/schemas/IncidentNonDatadogCreator" - notification_handles: - description: Notification handles that will be notified of the incident during update. - example: [{"display_name": "Jane Doe", "handle": "@user@email.com"}, {"display_name": "Slack Channel", "handle": "@slack-channel"}, {"display_name": "Incident Workflow", "handle": "@workflow-from-incident"}] + type: + $ref: "#/components/schemas/ScalarColumnTypeGroup" + values: + description: The array of tag values for each group found for the results of the formulas or queries. + example: [["production"], ["staging"]] items: - $ref: "#/components/schemas/IncidentNotificationHandle" - nullable: true + description: An individual tag value for a given group column. + items: + description: One tag value within a values array. + example: production + type: string + type: array type: array - public_id: - description: The monotonically increasing integer ID for the incident. - example: 1 - format: int64 - type: integer - resolved: - description: |- - Timestamp when the incident's state was last changed from active or stable to resolved or completed. - format: date-time - nullable: true - type: string - severity: - $ref: "#/components/schemas/IncidentSeverity" - state: - description: The state incident. - nullable: true - type: string - time_to_detect: - description: |- - The amount of time in seconds to detect the incident. - Equals the difference between `customer_impact_start` and `detected`. - format: int64 - readOnly: true - type: integer - time_to_internal_response: - description: >- - The amount of time in seconds to call incident after detection. Equals the difference of `detected` and `created`. - format: int64 - readOnly: true - type: integer - time_to_repair: - description: >- - The amount of time in seconds to resolve customer impact after detecting the issue. Equals the difference between `customer_impact_end` and `detected`. - format: int64 - readOnly: true - type: integer - time_to_resolve: - description: >- - The amount of time in seconds to resolve the incident after it was created. Equals the difference between `created` and `resolved`. - format: int64 - readOnly: true - type: integer - title: - description: The title of the incident, which summarizes what happened. - example: "A test incident title" + type: object + GroupTags: + description: List of tags that apply to a single response value. + items: + description: A single tag that applies to a single response value. + example: "env:production" + type: string + type: array + GuardrailMetric: + description: Guardrail metric details. + properties: + metric_id: + description: The metric ID to monitor. + example: "metric-error-rate" type: string - visibility: - description: The incident visibility status. + trigger_action: + $ref: "#/components/schemas/GuardrailTriggerAction" + triggered_by: + description: The signal or system that triggered the action. + example: "guardrail_monitor" nullable: true type: string required: - - title + - metric_id + - trigger_action type: object - IncidentResponseData: - description: Incident data from a response. + GuardrailMetricRequest: + description: Guardrail metric request payload. properties: - attributes: - $ref: "#/components/schemas/IncidentResponseAttributes" - id: - description: The incident's ID. - example: "00000000-0000-0000-1234-000000000000" + metric_id: + description: The metric ID to monitor. + example: "metric-error-rate" type: string - relationships: - $ref: "#/components/schemas/IncidentResponseRelationships" - type: - $ref: "#/components/schemas/IncidentType" + trigger_action: + $ref: "#/components/schemas/GuardrailTriggerAction" required: - - id - - type - type: object - IncidentResponseIncludedItem: - description: An object related to an incident that is included in the response. - oneOf: - - $ref: "#/components/schemas/IncidentUserData" - - $ref: "#/components/schemas/AttachmentData" - IncidentResponseMeta: - description: The metadata object containing pagination metadata. - properties: - pagination: - $ref: "#/components/schemas/IncidentResponseMetaPagination" - readOnly: true + - metric_id + - trigger_action type: object - IncidentResponseMetaPagination: - description: Pagination properties. + GuardrailTriggerAction: + description: Action to perform when a guardrail threshold is triggered. + enum: + - PAUSE + - ABORT + example: "PAUSE" + type: string + x-enum-varnames: + - PAUSE + - ABORT + HTTPBody: + description: The definition of `HTTPBody` object. properties: - next_offset: - description: The index of the first element in the next page of results. Equal to page size added to the current offset. - example: 1000 - format: int64 - type: integer - offset: - description: The index of the first element in the results. - example: 10 - format: int64 - type: integer - size: - description: Maximum size of pages to return. - example: 1000 - format: int64 - type: integer + content: + description: Serialized body content + example: '{"some-json": "with-value"}' + type: string + content_type: + description: Content type of the body + example: application/json + type: string type: object - IncidentResponseRelationships: - description: The incident's relationships from a response. + HTTPCDGatesBadRequestResponse: + description: Bad request. properties: - attachments: - $ref: "#/components/schemas/RelationshipToIncidentAttachment" - commander_user: - $ref: "#/components/schemas/NullableRelationshipToUser" - created_by_user: - $ref: "#/components/schemas/RelationshipToUser" - declared_by_user: - $ref: "#/components/schemas/RelationshipToUser" - impacts: - $ref: "#/components/schemas/RelationshipToIncidentImpacts" - integrations: - $ref: "#/components/schemas/RelationshipToIncidentIntegrationMetadatas" - last_modified_by_user: - $ref: "#/components/schemas/RelationshipToUser" - responders: - $ref: "#/components/schemas/RelationshipToIncidentResponders" - user_defined_fields: - $ref: "#/components/schemas/RelationshipToIncidentUserDefinedFields" + errors: + description: Structured errors. + items: + $ref: "#/components/schemas/HTTPCIAppError" + type: array type: object - IncidentRuleCondition: - description: A condition for an incident rule. + HTTPCDGatesNotFoundResponse: + description: Deployment gate not found. properties: - field: - description: The field to match on. - example: severity - type: string - values: - description: The values to match. - example: - - SEV-1 - - SEV-2 + errors: + description: Structured errors. items: - type: string + $ref: "#/components/schemas/HTTPCIAppError" type: array - required: - - field - - values type: object - IncidentRuleDataAttributesRequest: - description: Attributes for creating an incident rule. + HTTPCDRulesNotFoundResponse: + description: Deployment rule not found. properties: - condition: - $ref: "#/components/schemas/IncidentRuleQueryCondition" - condition_table_type: - description: "The condition table type. 1 = raw query." - example: 1 - format: int64 - type: integer - conditions: - description: List of field-based conditions. + errors: + description: Structured errors. items: - $ref: "#/components/schemas/IncidentRuleCondition" + $ref: "#/components/schemas/HTTPCIAppError" type: array - enabled: - description: Whether the rule is enabled. - example: true - type: boolean - execution_type: - $ref: "#/components/schemas/IncidentRuleExecutionType" - incident_type_uuid: - description: The UUID of the incident type this rule applies to. - example: 00000000-0000-0000-0000-000000000000 - format: uuid - nullable: true + type: object + HTTPCIAppError: + description: List of errors. + properties: + detail: + description: Error message. + example: "Malformed payload" type: string - match_any_condition: - description: Whether any condition (OR logic) should match instead of all (AND logic). - example: false - type: boolean - task_id: - $ref: "#/components/schemas/IncidentRuleTaskIDType" - task_payload: - description: The JSON-encoded payload for the task. - example: "{}" + status: + description: Error code. + example: "400" + type: string + title: + description: Error title. + example: "Bad Request" type: string - trigger: - $ref: "#/components/schemas/IncidentRuleTriggerType" - required: - - execution_type - - condition_table_type - - condition - - task_id - - task_payload - - enabled type: object - IncidentRuleDataAttributesResponse: - description: Attributes of an incident rule in a response. + HTTPCIAppErrors: + description: Errors occurred. properties: - condition: - $ref: "#/components/schemas/IncidentRuleQueryCondition" - condition_table_type: - description: The condition table type. - example: 1 - format: int64 - type: integer - conditions: - description: List of field-based conditions. + errors: + description: Structured errors. items: - $ref: "#/components/schemas/IncidentRuleCondition" + $ref: "#/components/schemas/HTTPCIAppError" type: array - created: - description: Timestamp when the rule was created. - example: "2024-01-01T00:00:00.000Z" - format: date-time + type: object + HTTPCredentials: + description: The definition of `HTTPCredentials` object. + oneOf: + - $ref: "#/components/schemas/HTTPTokenAuth" + HTTPCredentialsUpdate: + description: The definition of `HTTPCredentialsUpdate` object. + oneOf: + - $ref: "#/components/schemas/HTTPTokenAuthUpdate" + HTTPHeader: + description: The definition of `HTTPHeader` object. + properties: + name: + description: The `HTTPHeader` `name`. + example: MyHttpHeader + pattern: ^[A-Za-z][A-Za-z\\d\\-\\_]*$ type: string - created_by_uuid: - description: UUID of the user who created the rule. - example: 00000000-0000-0000-0000-000000000001 - format: uuid + value: + description: The `HTTPHeader` `value`. + example: Some header value type: string + required: + - name + - value + type: object + HTTPHeaderUpdate: + description: The definition of `HTTPHeaderUpdate` object. + properties: deleted: - description: Timestamp when the rule was deleted. - example: - format: date-time - nullable: true - type: string - enabled: - description: Whether the rule is enabled. - example: true - type: boolean - execution_type: - description: The execution type of the rule. - example: 1 - format: int64 - type: integer - incident_settings_association_uuid: - description: The incident settings association UUID. - example: - format: uuid - nullable: true - type: string - match_any_condition: - description: Whether any condition should match. - example: false + description: Should the header be deleted. type: boolean - modified: - description: Timestamp when the rule was last modified. - example: "2024-01-01T00:00:00.000Z" - format: date-time - type: string - modified_by_uuid: - description: UUID of the user who last modified the rule. - example: 00000000-0000-0000-0000-000000000001 - format: uuid - type: string - org_id: - description: The organization ID. - example: 123456 - format: int64 - type: integer - task_id: - description: The task ID. - example: notify-incident-handles-job - nullable: true - type: string - task_payload: - description: The JSON-encoded task payload. - example: "{}" - nullable: true + name: + description: The `HTTPHeaderUpdate` `name`. + example: MyHttpHeader + pattern: ^[A-Za-z][A-Za-z\\d\\-\\_]*$ type: string - trigger: - description: The trigger event for the rule. - example: incident_created_trigger + value: + description: The `HTTPHeaderUpdate` `value`. + example: Updated Header Value type: string - type: object - IncidentRuleDataRequest: - description: Incident rule data in a create request. - properties: - attributes: - $ref: "#/components/schemas/IncidentRuleDataAttributesRequest" - type: - $ref: "#/components/schemas/IncidentRuleType" required: - - type - - attributes + - name type: object - IncidentRuleDataResponse: - description: Incident rule data in a response. + HTTPIntegration: + description: The definition of `HTTPIntegration` object. properties: - attributes: - $ref: "#/components/schemas/IncidentRuleDataAttributesResponse" - id: - description: The rule identifier. - example: 00000000-0000-0000-0000-000000000000 - format: uuid + base_url: + description: Base HTTP url for the integration + example: http://datadoghq.com type: string + credentials: + $ref: "#/components/schemas/HTTPCredentials" type: - $ref: "#/components/schemas/IncidentRuleResponseType" + $ref: "#/components/schemas/HTTPIntegrationType" required: - - id - type - - attributes + - base_url + - credentials type: object - IncidentRuleExecutionType: - description: The execution type of an incident rule. + HTTPIntegrationType: + description: The definition of `HTTPIntegrationType` object. enum: - - 1 - - 2 - example: 1 - format: int64 - type: integer + - HTTP + example: HTTP + type: string x-enum-varnames: - - SINGLE_EXECUTION - - MULTI_EXECUTION - IncidentRulePatchDataAttributesRequest: - description: Attributes for patching an incident rule. All fields are optional. - properties: - condition: - $ref: "#/components/schemas/IncidentRuleQueryCondition" - conditions: - description: List of field-based conditions. - items: - $ref: "#/components/schemas/IncidentRuleCondition" - type: array - enabled: - description: Whether the rule is enabled. - example: true - type: boolean - task_payload: - description: The JSON-encoded payload for the task. - example: "{}" - type: string - trigger: - $ref: "#/components/schemas/IncidentRuleTriggerType" - type: object - IncidentRulePatchDataRequest: - description: Incident rule data in a patch request. + - HTTP + HTTPIntegrationUpdate: + description: The definition of `HTTPIntegrationUpdate` object. properties: - attributes: - $ref: "#/components/schemas/IncidentRulePatchDataAttributesRequest" - id: - description: The rule identifier. - example: 00000000-0000-0000-0000-000000000000 - format: uuid + base_url: + description: Base HTTP url for the integration + example: http://datadoghq.com type: string + credentials: + $ref: "#/components/schemas/HTTPCredentialsUpdate" type: - $ref: "#/components/schemas/IncidentRuleType" + $ref: "#/components/schemas/HTTPIntegrationType" required: - - id - type type: object - IncidentRulePatchRequest: - description: Request payload for patching an incident rule. - properties: - data: - $ref: "#/components/schemas/IncidentRulePatchDataRequest" - required: - - data - type: object - IncidentRuleQueryCondition: - description: A query-based condition for an incident rule. + HTTPLog: + description: Structured log message. + items: + $ref: "#/components/schemas/HTTPLogItem" + type: array + HTTPLogError: + description: List of errors. properties: - normalized_query: - description: The normalized query string. - example: "severity:SEV-1" - nullable: true + detail: + description: Error message. + example: "Malformed payload" type: string - raw_query: - description: The raw query string. - example: "severity:SEV-1" - nullable: true + status: + description: Error code. + example: "400" + type: string + title: + description: Error title. + example: "Bad Request" type: string type: object - IncidentRuleRequest: - description: Request payload for creating an incident rule. - properties: - data: - $ref: "#/components/schemas/IncidentRuleDataRequest" - required: - - data - type: object - IncidentRuleResponse: - description: Response with a single incident rule. - properties: - data: - $ref: "#/components/schemas/IncidentRuleDataResponse" - required: - - data - type: object - IncidentRuleResponseType: - description: Incident rule response resource type. - enum: - - incidents_rules - example: incidents_rules - type: string - x-enum-varnames: - - INCIDENTS_RULES - IncidentRuleTaskIDType: - description: The task ID for an incident rule. - enum: - - jira-create-issue-job - - notify-incident-handles-job - - servicenow-create-incident-job - - slack-create-channel-job - - zoom-create-meeting-job - - google-meet-create-meeting-job - - workflow-automation-job - - ms-teams-create-meeting-job - - google-chat-create-space-job - - zoom-suppress-summarization-job - - ms-teams-suppress-summarization-job - - google-meet-suppress-summarization-job - example: notify-incident-handles-job - type: string - x-enum-varnames: - - JIRA_CREATE_ISSUE_JOB - - NOTIFY_INCIDENT_HANDLES_JOB - - SERVICENOW_CREATE_INCIDENT_JOB - - SLACK_CREATE_CHANNEL_JOB - - ZOOM_CREATE_MEETING_JOB - - GOOGLE_MEET_CREATE_MEETING_JOB - - WORKFLOW_AUTOMATION_JOB - - MS_TEAMS_CREATE_MEETING_JOB - - GOOGLE_CHAT_CREATE_SPACE_JOB - - ZOOM_SUPPRESS_SUMMARIZATION_JOB - - MS_TEAMS_SUPPRESS_SUMMARIZATION_JOB - - GOOGLE_MEET_SUPPRESS_SUMMARIZATION_JOB - IncidentRuleTriggerType: - description: The trigger event for an incident rule. - enum: - - incident_saved_trigger - - incident_created_trigger - - incident_modified_trigger - example: incident_created_trigger - type: string - x-enum-varnames: - - INCIDENT_SAVED_TRIGGER - - INCIDENT_CREATED_TRIGGER - - INCIDENT_MODIFIED_TRIGGER - IncidentRuleType: - description: Incident rule resource type. - enum: - - incident_rules - example: incident_rules - type: string - x-enum-varnames: - - INCIDENT_RULES - IncidentRulesResponse: - description: Response with a list of incident rules. + HTTPLogErrors: + description: Invalid query performed. properties: - data: - description: List of incident rules. + errors: + description: Structured errors. items: - $ref: "#/components/schemas/IncidentRuleDataResponse" + $ref: "#/components/schemas/HTTPLogError" type: array - required: - - data type: object - IncidentSavedTrigger: - description: "Trigger a workflow when an incident is declared or updated." + HTTPLogItem: + additionalProperties: + description: Additional log attributes. + description: Logs that are sent over HTTP. properties: - executionLimit: - $ref: "#/components/schemas/ExecutionLimit" - incidentType: - description: "The type of incident that triggers the workflow." + ddsource: + description: |- + The integration name associated with your log: the technology from which the log originated. + When it matches an integration name, Datadog automatically installs the corresponding parsers and facets. + See [reserved attributes](https://docs.datadoghq.com/logs/log_configuration/attributes_naming_convention/#reserved-attributes). + example: nginx type: string - serialExecution: - $ref: "#/components/schemas/SerialExecution" - tagCondition: - $ref: "#/components/schemas/IncidentCondition" - type: object - IncidentSavedTriggerWrapper: - description: "Schema for an incident declared or updated trigger." - properties: - incidentSavedTrigger: - $ref: "#/components/schemas/IncidentSavedTrigger" - startStepNames: - $ref: "#/components/schemas/StartStepNames" - required: - - incidentSavedTrigger - type: object - IncidentScheduleTrigger: - description: "Trigger a workflow on a schedule for an incident." - properties: - incidentType: - description: "The type of incident that triggers the workflow." + ddtags: + description: Tags associated with your logs. + example: env:staging,version:5.1 type: string - rrule: - description: "The recurrence rule for the schedule, expressed as an iCalendar `RRULE` string." - example: "DTSTART:20241220T151700Z\nRRULE:FREQ=MONTHLY" - minLength: 1 + hostname: + description: The name of the originating host of the log. + example: i-012345678 + type: string + message: + description: |- + The message [reserved attribute](https://docs.datadoghq.com/logs/log_configuration/attributes_naming_convention/#reserved-attributes) + of your log. By default, Datadog ingests the value of the message attribute as the body of the log entry. + That value is then highlighted and displayed in the Logstream, where it is indexed for full text search. + example: 2019-11-19T14:37:58,995 INFO [process.name][20081] Hello World + type: string + service: + description: |- + The name of the application or service generating the log events. + It is used to switch from Logs to APM, so make sure you define the same value when you use both products. + See [reserved attributes](https://docs.datadoghq.com/logs/log_configuration/attributes_naming_convention/#reserved-attributes). + example: payment type: string - tagCondition: - $ref: "#/components/schemas/IncidentCondition" required: - - rrule + - message type: object - IncidentScheduleTriggerWrapper: - description: "Schema for an incident schedule trigger." + HTTPToken: + description: The definition of `HTTPToken` object. properties: - incidentScheduleTrigger: - $ref: "#/components/schemas/IncidentScheduleTrigger" - startStepNames: - $ref: "#/components/schemas/StartStepNames" + name: + description: The `HTTPToken` `name`. + example: MyToken + pattern: ^[A-Za-z][A-Za-z\\d]*$ + type: string + type: + $ref: "#/components/schemas/TokenType" + value: + description: The `HTTPToken` `value`. + example: Some Token Value + type: string required: - - incidentScheduleTrigger + - name + - value + - type type: object - IncidentSearchResponse: - description: Response with incidents and facets. + HTTPTokenAuth: + description: The definition of `HTTPTokenAuth` object. properties: - data: - $ref: "#/components/schemas/IncidentSearchResponseData" - included: - description: Included related resources that the user requested. + body: + $ref: "#/components/schemas/HTTPBody" + headers: + description: The `HTTPTokenAuth` `headers`. items: - $ref: "#/components/schemas/IncidentResponseIncludedItem" - readOnly: true + $ref: "#/components/schemas/HTTPHeader" type: array - meta: - $ref: "#/components/schemas/IncidentSearchResponseMeta" - required: - - data - type: object - IncidentSearchResponseAttributes: - description: Attributes returned by an incident search. - properties: - facets: - $ref: "#/components/schemas/IncidentSearchResponseFacetsData" - incidents: - description: Incidents returned by the search. + tokens: + description: The `HTTPTokenAuth` `tokens`. items: - $ref: "#/components/schemas/IncidentSearchResponseIncidentsData" + $ref: "#/components/schemas/HTTPToken" type: array - total: - description: Number of incidents returned by the search. - example: 10 - format: int32 - maximum: 2147483647 - type: integer - required: - - facets - - incidents - - total - type: object - IncidentSearchResponseData: - description: Data returned by an incident search. - properties: - attributes: - $ref: "#/components/schemas/IncidentSearchResponseAttributes" type: - $ref: "#/components/schemas/IncidentSearchResultsType" - type: object - IncidentSearchResponseFacetCount: - description: Count of the facet value appearing in search results. - example: 5 - format: int32 - maximum: 2147483647 - type: integer - IncidentSearchResponseFacetsData: - description: Facet data for incidents returned by a search query. - properties: - commander: - description: Facet data for incident commander users. - items: - $ref: "#/components/schemas/IncidentSearchResponseUserFacetData" - type: array - created_by: - description: Facet data for incident creator users. - items: - $ref: "#/components/schemas/IncidentSearchResponseUserFacetData" - type: array - fields: - description: Facet data for incident property fields. - items: - $ref: "#/components/schemas/IncidentSearchResponsePropertyFieldFacetData" - type: array - impact: - description: Facet data for incident impact attributes. - items: - $ref: "#/components/schemas/IncidentSearchResponseFieldFacetData" - type: array - last_modified_by: - description: Facet data for incident last modified by users. - items: - $ref: "#/components/schemas/IncidentSearchResponseUserFacetData" - type: array - postmortem: - description: Facet data for incident postmortem existence. - items: - $ref: "#/components/schemas/IncidentSearchResponseFieldFacetData" - type: array - responder: - description: Facet data for incident responder users. - items: - $ref: "#/components/schemas/IncidentSearchResponseUserFacetData" - type: array - severity: - description: Facet data for incident severity attributes. + $ref: "#/components/schemas/HTTPTokenAuthType" + url_parameters: + description: The `HTTPTokenAuth` `url_parameters`. items: - $ref: "#/components/schemas/IncidentSearchResponseFieldFacetData" + $ref: "#/components/schemas/UrlParam" type: array - state: - description: Facet data for incident state attributes. + required: + - type + type: object + HTTPTokenAuthType: + description: The definition of `HTTPTokenAuthType` object. + enum: + - HTTPTokenAuth + example: HTTPTokenAuth + type: string + x-enum-varnames: + - HTTPTOKENAUTH + HTTPTokenAuthUpdate: + description: The definition of `HTTPTokenAuthUpdate` object. + properties: + body: + $ref: "#/components/schemas/HTTPBody" + headers: + description: The `HTTPTokenAuthUpdate` `headers`. items: - $ref: "#/components/schemas/IncidentSearchResponseFieldFacetData" + $ref: "#/components/schemas/HTTPHeaderUpdate" type: array - time_to_repair: - description: Facet data for incident time to repair metrics. + tokens: + description: The `HTTPTokenAuthUpdate` `tokens`. items: - $ref: "#/components/schemas/IncidentSearchResponseNumericFacetData" + $ref: "#/components/schemas/HTTPTokenUpdate" type: array - time_to_resolve: - description: Facet data for incident time to resolve metrics. + type: + $ref: "#/components/schemas/HTTPTokenAuthType" + url_parameters: + description: The `HTTPTokenAuthUpdate` `url_parameters`. items: - $ref: "#/components/schemas/IncidentSearchResponseNumericFacetData" + $ref: "#/components/schemas/UrlParamUpdate" type: array - type: object - IncidentSearchResponseFieldFacetData: - description: Facet value and number of occurrences for a property field of an incident. - properties: - count: - $ref: "#/components/schemas/IncidentSearchResponseFacetCount" - name: - description: The facet value appearing in search results. - example: SEV-2 - type: string - type: object - IncidentSearchResponseIncidentsData: - description: Incident returned by the search. - properties: - data: - $ref: "#/components/schemas/IncidentResponseData" required: - - data - type: object - IncidentSearchResponseMeta: - description: The metadata object containing pagination metadata. - properties: - pagination: - $ref: "#/components/schemas/IncidentResponseMetaPagination" - readOnly: true + - type type: object - IncidentSearchResponseNumericFacetData: - description: Facet data numeric attributes of an incident. + HTTPTokenUpdate: + description: The definition of `HTTPTokenUpdate` object. properties: - aggregates: - $ref: "#/components/schemas/IncidentSearchResponseNumericFacetDataAggregates" + deleted: + description: Should the header be deleted. + type: boolean name: - description: Name of the incident property field. - example: time_to_repair + description: The `HTTPToken` `name`. + example: MyToken + pattern: ^[A-Za-z][A-Za-z\\d]*$ type: string - required: - - name - - aggregates - type: object - IncidentSearchResponseNumericFacetDataAggregates: - description: Aggregate information for numeric incident data. - properties: - max: - description: Maximum value of the numeric aggregates. - example: 1234.0 - format: double - nullable: true - type: number - min: - description: Minimum value of the numeric aggregates. - example: 20.0 - format: double - nullable: true - type: number - type: object - IncidentSearchResponsePropertyFieldFacetData: - description: Facet data for the incident property fields. - properties: - aggregates: - $ref: "#/components/schemas/IncidentSearchResponseNumericFacetDataAggregates" - facets: - description: Facet data for the property field of an incident. - items: - $ref: "#/components/schemas/IncidentSearchResponseFieldFacetData" - type: array - name: - description: Name of the incident property field. - example: Severity + type: + $ref: "#/components/schemas/TokenType" + value: + description: The `HTTPToken` `value`. + example: Some Token Value type: string required: - - facets - name + - type + - value type: object - IncidentSearchResponseUserFacetData: - description: Facet data for user attributes of an incident. + HamrOrgConnectionAttributesRequest: + description: Attributes for a HAMR organization connection request. properties: - count: - $ref: "#/components/schemas/IncidentSearchResponseFacetCount" - email: - description: Email of the user. - example: datadog.user@example.com + hamr_status: + $ref: "#/components/schemas/HamrOrgConnectionStatus" + is_primary: + description: |- + Indicates whether this organization is the primary organization in the HAMR relationship. + If true, this is the primary organization. If false, this is the secondary/backup organization. + example: true + type: boolean + modified_by: + description: Username or identifier of the user who last modified this HAMR connection. + example: "admin@example.com" type: string - handle: - description: Handle of the user. - example: "@datadog.user@example.com" + target_org_datacenter: + description: Datacenter location of the target organization (e.g., us1, eu1, us5). + example: "us1" type: string - name: - description: Name of the user. - example: Datadog User + target_org_name: + description: Name of the target organization in the HAMR relationship. + example: "Production Backup Org" type: string - uuid: - description: ID of the user. - example: 773b045d-ccf8-4808-bd3b-955ef6a8c940 + target_org_uuid: + description: UUID of the target organization in the HAMR relationship. + example: "660f9511-f3ac-52e5-b827-557766551111" type: string + required: + - target_org_uuid + - target_org_name + - target_org_datacenter + - hamr_status + - is_primary + - modified_by type: object - IncidentSearchResultsType: - default: incidents_search_results - description: Incident search result type. - enum: - - incidents_search_results - example: incidents_search_results - type: string - x-enum-varnames: - - INCIDENTS_SEARCH_RESULTS - IncidentSearchSortOrder: - description: The ways searched incidents can be sorted. - enum: - - created - - -created - type: string - x-enum-varnames: - - CREATED_ASCENDING - - CREATED_DESCENDING - IncidentServiceNowRecordDataAttributesRequest: - description: Attributes for creating a ServiceNow record for an incident. + HamrOrgConnectionAttributesResponse: + description: Attributes of a HAMR organization connection response. properties: - assignment_group: - description: The ServiceNow assignment group. - example: IT Support + hamr_status: + $ref: "#/components/schemas/HamrOrgConnectionStatus" + is_primary: + description: |- + Indicates whether this organization is the primary organization in the HAMR relationship. + If true, this is the primary organization. If false, this is the secondary/backup organization. + example: true + type: boolean + modified_at: + description: Timestamp of when this HAMR connection was last modified (RFC3339 format). + example: "2026-01-13T17:26:48.830968Z" type: string - configuration_item_mapping: - description: The ServiceNow configuration item mapping. - example: my-service + modified_by: + description: Username or identifier of the user who last modified this HAMR connection. + example: "admin@example.com" type: string - instance_name: - description: The ServiceNow instance name. - example: my-instance + target_org_datacenter: + description: Datacenter location of the target organization (e.g., us1, eu1, us5). + example: "us1" type: string - record_id: - description: An existing ServiceNow record ID (Sys ID) to link instead of creating a new record. - example: abc123def456 + target_org_name: + description: Name of the target organization in the HAMR relationship. + example: "Production Backup Org" + type: string + target_org_uuid: + description: UUID of the target organization in the HAMR relationship. + example: "660f9511-f3ac-52e5-b827-557766551111" type: string required: - - instance_name - - assignment_group - - configuration_item_mapping + - target_org_uuid + - target_org_name + - target_org_datacenter + - hamr_status + - is_primary + - modified_at + - modified_by type: object - IncidentServiceNowRecordDataRequest: - description: ServiceNow record data in a create request. + HamrOrgConnectionDataRequest: + description: Data object for a HAMR organization connection request. properties: attributes: - $ref: "#/components/schemas/IncidentServiceNowRecordDataAttributesRequest" + $ref: "#/components/schemas/HamrOrgConnectionAttributesRequest" + id: + description: The organization UUID for this HAMR connection. Must match the authenticated organization's UUID. + example: "550e8400-e29b-41d4-a716-446655440000" + type: string type: - $ref: "#/components/schemas/IncidentServiceNowRecordPromptType" + $ref: "#/components/schemas/HamrOrgConnectionType" required: + - id - type - attributes type: object - IncidentServiceNowRecordPromptType: - description: ServiceNow record prompt resource type. - enum: - - incident_servicenow_record_prompt - example: incident_servicenow_record_prompt - type: string - x-enum-varnames: - - INCIDENT_SERVICENOW_RECORD_PROMPT - IncidentServiceNowRecordRequest: - description: Request payload for creating a ServiceNow record for an incident. + HamrOrgConnectionDataResponse: + description: Data object for a HAMR organization connection response. + properties: + attributes: + $ref: "#/components/schemas/HamrOrgConnectionAttributesResponse" + id: + description: The organization UUID for this HAMR connection. + example: "550e8400-e29b-41d4-a716-446655440000" + type: string + type: + $ref: "#/components/schemas/HamrOrgConnectionType" + required: + - id + - type + - attributes + type: object + HamrOrgConnectionRequest: + description: Request payload for creating or updating a HAMR organization connection. properties: data: - $ref: "#/components/schemas/IncidentServiceNowRecordDataRequest" + $ref: "#/components/schemas/HamrOrgConnectionDataRequest" required: - data type: object - IncidentSeverity: - description: The incident severity. + HamrOrgConnectionResponse: + description: Response payload for a HAMR organization connection. + properties: + data: + $ref: "#/components/schemas/HamrOrgConnectionDataResponse" + required: + - data + type: object + HamrOrgConnectionStatus: + description: |- + Status of the HAMR connection: + - 0: UNSPECIFIED - Connection status not specified + - 1: ONBOARDING - Initial setup of HAMR connection + - 2: PASSIVE - Secondary organization in passive standby mode + - 3: FAILOVER - Liminal status between PASSIVE and ACTIVE + - 4: ACTIVE - Organization is an active failover + - 5: RECOVERY - Recovery operation in progress enum: - - UNKNOWN - - SEV-0 - - SEV-1 - - SEV-2 - - SEV-3 - - SEV-4 - - SEV-5 - example: UNKNOWN + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + example: 4 + format: int64 + type: integer + x-enum-varnames: + - UNSPECIFIED + - ONBOARDING + - PASSIVE + - FAILOVER + - ACTIVE + - RECOVERY + HamrOrgConnectionType: + description: Type of the HAMR organization connection resource. + enum: + - hamr_org_connections + example: hamr_org_connections type: string x-enum-varnames: - - UNKNOWN - - SEV_0 - - SEV_1 - - SEV_2 - - SEV_3 - - SEV_4 - - SEV_5 - IncidentTagValue: - description: "An incident tag and its accepted values." + - HAMR_ORG_CONNECTIONS + HistoricalJobDataType: + description: Type of payload. + enum: + - historicalDetectionsJob + type: string + x-enum-varnames: + - HISTORICALDETECTIONSJOB + HistoricalJobListMeta: + description: Metadata about the list of jobs. properties: - tag: - description: "The incident tag to match." - example: "" + totalCount: + description: Number of jobs in the list. + format: int32 + maximum: 2147483647 + type: integer + type: object + HistoricalJobOptions: + description: Job options. + properties: + anomalyDetectionOptions: + $ref: "#/components/schemas/SecurityMonitoringRuleAnomalyDetectionOptions" + detectionMethod: + $ref: "#/components/schemas/SecurityMonitoringRuleDetectionMethod" + evaluationWindow: + $ref: "#/components/schemas/SecurityMonitoringRuleEvaluationWindow" + impossibleTravelOptions: + $ref: "#/components/schemas/SecurityMonitoringRuleImpossibleTravelOptions" + keepAlive: + $ref: "#/components/schemas/SecurityMonitoringRuleKeepAlive" + maxSignalDuration: + $ref: "#/components/schemas/SecurityMonitoringRuleMaxSignalDuration" + newValueOptions: + $ref: "#/components/schemas/SecurityMonitoringRuleNewValueOptions" + sequenceDetectionOptions: + $ref: "#/components/schemas/SecurityMonitoringRuleSequenceDetectionOptions" + thirdPartyRuleOptions: + $ref: "#/components/schemas/SecurityMonitoringRuleThirdPartyOptions" + type: object + HistoricalJobQuery: + description: Query for selecting logs analyzed by the historical job. + properties: + additionalFilters: + description: Additional filters appended to the query at evaluation time. type: string - values: - description: "The accepted values for the incident tag." - example: - - "" + aggregation: + $ref: "#/components/schemas/SecurityMonitoringRuleQueryAggregation" + correlatedByFields: + description: Fields used to correlate results across queries in sequence detection rules. items: + description: Field. type: string type: array - required: - - tag - - values - type: object - IncidentTimelineCellCreateAttributes: - description: The timeline cell's attributes for a create request. - oneOf: - - $ref: "#/components/schemas/IncidentTimelineCellMarkdownCreateAttributes" - IncidentTimelineCellMarkdownContentType: - default: markdown - description: Type of the Markdown timeline cell. - enum: - - markdown - example: markdown - type: string - x-enum-varnames: - - MARKDOWN - IncidentTimelineCellMarkdownCreateAttributes: - description: Timeline cell data for Markdown timeline cells for a create request. - properties: - cell_type: - $ref: "#/components/schemas/IncidentTimelineCellMarkdownContentType" - content: - $ref: "#/components/schemas/IncidentTimelineCellMarkdownCreateAttributesContent" - important: + correlatedQueryIndex: + description: Zero-based index of the query to correlate with in sequence detection rules. Up to 10 queries are supported, so valid values are 0 to 9. + format: int64 + maximum: 9 + minimum: 0 + type: integer + customQueryExtension: + description: Custom query extension used to refine the base query. + type: string + dataSource: + $ref: "#/components/schemas/SecurityMonitoringStandardDataSource" + datasetIds: + description: IDs of reference datasets used by this query. + items: + description: Dataset ID. + type: string + type: array + distinctFields: + description: Field for which the cardinality is measured. Sent as an array. + items: + description: Field. + type: string + type: array + groupByFields: + description: Fields to group by. + items: + description: Field. + type: string + type: array + hasOptionalGroupByFields: default: false - description: A flag indicating whether the timeline cell is important and should be highlighted. + description: When false, events without a group-by value are ignored by the query. When true, events with missing group-by fields are processed with `N/A`, replacing the missing values. example: false type: boolean - required: - - content - - cell_type - type: object - IncidentTimelineCellMarkdownCreateAttributesContent: - description: The Markdown timeline cell contents. - properties: - content: - description: The Markdown content of the cell. - example: "An example timeline cell message." - nullable: false + index: + description: Index used to load the data for this query. + type: string + indexes: + description: Indexes used to load the data for this query. Mutually exclusive with `index`. + items: + description: Index name. + type: string + type: array + metrics: + description: Group of target fields to aggregate over when using the sum, max, geo data, or new value aggregations. The sum, max, and geo data aggregations only accept one value in this list, whereas the new value aggregation accepts up to five values. + items: + description: Field. + type: string + type: array + name: + description: Name of the query. + type: string + query: + description: Query to run on logs. + example: a > 3 + type: string + queryLanguage: + description: Language used to parse the query string. type: string type: object - IncidentTimestampOverrideDataAttributesRequest: - description: Attributes for creating a timestamp override. + HistoricalJobResponse: + description: Historical job response. properties: - timestamp_type: - $ref: "#/components/schemas/IncidentTimestampType" - timestamp_value: - description: The overridden timestamp value. - example: "2024-01-01T10:00:00.000Z" - format: date-time - type: string - required: - - timestamp_type - - timestamp_value + data: + $ref: "#/components/schemas/HistoricalJobResponseData" type: object - IncidentTimestampOverrideDataAttributesResponse: - description: Attributes of a timestamp override in a response. + HistoricalJobResponseAttributes: + description: Historical job attributes. properties: - created_at: - description: Timestamp when the override was created. - example: "2024-01-01T00:00:00.000Z" - format: date-time + createdAt: + description: Time when the job was created. type: string - deleted_at: - description: Timestamp when the override was deleted. - example: - format: date-time - nullable: true + createdByHandle: + description: The handle of the user who created the job. type: string - incident_id: - description: The incident identifier. - example: 00000000-0000-0000-0000-000000000000 + createdByName: + description: The name of the user who created the job. type: string - modified_at: - description: Timestamp when the override was last modified. - example: "2024-01-01T00:00:00.000Z" - format: date-time + createdFromRuleId: + description: ID of the rule used to create the job (if it is created from a rule). type: string - timestamp_type: - $ref: "#/components/schemas/IncidentTimestampType" - timestamp_value: - description: The overridden timestamp value. - example: "2024-01-01T10:00:00.000Z" - format: date-time + jobDefinition: + $ref: "#/components/schemas/JobDefinition" + jobName: + description: Job name. type: string - required: - - incident_id - - timestamp_type - - timestamp_value - - created_at - - modified_at - type: object - IncidentTimestampOverrideDataRequest: - description: Timestamp override data in a create request. - properties: - attributes: - $ref: "#/components/schemas/IncidentTimestampOverrideDataAttributesRequest" - type: - $ref: "#/components/schemas/IncidentTimestampOverrideType" - required: - - type - - attributes + jobStatus: + description: Job status. + type: string + modifiedAt: + description: Last modification time of the job. + type: string + progressRate: + description: Job execution progress as a value between 0 and 1. Available for ongoing jobs. + format: double + type: number + signalOutput: + description: Whether the job outputs signals. + type: boolean type: object - IncidentTimestampOverrideDataResponse: - description: Timestamp override data in a response. + HistoricalJobResponseData: + description: Historical job response data. properties: attributes: - $ref: "#/components/schemas/IncidentTimestampOverrideDataAttributesResponse" + $ref: "#/components/schemas/HistoricalJobResponseAttributes" id: - description: The timestamp override identifier. - example: 00000000-0000-0000-0000-000000000000 - format: uuid + description: ID of the job. type: string - relationships: - $ref: "#/components/schemas/IncidentTimestampOverrideRelationships" type: - $ref: "#/components/schemas/IncidentTimestampOverrideType" - required: - - id - - type - - attributes + $ref: "#/components/schemas/HistoricalJobDataType" type: object - IncidentTimestampOverridePatchDataAttributesRequest: - description: Attributes for patching a timestamp override. + HistoricalMetricsConfigurationAttributes: + description: Attributes of a historical metrics configuration. properties: - timestamp_value: - description: The overridden timestamp value. - example: "2024-01-01T10:00:00.000Z" + created_at: + description: Timestamp when historical metrics ingestion was enabled for the metric. + example: "2024-01-15T12:00:00.000Z" format: date-time + readOnly: true type: string - required: - - timestamp_value type: object - IncidentTimestampOverridePatchDataRequest: - description: Timestamp override data in a patch request. + HistoricalMetricsConfigurationCreateData: + description: Data object for enabling historical metrics ingestion for a metric. properties: - attributes: - $ref: "#/components/schemas/IncidentTimestampOverridePatchDataAttributesRequest" id: - description: The timestamp override identifier. - example: 00000000-0000-0000-0000-000000000000 - format: uuid + description: The metric name, used as the resource ID. + example: dd.test.metric type: string type: - $ref: "#/components/schemas/IncidentTimestampOverrideType" + $ref: "#/components/schemas/HistoricalMetricsConfigurationType" required: - id - type type: object - IncidentTimestampOverridePatchRequest: - description: Request payload for patching a timestamp override. + HistoricalMetricsConfigurationCreateRequest: + description: Request body for enabling historical metrics ingestion for a metric. properties: data: - $ref: "#/components/schemas/IncidentTimestampOverridePatchDataRequest" + $ref: "#/components/schemas/HistoricalMetricsConfigurationCreateData" required: - data type: object - IncidentTimestampOverrideRelationships: - description: Relationships for a timestamp override. - properties: - created_by_user: - $ref: "#/components/schemas/RelationshipToUser" - last_modified_by_user: - $ref: "#/components/schemas/RelationshipToUser" - type: object - IncidentTimestampOverrideRequest: - description: Request payload for creating a timestamp override. + HistoricalMetricsConfigurationData: + description: >- + A historical metrics configuration resource object. Existence of this resource means historical metrics ingestion is enabled for the metric; there is no separate enabled attribute. properties: - data: - $ref: "#/components/schemas/IncidentTimestampOverrideDataRequest" - required: - - data + attributes: + $ref: "#/components/schemas/HistoricalMetricsConfigurationAttributes" + id: + description: The metric name, used as the resource ID. + example: dd.test.metric + type: string + type: + $ref: "#/components/schemas/HistoricalMetricsConfigurationType" type: object - IncidentTimestampOverrideResponse: - description: Response with a single timestamp override. + HistoricalMetricsConfigurationResponse: + description: Response containing a historical metrics configuration. properties: data: - $ref: "#/components/schemas/IncidentTimestampOverrideDataResponse" - included: - description: Included related resources. - items: - $ref: "#/components/schemas/IncidentUserData" - readOnly: true - type: array - required: - - data + $ref: "#/components/schemas/HistoricalMetricsConfigurationData" + readOnly: true type: object - IncidentTimestampOverrideType: - description: Incident timestamp override resource type. + HistoricalMetricsConfigurationType: + default: historical_metrics_configurations + description: The historical metrics configuration resource type. enum: - - incidents_timestamp_overrides - example: incidents_timestamp_overrides + - historical_metrics_configurations + example: historical_metrics_configurations type: string x-enum-varnames: - - INCIDENTS_TIMESTAMP_OVERRIDES - IncidentTimestampOverridesResponse: - description: Response with a list of timestamp overrides. + - HISTORICAL_METRICS_CONFIGURATIONS + HourlyUsage: + description: Hourly usage for a product family for an org. properties: - data: - description: List of timestamp overrides. - items: - $ref: "#/components/schemas/IncidentTimestampOverrideDataResponse" - type: array - included: - description: Included related resources. - items: - $ref: "#/components/schemas/IncidentUserData" - readOnly: true - type: array - required: - - data + attributes: + $ref: "#/components/schemas/HourlyUsageAttributes" + id: + description: Unique ID of the response. + type: string + type: + $ref: "#/components/schemas/UsageTimeSeriesType" type: object - IncidentTimestampType: - description: The type of timestamp to override. - enum: - - detected - - resolved - - declared - example: detected - type: string - x-enum-varnames: - - DETECTED - - RESOLVED - - DECLARED - IncidentTodoAnonymousAssignee: - description: Anonymous assignee entity. + HourlyUsageAttributes: + description: Attributes of hourly usage for a product family for an org for a time period. properties: - icon: - description: URL for assignee's icon. - example: https://a.slack-edge.com/80588/img/slackbot_48.png + account_name: + description: The account name. type: string - id: - description: Anonymous assignee's ID. - example: USLACKBOT + account_public_id: + description: The account public ID. type: string - name: - description: Assignee's name. - example: Slackbot + measurements: + description: List of the measured usage values for the product family for the org for the time period. + items: + $ref: "#/components/schemas/HourlyUsageMeasurement" + type: array + org_name: + description: The organization name. + type: string + product_family: + description: The product for which usage is being reported. + type: string + public_id: + description: The organization public ID. + type: string + region: + description: The region of the Datadog instance that the organization belongs to. + type: string + timestamp: + description: Datetime in ISO-8601 format, UTC. The hour for the usage. + format: date-time type: string - source: - $ref: "#/components/schemas/IncidentTodoAnonymousAssigneeSource" - required: - - id - - icon - - name - - source type: object - IncidentTodoAnonymousAssigneeSource: - default: slack - description: The source of the anonymous assignee. + HourlyUsageMeasurement: + description: Usage amount for a given usage type. + properties: + usage_type: + description: Type of usage. + type: string + value: + description: Contains the number measured for the given usage_type during the hour. + format: int64 + nullable: true + type: integer + type: object + HourlyUsageMetadata: + description: The object containing document metadata. + properties: + pagination: + $ref: "#/components/schemas/HourlyUsagePagination" + type: object + HourlyUsagePagination: + description: The metadata for the current pagination. + properties: + next_record_id: + description: The cursor to get the next results (if any). To make the next request, use the same parameters and add `next_record_id`. + nullable: true + type: string + type: object + HourlyUsageResponse: + description: Hourly usage response. + properties: + data: + description: Response containing hourly usage. + items: + $ref: "#/components/schemas/HourlyUsage" + type: array + meta: + $ref: "#/components/schemas/HourlyUsageMetadata" + type: object + HourlyUsageType: + description: Usage type that is being measured. enum: - - slack - - microsoft_teams - example: slack + - app_sec_host_count + - observability_pipelines_bytes_processed + - lambda_traced_invocations_count + example: observability_pipelines_bytes_processed type: string x-enum-varnames: - - SLACK - - MICROSOFT_TEAMS - IncidentTodoAssignee: - description: A todo assignee. - example: "@test.user@test.com" - oneOf: - - $ref: "#/components/schemas/IncidentTodoAssigneeHandle" - - $ref: "#/components/schemas/IncidentTodoAnonymousAssignee" - IncidentTodoAssigneeArray: - description: Array of todo assignees. - example: - - "@test.user@test.com" - items: - $ref: "#/components/schemas/IncidentTodoAssignee" - type: array - IncidentTodoAssigneeHandle: - description: Assignee's @-handle. - example: "@test.user@test.com" + - APP_SEC_HOST_COUNT + - OBSERVABILITY_PIPELINES_BYTES_PROCESSSED + - LAMBDA_TRACED_INVOCATIONS_COUNT + ID: + description: The ID of a notification rule. + example: aaa-bbb-ccc type: string - IncidentTodoAttributes: - description: Incident todo's attributes. + IL2CPPSourcemapAttributes: + description: Attributes of an IL2CPP mapping file. properties: - assignees: - $ref: "#/components/schemas/IncidentTodoAssigneeArray" - completed: - description: Timestamp when the todo was completed. - example: "2023-03-06T22:00:00.000000+00:00" - nullable: true - type: string - content: - description: The follow-up task's content. - example: Restore lost data. + build_id: + description: The build identifier (UUID format). + example: 550e8400-e29b-41d4-a716-446655440000 type: string - created: - description: Timestamp when the incident todo was created. + created_at: + description: The timestamp when the mapping file was created. + example: "2024-01-01T00:00:00Z" format: date-time - readOnly: true type: string - due_date: - description: Timestamp when the todo should be completed by. - example: "2023-07-10T05:00:00.000000+00:00" - nullable: true + mapkind: + description: The type of source map. + example: il2cpp type: string - incident_id: - description: UUID of the incident this todo is connected to. - example: "00000000-aaaa-0000-0000-000000000000" + size: + description: The size of the mapping file in bytes. + example: 4096 + format: int64 + type: integer + required: + - mapkind + - size + - created_at + type: object + IL2CPPSourcemapData: + description: IL2CPP mapping file data object. + properties: + attributes: + $ref: "#/components/schemas/IL2CPPSourcemapAttributes" + id: + description: The unique identifier of the source map. + example: "8" type: string - modified: - description: Timestamp when the incident todo was last modified. + type: + $ref: "#/components/schemas/SourcemapDataType" + required: + - id + - type + - attributes + type: object + IOSSourcemapAttributes: + description: Attributes of an iOS dSYM source map. + properties: + created_at: + description: The timestamp when the source map was created. + example: "2024-01-01T00:00:00Z" format: date-time - readOnly: true + type: string + mapkind: + description: The type of source map. + example: ios + type: string + size: + description: The size of the dSYM file in bytes. + example: 4096 + format: int64 + type: integer + uuids: + description: The UUID(s) associated with the dSYM file. + example: 550e8400-e29b-41d4-a716-446655440000 type: string required: - - content - - assignees + - mapkind + - size + - created_at type: object - IncidentTodoCreateData: - description: Incident todo data for a create request. + IOSSourcemapData: + description: iOS dSYM source map data object. properties: attributes: - $ref: "#/components/schemas/IncidentTodoAttributes" + $ref: "#/components/schemas/IOSSourcemapAttributes" + id: + description: The unique identifier of the source map. + example: "11" + type: string type: - $ref: "#/components/schemas/IncidentTodoType" + $ref: "#/components/schemas/SourcemapDataType" required: + - id - type - attributes type: object - IncidentTodoCreateRequest: - description: Create request for an incident todo. + IPAllowlistAttributes: + description: Attributes of the IP allowlist. properties: - data: - $ref: "#/components/schemas/IncidentTodoCreateData" + enabled: + description: Whether the IP allowlist logic is enabled or not. + type: boolean + entries: + description: Array of entries in the IP allowlist. + items: + $ref: "#/components/schemas/IPAllowlistEntry" + type: array + type: object + IPAllowlistData: + description: IP allowlist data. + properties: + attributes: + $ref: "#/components/schemas/IPAllowlistAttributes" + id: + description: The unique identifier of the org. + type: string + type: + $ref: "#/components/schemas/IPAllowlistType" required: - - data + - type type: object - IncidentTodoListResponse: - description: Response with a list of incident todos. + IPAllowlistEntry: + description: IP allowlist entry object. properties: data: - description: An array of incident todos. - items: - $ref: "#/components/schemas/IncidentTodoResponseData" - type: array - included: - description: Included related resources that the user requested. - items: - $ref: "#/components/schemas/IncidentTodoResponseIncludedItem" - readOnly: true - type: array - meta: - $ref: "#/components/schemas/IncidentResponseMeta" + $ref: "#/components/schemas/IPAllowlistEntryData" required: - data type: object - IncidentTodoPatchData: - description: Incident todo data for a patch request. + IPAllowlistEntryAttributes: + description: Attributes of the IP allowlist entry. + properties: + cidr_block: + description: The CIDR block describing the IP range of the entry. + type: string + created_at: + description: Creation time of the entry. + format: date-time + readOnly: true + type: string + modified_at: + description: Time of last entry modification. + format: date-time + readOnly: true + type: string + note: + description: A note describing the IP allowlist entry. + type: string + type: object + IPAllowlistEntryData: + description: Data of the IP allowlist entry object. properties: attributes: - $ref: "#/components/schemas/IncidentTodoAttributes" + $ref: "#/components/schemas/IPAllowlistEntryAttributes" + id: + description: The unique identifier of the IP allowlist entry. + type: string type: - $ref: "#/components/schemas/IncidentTodoType" + $ref: "#/components/schemas/IPAllowlistEntryType" required: - type - - attributes type: object - IncidentTodoPatchRequest: - description: Patch request for an incident todo. + IPAllowlistEntryType: + default: ip_allowlist_entry + description: IP allowlist Entry type. + enum: + - ip_allowlist_entry + example: ip_allowlist_entry + type: string + x-enum-varnames: + - IP_ALLOWLIST_ENTRY + IPAllowlistResponse: + description: Response containing information about the IP allowlist. properties: data: - $ref: "#/components/schemas/IncidentTodoPatchData" + $ref: "#/components/schemas/IPAllowlistData" + type: object + IPAllowlistType: + default: ip_allowlist + description: IP allowlist type. + enum: + - ip_allowlist + example: ip_allowlist + type: string + x-enum-varnames: + - IP_ALLOWLIST + IPAllowlistUpdateRequest: + description: Update the IP allowlist. + properties: + data: + $ref: "#/components/schemas/IPAllowlistData" required: - data type: object - IncidentTodoRelationships: - description: The incident's relationships from a response. + IdPMetadataFormData: + description: The form data submitted to upload IdP metadata properties: - created_by_user: - $ref: "#/components/schemas/RelationshipToUser" - last_modified_by_user: - $ref: "#/components/schemas/RelationshipToUser" + idp_file: + description: The IdP metadata XML file + format: binary + type: string + x-mimetype: application/xml type: object - IncidentTodoResponse: - description: Response with an incident todo. + IdentityProviderAttributes: + description: Attributes of an organization identity provider. properties: - data: - $ref: "#/components/schemas/IncidentTodoResponseData" - included: - description: Included related resources that the user requested. - items: - $ref: "#/components/schemas/IncidentTodoResponseIncludedItem" - readOnly: true - type: array + authentication_method: + description: The authentication method used by this identity provider. + example: "SAML" + type: string + enabled: + description: Whether this identity provider is enabled for the organization. + example: true + type: boolean required: - - data + - authentication_method + - enabled type: object - IncidentTodoResponseData: - description: Incident todo response data. + IdentityProviderData: + description: Data object representing an organization identity provider. properties: attributes: - $ref: "#/components/schemas/IncidentTodoAttributes" + $ref: "#/components/schemas/IdentityProviderAttributes" id: - description: The incident todo's ID. - example: "00000000-0000-0000-1234-000000000000" + description: The unique identifier of the identity provider. + example: "00000000-0000-0000-0000-000000000001" type: string - relationships: - $ref: "#/components/schemas/IncidentTodoRelationships" type: - $ref: "#/components/schemas/IncidentTodoType" + $ref: "#/components/schemas/IdentityProviderType" required: - id - type + - attributes type: object - IncidentTodoResponseIncludedItem: - description: An object related to an incident todo that is included in the response. - oneOf: - - $ref: "#/components/schemas/User" - IncidentTodoType: - default: incident_todos - description: Todo resource type. + IdentityProviderDataList: + description: List of organization identity provider data objects. + items: + $ref: "#/components/schemas/IdentityProviderData" + type: array + IdentityProviderResponse: + description: Response containing a single organization identity provider. + properties: + data: + $ref: "#/components/schemas/IdentityProviderData" + required: + - data + type: object + IdentityProviderType: + description: The resource type for identity providers. enum: - - incident_todos - example: incident_todos + - identity_providers + example: identity_providers type: string x-enum-varnames: - - INCIDENT_TODOS - IncidentTrigger: - description: "Trigger a workflow from an incident. For automatic triggering a handle must be configured and the workflow must be published." + - IDENTITY_PROVIDERS + IdentityProviderUpdateAttributes: + description: Attributes for updating an organization identity provider. properties: - rateLimit: - $ref: "#/components/schemas/TriggerRateLimit" - version: - description: "Version of the incident manual trigger." + enabled: + description: Whether to enable or disable this identity provider for the organization. + example: true + type: boolean + required: + - enabled + type: object + IdentityProviderUpdateData: + description: Data object for updating an organization identity provider. + properties: + attributes: + $ref: "#/components/schemas/IdentityProviderUpdateAttributes" + id: + description: The unique identifier of the identity provider to update. + example: "00000000-0000-0000-0000-000000000001" type: string + type: + $ref: "#/components/schemas/IdentityProviderType" + required: + - id + - type + - attributes type: object - IncidentTriggerWrapper: - description: "Schema for an incident-based trigger." + IdentityProviderUpdateRequest: + description: Request body for updating an organization identity provider. properties: - incidentTrigger: - $ref: "#/components/schemas/IncidentTrigger" - startStepNames: - $ref: "#/components/schemas/StartStepNames" + data: + $ref: "#/components/schemas/IdentityProviderUpdateData" required: - - incidentTrigger + - data type: object - IncidentType: - default: incidents - description: Incident resource type. - enum: - - incidents - example: incidents - type: string - x-enum-varnames: - - INCIDENTS - IncidentTypeAttributes: - description: Incident type's attributes. + IdentityProvidersResponse: + description: Response containing a list of identity providers for an organization. + properties: + data: + $ref: "#/components/schemas/IdentityProviderDataList" + required: + - data + type: object + InboxRuleAction: + description: The action to take when the inbox rule matches a finding. properties: - configuration: - $ref: "#/components/schemas/IncidentTypeConfiguration" - readOnly: true - createdAt: - description: Timestamp when the incident type was created. - format: date-time - readOnly: true - type: string - createdBy: - description: A unique identifier that represents the user that created the incident type. - example: "00000000-0000-0000-0000-000000000000" - readOnly: true - type: string description: - description: Text that describes the incident type. - example: "Any incidents that harm (or have the potential to) the confidentiality, integrity, or availability of our data." + description: An optional description providing more context for the rule. + example: "Needs triage" + maxLength: 20000 type: string - is_default: - default: false - description: If true, this incident type will be used as the default incident type if a type is not specified during the creation of incident resources. - example: false + type: object + InboxRuleAttributesCreate: + description: Attributes for creating or updating an inbox rule. + properties: + action: + $ref: "#/components/schemas/InboxRuleAction" + enabled: + description: Whether the inbox rule is enabled. + example: true type: boolean - lastModifiedBy: - description: A unique identifier that represents the user that last modified the incident type. - example: "00000000-0000-0000-0000-000000000000" - readOnly: true - type: string - modifiedAt: - description: Timestamp when the incident type was last modified. - format: date-time - readOnly: true - type: string name: - description: The name of the incident type. - example: "Security Incident" - type: string - prefix: - description: The string that will be prepended to the incident title across the Datadog app. - example: "IR" - readOnly: true + description: The name of the inbox rule. + example: "Triage production misconfigurations" + maxLength: 255 + minLength: 1 type: string + rule: + $ref: "#/components/schemas/AutomationRuleScope" required: - name + - rule + - action type: object - IncidentTypeConfiguration: - description: >- - The incident-type-scoped behavior settings. All fields are optional on update. Any field omitted from a PATCH request keeps its current value. This object is read-only on the incident type resource itself and is only mutated through the update (PATCH) endpoint. + InboxRuleAttributesResponse: + description: Attributes of an inbox rule returned by the API. properties: - allow_incident_deletion: - default: false - description: Whether incidents of this type can be deleted. - example: false - type: boolean - allow_workflows: - default: true - description: Whether automation workflows can be triggered for incidents of this type. + action: + $ref: "#/components/schemas/InboxRuleAction" + created_at: + description: The Unix timestamp in milliseconds when the rule was created. + example: 1722439510282 + format: int64 + type: integer + created_by: + $ref: "#/components/schemas/AutomationRuleCreatedBy" + enabled: + description: Whether the inbox rule is enabled. example: true type: boolean - create_message: - description: An optional message shown to users when they declare an incident of this type. - example: "Create an incident here" + modified_at: + description: The Unix timestamp in milliseconds when the rule was last modified. + example: 1722439510282 + format: int64 + type: integer + modified_by: + $ref: "#/components/schemas/AutomationRuleModifiedBy" + name: + description: The name of the inbox rule. + example: "Triage production misconfigurations" + maxLength: 255 + minLength: 1 type: string - editable_timestamps: - default: false - description: Whether responders can edit incident timestamps for incidents of this type. - example: false - type: boolean - private_incidents: - default: false - description: >- - Whether responders can create private incidents of this type. This is an opt-in setting, distinct from `private_incidents_by_default`, which controls whether incidents are created private automatically. - example: false - type: boolean - private_incidents_by_default: - default: false - description: Whether incidents of this type are created as private by default. - example: false - type: boolean - slug_source: - $ref: "#/components/schemas/IncidentTypeSlugSource" - test_incidents: - default: true - description: Whether incidents of this type are treated as test incidents. - example: true - type: boolean - type: object - IncidentTypeCreateData: - description: Incident type data for a create request. - properties: - attributes: - $ref: "#/components/schemas/IncidentTypeAttributes" - type: - $ref: "#/components/schemas/IncidentTypeType" + rule: + $ref: "#/components/schemas/AutomationRuleScope" required: - - type - - attributes + - name + - enabled + - rule + - action + - created_at + - created_by + - modified_at + - modified_by type: object - IncidentTypeCreateRequest: - description: Create request for an incident type. + InboxRuleCreateRequest: + description: The body of an inbox rule create request. properties: data: - $ref: "#/components/schemas/IncidentTypeCreateData" + $ref: "#/components/schemas/InboxRuleDataCreate" required: - data type: object - IncidentTypeListResponse: - description: Response with a list of incident types. + InboxRuleDataCreate: + description: The data object for an inbox rule create request. properties: - data: - description: An array of incident type objects. - items: - $ref: "#/components/schemas/IncidentTypeObject" - type: array + attributes: + $ref: "#/components/schemas/InboxRuleAttributesCreate" + type: + $ref: "#/components/schemas/InboxRuleType" required: - - data + - type + - attributes type: object - IncidentTypeObject: - description: Incident type response data. + InboxRuleDataResponse: + description: The data object for an inbox rule returned by the API. properties: attributes: - $ref: "#/components/schemas/IncidentTypeAttributes" + $ref: "#/components/schemas/InboxRuleAttributesResponse" id: - description: The incident type's ID. + description: The ID of the inbox rule. example: "00000000-0000-0000-0000-000000000000" + format: uuid type: string - relationships: - $ref: "#/components/schemas/IncidentTypeRelationships" type: - $ref: "#/components/schemas/IncidentTypeType" + $ref: "#/components/schemas/InboxRuleType" required: - id - type + - attributes type: object - IncidentTypePatchData: - description: Incident type data for a patch request. + InboxRuleDataUpdate: + description: The data object for an inbox rule update request. The `id` must match the `rule_id` path parameter. properties: attributes: - $ref: "#/components/schemas/IncidentTypeUpdateAttributes" + $ref: "#/components/schemas/InboxRuleAttributesCreate" id: - description: The incident type's ID. + description: The ID of the inbox rule to update. example: "00000000-0000-0000-0000-000000000000" + format: uuid type: string type: - $ref: "#/components/schemas/IncidentTypeType" + $ref: "#/components/schemas/InboxRuleType" required: - id - type - attributes type: object - IncidentTypePatchRequest: - description: Patch request for an incident type. + InboxRuleReorderData: + description: The ordered list of all inbox rules. Every rule must be included. + items: + $ref: "#/components/schemas/InboxRuleReorderItem" + type: array + InboxRuleReorderItem: + description: A reference to an inbox rule used for reordering. + properties: + id: + description: The ID of the inbox rule. + example: "00000000-0000-0000-0000-000000000000" + format: uuid + type: string + type: + $ref: "#/components/schemas/InboxRuleType" + required: + - type + - id + type: object + InboxRuleReorderRequest: + description: The body of an inbox rule reorder request. properties: data: - $ref: "#/components/schemas/IncidentTypePatchData" + $ref: "#/components/schemas/InboxRuleReorderData" required: - data type: object - IncidentTypeRelationships: - additionalProperties: {} - description: The incident type's resource relationships. + InboxRuleReorderResponse: + description: The response of an inbox rule reorder request. properties: - created_by_user: - $ref: "#/components/schemas/RelationshipToUser" - google_meet_configuration: - $ref: "#/components/schemas/GoogleMeetConfigurationReference" - last_modified_by_user: - $ref: "#/components/schemas/RelationshipToUser" - microsoft_teams_configuration: - $ref: "#/components/schemas/MicrosoftTeamsConfigurationReference" - zoom_configuration: - $ref: "#/components/schemas/ZoomConfigurationReference" + data: + $ref: "#/components/schemas/InboxRuleReorderData" + required: + - data type: object - IncidentTypeResponse: - description: Incident type response data. + InboxRuleResponse: + description: A single inbox rule response. properties: data: - $ref: "#/components/schemas/IncidentTypeObject" + $ref: "#/components/schemas/InboxRuleDataResponse" required: - data type: object - IncidentTypeSlugSource: - default: default - description: >- - When set to `servicenow`, incidents will display the ServiceNow record ID instead of the public ID. If no ServiceNow integration exists, the public ID will be displayed. + InboxRuleType: + description: The JSON:API type for inbox rules. enum: - - default - - servicenow - example: default + - inbox_rules + example: inbox_rules type: string x-enum-varnames: - - DEFAULT - - SERVICENOW - IncidentTypeType: - default: incident_types - description: Incident type resource type. + - INBOX_RULES + InboxRuleUpdateRequest: + description: The body of an inbox rule update request. + properties: + data: + $ref: "#/components/schemas/InboxRuleDataUpdate" + required: + - data + type: object + InboxRulesDataList: + description: A list of inbox rule data objects. + items: + $ref: "#/components/schemas/InboxRuleDataResponse" + type: array + InboxRulesResponse: + description: A list of inbox rules with pagination metadata. + properties: + data: + $ref: "#/components/schemas/InboxRulesDataList" + links: + $ref: "#/components/schemas/SecurityAutomationRulesLinks" + meta: + $ref: "#/components/schemas/SecurityAutomationRulesMeta" + required: + - data + - meta + - links + type: object + IncidentAIPostmortemDataAttributesResponse: + description: Attributes of an AI-generated incident postmortem. + properties: + action_items: + description: Action items to prevent recurrence. + example: "1. Improve failover testing. 2. Add more monitoring alerts." + type: string + customer_impact: + description: The impact of the incident on customers. + example: "5% of users experienced timeouts for 30 minutes." + type: string + executive_summary: + description: An executive summary of the incident. + example: "A database failover caused a 30-minute service outage affecting 5% of users." + type: string + key_timeline: + description: Key timeline events during the incident. + example: "10:00 - Alert fired. 10:05 - On-call engineer paged. 10:30 - Issue resolved." + type: string + lessons_learned: + description: Lessons learned from the incident. + example: "We need to test the failover process under realistic load conditions." + type: string + system_overview: + description: An overview of the affected systems. + example: "The primary database cluster experienced a failover event." + type: string + type: object + IncidentAIPostmortemDataResponse: + description: AI postmortem data in a response. + properties: + attributes: + $ref: "#/components/schemas/IncidentAIPostmortemDataAttributesResponse" + id: + description: The incident identifier. + example: 00000000-0000-0000-0000-000000000000 + format: uuid + type: string + type: + $ref: "#/components/schemas/IncidentAIPostmortemResponseType" + required: + - id + - type + - attributes + type: object + IncidentAIPostmortemResponse: + description: Response with an AI-generated incident postmortem. + properties: + data: + $ref: "#/components/schemas/IncidentAIPostmortemDataResponse" + required: + - data + type: object + IncidentAIPostmortemResponseType: + description: AI postmortem response resource type. enum: - - incident_types - example: incident_types + - get_incident_ai_postmortem_response + example: get_incident_ai_postmortem_response type: string x-enum-varnames: - - INCIDENT_TYPES - IncidentTypeUpdateAttributes: - description: Incident type's attributes for updates. + - GET_INCIDENT_AI_POSTMORTEM_RESPONSE + IncidentAttachmentType: + default: incident_attachments + description: The incident attachment resource type. + enum: + - incident_attachments + example: incident_attachments + type: string + x-enum-varnames: + - INCIDENT_ATTACHMENTS + IncidentCondition: + description: "Conditions that determine which incidents trigger the workflow." properties: - configuration: - $ref: "#/components/schemas/IncidentTypeConfiguration" - createdAt: - description: Timestamp when the incident type was created. + tagValues: + description: "Incident tags and values used to filter matching incidents." + items: + $ref: "#/components/schemas/IncidentTagValue" + type: array + type: object + IncidentConfigurationDataAttributesRequest: + description: Attributes for creating an incident configuration. + properties: + execute_integrations: + description: Whether to execute integrations for this incident. + example: true + type: boolean + execute_notification_rules: + description: Whether to execute notification rules for this incident. + example: true + type: boolean + include_in_analytics: + description: Whether to include this incident in analytics. + example: true + type: boolean + include_in_search: + description: Whether to include this incident in search results. + example: true + type: boolean + type: object + IncidentConfigurationDataAttributesResponse: + description: Attributes of an incident configuration in a response. + properties: + created_at: + description: Timestamp when the configuration was created. + example: "2024-01-01T00:00:00.000Z" format: date-time - readOnly: true - type: string - createdBy: - description: A unique identifier that represents the user that created the incident type. - example: "00000000-0000-0000-0000-000000000000" - readOnly: true - type: string - description: - description: Text that describes the incident type. - example: "Any incidents that harm (or have the potential to) the confidentiality, integrity, or availability of our data. Note: This will notify the security team." type: string - is_default: - description: When true, this incident type will be used as the default type when an incident type is not specified. - example: false + execute_integrations: + description: Whether integrations are executed for this incident. + example: true type: boolean - lastModifiedBy: - description: A unique identifier that represents the user that last modified the incident type. - example: "00000000-0000-0000-0000-000000000000" - readOnly: true + execute_notification_rules: + description: Whether notification rules are executed for this incident. + example: true + type: boolean + incident_id: + description: The incident identifier. + example: 00000000-0000-0000-0000-000000000000 type: string - modifiedAt: - description: Timestamp when the incident type was last modified. + include_in_analytics: + description: Whether this incident is included in analytics. + example: true + type: boolean + include_in_search: + description: Whether this incident is included in search results. + example: true + type: boolean + modified_at: + description: Timestamp when the configuration was last modified. + example: "2024-01-01T00:00:00.000Z" format: date-time - readOnly: true - type: string - name: - description: The name of the incident type. - example: "Security Incident" type: string - prefix: - description: The string that will be prepended to the incident title across the Datadog app. - example: "IR" - readOnly: true + required: + - incident_id + - created_at + - modified_at + type: object + IncidentConfigurationDataRequest: + description: Incident configuration data in a create request. + properties: + attributes: + $ref: "#/components/schemas/IncidentConfigurationDataAttributesRequest" + type: + $ref: "#/components/schemas/IncidentConfigurationType" + required: + - type + type: object + IncidentConfigurationDataResponse: + description: Incident configuration data in a response. + properties: + attributes: + $ref: "#/components/schemas/IncidentConfigurationDataAttributesResponse" + id: + description: The incident configuration identifier. + example: 00000000-0000-0000-0000-000000000000 + format: uuid type: string + relationships: + $ref: "#/components/schemas/IncidentConfigurationRelationships" + type: + $ref: "#/components/schemas/IncidentConfigurationType" + required: + - id + - type + - attributes type: object - IncidentUpdateAttributes: - description: The incident's attributes for an update request. + IncidentConfigurationPatchDataAttributesRequest: + description: Attributes for patching an incident configuration. All fields are optional. properties: - customer_impact_end: - description: Timestamp when customers were no longer impacted by the incident. - format: date-time - nullable: true + execute_integrations: + description: Whether to execute integrations for this incident. + example: true + type: boolean + execute_notification_rules: + description: Whether to execute notification rules for this incident. + example: true + type: boolean + include_in_analytics: + description: Whether to include this incident in analytics. + example: true + type: boolean + include_in_search: + description: Whether to include this incident in search results. + example: true + type: boolean + type: object + IncidentConfigurationPatchDataRequest: + description: Incident configuration data in a patch request. + properties: + attributes: + $ref: "#/components/schemas/IncidentConfigurationPatchDataAttributesRequest" + id: + description: The incident configuration identifier. + example: 00000000-0000-0000-0000-000000000000 + format: uuid type: string + type: + $ref: "#/components/schemas/IncidentConfigurationType" + required: + - id + - type + type: object + IncidentConfigurationPatchRequest: + description: Request payload for patching an incident configuration. + properties: + data: + $ref: "#/components/schemas/IncidentConfigurationPatchDataRequest" + required: + - data + type: object + IncidentConfigurationRelationships: + description: Relationships for an incident configuration. + properties: + created_by_user: + $ref: "#/components/schemas/RelationshipToUser" + last_modified_by_user: + $ref: "#/components/schemas/RelationshipToUser" + type: object + IncidentConfigurationRequest: + description: Request payload for creating an incident configuration. + properties: + data: + $ref: "#/components/schemas/IncidentConfigurationDataRequest" + required: + - data + type: object + IncidentConfigurationResponse: + description: Response with an incident configuration. + properties: + data: + $ref: "#/components/schemas/IncidentConfigurationDataResponse" + included: + description: Included related resources. + items: + $ref: "#/components/schemas/IncidentUserData" + readOnly: true + type: array + required: + - data + type: object + IncidentConfigurationType: + description: Incident configuration resource type. + enum: + - incidents_configurations + example: incidents_configurations + type: string + x-enum-varnames: + - INCIDENTS_CONFIGURATIONS + IncidentCreateAttributes: + description: The incident's attributes for a create request. + properties: customer_impact_scope: - description: A summary of the impact customers experienced during the incident. + description: Required if `customer_impacted:"true"`. A summary of the impact customers experienced during the incident. example: "Example customer impact scope" type: string - customer_impact_start: - description: Timestamp when customers began being impacted by the incident. - format: date-time - nullable: true - type: string customer_impacted: description: A flag indicating whether the incident caused customer impact. example: false type: boolean - detected: - description: Timestamp when the incident was detected. - format: date-time - nullable: true - type: string fields: additionalProperties: $ref: "#/components/schemas/IncidentFieldAttributes" - description: A condensed view of the user-defined fields for which to update selections. + description: A condensed view of the user-defined fields for which to create initial selections. example: {"severity": {"type": "dropdown", "value": "SEV-5"}} type: object + incident_type_uuid: + description: A unique identifier that represents an incident type. The default incident type will be used if this property is not provided. + example: "00000000-0000-0000-0000-000000000000" + type: string + initial_cells: + description: An array of initial timeline cells to be placed at the beginning of the incident timeline. + items: + $ref: "#/components/schemas/IncidentTimelineCellCreateAttributes" + type: array + is_test: + description: A flag indicating whether the incident is a test incident. + example: false + type: boolean notification_handles: - description: Notification handles that will be notified of the incident during update. + description: Notification handles that will be notified of the incident at creation. example: [{"display_name": "Jane Doe", "handle": "@user@email.com"}, {"display_name": "Slack Channel", "handle": "@slack-channel"}, {"display_name": "Incident Workflow", "handle": "@workflow-from-incident"}] items: $ref: "#/components/schemas/IncidentNotificationHandle" @@ -55361,10404 +57950,10538 @@ components: description: The title of the incident, which summarizes what happened. example: "A test incident title" type: string + required: + - title + - customer_impacted type: object - IncidentUpdateData: - description: Incident data for an update request. + IncidentCreateData: + description: Incident data for a create request. properties: attributes: - $ref: "#/components/schemas/IncidentUpdateAttributes" - id: - description: The incident's ID. - example: "00000000-0000-0000-4567-000000000000" - type: string + $ref: "#/components/schemas/IncidentCreateAttributes" relationships: - $ref: "#/components/schemas/IncidentUpdateRelationships" + $ref: "#/components/schemas/IncidentCreateRelationships" type: $ref: "#/components/schemas/IncidentType" required: - - id - type + - attributes type: object - IncidentUpdateRelationships: - description: The incident's relationships for an update request. + IncidentCreateOnCallPageDataAttributesRequest: + description: Attributes for creating an on-call page from an incident. properties: - commander_user: - $ref: "#/components/schemas/NullableRelationshipToUser" - integrations: - $ref: "#/components/schemas/RelationshipToIncidentIntegrationMetadatas" - postmortem: - $ref: "#/components/schemas/RelationshipToIncidentPostmortem" + description: + description: The description of the page. + example: A critical incident affecting production systems. + type: string + role: + $ref: "#/components/schemas/IncidentPageRoleReference" + services: + description: List of affected services. + example: + - web-store + items: + type: string + type: array + tags: + description: List of tags for the page. + example: + - env:prod + items: + type: string + type: array + target: + $ref: "#/components/schemas/IncidentPageTarget" + title: + description: The title of the page. + example: Production outage - SEV-1 + type: string type: object - IncidentUpdateRequest: - description: Update request for an incident. + IncidentCreateOnCallPageDataRequest: + description: On-call page data in a create request. + properties: + attributes: + $ref: "#/components/schemas/IncidentCreateOnCallPageDataAttributesRequest" + type: + $ref: "#/components/schemas/IncidentCreatePageFromIncidentType" + required: + - type + - attributes + type: object + IncidentCreateOnCallPageRequest: + description: Request payload for creating an on-call page from an incident. properties: data: - $ref: "#/components/schemas/IncidentUpdateData" + $ref: "#/components/schemas/IncidentCreateOnCallPageDataRequest" required: - data type: object - IncidentUserAttributes: - description: Attributes of user object returned by the API. + IncidentCreatePageFromIncidentDataAttributesRequest: + description: Attributes for creating a page from an incident. properties: - email: - description: Email of the user. - type: string - handle: - description: Handle of the user. - type: string - icon: - description: URL of the user's icon. + description: + description: The description of the page. + example: A critical incident affecting production systems. type: string - name: - description: Name of the user. - nullable: true + incident_public_id: + description: The public ID of the incident. + example: "12345" type: string - uuid: - description: UUID of the user. + role: + $ref: "#/components/schemas/IncidentPageRoleReference" + services: + description: List of affected services. + example: + - web-store + - checkout + items: + type: string + type: array + tags: + description: List of tags for the page. + example: + - env:prod + items: + type: string + type: array + target: + $ref: "#/components/schemas/IncidentPageTarget" + title: + description: The title of the page. + example: Production outage - SEV-1 type: string type: object - IncidentUserData: - description: User object returned by the API. + IncidentCreatePageFromIncidentDataRequest: + description: Page data in a create request. properties: attributes: - $ref: "#/components/schemas/IncidentUserAttributes" - id: - description: ID of the user. + $ref: "#/components/schemas/IncidentCreatePageFromIncidentDataAttributesRequest" + type: + $ref: "#/components/schemas/IncidentCreatePageFromIncidentType" + required: + - type + - attributes + type: object + IncidentCreatePageFromIncidentRequest: + description: Request payload for creating a page from an incident. + properties: + data: + $ref: "#/components/schemas/IncidentCreatePageFromIncidentDataRequest" + required: + - data + type: object + IncidentCreatePageFromIncidentType: + description: Resource type for a page creation request. + enum: + - page + example: page + type: string + x-enum-varnames: + - PAGE + IncidentCreateRelationships: + description: The relationships the incident will have with other resources once created. + properties: + commander_user: + $ref: "#/components/schemas/NullableRelationshipToUser" + required: + - commander_user + type: object + IncidentCreateRequest: + description: Create request for an incident. + properties: + data: + $ref: "#/components/schemas/IncidentCreateData" + required: + - data + type: object + IncidentCreatedTrigger: + description: "Trigger a workflow when an incident is declared." + properties: + incidentType: + description: "The type of incident that triggers the workflow." type: string + tagCondition: + $ref: "#/components/schemas/IncidentCondition" + type: object + IncidentCreatedTriggerWrapper: + description: "Schema for an incident declared trigger." + properties: + incidentCreatedTrigger: + $ref: "#/components/schemas/IncidentCreatedTrigger" + startStepNames: + $ref: "#/components/schemas/StartStepNames" + required: + - incidentCreatedTrigger + type: object + IncidentFieldAttributes: + description: Dynamic fields for which selections can be made, with field names as keys. + oneOf: + - $ref: "#/components/schemas/IncidentFieldAttributesSingleValue" + - $ref: "#/components/schemas/IncidentFieldAttributesMultipleValue" + IncidentFieldAttributesMultipleValue: + description: A field with potentially multiple values selected. + properties: type: - $ref: "#/components/schemas/UsersType" + $ref: "#/components/schemas/IncidentFieldAttributesValueType" + value: + description: The multiple values selected for this field. + example: ["1.0", "1.1"] + items: + description: A value which has been selected for the parent field. + example: "1.1" + type: string + nullable: true + type: array type: object - IncidentUserDefinedFieldAttributesCreateRequest: - description: Attributes for creating an incident user-defined field. + IncidentFieldAttributesSingleValue: + description: A field with a single value selected. properties: - category: - $ref: "#/components/schemas/IncidentUserDefinedFieldCategory" - collected: - $ref: "#/components/schemas/IncidentUserDefinedFieldCollected" - default_value: - description: The default value for the field. Must be one of the valid values when valid_values is set. - example: "critical" + type: + $ref: "#/components/schemas/IncidentFieldAttributesSingleValueType" + value: + description: The single value selected for this field. + example: "SEV-1" nullable: true type: string - display_name: - description: The human-readable name shown in the UI. Defaults to a formatted version of the name if not provided. - example: "Root Cause" + type: object + IncidentFieldAttributesSingleValueType: + default: dropdown + description: Type of the single value field definitions. + enum: + - dropdown + - textbox + example: dropdown + type: string + x-enum-varnames: + - DROPDOWN + - TEXTBOX + IncidentFieldAttributesValueType: + default: multiselect + description: Type of the multiple value field definitions. + enum: + - multiselect + - textarray + - metrictag + - autocomplete + example: multiselect + type: string + x-enum-varnames: + - MULTISELECT + - TEXTARRAY + - METRICTAG + - AUTOCOMPLETE + IncidentGoogleChatConfigurationDataAttributesRequest: + description: Attributes for creating a Google Chat configuration. + properties: + domain_id: + description: The Google Chat domain ID. + example: my-domain type: string - name: - description: The unique identifier of the field. Must start with a letter or digit and contain only letters, digits, underscores, or periods. - example: "root_cause" + space_name_template: + description: The template for the Google Chat space name. + example: "{{incident.title}}" type: string - ordinal: - description: A decimal string representing the field's display order in the UI. - example: "1.5" - nullable: true + space_target_audience_id: + description: The target audience ID for the Google Chat space. + example: "123456789" type: string - required: - description: When true, users must fill out this field on incidents. - example: false - type: boolean - tag_key: - description: For metric tag-type fields only, the metric tag key that powers the autocomplete options. - example: "datacenter" - nullable: true + space_time_zone: + description: The time zone for the Google Chat space. + example: America/New_York type: string - type: - $ref: "#/components/schemas/IncidentUserDefinedFieldFieldType" - valid_values: - description: The list of allowed values for dropdown and multiselect fields. Limited to 1000 values. - items: - $ref: "#/components/schemas/IncidentUserDefinedFieldValidValue" - type: array required: - - name - - type + - domain_id + - space_name_template + - space_time_zone + - space_target_audience_id type: object - IncidentUserDefinedFieldAttributesResponse: - description: Attributes of an incident user-defined field. + IncidentGoogleChatConfigurationDataAttributesResponse: + description: Attributes of a Google Chat configuration. properties: - category: - $ref: "#/components/schemas/IncidentUserDefinedFieldCategory" - collected: - $ref: "#/components/schemas/IncidentUserDefinedFieldCollected" - created: - description: Timestamp when the field was created. - example: "2026-03-18T08:40:05.185406Z" + created_at: + description: Timestamp when the configuration was created. + example: "2024-01-01T00:00:00.000Z" format: date-time - readOnly: true type: string - default_value: - description: The default value for the field. - example: "critical" - nullable: true + domain_id: + description: The Google Chat domain ID. + example: my-domain type: string - deleted: - description: Timestamp when the field was soft-deleted, or null if not deleted. - example: + modified_at: + description: Timestamp when the configuration was last modified. + example: "2024-01-01T00:00:00.000Z" format: date-time - nullable: true - readOnly: true type: string - display_name: - description: The human-readable name shown in the UI. - example: "Root Cause" - type: string - metadata: - $ref: "#/components/schemas/IncidentUserDefinedFieldMetadata" - modified: - description: Timestamp when the field was last modified. - example: "2026-03-18T08:40:05.185406Z" - format: date-time - nullable: true - readOnly: true + space_name_template: + description: The template for the Google Chat space name. + example: "{{incident.title}}" type: string - name: - description: The unique identifier of the field. - example: "root_cause" + space_target_audience_id: + description: The target audience ID for the Google Chat space. + example: "123456789" type: string - ordinal: - description: A decimal string representing the field's display order in the UI. - example: "1.5" - nullable: true + space_time_zone: + description: The time zone for the Google Chat space. + example: America/New_York type: string - required: - description: When true, users must fill out this field on incidents. - example: false - type: boolean - reserved: - description: When true, this field is reserved for system use and cannot be deleted. - example: false - readOnly: true - type: boolean - tag_key: - description: For metric tag-type fields only, the metric tag key that powers the autocomplete options. - example: - nullable: true + required: + - domain_id + - space_name_template + - space_time_zone + - space_target_audience_id + - created_at + - modified_at + type: object + IncidentGoogleChatConfigurationDataRequest: + description: Google Chat configuration data in a create request. + properties: + attributes: + $ref: "#/components/schemas/IncidentGoogleChatConfigurationDataAttributesRequest" + relationships: + $ref: "#/components/schemas/IncidentGoogleChatConfigurationRelationshipsRequest" + type: + $ref: "#/components/schemas/IncidentGoogleChatConfigurationType" + required: + - type + - attributes + - relationships + type: object + IncidentGoogleChatConfigurationDataResponse: + description: Google Chat configuration data in a response. + properties: + attributes: + $ref: "#/components/schemas/IncidentGoogleChatConfigurationDataAttributesResponse" + id: + description: The configuration identifier. + example: 00000000-0000-0000-0000-000000000000 + format: uuid type: string + relationships: + $ref: "#/components/schemas/IncidentGoogleChatConfigurationRelationships" type: - description: The data type of the field. 1=dropdown, 2=multiselect, 3=textbox, 4=textarray, 5=metrictag, 6=autocomplete, 7=number, 8=datetime. - example: 3 - format: int32 - maximum: 8 - minimum: 1 - nullable: true - type: integer - valid_values: - description: The list of allowed values for dropdown, multiselect, and autocomplete fields. - items: - $ref: "#/components/schemas/IncidentUserDefinedFieldValidValue" - nullable: true - type: array + $ref: "#/components/schemas/IncidentGoogleChatConfigurationType" required: - - category - - collected - - created - - default_value - - deleted - - display_name - - metadata - - modified - - name - - ordinal - - required - - reserved - - tag_key + - id - type - - valid_values + - attributes type: object - IncidentUserDefinedFieldAttributesUpdateRequest: - description: Attributes for updating an incident user-defined field. All fields are optional. + IncidentGoogleChatConfigurationPatchDataAttributesRequest: + description: Attributes for patching a Google Chat configuration. All fields are optional. properties: - category: - $ref: "#/components/schemas/IncidentUserDefinedFieldCategory" - collected: - $ref: "#/components/schemas/IncidentUserDefinedFieldCollected" - default_value: - description: The default value for the field. Must be one of the valid values when valid_values is set. - example: "critical" - nullable: true + domain_id: + description: The Google Chat domain ID. + example: my-domain type: string - display_name: - description: The human-readable name shown in the UI. - example: "Root Cause" + space_name_template: + description: The template for the Google Chat space name. + example: "{{incident.title}}" type: string - ordinal: - description: A decimal string representing the field's display order in the UI. - example: "1.5" - nullable: true + space_target_audience_id: + description: The target audience ID for the Google Chat space. + example: "123456789" + type: string + space_time_zone: + description: The time zone for the Google Chat space. + example: America/New_York type: string - required: - description: When true, users must fill out this field on incidents. - example: false - nullable: true - type: boolean - valid_values: - description: The list of allowed values for dropdown and multiselect fields. Limited to 1000 values. - items: - $ref: "#/components/schemas/IncidentUserDefinedFieldValidValue" - nullable: true - type: array type: object - IncidentUserDefinedFieldCategory: - description: 'The section in which the field appears: "what_happened" or "why_it_happened". When null, the field appears in the Attributes section.' - enum: - - what_happened - - why_it_happened - example: what_happened - nullable: true - type: string - x-enum-varnames: - - WHAT_HAPPENED - - WHY_IT_HAPPENED - IncidentUserDefinedFieldCollected: - description: The lifecycle stage at which the app prompts users to fill out this field. Cannot be set on required fields. - enum: - - active - - stable - - resolved - - completed - example: active - nullable: true - type: string - x-enum-varnames: - - ACTIVE - - STABLE - - RESOLVED - - COMPLETED - IncidentUserDefinedFieldCreateData: - description: Data for creating an incident user-defined field. + IncidentGoogleChatConfigurationPatchDataRequest: + description: Google Chat configuration data in a patch request. properties: attributes: - $ref: "#/components/schemas/IncidentUserDefinedFieldAttributesCreateRequest" - relationships: - $ref: "#/components/schemas/IncidentUserDefinedFieldCreateRelationships" + $ref: "#/components/schemas/IncidentGoogleChatConfigurationPatchDataAttributesRequest" + id: + description: The configuration identifier. + example: 00000000-0000-0000-0000-000000000000 + format: uuid + type: string type: - $ref: "#/components/schemas/IncidentUserDefinedFieldType" + $ref: "#/components/schemas/IncidentGoogleChatConfigurationType" required: + - id - type - - attributes - - relationships type: object - IncidentUserDefinedFieldCreateRelationships: - description: Relationships for creating an incident user-defined field. + IncidentGoogleChatConfigurationPatchRequest: + description: Request payload for patching a Google Chat configuration. + properties: + data: + $ref: "#/components/schemas/IncidentGoogleChatConfigurationPatchDataRequest" + required: + - data + type: object + IncidentGoogleChatConfigurationRelationships: + description: Relationships for a Google Chat configuration. + properties: + created_by_user: + $ref: "#/components/schemas/RelationshipToUser" + incident_type: + $ref: "#/components/schemas/RelationshipToIncidentType" + last_modified_by_user: + $ref: "#/components/schemas/RelationshipToUser" + type: object + IncidentGoogleChatConfigurationRelationshipsRequest: + description: Relationships for a Google Chat configuration create request. properties: incident_type: $ref: "#/components/schemas/RelationshipToIncidentType" required: - incident_type type: object - IncidentUserDefinedFieldCreateRequest: - description: Request body for creating an incident user-defined field. + IncidentGoogleChatConfigurationRequest: + description: Request payload for creating a Google Chat configuration. properties: data: - $ref: "#/components/schemas/IncidentUserDefinedFieldCreateData" + $ref: "#/components/schemas/IncidentGoogleChatConfigurationDataRequest" required: - data type: object - IncidentUserDefinedFieldFieldType: - description: The data type of the field. 1=dropdown, 2=multiselect, 3=textbox, 4=textarray, 5=metrictag, 6=autocomplete, 7=number, 8=datetime. - enum: - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - - 8 - example: 3 - format: int32 - type: integer - x-enum-varnames: - - DROPDOWN - - MULTISELECT - - TEXTBOX - - TEXTARRAY - - METRICTAG - - AUTOCOMPLETE - - NUMBER - - DATETIME - IncidentUserDefinedFieldListMeta: - description: Pagination metadata for the user-defined field list response. - properties: - offset: - description: The offset of the current page. - example: 0 - format: int64 - type: integer - size: - description: The total number of items in the current page. - example: 5 - format: int64 - type: integer - type: object - IncidentUserDefinedFieldListResponse: - description: Response containing a list of incident user-defined fields. + IncidentGoogleChatConfigurationResponse: + description: Response with a Google Chat configuration. properties: data: - description: An array of user-defined field objects. + $ref: "#/components/schemas/IncidentGoogleChatConfigurationDataResponse" + included: + description: Included related resources. items: - $ref: "#/components/schemas/IncidentUserDefinedFieldResponseData" + $ref: "#/components/schemas/IncidentUserData" + readOnly: true type: array - meta: - $ref: "#/components/schemas/IncidentUserDefinedFieldListMeta" required: - data - - meta type: object - IncidentUserDefinedFieldMetadata: - description: Metadata for autocomplete-type user-defined fields, describing how to populate autocomplete options. - nullable: true + IncidentGoogleChatConfigurationType: + description: Google Chat configuration resource type. + enum: + - google_chat_configurations + example: google_chat_configurations + type: string + x-enum-varnames: + - GOOGLE_CHAT_CONFIGURATIONS + IncidentGoogleMeetConfigurationDataAttributesRequest: + description: Attributes for creating a Google Meet configuration. properties: - category: - description: The category of the autocomplete source. - example: "teams_and_services" - type: string - search_limit_param: - description: The query parameter used to limit the number of autocomplete results. - example: "page[size]" - type: string - search_params: - additionalProperties: {} - description: Additional query parameters to include in the search URL. - type: object - search_query_param: - description: The query parameter used to pass typed input to the search URL. - example: "filter" - type: string - search_result_path: - description: The JSON path to the results in the response body. - example: "$.data[*].attributes.name" - type: string - search_url: - description: The URL used to populate autocomplete options. - example: "/api/v2/incidents/config/services" - type: string + allow_manual_meeting_creation: + description: Whether to allow manual meeting creation. + example: true + type: boolean + auto_summarize: + description: Whether to auto-summarize meetings. + example: false + type: boolean required: - - category - - search_url - - search_query_param - - search_limit_param - - search_result_path - - search_params + - allow_manual_meeting_creation + - auto_summarize type: object - IncidentUserDefinedFieldRelationships: - description: Relationships of an incident user-defined field. + IncidentGoogleMeetConfigurationDataAttributesResponse: + description: Attributes of a Google Meet configuration. properties: - created_by_user: - $ref: "#/components/schemas/RelationshipToUser" - incident_type: - $ref: "#/components/schemas/RelationshipToIncidentType" - last_modified_by_user: - $ref: "#/components/schemas/RelationshipToUser" + allow_manual_meeting_creation: + description: Whether manual meeting creation is allowed. + example: true + type: boolean + auto_summarize: + description: Whether meetings are auto-summarized. + example: false + type: boolean + created_at: + description: Timestamp when the configuration was created. + example: "2024-01-01T00:00:00.000Z" + format: date-time + type: string + modified_at: + description: Timestamp when the configuration was last modified. + example: "2024-01-01T00:00:00.000Z" + format: date-time + type: string required: - - created_by_user - - last_modified_by_user - - incident_type + - allow_manual_meeting_creation + - auto_summarize + - modified_at type: object - IncidentUserDefinedFieldResponse: - description: Response containing a single incident user-defined field. + IncidentGoogleMeetConfigurationDataRequest: + description: Google Meet configuration data in a create request. properties: - data: - $ref: "#/components/schemas/IncidentUserDefinedFieldResponseData" + attributes: + $ref: "#/components/schemas/IncidentGoogleMeetConfigurationDataAttributesRequest" + relationships: + $ref: "#/components/schemas/IncidentGoogleMeetConfigurationRelationshipsRequest" + type: + $ref: "#/components/schemas/IncidentGoogleMeetConfigurationType" required: - - data + - type + - attributes + - relationships type: object - IncidentUserDefinedFieldResponseData: - description: Data object for an incident user-defined field response. + IncidentGoogleMeetConfigurationDataResponse: + description: Google Meet configuration data in a response. properties: attributes: - $ref: "#/components/schemas/IncidentUserDefinedFieldAttributesResponse" + $ref: "#/components/schemas/IncidentGoogleMeetConfigurationDataAttributesResponse" id: - description: The unique identifier of the user-defined field. - example: "00000000-0000-0000-0000-000000000000" + description: The configuration identifier. + example: 00000000-0000-0000-0000-000000000000 + format: uuid type: string relationships: - $ref: "#/components/schemas/IncidentUserDefinedFieldRelationships" + $ref: "#/components/schemas/IncidentGoogleMeetConfigurationRelationships" type: - $ref: "#/components/schemas/IncidentUserDefinedFieldType" + $ref: "#/components/schemas/IncidentGoogleMeetConfigurationType" required: - id - type - attributes - - relationships type: object - IncidentUserDefinedFieldType: - description: The incident user defined fields type. - enum: - - user_defined_field - example: user_defined_field - type: string - x-enum-varnames: - - USER_DEFINED_FIELD - IncidentUserDefinedFieldUpdateData: - description: Data for updating an incident user-defined field. + IncidentGoogleMeetConfigurationPatchDataAttributesRequest: + description: Attributes for patching a Google Meet configuration. All fields are optional. + properties: + allow_manual_meeting_creation: + description: Whether to allow manual meeting creation. + example: true + type: boolean + auto_summarize: + description: Whether to auto-summarize meetings. + example: false + type: boolean + type: object + IncidentGoogleMeetConfigurationPatchDataRequest: + description: Google Meet configuration data in a patch request. properties: attributes: - $ref: "#/components/schemas/IncidentUserDefinedFieldAttributesUpdateRequest" + $ref: "#/components/schemas/IncidentGoogleMeetConfigurationPatchDataAttributesRequest" id: - description: The unique identifier of the user-defined field to update. - example: "00000000-0000-0000-0000-000000000000" + description: The configuration identifier. + example: 00000000-0000-0000-0000-000000000000 + format: uuid type: string type: - $ref: "#/components/schemas/IncidentUserDefinedFieldType" + $ref: "#/components/schemas/IncidentGoogleMeetConfigurationType" required: - id - type - - attributes type: object - IncidentUserDefinedFieldUpdateRequest: - description: Request body for updating an incident user-defined field. + IncidentGoogleMeetConfigurationPatchRequest: + description: Request payload for patching a Google Meet configuration. properties: data: - $ref: "#/components/schemas/IncidentUserDefinedFieldUpdateData" + $ref: "#/components/schemas/IncidentGoogleMeetConfigurationPatchDataRequest" required: - data type: object - IncidentUserDefinedFieldValidValue: - description: A valid value for an incident user-defined field. + IncidentGoogleMeetConfigurationRelationships: + description: Relationships for a Google Meet configuration. properties: - description: - description: A detailed description of the valid value. - example: "A critical severity incident." - type: string - display_name: - description: The human-readable display name for this value. - example: "Critical" - type: string - short_description: - description: A short description of the valid value. - example: "Critical" - type: string - value: - description: The identifier that is stored when this option is selected. - example: "critical" - type: string + created_by_user: + $ref: "#/components/schemas/RelationshipToUser" + incident_type: + $ref: "#/components/schemas/RelationshipToIncidentType" + last_modified_by_user: + $ref: "#/components/schemas/RelationshipToUser" + type: object + IncidentGoogleMeetConfigurationRelationshipsRequest: + description: Relationships for a Google Meet configuration create request. + properties: + incident_type: + $ref: "#/components/schemas/RelationshipToIncidentType" required: - - display_name - - value + - incident_type type: object - IncidentUserDefinedRoleDataAttributesRequest: - description: Attributes for creating an incident user-defined role. + IncidentGoogleMeetConfigurationRequest: + description: Request payload for creating a Google Meet configuration. properties: - description: - description: A description of the user-defined role. - example: "The technical lead for the incident." - nullable: true - type: string + data: + $ref: "#/components/schemas/IncidentGoogleMeetConfigurationDataRequest" + required: + - data + type: object + IncidentGoogleMeetConfigurationResponse: + description: Response with a Google Meet configuration. + properties: + data: + $ref: "#/components/schemas/IncidentGoogleMeetConfigurationDataResponse" + included: + description: Included related resources. + items: + $ref: "#/components/schemas/IncidentUserData" + readOnly: true + type: array + required: + - data + type: object + IncidentGoogleMeetConfigurationType: + description: Google Meet configuration resource type. + enum: + - google_meet_configurations + example: google_meet_configurations + type: string + x-enum-varnames: + - GOOGLE_MEET_CONFIGURATIONS + IncidentHandleAttributesFields: + description: Dynamic fields associated with the handle + example: + severity: ["SEV-1"] + properties: + severity: + description: Severity levels associated with the handle + items: + $ref: "#/components/schemas/IncidentHandleAttributesFieldsSeverity" + type: array + type: object + IncidentHandleAttributesFieldsSeverity: + description: Severity level associated with an incident handle. + example: SEV-1 + type: string + IncidentHandleAttributesRequest: + description: Incident handle attributes for requests + properties: + fields: + $ref: "#/components/schemas/IncidentHandleAttributesFields" name: - description: The name of the user-defined role. - example: "Tech Lead" + description: The handle name + example: "@incident-sev-1" type: string - policy: - $ref: "#/components/schemas/IncidentUserDefinedRolePolicy" required: - name type: object - IncidentUserDefinedRoleDataAttributesResponse: - description: Attributes of an incident user-defined role. + IncidentHandleAttributesResponse: + description: Incident handle attributes for responses properties: - created: - description: Timestamp when the role was created. - example: "2024-01-01T00:00:00.000Z" + created_at: + description: Timestamp when the handle was created + example: "2026-01-13T17:15:52.726905Z" format: date-time type: string - description: - description: A description of the user-defined role. - example: "The technical lead for the incident." - nullable: true - type: string - modified: - description: Timestamp when the role was last modified. - example: "2024-01-01T00:00:00.000Z" + fields: + $ref: "#/components/schemas/IncidentHandleAttributesFields" + modified_at: + description: Timestamp when the handle was last modified + example: "2026-01-13T17:15:52.726905Z" format: date-time type: string name: - description: The name of the user-defined role. - example: "Tech Lead" + description: The handle name + example: "@incident-sev-1" type: string - policy: - $ref: "#/components/schemas/IncidentUserDefinedRolePolicy" required: - name - - policy - - created - - modified + - fields + - created_at + - modified_at type: object - IncidentUserDefinedRoleDataRequest: - description: Data for creating an incident user-defined role. + IncidentHandleDataRequest: + description: Data object representing an incident handle in a create or update request. properties: attributes: - $ref: "#/components/schemas/IncidentUserDefinedRoleDataAttributesRequest" + $ref: "#/components/schemas/IncidentHandleAttributesRequest" + id: + description: The ID of the incident handle (required for PUT requests) + example: "b2494081-cdf0-4205-b366-4e1dd4fdf0bf" + type: string relationships: - $ref: "#/components/schemas/IncidentUserDefinedRoleRelationshipsRequest" + $ref: "#/components/schemas/IncidentHandleRelationshipsRequest" type: - $ref: "#/components/schemas/IncidentUserDefinedRoleType" + $ref: "#/components/schemas/IncidentHandleType" required: - type - attributes - - relationships type: object - IncidentUserDefinedRoleDataResponse: - description: Data for an incident user-defined role response. + IncidentHandleDataResponse: + description: Data object representing an incident handle in a response. properties: attributes: - $ref: "#/components/schemas/IncidentUserDefinedRoleDataAttributesResponse" + $ref: "#/components/schemas/IncidentHandleAttributesResponse" id: - description: The ID of the user-defined role. - example: "00000000-0000-0000-0000-000000000002" - format: uuid + description: The ID of the incident handle + example: "12ceee6d-a7c0-4407-bc54-30e54140d7f0" type: string relationships: - $ref: "#/components/schemas/IncidentUserDefinedRoleRelationshipsResponse" + $ref: "#/components/schemas/IncidentHandleRelationships" type: - $ref: "#/components/schemas/IncidentUserDefinedRoleType" + $ref: "#/components/schemas/IncidentHandleType" required: - id - type - attributes type: object - IncidentUserDefinedRoleIncidentTypeRelationship: - description: Relationship to an incident type for a user-defined role. - properties: - data: - $ref: "#/components/schemas/IncidentUserDefinedRoleIncidentTypeRelationshipData" - required: - - data - type: object - IncidentUserDefinedRoleIncidentTypeRelationshipData: - description: Data for the incident type relationship of a user-defined role. - properties: - id: - description: The ID of the incident type. - example: "00000000-0000-0000-0000-000000000001" - format: uuid - type: string - type: - description: The type of the resource. - example: "incident_types" - type: string - required: - - id - - type - type: object - IncidentUserDefinedRoleIncludedItem: - description: A single included resource in a user-defined role response. + IncidentHandleIncludedItemResponse: + description: A single included resource item in an incident handle response, which can be a user or an incident type. oneOf: - $ref: "#/components/schemas/IncidentUserData" - $ref: "#/components/schemas/IncidentTypeObject" - IncidentUserDefinedRoleIncludedResponse: - description: Included resources for an incident user-defined role response. + IncidentHandleIncludedResponse: + description: Included related resources items: - $ref: "#/components/schemas/IncidentUserDefinedRoleIncludedItem" + $ref: "#/components/schemas/IncidentHandleIncludedItemResponse" type: array - IncidentUserDefinedRolePatchDataAttributesRequest: - description: Attributes for updating an incident user-defined role. + IncidentHandleRelationship: + description: A single relationship object for an incident handle, wrapping the related resource data. properties: - description: - description: A description of the user-defined role. - example: "The technical lead for the incident." - nullable: true - type: string - name: - description: The name of the user-defined role. - example: "Tech Lead" - type: string - policy: - $ref: "#/components/schemas/IncidentUserDefinedRolePolicy" + data: + $ref: "#/components/schemas/IncidentHandleRelationshipData" + required: + - data type: object - IncidentUserDefinedRolePatchDataRequest: - description: Data for updating an incident user-defined role. + IncidentHandleRelationshipData: + description: Relationship data for an incident handle, containing the ID and type of the related resource. properties: - attributes: - $ref: "#/components/schemas/IncidentUserDefinedRolePatchDataAttributesRequest" id: - description: The ID of the user-defined role to update. - example: "00000000-0000-0000-0000-000000000002" - format: uuid + description: The ID of the related resource + example: "f7b538b1-ed7c-4e84-82de-fdf84a539d40" type: string type: - $ref: "#/components/schemas/IncidentUserDefinedRoleType" + description: The type of the related resource + example: "incident_types" + type: string required: - id - type type: object - IncidentUserDefinedRolePatchRequest: - description: Request for updating an incident user-defined role. - properties: - data: - $ref: "#/components/schemas/IncidentUserDefinedRolePatchDataRequest" - required: - - data - type: object - IncidentUserDefinedRolePolicy: - description: Policy configuration for a user-defined role. - properties: - is_single: - description: Whether this role can only be assigned to one responder at a time. - example: true - type: boolean - required: - - is_single - type: object - IncidentUserDefinedRoleRelationshipsRequest: - description: Relationships for creating a user-defined role. + IncidentHandleRelationships: + description: Relationships associated with an incident handle response, including linked users and incident type. + nullable: true properties: + commander_user: + $ref: "#/components/schemas/IncidentHandleRelationship" + created_by_user: + $ref: "#/components/schemas/IncidentHandleRelationship" incident_type: - $ref: "#/components/schemas/IncidentUserDefinedRoleIncidentTypeRelationship" + $ref: "#/components/schemas/IncidentHandleRelationship" + last_modified_by_user: + $ref: "#/components/schemas/IncidentHandleRelationship" required: - incident_type + - created_by_user + - last_modified_by_user type: object - IncidentUserDefinedRoleRelationshipsResponse: - description: Relationships of a user-defined role response. + IncidentHandleRelationshipsRequest: + description: Relationships to associate with an incident handle in a create or update request. + nullable: true properties: - created_by_user: - $ref: "#/components/schemas/RelationshipToUser" + commander_user: + $ref: "#/components/schemas/IncidentHandleRelationship" incident_type: - $ref: "#/components/schemas/IncidentUserDefinedRoleIncidentTypeRelationship" - last_modified_by_user: - $ref: "#/components/schemas/RelationshipToUser" + $ref: "#/components/schemas/IncidentHandleRelationship" + required: + - incident_type type: object - IncidentUserDefinedRoleRequest: - description: Request for creating an incident user-defined role. + IncidentHandleRequest: + description: Request payload for creating or updating a global incident handle. properties: data: - $ref: "#/components/schemas/IncidentUserDefinedRoleDataRequest" + $ref: "#/components/schemas/IncidentHandleDataRequest" required: - data type: object - IncidentUserDefinedRoleResponse: - description: Response with a single incident user-defined role. + IncidentHandleResponse: + description: Response payload for a single incident handle, including the handle data and related resources. properties: data: - $ref: "#/components/schemas/IncidentUserDefinedRoleDataResponse" + $ref: "#/components/schemas/IncidentHandleDataResponse" included: - $ref: "#/components/schemas/IncidentUserDefinedRoleIncludedResponse" + $ref: "#/components/schemas/IncidentHandleIncludedResponse" required: - data type: object - IncidentUserDefinedRoleType: - description: Incident user-defined role resource type. + IncidentHandleType: + description: Incident handle resource type enum: - - incident_user_defined_roles - example: incident_user_defined_roles - type: string + - incidents_handles + example: incidents_handles + type: string x-enum-varnames: - - INCIDENT_USER_DEFINED_ROLES - IncidentUserDefinedRolesDataResponse: - description: List of incident user-defined role data objects. - items: - $ref: "#/components/schemas/IncidentUserDefinedRoleDataResponse" - type: array - IncidentUserDefinedRolesResponse: - description: Response with a list of incident user-defined roles. + - INCIDENTS_HANDLES + IncidentHandlesResponse: + description: Response payload for a list of global incident handles, including handle data and related resources. properties: data: - $ref: "#/components/schemas/IncidentUserDefinedRolesDataResponse" + $ref: "#/components/schemas/IncidentHandlesResponseData" + example: + - attributes: + name: "@incident-sev-1" + id: "12ceee6d-a7c0-4407-bc54-30e54140d7f0" + type: incident_handles included: - $ref: "#/components/schemas/IncidentUserDefinedRoleIncludedResponse" + $ref: "#/components/schemas/IncidentHandleIncludedResponse" required: - data type: object - IncidentsResponse: - description: Response with a list of incidents. + IncidentHandlesResponseData: + description: Array of incident handle data objects returned in a list response. + items: + $ref: "#/components/schemas/IncidentHandleDataResponse" + type: array + IncidentImpactAttributes: + description: The incident impact's attributes. properties: - data: - description: An array of incidents. - example: [{"attributes": {"created": "2020-04-21T15:34:08.627205+00:00", "creation_idempotency_key": null, "customer_impact_duration": 0, "customer_impact_end": null, "customer_impact_scope": null, "customer_impact_start": null, "customer_impacted": false, "detected": "2020-04-14T00:00:00+00:00", "incident_type_uuid": "00000000-0000-0000-0000-000000000001", "modified": "2020-09-17T14:16:58.696424+00:00", "public_id": 1, "resolved": null, "severity": "SEV-1", "time_to_detect": 0, "time_to_internal_response": 0, "time_to_repair": 0, "time_to_resolve": 0, "title": "Example Incident"}, "id": "00000000-aaaa-0000-0000-000000000000", "relationships": {"attachments": {"data": [{"id": "00000000-9999-0000-0000-000000000000", "type": "incident_attachments"}, {"id": "00000000-1234-0000-0000-000000000000", "type": "incident_attachments"}]}, "commander_user": {"data": {"id": "00000000-0000-0000-cccc-000000000000", "type": "users"}}, "created_by_user": {"data": {"id": "00000000-0000-0000-cccc-000000000000", - "type": "users"}}, "integrations": {"data": [{"id": "00000000-0000-0000-4444-000000000000", "type": "incident_integrations"}, {"id": "00000000-0000-0000-5555-000000000000", "type": "incident_integrations"}]}, "last_modified_by_user": {"data": {"id": "00000000-0000-0000-cccc-000000000000", "type": "users"}}}, "type": "incidents"}, {"attributes": {"created": "2020-04-21T15:34:08.627205+00:00", "creation_idempotency_key": null, "customer_impact_duration": 0, "customer_impact_end": null, "customer_impact_scope": null, "customer_impact_start": null, "customer_impacted": false, "detected": "2020-04-14T00:00:00+00:00", "incident_type_uuid": "00000000-0000-0000-0000-000000000002", "modified": "2020-09-17T14:16:58.696424+00:00", "public_id": 2, "resolved": null, "severity": "SEV-5", "time_to_detect": 0, "time_to_internal_response": 0, "time_to_repair": 0, "time_to_resolve": 0, "title": "Example Incident 2"}, "id": "00000000-1111-0000-0000-000000000000", "relationships": {"attachments": { - "data": [{"id": "00000000-9999-0000-0000-000000000000", "type": "incident_attachments"}]}, "commander_user": {"data": {"id": "00000000-aaaa-0000-0000-000000000000", "type": "users"}}, "created_by_user": {"data": {"id": "00000000-aaaa-0000-0000-000000000000", "type": "users"}}, "integrations": {"data": [{"id": "00000000-0000-0000-0001-000000000000", "type": "incident_integrations"}, {"id": "00000000-0000-0000-0002-000000000000", "type": "incident_integrations"}]}, "last_modified_by_user": {"data": {"id": "00000000-aaaa-0000-0000-000000000000", "type": "users"}}}, "type": "incidents"}] - items: - $ref: "#/components/schemas/IncidentResponseData" - type: array - included: - description: Included related resources that the user requested. - items: - $ref: "#/components/schemas/IncidentResponseIncludedItem" + created: + description: Timestamp when the impact was created. + example: "2025-08-29T13:17:00Z" + format: date-time readOnly: true - type: array - meta: - $ref: "#/components/schemas/IncidentResponseMeta" + type: string + description: + description: Description of the impact. + example: "Service was unavailable for external users" + type: string + end_at: + description: Timestamp when the impact ended. + example: "2025-08-29T13:17:00Z" + format: date-time + nullable: true + type: string + fields: + $ref: "#/components/schemas/IncidentImpactFieldsObject" + impact_type: + description: The type of impact. + example: "customer" + type: string + modified: + description: Timestamp when the impact was last modified. + example: "2025-08-29T13:17:00Z" + format: date-time + readOnly: true + type: string + start_at: + description: Timestamp representing when the impact started. + example: "2025-08-28T13:17:00Z" + format: date-time + type: string required: - - data - type: object - IncludeType: - description: Supported include types. - enum: - - schema - - raw_schema - - oncall - - incident - - relation - type: string - x-enum-varnames: - - SCHEMA - - RAW_SCHEMA - - ONCALL - - INCIDENT - - RELATION - InputSchema: - description: "A list of input parameters for the workflow. Input parameters are available under the `Trigger` object and can be referenced in workflow steps using `{{ Trigger. }}`." - properties: - parameters: - description: The `InputSchema` `parameters`. - items: - $ref: "#/components/schemas/InputSchemaParameters" - type: array + - description + - start_at type: object - InputSchemaParameters: - description: The definition of `InputSchemaParameters` object. + IncidentImpactCreateAttributes: + description: The incident impact's attributes for a create request. properties: - allowExtraValues: - description: The `InputSchemaParameters` `allowExtraValues`. - type: boolean - allowedValues: - description: The `InputSchemaParameters` `allowedValues`. - defaultValue: - description: The `InputSchemaParameters` `defaultValue`. description: - description: The `InputSchemaParameters` `description`. + description: Description of the impact. + example: "Service was unavailable for external users" type: string - label: - description: The `InputSchemaParameters` `label`. + end_at: + description: Timestamp when the impact ended. + example: "2025-08-29T13:17:00Z" + format: date-time + nullable: true type: string - name: - description: The `InputSchemaParameters` `name`. - example: "" - minLength: 1 + fields: + $ref: "#/components/schemas/IncidentImpactFieldsObject" + start_at: + description: Timestamp when the impact started. + example: "2025-08-28T13:17:00Z" + format: date-time type: string + required: + - description + - start_at + type: object + IncidentImpactCreateData: + description: Incident impact data for a create request. + properties: + attributes: + $ref: "#/components/schemas/IncidentImpactCreateAttributes" type: - $ref: "#/components/schemas/InputSchemaParametersType" + $ref: "#/components/schemas/IncidentImpactType" required: - - name - type + - attributes type: object - InputSchemaParametersType: - description: The definition of `InputSchemaParametersType` object. - enum: - - STRING - - NUMBER - - BOOLEAN - - OBJECT - - ARRAY_STRING - - ARRAY_NUMBER - - ARRAY_BOOLEAN - - ARRAY_OBJECT - example: STRING - type: string - x-enum-varnames: - - STRING - - NUMBER - - BOOLEAN - - OBJECT - - ARRAY_STRING - - ARRAY_NUMBER - - ARRAY_BOOLEAN - - ARRAY_OBJECT - IntakePayloadAccepted: - description: The payload accepted for intake. + IncidentImpactCreateRequest: + description: Create request for an incident impact. properties: - errors: - description: A list of errors. - items: - description: An empty error list. - type: string - type: array + data: + $ref: "#/components/schemas/IncidentImpactCreateData" + required: + - data type: object - Integration: - description: Integration resource object. + IncidentImpactCreatedTrigger: + description: "Trigger a workflow when an impact is created for an incident." properties: - attributes: - $ref: "#/components/schemas/IntegrationAttributes" - id: - description: The unique identifier of the integration. - example: "calico" + executionLimit: + $ref: "#/components/schemas/ExecutionLimit" + incidentType: + description: "The type of incident that triggers the workflow." type: string - links: - $ref: "#/components/schemas/IntegrationLinks" - type: - $ref: "#/components/schemas/IntegrationType" + tagCondition: + $ref: "#/components/schemas/IncidentCondition" + type: object + IncidentImpactCreatedTriggerWrapper: + description: "Schema for an incident impact created trigger." + properties: + incidentImpactCreatedTrigger: + $ref: "#/components/schemas/IncidentImpactCreatedTrigger" + startStepNames: + $ref: "#/components/schemas/StartStepNames" required: - - type - - id - - attributes + - incidentImpactCreatedTrigger type: object - IntegrationAccountDataflowHealth: - description: Collection health of a single dataflow. - enum: - - DATAFLOW_HEALTH_OK - - DATAFLOW_HEALTH_BROKEN - - DATAFLOW_HEALTH_UNKNOWN - example: DATAFLOW_HEALTH_OK - type: string - x-enum-varnames: - - OK - - BROKEN - - UNKNOWN - IntegrationAccountDataflowStatus: - description: Read-only collection status of a dataflow. + IncidentImpactFieldChoice: + description: A choice option for a dropdown or multiselect impact field. properties: - health: - $ref: "#/components/schemas/IntegrationAccountDataflowHealth" - message: - description: Human-readable detail, populated when the dataflow is not healthy. - example: "" + description: + description: The description of the choice. + example: Affects all customers type: string - updated_at: - description: Time the status was last computed. - example: "2026-06-25T08:30:50Z" - format: date-time + display_name: + description: The display name of the choice. + example: Critical type: string - readOnly: true + value: + description: The value of the choice. + example: critical + type: string + required: + - value + - display_name type: object - IntegrationAccountType: - default: integration-account - description: The type of the integration account resource. Always `integration-account`. - enum: - - integration-account - example: integration-account - type: string - x-enum-varnames: - - INTEGRATION_ACCOUNT - IntegrationAttributes: - description: Attributes for an integration. + IncidentImpactFieldDataAttributesRequest: + description: Attributes for creating an impact field. properties: - categories: - description: List of categories associated with the integration. - example: - - "Category::Kubernetes" - - "Category::Log Collection" + display_name: + description: The display name of the impact field. + example: Customer Impact Scope + type: string + field_choices: + description: The choices for dropdown or multiselect fields. items: - description: A category associated with the integration. - type: string + $ref: "#/components/schemas/IncidentImpactFieldChoice" type: array - description: - description: A description of the integration. - example: "Calico is a networking and network security solution for containers." + field_type: + $ref: "#/components/schemas/IncidentImpactFieldValueType" + name: + description: The normalized name of the impact field (used as identifier). + example: customer_impact_scope type: string - installed: - description: Whether the integration is installed. - example: true - type: boolean - title: - description: The name of the integration. - example: "calico" + tag_key: + description: The tag key associated with the field (for metrictag type). + example: env + nullable: true type: string required: - - title - - description - - categories - - installed + - name + - display_name + - field_type type: object - IntegrationIncident: - description: Incident integration settings. + IncidentImpactFieldDataAttributesResponse: + description: Attributes of an impact field in a response. properties: - auto_escalation_query: - description: Query for auto-escalation. - type: string - default_incident_commander: - description: Default incident commander. + display_name: + description: The display name of the impact field. + example: Customer Impact Scope type: string - enabled: - description: Whether incident integration is enabled. - type: boolean - field_mappings: - description: List of mappings between incident fields and case fields. + field_choices: + description: The choices for dropdown or multiselect fields. items: - $ref: "#/components/schemas/IntegrationIncidentFieldMappingsItems" + $ref: "#/components/schemas/IncidentImpactFieldChoice" type: array - incident_type: - description: Incident type. + field_type: + $ref: "#/components/schemas/IncidentImpactFieldValueType" + name: + description: The normalized name of the impact field. + example: customer_impact_scope type: string - severity_config: - $ref: "#/components/schemas/IntegrationIncidentSeverityConfig" + tag_key: + description: The tag key associated with the field. + example: env + nullable: true + type: string + required: + - name + - display_name + - field_type type: object - IntegrationIncidentFieldMappingsItems: - description: Mapping between an incident user-defined field and a case field. + IncidentImpactFieldDataRequest: + description: Impact field data in a create request. properties: - case_field: - description: The case field to map the incident field value to. - type: string - incident_user_defined_field_id: - description: The identifier of the incident user-defined field to map from. - type: string + attributes: + $ref: "#/components/schemas/IncidentImpactFieldDataAttributesRequest" + relationships: + $ref: "#/components/schemas/IncidentImpactFieldRelationshipsRequest" + type: + $ref: "#/components/schemas/IncidentImpactFieldType" + required: + - type + - attributes + - relationships type: object - IntegrationIncidentSeverityConfig: - description: Severity configuration for mapping incident priorities to case priorities. + IncidentImpactFieldDataResponse: + description: Impact field data in a response. properties: - priority_mapping: - additionalProperties: - type: string - description: Mapping of incident severity values to case priority values. - type: object + attributes: + $ref: "#/components/schemas/IncidentImpactFieldDataAttributesResponse" + id: + description: The impact field identifier. + example: 00000000-0000-0000-0000-000000000000 + format: uuid + type: string + relationships: + $ref: "#/components/schemas/IncidentImpactFieldRelationships" + type: + $ref: "#/components/schemas/IncidentImpactFieldType" + required: + - id + - type + - attributes type: object - IntegrationJira: - description: Jira integration settings. + IncidentImpactFieldRelationships: + description: Relationships for an impact field. properties: - auto_creation: - $ref: "#/components/schemas/IntegrationJiraAutoCreation" - enabled: - description: Whether Jira integration is enabled. - type: boolean - metadata: - $ref: "#/components/schemas/IntegrationJiraMetadata" - sync: - $ref: "#/components/schemas/IntegrationJiraSync" + created_by_user: + $ref: "#/components/schemas/RelationshipToUser" + incident_type: + $ref: "#/components/schemas/RelationshipToIncidentType" + last_modified_by_user: + $ref: "#/components/schemas/RelationshipToUser" type: object - IntegrationJiraAutoCreation: - description: Auto-creation settings for Jira issues from cases. + IncidentImpactFieldRelationshipsRequest: + description: Relationships for an impact field create request. properties: - enabled: - description: Whether automatic Jira issue creation is enabled. - type: boolean + incident_type: + $ref: "#/components/schemas/RelationshipToIncidentType" + required: + - incident_type type: object - IntegrationJiraMetadata: - description: Metadata for connecting a case management project to a Jira project. + IncidentImpactFieldRequest: + description: Request payload for creating an impact field. properties: - account_id: - description: The Jira account identifier. - type: string - issue_type_id: - description: The Jira issue type identifier to use when creating issues. - type: string - project_id: - description: The Jira project identifier to associate with this case project. - type: string + data: + $ref: "#/components/schemas/IncidentImpactFieldDataRequest" + required: + - data type: object - IntegrationJiraSync: - description: Synchronization configuration for Jira integration. + IncidentImpactFieldResponse: + description: Response with a single impact field. properties: - enabled: - description: Whether Jira field synchronization is enabled. - type: boolean - properties: - $ref: "#/components/schemas/IntegrationJiraSyncProperties" + data: + $ref: "#/components/schemas/IncidentImpactFieldDataResponse" + included: + description: Included related resources. + items: + $ref: "#/components/schemas/IncidentUserData" + readOnly: true + type: array + required: + - data type: object - IntegrationJiraSyncDueDate: - description: Due date synchronization configuration for Jira integration. + IncidentImpactFieldType: + description: Impact field resource type. + enum: + - impact_fields + example: impact_fields + type: string + x-enum-varnames: + - IMPACT_FIELDS + IncidentImpactFieldValueType: + description: The type of an impact field. + enum: + - dropdown + - text + - textarray + - metrictag + - number + - datetime + - multiselect + example: dropdown + type: string + x-enum-varnames: + - DROPDOWN + - TEXT + - TEXTARRAY + - METRICTAG + - NUMBER + - DATETIME + - MULTISELECT + IncidentImpactFieldsObject: + additionalProperties: {} + description: An object mapping impact field names to field values. + example: {"customers_impacted": "all", "products_impacted": ["shopping", "marketing"]} + type: object + IncidentImpactFieldsResponse: + description: Response with a list of impact fields. properties: - jira_field_id: - description: The Jira field identifier used to store the due date. - type: string - sync_type: - description: The type of synchronization to apply for the due date field. - type: string + data: + description: List of impact fields. + items: + $ref: "#/components/schemas/IncidentImpactFieldDataResponse" + type: array + included: + description: Included related resources. + items: + $ref: "#/components/schemas/IncidentUserData" + readOnly: true + type: array + required: + - data type: object - IntegrationJiraSyncProperties: - description: Field synchronization properties for Jira integration. + IncidentImpactPatchAttributes: + description: The incident impact's attributes for a patch request. All fields are optional. properties: - assignee: - $ref: "#/components/schemas/SyncProperty" - comments: - $ref: "#/components/schemas/SyncProperty" - custom_fields: - additionalProperties: - $ref: "#/components/schemas/IntegrationJiraSyncPropertiesCustomFieldsAdditionalProperties" - description: Map of custom field identifiers to their sync configurations. - type: object description: - $ref: "#/components/schemas/SyncProperty" - due_date: - $ref: "#/components/schemas/IntegrationJiraSyncDueDate" - priority: - $ref: "#/components/schemas/SyncPropertyWithMapping" - status: - $ref: "#/components/schemas/SyncPropertyWithMapping" - title: - $ref: "#/components/schemas/SyncProperty" + description: Description of the impact. + example: "Service was unavailable for external users" + type: string + end_at: + description: Timestamp when the impact ended. + example: "2025-08-29T13:17:00Z" + format: date-time + nullable: true + type: string + fields: + $ref: "#/components/schemas/IncidentImpactFieldsObject" + start_at: + description: Timestamp when the impact started. + example: "2025-08-28T13:17:00Z" + format: date-time + type: string type: object - IntegrationJiraSyncPropertiesCustomFieldsAdditionalProperties: - description: Synchronization configuration for a Jira custom field. + IncidentImpactPatchData: + description: Incident impact data for a patch request. properties: - sync_type: - description: The type of synchronization to apply for this custom field. - type: string - value: - $ref: "#/components/schemas/AnyValue" + attributes: + $ref: "#/components/schemas/IncidentImpactPatchAttributes" + type: + $ref: "#/components/schemas/IncidentImpactType" + required: + - type type: object - IntegrationLinks: - description: Links for the integration resource. + IncidentImpactPatchRequest: + description: Patch request for an incident impact. properties: - self: - description: Link to the integration resource. - example: "/integrations?integrationId=calico" - type: string + data: + $ref: "#/components/schemas/IncidentImpactPatchData" + required: + - data type: object - IntegrationMonitor: - description: Monitor integration settings. + IncidentImpactRelatedObject: + description: A reference to a resource related to an incident impact. + enum: + - incident + - created_by_user + - last_modified_by_user + type: string + x-enum-varnames: + - INCIDENT + - CREATED_BY_USER + - LAST_MODIFIED_BY_USER + IncidentImpactRelationships: + description: The incident impact's resource relationships. properties: - auto_resolve_enabled: - description: Whether auto-resolve is enabled. - type: boolean - case_type_id: - description: Case type ID for monitor integration. - type: string - enabled: - description: Whether monitor integration is enabled. - type: boolean - handle: - description: Monitor handle. - type: string + created_by_user: + $ref: "#/components/schemas/RelationshipToUser" + incident: + $ref: "#/components/schemas/RelationshipToIncident" + last_modified_by_user: + $ref: "#/components/schemas/RelationshipToUser" type: object - IntegrationOnCall: - description: On-Call integration settings. + IncidentImpactResponse: + description: Response with an incident impact. properties: - auto_assign_on_call: - description: Whether to auto-assign on-call. - type: boolean - enabled: - description: Whether On-Call integration is enabled. - type: boolean - escalation_queries: - description: List of escalation queries for routing cases to on-call responders. + data: + $ref: "#/components/schemas/IncidentImpactResponseData" + included: + description: Included related resources that the user requested. items: - $ref: "#/components/schemas/IntegrationOnCallEscalationQueriesItems" + $ref: "#/components/schemas/IncidentUserData" + readOnly: true type: array + required: + - data type: object - IntegrationOnCallEscalationQueriesItems: - description: An On-Call escalation query entry used to route cases to on-call responders. + IncidentImpactResponseData: + description: Incident impact data from a response. properties: - enabled: - description: Whether this escalation query is enabled. - type: boolean + attributes: + $ref: "#/components/schemas/IncidentImpactAttributes" id: - description: Unique identifier of the escalation query. - type: string - query: - description: The query used to match cases for escalation. - type: string - target: - $ref: "#/components/schemas/IntegrationOnCallEscalationQueriesItemsTarget" - type: object - IntegrationOnCallEscalationQueriesItemsTarget: - description: The target recipient for an On-Call escalation query. - properties: - dynamic_team_paging: - description: Whether to use dynamic team paging for escalation. - type: boolean - team_id: - description: The identifier of the team to escalate to. - type: string - user_id: - description: The identifier of the user to escalate to. + description: The incident impact's ID. + example: "00000000-0000-0000-1234-000000000000" type: string + relationships: + $ref: "#/components/schemas/IncidentImpactRelationships" + type: + $ref: "#/components/schemas/IncidentImpactType" + required: + - id + - type type: object - IntegrationServiceNow: - description: ServiceNow integration settings. + IncidentImpactType: + default: incident_impacts + description: Incident impact resource type. + enum: + - incident_impacts + example: incident_impacts + type: string + x-enum-varnames: + - INCIDENT_IMPACTS + IncidentImpactUpdatedTrigger: + description: "Trigger a workflow when an impact is updated for an incident." properties: - assignment_group: - description: Assignment group. - type: string - auto_creation: - $ref: "#/components/schemas/IntegrationServiceNowAutoCreation" - enabled: - description: Whether ServiceNow integration is enabled. - type: boolean - instance_name: - description: ServiceNow instance name. + executionLimit: + $ref: "#/components/schemas/ExecutionLimit" + incidentType: + description: "The type of incident that triggers the workflow." type: string - sync_config: - $ref: "#/components/schemas/IntegrationServiceNowSyncConfig" - type: object - IntegrationServiceNowAutoCreation: - description: Auto-creation settings for ServiceNow incidents from cases. - properties: - enabled: - description: Whether automatic ServiceNow incident creation is enabled. - type: boolean - type: object - IntegrationServiceNowSyncConfig: - description: Synchronization configuration for ServiceNow integration. - properties: - enabled: - description: Whether ServiceNow synchronization is enabled. - type: boolean - properties: - $ref: "#/components/schemas/IntegrationServiceNowSyncConfig139772721534496" + tagCondition: + $ref: "#/components/schemas/IncidentCondition" type: object - IntegrationServiceNowSyncConfig139772721534496: - description: Field-level synchronization properties for ServiceNow integration. + IncidentImpactUpdatedTriggerWrapper: + description: "Schema for an incident impact updated trigger." properties: - comments: - $ref: "#/components/schemas/SyncProperty" - priority: - $ref: "#/components/schemas/IntegrationServiceNowSyncConfigPriority" - status: - $ref: "#/components/schemas/SyncPropertyWithMapping" + incidentImpactUpdatedTrigger: + $ref: "#/components/schemas/IncidentImpactUpdatedTrigger" + startStepNames: + $ref: "#/components/schemas/StartStepNames" + required: + - incidentImpactUpdatedTrigger type: object - IntegrationServiceNowSyncConfigPriority: - description: Priority synchronization configuration for ServiceNow integration. + IncidentImpactsResponse: + description: Response with a list of incident impacts. properties: - impact_mapping: - additionalProperties: - type: string - description: Mapping of case priority values to ServiceNow impact values. - type: object - sync_type: - description: The type of synchronization to apply for priority. - type: string - urgency_mapping: - additionalProperties: - type: string - description: Mapping of case priority values to ServiceNow urgency values. - type: object + data: + description: An array of incident impacts. + items: + $ref: "#/components/schemas/IncidentImpactResponseData" + type: array + included: + description: Included related resources that the user requested. + items: + $ref: "#/components/schemas/IncidentUserData" + readOnly: true + type: array + required: + - data type: object - IntegrationType: - default: integration - description: Integration resource type. + IncidentImpactsType: + description: The incident impacts type. enum: - - integration - example: integration + - incident_impacts + example: incident_impacts type: string x-enum-varnames: - - INTEGRATION - InterfaceAttributes: - description: The interface attributes + - INCIDENT_IMPACTS + IncidentImportFieldAttributes: + description: Dynamic fields for which selections can be made, with field names as keys. + oneOf: + - $ref: "#/components/schemas/IncidentImportFieldAttributesSingleValue" + - $ref: "#/components/schemas/IncidentImportFieldAttributesMultipleValue" + IncidentImportFieldAttributesMultipleValue: + additionalProperties: false + description: A field with potentially multiple values selected. properties: - alias: - description: The interface alias - example: interface_0 - type: string - description: - description: The interface description - example: a network interface - type: string - index: - description: The interface index - example: 0 - format: int64 - type: integer - ip_addresses: - description: The interface IP addresses - example: ["1.1.1.1", "1.1.1.2"] + value: + description: The multiple values selected for this field. + example: ["1.0", "1.1"] items: - description: An IP address assigned to the interface. + description: A value which has been selected for the parent field. + example: "1.1" type: string + nullable: true type: array - mac_address: - description: The interface MAC address - example: 00:00:00:00:00:00 - type: string - name: - description: The interface name - example: if0 + type: object + IncidentImportFieldAttributesSingleValue: + additionalProperties: false + description: A field with a single value selected. + properties: + value: + description: The single value selected for this field. + example: "SEV-1" + nullable: true type: string - status: - $ref: "#/components/schemas/InterfaceAttributesStatus" type: object - InterfaceAttributesStatus: - description: The interface status + IncidentImportRelatedObject: + description: Object related to an incident that can be included in the response. enum: - - up - - down - - warning - - "off" - example: up + - last_modified_by_user + - created_by_user + - commander_user + - declared_by_user + - incident_type type: string x-enum-varnames: - - UP - - DOWN - - WARNING - - "OFF" - InvestigationConclusion: - description: A full explanation of the finding, including root cause analysis and supporting evidence. + - LAST_MODIFIED_BY_USER + - CREATED_BY_USER + - COMMANDER_USER + - DECLARED_BY_USER + - INCIDENT_TYPE + IncidentImportRelationships: + description: The relationships for an incident import request. properties: - description: - description: A full explanation of the finding, including root cause analysis and supporting evidence. - example: "The investigation found that a memory leak in payments-service caused CPU usage to spike above 95% starting at 14:32 UTC." + commander_user: + $ref: "#/components/schemas/NullableRelationshipToUser" + declared_by_user: + $ref: "#/components/schemas/NullableRelationshipToUser" + type: object + IncidentImportRequest: + description: Import request for an incident. Used to import historical incidents from external systems. + properties: + data: + $ref: "#/components/schemas/IncidentImportRequestData" + required: + - data + type: object + IncidentImportRequestAttributes: + description: The incident's attributes for an import request. + properties: + declared: + description: Timestamp when the incident was declared. + example: "2025-01-01T00:00:00Z" + format: date-time type: string - summary: - description: A summary of the finding, including affected components and timeframe. - example: "CPU usage exceeded 95% for over 10 minutes on web-server-01." + detected: + description: Timestamp when the incident was detected. + example: "2025-01-01T00:00:00Z" + format: date-time + type: string + fields: + additionalProperties: + $ref: "#/components/schemas/IncidentImportFieldAttributes" + description: A condensed view of the user-defined fields for which to create initial selections. + example: {"severity": {"value": "SEV-5"}, "state": {"value": "active"}} + type: object + incident_type_uuid: + description: A unique identifier that represents the incident type. If not provided, the default incident type is used. + example: "00000000-0000-0000-0000-000000000000" + type: string + resolved: + description: Timestamp when the incident was resolved. Can only be set when the state field is set to 'resolved'. + example: "2025-01-01T01:00:00Z" + format: date-time type: string title: - description: The title of the conclusion. - example: "High CPU usage detected on web-server-01" + description: The title of the incident that summarizes what happened. + example: "Imported incident from external system" + maxLength: 1024 type: string + visibility: + $ref: "#/components/schemas/IncidentImportVisibility" required: - title - - summary - - description type: object - InvestigationType: - description: The resource type for investigations. - enum: - - investigation - example: investigation - type: string - x-enum-varnames: - - INVESTIGATION - IoCExplorerListResponse: - description: Response for the list indicators of compromise endpoint. + IncidentImportRequestData: + description: Incident data for an import request. properties: - data: - $ref: "#/components/schemas/IoCExplorerListResponseData" + attributes: + $ref: "#/components/schemas/IncidentImportRequestAttributes" + relationships: + $ref: "#/components/schemas/IncidentImportRelationships" + type: + $ref: "#/components/schemas/IncidentType" + required: + - type + - attributes type: object - IoCExplorerListResponseAttributes: - description: Attributes of the IoC Explorer list response. + IncidentImportResponse: + description: Response with an incident. properties: data: - description: List of indicators of compromise. + $ref: "#/components/schemas/IncidentImportResponseData" + included: + description: Included related resources that the user requested. items: - $ref: "#/components/schemas/IoCIndicator" + $ref: "#/components/schemas/IncidentImportResponseIncludedItem" + readOnly: true type: array - metadata: - $ref: "#/components/schemas/IoCExplorerListResponseMetadata" - paging: - $ref: "#/components/schemas/IoCExplorerListResponsePaging" + required: + - data type: object - IoCExplorerListResponseData: - description: IoC Explorer list response data object. + IncidentImportResponseAttributes: + description: The incident's attributes from an import response. properties: - attributes: - $ref: "#/components/schemas/IoCExplorerListResponseAttributes" - id: - description: Unique identifier for the response. - type: string - type: - description: Response type identifier. + archived: + description: Timestamp when the incident was archived. + format: date-time + nullable: true + readOnly: true type: string - type: object - IoCExplorerListResponseMetadata: - description: Response metadata. - properties: - count: - description: Total number of indicators matching the query. - format: int64 - type: integer - type: object - IoCExplorerListResponsePaging: - description: Pagination information. - properties: - offset: - description: Current pagination offset. + case_id: + description: The incident case ID. format: int64 + nullable: true type: integer - type: object - IoCGeoLocation: - description: Geographic location information for an IP indicator. - properties: - city: - description: City name. + created: + description: Timestamp when the incident was created. + example: "2025-01-01T00:00:00Z" + format: date-time + readOnly: true type: string - country_code: - description: ISO country code. + created_by_uuid: + description: UUID of the user who created the incident. + nullable: true type: string - country_name: - description: Full country name. + creation_idempotency_key: + description: A unique key used to ensure idempotent incident creation. + nullable: true type: string - type: object - IoCIndicator: - description: An indicator of compromise with threat intelligence data. - properties: - as_geo: - $ref: "#/components/schemas/IoCGeoLocation" - as_type: - description: Autonomous system type. + customer_impact_end: + description: Timestamp when customers were no longer impacted by the incident. + format: date-time + nullable: true type: string - benign_sources: - description: Threat intelligence sources that flagged this indicator as benign. - items: - $ref: "#/components/schemas/IoCSource" + customer_impact_scope: + description: A summary of the impact customers experienced during the incident. + example: "An example customer impact scope" nullable: true - type: array - categories: - description: Threat categories associated with the indicator. - items: - type: string - type: array - first_seen: - description: Timestamp when the indicator was first seen. + type: string + customer_impact_start: + description: Timestamp when customers began to be impacted by the incident. format: date-time + nullable: true type: string - id: - description: Unique identifier for the indicator. + declared: + description: Timestamp when the incident was declared. + example: "2025-01-01T00:00:00Z" + format: date-time + nullable: true type: string - indicator: - description: The indicator value (for example, an IP address or domain). + declared_by_uuid: + description: UUID of the user who declared the incident. + nullable: true type: string - indicator_type: - description: Type of indicator (for example, IP address or domain). + detected: + description: Timestamp when the incident was detected. + example: "2025-01-01T00:00:00Z" + format: date-time + nullable: true type: string - last_seen: - description: Timestamp when the indicator was last seen. + fields: + additionalProperties: + $ref: "#/components/schemas/IncidentFieldAttributes" + description: A condensed view of the user-defined fields attached to incidents. + example: {"severity": {"type": "dropdown", "value": "SEV-5"}} + type: object + incident_type_uuid: + description: A unique identifier that represents an incident type. + example: "00000000-0000-0000-0000-000000000000" + type: string + is_test: + description: A flag indicating whether the incident is a test incident. + example: false + type: boolean + last_modified_by_uuid: + description: UUID of the user who last modified the incident. + nullable: true + type: string + modified: + description: Timestamp when the incident was last modified. format: date-time + readOnly: true type: string - log_matches: - description: Number of logs that matched this indicator. - format: int64 - type: integer - m_as_type: - $ref: "#/components/schemas/IoCScoreEffect" - m_persistence: - $ref: "#/components/schemas/IoCScoreEffect" - m_signal: - $ref: "#/components/schemas/IoCScoreEffect" - m_sources: - $ref: "#/components/schemas/IoCScoreEffect" - malicious_sources: - description: Threat intelligence sources that flagged this indicator as malicious. + non_datadog_creator: + $ref: "#/components/schemas/IncidentNonDatadogCreator" + notification_handles: + description: Notification handles that are notified of the incident during update. items: - $ref: "#/components/schemas/IoCSource" + $ref: "#/components/schemas/IncidentNotificationHandle" nullable: true type: array - max_trust_score: - $ref: "#/components/schemas/IoCScoreEffect" - score: - description: Threat score for the indicator (0-100). - format: double - type: number - signal_matches: - description: Number of security signals that matched this indicator. - format: int64 - type: integer - signal_tier: - description: Signal tier level. + public_id: + description: The monotonically increasing integer ID for the incident. + example: 1 format: int64 type: integer - suspicious_sources: - description: Threat intelligence sources that flagged this indicator as suspicious. - items: - $ref: "#/components/schemas/IoCSource" - nullable: true - type: array - tags: - description: Tags associated with the indicator. - items: - type: string - type: array - triage_state: - $ref: "#/components/schemas/IoCTriageState" - triaged_at: - description: Timestamp when the indicator was last triaged. + resolved: + description: Timestamp when the incident's state was last changed from active or stable to resolved or completed. format: date-time + nullable: true type: string - triaged_by: - description: UUID of the user who last triaged the indicator. + severity: + $ref: "#/components/schemas/IncidentSeverity" + state: + description: The state of the incident. + nullable: true + type: string + title: + description: The title of the incident that summarizes what happened. + example: "A test incident title" + type: string + visibility: + description: The incident visibility status. + nullable: true type: string + required: + - title type: object - IoCIndicatorDetailed: - description: An indicator of compromise with extended context from your environment. + IncidentImportResponseData: + description: Incident data from an import response. properties: - additional_data: - additionalProperties: {} - description: Additional domain-specific context from threat intelligence sources. - type: object - as_cidr_block: - description: Autonomous system CIDR block. + attributes: + $ref: "#/components/schemas/IncidentImportResponseAttributes" + id: + description: The incident's ID. + example: "00000000-0000-0000-1234-000000000000" type: string - as_geo: - $ref: "#/components/schemas/IoCGeoLocation" - as_number: - description: Autonomous system number. + relationships: + $ref: "#/components/schemas/IncidentImportResponseRelationships" + type: + $ref: "#/components/schemas/IncidentType" + required: + - id + - type + type: object + IncidentImportResponseIncludedItem: + description: An object related to an incident that is included in the response. + oneOf: + - $ref: "#/components/schemas/IncidentUserData" + - $ref: "#/components/schemas/IncidentTypeObject" + IncidentImportResponseRelationships: + description: The incident's relationships from an import response. + properties: + attachments: + $ref: "#/components/schemas/RelationshipToIncidentAttachment" + commander_user: + $ref: "#/components/schemas/NullableRelationshipToUser" + created_by_user: + $ref: "#/components/schemas/RelationshipToUser" + declared_by_user: + $ref: "#/components/schemas/RelationshipToUser" + impacts: + $ref: "#/components/schemas/RelationshipToIncidentImpacts" + incident_type: + $ref: "#/components/schemas/RelationshipToIncidentType" + integrations: + $ref: "#/components/schemas/RelationshipToIncidentIntegrationMetadatas" + last_modified_by_user: + $ref: "#/components/schemas/RelationshipToUser" + responders: + $ref: "#/components/schemas/RelationshipToIncidentResponders" + user_defined_fields: + $ref: "#/components/schemas/RelationshipToIncidentUserDefinedFields" + type: object + IncidentImportVisibility: + default: organization + description: The visibility of the incident. + enum: + - organization + - private + example: organization + type: string + x-enum-varnames: + - ORGANIZATION + - PRIVATE + IncidentIntegrationMetadataAttributes: + description: Incident integration metadata's attributes for a create request. + properties: + created: + description: Timestamp when the incident todo was created. + format: date-time + readOnly: true type: string - as_organization: - description: Autonomous system organization name. + incident_id: + description: UUID of the incident this integration metadata is connected to. + example: "00000000-aaaa-0000-0000-000000000000" type: string - as_type: - description: Autonomous system type. + integration_type: + description: |- + A number indicating the type of integration this metadata is for. 1 indicates Slack; + 7 indicates Microsoft Teams; + 8 indicates Jira. + example: 1 + format: int32 + maximum: 100 + type: integer + metadata: + $ref: "#/components/schemas/IncidentIntegrationMetadataMetadata" + modified: + description: Timestamp when the incident todo was last modified. + format: date-time + readOnly: true type: string - benign_sources: - description: Threat intelligence sources that flagged this indicator as benign. - items: - $ref: "#/components/schemas/IoCSource" - nullable: true - type: array - categories: - description: Threat categories associated with the indicator. + status: + description: |- + A number indicating the status of this integration metadata. 0 indicates unknown; + 1 indicates pending; 2 indicates complete; 3 indicates manually created; + 4 indicates manually updated; 5 indicates failed. + format: int32 + maximum: 5 + type: integer + required: + - integration_type + - metadata + type: object + IncidentIntegrationMetadataCreateData: + description: Incident integration metadata data for a create request. + properties: + attributes: + $ref: "#/components/schemas/IncidentIntegrationMetadataAttributes" + type: + $ref: "#/components/schemas/IncidentIntegrationMetadataType" + required: + - type + - attributes + type: object + IncidentIntegrationMetadataCreateRequest: + description: Create request for an incident integration metadata. + properties: + data: + $ref: "#/components/schemas/IncidentIntegrationMetadataCreateData" + required: + - data + type: object + IncidentIntegrationMetadataListResponse: + description: Response with a list of incident integration metadata. + properties: + data: + description: An array of incident integration metadata. items: - type: string + $ref: "#/components/schemas/IncidentIntegrationMetadataResponseData" type: array - critical_assets: - description: Critical assets associated with this indicator. + included: + description: Included related resources that the user requested. items: - type: string + $ref: "#/components/schemas/IncidentIntegrationMetadataResponseIncludedItem" + readOnly: true type: array - first_seen: - description: Timestamp when the indicator was first seen. - format: date-time - type: string - hosts: - description: Hosts associated with this indicator. + meta: + $ref: "#/components/schemas/IncidentResponseMeta" + required: + - data + type: object + IncidentIntegrationMetadataMetadata: + description: Incident integration metadata's metadata attribute. + oneOf: + - $ref: "#/components/schemas/SlackIntegrationMetadata" + - $ref: "#/components/schemas/JiraIntegrationMetadata" + - $ref: "#/components/schemas/MSTeamsIntegrationMetadata" + IncidentIntegrationMetadataPatchData: + description: Incident integration metadata data for a patch request. + properties: + attributes: + $ref: "#/components/schemas/IncidentIntegrationMetadataAttributes" + type: + $ref: "#/components/schemas/IncidentIntegrationMetadataType" + required: + - type + - attributes + type: object + IncidentIntegrationMetadataPatchRequest: + description: Patch request for an incident integration metadata. + properties: + data: + $ref: "#/components/schemas/IncidentIntegrationMetadataPatchData" + required: + - data + type: object + IncidentIntegrationMetadataResponse: + description: Response with an incident integration metadata. + properties: + data: + $ref: "#/components/schemas/IncidentIntegrationMetadataResponseData" + included: + description: Included related resources that the user requested. items: - type: string + $ref: "#/components/schemas/IncidentIntegrationMetadataResponseIncludedItem" + readOnly: true type: array + required: + - data + type: object + IncidentIntegrationMetadataResponseData: + description: Incident integration metadata from a response. + properties: + attributes: + $ref: "#/components/schemas/IncidentIntegrationMetadataAttributes" id: - description: Unique identifier for the indicator. + description: The incident integration metadata's ID. + example: "00000000-0000-0000-1234-000000000000" type: string - indicator: - description: The indicator value (for example, an IP address or domain). + relationships: + $ref: "#/components/schemas/IncidentIntegrationRelationships" + type: + $ref: "#/components/schemas/IncidentIntegrationMetadataType" + required: + - id + - type + type: object + IncidentIntegrationMetadataResponseIncludedItem: + description: An object related to an incident integration metadata that is included in the response. + oneOf: + - $ref: "#/components/schemas/User" + IncidentIntegrationMetadataType: + default: incident_integrations + description: Integration metadata resource type. + enum: + - incident_integrations + example: incident_integrations + type: string + x-enum-varnames: + - INCIDENT_INTEGRATIONS + IncidentIntegrationRelationships: + description: The incident's integration relationships from a response. + properties: + created_by_user: + $ref: "#/components/schemas/RelationshipToUser" + last_modified_by_user: + $ref: "#/components/schemas/RelationshipToUser" + type: object + IncidentNonDatadogCreator: + description: Incident's non Datadog creator. + nullable: true + properties: + image_48_px: + description: Non Datadog creator `48px` image. type: string - indicator_type: - description: Type of indicator (for example, IP address or domain). + name: + description: Non Datadog creator name. type: string - last_seen: - description: Timestamp when the indicator was last seen. - format: date-time + type: object + IncidentNotificationHandle: + description: A notification handle that will be notified at incident creation. + properties: + display_name: + description: The name of the notified handle. + example: Jane Doe type: string - log_matches: - description: Number of logs that matched this indicator. - format: int64 - type: integer - log_sources: - description: Log sources where this indicator was observed. + handle: + description: The handle used for the notification. This includes an email address, Slack channel, or workflow. + example: "@test.user@test.com" + type: string + type: object + IncidentNotificationRule: + description: Response with a notification rule. + properties: + data: + $ref: "#/components/schemas/IncidentNotificationRuleResponseData" + included: + description: Related objects that are included in the response. items: - type: string + $ref: "#/components/schemas/IncidentNotificationRuleIncludedItems" type: array - m_as_type: - $ref: "#/components/schemas/IoCScoreEffect" - m_persistence: - $ref: "#/components/schemas/IoCScoreEffect" - m_signal: - $ref: "#/components/schemas/IoCScoreEffect" - m_sources: - $ref: "#/components/schemas/IoCScoreEffect" - malicious_sources: - description: Threat intelligence sources that flagged this indicator as malicious. + required: + - data + type: object + IncidentNotificationRuleArray: + description: Response with notification rules. + properties: + data: + description: The `NotificationRuleArray` `data`. items: - $ref: "#/components/schemas/IoCSource" - nullable: true + $ref: "#/components/schemas/IncidentNotificationRuleResponseData" type: array - max_trust_score: - $ref: "#/components/schemas/IoCScoreEffect" - score: - description: Threat score for the indicator (0-100). - format: double - type: number - services: - description: Services where this indicator was observed. + included: + description: Related objects that are included in the response. items: - type: string + $ref: "#/components/schemas/IncidentNotificationRuleIncludedItems" type: array - signal_matches: - description: Number of security signals that matched this indicator. + meta: + $ref: "#/components/schemas/IncidentNotificationRuleArrayMeta" + required: + - data + type: object + IncidentNotificationRuleArrayMeta: + description: Response metadata. + properties: + pagination: + $ref: "#/components/schemas/IncidentNotificationRuleArrayMetaPage" + type: object + IncidentNotificationRuleArrayMetaPage: + description: Pagination metadata. + properties: + next_offset: + description: The offset for the next page of results. + example: 15 format: int64 type: integer - signal_severity: - description: Breakdown of security signals by severity. - items: - $ref: "#/components/schemas/IoCSignalSeverityCount" - type: array - signal_tier: - description: Signal tier level. + offset: + description: The current offset in the results. + example: 0 format: int64 type: integer - suspicious_sources: - description: Threat intelligence sources that flagged this indicator as suspicious. - items: - $ref: "#/components/schemas/IoCSource" - nullable: true - type: array - tags: - description: Tags associated with the indicator. - items: - type: string - type: array - triage_history: - description: Full triage history timeline. Returned only when `include_triage_history` is true. - items: - $ref: "#/components/schemas/IoCTriageEvent" - type: array - triage_state: - $ref: "#/components/schemas/IoCTriageState" - triaged_at: - description: Timestamp when the indicator was last triaged. - format: date-time - type: string - triaged_by: - description: UUID of the user who last triaged the indicator. - type: string - users: - additionalProperties: - description: List of user identifiers in this category. - items: - type: string - type: array - description: Users associated with this indicator, grouped by category. - type: object - type: object - IoCScoreEffect: - description: Effect of a scoring factor on the indicator's threat score. - enum: - - RAISE_SCORE - - LOWER_SCORE - - NO_EFFECT - type: string - x-enum-varnames: - - RAISE_SCORE - - LOWER_SCORE - - NO_EFFECT - IoCSignalSeverityCount: - description: Count of security signals by severity level. - properties: - count: - description: Number of signals at this severity level. + size: + description: The number of results returned per page. + example: 15 format: int64 type: integer - severity: - description: Severity level (for example, critical, high, medium, low, info). - type: string type: object - IoCSource: - description: A threat intelligence source that has flagged an indicator. + IncidentNotificationRuleAttributes: + description: The notification rule's attributes. properties: - name: - description: Name of the threat intelligence source. + conditions: + $ref: "#/components/schemas/IncidentNotificationRuleConditions" + created: + description: Timestamp when the notification rule was created. + example: "2025-01-15T10:30:00Z" + format: date-time + readOnly: true type: string - type: object - IoCTriageEvent: - description: A single entry in an indicator's triage history timeline. - properties: - triage_state: - $ref: "#/components/schemas/IoCTriageState" - triaged_at: - description: Timestamp when this triage action occurred. + enabled: + description: Whether the notification rule is enabled. + example: true + type: boolean + handles: + $ref: "#/components/schemas/IncidentNotificationRuleHandles" + modified: + description: Timestamp when the notification rule was last modified. + example: "2025-01-15T14:45:00Z" format: date-time + readOnly: true type: string - triaged_by: - description: UUID of the user who performed this triage action. + renotify_on: + $ref: "#/components/schemas/IncidentNotificationRuleRenotifyOn" + trigger: + description: The trigger event for this notification rule. + example: "incident_created_trigger" type: string + visibility: + $ref: "#/components/schemas/IncidentNotificationRuleAttributesVisibility" + required: + - conditions + - handles + - visibility + - trigger + - enabled + - created + - modified type: object - IoCTriageState: - description: Current triage state of the indicator. - enum: - - not_reviewed - - reviewed - example: not_reviewed + IncidentNotificationRuleAttributesVisibility: + description: The visibility of the notification rule. + enum: ["all", "organization", "private"] + example: "organization" type: string x-enum-varnames: - - NOT_REVIEWED - - REVIEWED - IoCTriageWriteRequest: - description: Request body for creating or updating an indicator triage state. + - ALL + - ORGANIZATION + - PRIVATE + IncidentNotificationRuleConditions: + description: The conditions that trigger this notification rule. + example: [{"field": "severity", "values": ["SEV-1", "SEV-2"]}] + items: + $ref: "#/components/schemas/IncidentNotificationRuleConditionsItems" + type: array + IncidentNotificationRuleConditionsItems: + description: A condition that must be met to trigger the notification rule. properties: - data: - $ref: "#/components/schemas/IoCTriageWriteRequestData" + field: + description: The incident field to evaluate + example: "severity" + type: string + values: + description: The value(s) to compare against. Multiple values are `ORed` together. + example: ["SEV-1", "SEV-2"] + items: + description: A value to compare against the incident field. + type: string + type: array required: - - data + - field + - values type: object - IoCTriageWriteRequestAttributes: - description: Attributes for setting an indicator's triage state. + IncidentNotificationRuleCreateAttributes: + description: The attributes for creating a notification rule. properties: - indicator: - description: The indicator value to triage (for example, an IP address or domain). - example: "192.0.2.1" + conditions: + $ref: "#/components/schemas/IncidentNotificationRuleConditions" + enabled: + default: false + description: Whether the notification rule is enabled. + example: true + type: boolean + handles: + $ref: "#/components/schemas/IncidentNotificationRuleHandles" + renotify_on: + $ref: "#/components/schemas/IncidentNotificationRuleRenotifyOn" + trigger: + description: The trigger event for this notification rule. + example: "incident_created_trigger" type: string - triage_state: - $ref: "#/components/schemas/IoCTriageState" + visibility: + $ref: "#/components/schemas/IncidentNotificationRuleCreateAttributesVisibility" required: - - indicator - - triage_state + - conditions + - handles + - trigger type: object - IoCTriageWriteRequestData: - description: Data object for the triage write request. + IncidentNotificationRuleCreateAttributesVisibility: + description: The visibility of the notification rule. + enum: ["all", "organization", "private"] + example: "organization" + type: string + x-enum-varnames: + - ALL + - ORGANIZATION + - PRIVATE + IncidentNotificationRuleCreateData: + description: Notification rule data for a create request. properties: attributes: - $ref: "#/components/schemas/IoCTriageWriteRequestAttributes" + $ref: "#/components/schemas/IncidentNotificationRuleCreateAttributes" + relationships: + $ref: "#/components/schemas/IncidentNotificationRuleCreateDataRelationships" type: - default: ioc_triage_state - description: Triage state resource type. - example: ioc_triage_state - type: string + $ref: "#/components/schemas/IncidentNotificationRuleType" required: - type - attributes type: object - IoCTriageWriteResponse: - description: Response for the create indicator triage state endpoint. + IncidentNotificationRuleCreateDataRelationships: + description: The definition of `NotificationRuleCreateDataRelationships` object. properties: - data: - $ref: "#/components/schemas/IoCTriageWriteResponseData" + incident_type: + $ref: "#/components/schemas/RelationshipToIncidentType" + notification_template: + $ref: "#/components/schemas/RelationshipToIncidentNotificationTemplate" type: object - IoCTriageWriteResponseAttributes: - description: Attributes of a created or updated triage state. + IncidentNotificationRuleHandles: + description: The notification handles (targets) for this rule. + example: ["@team-email@company.com", "@slack-channel"] + items: + description: A notification handle (email, Slack channel, etc.). + type: string + type: array + IncidentNotificationRuleIncludedItems: + description: Objects related to a notification rule. + oneOf: + - $ref: "#/components/schemas/User" + - $ref: "#/components/schemas/IncidentTypeObject" + - $ref: "#/components/schemas/IncidentNotificationTemplateObject" + IncidentNotificationRuleRelationships: + description: The notification rule's resource relationships. properties: - created_at: - description: Timestamp when the triage record was created. - format: date-time - type: string - indicator: - description: The indicator value that was triaged. - type: string - triage_state: - $ref: "#/components/schemas/IoCTriageState" - triaged_at: - description: Timestamp when the triage state was set. - format: date-time - type: string - triaged_by: - description: UUID of the user who set the triage state. - type: string + created_by_user: + $ref: "#/components/schemas/RelationshipToUser" + incident_type: + $ref: "#/components/schemas/RelationshipToIncidentType" + last_modified_by_user: + $ref: "#/components/schemas/RelationshipToUser" + notification_template: + $ref: "#/components/schemas/RelationshipToIncidentNotificationTemplate" type: object - IoCTriageWriteResponseData: - description: Data object of the triage write response. + IncidentNotificationRuleRenotifyOn: + description: List of incident fields that trigger re-notification when changed. + example: ["status", "severity"] + items: + description: An incident field name. + type: string + type: array + IncidentNotificationRuleResponseData: + description: Notification rule data from a response. properties: attributes: - $ref: "#/components/schemas/IoCTriageWriteResponseAttributes" + $ref: "#/components/schemas/IncidentNotificationRuleAttributes" id: - description: Unique identifier for the triage state record. + description: The unique identifier of the notification rule. + example: "00000000-0000-0000-0000-000000000001" + format: uuid type: string + relationships: + $ref: "#/components/schemas/IncidentNotificationRuleRelationships" type: - default: ioc_triage_state - description: Triage state resource type. - type: string + $ref: "#/components/schemas/IncidentNotificationRuleType" + required: + - id + - type type: object - Issue: - description: The issue matching the request. + IncidentNotificationRuleType: + description: Notification rules resource type. + enum: + - incident_notification_rules + example: incident_notification_rules + type: string + x-enum-varnames: + - INCIDENT_NOTIFICATION_RULES + IncidentNotificationRuleUpdateData: + description: Notification rule data for an update request. properties: attributes: - $ref: "#/components/schemas/IssueAttributes" + $ref: "#/components/schemas/IncidentNotificationRuleCreateAttributes" id: - description: Issue identifier. - example: "c1726a66-1f64-11ee-b338-da7ad0900002" + description: The unique identifier of the notification rule. + example: "00000000-0000-0000-0000-000000000001" + format: uuid type: string relationships: - $ref: "#/components/schemas/IssueRelationships" + $ref: "#/components/schemas/IncidentNotificationRuleCreateDataRelationships" type: - $ref: "#/components/schemas/IssueType" + $ref: "#/components/schemas/IncidentNotificationRuleType" required: - id - type - attributes type: object - IssueAssigneeRelationship: - description: Relationship between the issue and assignee. + IncidentNotificationTemplate: + description: Response with a notification template. properties: data: - $ref: "#/components/schemas/IssueUserReference" + $ref: "#/components/schemas/IncidentNotificationTemplateResponseData" + included: + description: Related objects that are included in the response. + items: + $ref: "#/components/schemas/IncidentNotificationTemplateIncludedItems" + type: array required: - data type: object - IssueAttributes: - description: Object containing the information of an issue. + IncidentNotificationTemplateArray: + description: Response with notification templates. properties: - error_message: - description: Error message associated with the issue. - example: "object of type 'NoneType' has no len()" - type: string - error_type: - description: Type of the error that matches the issue. - example: "builtins.TypeError" - type: string - file_path: - description: Path of the file where the issue occurred. - example: "/django-email/conduit/apps/core/utils.py" - type: string - first_seen: - description: Timestamp of the first seen error in milliseconds since the Unix epoch. - example: 1671612804001 - format: int64 - type: integer - first_seen_version: - description: The application version (for example, git commit hash) where the issue was first observed. - example: "aaf65cd0" - type: string - function_name: - description: Name of the function where the issue occurred. - example: "filter_forbidden_tags" - type: string - is_crash: - description: Error is a crash. - example: false - type: boolean - languages: - description: Array of programming languages associated with the issue. - example: ["PYTHON", "GO"] + data: + description: The `NotificationTemplateArray` `data`. items: - $ref: "#/components/schemas/IssueLanguage" + $ref: "#/components/schemas/IncidentNotificationTemplateResponseData" type: array - last_seen: - description: Timestamp of the last seen error in milliseconds since the Unix epoch. - example: 1671620003100 + included: + description: Related objects that are included in the response. + items: + $ref: "#/components/schemas/IncidentNotificationTemplateIncludedItems" + type: array + meta: + $ref: "#/components/schemas/IncidentNotificationTemplateArrayMeta" + required: + - data + type: object + IncidentNotificationTemplateArrayMeta: + description: Response metadata. + properties: + page: + $ref: "#/components/schemas/IncidentNotificationTemplateArrayMetaPage" + type: object + IncidentNotificationTemplateArrayMetaPage: + description: Pagination metadata. + properties: + total_count: + description: Total number of notification templates. + example: 42 + format: int64 + type: integer + total_filtered_count: + description: Total number of notification templates matching the filter. + example: 15 format: int64 type: integer - last_seen_version: - description: The application version (for example, git commit hash) where the issue was last observed. - example: "b6199f80" - type: string - platform: - $ref: "#/components/schemas/IssuePlatform" - regression: - $ref: "#/components/schemas/IssueRegression" - service: - description: Service name. - example: "email-api-py" - type: string - state: - $ref: "#/components/schemas/IssueState" type: object - IssueCase: - description: The case attached to the issue. + IncidentNotificationTemplateAttributes: + description: The notification template's attributes. properties: - attributes: - $ref: "#/components/schemas/IssueCaseAttributes" - id: - description: Case identifier. - example: "2841440d-e780-4fe2-96cd-6a8c1d194da5" + category: + description: The category of the notification template. + example: "alert" type: string - relationships: - $ref: "#/components/schemas/IssueCaseRelationships" - type: - $ref: "#/components/schemas/IssueCaseResourceType" - required: - - id - - type - - attributes - type: object - IssueCaseAttributes: - description: Object containing the information of a case. - properties: - archived_at: - description: Timestamp of when the case was archived. - example: "2025-01-01T00:00:00Z" - format: date-time + content: + description: The content body of the notification template. + example: "An incident has been declared.\n\nTitle: {{incident.title}}\nSeverity: {{incident.severity}}\nAffected Services: {{incident.services}}\nStatus: {{incident.state}}\n\nPlease join the incident channel for updates." type: string - closed_at: - description: Timestamp of when the case was closed. - example: "2025-01-01T00:00:00Z" + created: + description: Timestamp when the notification template was created. + example: "2025-01-15T10:30:00Z" format: date-time + readOnly: true type: string - created_at: - description: Timestamp of when the case was created. - example: "2025-01-01T00:00:00Z" + modified: + description: Timestamp when the notification template was last modified. + example: "2025-01-15T14:45:00Z" format: date-time + readOnly: true type: string - creation_source: - description: Source of the case creation. - example: "ERROR_TRACKING" - type: string - description: - description: Description of the case. + name: + description: The name of the notification template. + example: "Incident Alert Template" type: string - due_date: - description: Due date of the case. - example: "2025-01-01" + subject: + description: The subject line of the notification template. + example: "{{incident.severity}} Incident: {{incident.title}}" type: string - insights: - description: Insights of the case. - items: - $ref: "#/components/schemas/IssueCaseInsight" - type: array - jira_issue: - $ref: "#/components/schemas/IssueCaseJiraIssue" - key: - description: Key of the case. - example: "ET-123" + required: + - name + - subject + - content + - category + - created + - modified + type: object + IncidentNotificationTemplateCreateAttributes: + description: The attributes for creating a notification template. + properties: + category: + description: The category of the notification template. + example: "alert" type: string - linear_issue: - $ref: "#/components/schemas/IssueCaseLinearIssue" - modified_at: - description: Timestamp of when the case was last modified. - example: "2025-01-01T00:00:00Z" - format: date-time + content: + description: The content body of the notification template. + example: "An incident has been declared.\n\nTitle: {{incident.title}}\nSeverity: {{incident.severity}}\nAffected Services: {{incident.services}}\nStatus: {{incident.state}}\n\nPlease join the incident channel for updates." type: string - priority: - $ref: "#/components/schemas/CasePriority" - status: - $ref: "#/components/schemas/CaseStatus" - title: - description: Title of the case. - example: "Error: HTTP error" + name: + description: The name of the notification template. + example: "Incident Alert Template" type: string - type: - description: Type of the case. - example: "ERROR_TRACKING_ISSUE" + subject: + description: The subject line of the notification template. + example: "{{incident.severity}} Incident: {{incident.title}}" type: string + required: + - name + - subject + - content + - category type: object - IssueCaseInsight: - description: Insight of the case. + IncidentNotificationTemplateCreateData: + description: Notification template data for a create request. properties: - ref: - description: Reference of the insight. - example: "/error-tracking?issueId=2841440d-e780-4fe2-96cd-6a8c1d194da5" - type: string - resource_id: - description: Insight identifier. - example: "2841440d-e780-4fe2-96cd-6a8c1d194da5" - type: string + attributes: + $ref: "#/components/schemas/IncidentNotificationTemplateCreateAttributes" + relationships: + $ref: "#/components/schemas/IncidentNotificationTemplateCreateDataRelationships" type: - description: Type of the insight. - example: "ERROR_TRACKING" - type: string + $ref: "#/components/schemas/IncidentNotificationTemplateType" + required: + - type + - attributes type: object - IssueCaseJiraIssue: - description: Jira issue of the case. + IncidentNotificationTemplateCreateDataRelationships: + description: The definition of `NotificationTemplateCreateDataRelationships` object. properties: - error_message: - description: Error message set when the Jira issue creation fails. - example: "" - type: string - result: - $ref: "#/components/schemas/IssueCaseJiraIssueResult" - status: - description: Creation status of the Jira issue. - example: "COMPLETED" - type: string + incident_type: + $ref: "#/components/schemas/RelationshipToIncidentType" type: object - IssueCaseJiraIssueResult: - description: Contains the identifiers and URL for a successfully created Jira issue. + IncidentNotificationTemplateIncludedItems: + description: Objects related to a notification template. + oneOf: + - $ref: "#/components/schemas/User" + - $ref: "#/components/schemas/IncidentTypeObject" + IncidentNotificationTemplateObject: + description: A notification template object for inclusion in other resources. properties: - account_id: - description: Jira account identifier. - example: "abcd1234-5678-90ab-cdef-1234567890ab" + attributes: + $ref: "#/components/schemas/IncidentNotificationTemplateAttributes" + id: + description: The unique identifier of the notification template. + example: "00000000-0000-0000-0000-000000000001" + format: uuid type: string - issue_id: - description: Jira issue identifier. - example: "1904866" + relationships: + $ref: "#/components/schemas/IncidentNotificationTemplateRelationships" + type: + $ref: "#/components/schemas/IncidentNotificationTemplateType" + required: + - id + - type + type: object + IncidentNotificationTemplateRelationships: + description: The notification template's resource relationships. + properties: + created_by_user: + $ref: "#/components/schemas/RelationshipToUser" + incident_type: + $ref: "#/components/schemas/RelationshipToIncidentType" + last_modified_by_user: + $ref: "#/components/schemas/RelationshipToUser" + type: object + IncidentNotificationTemplateResponseData: + description: Notification template data from a response. + properties: + attributes: + $ref: "#/components/schemas/IncidentNotificationTemplateAttributes" + id: + description: The unique identifier of the notification template. + example: "00000000-0000-0000-0000-000000000001" + format: uuid type: string - issue_key: - description: Jira issue key. - example: "ET-123" + relationships: + $ref: "#/components/schemas/IncidentNotificationTemplateRelationships" + type: + $ref: "#/components/schemas/IncidentNotificationTemplateType" + required: + - id + - type + type: object + IncidentNotificationTemplateType: + description: Notification templates resource type. + enum: + - notification_templates + example: notification_templates + type: string + x-enum-varnames: + - NOTIFICATION_TEMPLATES + IncidentNotificationTemplateUpdateAttributes: + description: The attributes to update on a notification template. + properties: + category: + description: The category of the notification template. + example: "update" type: string - issue_url: - description: Jira issue URL. - example: "https://your-jira-instance.atlassian.net/browse/ET-123" + content: + description: The content body of the notification template. + example: "Incident Status Update:\n\nTitle: {{incident.title}}\nNew Status: {{incident.state}}\nSeverity: {{incident.severity}}\nServices: {{incident.services}}\nCommander: {{incident.commander}}\n\nFor more details, visit the incident page." type: string - project_id: - description: Jira project identifier. - example: "10001" + name: + description: The name of the notification template. + example: "Incident Status Update Template" type: string - project_key: - description: Jira project key. - example: "ET" + subject: + description: The subject line of the notification template. + example: "Incident Update: {{incident.title}} - {{incident.state}}" type: string type: object - IssueCaseLinearIssue: - description: Linear issue of the case. + IncidentNotificationTemplateUpdateData: + description: Notification template data for an update request. properties: - error_message: - description: Error message set when the Linear issue creation fails. - example: "" - type: string - result: - $ref: "#/components/schemas/IssueCaseLinearIssueResult" - status: - description: Creation status of the Linear issue. - example: "COMPLETED" + attributes: + $ref: "#/components/schemas/IncidentNotificationTemplateUpdateAttributes" + id: + description: The unique identifier of the notification template. + example: "00000000-0000-0000-0000-000000000001" + format: uuid type: string + type: + $ref: "#/components/schemas/IncidentNotificationTemplateType" + required: + - id + - type type: object - IssueCaseLinearIssueResult: - description: Contains the identifiers and URL for a successfully created Linear issue. + IncidentOnCallPageDataAttributesRequest: + description: Attributes for linking a page to an incident. properties: - account_id: - description: Linear account identifier. - example: "abcd1234-5678-90ab-cdef-1234567890ab" - type: string - issue_id: - description: Linear issue identifier. - example: "a1b2c3d4-5678-90ab-cdef-1234567890ab" - type: string - issue_key: - description: Linear issue key. - example: "ENG-123" - type: string - issue_url: - description: Linear issue URL. - example: "https://linear.app/your-workspace/issue/ENG-123" + key: + description: The key of the on-call page. + example: PAGE-12345 type: string + page_target: + $ref: "#/components/schemas/IncidentOnCallPageTarget" team_id: - description: Linear team identifier. - example: "f1e2d3c4-5678-90ab-cdef-1234567890ab" + description: The team ID associated with the page (deprecated, use page_target instead). + example: team-abc-123 type: string type: object - IssueCaseReference: - description: The case the issue is attached to. + IncidentOnCallPageDataRequest: + description: On-call page data in a link request. properties: + attributes: + $ref: "#/components/schemas/IncidentOnCallPageDataAttributesRequest" id: - description: Case identifier. - example: "2841440d-e780-4fe2-96cd-6a8c1d194da5" + description: The ID of the on-call page to link. + example: PAGE-12345 type: string type: - $ref: "#/components/schemas/IssueCaseResourceType" + $ref: "#/components/schemas/IncidentOnCallPageType" required: - id - type type: object - IssueCaseRelationship: - description: Relationship between the issue and case. + IncidentOnCallPageLinkRequest: + description: Request payload for linking an on-call page to an incident. properties: data: - $ref: "#/components/schemas/IssueCaseReference" + $ref: "#/components/schemas/IncidentOnCallPageDataRequest" required: - data type: object - IssueCaseRelationships: - description: Resources related to a case. - properties: - assignee: - $ref: "#/components/schemas/NullableUserRelationship" - created_by: - $ref: "#/components/schemas/NullableUserRelationship" - modified_by: - $ref: "#/components/schemas/NullableUserRelationship" - project: - $ref: "#/components/schemas/ProjectRelationship" - type: object - IssueCaseResourceType: - description: Type of the object. - enum: ["case"] - example: "case" - type: string - x-enum-varnames: - - CASE - IssueIncluded: - description: An array of related resources, returned when the `include` query parameter is used. - oneOf: - - $ref: "#/components/schemas/IssueCase" - - $ref: "#/components/schemas/IssueUser" - - $ref: "#/components/schemas/IssueTeam" - IssueLanguage: - description: Programming language associated with the issue. - enum: - - BRIGHTSCRIPT - - C - - C_PLUS_PLUS - - C_SHARP - - CLOJURE - - DOT_NET - - ELIXIR - - ERLANG - - GO - - GROOVY - - HASKELL - - HCL - - JAVA - - JAVASCRIPT - - JVM - - KOTLIN - - OBJECTIVE_C - - PERL - - PHP - - PYTHON - - RUBY - - RUST - - SCALA - - SWIFT - - TERRAFORM - - TYPESCRIPT - - UNKNOWN - example: "PYTHON" - type: string - x-enum-varnames: - - BRIGHTSCRIPT - - C - - C_PLUS_PLUS - - C_SHARP - - CLOJURE - - DOT_NET - - ELIXIR - - ERLANG - - GO - - GROOVY - - HASKELL - - HCL - - JAVA - - JAVASCRIPT - - JVM - - KOTLIN - - OBJECTIVE_C - - PERL - - PHP - - PYTHON - - RUBY - - RUST - - SCALA - - SWIFT - - TERRAFORM - - TYPESCRIPT - - UNKNOWN - IssuePlatform: - description: Platform associated with the issue. - enum: - - ANDROID - - BACKEND - - BROWSER - - FLUTTER - - IOS - - REACT_NATIVE - - ROKU - - UNKNOWN - example: "BACKEND" - type: string - x-enum-varnames: - - ANDROID - - BACKEND - - BROWSER - - FLUTTER - - IOS - - REACT_NATIVE - - ROKU - - UNKNOWN - IssueReference: - description: The issue the search result corresponds to. + IncidentOnCallPageTarget: + description: The target of an on-call page. properties: - id: - description: Issue identifier. - example: "c1726a66-1f64-11ee-b338-da7ad0900002" + identifier: + description: The identifier of the page target. + example: my-oncall-team type: string type: - $ref: "#/components/schemas/IssueType" + description: The type of the page target. + example: team_handle + type: string required: - - id - type + - identifier type: object - IssueRegression: - description: Regression information for an issue that was previously resolved and then reopened. + IncidentOnCallPageType: + description: On-call page resource type. + enum: + - page + example: page + type: string + x-enum-varnames: + - PAGE + IncidentOrgSettingsDataAttributesResponse: + description: Attributes of an incident org settings resource in a response. properties: - regressed_at: - description: Timestamp when the issue was reopened (regressed). - example: "2024-01-03T08:00:00Z" + created: + description: Timestamp when the settings were created. + example: "2024-01-01T00:00:00.000Z" format: date-time type: string - regressed_at_version: - description: Application version where the regression was observed. - example: "v2.5.2" - type: string - resolved_at: - description: Timestamp when the issue was resolved before the regression. - example: "2024-01-01T10:00:00Z" + modified: + description: Timestamp when the settings were last modified. + example: "2024-01-01T00:00:00.000Z" format: date-time type: string + settings: + $ref: "#/components/schemas/IncidentOrgSettingsMeta" required: - - resolved_at - - regressed_at - type: object - IssueRelationships: - description: Relationship between the issue and an assignee, case and/or teams. - properties: - assignee: - $ref: "#/components/schemas/IssueAssigneeRelationship" - case: - $ref: "#/components/schemas/IssueCaseRelationship" - team_owners: - $ref: "#/components/schemas/IssueTeamOwnersRelationship" - type: object - IssueResponse: - description: Response containing error tracking issue data. - properties: - data: - $ref: "#/components/schemas/Issue" - included: - description: Array of resources related to the issue. - items: - $ref: "#/components/schemas/IssueIncluded" - type: array + - created + - modified + - settings type: object - IssueState: - description: State of the issue - enum: - - OPEN - - ACKNOWLEDGED - - RESOLVED - - IGNORED - - EXCLUDED - example: "RESOLVED" - type: string - x-enum-varnames: - - OPEN - - ACKNOWLEDGED - - RESOLVED - - IGNORED - - EXCLUDED - IssueTeam: - description: A team that owns an issue. + IncidentOrgSettingsDataResponse: + description: Incident org settings data in a response. properties: attributes: - $ref: "#/components/schemas/IssueTeamAttributes" + $ref: "#/components/schemas/IncidentOrgSettingsDataAttributesResponse" id: - description: Team identifier. - example: "221b0179-6447-4d03-91c3-3ca98bf60e8a" + description: The org settings identifier. + example: 00000000-0000-0000-0000-000000000000 + format: uuid type: string + relationships: + $ref: "#/components/schemas/IncidentOrgSettingsRelationships" type: - $ref: "#/components/schemas/IssueTeamType" + $ref: "#/components/schemas/IncidentOrgSettingsType" required: - id - type - attributes type: object - IssueTeamAttributes: - description: Object containing the information of a team. - properties: - handle: - description: The team's identifier. - example: "team-handle" - type: string - name: - description: The name of the team. - example: "Team Name" - type: string - summary: - description: A brief summary of the team, derived from its description. - example: "This is a team." - type: string - type: object - IssueTeamOwnersRelationship: - description: Relationship between the issue and teams. + IncidentOrgSettingsListResponse: + description: Response with a list of incident org settings resources. properties: data: - description: Array of teams that are owners of the issue. + description: List of incident org settings resources. items: - $ref: "#/components/schemas/IssueTeamReference" + $ref: "#/components/schemas/IncidentOrgSettingsDataResponse" type: array required: - data type: object - IssueTeamReference: - description: A team that owns the issue. + IncidentOrgSettingsMeta: + additionalProperties: {} + description: The settings configuration for an incident org settings resource. + example: + allow_anonymous_incident_declaration: false + allow_guest_incident_declaration: false + pagerduty_paging: true + private_incidents_by_default: false + type: object + IncidentOrgSettingsRelationships: + description: Relationships for an incident org settings resource. properties: - id: - description: Team identifier. - example: "221b0179-6447-4d03-91c3-3ca98bf60e8a" - type: string - type: - $ref: "#/components/schemas/IssueTeamType" - required: - - id - - type + incident_type: + $ref: "#/components/schemas/RelationshipToIncidentType" type: object - IssueTeamType: - description: Type of the object. - enum: ["team"] - example: "team" - type: string - x-enum-varnames: - - TEAM - IssueType: - description: Type of the object. - enum: ["issue"] - example: "issue" - type: string - x-enum-varnames: - - ISSUE - IssueUpdateAssigneeRequest: - description: Update issue assignee request payload. + IncidentOrgSettingsResponse: + description: Response with a single incident org settings resource. properties: data: - $ref: "#/components/schemas/IssueUpdateAssigneeRequestData" + $ref: "#/components/schemas/IncidentOrgSettingsDataResponse" required: - data type: object - IssueUpdateAssigneeRequestData: - description: Update issue assignee request. + IncidentOrgSettingsType: + description: Incident org settings resource type. + enum: + - incident_org_settings + example: incident_org_settings + type: string + x-enum-varnames: + - INCIDENT_ORG_SETTINGS + IncidentPageRoleReference: + description: A reference to an incident role for a page. properties: id: - description: User identifier. - example: "87cb11a0-278c-440a-99fe-701223c80296" + description: The role identifier. + example: 00000000-0000-0000-0000-000000000000 + format: uuid type: string type: - $ref: "#/components/schemas/IssueUpdateAssigneeRequestDataType" + $ref: "#/components/schemas/IncidentPageRoleType" required: - - id - type + - id type: object - IssueUpdateAssigneeRequestDataType: - description: Type of the object. - enum: ["assignee"] - example: "assignee" + IncidentPageRoleType: + description: The type of incident role for a page. + enum: + - incident_user_defined_roles + - incident_reserved_roles + example: incident_user_defined_roles type: string x-enum-varnames: - - ASSIGNEE - IssueUpdateStateRequest: - description: Update issue state request payload. + - INCIDENT_USER_DEFINED_ROLES + - INCIDENT_RESERVED_ROLES + IncidentPageTarget: + description: The target recipient for a page. properties: - data: - $ref: "#/components/schemas/IssueUpdateStateRequestData" + identifier: + description: The identifier of the target (handle, UUID, or user UUID). + example: my-team-handle + type: string + type: + $ref: "#/components/schemas/IncidentPageTargetType" required: - - data + - type + - identifier type: object - IssueUpdateStateRequestData: - description: Update issue state request. + IncidentPageTargetType: + description: The type of target for a page request. + enum: + - team_handle + - team_uuid + - user_uuid + example: team_uuid + type: string + x-enum-varnames: + - TEAM_HANDLE + - TEAM_UUID + - USER_UUID + IncidentPageUUIDDataResponse: + description: Page UUID data in a response. properties: - attributes: - $ref: "#/components/schemas/IssueUpdateStateRequestDataAttributes" id: - description: Issue identifier. - example: "c1726a66-1f64-11ee-b338-da7ad0900002" + description: The UUID of the created page. + example: 00000000-0000-0000-0000-000000000001 + format: uuid type: string type: - $ref: "#/components/schemas/IssueUpdateStateRequestDataType" + $ref: "#/components/schemas/IncidentPageUUIDType" required: - id - type - - attributes type: object - IssueUpdateStateRequestDataAttributes: - description: Object describing an issue state update request. + IncidentPageUUIDResponse: + description: Response with a page UUID. properties: - state: - $ref: "#/components/schemas/IssueState" + data: + $ref: "#/components/schemas/IncidentPageUUIDDataResponse" required: - - state + - data type: object - IssueUpdateStateRequestDataType: - description: Type of the object. - enum: ["error_tracking_issue"] - example: "error_tracking_issue" + IncidentPageUUIDType: + description: Resource type for a page UUID response. + enum: + - page_uuid + example: page_uuid type: string x-enum-varnames: - - ERROR_TRACKING_ISSUE - IssueUser: - description: The user to whom the issue is assigned. + - PAGE_UUID + IncidentPostmortemType: + default: incident_postmortems + description: Incident postmortem resource type. + enum: + - incident_postmortems + example: incident_postmortems + type: string + x-enum-varnames: + - INCIDENT_POSTMORTEMS + IncidentPostmortemUpdatedTrigger: + description: "Trigger a workflow when a postmortem is updated for an incident." properties: - attributes: - $ref: "#/components/schemas/IssueUserAttributes" - id: - description: User identifier. - example: "87cb11a0-278c-440a-99fe-701223c80296" + executionLimit: + $ref: "#/components/schemas/ExecutionLimit" + incidentType: + description: "The type of incident that triggers the workflow." type: string - type: - $ref: "#/components/schemas/IssueUserType" - required: - - id - - type - - attributes + tagCondition: + $ref: "#/components/schemas/IncidentCondition" type: object - IssueUserAttributes: - description: Object containing the information of a user. + IncidentPostmortemUpdatedTriggerWrapper: + description: "Schema for an incident postmortem updated trigger." properties: - email: - description: Email of the user. - example: "user@company.com" - type: string - handle: - description: Handle of the user. - example: "User Handle" - type: string - name: - description: Name of the user. - example: "User Name" - type: string + incidentPostmortemUpdatedTrigger: + $ref: "#/components/schemas/IncidentPostmortemUpdatedTrigger" + startStepNames: + $ref: "#/components/schemas/StartStepNames" + required: + - incidentPostmortemUpdatedTrigger type: object - IssueUserReference: - description: The user the issue is assigned to. + IncidentRelatedObject: + description: Object related to an incident. + enum: + - users + - attachments + type: string + x-enum-varnames: + - USERS + - ATTACHMENTS + IncidentRelationshipData: + description: Incident relationship data properties: id: - description: User identifier. - example: "87cb11a0-278c-440a-99fe-701223c80296" + description: Incident identifier + example: "00000000-0000-0000-0000-000000000000" type: string type: - $ref: "#/components/schemas/IssueUserType" + $ref: "#/components/schemas/IncidentResourceType" required: - - id - type + - id type: object - IssueUserType: - description: Type of the object - enum: ["user"] - example: "user" + IncidentResourceType: + description: Incident resource type + enum: + - incidents + example: incidents type: string x-enum-varnames: - - USER - IssuesSearchRequest: - description: Search issues request payload. + - INCIDENTS + IncidentResponderCreatedTrigger: + description: "Trigger a workflow when a responder is created for an incident." properties: - data: - $ref: "#/components/schemas/IssuesSearchRequestData" - required: - - data + executionLimit: + $ref: "#/components/schemas/ExecutionLimit" + incidentType: + description: "The type of incident that triggers the workflow." + type: string + tagCondition: + $ref: "#/components/schemas/IncidentCondition" type: object - IssuesSearchRequestData: - description: Search issues request. + IncidentResponderCreatedTriggerWrapper: + description: "Schema for an incident responder created trigger." properties: - attributes: - $ref: "#/components/schemas/IssuesSearchRequestDataAttributes" - type: - $ref: "#/components/schemas/IssuesSearchRequestDataType" + incidentResponderCreatedTrigger: + $ref: "#/components/schemas/IncidentResponderCreatedTrigger" + startStepNames: + $ref: "#/components/schemas/StartStepNames" required: - - type - - attributes + - incidentResponderCreatedTrigger type: object - IssuesSearchRequestDataAttributes: - description: Object describing a search issue request. + IncidentResponderDataAttributesResponse: + description: Attributes of an incident responder in a response. properties: - assignee_ids: - description: Filter issues by assignee IDs. Multiple values are combined with OR logic. - example: - - "00000000-0000-0000-0000-000000000001" - items: - format: uuid - type: string - maxItems: 50 - type: array - from: - description: Start date (inclusive) of the query in milliseconds since the Unix epoch. - example: 1671612804000 - format: int64 - type: integer - order_by: - $ref: "#/components/schemas/IssuesSearchRequestDataAttributesOrderBy" - persona: - $ref: "#/components/schemas/IssuesSearchRequestDataAttributesPersona" - query: - description: Search query following the event search syntax. - example: "service:orders-* AND @language:go" + created: + description: Timestamp when the responder was created. + example: "2024-01-01T00:00:00.000Z" + format: date-time type: string - states: - description: Filter issues by state. Multiple values are combined with OR logic. + external_id: + description: The external ID of the responder. example: - - "OPEN" - - "ACKNOWLEDGED" - items: - $ref: "#/components/schemas/IssueState" - maxItems: 20 - type: array - team_ids: - description: Filter issues by team IDs. Multiple values are combined with OR logic. + nullable: true + type: string + external_source: + description: The external source of the responder. example: - - "00000000-0000-0000-0000-000000000002" - items: - format: uuid - type: string - maxItems: 50 - type: array - to: - description: End date (exclusive) of the query in milliseconds since the Unix epoch. - example: 1671620004000 - format: int64 - type: integer - track: - $ref: "#/components/schemas/IssuesSearchRequestDataAttributesTrack" + nullable: true + type: string + is_billable: + description: Whether this responder counts toward billing. + example: true + type: boolean + last_active: + description: Timestamp when the responder was last active. + example: "2024-01-01T00:00:00.000Z" + format: date-time + nullable: true + type: string + meta: + additionalProperties: {} + description: Additional metadata for the responder. + nullable: true + type: object + modified: + description: Timestamp when the responder was last modified. + example: "2024-01-01T00:00:00.000Z" + format: date-time + type: string required: - - query - - from - - to + - created + - modified + - is_billable type: object - IssuesSearchRequestDataAttributesOrderBy: - description: The attribute to sort the search results by. - enum: - - TOTAL_COUNT - - FIRST_SEEN - - IMPACTED_SESSIONS - - PRIORITY - example: "IMPACTED_SESSIONS" - type: string - x-enum-varnames: - - TOTAL_COUNT - - FIRST_SEEN - - IMPACTED_SESSIONS - - PRIORITY - IssuesSearchRequestDataAttributesPersona: - description: Persona for the search. Either track(s) or persona(s) must be specified. - enum: ["ALL", "BROWSER", "MOBILE", "BACKEND"] - example: "BACKEND" - type: string - x-enum-varnames: - - ALL - - BROWSER - - MOBILE - - BACKEND - IssuesSearchRequestDataAttributesTrack: - description: Track of the events to query. Either track(s) or persona(s) must be specified. - enum: ["trace", "logs", "rum"] - example: "trace" - type: string - x-enum-varnames: - - TRACE - - LOGS - - RUM - IssuesSearchRequestDataType: - description: Type of the object. - enum: ["search_request"] - example: "search_request" - type: string - x-enum-varnames: - - SEARCH_REQUEST - IssuesSearchResponse: - description: Search issues response payload. + IncidentResponderDataRequest: + description: Incident responder data in a create request. properties: - data: - description: Array of results matching the search query. - items: - $ref: "#/components/schemas/IssuesSearchResult" - type: array - included: - description: Array of resources related to the search results. - items: - $ref: "#/components/schemas/IssuesSearchResultIncluded" - type: array + relationships: + $ref: "#/components/schemas/IncidentResponderRelationshipsRequest" + type: + $ref: "#/components/schemas/IncidentResponderType" + required: + - type + - relationships type: object - IssuesSearchResult: - description: Result matching the search query. + IncidentResponderDataResponse: + description: Incident responder data in a response. properties: attributes: - $ref: "#/components/schemas/IssuesSearchResultAttributes" + $ref: "#/components/schemas/IncidentResponderDataAttributesResponse" id: - description: Search result identifier (matches the nested issue's identifier). - example: "c1726a66-1f64-11ee-b338-da7ad0900002" + description: The responder identifier. + example: 00000000-0000-0000-0000-000000000000 + format: uuid type: string relationships: - $ref: "#/components/schemas/IssuesSearchResultRelationships" + $ref: "#/components/schemas/IncidentResponderRelationships" type: - $ref: "#/components/schemas/IssuesSearchResultType" + $ref: "#/components/schemas/IncidentResponderType" required: - id - type - attributes type: object - IssuesSearchResultAttributes: - description: Object containing the information of a search result. + IncidentResponderRelationships: + description: Relationships for an incident responder. properties: - impacted_sessions: - description: Count of sessions impacted by the issue over the queried time window. - example: 12 - format: int64 - type: integer - impacted_users: - description: Count of users impacted by the issue over the queried time window. - example: 4 - format: int64 - type: integer - total_count: - description: Total count of errors that match the issue over the queried time window. - example: 82 - format: int64 - type: integer + created_by: + $ref: "#/components/schemas/RelationshipToUser" + last_modified_by: + $ref: "#/components/schemas/RelationshipToUser" + role_assignments: + $ref: "#/components/schemas/IncidentResponderRoleAssignmentsRelationship" + user: + $ref: "#/components/schemas/NullableRelationshipToUser" type: object - IssuesSearchResultIncluded: - description: An array of related resources, returned when the `include` query parameter is used. - oneOf: - - $ref: "#/components/schemas/Issue" - - $ref: "#/components/schemas/IssueCase" - - $ref: "#/components/schemas/IssueUser" - - $ref: "#/components/schemas/IssueTeam" - IssuesSearchResultIssueRelationship: - description: Relationship between the search result and the corresponding issue. + IncidentResponderRelationshipsRequest: + description: Relationships for creating an incident responder. properties: - data: - $ref: "#/components/schemas/IssueReference" + user: + $ref: "#/components/schemas/IncidentResponderUserRelationship" required: - - data - type: object - IssuesSearchResultRelationships: - description: Relationships between the search result and other resources. - properties: - issue: - $ref: "#/components/schemas/IssuesSearchResultIssueRelationship" + - user type: object - IssuesSearchResultType: - description: Type of the object. - enum: ["error_tracking_search_result"] - example: "error_tracking_search_result" - type: string - x-enum-varnames: - - ERROR_TRACKING_SEARCH_RESULT - ItemApiPayload: - description: A single datastore item with its content and metadata. + IncidentResponderRequest: + description: Request payload for creating an incident responder. properties: data: - $ref: "#/components/schemas/ItemApiPayloadData" + $ref: "#/components/schemas/IncidentResponderDataRequest" + required: + - data type: object - ItemApiPayloadArray: - description: A collection of datastore items with pagination and schema metadata. + IncidentResponderResponse: + description: Response with a single incident responder. properties: data: - description: An array of datastore items with their content and metadata. + $ref: "#/components/schemas/IncidentResponderDataResponse" + included: + description: Included related resources. items: - $ref: "#/components/schemas/ItemApiPayloadData" - maxItems: 100 + $ref: "#/components/schemas/IncidentUserData" + readOnly: true type: array - meta: - $ref: "#/components/schemas/ItemApiPayloadMeta" - description: Metadata about the included items, including pagination info and datastore schema. required: - data type: object - ItemApiPayloadData: - description: Core data and metadata for a single datastore item. + IncidentResponderRoleAssignmentRelationshipData: + description: A single role assignment relationship data object. properties: - attributes: - $ref: "#/components/schemas/ItemApiPayloadDataAttributes" id: - description: The unique identifier of the datastore. + description: The role assignment identifier. + example: 00000000-0000-0000-0000-000000000000 + format: uuid type: string type: - $ref: "#/components/schemas/DatastoreItemsDataType" + description: The role assignment resource type. + example: incident_role_assignments + type: string required: + - id - type type: object - ItemApiPayloadDataAttributes: - description: Metadata and content of a datastore item. + IncidentResponderRoleAssignmentsRelationship: + description: Relationship to role assignments for a responder. properties: - created_at: - description: Timestamp when the item was first created. - format: date-time - type: string - modified_at: - description: Timestamp when the item was last modified. - format: date-time - type: string - org_id: - description: The ID of the organization that owns this item. - format: int64 - type: integer - primary_column_name: - $ref: "#/components/schemas/DatastoreAttributesPrimaryColumnName" - signature: - description: A unique signature identifying this item version. - type: string - store_id: - description: The unique identifier of the datastore containing this item. - type: string - value: - $ref: "#/components/schemas/ItemApiPayloadDataAttributesValue" - type: object - ItemApiPayloadDataAttributesValue: - additionalProperties: {} - description: The data content (as key-value pairs) of a datastore item. + data: + description: List of role assignment relationship data. + items: + $ref: "#/components/schemas/IncidentResponderRoleAssignmentRelationshipData" + type: array type: object - ItemApiPayloadMeta: - description: Additional metadata about a collection of datastore items, including pagination and schema information. + IncidentResponderType: + description: Incident responder resource type. + enum: + - incident_responders + example: incident_responders + type: string + x-enum-varnames: + - INCIDENT_RESPONDERS + IncidentResponderUserRelationship: + description: Relationship to a user for a responder create request. properties: - page: - $ref: "#/components/schemas/ItemApiPayloadMetaPage" - schema: - $ref: "#/components/schemas/ItemApiPayloadMetaSchema" + data: + $ref: "#/components/schemas/IncidentResponderUserRelationshipData" + required: + - data type: object - ItemApiPayloadMetaPage: - description: Pagination information for a collection of datastore items. + IncidentResponderUserRelationshipData: + description: A user relationship data object for creating a responder. properties: - hasMore: - description: Whether there are additional pages of items beyond the current page. - type: boolean - totalCount: - description: The total number of items in the datastore, ignoring any filters. - format: int64 - type: integer - totalFilteredCount: - description: The total number of items that match the current filter criteria. - format: int64 - type: integer + id: + description: The user identifier. + example: 00000000-0000-0000-0000-000000000000 + format: uuid + type: string + type: + description: The user resource type. + example: users + type: string + required: + - id + - type type: object - ItemApiPayloadMetaSchema: - description: Schema information about the datastore, including its primary key and field definitions. + IncidentRespondersResponse: + description: Response with a list of incident responders. properties: - fields: - description: An array describing the columns available in this datastore. + data: + description: List of incident responders. items: - $ref: "#/components/schemas/ItemApiPayloadMetaSchemaField" + $ref: "#/components/schemas/IncidentResponderDataResponse" type: array - primary_key: - description: The name of the primary key column for this datastore. - type: string + included: + description: Included related resources. + items: + $ref: "#/components/schemas/IncidentUserData" + readOnly: true + type: array + required: + - data type: object - ItemApiPayloadMetaSchemaField: - description: Information about a specific column in the datastore schema. + IncidentRespondersType: + description: The incident responders type. + enum: + - incident_responders + example: incident_responders + type: string + x-enum-varnames: + - INCIDENT_RESPONDERS + IncidentResponse: + description: Response with an incident. properties: - name: - description: The name of this column in the datastore. - example: "" - type: string - type: - description: The data type of this column. For example, 'string', 'number', or 'boolean'. - example: "" - type: string + data: + $ref: "#/components/schemas/IncidentResponseData" + included: + description: Included related resources that the user requested. + items: + $ref: "#/components/schemas/IncidentResponseIncludedItem" + readOnly: true + type: array required: - - name - - type + - data type: object - JSONAPIErrorItem: - description: API error response body + IncidentResponseAttributes: + additionalProperties: {} + description: The incident's attributes from a response. properties: - detail: - description: A human-readable explanation specific to this occurrence of the error. - example: Missing required attribute in body - type: string - meta: - additionalProperties: {} - description: Non-standard meta-information about the error - type: object - source: - $ref: "#/components/schemas/JSONAPIErrorItemSource" - status: - description: Status code of the response. - example: "400" - type: string - title: - description: Short human-readable summary of the error. - example: Bad Request + archived: + description: Timestamp of when the incident was archived. + format: date-time + nullable: true + readOnly: true type: string - type: object - JSONAPIErrorItemSource: - description: References to the source of the error. - properties: - header: - description: A string indicating the name of a single request header which caused the error. - example: "Authorization" + case_id: + description: The incident case id. + format: int64 + nullable: true + type: integer + created: + description: Timestamp when the incident was created. + format: date-time + readOnly: true type: string - parameter: - description: A string indicating which URI query parameter caused the error. - example: "limit" + customer_impact_duration: + description: |- + Length of the incident's customer impact in seconds. + Equals the difference between `customer_impact_start` and `customer_impact_end`. + format: int64 + readOnly: true + type: integer + customer_impact_end: + description: Timestamp when customers were no longer impacted by the incident. + format: date-time + nullable: true type: string - pointer: - description: A JSON pointer to the value in the request document that caused the error. - example: "/data/attributes/title" + customer_impact_scope: + description: A summary of the impact customers experienced during the incident. + example: "An example customer impact scope" + nullable: true type: string - type: object - JSONAPIErrorResponse: - description: API error response. - properties: - errors: - description: A list of errors. - items: - $ref: "#/components/schemas/JSONAPIErrorItem" - type: array - required: - - errors - type: object - JSSourcemapAttributes: - description: Attributes of a JavaScript source map. - properties: - absolute_path: - description: The absolute path to the minified JavaScript file. - example: /js/bundle.min.js + customer_impact_start: + description: Timestamp when customers began being impacted by the incident. + format: date-time + nullable: true type: string - blob_storage_sourcemap_path: - description: The path to the source map in blob storage. - example: org123/1.0.0/bundle.min.js.map + customer_impacted: + description: A flag indicating whether the incident caused customer impact. + example: false + type: boolean + declared: + description: Timestamp when the incident was declared. + format: date-time + readOnly: true type: string - build_id: - description: The build identifier. - example: abc123 + declared_by: + $ref: "#/components/schemas/IncidentNonDatadogCreator" + declared_by_uuid: + description: UUID of the user who declared the incident. + nullable: true type: string - created_at: - description: The timestamp when the source map was created. - example: "2024-01-01T00:00:00Z" + detected: + description: Timestamp when the incident was detected. format: date-time + nullable: true type: string - domain: - description: The domain associated with the source map. - example: example.com + fields: + additionalProperties: + $ref: "#/components/schemas/IncidentFieldAttributes" + description: A condensed view of the user-defined fields attached to incidents. + example: {"severity": {"type": "dropdown", "value": "SEV-5"}} + type: object + incident_type_uuid: + description: A unique identifier that represents an incident type. + example: "00000000-0000-0000-0000-000000000000" type: string - file_name: - description: The file name of the minified JavaScript file. - example: bundle.min.js + is_test: + description: A flag indicating whether the incident is a test incident. + example: false + type: boolean + modified: + description: Timestamp when the incident was last modified. + format: date-time + readOnly: true type: string - mapkind: - description: The type of source map. - example: js + non_datadog_creator: + $ref: "#/components/schemas/IncidentNonDatadogCreator" + notification_handles: + description: Notification handles that will be notified of the incident during update. + example: [{"display_name": "Jane Doe", "handle": "@user@email.com"}, {"display_name": "Slack Channel", "handle": "@slack-channel"}, {"display_name": "Incident Workflow", "handle": "@workflow-from-incident"}] + items: + $ref: "#/components/schemas/IncidentNotificationHandle" + nullable: true + type: array + public_id: + description: The monotonically increasing integer ID for the incident. + example: 1 + format: int64 + type: integer + resolved: + description: |- + Timestamp when the incident's state was last changed from active or stable to resolved or completed. + format: date-time + nullable: true type: string - service: - description: The service name associated with the source map. - example: my-web-service + severity: + $ref: "#/components/schemas/IncidentSeverity" + state: + description: The state incident. + nullable: true type: string - size: - description: The size of the source map file in bytes. - example: 1024 + time_to_detect: + description: |- + The amount of time in seconds to detect the incident. + Equals the difference between `customer_impact_start` and `detected`. format: int64 + readOnly: true type: integer - variant: - description: The source map variant. - example: release - type: string - version: - description: The version of the service associated with the source map. - example: 1.0.0 + time_to_internal_response: + description: >- + The amount of time in seconds to call incident after detection. Equals the difference of `detected` and `created`. + format: int64 + readOnly: true + type: integer + time_to_repair: + description: >- + The amount of time in seconds to resolve customer impact after detecting the issue. Equals the difference between `customer_impact_end` and `detected`. + format: int64 + readOnly: true + type: integer + time_to_resolve: + description: >- + The amount of time in seconds to resolve the incident after it was created. Equals the difference between `created` and `resolved`. + format: int64 + readOnly: true + type: integer + title: + description: The title of the incident, which summarizes what happened. + example: "A test incident title" type: string - version_code: - description: The version code. - example: "100" + visibility: + description: The incident visibility status. + nullable: true type: string required: - - mapkind - - size - - created_at + - title type: object - JSSourcemapData: - description: JavaScript source map data object. + IncidentResponseData: + description: Incident data from a response. properties: attributes: - $ref: "#/components/schemas/JSSourcemapAttributes" + $ref: "#/components/schemas/IncidentResponseAttributes" id: - description: The unique identifier of the source map. - example: "5" + description: The incident's ID. + example: "00000000-0000-0000-1234-000000000000" type: string + relationships: + $ref: "#/components/schemas/IncidentResponseRelationships" type: - $ref: "#/components/schemas/SourcemapDataType" + $ref: "#/components/schemas/IncidentType" required: - id - type - - attributes type: object - JVMSourcemapAttributes: - description: Attributes of a JVM mapping file. + IncidentResponseIncludedItem: + description: An object related to an incident that is included in the response. + oneOf: + - $ref: "#/components/schemas/IncidentUserData" + - $ref: "#/components/schemas/AttachmentData" + IncidentResponseMeta: + description: The metadata object containing pagination metadata. properties: - build_id: - description: The build identifier (UUID format). - example: 550e8400-e29b-41d4-a716-446655440000 + pagination: + $ref: "#/components/schemas/IncidentResponseMetaPagination" + readOnly: true + type: object + IncidentResponseMetaPagination: + description: Pagination properties. + properties: + next_offset: + description: The index of the first element in the next page of results. Equal to page size added to the current offset. + example: 1000 + format: int64 + type: integer + offset: + description: The index of the first element in the results. + example: 10 + format: int64 + type: integer + size: + description: Maximum size of pages to return. + example: 1000 + format: int64 + type: integer + type: object + IncidentResponseRelationships: + description: The incident's relationships from a response. + properties: + attachments: + $ref: "#/components/schemas/RelationshipToIncidentAttachment" + commander_user: + $ref: "#/components/schemas/NullableRelationshipToUser" + created_by_user: + $ref: "#/components/schemas/RelationshipToUser" + declared_by_user: + $ref: "#/components/schemas/RelationshipToUser" + impacts: + $ref: "#/components/schemas/RelationshipToIncidentImpacts" + integrations: + $ref: "#/components/schemas/RelationshipToIncidentIntegrationMetadatas" + last_modified_by_user: + $ref: "#/components/schemas/RelationshipToUser" + responders: + $ref: "#/components/schemas/RelationshipToIncidentResponders" + user_defined_fields: + $ref: "#/components/schemas/RelationshipToIncidentUserDefinedFields" + type: object + IncidentRuleCondition: + description: A condition for an incident rule. + properties: + field: + description: The field to match on. + example: severity type: string - created_at: - description: The timestamp when the mapping file was created. - example: "2024-01-01T00:00:00Z" + values: + description: The values to match. + example: + - SEV-1 + - SEV-2 + items: + type: string + type: array + required: + - field + - values + type: object + IncidentRuleDataAttributesRequest: + description: Attributes for creating an incident rule. + properties: + condition: + $ref: "#/components/schemas/IncidentRuleQueryCondition" + condition_table_type: + description: "The condition table type. 1 = raw query." + example: 1 + format: int64 + type: integer + conditions: + description: List of field-based conditions. + items: + $ref: "#/components/schemas/IncidentRuleCondition" + type: array + enabled: + description: Whether the rule is enabled. + example: true + type: boolean + execution_type: + $ref: "#/components/schemas/IncidentRuleExecutionType" + incident_type_uuid: + description: The UUID of the incident type this rule applies to. + example: 00000000-0000-0000-0000-000000000000 + format: uuid + nullable: true + type: string + match_any_condition: + description: Whether any condition (OR logic) should match instead of all (AND logic). + example: false + type: boolean + task_id: + $ref: "#/components/schemas/IncidentRuleTaskIDType" + task_payload: + description: The JSON-encoded payload for the task. + example: "{}" + type: string + trigger: + $ref: "#/components/schemas/IncidentRuleTriggerType" + required: + - execution_type + - condition_table_type + - condition + - task_id + - task_payload + - enabled + type: object + IncidentRuleDataAttributesResponse: + description: Attributes of an incident rule in a response. + properties: + condition: + $ref: "#/components/schemas/IncidentRuleQueryCondition" + condition_table_type: + description: The condition table type. + example: 1 + format: int64 + type: integer + conditions: + description: List of field-based conditions. + items: + $ref: "#/components/schemas/IncidentRuleCondition" + type: array + created: + description: Timestamp when the rule was created. + example: "2024-01-01T00:00:00.000Z" format: date-time type: string - mapkind: - description: The type of source map. - example: jvm + created_by_uuid: + description: UUID of the user who created the rule. + example: 00000000-0000-0000-0000-000000000001 + format: uuid type: string - service: - description: The service name associated with the mapping file. - example: my-android-app + deleted: + description: Timestamp when the rule was deleted. + example: + format: date-time + nullable: true type: string - size: - description: The size of the mapping file in bytes. - example: 512 + enabled: + description: Whether the rule is enabled. + example: true + type: boolean + execution_type: + description: The execution type of the rule. + example: 1 format: int64 type: integer - variant: - description: The build variant (e.g., `release`, `debug`). - example: release + incident_settings_association_uuid: + description: The incident settings association UUID. + example: + format: uuid + nullable: true type: string - version: - description: The version of the service associated with the mapping file. - example: 1.0.0 + match_any_condition: + description: Whether any condition should match. + example: false + type: boolean + modified: + description: Timestamp when the rule was last modified. + example: "2024-01-01T00:00:00.000Z" + format: date-time type: string - version_code: - description: The version code. - example: "100" + modified_by_uuid: + description: UUID of the user who last modified the rule. + example: 00000000-0000-0000-0000-000000000001 + format: uuid + type: string + org_id: + description: The organization ID. + example: 123456 + format: int64 + type: integer + task_id: + description: The task ID. + example: notify-incident-handles-job + nullable: true + type: string + task_payload: + description: The JSON-encoded task payload. + example: "{}" + nullable: true + type: string + trigger: + description: The trigger event for the rule. + example: incident_created_trigger type: string + type: object + IncidentRuleDataRequest: + description: Incident rule data in a create request. + properties: + attributes: + $ref: "#/components/schemas/IncidentRuleDataAttributesRequest" + type: + $ref: "#/components/schemas/IncidentRuleType" required: - - mapkind - - size - - created_at + - type + - attributes type: object - JVMSourcemapData: - description: JVM (ProGuard/R8) mapping file data object. + IncidentRuleDataResponse: + description: Incident rule data in a response. properties: attributes: - $ref: "#/components/schemas/JVMSourcemapAttributes" + $ref: "#/components/schemas/IncidentRuleDataAttributesResponse" id: - description: The unique identifier of the source map. - example: "9" + description: The rule identifier. + example: 00000000-0000-0000-0000-000000000000 + format: uuid type: string type: - $ref: "#/components/schemas/SourcemapDataType" + $ref: "#/components/schemas/IncidentRuleResponseType" required: - id - type - attributes type: object - JiraAccountAttributes: - description: Attributes of a Jira account + IncidentRuleExecutionType: + description: The execution type of an incident rule. + enum: + - 1 + - 2 + example: 1 + format: int64 + type: integer + x-enum-varnames: + - SINGLE_EXECUTION + - MULTI_EXECUTION + IncidentRulePatchDataAttributesRequest: + description: Attributes for patching an incident rule. All fields are optional. properties: - consumer_key: - description: The consumer key for the Jira account - example: "consumer-key-1" - type: string - instance_url: - description: The URL of the Jira instance - example: "https://example.atlassian.net" - type: string - last_webhook_timestamp: - description: Timestamp of the last webhook received - example: "2024-01-15T10:30:00Z" - format: date-time + condition: + $ref: "#/components/schemas/IncidentRuleQueryCondition" + conditions: + description: List of field-based conditions. + items: + $ref: "#/components/schemas/IncidentRuleCondition" + type: array + enabled: + description: Whether the rule is enabled. + example: true + type: boolean + task_payload: + description: The JSON-encoded payload for the task. + example: "{}" type: string - required: - - consumer_key - - instance_url + trigger: + $ref: "#/components/schemas/IncidentRuleTriggerType" type: object - JiraAccountData: - description: Data object for a Jira account + IncidentRulePatchDataRequest: + description: Incident rule data in a patch request. properties: attributes: - $ref: "#/components/schemas/JiraAccountAttributes" + $ref: "#/components/schemas/IncidentRulePatchDataAttributesRequest" id: - description: Unique identifier for the Jira account - example: "account-1" + description: The rule identifier. + example: 00000000-0000-0000-0000-000000000000 + format: uuid type: string type: - $ref: "#/components/schemas/JiraAccountType" + $ref: "#/components/schemas/IncidentRuleType" required: - id - type - - attributes type: object - JiraAccountRelationship: - description: Relationship to a Jira account + IncidentRulePatchRequest: + description: Request payload for patching an incident rule. properties: data: - $ref: "#/components/schemas/JiraAccountData" + $ref: "#/components/schemas/IncidentRulePatchDataRequest" required: - data type: object - JiraAccountType: - description: Type identifier for Jira account resources - enum: - - jira-account - example: jira-account - type: string - x-enum-varnames: - - JIRA_ACCOUNT - JiraAccountsData: - description: Array of Jira account data objects - items: - $ref: "#/components/schemas/JiraAccountData" - type: array - JiraAccountsMeta: - description: Metadata for Jira accounts response + IncidentRuleQueryCondition: + description: A query-based condition for an incident rule. properties: - public_key: - description: Public key for the Jira integration - example: "c29tZSBkYXRhIHdpdGggACBhbmQg77u/" + normalized_query: + description: The normalized query string. + example: "severity:SEV-1" + nullable: true + type: string + raw_query: + description: The raw query string. + example: "severity:SEV-1" + nullable: true type: string type: object - JiraAccountsResponse: - description: Response containing Jira accounts + IncidentRuleRequest: + description: Request payload for creating an incident rule. properties: data: - $ref: "#/components/schemas/JiraAccountsData" - example: - - attributes: - consumer_key: "consumer-key-1" - instance_url: "https://example.atlassian.net" - id: "account-1" - type: jira-account - meta: - $ref: "#/components/schemas/JiraAccountsMeta" + $ref: "#/components/schemas/IncidentRuleDataRequest" required: - data type: object - JiraIntegrationMetadata: - description: Incident integration metadata for the Jira integration. + IncidentRuleResponse: + description: Response with a single incident rule. properties: - issues: - description: Array of Jira issues in this integration metadata. - example: [] + data: + $ref: "#/components/schemas/IncidentRuleDataResponse" + required: + - data + type: object + IncidentRuleResponseType: + description: Incident rule response resource type. + enum: + - incidents_rules + example: incidents_rules + type: string + x-enum-varnames: + - INCIDENTS_RULES + IncidentRuleTaskIDType: + description: The task ID for an incident rule. + enum: + - jira-create-issue-job + - notify-incident-handles-job + - servicenow-create-incident-job + - slack-create-channel-job + - zoom-create-meeting-job + - google-meet-create-meeting-job + - workflow-automation-job + - ms-teams-create-meeting-job + - google-chat-create-space-job + - zoom-suppress-summarization-job + - ms-teams-suppress-summarization-job + - google-meet-suppress-summarization-job + example: notify-incident-handles-job + type: string + x-enum-varnames: + - JIRA_CREATE_ISSUE_JOB + - NOTIFY_INCIDENT_HANDLES_JOB + - SERVICENOW_CREATE_INCIDENT_JOB + - SLACK_CREATE_CHANNEL_JOB + - ZOOM_CREATE_MEETING_JOB + - GOOGLE_MEET_CREATE_MEETING_JOB + - WORKFLOW_AUTOMATION_JOB + - MS_TEAMS_CREATE_MEETING_JOB + - GOOGLE_CHAT_CREATE_SPACE_JOB + - ZOOM_SUPPRESS_SUMMARIZATION_JOB + - MS_TEAMS_SUPPRESS_SUMMARIZATION_JOB + - GOOGLE_MEET_SUPPRESS_SUMMARIZATION_JOB + IncidentRuleTriggerType: + description: The trigger event for an incident rule. + enum: + - incident_saved_trigger + - incident_created_trigger + - incident_modified_trigger + example: incident_created_trigger + type: string + x-enum-varnames: + - INCIDENT_SAVED_TRIGGER + - INCIDENT_CREATED_TRIGGER + - INCIDENT_MODIFIED_TRIGGER + IncidentRuleType: + description: Incident rule resource type. + enum: + - incident_rules + example: incident_rules + type: string + x-enum-varnames: + - INCIDENT_RULES + IncidentRulesResponse: + description: Response with a list of incident rules. + properties: + data: + description: List of incident rules. items: - $ref: "#/components/schemas/JiraIntegrationMetadataIssuesItem" + $ref: "#/components/schemas/IncidentRuleDataResponse" type: array required: - - issues + - data type: object - JiraIntegrationMetadataIssuesItem: - description: Item in the Jira integration metadata issue array. + IncidentSavedTrigger: + description: "Trigger a workflow when an incident is declared or updated." properties: - account: - description: URL of issue's Jira account. - example: https://example.atlassian.net - type: string - issue_key: - description: Jira issue's issue key. - example: PROJ-123 - type: string - issuetype_id: - description: Jira issue's issue type. - example: "1000" - type: string - project_key: - description: Jira issue's project keys. - example: PROJ - type: string - redirect_url: - description: URL redirecting to the Jira issue. - example: https://example.atlassian.net/browse/PROJ-123 + executionLimit: + $ref: "#/components/schemas/ExecutionLimit" + incidentType: + description: "The type of incident that triggers the workflow." type: string - required: - - project_key - - account + serialExecution: + $ref: "#/components/schemas/SerialExecution" + tagCondition: + $ref: "#/components/schemas/IncidentCondition" type: object - JiraIssue: - description: Jira issue attached to case - nullable: true + IncidentSavedTriggerWrapper: + description: "Schema for an incident declared or updated trigger." properties: - result: - $ref: "#/components/schemas/JiraIssueResult" - status: - $ref: "#/components/schemas/Case3rdPartyTicketStatus" - readOnly: true + incidentSavedTrigger: + $ref: "#/components/schemas/IncidentSavedTrigger" + startStepNames: + $ref: "#/components/schemas/StartStepNames" + required: + - incidentSavedTrigger type: object - JiraIssueCreateAttributes: - description: Jira issue creation attributes + IncidentScheduleTrigger: + description: "Trigger a workflow on a schedule for an incident." properties: - fields: - additionalProperties: {} - description: Additional Jira fields - example: {} - type: object - issue_type_id: - description: Jira issue type ID - example: "10001" - type: string - jira_account_id: - description: Jira account ID - example: "1234" + incidentType: + description: "The type of incident that triggers the workflow." type: string - project_id: - description: Jira project ID - example: "5678" + rrule: + description: "The recurrence rule for the schedule, expressed as an iCalendar `RRULE` string." + example: "DTSTART:20241220T151700Z\nRRULE:FREQ=MONTHLY" + minLength: 1 type: string + tagCondition: + $ref: "#/components/schemas/IncidentCondition" required: - - jira_account_id - - project_id - - issue_type_id + - rrule type: object - JiraIssueCreateData: - description: Jira issue creation data + IncidentScheduleTriggerWrapper: + description: "Schema for an incident schedule trigger." properties: - attributes: - $ref: "#/components/schemas/JiraIssueCreateAttributes" - type: - $ref: "#/components/schemas/JiraIssueResourceType" + incidentScheduleTrigger: + $ref: "#/components/schemas/IncidentScheduleTrigger" + startStepNames: + $ref: "#/components/schemas/StartStepNames" required: - - type - - attributes + - incidentScheduleTrigger type: object - JiraIssueCreateRequest: - description: Jira issue creation request + IncidentSearchResponse: + description: Response with incidents and facets. properties: data: - $ref: "#/components/schemas/JiraIssueCreateData" + $ref: "#/components/schemas/IncidentSearchResponseData" + included: + description: Included related resources that the user requested. + items: + $ref: "#/components/schemas/IncidentResponseIncludedItem" + readOnly: true + type: array + meta: + $ref: "#/components/schemas/IncidentSearchResponseMeta" required: - data type: object - JiraIssueLinkAttributes: - description: Jira issue link attributes + IncidentSearchResponseAttributes: + description: Attributes returned by an incident search. properties: - jira_issue_url: - description: URL of the Jira issue - example: "https://jira.example.com/browse/PROJ-123" - type: string + facets: + $ref: "#/components/schemas/IncidentSearchResponseFacetsData" + incidents: + description: Incidents returned by the search. + items: + $ref: "#/components/schemas/IncidentSearchResponseIncidentsData" + type: array + total: + description: Number of incidents returned by the search. + example: 10 + format: int32 + maximum: 2147483647 + type: integer required: - - jira_issue_url + - facets + - incidents + - total type: object - JiraIssueLinkData: - description: Jira issue link data + IncidentSearchResponseData: + description: Data returned by an incident search. properties: attributes: - $ref: "#/components/schemas/JiraIssueLinkAttributes" + $ref: "#/components/schemas/IncidentSearchResponseAttributes" type: - $ref: "#/components/schemas/JiraIssueResourceType" - required: - - type - - attributes + $ref: "#/components/schemas/IncidentSearchResultsType" type: object - JiraIssueLinkRequest: - description: Jira issue link request + IncidentSearchResponseFacetCount: + description: Count of the facet value appearing in search results. + example: 5 + format: int32 + maximum: 2147483647 + type: integer + IncidentSearchResponseFacetsData: + description: Facet data for incidents returned by a search query. properties: - data: - $ref: "#/components/schemas/JiraIssueLinkData" - required: - - data + commander: + description: Facet data for incident commander users. + items: + $ref: "#/components/schemas/IncidentSearchResponseUserFacetData" + type: array + created_by: + description: Facet data for incident creator users. + items: + $ref: "#/components/schemas/IncidentSearchResponseUserFacetData" + type: array + fields: + description: Facet data for incident property fields. + items: + $ref: "#/components/schemas/IncidentSearchResponsePropertyFieldFacetData" + type: array + impact: + description: Facet data for incident impact attributes. + items: + $ref: "#/components/schemas/IncidentSearchResponseFieldFacetData" + type: array + last_modified_by: + description: Facet data for incident last modified by users. + items: + $ref: "#/components/schemas/IncidentSearchResponseUserFacetData" + type: array + postmortem: + description: Facet data for incident postmortem existence. + items: + $ref: "#/components/schemas/IncidentSearchResponseFieldFacetData" + type: array + responder: + description: Facet data for incident responder users. + items: + $ref: "#/components/schemas/IncidentSearchResponseUserFacetData" + type: array + severity: + description: Facet data for incident severity attributes. + items: + $ref: "#/components/schemas/IncidentSearchResponseFieldFacetData" + type: array + state: + description: Facet data for incident state attributes. + items: + $ref: "#/components/schemas/IncidentSearchResponseFieldFacetData" + type: array + time_to_repair: + description: Facet data for incident time to repair metrics. + items: + $ref: "#/components/schemas/IncidentSearchResponseNumericFacetData" + type: array + time_to_resolve: + description: Facet data for incident time to resolve metrics. + items: + $ref: "#/components/schemas/IncidentSearchResponseNumericFacetData" + type: array type: object - JiraIssueResourceType: - description: Jira issue resource type - enum: - - issues - example: issues - type: string - x-enum-varnames: - - ISSUES - JiraIssueResult: - description: Jira issue information + IncidentSearchResponseFieldFacetData: + description: Facet value and number of occurrences for a property field of an incident. properties: - issue_id: - description: Jira issue ID - type: string - issue_key: - description: Jira issue key - type: string - issue_url: - description: Jira issue URL - type: string - project_key: - description: Jira project key + count: + $ref: "#/components/schemas/IncidentSearchResponseFacetCount" + name: + description: The facet value appearing in search results. + example: SEV-2 type: string type: object - JiraIssueTemplateCreateRequest: - description: Request to create a Jira issue template + IncidentSearchResponseIncidentsData: + description: Incident returned by the search. properties: data: - $ref: "#/components/schemas/JiraIssueTemplateCreateRequestData" + $ref: "#/components/schemas/IncidentResponseData" + required: + - data type: object - JiraIssueTemplateCreateRequestAttributes: - description: Attributes for creating a Jira issue template + IncidentSearchResponseMeta: + description: The metadata object containing pagination metadata. properties: - fields: - additionalProperties: {} - description: Custom fields for the Jira issue template - example: - description: - payload: "Test" - type: "json" - type: object - issue_type_id: - description: The ID of the Jira issue type - example: "12730" - type: string - jira-account: - $ref: "#/components/schemas/JiraIssueTemplateCreateRequestAttributesJiraAccount" - name: - description: The name of the issue template - example: "test-template" - type: string - project_id: - description: The ID of the Jira project - example: "10772" - type: string + pagination: + $ref: "#/components/schemas/IncidentResponseMetaPagination" + readOnly: true type: object - JiraIssueTemplateCreateRequestAttributesJiraAccount: - description: Reference to the Jira account + IncidentSearchResponseNumericFacetData: + description: Facet data numeric attributes of an incident. properties: - id: - description: The ID of the Jira account - example: "80f16d40-1fba-486e-b1fc-983e6ca19bec" - format: uuid + aggregates: + $ref: "#/components/schemas/IncidentSearchResponseNumericFacetDataAggregates" + name: + description: Name of the incident property field. + example: time_to_repair type: string required: - - id + - name + - aggregates type: object - JiraIssueTemplateCreateRequestData: - description: Data object for creating a Jira issue template + IncidentSearchResponseNumericFacetDataAggregates: + description: Aggregate information for numeric incident data. properties: - attributes: - $ref: "#/components/schemas/JiraIssueTemplateCreateRequestAttributes" - type: - $ref: "#/components/schemas/JiraIssueTemplateType" + max: + description: Maximum value of the numeric aggregates. + example: 1234.0 + format: double + nullable: true + type: number + min: + description: Minimum value of the numeric aggregates. + example: 20.0 + format: double + nullable: true + type: number type: object - JiraIssueTemplateData: - description: Data object for a Jira issue template + IncidentSearchResponsePropertyFieldFacetData: + description: Facet data for the incident property fields. properties: - attributes: - $ref: "#/components/schemas/JiraIssueTemplateDataAttributes" - id: - description: Unique identifier for the Jira issue template - example: "65b3341b-0680-47f9-a6d4-134db45c603e" - format: uuid + aggregates: + $ref: "#/components/schemas/IncidentSearchResponseNumericFacetDataAggregates" + facets: + description: Facet data for the property field of an incident. + items: + $ref: "#/components/schemas/IncidentSearchResponseFieldFacetData" + type: array + name: + description: Name of the incident property field. + example: Severity type: string - relationships: - $ref: "#/components/schemas/JiraIssueTemplateDataRelationships" - type: - $ref: "#/components/schemas/JiraIssueTemplateType" required: - - id - - type - - attributes + - facets + - name type: object - JiraIssueTemplateDataAttributes: - description: Attributes of a Jira issue template + IncidentSearchResponseUserFacetData: + description: Facet data for user attributes of an incident. properties: - fields: - additionalProperties: {} - description: Custom fields for the Jira issue template - example: - description: - payload: "Test Description" - type: "json" - type: object - issue_type_id: - description: The ID of the Jira issue type - example: "456" + count: + $ref: "#/components/schemas/IncidentSearchResponseFacetCount" + email: + description: Email of the user. + example: datadog.user@example.com type: string - name: - description: The name of the issue template - example: "Test Template" + handle: + description: Handle of the user. + example: "@datadog.user@example.com" type: string - project_id: - description: The ID of the Jira project - example: "123" + name: + description: Name of the user. + example: Datadog User + type: string + uuid: + description: ID of the user. + example: 773b045d-ccf8-4808-bd3b-955ef6a8c940 type: string - required: - - name - - project_id - - issue_type_id - - fields - type: object - JiraIssueTemplateDataRelationships: - description: Relationships of a Jira issue template - properties: - jira-account: - $ref: "#/components/schemas/JiraAccountRelationship" - required: - - jira-account - type: object - JiraIssueTemplateResponse: - description: Response containing a single Jira issue template - properties: - data: - $ref: "#/components/schemas/JiraIssueTemplateData" - included: - $ref: "#/components/schemas/JiraAccountsData" - required: - - data type: object - JiraIssueTemplateType: - description: Type identifier for Jira issue template resources + IncidentSearchResultsType: + default: incidents_search_results + description: Incident search result type. enum: - - jira-issue-template - example: jira-issue-template + - incidents_search_results + example: incidents_search_results type: string x-enum-varnames: - - JIRA_ISSUE_TEMPLATE - JiraIssueTemplateUpdateRequest: - description: Request to update a Jira issue template - properties: - data: - $ref: "#/components/schemas/JiraIssueTemplateUpdateRequestData" - required: - - data - type: object - JiraIssueTemplateUpdateRequestAttributes: - description: Attributes for updating a Jira issue template + - INCIDENTS_SEARCH_RESULTS + IncidentSearchSortOrder: + description: The ways searched incidents can be sorted. + enum: + - created + - -created + type: string + x-enum-varnames: + - CREATED_ASCENDING + - CREATED_DESCENDING + IncidentServiceNowRecordDataAttributesRequest: + description: Attributes for creating a ServiceNow record for an incident. properties: - fields: - additionalProperties: {} - description: Custom fields for the Jira issue template - example: - description: - payload: "Updated Description" - type: "json" - type: object - name: - description: The name of the issue template - example: "test_template_updated" + assignment_group: + description: The ServiceNow assignment group. + example: IT Support + type: string + configuration_item_mapping: + description: The ServiceNow configuration item mapping. + example: my-service + type: string + instance_name: + description: The ServiceNow instance name. + example: my-instance + type: string + record_id: + description: An existing ServiceNow record ID (Sys ID) to link instead of creating a new record. + example: abc123def456 type: string + required: + - instance_name + - assignment_group + - configuration_item_mapping type: object - JiraIssueTemplateUpdateRequestData: - description: Data object for updating a Jira issue template + IncidentServiceNowRecordDataRequest: + description: ServiceNow record data in a create request. properties: attributes: - $ref: "#/components/schemas/JiraIssueTemplateUpdateRequestAttributes" + $ref: "#/components/schemas/IncidentServiceNowRecordDataAttributesRequest" type: - $ref: "#/components/schemas/JiraIssueTemplateType" + $ref: "#/components/schemas/IncidentServiceNowRecordPromptType" required: - type - attributes type: object - JiraIssueTemplatesData: - description: Array of Jira issue template data objects - items: - $ref: "#/components/schemas/JiraIssueTemplateData" - type: array - JiraIssueTemplatesResponse: - description: Response containing Jira issue templates + IncidentServiceNowRecordPromptType: + description: ServiceNow record prompt resource type. + enum: + - incident_servicenow_record_prompt + example: incident_servicenow_record_prompt + type: string + x-enum-varnames: + - INCIDENT_SERVICENOW_RECORD_PROMPT + IncidentServiceNowRecordRequest: + description: Request payload for creating a ServiceNow record for an incident. properties: data: - $ref: "#/components/schemas/JiraIssueTemplatesData" - example: - - attributes: - fields: - description: - payload: "Test Description" - type: "json" - issue_type_id: "10001" - name: "Bug Report Template" - project_id: "PROJECT-1" - id: "65b3341b-0680-47f9-a6d4-134db45c603e" - type: jira-issue-template - included: - $ref: "#/components/schemas/JiraAccountsData" + $ref: "#/components/schemas/IncidentServiceNowRecordDataRequest" required: - data type: object - JiraIssuesDataType: - default: jira_issues - description: Jira issues resource type. + IncidentSeverity: + description: The incident severity. enum: - - jira_issues - example: jira_issues + - UNKNOWN + - SEV-0 + - SEV-1 + - SEV-2 + - SEV-3 + - SEV-4 + - SEV-5 + example: UNKNOWN type: string x-enum-varnames: - - JIRA_ISSUES - JobCreateResponse: - description: Run a historical job response. - properties: - data: - $ref: "#/components/schemas/JobCreateResponseData" - type: object - JobCreateResponseData: - description: The definition of `JobCreateResponseData` object. - properties: - id: - description: ID of the created job. - type: string - type: - $ref: "#/components/schemas/HistoricalJobDataType" - type: object - JobDefinition: - description: Definition of a historical job. - properties: - calculatedFields: - description: Calculated fields. - items: - $ref: "#/components/schemas/CalculatedField" - type: array - cases: - description: Cases used for generating job results. Up to 10 cases are allowed. - items: - $ref: "#/components/schemas/SecurityMonitoringRuleCaseCreate" - maxItems: 10 - type: array - from: - description: Starting time of data analyzed by the job. - example: 1729843470000 - format: int64 - type: integer - groupSignalsBy: - description: Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups. - example: - - service - items: - description: Field to group by. - type: string - type: array - index: - description: Index used to load the data. - example: cloud_siem - type: string - message: - description: Message for generated results. - example: A large number of failed login attempts. - type: string - name: - description: Job name. - example: Excessive number of failed attempts. - type: string - options: - $ref: "#/components/schemas/HistoricalJobOptions" - queries: - description: Queries for selecting logs analyzed by the job. Up to 10 queries are allowed. - items: - $ref: "#/components/schemas/HistoricalJobQuery" - maxItems: 10 - type: array - referenceTables: - description: Reference tables used in the queries. - items: - $ref: "#/components/schemas/SecurityMonitoringReferenceTable" - type: array - tags: - description: Tags for generated signals. - items: - description: A tag string in `key:value` format. - type: string - type: array - thirdPartyCases: - description: Cases for generating results from third-party detection method. Only available for third-party detection method. Up to 10 cases are allowed. - example: [] - items: - $ref: "#/components/schemas/SecurityMonitoringThirdPartyRuleCaseCreate" - maxItems: 10 - type: array - to: - description: Ending time of data analyzed by the job. - example: 1729847070000 - format: int64 - type: integer - type: - description: Job type. - type: string - required: - - from - - to - - index - - name - - cases - - queries - - message - type: object - JobDefinitionFromRule: - description: Definition of a historical job based on a security monitoring rule. + - UNKNOWN + - SEV_0 + - SEV_1 + - SEV_2 + - SEV_3 + - SEV_4 + - SEV_5 + IncidentTagValue: + description: "An incident tag and its accepted values." properties: - caseIndex: - description: Zero-based index of the rule case to use as the job's signal condition. When omitted, all cases are evaluated. Up to 10 cases are supported, so valid values are 0 to 9. - format: int32 - maximum: 9 - minimum: 0 - type: integer - from: - description: Starting time of data analyzed by the job. - example: 1729843470000 - format: int64 - type: integer - id: - description: ID of the detection rule used to create the job. - example: abc-def-ghi - type: string - index: - description: Index used to load the data. - example: cloud_siem + tag: + description: "The incident tag to match." + example: "" type: string - notifications: - description: Notifications sent when the job is completed. + values: + description: "The accepted values for the incident tag." example: - - "@sns-cloudtrail-results" + - "" items: - description: A notification recipient handle (for example, `@user` or `@channel`). type: string type: array - to: - description: Ending time of data analyzed by the job. - example: 1729847070000 - format: int64 - type: integer - required: - - id - - from - - to - - index - type: object - JsonPatchOperation: - description: A JSON Patch operation as per RFC 6902. - properties: - op: - $ref: "#/components/schemas/JsonPatchOperationOp" - path: - description: A JSON Pointer path (e.g., "/name", "/value/secure"). - example: "/name" - type: string - value: - description: The value to use for the operation (not applicable for "remove" and "test" operations). required: - - op - - path + - tag + - values type: object - JsonPatchOperationOp: - description: The operation to perform. + IncidentTimelineCellCreateAttributes: + description: The timeline cell's attributes for a create request. + oneOf: + - $ref: "#/components/schemas/IncidentTimelineCellMarkdownCreateAttributes" + IncidentTimelineCellMarkdownContentType: + default: markdown + description: Type of the Markdown timeline cell. enum: - - add - - remove - - replace - - move - - copy - - test - example: add + - markdown + example: markdown type: string x-enum-varnames: - - ADD - - REMOVE - - REPLACE - - MOVE - - COPY - - TEST - KindAttributes: - description: Kind attributes. - properties: - description: - description: Short description of the kind. - type: string - displayName: - description: User friendly name of the kind. - type: string - name: - description: The kind name. - example: my-job - minLength: 1 - type: string - type: object - KindData: - description: Schema that defines the structure of a Kind object in the Software Catalog. + - MARKDOWN + IncidentTimelineCellMarkdownCreateAttributes: + description: Timeline cell data for Markdown timeline cells for a create request. properties: - attributes: - $ref: "#/components/schemas/KindAttributes" - id: - description: A read-only globally unique identifier for the entity generated by Datadog. User supplied values are ignored. - example: 4b163705-23c0-4573-b2fb-f6cea2163fcb - minLength: 1 - type: string - meta: - $ref: "#/components/schemas/KindMetadata" - type: - description: Kind. - type: string + cell_type: + $ref: "#/components/schemas/IncidentTimelineCellMarkdownContentType" + content: + $ref: "#/components/schemas/IncidentTimelineCellMarkdownCreateAttributesContent" + important: + default: false + description: A flag indicating whether the timeline cell is important and should be highlighted. + example: false + type: boolean + required: + - content + - cell_type type: object - KindMetadata: - description: Kind metadata. + IncidentTimelineCellMarkdownCreateAttributesContent: + description: The Markdown timeline cell contents. properties: - createdAt: - description: The creation time. - type: string - modifiedAt: - description: The modification time. + content: + description: The Markdown content of the cell. + example: "An example timeline cell message." + nullable: false type: string type: object - KindObj: - description: Schema for kind. + IncidentTimestampOverrideDataAttributesRequest: + description: Attributes for creating a timestamp override. properties: - description: - description: Short description of the kind. - type: string - displayName: - description: The display name of the kind. Automatically generated if not provided. - type: string - kind: - description: The name of the kind to create or update. This must be in kebab-case format. - example: "my-job" + timestamp_type: + $ref: "#/components/schemas/IncidentTimestampType" + timestamp_value: + description: The overridden timestamp value. + example: "2024-01-01T10:00:00.000Z" + format: date-time type: string required: - - kind - type: object - KindRaw: - description: Kind definition in raw JSON or YAML representation. - example: |- - kind: service - displayName: Service - description: A service entity in the catalog. - type: string - KindResponseData: - description: List of kind responses. - items: - $ref: "#/components/schemas/KindData" - type: array - KindResponseMeta: - description: Kind response metadata. - properties: - count: - description: Total kinds count. - format: int64 - type: integer + - timestamp_type + - timestamp_value type: object - LLMObsAnnotatedInteractionByTraceItem: - description: An annotated interaction returned by the cross-queue lookup, including the source queue metadata. + IncidentTimestampOverrideDataAttributesResponse: + description: Attributes of a timestamp override in a response. properties: - annotations: - description: List of annotations for this interaction. - items: - $ref: "#/components/schemas/LLMObsAnnotationItem" - type: array - can_annotate: - description: Whether the current caller can annotate this interaction. - example: true - type: boolean - content_id: - description: Upstream entity identifier (trace ID, session ID, or deterministic display_block ID). - example: "trace-abc-123" - type: string created_at: - description: Timestamp when the interaction was added to the queue. - example: "2025-06-01T12:00:00Z" + description: Timestamp when the override was created. + example: "2024-01-01T00:00:00.000Z" format: date-time type: string - display_block: - $ref: "#/components/schemas/LLMObsContentBlocks" - id: - description: Unique identifier of the interaction. - example: "interaction-456" + deleted_at: + description: Timestamp when the override was deleted. + example: + format: date-time + nullable: true + type: string + incident_id: + description: The incident identifier. + example: 00000000-0000-0000-0000-000000000000 type: string modified_at: - description: Timestamp when the interaction was last updated. - example: "2025-06-01T12:00:00Z" + description: Timestamp when the override was last modified. + example: "2024-01-01T00:00:00.000Z" format: date-time type: string - queue_id: - description: Identifier of the annotation queue this interaction belongs to. - example: "queue-uuid-001" - type: string - queue_name: - description: Name of the annotation queue this interaction belongs to. - example: "My Annotation Queue" + timestamp_type: + $ref: "#/components/schemas/IncidentTimestampType" + timestamp_value: + description: The overridden timestamp value. + example: "2024-01-01T10:00:00.000Z" + format: date-time type: string - type: - $ref: "#/components/schemas/LLMObsAnyInteractionType" required: - - id - - type - - content_id + - incident_id + - timestamp_type + - timestamp_value - created_at - modified_at - - queue_id - - queue_name - - can_annotate - - annotations type: object - LLMObsAnnotatedInteractionDataAttributesResponse: - description: Attributes containing an annotated interaction and its related events. + IncidentTimestampOverrideDataRequest: + description: Timestamp override data in a create request. properties: - annotated_interaction: - $ref: "#/components/schemas/LLMObsAnnotatedInteractionItem" - events: - $ref: "#/components/schemas/LLMObsAnnotatedInteractionEvents" - interaction_type: - $ref: "#/components/schemas/LLMObsAnyInteractionType" - next_cursor: - description: Cursor to retrieve the next page of events. Absent when there are no more events. - example: "eyJzdGFydCI6MTAwfQ==" - type: string + attributes: + $ref: "#/components/schemas/IncidentTimestampOverrideDataAttributesRequest" + type: + $ref: "#/components/schemas/IncidentTimestampOverrideType" required: - - annotated_interaction - - interaction_type - - events + - type + - attributes type: object - LLMObsAnnotatedInteractionDataResponse: - description: Data object for a single annotated interaction. + IncidentTimestampOverrideDataResponse: + description: Timestamp override data in a response. properties: attributes: - $ref: "#/components/schemas/LLMObsAnnotatedInteractionDataAttributesResponse" + $ref: "#/components/schemas/IncidentTimestampOverrideDataAttributesResponse" id: - description: Unique identifier of the interaction. - example: "interaction-456" + description: The timestamp override identifier. + example: 00000000-0000-0000-0000-000000000000 + format: uuid type: string + relationships: + $ref: "#/components/schemas/IncidentTimestampOverrideRelationships" type: - $ref: "#/components/schemas/LLMObsAnnotatedInteractionsType" + $ref: "#/components/schemas/IncidentTimestampOverrideType" required: - id - type - attributes type: object - LLMObsAnnotatedInteractionEvent: - description: An event associated with an annotated interaction. + IncidentTimestampOverridePatchDataAttributesRequest: + description: Attributes for patching a timestamp override. + properties: + timestamp_value: + description: The overridden timestamp value. + example: "2024-01-01T10:00:00.000Z" + format: date-time + type: string + required: + - timestamp_value + type: object + IncidentTimestampOverridePatchDataRequest: + description: Timestamp override data in a patch request. properties: attributes: - $ref: "#/components/schemas/LLMObsAnnotatedInteractionEventAttributes" + $ref: "#/components/schemas/IncidentTimestampOverridePatchDataAttributesRequest" id: - description: Unique identifier of the event. - example: "span-7a1b2c3d" + description: The timestamp override identifier. + example: 00000000-0000-0000-0000-000000000000 + format: uuid type: string type: - description: Type of the event. - example: span - type: string + $ref: "#/components/schemas/IncidentTimestampOverrideType" required: - id - type - - attributes type: object - LLMObsAnnotatedInteractionEventAttributes: - additionalProperties: {} - description: Attributes of an event associated with an annotated interaction. - example: - duration: 1500000000 - ml_app: my-llm-app - name: agent_workflow - span_id: span-7a1b2c3d - span_kind: agent - start_ns: 1705314600000000000 - status: ok - trace_id: trace-abc-123 + IncidentTimestampOverridePatchRequest: + description: Request payload for patching a timestamp override. + properties: + data: + $ref: "#/components/schemas/IncidentTimestampOverridePatchDataRequest" + required: + - data type: object - LLMObsAnnotatedInteractionEvents: - description: Page of events associated with the annotated interaction. - items: - $ref: "#/components/schemas/LLMObsAnnotatedInteractionEvent" - type: array - LLMObsAnnotatedInteractionItem: - description: An interaction with its associated annotations. - oneOf: - - $ref: "#/components/schemas/LLMObsTraceAnnotatedInteractionItem" - - $ref: "#/components/schemas/LLMObsDisplayBlockAnnotatedInteractionItem" - LLMObsAnnotatedInteractionResponse: - description: Response containing a single annotated interaction and its related events. + IncidentTimestampOverrideRelationships: + description: Relationships for a timestamp override. + properties: + created_by_user: + $ref: "#/components/schemas/RelationshipToUser" + last_modified_by_user: + $ref: "#/components/schemas/RelationshipToUser" + type: object + IncidentTimestampOverrideRequest: + description: Request payload for creating a timestamp override. properties: data: - $ref: "#/components/schemas/LLMObsAnnotatedInteractionDataResponse" + $ref: "#/components/schemas/IncidentTimestampOverrideDataRequest" required: - data type: object - LLMObsAnnotatedInteractionsByTraceDataAttributesResponse: - description: Attributes of the cross-queue annotated interactions response. + IncidentTimestampOverrideResponse: + description: Response with a single timestamp override. properties: - annotated_interactions: - description: List of annotated interactions across all queues for the requested content IDs. + data: + $ref: "#/components/schemas/IncidentTimestampOverrideDataResponse" + included: + description: Included related resources. items: - $ref: "#/components/schemas/LLMObsAnnotatedInteractionByTraceItem" + $ref: "#/components/schemas/IncidentUserData" + readOnly: true type: array - total_count: - description: Total number of annotated interactions matching the query. - example: 1 - format: int32 - maximum: 2147483647 - type: integer required: - - annotated_interactions - - total_count + - data type: object - LLMObsAnnotatedInteractionsByTraceDataResponse: - description: Data object for the cross-queue annotated interactions response. + IncidentTimestampOverrideType: + description: Incident timestamp override resource type. + enum: + - incidents_timestamp_overrides + example: incidents_timestamp_overrides + type: string + x-enum-varnames: + - INCIDENTS_TIMESTAMP_OVERRIDES + IncidentTimestampOverridesResponse: + description: Response with a list of timestamp overrides. properties: - attributes: - $ref: "#/components/schemas/LLMObsAnnotatedInteractionsByTraceDataAttributesResponse" + data: + description: List of timestamp overrides. + items: + $ref: "#/components/schemas/IncidentTimestampOverrideDataResponse" + type: array + included: + description: Included related resources. + items: + $ref: "#/components/schemas/IncidentUserData" + readOnly: true + type: array + required: + - data + type: object + IncidentTimestampType: + description: The type of timestamp to override. + enum: + - detected + - resolved + - declared + example: detected + type: string + x-enum-varnames: + - DETECTED + - RESOLVED + - DECLARED + IncidentTodoAnonymousAssignee: + description: Anonymous assignee entity. + properties: + icon: + description: URL for assignee's icon. + example: https://a.slack-edge.com/80588/img/slackbot_48.png + type: string id: - description: Opaque identifier for the response object. - example: "trace-query" + description: Anonymous assignee's ID. + example: USLACKBOT type: string - type: - $ref: "#/components/schemas/LLMObsAnnotatedInteractionsByTraceType" + name: + description: Assignee's name. + example: Slackbot + type: string + source: + $ref: "#/components/schemas/IncidentTodoAnonymousAssigneeSource" required: - id + - icon + - name + - source + type: object + IncidentTodoAnonymousAssigneeSource: + default: slack + description: The source of the anonymous assignee. + enum: + - slack + - microsoft_teams + example: slack + type: string + x-enum-varnames: + - SLACK + - MICROSOFT_TEAMS + IncidentTodoAssignee: + description: A todo assignee. + example: "@test.user@test.com" + oneOf: + - $ref: "#/components/schemas/IncidentTodoAssigneeHandle" + - $ref: "#/components/schemas/IncidentTodoAnonymousAssignee" + IncidentTodoAssigneeArray: + description: Array of todo assignees. + example: + - "@test.user@test.com" + items: + $ref: "#/components/schemas/IncidentTodoAssignee" + type: array + IncidentTodoAssigneeHandle: + description: Assignee's @-handle. + example: "@test.user@test.com" + type: string + IncidentTodoAttributes: + description: Incident todo's attributes. + properties: + assignees: + $ref: "#/components/schemas/IncidentTodoAssigneeArray" + completed: + description: Timestamp when the todo was completed. + example: "2023-03-06T22:00:00.000000+00:00" + nullable: true + type: string + content: + description: The follow-up task's content. + example: Restore lost data. + type: string + created: + description: Timestamp when the incident todo was created. + format: date-time + readOnly: true + type: string + due_date: + description: Timestamp when the todo should be completed by. + example: "2023-07-10T05:00:00.000000+00:00" + nullable: true + type: string + incident_id: + description: UUID of the incident this todo is connected to. + example: "00000000-aaaa-0000-0000-000000000000" + type: string + modified: + description: Timestamp when the incident todo was last modified. + format: date-time + readOnly: true + type: string + required: + - content + - assignees + type: object + IncidentTodoCreateData: + description: Incident todo data for a create request. + properties: + attributes: + $ref: "#/components/schemas/IncidentTodoAttributes" + type: + $ref: "#/components/schemas/IncidentTodoType" + required: - type - attributes type: object - LLMObsAnnotatedInteractionsByTraceResponse: - description: Response containing annotated interactions across all queues for the requested content IDs. + IncidentTodoCreateRequest: + description: Create request for an incident todo. properties: data: - $ref: "#/components/schemas/LLMObsAnnotatedInteractionsByTraceDataResponse" + $ref: "#/components/schemas/IncidentTodoCreateData" required: - data type: object - LLMObsAnnotatedInteractionsByTraceType: - description: Resource type for cross-queue annotated interactions lookup. - enum: - - annotated_interactions_by_trace - example: annotated_interactions_by_trace - type: string - x-enum-varnames: - - ANNOTATED_INTERACTIONS_BY_TRACE - LLMObsAnnotatedInteractionsDataAttributesResponse: - description: Attributes containing the list of annotated interactions. + IncidentTodoListResponse: + description: Response with a list of incident todos. properties: - annotated_interactions: - description: List of interactions with their annotations. - example: - - annotations: [] - can_annotate: true - content_id: trace-abc-123 - id: "interaction-456" - type: trace + data: + description: An array of incident todos. items: - $ref: "#/components/schemas/LLMObsAnnotatedInteractionItem" + $ref: "#/components/schemas/IncidentTodoResponseData" + type: array + included: + description: Included related resources that the user requested. + items: + $ref: "#/components/schemas/IncidentTodoResponseIncludedItem" + readOnly: true type: array + meta: + $ref: "#/components/schemas/IncidentResponseMeta" required: - - annotated_interactions + - data type: object - LLMObsAnnotatedInteractionsDataResponse: - description: Data object for annotated interactions. + IncidentTodoPatchData: + description: Incident todo data for a patch request. properties: attributes: - $ref: "#/components/schemas/LLMObsAnnotatedInteractionsDataAttributesResponse" - id: - description: The annotation queue ID. - example: "00000000-0000-0000-0000-000000000001" - type: string + $ref: "#/components/schemas/IncidentTodoAttributes" type: - $ref: "#/components/schemas/LLMObsAnnotatedInteractionsType" + $ref: "#/components/schemas/IncidentTodoType" required: - - id - type - attributes type: object - LLMObsAnnotatedInteractionsResponse: - description: Response containing the annotated interactions for an annotation queue. + IncidentTodoPatchRequest: + description: Patch request for an incident todo. properties: data: - $ref: "#/components/schemas/LLMObsAnnotatedInteractionsDataResponse" + $ref: "#/components/schemas/IncidentTodoPatchData" required: - data type: object - LLMObsAnnotatedInteractionsType: - description: Resource type for annotated interactions. - enum: - - annotated_interactions - example: annotated_interactions - type: string - x-enum-varnames: - - ANNOTATED_INTERACTIONS - LLMObsAnnotationAssessment: - description: Assessment result for a label value. + IncidentTodoRelationships: + description: The incident's relationships from a response. + properties: + created_by_user: + $ref: "#/components/schemas/RelationshipToUser" + last_modified_by_user: + $ref: "#/components/schemas/RelationshipToUser" + type: object + IncidentTodoResponse: + description: Response with an incident todo. + properties: + data: + $ref: "#/components/schemas/IncidentTodoResponseData" + included: + description: Included related resources that the user requested. + items: + $ref: "#/components/schemas/IncidentTodoResponseIncludedItem" + readOnly: true + type: array + required: + - data + type: object + IncidentTodoResponseData: + description: Incident todo response data. + properties: + attributes: + $ref: "#/components/schemas/IncidentTodoAttributes" + id: + description: The incident todo's ID. + example: "00000000-0000-0000-1234-000000000000" + type: string + relationships: + $ref: "#/components/schemas/IncidentTodoRelationships" + type: + $ref: "#/components/schemas/IncidentTodoType" + required: + - id + - type + type: object + IncidentTodoResponseIncludedItem: + description: An object related to an incident todo that is included in the response. + oneOf: + - $ref: "#/components/schemas/User" + IncidentTodoType: + default: incident_todos + description: Todo resource type. enum: - - pass - - fail - example: "pass" + - incident_todos + example: incident_todos type: string x-enum-varnames: - - PASS - - FAIL - LLMObsAnnotationError: - description: A partial error for a single annotation that could not be processed. + - INCIDENT_TODOS + IncidentTrigger: + description: "Trigger a workflow from an incident. For automatic triggering a handle must be configured and the workflow must be published." properties: - annotation_id: - description: ID of the annotation that failed, if applicable. - example: "00000000-0000-0000-0000-000000000000" - type: string - code: - $ref: "#/components/schemas/LLMObsAnnotationErrorCode" - error: - description: Error message. - example: "interaction not found" - type: string - interaction_id: - description: ID of the interaction that failed. - example: "00000000-0000-0000-0000-000000000001" + rateLimit: + $ref: "#/components/schemas/TriggerRateLimit" + version: + description: "Version of the incident manual trigger." type: string + type: object + IncidentTriggerWrapper: + description: "Schema for an incident-based trigger." + properties: + incidentTrigger: + $ref: "#/components/schemas/IncidentTrigger" + startStepNames: + $ref: "#/components/schemas/StartStepNames" required: - - interaction_id - - error + - incidentTrigger type: object - LLMObsAnnotationErrorCode: - description: Stable error code. `permission_denied` indicates the item was rejected by queue access rules. + IncidentType: + default: incidents + description: Incident resource type. enum: - - permission_denied - example: permission_denied + - incidents + example: incidents type: string x-enum-varnames: - - PERMISSION_DENIED - LLMObsAnnotationItem: - description: A single annotation on an interaction. + - INCIDENTS + IncidentTypeAttributes: + description: Incident type's attributes. properties: - created_at: - description: Timestamp when the annotation was created. - example: "2024-01-15T10:30:00Z" + configuration: + $ref: "#/components/schemas/IncidentTypeConfiguration" + readOnly: true + createdAt: + description: Timestamp when the incident type was created. format: date-time + readOnly: true type: string - created_by: - description: Identifier of the user who created the annotation. - example: "00000000-0000-0000-0000-000000000002" + createdBy: + description: A unique identifier that represents the user that created the incident type. + example: "00000000-0000-0000-0000-000000000000" + readOnly: true type: string - id: - description: Unique identifier of the annotation. - example: "annotation-789" + description: + description: Text that describes the incident type. + example: "Any incidents that harm (or have the potential to) the confidentiality, integrity, or availability of our data." type: string - interaction_id: - description: Identifier of the interaction this annotation belongs to. - example: "interaction-456" + is_default: + default: false + description: If true, this incident type will be used as the default incident type if a type is not specified during the creation of incident resources. + example: false + type: boolean + lastModifiedBy: + description: A unique identifier that represents the user that last modified the incident type. + example: "00000000-0000-0000-0000-000000000000" + readOnly: true type: string - label_values: - additionalProperties: {} - description: Label values for this annotation. - example: - - label_schema_id: "abc-123" - value: "good" - type: object - modified_at: - description: Timestamp when the annotation was last modified. - example: "2024-01-15T10:30:00Z" + modifiedAt: + description: Timestamp when the incident type was last modified. format: date-time + readOnly: true type: string - modified_by: - description: Identifier of the user who last modified the annotation. - example: "00000000-0000-0000-0000-000000000002" + name: + description: The name of the incident type. + example: "Security Incident" + type: string + prefix: + description: The string that will be prepended to the incident title across the Datadog app. + example: "IR" + readOnly: true type: string required: - - id - - interaction_id - - label_values - - created_by - - created_at - - modified_by - - modified_at + - name type: object - LLMObsAnnotationItemResponse: - description: A single annotation on an interaction, as returned by the API. + IncidentTypeConfiguration: + description: >- + The incident-type-scoped behavior settings. All fields are optional on update. Any field omitted from a PATCH request keeps its current value. This object is read-only on the incident type resource itself and is only mutated through the update (PATCH) endpoint. properties: - created_at: - description: Timestamp when the annotation was created. - example: "2024-01-15T10:30:00Z" - format: date-time - type: string - created_by: - description: Identifier of the user who created the annotation. - example: "00000000-0000-0000-0000-000000000002" + allow_incident_deletion: + default: false + description: Whether incidents of this type can be deleted. + example: false + type: boolean + allow_workflows: + default: true + description: Whether automation workflows can be triggered for incidents of this type. + example: true + type: boolean + create_message: + description: An optional message shown to users when they declare an incident of this type. + example: "Create an incident here" type: string - id: - description: Unique identifier of the annotation. - example: "annotation-789" - type: string - interaction_id: - description: Identifier of the interaction this annotation belongs to. - example: "interaction-456" - type: string - label_values: - description: |- - Label values for this annotation. Each entry references a label schema by ID - and provides the corresponding value. - example: - - label_schema_id: "abc-123" - value: "good" - items: - $ref: "#/components/schemas/LLMObsAnnotationLabelValueResponse" - type: array - modified_at: - description: Timestamp when the annotation was last modified. - example: "2024-01-15T10:30:00Z" - format: date-time - type: string - modified_by: - description: Identifier of the user who last modified the annotation. - example: "00000000-0000-0000-0000-000000000002" - type: string - required: - - id - - interaction_id - - label_values - - created_by - - created_at - - modified_by - - modified_at - type: object - LLMObsAnnotationLabelValue: - description: |- - A single label value entry in an annotation. - The `value` type must match the label schema type: - - `score`: a number within the schema `min`/`max` range (integer if `is_integer` is `true`). - - `categorical`: a string that is one of the schema `values`. - - `boolean`: `true` or `false`. - - `text`: any non-empty string. - properties: - assessment: - $ref: "#/components/schemas/LLMObsAnnotationAssessment" - label_schema_id: - description: ID of the label schema this value corresponds to. - example: "abc-123" - type: string - reasoning: - description: Free text reasoning for this label value. - example: "The response was accurate and well-structured." - type: string - value: - $ref: "#/components/schemas/LLMObsAnnotationLabelValueValue" - required: - - label_schema_id - - value - type: object - LLMObsAnnotationLabelValueResponse: - description: |- - A single label value entry in an annotation response. - In addition to the submitted fields, the server populates `type` and - `name_when_saved` to mirror the schema state at the time the annotation - was created — these help clients display values correctly when the schema - has since changed. - properties: - assessment: - $ref: "#/components/schemas/LLMObsAnnotationAssessment" - label_schema_id: - description: ID of the label schema this value corresponds to. - example: "abc-123" - type: string - name_when_saved: - description: Name of the label schema at the time the annotation was created. - example: "quality" - type: string - reasoning: - description: Free text reasoning for this label value. - example: "The response was accurate and well-structured." - type: string - type: - $ref: "#/components/schemas/LLMObsLabelSchemaType" - value: - $ref: "#/components/schemas/LLMObsAnnotationLabelValueValue" - required: - - label_schema_id - - value - type: object - LLMObsAnnotationLabelValueStringArray: - description: For categorical-type labels allowing multiple selections. - items: - type: string - type: array - LLMObsAnnotationLabelValueValue: - description: The value for this label. Must comply with the label schema type constraints. - example: 0.0 - oneOf: - - $ref: "#/components/schemas/AnyValueNumber" - - $ref: "#/components/schemas/AnyValueString" - - $ref: "#/components/schemas/LLMObsAnnotationLabelValueStringArray" - - $ref: "#/components/schemas/AnyValueBoolean" - LLMObsAnnotationQueueDataAttributesRequest: - description: Attributes for creating an Agent Observability annotation queue. - properties: - annotation_schema: - $ref: "#/components/schemas/LLMObsAnnotationSchema" - description: - description: Description of the annotation queue. - example: "Queue for annotating customer support traces" - type: string - name: - description: Name of the annotation queue. - example: "My annotation queue" - type: string - project_id: - description: Identifier of the project this queue belongs to. - example: "00000000-0000-0000-0000-000000000002" - type: string - restrict_to_assignees: - description: Whether annotation access is restricted to assigned users. + editable_timestamps: + default: false + description: Whether responders can edit incident timestamps for incidents of this type. example: false type: boolean - restrict_to_reviewers: - description: Whether annotation access is restricted to queue reviewers. - example: true - type: boolean - reviewer_emails: - description: Email addresses of reviewers who can access the annotation queue. - example: - - "reviewer@example.com" - items: - type: string - type: array - required: - - name - - project_id - type: object - LLMObsAnnotationQueueDataAttributesResponse: - description: Attributes of an Agent Observability annotation queue. - properties: - annotation_schema: - $ref: "#/components/schemas/LLMObsAnnotationSchema" - can_manage_access: - description: Whether the current caller can manage access for the annotation queue. - example: true - readOnly: true + private_incidents: + default: false + description: >- + Whether responders can create private incidents of this type. This is an opt-in setting, distinct from `private_incidents_by_default`, which controls whether incidents are created private automatically. + example: false type: boolean - created_at: - description: Timestamp when the queue was created. - example: "2024-01-15T10:30:00Z" - format: date-time - type: string - created_by: - description: Identifier of the user who created the queue. - example: "00000000-0000-0000-0000-000000000002" - type: string - description: - description: Description of the annotation queue. - example: "Queue for annotating customer support traces" - type: string - modified_at: - description: Timestamp when the queue was last modified. - example: "2024-01-15T10:30:00Z" - format: date-time - type: string - modified_by: - description: Identifier of the user who last modified the queue. - example: "00000000-0000-0000-0000-000000000002" - type: string - name: - description: Name of the annotation queue. - example: "My annotation queue" - type: string - owned_by: - description: Identifier of the user who owns the queue. - example: "00000000-0000-0000-0000-000000000002" - type: string - project_id: - description: Identifier of the project this queue belongs to. - example: "00000000-0000-0000-0000-000000000002" - type: string - restrict_to_assignees: - description: Whether annotation access is restricted to assigned users. + private_incidents_by_default: + default: false + description: Whether incidents of this type are created as private by default. example: false type: boolean - restrict_to_reviewers: - description: Whether annotation access is restricted to queue reviewers. + slug_source: + $ref: "#/components/schemas/IncidentTypeSlugSource" + test_incidents: + default: true + description: Whether incidents of this type are treated as test incidents. example: true type: boolean - reviewer_emails: - description: |- - Email addresses of reviewers for the annotation queue. Returned only - when the caller can manage queue access. - example: - - "reviewer@example.com" - items: - type: string - type: array - required: - - name - - project_id - - description - - created_by - - created_at - - modified_by - - modified_at - - owned_by - - restrict_to_reviewers - - restrict_to_assignees - - can_manage_access - type: object - LLMObsAnnotationQueueDataRequest: - description: Data object for creating an Agent Observability annotation queue. - properties: - attributes: - $ref: "#/components/schemas/LLMObsAnnotationQueueDataAttributesRequest" - type: - $ref: "#/components/schemas/LLMObsAnnotationQueueType" - required: - - type - - attributes type: object - LLMObsAnnotationQueueDataResponse: - description: Data object for an Agent Observability annotation queue. + IncidentTypeCreateData: + description: Incident type data for a create request. properties: attributes: - $ref: "#/components/schemas/LLMObsAnnotationQueueDataAttributesResponse" - id: - description: Unique identifier of the annotation queue. - example: "00000000-0000-0000-0000-000000000001" - type: string + $ref: "#/components/schemas/IncidentTypeAttributes" type: - $ref: "#/components/schemas/LLMObsAnnotationQueueType" + $ref: "#/components/schemas/IncidentTypeType" required: - - id - type - attributes type: object - LLMObsAnnotationQueueInteractionItem: - description: A single interaction to add to an annotation queue. - oneOf: - - $ref: "#/components/schemas/LLMObsTraceInteractionItem" - - $ref: "#/components/schemas/LLMObsDisplayBlockInteractionItem" - LLMObsAnnotationQueueInteractionResponseItem: - description: A single interaction result. - oneOf: - - $ref: "#/components/schemas/LLMObsTraceInteractionResponseItem" - - $ref: "#/components/schemas/LLMObsDisplayBlockInteractionResponseItem" - LLMObsAnnotationQueueInteractionsDataAttributesRequest: - description: Attributes for adding interactions to an annotation queue. + IncidentTypeCreateRequest: + description: Create request for an incident type. properties: - interactions: - description: List of interactions to add to the queue. Must contain at least one item. - example: - - content_id: trace-abc-123 - type: trace - items: - $ref: "#/components/schemas/LLMObsAnnotationQueueInteractionItem" - minItems: 1 - type: array + data: + $ref: "#/components/schemas/IncidentTypeCreateData" required: - - interactions + - data type: object - LLMObsAnnotationQueueInteractionsDataAttributesResponse: - description: Attributes of the interaction addition response. + IncidentTypeListResponse: + description: Response with a list of incident types. properties: - interactions: - description: List of interactions that were processed. - example: - - already_existed: false - content_id: trace-abc-123 - id: "00000000-0000-0000-0000-000000000000" - type: trace + data: + description: An array of incident type objects. items: - $ref: "#/components/schemas/LLMObsAnnotationQueueInteractionResponseItem" + $ref: "#/components/schemas/IncidentTypeObject" type: array required: - - interactions + - data type: object - LLMObsAnnotationQueueInteractionsDataRequest: - description: Data object for adding interactions to an annotation queue. + IncidentTypeObject: + description: Incident type response data. properties: attributes: - $ref: "#/components/schemas/LLMObsAnnotationQueueInteractionsDataAttributesRequest" + $ref: "#/components/schemas/IncidentTypeAttributes" + id: + description: The incident type's ID. + example: "00000000-0000-0000-0000-000000000000" + type: string + relationships: + $ref: "#/components/schemas/IncidentTypeRelationships" type: - $ref: "#/components/schemas/LLMObsAnnotationQueueInteractionsType" + $ref: "#/components/schemas/IncidentTypeType" required: + - id - type - - attributes type: object - LLMObsAnnotationQueueInteractionsDataResponse: - description: Data object for the interaction addition response. + IncidentTypePatchData: + description: Incident type data for a patch request. properties: attributes: - $ref: "#/components/schemas/LLMObsAnnotationQueueInteractionsDataAttributesResponse" + $ref: "#/components/schemas/IncidentTypeUpdateAttributes" id: - description: The queue ID the interactions were added to. - example: "00000000-0000-0000-0000-000000000001" + description: The incident type's ID. + example: "00000000-0000-0000-0000-000000000000" type: string type: - $ref: "#/components/schemas/LLMObsAnnotationQueueInteractionsType" + $ref: "#/components/schemas/IncidentTypeType" required: - id - type - attributes type: object - LLMObsAnnotationQueueInteractionsRequest: - description: Request to add interactions to an Agent Observability annotation queue. + IncidentTypePatchRequest: + description: Patch request for an incident type. properties: data: - $ref: "#/components/schemas/LLMObsAnnotationQueueInteractionsDataRequest" + $ref: "#/components/schemas/IncidentTypePatchData" required: - data type: object - LLMObsAnnotationQueueInteractionsResponse: - description: Response containing the result of adding interactions to an annotation queue. + IncidentTypeRelationships: + additionalProperties: {} + description: The incident type's resource relationships. + properties: + created_by_user: + $ref: "#/components/schemas/RelationshipToUser" + google_meet_configuration: + $ref: "#/components/schemas/GoogleMeetConfigurationReference" + last_modified_by_user: + $ref: "#/components/schemas/RelationshipToUser" + microsoft_teams_configuration: + $ref: "#/components/schemas/MicrosoftTeamsConfigurationReference" + zoom_configuration: + $ref: "#/components/schemas/ZoomConfigurationReference" + type: object + IncidentTypeResponse: + description: Incident type response data. properties: data: - $ref: "#/components/schemas/LLMObsAnnotationQueueInteractionsDataResponse" + $ref: "#/components/schemas/IncidentTypeObject" required: - data type: object - LLMObsAnnotationQueueInteractionsType: - description: Resource type for annotation queue interactions. + IncidentTypeSlugSource: + default: default + description: >- + When set to `servicenow`, incidents will display the ServiceNow record ID instead of the public ID. If no ServiceNow integration exists, the public ID will be displayed. enum: - - interactions - example: interactions + - default + - servicenow + example: default type: string x-enum-varnames: - - INTERACTIONS - LLMObsAnnotationQueueLabelSchemaAttributes: - description: Attributes of an annotation queue label schema. + - DEFAULT + - SERVICENOW + IncidentTypeType: + default: incident_types + description: Incident type resource type. + enum: + - incident_types + example: incident_types + type: string + x-enum-varnames: + - INCIDENT_TYPES + IncidentTypeUpdateAttributes: + description: Incident type's attributes for updates. properties: - annotation_schema: - $ref: "#/components/schemas/LLMObsAnnotationSchema" - required: - - annotation_schema + configuration: + $ref: "#/components/schemas/IncidentTypeConfiguration" + createdAt: + description: Timestamp when the incident type was created. + format: date-time + readOnly: true + type: string + createdBy: + description: A unique identifier that represents the user that created the incident type. + example: "00000000-0000-0000-0000-000000000000" + readOnly: true + type: string + description: + description: Text that describes the incident type. + example: "Any incidents that harm (or have the potential to) the confidentiality, integrity, or availability of our data. Note: This will notify the security team." + type: string + is_default: + description: When true, this incident type will be used as the default type when an incident type is not specified. + example: false + type: boolean + lastModifiedBy: + description: A unique identifier that represents the user that last modified the incident type. + example: "00000000-0000-0000-0000-000000000000" + readOnly: true + type: string + modifiedAt: + description: Timestamp when the incident type was last modified. + format: date-time + readOnly: true + type: string + name: + description: The name of the incident type. + example: "Security Incident" + type: string + prefix: + description: The string that will be prepended to the incident title across the Datadog app. + example: "IR" + readOnly: true + type: string type: object - LLMObsAnnotationQueueLabelSchemaData: - description: Data object for an annotation queue label schema. + IncidentUpdateAttributes: + description: The incident's attributes for an update request. + properties: + customer_impact_end: + description: Timestamp when customers were no longer impacted by the incident. + format: date-time + nullable: true + type: string + customer_impact_scope: + description: A summary of the impact customers experienced during the incident. + example: "Example customer impact scope" + type: string + customer_impact_start: + description: Timestamp when customers began being impacted by the incident. + format: date-time + nullable: true + type: string + customer_impacted: + description: A flag indicating whether the incident caused customer impact. + example: false + type: boolean + detected: + description: Timestamp when the incident was detected. + format: date-time + nullable: true + type: string + fields: + additionalProperties: + $ref: "#/components/schemas/IncidentFieldAttributes" + description: A condensed view of the user-defined fields for which to update selections. + example: {"severity": {"type": "dropdown", "value": "SEV-5"}} + type: object + notification_handles: + description: Notification handles that will be notified of the incident during update. + example: [{"display_name": "Jane Doe", "handle": "@user@email.com"}, {"display_name": "Slack Channel", "handle": "@slack-channel"}, {"display_name": "Incident Workflow", "handle": "@workflow-from-incident"}] + items: + $ref: "#/components/schemas/IncidentNotificationHandle" + type: array + title: + description: The title of the incident, which summarizes what happened. + example: "A test incident title" + type: string + type: object + IncidentUpdateData: + description: Incident data for an update request. properties: attributes: - $ref: "#/components/schemas/LLMObsAnnotationQueueLabelSchemaAttributes" + $ref: "#/components/schemas/IncidentUpdateAttributes" id: - description: Unique identifier of the annotation queue. - example: "00000000-0000-0000-0000-000000000001" + description: The incident's ID. + example: "00000000-0000-0000-4567-000000000000" type: string + relationships: + $ref: "#/components/schemas/IncidentUpdateRelationships" type: - $ref: "#/components/schemas/LLMObsAnnotationQueueType" + $ref: "#/components/schemas/IncidentType" required: - id - type - - attributes type: object - LLMObsAnnotationQueueLabelSchemaResponse: - description: Response containing the label schema of an annotation queue. + IncidentUpdateRelationships: + description: The incident's relationships for an update request. + properties: + commander_user: + $ref: "#/components/schemas/NullableRelationshipToUser" + integrations: + $ref: "#/components/schemas/RelationshipToIncidentIntegrationMetadatas" + postmortem: + $ref: "#/components/schemas/RelationshipToIncidentPostmortem" + type: object + IncidentUpdateRequest: + description: Update request for an incident. properties: data: - $ref: "#/components/schemas/LLMObsAnnotationQueueLabelSchemaData" + $ref: "#/components/schemas/IncidentUpdateData" required: - data type: object - LLMObsAnnotationQueueLabelSchemaUpdateAttributes: - description: Attributes for updating an annotation queue label schema. + IncidentUserAttributes: + description: Attributes of user object returned by the API. properties: - annotation_schema: - $ref: "#/components/schemas/LLMObsAnnotationSchema" - required: - - annotation_schema + email: + description: Email of the user. + type: string + handle: + description: Handle of the user. + type: string + icon: + description: URL of the user's icon. + type: string + name: + description: Name of the user. + nullable: true + type: string + uuid: + description: UUID of the user. + type: string type: object - LLMObsAnnotationQueueLabelSchemaUpdateData: - description: Data object for updating an annotation queue label schema. + IncidentUserData: + description: User object returned by the API. properties: attributes: - $ref: "#/components/schemas/LLMObsAnnotationQueueLabelSchemaUpdateAttributes" + $ref: "#/components/schemas/IncidentUserAttributes" + id: + description: ID of the user. + type: string type: - $ref: "#/components/schemas/LLMObsAnnotationQueueType" - required: - - type - - attributes - type: object - LLMObsAnnotationQueueLabelSchemaUpdateRequest: - description: Request to update the label schema of an annotation queue. - properties: - data: - $ref: "#/components/schemas/LLMObsAnnotationQueueLabelSchemaUpdateData" - required: - - data - type: object - LLMObsAnnotationQueueRequest: - description: Request to create an Agent Observability annotation queue. - properties: - data: - $ref: "#/components/schemas/LLMObsAnnotationQueueDataRequest" - required: - - data + $ref: "#/components/schemas/UsersType" type: object - LLMObsAnnotationQueueResponse: - description: Response containing a single Agent Observability annotation queue. + IncidentUserDefinedFieldAttributesCreateRequest: + description: Attributes for creating an incident user-defined field. properties: - data: - $ref: "#/components/schemas/LLMObsAnnotationQueueDataResponse" + category: + $ref: "#/components/schemas/IncidentUserDefinedFieldCategory" + collected: + $ref: "#/components/schemas/IncidentUserDefinedFieldCollected" + default_value: + description: The default value for the field. Must be one of the valid values when valid_values is set. + example: "critical" + nullable: true + type: string + display_name: + description: The human-readable name shown in the UI. Defaults to a formatted version of the name if not provided. + example: "Root Cause" + type: string + name: + description: The unique identifier of the field. Must start with a letter or digit and contain only letters, digits, underscores, or periods. + example: "root_cause" + type: string + ordinal: + description: A decimal string representing the field's display order in the UI. + example: "1.5" + nullable: true + type: string + required: + description: When true, users must fill out this field on incidents. + example: false + type: boolean + tag_key: + description: For metric tag-type fields only, the metric tag key that powers the autocomplete options. + example: "datacenter" + nullable: true + type: string + type: + $ref: "#/components/schemas/IncidentUserDefinedFieldFieldType" + valid_values: + description: The list of allowed values for dropdown and multiselect fields. Limited to 1000 values. + items: + $ref: "#/components/schemas/IncidentUserDefinedFieldValidValue" + type: array required: - - data + - name + - type type: object - LLMObsAnnotationQueueType: - description: Resource type of an Agent Observability annotation queue. - enum: - - queues - example: queues - type: string - x-enum-varnames: - - QUEUES - LLMObsAnnotationQueueUpdateDataAttributesRequest: - description: Attributes for updating an Agent Observability annotation queue. All fields are optional. + IncidentUserDefinedFieldAttributesResponse: + description: Attributes of an incident user-defined field. properties: - annotation_schema: - $ref: "#/components/schemas/LLMObsAnnotationSchema" - description: - description: Updated description of the annotation queue. - example: "Updated description" + category: + $ref: "#/components/schemas/IncidentUserDefinedFieldCategory" + collected: + $ref: "#/components/schemas/IncidentUserDefinedFieldCollected" + created: + description: Timestamp when the field was created. + example: "2026-03-18T08:40:05.185406Z" + format: date-time + readOnly: true + type: string + default_value: + description: The default value for the field. + example: "critical" + nullable: true + type: string + deleted: + description: Timestamp when the field was soft-deleted, or null if not deleted. + example: + format: date-time + nullable: true + readOnly: true + type: string + display_name: + description: The human-readable name shown in the UI. + example: "Root Cause" + type: string + metadata: + $ref: "#/components/schemas/IncidentUserDefinedFieldMetadata" + modified: + description: Timestamp when the field was last modified. + example: "2026-03-18T08:40:05.185406Z" + format: date-time + nullable: true + readOnly: true type: string name: - description: Updated name of the annotation queue. - example: "Updated queue name" + description: The unique identifier of the field. + example: "root_cause" type: string - restrict_to_assignees: - description: Whether annotation access is restricted to assigned users. + ordinal: + description: A decimal string representing the field's display order in the UI. + example: "1.5" + nullable: true + type: string + required: + description: When true, users must fill out this field on incidents. example: false type: boolean - restrict_to_reviewers: - description: Whether annotation access is restricted to queue reviewers. - example: true + reserved: + description: When true, this field is reserved for system use and cannot be deleted. + example: false + readOnly: true type: boolean - reviewer_emails: - description: Updated email addresses of reviewers who can access the annotation queue. + tag_key: + description: For metric tag-type fields only, the metric tag key that powers the autocomplete options. example: - - "reviewer@example.com" + nullable: true + type: string + type: + description: The data type of the field. 1=dropdown, 2=multiselect, 3=textbox, 4=textarray, 5=metrictag, 6=autocomplete, 7=number, 8=datetime. + example: 3 + format: int32 + maximum: 8 + minimum: 1 + nullable: true + type: integer + valid_values: + description: The list of allowed values for dropdown, multiselect, and autocomplete fields. items: - type: string + $ref: "#/components/schemas/IncidentUserDefinedFieldValidValue" + nullable: true type: array + required: + - category + - collected + - created + - default_value + - deleted + - display_name + - metadata + - modified + - name + - ordinal + - required + - reserved + - tag_key + - type + - valid_values type: object - LLMObsAnnotationQueueUpdateDataRequest: - description: Data object for updating an Agent Observability annotation queue. + IncidentUserDefinedFieldAttributesUpdateRequest: + description: Attributes for updating an incident user-defined field. All fields are optional. + properties: + category: + $ref: "#/components/schemas/IncidentUserDefinedFieldCategory" + collected: + $ref: "#/components/schemas/IncidentUserDefinedFieldCollected" + default_value: + description: The default value for the field. Must be one of the valid values when valid_values is set. + example: "critical" + nullable: true + type: string + display_name: + description: The human-readable name shown in the UI. + example: "Root Cause" + type: string + ordinal: + description: A decimal string representing the field's display order in the UI. + example: "1.5" + nullable: true + type: string + required: + description: When true, users must fill out this field on incidents. + example: false + nullable: true + type: boolean + valid_values: + description: The list of allowed values for dropdown and multiselect fields. Limited to 1000 values. + items: + $ref: "#/components/schemas/IncidentUserDefinedFieldValidValue" + nullable: true + type: array + type: object + IncidentUserDefinedFieldCategory: + description: 'The section in which the field appears: "what_happened" or "why_it_happened". When null, the field appears in the Attributes section.' + enum: + - what_happened + - why_it_happened + example: what_happened + nullable: true + type: string + x-enum-varnames: + - WHAT_HAPPENED + - WHY_IT_HAPPENED + IncidentUserDefinedFieldCollected: + description: The lifecycle stage at which the app prompts users to fill out this field. Cannot be set on required fields. + enum: + - active + - stable + - resolved + - completed + example: active + nullable: true + type: string + x-enum-varnames: + - ACTIVE + - STABLE + - RESOLVED + - COMPLETED + IncidentUserDefinedFieldCreateData: + description: Data for creating an incident user-defined field. properties: attributes: - $ref: "#/components/schemas/LLMObsAnnotationQueueUpdateDataAttributesRequest" + $ref: "#/components/schemas/IncidentUserDefinedFieldAttributesCreateRequest" + relationships: + $ref: "#/components/schemas/IncidentUserDefinedFieldCreateRelationships" type: - $ref: "#/components/schemas/LLMObsAnnotationQueueType" + $ref: "#/components/schemas/IncidentUserDefinedFieldType" required: - type - attributes + - relationships type: object - LLMObsAnnotationQueueUpdateRequest: - description: Request to update an Agent Observability annotation queue. + IncidentUserDefinedFieldCreateRelationships: + description: Relationships for creating an incident user-defined field. + properties: + incident_type: + $ref: "#/components/schemas/RelationshipToIncidentType" + required: + - incident_type + type: object + IncidentUserDefinedFieldCreateRequest: + description: Request body for creating an incident user-defined field. properties: data: - $ref: "#/components/schemas/LLMObsAnnotationQueueUpdateDataRequest" + $ref: "#/components/schemas/IncidentUserDefinedFieldCreateData" required: - data type: object - LLMObsAnnotationQueuesResponse: - description: Response containing a list of Agent Observability annotation queues. + IncidentUserDefinedFieldFieldType: + description: The data type of the field. 1=dropdown, 2=multiselect, 3=textbox, 4=textarray, 5=metrictag, 6=autocomplete, 7=number, 8=datetime. + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + example: 3 + format: int32 + type: integer + x-enum-varnames: + - DROPDOWN + - MULTISELECT + - TEXTBOX + - TEXTARRAY + - METRICTAG + - AUTOCOMPLETE + - NUMBER + - DATETIME + IncidentUserDefinedFieldListMeta: + description: Pagination metadata for the user-defined field list response. + properties: + offset: + description: The offset of the current page. + example: 0 + format: int64 + type: integer + size: + description: The total number of items in the current page. + example: 5 + format: int64 + type: integer + type: object + IncidentUserDefinedFieldListResponse: + description: Response containing a list of incident user-defined fields. properties: data: - description: List of annotation queues. + description: An array of user-defined field objects. items: - $ref: "#/components/schemas/LLMObsAnnotationQueueDataResponse" + $ref: "#/components/schemas/IncidentUserDefinedFieldResponseData" type: array + meta: + $ref: "#/components/schemas/IncidentUserDefinedFieldListMeta" required: - data + - meta type: object - LLMObsAnnotationSchema: - description: Schema defining the labels for an annotation queue. + IncidentUserDefinedFieldMetadata: + description: Metadata for autocomplete-type user-defined fields, describing how to populate autocomplete options. + nullable: true properties: - label_schemas: - description: List of label schema definitions. - items: - $ref: "#/components/schemas/LLMObsLabelSchema" - type: array + category: + description: The category of the autocomplete source. + example: "teams_and_services" + type: string + search_limit_param: + description: The query parameter used to limit the number of autocomplete results. + example: "page[size]" + type: string + search_params: + additionalProperties: {} + description: Additional query parameters to include in the search URL. + type: object + search_query_param: + description: The query parameter used to pass typed input to the search URL. + example: "filter" + type: string + search_result_path: + description: The JSON path to the results in the response body. + example: "$.data[*].attributes.name" + type: string + search_url: + description: The URL used to populate autocomplete options. + example: "/api/v2/incidents/config/services" + type: string required: - - label_schemas + - category + - search_url + - search_query_param + - search_limit_param + - search_result_path + - search_params type: object - LLMObsAnnotationsDataAttributesRequest: - description: Attributes for creating or updating annotations. + IncidentUserDefinedFieldRelationships: + description: Relationships of an incident user-defined field. properties: - annotations: - description: List of annotations to create or update. Must contain at least one item. - items: - $ref: "#/components/schemas/LLMObsUpsertAnnotationItem" - minItems: 1 - type: array + created_by_user: + $ref: "#/components/schemas/RelationshipToUser" + incident_type: + $ref: "#/components/schemas/RelationshipToIncidentType" + last_modified_by_user: + $ref: "#/components/schemas/RelationshipToUser" required: - - annotations + - created_by_user + - last_modified_by_user + - incident_type type: object - LLMObsAnnotationsDataAttributesResponse: - description: Attributes of the annotations response. + IncidentUserDefinedFieldResponse: + description: Response containing a single incident user-defined field. properties: - annotations: - description: Successfully created or updated annotations. - items: - $ref: "#/components/schemas/LLMObsAnnotationItemResponse" - type: array - errors: - description: Partial errors for annotations that could not be processed. - items: - $ref: "#/components/schemas/LLMObsAnnotationError" - type: array + data: + $ref: "#/components/schemas/IncidentUserDefinedFieldResponseData" required: - - annotations + - data type: object - LLMObsAnnotationsDataRequest: - description: Data object for creating or updating annotations. + IncidentUserDefinedFieldResponseData: + description: Data object for an incident user-defined field response. properties: attributes: - $ref: "#/components/schemas/LLMObsAnnotationsDataAttributesRequest" + $ref: "#/components/schemas/IncidentUserDefinedFieldAttributesResponse" + id: + description: The unique identifier of the user-defined field. + example: "00000000-0000-0000-0000-000000000000" + type: string + relationships: + $ref: "#/components/schemas/IncidentUserDefinedFieldRelationships" type: - $ref: "#/components/schemas/LLMObsAnnotationsType" + $ref: "#/components/schemas/IncidentUserDefinedFieldType" required: + - id - type - attributes + - relationships type: object - LLMObsAnnotationsDataResponse: - description: Data object for the annotations response. + IncidentUserDefinedFieldType: + description: The incident user defined fields type. + enum: + - user_defined_field + example: user_defined_field + type: string + x-enum-varnames: + - USER_DEFINED_FIELD + IncidentUserDefinedFieldUpdateData: + description: Data for updating an incident user-defined field. properties: attributes: - $ref: "#/components/schemas/LLMObsAnnotationsDataAttributesResponse" + $ref: "#/components/schemas/IncidentUserDefinedFieldAttributesUpdateRequest" id: - description: The annotation queue ID. - example: "00000000-0000-0000-0000-000000000001" + description: The unique identifier of the user-defined field to update. + example: "00000000-0000-0000-0000-000000000000" type: string type: - $ref: "#/components/schemas/LLMObsAnnotationsType" + $ref: "#/components/schemas/IncidentUserDefinedFieldType" required: - id - type - attributes type: object - LLMObsAnnotationsRequest: - description: Request to create or update annotations on interactions in an annotation queue. + IncidentUserDefinedFieldUpdateRequest: + description: Request body for updating an incident user-defined field. properties: data: - $ref: "#/components/schemas/LLMObsAnnotationsDataRequest" + $ref: "#/components/schemas/IncidentUserDefinedFieldUpdateData" required: - data type: object - LLMObsAnnotationsResponse: - description: Response containing the created or updated annotations. + IncidentUserDefinedFieldValidValue: + description: A valid value for an incident user-defined field. properties: - data: - $ref: "#/components/schemas/LLMObsAnnotationsDataResponse" + description: + description: A detailed description of the valid value. + example: "A critical severity incident." + type: string + display_name: + description: The human-readable display name for this value. + example: "Critical" + type: string + short_description: + description: A short description of the valid value. + example: "Critical" + type: string + value: + description: The identifier that is stored when this option is selected. + example: "critical" + type: string required: - - data + - display_name + - value type: object - LLMObsAnnotationsType: - description: Resource type for Agent Observability annotations. - enum: - - annotations - example: annotations - type: string - x-enum-varnames: - - ANNOTATIONS - LLMObsAnthropicEffort: - description: The effort level for Anthropic inference. - enum: - - low - - medium - - high - - max - example: medium - nullable: true - type: string - x-enum-varnames: - - LOW - - MEDIUM - - HIGH - - MAX - LLMObsAnthropicMetadata: - description: Anthropic-specific metadata for an inference request. + IncidentUserDefinedRoleDataAttributesRequest: + description: Attributes for creating an incident user-defined role. properties: - effort: - $ref: "#/components/schemas/LLMObsAnthropicEffort" - thinking: - $ref: "#/components/schemas/LLMObsAnthropicThinkingConfig" + description: + description: A description of the user-defined role. + example: "The technical lead for the incident." nullable: true + type: string + name: + description: The name of the user-defined role. + example: "Tech Lead" + type: string + policy: + $ref: "#/components/schemas/IncidentUserDefinedRolePolicy" + required: + - name type: object - LLMObsAnthropicThinkingConfig: - description: Configuration for Anthropic extended thinking feature. + IncidentUserDefinedRoleDataAttributesResponse: + description: Attributes of an incident user-defined role. properties: - budget_tokens: - description: Maximum token budget for extended thinking. Required when type is `enabled`. - example: 1024 - format: int64 + created: + description: Timestamp when the role was created. + example: "2024-01-01T00:00:00.000Z" + format: date-time + type: string + description: + description: A description of the user-defined role. + example: "The technical lead for the incident." nullable: true - type: integer - type: - $ref: "#/components/schemas/LLMObsAnthropicThinkingType" - required: - - type - type: object - LLMObsAnthropicThinkingType: - description: The thinking mode for Anthropic extended thinking. - enum: - - enabled - - disabled - - adaptive - example: enabled - type: string - x-enum-varnames: - - ENABLED - - DISABLED - - ADAPTIVE - LLMObsAnyInteractionType: - description: Type of an annotated interaction. - enum: - - trace - - experiment_trace - - session - - display_block - example: trace - type: string - x-enum-varnames: - - TRACE - - EXPERIMENT_TRACE - - SESSION - - DISPLAY_BLOCK - LLMObsAzureOpenAIMetadata: - description: Azure OpenAI-specific metadata for an integration account or inference request. - properties: - deployment_id: - description: The Azure OpenAI deployment ID. - example: "my-gpt4-deployment" type: string - model_version: - description: The model version deployed in Azure. - example: "0613" + modified: + description: Timestamp when the role was last modified. + example: "2024-01-01T00:00:00.000Z" + format: date-time type: string - resource_name: - description: The Azure OpenAI resource name. - example: "my-azure-resource" + name: + description: The name of the user-defined role. + example: "Tech Lead" type: string + policy: + $ref: "#/components/schemas/IncidentUserDefinedRolePolicy" + required: + - name + - policy + - created + - modified type: object - LLMObsBedrockMetadata: - description: Amazon Bedrock-specific metadata for an inference request. + IncidentUserDefinedRoleDataRequest: + description: Data for creating an incident user-defined role. properties: - region: - description: The AWS region for the Bedrock request. - example: "us-east-1" - type: string + attributes: + $ref: "#/components/schemas/IncidentUserDefinedRoleDataAttributesRequest" + relationships: + $ref: "#/components/schemas/IncidentUserDefinedRoleRelationshipsRequest" + type: + $ref: "#/components/schemas/IncidentUserDefinedRoleType" + required: + - type + - attributes + - relationships type: object - LLMObsContentBlock: - anyOf: - - $ref: "#/components/schemas/LLMObsFrontendContentBlock" - - $ref: "#/components/schemas/LLMObsLegacyContentBlock" - description: |- - A single content block rendered inside a `display_block` interaction. - `type` discriminates which other fields are meaningful: - - - `markdown` / `text`: `content` must be a string. - - `header`: `content` must be a string; `level`, when set, must be one of `sm`, `md`, `lg`, `xl`. - - `json`: `content` must be a well-formed JSON value (object, array, or scalar). - - `image`: `url` is required. - - `widget`: `tileDef` is required (any well-formed JSON; the frontend owns the renderable schema). - - `llmobs_trace`: `traceId` is required; `interactionType`, when set, must be `trace` or `experiment_trace`. - - `frontend`: `code` is required and must be a non-empty string; `label` is optional. - - `height`, when set, must be positive. + IncidentUserDefinedRoleDataResponse: + description: Data for an incident user-defined role response. properties: - alt: - description: Alternative text for an `image` block. - example: "Example image" - type: string - code: - $ref: "#/components/schemas/LLMObsFrontendContentBlockCode" - content: - description: |- - Block payload. A string for `markdown`, `header`, and `text`; an - arbitrary JSON value (object, array, or scalar) for `json`. Omitted - for `image`, `widget`, `llmobs_trace`, and `frontend`. - example: "## Triage Instructions" - height: - description: Optional rendered height. Must be positive when set. - example: 240 - format: int64 - type: integer - interactionType: - $ref: "#/components/schemas/LLMObsContentBlockLLMObsTraceInteractionType" - label: - description: Optional label rendered alongside a `frontend` block. - example: "Triage Instructions" - type: string - level: - $ref: "#/components/schemas/LLMObsContentBlockHeaderLevel" - tileDef: - description: |- - Tile definition for a `widget` block. Required for `widget`. The - schema is owned by the frontend renderer. - example: - requests: - - queries: - - data_source: metrics - name: q - query: "avg:system.cpu.user{*}" - response_format: timeseries - type: line - viz: timeseries - timeFrame: - $ref: "#/components/schemas/LLMObsContentBlockTimeFrame" - traceId: - description: Trace identifier. Required for `llmobs_trace` blocks. - example: "69fcc2bb0000000003113989d83069ba" + attributes: + $ref: "#/components/schemas/IncidentUserDefinedRoleDataAttributesResponse" + id: + description: The ID of the user-defined role. + example: "00000000-0000-0000-0000-000000000002" + format: uuid type: string + relationships: + $ref: "#/components/schemas/IncidentUserDefinedRoleRelationshipsResponse" type: - $ref: "#/components/schemas/LLMObsContentBlockType" - url: - description: URL of the image. Required for `image` blocks. - example: "https://example.com/image.png" - type: string + $ref: "#/components/schemas/IncidentUserDefinedRoleType" required: + - id - type + - attributes type: object - LLMObsContentBlockHeaderLevel: - description: Visual size for a `header` block. - enum: - - sm - - md - - lg - - xl - example: md - type: string - x-enum-varnames: - - SM - - MD - - LG - - XL - LLMObsContentBlockLLMObsTraceInteractionType: - description: |- - Upstream interaction type referenced by an `llmobs_trace` block. - Restricted to `trace` or `experiment_trace`. - enum: - - trace - - experiment_trace - example: trace - type: string - x-enum-varnames: - - TRACE - - EXPERIMENT_TRACE - LLMObsContentBlockTimeFrame: - description: Unix-millis time range used by chart blocks. + IncidentUserDefinedRoleIncidentTypeRelationship: + description: Relationship to an incident type for a user-defined role. properties: - end: - description: End of the range, in Unix milliseconds. - example: 1705315800000 - format: int64 - type: integer - start: - description: Start of the range, in Unix milliseconds. - example: 1705312200000 - format: int64 - type: integer + data: + $ref: "#/components/schemas/IncidentUserDefinedRoleIncidentTypeRelationshipData" required: - - start - - end + - data type: object - LLMObsContentBlockType: - description: |- - Discriminator for a single `display_block` content block. Adding a - variant requires coordinated changes in the frontend renderer. - enum: - - markdown - - header - - text - - json - - image - - widget - - llmobs_trace - - frontend - example: markdown - type: string - x-enum-varnames: - - MARKDOWN - - HEADER - - TEXT - - JSON - - IMAGE - - WIDGET - - LLMOBS_TRACE - - FRONTEND - LLMObsContentBlocks: - description: |- - List of content blocks that make up a `display_block` interaction. - Must contain at least one block. - items: - $ref: "#/components/schemas/LLMObsContentBlock" - minItems: 1 - type: array - LLMObsCreatePromptData: - description: Data object for creating an Agent Observability prompt. + IncidentUserDefinedRoleIncidentTypeRelationshipData: + description: Data for the incident type relationship of a user-defined role. properties: - attributes: - $ref: "#/components/schemas/LLMObsCreatePromptDataAttributes" + id: + description: The ID of the incident type. + example: "00000000-0000-0000-0000-000000000001" + format: uuid + type: string type: - $ref: "#/components/schemas/LLMObsPromptType" + description: The type of the resource. + example: "incident_types" + type: string required: + - id - type - - attributes type: object - LLMObsCreatePromptDataAttributes: - description: >- - Attributes for creating an Agent Observability prompt and its first version. `prompt_id` and `template` are required; all other attributes are optional. If `config` is omitted, the first version stores an empty object. Configuration authoring must be enabled for your organization to supply `config`. Otherwise, supplying it, including an empty object, returns HTTP 403. + IncidentUserDefinedRoleIncludedItem: + description: A single included resource in a user-defined role response. + oneOf: + - $ref: "#/components/schemas/IncidentUserData" + - $ref: "#/components/schemas/IncidentTypeObject" + IncidentUserDefinedRoleIncludedResponse: + description: Included resources for an incident user-defined role response. + items: + $ref: "#/components/schemas/IncidentUserDefinedRoleIncludedItem" + type: array + IncidentUserDefinedRolePatchDataAttributesRequest: + description: Attributes for updating an incident user-defined role. properties: - config: - $ref: "#/components/schemas/LLMObsPromptConfig" description: - description: Optional description of the prompt. - type: string - env_ids: - description: >- - Optional feature-flag environment UUIDs the service attempts to enable and configure to use the first version as their default after creation. - items: - type: string - type: array - labels: - deprecated: true - description: >- - Optional labels to attach to the first version. Do not use this attribute for new integrations. - items: - $ref: "#/components/schemas/LLMObsPromptVersionLabel" - type: array - prompt_id: - description: Customer-provided identifier for the new prompt. - example: "customer-support-assistant" - minLength: 1 + description: A description of the user-defined role. + example: "The technical lead for the incident." + nullable: true type: string - template: - $ref: "#/components/schemas/LLMObsPromptTemplate" - title: - description: Optional title of the prompt. + name: + description: The name of the user-defined role. + example: "Tech Lead" type: string - user_version: - description: Optional user-supplied version identifier for the first version. + policy: + $ref: "#/components/schemas/IncidentUserDefinedRolePolicy" + type: object + IncidentUserDefinedRolePatchDataRequest: + description: Data for updating an incident user-defined role. + properties: + attributes: + $ref: "#/components/schemas/IncidentUserDefinedRolePatchDataAttributesRequest" + id: + description: The ID of the user-defined role to update. + example: "00000000-0000-0000-0000-000000000002" + format: uuid type: string + type: + $ref: "#/components/schemas/IncidentUserDefinedRoleType" required: - - prompt_id - - template + - id + - type type: object - LLMObsCreatePromptRequest: - description: Request to create an Agent Observability prompt. + IncidentUserDefinedRolePatchRequest: + description: Request for updating an incident user-defined role. properties: data: - $ref: "#/components/schemas/LLMObsCreatePromptData" + $ref: "#/components/schemas/IncidentUserDefinedRolePatchDataRequest" required: - data type: object - LLMObsCreatePromptResponse: - description: Response returned after creating an Agent Observability prompt. + IncidentUserDefinedRolePolicy: + description: Policy configuration for a user-defined role. properties: - data: - $ref: "#/components/schemas/LLMObsCreatePromptResponseData" + is_single: + description: Whether this role can only be assigned to one responder at a time. + example: true + type: boolean required: - - data + - is_single type: object - LLMObsCreatePromptResponseData: - description: Data object returned after creating an Agent Observability prompt. + IncidentUserDefinedRoleRelationshipsRequest: + description: Relationships for creating a user-defined role. properties: - attributes: - $ref: "#/components/schemas/LLMObsCreatePromptResponseDataAttributes" - id: - description: Unique identifier of the prompt. - example: "4a1a28ff-8a25-5f0f-946f-f48264d772eb" - type: string - type: - $ref: "#/components/schemas/LLMObsPromptType" + incident_type: + $ref: "#/components/schemas/IncidentUserDefinedRoleIncidentTypeRelationship" required: - - id - - type - - attributes + - incident_type type: object - LLMObsCreatePromptResponseDataAttributes: - description: >- - Attributes returned after creating an Agent Observability prompt and its first version. Empty `config` is omitted when configuration authoring is disabled for the organization. Non-empty saved configuration is always returned. + IncidentUserDefinedRoleRelationshipsResponse: + description: Relationships of a user-defined role response. properties: - author: - description: UUID of the user who authored the prompt. - type: string - config: - $ref: "#/components/schemas/LLMObsPromptConfig" - created_at: - description: Timestamp when the prompt was created. - format: date-time - type: string - created_from: - description: >- - Source that created the prompt, such as `ui-registry`, `sdk-registry`, or `sdk-instrumentation`. - example: "sdk-registry" - type: string - datasets: - description: Datasets observed in runs associated with this prompt. - items: - $ref: "#/components/schemas/LLMObsPromptDataset" - type: array - description: - description: Description of the prompt. - type: string - extracted_from: - description: Source prompt from which this prompt was extracted, when applicable. - type: string - in_registry: - description: Whether the prompt is a registry entry (as opposed to a code-discovered prompt). - example: true - type: boolean - last_seen_at: - description: Timestamp of the most recent observed run of this prompt. - format: date-time - type: string - last_version_created_at: - description: Timestamp when the most recent version of the prompt was created. - format: date-time - type: string - ml_app: - description: The ML application this prompt is associated with. - type: string - ml_apps: - description: ML applications observed running this prompt. - items: - type: string - type: array - num_versions: - description: Number of versions of the prompt. - example: 1 - format: int64 - type: integer - prompt_id: - description: Customer-provided identifier of the prompt. - example: "customer-support-assistant" - type: string - source: - $ref: "#/components/schemas/LLMObsPromptResponseSource" - tags: - description: Tags observed on runs of this prompt. - items: - type: string - type: array - title: - description: Title of the prompt. - type: string - required: - - prompt_id - - source - - num_versions - - in_registry - - created_from + created_by_user: + $ref: "#/components/schemas/RelationshipToUser" + incident_type: + $ref: "#/components/schemas/IncidentUserDefinedRoleIncidentTypeRelationship" + last_modified_by_user: + $ref: "#/components/schemas/RelationshipToUser" type: object - LLMObsCreatePromptVersionData: - description: Data object for creating an Agent Observability prompt version. + IncidentUserDefinedRoleRequest: + description: Request for creating an incident user-defined role. properties: - attributes: - $ref: "#/components/schemas/LLMObsCreatePromptVersionDataAttributes" - type: - $ref: "#/components/schemas/LLMObsPromptVersionType" + data: + $ref: "#/components/schemas/IncidentUserDefinedRoleDataRequest" required: - - type - - attributes + - data type: object - LLMObsCreatePromptVersionDataAttributes: - description: >- - Attributes for creating a new version of an Agent Observability prompt. `template` is required; all other attributes are optional. If `config` is omitted, the latest version's configuration is carried forward. An explicit empty object clears it. Configuration authoring must be enabled for your organization to supply `config`. Otherwise, supplying it, including an empty object, returns HTTP 403. Omitting `config` still carries forward the latest configuration. + IncidentUserDefinedRoleResponse: + description: Response with a single incident user-defined role. properties: - config: - $ref: "#/components/schemas/LLMObsPromptConfig" - description: - description: Optional description of this version. - type: string - env_ids: - description: >- - Optional feature-flag environment UUIDs the service attempts to enable and configure to use this version as their default after creation. - items: - type: string - type: array - labels: - deprecated: true - description: Optional labels to attach to this version. Do not use this attribute for new integrations. - items: - $ref: "#/components/schemas/LLMObsPromptVersionLabel" - type: array - template: - $ref: "#/components/schemas/LLMObsPromptTemplate" - user_version: - description: Optional user-supplied version identifier for this version. - type: string + data: + $ref: "#/components/schemas/IncidentUserDefinedRoleDataResponse" + included: + $ref: "#/components/schemas/IncidentUserDefinedRoleIncludedResponse" required: - - template + - data type: object - LLMObsCreatePromptVersionRequest: - description: Request to create a new version of an Agent Observability prompt. + IncidentUserDefinedRoleType: + description: Incident user-defined role resource type. + enum: + - incident_user_defined_roles + example: incident_user_defined_roles + type: string + x-enum-varnames: + - INCIDENT_USER_DEFINED_ROLES + IncidentUserDefinedRolesDataResponse: + description: List of incident user-defined role data objects. + items: + $ref: "#/components/schemas/IncidentUserDefinedRoleDataResponse" + type: array + IncidentUserDefinedRolesResponse: + description: Response with a list of incident user-defined roles. properties: data: - $ref: "#/components/schemas/LLMObsCreatePromptVersionData" + $ref: "#/components/schemas/IncidentUserDefinedRolesDataResponse" + included: + $ref: "#/components/schemas/IncidentUserDefinedRoleIncludedResponse" required: - data type: object - LLMObsCursorMeta: - description: Pagination cursor metadata. + IncidentsResponse: + description: Response with a list of incidents. properties: - after: - description: Cursor for the next page of results. - nullable: true - type: string + data: + description: An array of incidents. + example: [{"attributes": {"created": "2020-04-21T15:34:08.627205+00:00", "creation_idempotency_key": null, "customer_impact_duration": 0, "customer_impact_end": null, "customer_impact_scope": null, "customer_impact_start": null, "customer_impacted": false, "detected": "2020-04-14T00:00:00+00:00", "incident_type_uuid": "00000000-0000-0000-0000-000000000001", "modified": "2020-09-17T14:16:58.696424+00:00", "public_id": 1, "resolved": null, "severity": "SEV-1", "time_to_detect": 0, "time_to_internal_response": 0, "time_to_repair": 0, "time_to_resolve": 0, "title": "Example Incident"}, "id": "00000000-aaaa-0000-0000-000000000000", "relationships": {"attachments": {"data": [{"id": "00000000-9999-0000-0000-000000000000", "type": "incident_attachments"}, {"id": "00000000-1234-0000-0000-000000000000", "type": "incident_attachments"}]}, "commander_user": {"data": {"id": "00000000-0000-0000-cccc-000000000000", "type": "users"}}, "created_by_user": {"data": {"id": "00000000-0000-0000-cccc-000000000000", + "type": "users"}}, "integrations": {"data": [{"id": "00000000-0000-0000-4444-000000000000", "type": "incident_integrations"}, {"id": "00000000-0000-0000-5555-000000000000", "type": "incident_integrations"}]}, "last_modified_by_user": {"data": {"id": "00000000-0000-0000-cccc-000000000000", "type": "users"}}}, "type": "incidents"}, {"attributes": {"created": "2020-04-21T15:34:08.627205+00:00", "creation_idempotency_key": null, "customer_impact_duration": 0, "customer_impact_end": null, "customer_impact_scope": null, "customer_impact_start": null, "customer_impacted": false, "detected": "2020-04-14T00:00:00+00:00", "incident_type_uuid": "00000000-0000-0000-0000-000000000002", "modified": "2020-09-17T14:16:58.696424+00:00", "public_id": 2, "resolved": null, "severity": "SEV-5", "time_to_detect": 0, "time_to_internal_response": 0, "time_to_repair": 0, "time_to_resolve": 0, "title": "Example Incident 2"}, "id": "00000000-1111-0000-0000-000000000000", "relationships": {"attachments": { + "data": [{"id": "00000000-9999-0000-0000-000000000000", "type": "incident_attachments"}]}, "commander_user": {"data": {"id": "00000000-aaaa-0000-0000-000000000000", "type": "users"}}, "created_by_user": {"data": {"id": "00000000-aaaa-0000-0000-000000000000", "type": "users"}}, "integrations": {"data": [{"id": "00000000-0000-0000-0001-000000000000", "type": "incident_integrations"}, {"id": "00000000-0000-0000-0002-000000000000", "type": "incident_integrations"}]}, "last_modified_by_user": {"data": {"id": "00000000-aaaa-0000-0000-000000000000", "type": "users"}}}, "type": "incidents"}] + items: + $ref: "#/components/schemas/IncidentResponseData" + type: array + included: + description: Included related resources that the user requested. + items: + $ref: "#/components/schemas/IncidentResponseIncludedItem" + readOnly: true + type: array + meta: + $ref: "#/components/schemas/IncidentResponseMeta" + required: + - data type: object - LLMObsCustomEvalConfigAssessmentCriteria: - description: Criteria used to assess the pass/fail result of a custom evaluator. + IncludeType: + description: Supported include types. + enum: + - schema + - raw_schema + - oncall + - incident + - relation + type: string + x-enum-varnames: + - SCHEMA + - RAW_SCHEMA + - ONCALL + - INCIDENT + - RELATION + InputSchema: + description: "A list of input parameters for the workflow. Input parameters are available under the `Trigger` object and can be referenced in workflow steps using `{{ Trigger. }}`." properties: - max_threshold: - description: Maximum numeric threshold for a passing result. - example: 1.0 - format: double - nullable: true - type: number - min_threshold: - description: Minimum numeric threshold for a passing result. - example: 0.7 - format: double - nullable: true - type: number - pass_values: - description: Specific output values considered as a passing result. - example: - - "pass" - - "yes" + parameters: + description: The `InputSchema` `parameters`. items: - description: A value considered as a passing result. - type: string - nullable: true + $ref: "#/components/schemas/InputSchemaParameters" type: array - pass_when: - description: When true, a boolean output of true is treated as passing. - example: true - nullable: true - type: boolean type: object - LLMObsCustomEvalConfigAttributes: - description: Attributes of a custom Agent Observability evaluator configuration. + InputSchemaParameters: + description: The definition of `InputSchemaParameters` object. properties: - category: - description: Category of the evaluator. - example: "Custom" - type: string - created_at: - description: Timestamp when the evaluator configuration was created. - example: "2024-01-15T10:30:00Z" - format: date-time + allowExtraValues: + description: The `InputSchemaParameters` `allowExtraValues`. + type: boolean + allowedValues: + description: The `InputSchemaParameters` `allowedValues`. + defaultValue: + description: The `InputSchemaParameters` `defaultValue`. + description: + description: The `InputSchemaParameters` `description`. type: string - created_by: - $ref: "#/components/schemas/LLMObsCustomEvalConfigUser" - eval_name: - description: Name of the custom evaluator. - example: "my-custom-evaluator" + label: + description: The `InputSchemaParameters` `label`. type: string - last_updated_by: - $ref: "#/components/schemas/LLMObsCustomEvalConfigUser" - llm_judge_config: - $ref: "#/components/schemas/LLMObsCustomEvalConfigLLMJudgeConfig" - llm_provider: - $ref: "#/components/schemas/LLMObsCustomEvalConfigLLMProvider" - target: - $ref: "#/components/schemas/LLMObsCustomEvalConfigTarget" - updated_at: - description: Timestamp when the evaluator configuration was last updated. - example: "2024-01-15T10:30:00Z" - format: date-time + name: + description: The `InputSchemaParameters` `name`. + example: "" + minLength: 1 type: string + type: + $ref: "#/components/schemas/InputSchemaParametersType" required: - - eval_name - - created_at - - updated_at + - name + - type type: object - LLMObsCustomEvalConfigBedrockOptions: - description: AWS Bedrock-specific options for LLM provider configuration. + InputSchemaParametersType: + description: The definition of `InputSchemaParametersType` object. + enum: + - STRING + - NUMBER + - BOOLEAN + - OBJECT + - ARRAY_STRING + - ARRAY_NUMBER + - ARRAY_BOOLEAN + - ARRAY_OBJECT + example: STRING + type: string + x-enum-varnames: + - STRING + - NUMBER + - BOOLEAN + - OBJECT + - ARRAY_STRING + - ARRAY_NUMBER + - ARRAY_BOOLEAN + - ARRAY_OBJECT + IntakePayloadAccepted: + description: The payload accepted for intake. properties: - inference_profile: - description: Bedrock inference profile identifier, such as an application inference profile ARN. - example: "arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/abc123" - type: string - region: - description: AWS region for Bedrock. - example: "us-east-1" - type: string + errors: + description: A list of errors. + items: + description: An empty error list. + type: string + type: array type: object - LLMObsCustomEvalConfigData: - description: Data object for a custom Agent Observability evaluator configuration. + Integration: + description: Integration resource object. properties: attributes: - $ref: "#/components/schemas/LLMObsCustomEvalConfigAttributes" + $ref: "#/components/schemas/IntegrationAttributes" id: - description: Unique name identifier of the evaluator configuration. - example: "my-custom-evaluator" + description: The unique identifier of the integration. + example: "calico" type: string + links: + $ref: "#/components/schemas/IntegrationLinks" type: - $ref: "#/components/schemas/LLMObsCustomEvalConfigType" + $ref: "#/components/schemas/IntegrationType" required: - - id - type + - id - attributes type: object - LLMObsCustomEvalConfigEvalScope: - description: Scope at which to evaluate spans. + IntegrationAccountDataflowHealth: + description: Collection health of a single dataflow. enum: - - span - - trace - - session - example: "span" + - DATAFLOW_HEALTH_OK + - DATAFLOW_HEALTH_BROKEN + - DATAFLOW_HEALTH_UNKNOWN + example: DATAFLOW_HEALTH_OK type: string x-enum-varnames: - - SPAN - - TRACE - - SESSION - LLMObsCustomEvalConfigInferenceParams: - description: LLM inference parameters for a custom evaluator. + - OK + - BROKEN + - UNKNOWN + IntegrationAccountDataflowStatus: + description: Read-only collection status of a dataflow. properties: - frequency_penalty: - description: Frequency penalty to reduce repetition. - example: 0.0 - format: double - type: number - max_tokens: - description: Maximum number of tokens to generate. - example: 1024 - format: int64 - type: integer - presence_penalty: - description: Presence penalty to reduce repetition. - example: 0.0 - format: double - type: number - temperature: - description: Sampling temperature for the LLM. - example: 0.7 - format: double - type: number - top_k: - description: Top-k sampling parameter. - example: 50 - format: int64 - type: integer - top_p: - description: Top-p (nucleus) sampling parameter. - example: 1.0 - format: double - type: number + health: + $ref: "#/components/schemas/IntegrationAccountDataflowHealth" + message: + description: Human-readable detail, populated when the dataflow is not healthy. + example: "" + type: string + updated_at: + description: Time the status was last computed. + example: "2026-06-25T08:30:50Z" + format: date-time + type: string + readOnly: true type: object - LLMObsCustomEvalConfigIntegrationProvider: - description: Name of the LLM integration provider. + IntegrationAccountType: + default: integration-account + description: The type of the integration account resource. Always `integration-account`. enum: - - openai - - amazon-bedrock - - anthropic - - azure-openai - - vertex-ai - - llm-proxy - example: "openai" + - integration-account + example: integration-account type: string x-enum-varnames: - - OPENAI - - AMAZON_BEDROCK - - ANTHROPIC - - AZURE_OPENAI - - VERTEX_AI - - LLM_PROXY - LLMObsCustomEvalConfigLLMJudgeConfig: - description: LLM judge configuration for a custom evaluator. + - INTEGRATION_ACCOUNT + IntegrationAttributes: + description: Attributes for an integration. properties: - assessment_criteria: - $ref: "#/components/schemas/LLMObsCustomEvalConfigAssessmentCriteria" - context_query: - description: Query used to extract additional context for the evaluation. - example: "@input.context" - nullable: true - type: string - inference_params: - $ref: "#/components/schemas/LLMObsCustomEvalConfigInferenceParams" - last_used_library_prompt_template_name: - description: Name of the last library prompt template used. - example: "sentiment-analysis-v1" - nullable: true - type: string - modified_library_prompt_template: - description: Whether the library prompt template was modified. - example: false - nullable: true - type: boolean - output_schema: - additionalProperties: {} - description: JSON schema describing the expected output format of the LLM judge. - nullable: true - type: object - parsing_type: - $ref: "#/components/schemas/LLMObsCustomEvalConfigParsingType" - prompt_template: - description: List of messages forming the LLM judge prompt template. + categories: + description: List of categories associated with the integration. + example: + - "Category::Kubernetes" + - "Category::Log Collection" items: - $ref: "#/components/schemas/LLMObsCustomEvalConfigPromptMessage" + description: A category associated with the integration. + type: string type: array - target_query: - description: Query used to extract the target value to evaluate. - example: "@output.value" - nullable: true + description: + description: A description of the integration. + example: "Calico is a networking and network security solution for containers." type: string - user_specified_json_post_processing_function: - description: User-provided function applied to post-process the JSON output of the LLM judge. - nullable: true + installed: + description: Whether the integration is installed. + example: true + type: boolean + title: + description: The name of the integration. + example: "calico" type: string required: - - inference_params + - title + - description + - categories + - installed type: object - LLMObsCustomEvalConfigLLMProvider: - description: LLM provider configuration for a custom evaluator. + IntegrationIncident: + description: Incident integration settings. properties: - bedrock: - $ref: "#/components/schemas/LLMObsCustomEvalConfigBedrockOptions" - integration_account_id: - description: Integration account identifier. - example: "my-account-id" + auto_escalation_query: + description: Query for auto-escalation. type: string - integration_provider: - $ref: "#/components/schemas/LLMObsCustomEvalConfigIntegrationProvider" - model_name: - description: Name of the LLM model. - example: "gpt-4o" + default_incident_commander: + description: Default incident commander. type: string - vertex_ai: - $ref: "#/components/schemas/LLMObsCustomEvalConfigVertexAIOptions" - type: object - LLMObsCustomEvalConfigListResponse: - description: Response containing a list of custom Agent Observability evaluator configurations. - properties: - data: - description: List of custom evaluator configuration data objects. + enabled: + description: Whether incident integration is enabled. + type: boolean + field_mappings: + description: List of mappings between incident fields and case fields. items: - $ref: "#/components/schemas/LLMObsCustomEvalConfigData" + $ref: "#/components/schemas/IntegrationIncidentFieldMappingsItems" type: array - required: - - data + incident_type: + description: Incident type. + type: string + severity_config: + $ref: "#/components/schemas/IntegrationIncidentSeverityConfig" type: object - LLMObsCustomEvalConfigParsingType: - description: Output parsing type for a custom LLM judge evaluator. - enum: - - structured_output - - json - - keyword_search - example: "structured_output" - type: string - x-enum-varnames: - - STRUCTURED_OUTPUT - - JSON - - KEYWORD_SEARCH - LLMObsCustomEvalConfigPromptContent: - description: A content block within a prompt message. + IntegrationIncidentFieldMappingsItems: + description: Mapping between an incident user-defined field and a case field. properties: - type: - description: Content block type. - example: "text" + case_field: + description: The case field to map the incident field value to. + type: string + incident_user_defined_field_id: + description: The identifier of the incident user-defined field to map from. type: string - value: - $ref: "#/components/schemas/LLMObsCustomEvalConfigPromptContentValue" - required: - - type - - value type: object - LLMObsCustomEvalConfigPromptContentValue: - description: Value of a prompt message content block. + IntegrationIncidentSeverityConfig: + description: Severity configuration for mapping incident priorities to case priorities. properties: - text: - description: Text content of the message block. - example: "What is the sentiment of this review?" - type: string - tool_call: - $ref: "#/components/schemas/LLMObsCustomEvalConfigPromptToolCall" - tool_call_result: - $ref: "#/components/schemas/LLMObsCustomEvalConfigPromptToolResult" + priority_mapping: + additionalProperties: + type: string + description: Mapping of incident severity values to case priority values. + type: object type: object - LLMObsCustomEvalConfigPromptMessage: - description: A message in the prompt template for a custom LLM judge evaluator. + IntegrationJira: + description: Jira integration settings. properties: - content: - description: Text content of the message. - example: "Rate the quality of the following response:" - type: string - contents: - description: Multi-part content blocks for the message. - items: - $ref: "#/components/schemas/LLMObsCustomEvalConfigPromptContent" - type: array - role: - description: Role of the message author. - example: "user" - type: string - required: - - role + auto_creation: + $ref: "#/components/schemas/IntegrationJiraAutoCreation" + enabled: + description: Whether Jira integration is enabled. + type: boolean + metadata: + $ref: "#/components/schemas/IntegrationJiraMetadata" + sync: + $ref: "#/components/schemas/IntegrationJiraSync" type: object - LLMObsCustomEvalConfigPromptToolCall: - description: A tool call within a prompt message. + IntegrationJiraAutoCreation: + description: Auto-creation settings for Jira issues from cases. properties: - arguments: - description: JSON-encoded arguments for the tool call. - example: '{"location": "San Francisco"}' - type: string - id: - description: Unique identifier of the tool call. - example: "call_abc123" - type: string - name: - description: Name of the tool being called. - example: "get_weather" - type: string - type: - description: Type of the tool call. - example: "function" - type: string + enabled: + description: Whether automatic Jira issue creation is enabled. + type: boolean type: object - LLMObsCustomEvalConfigPromptToolResult: - description: A tool call result within a prompt message. + IntegrationJiraMetadata: + description: Metadata for connecting a case management project to a Jira project. properties: - name: - description: Name of the tool that produced this result. - example: "get_weather" - type: string - result: - description: The result returned by the tool. - example: "sunny, 72F" + account_id: + description: The Jira account identifier. type: string - tool_id: - description: Identifier of the tool call this result corresponds to. - example: "call_abc123" + issue_type_id: + description: The Jira issue type identifier to use when creating issues. type: string - type: - description: Type of the tool result. - example: "function" + project_id: + description: The Jira project identifier to associate with this case project. type: string type: object - LLMObsCustomEvalConfigResponse: - description: Response containing a custom Agent Observability evaluator configuration. + IntegrationJiraSync: + description: Synchronization configuration for Jira integration. properties: - data: - $ref: "#/components/schemas/LLMObsCustomEvalConfigData" - required: - - data + enabled: + description: Whether Jira field synchronization is enabled. + type: boolean + properties: + $ref: "#/components/schemas/IntegrationJiraSyncProperties" type: object - LLMObsCustomEvalConfigTarget: - description: Target application configuration for a custom evaluator. + IntegrationJiraSyncDueDate: + description: Due date synchronization configuration for Jira integration. properties: - application_name: - description: Name of the ML application this evaluator targets. - example: "my-llm-app" + jira_field_id: + description: The Jira field identifier used to store the due date. type: string - enabled: - description: Whether the evaluator is active for the target application. - example: true - type: boolean - eval_scope: - $ref: "#/components/schemas/LLMObsCustomEvalConfigEvalScope" - nullable: true - experiment_project_ids: - description: Experiment project IDs this evaluator is scoped to. - items: - description: An experiment project ID. - format: uuid - type: string - type: array - filter: - description: Filter expression to select which spans to evaluate. - example: "@service:my-service" - nullable: true + sync_type: + description: The type of synchronization to apply for the due date field. type: string - root_spans_only: - description: When true, only root spans are evaluated. - example: true - nullable: true - type: boolean - sampling_percentage: - description: Percentage of traces to evaluate. Must be greater than 0 and at most 100. - example: 50.0 - format: double - nullable: true - type: number - required: - - application_name - - enabled type: object - LLMObsCustomEvalConfigType: - description: Type of the custom Agent Observability evaluator configuration resource. - enum: - - evaluator_config - example: "evaluator_config" - type: string - x-enum-varnames: - - EVALUATOR_CONFIG - LLMObsCustomEvalConfigUpdateAttributes: - description: Attributes for creating or updating a custom Agent Observability evaluator configuration. + IntegrationJiraSyncProperties: + description: Field synchronization properties for Jira integration. properties: - category: - description: Category of the evaluator. - example: "Custom" - type: string - eval_name: - description: Name of the custom evaluator. If provided, must match the eval_name path parameter. - example: "my-custom-evaluator" - type: string - llm_judge_config: - $ref: "#/components/schemas/LLMObsCustomEvalConfigLLMJudgeConfig" - llm_provider: - $ref: "#/components/schemas/LLMObsCustomEvalConfigLLMProvider" - target: - $ref: "#/components/schemas/LLMObsCustomEvalConfigTarget" - required: - - target + assignee: + $ref: "#/components/schemas/SyncProperty" + comments: + $ref: "#/components/schemas/SyncProperty" + custom_fields: + additionalProperties: + $ref: "#/components/schemas/IntegrationJiraSyncPropertiesCustomFieldsAdditionalProperties" + description: Map of custom field identifiers to their sync configurations. + type: object + description: + $ref: "#/components/schemas/SyncProperty" + due_date: + $ref: "#/components/schemas/IntegrationJiraSyncDueDate" + priority: + $ref: "#/components/schemas/SyncPropertyWithMapping" + status: + $ref: "#/components/schemas/SyncPropertyWithMapping" + title: + $ref: "#/components/schemas/SyncProperty" type: object - LLMObsCustomEvalConfigUpdateData: - description: Data object for creating or updating a custom Agent Observability evaluator configuration. + IntegrationJiraSyncPropertiesCustomFieldsAdditionalProperties: + description: Synchronization configuration for a Jira custom field. properties: - attributes: - $ref: "#/components/schemas/LLMObsCustomEvalConfigUpdateAttributes" - id: - description: Name of the evaluator. If provided, must match the eval_name path parameter. - example: "my-custom-evaluator" + sync_type: + description: The type of synchronization to apply for this custom field. type: string - type: - $ref: "#/components/schemas/LLMObsCustomEvalConfigType" - required: - - type - - attributes - type: object - LLMObsCustomEvalConfigUpdateRequest: - description: Request to create or update a custom Agent Observability evaluator configuration. - properties: - data: - $ref: "#/components/schemas/LLMObsCustomEvalConfigUpdateData" - required: - - data + value: + $ref: "#/components/schemas/AnyValue" type: object - LLMObsCustomEvalConfigUser: - description: A Datadog user associated with a custom evaluator configuration. + IntegrationLinks: + description: Links for the integration resource. properties: - email: - description: Email address of the user. - example: "user@example.com" + self: + description: Link to the integration resource. + example: "/integrations?integrationId=calico" type: string type: object - LLMObsCustomEvalConfigVertexAIOptions: - description: Google Vertex AI-specific options for LLM provider configuration. + IntegrationMonitor: + description: Monitor integration settings. properties: - location: - description: Google Cloud region. - example: "us-central1" + auto_resolve_enabled: + description: Whether auto-resolve is enabled. + type: boolean + case_type_id: + description: Case type ID for monitor integration. type: string - project: - description: Google Cloud project ID. - example: "my-gcp-project" + enabled: + description: Whether monitor integration is enabled. + type: boolean + handle: + description: Monitor handle. type: string type: object - LLMObsDatasetBatchUpdateDataAttributesRequest: - description: Attributes for batch-updating records in an Agent Observability dataset. + IntegrationOnCall: + description: On-Call integration settings. properties: - create_new_version: - description: Whether to create a new dataset version when applying the batch update. Defaults to `true`. - example: true + auto_assign_on_call: + description: Whether to auto-assign on-call. type: boolean - delete_records: - $ref: "#/components/schemas/LLMObsDatasetBatchUpdateDeleteRecords" - insert_records: - $ref: "#/components/schemas/LLMObsDatasetBatchUpdateInsertRecords" - tags: - $ref: "#/components/schemas/LLMObsDatasetRecordTagsList" - update_records: - $ref: "#/components/schemas/LLMObsDatasetBatchUpdateUpdateRecords" + enabled: + description: Whether On-Call integration is enabled. + type: boolean + escalation_queries: + description: List of escalation queries for routing cases to on-call responders. + items: + $ref: "#/components/schemas/IntegrationOnCallEscalationQueriesItems" + type: array type: object - LLMObsDatasetBatchUpdateDataRequest: - description: Data object for batch-updating records in an Agent Observability dataset. + IntegrationOnCallEscalationQueriesItems: + description: An On-Call escalation query entry used to route cases to on-call responders. properties: - attributes: - $ref: "#/components/schemas/LLMObsDatasetBatchUpdateDataAttributesRequest" + enabled: + description: Whether this escalation query is enabled. + type: boolean id: - description: Unique identifier of the dataset. - example: "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d" + description: Unique identifier of the escalation query. type: string - type: - $ref: "#/components/schemas/LLMObsDatasetType" - required: - - id - - type - - attributes - type: object - LLMObsDatasetBatchUpdateDeleteRecords: - description: Record IDs to delete. - items: - description: A record ID to delete. - type: string - type: array - LLMObsDatasetBatchUpdateInsertRecord: - description: A record to insert as part of a batch update on an Agent Observability dataset. - properties: - expected_output: - $ref: "#/components/schemas/AnyValue" - id: - description: Optional user-provided identifier for the record. If omitted, the server generates an identifier. - example: "rec-7c3f5a1b-9e2d-4f8a-b1c6-3d7e9f0a2b4c" + query: + description: The query used to match cases for escalation. type: string - input: - $ref: "#/components/schemas/AnyValue" - metadata: - additionalProperties: {} - description: Arbitrary metadata associated with the record. - type: object - tag_operations: - $ref: "#/components/schemas/LLMObsDatasetRecordTagOperations" - tags: - $ref: "#/components/schemas/LLMObsDatasetRecordTagsList" - required: - - input - type: object - LLMObsDatasetBatchUpdateInsertRecords: - description: Records to insert. - items: - $ref: "#/components/schemas/LLMObsDatasetBatchUpdateInsertRecord" - type: array - LLMObsDatasetBatchUpdateRequest: - description: Request to batch-insert, update, and delete records in an Agent Observability dataset. - properties: - data: - $ref: "#/components/schemas/LLMObsDatasetBatchUpdateDataRequest" - required: - - data + target: + $ref: "#/components/schemas/IntegrationOnCallEscalationQueriesItemsTarget" type: object - LLMObsDatasetBatchUpdateUpdateRecord: - description: A record update payload as part of a batch update on an Agent Observability dataset. + IntegrationOnCallEscalationQueriesItemsTarget: + description: The target recipient for an On-Call escalation query. properties: - expected_output: - $ref: "#/components/schemas/AnyValue" - id: - description: Unique identifier of the record to update. - example: "rec-7c3f5a1b-9e2d-4f8a-b1c6-3d7e9f0a2b4c" + dynamic_team_paging: + description: Whether to use dynamic team paging for escalation. + type: boolean + team_id: + description: The identifier of the team to escalate to. + type: string + user_id: + description: The identifier of the user to escalate to. type: string - input: - $ref: "#/components/schemas/AnyValue" - metadata: - additionalProperties: {} - description: Updated metadata associated with the record. - type: object - tag_operations: - $ref: "#/components/schemas/LLMObsDatasetRecordTagOperations" - required: - - id type: object - LLMObsDatasetBatchUpdateUpdateRecords: - description: Records to update by ID. - items: - $ref: "#/components/schemas/LLMObsDatasetBatchUpdateUpdateRecord" - type: array - LLMObsDatasetCloneDataAttributesRequest: - description: Attributes for cloning an Agent Observability dataset. + IntegrationServiceNow: + description: ServiceNow integration settings. properties: - description: - description: Description of the cloned dataset. - example: "Clone of the original dataset for experimentation." + assignment_group: + description: Assignment group. type: string - name: - description: Name of the cloned dataset. - example: "My cloned dataset" + auto_creation: + $ref: "#/components/schemas/IntegrationServiceNowAutoCreation" + enabled: + description: Whether ServiceNow integration is enabled. + type: boolean + instance_name: + description: ServiceNow instance name. type: string - required: - - name + sync_config: + $ref: "#/components/schemas/IntegrationServiceNowSyncConfig" type: object - LLMObsDatasetCloneDataRequest: - description: Data object for cloning an Agent Observability dataset. + IntegrationServiceNowAutoCreation: + description: Auto-creation settings for ServiceNow incidents from cases. properties: - attributes: - $ref: "#/components/schemas/LLMObsDatasetCloneDataAttributesRequest" - id: - description: Identifier of the source dataset to clone. - example: "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d" - type: string - type: - $ref: "#/components/schemas/LLMObsDatasetType" - required: - - id - - type - - attributes + enabled: + description: Whether automatic ServiceNow incident creation is enabled. + type: boolean type: object - LLMObsDatasetCloneRequest: - description: Request to clone an Agent Observability dataset. + IntegrationServiceNowSyncConfig: + description: Synchronization configuration for ServiceNow integration. properties: - data: - $ref: "#/components/schemas/LLMObsDatasetCloneDataRequest" - required: - - data + enabled: + description: Whether ServiceNow synchronization is enabled. + type: boolean + properties: + $ref: "#/components/schemas/IntegrationServiceNowSyncConfig139772721534496" type: object - LLMObsDatasetDataAttributesRequest: - description: Attributes for creating an Agent Observability dataset. + IntegrationServiceNowSyncConfig139772721534496: + description: Field-level synchronization properties for ServiceNow integration. properties: - description: - description: Description of the dataset. - type: string - metadata: - additionalProperties: {} - description: Arbitrary metadata associated with the dataset. + comments: + $ref: "#/components/schemas/SyncProperty" + priority: + $ref: "#/components/schemas/IntegrationServiceNowSyncConfigPriority" + status: + $ref: "#/components/schemas/SyncPropertyWithMapping" + type: object + IntegrationServiceNowSyncConfigPriority: + description: Priority synchronization configuration for ServiceNow integration. + properties: + impact_mapping: + additionalProperties: + type: string + description: Mapping of case priority values to ServiceNow impact values. type: object - name: - description: Name of the dataset. - example: "My LLM Dataset" + sync_type: + description: The type of synchronization to apply for priority. type: string - required: - - name + urgency_mapping: + additionalProperties: + type: string + description: Mapping of case priority values to ServiceNow urgency values. + type: object type: object - LLMObsDatasetDataAttributesResponse: - description: Attributes of an Agent Observability dataset. + IntegrationType: + default: integration + description: Integration resource type. + enum: + - integration + example: integration + type: string + x-enum-varnames: + - INTEGRATION + InterfaceAttributes: + description: The interface attributes properties: - created_at: - description: Timestamp when the dataset was created. - example: "2024-01-15T10:30:00Z" - format: date-time + alias: + description: The interface alias + example: interface_0 type: string - current_version: - description: Current version number of the dataset. - example: 1 + description: + description: The interface description + example: a network interface + type: string + index: + description: The interface index + example: 0 format: int64 type: integer - description: - description: Description of the dataset. - example: "" - nullable: true + ip_addresses: + description: The interface IP addresses + example: ["1.1.1.1", "1.1.1.2"] + items: + description: An IP address assigned to the interface. + type: string + type: array + mac_address: + description: The interface MAC address + example: 00:00:00:00:00:00 type: string - metadata: - additionalProperties: {} - description: Arbitrary metadata associated with the dataset. - nullable: true - type: object name: - description: Name of the dataset. - example: "My LLM Dataset" + description: The interface name + example: if0 type: string - updated_at: - description: Timestamp when the dataset was last updated. - example: "2024-01-15T10:30:00Z" - format: date-time + status: + $ref: "#/components/schemas/InterfaceAttributesStatus" + type: object + InterfaceAttributesStatus: + description: The interface status + enum: + - up + - down + - warning + - "off" + example: up + type: string + x-enum-varnames: + - UP + - DOWN + - WARNING + - "OFF" + InvestigationConclusion: + description: A full explanation of the finding, including root cause analysis and supporting evidence. + properties: + description: + description: A full explanation of the finding, including root cause analysis and supporting evidence. + example: "The investigation found that a memory leak in payments-service caused CPU usage to spike above 95% starting at 14:32 UTC." + type: string + summary: + description: A summary of the finding, including affected components and timeframe. + example: "CPU usage exceeded 95% for over 10 minutes on web-server-01." + type: string + title: + description: The title of the conclusion. + example: "High CPU usage detected on web-server-01" type: string required: - - name + - title + - summary - description - - metadata - - current_version - - created_at - - updated_at type: object - LLMObsDatasetDataRequest: - description: Data object for creating an Agent Observability dataset. + InvestigationType: + description: The resource type for investigations. + enum: + - investigation + example: investigation + type: string + x-enum-varnames: + - INVESTIGATION + IoCExplorerListResponse: + description: Response for the list indicators of compromise endpoint. properties: - attributes: - $ref: "#/components/schemas/LLMObsDatasetDataAttributesRequest" - type: - $ref: "#/components/schemas/LLMObsDatasetType" - required: - - type - - attributes + data: + $ref: "#/components/schemas/IoCExplorerListResponseData" type: object - LLMObsDatasetDataResponse: - description: Data object for an Agent Observability dataset. + IoCExplorerListResponseAttributes: + description: Attributes of the IoC Explorer list response. properties: - attributes: - $ref: "#/components/schemas/LLMObsDatasetDataAttributesResponse" - id: - description: Unique identifier of the dataset. - example: "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d" - type: string - type: - $ref: "#/components/schemas/LLMObsDatasetType" - required: - - id - - type - - attributes + data: + description: List of indicators of compromise. + items: + $ref: "#/components/schemas/IoCIndicator" + type: array + metadata: + $ref: "#/components/schemas/IoCExplorerListResponseMetadata" + paging: + $ref: "#/components/schemas/IoCExplorerListResponsePaging" type: object - LLMObsDatasetDraftStateData: - description: Data object for an Agent Observability dataset draft state. + IoCExplorerListResponseData: + description: IoC Explorer list response data object. properties: attributes: - $ref: "#/components/schemas/LLMObsDatasetDraftStateDataAttributes" + $ref: "#/components/schemas/IoCExplorerListResponseAttributes" id: - description: Unique identifier of the dataset draft state. Matches the dataset ID. - example: "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d" + description: Unique identifier for the response. type: string type: - $ref: "#/components/schemas/LLMObsDatasetDraftStateType" - required: - - id - - type - - attributes + description: Response type identifier. + type: string type: object - LLMObsDatasetDraftStateDataAttributes: - description: Attributes of an Agent Observability dataset draft state. + IoCExplorerListResponseMetadata: + description: Response metadata. properties: - drafting_since: - description: Timestamp when the dataset draft session started. - example: "2024-01-15T10:30:00Z" - format: date-time - type: string - user: - $ref: "#/components/schemas/LLMObsDatasetDraftStateUser" - required: - - user - - drafting_since + count: + description: Total number of indicators matching the query. + format: int64 + type: integer type: object - LLMObsDatasetDraftStateResponse: - description: Response containing the draft state of an Agent Observability dataset. + IoCExplorerListResponsePaging: + description: Pagination information. properties: - data: - $ref: "#/components/schemas/LLMObsDatasetDraftStateData" - required: - - data + offset: + description: Current pagination offset. + format: int64 + type: integer type: object - LLMObsDatasetDraftStateType: - description: Resource type of an Agent Observability dataset draft state. - enum: - - draft_state_data - example: draft_state_data - type: string - x-enum-varnames: - - DRAFT_STATE_DATA - LLMObsDatasetDraftStateUser: - description: User information associated with a dataset draft state. + IoCGeoLocation: + description: Geographic location information for an IP indicator. properties: - email: - description: Email address of the user. - example: "jane.doe@example.com" - type: string - handle: - description: Handle of the user. - example: "jane.doe@example.com" - type: string - icon: - description: Icon for the user. - example: "" + city: + description: City name. type: string - id: - description: Unique identifier of the user holding the draft lock. - example: "00000000-0000-0000-0000-000000000010" + country_code: + description: ISO country code. type: string - name: - description: Display name of the user. - example: "Jane Doe" + country_name: + description: Full country name. type: string - required: - - id type: object - LLMObsDatasetExportFormat: - default: csv - description: Supported export format for an Agent Observability dataset. - enum: - - csv - example: csv - type: string - x-enum-varnames: - - CSV - LLMObsDatasetRecordDataResponse: - description: A single Agent Observability dataset record. + IoCIndicator: + description: An indicator of compromise with threat intelligence data. properties: - created_at: - description: Timestamp when the record was created. - example: "2024-01-15T10:30:00Z" - format: date-time + as_geo: + $ref: "#/components/schemas/IoCGeoLocation" + as_type: + description: Autonomous system type. type: string - dataset_id: - description: Identifier of the dataset this record belongs to. - example: "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d" + benign_sources: + description: Threat intelligence sources that flagged this indicator as benign. + items: + $ref: "#/components/schemas/IoCSource" + nullable: true + type: array + categories: + description: Threat categories associated with the indicator. + items: + type: string + type: array + first_seen: + description: Timestamp when the indicator was first seen. + format: date-time type: string - expected_output: - $ref: "#/components/schemas/AnyValue" id: - description: Unique identifier of the record. - example: "rec-7c3f5a1b-9e2d-4f8a-b1c6-3d7e9f0a2b4c" + description: Unique identifier for the indicator. type: string - input: - $ref: "#/components/schemas/AnyValue" - metadata: - additionalProperties: {} - description: Arbitrary metadata associated with the record. + indicator: + description: The indicator value (for example, an IP address or domain). + type: string + indicator_type: + description: Type of indicator (for example, IP address or domain). + type: string + last_seen: + description: Timestamp when the indicator was last seen. + format: date-time + type: string + log_matches: + description: Number of logs that matched this indicator. + format: int64 + type: integer + m_as_type: + $ref: "#/components/schemas/IoCScoreEffect" + m_persistence: + $ref: "#/components/schemas/IoCScoreEffect" + m_signal: + $ref: "#/components/schemas/IoCScoreEffect" + m_sources: + $ref: "#/components/schemas/IoCScoreEffect" + malicious_sources: + description: Threat intelligence sources that flagged this indicator as malicious. + items: + $ref: "#/components/schemas/IoCSource" nullable: true - type: object - updated_at: - description: Timestamp when the record was last updated. - example: "2024-01-15T10:30:00Z" + type: array + max_trust_score: + $ref: "#/components/schemas/IoCScoreEffect" + score: + description: Threat score for the indicator (0-100). + format: double + type: number + signal_matches: + description: Number of security signals that matched this indicator. + format: int64 + type: integer + signal_tier: + description: Signal tier level. + format: int64 + type: integer + suspicious_sources: + description: Threat intelligence sources that flagged this indicator as suspicious. + items: + $ref: "#/components/schemas/IoCSource" + nullable: true + type: array + tags: + description: Tags associated with the indicator. + items: + type: string + type: array + triage_state: + $ref: "#/components/schemas/IoCTriageState" + triaged_at: + description: Timestamp when the indicator was last triaged. format: date-time type: string - required: - - id - - dataset_id - - input - - expected_output - - metadata - - created_at - - updated_at + triaged_by: + description: UUID of the user who last triaged the indicator. + type: string type: object - LLMObsDatasetRecordItem: - description: A single record to append to an Agent Observability dataset. + IoCIndicatorDetailed: + description: An indicator of compromise with extended context from your environment. properties: - expected_output: - $ref: "#/components/schemas/AnyValue" - input: - $ref: "#/components/schemas/AnyValue" - metadata: + additional_data: additionalProperties: {} - description: Arbitrary metadata associated with the record. + description: Additional domain-specific context from threat intelligence sources. type: object - required: - - input - type: object - LLMObsDatasetRecordTagOperations: - description: Explicit tag operations for updating records. Operations are applied in order, Remove then Add then Set. `set` is the final override; if specified, the result of `remove` and `add` is discarded. - properties: - add: - $ref: "#/components/schemas/LLMObsDatasetRecordTagsList" - remove: - $ref: "#/components/schemas/LLMObsDatasetRecordTagsList" - set: - $ref: "#/components/schemas/LLMObsDatasetRecordTagsList" - type: object - LLMObsDatasetRecordTagsList: - description: List of tag strings. - items: - description: A tag. - type: string - type: array - LLMObsDatasetRecordUpdateItem: - description: A record update payload for an Agent Observability dataset. - properties: - expected_output: - $ref: "#/components/schemas/AnyValue" + as_cidr_block: + description: Autonomous system CIDR block. + type: string + as_geo: + $ref: "#/components/schemas/IoCGeoLocation" + as_number: + description: Autonomous system number. + type: string + as_organization: + description: Autonomous system organization name. + type: string + as_type: + description: Autonomous system type. + type: string + benign_sources: + description: Threat intelligence sources that flagged this indicator as benign. + items: + $ref: "#/components/schemas/IoCSource" + nullable: true + type: array + categories: + description: Threat categories associated with the indicator. + items: + type: string + type: array + critical_assets: + description: Critical assets associated with this indicator. + items: + type: string + type: array + first_seen: + description: Timestamp when the indicator was first seen. + format: date-time + type: string + hosts: + description: Hosts associated with this indicator. + items: + type: string + type: array id: - description: Unique identifier of the record to update. - example: "rec-7c3f5a1b-9e2d-4f8a-b1c6-3d7e9f0a2b4c" + description: Unique identifier for the indicator. type: string - input: - $ref: "#/components/schemas/AnyValue" - metadata: - additionalProperties: {} - description: Updated metadata associated with the record. - type: object - required: - - id - type: object - LLMObsDatasetRecordsDataAttributesRequest: - description: Attributes for appending records to an Agent Observability dataset. - properties: - deduplicate: - description: Whether to deduplicate records before appending. Defaults to `true`. - type: boolean - records: - description: List of records to append to the dataset. + indicator: + description: The indicator value (for example, an IP address or domain). + type: string + indicator_type: + description: Type of indicator (for example, IP address or domain). + type: string + last_seen: + description: Timestamp when the indicator was last seen. + format: date-time + type: string + log_matches: + description: Number of logs that matched this indicator. + format: int64 + type: integer + log_sources: + description: Log sources where this indicator was observed. items: - $ref: "#/components/schemas/LLMObsDatasetRecordItem" + type: string type: array - required: - - records - type: object - LLMObsDatasetRecordsDataRequest: - description: Data object for appending records to an Agent Observability dataset. - properties: - attributes: - $ref: "#/components/schemas/LLMObsDatasetRecordsDataAttributesRequest" - type: - $ref: "#/components/schemas/LLMObsRecordType" - required: - - type - - attributes - type: object - LLMObsDatasetRecordsListResponse: - description: Response containing a paginated list of Agent Observability dataset records. - properties: - data: - description: List of dataset records. + m_as_type: + $ref: "#/components/schemas/IoCScoreEffect" + m_persistence: + $ref: "#/components/schemas/IoCScoreEffect" + m_signal: + $ref: "#/components/schemas/IoCScoreEffect" + m_sources: + $ref: "#/components/schemas/IoCScoreEffect" + malicious_sources: + description: Threat intelligence sources that flagged this indicator as malicious. items: - $ref: "#/components/schemas/LLMObsDatasetRecordDataResponse" + $ref: "#/components/schemas/IoCSource" + nullable: true type: array - meta: - $ref: "#/components/schemas/LLMObsCursorMeta" - required: - - data - type: object - LLMObsDatasetRecordsMutationData: - description: Response containing records after a create or update operation. - properties: - records: - description: List of affected dataset records. + max_trust_score: + $ref: "#/components/schemas/IoCScoreEffect" + score: + description: Threat score for the indicator (0-100). + format: double + type: number + services: + description: Services where this indicator was observed. items: - $ref: "#/components/schemas/LLMObsDatasetRecordDataResponse" + type: string type: array - required: - - records - type: object - LLMObsDatasetRecordsMutationResponse: - description: Response containing records after a create or update operation. - properties: - data: - description: List of affected dataset records. + signal_matches: + description: Number of security signals that matched this indicator. + format: int64 + type: integer + signal_severity: + description: Breakdown of security signals by severity. items: - $ref: "#/components/schemas/LLMObsDatasetRecordsMutationData" + $ref: "#/components/schemas/IoCSignalSeverityCount" type: array - required: - - data + signal_tier: + description: Signal tier level. + format: int64 + type: integer + suspicious_sources: + description: Threat intelligence sources that flagged this indicator as suspicious. + items: + $ref: "#/components/schemas/IoCSource" + nullable: true + type: array + tags: + description: Tags associated with the indicator. + items: + type: string + type: array + triage_history: + description: Full triage history timeline. Returned only when `include_triage_history` is true. + items: + $ref: "#/components/schemas/IoCTriageEvent" + type: array + triage_state: + $ref: "#/components/schemas/IoCTriageState" + triaged_at: + description: Timestamp when the indicator was last triaged. + format: date-time + type: string + triaged_by: + description: UUID of the user who last triaged the indicator. + type: string + users: + additionalProperties: + description: List of user identifiers in this category. + items: + type: string + type: array + description: Users associated with this indicator, grouped by category. + type: object type: object - LLMObsDatasetRecordsRequest: - description: Request to append records to an Agent Observability dataset. + IoCScoreEffect: + description: Effect of a scoring factor on the indicator's threat score. + enum: + - RAISE_SCORE + - LOWER_SCORE + - NO_EFFECT + type: string + x-enum-varnames: + - RAISE_SCORE + - LOWER_SCORE + - NO_EFFECT + IoCSignalSeverityCount: + description: Count of security signals by severity level. + properties: + count: + description: Number of signals at this severity level. + format: int64 + type: integer + severity: + description: Severity level (for example, critical, high, medium, low, info). + type: string + type: object + IoCSource: + description: A threat intelligence source that has flagged an indicator. + properties: + name: + description: Name of the threat intelligence source. + type: string + type: object + IoCTriageEvent: + description: A single entry in an indicator's triage history timeline. + properties: + triage_state: + $ref: "#/components/schemas/IoCTriageState" + triaged_at: + description: Timestamp when this triage action occurred. + format: date-time + type: string + triaged_by: + description: UUID of the user who performed this triage action. + type: string + type: object + IoCTriageState: + description: Current triage state of the indicator. + enum: + - not_reviewed + - reviewed + example: not_reviewed + type: string + x-enum-varnames: + - NOT_REVIEWED + - REVIEWED + IoCTriageWriteRequest: + description: Request body for creating or updating an indicator triage state. properties: data: - $ref: "#/components/schemas/LLMObsDatasetRecordsDataRequest" + $ref: "#/components/schemas/IoCTriageWriteRequestData" required: - data type: object - LLMObsDatasetRecordsUpdateDataAttributesRequest: - description: Attributes for updating records in an Agent Observability dataset. + IoCTriageWriteRequestAttributes: + description: Attributes for setting an indicator's triage state. properties: - records: - description: List of records to update. - items: - $ref: "#/components/schemas/LLMObsDatasetRecordUpdateItem" - type: array + indicator: + description: The indicator value to triage (for example, an IP address or domain). + example: "192.0.2.1" + type: string + triage_state: + $ref: "#/components/schemas/IoCTriageState" required: - - records + - indicator + - triage_state type: object - LLMObsDatasetRecordsUpdateDataRequest: - description: Data object for updating records in an Agent Observability dataset. + IoCTriageWriteRequestData: + description: Data object for the triage write request. properties: attributes: - $ref: "#/components/schemas/LLMObsDatasetRecordsUpdateDataAttributesRequest" + $ref: "#/components/schemas/IoCTriageWriteRequestAttributes" type: - $ref: "#/components/schemas/LLMObsRecordType" + default: ioc_triage_state + description: Triage state resource type. + example: ioc_triage_state + type: string required: - type - attributes type: object - LLMObsDatasetRecordsUpdateRequest: - description: Request to update records in an Agent Observability dataset. + IoCTriageWriteResponse: + description: Response for the create indicator triage state endpoint. properties: data: - $ref: "#/components/schemas/LLMObsDatasetRecordsUpdateDataRequest" - required: - - data + $ref: "#/components/schemas/IoCTriageWriteResponseData" type: object - LLMObsDatasetRecordsUploadFile: - description: Multipart payload for uploading dataset records from a file. + IoCTriageWriteResponseAttributes: + description: Attributes of a created or updated triage state. properties: - file: - description: The records file to upload. Currently only CSV is supported. The file must include an `input` column. Optional columns include `id`, `expected_output`, `metadata`, and `tags`. - format: binary + created_at: + description: Timestamp when the triage record was created. + format: date-time + type: string + indicator: + description: The indicator value that was triaged. + type: string + triage_state: + $ref: "#/components/schemas/IoCTriageState" + triaged_at: + description: Timestamp when the triage state was set. + format: date-time + type: string + triaged_by: + description: UUID of the user who set the triage state. type: string type: object - LLMObsDatasetRequest: - description: Request to create an Agent Observability dataset. + IoCTriageWriteResponseData: + description: Data object of the triage write response. properties: - data: - $ref: "#/components/schemas/LLMObsDatasetDataRequest" + attributes: + $ref: "#/components/schemas/IoCTriageWriteResponseAttributes" + id: + description: Unique identifier for the triage state record. + type: string + type: + default: ioc_triage_state + description: Triage state resource type. + type: string + type: object + Issue: + description: The issue matching the request. + properties: + attributes: + $ref: "#/components/schemas/IssueAttributes" + id: + description: Issue identifier. + example: "c1726a66-1f64-11ee-b338-da7ad0900002" + type: string + relationships: + $ref: "#/components/schemas/IssueRelationships" + type: + $ref: "#/components/schemas/IssueType" required: - - data + - id + - type + - attributes type: object - LLMObsDatasetResponse: - description: Response containing a single Agent Observability dataset. + IssueAssigneeRelationship: + description: Relationship between the issue and assignee. properties: data: - $ref: "#/components/schemas/LLMObsDatasetDataResponse" + $ref: "#/components/schemas/IssueUserReference" required: - data type: object - LLMObsDatasetRestoreVersionDataAttributesRequest: - description: Attributes for restoring an Agent Observability dataset to a previous version. + IssueAttributes: + description: Object containing the information of an issue. properties: - dataset_version: - description: Version number of the dataset to restore. Must be between 0 and the current version of the dataset, inclusive. - example: 1 - format: int32 - maximum: 2147483647 + error_message: + description: Error message associated with the issue. + example: "object of type 'NoneType' has no len()" + type: string + error_type: + description: Type of the error that matches the issue. + example: "builtins.TypeError" + type: string + file_path: + description: Path of the file where the issue occurred. + example: "/django-email/conduit/apps/core/utils.py" + type: string + first_seen: + description: Timestamp of the first seen error in milliseconds since the Unix epoch. + example: 1671612804001 + format: int64 type: integer - required: - - dataset_version + first_seen_version: + description: The application version (for example, git commit hash) where the issue was first observed. + example: "aaf65cd0" + type: string + function_name: + description: Name of the function where the issue occurred. + example: "filter_forbidden_tags" + type: string + is_crash: + description: Error is a crash. + example: false + type: boolean + languages: + description: Array of programming languages associated with the issue. + example: ["PYTHON", "GO"] + items: + $ref: "#/components/schemas/IssueLanguage" + type: array + last_seen: + description: Timestamp of the last seen error in milliseconds since the Unix epoch. + example: 1671620003100 + format: int64 + type: integer + last_seen_version: + description: The application version (for example, git commit hash) where the issue was last observed. + example: "b6199f80" + type: string + platform: + $ref: "#/components/schemas/IssuePlatform" + regression: + $ref: "#/components/schemas/IssueRegression" + service: + description: Service name. + example: "email-api-py" + type: string + state: + $ref: "#/components/schemas/IssueState" type: object - LLMObsDatasetRestoreVersionDataRequest: - description: Data object for restoring an Agent Observability dataset to a previous version. + IssueCase: + description: The case attached to the issue. properties: attributes: - $ref: "#/components/schemas/LLMObsDatasetRestoreVersionDataAttributesRequest" + $ref: "#/components/schemas/IssueCaseAttributes" id: - description: Unique identifier of the dataset to restore. - example: "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d" + description: Case identifier. + example: "2841440d-e780-4fe2-96cd-6a8c1d194da5" type: string + relationships: + $ref: "#/components/schemas/IssueCaseRelationships" type: - $ref: "#/components/schemas/LLMObsDatasetType" + $ref: "#/components/schemas/IssueCaseResourceType" required: - id - type - attributes type: object - LLMObsDatasetRestoreVersionRequest: - description: Request to restore an Agent Observability dataset to a previous version. + IssueCaseAttributes: + description: Object containing the information of a case. properties: - data: - $ref: "#/components/schemas/LLMObsDatasetRestoreVersionDataRequest" - required: - - data + archived_at: + description: Timestamp of when the case was archived. + example: "2025-01-01T00:00:00Z" + format: date-time + type: string + closed_at: + description: Timestamp of when the case was closed. + example: "2025-01-01T00:00:00Z" + format: date-time + type: string + created_at: + description: Timestamp of when the case was created. + example: "2025-01-01T00:00:00Z" + format: date-time + type: string + creation_source: + description: Source of the case creation. + example: "ERROR_TRACKING" + type: string + description: + description: Description of the case. + type: string + due_date: + description: Due date of the case. + example: "2025-01-01" + type: string + insights: + description: Insights of the case. + items: + $ref: "#/components/schemas/IssueCaseInsight" + type: array + jira_issue: + $ref: "#/components/schemas/IssueCaseJiraIssue" + key: + description: Key of the case. + example: "ET-123" + type: string + linear_issue: + $ref: "#/components/schemas/IssueCaseLinearIssue" + modified_at: + description: Timestamp of when the case was last modified. + example: "2025-01-01T00:00:00Z" + format: date-time + type: string + priority: + $ref: "#/components/schemas/CasePriority" + status: + $ref: "#/components/schemas/CaseStatus" + title: + description: Title of the case. + example: "Error: HTTP error" + type: string + type: + description: Type of the case. + example: "ERROR_TRACKING_ISSUE" + type: string type: object - LLMObsDatasetType: - description: Resource type of an Agent Observability dataset. - enum: - - datasets - example: datasets - type: string - x-enum-varnames: - - DATASETS - LLMObsDatasetUpdateDataAttributesRequest: - description: Attributes for updating an Agent Observability dataset. + IssueCaseInsight: + description: Insight of the case. properties: - description: - description: Updated description of the dataset. + ref: + description: Reference of the insight. + example: "/error-tracking?issueId=2841440d-e780-4fe2-96cd-6a8c1d194da5" type: string - metadata: - additionalProperties: {} - description: Updated metadata associated with the dataset. - type: object - name: - description: Updated name of the dataset. + resource_id: + description: Insight identifier. + example: "2841440d-e780-4fe2-96cd-6a8c1d194da5" + type: string + type: + description: Type of the insight. + example: "ERROR_TRACKING" type: string type: object - LLMObsDatasetUpdateDataRequest: - description: Data object for updating an Agent Observability dataset. + IssueCaseJiraIssue: + description: Jira issue of the case. properties: - attributes: - $ref: "#/components/schemas/LLMObsDatasetUpdateDataAttributesRequest" + error_message: + description: Error message set when the Jira issue creation fails. + example: "" + type: string + result: + $ref: "#/components/schemas/IssueCaseJiraIssueResult" + status: + description: Creation status of the Jira issue. + example: "COMPLETED" + type: string + type: object + IssueCaseJiraIssueResult: + description: Contains the identifiers and URL for a successfully created Jira issue. + properties: + account_id: + description: Jira account identifier. + example: "abcd1234-5678-90ab-cdef-1234567890ab" + type: string + issue_id: + description: Jira issue identifier. + example: "1904866" + type: string + issue_key: + description: Jira issue key. + example: "ET-123" + type: string + issue_url: + description: Jira issue URL. + example: "https://your-jira-instance.atlassian.net/browse/ET-123" + type: string + project_id: + description: Jira project identifier. + example: "10001" + type: string + project_key: + description: Jira project key. + example: "ET" + type: string + type: object + IssueCaseLinearIssue: + description: Linear issue of the case. + properties: + error_message: + description: Error message set when the Linear issue creation fails. + example: "" + type: string + result: + $ref: "#/components/schemas/IssueCaseLinearIssueResult" + status: + description: Creation status of the Linear issue. + example: "COMPLETED" + type: string + type: object + IssueCaseLinearIssueResult: + description: Contains the identifiers and URL for a successfully created Linear issue. + properties: + account_id: + description: Linear account identifier. + example: "abcd1234-5678-90ab-cdef-1234567890ab" + type: string + issue_id: + description: Linear issue identifier. + example: "a1b2c3d4-5678-90ab-cdef-1234567890ab" + type: string + issue_key: + description: Linear issue key. + example: "ENG-123" + type: string + issue_url: + description: Linear issue URL. + example: "https://linear.app/your-workspace/issue/ENG-123" + type: string + team_id: + description: Linear team identifier. + example: "f1e2d3c4-5678-90ab-cdef-1234567890ab" + type: string + type: object + IssueCaseReference: + description: The case the issue is attached to. + properties: + id: + description: Case identifier. + example: "2841440d-e780-4fe2-96cd-6a8c1d194da5" + type: string type: - $ref: "#/components/schemas/LLMObsDatasetType" + $ref: "#/components/schemas/IssueCaseResourceType" required: + - id - type - - attributes type: object - LLMObsDatasetUpdateRequest: - description: Request to partially update an Agent Observability dataset. + IssueCaseRelationship: + description: Relationship between the issue and case. properties: data: - $ref: "#/components/schemas/LLMObsDatasetUpdateDataRequest" + $ref: "#/components/schemas/IssueCaseReference" required: - data type: object - LLMObsDatasetVersionData: - description: Data object for an Agent Observability dataset version. + IssueCaseRelationships: + description: Resources related to a case. + properties: + assignee: + $ref: "#/components/schemas/NullableUserRelationship" + created_by: + $ref: "#/components/schemas/NullableUserRelationship" + modified_by: + $ref: "#/components/schemas/NullableUserRelationship" + project: + $ref: "#/components/schemas/ProjectRelationship" + type: object + IssueCaseResourceType: + description: Type of the object. + enum: ["case"] + example: "case" + type: string + x-enum-varnames: + - CASE + IssueIncluded: + description: An array of related resources, returned when the `include` query parameter is used. + oneOf: + - $ref: "#/components/schemas/IssueCase" + - $ref: "#/components/schemas/IssueUser" + - $ref: "#/components/schemas/IssueTeam" + IssueLanguage: + description: Programming language associated with the issue. + enum: + - BRIGHTSCRIPT + - C + - C_PLUS_PLUS + - C_SHARP + - CLOJURE + - DOT_NET + - ELIXIR + - ERLANG + - GO + - GROOVY + - HASKELL + - HCL + - JAVA + - JAVASCRIPT + - JVM + - KOTLIN + - OBJECTIVE_C + - PERL + - PHP + - PYTHON + - RUBY + - RUST + - SCALA + - SWIFT + - TERRAFORM + - TYPESCRIPT + - UNKNOWN + example: "PYTHON" + type: string + x-enum-varnames: + - BRIGHTSCRIPT + - C + - C_PLUS_PLUS + - C_SHARP + - CLOJURE + - DOT_NET + - ELIXIR + - ERLANG + - GO + - GROOVY + - HASKELL + - HCL + - JAVA + - JAVASCRIPT + - JVM + - KOTLIN + - OBJECTIVE_C + - PERL + - PHP + - PYTHON + - RUBY + - RUST + - SCALA + - SWIFT + - TERRAFORM + - TYPESCRIPT + - UNKNOWN + IssuePlatform: + description: Platform associated with the issue. + enum: + - ANDROID + - BACKEND + - BROWSER + - FLUTTER + - IOS + - REACT_NATIVE + - ROKU + - UNKNOWN + example: "BACKEND" + type: string + x-enum-varnames: + - ANDROID + - BACKEND + - BROWSER + - FLUTTER + - IOS + - REACT_NATIVE + - ROKU + - UNKNOWN + IssueReference: + description: The issue the search result corresponds to. properties: - attributes: - $ref: "#/components/schemas/LLMObsDatasetVersionDataAttributes" id: - description: Unique identifier of the dataset version. - example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" + description: Issue identifier. + example: "c1726a66-1f64-11ee-b338-da7ad0900002" type: string type: - $ref: "#/components/schemas/LLMObsDatasetVersionType" + $ref: "#/components/schemas/IssueType" required: - id - type - - attributes type: object - LLMObsDatasetVersionDataAttributes: - description: Attributes of an Agent Observability dataset version. + IssueRegression: + description: Regression information for an issue that was previously resolved and then reopened. properties: - dataset_id: - description: Unique identifier of the dataset this version belongs to. - example: "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d" + regressed_at: + description: Timestamp when the issue was reopened (regressed). + example: "2024-01-03T08:00:00Z" + format: date-time type: string - last_used: - description: Timestamp when this dataset version was last referenced. Null if the version has never been used. - example: "2024-01-15T10:30:00Z" + regressed_at_version: + description: Application version where the regression was observed. + example: "v2.5.2" + type: string + resolved_at: + description: Timestamp when the issue was resolved before the regression. + example: "2024-01-01T10:00:00Z" format: date-time - nullable: true type: string - version_number: - description: Sequential version number for this dataset version. - example: 1 - format: int32 - maximum: 2147483647 - type: integer required: - - dataset_id - - version_number - - last_used + - resolved_at + - regressed_at type: object - LLMObsDatasetVersionType: - description: Resource type of an Agent Observability dataset version. - enum: - - dataset_version - example: dataset_version - type: string - x-enum-varnames: - - DATASET_VERSION - LLMObsDatasetVersionsResponse: - description: Response containing the active versions of an Agent Observability dataset. + IssueRelationships: + description: Relationship between the issue and an assignee, case and/or teams. properties: - data: - $ref: "#/components/schemas/LLMObsDatasetVersionsResponseData" - required: - - data + assignee: + $ref: "#/components/schemas/IssueAssigneeRelationship" + case: + $ref: "#/components/schemas/IssueCaseRelationship" + team_owners: + $ref: "#/components/schemas/IssueTeamOwnersRelationship" type: object - LLMObsDatasetVersionsResponseData: - description: List of dataset versions. - items: - $ref: "#/components/schemas/LLMObsDatasetVersionData" - type: array - LLMObsDatasetsResponse: - description: Response containing a list of Agent Observability datasets. + IssueResponse: + description: Response containing error tracking issue data. properties: data: - description: List of datasets. + $ref: "#/components/schemas/Issue" + included: + description: Array of resources related to the issue. items: - $ref: "#/components/schemas/LLMObsDatasetDataResponse" + $ref: "#/components/schemas/IssueIncluded" type: array - meta: - $ref: "#/components/schemas/LLMObsCursorMeta" + type: object + IssueState: + description: State of the issue + enum: + - OPEN + - ACKNOWLEDGED + - RESOLVED + - IGNORED + - EXCLUDED + example: "RESOLVED" + type: string + x-enum-varnames: + - OPEN + - ACKNOWLEDGED + - RESOLVED + - IGNORED + - EXCLUDED + IssueTeam: + description: A team that owns an issue. + properties: + attributes: + $ref: "#/components/schemas/IssueTeamAttributes" + id: + description: Team identifier. + example: "221b0179-6447-4d03-91c3-3ca98bf60e8a" + type: string + type: + $ref: "#/components/schemas/IssueTeamType" required: - - data + - id + - type + - attributes type: object - LLMObsDeleteAnnotationError: - description: A partial error for a single annotation that could not be deleted. + IssueTeamAttributes: + description: Object containing the information of a team. properties: - annotation_id: - description: ID of the annotation that could not be deleted. - example: "00000000-0000-0000-0000-000000000000" + handle: + description: The team's identifier. + example: "team-handle" type: string - error: - description: Error message. - example: "annotation not found" + name: + description: The name of the team. + example: "Team Name" + type: string + summary: + description: A brief summary of the team, derived from its description. + example: "This is a team." type: string - required: - - annotation_id - - error type: object - LLMObsDeleteAnnotationQueueInteractionsDataAttributesRequest: - description: Attributes for deleting interactions from an annotation queue. + IssueTeamOwnersRelationship: + description: Relationship between the issue and teams. properties: - interaction_ids: - description: List of interaction IDs to delete. Must contain at least one item. - example: - - "00000000-0000-0000-0000-000000000000" - - "00000000-0000-0000-0000-000000000001" + data: + description: Array of teams that are owners of the issue. items: - description: An interaction ID to delete. - type: string - minItems: 1 + $ref: "#/components/schemas/IssueTeamReference" type: array required: - - interaction_ids + - data type: object - LLMObsDeleteAnnotationQueueInteractionsDataRequest: - description: Data object for deleting interactions from an annotation queue. + IssueTeamReference: + description: A team that owns the issue. properties: - attributes: - $ref: "#/components/schemas/LLMObsDeleteAnnotationQueueInteractionsDataAttributesRequest" + id: + description: Team identifier. + example: "221b0179-6447-4d03-91c3-3ca98bf60e8a" + type: string type: - $ref: "#/components/schemas/LLMObsAnnotationQueueInteractionsType" + $ref: "#/components/schemas/IssueTeamType" required: + - id - type - - attributes type: object - LLMObsDeleteAnnotationQueueInteractionsRequest: - description: Request to delete interactions from an Agent Observability annotation queue. + IssueTeamType: + description: Type of the object. + enum: ["team"] + example: "team" + type: string + x-enum-varnames: + - TEAM + IssueType: + description: Type of the object. + enum: ["issue"] + example: "issue" + type: string + x-enum-varnames: + - ISSUE + IssueUpdateAssigneeRequest: + description: Update issue assignee request payload. properties: data: - $ref: "#/components/schemas/LLMObsDeleteAnnotationQueueInteractionsDataRequest" + $ref: "#/components/schemas/IssueUpdateAssigneeRequestData" required: - data type: object - LLMObsDeleteAnnotationsDataAttributesRequest: - description: Attributes for deleting annotations. + IssueUpdateAssigneeRequestData: + description: Update issue assignee request. properties: - annotation_ids: - description: IDs of the annotations to delete. Must contain at least one item. - example: - - "00000000-0000-0000-0000-000000000000" - - "00000000-0000-0000-0000-000000000001" - items: - type: string - minItems: 1 - type: array + id: + description: User identifier. + example: "87cb11a0-278c-440a-99fe-701223c80296" + type: string + type: + $ref: "#/components/schemas/IssueUpdateAssigneeRequestDataType" required: - - annotation_ids + - id + - type type: object - LLMObsDeleteAnnotationsDataAttributesResponse: - description: Attributes of the annotation deletion response. + IssueUpdateAssigneeRequestDataType: + description: Type of the object. + enum: ["assignee"] + example: "assignee" + type: string + x-enum-varnames: + - ASSIGNEE + IssueUpdateStateRequest: + description: Update issue state request payload. properties: - annotation_ids: - description: IDs of the successfully deleted annotations. - example: - - "00000000-0000-0000-0000-000000000000" - items: - type: string - type: array - errors: - description: Errors for annotations that could not be deleted. - items: - $ref: "#/components/schemas/LLMObsDeleteAnnotationError" - type: array + data: + $ref: "#/components/schemas/IssueUpdateStateRequestData" required: - - annotation_ids - - errors + - data type: object - LLMObsDeleteAnnotationsDataRequest: - description: Data object for deleting annotations. + IssueUpdateStateRequestData: + description: Update issue state request. properties: attributes: - $ref: "#/components/schemas/LLMObsDeleteAnnotationsDataAttributesRequest" + $ref: "#/components/schemas/IssueUpdateStateRequestDataAttributes" + id: + description: Issue identifier. + example: "c1726a66-1f64-11ee-b338-da7ad0900002" + type: string type: - $ref: "#/components/schemas/LLMObsAnnotationsType" + $ref: "#/components/schemas/IssueUpdateStateRequestDataType" required: + - id - type - attributes type: object - LLMObsDeleteAnnotationsDataResponse: - description: Data object for the annotation deletion response. + IssueUpdateStateRequestDataAttributes: + description: Object describing an issue state update request. + properties: + state: + $ref: "#/components/schemas/IssueState" + required: + - state + type: object + IssueUpdateStateRequestDataType: + description: Type of the object. + enum: ["error_tracking_issue"] + example: "error_tracking_issue" + type: string + x-enum-varnames: + - ERROR_TRACKING_ISSUE + IssueUser: + description: The user to whom the issue is assigned. properties: attributes: - $ref: "#/components/schemas/LLMObsDeleteAnnotationsDataAttributesResponse" + $ref: "#/components/schemas/IssueUserAttributes" id: - description: The annotation queue ID. - example: "00000000-0000-0000-0000-000000000001" + description: User identifier. + example: "87cb11a0-278c-440a-99fe-701223c80296" type: string type: - $ref: "#/components/schemas/LLMObsAnnotationsType" + $ref: "#/components/schemas/IssueUserType" required: - id - type - attributes type: object - LLMObsDeleteAnnotationsRequest: - description: Request to delete annotations from an annotation queue. + IssueUserAttributes: + description: Object containing the information of a user. properties: - data: - $ref: "#/components/schemas/LLMObsDeleteAnnotationsDataRequest" - required: - - data + email: + description: Email of the user. + example: "user@company.com" + type: string + handle: + description: Handle of the user. + example: "User Handle" + type: string + name: + description: Name of the user. + example: "User Name" + type: string type: object - LLMObsDeleteAnnotationsResponse: - description: |- - Response for a batch annotation deletion. Partial errors are listed in the - response if any annotations could not be deleted. + IssueUserReference: + description: The user the issue is assigned to. properties: - data: - $ref: "#/components/schemas/LLMObsDeleteAnnotationsDataResponse" + id: + description: User identifier. + example: "87cb11a0-278c-440a-99fe-701223c80296" + type: string + type: + $ref: "#/components/schemas/IssueUserType" required: - - data + - id + - type type: object - LLMObsDeleteDatasetRecordsDataAttributesRequest: - description: Attributes for deleting records from an Agent Observability dataset. + IssueUserType: + description: Type of the object + enum: ["user"] + example: "user" + type: string + x-enum-varnames: + - USER + IssuesSearchRequest: + description: Search issues request payload. properties: - record_ids: - description: List of record IDs to delete. - example: - - "rec-7c3f5a1b-9e2d-4f8a-b1c6-3d7e9f0a2b4c" - items: - description: A record ID to delete. - type: string - type: array + data: + $ref: "#/components/schemas/IssuesSearchRequestData" required: - - record_ids + - data type: object - LLMObsDeleteDatasetRecordsDataRequest: - description: Data object for deleting records from an Agent Observability dataset. + IssuesSearchRequestData: + description: Search issues request. properties: attributes: - $ref: "#/components/schemas/LLMObsDeleteDatasetRecordsDataAttributesRequest" + $ref: "#/components/schemas/IssuesSearchRequestDataAttributes" type: - $ref: "#/components/schemas/LLMObsRecordType" + $ref: "#/components/schemas/IssuesSearchRequestDataType" required: - type - attributes type: object - LLMObsDeleteDatasetRecordsRequest: - description: Request to delete records from an Agent Observability dataset. - properties: - data: - $ref: "#/components/schemas/LLMObsDeleteDatasetRecordsDataRequest" - required: - - data - type: object - LLMObsDeleteDatasetsDataAttributesRequest: - description: Attributes for deleting Agent Observability datasets. + IssuesSearchRequestDataAttributes: + description: Object describing a search issue request. properties: - dataset_ids: - description: List of dataset IDs to delete. + assignee_ids: + description: Filter issues by assignee IDs. Multiple values are combined with OR logic. example: - - "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d" + - "00000000-0000-0000-0000-000000000001" items: - description: A dataset ID to delete. + format: uuid type: string + maxItems: 50 type: array + from: + description: Start date (inclusive) of the query in milliseconds since the Unix epoch. + example: 1671612804000 + format: int64 + type: integer + order_by: + $ref: "#/components/schemas/IssuesSearchRequestDataAttributesOrderBy" + persona: + $ref: "#/components/schemas/IssuesSearchRequestDataAttributesPersona" + query: + description: Search query following the event search syntax. + example: "service:orders-* AND @language:go" + type: string + states: + description: Filter issues by state. Multiple values are combined with OR logic. + example: + - "OPEN" + - "ACKNOWLEDGED" + items: + $ref: "#/components/schemas/IssueState" + maxItems: 20 + type: array + team_ids: + description: Filter issues by team IDs. Multiple values are combined with OR logic. + example: + - "00000000-0000-0000-0000-000000000002" + items: + format: uuid + type: string + maxItems: 50 + type: array + to: + description: End date (exclusive) of the query in milliseconds since the Unix epoch. + example: 1671620004000 + format: int64 + type: integer + track: + $ref: "#/components/schemas/IssuesSearchRequestDataAttributesTrack" required: - - dataset_ids - type: object - LLMObsDeleteDatasetsDataRequest: - description: Data object for deleting Agent Observability datasets. - properties: - attributes: - $ref: "#/components/schemas/LLMObsDeleteDatasetsDataAttributesRequest" - type: - $ref: "#/components/schemas/LLMObsDatasetType" - required: - - type - - attributes + - query + - from + - to type: object - LLMObsDeleteDatasetsRequest: - description: Request to delete one or more Agent Observability datasets. + IssuesSearchRequestDataAttributesOrderBy: + description: The attribute to sort the search results by. + enum: + - TOTAL_COUNT + - FIRST_SEEN + - IMPACTED_SESSIONS + - PRIORITY + example: "IMPACTED_SESSIONS" + type: string + x-enum-varnames: + - TOTAL_COUNT + - FIRST_SEEN + - IMPACTED_SESSIONS + - PRIORITY + IssuesSearchRequestDataAttributesPersona: + description: Persona for the search. Either track(s) or persona(s) must be specified. + enum: ["ALL", "BROWSER", "MOBILE", "BACKEND"] + example: "BACKEND" + type: string + x-enum-varnames: + - ALL + - BROWSER + - MOBILE + - BACKEND + IssuesSearchRequestDataAttributesTrack: + description: Track of the events to query. Either track(s) or persona(s) must be specified. + enum: ["trace", "logs", "rum"] + example: "trace" + type: string + x-enum-varnames: + - TRACE + - LOGS + - RUM + IssuesSearchRequestDataType: + description: Type of the object. + enum: ["search_request"] + example: "search_request" + type: string + x-enum-varnames: + - SEARCH_REQUEST + IssuesSearchResponse: + description: Search issues response payload. properties: data: - $ref: "#/components/schemas/LLMObsDeleteDatasetsDataRequest" - required: - - data - type: object - LLMObsDeleteExperimentsDataAttributesRequest: - description: Attributes for deleting Agent Observability experiments. - properties: - experiment_ids: - description: List of experiment IDs to delete. - example: - - "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" + description: Array of results matching the search query. items: - description: An experiment ID to delete. - type: string + $ref: "#/components/schemas/IssuesSearchResult" + type: array + included: + description: Array of resources related to the search results. + items: + $ref: "#/components/schemas/IssuesSearchResultIncluded" type: array - required: - - experiment_ids type: object - LLMObsDeleteExperimentsDataRequest: - description: Data object for deleting Agent Observability experiments. + IssuesSearchResult: + description: Result matching the search query. properties: attributes: - $ref: "#/components/schemas/LLMObsDeleteExperimentsDataAttributesRequest" + $ref: "#/components/schemas/IssuesSearchResultAttributes" + id: + description: Search result identifier (matches the nested issue's identifier). + example: "c1726a66-1f64-11ee-b338-da7ad0900002" + type: string + relationships: + $ref: "#/components/schemas/IssuesSearchResultRelationships" type: - $ref: "#/components/schemas/LLMObsExperimentType" + $ref: "#/components/schemas/IssuesSearchResultType" required: + - id - type - attributes type: object - LLMObsDeleteExperimentsRequest: - description: Request to delete one or more Agent Observability experiments. + IssuesSearchResultAttributes: + description: Object containing the information of a search result. + properties: + impacted_sessions: + description: Count of sessions impacted by the issue over the queried time window. + example: 12 + format: int64 + type: integer + impacted_users: + description: Count of users impacted by the issue over the queried time window. + example: 4 + format: int64 + type: integer + total_count: + description: Total count of errors that match the issue over the queried time window. + example: 82 + format: int64 + type: integer + type: object + IssuesSearchResultIncluded: + description: An array of related resources, returned when the `include` query parameter is used. + oneOf: + - $ref: "#/components/schemas/Issue" + - $ref: "#/components/schemas/IssueCase" + - $ref: "#/components/schemas/IssueUser" + - $ref: "#/components/schemas/IssueTeam" + IssuesSearchResultIssueRelationship: + description: Relationship between the search result and the corresponding issue. properties: data: - $ref: "#/components/schemas/LLMObsDeleteExperimentsDataRequest" + $ref: "#/components/schemas/IssueReference" required: - data type: object - LLMObsDeleteProjectsDataAttributesRequest: - description: Attributes for deleting Agent Observability projects. + IssuesSearchResultRelationships: + description: Relationships between the search result and other resources. properties: - project_ids: - description: List of project IDs to delete. - example: - - "a33671aa-24fd-4dcd-9b33-a8ec7dde7751" - items: - description: A project ID to delete. - type: string - type: array - required: - - project_ids + issue: + $ref: "#/components/schemas/IssuesSearchResultIssueRelationship" type: object - LLMObsDeleteProjectsDataRequest: - description: Data object for deleting Agent Observability projects. + IssuesSearchResultType: + description: Type of the object. + enum: ["error_tracking_search_result"] + example: "error_tracking_search_result" + type: string + x-enum-varnames: + - ERROR_TRACKING_SEARCH_RESULT + ItemApiPayload: + description: A single datastore item with its content and metadata. properties: - attributes: - $ref: "#/components/schemas/LLMObsDeleteProjectsDataAttributesRequest" - type: - $ref: "#/components/schemas/LLMObsProjectType" - required: - - type - - attributes + data: + $ref: "#/components/schemas/ItemApiPayloadData" type: object - LLMObsDeleteProjectsRequest: - description: Request to delete one or more Agent Observability projects. + ItemApiPayloadArray: + description: A collection of datastore items with pagination and schema metadata. properties: data: - $ref: "#/components/schemas/LLMObsDeleteProjectsDataRequest" + description: An array of datastore items with their content and metadata. + items: + $ref: "#/components/schemas/ItemApiPayloadData" + maxItems: 100 + type: array + meta: + $ref: "#/components/schemas/ItemApiPayloadMeta" + description: Metadata about the included items, including pagination info and datastore schema. required: - data type: object - LLMObsDeletedPromptData: - description: Data object confirming that an Agent Observability prompt was deleted. + ItemApiPayloadData: + description: Core data and metadata for a single datastore item. properties: attributes: - $ref: "#/components/schemas/LLMObsDeletedPromptDataAttributes" + $ref: "#/components/schemas/ItemApiPayloadDataAttributes" id: - description: Unique identifier of the deleted prompt. - example: "4a1a28ff-8a25-5f0f-946f-f48264d772eb" + description: The unique identifier of the datastore. type: string type: - $ref: "#/components/schemas/LLMObsPromptType" + $ref: "#/components/schemas/DatastoreItemsDataType" required: - - id - type - - attributes type: object - LLMObsDeletedPromptDataAttributes: - description: Attributes confirming that an Agent Observability prompt was deleted. + ItemApiPayloadDataAttributes: + description: Metadata and content of a datastore item. properties: - deleted_at: - description: Timestamp when the prompt was deleted. - example: "2025-02-10T09:15:00Z" + created_at: + description: Timestamp when the item was first created. format: date-time type: string - prompt_id: - description: Customer-provided identifier of the deleted prompt. - example: "customer-support-assistant" - type: string - required: - - prompt_id - - deleted_at + modified_at: + description: Timestamp when the item was last modified. + format: date-time + type: string + org_id: + description: The ID of the organization that owns this item. + format: int64 + type: integer + primary_column_name: + $ref: "#/components/schemas/DatastoreAttributesPrimaryColumnName" + signature: + description: A unique signature identifying this item version. + type: string + store_id: + description: The unique identifier of the datastore containing this item. + type: string + value: + $ref: "#/components/schemas/ItemApiPayloadDataAttributesValue" type: object - LLMObsDeletedPromptResponse: - description: Response confirming that an Agent Observability prompt was deleted. - example: - data: - attributes: - deleted_at: "2025-02-10T09:15:00Z" - prompt_id: "customer-support-assistant" - id: "4a1a28ff-8a25-5f0f-946f-f48264d772eb" - type: prompt-templates + ItemApiPayloadDataAttributesValue: + additionalProperties: {} + description: The data content (as key-value pairs) of a datastore item. + type: object + ItemApiPayloadMeta: + description: Additional metadata about a collection of datastore items, including pagination and schema information. properties: - data: - $ref: "#/components/schemas/LLMObsDeletedPromptData" - required: - - data + page: + $ref: "#/components/schemas/ItemApiPayloadMetaPage" + schema: + $ref: "#/components/schemas/ItemApiPayloadMetaSchema" type: object - LLMObsDisplayBlockAnnotatedInteractionItem: - description: A display_block interaction with its associated annotations. + ItemApiPayloadMetaPage: + description: Pagination information for a collection of datastore items. properties: - annotations: - description: List of annotations for this interaction. - items: - $ref: "#/components/schemas/LLMObsAnnotationItem" - type: array - can_annotate: - description: Whether the current caller can annotate this interaction. - example: true + hasMore: + description: Whether there are additional pages of items beyond the current page. type: boolean - content_id: - description: Server-generated deterministic identifier derived from the block list. - example: "9a87f3e2b1d4c5a6f8b3e2d1c4a7b5f6e3d2a1c4b7e5f8a3d6c2e1b4a7d5f8c2" - type: string - display_block: - $ref: "#/components/schemas/LLMObsContentBlocks" - id: - description: Unique identifier of the interaction. - example: "interaction-456" - type: string - type: - $ref: "#/components/schemas/LLMObsDisplayBlockInteractionType" - required: - - id - - type - - content_id - - can_annotate - - annotations - - display_block + totalCount: + description: The total number of items in the datastore, ignoring any filters. + format: int64 + type: integer + totalFilteredCount: + description: The total number of items that match the current filter criteria. + format: int64 + type: integer type: object - LLMObsDisplayBlockInteractionItem: - description: |- - An interaction whose rendered content is supplied directly as a list - of display blocks. The server generates `content_id` deterministically - from the block list. + ItemApiPayloadMetaSchema: + description: Schema information about the datastore, including its primary key and field definitions. properties: - display_block: - $ref: "#/components/schemas/LLMObsContentBlocks" - type: - $ref: "#/components/schemas/LLMObsDisplayBlockInteractionType" - required: - - type - - display_block + fields: + description: An array describing the columns available in this datastore. + items: + $ref: "#/components/schemas/ItemApiPayloadMetaSchemaField" + type: array + primary_key: + description: The name of the primary key column for this datastore. + type: string type: object - LLMObsDisplayBlockInteractionResponseItem: - description: A display_block interaction result. + ItemApiPayloadMetaSchemaField: + description: Information about a specific column in the datastore schema. properties: - already_existed: - description: Whether this interaction already existed in the queue. - example: false - type: boolean - content_id: - description: Server-generated deterministic identifier derived from the block list. - example: "9a87f3e2b1d4c5a6f8b3e2d1c4a7b5f6e3d2a1c4b7e5f8a3d6c2e1b4a7d5f8c2" - type: string - display_block: - $ref: "#/components/schemas/LLMObsContentBlocks" - id: - description: Unique identifier of the interaction. - example: "00000000-0000-0000-0000-000000000000" + name: + description: The name of this column in the datastore. + example: "" type: string type: - $ref: "#/components/schemas/LLMObsDisplayBlockInteractionType" + description: The data type of this column. For example, 'string', 'number', or 'boolean'. + example: "" + type: string required: - - id + - name - type - - content_id - - already_existed - - display_block type: object - LLMObsDisplayBlockInteractionType: - description: Type discriminator for a `display_block` interaction. - enum: - - display_block - example: display_block - type: string - x-enum-varnames: - - DISPLAY_BLOCK - LLMObsEventType: - description: Resource type for Agent Observability experiment events. - enum: - - events - example: events - type: string - x-enum-varnames: - - EVENTS - LLMObsExperimentDataAttributesRequest: - description: Attributes for creating an Agent Observability experiment. + JSONAPIErrorItem: + description: API error response body properties: - config: + detail: + description: A human-readable explanation specific to this occurrence of the error. + example: Missing required attribute in body + type: string + meta: additionalProperties: {} - description: Configuration parameters for the experiment. + description: Non-standard meta-information about the error type: object - dataset_id: - description: Identifier of the dataset used in this experiment. - example: "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d" + source: + $ref: "#/components/schemas/JSONAPIErrorItemSource" + status: + description: Status code of the response. + example: "400" type: string - dataset_version: - description: Version of the dataset to use. Defaults to the current version if not specified. - format: int64 - type: integer - description: - description: Description of the experiment. + title: + description: Short human-readable summary of the error. + example: Bad Request type: string - ensure_unique: - description: Whether to ensure the experiment name is unique. Defaults to `true`. - type: boolean - metadata: - additionalProperties: {} - description: Arbitrary metadata associated with the experiment. - type: object - name: - description: Name of the experiment. - example: "My Experiment v1" + type: object + JSONAPIErrorItemSource: + description: References to the source of the error. + properties: + header: + description: A string indicating the name of a single request header which caused the error. + example: "Authorization" type: string - parent_experiment_id: - description: Identifier of the parent (baseline) experiment this experiment is run against. - example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" + parameter: + description: A string indicating which URI query parameter caused the error. + example: "limit" type: string - project_id: - description: Identifier of the project this experiment belongs to. - example: "a33671aa-24fd-4dcd-9b33-a8ec7dde7751" + pointer: + description: A JSON pointer to the value in the request document that caused the error. + example: "/data/attributes/title" type: string - run_count: - description: Number of runs configured for this experiment. - format: int32 - maximum: 2147483647 - type: integer + type: object + JSONAPIErrorResponse: + description: API error response. + properties: + errors: + description: A list of errors. + items: + $ref: "#/components/schemas/JSONAPIErrorItem" + type: array required: - - project_id - - name + - errors type: object - LLMObsExperimentDataAttributesResponse: - description: Attributes of an Agent Observability experiment. + JSSourcemapAttributes: + description: Attributes of a JavaScript source map. properties: - aggregate_data: - additionalProperties: {} - description: >- - Pre-computed aggregate metrics for this experiment run, including eval score distributions, token costs, and error rates. - nullable: true - type: object - author: - $ref: "#/components/schemas/LLMObsExperimentUser" - config: - additionalProperties: {} - description: Configuration parameters for the experiment. - nullable: true - type: object - created_at: - description: Timestamp when the experiment was created. - example: "2024-01-15T10:30:00Z" - format: date-time + absolute_path: + description: The absolute path to the minified JavaScript file. + example: /js/bundle.min.js type: string - dataset_id: - description: Identifier of the dataset used in this experiment. - example: "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d" + blob_storage_sourcemap_path: + description: The path to the source map in blob storage. + example: org123/1.0.0/bundle.min.js.map type: string - dataset_name: - description: |- - Name of the dataset used in this experiment. - Only present when `include[dataset_names]` is `true`. - nullable: true + build_id: + description: The build identifier. + example: abc123 type: string - dataset_version: - description: Version of the dataset used in this experiment. - format: int64 - type: integer - deleted_at: - description: Timestamp when the experiment was soft-deleted, if applicable. + created_at: + description: The timestamp when the source map was created. + example: "2024-01-01T00:00:00Z" format: date-time - nullable: true type: string - description: - description: Description of the experiment. - example: "" - nullable: true + domain: + description: The domain associated with the source map. + example: example.com type: string - error: - description: Error message describing why the experiment failed, if applicable. - nullable: true + file_name: + description: The file name of the minified JavaScript file. + example: bundle.min.js type: string - experiment: - description: Logical name of the experiment, shared across all runs of the same pipeline. - example: "my-pipeline" + mapkind: + description: The type of source map. + example: js type: string - metadata: - additionalProperties: {} - description: Arbitrary metadata associated with the experiment. - nullable: true - type: object - name: - description: Name of the experiment. - example: "My Experiment v1" + service: + description: The service name associated with the source map. + example: my-web-service type: string - parent_experiment_id: - description: Identifier of the parent (baseline) experiment this experiment was run against, if any. - example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" - nullable: true + size: + description: The size of the source map file in bytes. + example: 1024 + format: int64 + type: integer + variant: + description: The source map variant. + example: release type: string - project_id: - description: Identifier of the project this experiment belongs to. - example: "a33671aa-24fd-4dcd-9b33-a8ec7dde7751" + version: + description: The version of the service associated with the source map. + example: 1.0.0 type: string - run_count: - description: Expected number of runs for this experiment. - format: int32 - maximum: 2147483647 - type: integer - status: - $ref: "#/components/schemas/LLMObsExperimentStatus" - updated_at: - description: Timestamp when the experiment was last updated. - example: "2024-01-15T10:30:00Z" - format: date-time + version_code: + description: The version code. + example: "100" type: string required: - - project_id - - dataset_id - - name - - description - - metadata - - config + - mapkind + - size - created_at - - updated_at - type: object - LLMObsExperimentDataRequest: - description: Data object for creating an Agent Observability experiment. - properties: - attributes: - $ref: "#/components/schemas/LLMObsExperimentDataAttributesRequest" - type: - $ref: "#/components/schemas/LLMObsExperimentType" - required: - - type - - attributes type: object - LLMObsExperimentDataResponse: - description: Data object for an Agent Observability experiment. + JSSourcemapData: + description: JavaScript source map data object. properties: attributes: - $ref: "#/components/schemas/LLMObsExperimentDataAttributesResponse" + $ref: "#/components/schemas/JSSourcemapAttributes" id: - description: Unique identifier of the experiment. - example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" + description: The unique identifier of the source map. + example: "5" type: string type: - $ref: "#/components/schemas/LLMObsExperimentType" + $ref: "#/components/schemas/SourcemapDataType" required: - id - type - attributes type: object - LLMObsExperimentEvalMetricEvent: - description: An evaluation metric event associated with an experiment span. + JVMSourcemapAttributes: + description: Attributes of a JVM mapping file. properties: - assessment: - $ref: "#/components/schemas/LLMObsMetricAssessment" - boolean_value: - description: Boolean value. Present when `metric_type` is `boolean`. - nullable: true - type: boolean - categorical_value: - description: Categorical value. Present when `metric_type` is `categorical`. - nullable: true + build_id: + description: The build identifier (UUID format). + example: 550e8400-e29b-41d4-a716-446655440000 type: string - eval_source_type: - description: Source type of the evaluation. - example: "managed" + created_at: + description: The timestamp when the mapping file was created. + example: "2024-01-01T00:00:00Z" + format: date-time type: string - id: - description: Unique identifier of the evaluation metric event. - example: "00000000-0000-0000-0000-000000000001" + mapkind: + description: The type of source map. + example: jvm type: string - json_value: - additionalProperties: {} - description: JSON value. Present when `metric_type` is `json`. - nullable: true - type: object - label: - description: Label or name for the metric. - example: "faithfulness" + service: + description: The service name associated with the mapping file. + example: my-android-app type: string - metadata: - additionalProperties: {} - description: Arbitrary metadata associated with the metric. - nullable: true - type: object - metric_source: - description: Source of the metric. Either `custom` (user-submitted) or `summary` (experiment-level aggregate). - example: "custom" + size: + description: The size of the mapping file in bytes. + example: 512 + format: int64 + type: integer + variant: + description: The build variant (e.g., `release`, `debug`). + example: release type: string - metric_type: - $ref: "#/components/schemas/LLMObsMetricScoreType" - reasoning: - description: Human-readable reasoning for the metric value. - nullable: true + version: + description: The version of the service associated with the mapping file. + example: 1.0.0 type: string - score_value: - description: Numeric score. Present when `metric_type` is `score`. - format: double - nullable: true - type: number - span_id: - description: Span ID this metric is associated with. - example: "span-7a1b2c3d" + version_code: + description: The version code. + example: "100" type: string - tags: - description: Tags associated with the metric. - items: - type: string - type: array - timestamp_ms: - description: Timestamp when the metric was recorded, in milliseconds since Unix epoch. - example: 1705314600000 - format: int64 - type: integer - trace_id: - description: Trace ID linking this metric to a span. - example: "abc123def456" + required: + - mapkind + - size + - created_at + type: object + JVMSourcemapData: + description: JVM (ProGuard/R8) mapping file data object. + properties: + attributes: + $ref: "#/components/schemas/JVMSourcemapAttributes" + id: + description: The unique identifier of the source map. + example: "9" type: string + type: + $ref: "#/components/schemas/SourcemapDataType" + required: + - id + - type + - attributes type: object - LLMObsExperimentEventsDataAttributesRequest: - description: Attributes for pushing experiment events including spans and metrics. + JiraAccountAttributes: + description: Attributes of a Jira account properties: - metrics: - description: List of metrics to push for the experiment. - items: - $ref: "#/components/schemas/LLMObsExperimentMetric" - type: array - spans: - description: List of spans to push for the experiment. - items: - $ref: "#/components/schemas/LLMObsExperimentSpan" - type: array + consumer_key: + description: The consumer key for the Jira account + example: "consumer-key-1" + type: string + instance_url: + description: The URL of the Jira instance + example: "https://example.atlassian.net" + type: string + last_webhook_timestamp: + description: Timestamp of the last webhook received + example: "2024-01-15T10:30:00Z" + format: date-time + type: string + required: + - consumer_key + - instance_url type: object - LLMObsExperimentEventsDataRequest: - description: Data object for pushing experiment events. + JiraAccountData: + description: Data object for a Jira account properties: attributes: - $ref: "#/components/schemas/LLMObsExperimentEventsDataAttributesRequest" + $ref: "#/components/schemas/JiraAccountAttributes" + id: + description: Unique identifier for the Jira account + example: "account-1" + type: string type: - $ref: "#/components/schemas/LLMObsEventType" + $ref: "#/components/schemas/JiraAccountType" required: + - id - type - attributes type: object - LLMObsExperimentEventsRequest: - description: Request to push spans and metrics for an Agent Observability experiment. + JiraAccountRelationship: + description: Relationship to a Jira account properties: data: - $ref: "#/components/schemas/LLMObsExperimentEventsDataRequest" + $ref: "#/components/schemas/JiraAccountData" required: - data type: object - LLMObsExperimentEventsType: - description: Resource type for an experiment events collection. + JiraAccountType: + description: Type identifier for Jira account resources enum: - - experiment_events - example: experiment_events + - jira-account + example: jira-account type: string x-enum-varnames: - - EXPERIMENT_EVENTS - LLMObsExperimentEventsV2DataAttributesResponse: - description: Attributes of an experiment events response. + - JIRA_ACCOUNT + JiraAccountsData: + description: Array of Jira account data objects + items: + $ref: "#/components/schemas/JiraAccountData" + type: array + JiraAccountsMeta: + description: Metadata for Jira accounts response properties: - spans: - description: Experiment spans, each enriched with their associated evaluation metrics. - items: - $ref: "#/components/schemas/LLMObsExperimentSpanWithEvals" - type: array - summary_metrics: - description: Experiment-level summary evaluation metrics (not tied to individual spans). + public_key: + description: Public key for the Jira integration + example: "c29tZSBkYXRhIHdpdGggACBhbmQg77u/" + type: string + type: object + JiraAccountsResponse: + description: Response containing Jira accounts + properties: + data: + $ref: "#/components/schemas/JiraAccountsData" + example: + - attributes: + consumer_key: "consumer-key-1" + instance_url: "https://example.atlassian.net" + id: "account-1" + type: jira-account + meta: + $ref: "#/components/schemas/JiraAccountsMeta" + required: + - data + type: object + JiraIntegrationMetadata: + description: Incident integration metadata for the Jira integration. + properties: + issues: + description: Array of Jira issues in this integration metadata. + example: [] items: - $ref: "#/components/schemas/LLMObsExperimentEvalMetricEvent" + $ref: "#/components/schemas/JiraIntegrationMetadataIssuesItem" type: array required: - - spans - - summary_metrics + - issues type: object - LLMObsExperimentEventsV2DataResponse: - description: JSON:API data object for an experiment events response. + JiraIntegrationMetadataIssuesItem: + description: Item in the Jira integration metadata issue array. properties: - attributes: - $ref: "#/components/schemas/LLMObsExperimentEventsV2DataAttributesResponse" - id: - description: Identifier for this events resource. - example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" + account: + description: URL of issue's Jira account. + example: https://example.atlassian.net + type: string + issue_key: + description: Jira issue's issue key. + example: PROJ-123 + type: string + issuetype_id: + description: Jira issue's issue type. + example: "1000" + type: string + project_key: + description: Jira issue's project keys. + example: PROJ + type: string + redirect_url: + description: URL redirecting to the Jira issue. + example: https://example.atlassian.net/browse/PROJ-123 type: string - type: - $ref: "#/components/schemas/LLMObsExperimentEventsType" required: - - id - - type - - attributes + - project_key + - account type: object - LLMObsExperimentEventsV2Response: - description: Response for listing experiment events (v2/v3). Returns spans and summary metrics in a single resource. + JiraIssue: + description: Jira issue attached to case + nullable: true properties: - data: - $ref: "#/components/schemas/LLMObsExperimentEventsV2DataResponse" - meta: - $ref: "#/components/schemas/LLMObsCursorMeta" - required: - - data + result: + $ref: "#/components/schemas/JiraIssueResult" + status: + $ref: "#/components/schemas/Case3rdPartyTicketStatus" + readOnly: true type: object - LLMObsExperimentMetric: - description: A metric associated with an Agent Observability experiment span. + JiraIssueCreateAttributes: + description: Jira issue creation attributes properties: - assessment: - $ref: "#/components/schemas/LLMObsMetricAssessment" - boolean_value: - description: Boolean value. Used when `metric_type` is `boolean`. - type: boolean - categorical_value: - description: Categorical value. Used when `metric_type` is `categorical`. - type: string - error: - $ref: "#/components/schemas/LLMObsExperimentMetricError" - json_value: + fields: additionalProperties: {} - description: JSON value. Used when `metric_type` is `json`. + description: Additional Jira fields + example: {} type: object - label: - description: Label or name for the metric. - example: "faithfulness" + issue_type_id: + description: Jira issue type ID + example: "10001" type: string - metadata: - additionalProperties: {} - description: Arbitrary metadata associated with the metric. - type: object - metric_type: - $ref: "#/components/schemas/LLMObsMetricScoreType" - reasoning: - description: Human-readable reasoning for the metric value. + jira_account_id: + description: Jira account ID + example: "1234" type: string - score_value: - description: Numeric score value. Used when `metric_type` is `score`. - format: double - type: number - span_id: - description: The ID of the span this metric measures. - example: "span-7a1b2c3d" + project_id: + description: Jira project ID + example: "5678" type: string - tags: - description: List of tags associated with the metric. - items: - description: A tag string in `key:value` format. - type: string - type: array - timestamp_ms: - description: Timestamp when the metric was recorded, in milliseconds since Unix epoch. - example: 1705314600000 - format: int64 - type: integer required: - - span_id - - metric_type - - timestamp_ms - - label + - jira_account_id + - project_id + - issue_type_id type: object - LLMObsExperimentMetricError: - description: Error details for an experiment metric evaluation. + JiraIssueCreateData: + description: Jira issue creation data properties: - message: - description: Error message associated with the metric evaluation. - type: string + attributes: + $ref: "#/components/schemas/JiraIssueCreateAttributes" + type: + $ref: "#/components/schemas/JiraIssueResourceType" + required: + - type + - attributes type: object - LLMObsExperimentRequest: - description: Request to create an Agent Observability experiment. + JiraIssueCreateRequest: + description: Jira issue creation request properties: data: - $ref: "#/components/schemas/LLMObsExperimentDataRequest" + $ref: "#/components/schemas/JiraIssueCreateData" required: - data type: object - LLMObsExperimentResponse: - description: Response containing a single Agent Observability experiment. + JiraIssueLinkAttributes: + description: Jira issue link attributes + properties: + jira_issue_url: + description: URL of the Jira issue + example: "https://jira.example.com/browse/PROJ-123" + type: string + required: + - jira_issue_url + type: object + JiraIssueLinkData: + description: Jira issue link data + properties: + attributes: + $ref: "#/components/schemas/JiraIssueLinkAttributes" + type: + $ref: "#/components/schemas/JiraIssueResourceType" + required: + - type + - attributes + type: object + JiraIssueLinkRequest: + description: Jira issue link request properties: data: - $ref: "#/components/schemas/LLMObsExperimentDataResponse" + $ref: "#/components/schemas/JiraIssueLinkData" required: - data type: object - LLMObsExperimentRunDataResponse: - description: Data object for an Agent Observability experiment run. + JiraIssueResourceType: + description: Jira issue resource type + enum: + - issues + example: issues + type: string + x-enum-varnames: + - ISSUES + JiraIssueResult: + description: Jira issue information properties: - aggregate_data: - additionalProperties: {} - description: Aggregated metric data for this run. - nullable: true - type: object - created_at: - description: Timestamp when the run was created. - example: "2024-01-15T10:30:00Z" - format: date-time + issue_id: + description: Jira issue ID type: string - experiment_id: - description: Identifier of the experiment this run belongs to. - example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" + issue_key: + description: Jira issue key type: string - id: - description: Unique identifier of the experiment run. - example: "7a1b2c3d-4e5f-6789-abcd-ef0123456789" + issue_url: + description: Jira issue URL + type: string + project_key: + description: Jira project key type: string - run_number: - description: Sequential number of this run within the experiment. - example: 1 - format: int32 - maximum: 2147483647 - type: integer type: object - LLMObsExperimentSpan: - description: A span associated with an Agent Observability experiment. + JiraIssueTemplateCreateRequest: + description: Request to create a Jira issue template properties: - dataset_id: - description: Dataset ID associated with this span. - example: "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d" + data: + $ref: "#/components/schemas/JiraIssueTemplateCreateRequestData" + type: object + JiraIssueTemplateCreateRequestAttributes: + description: Attributes for creating a Jira issue template + properties: + fields: + additionalProperties: {} + description: Custom fields for the Jira issue template + example: + description: + payload: "Test" + type: "json" + type: object + issue_type_id: + description: The ID of the Jira issue type + example: "12730" type: string - duration: - description: Duration of the span in nanoseconds. - example: 1500000000 - format: int64 - type: integer - meta: - $ref: "#/components/schemas/LLMObsExperimentSpanMeta" + jira-account: + $ref: "#/components/schemas/JiraIssueTemplateCreateRequestAttributesJiraAccount" name: - description: Name of the span. - example: "llm_call" + description: The name of the issue template + example: "test-template" type: string project_id: - description: Project ID associated with this span. - example: "a33671aa-24fd-4dcd-9b33-a8ec7dde7751" - type: string - span_id: - description: Unique identifier of the span. - example: "span-7a1b2c3d" + description: The ID of the Jira project + example: "10772" type: string - start_ns: - description: Start time of the span in nanoseconds since Unix epoch. - example: 1705314600000000000 - format: int64 - type: integer - status: - $ref: "#/components/schemas/LLMObsExperimentSpanStatus" - tags: - description: List of tags associated with the span. - items: - description: A tag string in `key:value` format. - type: string - type: array - trace_id: - description: Trace ID for the span. - example: "abc123def456" + type: object + JiraIssueTemplateCreateRequestAttributesJiraAccount: + description: Reference to the Jira account + properties: + id: + description: The ID of the Jira account + example: "80f16d40-1fba-486e-b1fc-983e6ca19bec" + format: uuid type: string required: - - trace_id - - span_id - - project_id - - dataset_id - - name - - start_ns - - duration - - status + - id type: object - LLMObsExperimentSpanDataResponse: - description: JSON:API data item wrapping a single experiment span with evaluations. + JiraIssueTemplateCreateRequestData: + description: Data object for creating a Jira issue template properties: attributes: - $ref: "#/components/schemas/LLMObsExperimentSpanWithEvals" + $ref: "#/components/schemas/JiraIssueTemplateCreateRequestAttributes" + type: + $ref: "#/components/schemas/JiraIssueTemplateType" + type: object + JiraIssueTemplateData: + description: Data object for a Jira issue template + properties: + attributes: + $ref: "#/components/schemas/JiraIssueTemplateDataAttributes" id: - description: Unique identifier of the span. - example: "00000000-0000-0000-0000-000000000001" + description: Unique identifier for the Jira issue template + example: "65b3341b-0680-47f9-a6d4-134db45c603e" + format: uuid type: string + relationships: + $ref: "#/components/schemas/JiraIssueTemplateDataRelationships" type: - $ref: "#/components/schemas/LLMObsExperimentSpanType" + $ref: "#/components/schemas/JiraIssueTemplateType" required: - id - type - attributes type: object - LLMObsExperimentSpanError: - description: Error details for an experiment span. + JiraIssueTemplateDataAttributes: + description: Attributes of a Jira issue template properties: - message: - description: Error message. - example: "Model response timed out" + fields: + additionalProperties: {} + description: Custom fields for the Jira issue template + example: + description: + payload: "Test Description" + type: "json" + type: object + issue_type_id: + description: The ID of the Jira issue type + example: "456" type: string - stack: - description: Stack trace of the error. - example: "Traceback (most recent call last):\n File \"main.py\", line 10, in \n response = model.generate(input)\n File \"model.py\", line 45, in generate\n raise TimeoutError(\"Model response timed out\")\nTimeoutError: Model response timed out" + name: + description: The name of the issue template + example: "Test Template" type: string - type: - description: The error type or exception class name. - example: "TimeoutError" + project_id: + description: The ID of the Jira project + example: "123" type: string + required: + - name + - project_id + - issue_type_id + - fields type: object - LLMObsExperimentSpanMeta: - description: Metadata associated with an experiment span. + JiraIssueTemplateDataRelationships: + description: Relationships of a Jira issue template properties: - error: - $ref: "#/components/schemas/LLMObsExperimentSpanError" - expected_output: - additionalProperties: {} - description: Expected output for the span, used for evaluation. - type: object - input: - $ref: "#/components/schemas/AnyValue" - output: - $ref: "#/components/schemas/AnyValue" + jira-account: + $ref: "#/components/schemas/JiraAccountRelationship" + required: + - jira-account type: object - LLMObsExperimentSpanStatus: - description: Status of the span. - enum: - - ok - - error - example: "ok" - type: string - x-enum-varnames: - - OK - - ERROR - LLMObsExperimentSpanType: - description: Resource type for a span item in an experiment spans response. + JiraIssueTemplateResponse: + description: Response containing a single Jira issue template + properties: + data: + $ref: "#/components/schemas/JiraIssueTemplateData" + included: + $ref: "#/components/schemas/JiraAccountsData" + required: + - data + type: object + JiraIssueTemplateType: + description: Type identifier for Jira issue template resources enum: - - experiments - example: experiments + - jira-issue-template + example: jira-issue-template type: string x-enum-varnames: - - EXPERIMENTS_SPAN - LLMObsExperimentSpanWithEvals: - description: An experiment span enriched with its associated evaluation metrics. + - JIRA_ISSUE_TEMPLATE + JiraIssueTemplateUpdateRequest: + description: Request to update a Jira issue template properties: - dataset_record_id: - description: ID of the dataset record this span evaluated. - nullable: true - type: string - duration: - description: Duration of the span in nanoseconds. - example: 1500000000.0 - format: double - type: number - eval_metrics: - description: Evaluation metrics associated with this span. - items: - $ref: "#/components/schemas/LLMObsExperimentEvalMetricEvent" - type: array - id: - description: Unique identifier of the span. - example: "00000000-0000-0000-0000-000000000001" - type: string - meta: - $ref: "#/components/schemas/LLMObsExperimentSpanMeta" - metrics: - additionalProperties: - format: double - type: number - description: Numeric metrics attached to the span. + data: + $ref: "#/components/schemas/JiraIssueTemplateUpdateRequestData" + required: + - data + type: object + JiraIssueTemplateUpdateRequestAttributes: + description: Attributes for updating a Jira issue template + properties: + fields: + additionalProperties: {} + description: Custom fields for the Jira issue template + example: + description: + payload: "Updated Description" + type: "json" type: object name: - description: Name of the span. - example: "llm_call" - type: string - parent_id: - description: Parent span ID, if any. + description: The name of the issue template + example: "test_template_updated" type: string - span_id: - description: Span ID. - example: "span-7a1b2c3d" - type: string - start_ns: - description: Start time in nanoseconds since Unix epoch. - example: 1705314600000000000 - format: int64 - type: integer - status: - $ref: "#/components/schemas/LLMObsExperimentSpanStatus" - tags: - description: Tags associated with the span. - items: - type: string - type: array - trace_id: - description: Trace ID. - example: "abc123def456" - type: string - type: object - LLMObsExperimentSpansResponse: - description: >- - Response for listing experiment spans (v1). Returns only spans with their evaluation metrics. No summary metrics or pagination are included. Deprecated in favor of `ListLLMObsExperimentEventsV3`. - properties: - data: - description: List of experiment spans with their evaluation metrics. - items: - $ref: "#/components/schemas/LLMObsExperimentSpanDataResponse" - type: array - required: - - data - type: object - LLMObsExperimentStatus: - description: Execution status of an Agent Observability experiment. - enum: - - running - - completed - - failed - - interrupted - example: completed - type: string - x-enum-varnames: - - RUNNING - - COMPLETED - - FAILED - - INTERRUPTED - LLMObsExperimentType: - description: Resource type of an Agent Observability experiment. - enum: - - experiments - example: experiments - type: string - x-enum-varnames: - - EXPERIMENTS - LLMObsExperimentUpdateDataAttributesRequest: - description: Attributes for updating an Agent Observability experiment. - properties: - dataset_id: - description: Updated identifier of the dataset used in this experiment. - example: "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d" - type: string - description: - description: Updated description of the experiment. - type: string - error: - description: Error message describing why the experiment failed, if applicable. - type: string - metadata: - additionalProperties: {} - description: Updated arbitrary metadata associated with the experiment. - type: object - name: - description: Updated name of the experiment. - type: string - status: - $ref: "#/components/schemas/LLMObsExperimentStatus" type: object - LLMObsExperimentUpdateDataRequest: - description: Data object for updating an Agent Observability experiment. + JiraIssueTemplateUpdateRequestData: + description: Data object for updating a Jira issue template properties: attributes: - $ref: "#/components/schemas/LLMObsExperimentUpdateDataAttributesRequest" + $ref: "#/components/schemas/JiraIssueTemplateUpdateRequestAttributes" type: - $ref: "#/components/schemas/LLMObsExperimentType" + $ref: "#/components/schemas/JiraIssueTemplateType" required: - type - attributes type: object - LLMObsExperimentUpdateRequest: - description: Request to partially update an Agent Observability experiment. + JiraIssueTemplatesData: + description: Array of Jira issue template data objects + items: + $ref: "#/components/schemas/JiraIssueTemplateData" + type: array + JiraIssueTemplatesResponse: + description: Response containing Jira issue templates properties: data: - $ref: "#/components/schemas/LLMObsExperimentUpdateDataRequest" + $ref: "#/components/schemas/JiraIssueTemplatesData" + example: + - attributes: + fields: + description: + payload: "Test Description" + type: "json" + issue_type_id: "10001" + name: "Bug Report Template" + project_id: "PROJECT-1" + id: "65b3341b-0680-47f9-a6d4-134db45c603e" + type: jira-issue-template + included: + $ref: "#/components/schemas/JiraAccountsData" required: - data type: object - LLMObsExperimentUser: - description: User data for the author of an experiment. Only present when `include[user_data]` is `true`. + JiraIssuesDataType: + default: jira_issues + description: Jira issues resource type. + enum: + - jira_issues + example: jira_issues + type: string + x-enum-varnames: + - JIRA_ISSUES + JobCreateResponse: + description: Run a historical job response. + properties: + data: + $ref: "#/components/schemas/JobCreateResponseData" + type: object + JobCreateResponseData: + description: The definition of `JobCreateResponseData` object. properties: - email: - description: Email address of the user. - example: "jane.doe@example.com" - type: string - handle: - description: Username or handle associated with the user's Datadog account. - example: "jane.doe@example.com" - type: string - icon: - description: URL of the user's icon. - example: "https://example.com/icon.png" - type: string id: - description: Unique identifier of the user. - example: "00000000-0000-0000-0000-000000000010" - type: string - name: - description: Display name of the user. - example: "Jane Doe" + description: ID of the created job. type: string + type: + $ref: "#/components/schemas/HistoricalJobDataType" type: object - LLMObsExperimentationAnalyticsAggregate: - description: Analytics aggregation parameters. + JobDefinition: + description: Definition of a historical job. properties: - compute: - description: List of metric computations to perform. + calculatedFields: + description: Calculated fields. items: - $ref: "#/components/schemas/LLMObsExperimentationAnalyticsCompute" - minItems: 1 + $ref: "#/components/schemas/CalculatedField" type: array - dataset_version: - description: Filter to a specific dataset version. - format: int64 - nullable: true - type: integer - group_by: - description: Fields to group results by. + cases: + description: Cases used for generating job results. Up to 10 cases are allowed. items: - $ref: "#/components/schemas/LLMObsExperimentationAnalyticsGroupBy" + $ref: "#/components/schemas/SecurityMonitoringRuleCaseCreate" + maxItems: 10 type: array - indexes: - description: Data indexes to query. At least one is required. + from: + description: Starting time of data analyzed by the job. + example: 1729843470000 + format: int64 + type: integer + groupSignalsBy: + description: Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups. example: - - "experiment-evals" + - service items: + description: Field to group by. type: string - minItems: 1 type: array - limit: - description: Maximum number of results to return. - example: 1000 - format: int32 - maximum: 2147483647 - nullable: true - type: integer - search: - $ref: "#/components/schemas/LLMObsExperimentationAnalyticsSearch" - time: - $ref: "#/components/schemas/LLMObsExperimentationAnalyticsTimeRange" - required: - - compute - - indexes - - search - type: object - LLMObsExperimentationAnalyticsCompute: - description: A single metric computation definition. - properties: - metric: - description: Name of the metric to compute. - example: "score_value" + index: + description: Index used to load the data. + example: cloud_siem + type: string + message: + description: Message for generated results. + example: A large number of failed login attempts. type: string name: - description: Optional alias for this computation in the response. - example: "avg_faithfulness" + description: Job name. + example: Excessive number of failed attempts. type: string - required: - - metric - type: object - LLMObsExperimentationAnalyticsDataAttributesRequest: - description: Attributes for an analytics request. - properties: - aggregate: - $ref: "#/components/schemas/LLMObsExperimentationAnalyticsAggregate" - required: - - aggregate - type: object - LLMObsExperimentationAnalyticsDataAttributesResponse: - description: Attributes of an analytics response. - properties: - hit_count: - description: Total number of events matched by the query before grouping. - example: 1500 + options: + $ref: "#/components/schemas/HistoricalJobOptions" + queries: + description: Queries for selecting logs analyzed by the job. Up to 10 queries are allowed. + items: + $ref: "#/components/schemas/HistoricalJobQuery" + maxItems: 10 + type: array + referenceTables: + description: Reference tables used in the queries. + items: + $ref: "#/components/schemas/SecurityMonitoringReferenceTable" + type: array + tags: + description: Tags for generated signals. + items: + description: A tag string in `key:value` format. + type: string + type: array + thirdPartyCases: + description: Cases for generating results from third-party detection method. Only available for third-party detection method. Up to 10 cases are allowed. + example: [] + items: + $ref: "#/components/schemas/SecurityMonitoringThirdPartyRuleCaseCreate" + maxItems: 10 + type: array + to: + description: Ending time of data analyzed by the job. + example: 1729847070000 format: int64 type: integer - result: - $ref: "#/components/schemas/LLMObsExperimentationAnalyticsResult" - required: - - hit_count - - result - type: object - LLMObsExperimentationAnalyticsDataRequest: - description: Data object for an analytics request. - properties: - attributes: - $ref: "#/components/schemas/LLMObsExperimentationAnalyticsDataAttributesRequest" type: - $ref: "#/components/schemas/LLMObsExperimentationType" + description: Job type. + type: string required: - - type - - attributes + - from + - to + - index + - name + - cases + - queries + - message type: object - LLMObsExperimentationAnalyticsDataResponse: - description: JSON:API data object for an analytics response. + JobDefinitionFromRule: + description: Definition of a historical job based on a security monitoring rule. properties: - attributes: - $ref: "#/components/schemas/LLMObsExperimentationAnalyticsDataAttributesResponse" + caseIndex: + description: Zero-based index of the rule case to use as the job's signal condition. When omitted, all cases are evaluated. Up to 10 cases are supported, so valid values are 0 to 9. + format: int32 + maximum: 9 + minimum: 0 + type: integer + from: + description: Starting time of data analyzed by the job. + example: 1729843470000 + format: int64 + type: integer id: - description: Server-generated identifier for this analytics result. - example: "00000000-0000-0000-0000-000000000001" + description: ID of the detection rule used to create the job. + example: abc-def-ghi type: string - type: - $ref: "#/components/schemas/LLMObsExperimentationType" - required: - - id - - type - - attributes - type: object - LLMObsExperimentationAnalyticsGroupBy: - description: A field to group analytics results by. - properties: - field: - description: Field name to group by. - example: "span_id" + index: + description: Index used to load the data. + example: cloud_siem type: string - required: - - field - type: object - LLMObsExperimentationAnalyticsRequest: - description: Request to run an analytics aggregation over Agent Observability experimentation data. - properties: - data: - $ref: "#/components/schemas/LLMObsExperimentationAnalyticsDataRequest" - required: - - data - type: object - LLMObsExperimentationAnalyticsResponse: - description: Response to an analytics query. - properties: - data: - $ref: "#/components/schemas/LLMObsExperimentationAnalyticsDataResponse" - required: - - data - type: object - LLMObsExperimentationAnalyticsResult: - description: Analytics query result containing all buckets. - properties: - values: - description: List of result buckets. + notifications: + description: Notifications sent when the job is completed. + example: + - "@sns-cloudtrail-results" items: - $ref: "#/components/schemas/LLMObsExperimentationAnalyticsValue" + description: A notification recipient handle (for example, `@user` or `@channel`). + type: string type: array - required: - - values - type: object - LLMObsExperimentationAnalyticsSearch: - description: Search query for filtering analytics data. - properties: - query: - description: Filter expression. - example: "@experiment_id:3fd6b5e0-8910-4b1c-a7d0-5b84de329012" - type: string - required: - - query - type: object - LLMObsExperimentationAnalyticsTimeRange: - description: Unix-millisecond time range for filtering analytics data. - properties: - from: - description: Start of the time range in milliseconds since Unix epoch. - example: 1705312200000 - format: int64 - type: integer to: - description: End of the time range in milliseconds since Unix epoch. - example: 1705315800000 + description: Ending time of data analyzed by the job. + example: 1729847070000 format: int64 type: integer required: + - id - from - to + - index type: object - LLMObsExperimentationAnalyticsValue: - description: A single analytics result bucket. + JsonPatchOperation: + description: A JSON Patch operation as per RFC 6902. properties: - by: - additionalProperties: {} - description: The group-by field values for this bucket. - example: - span_id: "span-7a1b2c3d" - type: object - metrics: - additionalProperties: {} - description: Computed metric values for this bucket. - example: - score_value: 0.85 - type: object + op: + $ref: "#/components/schemas/JsonPatchOperationOp" + path: + description: A JSON Pointer path (e.g., "/name", "/value/secure"). + example: "/name" + type: string + value: + description: The value to use for the operation (not applicable for "remove" and "test" operations). required: - - metrics + - op + - path type: object - LLMObsExperimentationContentPreview: - description: Options to control content preview truncation. + JsonPatchOperationOp: + description: The operation to perform. + enum: + - add + - remove + - replace + - move + - copy + - test + example: add + type: string + x-enum-varnames: + - ADD + - REMOVE + - REPLACE + - MOVE + - COPY + - TEST + KindAttributes: + description: Kind attributes. properties: - limit: - description: Maximum number of characters to include in content previews. - example: 500 - format: int64 - type: integer + description: + description: Short description of the kind. + type: string + displayName: + description: User friendly name of the kind. + type: string + name: + description: The kind name. + example: my-job + minLength: 1 + type: string type: object - LLMObsExperimentationCursorPage: - description: Cursor-based pagination parameters. + KindData: + description: Schema that defines the structure of a Kind object in the Software Catalog. properties: - cursor: - description: Opaque cursor returned from a previous response to fetch the next page. + attributes: + $ref: "#/components/schemas/KindAttributes" + id: + description: A read-only globally unique identifier for the entity generated by Datadog. User supplied values are ignored. + example: 4b163705-23c0-4573-b2fb-f6cea2163fcb + minLength: 1 + type: string + meta: + $ref: "#/components/schemas/KindMetadata" + type: + description: Kind. type: string - limit: - description: Maximum number of results per page. - example: 100 - format: int64 - type: integer type: object - LLMObsExperimentationFilter: - description: Filter criteria for an experimentation search request. + KindMetadata: + description: Kind metadata. properties: - include_deleted: - default: false - description: When `true`, include soft-deleted entities alongside active ones. - type: boolean - is_deleted: - default: false - description: When `true`, return only soft-deleted entities. - type: boolean - query: - description: Free-text search query. - example: "my experiment" + createdAt: + description: The creation time. + type: string + modifiedAt: + description: The modification time. type: string - scope: - description: >- - Entity types to search. Valid values are `projects`, `datasets`, `dataset_records`, `experiments`, and `experiment_runs`. - example: - - "experiments" - items: - example: "experiments" - type: string - type: array - version: - description: Filter dataset records by a specific dataset version. - format: int64 - nullable: true - type: integer - required: - - scope type: object - LLMObsExperimentationInclude: - description: Additional data to include in the response. + KindObj: + description: Schema for kind. properties: - user_data: - default: false - description: When `true`, enrich results with author user data (name and email). - type: boolean + description: + description: Short description of the kind. + type: string + displayName: + description: The display name of the kind. Automatically generated if not provided. + type: string + kind: + description: The name of the kind to create or update. This must be in kebab-case format. + example: "my-job" + type: string + required: + - kind type: object - LLMObsExperimentationNumberPage: - description: Offset-based pagination parameters for simple search. + KindRaw: + description: Kind definition in raw JSON or YAML representation. + example: |- + kind: service + displayName: Service + description: A service entity in the catalog. + type: string + KindResponseData: + description: List of kind responses. + items: + $ref: "#/components/schemas/KindData" + type: array + KindResponseMeta: + description: Kind response metadata. properties: - limit: - description: Maximum number of results per page. - example: 50 - format: int32 - maximum: 2147483647 - type: integer - number: - description: Page number to retrieve (1-indexed). - example: 1 - format: int32 - maximum: 2147483647 - minimum: 1 + count: + description: Total kinds count. + format: int64 type: integer type: object - LLMObsExperimentationSearchDataAttributesRequest: - description: Attributes for an experimentation search request. + LLMObsAnnotatedInteractionByTraceItem: + description: An annotated interaction returned by the cross-queue lookup, including the source queue metadata. properties: - content_preview: - $ref: "#/components/schemas/LLMObsExperimentationContentPreview" - filter: - $ref: "#/components/schemas/LLMObsExperimentationFilter" - include: - $ref: "#/components/schemas/LLMObsExperimentationInclude" - page: - $ref: "#/components/schemas/LLMObsExperimentationCursorPage" + annotations: + description: List of annotations for this interaction. + items: + $ref: "#/components/schemas/LLMObsAnnotationItem" + type: array + can_annotate: + description: Whether the current caller can annotate this interaction. + example: true + type: boolean + content_id: + description: Upstream entity identifier (trace ID, session ID, or deterministic display_block ID). + example: "trace-abc-123" + type: string + created_at: + description: Timestamp when the interaction was added to the queue. + example: "2025-06-01T12:00:00Z" + format: date-time + type: string + display_block: + $ref: "#/components/schemas/LLMObsContentBlocks" + id: + description: Unique identifier of the interaction. + example: "interaction-456" + type: string + modified_at: + description: Timestamp when the interaction was last updated. + example: "2025-06-01T12:00:00Z" + format: date-time + type: string + queue_id: + description: Identifier of the annotation queue this interaction belongs to. + example: "queue-uuid-001" + type: string + queue_name: + description: Name of the annotation queue this interaction belongs to. + example: "My Annotation Queue" + type: string + type: + $ref: "#/components/schemas/LLMObsAnyInteractionType" required: - - filter + - id + - type + - content_id + - created_at + - modified_at + - queue_id + - queue_name + - can_annotate + - annotations type: object - LLMObsExperimentationSearchDataRequest: - description: Data object for an experimentation search request. + LLMObsAnnotatedInteractionDataAttributesResponse: + description: Attributes containing an annotated interaction and its related events. + properties: + annotated_interaction: + $ref: "#/components/schemas/LLMObsAnnotatedInteractionItem" + events: + $ref: "#/components/schemas/LLMObsAnnotatedInteractionEvents" + interaction_type: + $ref: "#/components/schemas/LLMObsAnyInteractionType" + next_cursor: + description: Cursor to retrieve the next page of events. Absent when there are no more events. + example: "eyJzdGFydCI6MTAwfQ==" + type: string + required: + - annotated_interaction + - interaction_type + - events + type: object + LLMObsAnnotatedInteractionDataResponse: + description: Data object for a single annotated interaction. properties: attributes: - $ref: "#/components/schemas/LLMObsExperimentationSearchDataAttributesRequest" + $ref: "#/components/schemas/LLMObsAnnotatedInteractionDataAttributesResponse" + id: + description: Unique identifier of the interaction. + example: "interaction-456" + type: string type: - $ref: "#/components/schemas/LLMObsExperimentationType" + $ref: "#/components/schemas/LLMObsAnnotatedInteractionsType" required: + - id - type - attributes type: object - LLMObsExperimentationSearchDataResponse: - description: JSON:API data object for an experimentation search response. + LLMObsAnnotatedInteractionEvent: + description: An event associated with an annotated interaction. properties: attributes: - $ref: "#/components/schemas/LLMObsExperimentationSearchResults" + $ref: "#/components/schemas/LLMObsAnnotatedInteractionEventAttributes" id: - description: Server-generated identifier for this search result. - example: "00000000-0000-0000-0000-000000000001" + description: Unique identifier of the event. + example: "span-7a1b2c3d" type: string type: - $ref: "#/components/schemas/LLMObsExperimentationType" + description: Type of the event. + example: span + type: string required: - id - type - attributes type: object - LLMObsExperimentationSearchRequest: - description: Request to search across Agent Observability experimentation entities using cursor-based pagination. - properties: - data: - $ref: "#/components/schemas/LLMObsExperimentationSearchDataRequest" - required: - - data + LLMObsAnnotatedInteractionEventAttributes: + additionalProperties: {} + description: Attributes of an event associated with an annotated interaction. + example: + duration: 1500000000 + ml_app: my-llm-app + name: agent_workflow + span_id: span-7a1b2c3d + span_kind: agent + start_ns: 1705314600000000000 + status: ok + trace_id: trace-abc-123 type: object - LLMObsExperimentationSearchResponse: - description: Response to a cursor-based experimentation search. Returns `200 OK` when all results fit in one page; `206 Partial Content` when a next-page cursor is available. + LLMObsAnnotatedInteractionEvents: + description: Page of events associated with the annotated interaction. + items: + $ref: "#/components/schemas/LLMObsAnnotatedInteractionEvent" + type: array + LLMObsAnnotatedInteractionItem: + description: An interaction with its associated annotations. + oneOf: + - $ref: "#/components/schemas/LLMObsTraceAnnotatedInteractionItem" + - $ref: "#/components/schemas/LLMObsDisplayBlockAnnotatedInteractionItem" + LLMObsAnnotatedInteractionResponse: + description: Response containing a single annotated interaction and its related events. properties: data: - $ref: "#/components/schemas/LLMObsExperimentationSearchDataResponse" - meta: - $ref: "#/components/schemas/LLMObsCursorMeta" + $ref: "#/components/schemas/LLMObsAnnotatedInteractionDataResponse" required: - data type: object - LLMObsExperimentationSearchResults: - description: The matching experimentation entities grouped by type. - properties: - dataset_records: - description: Matching dataset records. Present when `dataset_records` is included in `filter.scope`. - items: - $ref: "#/components/schemas/LLMObsDatasetRecordDataResponse" - nullable: true - type: array - datasets: - description: Matching datasets. Present when `datasets` is included in `filter.scope`. - items: - $ref: "#/components/schemas/LLMObsDatasetDataResponse" - nullable: true - type: array - experiment_runs: - description: Matching experiment runs. Present when `experiment_runs` is included in `filter.scope`. - items: - $ref: "#/components/schemas/LLMObsExperimentRunDataResponse" - nullable: true - type: array - experiments: - description: Matching experiments. Present when `experiments` is included in `filter.scope`. - items: - $ref: "#/components/schemas/LLMObsExperimentDataAttributesResponse" - nullable: true - type: array - projects: - description: Matching projects. Present when `projects` is included in `filter.scope`. - items: - $ref: "#/components/schemas/LLMObsProjectDataResponse" - nullable: true - type: array - type: object - LLMObsExperimentationSimpleSearchDataAttributesRequest: - description: Attributes for an experimentation simple search request. + LLMObsAnnotatedInteractionsByTraceDataAttributesResponse: + description: Attributes of the cross-queue annotated interactions response. properties: - content_preview: - $ref: "#/components/schemas/LLMObsExperimentationContentPreview" - filter: - $ref: "#/components/schemas/LLMObsExperimentationFilter" - include: - $ref: "#/components/schemas/LLMObsExperimentationInclude" - page: - $ref: "#/components/schemas/LLMObsExperimentationNumberPage" - sort: - description: Sort order for results. + annotated_interactions: + description: List of annotated interactions across all queues for the requested content IDs. items: - $ref: "#/components/schemas/LLMObsExperimentationSortField" + $ref: "#/components/schemas/LLMObsAnnotatedInteractionByTraceItem" type: array + total_count: + description: Total number of annotated interactions matching the query. + example: 1 + format: int32 + maximum: 2147483647 + type: integer required: - - filter + - annotated_interactions + - total_count type: object - LLMObsExperimentationSimpleSearchDataRequest: - description: Data object for an experimentation simple search request. + LLMObsAnnotatedInteractionsByTraceDataResponse: + description: Data object for the cross-queue annotated interactions response. properties: attributes: - $ref: "#/components/schemas/LLMObsExperimentationSimpleSearchDataAttributesRequest" + $ref: "#/components/schemas/LLMObsAnnotatedInteractionsByTraceDataAttributesResponse" + id: + description: Opaque identifier for the response object. + example: "trace-query" + type: string type: - $ref: "#/components/schemas/LLMObsExperimentationType" + $ref: "#/components/schemas/LLMObsAnnotatedInteractionsByTraceType" required: + - id - type - attributes type: object - LLMObsExperimentationSimpleSearchDataResponse: - description: JSON:API data object for a simple search response. + LLMObsAnnotatedInteractionsByTraceResponse: + description: Response containing annotated interactions across all queues for the requested content IDs. + properties: + data: + $ref: "#/components/schemas/LLMObsAnnotatedInteractionsByTraceDataResponse" + required: + - data + type: object + LLMObsAnnotatedInteractionsByTraceType: + description: Resource type for cross-queue annotated interactions lookup. + enum: + - annotated_interactions_by_trace + example: annotated_interactions_by_trace + type: string + x-enum-varnames: + - ANNOTATED_INTERACTIONS_BY_TRACE + LLMObsAnnotatedInteractionsDataAttributesResponse: + description: Attributes containing the list of annotated interactions. + properties: + annotated_interactions: + description: List of interactions with their annotations. + example: + - annotations: [] + can_annotate: true + content_id: trace-abc-123 + id: "interaction-456" + type: trace + items: + $ref: "#/components/schemas/LLMObsAnnotatedInteractionItem" + type: array + required: + - annotated_interactions + type: object + LLMObsAnnotatedInteractionsDataResponse: + description: Data object for annotated interactions. properties: attributes: - $ref: "#/components/schemas/LLMObsExperimentationSearchResults" + $ref: "#/components/schemas/LLMObsAnnotatedInteractionsDataAttributesResponse" id: - description: Server-generated identifier for this search result. + description: The annotation queue ID. example: "00000000-0000-0000-0000-000000000001" type: string type: - $ref: "#/components/schemas/LLMObsExperimentationType" + $ref: "#/components/schemas/LLMObsAnnotatedInteractionsType" required: - id - type - attributes type: object - LLMObsExperimentationSimpleSearchMeta: - description: Pagination metadata for a simple search response. - properties: - page: - $ref: "#/components/schemas/LLMObsExperimentationSimpleSearchMetaPage" - type: object - LLMObsExperimentationSimpleSearchMetaPage: - description: Page metadata. - properties: - current: - description: Current page number. - example: 1 - format: int32 - maximum: 2147483647 - type: integer - limit: - description: Page size used for this response. - example: 50 - format: int32 - maximum: 2147483647 - type: integer - total_count: - description: Total number of matching results (capped at the maximum search limit). - example: 193 - format: int32 - maximum: 2147483647 - type: integer - total_pages: - description: Total number of pages available. - example: 4 - format: int32 - maximum: 2147483647 - type: integer - type: object - LLMObsExperimentationSimpleSearchRequest: - description: Request to search across Agent Observability experimentation entities using offset-based pagination. - properties: - data: - $ref: "#/components/schemas/LLMObsExperimentationSimpleSearchDataRequest" - required: - - data - type: object - LLMObsExperimentationSimpleSearchResponse: - description: Response to an offset-based experimentation simple search. + LLMObsAnnotatedInteractionsResponse: + description: Response containing the annotated interactions for an annotation queue. properties: data: - $ref: "#/components/schemas/LLMObsExperimentationSimpleSearchDataResponse" - meta: - $ref: "#/components/schemas/LLMObsExperimentationSimpleSearchMeta" + $ref: "#/components/schemas/LLMObsAnnotatedInteractionsDataResponse" required: - data type: object - LLMObsExperimentationSortField: - description: A field and direction to sort results by. - properties: - direction: - $ref: "#/components/schemas/LLMObsExperimentationSortFieldDirection" - field: - description: The field name to sort on. - example: "created_at" - type: string - required: - - field - type: object - LLMObsExperimentationSortFieldDirection: - description: Sort direction. + LLMObsAnnotatedInteractionsType: + description: Resource type for annotated interactions. enum: - - asc - - desc - example: "desc" + - annotated_interactions + example: annotated_interactions type: string x-enum-varnames: - - ASC - - DESC - LLMObsExperimentationType: - description: Resource type for experimentation search and analytics operations. + - ANNOTATED_INTERACTIONS + LLMObsAnnotationAssessment: + description: Assessment result for a label value. enum: - - experimentation - example: experimentation + - pass + - fail + example: "pass" type: string x-enum-varnames: - - EXPERIMENTATION - LLMObsExperimentsResponse: - description: Response containing a list of Agent Observability experiments. - properties: - data: - description: List of experiments. - items: - $ref: "#/components/schemas/LLMObsExperimentDataResponse" - type: array - meta: - $ref: "#/components/schemas/LLMObsCursorMeta" - required: - - data - type: object - LLMObsFrontendContentBlock: - description: Validation requirements for a `frontend` display block. + - PASS + - FAIL + LLMObsAnnotationError: + description: A partial error for a single annotation that could not be processed. properties: + annotation_id: + description: ID of the annotation that failed, if applicable. + example: "00000000-0000-0000-0000-000000000000" + type: string code: - $ref: "#/components/schemas/LLMObsFrontendContentBlockCode" - type: - $ref: "#/components/schemas/LLMObsFrontendContentBlockType" + $ref: "#/components/schemas/LLMObsAnnotationErrorCode" + error: + description: Error message. + example: "interaction not found" + type: string + interaction_id: + description: ID of the interaction that failed. + example: "00000000-0000-0000-0000-000000000001" + type: string required: - - code + - interaction_id + - error type: object - LLMObsFrontendContentBlockCode: - description: HTML code rendered by a `frontend` block. Required for `frontend` blocks. - example: '
Ready for review
' - minLength: 1 - type: string - LLMObsFrontendContentBlockType: - description: Type discriminator for a `frontend` display block. + LLMObsAnnotationErrorCode: + description: Stable error code. `permission_denied` indicates the item was rejected by queue access rules. enum: - - frontend - example: frontend + - permission_denied + example: permission_denied type: string x-enum-varnames: - - FRONTEND - LLMObsInferenceCode: - description: A generated code snippet for running an inference request programmatically. + - PERMISSION_DENIED + LLMObsAnnotationItem: + description: A single annotation on an interaction. properties: - code: - description: The generated code content. - example: "import openai\nclient = openai.OpenAI()\n..." + created_at: + description: Timestamp when the annotation was created. + example: "2024-01-15T10:30:00Z" + format: date-time + type: string + created_by: + description: Identifier of the user who created the annotation. + example: "00000000-0000-0000-0000-000000000002" type: string id: - description: Unique identifier for the code snippet. - example: "code-python-001" + description: Unique identifier of the annotation. + example: "annotation-789" type: string - type: - description: The programming language or SDK type of the code snippet. - example: "python" + interaction_id: + description: Identifier of the interaction this annotation belongs to. + example: "interaction-456" + type: string + label_values: + additionalProperties: {} + description: Label values for this annotation. + example: + - label_schema_id: "abc-123" + value: "good" + type: object + modified_at: + description: Timestamp when the annotation was last modified. + example: "2024-01-15T10:30:00Z" + format: date-time + type: string + modified_by: + description: Identifier of the user who last modified the annotation. + example: "00000000-0000-0000-0000-000000000002" type: string required: - id - - type - - code + - interaction_id + - label_values + - created_by + - created_at + - modified_by + - modified_at type: object - LLMObsInferenceContent: - description: A structured content block within a message. + LLMObsAnnotationItemResponse: + description: A single annotation on an interaction, as returned by the API. properties: - type: - description: The content block type. - example: "text" + created_at: + description: Timestamp when the annotation was created. + example: "2024-01-15T10:30:00Z" + format: date-time type: string - value: - $ref: "#/components/schemas/LLMObsInferenceContentValue" - required: - - type - - value - type: object - LLMObsInferenceContentList: - description: List of structured content blocks in a message. - items: - $ref: "#/components/schemas/LLMObsInferenceContent" - type: array - LLMObsInferenceContentValue: - description: The typed value of a message content block. - properties: - text: - description: Plain text content. - example: "Hello, how can I help you?" - type: string - tool_call: - $ref: "#/components/schemas/LLMObsInferenceToolCall" - tool_call_result: - $ref: "#/components/schemas/LLMObsInferenceToolResult" - type: object - LLMObsInferenceErrorResponse: - description: Error details returned when an inference provider returns an error. - properties: - message: - description: A human-readable description of the error. - example: "The model does not exist." - type: string - type: - description: The provider-specific error type. - example: "invalid_request_error" + created_by: + description: Identifier of the user who created the annotation. + example: "00000000-0000-0000-0000-000000000002" type: string - required: - - type - - message - type: object - LLMObsInferenceFunction: - description: A function definition for a tool available to the model. - properties: - description: - description: A description of what the function does. - example: "Get the current weather for a location." + id: + description: Unique identifier of the annotation. + example: "annotation-789" type: string - name: - description: The name of the function. - example: "get_weather" + interaction_id: + description: Identifier of the interaction this annotation belongs to. + example: "interaction-456" type: string - parameters: - additionalProperties: {} - description: JSON schema describing the function parameters. + label_values: + description: |- + Label values for this annotation. Each entry references a label schema by ID + and provides the corresponding value. example: - properties: - location: - type: string - type: object - type: object - required: - - name - - parameters - type: object - LLMObsInferenceMessage: - description: A single message in an LLM inference conversation. - properties: - content: - description: Plain text content of the message. - example: "What is the capital of France?" - type: string - contents: - $ref: "#/components/schemas/LLMObsInferenceContentList" - id: - description: Unique identifier for the message. - example: "msg_001" + - label_schema_id: "abc-123" + value: "good" + items: + $ref: "#/components/schemas/LLMObsAnnotationLabelValueResponse" + type: array + modified_at: + description: Timestamp when the annotation was last modified. + example: "2024-01-15T10:30:00Z" + format: date-time type: string - role: - description: The role of the message author. - example: "user" + modified_by: + description: Identifier of the user who last modified the annotation. + example: "00000000-0000-0000-0000-000000000002" type: string - tool_calls: - $ref: "#/components/schemas/LLMObsInferenceToolCallsList" - tool_results: - $ref: "#/components/schemas/LLMObsInferenceToolResultsList" + required: + - id + - interaction_id + - label_values + - created_by + - created_at + - modified_by + - modified_at type: object - LLMObsInferenceMessagesList: - description: List of messages in an inference conversation. - items: - $ref: "#/components/schemas/LLMObsInferenceMessage" - type: array - LLMObsInferenceRunResult: - description: The output of a completed LLM inference call. + LLMObsAnnotationLabelValue: + description: |- + A single label value entry in an annotation. + The `value` type must match the label schema type: + - `score`: a number within the schema `min`/`max` range (integer if `is_integer` is `true`). + - `categorical`: a string that is one of the schema `values`. + - `boolean`: `true` or `false`. + - `text`: any non-empty string. properties: assessment: - description: An optional assessment of the inference output quality. - example: "pass" - nullable: true - type: string - content: - description: The text content of the model response. - example: "The capital of France is Paris." - type: string - finish_reason: - description: The reason the model stopped generating tokens. - example: "stop" + $ref: "#/components/schemas/LLMObsAnnotationAssessment" + label_schema_id: + description: ID of the label schema this value corresponds to. + example: "abc-123" type: string - inference_codes: - $ref: "#/components/schemas/LLMObsIntegrationInferenceCodesResponse" - input_tokens: - description: Number of input tokens consumed. - example: 15 - format: int64 - type: integer - internal_reasoning: - $ref: "#/components/schemas/LLMObsInternalReasoning" - nullable: true - latency: - description: Request latency in milliseconds. - example: 843 - format: int64 - type: integer - output_tokens: - description: Number of output tokens generated. - example: 10 - format: int64 - type: integer - tools: - $ref: "#/components/schemas/LLMObsInferenceToolsList" - total_tokens: - description: Total tokens used (input plus output). - example: 25 - format: int64 - type: integer - required: - - content - - input_tokens - - output_tokens - - total_tokens - - latency - - finish_reason - - inference_codes - - tools - - assessment - type: object - LLMObsInferenceTool: - description: A tool definition available to the model during inference. - properties: - function: - $ref: "#/components/schemas/LLMObsInferenceFunction" - type: - description: The type of tool. - example: "function" + reasoning: + description: Free text reasoning for this label value. + example: "The response was accurate and well-structured." type: string + value: + $ref: "#/components/schemas/LLMObsAnnotationLabelValueValue" required: - - type - - function - type: object - LLMObsInferenceToolCall: - description: A tool call made during LLM inference. - properties: - arguments: - additionalProperties: {} - description: The arguments passed to the tool. - example: - location: "San Francisco" - type: object - name: - description: The name of the tool being called. - example: "get_weather" - type: string - tool_id: - description: Unique identifier for the tool call. - example: "call_abc123" - type: string - type: - description: The type of tool call. - example: "function" - type: string + - label_schema_id + - value type: object - LLMObsInferenceToolCallsList: - description: List of tool calls in a message. - items: - $ref: "#/components/schemas/LLMObsInferenceToolCall" - type: array - LLMObsInferenceToolResult: - description: The result returned by a tool call during LLM inference. + LLMObsAnnotationLabelValueResponse: + description: |- + A single label value entry in an annotation response. + In addition to the submitted fields, the server populates `type` and + `name_when_saved` to mirror the schema state at the time the annotation + was created — these help clients display values correctly when the schema + has since changed. properties: - name: - description: The name of the tool that produced this result. - example: "get_weather" + assessment: + $ref: "#/components/schemas/LLMObsAnnotationAssessment" + label_schema_id: + description: ID of the label schema this value corresponds to. + example: "abc-123" type: string - result: - description: The result content returned by the tool. - example: "The weather in San Francisco is 68°F and sunny." + name_when_saved: + description: Name of the label schema at the time the annotation was created. + example: "quality" type: string - tool_id: - description: Identifier matching the corresponding tool call. - example: "call_abc123" + reasoning: + description: Free text reasoning for this label value. + example: "The response was accurate and well-structured." type: string type: - description: The type of tool result. - example: "function" - type: string - type: object - LLMObsInferenceToolResultsList: - description: List of tool results in a message. - items: - $ref: "#/components/schemas/LLMObsInferenceToolResult" - type: array - LLMObsInferenceToolsList: - description: List of tools available to the model. - items: - $ref: "#/components/schemas/LLMObsInferenceTool" - type: array - LLMObsIntegrationAccount: - description: A configured account for an LLM provider integration. - properties: - account_id: - description: Provider-specific account identifier. - example: "org-XYZ123" - type: string - account_name: - description: Human-readable name for the integration account. - example: "Production OpenAI" - type: string - account_region: - description: Provider region associated with the account, if applicable. - example: "us-east-1" - type: string - azure_openai_metadata: - $ref: "#/components/schemas/LLMObsAzureOpenAIMetadata" - id: - description: Unique identifier for the integration account. - example: "account-abc123" - type: string - integration: - description: The name of the LLM provider integration. - example: openai - type: string - vertex_ai_metadata: - $ref: "#/components/schemas/LLMObsVertexAIMetadata" + $ref: "#/components/schemas/LLMObsLabelSchemaType" + value: + $ref: "#/components/schemas/LLMObsAnnotationLabelValueValue" required: - - id - - account_id - - account_name - - integration + - label_schema_id + - value type: object - LLMObsIntegrationInferenceCodesResponse: - description: List of generated code snippets for the inference configuration. + LLMObsAnnotationLabelValueStringArray: + description: For categorical-type labels allowing multiple selections. items: - $ref: "#/components/schemas/LLMObsInferenceCode" + type: string type: array - LLMObsIntegrationInferenceRequest: - description: Parameters for an LLM inference request. + LLMObsAnnotationLabelValueValue: + description: The value for this label. Must comply with the label schema type constraints. + example: 0.0 + oneOf: + - $ref: "#/components/schemas/AnyValueNumber" + - $ref: "#/components/schemas/AnyValueString" + - $ref: "#/components/schemas/LLMObsAnnotationLabelValueStringArray" + - $ref: "#/components/schemas/AnyValueBoolean" + LLMObsAnnotationQueueDataAttributesRequest: + description: Attributes for creating an Agent Observability annotation queue. properties: - anthropic_metadata: - $ref: "#/components/schemas/LLMObsAnthropicMetadata" - nullable: true - azure_openai_metadata: - $ref: "#/components/schemas/LLMObsAzureOpenAIMetadata" - nullable: true - bedrock_metadata: - $ref: "#/components/schemas/LLMObsBedrockMetadata" - nullable: true - frequency_penalty: - description: Penalty for token frequency to reduce repetition. - example: 0.0 - format: double - nullable: true - type: number - json_schema: - description: JSON schema for structured output, if supported by the model. - example: '{"type":"object","properties":{"answer":{"type":"string"}}}' - nullable: true - type: string - max_completion_tokens: - description: Maximum number of completion tokens to generate (alternative to max_tokens for some providers). - example: 1024 - format: int64 - nullable: true - type: integer - max_tokens: - description: Maximum number of tokens to generate. - example: 1024 - format: int64 - nullable: true - type: integer - messages: - $ref: "#/components/schemas/LLMObsInferenceMessagesList" - model_id: - description: The model identifier to use for inference. - example: "gpt-4o" + annotation_schema: + $ref: "#/components/schemas/LLMObsAnnotationSchema" + description: + description: Description of the annotation queue. + example: "Queue for annotating customer support traces" type: string - openai_metadata: - $ref: "#/components/schemas/LLMObsOpenAIMetadata" - nullable: true - presence_penalty: - description: Penalty for token presence to encourage topic diversity. - example: 0.0 - format: double - nullable: true - type: number - temperature: - description: Sampling temperature between 0 and 2. Higher values produce more random output. - example: 0.7 - format: double - nullable: true - type: number - tools: - $ref: "#/components/schemas/LLMObsInferenceToolsList" - top_k: - description: Top-K sampling parameter. - example: 50 - format: int64 - nullable: true - type: integer - top_p: - description: Nucleus sampling probability mass. - example: 1.0 - format: double - nullable: true - type: number - vertex_ai_metadata: - $ref: "#/components/schemas/LLMObsVertexAIMetadata" - nullable: true - required: - - model_id - - messages - type: object - LLMObsIntegrationInferenceResponse: - description: The result of an LLM inference request, including input parameters and the model response. - properties: - anthropic_metadata: - $ref: "#/components/schemas/LLMObsAnthropicMetadata" - nullable: true - azure_openai_metadata: - $ref: "#/components/schemas/LLMObsAzureOpenAIMetadata" - nullable: true - bedrock_metadata: - $ref: "#/components/schemas/LLMObsBedrockMetadata" - nullable: true - error_response: - $ref: "#/components/schemas/LLMObsInferenceErrorResponse" - frequency_penalty: - description: Frequency penalty that was applied. - example: 0.0 - format: double - nullable: true - type: number - json_schema: - description: JSON schema that was applied for structured output. - example: '{"type":"object","properties":{"answer":{"type":"string"}}}' - nullable: true + name: + description: Name of the annotation queue. + example: "My annotation queue" type: string - max_completion_tokens: - description: Maximum number of completion tokens that were configured. - example: 1024 - format: int64 - nullable: true - type: integer - max_tokens: - description: Maximum number of tokens that were configured. - example: 1024 - format: int64 - nullable: true - type: integer - messages: - $ref: "#/components/schemas/LLMObsInferenceMessagesList" - model_id: - description: The model identifier used for inference. - example: "gpt-4o" + project_id: + description: Identifier of the project this queue belongs to. + example: "00000000-0000-0000-0000-000000000002" type: string - openai_metadata: - $ref: "#/components/schemas/LLMObsOpenAIMetadata" - nullable: true - presence_penalty: - description: Presence penalty that was applied. - example: 0.0 - format: double - nullable: true - type: number - response: - $ref: "#/components/schemas/LLMObsInferenceRunResult" - temperature: - description: Sampling temperature that was used. - example: 0.7 - format: double - nullable: true - type: number - tools: - $ref: "#/components/schemas/LLMObsInferenceToolsList" - top_k: - description: Top-K sampling parameter that was used. - example: 50 - format: int64 - nullable: true - type: integer - top_p: - description: Nucleus sampling parameter that was used. - example: 1.0 - format: double - nullable: true - type: number - vertex_ai_metadata: - $ref: "#/components/schemas/LLMObsVertexAIMetadata" - nullable: true + restrict_to_assignees: + description: Whether annotation access is restricted to assigned users. + example: false + type: boolean + restrict_to_reviewers: + description: Whether annotation access is restricted to queue reviewers. + example: true + type: boolean + reviewer_emails: + description: Email addresses of reviewers who can access the annotation queue. + example: + - "reviewer@example.com" + items: + type: string + type: array required: - - model_id - - messages - - response + - name + - project_id type: object - LLMObsIntegrationModel: - description: A model available for a given LLM provider integration and account. + LLMObsAnnotationQueueDataAttributesResponse: + description: Attributes of an Agent Observability annotation queue. properties: - has_access: - description: Whether the account has access to this model. + annotation_schema: + $ref: "#/components/schemas/LLMObsAnnotationSchema" + can_manage_access: + description: Whether the current caller can manage access for the annotation queue. example: true + readOnly: true type: boolean - id: - description: Unique identifier for the model entry. - example: "gpt-4o" - type: string - integration: - description: The name of the LLM provider integration. - example: "openai" - type: string - integration_display_name: - description: Human-readable name of the LLM provider integration. - example: "OpenAI" + created_at: + description: Timestamp when the queue was created. + example: "2024-01-15T10:30:00Z" + format: date-time type: string - json_schema: - description: Whether the model supports structured output via JSON schema. - example: true - type: boolean - model_display_name: - description: Human-readable model name. - example: "GPT-4o" + created_by: + description: Identifier of the user who created the queue. + example: "00000000-0000-0000-0000-000000000002" type: string - model_id: - description: Provider-specific model identifier used in inference calls. - example: "gpt-4o" + description: + description: Description of the annotation queue. + example: "Queue for annotating customer support traces" type: string - provider: - description: The underlying model provider. - example: "openai" + modified_at: + description: Timestamp when the queue was last modified. + example: "2024-01-15T10:30:00Z" + format: date-time type: string - provider_display_name: - description: Human-readable name of the underlying model provider. - example: "OpenAI" + modified_by: + description: Identifier of the user who last modified the queue. + example: "00000000-0000-0000-0000-000000000002" type: string - region_prefix_overrides: - $ref: "#/components/schemas/LLMObsIntegrationModelRegionPrefixOverrides" - required: - - id - - model_id - - model_display_name - - integration - - integration_display_name - - provider - - provider_display_name - - json_schema - - has_access - type: object - LLMObsIntegrationModelRegionPrefixOverrides: - additionalProperties: - type: string - description: Map of region-specific model ID prefix overrides. - example: - us-east-1: "us." - type: object - LLMObsIntegrationName: - description: The name of a supported LLM provider integration. - enum: - - openai - - amazon_bedrock - - anthropic - - azure_openai - - vertex_ai - - llmproxy - example: openai - type: string - x-enum-varnames: - - OPENAI - - AMAZON_BEDROCK - - ANTHROPIC - - AZURE_OPENAI - - VERTEX_AI - - LLMPROXY - LLMObsInternalReasoning: - description: The model's internal reasoning or thinking output, if available. - properties: - reasoning_tokens: - description: Number of tokens used for internal reasoning. - example: 256 - format: int64 - nullable: true - type: integer - text: - description: The reasoning text produced by the model. - example: "Let me think about this step by step..." + name: + description: Name of the annotation queue. + example: "My annotation queue" type: string - required: - - text - type: object - LLMObsLabelSchema: - description: Schema definition for a single label in an annotation queue. - properties: - description: - description: Description of the label. - example: "Rating of the response quality." + owned_by: + description: Identifier of the user who owns the queue. + example: "00000000-0000-0000-0000-000000000002" type: string - has_assessment: - description: Whether this label includes an assessment field. - example: false - type: boolean - has_reasoning: - description: Whether this label includes a reasoning field. - example: false - type: boolean - id: - description: Unique identifier of the label schema. Assigned by the server if not provided. - example: "abc-123" + project_id: + description: Identifier of the project this queue belongs to. + example: "00000000-0000-0000-0000-000000000002" type: string - is_assessment: - description: Whether the boolean label represents an assessment. Requires `has_assessment` to be true. - example: false - type: boolean - is_integer: - description: Whether score values must be integers. Applicable to score-type labels. + restrict_to_assignees: + description: Whether annotation access is restricted to assigned users. example: false type: boolean - is_required: - description: Whether this label is required for an annotation. + restrict_to_reviewers: + description: Whether annotation access is restricted to queue reviewers. example: true type: boolean - max: - description: Maximum value for score-type labels. - example: 5.0 - format: double - type: number - min: - description: Minimum value for score-type labels. - example: 0.0 - format: double - type: number - name: - description: Name of the label. Must match the pattern `^[a-zA-Z0-9_-]+$` and be unique within the queue. - example: "quality" - type: string - type: - $ref: "#/components/schemas/LLMObsLabelSchemaType" - values: - description: Allowed values for categorical-type labels. Must contain at least one non-empty, unique value. + reviewer_emails: + description: |- + Email addresses of reviewers for the annotation queue. Returned only + when the caller can manage queue access. example: - - "good" - - "bad" - - "neutral" + - "reviewer@example.com" items: - description: An allowed value for a categorical label. type: string type: array required: - name + - project_id + - description + - created_by + - created_at + - modified_by + - modified_at + - owned_by + - restrict_to_reviewers + - restrict_to_assignees + - can_manage_access + type: object + LLMObsAnnotationQueueDataRequest: + description: Data object for creating an Agent Observability annotation queue. + properties: + attributes: + $ref: "#/components/schemas/LLMObsAnnotationQueueDataAttributesRequest" + type: + $ref: "#/components/schemas/LLMObsAnnotationQueueType" + required: - type + - attributes type: object - LLMObsLabelSchemaType: - description: Type of a label in an annotation queue label schema. - enum: - - score - - categorical - - boolean - - text - example: score - type: string - x-enum-varnames: - - SCORE - - CATEGORICAL - - BOOLEAN - - TEXT - LLMObsLegacyContentBlock: - description: Validation requirements for an existing non-frontend display block. + LLMObsAnnotationQueueDataResponse: + description: Data object for an Agent Observability annotation queue. properties: + attributes: + $ref: "#/components/schemas/LLMObsAnnotationQueueDataAttributesResponse" + id: + description: Unique identifier of the annotation queue. + example: "00000000-0000-0000-0000-000000000001" + type: string type: - $ref: "#/components/schemas/LLMObsLegacyContentBlockType" + $ref: "#/components/schemas/LLMObsAnnotationQueueType" + required: + - id + - type + - attributes type: object - LLMObsLegacyContentBlockType: - description: Type discriminator for an existing non-frontend display block. - enum: - - markdown - - header - - text - - json - - image - - widget - - llmobs_trace - example: markdown - type: string - x-enum-varnames: - - MARKDOWN - - HEADER - - TEXT - - JSON - - IMAGE - - WIDGET - - LLMOBS_TRACE - LLMObsMetricAssessment: - description: Assessment result for an Agent Observability experiment metric. - enum: - - pass - - fail - example: pass - type: string - x-enum-varnames: - - PASS - - FAIL - LLMObsMetricScoreType: - description: Type of metric recorded for an Agent Observability experiment. - enum: - - score - - categorical - - boolean - - json - example: score - type: string - x-enum-varnames: - - SCORE - - CATEGORICAL - - BOOLEAN - - JSON - LLMObsOpenAIMetadata: - description: OpenAI-specific metadata for an inference request. + LLMObsAnnotationQueueInteractionItem: + description: A single interaction to add to an annotation queue. + oneOf: + - $ref: "#/components/schemas/LLMObsTraceInteractionItem" + - $ref: "#/components/schemas/LLMObsDisplayBlockInteractionItem" + LLMObsAnnotationQueueInteractionResponseItem: + description: A single interaction result. + oneOf: + - $ref: "#/components/schemas/LLMObsTraceInteractionResponseItem" + - $ref: "#/components/schemas/LLMObsDisplayBlockInteractionResponseItem" + LLMObsAnnotationQueueInteractionsDataAttributesRequest: + description: Attributes for adding interactions to an annotation queue. properties: - reasoning_effort: - $ref: "#/components/schemas/LLMObsOpenAIReasoningEffort" - reasoning_summary: - $ref: "#/components/schemas/LLMObsOpenAIReasoningSummary" + interactions: + description: List of interactions to add to the queue. Must contain at least one item. + example: + - content_id: trace-abc-123 + type: trace + items: + $ref: "#/components/schemas/LLMObsAnnotationQueueInteractionItem" + minItems: 1 + type: array + required: + - interactions type: object - LLMObsOpenAIReasoningEffort: - description: The reasoning effort level for OpenAI models that support it. - enum: - - none - - low - - medium - - high - - xhigh - example: medium - nullable: true - type: string - x-enum-varnames: - - NONE - - LOW - - MEDIUM - - HIGH - - XHIGH - LLMObsOpenAIReasoningSummary: - description: The verbosity of the reasoning summary. - enum: - - auto - - concise - - detailed - example: auto - nullable: true - type: string - x-enum-varnames: - - AUTO - - CONCISE - - DETAILED - LLMObsPatternsActivityProgress: - description: Progress information for a single step of a patterns run. + LLMObsAnnotationQueueInteractionsDataAttributesResponse: + description: Attributes of the interaction addition response. properties: - name: - description: Name of the step. - example: generate_topics - type: string - started_at: - description: Timestamp when the step started. Null if the step has not started. - example: "2024-01-15T10:30:00Z" - format: date-time - nullable: true - type: string - status: - description: Status of the step. - example: completed - type: string + interactions: + description: List of interactions that were processed. + example: + - already_existed: false + content_id: trace-abc-123 + id: "00000000-0000-0000-0000-000000000000" + type: trace + items: + $ref: "#/components/schemas/LLMObsAnnotationQueueInteractionResponseItem" + type: array required: - - name - - status + - interactions type: object - LLMObsPatternsClusteredPoint: - description: A single data point grouped into a topic. + LLMObsAnnotationQueueInteractionsDataRequest: + description: Data object for adding interactions to an annotation queue. properties: - event_id: - description: Identifier of the source event. - example: "AAAAAYabc123" - type: string + attributes: + $ref: "#/components/schemas/LLMObsAnnotationQueueInteractionsDataAttributesRequest" + type: + $ref: "#/components/schemas/LLMObsAnnotationQueueInteractionsType" + required: + - type + - attributes + type: object + LLMObsAnnotationQueueInteractionsDataResponse: + description: Data object for the interaction addition response. + properties: + attributes: + $ref: "#/components/schemas/LLMObsAnnotationQueueInteractionsDataAttributesResponse" id: - description: Unique identifier of the clustered point. - example: "9b0c1d2e-3f40-5a61-b728-c9d0e1f2a3b4" - type: string - input: - description: Input text of the source span. - example: "How do I get a refund?" - type: string - is_included: - description: Whether the point is included in the patterns dataset. - example: false - type: boolean - is_suggested: - description: Whether the point is suggested for inclusion in the patterns dataset. - example: true - type: boolean - session_id: - description: Identifier of the source session. - example: "session-7c3f5a1b" - type: string - span_id: - description: Identifier of the source span. - example: "1234567890123456789" - type: string - topic_id: - description: Identifier of the topic the point belongs to. - example: "5c1fae90-2b6d-4e3a-9f12-7a0c4d8e6b21" + description: The queue ID the interactions were added to. + example: "00000000-0000-0000-0000-000000000001" type: string + type: + $ref: "#/components/schemas/LLMObsAnnotationQueueInteractionsType" required: - id - - event_id - - topic_id - - span_id - - session_id - - input - - is_suggested - - is_included + - type + - attributes type: object - LLMObsPatternsClusteredPointRef: - description: |- - A clustered point attached inline to a topic. The metric fields are populated - only when the request includes `include_metrics=true`. + LLMObsAnnotationQueueInteractionsRequest: + description: Request to add interactions to an Agent Observability annotation queue. properties: - duration: - description: Duration of the source span in nanoseconds. Included only when metrics are requested. - example: 1500000 - format: double - type: number - estimated_total_cost: - description: Estimated total cost of the source span. Included only when metrics are requested. - example: 0.0021 - format: double - type: number - evaluation: - additionalProperties: {} - description: |- - Evaluation results for the source span keyed by evaluation name. Included - only when metrics are requested. - type: object - input_tokens: - description: Number of input tokens of the source span. Included only when metrics are requested. - example: 128 - format: double - type: number - output_tokens: - description: Number of output tokens of the source span. Included only when metrics are requested. - example: 64 - format: double - type: number - span_id: - description: Identifier of the source span. - example: "1234567890123456789" - type: string - status: - description: Status of the source span. Included only when metrics are requested. - example: ok - type: string - total_tokens: - description: Total number of tokens of the source span. Included only when metrics are requested. - example: 192 - format: double - type: number + data: + $ref: "#/components/schemas/LLMObsAnnotationQueueInteractionsDataRequest" required: - - span_id + - data type: object - LLMObsPatternsClusteredPointRefsList: - description: List of clustered points attached to a topic. - items: - $ref: "#/components/schemas/LLMObsPatternsClusteredPointRef" - type: array - LLMObsPatternsClusteredPointsList: - description: List of clustered points. - items: - $ref: "#/components/schemas/LLMObsPatternsClusteredPoint" - type: array - LLMObsPatternsClusteredPointsResponse: - description: Response containing the clustered points of an Agent Observability topic. + LLMObsAnnotationQueueInteractionsResponse: + description: Response containing the result of adding interactions to an annotation queue. properties: data: - $ref: "#/components/schemas/LLMObsPatternsClusteredPointsResponseData" + $ref: "#/components/schemas/LLMObsAnnotationQueueInteractionsDataResponse" required: - data type: object - LLMObsPatternsClusteredPointsResponseAttributes: - description: Attributes of an Agent Observability patterns clustered points response. + LLMObsAnnotationQueueInteractionsType: + description: Resource type for annotation queue interactions. + enum: + - interactions + example: interactions + type: string + x-enum-varnames: + - INTERACTIONS + LLMObsAnnotationQueueLabelSchemaAttributes: + description: Attributes of an annotation queue label schema. properties: - next_page_token: - description: Pagination token for the next page of points. Null if there are no more pages. - example: "eyJvZmZzZXQiOjUwfQ==" - nullable: true - type: string - points: - $ref: "#/components/schemas/LLMObsPatternsClusteredPointsList" - topic_id: - description: Identifier of the topic the points belong to. - example: "5c1fae90-2b6d-4e3a-9f12-7a0c4d8e6b21" - type: string + annotation_schema: + $ref: "#/components/schemas/LLMObsAnnotationSchema" required: - - topic_id - - next_page_token - - points + - annotation_schema type: object - LLMObsPatternsClusteredPointsResponseData: - description: Data object of an Agent Observability patterns clustered points response. + LLMObsAnnotationQueueLabelSchemaData: + description: Data object for an annotation queue label schema. properties: attributes: - $ref: "#/components/schemas/LLMObsPatternsClusteredPointsResponseAttributes" + $ref: "#/components/schemas/LLMObsAnnotationQueueLabelSchemaAttributes" id: - description: Identifier of the topic the points belong to. - example: "5c1fae90-2b6d-4e3a-9f12-7a0c4d8e6b21" + description: Unique identifier of the annotation queue. + example: "00000000-0000-0000-0000-000000000001" type: string type: - $ref: "#/components/schemas/LLMObsPatternsClusteredPointsType" + $ref: "#/components/schemas/LLMObsAnnotationQueueType" required: - id - type - attributes type: object - LLMObsPatternsClusteredPointsType: - description: Resource type of an Agent Observability patterns clustered points response. - enum: - - clustered_points_response - example: clustered_points_response - type: string - x-enum-varnames: - - CLUSTERED_POINTS_RESPONSE - LLMObsPatternsConfigAttributes: - description: Attributes of an Agent Observability patterns configuration. + LLMObsAnnotationQueueLabelSchemaResponse: + description: Response containing the label schema of an annotation queue. properties: - account_id: - description: Integration account ID for a bring-your-own-model configuration. - example: "1000000001" - nullable: true - type: string - created_at: - description: Timestamp when the configuration was created. - example: "2024-01-15T10:30:00Z" - format: date-time - type: string - evp_query: - description: Query that selects the spans the patterns run analyzes. - example: "@ml_app:support-bot" - type: string - hierarchy_depth: - description: Depth of the topic hierarchy to generate. - example: 2 - format: int32 - maximum: 2147483647 - type: integer - integration_provider: - description: Integration provider for a bring-your-own-model configuration. - example: openai - nullable: true - type: string - model_name: - description: Model name for a bring-your-own-model configuration. - example: gpt-4o - nullable: true - type: string - name: - description: Name of the configuration. - example: "Support chatbot topics" - type: string - num_records: - description: Maximum number of records to process for the run. - example: 1000 - format: int32 - maximum: 2147483647 - type: integer - sampling_ratio: - description: Fraction of matching spans to sample for the run. - example: 0.1 - format: double - type: number - scope: - description: Scope of the configuration. - example: "" - type: string - template: - description: Template used to guide topic generation. - example: "" - nullable: true - type: string - updated_at: - description: Timestamp when the configuration was last updated. - example: "2024-01-15T10:30:00Z" - format: date-time - type: string - required: - - name - - evp_query - - sampling_ratio - - num_records - - hierarchy_depth - - scope - - created_at - - updated_at - type: object - LLMObsPatternsConfigItem: - description: A single Agent Observability patterns configuration in a list response. - properties: - account_id: - description: Integration account ID for a bring-your-own-model configuration. - example: "1000000001" - nullable: true - type: string - created_at: - description: Timestamp when the configuration was created. - example: "2024-01-15T10:30:00Z" - format: date-time - type: string - evp_query: - description: Query that selects the spans the patterns run analyzes. - example: "@ml_app:support-bot" - type: string - hierarchy_depth: - description: Depth of the topic hierarchy to generate. - example: 2 - format: int32 - maximum: 2147483647 - type: integer - id: - description: Unique identifier of the configuration. - example: "a7c8d9e0-1234-5678-9abc-def012345678" - type: string - integration_provider: - description: Integration provider for a bring-your-own-model configuration. - example: openai - nullable: true - type: string - model_name: - description: Model name for a bring-your-own-model configuration. - example: gpt-4o - nullable: true - type: string - name: - description: Name of the configuration. - example: "Support chatbot topics" - type: string - num_records: - description: Maximum number of records to process for the run. - example: 1000 - format: int32 - maximum: 2147483647 - type: integer - sampling_ratio: - description: Fraction of matching spans to sample for the run. - example: 0.1 - format: double - type: number - scope: - description: Scope of the configuration. - example: "" - type: string - template: - description: Template used to guide topic generation. - example: "" - nullable: true - type: string - updated_at: - description: Timestamp when the configuration was last updated. - example: "2024-01-15T10:30:00Z" - format: date-time - type: string + data: + $ref: "#/components/schemas/LLMObsAnnotationQueueLabelSchemaData" required: - - id - - name - - evp_query - - sampling_ratio - - num_records - - hierarchy_depth - - scope - - created_at - - updated_at + - data type: object - LLMObsPatternsConfigItemsList: - description: List of patterns configurations. - items: - $ref: "#/components/schemas/LLMObsPatternsConfigItem" - type: array - LLMObsPatternsConfigResponse: - description: Response containing a single Agent Observability patterns configuration. + LLMObsAnnotationQueueLabelSchemaUpdateAttributes: + description: Attributes for updating an annotation queue label schema. properties: - data: - $ref: "#/components/schemas/LLMObsPatternsConfigResponseData" + annotation_schema: + $ref: "#/components/schemas/LLMObsAnnotationSchema" required: - - data + - annotation_schema type: object - LLMObsPatternsConfigResponseData: - description: Data object of an Agent Observability patterns configuration. + LLMObsAnnotationQueueLabelSchemaUpdateData: + description: Data object for updating an annotation queue label schema. properties: attributes: - $ref: "#/components/schemas/LLMObsPatternsConfigAttributes" - id: - description: Unique identifier of the configuration. - example: "a7c8d9e0-1234-5678-9abc-def012345678" - type: string + $ref: "#/components/schemas/LLMObsAnnotationQueueLabelSchemaUpdateAttributes" type: - $ref: "#/components/schemas/LLMObsPatternsConfigType" + $ref: "#/components/schemas/LLMObsAnnotationQueueType" required: - - id - type - attributes type: object - LLMObsPatternsConfigSnapshot: - description: Snapshot of the configuration used for a patterns run. + LLMObsAnnotationQueueLabelSchemaUpdateRequest: + description: Request to update the label schema of an annotation queue. properties: - account_id: - description: Integration account ID used for a bring-your-own-model run. - example: "1000000001" - type: string - evp_query: - description: Query that selected the spans for the run. - example: "@ml_app:support-bot" - type: string - hierarchy_depth: - description: Depth of the topic hierarchy generated. - example: 2 - format: int32 - maximum: 2147483647 - type: integer - integration_provider: - description: Integration provider used for a bring-your-own-model run. - example: openai - type: string - model_name: - description: Model name used for a bring-your-own-model run. - example: gpt-4o - type: string - num_records: - description: Maximum number of records processed for the run. - example: 1000 - format: int32 - maximum: 2147483647 - type: integer - sampling_ratio: - description: Fraction of matching spans sampled for the run. - example: 0.1 - format: double - type: number + data: + $ref: "#/components/schemas/LLMObsAnnotationQueueLabelSchemaUpdateData" + required: + - data type: object - LLMObsPatternsConfigType: - description: Resource type of an Agent Observability patterns configuration. - enum: - - topic_discovery_configs - example: topic_discovery_configs - type: string - x-enum-varnames: - - TOPIC_DISCOVERY_CONFIGS - LLMObsPatternsConfigUpsertRequest: - description: Request to create or update an Agent Observability patterns configuration. + LLMObsAnnotationQueueRequest: + description: Request to create an Agent Observability annotation queue. properties: data: - $ref: "#/components/schemas/LLMObsPatternsConfigUpsertRequestData" + $ref: "#/components/schemas/LLMObsAnnotationQueueDataRequest" required: - data type: object - LLMObsPatternsConfigUpsertRequestAttributes: - description: Attributes for creating or updating an Agent Observability patterns configuration. + LLMObsAnnotationQueueResponse: + description: Response containing a single Agent Observability annotation queue. properties: - account_id: - description: Integration account ID for a bring-your-own-model configuration. - example: "1000000001" - type: string - config_id: - description: The ID of an existing configuration to update. If omitted, a new configuration is created. - example: "a7c8d9e0-1234-5678-9abc-def012345678" - type: string - evp_query: - description: Query that selects the spans the patterns run analyzes. - example: "@ml_app:support-bot" - type: string - hierarchy_depth: - description: Depth of the topic hierarchy to generate. - example: 2 - format: int32 - maximum: 2147483647 - type: integer - integration_provider: - description: Integration provider for a bring-your-own-model configuration. - example: openai - type: string - model_name: - description: Model name for a bring-your-own-model configuration. - example: gpt-4o + data: + $ref: "#/components/schemas/LLMObsAnnotationQueueDataResponse" + required: + - data + type: object + LLMObsAnnotationQueueType: + description: Resource type of an Agent Observability annotation queue. + enum: + - queues + example: queues + type: string + x-enum-varnames: + - QUEUES + LLMObsAnnotationQueueUpdateDataAttributesRequest: + description: Attributes for updating an Agent Observability annotation queue. All fields are optional. + properties: + annotation_schema: + $ref: "#/components/schemas/LLMObsAnnotationSchema" + description: + description: Updated description of the annotation queue. + example: "Updated description" type: string name: - description: Name of the configuration. - example: "Support chatbot topics" - type: string - num_records: - description: Maximum number of records to process for the run. - example: 1000 - format: int32 - maximum: 2147483647 - type: integer - sampling_ratio: - description: Fraction of matching spans to sample for the run. - example: 0.1 - format: double - type: number - scope: - description: Scope of the configuration. - example: "" - type: string - template: - description: Template used to guide topic generation. - example: "" + description: Updated name of the annotation queue. + example: "Updated queue name" type: string - required: - - name - - evp_query - - sampling_ratio - - num_records - - hierarchy_depth + restrict_to_assignees: + description: Whether annotation access is restricted to assigned users. + example: false + type: boolean + restrict_to_reviewers: + description: Whether annotation access is restricted to queue reviewers. + example: true + type: boolean + reviewer_emails: + description: Updated email addresses of reviewers who can access the annotation queue. + example: + - "reviewer@example.com" + items: + type: string + type: array type: object - LLMObsPatternsConfigUpsertRequestData: - description: Data object for creating or updating an Agent Observability patterns configuration. + LLMObsAnnotationQueueUpdateDataRequest: + description: Data object for updating an Agent Observability annotation queue. properties: attributes: - $ref: "#/components/schemas/LLMObsPatternsConfigUpsertRequestAttributes" + $ref: "#/components/schemas/LLMObsAnnotationQueueUpdateDataAttributesRequest" type: - $ref: "#/components/schemas/LLMObsPatternsConfigType" + $ref: "#/components/schemas/LLMObsAnnotationQueueType" required: - type - attributes type: object - LLMObsPatternsConfigsListType: - description: Resource type of a list of Agent Observability patterns configurations. - enum: - - list_topic_discovery_configs_response - example: list_topic_discovery_configs_response - type: string - x-enum-varnames: - - LIST_TOPIC_DISCOVERY_CONFIGS_RESPONSE - LLMObsPatternsConfigsResponse: - description: Response containing a list of Agent Observability patterns configurations. + LLMObsAnnotationQueueUpdateRequest: + description: Request to update an Agent Observability annotation queue. properties: data: - $ref: "#/components/schemas/LLMObsPatternsConfigsResponseData" + $ref: "#/components/schemas/LLMObsAnnotationQueueUpdateDataRequest" required: - data type: object - LLMObsPatternsConfigsResponseAttributes: - description: Attributes of a list of Agent Observability patterns configurations. + LLMObsAnnotationQueuesResponse: + description: Response containing a list of Agent Observability annotation queues. properties: - configs: - $ref: "#/components/schemas/LLMObsPatternsConfigItemsList" + data: + description: List of annotation queues. + items: + $ref: "#/components/schemas/LLMObsAnnotationQueueDataResponse" + type: array required: - - configs + - data type: object - LLMObsPatternsConfigsResponseData: - description: Data object of a list of Agent Observability patterns configurations. + LLMObsAnnotationSchema: + description: Schema defining the labels for an annotation queue. + properties: + label_schemas: + description: List of label schema definitions. + items: + $ref: "#/components/schemas/LLMObsLabelSchema" + type: array + required: + - label_schemas + type: object + LLMObsAnnotationsDataAttributesRequest: + description: Attributes for creating or updating annotations. + properties: + annotations: + description: List of annotations to create or update. Must contain at least one item. + items: + $ref: "#/components/schemas/LLMObsUpsertAnnotationItem" + minItems: 1 + type: array + required: + - annotations + type: object + LLMObsAnnotationsDataAttributesResponse: + description: Attributes of the annotations response. + properties: + annotations: + description: Successfully created or updated annotations. + items: + $ref: "#/components/schemas/LLMObsAnnotationItemResponse" + type: array + errors: + description: Partial errors for annotations that could not be processed. + items: + $ref: "#/components/schemas/LLMObsAnnotationError" + type: array + required: + - annotations + type: object + LLMObsAnnotationsDataRequest: + description: Data object for creating or updating annotations. properties: attributes: - $ref: "#/components/schemas/LLMObsPatternsConfigsResponseAttributes" + $ref: "#/components/schemas/LLMObsAnnotationsDataAttributesRequest" + type: + $ref: "#/components/schemas/LLMObsAnnotationsType" + required: + - type + - attributes + type: object + LLMObsAnnotationsDataResponse: + description: Data object for the annotations response. + properties: + attributes: + $ref: "#/components/schemas/LLMObsAnnotationsDataAttributesResponse" id: - description: Identifier of the list response. - example: "1000000001" + description: The annotation queue ID. + example: "00000000-0000-0000-0000-000000000001" type: string type: - $ref: "#/components/schemas/LLMObsPatternsConfigsListType" + $ref: "#/components/schemas/LLMObsAnnotationsType" required: - id - type - attributes type: object - LLMObsPatternsProgressList: - description: List of step-by-step progress entries for a patterns run. - items: - $ref: "#/components/schemas/LLMObsPatternsActivityProgress" - type: array - LLMObsPatternsRequestType: - description: Resource type for triggering an Agent Observability patterns run. + LLMObsAnnotationsRequest: + description: Request to create or update annotations on interactions in an annotation queue. + properties: + data: + $ref: "#/components/schemas/LLMObsAnnotationsDataRequest" + required: + - data + type: object + LLMObsAnnotationsResponse: + description: Response containing the created or updated annotations. + properties: + data: + $ref: "#/components/schemas/LLMObsAnnotationsDataResponse" + required: + - data + type: object + LLMObsAnnotationsType: + description: Resource type for Agent Observability annotations. enum: - - topic_discovery - example: topic_discovery + - annotations + example: annotations type: string x-enum-varnames: - - TOPIC_DISCOVERY - LLMObsPatternsRunStatusResponse: - description: Response containing the status of an Agent Observability patterns run. + - ANNOTATIONS + LLMObsAnthropicEffort: + description: The effort level for Anthropic inference. + enum: + - low + - medium + - high + - max + example: medium + nullable: true + type: string + x-enum-varnames: + - LOW + - MEDIUM + - HIGH + - MAX + LLMObsAnthropicMetadata: + description: Anthropic-specific metadata for an inference request. properties: - data: - $ref: "#/components/schemas/LLMObsPatternsRunStatusResponseData" + effort: + $ref: "#/components/schemas/LLMObsAnthropicEffort" + thinking: + $ref: "#/components/schemas/LLMObsAnthropicThinkingConfig" + nullable: true + type: object + LLMObsAnthropicThinkingConfig: + description: Configuration for Anthropic extended thinking feature. + properties: + budget_tokens: + description: Maximum token budget for extended thinking. Required when type is `enabled`. + example: 1024 + format: int64 + nullable: true + type: integer + type: + $ref: "#/components/schemas/LLMObsAnthropicThinkingType" required: - - data + - type type: object - LLMObsPatternsRunStatusResponseAttributes: - description: Attributes of an Agent Observability patterns run status. + LLMObsAnthropicThinkingType: + description: The thinking mode for Anthropic extended thinking. + enum: + - enabled + - disabled + - adaptive + example: enabled + type: string + x-enum-varnames: + - ENABLED + - DISABLED + - ADAPTIVE + LLMObsAnyInteractionType: + description: Type of an annotated interaction. + enum: + - trace + - experiment_trace + - session + - display_block + example: trace + type: string + x-enum-varnames: + - TRACE + - EXPERIMENT_TRACE + - SESSION + - DISPLAY_BLOCK + LLMObsAzureOpenAIMetadata: + description: Azure OpenAI-specific metadata for an integration account or inference request. properties: - created_at: - description: Timestamp when the run was created. - example: "2024-01-15T10:30:00Z" - format: date-time + deployment_id: + description: The Azure OpenAI deployment ID. + example: "my-gpt4-deployment" type: string - progress: - $ref: "#/components/schemas/LLMObsPatternsProgressList" - status: - description: Overall status of the run. - example: running + model_version: + description: The model version deployed in Azure. + example: "0613" type: string - step: - description: The current step of the run. - example: generate_topics + resource_name: + description: The Azure OpenAI resource name. + example: "my-azure-resource" type: string - required: - - created_at - - status - - step - - progress type: object - LLMObsPatternsRunStatusResponseData: - description: Data object of an Agent Observability patterns run status response. + LLMObsBedrockMetadata: + description: Amazon Bedrock-specific metadata for an inference request. properties: - attributes: - $ref: "#/components/schemas/LLMObsPatternsRunStatusResponseAttributes" - id: - description: The ID of the patterns run. - example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" + region: + description: The AWS region for the Bedrock request. + example: "us-east-1" + type: string + type: object + LLMObsContentBlock: + anyOf: + - $ref: "#/components/schemas/LLMObsFrontendContentBlock" + - $ref: "#/components/schemas/LLMObsLegacyContentBlock" + description: |- + A single content block rendered inside a `display_block` interaction. + `type` discriminates which other fields are meaningful: + + - `markdown` / `text`: `content` must be a string. + - `header`: `content` must be a string; `level`, when set, must be one of `sm`, `md`, `lg`, `xl`. + - `json`: `content` must be a well-formed JSON value (object, array, or scalar). + - `image`: `url` is required. + - `widget`: `tileDef` is required (any well-formed JSON; the frontend owns the renderable schema). + - `llmobs_trace`: `traceId` is required; `interactionType`, when set, must be `trace` or `experiment_trace`. + - `frontend`: `code` is required and must be a non-empty string; `label` is optional. + + `height`, when set, must be positive. + properties: + alt: + description: Alternative text for an `image` block. + example: "Example image" + type: string + code: + $ref: "#/components/schemas/LLMObsFrontendContentBlockCode" + content: + description: |- + Block payload. A string for `markdown`, `header`, and `text`; an + arbitrary JSON value (object, array, or scalar) for `json`. Omitted + for `image`, `widget`, `llmobs_trace`, and `frontend`. + example: "## Triage Instructions" + height: + description: Optional rendered height. Must be positive when set. + example: 240 + format: int64 + type: integer + interactionType: + $ref: "#/components/schemas/LLMObsContentBlockLLMObsTraceInteractionType" + label: + description: Optional label rendered alongside a `frontend` block. + example: "Triage Instructions" + type: string + level: + $ref: "#/components/schemas/LLMObsContentBlockHeaderLevel" + tileDef: + description: |- + Tile definition for a `widget` block. Required for `widget`. The + schema is owned by the frontend renderer. + example: + requests: + - queries: + - data_source: metrics + name: q + query: "avg:system.cpu.user{*}" + response_format: timeseries + type: line + viz: timeseries + timeFrame: + $ref: "#/components/schemas/LLMObsContentBlockTimeFrame" + traceId: + description: Trace identifier. Required for `llmobs_trace` blocks. + example: "69fcc2bb0000000003113989d83069ba" type: string type: - $ref: "#/components/schemas/LLMObsPatternsRunStatusType" + $ref: "#/components/schemas/LLMObsContentBlockType" + url: + description: URL of the image. Required for `image` blocks. + example: "https://example.com/image.png" + type: string required: - - id - type - - attributes type: object - LLMObsPatternsRunStatusType: - description: Resource type of an Agent Observability patterns run status. + LLMObsContentBlockHeaderLevel: + description: Visual size for a `header` block. enum: - - topic_discovery_run_status - example: topic_discovery_run_status + - sm + - md + - lg + - xl + example: md type: string x-enum-varnames: - - TOPIC_DISCOVERY_RUN_STATUS - LLMObsPatternsRunSummary: - description: Summary of an Agent Observability patterns run. + - SM + - MD + - LG + - XL + LLMObsContentBlockLLMObsTraceInteractionType: + description: |- + Upstream interaction type referenced by an `llmobs_trace` block. + Restricted to `trace` or `experiment_trace`. + enum: + - trace + - experiment_trace + example: trace + type: string + x-enum-varnames: + - TRACE + - EXPERIMENT_TRACE + LLMObsContentBlockTimeFrame: + description: Unix-millis time range used by chart blocks. properties: - completed_at: - description: Timestamp when the run completed. Null if the run has not completed. - example: "2024-01-15T10:45:00Z" - format: date-time - nullable: true + end: + description: End of the range, in Unix milliseconds. + example: 1705315800000 + format: int64 + type: integer + start: + description: Start of the range, in Unix milliseconds. + example: 1705312200000 + format: int64 + type: integer + required: + - start + - end + type: object + LLMObsContentBlockType: + description: |- + Discriminator for a single `display_block` content block. Adding a + variant requires coordinated changes in the frontend renderer. + enum: + - markdown + - header + - text + - json + - image + - widget + - llmobs_trace + - frontend + example: markdown + type: string + x-enum-varnames: + - MARKDOWN + - HEADER + - TEXT + - JSON + - IMAGE + - WIDGET + - LLMOBS_TRACE + - FRONTEND + LLMObsContentBlocks: + description: |- + List of content blocks that make up a `display_block` interaction. + Must contain at least one block. + items: + $ref: "#/components/schemas/LLMObsContentBlock" + minItems: 1 + type: array + LLMObsCreatePromptData: + description: Data object for creating an Agent Observability prompt. + properties: + attributes: + $ref: "#/components/schemas/LLMObsCreatePromptDataAttributes" + type: + $ref: "#/components/schemas/LLMObsPromptType" + required: + - type + - attributes + type: object + LLMObsCreatePromptDataAttributes: + description: >- + Attributes for creating an Agent Observability prompt and its first version. `prompt_id` and `template` are required; all other attributes are optional. If `config` is omitted, the first version stores an empty object. Configuration authoring must be enabled for your organization to supply `config`. Otherwise, supplying it, including an empty object, returns HTTP 403. + properties: + config: + $ref: "#/components/schemas/LLMObsPromptConfig" + description: + description: Optional description of the prompt. type: string - config_snapshot: - $ref: "#/components/schemas/LLMObsPatternsConfigSnapshot" - created_at: - description: Timestamp when the run was created. - example: "2024-01-15T10:30:00Z" - format: date-time + env_ids: + description: >- + Optional feature-flag environment UUIDs the service attempts to enable and configure to use the first version as their default after creation. + items: + type: string + type: array + labels: + deprecated: true + description: >- + Optional labels to attach to the first version. Do not use this attribute for new integrations. + items: + $ref: "#/components/schemas/LLMObsPromptVersionLabel" + type: array + prompt_id: + description: Customer-provided identifier for the new prompt. + example: "customer-support-assistant" + minLength: 1 type: string - id: - description: Unique identifier of the run. - example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" + template: + $ref: "#/components/schemas/LLMObsPromptTemplate" + title: + description: Optional title of the prompt. type: string - status: - description: Status of the run. - example: completed + user_version: + description: Optional user-supplied version identifier for the first version. type: string required: - - id - - status - - created_at + - prompt_id + - template type: object - LLMObsPatternsRunsList: - description: List of patterns runs. - items: - $ref: "#/components/schemas/LLMObsPatternsRunSummary" - type: array - LLMObsPatternsRunsListType: - description: Resource type of a list of Agent Observability patterns runs. - enum: - - list_topic_discovery_runs_response - example: list_topic_discovery_runs_response - type: string - x-enum-varnames: - - LIST_TOPIC_DISCOVERY_RUNS_RESPONSE - LLMObsPatternsRunsResponse: - description: Response containing the completed runs of an Agent Observability patterns configuration. + LLMObsCreatePromptRequest: + description: Request to create an Agent Observability prompt. properties: data: - $ref: "#/components/schemas/LLMObsPatternsRunsResponseData" + $ref: "#/components/schemas/LLMObsCreatePromptData" required: - data type: object - LLMObsPatternsRunsResponseAttributes: - description: Attributes of an Agent Observability patterns runs response. + LLMObsCreatePromptResponse: + description: Response returned after creating an Agent Observability prompt. properties: - runs: - $ref: "#/components/schemas/LLMObsPatternsRunsList" + data: + $ref: "#/components/schemas/LLMObsCreatePromptResponseData" required: - - runs + - data type: object - LLMObsPatternsRunsResponseData: - description: Data object of an Agent Observability patterns runs response. + LLMObsCreatePromptResponseData: + description: Data object returned after creating an Agent Observability prompt. properties: attributes: - $ref: "#/components/schemas/LLMObsPatternsRunsResponseAttributes" + $ref: "#/components/schemas/LLMObsCreatePromptResponseDataAttributes" id: - description: Identifier of the configuration the runs belong to. - example: "a7c8d9e0-1234-5678-9abc-def012345678" + description: Unique identifier of the prompt. + example: "4a1a28ff-8a25-5f0f-946f-f48264d772eb" type: string type: - $ref: "#/components/schemas/LLMObsPatternsRunsListType" + $ref: "#/components/schemas/LLMObsPromptType" required: - id - type - attributes type: object - LLMObsPatternsTopic: - description: A topic discovered by an Agent Observability patterns run. + LLMObsCreatePromptResponseDataAttributes: + description: >- + Attributes returned after creating an Agent Observability prompt and its first version. Empty `config` is omitted when configuration authoring is disabled for the organization. Non-empty saved configuration is always returned. properties: + author: + description: UUID of the user who authored the prompt. + type: string + config: + $ref: "#/components/schemas/LLMObsPromptConfig" created_at: - description: Timestamp when the topic was created. - example: "2024-01-15T10:30:00Z" + description: Timestamp when the prompt was created. format: date-time type: string - description: - description: Description of the topic. - example: "Questions about invoices, charges, and refunds." + created_from: + description: >- + Source that created the prompt, such as `ui-registry`, `sdk-registry`, or `sdk-instrumentation`. + example: "sdk-registry" type: string - first_seen_at: - description: Timestamp when the topic was first seen. - example: "2024-01-15T10:30:00Z" - format: date-time + datasets: + description: Datasets observed in runs associated with this prompt. + items: + $ref: "#/components/schemas/LLMObsPromptDataset" + type: array + description: + description: Description of the prompt. type: string - hierarchy_level: - description: Level of the topic in the hierarchy. Level 0 is a leaf topic. - example: 0 - format: int64 - type: integer - id: - description: Unique identifier of the topic. - example: "5c1fae90-2b6d-4e3a-9f12-7a0c4d8e6b21" + extracted_from: + description: Source prompt from which this prompt was extracted, when applicable. type: string - is_validated: - description: Whether the topic has been validated. + in_registry: + description: Whether the prompt is a registry entry (as opposed to a code-discovered prompt). example: true type: boolean - name: - description: Name of the topic. - example: "Billing questions" + last_seen_at: + description: Timestamp of the most recent observed run of this prompt. + format: date-time type: string - parent_topic_id: - description: Identifier of the parent topic. Empty for top-level topics. - example: "" + last_version_created_at: + description: Timestamp when the most recent version of the prompt was created. + format: date-time type: string - point_count: - description: Number of data points assigned to the topic. - example: 125 + ml_app: + description: The ML application this prompt is associated with. + type: string + ml_apps: + description: ML applications observed running this prompt. + items: + type: string + type: array + num_versions: + description: Number of versions of the prompt. + example: 1 format: int64 type: integer - run_id: - description: Identifier of the run that produced the topic. - example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" + prompt_id: + description: Customer-provided identifier of the prompt. + example: "customer-support-assistant" + type: string + source: + $ref: "#/components/schemas/LLMObsPromptResponseSource" + tags: + description: Tags observed on runs of this prompt. + items: + type: string + type: array + title: + description: Title of the prompt. type: string required: - - id - - run_id - - parent_topic_id - - hierarchy_level - - name - - description - - is_validated - - created_at - - point_count - - first_seen_at + - prompt_id + - source + - num_versions + - in_registry + - created_from type: object - LLMObsPatternsTopicWithClusteredPoints: - description: |- - A topic discovered by an Agent Observability patterns run, including the - clustered points attached to leaf topics. + LLMObsCreatePromptVersionData: + description: Data object for creating an Agent Observability prompt version. properties: - cluster_points: - $ref: "#/components/schemas/LLMObsPatternsClusteredPointRefsList" - created_at: - description: Timestamp when the topic was created. - example: "2024-01-15T10:30:00Z" - format: date-time - type: string + attributes: + $ref: "#/components/schemas/LLMObsCreatePromptVersionDataAttributes" + type: + $ref: "#/components/schemas/LLMObsPromptVersionType" + required: + - type + - attributes + type: object + LLMObsCreatePromptVersionDataAttributes: + description: >- + Attributes for creating a new version of an Agent Observability prompt. `template` is required; all other attributes are optional. If `config` is omitted, the latest version's configuration is carried forward. An explicit empty object clears it. Configuration authoring must be enabled for your organization to supply `config`. Otherwise, supplying it, including an empty object, returns HTTP 403. Omitting `config` still carries forward the latest configuration. + properties: + config: + $ref: "#/components/schemas/LLMObsPromptConfig" description: - description: Description of the topic. - example: "Questions about invoices, charges, and refunds." - type: string - first_seen_at: - description: Timestamp when the topic was first seen. - example: "2024-01-15T10:30:00Z" - format: date-time - type: string - hierarchy_level: - description: Level of the topic in the hierarchy. Level 0 is a leaf topic. - example: 0 - format: int64 - type: integer - id: - description: Unique identifier of the topic. - example: "5c1fae90-2b6d-4e3a-9f12-7a0c4d8e6b21" - type: string - is_validated: - description: Whether the topic has been validated. - example: true - type: boolean - name: - description: Name of the topic. - example: "Billing questions" - type: string - parent_topic_id: - description: Identifier of the parent topic. Empty for top-level topics. - example: "" + description: Optional description of this version. type: string - point_count: - description: Number of data points assigned to the topic. - example: 125 - format: int64 - type: integer - run_id: - description: Identifier of the run that produced the topic. - example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" + env_ids: + description: >- + Optional feature-flag environment UUIDs the service attempts to enable and configure to use this version as their default after creation. + items: + type: string + type: array + labels: + deprecated: true + description: Optional labels to attach to this version. Do not use this attribute for new integrations. + items: + $ref: "#/components/schemas/LLMObsPromptVersionLabel" + type: array + template: + $ref: "#/components/schemas/LLMObsPromptTemplate" + user_version: + description: Optional user-supplied version identifier for this version. type: string required: - - id - - run_id - - parent_topic_id - - hierarchy_level - - name - - description - - is_validated - - created_at - - point_count - - first_seen_at + - template type: object - LLMObsPatternsTopicsList: - description: List of discovered topics. - items: - $ref: "#/components/schemas/LLMObsPatternsTopic" - type: array - LLMObsPatternsTopicsResponse: - description: Response containing the topics discovered by an Agent Observability patterns run. + LLMObsCreatePromptVersionRequest: + description: Request to create a new version of an Agent Observability prompt. properties: data: - $ref: "#/components/schemas/LLMObsPatternsTopicsResponseData" + $ref: "#/components/schemas/LLMObsCreatePromptVersionData" required: - data type: object - LLMObsPatternsTopicsResponseAttributes: - description: Attributes of an Agent Observability patterns topics response. + LLMObsCursorMeta: + description: Pagination cursor metadata. properties: - completed_at: - description: Timestamp when the run completed. Null if the run has not completed. - example: "2024-01-15T10:45:00Z" - format: date-time + after: + description: Cursor for the next page of results. nullable: true type: string - config_id: - description: Identifier of the configuration that produced the run. - example: "a7c8d9e0-1234-5678-9abc-def012345678" + type: object + LLMObsCustomEvalConfigAssessmentCriteria: + description: Criteria used to assess the pass/fail result of a custom evaluator. + properties: + max_threshold: + description: Maximum numeric threshold for a passing result. + example: 1.0 + format: double + nullable: true + type: number + min_threshold: + description: Minimum numeric threshold for a passing result. + example: 0.7 + format: double + nullable: true + type: number + pass_values: + description: Specific output values considered as a passing result. + example: + - "pass" + - "yes" + items: + description: A value considered as a passing result. + type: string + nullable: true + type: array + pass_when: + description: When true, a boolean output of true is treated as passing. + example: true + nullable: true + type: boolean + type: object + LLMObsCustomEvalConfigAttributes: + description: Attributes of a custom Agent Observability evaluator configuration. + properties: + category: + description: Category of the evaluator. + example: "Custom" type: string - config_snapshot: - $ref: "#/components/schemas/LLMObsPatternsConfigSnapshot" created_at: - description: Timestamp when the run was created. + description: Timestamp when the evaluator configuration was created. example: "2024-01-15T10:30:00Z" format: date-time type: string - previous_run_id: - description: Identifier of the run that completed immediately before this one. Empty if none. - example: "" + created_by: + $ref: "#/components/schemas/LLMObsCustomEvalConfigUser" + eval_name: + description: Name of the custom evaluator. + example: "my-custom-evaluator" type: string - run_id: - description: Identifier of the run that produced the topics. - example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" + last_updated_by: + $ref: "#/components/schemas/LLMObsCustomEvalConfigUser" + llm_judge_config: + $ref: "#/components/schemas/LLMObsCustomEvalConfigLLMJudgeConfig" + llm_provider: + $ref: "#/components/schemas/LLMObsCustomEvalConfigLLMProvider" + target: + $ref: "#/components/schemas/LLMObsCustomEvalConfigTarget" + updated_at: + description: Timestamp when the evaluator configuration was last updated. + example: "2024-01-15T10:30:00Z" + format: date-time type: string - topics: - $ref: "#/components/schemas/LLMObsPatternsTopicsList" required: - - run_id - - config_id - - previous_run_id + - eval_name - created_at - - topics + - updated_at type: object - LLMObsPatternsTopicsResponseData: - description: Data object of an Agent Observability patterns topics response. + LLMObsCustomEvalConfigBedrockOptions: + description: AWS Bedrock-specific options for LLM provider configuration. + properties: + inference_profile: + description: Bedrock inference profile identifier, such as an application inference profile ARN. + example: "arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/abc123" + type: string + region: + description: AWS region for Bedrock. + example: "us-east-1" + type: string + type: object + LLMObsCustomEvalConfigData: + description: Data object for a custom Agent Observability evaluator configuration. properties: attributes: - $ref: "#/components/schemas/LLMObsPatternsTopicsResponseAttributes" + $ref: "#/components/schemas/LLMObsCustomEvalConfigAttributes" id: - description: Identifier of the run the topics belong to. - example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" + description: Unique name identifier of the evaluator configuration. + example: "my-custom-evaluator" type: string type: - $ref: "#/components/schemas/LLMObsPatternsTopicsType" + $ref: "#/components/schemas/LLMObsCustomEvalConfigType" required: - id - type - attributes type: object - LLMObsPatternsTopicsType: - description: Resource type of an Agent Observability patterns topics response. + LLMObsCustomEvalConfigEvalScope: + description: Scope at which to evaluate spans. enum: - - get_topics_response - example: get_topics_response + - span + - trace + - session + example: "span" type: string x-enum-varnames: - - GET_TOPICS_RESPONSE - LLMObsPatternsTopicsWithClusteredPointsList: - description: List of discovered topics with their clustered points. - items: - $ref: "#/components/schemas/LLMObsPatternsTopicWithClusteredPoints" - type: array - LLMObsPatternsTopicsWithClusteredPointsResponse: - description: |- - Response containing the topics, and the clustered points of their leaf topics, - discovered by an Agent Observability patterns run. + - SPAN + - TRACE + - SESSION + LLMObsCustomEvalConfigInferenceParams: + description: LLM inference parameters for a custom evaluator. + properties: + frequency_penalty: + description: Frequency penalty to reduce repetition. + example: 0.0 + format: double + type: number + max_tokens: + description: Maximum number of tokens to generate. + example: 1024 + format: int64 + type: integer + presence_penalty: + description: Presence penalty to reduce repetition. + example: 0.0 + format: double + type: number + temperature: + description: Sampling temperature for the LLM. + example: 0.7 + format: double + type: number + top_k: + description: Top-k sampling parameter. + example: 50 + format: int64 + type: integer + top_p: + description: Top-p (nucleus) sampling parameter. + example: 1.0 + format: double + type: number + type: object + LLMObsCustomEvalConfigIntegrationProvider: + description: Name of the LLM integration provider. + enum: + - openai + - amazon-bedrock + - anthropic + - azure-openai + - vertex-ai + - llm-proxy + example: "openai" + type: string + x-enum-varnames: + - OPENAI + - AMAZON_BEDROCK + - ANTHROPIC + - AZURE_OPENAI + - VERTEX_AI + - LLM_PROXY + LLMObsCustomEvalConfigLLMJudgeConfig: + description: LLM judge configuration for a custom evaluator. + properties: + assessment_criteria: + $ref: "#/components/schemas/LLMObsCustomEvalConfigAssessmentCriteria" + context_query: + description: Query used to extract additional context for the evaluation. + example: "@input.context" + nullable: true + type: string + inference_params: + $ref: "#/components/schemas/LLMObsCustomEvalConfigInferenceParams" + last_used_library_prompt_template_name: + description: Name of the last library prompt template used. + example: "sentiment-analysis-v1" + nullable: true + type: string + modified_library_prompt_template: + description: Whether the library prompt template was modified. + example: false + nullable: true + type: boolean + output_schema: + additionalProperties: {} + description: JSON schema describing the expected output format of the LLM judge. + nullable: true + type: object + parsing_type: + $ref: "#/components/schemas/LLMObsCustomEvalConfigParsingType" + prompt_template: + description: List of messages forming the LLM judge prompt template. + items: + $ref: "#/components/schemas/LLMObsCustomEvalConfigPromptMessage" + type: array + target_query: + description: Query used to extract the target value to evaluate. + example: "@output.value" + nullable: true + type: string + user_specified_json_post_processing_function: + description: User-provided function applied to post-process the JSON output of the LLM judge. + nullable: true + type: string + required: + - inference_params + type: object + LLMObsCustomEvalConfigLLMProvider: + description: LLM provider configuration for a custom evaluator. + properties: + bedrock: + $ref: "#/components/schemas/LLMObsCustomEvalConfigBedrockOptions" + integration_account_id: + description: Integration account identifier. + example: "my-account-id" + type: string + integration_provider: + $ref: "#/components/schemas/LLMObsCustomEvalConfigIntegrationProvider" + model_name: + description: Name of the LLM model. + example: "gpt-4o" + type: string + vertex_ai: + $ref: "#/components/schemas/LLMObsCustomEvalConfigVertexAIOptions" + type: object + LLMObsCustomEvalConfigListResponse: + description: Response containing a list of custom Agent Observability evaluator configurations. properties: data: - $ref: "#/components/schemas/LLMObsPatternsTopicsWithClusteredPointsResponseData" + description: List of custom evaluator configuration data objects. + items: + $ref: "#/components/schemas/LLMObsCustomEvalConfigData" + type: array required: - data type: object - LLMObsPatternsTopicsWithClusteredPointsResponseAttributes: - description: Attributes of an Agent Observability patterns topics-with-clustered-points response. + LLMObsCustomEvalConfigParsingType: + description: Output parsing type for a custom LLM judge evaluator. + enum: + - structured_output + - json + - keyword_search + example: "structured_output" + type: string + x-enum-varnames: + - STRUCTURED_OUTPUT + - JSON + - KEYWORD_SEARCH + LLMObsCustomEvalConfigPromptContent: + description: A content block within a prompt message. properties: - completed_at: - description: Timestamp when the run completed. Null if the run has not completed. - example: "2024-01-15T10:45:00Z" - format: date-time - nullable: true + type: + description: Content block type. + example: "text" type: string - config_id: - description: Identifier of the configuration that produced the run. - example: "a7c8d9e0-1234-5678-9abc-def012345678" + value: + $ref: "#/components/schemas/LLMObsCustomEvalConfigPromptContentValue" + required: + - type + - value + type: object + LLMObsCustomEvalConfigPromptContentValue: + description: Value of a prompt message content block. + properties: + text: + description: Text content of the message block. + example: "What is the sentiment of this review?" type: string - config_snapshot: - $ref: "#/components/schemas/LLMObsPatternsConfigSnapshot" - created_at: - description: Timestamp when the run was created. - example: "2024-01-15T10:30:00Z" - format: date-time + tool_call: + $ref: "#/components/schemas/LLMObsCustomEvalConfigPromptToolCall" + tool_call_result: + $ref: "#/components/schemas/LLMObsCustomEvalConfigPromptToolResult" + type: object + LLMObsCustomEvalConfigPromptMessage: + description: A message in the prompt template for a custom LLM judge evaluator. + properties: + content: + description: Text content of the message. + example: "Rate the quality of the following response:" type: string - previous_run_id: - description: Identifier of the run that completed immediately before this one. Empty if none. - example: "" + contents: + description: Multi-part content blocks for the message. + items: + $ref: "#/components/schemas/LLMObsCustomEvalConfigPromptContent" + type: array + role: + description: Role of the message author. + example: "user" type: string - run_id: - description: Identifier of the run that produced the topics. - example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" + required: + - role + type: object + LLMObsCustomEvalConfigPromptToolCall: + description: A tool call within a prompt message. + properties: + arguments: + description: JSON-encoded arguments for the tool call. + example: '{"location": "San Francisco"}' type: string - topics: - $ref: "#/components/schemas/LLMObsPatternsTopicsWithClusteredPointsList" + id: + description: Unique identifier of the tool call. + example: "call_abc123" + type: string + name: + description: Name of the tool being called. + example: "get_weather" + type: string + type: + description: Type of the tool call. + example: "function" + type: string + type: object + LLMObsCustomEvalConfigPromptToolResult: + description: A tool call result within a prompt message. + properties: + name: + description: Name of the tool that produced this result. + example: "get_weather" + type: string + result: + description: The result returned by the tool. + example: "sunny, 72F" + type: string + tool_id: + description: Identifier of the tool call this result corresponds to. + example: "call_abc123" + type: string + type: + description: Type of the tool result. + example: "function" + type: string + type: object + LLMObsCustomEvalConfigResponse: + description: Response containing a custom Agent Observability evaluator configuration. + properties: + data: + $ref: "#/components/schemas/LLMObsCustomEvalConfigData" required: - - run_id - - config_id - - previous_run_id - - created_at - - topics + - data type: object - LLMObsPatternsTopicsWithClusteredPointsResponseData: - description: Data object of an Agent Observability patterns topics-with-clustered-points response. + LLMObsCustomEvalConfigTarget: + description: Target application configuration for a custom evaluator. + properties: + application_name: + description: Name of the ML application this evaluator targets. + example: "my-llm-app" + type: string + enabled: + description: Whether the evaluator is active for the target application. + example: true + type: boolean + eval_scope: + $ref: "#/components/schemas/LLMObsCustomEvalConfigEvalScope" + nullable: true + experiment_project_ids: + description: Experiment project IDs this evaluator is scoped to. + items: + description: An experiment project ID. + format: uuid + type: string + type: array + filter: + description: Filter expression to select which spans to evaluate. + example: "@service:my-service" + nullable: true + type: string + root_spans_only: + description: When true, only root spans are evaluated. + example: true + nullable: true + type: boolean + sampling_percentage: + description: Percentage of traces to evaluate. Must be greater than 0 and at most 100. + example: 50.0 + format: double + nullable: true + type: number + required: + - application_name + - enabled + type: object + LLMObsCustomEvalConfigType: + description: Type of the custom Agent Observability evaluator configuration resource. + enum: + - evaluator_config + example: "evaluator_config" + type: string + x-enum-varnames: + - EVALUATOR_CONFIG + LLMObsCustomEvalConfigUpdateAttributes: + description: Attributes for creating or updating a custom Agent Observability evaluator configuration. + properties: + category: + description: Category of the evaluator. + example: "Custom" + type: string + eval_name: + description: Name of the custom evaluator. If provided, must match the eval_name path parameter. + example: "my-custom-evaluator" + type: string + llm_judge_config: + $ref: "#/components/schemas/LLMObsCustomEvalConfigLLMJudgeConfig" + llm_provider: + $ref: "#/components/schemas/LLMObsCustomEvalConfigLLMProvider" + target: + $ref: "#/components/schemas/LLMObsCustomEvalConfigTarget" + required: + - target + type: object + LLMObsCustomEvalConfigUpdateData: + description: Data object for creating or updating a custom Agent Observability evaluator configuration. properties: attributes: - $ref: "#/components/schemas/LLMObsPatternsTopicsWithClusteredPointsResponseAttributes" + $ref: "#/components/schemas/LLMObsCustomEvalConfigUpdateAttributes" id: - description: Identifier of the run the topics belong to. - example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" + description: Name of the evaluator. If provided, must match the eval_name path parameter. + example: "my-custom-evaluator" type: string type: - $ref: "#/components/schemas/LLMObsPatternsTopicsWithClusteredPointsType" + $ref: "#/components/schemas/LLMObsCustomEvalConfigType" required: - - id - type - attributes type: object - LLMObsPatternsTopicsWithClusteredPointsType: - description: Resource type of an Agent Observability patterns topics-with-clustered-points response. - enum: - - get_topics_with_cluster_points_response - example: get_topics_with_cluster_points_response - type: string - x-enum-varnames: - - GET_TOPICS_WITH_CLUSTER_POINTS_RESPONSE - LLMObsPatternsTriggerRequest: - description: Request to trigger an Agent Observability patterns run. + LLMObsCustomEvalConfigUpdateRequest: + description: Request to create or update a custom Agent Observability evaluator configuration. properties: data: - $ref: "#/components/schemas/LLMObsPatternsTriggerRequestData" + $ref: "#/components/schemas/LLMObsCustomEvalConfigUpdateData" required: - data type: object - LLMObsPatternsTriggerRequestAttributes: - description: Attributes for triggering an Agent Observability patterns run. + LLMObsCustomEvalConfigUser: + description: A Datadog user associated with a custom evaluator configuration. properties: - config_id: - description: The ID of the patterns configuration to run. - example: "a7c8d9e0-1234-5678-9abc-def012345678" + email: + description: Email address of the user. + example: "user@example.com" type: string - required: - - config_id type: object - LLMObsPatternsTriggerRequestData: - description: Data object for triggering an Agent Observability patterns run. + LLMObsCustomEvalConfigVertexAIOptions: + description: Google Vertex AI-specific options for LLM provider configuration. + properties: + location: + description: Google Cloud region. + example: "us-central1" + type: string + project: + description: Google Cloud project ID. + example: "my-gcp-project" + type: string + type: object + LLMObsDatasetBatchUpdateDataAttributesRequest: + description: Attributes for batch-updating records in an Agent Observability dataset. + properties: + create_new_version: + description: Whether to create a new dataset version when applying the batch update. Defaults to `true`. + example: true + type: boolean + delete_records: + $ref: "#/components/schemas/LLMObsDatasetBatchUpdateDeleteRecords" + insert_records: + $ref: "#/components/schemas/LLMObsDatasetBatchUpdateInsertRecords" + tags: + $ref: "#/components/schemas/LLMObsDatasetRecordTagsList" + update_records: + $ref: "#/components/schemas/LLMObsDatasetBatchUpdateUpdateRecords" + type: object + LLMObsDatasetBatchUpdateDataRequest: + description: Data object for batch-updating records in an Agent Observability dataset. properties: attributes: - $ref: "#/components/schemas/LLMObsPatternsTriggerRequestAttributes" + $ref: "#/components/schemas/LLMObsDatasetBatchUpdateDataAttributesRequest" + id: + description: Unique identifier of the dataset. + example: "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d" + type: string type: - $ref: "#/components/schemas/LLMObsPatternsRequestType" + $ref: "#/components/schemas/LLMObsDatasetType" required: + - id - type - attributes type: object - LLMObsPatternsTriggerResponse: - description: Response after triggering an Agent Observability patterns run. + LLMObsDatasetBatchUpdateDeleteRecords: + description: Record IDs to delete. + items: + description: A record ID to delete. + type: string + type: array + LLMObsDatasetBatchUpdateInsertRecord: + description: A record to insert as part of a batch update on an Agent Observability dataset. + properties: + expected_output: + $ref: "#/components/schemas/AnyValue" + id: + description: Optional user-provided identifier for the record. If omitted, the server generates an identifier. + example: "rec-7c3f5a1b-9e2d-4f8a-b1c6-3d7e9f0a2b4c" + type: string + input: + $ref: "#/components/schemas/AnyValue" + metadata: + additionalProperties: {} + description: Arbitrary metadata associated with the record. + type: object + tag_operations: + $ref: "#/components/schemas/LLMObsDatasetRecordTagOperations" + tags: + $ref: "#/components/schemas/LLMObsDatasetRecordTagsList" + required: + - input + type: object + LLMObsDatasetBatchUpdateInsertRecords: + description: Records to insert. + items: + $ref: "#/components/schemas/LLMObsDatasetBatchUpdateInsertRecord" + type: array + LLMObsDatasetBatchUpdateRequest: + description: Request to batch-insert, update, and delete records in an Agent Observability dataset. properties: data: - $ref: "#/components/schemas/LLMObsPatternsTriggerResponseData" + $ref: "#/components/schemas/LLMObsDatasetBatchUpdateDataRequest" required: - data type: object - LLMObsPatternsTriggerResponseAttributes: - description: Attributes of an Agent Observability patterns trigger response. + LLMObsDatasetBatchUpdateUpdateRecord: + description: A record update payload as part of a batch update on an Agent Observability dataset. properties: - config_id: - description: The ID of the patterns configuration that was run. - example: "a7c8d9e0-1234-5678-9abc-def012345678" + expected_output: + $ref: "#/components/schemas/AnyValue" + id: + description: Unique identifier of the record to update. + example: "rec-7c3f5a1b-9e2d-4f8a-b1c6-3d7e9f0a2b4c" type: string - run_id: - description: The ID of the patterns run that was started. - example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" + input: + $ref: "#/components/schemas/AnyValue" + metadata: + additionalProperties: {} + description: Updated metadata associated with the record. + type: object + tag_operations: + $ref: "#/components/schemas/LLMObsDatasetRecordTagOperations" + required: + - id + type: object + LLMObsDatasetBatchUpdateUpdateRecords: + description: Records to update by ID. + items: + $ref: "#/components/schemas/LLMObsDatasetBatchUpdateUpdateRecord" + type: array + LLMObsDatasetCloneDataAttributesRequest: + description: Attributes for cloning an Agent Observability dataset. + properties: + description: + description: Description of the cloned dataset. + example: "Clone of the original dataset for experimentation." type: string - status: - description: Status of the patterns run. - example: started + name: + description: Name of the cloned dataset. + example: "My cloned dataset" type: string required: - - run_id - - config_id - - status + - name type: object - LLMObsPatternsTriggerResponseData: - description: Data object of an Agent Observability patterns trigger response. + LLMObsDatasetCloneDataRequest: + description: Data object for cloning an Agent Observability dataset. properties: attributes: - $ref: "#/components/schemas/LLMObsPatternsTriggerResponseAttributes" + $ref: "#/components/schemas/LLMObsDatasetCloneDataAttributesRequest" id: - description: The ID of the patterns configuration that was run. - example: "a7c8d9e0-1234-5678-9abc-def012345678" + description: Identifier of the source dataset to clone. + example: "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d" type: string type: - $ref: "#/components/schemas/LLMObsPatternsTriggerResponseType" + $ref: "#/components/schemas/LLMObsDatasetType" required: - id - type - attributes type: object - LLMObsPatternsTriggerResponseType: - description: Resource type of an Agent Observability patterns trigger response. - enum: - - topic_discovery_run - example: topic_discovery_run - type: string - x-enum-varnames: - - TOPIC_DISCOVERY_RUN - LLMObsProjectDataAttributesRequest: - description: Attributes for creating an Agent Observability project. + LLMObsDatasetCloneRequest: + description: Request to clone an Agent Observability dataset. + properties: + data: + $ref: "#/components/schemas/LLMObsDatasetCloneDataRequest" + required: + - data + type: object + LLMObsDatasetDataAttributesRequest: + description: Attributes for creating an Agent Observability dataset. properties: description: - description: Description of the project. + description: Description of the dataset. type: string + metadata: + additionalProperties: {} + description: Arbitrary metadata associated with the dataset. + type: object name: - description: Name of the project. - example: "My LLM Project" + description: Name of the dataset. + example: "My LLM Dataset" type: string required: - name type: object - LLMObsProjectDataAttributesResponse: - description: Attributes of an Agent Observability project. + LLMObsDatasetDataAttributesResponse: + description: Attributes of an Agent Observability dataset. properties: created_at: - description: Timestamp when the project was created. + description: Timestamp when the dataset was created. example: "2024-01-15T10:30:00Z" format: date-time type: string + current_version: + description: Current version number of the dataset. + example: 1 + format: int64 + type: integer description: - description: Description of the project. + description: Description of the dataset. example: "" nullable: true type: string + metadata: + additionalProperties: {} + description: Arbitrary metadata associated with the dataset. + nullable: true + type: object name: - description: Name of the project. - example: "My LLM Project" + description: Name of the dataset. + example: "My LLM Dataset" type: string updated_at: - description: Timestamp when the project was last updated. + description: Timestamp when the dataset was last updated. example: "2024-01-15T10:30:00Z" format: date-time type: string required: - name - description + - metadata + - current_version - created_at - updated_at type: object - LLMObsProjectDataRequest: - description: Data object for creating an Agent Observability project. + LLMObsDatasetDataRequest: + description: Data object for creating an Agent Observability dataset. properties: attributes: - $ref: "#/components/schemas/LLMObsProjectDataAttributesRequest" + $ref: "#/components/schemas/LLMObsDatasetDataAttributesRequest" type: - $ref: "#/components/schemas/LLMObsProjectType" + $ref: "#/components/schemas/LLMObsDatasetType" required: - type - attributes type: object - LLMObsProjectDataResponse: - description: Data object for an Agent Observability project. + LLMObsDatasetDataResponse: + description: Data object for an Agent Observability dataset. properties: attributes: - $ref: "#/components/schemas/LLMObsProjectDataAttributesResponse" + $ref: "#/components/schemas/LLMObsDatasetDataAttributesResponse" id: - description: Unique identifier of the project. - example: "a33671aa-24fd-4dcd-9b33-a8ec7dde7751" + description: Unique identifier of the dataset. + example: "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d" type: string type: - $ref: "#/components/schemas/LLMObsProjectType" + $ref: "#/components/schemas/LLMObsDatasetType" required: - id - type - attributes type: object - LLMObsProjectRequest: - description: Request to create an Agent Observability project. + LLMObsDatasetDraftStateData: + description: Data object for an Agent Observability dataset draft state. properties: - data: - $ref: "#/components/schemas/LLMObsProjectDataRequest" + attributes: + $ref: "#/components/schemas/LLMObsDatasetDraftStateDataAttributes" + id: + description: Unique identifier of the dataset draft state. Matches the dataset ID. + example: "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d" + type: string + type: + $ref: "#/components/schemas/LLMObsDatasetDraftStateType" required: - - data + - id + - type + - attributes type: object - LLMObsProjectResponse: - description: Response containing a single Agent Observability project. + LLMObsDatasetDraftStateDataAttributes: + description: Attributes of an Agent Observability dataset draft state. + properties: + drafting_since: + description: Timestamp when the dataset draft session started. + example: "2024-01-15T10:30:00Z" + format: date-time + type: string + user: + $ref: "#/components/schemas/LLMObsDatasetDraftStateUser" + required: + - user + - drafting_since + type: object + LLMObsDatasetDraftStateResponse: + description: Response containing the draft state of an Agent Observability dataset. properties: data: - $ref: "#/components/schemas/LLMObsProjectDataResponse" + $ref: "#/components/schemas/LLMObsDatasetDraftStateData" required: - data type: object - LLMObsProjectType: - description: Resource type of an Agent Observability project. + LLMObsDatasetDraftStateType: + description: Resource type of an Agent Observability dataset draft state. enum: - - projects - example: projects + - draft_state_data + example: draft_state_data type: string x-enum-varnames: - - PROJECTS - LLMObsProjectUpdateDataAttributesRequest: - description: Attributes for updating an Agent Observability project. + - DRAFT_STATE_DATA + LLMObsDatasetDraftStateUser: + description: User information associated with a dataset draft state. properties: - description: - description: Updated description of the project. + email: + description: Email address of the user. + example: "jane.doe@example.com" + type: string + handle: + description: Handle of the user. + example: "jane.doe@example.com" + type: string + icon: + description: Icon for the user. + example: "" + type: string + id: + description: Unique identifier of the user holding the draft lock. + example: "00000000-0000-0000-0000-000000000010" type: string name: - description: Updated name of the project. + description: Display name of the user. + example: "Jane Doe" type: string + required: + - id type: object - LLMObsProjectUpdateDataRequest: - description: Data object for updating an Agent Observability project. + LLMObsDatasetExportFormat: + default: csv + description: Supported export format for an Agent Observability dataset. + enum: + - csv + example: csv + type: string + x-enum-varnames: + - CSV + LLMObsDatasetRecordDataResponse: + description: A single Agent Observability dataset record. + properties: + created_at: + description: Timestamp when the record was created. + example: "2024-01-15T10:30:00Z" + format: date-time + type: string + dataset_id: + description: Identifier of the dataset this record belongs to. + example: "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d" + type: string + expected_output: + $ref: "#/components/schemas/AnyValue" + id: + description: Unique identifier of the record. + example: "rec-7c3f5a1b-9e2d-4f8a-b1c6-3d7e9f0a2b4c" + type: string + input: + $ref: "#/components/schemas/AnyValue" + metadata: + additionalProperties: {} + description: Arbitrary metadata associated with the record. + nullable: true + type: object + updated_at: + description: Timestamp when the record was last updated. + example: "2024-01-15T10:30:00Z" + format: date-time + type: string + required: + - id + - dataset_id + - input + - expected_output + - metadata + - created_at + - updated_at + type: object + LLMObsDatasetRecordItem: + description: A single record to append to an Agent Observability dataset. + properties: + expected_output: + $ref: "#/components/schemas/AnyValue" + input: + $ref: "#/components/schemas/AnyValue" + metadata: + additionalProperties: {} + description: Arbitrary metadata associated with the record. + type: object + required: + - input + type: object + LLMObsDatasetRecordTagOperations: + description: Explicit tag operations for updating records. Operations are applied in order, Remove then Add then Set. `set` is the final override; if specified, the result of `remove` and `add` is discarded. + properties: + add: + $ref: "#/components/schemas/LLMObsDatasetRecordTagsList" + remove: + $ref: "#/components/schemas/LLMObsDatasetRecordTagsList" + set: + $ref: "#/components/schemas/LLMObsDatasetRecordTagsList" + type: object + LLMObsDatasetRecordTagsList: + description: List of tag strings. + items: + description: A tag. + type: string + type: array + LLMObsDatasetRecordUpdateItem: + description: A record update payload for an Agent Observability dataset. + properties: + expected_output: + $ref: "#/components/schemas/AnyValue" + id: + description: Unique identifier of the record to update. + example: "rec-7c3f5a1b-9e2d-4f8a-b1c6-3d7e9f0a2b4c" + type: string + input: + $ref: "#/components/schemas/AnyValue" + metadata: + additionalProperties: {} + description: Updated metadata associated with the record. + type: object + required: + - id + type: object + LLMObsDatasetRecordsDataAttributesRequest: + description: Attributes for appending records to an Agent Observability dataset. + properties: + deduplicate: + description: Whether to deduplicate records before appending. Defaults to `true`. + type: boolean + records: + description: List of records to append to the dataset. + items: + $ref: "#/components/schemas/LLMObsDatasetRecordItem" + type: array + required: + - records + type: object + LLMObsDatasetRecordsDataRequest: + description: Data object for appending records to an Agent Observability dataset. properties: attributes: - $ref: "#/components/schemas/LLMObsProjectUpdateDataAttributesRequest" + $ref: "#/components/schemas/LLMObsDatasetRecordsDataAttributesRequest" type: - $ref: "#/components/schemas/LLMObsProjectType" + $ref: "#/components/schemas/LLMObsRecordType" required: - type - attributes type: object - LLMObsProjectUpdateRequest: - description: Request to partially update an Agent Observability project. + LLMObsDatasetRecordsListResponse: + description: Response containing a paginated list of Agent Observability dataset records. properties: data: - $ref: "#/components/schemas/LLMObsProjectUpdateDataRequest" + description: List of dataset records. + items: + $ref: "#/components/schemas/LLMObsDatasetRecordDataResponse" + type: array + meta: + $ref: "#/components/schemas/LLMObsCursorMeta" required: - data type: object - LLMObsProjectsResponse: - description: Response containing a list of Agent Observability projects. + LLMObsDatasetRecordsMutationData: + description: Response containing records after a create or update operation. + properties: + records: + description: List of affected dataset records. + items: + $ref: "#/components/schemas/LLMObsDatasetRecordDataResponse" + type: array + required: + - records + type: object + LLMObsDatasetRecordsMutationResponse: + description: Response containing records after a create or update operation. properties: data: - description: List of projects. + description: List of affected dataset records. items: - $ref: "#/components/schemas/LLMObsProjectDataResponse" + $ref: "#/components/schemas/LLMObsDatasetRecordsMutationData" type: array - meta: - $ref: "#/components/schemas/LLMObsCursorMeta" required: - data type: object - LLMObsPromptAuthoringChatTemplate: - description: A chat prompt containing messages, references to specific versions of other prompts, or both. - items: - $ref: "#/components/schemas/LLMObsPromptAuthoringItem" - minItems: 1 - type: array - LLMObsPromptAuthoringItem: - description: >- - A chat message or a reference to a specific version of another prompt. A chat message must not contain an `include` field; the API rejects items that combine both forms. - oneOf: - - $ref: "#/components/schemas/LLMObsPromptChatMessage" - - $ref: "#/components/schemas/LLMObsPromptIncludeItem" - LLMObsPromptAuthoringMessagesTemplate: - description: A chat prompt whose authored items are stored under `messages`. + LLMObsDatasetRecordsRequest: + description: Request to append records to an Agent Observability dataset. properties: - messages: - $ref: "#/components/schemas/LLMObsPromptAuthoringChatTemplate" + data: + $ref: "#/components/schemas/LLMObsDatasetRecordsDataRequest" required: - - messages + - data type: object - LLMObsPromptChatMessage: - description: A single chat message in a prompt template. + LLMObsDatasetRecordsUpdateDataAttributesRequest: + description: Attributes for updating records in an Agent Observability dataset. properties: - content: - description: Content of the message. - example: "You are a helpful customer support assistant for {{company_name}}." - type: string - role: - description: Role of the message (for example `system`, `user`, or `assistant`). - example: "system" - type: string + records: + description: List of records to update. + items: + $ref: "#/components/schemas/LLMObsDatasetRecordUpdateItem" + type: array required: - - role - - content - type: object - LLMObsPromptChatTemplate: - description: >- - A chat prompt template containing messages and optional named message placeholders. - - **Preview:** Message placeholders are available in Preview. To request access, contact [Datadog Support](https://www.datadoghq.com/support/) or your Customer Success Manager. - items: - $ref: "#/components/schemas/LLMObsPromptChatTemplateItem" - minItems: 1 - type: array - x-generate-alias-as-model: true - LLMObsPromptChatTemplateItem: - description: A chat message or a named message placeholder in a prompt template. - oneOf: - - $ref: "#/components/schemas/LLMObsPromptChatMessage" - - $ref: "#/components/schemas/LLMObsPromptMessagePlaceholder" - LLMObsPromptConfig: - additionalProperties: {} - description: >- - Versioned prompt configuration is in Preview. To request access, contact [Datadog Support](https://www.datadoghq.com/support/) or your Customer Success Manager. Customer-owned configuration delivered with a prompt version. Datadog stores and returns the object without interpolating it, validating provider-specific keys, or applying it to model calls. Do not include secrets. - example: - model: provider-model - response_format: - type: json_object - temperature: 0.2 + - records type: object - LLMObsPromptData: - description: Data object for an Agent Observability prompt. + LLMObsDatasetRecordsUpdateDataRequest: + description: Data object for updating records in an Agent Observability dataset. properties: attributes: - $ref: "#/components/schemas/LLMObsPromptDataAttributes" - id: - description: Unique identifier of the prompt. - example: "4a1a28ff-8a25-5f0f-946f-f48264d772eb" - type: string + $ref: "#/components/schemas/LLMObsDatasetRecordsUpdateDataAttributesRequest" type: - $ref: "#/components/schemas/LLMObsPromptType" + $ref: "#/components/schemas/LLMObsRecordType" required: - - id - type - attributes type: object - LLMObsPromptDataAttributes: - description: >- - Attributes of an Agent Observability prompt registry entry. Prompt list and metadata-update responses omit complete template and configuration data. + LLMObsDatasetRecordsUpdateRequest: + description: Request to update records in an Agent Observability dataset. properties: - author: - description: UUID of the user who authored the prompt. - type: string - created_at: - description: Timestamp when the prompt was created. - format: date-time - type: string - created_from: - description: >- - Source that created the prompt, such as `ui-registry`, `sdk-registry`, or `sdk-instrumentation`. - example: "sdk-registry" + data: + $ref: "#/components/schemas/LLMObsDatasetRecordsUpdateDataRequest" + required: + - data + type: object + LLMObsDatasetRecordsUploadFile: + description: Multipart payload for uploading dataset records from a file. + properties: + file: + description: The records file to upload. Currently only CSV is supported. The file must include an `input` column. Optional columns include `id`, `expected_output`, `metadata`, and `tags`. + format: binary type: string - datasets: - description: Datasets observed in runs associated with this prompt. - items: - $ref: "#/components/schemas/LLMObsPromptDataset" - type: array - description: - description: Description of the prompt. - type: string - extracted_from: - description: Source prompt from which this prompt was extracted, when applicable. - type: string - in_registry: - description: Whether the prompt is a registry entry (as opposed to a code-discovered prompt). - example: true - type: boolean - last_seen_at: - description: Timestamp of the most recent observed run of this prompt. - format: date-time - type: string - last_version_created_at: - description: Timestamp when the most recent version of the prompt was created. - format: date-time - type: string - ml_app: - description: The ML application this prompt is associated with. - type: string - ml_apps: - description: ML applications observed running this prompt. - items: - type: string - type: array - num_versions: - description: Number of versions of the prompt. - example: 2 - format: int64 - type: integer - prompt_id: - description: Customer-provided identifier of the prompt. - example: "customer-support-assistant" - type: string - source: - $ref: "#/components/schemas/LLMObsPromptResponseSource" - tags: - description: Tags observed on runs of this prompt. - items: - type: string - type: array - title: - description: Title of the prompt. - type: string - required: - - prompt_id - - source - - num_versions - - in_registry - - created_from type: object - LLMObsPromptDataset: - description: A dataset observed in runs associated with a prompt or prompt version. + LLMObsDatasetRequest: + description: Request to create an Agent Observability dataset. properties: - id: - description: Unique identifier of the dataset. - example: "" - type: string - name: - description: Name of the dataset. - type: string + data: + $ref: "#/components/schemas/LLMObsDatasetDataRequest" required: - - id + - data type: object - LLMObsPromptInclude: - additionalProperties: false - description: >- - Includes messages from a specific version of another prompt. Omitting `items` includes every message from that version in its original order. When `items` is present, messages are included in the specified order, including repetitions. + LLMObsDatasetResponse: + description: Response containing a single Agent Observability dataset. properties: - items: - description: >- - Zero-based indexes of messages from the included prompt. For example, `[2, 0, 0]` includes the third message, followed by the first message twice. Omit this field to include all messages in their original order. - items: - format: int64 - maximum: 2147483647 - minimum: 0 - type: integer - minItems: 1 - type: array - prompt_id: - description: Customer-provided identifier of the included prompt. - example: "response-policy" - minLength: 1 - type: string - version: - description: Positive sequential version number of the included prompt. - example: 3 - format: int64 - maximum: 2147483647 - minimum: 1 - type: integer + data: + $ref: "#/components/schemas/LLMObsDatasetDataResponse" required: - - prompt_id - - version + - data type: object - LLMObsPromptIncludeItem: - additionalProperties: false - description: Includes all or selected messages from a specific version of another prompt. + LLMObsDatasetRestoreVersionDataAttributesRequest: + description: Attributes for restoring an Agent Observability dataset to a previous version. properties: - include: - $ref: "#/components/schemas/LLMObsPromptInclude" + dataset_version: + description: Version number of the dataset to restore. Must be between 0 and the current version of the dataset, inclusive. + example: 1 + format: int32 + maximum: 2147483647 + type: integer required: - - include + - dataset_version type: object - LLMObsPromptMessagePlaceholder: - additionalProperties: false - description: >- - A named placeholder that inserts a list of messages when a compatible SDK formats the prompt. - - **Preview:** Message placeholders are available in Preview. To request access, contact [Datadog Support](https://www.datadoghq.com/support/) or your Customer Success Manager. + LLMObsDatasetRestoreVersionDataRequest: + description: Data object for restoring an Agent Observability dataset to a previous version. properties: - name: - description: Name used to supply the message list when formatting the prompt. - example: "history" - minLength: 1 - pattern: "^[A-Za-z0-9_]+$" + attributes: + $ref: "#/components/schemas/LLMObsDatasetRestoreVersionDataAttributesRequest" + id: + description: Unique identifier of the dataset to restore. + example: "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d" type: string type: - $ref: "#/components/schemas/LLMObsPromptMessagePlaceholderType" + $ref: "#/components/schemas/LLMObsDatasetType" required: + - id - type - - name + - attributes type: object - LLMObsPromptMessagePlaceholderType: - description: Type of chat-template item. - enum: - - placeholder - example: "placeholder" - type: string - x-enum-varnames: - - PLACEHOLDER - LLMObsPromptResponse: - description: Response containing a single Agent Observability prompt. - example: - data: - attributes: - author: "3b12f1df-14fd-4e12-bd6f-4a2f5c8b3d1e" - created_at: "2025-01-15T10:00:00Z" - created_from: "sdk-registry" - description: "Answers customer questions using the company knowledge base." - in_registry: true - last_version_created_at: "2025-01-15T10:00:00Z" - num_versions: 1 - prompt_id: "customer-support-assistant" - source: registry - title: "Customer Support Assistant" - id: "4a1a28ff-8a25-5f0f-946f-f48264d772eb" - type: prompt-templates + LLMObsDatasetRestoreVersionRequest: + description: Request to restore an Agent Observability dataset to a previous version. properties: data: - $ref: "#/components/schemas/LLMObsPromptData" + $ref: "#/components/schemas/LLMObsDatasetRestoreVersionDataRequest" required: - data type: object - LLMObsPromptResponseSource: - description: Whether the prompt was created from the registry or discovered from observed LLM calls. + LLMObsDatasetType: + description: Resource type of an Agent Observability dataset. enum: - - registry - - code - example: registry + - datasets + example: datasets type: string x-enum-varnames: - - REGISTRY - - CODE - LLMObsPromptSDKData: - description: Data object for a flattened Agent Observability prompt version returned for SDK consumption. + - DATASETS + LLMObsDatasetUpdateDataAttributesRequest: + description: Attributes for updating an Agent Observability dataset. properties: - attributes: - $ref: "#/components/schemas/LLMObsPromptSDKDataAttributes" - id: - description: Unique identifier of the prompt. - example: "4a1a28ff-8a25-5f0f-946f-f48264d772eb" + description: + description: Updated description of the dataset. + type: string + metadata: + additionalProperties: {} + description: Updated metadata associated with the dataset. + type: object + name: + description: Updated name of the dataset. type: string + type: object + LLMObsDatasetUpdateDataRequest: + description: Data object for updating an Agent Observability dataset. + properties: + attributes: + $ref: "#/components/schemas/LLMObsDatasetUpdateDataAttributesRequest" type: - $ref: "#/components/schemas/LLMObsPromptType" + $ref: "#/components/schemas/LLMObsDatasetType" required: - - id - type - attributes type: object - LLMObsPromptSDKDataAttributes: - description: >- - Attributes of a flattened prompt version returned for SDK consumption. Exactly one of `template` and `chat_template` is returned. Empty `config` is omitted when configuration authoring is disabled for the organization. Non-empty saved configuration is always returned. - properties: - chat_template: - description: >- - Chat template for this prompt version, as a list of messages and named message placeholders. Omitted for text templates. - - **Preview:** Message placeholders are available in Preview. To request access, contact [Datadog Support](https://www.datadoghq.com/support/) or your Customer Success Manager. - items: - $ref: "#/components/schemas/LLMObsPromptChatTemplateItem" - type: array - config: - $ref: "#/components/schemas/LLMObsPromptConfig" - labels: - deprecated: true - description: Labels attached to the selected version. - items: - type: string - type: array - prompt_id: - description: Customer-provided identifier of the prompt. - example: "customer-support-assistant" - type: string - prompt_version_uuid: - description: Unique identifier of this prompt version. - example: "d83ab666-61cc-5545-a83b-2424bb85467b" - type: string - template: - description: Text template for this prompt version. Omitted for chat templates. - type: string - version: - description: >- - Version identifier for this prompt version. This is the sequential version number unless a user-supplied version identifier was set, in which case that identifier is used instead. - example: "2" - type: string - type: object - LLMObsPromptSDKResponse: - description: Response containing a flattened Agent Observability prompt version for SDK consumption. - example: - data: - attributes: - chat_template: - - content: "You are a helpful customer support assistant for {{company_name}}." - role: "system" - - name: "history" - type: "placeholder" - - content: "Help {{customer_name}} with this question: {{question}}" - role: "user" - config: - model: provider-model - temperature: 0.2 - prompt_id: "customer-support-assistant" - prompt_version_uuid: "d83ab666-61cc-5545-a83b-2424bb85467b" - version: "2" - id: "4a1a28ff-8a25-5f0f-946f-f48264d772eb" - type: prompt-templates + LLMObsDatasetUpdateRequest: + description: Request to partially update an Agent Observability dataset. properties: data: - $ref: "#/components/schemas/LLMObsPromptSDKData" + $ref: "#/components/schemas/LLMObsDatasetUpdateDataRequest" required: - data type: object - LLMObsPromptTemplate: - description: >- - A text template, a list of chat messages and named message placeholders, or an authored chat object. Text can include an exact prompt version with `{{>prompt-id version=N}}`; other text, including `{{>...}}` sequences without a version, remains literal. Use an authored chat object when including prompts as chat messages. - - **Preview**: Prompt composition is available in Preview. To request access, contact [Datadog Support](https://docs.datadoghq.com/help/) or your Customer Success Manager. - - Without access, inline references remain literal text and structured includes are unsupported. Previously compiled prompt versions remain available for execution. - - **Preview:** Message placeholders are available in Preview. To request access, contact [Datadog Support](https://www.datadoghq.com/support/) or your Customer Success Manager. - example: "You are a helpful assistant for {{audience}}." - oneOf: - - $ref: "#/components/schemas/LLMObsPromptTextTemplate" - - $ref: "#/components/schemas/LLMObsPromptChatTemplate" - - $ref: "#/components/schemas/LLMObsPromptAuthoringMessagesTemplate" - LLMObsPromptTextTemplate: - description: A text prompt template. - minLength: 1 - pattern: ".*\\S.*" - type: string - LLMObsPromptType: - description: Resource type of an Agent Observability prompt. - enum: - - prompt-templates - example: prompt-templates - type: string - x-enum-varnames: - - PROMPT_TEMPLATES - LLMObsPromptVersionData: - description: Data object for a specific version of an Agent Observability prompt. + LLMObsDatasetVersionData: + description: Data object for an Agent Observability dataset version. properties: attributes: - $ref: "#/components/schemas/LLMObsPromptVersionDataAttributes" + $ref: "#/components/schemas/LLMObsDatasetVersionDataAttributes" id: - description: Unique identifier of the prompt version. - example: "d83ab666-61cc-5545-a83b-2424bb85467b" + description: Unique identifier of the dataset version. + example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" type: string type: - $ref: "#/components/schemas/LLMObsPromptVersionType" + $ref: "#/components/schemas/LLMObsDatasetVersionType" required: - id - type - attributes type: object - LLMObsPromptVersionDataAttributes: - description: >- - Attributes of a specific version of an Agent Observability prompt. For a composed version, `authoring_template` contains its pinned include-bearing source; ordinary versions omit that attribute. Empty `config` is omitted when configuration authoring is disabled for the organization. Non-empty saved configuration is always returned. + LLMObsDatasetVersionDataAttributes: + description: Attributes of an Agent Observability dataset version. properties: - author: - description: UUID of the user who authored this version. - type: string - authoring_template: - $ref: "#/components/schemas/LLMObsPromptTemplate" - config: - $ref: "#/components/schemas/LLMObsPromptConfig" - created_at: - description: Timestamp stored on this prompt version. - format: date-time - type: string - datasets: - description: Datasets observed in runs associated with this prompt version. - items: - $ref: "#/components/schemas/LLMObsPromptDataset" - type: array - description: - description: Description of this version. + dataset_id: + description: Unique identifier of the dataset this version belongs to. + example: "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d" type: string - labels: - deprecated: true - description: Labels attached to this version (for example `development`, `staging`, `production`). - items: - type: string - type: array - last_seen_at: - description: Timestamp of the most recent observed run of this prompt version. + last_used: + description: Timestamp when this dataset version was last referenced. Null if the version has never been used. + example: "2024-01-15T10:30:00Z" format: date-time + nullable: true type: string - ml_app: - description: The ML application this prompt is associated with. - type: string - ml_apps: - description: ML applications observed running this prompt version. + version_number: + description: Sequential version number for this dataset version. + example: 1 + format: int32 + maximum: 2147483647 + type: integer + required: + - dataset_id + - version_number + - last_used + type: object + LLMObsDatasetVersionType: + description: Resource type of an Agent Observability dataset version. + enum: + - dataset_version + example: dataset_version + type: string + x-enum-varnames: + - DATASET_VERSION + LLMObsDatasetVersionsResponse: + description: Response containing the active versions of an Agent Observability dataset. + properties: + data: + $ref: "#/components/schemas/LLMObsDatasetVersionsResponseData" + required: + - data + type: object + LLMObsDatasetVersionsResponseData: + description: List of dataset versions. + items: + $ref: "#/components/schemas/LLMObsDatasetVersionData" + type: array + LLMObsDatasetsResponse: + description: Response containing a list of Agent Observability datasets. + properties: + data: + description: List of datasets. items: - type: string + $ref: "#/components/schemas/LLMObsDatasetDataResponse" type: array - prompt_id: - description: Customer-provided identifier of the parent prompt. - example: "customer-support-assistant" + meta: + $ref: "#/components/schemas/LLMObsCursorMeta" + required: + - data + type: object + LLMObsDeleteAnnotationError: + description: A partial error for a single annotation that could not be deleted. + properties: + annotation_id: + description: ID of the annotation that could not be deleted. + example: "00000000-0000-0000-0000-000000000000" type: string - prompt_uuid: - description: Unique identifier of the parent prompt. - example: "4a1a28ff-8a25-5f0f-946f-f48264d772eb" + error: + description: Error message. + example: "annotation not found" type: string - tags: - description: Tags observed on runs of this prompt version. + required: + - annotation_id + - error + type: object + LLMObsDeleteAnnotationQueueInteractionsDataAttributesRequest: + description: Attributes for deleting interactions from an annotation queue. + properties: + interaction_ids: + description: List of interaction IDs to delete. Must contain at least one item. + example: + - "00000000-0000-0000-0000-000000000000" + - "00000000-0000-0000-0000-000000000001" items: + description: An interaction ID to delete. type: string + minItems: 1 type: array - template: - $ref: "#/components/schemas/LLMObsPromptTemplate" - user_version: - description: User-supplied identifier for this version. - type: string - version: - description: Sequential version number. - example: 1 - format: int64 - minimum: 1 - type: integer - version_created_at: - description: Timestamp when this version was created. - format: date-time - type: string required: - - prompt_uuid - - prompt_id - - template - - version + - interaction_ids type: object - LLMObsPromptVersionLabel: - description: A label attached to an Agent Observability prompt version. - enum: - - production - - development - type: string - x-enum-varnames: - - PRODUCTION - - DEVELOPMENT - LLMObsPromptVersionListData: - description: Data object for a prompt version returned in a list. + LLMObsDeleteAnnotationQueueInteractionsDataRequest: + description: Data object for deleting interactions from an annotation queue. properties: attributes: - $ref: "#/components/schemas/LLMObsPromptVersionListDataAttributes" - id: - description: Unique identifier of the prompt version. - example: "d83ab666-61cc-5545-a83b-2424bb85467b" - type: string + $ref: "#/components/schemas/LLMObsDeleteAnnotationQueueInteractionsDataAttributesRequest" type: - $ref: "#/components/schemas/LLMObsPromptVersionType" + $ref: "#/components/schemas/LLMObsAnnotationQueueInteractionsType" required: - - id - type - attributes type: object - LLMObsPromptVersionListDataAttributes: - description: Attributes of a prompt version returned in a list, excluding its template. + LLMObsDeleteAnnotationQueueInteractionsRequest: + description: Request to delete interactions from an Agent Observability annotation queue. properties: - author: - description: UUID of the user who authored this version. - type: string - created_at: - description: Timestamp stored on this prompt version. - format: date-time - type: string - datasets: - description: Datasets observed in runs associated with this prompt version. - items: - $ref: "#/components/schemas/LLMObsPromptDataset" - type: array - description: - description: Description of this version. - type: string - labels: - deprecated: true - description: Labels attached to this version (for example `development`, `staging`, `production`). + data: + $ref: "#/components/schemas/LLMObsDeleteAnnotationQueueInteractionsDataRequest" + required: + - data + type: object + LLMObsDeleteAnnotationsDataAttributesRequest: + description: Attributes for deleting annotations. + properties: + annotation_ids: + description: IDs of the annotations to delete. Must contain at least one item. + example: + - "00000000-0000-0000-0000-000000000000" + - "00000000-0000-0000-0000-000000000001" items: type: string + minItems: 1 type: array - last_seen_at: - description: Timestamp of the most recent observed run of this prompt version. - format: date-time - type: string - ml_app: - description: The ML application this prompt is associated with. - type: string - ml_apps: - description: ML applications observed running this prompt version. + required: + - annotation_ids + type: object + LLMObsDeleteAnnotationsDataAttributesResponse: + description: Attributes of the annotation deletion response. + properties: + annotation_ids: + description: IDs of the successfully deleted annotations. + example: + - "00000000-0000-0000-0000-000000000000" items: type: string type: array - prompt_id: - description: Customer-provided identifier of the parent prompt. - example: "customer-support-assistant" - type: string - prompt_uuid: - description: Unique identifier of the parent prompt. - example: "4a1a28ff-8a25-5f0f-946f-f48264d772eb" - type: string - tags: - description: Tags observed on runs of this prompt version. + errors: + description: Errors for annotations that could not be deleted. items: - type: string + $ref: "#/components/schemas/LLMObsDeleteAnnotationError" type: array - user_version: - description: User-supplied identifier for this version. - type: string - version: - description: Sequential version number. - example: 1 - format: int64 - minimum: 1 - type: integer - version_created_at: - description: Timestamp when this version was created. - format: date-time + required: + - annotation_ids + - errors + type: object + LLMObsDeleteAnnotationsDataRequest: + description: Data object for deleting annotations. + properties: + attributes: + $ref: "#/components/schemas/LLMObsDeleteAnnotationsDataAttributesRequest" + type: + $ref: "#/components/schemas/LLMObsAnnotationsType" + required: + - type + - attributes + type: object + LLMObsDeleteAnnotationsDataResponse: + description: Data object for the annotation deletion response. + properties: + attributes: + $ref: "#/components/schemas/LLMObsDeleteAnnotationsDataAttributesResponse" + id: + description: The annotation queue ID. + example: "00000000-0000-0000-0000-000000000001" type: string + type: + $ref: "#/components/schemas/LLMObsAnnotationsType" required: - - prompt_uuid - - prompt_id - - version + - id + - type + - attributes type: object - LLMObsPromptVersionResponse: - description: Response containing a specific version of an Agent Observability prompt. - example: - data: - attributes: - author: "3b12f1df-14fd-4e12-bd6f-4a2f5c8b3d1e" - config: {} - created_at: "2025-02-01T14:30:00Z" - description: "Give concise answers and cite relevant help-center articles." - prompt_id: "customer-support-assistant" - prompt_uuid: "4a1a28ff-8a25-5f0f-946f-f48264d772eb" - template: - - content: "You are a helpful customer support assistant for {{company_name}}." - role: "system" - - content: "Help {{customer_name}} with this question: {{question}}" - role: "user" - version: 2 - version_created_at: "2025-02-01T14:30:00Z" - id: "d83ab666-61cc-5545-a83b-2424bb85467b" - type: prompt-template-versions + LLMObsDeleteAnnotationsRequest: + description: Request to delete annotations from an annotation queue. properties: data: - $ref: "#/components/schemas/LLMObsPromptVersionData" + $ref: "#/components/schemas/LLMObsDeleteAnnotationsDataRequest" required: - data type: object - LLMObsPromptVersionType: - description: Resource type of an Agent Observability prompt version. - enum: - - prompt-template-versions - example: prompt-template-versions - type: string - x-enum-varnames: - - PROMPT_TEMPLATE_VERSIONS - LLMObsPromptVersionsResponse: - description: Response containing the versions of an Agent Observability prompt. - example: - data: - - attributes: - author: "3b12f1df-14fd-4e12-bd6f-4a2f5c8b3d1e" - created_at: "2025-02-01T14:30:00Z" - description: "Give concise answers and cite relevant help-center articles." - prompt_id: "customer-support-assistant" - prompt_uuid: "4a1a28ff-8a25-5f0f-946f-f48264d772eb" - version: 2 - version_created_at: "2025-02-01T14:30:00Z" - id: "d83ab666-61cc-5545-a83b-2424bb85467b" - type: prompt-template-versions - - attributes: - author: "3b12f1df-14fd-4e12-bd6f-4a2f5c8b3d1e" - created_at: "2025-01-15T10:00:00Z" - description: "Initial customer support prompt." - prompt_id: "customer-support-assistant" - prompt_uuid: "4a1a28ff-8a25-5f0f-946f-f48264d772eb" - version: 1 - version_created_at: "2025-01-15T10:00:00Z" - id: "20e5280b-c75d-5699-8a70-a2773a751428" - type: prompt-template-versions + LLMObsDeleteAnnotationsResponse: + description: |- + Response for a batch annotation deletion. Partial errors are listed in the + response if any annotations could not be deleted. properties: data: - description: Prompt versions ordered from newest to oldest. - items: - $ref: "#/components/schemas/LLMObsPromptVersionListData" - type: array + $ref: "#/components/schemas/LLMObsDeleteAnnotationsDataResponse" required: - data type: object - LLMObsPromptsResponse: - description: Response containing a list of Agent Observability prompts. - example: - data: - - attributes: - author: "3b12f1df-14fd-4e12-bd6f-4a2f5c8b3d1e" - created_at: "2025-01-15T10:00:00Z" - created_from: "sdk-registry" - description: "Answers customer questions using the company knowledge base." - in_registry: true - last_version_created_at: "2025-02-01T14:30:00Z" - num_versions: 2 - prompt_id: "customer-support-assistant" - source: registry - title: "Customer Support Assistant" - id: "4a1a28ff-8a25-5f0f-946f-f48264d772eb" - type: prompt-templates + LLMObsDeleteDatasetRecordsDataAttributesRequest: + description: Attributes for deleting records from an Agent Observability dataset. properties: - data: - description: List of Agent Observability prompts. + record_ids: + description: List of record IDs to delete. + example: + - "rec-7c3f5a1b-9e2d-4f8a-b1c6-3d7e9f0a2b4c" items: - $ref: "#/components/schemas/LLMObsPromptData" + description: A record ID to delete. + type: string type: array required: - - data + - record_ids type: object - LLMObsRecordType: - description: Resource type of Agent Observability dataset records. - enum: - - records - example: records - type: string - x-enum-varnames: - - RECORDS - LLMObsSearchSpansRequest: - description: Request body for searching Agent Observability spans. + LLMObsDeleteDatasetRecordsDataRequest: + description: Data object for deleting records from an Agent Observability dataset. + properties: + attributes: + $ref: "#/components/schemas/LLMObsDeleteDatasetRecordsDataAttributesRequest" + type: + $ref: "#/components/schemas/LLMObsRecordType" + required: + - type + - attributes + type: object + LLMObsDeleteDatasetRecordsRequest: + description: Request to delete records from an Agent Observability dataset. properties: data: - $ref: "#/components/schemas/LLMObsSearchSpansRequestData" + $ref: "#/components/schemas/LLMObsDeleteDatasetRecordsDataRequest" required: - data type: object - LLMObsSearchSpansRequestAttributes: - description: Attributes of an Agent Observability spans search request. + LLMObsDeleteDatasetsDataAttributesRequest: + description: Attributes for deleting Agent Observability datasets. properties: - filter: - $ref: "#/components/schemas/LLMObsSpanFilter" - options: - $ref: "#/components/schemas/LLMObsSpanSearchOptions" - page: - $ref: "#/components/schemas/LLMObsSpanPageQuery" - sort: - description: Sort order for the results. Use `-` prefix for descending order. - example: "-start_ns" - type: string + dataset_ids: + description: List of dataset IDs to delete. + example: + - "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d" + items: + description: A dataset ID to delete. + type: string + type: array + required: + - dataset_ids type: object - LLMObsSearchSpansRequestData: - description: Data object for an Agent Observability spans search request. + LLMObsDeleteDatasetsDataRequest: + description: Data object for deleting Agent Observability datasets. properties: attributes: - $ref: "#/components/schemas/LLMObsSearchSpansRequestAttributes" + $ref: "#/components/schemas/LLMObsDeleteDatasetsDataAttributesRequest" type: - $ref: "#/components/schemas/LLMObsSearchSpansRequestType" + $ref: "#/components/schemas/LLMObsDatasetType" required: - type - attributes type: object - LLMObsSearchSpansRequestType: - description: Resource type for an Agent Observability spans search request. - enum: - - spans - example: spans - type: string - x-enum-varnames: - - SPANS - LLMObsSpanAttributes: - description: Attributes of an Agent Observability span. + LLMObsDeleteDatasetsRequest: + description: Request to delete one or more Agent Observability datasets. properties: - duration: - description: Duration of the span in nanoseconds. - example: 1500000000.0 - format: double - type: number - evaluation: - additionalProperties: - $ref: "#/components/schemas/LLMObsSpanEvaluationMetric" - description: Evaluation metrics keyed by evaluator name. - type: object - input: - $ref: "#/components/schemas/LLMObsSpanIO" - intent: - description: Detected intent of the span. - type: string - metadata: - additionalProperties: {} - description: Arbitrary metadata associated with the span. - type: object - metrics: - additionalProperties: - format: double - type: number - description: Numeric metrics associated with the span (e.g., token counts). - type: object - ml_app: - description: Name of the ML application this span belongs to. - example: "my-llm-app" - type: string - model_name: - description: Name of the model used in this span. - example: "gpt-4o" - type: string - model_provider: - description: Provider of the model used in this span. - example: "openai" - type: string - name: - description: Name of the span. - example: "llm_call" - type: string - output: - $ref: "#/components/schemas/LLMObsSpanIO" - parent_id: - description: Identifier of the parent span, if any. - type: string - span_id: - description: Unique identifier of the span. - example: "abc123def456" - type: string - span_kind: - description: Kind of span (e.g., llm, agent, tool, task, workflow). - example: "llm" - type: string - start_ns: - description: Start time of the span in nanoseconds since Unix epoch. - example: 1705314600000000000 - format: int64 - type: integer - status: - description: Status of the span (e.g., ok, error). - example: "ok" - type: string - tags: - description: Tags associated with the span. + data: + $ref: "#/components/schemas/LLMObsDeleteDatasetsDataRequest" + required: + - data + type: object + LLMObsDeleteExperimentsDataAttributesRequest: + description: Attributes for deleting Agent Observability experiments. + properties: + experiment_ids: + description: List of experiment IDs to delete. + example: + - "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" items: + description: An experiment ID to delete. type: string type: array - tool_definitions: - description: Tool definitions available to the span. - items: - $ref: "#/components/schemas/LLMObsSpanToolDefinition" - type: array - trace_id: - description: Trace identifier this span belongs to. - example: "trace-9a8b7c6d5e4f" - type: string required: - - span_id - - trace_id - - name - - status - - start_ns - - duration - - ml_app - - span_kind + - experiment_ids type: object - LLMObsSpanData: - description: A single Agent Observability span. + LLMObsDeleteExperimentsDataRequest: + description: Data object for deleting Agent Observability experiments. properties: attributes: - $ref: "#/components/schemas/LLMObsSpanAttributes" - id: - description: Unique identifier of the span. - example: "abc123def456" - type: string + $ref: "#/components/schemas/LLMObsDeleteExperimentsDataAttributesRequest" type: - $ref: "#/components/schemas/LLMObsSpanType" + $ref: "#/components/schemas/LLMObsExperimentType" required: - - id - type - attributes type: object - LLMObsSpanEvaluationMetric: - description: An evaluation metric associated with an Agent Observability span. + LLMObsDeleteExperimentsRequest: + description: Request to delete one or more Agent Observability experiments. properties: - assessment: - description: Assessment result (e.g., pass or fail). - example: pass - type: string - eval_metric_type: - description: Type of the evaluation metric (e.g., score, categorical, boolean). - example: score - type: string - reasoning: - description: Human-readable reasoning for the evaluation result. - type: string - status: - description: Status of the evaluation execution. - type: string - tags: - description: Tags associated with the evaluation metric. + data: + $ref: "#/components/schemas/LLMObsDeleteExperimentsDataRequest" + required: + - data + type: object + LLMObsDeleteProjectsDataAttributesRequest: + description: Attributes for deleting Agent Observability projects. + properties: + project_ids: + description: List of project IDs to delete. + example: + - "a33671aa-24fd-4dcd-9b33-a8ec7dde7751" items: + description: A project ID to delete. type: string type: array - value: - description: Value of the evaluation result. + required: + - project_ids type: object - LLMObsSpanFilter: - description: Filter criteria for an Agent Observability span search. + LLMObsDeleteProjectsDataRequest: + description: Data object for deleting Agent Observability projects. properties: - from: - description: Start of the time range. Accepts ISO 8601 or relative format (e.g., `now-15m`). Defaults to `now-15m`. - example: "now-900s" - type: string - ml_app: - description: Filter by ML application name. - example: "my-llm-app" - type: string - query: - description: >- - Search query using Agent Observability query syntax. Supports attribute filters using the field:value syntax (e.g. session_id, trace_id, ml_app, meta.span.kind). When provided, structured field filters (`span_id`, `trace_id`, etc.) are ignored. - example: "@session_id:abc123def456" - type: string - span_id: - description: Filter by exact span ID. - example: "abc123def456" - type: string - span_kind: - description: Filter by span kind (e.g., llm, agent, tool, task, workflow). - example: "llm" - type: string - span_name: - description: Filter by span name. - example: "llm_call" - type: string - tags: - additionalProperties: - type: string - description: Filter by tag key-value pairs. - type: object - to: - description: End of the time range. Accepts ISO 8601 or relative format (e.g., `now`). Defaults to `now`. - example: "now" - type: string - trace_id: - description: Filter by exact trace ID. - example: "trace-9a8b7c6d5e4f" - type: string + attributes: + $ref: "#/components/schemas/LLMObsDeleteProjectsDataAttributesRequest" + type: + $ref: "#/components/schemas/LLMObsProjectType" + required: + - type + - attributes type: object - LLMObsSpanIO: - description: Input or output content of an Agent Observability span. + LLMObsDeleteProjectsRequest: + description: Request to delete one or more Agent Observability projects. properties: - messages: - description: List of messages in the input or output. - items: - $ref: "#/components/schemas/LLMObsSpanMessage" - type: array - value: - description: Plain-text value of the input or output. - type: string + data: + $ref: "#/components/schemas/LLMObsDeleteProjectsDataRequest" + required: + - data type: object - LLMObsSpanMessage: - description: A single message in a span input or output. + LLMObsDeletedPromptData: + description: Data object confirming that an Agent Observability prompt was deleted. properties: - content: - description: Text content of the message. - type: string + attributes: + $ref: "#/components/schemas/LLMObsDeletedPromptDataAttributes" id: - description: Unique identifier of the message. - type: string - role: - description: Role of the message sender (e.g., user, assistant, system). + description: Unique identifier of the deleted prompt. + example: "4a1a28ff-8a25-5f0f-946f-f48264d772eb" type: string - tool_calls: - description: Tool calls made in this message. - items: - $ref: "#/components/schemas/LLMObsSpanToolCall" - type: array - tool_results: - description: Tool results returned in this message. - items: - $ref: "#/components/schemas/LLMObsSpanToolResult" - type: array + type: + $ref: "#/components/schemas/LLMObsPromptType" + required: + - id + - type + - attributes type: object - LLMObsSpanPageQuery: - description: Pagination settings for a span search request. + LLMObsDeletedPromptDataAttributes: + description: Attributes confirming that an Agent Observability prompt was deleted. properties: - cursor: - description: Cursor from the previous response to retrieve the next page. - example: "eyJzdGFydCI6MTAwfQ==" + deleted_at: + description: Timestamp when the prompt was deleted. + example: "2025-02-10T09:15:00Z" + format: date-time type: string - limit: - description: Maximum number of spans to return. Defaults to `10`. - example: 10 - format: int64 - type: integer + prompt_id: + description: Customer-provided identifier of the deleted prompt. + example: "customer-support-assistant" + type: string + required: + - prompt_id + - deleted_at type: object - LLMObsSpanSearchOptions: - description: Additional options for a span search request. - properties: - include_attachments: - description: Whether to include attachment data in the response. Defaults to `true`. - example: true - type: boolean - time_offset: - description: Offset in seconds applied to both `from` and `to` timestamps. - example: 0 - format: int64 - type: integer - type: object - LLMObsSpanToolCall: - description: A tool call made during a span. - properties: - arguments: - additionalProperties: {} - description: Arguments passed to the tool. - type: object - name: - description: Name of the tool called. - type: string - tool_id: - description: Identifier of the tool call. - type: string - type: - description: Type of the tool call. - type: string - type: object - LLMObsSpanToolDefinition: - description: A tool definition available to an LLM span. - properties: - description: - description: Description of what the tool does. - type: string - name: - description: Name of the tool. - type: string - schema: - additionalProperties: {} - description: JSON schema describing the tool's input parameters. - type: object - version: - description: Version of the tool definition. - type: string - type: object - LLMObsSpanToolResult: - description: A result returned from a tool call during a span. - properties: - name: - description: Name of the tool that produced this result. - type: string - result: - description: Result value returned by the tool. - type: string - tool_id: - description: Identifier of the corresponding tool call. - type: string - type: - description: Type of the tool result. - type: string - type: object - LLMObsSpanType: - description: Resource type for an Agent Observability span. - enum: - - span - example: span - type: string - x-enum-varnames: - - SPAN - LLMObsSpansResponse: - description: Response containing a list of Agent Observability spans. + LLMObsDeletedPromptResponse: + description: Response confirming that an Agent Observability prompt was deleted. + example: + data: + attributes: + deleted_at: "2025-02-10T09:15:00Z" + prompt_id: "customer-support-assistant" + id: "4a1a28ff-8a25-5f0f-946f-f48264d772eb" + type: prompt-templates properties: data: - description: List of spans matching the query. - items: - $ref: "#/components/schemas/LLMObsSpanData" - type: array - links: - $ref: "#/components/schemas/LLMObsSpansResponseLinks" - meta: - $ref: "#/components/schemas/LLMObsSpansResponseMeta" + $ref: "#/components/schemas/LLMObsDeletedPromptData" required: - data - - meta - type: object - LLMObsSpansResponseLinks: - description: Pagination links accompanying the spans response. - properties: - next: - description: URL to retrieve the next page of results. - example: "https://api.datadoghq.com/api/v2/llm-obs/v1/spans/events?page[cursor]=eyJzdGFydCI6MTAwfQ==" - type: string - type: object - LLMObsSpansResponseMeta: - description: Metadata accompanying the spans response. - properties: - elapsed: - description: Time elapsed for the query in milliseconds. - example: 132 - format: int64 - type: integer - page: - $ref: "#/components/schemas/LLMObsSpansResponsePage" - request_id: - description: Unique identifier for the request. - example: "req-abc123" - type: string - status: - description: Status of the query execution. - example: "done" - type: string - required: - - elapsed - - request_id - - status - - page - type: object - LLMObsSpansResponsePage: - description: Pagination cursor for the spans response. - properties: - after: - description: Cursor to retrieve the next page of results. Absent when there are no more results. - example: "eyJzdGFydCI6MTAwfQ==" - type: string type: object - LLMObsTraceAnnotatedInteractionItem: - description: A trace, experiment trace, or session interaction with its associated annotations. + LLMObsDisplayBlockAnnotatedInteractionItem: + description: A display_block interaction with its associated annotations. properties: annotations: description: List of annotations for this interaction. @@ -65770,9359 +68493,9571 @@ components: example: true type: boolean content_id: - description: Upstream entity identifier supplied by the caller. - example: "trace-abc-123" - type: string - created_at: - description: Timestamp when the interaction was added to the queue. - example: "2024-01-15T10:30:00Z" - format: date-time + description: Server-generated deterministic identifier derived from the block list. + example: "9a87f3e2b1d4c5a6f8b3e2d1c4a7b5f6e3d2a1c4b7e5f8a3d6c2e1b4a7d5f8c2" type: string + display_block: + $ref: "#/components/schemas/LLMObsContentBlocks" id: description: Unique identifier of the interaction. example: "interaction-456" type: string - modified_at: - description: Timestamp when the interaction was last updated. - example: "2024-01-15T10:30:00Z" - format: date-time - type: string type: - $ref: "#/components/schemas/LLMObsTraceInteractionType" + $ref: "#/components/schemas/LLMObsDisplayBlockInteractionType" required: - id - type - content_id - - created_at - - modified_at - can_annotate - annotations + - display_block type: object - LLMObsTraceInteractionItem: - description: An interaction that references an upstream trace, experiment trace, or session. + LLMObsDisplayBlockInteractionItem: + description: |- + An interaction whose rendered content is supplied directly as a list + of display blocks. The server generates `content_id` deterministically + from the block list. properties: - content_id: - description: Upstream entity identifier (trace, experiment trace, or session ID). - example: "trace-abc-123" - type: string + display_block: + $ref: "#/components/schemas/LLMObsContentBlocks" type: - $ref: "#/components/schemas/LLMObsTraceInteractionType" + $ref: "#/components/schemas/LLMObsDisplayBlockInteractionType" required: - type - - content_id + - display_block type: object - LLMObsTraceInteractionResponseItem: - description: A trace, experiment trace, or session interaction result. + LLMObsDisplayBlockInteractionResponseItem: + description: A display_block interaction result. properties: already_existed: description: Whether this interaction already existed in the queue. example: false type: boolean content_id: - description: Upstream entity identifier supplied by the caller. - example: "trace-abc-123" - type: string - created_at: - description: Timestamp when the interaction was added to the queue. - example: "2024-01-15T10:30:00Z" - format: date-time + description: Server-generated deterministic identifier derived from the block list. + example: "9a87f3e2b1d4c5a6f8b3e2d1c4a7b5f6e3d2a1c4b7e5f8a3d6c2e1b4a7d5f8c2" type: string + display_block: + $ref: "#/components/schemas/LLMObsContentBlocks" id: description: Unique identifier of the interaction. example: "00000000-0000-0000-0000-000000000000" type: string - modified_at: - description: Timestamp when the interaction was last updated. - example: "2024-01-15T10:30:00Z" - format: date-time - type: string type: - $ref: "#/components/schemas/LLMObsTraceInteractionType" + $ref: "#/components/schemas/LLMObsDisplayBlockInteractionType" required: - id - type - content_id - already_existed - - created_at - - modified_at + - display_block type: object - LLMObsTraceInteractionType: - description: Type of an upstream-entity interaction. + LLMObsDisplayBlockInteractionType: + description: Type discriminator for a `display_block` interaction. enum: - - trace - - experiment_trace - - session - example: trace + - display_block + example: display_block type: string x-enum-varnames: - - TRACE - - EXPERIMENT_TRACE - - SESSION - LLMObsUpdatePromptData: - description: Data object for updating an Agent Observability prompt. + - DISPLAY_BLOCK + LLMObsEventType: + description: Resource type for Agent Observability experiment events. + enum: + - events + example: events + type: string + x-enum-varnames: + - EVENTS + LLMObsExperimentDataAttributesRequest: + description: Attributes for creating an Agent Observability experiment. properties: - attributes: - $ref: "#/components/schemas/LLMObsUpdatePromptDataAttributes" - type: - $ref: "#/components/schemas/LLMObsPromptType" + config: + additionalProperties: {} + description: Configuration parameters for the experiment. + type: object + dataset_id: + description: Identifier of the dataset used in this experiment. + example: "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d" + type: string + dataset_version: + description: Version of the dataset to use. Defaults to the current version if not specified. + format: int64 + type: integer + description: + description: Description of the experiment. + type: string + ensure_unique: + description: Whether to ensure the experiment name is unique. Defaults to `true`. + type: boolean + metadata: + additionalProperties: {} + description: Arbitrary metadata associated with the experiment. + type: object + name: + description: Name of the experiment. + example: "My Experiment v1" + type: string + parent_experiment_id: + description: Identifier of the parent (baseline) experiment this experiment is run against. + example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" + type: string + project_id: + description: Identifier of the project this experiment belongs to. + example: "a33671aa-24fd-4dcd-9b33-a8ec7dde7751" + type: string + run_count: + description: Number of runs configured for this experiment. + format: int32 + maximum: 2147483647 + type: integer required: - - type - - attributes + - project_id + - name type: object - LLMObsUpdatePromptDataAttributes: - additionalProperties: false - description: >- - Attributes for updating an Agent Observability prompt. At least one of `title` or `description` must be provided; both attributes are optional individually. - minProperties: 1 + LLMObsExperimentDataAttributesResponse: + description: Attributes of an Agent Observability experiment. properties: + aggregate_data: + additionalProperties: {} + description: >- + Pre-computed aggregate metrics for this experiment run, including eval score distributions, token costs, and error rates. + nullable: true + type: object + author: + $ref: "#/components/schemas/LLMObsExperimentUser" + config: + additionalProperties: {} + description: Configuration parameters for the experiment. + nullable: true + type: object + created_at: + description: Timestamp when the experiment was created. + example: "2024-01-15T10:30:00Z" + format: date-time + type: string + dataset_id: + description: Identifier of the dataset used in this experiment. + example: "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d" + type: string + dataset_name: + description: |- + Name of the dataset used in this experiment. + Only present when `include[dataset_names]` is `true`. + nullable: true + type: string + dataset_version: + description: Version of the dataset used in this experiment. + format: int64 + type: integer + deleted_at: + description: Timestamp when the experiment was soft-deleted, if applicable. + format: date-time + nullable: true + type: string description: - description: Optional new description for the prompt. + description: Description of the experiment. + example: "" + nullable: true type: string - title: - description: Optional new title for the prompt. + error: + description: Error message describing why the experiment failed, if applicable. + nullable: true + type: string + experiment: + description: Logical name of the experiment, shared across all runs of the same pipeline. + example: "my-pipeline" + type: string + metadata: + additionalProperties: {} + description: Arbitrary metadata associated with the experiment. + nullable: true + type: object + name: + description: Name of the experiment. + example: "My Experiment v1" + type: string + parent_experiment_id: + description: Identifier of the parent (baseline) experiment this experiment was run against, if any. + example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" + nullable: true + type: string + project_id: + description: Identifier of the project this experiment belongs to. + example: "a33671aa-24fd-4dcd-9b33-a8ec7dde7751" + type: string + run_count: + description: Expected number of runs for this experiment. + format: int32 + maximum: 2147483647 + type: integer + status: + $ref: "#/components/schemas/LLMObsExperimentStatus" + updated_at: + description: Timestamp when the experiment was last updated. + example: "2024-01-15T10:30:00Z" + format: date-time type: string - type: object - LLMObsUpdatePromptRequest: - description: Request to update an Agent Observability prompt's metadata. - properties: - data: - $ref: "#/components/schemas/LLMObsUpdatePromptData" required: - - data + - project_id + - dataset_id + - name + - description + - metadata + - config + - created_at + - updated_at type: object - LLMObsUpdatePromptVersionData: - description: Data object for updating an Agent Observability prompt version. + LLMObsExperimentDataRequest: + description: Data object for creating an Agent Observability experiment. properties: attributes: - $ref: "#/components/schemas/LLMObsUpdatePromptVersionDataAttributes" + $ref: "#/components/schemas/LLMObsExperimentDataAttributesRequest" type: - $ref: "#/components/schemas/LLMObsPromptVersionType" + $ref: "#/components/schemas/LLMObsExperimentType" required: - type - attributes type: object - LLMObsUpdatePromptVersionDataAttributes: - additionalProperties: false - description: >- - Attributes for updating an Agent Observability prompt version. At least one of `description`, `labels`, or `env_ids` must be provided; all three attributes are optional individually. - minProperties: 1 + LLMObsExperimentDataResponse: + description: Data object for an Agent Observability experiment. properties: - description: - description: Optional new description for this version. + attributes: + $ref: "#/components/schemas/LLMObsExperimentDataAttributesResponse" + id: + description: Unique identifier of the experiment. + example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" type: string - env_ids: - description: >- - Optional feature-flag environment UUIDs the service attempts to enable and configure to use this version as their default. - items: - type: string - type: array - labels: - deprecated: true - description: Optional new labels for this version. Do not use this attribute for new integrations. - items: - $ref: "#/components/schemas/LLMObsPromptVersionLabel" - type: array - type: object - LLMObsUpdatePromptVersionRequest: - description: Request to update an Agent Observability prompt version's metadata or feature-flag environments. - properties: - data: - $ref: "#/components/schemas/LLMObsUpdatePromptVersionData" + type: + $ref: "#/components/schemas/LLMObsExperimentType" required: - - data + - id + - type + - attributes type: object - LLMObsUpsertAnnotationItem: - description: |- - A single annotation to create or update. The annotation is matched by - `interaction_id` and the requesting user's identity. + LLMObsExperimentEvalMetricEvent: + description: An evaluation metric event associated with an experiment span. properties: - interaction_id: - description: ID of the interaction to annotate. + assessment: + $ref: "#/components/schemas/LLMObsMetricAssessment" + boolean_value: + description: Boolean value. Present when `metric_type` is `boolean`. + nullable: true + type: boolean + categorical_value: + description: Categorical value. Present when `metric_type` is `categorical`. + nullable: true + type: string + eval_source_type: + description: Source type of the evaluation. + example: "managed" + type: string + id: + description: Unique identifier of the evaluation metric event. example: "00000000-0000-0000-0000-000000000001" type: string - label_values: - description: |- - Label values for this annotation. Each entry references a label schema by ID - and provides the corresponding value validated against the schema type constraints. - example: - - label_schema_id: "abc-123" - value: "good" - - label_schema_id: "ef56gh78" - value: "positive" - items: - $ref: "#/components/schemas/LLMObsAnnotationLabelValue" - minItems: 1 - type: array - required: - - interaction_id - - label_values - type: object - LLMObsVertexAIMetadata: - description: Vertex AI-specific metadata for an integration account or inference request. - properties: - location: - description: The Vertex AI region. - example: "us-central1" + json_value: + additionalProperties: {} + description: JSON value. Present when `metric_type` is `json`. + nullable: true + type: object + label: + description: Label or name for the metric. + example: "faithfulness" type: string - project: - description: The Google Cloud project ID. - example: "my-gcp-project" + metadata: + additionalProperties: {} + description: Arbitrary metadata associated with the metric. + nullable: true + type: object + metric_source: + description: Source of the metric. Either `custom` (user-submitted) or `summary` (experiment-level aggregate). + example: "custom" type: string - project_ids: - description: List of Google Cloud project IDs available to the service account. - example: - - "my-gcp-project" + metric_type: + $ref: "#/components/schemas/LLMObsMetricScoreType" + reasoning: + description: Human-readable reasoning for the metric value. + nullable: true + type: string + score_value: + description: Numeric score. Present when `metric_type` is `score`. + format: double + nullable: true + type: number + span_id: + description: Span ID this metric is associated with. + example: "span-7a1b2c3d" + type: string + tags: + description: Tags associated with the metric. items: type: string type: array + timestamp_ms: + description: Timestamp when the metric was recorded, in milliseconds since Unix epoch. + example: 1705314600000 + format: int64 + type: integer + trace_id: + description: Trace ID linking this metric to a span. + example: "abc123def456" + type: string type: object - Language: - description: Programming language - enum: - - PYTHON - - JAVASCRIPT - - TYPESCRIPT - - JAVA - - GO - - YAML - - RUBY - - CSHARP - - PHP - - KOTLIN - - SWIFT - - DART - - DOCKERFILE - - ELIXIR - - JSON - - RUST - - TERRAFORM - - STARLARK - - BASH - - MARKDOWN - - APEX - - R - - SQL - example: PYTHON - type: string - x-enum-varnames: - - PYTHON - - JAVASCRIPT - - TYPESCRIPT - - JAVA - - GO - - YAML - - RUBY - - CSHARP - - PHP - - KOTLIN - - SWIFT - - DART - - DOCKERFILE - - ELIXIR - - JSON - - RUST - - TERRAFORM - - STARLARK - - BASH - - MARKDOWN - - APEX - - R - - SQL - LatestVersionMatchPolicy: - description: The policy for matching the latest form version during an upsert operation. - enum: - - none - - if_etag_match - example: none - type: string - x-enum-varnames: - - NONE - - IF_ETAG_MATCH - LaunchDarklyAPIKey: - description: The definition of the `LaunchDarklyAPIKey` object. + LLMObsExperimentEventsDataAttributesRequest: + description: Attributes for pushing experiment events including spans and metrics. properties: - api_token: - description: The `LaunchDarklyAPIKey` `api_token`. - example: "" - type: string - type: - $ref: "#/components/schemas/LaunchDarklyAPIKeyType" - required: - - type - - api_token + metrics: + description: List of metrics to push for the experiment. + items: + $ref: "#/components/schemas/LLMObsExperimentMetric" + type: array + spans: + description: List of spans to push for the experiment. + items: + $ref: "#/components/schemas/LLMObsExperimentSpan" + type: array type: object - LaunchDarklyAPIKeyType: - description: The definition of the `LaunchDarklyAPIKey` object. - enum: - - LaunchDarklyAPIKey - example: LaunchDarklyAPIKey - type: string - x-enum-varnames: - - LAUNCHDARKLYAPIKEY - LaunchDarklyAPIKeyUpdate: - description: The definition of the `LaunchDarklyAPIKey` object. + LLMObsExperimentEventsDataRequest: + description: Data object for pushing experiment events. properties: - api_token: - description: The `LaunchDarklyAPIKeyUpdate` `api_token`. - type: string + attributes: + $ref: "#/components/schemas/LLMObsExperimentEventsDataAttributesRequest" type: - $ref: "#/components/schemas/LaunchDarklyAPIKeyType" + $ref: "#/components/schemas/LLMObsEventType" required: - type + - attributes type: object - LaunchDarklyCredentials: - description: The definition of the `LaunchDarklyCredentials` object. - oneOf: - - $ref: "#/components/schemas/LaunchDarklyAPIKey" - LaunchDarklyCredentialsUpdate: - description: The definition of the `LaunchDarklyCredentialsUpdate` object. - oneOf: - - $ref: "#/components/schemas/LaunchDarklyAPIKeyUpdate" - LaunchDarklyIntegration: - description: The definition of the `LaunchDarklyIntegration` object. + LLMObsExperimentEventsRequest: + description: Request to push spans and metrics for an Agent Observability experiment. properties: - credentials: - $ref: "#/components/schemas/LaunchDarklyCredentials" - type: - $ref: "#/components/schemas/LaunchDarklyIntegrationType" + data: + $ref: "#/components/schemas/LLMObsExperimentEventsDataRequest" required: - - type - - credentials + - data type: object - LaunchDarklyIntegrationType: - description: The definition of the `LaunchDarklyIntegrationType` object. + LLMObsExperimentEventsType: + description: Resource type for an experiment events collection. enum: - - LaunchDarkly - example: LaunchDarkly + - experiment_events + example: experiment_events type: string x-enum-varnames: - - LAUNCHDARKLY - LaunchDarklyIntegrationUpdate: - description: The definition of the `LaunchDarklyIntegrationUpdate` object. + - EXPERIMENT_EVENTS + LLMObsExperimentEventsV2DataAttributesResponse: + description: Attributes of an experiment events response. properties: - credentials: - $ref: "#/components/schemas/LaunchDarklyCredentialsUpdate" - type: - $ref: "#/components/schemas/LaunchDarklyIntegrationType" + spans: + description: Experiment spans, each enriched with their associated evaluation metrics. + items: + $ref: "#/components/schemas/LLMObsExperimentSpanWithEvals" + type: array + summary_metrics: + description: Experiment-level summary evaluation metrics (not tied to individual spans). + items: + $ref: "#/components/schemas/LLMObsExperimentEvalMetricEvent" + type: array required: - - type + - spans + - summary_metrics type: object - Layer: - description: Encapsulates a layer resource, holding attributes like rotation details, plus relationships to the members covering that layer. + LLMObsExperimentEventsV2DataResponse: + description: JSON:API data object for an experiment events response. properties: attributes: - $ref: "#/components/schemas/LayerAttributes" + $ref: "#/components/schemas/LLMObsExperimentEventsV2DataAttributesResponse" id: - description: A unique identifier for this layer. + description: Identifier for this events resource. + example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" type: string - relationships: - $ref: "#/components/schemas/LayerRelationships" type: - $ref: "#/components/schemas/LayerType" + $ref: "#/components/schemas/LLMObsExperimentEventsType" required: + - id - type + - attributes type: object - LayerAttributes: - description: Describes key properties of a Layer, including rotation details, name, start/end times, and any restrictions. + LLMObsExperimentEventsV2Response: + description: Response for listing experiment events (v2/v3). Returns spans and summary metrics in a single resource. properties: - effective_date: - description: When the layer becomes active (ISO 8601). - format: date-time + data: + $ref: "#/components/schemas/LLMObsExperimentEventsV2DataResponse" + meta: + $ref: "#/components/schemas/LLMObsCursorMeta" + required: + - data + type: object + LLMObsExperimentMetric: + description: A metric associated with an Agent Observability experiment span. + properties: + assessment: + $ref: "#/components/schemas/LLMObsMetricAssessment" + boolean_value: + description: Boolean value. Used when `metric_type` is `boolean`. + type: boolean + categorical_value: + description: Categorical value. Used when `metric_type` is `categorical`. type: string - end_date: - description: When the layer ceases to be active (ISO 8601). - format: date-time + error: + $ref: "#/components/schemas/LLMObsExperimentMetricError" + json_value: + additionalProperties: {} + description: JSON value. Used when `metric_type` is `json`. + type: object + label: + description: Label or name for the metric. + example: "faithfulness" type: string - interval: - $ref: "#/components/schemas/LayerAttributesInterval" - name: - description: The name of this layer. - example: Weekend Layer + metadata: + additionalProperties: {} + description: Arbitrary metadata associated with the metric. + type: object + metric_type: + $ref: "#/components/schemas/LLMObsMetricScoreType" + reasoning: + description: Human-readable reasoning for the metric value. type: string - restrictions: - description: An optional list of time restrictions for when this layer is in effect. + score_value: + description: Numeric score value. Used when `metric_type` is `score`. + format: double + type: number + span_id: + description: The ID of the span this metric measures. + example: "span-7a1b2c3d" + type: string + tags: + description: List of tags associated with the metric. items: - $ref: "#/components/schemas/TimeRestriction" + description: A tag string in `key:value` format. + type: string type: array - rotation_start: - description: The date/time when the rotation starts (ISO 8601). - format: date-time - type: string - time_zone: - description: The time zone for this layer. - example: "America/New_York" - type: string - type: object - LayerAttributesInterval: - description: Defines how often the rotation repeats, using a combination of days and optional seconds. Should be at least 1 hour. - properties: - days: - description: The number of days in each rotation cycle. - example: 1 - format: int32 - maximum: 400 - type: integer - seconds: - description: Any additional seconds for the rotation cycle (up to 30 days). - example: 300 + timestamp_ms: + description: Timestamp when the metric was recorded, in milliseconds since Unix epoch. + example: 1705314600000 format: int64 - maximum: 2592000 type: integer + required: + - span_id + - metric_type + - timestamp_ms + - label type: object - LayerRelationships: - description: Holds references to objects related to the Layer entity, such as its members. + LLMObsExperimentMetricError: + description: Error details for an experiment metric evaluation. properties: - members: - $ref: "#/components/schemas/LayerRelationshipsMembers" + message: + description: Error message associated with the metric evaluation. + type: string type: object - LayerRelationshipsMembers: - description: Holds an array of references to the members of a Layer, each containing member IDs. + LLMObsExperimentRequest: + description: Request to create an Agent Observability experiment. properties: data: - description: The list of members who belong to this layer. - items: - $ref: "#/components/schemas/LayerRelationshipsMembersDataItems" - type: array - type: object - LayerRelationshipsMembersDataItems: - description: |- - Represents a single member object in a layer's `members` array, referencing - a unique Datadog user ID. - properties: - id: - description: The unique user ID of the layer member. - example: "00000000-0000-0000-0000-000000000002" - type: string - type: - $ref: "#/components/schemas/LayerRelationshipsMembersDataItemsType" + $ref: "#/components/schemas/LLMObsExperimentDataRequest" required: - - type - - id + - data type: object - LayerRelationshipsMembersDataItemsType: - default: members - description: |- - Members resource type. - enum: - - members - example: members - type: string - x-enum-varnames: - - MEMBERS - LayerType: - default: layers - description: |- - Layers resource type. - enum: - - layers - example: layers - type: string - x-enum-varnames: - - LAYERS - LeakedKey: - description: The definition of LeakedKey object. + LLMObsExperimentResponse: + description: Response containing a single Agent Observability experiment. properties: - attributes: - $ref: "#/components/schemas/LeakedKeyAttributes" - id: - description: The LeakedKey id. - example: "id" - type: string - type: - $ref: "#/components/schemas/LeakedKeyType" + data: + $ref: "#/components/schemas/LLMObsExperimentDataResponse" required: - - attributes - - id - - type + - data type: object - LeakedKeyAttributes: - description: The definition of LeakedKeyAttributes object. + LLMObsExperimentRunDataResponse: + description: Data object for an Agent Observability experiment run. properties: - date: - description: The LeakedKeyAttributes date. - example: "2017-07-21T17:32:28Z" + aggregate_data: + additionalProperties: {} + description: Aggregated metric data for this run. + nullable: true + type: object + created_at: + description: Timestamp when the run was created. + example: "2024-01-15T10:30:00Z" format: date-time type: string - leak_source: - description: The LeakedKeyAttributes leak_source. + experiment_id: + description: Identifier of the experiment this run belongs to. + example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" type: string - required: - - date + id: + description: Unique identifier of the experiment run. + example: "7a1b2c3d-4e5f-6789-abcd-ef0123456789" + type: string + run_number: + description: Sequential number of this run within the experiment. + example: 1 + format: int32 + maximum: 2147483647 + type: integer type: object - LeakedKeyType: - default: leaked_keys - description: The definition of LeakedKeyType object. - enum: - - leaked_keys - example: leaked_keys - type: string - x-enum-varnames: - - LEAKED_KEYS - Library: - description: Vulnerability library. + LLMObsExperimentSpan: + description: A span associated with an Agent Observability experiment. properties: - additional_names: - description: Related library or package names (such as child packages or affected binary paths). + dataset_id: + description: Dataset ID associated with this span. + example: "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d" + type: string + duration: + description: Duration of the span in nanoseconds. + example: 1500000000 + format: int64 + type: integer + meta: + $ref: "#/components/schemas/LLMObsExperimentSpanMeta" + name: + description: Name of the span. + example: "llm_call" + type: string + project_id: + description: Project ID associated with this span. + example: "a33671aa-24fd-4dcd-9b33-a8ec7dde7751" + type: string + span_id: + description: Unique identifier of the span. + example: "span-7a1b2c3d" + type: string + start_ns: + description: Start time of the span in nanoseconds since Unix epoch. + example: 1705314600000000000 + format: int64 + type: integer + status: + $ref: "#/components/schemas/LLMObsExperimentSpanStatus" + tags: + description: List of tags associated with the span. items: - description: A related library or package name affected by the vulnerability. - example: linux-tools-common + description: A tag string in `key:value` format. type: string type: array - name: - description: Vulnerability library name. - example: linux-aws-5.15 - type: string - version: - description: Vulnerability library version. - example: 5.15.0 + trace_id: + description: Trace ID for the span. + example: "abc123def456" type: string required: + - trace_id + - span_id + - project_id + - dataset_id - name + - start_ns + - duration + - status type: object - LicensesListResponse: - description: >- - The top-level response object returned by the licenses list endpoint, containing the array of supported SPDX licenses. - properties: - data: - $ref: "#/components/schemas/LicensesListResponseData" - required: - - data - type: object - LicensesListResponseData: - description: The data object in a licenses list response, containing the list of SPDX licenses. + LLMObsExperimentSpanDataResponse: + description: JSON:API data item wrapping a single experiment span with evaluations. properties: attributes: - $ref: "#/components/schemas/LicensesListResponseDataAttributes" + $ref: "#/components/schemas/LLMObsExperimentSpanWithEvals" id: - description: The unique identifier for this licenses list response. - example: 0190a3d4-1234-7000-8000-000000000000 + description: Unique identifier of the span. + example: "00000000-0000-0000-0000-000000000001" type: string type: - $ref: "#/components/schemas/LicensesListResponseDataType" + $ref: "#/components/schemas/LLMObsExperimentSpanType" required: - id - type - attributes type: object - LicensesListResponseDataAttributes: - description: The attributes of the licenses list response, containing the array of SPDX licenses. - properties: - licenses: - $ref: "#/components/schemas/LicensesListResponseDataAttributesLicenses" - required: - - licenses - type: object - LicensesListResponseDataAttributesLicenses: - description: The list of SPDX licenses returned by the API. - items: - $ref: "#/components/schemas/LicensesListResponseDataAttributesLicensesItems" - type: array - LicensesListResponseDataAttributesLicensesItems: - description: An SPDX license entry returned by the licenses list endpoint. + LLMObsExperimentSpanError: + description: Error details for an experiment span. properties: - display_name: - description: The human-readable name of the license. - example: MIT License + message: + description: Error message. + example: "Model response timed out" type: string - identifier: - description: The SPDX identifier of the license. - example: MIT + stack: + description: Stack trace of the error. + example: "Traceback (most recent call last):\n File \"main.py\", line 10, in \n response = model.generate(input)\n File \"model.py\", line 45, in generate\n raise TimeoutError(\"Model response timed out\")\nTimeoutError: Model response timed out" type: string - short_name: - description: The short name of the license, typically matching the SPDX identifier. - example: MIT + type: + description: The error type or exception class name. + example: "TimeoutError" type: string - required: - - display_name - - identifier - - short_name type: object - LicensesListResponseDataType: - default: licenserequest - description: The type identifier for license list responses. + LLMObsExperimentSpanMeta: + description: Metadata associated with an experiment span. + properties: + error: + $ref: "#/components/schemas/LLMObsExperimentSpanError" + expected_output: + additionalProperties: {} + description: Expected output for the span, used for evaluation. + type: object + input: + $ref: "#/components/schemas/AnyValue" + output: + $ref: "#/components/schemas/AnyValue" + type: object + LLMObsExperimentSpanStatus: + description: Status of the span. enum: - - licenserequest - example: licenserequest + - ok + - error + example: "ok" type: string x-enum-varnames: - - LICENSEREQUEST - LinearIssuesDataType: - default: linear_issues - description: Linear issues resource type. + - OK + - ERROR + LLMObsExperimentSpanType: + description: Resource type for a span item in an experiment spans response. enum: - - linear_issues - example: linear_issues + - experiments + example: experiments type: string x-enum-varnames: - - LINEAR_ISSUES - Links: - description: The JSON:API links related to pagination. + - EXPERIMENTS_SPAN + LLMObsExperimentSpanWithEvals: + description: An experiment span enriched with its associated evaluation metrics. properties: - first: - description: First page link. - example: "https://api.datadoghq.com/api/v2/security/vulnerabilities?page%5Bnumber%5D=1&page%5Btoken%5D=b82cef018aab81ed1d4bb4xb35xxfc065da7efa685fbcecdbd338f3015e3afabbbfa3a911b4984_721ee28a-zecb-4e45-9960-c42065b574f4" + dataset_record_id: + description: ID of the dataset record this span evaluated. + nullable: true type: string - last: - description: Last page link. - example: "https://api.datadoghq.com/api/v2/security/vulnerabilities?page%5Bnumber%5D=15&page%5Btoken%5D=b82cef018aab81ed1d4bb4xb35xxfc065da7efa685fbcecdbd338f3015e3afabbbfa3a911b4984_721ee28a-zecb-4e45-9960-c42065b574f4" + duration: + description: Duration of the span in nanoseconds. + example: 1500000000.0 + format: double + type: number + eval_metrics: + description: Evaluation metrics associated with this span. + items: + $ref: "#/components/schemas/LLMObsExperimentEvalMetricEvent" + type: array + id: + description: Unique identifier of the span. + example: "00000000-0000-0000-0000-000000000001" type: string - next: - description: Next page link. - example: "https://api.datadoghq.com/api/v2/security/vulnerabilities?page%5Bnumber%5D=16&page%5Btoken%5D=b82cef018aab81ed1d4bb4xb35xxfc065da7efa685fbcecdbd338f3015e3afabbbfa3a911b4984_721ee28a-zecb-4e45-9960-c42065b574f4" + meta: + $ref: "#/components/schemas/LLMObsExperimentSpanMeta" + metrics: + additionalProperties: + format: double + type: number + description: Numeric metrics attached to the span. + type: object + name: + description: Name of the span. + example: "llm_call" type: string - previous: - description: Previous page link. - example: "https://api.datadoghq.com/api/v2/security/vulnerabilities?page%5Bnumber%5D=14&page%5Btoken%5D=b82cef018aab81ed1d4bb4xb35xxfc065da7efa685fbcecdbd338f3015e3afabbbfa3a911b4984_721ee28a-zecb-4e45-9960-c42065b574f4" + parent_id: + description: Parent span ID, if any. type: string - self: - description: Request link. - example: https://api.datadoghq.com/api/v2/security/vulnerabilities?filter%5Btool%5D=Infra + span_id: + description: Span ID. + example: "span-7a1b2c3d" + type: string + start_ns: + description: Start time in nanoseconds since Unix epoch. + example: 1705314600000000000 + format: int64 + type: integer + status: + $ref: "#/components/schemas/LLMObsExperimentSpanStatus" + tags: + description: Tags associated with the span. + items: + type: string + type: array + trace_id: + description: Trace ID. + example: "abc123def456" type: string - required: - - self - - first - - last type: object - ListAPIsResponse: - description: Response for `ListAPIs`. + LLMObsExperimentSpansResponse: + description: >- + Response for listing experiment spans (v1). Returns only spans with their evaluation metrics. No summary metrics or pagination are included. Deprecated in favor of `ListLLMObsExperimentEventsV3`. properties: data: - description: List of API items. + description: List of experiment spans with their evaluation metrics. items: - $ref: "#/components/schemas/ListAPIsResponseData" + $ref: "#/components/schemas/LLMObsExperimentSpanDataResponse" type: array - meta: - $ref: "#/components/schemas/ListAPIsResponseMeta" - type: object - ListAPIsResponseData: - description: Data envelope for `ListAPIsResponse`. - properties: - attributes: - $ref: "#/components/schemas/ListAPIsResponseDataAttributes" - id: - $ref: "#/components/schemas/ApiID" + required: + - data type: object - ListAPIsResponseDataAttributes: - description: Attributes for `ListAPIsResponseData`. + LLMObsExperimentStatus: + description: Execution status of an Agent Observability experiment. + enum: + - running + - completed + - failed + - interrupted + example: completed + type: string + x-enum-varnames: + - RUNNING + - COMPLETED + - FAILED + - INTERRUPTED + LLMObsExperimentType: + description: Resource type of an Agent Observability experiment. + enum: + - experiments + example: experiments + type: string + x-enum-varnames: + - EXPERIMENTS + LLMObsExperimentUpdateDataAttributesRequest: + description: Attributes for updating an Agent Observability experiment. properties: + dataset_id: + description: Updated identifier of the dataset used in this experiment. + example: "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d" + type: string + description: + description: Updated description of the experiment. + type: string + error: + description: Error message describing why the experiment failed, if applicable. + type: string + metadata: + additionalProperties: {} + description: Updated arbitrary metadata associated with the experiment. + type: object name: - description: API name. - example: "Payments API" + description: Updated name of the experiment. type: string + status: + $ref: "#/components/schemas/LLMObsExperimentStatus" type: object - ListAPIsResponseMeta: - description: Metadata for `ListAPIsResponse`. - properties: - pagination: - $ref: "#/components/schemas/ListAPIsResponseMetaPagination" - type: object - ListAPIsResponseMetaPagination: - description: Pagination metadata information for `ListAPIsResponse`. + LLMObsExperimentUpdateDataRequest: + description: Data object for updating an Agent Observability experiment. properties: - limit: - description: Number of items in the current page. - example: 20 - format: int64 - type: integer - offset: - description: Offset for pagination. - example: 0 - format: int64 - type: integer - total_count: - description: Total number of items. - example: 35 - format: int64 - type: integer + attributes: + $ref: "#/components/schemas/LLMObsExperimentUpdateDataAttributesRequest" + type: + $ref: "#/components/schemas/LLMObsExperimentType" + required: + - type + - attributes type: object - ListAllocationsResponse: - description: Response containing a list of targeting rules (allocations). + LLMObsExperimentUpdateRequest: + description: Request to partially update an Agent Observability experiment. properties: data: - description: List of targeting rules (allocations). - items: - $ref: "#/components/schemas/AllocationDataResponse" - description: Allocation item. - type: array + $ref: "#/components/schemas/LLMObsExperimentUpdateDataRequest" required: - data type: object - ListAppKeyRegistrationsResponse: - description: A paginated list of app key registrations. + LLMObsExperimentUser: + description: User data for the author of an experiment. Only present when `include[user_data]` is `true`. properties: - data: - description: An array of app key registrations. - items: - $ref: "#/components/schemas/AppKeyRegistrationData" - type: array - meta: - $ref: "#/components/schemas/ListAppKeyRegistrationsResponseMeta" + email: + description: Email address of the user. + example: "jane.doe@example.com" + type: string + handle: + description: Username or handle associated with the user's Datadog account. + example: "jane.doe@example.com" + type: string + icon: + description: URL of the user's icon. + example: "https://example.com/icon.png" + type: string + id: + description: Unique identifier of the user. + example: "00000000-0000-0000-0000-000000000010" + type: string + name: + description: Display name of the user. + example: "Jane Doe" + type: string type: object - ListAppKeyRegistrationsResponseMeta: - description: The definition of `ListAppKeyRegistrationsResponseMeta` object. + LLMObsExperimentationAnalyticsAggregate: + description: Analytics aggregation parameters. properties: - total: - description: The total number of app key registrations. - example: 1 + compute: + description: List of metric computations to perform. + items: + $ref: "#/components/schemas/LLMObsExperimentationAnalyticsCompute" + minItems: 1 + type: array + dataset_version: + description: Filter to a specific dataset version. format: int64 + nullable: true type: integer - total_filtered: - description: The total number of app key registrations that match the specified filters. - example: 1 - format: int64 + group_by: + description: Fields to group results by. + items: + $ref: "#/components/schemas/LLMObsExperimentationAnalyticsGroupBy" + type: array + indexes: + description: Data indexes to query. At least one is required. + example: + - "experiment-evals" + items: + type: string + minItems: 1 + type: array + limit: + description: Maximum number of results to return. + example: 1000 + format: int32 + maximum: 2147483647 + nullable: true type: integer + search: + $ref: "#/components/schemas/LLMObsExperimentationAnalyticsSearch" + time: + $ref: "#/components/schemas/LLMObsExperimentationAnalyticsTimeRange" + required: + - compute + - indexes + - search type: object - ListAppVersionsResponse: - description: A paginated list of versions for an app. + LLMObsExperimentationAnalyticsCompute: + description: A single metric computation definition. properties: - data: - description: The list of app versions. - items: - $ref: "#/components/schemas/AppVersion" - type: array - meta: - $ref: "#/components/schemas/ListAppsResponseMeta" + metric: + description: Name of the metric to compute. + example: "score_value" + type: string + name: + description: Optional alias for this computation in the response. + example: "avg_faithfulness" + type: string + required: + - metric type: object - ListApplicationKeysResponse: - description: Response for a list of application keys. + LLMObsExperimentationAnalyticsDataAttributesRequest: + description: Attributes for an analytics request. properties: - data: - description: Array of application keys. - items: - $ref: "#/components/schemas/PartialApplicationKey" - type: array - included: - description: Array of objects related to the application key. - items: - $ref: "#/components/schemas/ApplicationKeyResponseIncludedItem" - type: array - meta: - $ref: "#/components/schemas/ApplicationKeyResponseMeta" + aggregate: + $ref: "#/components/schemas/LLMObsExperimentationAnalyticsAggregate" + required: + - aggregate type: object - ListAppsResponse: - description: A paginated list of apps matching the specified filters and sorting. + LLMObsExperimentationAnalyticsDataAttributesResponse: + description: Attributes of an analytics response. properties: - data: - description: An array of app definitions. - items: - $ref: "#/components/schemas/ListAppsResponseDataItems" - type: array - included: - description: Data on the version of the app that was published. - items: - $ref: "#/components/schemas/Deployment" - type: array - meta: - $ref: "#/components/schemas/ListAppsResponseMeta" + hit_count: + description: Total number of events matched by the query before grouping. + example: 1500 + format: int64 + type: integer + result: + $ref: "#/components/schemas/LLMObsExperimentationAnalyticsResult" + required: + - hit_count + - result type: object - ListAppsResponseDataItems: - description: An app definition object. This contains only basic information about the app such as ID, name, and tags. + LLMObsExperimentationAnalyticsDataRequest: + description: Data object for an analytics request. properties: attributes: - $ref: "#/components/schemas/ListAppsResponseDataItemsAttributes" + $ref: "#/components/schemas/LLMObsExperimentationAnalyticsDataAttributesRequest" + type: + $ref: "#/components/schemas/LLMObsExperimentationType" + required: + - type + - attributes + type: object + LLMObsExperimentationAnalyticsDataResponse: + description: JSON:API data object for an analytics response. + properties: + attributes: + $ref: "#/components/schemas/LLMObsExperimentationAnalyticsDataAttributesResponse" id: - description: The ID of the app. - example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 - format: uuid + description: Server-generated identifier for this analytics result. + example: "00000000-0000-0000-0000-000000000001" type: string - meta: - $ref: "#/components/schemas/AppMeta" - relationships: - $ref: "#/components/schemas/ListAppsResponseDataItemsRelationships" type: - $ref: "#/components/schemas/AppDefinitionType" + $ref: "#/components/schemas/LLMObsExperimentationType" required: - id - type - attributes type: object - ListAppsResponseDataItemsAttributes: - description: Basic information about the app such as name, description, and tags. + LLMObsExperimentationAnalyticsGroupBy: + description: A field to group analytics results by. properties: - description: - description: A human-readable description for the app. - type: string - favorite: - description: Whether the app is marked as a favorite by the current user. - type: boolean - name: - description: The name of the app. + field: + description: Field name to group by. + example: "span_id" type: string - selfService: - description: Whether the app is enabled for use in the Datadog self-service hub. - type: boolean - tags: - description: A list of tags for the app, which can be used to filter apps. - example: - - "service:webshop-backend" - - "team:webshop" + required: + - field + type: object + LLMObsExperimentationAnalyticsRequest: + description: Request to run an analytics aggregation over Agent Observability experimentation data. + properties: + data: + $ref: "#/components/schemas/LLMObsExperimentationAnalyticsDataRequest" + required: + - data + type: object + LLMObsExperimentationAnalyticsResponse: + description: Response to an analytics query. + properties: + data: + $ref: "#/components/schemas/LLMObsExperimentationAnalyticsDataResponse" + required: + - data + type: object + LLMObsExperimentationAnalyticsResult: + description: Analytics query result containing all buckets. + properties: + values: + description: List of result buckets. items: - description: An individual tag for the app. - type: string + $ref: "#/components/schemas/LLMObsExperimentationAnalyticsValue" type: array + required: + - values type: object - ListAppsResponseDataItemsRelationships: - description: The app's publication information. + LLMObsExperimentationAnalyticsSearch: + description: Search query for filtering analytics data. properties: - deployment: - $ref: "#/components/schemas/DeploymentRelationship" + query: + description: Filter expression. + example: "@experiment_id:3fd6b5e0-8910-4b1c-a7d0-5b84de329012" + type: string + required: + - query type: object - ListAppsResponseMeta: - description: Pagination metadata. + LLMObsExperimentationAnalyticsTimeRange: + description: Unix-millisecond time range for filtering analytics data. properties: - page: - $ref: "#/components/schemas/ListAppsResponseMetaPage" + from: + description: Start of the time range in milliseconds since Unix epoch. + example: 1705312200000 + format: int64 + type: integer + to: + description: End of the time range in milliseconds since Unix epoch. + example: 1705315800000 + format: int64 + type: integer + required: + - from + - to type: object - ListAppsResponseMetaPage: - description: Information on the total number of apps, to be used for pagination. + LLMObsExperimentationAnalyticsValue: + description: A single analytics result bucket. properties: - totalCount: - description: The total number of apps under the Datadog organization, disregarding any filters applied. + by: + additionalProperties: {} + description: The group-by field values for this bucket. + example: + span_id: "span-7a1b2c3d" + type: object + metrics: + additionalProperties: {} + description: Computed metric values for this bucket. + example: + score_value: 0.85 + type: object + required: + - metrics + type: object + LLMObsExperimentationContentPreview: + description: Options to control content preview truncation. + properties: + limit: + description: Maximum number of characters to include in content previews. + example: 500 format: int64 type: integer - totalFilteredCount: - description: The total number of apps that match the specified filters. + type: object + LLMObsExperimentationCursorPage: + description: Cursor-based pagination parameters. + properties: + cursor: + description: Opaque cursor returned from a previous response to fetch the next page. + type: string + limit: + description: Maximum number of results per page. + example: 100 format: int64 type: integer type: object - ListAssetsSBOMsResponse: - description: The expected response schema when listing assets SBOMs. + LLMObsExperimentationFilter: + description: Filter criteria for an experimentation search request. properties: - data: - description: List of assets SBOMs. + include_deleted: + default: false + description: When `true`, include soft-deleted entities alongside active ones. + type: boolean + is_deleted: + default: false + description: When `true`, return only soft-deleted entities. + type: boolean + query: + description: Free-text search query. + example: "my experiment" + type: string + scope: + description: >- + Entity types to search. Valid values are `projects`, `datasets`, `dataset_records`, `experiments`, and `experiment_runs`. + example: + - "experiments" items: - $ref: "#/components/schemas/SBOM" + example: "experiments" + type: string type: array - links: - $ref: "#/components/schemas/Links" - meta: - $ref: "#/components/schemas/Metadata" + version: + description: Filter dataset records by a specific dataset version. + format: int64 + nullable: true + type: integer required: - - data + - scope type: object - ListBlueprintsResponse: - description: The response for listing available blueprints. + LLMObsExperimentationInclude: + description: Additional data to include in the response. properties: - data: - description: An array of blueprint metadata. - items: - $ref: "#/components/schemas/BlueprintMetadataData" - type: array + user_data: + default: false + description: When `true`, enrich results with author user data (name and email). + type: boolean type: object - ListCampaignsResponse: - description: Response containing a list of campaigns. + LLMObsExperimentationNumberPage: + description: Offset-based pagination parameters for simple search. properties: - data: - $ref: "#/components/schemas/ListCampaignsResponseData" - meta: - $ref: "#/components/schemas/PaginatedResponseMeta" - required: - - data - - meta + limit: + description: Maximum number of results per page. + example: 50 + format: int32 + maximum: 2147483647 + type: integer + number: + description: Page number to retrieve (1-indexed). + example: 1 + format: int32 + maximum: 2147483647 + minimum: 1 + type: integer type: object - ListCampaignsResponseData: - description: Array of campaigns. - items: - $ref: "#/components/schemas/CampaignResponseData" - type: array - ListConnectionsResponse: - description: Response containing the list of all data source connections configured for an entity. - example: - data: - attributes: - connections: - - created_at: "0001-01-01T00:00:00Z" - created_by: 00000000-0000-0000-0000-000000000000 - fields: - - description: Customer subscription tier - display_name: Customer Tier - groups: - - Business - - Subscription - id: customer_tier - source_name: subscription_tier - type: string - - description: Channel through which user signed up - display_name: Signup Source - groups: - - Marketing - - Attribution - id: signup_source - source_name: acquisition_channel - type: string - id: user-profiles-connection - join: - attribute: user_email - type: email - type: ref_table - updated_at: "0001-01-01T00:00:00Z" - updated_by: 00000000-0000-0000-0000-000000000000 - id: list_connections_response - type: list_connections_response + LLMObsExperimentationSearchDataAttributesRequest: + description: Attributes for an experimentation search request. properties: - data: - $ref: "#/components/schemas/ListConnectionsResponseData" + content_preview: + $ref: "#/components/schemas/LLMObsExperimentationContentPreview" + filter: + $ref: "#/components/schemas/LLMObsExperimentationFilter" + include: + $ref: "#/components/schemas/LLMObsExperimentationInclude" + page: + $ref: "#/components/schemas/LLMObsExperimentationCursorPage" + required: + - filter type: object - ListConnectionsResponseData: - description: The data object containing the resource type and attributes for the list connections response. + LLMObsExperimentationSearchDataRequest: + description: Data object for an experimentation search request. properties: attributes: - $ref: "#/components/schemas/ListConnectionsResponseDataAttributes" - id: - description: Unique identifier for the list connections response resource. - type: string + $ref: "#/components/schemas/LLMObsExperimentationSearchDataAttributesRequest" type: - $ref: "#/components/schemas/ListConnectionsResponseDataType" + $ref: "#/components/schemas/LLMObsExperimentationType" required: - type + - attributes type: object - ListConnectionsResponseDataAttributes: - description: Attributes of the list connections response, containing the collection of data source connections. - properties: - connections: - description: The list of data source connections configured for the entity. - items: - $ref: "#/components/schemas/ListConnectionsResponseDataAttributesConnectionsItems" - type: array - type: object - ListConnectionsResponseDataAttributesConnectionsItems: - description: Details of a single data source connection, including its fields, join configuration, and audit metadata. + LLMObsExperimentationSearchDataResponse: + description: JSON:API data object for an experimentation search response. properties: - created_at: - description: Timestamp indicating when the connection was created. - format: date-time - type: string - created_by: - description: Identifier of the user who created the connection. - type: string - fields: - description: List of custom attribute fields imported from the data source. - items: - $ref: "#/components/schemas/CreateConnectionRequestDataAttributesFieldsItems" - type: array + attributes: + $ref: "#/components/schemas/LLMObsExperimentationSearchResults" id: - description: Unique identifier of the connection. + description: Server-generated identifier for this search result. + example: "00000000-0000-0000-0000-000000000001" type: string - join: - $ref: "#/components/schemas/ListConnectionsResponseDataAttributesConnectionsItemsJoin" - metadata: - additionalProperties: - type: string - description: Additional key-value metadata associated with the connection. - type: object type: - description: The type of data source connection (for example, ref_table). - type: string - updated_at: - description: Timestamp indicating when the connection was last updated. - format: date-time - type: string - updated_by: - description: Identifier of the user who last updated the connection. - type: string + $ref: "#/components/schemas/LLMObsExperimentationType" + required: + - id + - type + - attributes type: object - ListConnectionsResponseDataAttributesConnectionsItemsJoin: - description: The join configuration describing how the data source is linked to the entity. + LLMObsExperimentationSearchRequest: + description: Request to search across Agent Observability experimentation entities using cursor-based pagination. properties: - attribute: - description: The entity attribute used as the join key to link records from the data source. - type: string - type: - description: The type of join key used (for example, email or user_id). - type: string + data: + $ref: "#/components/schemas/LLMObsExperimentationSearchDataRequest" + required: + - data type: object - ListConnectionsResponseDataType: - default: list_connections_response - description: List connections response resource type. - enum: - - list_connections_response - example: list_connections_response - type: string - x-enum-varnames: - - LIST_CONNECTIONS_RESPONSE - ListDashboardsUsageResponse: - description: Paginated list of dashboard usage records. + LLMObsExperimentationSearchResponse: + description: Response to a cursor-based experimentation search. Returns `200 OK` when all results fit in one page; `206 Partial Content` when a next-page cursor is available. properties: data: - description: Dashboard usage records, one per dashboard in the caller's organization. - items: - $ref: "#/components/schemas/DashboardUsage" - type: array - links: - $ref: "#/components/schemas/ListDashboardsUsageResponseLinks" + $ref: "#/components/schemas/LLMObsExperimentationSearchDataResponse" meta: - $ref: "#/components/schemas/ListDashboardsUsageResponseMeta" + $ref: "#/components/schemas/LLMObsCursorMeta" required: - data - - meta type: object - ListDashboardsUsageResponseLinks: - description: Pagination links for a list of dashboard usage records. + LLMObsExperimentationSearchResults: + description: The matching experimentation entities grouped by type. properties: - first: - description: Link to the first page. - example: "https://api.datadoghq.com/api/v2/dashboards/usage?page[offset]=0&page[limit]=250" - type: string - last: - description: Link to the last page, or `null` if the total is unknown. + dataset_records: + description: Matching dataset records. Present when `dataset_records` is included in `filter.scope`. + items: + $ref: "#/components/schemas/LLMObsDatasetRecordDataResponse" nullable: true - type: string - next: - description: Link to the next page. Absent when there is no next page. + type: array + datasets: + description: Matching datasets. Present when `datasets` is included in `filter.scope`. + items: + $ref: "#/components/schemas/LLMObsDatasetDataResponse" nullable: true - type: string - prev: - description: Link to the previous page. Absent when there is no previous page. + type: array + experiment_runs: + description: Matching experiment runs. Present when `experiment_runs` is included in `filter.scope`. + items: + $ref: "#/components/schemas/LLMObsExperimentRunDataResponse" nullable: true - type: string - self: - description: Link to the current page. - example: "https://api.datadoghq.com/api/v2/dashboards/usage" - type: string + type: array + experiments: + description: Matching experiments. Present when `experiments` is included in `filter.scope`. + items: + $ref: "#/components/schemas/LLMObsExperimentDataAttributesResponse" + nullable: true + type: array + projects: + description: Matching projects. Present when `projects` is included in `filter.scope`. + items: + $ref: "#/components/schemas/LLMObsProjectDataResponse" + nullable: true + type: array type: object - ListDashboardsUsageResponseMeta: - description: Pagination metadata for a list of dashboard usage records. + LLMObsExperimentationSimpleSearchDataAttributesRequest: + description: Attributes for an experimentation simple search request. properties: + content_preview: + $ref: "#/components/schemas/LLMObsExperimentationContentPreview" + filter: + $ref: "#/components/schemas/LLMObsExperimentationFilter" + include: + $ref: "#/components/schemas/LLMObsExperimentationInclude" page: - $ref: "#/components/schemas/PaginationMetaPage" + $ref: "#/components/schemas/LLMObsExperimentationNumberPage" + sort: + description: Sort order for results. + items: + $ref: "#/components/schemas/LLMObsExperimentationSortField" + type: array + required: + - filter type: object - ListDeploymentRuleResponseData: - description: Data for a list of deployment rules. + LLMObsExperimentationSimpleSearchDataRequest: + description: Data object for an experimentation simple search request. properties: attributes: - $ref: "#/components/schemas/ListDeploymentRulesResponseDataAttributes" - id: - description: Unique identifier of the deployment rule. - example: "1111-2222-3333-4444-555566667777" - type: string + $ref: "#/components/schemas/LLMObsExperimentationSimpleSearchDataAttributesRequest" type: - $ref: "#/components/schemas/ListDeploymentRulesDataType" + $ref: "#/components/schemas/LLMObsExperimentationType" required: - type - attributes - - id - type: object - ListDeploymentRulesDataType: - description: List deployment rule resource type. - enum: - - list_deployment_rules - example: list_deployment_rules - type: string - x-enum-varnames: - - LIST_DEPLOYMENT_RULES - ListDeploymentRulesResponseDataAttributes: - description: Attributes of the response for listing deployment rules. - properties: - rules: - description: The list of deployment rules. - items: - $ref: "#/components/schemas/DeploymentRuleResponseDataAttributes" - type: array type: object - ListDevicesResponse: - description: List devices response. + LLMObsExperimentationSimpleSearchDataResponse: + description: JSON:API data object for a simple search response. properties: - data: - description: The list devices response data. - items: - $ref: "#/components/schemas/DevicesListData" - type: array - meta: - $ref: "#/components/schemas/ListDevicesResponseMetadata" + attributes: + $ref: "#/components/schemas/LLMObsExperimentationSearchResults" + id: + description: Server-generated identifier for this search result. + example: "00000000-0000-0000-0000-000000000001" + type: string + type: + $ref: "#/components/schemas/LLMObsExperimentationType" + required: + - id + - type + - attributes type: object - ListDevicesResponseMetadata: - description: Object describing meta attributes of response. + LLMObsExperimentationSimpleSearchMeta: + description: Pagination metadata for a simple search response. properties: page: - $ref: "#/components/schemas/ListDevicesResponseMetadataPage" + $ref: "#/components/schemas/LLMObsExperimentationSimpleSearchMetaPage" type: object - ListDevicesResponseMetadataPage: - description: Pagination object. + LLMObsExperimentationSimpleSearchMetaPage: + description: Page metadata. properties: - total_filtered_count: - description: Total count of devices matched by the filter. + current: + description: Current page number. example: 1 - format: int64 + format: int32 + maximum: 2147483647 + type: integer + limit: + description: Page size used for this response. + example: 50 + format: int32 + maximum: 2147483647 + type: integer + total_count: + description: Total number of matching results (capped at the maximum search limit). + example: 193 + format: int32 + maximum: 2147483647 + type: integer + total_pages: + description: Total number of pages available. + example: 4 + format: int32 + maximum: 2147483647 type: integer type: object - ListDowntimesResponse: - description: Response for retrieving all downtimes. + LLMObsExperimentationSimpleSearchRequest: + description: Request to search across Agent Observability experimentation entities using offset-based pagination. properties: data: - description: An array of downtimes. - items: - $ref: "#/components/schemas/DowntimeResponseData" - type: array - included: - description: Array of objects related to the downtimes. - items: - $ref: "#/components/schemas/DowntimeResponseIncludedItem" - type: array - meta: - $ref: "#/components/schemas/DowntimeMeta" + $ref: "#/components/schemas/LLMObsExperimentationSimpleSearchDataRequest" + required: + - data type: object - ListEntityCatalogResponse: - description: List entity response. + LLMObsExperimentationSimpleSearchResponse: + description: Response to an offset-based experimentation simple search. properties: data: - $ref: "#/components/schemas/EntityResponseData" - included: - $ref: "#/components/schemas/ListEntityCatalogResponseIncluded" - links: - $ref: "#/components/schemas/ListEntityCatalogResponseLinks" + $ref: "#/components/schemas/LLMObsExperimentationSimpleSearchDataResponse" meta: - $ref: "#/components/schemas/EntityResponseMeta" + $ref: "#/components/schemas/LLMObsExperimentationSimpleSearchMeta" + required: + - data type: object - ListEntityCatalogResponseIncluded: - description: List entity response included. - items: - $ref: "#/components/schemas/ListEntityCatalogResponseIncludedItem" - type: array - ListEntityCatalogResponseIncludedItem: - description: List entity response included item. - oneOf: - - $ref: "#/components/schemas/EntityResponseIncludedSchema" - - $ref: "#/components/schemas/EntityResponseIncludedRawSchema" - - $ref: "#/components/schemas/EntityResponseIncludedRelatedEntity" - - $ref: "#/components/schemas/EntityResponseIncludedOncall" - - $ref: "#/components/schemas/EntityResponseIncludedIncident" - ListEntityCatalogResponseLinks: - description: List entity response links. + LLMObsExperimentationSortField: + description: A field and direction to sort results by. properties: - next: - description: Next link. - type: string - previous: - description: Previous link. - type: string - self: - description: Current link. + direction: + $ref: "#/components/schemas/LLMObsExperimentationSortFieldDirection" + field: + description: The field name to sort on. + example: "created_at" type: string - type: object - ListEnvironmentsResponse: - description: Response containing a list of environments. - properties: - data: - description: List of environments. - items: - $ref: "#/components/schemas/Environment" - type: array - meta: - $ref: "#/components/schemas/EnvironmentsPaginationMeta" required: - - data + - field type: object - ListFeatureFlagsResponse: - description: Response containing a list of feature flags. + LLMObsExperimentationSortFieldDirection: + description: Sort direction. + enum: + - asc + - desc + example: "desc" + type: string + x-enum-varnames: + - ASC + - DESC + LLMObsExperimentationType: + description: Resource type for experimentation search and analytics operations. + enum: + - experimentation + example: experimentation + type: string + x-enum-varnames: + - EXPERIMENTATION + LLMObsExperimentsResponse: + description: Response containing a list of Agent Observability experiments. properties: data: - description: List of feature flags. + description: List of experiments. items: - $ref: "#/components/schemas/FeatureFlagListItem" + $ref: "#/components/schemas/LLMObsExperimentDataResponse" type: array meta: - $ref: "#/components/schemas/FeatureFlagsPaginationMeta" + $ref: "#/components/schemas/LLMObsCursorMeta" required: - data type: object - ListFindingsData: - description: Array of findings. - items: - $ref: "#/components/schemas/Finding" - type: array - ListFindingsMeta: - additionalProperties: false - description: Metadata for pagination. + LLMObsFrontendContentBlock: + description: Validation requirements for a `frontend` display block. properties: - page: - $ref: "#/components/schemas/ListFindingsPage" - snapshot_timestamp: - description: The point in time corresponding to the listed findings. - example: 1678721573794 - format: int64 - minimum: 1 - type: integer + code: + $ref: "#/components/schemas/LLMObsFrontendContentBlockCode" + type: + $ref: "#/components/schemas/LLMObsFrontendContentBlockType" + required: + - code type: object - ListFindingsPage: - additionalProperties: false - description: Pagination and findings count information. + LLMObsFrontendContentBlockCode: + description: HTML code rendered by a `frontend` block. Required for `frontend` blocks. + example: '
Ready for review
' + minLength: 1 + type: string + LLMObsFrontendContentBlockType: + description: Type discriminator for a `frontend` display block. + enum: + - frontend + example: frontend + type: string + x-enum-varnames: + - FRONTEND + LLMObsInferenceCode: + description: A generated code snippet for running an inference request programmatically. properties: - cursor: - description: The cursor used to paginate requests. - example: "eyJhZnRlciI6IkFRQUFBWWJiaEJXQS1OY1dqUUFBQUFCQldXSmlhRUpYUVVGQlJFSktkbTlDTUdaWFRVbDNRVUUiLCJ2YWx1ZXMiOlsiY3JpdGljYWwiXX0=" + code: + description: The generated code content. + example: "import openai\nclient = openai.OpenAI()\n..." type: string - total_filtered_count: - description: The total count of findings after the filter has been applied. - example: 213 - format: int64 - type: integer - type: object - ListFindingsResponse: - description: The expected response schema when listing findings. - properties: - data: - $ref: "#/components/schemas/ListFindingsData" - example: - - attributes: - evaluation: fail - resource: "arn:aws:s3:::my-bucket" - resource_type: aws_s3_bucket - status: high - id: "abc-123-xyz" - type: finding - meta: - $ref: "#/components/schemas/ListFindingsMeta" - required: - - data - - meta - type: object - ListHistoricalJobsResponse: - description: List of historical jobs. - properties: - data: - description: Array containing the list of historical jobs. - items: - $ref: "#/components/schemas/HistoricalJobResponseData" - type: array - meta: - $ref: "#/components/schemas/HistoricalJobListMeta" - type: object - ListIntegrationsResponse: - description: Response containing information about multiple integrations. - properties: - data: - description: Array of integration objects. - items: - $ref: "#/components/schemas/Integration" - type: array - required: - - data - type: object - ListInterfaceTagsResponse: - description: Response for listing interface tags. - properties: - data: - $ref: "#/components/schemas/ListInterfaceTagsResponseData" - type: object - ListInterfaceTagsResponseData: - description: Response data for listing interface tags. - properties: - attributes: - $ref: "#/components/schemas/ListTagsResponseDataAttributes" id: - description: The interface ID - example: example:1.2.3.4:1 + description: Unique identifier for the code snippet. + example: "code-python-001" type: string type: - description: The type of the resource. The value should always be tags. + description: The programming language or SDK type of the code snippet. + example: "python" type: string + required: + - id + - type + - code type: object - ListInvestigationsResponse: - description: Response for listing investigations. + LLMObsInferenceContent: + description: A structured content block within a message. properties: - data: - description: List of investigations. - items: - $ref: "#/components/schemas/ListInvestigationsResponseData" - type: array - links: - $ref: "#/components/schemas/ListInvestigationsResponseLinks" - meta: - $ref: "#/components/schemas/ListInvestigationsResponseMeta" + type: + description: The content block type. + example: "text" + type: string + value: + $ref: "#/components/schemas/LLMObsInferenceContentValue" required: - - data - - meta - - links + - type + - value type: object - ListInvestigationsResponseData: - description: Data for an investigation list item. + LLMObsInferenceContentList: + description: List of structured content blocks in a message. + items: + $ref: "#/components/schemas/LLMObsInferenceContent" + type: array + LLMObsInferenceContentValue: + description: The typed value of a message content block. properties: - attributes: - $ref: "#/components/schemas/ListInvestigationsResponseDataAttributes" - id: - description: The unique identifier of the investigation. - example: "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d" + text: + description: Plain text content. + example: "Hello, how can I help you?" + type: string + tool_call: + $ref: "#/components/schemas/LLMObsInferenceToolCall" + tool_call_result: + $ref: "#/components/schemas/LLMObsInferenceToolResult" + type: object + LLMObsInferenceErrorResponse: + description: Error details returned when an inference provider returns an error. + properties: + message: + description: A human-readable description of the error. + example: "The model does not exist." type: string type: - $ref: "#/components/schemas/InvestigationType" + description: The provider-specific error type. + example: "invalid_request_error" + type: string required: - - id - type - - attributes + - message type: object - ListInvestigationsResponseDataAttributes: - description: Attributes of an investigation list item. + LLMObsInferenceFunction: + description: A function definition for a tool available to the model. properties: - status: - description: The current status of the investigation. - example: "conclusive" + description: + description: A description of what the function does. + example: "Get the current weather for a location." type: string - title: - description: The title of the investigation. - example: "Monitor alert investigation for web-server-01" + name: + description: The name of the function. + example: "get_weather" type: string + parameters: + additionalProperties: {} + description: JSON schema describing the function parameters. + example: + properties: + location: + type: string + type: object + type: object required: - - status - - title + - name + - parameters type: object - ListInvestigationsResponseLinks: - description: Pagination links for the list investigations response. + LLMObsInferenceMessage: + description: A single message in an LLM inference conversation. properties: - first: - description: Link to the first page. - example: "https://api.datadoghq.com/api/v2/bits-ai/investigations?page[offset]=0&page[limit]=10" + content: + description: Plain text content of the message. + example: "What is the capital of France?" type: string - last: - description: Link to the last page. - nullable: true + contents: + $ref: "#/components/schemas/LLMObsInferenceContentList" + id: + description: Unique identifier for the message. + example: "msg_001" type: string - next: - description: Link to the next page. - example: "https://api.datadoghq.com/api/v2/bits-ai/investigations?page[offset]=10&page[limit]=10" + role: + description: The role of the message author. + example: "user" type: string - prev: - description: Link to the previous page. + tool_calls: + $ref: "#/components/schemas/LLMObsInferenceToolCallsList" + tool_results: + $ref: "#/components/schemas/LLMObsInferenceToolResultsList" + type: object + LLMObsInferenceMessagesList: + description: List of messages in an inference conversation. + items: + $ref: "#/components/schemas/LLMObsInferenceMessage" + type: array + LLMObsInferenceRunResult: + description: The output of a completed LLM inference call. + properties: + assessment: + description: An optional assessment of the inference output quality. + example: "pass" nullable: true type: string - self: - description: Link to the current page. - example: "https://api.datadoghq.com/api/v2/bits-ai/investigations?page[offset]=0&page[limit]=10" + content: + description: The text content of the model response. + example: "The capital of France is Paris." type: string - required: - - first - - next - - self - type: object - ListInvestigationsResponseMeta: - description: Metadata for the list investigations response. - properties: - page: - $ref: "#/components/schemas/ListInvestigationsResponseMetaPage" - required: - - page - type: object - ListInvestigationsResponseMetaPage: - description: Pagination metadata. - properties: - limit: - description: Maximum number of results per page. - example: 10 + finish_reason: + description: The reason the model stopped generating tokens. + example: "stop" + type: string + inference_codes: + $ref: "#/components/schemas/LLMObsIntegrationInferenceCodesResponse" + input_tokens: + description: Number of input tokens consumed. + example: 15 format: int64 type: integer - offset: - description: Offset of the current page. - example: 0 + internal_reasoning: + $ref: "#/components/schemas/LLMObsInternalReasoning" + nullable: true + latency: + description: Request latency in milliseconds. + example: 843 format: int64 type: integer - total: - description: Total number of investigations. - example: 50 + output_tokens: + description: Number of output tokens generated. + example: 10 format: int64 type: integer - required: - - total - - limit - - offset - type: object - ListKindCatalogResponse: - description: List kind response. - properties: - data: - $ref: "#/components/schemas/KindResponseData" - meta: - $ref: "#/components/schemas/KindResponseMeta" - type: object - ListNotificationChannelsResponse: - description: Response type for listing notification channels for a user - properties: - data: - description: Array of notification channel data objects. - items: - $ref: "#/components/schemas/NotificationChannelData" - type: array - type: object - ListOnCallNotificationRulesResponse: - description: Response type for listing notification rules for a user - properties: - data: - description: Array of notification rule data objects. - items: - $ref: "#/components/schemas/OnCallNotificationRuleData" - type: array - included: - items: - $ref: "#/components/schemas/OnCallNotificationRulesIncluded" - type: array - type: object - ListPersonalAccessTokensResponse: - description: Response for a list of access tokens. Includes both personal and service access tokens. - properties: - data: - description: Array of access tokens. Includes both personal and service access tokens. - items: - $ref: "#/components/schemas/AccessTokenListItem" - type: array - included: - $ref: "#/components/schemas/AccessTokenResponseIncludedArray" - meta: - $ref: "#/components/schemas/PersonalAccessTokenResponseMeta" - type: object - ListPipelinesResponse: - description: Represents the response payload containing a list of pipelines and associated metadata. - properties: - data: - description: The `schema` `data`. - items: - $ref: "#/components/schemas/ObservabilityPipelineData" - type: array - meta: - $ref: "#/components/schemas/ListPipelinesResponseMeta" - required: - - data - type: object - ListPipelinesResponseMeta: - description: Metadata about the response. - properties: - totalCount: - description: The total number of pipelines. - example: 42 + tools: + $ref: "#/components/schemas/LLMObsInferenceToolsList" + total_tokens: + description: Total tokens used (input plus output). + example: 25 format: int64 type: integer + required: + - content + - input_tokens + - output_tokens + - total_tokens + - latency + - finish_reason + - inference_codes + - tools + - assessment type: object - ListPowerpacksResponse: - description: Response object which includes all powerpack configurations. + LLMObsInferenceTool: + description: A tool definition available to the model during inference. properties: - data: - description: List of powerpack definitions. - items: - $ref: "#/components/schemas/PowerpackData" - type: array - included: - description: Array of objects related to the users. - items: - $ref: "#/components/schemas/User" - type: array - links: - $ref: "#/components/schemas/PowerpackResponseLinks" - meta: - $ref: "#/components/schemas/PowerpacksResponseMeta" + function: + $ref: "#/components/schemas/LLMObsInferenceFunction" + type: + description: The type of tool. + example: "function" + type: string + required: + - type + - function type: object - ListRelationCatalogResponse: - description: List entity relation response. + LLMObsInferenceToolCall: + description: A tool call made during LLM inference. properties: - data: - $ref: "#/components/schemas/RelationResponseData" - included: - $ref: "#/components/schemas/ListRelationCatalogResponseIncluded" - links: - $ref: "#/components/schemas/ListRelationCatalogResponseLinks" - meta: - $ref: "#/components/schemas/RelationResponseMeta" + arguments: + additionalProperties: {} + description: The arguments passed to the tool. + example: + location: "San Francisco" + type: object + name: + description: The name of the tool being called. + example: "get_weather" + type: string + tool_id: + description: Unique identifier for the tool call. + example: "call_abc123" + type: string + type: + description: The type of tool call. + example: "function" + type: string type: object - ListRelationCatalogResponseIncluded: - description: List relation response included entities. + LLMObsInferenceToolCallsList: + description: List of tool calls in a message. items: - $ref: "#/components/schemas/EntityData" + $ref: "#/components/schemas/LLMObsInferenceToolCall" type: array - ListRelationCatalogResponseLinks: - description: List relation response links. + LLMObsInferenceToolResult: + description: The result returned by a tool call during LLM inference. properties: - next: - description: Next link. - example: "/api/v2/catalog/relation?filter[from_ref]=service:service-catalog&include=entity&page[limit]=2&page[offset]=2" + name: + description: The name of the tool that produced this result. + example: "get_weather" type: string - previous: - description: Previous link. + result: + description: The result content returned by the tool. + example: "The weather in San Francisco is 68°F and sunny." type: string - self: - description: Current link. - example: "/api/v2/catalog/relation?filter[from_ref]=service:service-catalog&include=entity&page[limit]=2&page[offset]=0" + tool_id: + description: Identifier matching the corresponding tool call. + example: "call_abc123" + type: string + type: + description: The type of tool result. + example: "function" type: string type: object - ListRowsResponse: - description: Paginated list of reference table rows. - example: - data: - - attributes: - values: - category: tor - intention: suspicious - ip_address: 102.130.113.9 - id: 102.130.113.9 - type: row - links: - first: "/api/v2/reference-tables/tables//rows/list?page[limit]=100" - self: "/api/v2/reference-tables/tables//rows/list?page[continuation_token]=" - meta: - page: - next_continuation_token: eyJzaWQiOjEyMzQ1LCJwayI6ImV4YW1wbGVfcGsifQ== - properties: - data: - description: The rows. - items: - $ref: "#/components/schemas/TableRowResourceData" - type: array - links: - $ref: "#/components/schemas/ListRowsResponseLinks" - meta: - $ref: "#/components/schemas/ListRowsResponseMeta" - required: - - data - - links - type: object - ListRowsResponseLinks: - description: Pagination links for the list rows response. + LLMObsInferenceToolResultsList: + description: List of tool results in a message. + items: + $ref: "#/components/schemas/LLMObsInferenceToolResult" + type: array + LLMObsInferenceToolsList: + description: List of tools available to the model. + items: + $ref: "#/components/schemas/LLMObsInferenceTool" + type: array + LLMObsIntegrationAccount: + description: A configured account for an LLM provider integration. properties: - first: - description: Link to the first page of results. - example: "/api/v2/reference-tables/tables//rows/list?page[limit]=100" + account_id: + description: Provider-specific account identifier. + example: "org-XYZ123" type: string - next: - description: Link to the next page of results. Only present when more rows are available. - example: "/api/v2/reference-tables/tables//rows/list?page[continuation_token]=" + account_name: + description: Human-readable name for the integration account. + example: "Production OpenAI" type: string - self: - description: Link to the current page of results. - example: "/api/v2/reference-tables/tables//rows/list?page[continuation_token]=" + account_region: + description: Provider region associated with the account, if applicable. + example: "us-east-1" type: string - required: - - self - - first - type: object - ListRowsResponseMeta: - description: Contains pagination details, including the continuation token for fetching additional rows. - properties: - page: - $ref: "#/components/schemas/ListRowsResponseMetaPage" - type: object - ListRowsResponseMetaPage: - description: Contains the continuation token for navigating to the next page of rows. - properties: - next_continuation_token: - description: >- - Opaque token to pass as the `page[continuation_token]` query parameter to fetch the next page of results. Only present when more rows are available. - example: eyJzaWQiOjEyMzQ1LCJwayI6ImV4YW1wbGVfcGsifQ== + azure_openai_metadata: + $ref: "#/components/schemas/LLMObsAzureOpenAIMetadata" + id: + description: Unique identifier for the integration account. + example: "account-abc123" type: string + integration: + description: The name of the LLM provider integration. + example: openai + type: string + vertex_ai_metadata: + $ref: "#/components/schemas/LLMObsVertexAIMetadata" + required: + - id + - account_id + - account_name + - integration type: object - ListRulesResponse: - description: Scorecard rules response. - properties: - data: - $ref: "#/components/schemas/ListRulesResponseData" - links: - $ref: "#/components/schemas/ListRulesResponseLinks" - type: object - ListRulesResponseData: - description: Array of rule details. + LLMObsIntegrationInferenceCodesResponse: + description: List of generated code snippets for the inference configuration. items: - $ref: "#/components/schemas/ListRulesResponseDataItem" + $ref: "#/components/schemas/LLMObsInferenceCode" type: array - ListRulesResponseDataItem: - description: Rule details. - properties: - attributes: - $ref: "#/components/schemas/RuleAttributes" - id: - $ref: "#/components/schemas/RuleId" - relationships: - $ref: "#/components/schemas/RelationshipToRule" - type: - $ref: "#/components/schemas/RuleType" - type: object - ListRulesResponseLinks: - description: Links attributes. + LLMObsIntegrationInferenceRequest: + description: Parameters for an LLM inference request. properties: - next: - description: |- - Link for the next set of rules. - example: "/api/v2/scorecard/rules?page%5Blimit%5D=2&page%5Boffset%5D=2&page%5Bsize%5D=2" + anthropic_metadata: + $ref: "#/components/schemas/LLMObsAnthropicMetadata" + nullable: true + azure_openai_metadata: + $ref: "#/components/schemas/LLMObsAzureOpenAIMetadata" + nullable: true + bedrock_metadata: + $ref: "#/components/schemas/LLMObsBedrockMetadata" + nullable: true + frequency_penalty: + description: Penalty for token frequency to reduce repetition. + example: 0.0 + format: double + nullable: true + type: number + json_schema: + description: JSON schema for structured output, if supported by the model. + example: '{"type":"object","properties":{"answer":{"type":"string"}}}' + nullable: true type: string - type: object - ListScorecardScoresMeta: - description: Pagination metadata for scores. - properties: - count: - description: The number of results returned in this page. - format: int64 - type: integer - limit: - description: The page limit. + max_completion_tokens: + description: Maximum number of completion tokens to generate (alternative to max_tokens for some providers). + example: 1024 format: int64 + nullable: true type: integer - offset: - description: The page offset. + max_tokens: + description: Maximum number of tokens to generate. + example: 1024 format: int64 + nullable: true type: integer - total: - description: The total number of results. + messages: + $ref: "#/components/schemas/LLMObsInferenceMessagesList" + model_id: + description: The model identifier to use for inference. + example: "gpt-4o" + type: string + openai_metadata: + $ref: "#/components/schemas/LLMObsOpenAIMetadata" + nullable: true + presence_penalty: + description: Penalty for token presence to encourage topic diversity. + example: 0.0 + format: double + nullable: true + type: number + temperature: + description: Sampling temperature between 0 and 2. Higher values produce more random output. + example: 0.7 + format: double + nullable: true + type: number + tools: + $ref: "#/components/schemas/LLMObsInferenceToolsList" + top_k: + description: Top-K sampling parameter. + example: 50 format: int64 + nullable: true type: integer - type: object - ListScorecardScoresResponse: - description: A list of scorecard scores for a given aggregation type. - properties: - data: - description: Array of score objects. - items: - $ref: "#/components/schemas/ScorecardScoreData" - type: array - links: - $ref: "#/components/schemas/ListRulesResponseLinks" - meta: - $ref: "#/components/schemas/ListScorecardScoresMeta" - type: object - ListScorecardsResponse: - description: Response containing a list of scorecards. - properties: - data: - $ref: "#/components/schemas/ListScorecardsResponseData" + top_p: + description: Nucleus sampling probability mass. + example: 1.0 + format: double + nullable: true + type: number + vertex_ai_metadata: + $ref: "#/components/schemas/LLMObsVertexAIMetadata" + nullable: true required: - - data - type: object - ListScorecardsResponseData: - description: Array of scorecards. - items: - $ref: "#/components/schemas/ScorecardListResponseData" - type: array - ListSecurityFindingsResponse: - description: The expected response schema when listing security findings. - properties: - data: - description: Array of security findings matching the search query. - items: - $ref: "#/components/schemas/SecurityFindingsData" - type: array - links: - $ref: "#/components/schemas/SecurityFindingsLinks" - meta: - $ref: "#/components/schemas/SecurityFindingsMeta" - type: object - ListServiceAccessTokensResponse: - description: Response for a list of access tokens. - properties: - data: - description: Array of access tokens. - items: - $ref: "#/components/schemas/ServiceAccessToken" - type: array - included: - $ref: "#/components/schemas/AccessTokenResponseIncludedArray" - meta: - $ref: "#/components/schemas/ServiceAccessTokenResponseMeta" + - model_id + - messages type: object - ListSharedDashboardsResponse: - description: Response containing shared dashboards for a dashboard. + LLMObsIntegrationInferenceResponse: + description: The result of an LLM inference request, including input parameters and the model response. properties: - data: - description: Shared dashboards for the dashboard. - items: - $ref: "#/components/schemas/SharedDashboardResponse" - type: array - included: - description: Users and dashboards related to the shared dashboards. - items: - $ref: "#/components/schemas/SharedDashboardIncluded" - type: array + anthropic_metadata: + $ref: "#/components/schemas/LLMObsAnthropicMetadata" + nullable: true + azure_openai_metadata: + $ref: "#/components/schemas/LLMObsAzureOpenAIMetadata" + nullable: true + bedrock_metadata: + $ref: "#/components/schemas/LLMObsBedrockMetadata" + nullable: true + error_response: + $ref: "#/components/schemas/LLMObsInferenceErrorResponse" + frequency_penalty: + description: Frequency penalty that was applied. + example: 0.0 + format: double + nullable: true + type: number + json_schema: + description: JSON schema that was applied for structured output. + example: '{"type":"object","properties":{"answer":{"type":"string"}}}' + nullable: true + type: string + max_completion_tokens: + description: Maximum number of completion tokens that were configured. + example: 1024 + format: int64 + nullable: true + type: integer + max_tokens: + description: Maximum number of tokens that were configured. + example: 1024 + format: int64 + nullable: true + type: integer + messages: + $ref: "#/components/schemas/LLMObsInferenceMessagesList" + model_id: + description: The model identifier used for inference. + example: "gpt-4o" + type: string + openai_metadata: + $ref: "#/components/schemas/LLMObsOpenAIMetadata" + nullable: true + presence_penalty: + description: Presence penalty that was applied. + example: 0.0 + format: double + nullable: true + type: number + response: + $ref: "#/components/schemas/LLMObsInferenceRunResult" + temperature: + description: Sampling temperature that was used. + example: 0.7 + format: double + nullable: true + type: number + tools: + $ref: "#/components/schemas/LLMObsInferenceToolsList" + top_k: + description: Top-K sampling parameter that was used. + example: 50 + format: int64 + nullable: true + type: integer + top_p: + description: Nucleus sampling parameter that was used. + example: 1.0 + format: double + nullable: true + type: number + vertex_ai_metadata: + $ref: "#/components/schemas/LLMObsVertexAIMetadata" + nullable: true required: - - data - - included + - model_id + - messages + - response type: object - ListSourcemapsResponse: - description: Response containing a paginated list of source maps. + LLMObsIntegrationModel: + description: A model available for a given LLM provider integration and account. properties: - data: - $ref: "#/components/schemas/SourcemapsData" - meta: - $ref: "#/components/schemas/SourcemapsListMeta" + has_access: + description: Whether the account has access to this model. + example: true + type: boolean + id: + description: Unique identifier for the model entry. + example: "gpt-4o" + type: string + integration: + description: The name of the LLM provider integration. + example: "openai" + type: string + integration_display_name: + description: Human-readable name of the LLM provider integration. + example: "OpenAI" + type: string + json_schema: + description: Whether the model supports structured output via JSON schema. + example: true + type: boolean + model_display_name: + description: Human-readable model name. + example: "GPT-4o" + type: string + model_id: + description: Provider-specific model identifier used in inference calls. + example: "gpt-4o" + type: string + provider: + description: The underlying model provider. + example: "openai" + type: string + provider_display_name: + description: Human-readable name of the underlying model provider. + example: "OpenAI" + type: string + region_prefix_overrides: + $ref: "#/components/schemas/LLMObsIntegrationModelRegionPrefixOverrides" required: - - data + - id + - model_id + - model_display_name + - integration + - integration_display_name + - provider + - provider_display_name + - json_schema + - has_access type: object - ListTagsResponse: - description: List tags response. + LLMObsIntegrationModelRegionPrefixOverrides: + additionalProperties: + type: string + description: Map of region-specific model ID prefix overrides. + example: + us-east-1: "us." + type: object + LLMObsIntegrationName: + description: The name of a supported LLM provider integration. + enum: + - openai + - amazon_bedrock + - anthropic + - azure_openai + - vertex_ai + - llmproxy + example: openai + type: string + x-enum-varnames: + - OPENAI + - AMAZON_BEDROCK + - ANTHROPIC + - AZURE_OPENAI + - VERTEX_AI + - LLMPROXY + LLMObsInternalReasoning: + description: The model's internal reasoning or thinking output, if available. properties: - data: - $ref: "#/components/schemas/ListTagsResponseData" + reasoning_tokens: + description: Number of tokens used for internal reasoning. + example: 256 + format: int64 + nullable: true + type: integer + text: + description: The reasoning text produced by the model. + example: "Let me think about this step by step..." + type: string + required: + - text type: object - ListTagsResponseData: - description: The list tags response data. + LLMObsLabelSchema: + description: Schema definition for a single label in an annotation queue. properties: - attributes: - $ref: "#/components/schemas/ListTagsResponseDataAttributes" + description: + description: Description of the label. + example: "Rating of the response quality." + type: string + has_assessment: + description: Whether this label includes an assessment field. + example: false + type: boolean + has_reasoning: + description: Whether this label includes a reasoning field. + example: false + type: boolean id: - description: The device ID - example: example:1.2.3.4 + description: Unique identifier of the label schema. Assigned by the server if not provided. + example: "abc-123" type: string - type: - description: The type of the resource. The value should always be tags. + is_assessment: + description: Whether the boolean label represents an assessment. Requires `has_assessment` to be true. + example: false + type: boolean + is_integer: + description: Whether score values must be integers. Applicable to score-type labels. + example: false + type: boolean + is_required: + description: Whether this label is required for an annotation. + example: true + type: boolean + max: + description: Maximum value for score-type labels. + example: 5.0 + format: double + type: number + min: + description: Minimum value for score-type labels. + example: 0.0 + format: double + type: number + name: + description: Name of the label. Must match the pattern `^[a-zA-Z0-9_-]+$` and be unique within the queue. + example: "quality" type: string - type: object - ListTagsResponseDataAttributes: - description: The definition of ListTagsResponseDataAttributes object. - properties: - by_source: - description: The list of device tags grouped by source. - items: - $ref: "#/components/schemas/DeviceTagsBySource" - readOnly: true - type: array - tags: - description: The list of tags - example: ["tag:test", "tag:testbis"] + type: + $ref: "#/components/schemas/LLMObsLabelSchemaType" + values: + description: Allowed values for categorical-type labels. Must contain at least one non-empty, unique value. + example: + - "good" + - "bad" + - "neutral" items: - description: A tag string in `key:value` format. + description: An allowed value for a categorical label. type: string type: array + required: + - name + - type type: object - ListTeamsInclude: - description: Included related resources optionally requested. + LLMObsLabelSchemaType: + description: Type of a label in an annotation queue label schema. enum: - - team_links - - user_team_permissions + - score + - categorical + - boolean + - text + example: score type: string x-enum-varnames: - - TEAM_LINKS - - USER_TEAM_PERMISSIONS - ListTeamsSort: - description: Specifies the order of the returned teams + - SCORE + - CATEGORICAL + - BOOLEAN + - TEXT + LLMObsLegacyContentBlock: + description: Validation requirements for an existing non-frontend display block. + properties: + type: + $ref: "#/components/schemas/LLMObsLegacyContentBlockType" + type: object + LLMObsLegacyContentBlockType: + description: Type discriminator for an existing non-frontend display block. enum: - - name - - -name - - user_count - - -user_count + - markdown + - header + - text + - json + - image + - widget + - llmobs_trace + example: markdown type: string x-enum-varnames: - - NAME - - _NAME - - USER_COUNT - - _USER_COUNT - ListVulnerabilitiesResponse: - description: The expected response schema when listing vulnerabilities. + - MARKDOWN + - HEADER + - TEXT + - JSON + - IMAGE + - WIDGET + - LLMOBS_TRACE + LLMObsMetricAssessment: + description: Assessment result for an Agent Observability experiment metric. + enum: + - pass + - fail + example: pass + type: string + x-enum-varnames: + - PASS + - FAIL + LLMObsMetricScoreType: + description: Type of metric recorded for an Agent Observability experiment. + enum: + - score + - categorical + - boolean + - json + example: score + type: string + x-enum-varnames: + - SCORE + - CATEGORICAL + - BOOLEAN + - JSON + LLMObsOpenAIMetadata: + description: OpenAI-specific metadata for an inference request. properties: - data: - description: List of vulnerabilities. - items: - $ref: "#/components/schemas/Vulnerability" - type: array - links: - $ref: "#/components/schemas/Links" - meta: - $ref: "#/components/schemas/Metadata" - required: - - data + reasoning_effort: + $ref: "#/components/schemas/LLMObsOpenAIReasoningEffort" + reasoning_summary: + $ref: "#/components/schemas/LLMObsOpenAIReasoningSummary" type: object - ListVulnerableAssetsResponse: - description: The expected response schema when listing vulnerable assets. + LLMObsOpenAIReasoningEffort: + description: The reasoning effort level for OpenAI models that support it. + enum: + - none + - low + - medium + - high + - xhigh + example: medium + nullable: true + type: string + x-enum-varnames: + - NONE + - LOW + - MEDIUM + - HIGH + - XHIGH + LLMObsOpenAIReasoningSummary: + description: The verbosity of the reasoning summary. + enum: + - auto + - concise + - detailed + example: auto + nullable: true + type: string + x-enum-varnames: + - AUTO + - CONCISE + - DETAILED + LLMObsPatternsActivityProgress: + description: Progress information for a single step of a patterns run. properties: - data: - description: List of vulnerable assets. - items: - $ref: "#/components/schemas/Asset" - type: array - links: - $ref: "#/components/schemas/Links" - meta: - $ref: "#/components/schemas/Metadata" + name: + description: Name of the step. + example: generate_topics + type: string + started_at: + description: Timestamp when the step started. Null if the step has not started. + example: "2024-01-15T10:30:00Z" + format: date-time + nullable: true + type: string + status: + description: Status of the step. + example: completed + type: string required: - - data - type: object - ListWorkflowsResponse: - description: The response object for a listing workflows request. - properties: - data: - description: A list of workflows. - items: - $ref: "#/components/schemas/WorkflowListItem" - type: array - meta: - $ref: "#/components/schemas/ListWorkflowsResponseMeta" - type: object - ListWorkflowsResponseMeta: - description: Metadata for a List Workflows response. - properties: - page: - $ref: "#/components/schemas/ListWorkflowsResponseMetaPage" - type: object - ListWorkflowsResponseMetaPage: - description: Pagination metadata for a List Workflows response. - properties: - totalCount: - description: The total number of workflows in the organization. - format: int64 - type: integer - totalFilteredCount: - description: The total number of workflows matching the applied filters. - format: int64 - type: integer + - name + - status type: object - Log: - description: Object description of a log after being processed and stored by Datadog. + LLMObsPatternsClusteredPoint: + description: A single data point grouped into a topic. properties: - attributes: - $ref: "#/components/schemas/LogAttributes" - id: - description: Unique ID of the Log. - example: "AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA" + event_id: + description: Identifier of the source event. + example: "AAAAAYabc123" type: string - type: - $ref: "#/components/schemas/LogType" - type: object - LogAttributes: - description: JSON object containing all log attributes and their associated values. - properties: - attributes: - additionalProperties: {} - description: JSON object of attributes from your log. - example: {"customAttribute": 123, "duration": 2345} - type: object - host: - description: |- - Name of the machine from where the logs are being sent. - example: "i-0123" + id: + description: Unique identifier of the clustered point. + example: "9b0c1d2e-3f40-5a61-b728-c9d0e1f2a3b4" type: string - message: - description: |- - The message [reserved attribute](https://docs.datadoghq.com/logs/log_collection/#reserved-attributes) - of your log. By default, Datadog ingests the value of the message attribute as the body of the log entry. - That value is then highlighted and displayed in the Logstream, where it is indexed for full text search. - example: "Host connected to remote" + input: + description: Input text of the source span. + example: "How do I get a refund?" type: string - service: - description: |- - The name of the application or service generating the log events. - It is used to switch from Logs to APM, so make sure you define the same - value when you use both products. - example: "agent" + is_included: + description: Whether the point is included in the patterns dataset. + example: false + type: boolean + is_suggested: + description: Whether the point is suggested for inclusion in the patterns dataset. + example: true + type: boolean + session_id: + description: Identifier of the source session. + example: "session-7c3f5a1b" type: string - status: - description: |- - Status of the message associated with your log. - example: "INFO" + span_id: + description: Identifier of the source span. + example: "1234567890123456789" type: string - tags: - description: Array of tags associated with your log. - example: ["team:A"] - items: - description: Tag associated with your log. - type: string - type: array - timestamp: - description: Timestamp of your log. - example: "2019-01-02T09:42:36.320Z" - format: date-time + topic_id: + description: Identifier of the topic the point belongs to. + example: "5c1fae90-2b6d-4e3a-9f12-7a0c4d8e6b21" type: string + required: + - id + - event_id + - topic_id + - span_id + - session_id + - input + - is_suggested + - is_included type: object - LogType: - default: log - description: Type of the event. - enum: - - log - example: "log" - type: string - x-enum-varnames: - - LOG - LogsAggregateBucket: - description: A bucket values - properties: - by: - additionalProperties: - description: The values for each group by - description: The key, value pairs for each group by - example: {"@state": "success", "@version": "abc"} - type: object - computes: - additionalProperties: - $ref: "#/components/schemas/LogsAggregateBucketValue" - description: A map of the metric name -> value for regular compute or list of values for a timeseries - type: object - type: object - LogsAggregateBucketValue: - description: A bucket value, can be either a timeseries or a single value - oneOf: - - $ref: "#/components/schemas/LogsAggregateBucketValueSingleString" - - $ref: "#/components/schemas/LogsAggregateBucketValueSingleNumber" - - $ref: "#/components/schemas/LogsAggregateBucketValueTimeseries" - LogsAggregateBucketValueSingleNumber: - description: A single number value - format: double - type: number - LogsAggregateBucketValueSingleString: - description: A single string value - type: string - LogsAggregateBucketValueTimeseries: - description: A timeseries array - items: - $ref: "#/components/schemas/LogsAggregateBucketValueTimeseriesPoint" - type: array - x-generate-alias-as-model: true - LogsAggregateBucketValueTimeseriesPoint: - description: A timeseries point + LLMObsPatternsClusteredPointRef: + description: |- + A clustered point attached inline to a topic. The metric fields are populated + only when the request includes `include_metrics=true`. properties: - time: - description: The time value for this point - example: "2020-06-08T11:55:00Z" - type: string - value: - description: The value for this point - example: 19 + duration: + description: Duration of the source span in nanoseconds. Included only when metrics are requested. + example: 1500000 format: double type: number - type: object - LogsAggregateRequest: - description: The object sent with the request to retrieve a list of logs from your organization. - properties: - compute: - description: The list of metrics or timeseries to compute for the retrieved buckets. - items: - $ref: "#/components/schemas/LogsCompute" - type: array - filter: - $ref: "#/components/schemas/LogsQueryFilter" - group_by: - description: The rules for the group by - items: - $ref: "#/components/schemas/LogsGroupBy" - type: array - options: - $ref: "#/components/schemas/LogsQueryOptions" - page: - $ref: "#/components/schemas/LogsAggregateRequestPage" - type: object - LogsAggregateRequestPage: - description: Paging settings - properties: - cursor: + estimated_total_cost: + description: Estimated total cost of the source span. Included only when metrics are requested. + example: 0.0021 + format: double + type: number + evaluation: + additionalProperties: {} description: |- - The returned paging point to use to get the next results. Note: at most 1000 results can be paged. - example: "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" + Evaluation results for the source span keyed by evaluation name. Included + only when metrics are requested. + type: object + input_tokens: + description: Number of input tokens of the source span. Included only when metrics are requested. + example: 128 + format: double + type: number + output_tokens: + description: Number of output tokens of the source span. Included only when metrics are requested. + example: 64 + format: double + type: number + span_id: + description: Identifier of the source span. + example: "1234567890123456789" + type: string + status: + description: Status of the source span. Included only when metrics are requested. + example: ok type: string + total_tokens: + description: Total number of tokens of the source span. Included only when metrics are requested. + example: 192 + format: double + type: number + required: + - span_id type: object - LogsAggregateResponse: - description: The response object for the logs aggregate API endpoint + LLMObsPatternsClusteredPointRefsList: + description: List of clustered points attached to a topic. + items: + $ref: "#/components/schemas/LLMObsPatternsClusteredPointRef" + type: array + LLMObsPatternsClusteredPointsList: + description: List of clustered points. + items: + $ref: "#/components/schemas/LLMObsPatternsClusteredPoint" + type: array + LLMObsPatternsClusteredPointsResponse: + description: Response containing the clustered points of an Agent Observability topic. properties: data: - $ref: "#/components/schemas/LogsAggregateResponseData" - meta: - $ref: "#/components/schemas/LogsResponseMetadata" + $ref: "#/components/schemas/LLMObsPatternsClusteredPointsResponseData" + required: + - data type: object - LogsAggregateResponseData: - description: The query results + LLMObsPatternsClusteredPointsResponseAttributes: + description: Attributes of an Agent Observability patterns clustered points response. properties: - buckets: - description: The list of matching buckets, one item per bucket - items: - $ref: "#/components/schemas/LogsAggregateBucket" - type: array + next_page_token: + description: Pagination token for the next page of points. Null if there are no more pages. + example: "eyJvZmZzZXQiOjUwfQ==" + nullable: true + type: string + points: + $ref: "#/components/schemas/LLMObsPatternsClusteredPointsList" + topic_id: + description: Identifier of the topic the points belong to. + example: "5c1fae90-2b6d-4e3a-9f12-7a0c4d8e6b21" + type: string + required: + - topic_id + - next_page_token + - points type: object - LogsAggregateResponseStatus: - description: The status of the response - enum: ["done", "timeout"] - example: "done" - type: string - x-enum-varnames: ["DONE", "TIMEOUT"] - LogsAggregateSort: - description: A sort rule - example: {"aggregation": "count", "order": "asc"} + LLMObsPatternsClusteredPointsResponseData: + description: Data object of an Agent Observability patterns clustered points response. properties: - aggregation: - $ref: "#/components/schemas/LogsAggregationFunction" - metric: - description: The metric to sort by (only used for `type=measure`) - example: "@duration" + attributes: + $ref: "#/components/schemas/LLMObsPatternsClusteredPointsResponseAttributes" + id: + description: Identifier of the topic the points belong to. + example: "5c1fae90-2b6d-4e3a-9f12-7a0c4d8e6b21" type: string - order: - $ref: "#/components/schemas/LogsSortOrder" type: - $ref: "#/components/schemas/LogsAggregateSortType" + $ref: "#/components/schemas/LLMObsPatternsClusteredPointsType" + required: + - id + - type + - attributes type: object - LogsAggregateSortType: - default: "alphabetical" - description: The type of sorting algorithm - enum: ["alphabetical", "measure"] - type: string - x-enum-varnames: ["ALPHABETICAL", "MEASURE"] - LogsAggregationFunction: - description: An aggregation function - enum: ["count", "cardinality", "pc75", "pc90", "pc95", "pc98", "pc99", "sum", "min", "max", "avg", "median"] - example: "pc90" + LLMObsPatternsClusteredPointsType: + description: Resource type of an Agent Observability patterns clustered points response. + enum: + - clustered_points_response + example: clustered_points_response type: string - x-enum-varnames: ["COUNT", "CARDINALITY", "PERCENTILE_75", "PERCENTILE_90", "PERCENTILE_95", "PERCENTILE_98", "PERCENTILE_99", "SUM", "MIN", "MAX", "AVG", "MEDIAN"] - LogsArchive: - description: The logs archive. - properties: - data: - $ref: "#/components/schemas/LogsArchiveDefinition" - type: object - LogsArchiveAttributes: - description: The attributes associated with the archive. + x-enum-varnames: + - CLUSTERED_POINTS_RESPONSE + LLMObsPatternsConfigAttributes: + description: Attributes of an Agent Observability patterns configuration. properties: - compression_method: - $ref: "#/components/schemas/LogsArchiveAttributesCompressionMethod" - destination: - $ref: "#/components/schemas/LogsArchiveDestination" - include_tags: - default: false - description: |- - To store the tags in the archive, set the value "true". - If it is set to "false", the tags will be deleted when the logs are sent to the archive. - example: false - type: boolean - lookup_attributes: - description: An array of attributes to use as lookup keys for the archive. - example: ["trace_id", "user_id"] - items: - description: A lookup attribute name. - type: string - type: array - name: - description: The archive name. - example: Nginx Archive + account_id: + description: Integration account ID for a bring-your-own-model configuration. + example: "1000000001" + nullable: true type: string - partitioning_attributes: - description: An array of attributes to use as partition keys for the archive. The attribute used most frequently for querying should be first. - example: ["service", "status"] - items: - description: A partition attribute name. - type: string - type: array - query: - description: The archive query/filter. Logs matching this query are included in the archive. - example: source:nginx + created_at: + description: Timestamp when the configuration was created. + example: "2024-01-15T10:30:00Z" + format: date-time type: string - rehydration_max_scan_size_in_gb: - description: Maximum scan size for rehydration from this archive. - example: 100 - format: int64 + evp_query: + description: Query that selects the spans the patterns run analyzes. + example: "@ml_app:support-bot" + type: string + hierarchy_depth: + description: Depth of the topic hierarchy to generate. + example: 2 + format: int32 + maximum: 2147483647 + type: integer + integration_provider: + description: Integration provider for a bring-your-own-model configuration. + example: openai + nullable: true + type: string + model_name: + description: Model name for a bring-your-own-model configuration. + example: gpt-4o nullable: true + type: string + name: + description: Name of the configuration. + example: "Support chatbot topics" + type: string + num_records: + description: Maximum number of records to process for the run. + example: 1000 + format: int32 + maximum: 2147483647 type: integer - rehydration_tags: - description: An array of tags to add to rehydrated logs from an archive. - example: ["team:intake", "team:app"] - items: - description: A given tag in the `:` format. - type: string - type: array - state: - $ref: "#/components/schemas/LogsArchiveState" + sampling_ratio: + description: Fraction of matching spans to sample for the run. + example: 0.1 + format: double + type: number + scope: + description: Scope of the configuration. + example: "" + type: string + template: + description: Template used to guide topic generation. + example: "" + nullable: true + type: string + updated_at: + description: Timestamp when the configuration was last updated. + example: "2024-01-15T10:30:00Z" + format: date-time + type: string required: - name - - query - - destination - type: object - LogsArchiveAttributesCompressionMethod: - default: GZIP - description: The type of compression for the archive. - enum: - - GZIP - - ZSTD - example: GZIP - type: string - x-enum-varnames: - - GZIP - - ZSTD - LogsArchiveCreateRequest: - description: The logs archive. - properties: - data: - $ref: "#/components/schemas/LogsArchiveCreateRequestDefinition" + - evp_query + - sampling_ratio + - num_records + - hierarchy_depth + - scope + - created_at + - updated_at type: object - LogsArchiveCreateRequestAttributes: - description: The attributes associated with the archive. + LLMObsPatternsConfigItem: + description: A single Agent Observability patterns configuration in a list response. properties: - compression_method: - $ref: "#/components/schemas/LogsArchiveAttributesCompressionMethod" - destination: - $ref: "#/components/schemas/LogsArchiveCreateRequestDestination" - include_tags: - default: false - description: |- - To store the tags in the archive, set the value "true". - If it is set to "false", the tags will be deleted when the logs are sent to the archive. - example: false - type: boolean - lookup_attributes: - description: An array of attributes to use as lookup keys for the archive. - example: ["trace_id", "user_id"] - items: - description: A lookup attribute name. - type: string - type: array - name: - description: The archive name. - example: Nginx Archive + account_id: + description: Integration account ID for a bring-your-own-model configuration. + example: "1000000001" + nullable: true type: string - partitioning_attributes: - description: An array of attributes to use as partition keys for the archive. The attribute used most frequently for querying should be first. - example: ["service", "status"] - items: - description: A partition attribute name. - type: string - type: array - query: - description: The archive query/filter. Logs matching this query are included in the archive. - example: source:nginx + created_at: + description: Timestamp when the configuration was created. + example: "2024-01-15T10:30:00Z" + format: date-time type: string - rehydration_max_scan_size_in_gb: - description: Maximum scan size for rehydration from this archive. - example: 100 - format: int64 + evp_query: + description: Query that selects the spans the patterns run analyzes. + example: "@ml_app:support-bot" + type: string + hierarchy_depth: + description: Depth of the topic hierarchy to generate. + example: 2 + format: int32 + maximum: 2147483647 + type: integer + id: + description: Unique identifier of the configuration. + example: "a7c8d9e0-1234-5678-9abc-def012345678" + type: string + integration_provider: + description: Integration provider for a bring-your-own-model configuration. + example: openai + nullable: true + type: string + model_name: + description: Model name for a bring-your-own-model configuration. + example: gpt-4o nullable: true + type: string + name: + description: Name of the configuration. + example: "Support chatbot topics" + type: string + num_records: + description: Maximum number of records to process for the run. + example: 1000 + format: int32 + maximum: 2147483647 type: integer - rehydration_tags: - description: An array of tags to add to rehydrated logs from an archive. - example: ["team:intake", "team:app"] - items: - description: A given tag in the `:` format. - type: string - type: array + sampling_ratio: + description: Fraction of matching spans to sample for the run. + example: 0.1 + format: double + type: number + scope: + description: Scope of the configuration. + example: "" + type: string + template: + description: Template used to guide topic generation. + example: "" + nullable: true + type: string + updated_at: + description: Timestamp when the configuration was last updated. + example: "2024-01-15T10:30:00Z" + format: date-time + type: string required: + - id - name - - query - - destination + - evp_query + - sampling_ratio + - num_records + - hierarchy_depth + - scope + - created_at + - updated_at type: object - LogsArchiveCreateRequestDefinition: - description: The definition of an archive. + LLMObsPatternsConfigItemsList: + description: List of patterns configurations. + items: + $ref: "#/components/schemas/LLMObsPatternsConfigItem" + type: array + LLMObsPatternsConfigResponse: + description: Response containing a single Agent Observability patterns configuration. properties: - attributes: - $ref: "#/components/schemas/LogsArchiveCreateRequestAttributes" - type: - default: archives - description: The type of the resource. The value should always be archives. - example: archives - type: string + data: + $ref: "#/components/schemas/LLMObsPatternsConfigResponseData" required: - - type + - data type: object - LogsArchiveCreateRequestDestination: - description: An archive's destination. - oneOf: - - $ref: "#/components/schemas/LogsArchiveDestinationAzure" - - $ref: "#/components/schemas/LogsArchiveDestinationGCS" - - $ref: "#/components/schemas/LogsArchiveDestinationS3" - LogsArchiveDefinition: - description: The definition of an archive. + LLMObsPatternsConfigResponseData: + description: Data object of an Agent Observability patterns configuration. properties: attributes: - $ref: "#/components/schemas/LogsArchiveAttributes" + $ref: "#/components/schemas/LLMObsPatternsConfigAttributes" id: - description: The archive ID. - example: a2zcMylnM4OCHpYusxIi3g - readOnly: true + description: Unique identifier of the configuration. + example: "a7c8d9e0-1234-5678-9abc-def012345678" type: string type: - default: archives - description: The type of the resource. The value should always be archives. - example: archives - readOnly: true - type: string + $ref: "#/components/schemas/LLMObsPatternsConfigType" required: + - id - type + - attributes type: object - LogsArchiveDestination: - description: An archive's destination. - nullable: true - oneOf: - - $ref: "#/components/schemas/LogsArchiveDestinationAzure" - - $ref: "#/components/schemas/LogsArchiveDestinationGCS" - - $ref: "#/components/schemas/LogsArchiveDestinationS3" - type: object - LogsArchiveDestinationAzure: - description: The Azure archive destination. + LLMObsPatternsConfigSnapshot: + description: Snapshot of the configuration used for a patterns run. properties: - container: - description: The container where the archive will be stored. - example: container-name + account_id: + description: Integration account ID used for a bring-your-own-model run. + example: "1000000001" type: string - integration: - $ref: "#/components/schemas/LogsArchiveIntegrationAzure" - path: - description: The archive path. + evp_query: + description: Query that selected the spans for the run. + example: "@ml_app:support-bot" type: string - region: - description: The region where the archive will be stored. + hierarchy_depth: + description: Depth of the topic hierarchy generated. + example: 2 + format: int32 + maximum: 2147483647 + type: integer + integration_provider: + description: Integration provider used for a bring-your-own-model run. + example: openai type: string - storage_account: - description: The associated storage account. - example: account-name + model_name: + description: Model name used for a bring-your-own-model run. + example: gpt-4o type: string - type: - $ref: "#/components/schemas/LogsArchiveDestinationAzureType" - required: - - storage_account - - container - - integration - - type + num_records: + description: Maximum number of records processed for the run. + example: 1000 + format: int32 + maximum: 2147483647 + type: integer + sampling_ratio: + description: Fraction of matching spans sampled for the run. + example: 0.1 + format: double + type: number type: object - LogsArchiveDestinationAzureType: - default: azure - description: Type of the Azure archive destination. + LLMObsPatternsConfigType: + description: Resource type of an Agent Observability patterns configuration. enum: - - azure - example: azure + - topic_discovery_configs + example: topic_discovery_configs type: string x-enum-varnames: - - AZURE - LogsArchiveDestinationGCS: - description: The GCS archive destination. + - TOPIC_DISCOVERY_CONFIGS + LLMObsPatternsConfigUpsertRequest: + description: Request to create or update an Agent Observability patterns configuration. properties: - bucket: - description: The bucket where the archive will be stored. - example: bucket-name - type: string - integration: - $ref: "#/components/schemas/LogsArchiveIntegrationGCS" - path: - description: The archive path. - type: string - type: - $ref: "#/components/schemas/LogsArchiveDestinationGCSType" + data: + $ref: "#/components/schemas/LLMObsPatternsConfigUpsertRequestData" required: - - bucket - - integration - - type + - data type: object - LogsArchiveDestinationGCSType: - default: gcs - description: Type of the GCS archive destination. - enum: - - gcs - example: gcs - type: string - x-enum-varnames: - - GCS - LogsArchiveDestinationS3: - description: The S3 archive destination. + LLMObsPatternsConfigUpsertRequestAttributes: + description: Attributes for creating or updating an Agent Observability patterns configuration. properties: - bucket: - description: The bucket where the archive will be stored. - example: bucket-name + account_id: + description: Integration account ID for a bring-your-own-model configuration. + example: "1000000001" type: string - encryption: - $ref: "#/components/schemas/LogsArchiveEncryptionS3" - integration: - $ref: "#/components/schemas/LogsArchiveIntegrationS3" - path: - description: The archive path. + config_id: + description: The ID of an existing configuration to update. If omitted, a new configuration is created. + example: "a7c8d9e0-1234-5678-9abc-def012345678" type: string - storage_class: - $ref: "#/components/schemas/LogsArchiveStorageClassS3Type" + evp_query: + description: Query that selects the spans the patterns run analyzes. + example: "@ml_app:support-bot" + type: string + hierarchy_depth: + description: Depth of the topic hierarchy to generate. + example: 2 + format: int32 + maximum: 2147483647 + type: integer + integration_provider: + description: Integration provider for a bring-your-own-model configuration. + example: openai + type: string + model_name: + description: Model name for a bring-your-own-model configuration. + example: gpt-4o + type: string + name: + description: Name of the configuration. + example: "Support chatbot topics" + type: string + num_records: + description: Maximum number of records to process for the run. + example: 1000 + format: int32 + maximum: 2147483647 + type: integer + sampling_ratio: + description: Fraction of matching spans to sample for the run. + example: 0.1 + format: double + type: number + scope: + description: Scope of the configuration. + example: "" + type: string + template: + description: Template used to guide topic generation. + example: "" + type: string + required: + - name + - evp_query + - sampling_ratio + - num_records + - hierarchy_depth + type: object + LLMObsPatternsConfigUpsertRequestData: + description: Data object for creating or updating an Agent Observability patterns configuration. + properties: + attributes: + $ref: "#/components/schemas/LLMObsPatternsConfigUpsertRequestAttributes" type: - $ref: "#/components/schemas/LogsArchiveDestinationS3Type" + $ref: "#/components/schemas/LLMObsPatternsConfigType" required: - - bucket - - integration - type + - attributes type: object - LogsArchiveDestinationS3Type: - default: s3 - description: Type of the S3 archive destination. + LLMObsPatternsConfigsListType: + description: Resource type of a list of Agent Observability patterns configurations. enum: - - s3 - example: s3 + - list_topic_discovery_configs_response + example: list_topic_discovery_configs_response type: string x-enum-varnames: - - S3 - LogsArchiveEncryptionS3: - description: The S3 encryption settings. + - LIST_TOPIC_DISCOVERY_CONFIGS_RESPONSE + LLMObsPatternsConfigsResponse: + description: Response containing a list of Agent Observability patterns configurations. properties: - key: - description: An Amazon Resource Name (ARN) used to identify an AWS KMS key. - example: arn:aws:kms:us-east-1:012345678901:key/DatadogIntegrationRoleKms + data: + $ref: "#/components/schemas/LLMObsPatternsConfigsResponseData" + required: + - data + type: object + LLMObsPatternsConfigsResponseAttributes: + description: Attributes of a list of Agent Observability patterns configurations. + properties: + configs: + $ref: "#/components/schemas/LLMObsPatternsConfigItemsList" + required: + - configs + type: object + LLMObsPatternsConfigsResponseData: + description: Data object of a list of Agent Observability patterns configurations. + properties: + attributes: + $ref: "#/components/schemas/LLMObsPatternsConfigsResponseAttributes" + id: + description: Identifier of the list response. + example: "1000000001" type: string type: - $ref: "#/components/schemas/LogsArchiveEncryptionS3Type" + $ref: "#/components/schemas/LLMObsPatternsConfigsListType" required: + - id - type + - attributes type: object - LogsArchiveEncryptionS3Type: - description: Type of S3 encryption for a destination. + LLMObsPatternsProgressList: + description: List of step-by-step progress entries for a patterns run. + items: + $ref: "#/components/schemas/LLMObsPatternsActivityProgress" + type: array + LLMObsPatternsRequestType: + description: Resource type for triggering an Agent Observability patterns run. enum: - - NO_OVERRIDE - - SSE_S3 - - SSE_KMS - example: SSE_S3 + - topic_discovery + example: topic_discovery type: string x-enum-varnames: - - NO_OVERRIDE - - SSE_S3 - - SSE_KMS - LogsArchiveIntegrationAzure: - description: The Azure archive's integration destination. + - TOPIC_DISCOVERY + LLMObsPatternsRunStatusResponse: + description: Response containing the status of an Agent Observability patterns run. properties: - client_id: - description: A client ID. - example: aaaaaaaa-1a1a-1a1a-1a1a-aaaaaaaaaaaa - type: string - tenant_id: - description: A tenant ID. - example: aaaaaaaa-1a1a-1a1a-1a1a-aaaaaaaaaaaa - type: string + data: + $ref: "#/components/schemas/LLMObsPatternsRunStatusResponseData" required: - - tenant_id - - client_id + - data type: object - LogsArchiveIntegrationGCS: - description: The GCS archive's integration destination. + LLMObsPatternsRunStatusResponseAttributes: + description: Attributes of an Agent Observability patterns run status. properties: - client_email: - description: A client email. - example: youremail@example.com + created_at: + description: Timestamp when the run was created. + example: "2024-01-15T10:30:00Z" + format: date-time type: string - project_id: - description: A project ID. - example: project-id + progress: + $ref: "#/components/schemas/LLMObsPatternsProgressList" + status: + description: Overall status of the run. + example: running + type: string + step: + description: The current step of the run. + example: generate_topics type: string required: - - client_email + - created_at + - status + - step + - progress type: object - LogsArchiveIntegrationS3: - description: >- - The S3 Archive's integration destination. You must provide one of the following: `access_key_id` alone, or both `account_id` and `role_name` together. - oneOf: - - $ref: "#/components/schemas/LogsArchiveIntegrationS3AccessKey" - - $ref: "#/components/schemas/LogsArchiveIntegrationS3Role" - LogsArchiveIntegrationS3AccessKey: - description: The S3 Archive's integration destination using an access key. + LLMObsPatternsRunStatusResponseData: + description: Data object of an Agent Observability patterns run status response. properties: - access_key_id: - description: The access key ID for the integration. - example: AKIAIOSFODNN7EXAMPLE + attributes: + $ref: "#/components/schemas/LLMObsPatternsRunStatusResponseAttributes" + id: + description: The ID of the patterns run. + example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" type: string + type: + $ref: "#/components/schemas/LLMObsPatternsRunStatusType" required: - - access_key_id + - id + - type + - attributes type: object - LogsArchiveIntegrationS3Role: - description: The S3 Archive's integration destination using an IAM role. + LLMObsPatternsRunStatusType: + description: Resource type of an Agent Observability patterns run status. + enum: + - topic_discovery_run_status + example: topic_discovery_run_status + type: string + x-enum-varnames: + - TOPIC_DISCOVERY_RUN_STATUS + LLMObsPatternsRunSummary: + description: Summary of an Agent Observability patterns run. properties: - account_id: - description: The account ID for the integration. - example: "123456789012" + completed_at: + description: Timestamp when the run completed. Null if the run has not completed. + example: "2024-01-15T10:45:00Z" + format: date-time + nullable: true type: string - role_name: - description: The name of the role to assume for the integration. - example: role-name + config_snapshot: + $ref: "#/components/schemas/LLMObsPatternsConfigSnapshot" + created_at: + description: Timestamp when the run was created. + example: "2024-01-15T10:30:00Z" + format: date-time + type: string + id: + description: Unique identifier of the run. + example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" + type: string + status: + description: Status of the run. + example: completed type: string required: - - account_id - - role_name + - id + - status + - created_at type: object - LogsArchiveOrder: - description: A ordered list of archive IDs. + LLMObsPatternsRunsList: + description: List of patterns runs. + items: + $ref: "#/components/schemas/LLMObsPatternsRunSummary" + type: array + LLMObsPatternsRunsListType: + description: Resource type of a list of Agent Observability patterns runs. + enum: + - list_topic_discovery_runs_response + example: list_topic_discovery_runs_response + type: string + x-enum-varnames: + - LIST_TOPIC_DISCOVERY_RUNS_RESPONSE + LLMObsPatternsRunsResponse: + description: Response containing the completed runs of an Agent Observability patterns configuration. properties: data: - $ref: "#/components/schemas/LogsArchiveOrderDefinition" + $ref: "#/components/schemas/LLMObsPatternsRunsResponseData" + required: + - data type: object - LogsArchiveOrderAttributes: - description: The attributes associated with the archive order. + LLMObsPatternsRunsResponseAttributes: + description: Attributes of an Agent Observability patterns runs response. properties: - archive_ids: - description: |- - An ordered array of `` strings, the order of archive IDs in the array - define the overall archives order for Datadog. - example: ["a2zcMylnM4OCHpYusxIi1g", "a2zcMylnM4OCHpYusxIi2g", "a2zcMylnM4OCHpYusxIi3g"] - items: - description: A given archive ID. - type: string - type: array + runs: + $ref: "#/components/schemas/LLMObsPatternsRunsList" required: - - archive_ids + - runs type: object - LogsArchiveOrderDefinition: - description: The definition of an archive order. + LLMObsPatternsRunsResponseData: + description: Data object of an Agent Observability patterns runs response. properties: attributes: - $ref: "#/components/schemas/LogsArchiveOrderAttributes" + $ref: "#/components/schemas/LLMObsPatternsRunsResponseAttributes" + id: + description: Identifier of the configuration the runs belong to. + example: "a7c8d9e0-1234-5678-9abc-def012345678" + type: string type: - $ref: "#/components/schemas/LogsArchiveOrderDefinitionType" + $ref: "#/components/schemas/LLMObsPatternsRunsListType" required: + - id - type - attributes type: object - LogsArchiveOrderDefinitionType: - default: archive_order - description: Type of the archive order definition. - enum: - - archive_order - example: archive_order - type: string - x-enum-varnames: - - ARCHIVE_ORDER - LogsArchiveState: - description: The state of the archive. - enum: - - UNKNOWN - - WORKING - - FAILING - - WORKING_AUTH_LEGACY - example: WORKING - type: string - x-enum-varnames: - - UNKNOWN - - WORKING - - FAILING - - WORKING_AUTH_LEGACY - LogsArchiveStorageClassS3Type: - default: STANDARD - description: The storage class where the archive will be stored. - enum: - - STANDARD - - STANDARD_IA - - ONEZONE_IA - - INTELLIGENT_TIERING - - GLACIER_IR - example: STANDARD - type: string - x-enum-varnames: - - STANDARD - - STANDARD_IA - - ONEZONE_IA - - INTELLIGENT_TIERING - - GLACIER_IR - LogsArchives: - description: The available archives. - properties: - data: - description: A list of archives. - items: - $ref: "#/components/schemas/LogsArchiveDefinition" - type: array - type: object - LogsCompute: - description: A compute rule to compute metrics or timeseries + LLMObsPatternsTopic: + description: A topic discovered by an Agent Observability patterns run. properties: - aggregation: - $ref: "#/components/schemas/LogsAggregationFunction" - interval: - description: |- - The time buckets' size (only used for type=timeseries) - Defaults to a resolution of 150 points - example: "5m" + created_at: + description: Timestamp when the topic was created. + example: "2024-01-15T10:30:00Z" + format: date-time type: string - metric: - description: The metric to use - example: "@duration" + description: + description: Description of the topic. + example: "Questions about invoices, charges, and refunds." + type: string + first_seen_at: + description: Timestamp when the topic was first seen. + example: "2024-01-15T10:30:00Z" + format: date-time + type: string + hierarchy_level: + description: Level of the topic in the hierarchy. Level 0 is a leaf topic. + example: 0 + format: int64 + type: integer + id: + description: Unique identifier of the topic. + example: "5c1fae90-2b6d-4e3a-9f12-7a0c4d8e6b21" + type: string + is_validated: + description: Whether the topic has been validated. + example: true + type: boolean + name: + description: Name of the topic. + example: "Billing questions" + type: string + parent_topic_id: + description: Identifier of the parent topic. Empty for top-level topics. + example: "" + type: string + point_count: + description: Number of data points assigned to the topic. + example: 125 + format: int64 + type: integer + run_id: + description: Identifier of the run that produced the topic. + example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" type: string - type: - $ref: "#/components/schemas/LogsComputeType" required: - - aggregation + - id + - run_id + - parent_topic_id + - hierarchy_level + - name + - description + - is_validated + - created_at + - point_count + - first_seen_at type: object - LogsComputeType: - default: "total" - description: The type of compute - enum: ["timeseries", "total"] - type: string - x-enum-varnames: ["TIMESERIES", "TOTAL"] - LogsGroupBy: - description: A group by rule + LLMObsPatternsTopicWithClusteredPoints: + description: |- + A topic discovered by an Agent Observability patterns run, including the + clustered points attached to leaf topics. properties: - facet: - description: The name of the facet to use (required) - example: "host" + cluster_points: + $ref: "#/components/schemas/LLMObsPatternsClusteredPointRefsList" + created_at: + description: Timestamp when the topic was created. + example: "2024-01-15T10:30:00Z" + format: date-time type: string - histogram: - $ref: "#/components/schemas/LogsGroupByHistogram" - limit: - default: 10 - description: |- - The maximum buckets to return for this group by. Note: at most 10000 buckets are allowed. - If grouping by multiple facets, the product of limits must not exceed 10000. + description: + description: Description of the topic. + example: "Questions about invoices, charges, and refunds." + type: string + first_seen_at: + description: Timestamp when the topic was first seen. + example: "2024-01-15T10:30:00Z" + format: date-time + type: string + hierarchy_level: + description: Level of the topic in the hierarchy. Level 0 is a leaf topic. + example: 0 format: int64 type: integer - missing: - $ref: "#/components/schemas/LogsGroupByMissing" - sort: - $ref: "#/components/schemas/LogsAggregateSort" - total: - $ref: "#/components/schemas/LogsGroupByTotal" + id: + description: Unique identifier of the topic. + example: "5c1fae90-2b6d-4e3a-9f12-7a0c4d8e6b21" + type: string + is_validated: + description: Whether the topic has been validated. + example: true + type: boolean + name: + description: Name of the topic. + example: "Billing questions" + type: string + parent_topic_id: + description: Identifier of the parent topic. Empty for top-level topics. + example: "" + type: string + point_count: + description: Number of data points assigned to the topic. + example: 125 + format: int64 + type: integer + run_id: + description: Identifier of the run that produced the topic. + example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" + type: string required: - - facet + - id + - run_id + - parent_topic_id + - hierarchy_level + - name + - description + - is_validated + - created_at + - point_count + - first_seen_at type: object - LogsGroupByHistogram: - description: |- - Used to perform a histogram computation (only for measure facets). - Note: at most 100 buckets are allowed, the number of buckets is (max - min)/interval. + LLMObsPatternsTopicsList: + description: List of discovered topics. + items: + $ref: "#/components/schemas/LLMObsPatternsTopic" + type: array + LLMObsPatternsTopicsResponse: + description: Response containing the topics discovered by an Agent Observability patterns run. properties: - interval: - description: The bin size of the histogram buckets - example: 10 - format: double - type: number - max: - description: |- - The maximum value for the measure used in the histogram - (values greater than this one are filtered out) - example: 100 - format: double - type: number - min: - description: |- - The minimum value for the measure used in the histogram - (values smaller than this one are filtered out) - example: 50 - format: double - type: number + data: + $ref: "#/components/schemas/LLMObsPatternsTopicsResponseData" required: - - interval - - min - - max + - data type: object - LogsGroupByMissing: - description: The value to use for logs that don't have the facet used to group by - oneOf: - - $ref: "#/components/schemas/LogsGroupByMissingString" - - $ref: "#/components/schemas/LogsGroupByMissingNumber" - LogsGroupByMissingNumber: - description: The missing value to use if there is a number valued facet. - format: double - type: number - LogsGroupByMissingString: - description: The missing value to use if there is string valued facet. - type: string - LogsGroupByTotal: - default: false - description: |- - A resulting object to put the given computes in over all the matching records. - oneOf: - - $ref: "#/components/schemas/LogsGroupByTotalBoolean" - - $ref: "#/components/schemas/LogsGroupByTotalString" - - $ref: "#/components/schemas/LogsGroupByTotalNumber" - LogsGroupByTotalBoolean: - description: If set to true, creates an additional bucket labeled "$facet_total" - type: boolean - LogsGroupByTotalNumber: - description: A number to use as the key value for the total bucket - format: double - type: number - LogsGroupByTotalString: - description: A string to use as the key value for the total bucket - type: string - LogsListRequest: - description: The request for a logs list. + LLMObsPatternsTopicsResponseAttributes: + description: Attributes of an Agent Observability patterns topics response. properties: - filter: - $ref: "#/components/schemas/LogsQueryFilter" - options: - $ref: "#/components/schemas/LogsQueryOptions" - page: - $ref: "#/components/schemas/LogsListRequestPage" - sort: - $ref: "#/components/schemas/LogsSort" + completed_at: + description: Timestamp when the run completed. Null if the run has not completed. + example: "2024-01-15T10:45:00Z" + format: date-time + nullable: true + type: string + config_id: + description: Identifier of the configuration that produced the run. + example: "a7c8d9e0-1234-5678-9abc-def012345678" + type: string + config_snapshot: + $ref: "#/components/schemas/LLMObsPatternsConfigSnapshot" + created_at: + description: Timestamp when the run was created. + example: "2024-01-15T10:30:00Z" + format: date-time + type: string + previous_run_id: + description: Identifier of the run that completed immediately before this one. Empty if none. + example: "" + type: string + run_id: + description: Identifier of the run that produced the topics. + example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" + type: string + topics: + $ref: "#/components/schemas/LLMObsPatternsTopicsList" + required: + - run_id + - config_id + - previous_run_id + - created_at + - topics type: object - LogsListRequestPage: - description: Paging attributes for listing logs. + LLMObsPatternsTopicsResponseData: + description: Data object of an Agent Observability patterns topics response. properties: - cursor: - description: |- - List following results with a cursor provided in the previous query. - example: "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" + attributes: + $ref: "#/components/schemas/LLMObsPatternsTopicsResponseAttributes" + id: + description: Identifier of the run the topics belong to. + example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" type: string - limit: - default: 10 - description: Maximum number of logs in the response. - example: 25 - format: int32 - maximum: 1000 - type: integer + type: + $ref: "#/components/schemas/LLMObsPatternsTopicsType" + required: + - id + - type + - attributes type: object - LogsListResponse: - description: Response object with all logs matching the request and pagination information. + LLMObsPatternsTopicsType: + description: Resource type of an Agent Observability patterns topics response. + enum: + - get_topics_response + example: get_topics_response + type: string + x-enum-varnames: + - GET_TOPICS_RESPONSE + LLMObsPatternsTopicsWithClusteredPointsList: + description: List of discovered topics with their clustered points. + items: + $ref: "#/components/schemas/LLMObsPatternsTopicWithClusteredPoints" + type: array + LLMObsPatternsTopicsWithClusteredPointsResponse: + description: |- + Response containing the topics, and the clustered points of their leaf topics, + discovered by an Agent Observability patterns run. properties: data: - description: Array of logs matching the request. - items: - $ref: "#/components/schemas/Log" - type: array - links: - $ref: "#/components/schemas/LogsListResponseLinks" - meta: - $ref: "#/components/schemas/LogsResponseMetadata" + $ref: "#/components/schemas/LLMObsPatternsTopicsWithClusteredPointsResponseData" + required: + - data type: object - LogsListResponseLinks: - description: Links attributes. + LLMObsPatternsTopicsWithClusteredPointsResponseAttributes: + description: Attributes of an Agent Observability patterns topics-with-clustered-points response. properties: - next: - description: |- - Link for the next set of results. Note that the request can also be made using the - POST endpoint. - example: "https://app.datadoghq.com/api/v2/logs/event?filter[query]=foo&page[cursor]=eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" + completed_at: + description: Timestamp when the run completed. Null if the run has not completed. + example: "2024-01-15T10:45:00Z" + format: date-time + nullable: true + type: string + config_id: + description: Identifier of the configuration that produced the run. + example: "a7c8d9e0-1234-5678-9abc-def012345678" + type: string + config_snapshot: + $ref: "#/components/schemas/LLMObsPatternsConfigSnapshot" + created_at: + description: Timestamp when the run was created. + example: "2024-01-15T10:30:00Z" + format: date-time type: string + previous_run_id: + description: Identifier of the run that completed immediately before this one. Empty if none. + example: "" + type: string + run_id: + description: Identifier of the run that produced the topics. + example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" + type: string + topics: + $ref: "#/components/schemas/LLMObsPatternsTopicsWithClusteredPointsList" + required: + - run_id + - config_id + - previous_run_id + - created_at + - topics type: object - LogsMetricCompute: - description: The compute rule to compute the log-based metric. + LLMObsPatternsTopicsWithClusteredPointsResponseData: + description: Data object of an Agent Observability patterns topics-with-clustered-points response. properties: - aggregation_type: - $ref: "#/components/schemas/LogsMetricComputeAggregationType" - include_percentiles: - $ref: "#/components/schemas/LogsMetricComputeIncludePercentiles" - path: - description: The path to the value the log-based metric will aggregate on (only used if the aggregation type is a "distribution"). - example: "@duration" + attributes: + $ref: "#/components/schemas/LLMObsPatternsTopicsWithClusteredPointsResponseAttributes" + id: + description: Identifier of the run the topics belong to. + example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" type: string + type: + $ref: "#/components/schemas/LLMObsPatternsTopicsWithClusteredPointsType" required: - - aggregation_type + - id + - type + - attributes type: object - LogsMetricComputeAggregationType: - description: The type of aggregation to use. - enum: ["count", "distribution"] - example: "distribution" + LLMObsPatternsTopicsWithClusteredPointsType: + description: Resource type of an Agent Observability patterns topics-with-clustered-points response. + enum: + - get_topics_with_cluster_points_response + example: get_topics_with_cluster_points_response type: string - x-enum-varnames: ["COUNT", "DISTRIBUTION"] - LogsMetricComputeIncludePercentiles: - description: |- - Toggle to include or exclude percentile aggregations for distribution metrics. - Only present when the `aggregation_type` is `distribution`. - example: true - type: boolean - LogsMetricCreateAttributes: - description: The object describing the Datadog log-based metric to create. + x-enum-varnames: + - GET_TOPICS_WITH_CLUSTER_POINTS_RESPONSE + LLMObsPatternsTriggerRequest: + description: Request to trigger an Agent Observability patterns run. properties: - compute: - $ref: "#/components/schemas/LogsMetricCompute" - filter: - $ref: "#/components/schemas/LogsMetricFilter" - group_by: - description: The rules for the group by. - items: - $ref: "#/components/schemas/LogsMetricGroupBy" - type: array + data: + $ref: "#/components/schemas/LLMObsPatternsTriggerRequestData" required: - - compute + - data type: object - LogsMetricCreateData: - description: The new log-based metric properties. + LLMObsPatternsTriggerRequestAttributes: + description: Attributes for triggering an Agent Observability patterns run. + properties: + config_id: + description: The ID of the patterns configuration to run. + example: "a7c8d9e0-1234-5678-9abc-def012345678" + type: string + required: + - config_id + type: object + LLMObsPatternsTriggerRequestData: + description: Data object for triggering an Agent Observability patterns run. properties: attributes: - $ref: "#/components/schemas/LogsMetricCreateAttributes" - id: - $ref: "#/components/schemas/LogsMetricID" + $ref: "#/components/schemas/LLMObsPatternsTriggerRequestAttributes" type: - $ref: "#/components/schemas/LogsMetricType" + $ref: "#/components/schemas/LLMObsPatternsRequestType" required: - - id - type - attributes type: object - LogsMetricCreateRequest: - description: The new log-based metric body. + LLMObsPatternsTriggerResponse: + description: Response after triggering an Agent Observability patterns run. properties: data: - $ref: "#/components/schemas/LogsMetricCreateData" + $ref: "#/components/schemas/LLMObsPatternsTriggerResponseData" required: - data type: object - LogsMetricFilter: - description: The log-based metric filter. Logs matching this filter will be aggregated in this metric. + LLMObsPatternsTriggerResponseAttributes: + description: Attributes of an Agent Observability patterns trigger response. properties: - query: - default: "*" - description: The search query - following the log search syntax. - example: "service:web* AND @http.status_code:[200 TO 299]" + config_id: + description: The ID of the patterns configuration that was run. + example: "a7c8d9e0-1234-5678-9abc-def012345678" + type: string + run_id: + description: The ID of the patterns run that was started. + example: "3fd6b5e0-8910-4b1c-a7d0-5b84de329012" + type: string + status: + description: Status of the patterns run. + example: started type: string + required: + - run_id + - config_id + - status type: object - LogsMetricGroupBy: - description: A group by rule. + LLMObsPatternsTriggerResponseData: + description: Data object of an Agent Observability patterns trigger response. properties: - path: - description: The path to the value the log-based metric will be aggregated over. - example: "@http.status_code" - type: string - tag_name: - description: Eventual name of the tag that gets created. By default, the path attribute is used as the tag name. - example: "status_code" + attributes: + $ref: "#/components/schemas/LLMObsPatternsTriggerResponseAttributes" + id: + description: The ID of the patterns configuration that was run. + example: "a7c8d9e0-1234-5678-9abc-def012345678" type: string + type: + $ref: "#/components/schemas/LLMObsPatternsTriggerResponseType" required: - - path + - id + - type + - attributes type: object - LogsMetricID: - description: The name of the log-based metric. - example: "logs.page.load.count" + LLMObsPatternsTriggerResponseType: + description: Resource type of an Agent Observability patterns trigger response. + enum: + - topic_discovery_run + example: topic_discovery_run type: string - LogsMetricResponse: - description: The log-based metric object. + x-enum-varnames: + - TOPIC_DISCOVERY_RUN + LLMObsProjectDataAttributesRequest: + description: Attributes for creating an Agent Observability project. properties: - data: - $ref: "#/components/schemas/LogsMetricResponseData" + description: + description: Description of the project. + type: string + name: + description: Name of the project. + example: "My LLM Project" + type: string + required: + - name type: object - LogsMetricResponseAttributes: - description: The object describing a Datadog log-based metric. + LLMObsProjectDataAttributesResponse: + description: Attributes of an Agent Observability project. properties: - compute: - $ref: "#/components/schemas/LogsMetricResponseCompute" - filter: - $ref: "#/components/schemas/LogsMetricResponseFilter" - group_by: - description: The rules for the group by. - items: - $ref: "#/components/schemas/LogsMetricResponseGroupBy" - type: array + created_at: + description: Timestamp when the project was created. + example: "2024-01-15T10:30:00Z" + format: date-time + type: string + description: + description: Description of the project. + example: "" + nullable: true + type: string + name: + description: Name of the project. + example: "My LLM Project" + type: string + updated_at: + description: Timestamp when the project was last updated. + example: "2024-01-15T10:30:00Z" + format: date-time + type: string + required: + - name + - description + - created_at + - updated_at type: object - LogsMetricResponseCompute: - description: The compute rule to compute the log-based metric. + LLMObsProjectDataRequest: + description: Data object for creating an Agent Observability project. properties: - aggregation_type: - $ref: "#/components/schemas/LogsMetricResponseComputeAggregationType" - include_percentiles: - $ref: "#/components/schemas/LogsMetricComputeIncludePercentiles" - path: - description: The path to the value the log-based metric will aggregate on (only used if the aggregation type is a "distribution"). - example: "@duration" - type: string + attributes: + $ref: "#/components/schemas/LLMObsProjectDataAttributesRequest" + type: + $ref: "#/components/schemas/LLMObsProjectType" + required: + - type + - attributes type: object - LogsMetricResponseComputeAggregationType: - description: The type of aggregation to use. - enum: ["count", "distribution"] - example: "distribution" - type: string - x-enum-varnames: ["COUNT", "DISTRIBUTION"] - LogsMetricResponseData: - description: The log-based metric properties. + LLMObsProjectDataResponse: + description: Data object for an Agent Observability project. properties: attributes: - $ref: "#/components/schemas/LogsMetricResponseAttributes" + $ref: "#/components/schemas/LLMObsProjectDataAttributesResponse" id: - $ref: "#/components/schemas/LogsMetricID" + description: Unique identifier of the project. + example: "a33671aa-24fd-4dcd-9b33-a8ec7dde7751" + type: string type: - $ref: "#/components/schemas/LogsMetricType" + $ref: "#/components/schemas/LLMObsProjectType" + required: + - id + - type + - attributes type: object - LogsMetricResponseFilter: - description: The log-based metric filter. Logs matching this filter will be aggregated in this metric. + LLMObsProjectRequest: + description: Request to create an Agent Observability project. properties: - query: - description: The search query - following the log search syntax. - example: "service:web* AND @http.status_code:[200 TO 299]" - type: string + data: + $ref: "#/components/schemas/LLMObsProjectDataRequest" + required: + - data type: object - LogsMetricResponseGroupBy: - description: A group by rule. + LLMObsProjectResponse: + description: Response containing a single Agent Observability project. properties: - path: - description: The path to the value the log-based metric will be aggregated over. - example: "@http.status_code" - type: string - tag_name: - description: Eventual name of the tag that gets created. By default, the path attribute is used as the tag name. - example: "status_code" - type: string + data: + $ref: "#/components/schemas/LLMObsProjectDataResponse" + required: + - data type: object - LogsMetricType: - default: logs_metrics - description: The type of the resource. The value should always be logs_metrics. + LLMObsProjectType: + description: Resource type of an Agent Observability project. enum: - - logs_metrics - example: logs_metrics + - projects + example: projects type: string - x-enum-varnames: ["LOGS_METRICS"] - LogsMetricUpdateAttributes: - description: The log-based metric properties that will be updated. - properties: - compute: - $ref: "#/components/schemas/LogsMetricUpdateCompute" - filter: - $ref: "#/components/schemas/LogsMetricFilter" - group_by: - description: The rules for the group by. - items: - $ref: "#/components/schemas/LogsMetricGroupBy" - type: array - type: object - LogsMetricUpdateCompute: - description: The compute rule to compute the log-based metric. + x-enum-varnames: + - PROJECTS + LLMObsProjectUpdateDataAttributesRequest: + description: Attributes for updating an Agent Observability project. properties: - include_percentiles: - $ref: "#/components/schemas/LogsMetricComputeIncludePercentiles" + description: + description: Updated description of the project. + type: string + name: + description: Updated name of the project. + type: string type: object - LogsMetricUpdateData: - description: The new log-based metric properties. + LLMObsProjectUpdateDataRequest: + description: Data object for updating an Agent Observability project. properties: attributes: - $ref: "#/components/schemas/LogsMetricUpdateAttributes" + $ref: "#/components/schemas/LLMObsProjectUpdateDataAttributesRequest" type: - $ref: "#/components/schemas/LogsMetricType" + $ref: "#/components/schemas/LLMObsProjectType" required: - type - attributes type: object - LogsMetricUpdateRequest: - description: The new log-based metric body. + LLMObsProjectUpdateRequest: + description: Request to partially update an Agent Observability project. properties: data: - $ref: "#/components/schemas/LogsMetricUpdateData" + $ref: "#/components/schemas/LLMObsProjectUpdateDataRequest" required: - data type: object - LogsMetricsResponse: - description: All the available log-based metric objects. + LLMObsProjectsResponse: + description: Response containing a list of Agent Observability projects. properties: data: - description: A list of log-based metric objects. + description: List of projects. items: - $ref: "#/components/schemas/LogsMetricResponseData" + $ref: "#/components/schemas/LLMObsProjectDataResponse" type: array + meta: + $ref: "#/components/schemas/LLMObsCursorMeta" + required: + - data type: object - LogsQueryFilter: - description: The search and filter query settings + LLMObsPromptAuthoringChatTemplate: + description: A chat prompt containing messages, references to specific versions of other prompts, or both. + items: + $ref: "#/components/schemas/LLMObsPromptAuthoringItem" + minItems: 1 + type: array + LLMObsPromptAuthoringItem: + description: >- + A chat message or a reference to a specific version of another prompt. A chat message must not contain an `include` field; the API rejects items that combine both forms. + oneOf: + - $ref: "#/components/schemas/LLMObsPromptChatMessage" + - $ref: "#/components/schemas/LLMObsPromptIncludeItem" + LLMObsPromptAuthoringMessagesTemplate: + description: A chat prompt whose authored items are stored under `messages`. properties: - from: - default: "now-15m" - description: The minimum time for the requested logs, supports date math and regular timestamps (milliseconds). - example: "now-15m" - type: string - indexes: - default: ["*"] - description: For customers with multiple indexes, the indexes to search. Defaults to ['*'] which means all indexes. - example: ["main", "web"] - items: - description: The name of a log index. - type: string - type: array - query: - default: "*" - description: The search query - following the log search syntax. - example: "service:web* AND @http.status_code:[200 TO 299]" + messages: + $ref: "#/components/schemas/LLMObsPromptAuthoringChatTemplate" + required: + - messages + type: object + LLMObsPromptChatMessage: + description: A single chat message in a prompt template. + properties: + content: + description: Content of the message. + example: "You are a helpful customer support assistant for {{company_name}}." type: string - storage_tier: - $ref: "#/components/schemas/LogsStorageTier" - to: - default: "now" - description: The maximum time for the requested logs, supports date math and regular timestamps (milliseconds). - example: "now" + role: + description: Role of the message (for example `system`, `user`, or `assistant`). + example: "system" type: string + required: + - role + - content type: object - LogsQueryOptions: - deprecated: true - description: |- - Global query options that are used during the query. - Note: These fields are currently deprecated and do not affect the query results. + LLMObsPromptChatTemplate: + description: >- + A chat prompt template containing messages and optional named message placeholders. + + **Preview:** Message placeholders are available in Preview. To request access, contact [Datadog Support](https://www.datadoghq.com/support/) or your Customer Success Manager. + items: + $ref: "#/components/schemas/LLMObsPromptChatTemplateItem" + minItems: 1 + type: array + x-generate-alias-as-model: true + LLMObsPromptChatTemplateItem: + description: A chat message or a named message placeholder in a prompt template. + oneOf: + - $ref: "#/components/schemas/LLMObsPromptChatMessage" + - $ref: "#/components/schemas/LLMObsPromptMessagePlaceholder" + LLMObsPromptConfig: + additionalProperties: {} + description: >- + Versioned prompt configuration is in Preview. To request access, contact [Datadog Support](https://www.datadoghq.com/support/) or your Customer Success Manager. Customer-owned configuration delivered with a prompt version. Datadog stores and returns the object without interpolating it, validating provider-specific keys, or applying it to model calls. Do not include secrets. + example: + model: provider-model + response_format: + type: json_object + temperature: 0.2 + type: object + LLMObsPromptData: + description: Data object for an Agent Observability prompt. properties: - timeOffset: - description: The time offset (in seconds) to apply to the query. - format: int64 - type: integer - timezone: - default: "UTC" - description: |- - The timezone can be specified as GMT, UTC, an offset from UTC (like UTC+1), or as a Timezone Database identifier (like America/New_York). - example: "GMT" + attributes: + $ref: "#/components/schemas/LLMObsPromptDataAttributes" + id: + description: Unique identifier of the prompt. + example: "4a1a28ff-8a25-5f0f-946f-f48264d772eb" type: string + type: + $ref: "#/components/schemas/LLMObsPromptType" + required: + - id + - type + - attributes type: object - LogsResponseMetadata: - description: The metadata associated with a request + LLMObsPromptDataAttributes: + description: >- + Attributes of an Agent Observability prompt registry entry. Prompt list and metadata-update responses omit complete template and configuration data. properties: - elapsed: - description: The time elapsed in milliseconds - example: 132 + author: + description: UUID of the user who authored the prompt. + type: string + created_at: + description: Timestamp when the prompt was created. + format: date-time + type: string + created_from: + description: >- + Source that created the prompt, such as `ui-registry`, `sdk-registry`, or `sdk-instrumentation`. + example: "sdk-registry" + type: string + datasets: + description: Datasets observed in runs associated with this prompt. + items: + $ref: "#/components/schemas/LLMObsPromptDataset" + type: array + description: + description: Description of the prompt. + type: string + extracted_from: + description: Source prompt from which this prompt was extracted, when applicable. + type: string + in_registry: + description: Whether the prompt is a registry entry (as opposed to a code-discovered prompt). + example: true + type: boolean + last_seen_at: + description: Timestamp of the most recent observed run of this prompt. + format: date-time + type: string + last_version_created_at: + description: Timestamp when the most recent version of the prompt was created. + format: date-time + type: string + ml_app: + description: The ML application this prompt is associated with. + type: string + ml_apps: + description: ML applications observed running this prompt. + items: + type: string + type: array + num_versions: + description: Number of versions of the prompt. + example: 2 format: int64 type: integer - page: - $ref: "#/components/schemas/LogsResponseMetadataPage" - request_id: - description: The identifier of the request - example: "MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR" + prompt_id: + description: Customer-provided identifier of the prompt. + example: "customer-support-assistant" type: string - status: - $ref: "#/components/schemas/LogsAggregateResponseStatus" - warnings: - description: |- - A list of warnings (non fatal errors) encountered, partial results might be returned if - warnings are present in the response. + source: + $ref: "#/components/schemas/LLMObsPromptResponseSource" + tags: + description: Tags observed on runs of this prompt. items: - $ref: "#/components/schemas/LogsWarning" + type: string type: array + title: + description: Title of the prompt. + type: string + required: + - prompt_id + - source + - num_versions + - in_registry + - created_from type: object - LogsResponseMetadataPage: - description: Paging attributes. + LLMObsPromptDataset: + description: A dataset observed in runs associated with a prompt or prompt version. properties: - after: - description: |- - The cursor to use to get the next results, if any. To make the next request, use the same - parameters with the addition of the `page[cursor]`. - example: "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" + id: + description: Unique identifier of the dataset. + example: "" + type: string + name: + description: Name of the dataset. type: string + required: + - id type: object - LogsRestrictionQueriesType: - default: logs_restriction_queries - description: Restriction query resource type. - enum: - - logs_restriction_queries - example: logs_restriction_queries - type: string - x-enum-varnames: - - LOGS_RESTRICTION_QUERIES - LogsSort: - description: Sort parameters when querying logs. - enum: - - timestamp - - -timestamp - type: string - x-enum-varnames: - - TIMESTAMP_ASCENDING - - TIMESTAMP_DESCENDING - LogsSortOrder: - description: The order to use, ascending or descending - enum: - - "asc" - - "desc" - example: "asc" - type: string - x-enum-varnames: - - "ASCENDING" - - "DESCENDING" - LogsStorageTier: - default: "indexes" - description: Specifies storage type as indexes, online-archives or flex - enum: ["indexes", "online-archives", "flex"] - example: "indexes" - type: string - x-enum-varnames: ["INDEXES", "ONLINE_ARCHIVES", "FLEX"] - LogsWarning: - description: A warning message indicating something that went wrong with the query + LLMObsPromptInclude: + additionalProperties: false + description: >- + Includes messages from a specific version of another prompt. Omitting `items` includes every message from that version in its original order. When `items` is present, messages are included in the specified order, including repetitions. properties: - code: - description: A unique code for this type of warning - example: "unknown_index" - type: string - detail: - description: A detailed explanation of this specific warning - example: "indexes: foo, bar" - type: string - title: - description: A short human-readable summary of the warning - example: "One or several indexes are missing or invalid, results hold data from the other indexes" + items: + description: >- + Zero-based indexes of messages from the included prompt. For example, `[2, 0, 0]` includes the third message, followed by the first message twice. Omit this field to include all messages in their original order. + items: + format: int64 + maximum: 2147483647 + minimum: 0 + type: integer + minItems: 1 + type: array + prompt_id: + description: Customer-provided identifier of the included prompt. + example: "response-policy" + minLength: 1 type: string + version: + description: Positive sequential version number of the included prompt. + example: 3 + format: int64 + maximum: 2147483647 + minimum: 1 + type: integer + required: + - prompt_id + - version type: object - LongTaskMetricStats: - description: Statistical distribution (average, min, max) of a long task metric across sampled views. + LLMObsPromptIncludeItem: + additionalProperties: false + description: Includes all or selected messages from a specific version of another prompt. properties: - average: - description: Average value across sampled views. - example: 3504.1 - format: double - type: number - max: - description: Maximum value across sampled views. - example: 3517.8 - format: double - type: number - min: - description: Minimum value across sampled views. - example: 3500.1 - format: double - type: number + include: + $ref: "#/components/schemas/LLMObsPromptInclude" required: - - average - - min - - max + - include type: object - LongTaskStatsPerView: - description: Statistical distributions of long task metrics computed per view across sampled views. + LLMObsPromptMessagePlaceholder: + additionalProperties: false + description: >- + A named placeholder that inserts a list of messages when a compatible SDK formats the prompt. + + **Preview:** Message placeholders are available in Preview. To request access, contact [Datadog Support](https://www.datadoghq.com/support/) or your Customer Success Manager. properties: - fcp_blocking_time_ms: - $ref: "#/components/schemas/LongTaskMetricStats" - fcp_count: - $ref: "#/components/schemas/LongTaskMetricStats" - inp_overlap_blocking_time_ms: - $ref: "#/components/schemas/LongTaskMetricStats" - inp_overlap_count: - $ref: "#/components/schemas/LongTaskMetricStats" - lcp_blocking_time_ms: - $ref: "#/components/schemas/LongTaskMetricStats" - lcp_count: - $ref: "#/components/schemas/LongTaskMetricStats" - loading_time_blocking_time_ms: - $ref: "#/components/schemas/LongTaskMetricStats" - loading_time_count: - $ref: "#/components/schemas/LongTaskMetricStats" - total_blocking_time_ms: - $ref: "#/components/schemas/LongTaskMetricStats" - total_count: - $ref: "#/components/schemas/LongTaskMetricStats" + name: + description: Name used to supply the message list when formatting the prompt. + example: "history" + minLength: 1 + pattern: "^[A-Za-z0-9_]+$" + type: string + type: + $ref: "#/components/schemas/LLMObsPromptMessagePlaceholderType" + required: + - type + - name type: object - MSTeamsIntegrationMetadata: - description: Incident integration metadata for the Microsoft Teams integration. + LLMObsPromptMessagePlaceholderType: + description: Type of chat-template item. + enum: + - placeholder + example: "placeholder" + type: string + x-enum-varnames: + - PLACEHOLDER + LLMObsPromptResponse: + description: Response containing a single Agent Observability prompt. + example: + data: + attributes: + author: "3b12f1df-14fd-4e12-bd6f-4a2f5c8b3d1e" + created_at: "2025-01-15T10:00:00Z" + created_from: "sdk-registry" + description: "Answers customer questions using the company knowledge base." + in_registry: true + last_version_created_at: "2025-01-15T10:00:00Z" + num_versions: 1 + prompt_id: "customer-support-assistant" + source: registry + title: "Customer Support Assistant" + id: "4a1a28ff-8a25-5f0f-946f-f48264d772eb" + type: prompt-templates properties: - teams: - description: Array of Microsoft Teams in this integration metadata. - example: [] - items: - $ref: "#/components/schemas/MSTeamsIntegrationMetadataTeamsItem" - type: array + data: + $ref: "#/components/schemas/LLMObsPromptData" required: - - teams + - data type: object - MSTeamsIntegrationMetadataTeamsItem: - description: Item in the Microsoft Teams integration metadata teams array. + LLMObsPromptResponseSource: + description: Whether the prompt was created from the registry or discovered from observed LLM calls. + enum: + - registry + - code + example: registry + type: string + x-enum-varnames: + - REGISTRY + - CODE + LLMObsPromptSDKData: + description: Data object for a flattened Agent Observability prompt version returned for SDK consumption. properties: - ms_channel_id: - description: Microsoft Teams channel ID. - example: 19:abc00abcdef00a0abcdef0abcdef0a@thread.tacv2 - type: string - ms_channel_name: - description: Microsoft Teams channel name. - example: incident-0001-example - type: string - ms_tenant_id: - description: Microsoft Teams tenant ID. - example: 00000000-abcd-0005-0000-000000000000 - type: string - redirect_url: - description: URL redirecting to the Microsoft Teams channel. - example: https://teams.microsoft.com/l/channel/19%3Aabc00abcdef00a0abcdef0abcdef0a%40thread.tacv2/conversations?groupId=12345678-abcd-dcba-abcd-1234567890ab&tenantId=00000000-abcd-0005-0000-000000000000 + attributes: + $ref: "#/components/schemas/LLMObsPromptSDKDataAttributes" + id: + description: Unique identifier of the prompt. + example: "4a1a28ff-8a25-5f0f-946f-f48264d772eb" type: string + type: + $ref: "#/components/schemas/LLMObsPromptType" required: - - ms_tenant_id - - ms_channel_id - - ms_channel_name - - redirect_url + - id + - type + - attributes type: object - Maintenance: - description: Response object for a single maintenance. + LLMObsPromptSDKDataAttributes: + description: >- + Attributes of a flattened prompt version returned for SDK consumption. Exactly one of `template` and `chat_template` is returned. Empty `config` is omitted when configuration authoring is disabled for the organization. Non-empty saved configuration is always returned. properties: - data: - $ref: "#/components/schemas/MaintenanceData" - included: - description: The included related resources of a maintenance. Client must explicitly request these resources by name in the `include` query parameter. + chat_template: + description: >- + Chat template for this prompt version, as a list of messages and named message placeholders. Omitted for text templates. + + **Preview:** Message placeholders are available in Preview. To request access, contact [Datadog Support](https://www.datadoghq.com/support/) or your Customer Success Manager. items: - $ref: "#/components/schemas/DegradationIncluded" + $ref: "#/components/schemas/LLMObsPromptChatTemplateItem" type: array + config: + $ref: "#/components/schemas/LLMObsPromptConfig" + labels: + deprecated: true + description: Labels attached to the selected version. + items: + type: string + type: array + prompt_id: + description: Customer-provided identifier of the prompt. + example: "customer-support-assistant" + type: string + prompt_version_uuid: + description: Unique identifier of this prompt version. + example: "d83ab666-61cc-5545-a83b-2424bb85467b" + type: string + template: + description: Text template for this prompt version. Omitted for chat templates. + type: string + version: + description: >- + Version identifier for this prompt version. This is the sequential version number unless a user-supplied version identifier was set, in which case that identifier is used instead. + example: "2" + type: string type: object - MaintenanceArray: - description: Response object for a list of maintenances. + LLMObsPromptSDKResponse: + description: Response containing a flattened Agent Observability prompt version for SDK consumption. + example: + data: + attributes: + chat_template: + - content: "You are a helpful customer support assistant for {{company_name}}." + role: "system" + - name: "history" + type: "placeholder" + - content: "Help {{customer_name}} with this question: {{question}}" + role: "user" + config: + model: provider-model + temperature: 0.2 + prompt_id: "customer-support-assistant" + prompt_version_uuid: "d83ab666-61cc-5545-a83b-2424bb85467b" + version: "2" + id: "4a1a28ff-8a25-5f0f-946f-f48264d772eb" + type: prompt-templates properties: data: - description: A list of maintenance data objects. - items: - $ref: "#/components/schemas/MaintenanceData" - type: array - included: - description: The included related resources of a maintenance. Client must explicitly request these resources by name in the `include` query parameter. - items: - $ref: "#/components/schemas/DegradationIncluded" - type: array - meta: - $ref: "#/components/schemas/PaginationMeta" + $ref: "#/components/schemas/LLMObsPromptSDKData" required: - data type: object - MaintenanceData: - description: The data object for a maintenance. + LLMObsPromptTemplate: + description: >- + A text template, a list of chat messages and named message placeholders, or an authored chat object. Text can include an exact prompt version with `{{>prompt-id version=N}}`; other text, including `{{>...}}` sequences without a version, remains literal. Use an authored chat object when including prompts as chat messages. + + **Preview**: Prompt composition is available in Preview. To request access, contact [Datadog Support](https://docs.datadoghq.com/help/) or your Customer Success Manager. + + Without access, inline references remain literal text and structured includes are unsupported. Previously compiled prompt versions remain available for execution. + + **Preview:** Message placeholders are available in Preview. To request access, contact [Datadog Support](https://www.datadoghq.com/support/) or your Customer Success Manager. + example: "You are a helpful assistant for {{audience}}." + oneOf: + - $ref: "#/components/schemas/LLMObsPromptTextTemplate" + - $ref: "#/components/schemas/LLMObsPromptChatTemplate" + - $ref: "#/components/schemas/LLMObsPromptAuthoringMessagesTemplate" + LLMObsPromptTextTemplate: + description: A text prompt template. + minLength: 1 + pattern: ".*\\S.*" + type: string + LLMObsPromptType: + description: Resource type of an Agent Observability prompt. + enum: + - prompt-templates + example: prompt-templates + type: string + x-enum-varnames: + - PROMPT_TEMPLATES + LLMObsPromptVersionData: + description: Data object for a specific version of an Agent Observability prompt. properties: attributes: - $ref: "#/components/schemas/MaintenanceDataAttributes" + $ref: "#/components/schemas/LLMObsPromptVersionDataAttributes" id: - description: The ID of the maintenance. - format: uuid + description: Unique identifier of the prompt version. + example: "d83ab666-61cc-5545-a83b-2424bb85467b" type: string - relationships: - $ref: "#/components/schemas/MaintenanceDataRelationships" type: - $ref: "#/components/schemas/PatchMaintenanceRequestDataType" + $ref: "#/components/schemas/LLMObsPromptVersionType" required: + - id - type + - attributes type: object - MaintenanceDataAttributes: - description: The attributes of a maintenance. + LLMObsPromptVersionDataAttributes: + description: >- + Attributes of a specific version of an Agent Observability prompt. For a composed version, `authoring_template` contains its pinned include-bearing source; ordinary versions omit that attribute. Empty `config` is omitted when configuration authoring is disabled for the organization. Non-empty saved configuration is always returned. properties: - canceled_description: - description: The description shown when the maintenance is canceled. + author: + description: UUID of the user who authored this version. type: string - completed_date: - description: Timestamp of when the maintenance was completed. + authoring_template: + $ref: "#/components/schemas/LLMObsPromptTemplate" + config: + $ref: "#/components/schemas/LLMObsPromptConfig" + created_at: + description: Timestamp stored on this prompt version. format: date-time type: string - completed_description: - description: The description shown when the maintenance is completed. - type: string - components_affected: - description: Components affected by the maintenance. + datasets: + description: Datasets observed in runs associated with this prompt version. items: - $ref: "#/components/schemas/MaintenanceDataAttributesComponentsAffectedItems" + $ref: "#/components/schemas/LLMObsPromptDataset" type: array - in_progress_description: - description: The description shown while the maintenance is in progress. - type: string - is_backfilled: - description: Whether the maintenance was backfilled. - type: boolean - modified_at: - description: Timestamp of when the maintenance was last modified. - format: date-time + description: + description: Description of this version. type: string - published_date: - description: Timestamp of when the maintenance was published. + labels: + deprecated: true + description: Labels attached to this version (for example `development`, `staging`, `production`). + items: + type: string + type: array + last_seen_at: + description: Timestamp of the most recent observed run of this prompt version. format: date-time type: string - scheduled_description: - description: The description shown when the maintenance is scheduled. + ml_app: + description: The ML application this prompt is associated with. type: string - start_date: - description: Timestamp of when the maintenance is scheduled to start. - format: date-time + ml_apps: + description: ML applications observed running this prompt version. + items: + type: string + type: array + prompt_id: + description: Customer-provided identifier of the parent prompt. + example: "customer-support-assistant" type: string - status: - $ref: "#/components/schemas/MaintenanceDataAttributesStatus" - description: The status of the maintenance. - title: - description: Title of the maintenance. + prompt_uuid: + description: Unique identifier of the parent prompt. + example: "4a1a28ff-8a25-5f0f-946f-f48264d772eb" type: string - updates: - description: Past updates made to the maintenance. + tags: + description: Tags observed on runs of this prompt version. items: - $ref: "#/components/schemas/MaintenanceDataAttributesUpdatesItems" + type: string type: array - type: object - MaintenanceDataAttributesComponentsAffectedItems: - description: A component affected by a maintenance. - properties: - id: - description: The ID of the component. Must be a component of type `component`. - example: "1234abcd-12ab-34cd-56ef-123456abcdef" - format: uuid + template: + $ref: "#/components/schemas/LLMObsPromptTemplate" + user_version: + description: User-supplied identifier for this version. type: string - name: - description: The name of the component. - readOnly: true + version: + description: Sequential version number. + example: 1 + format: int64 + minimum: 1 + type: integer + version_created_at: + description: Timestamp when this version was created. + format: date-time type: string - status: - $ref: "#/components/schemas/PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus" required: - - id - - status + - prompt_uuid + - prompt_id + - template + - version type: object - MaintenanceDataAttributesStatus: - description: The status of the maintenance. + LLMObsPromptVersionLabel: + description: A label attached to an Agent Observability prompt version. enum: - - scheduled - - in_progress - - completed + - production + - development type: string x-enum-varnames: - - SCHEDULED - - IN_PROGRESS - - COMPLETED - MaintenanceDataAttributesUpdatesItems: - description: An update made to a maintenance. + - PRODUCTION + - DEVELOPMENT + LLMObsPromptVersionListData: + description: Data object for a prompt version returned in a list. properties: - components_affected: - description: The components affected at the time of the update. - items: - $ref: "#/components/schemas/MaintenanceDataAttributesUpdatesItemsComponentsAffectedItems" - type: array + attributes: + $ref: "#/components/schemas/LLMObsPromptVersionListDataAttributes" + id: + description: Unique identifier of the prompt version. + example: "d83ab666-61cc-5545-a83b-2424bb85467b" + type: string + type: + $ref: "#/components/schemas/LLMObsPromptVersionType" + required: + - id + - type + - attributes + type: object + LLMObsPromptVersionListDataAttributes: + description: Attributes of a prompt version returned in a list, excluding its template. + properties: + author: + description: UUID of the user who authored this version. + type: string created_at: - description: Timestamp of when the update was created. + description: Timestamp stored on this prompt version. format: date-time - readOnly: true type: string + datasets: + description: Datasets observed in runs associated with this prompt version. + items: + $ref: "#/components/schemas/LLMObsPromptDataset" + type: array description: - description: Description of the update. - type: string - id: - description: Identifier of the update. - format: uuid - readOnly: true + description: Description of this version. type: string - manual_transition: - description: Whether the update was applied manually by a user (true) or automatically by the system (false). - readOnly: true - type: boolean - modified_at: - description: Timestamp of when the update was last modified. + labels: + deprecated: true + description: Labels attached to this version (for example `development`, `staging`, `production`). + items: + type: string + type: array + last_seen_at: + description: Timestamp of the most recent observed run of this prompt version. format: date-time - readOnly: true type: string - started_at: - description: Timestamp of when the update started. - format: date-time + ml_app: + description: The ML application this prompt is associated with. type: string - status: - description: The status of the update. + ml_apps: + description: ML applications observed running this prompt version. + items: + type: string + type: array + prompt_id: + description: Customer-provided identifier of the parent prompt. + example: "customer-support-assistant" type: string - type: object - MaintenanceDataAttributesUpdatesItemsComponentsAffectedItems: - description: A component affected at the time of a maintenance update. - properties: - id: - description: Identifier of the component affected at the time of the update. - example: "1234abcd-12ab-34cd-56ef-123456abcdef" - format: uuid + prompt_uuid: + description: Unique identifier of the parent prompt. + example: "4a1a28ff-8a25-5f0f-946f-f48264d772eb" type: string - name: - description: The name of the component affected at the time of the update. - readOnly: true + tags: + description: Tags observed on runs of this prompt version. + items: + type: string + type: array + user_version: + description: User-supplied identifier for this version. + type: string + version: + description: Sequential version number. + example: 1 + format: int64 + minimum: 1 + type: integer + version_created_at: + description: Timestamp when this version was created. + format: date-time type: string - status: - $ref: "#/components/schemas/PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus" - description: The status of the component affected at the time of the update. required: - - id - - status - type: object - MaintenanceDataRelationships: - description: The relationships of a maintenance. - properties: - created_by_user: - $ref: "#/components/schemas/MaintenanceDataRelationshipsCreatedByUser" - description: The Datadog user who created the maintenance. - last_modified_by_user: - $ref: "#/components/schemas/MaintenanceDataRelationshipsLastModifiedByUser" - description: The Datadog user who last modified the maintenance. - status_page: - $ref: "#/components/schemas/MaintenanceDataRelationshipsStatusPage" - description: The status page the maintenance belongs to. - template: - $ref: "#/components/schemas/MaintenanceDataRelationshipsTemplate" - description: The template the maintenance was created from. + - prompt_uuid + - prompt_id + - version type: object - MaintenanceDataRelationshipsCreatedByUser: - description: The Datadog user who created the maintenance. + LLMObsPromptVersionResponse: + description: Response containing a specific version of an Agent Observability prompt. + example: + data: + attributes: + author: "3b12f1df-14fd-4e12-bd6f-4a2f5c8b3d1e" + config: {} + created_at: "2025-02-01T14:30:00Z" + description: "Give concise answers and cite relevant help-center articles." + prompt_id: "customer-support-assistant" + prompt_uuid: "4a1a28ff-8a25-5f0f-946f-f48264d772eb" + template: + - content: "You are a helpful customer support assistant for {{company_name}}." + role: "system" + - content: "Help {{customer_name}} with this question: {{question}}" + role: "user" + version: 2 + version_created_at: "2025-02-01T14:30:00Z" + id: "d83ab666-61cc-5545-a83b-2424bb85467b" + type: prompt-template-versions properties: data: - $ref: "#/components/schemas/MaintenanceDataRelationshipsCreatedByUserData" + $ref: "#/components/schemas/LLMObsPromptVersionData" required: - data type: object - MaintenanceDataRelationshipsCreatedByUserData: - description: The data object identifying the Datadog user who created the maintenance. - properties: - id: - description: The ID of the Datadog user who created the maintenance. - example: "" - format: uuid - type: string - type: - $ref: "#/components/schemas/StatusPagesUserType" - required: - - type - - id - type: object - MaintenanceDataRelationshipsLastModifiedByUser: - description: The Datadog user who last modified the maintenance. + LLMObsPromptVersionType: + description: Resource type of an Agent Observability prompt version. + enum: + - prompt-template-versions + example: prompt-template-versions + type: string + x-enum-varnames: + - PROMPT_TEMPLATE_VERSIONS + LLMObsPromptVersionsResponse: + description: Response containing the versions of an Agent Observability prompt. + example: + data: + - attributes: + author: "3b12f1df-14fd-4e12-bd6f-4a2f5c8b3d1e" + created_at: "2025-02-01T14:30:00Z" + description: "Give concise answers and cite relevant help-center articles." + prompt_id: "customer-support-assistant" + prompt_uuid: "4a1a28ff-8a25-5f0f-946f-f48264d772eb" + version: 2 + version_created_at: "2025-02-01T14:30:00Z" + id: "d83ab666-61cc-5545-a83b-2424bb85467b" + type: prompt-template-versions + - attributes: + author: "3b12f1df-14fd-4e12-bd6f-4a2f5c8b3d1e" + created_at: "2025-01-15T10:00:00Z" + description: "Initial customer support prompt." + prompt_id: "customer-support-assistant" + prompt_uuid: "4a1a28ff-8a25-5f0f-946f-f48264d772eb" + version: 1 + version_created_at: "2025-01-15T10:00:00Z" + id: "20e5280b-c75d-5699-8a70-a2773a751428" + type: prompt-template-versions properties: data: - $ref: "#/components/schemas/MaintenanceDataRelationshipsLastModifiedByUserData" + description: Prompt versions ordered from newest to oldest. + items: + $ref: "#/components/schemas/LLMObsPromptVersionListData" + type: array required: - data type: object - MaintenanceDataRelationshipsLastModifiedByUserData: - description: The data object identifying the Datadog user who last modified the maintenance. - properties: - id: - description: The ID of the Datadog user who last modified the maintenance. - example: "" - format: uuid - type: string - type: - $ref: "#/components/schemas/StatusPagesUserType" - required: - - type - - id - type: object - MaintenanceDataRelationshipsStatusPage: - description: The status page the maintenance belongs to. + LLMObsPromptsResponse: + description: Response containing a list of Agent Observability prompts. + example: + data: + - attributes: + author: "3b12f1df-14fd-4e12-bd6f-4a2f5c8b3d1e" + created_at: "2025-01-15T10:00:00Z" + created_from: "sdk-registry" + description: "Answers customer questions using the company knowledge base." + in_registry: true + last_version_created_at: "2025-02-01T14:30:00Z" + num_versions: 2 + prompt_id: "customer-support-assistant" + source: registry + title: "Customer Support Assistant" + id: "4a1a28ff-8a25-5f0f-946f-f48264d772eb" + type: prompt-templates properties: data: - $ref: "#/components/schemas/MaintenanceDataRelationshipsStatusPageData" + description: List of Agent Observability prompts. + items: + $ref: "#/components/schemas/LLMObsPromptData" + type: array required: - data type: object - MaintenanceDataRelationshipsStatusPageData: - description: The data object identifying the status page associated with a maintenance. - properties: - id: - description: The ID of the status page. - example: "" - format: uuid - type: string - type: - $ref: "#/components/schemas/StatusPageDataType" - required: - - type - - id - type: object - MaintenanceDataRelationshipsTemplate: - description: The template the maintenance was created from. + LLMObsRecordType: + description: Resource type of Agent Observability dataset records. + enum: + - records + example: records + type: string + x-enum-varnames: + - RECORDS + LLMObsSearchSpansRequest: + description: Request body for searching Agent Observability spans. properties: data: - $ref: "#/components/schemas/MaintenanceDataRelationshipsTemplateData" + $ref: "#/components/schemas/LLMObsSearchSpansRequestData" required: - data type: object - MaintenanceDataRelationshipsTemplateData: - description: The data object identifying the template the maintenance was created from. + LLMObsSearchSpansRequestAttributes: + description: Attributes of an Agent Observability spans search request. properties: - id: - description: The ID of the maintenance template. - example: "" + filter: + $ref: "#/components/schemas/LLMObsSpanFilter" + options: + $ref: "#/components/schemas/LLMObsSpanSearchOptions" + page: + $ref: "#/components/schemas/LLMObsSpanPageQuery" + sort: + description: Sort order for the results. Use `-` prefix for descending order. + example: "-start_ns" type: string + type: object + LLMObsSearchSpansRequestData: + description: Data object for an Agent Observability spans search request. + properties: + attributes: + $ref: "#/components/schemas/LLMObsSearchSpansRequestAttributes" type: - $ref: "#/components/schemas/PatchMaintenanceTemplateRequestDataType" + $ref: "#/components/schemas/LLMObsSearchSpansRequestType" required: - type - - id - type: object - MaintenanceTemplate: - description: Response object for a single maintenance template. - properties: - data: - $ref: "#/components/schemas/MaintenanceTemplateData" - included: - description: The included related resources of a maintenance template. Client must explicitly request these resources by name in the `include` query parameter. - items: - $ref: "#/components/schemas/DegradationIncluded" - type: array + - attributes type: object - MaintenanceTemplateArray: - description: Response object for a list of maintenance templates. + LLMObsSearchSpansRequestType: + description: Resource type for an Agent Observability spans search request. + enum: + - spans + example: spans + type: string + x-enum-varnames: + - SPANS + LLMObsSpanAttributes: + description: Attributes of an Agent Observability span. properties: - data: - description: A list of maintenance template data objects. + duration: + description: Duration of the span in nanoseconds. + example: 1500000000.0 + format: double + type: number + evaluation: + additionalProperties: + $ref: "#/components/schemas/LLMObsSpanEvaluationMetric" + description: Evaluation metrics keyed by evaluator name. + type: object + input: + $ref: "#/components/schemas/LLMObsSpanIO" + intent: + description: Detected intent of the span. + type: string + metadata: + additionalProperties: {} + description: Arbitrary metadata associated with the span. + type: object + metrics: + additionalProperties: + format: double + type: number + description: Numeric metrics associated with the span (e.g., token counts). + type: object + ml_app: + description: Name of the ML application this span belongs to. + example: "my-llm-app" + type: string + model_name: + description: Name of the model used in this span. + example: "gpt-4o" + type: string + model_provider: + description: Provider of the model used in this span. + example: "openai" + type: string + name: + description: Name of the span. + example: "llm_call" + type: string + output: + $ref: "#/components/schemas/LLMObsSpanIO" + parent_id: + description: Identifier of the parent span, if any. + type: string + span_id: + description: Unique identifier of the span. + example: "abc123def456" + type: string + span_kind: + description: Kind of span (e.g., llm, agent, tool, task, workflow). + example: "llm" + type: string + start_ns: + description: Start time of the span in nanoseconds since Unix epoch. + example: 1705314600000000000 + format: int64 + type: integer + status: + description: Status of the span (e.g., ok, error). + example: "ok" + type: string + tags: + description: Tags associated with the span. items: - $ref: "#/components/schemas/MaintenanceTemplateData" + type: string type: array - included: - description: The included related resources of a maintenance template. Client must explicitly request these resources by name in the `include` query parameter. + tool_definitions: + description: Tool definitions available to the span. items: - $ref: "#/components/schemas/DegradationIncluded" + $ref: "#/components/schemas/LLMObsSpanToolDefinition" type: array + trace_id: + description: Trace identifier this span belongs to. + example: "trace-9a8b7c6d5e4f" + type: string required: - - data + - span_id + - trace_id + - name + - status + - start_ns + - duration + - ml_app + - span_kind type: object - MaintenanceTemplateData: - description: The data object for a maintenance template. + LLMObsSpanData: + description: A single Agent Observability span. properties: attributes: - $ref: "#/components/schemas/MaintenanceTemplateDataAttributes" + $ref: "#/components/schemas/LLMObsSpanAttributes" id: - description: The ID of the maintenance template. + description: Unique identifier of the span. + example: "abc123def456" type: string - relationships: - $ref: "#/components/schemas/MaintenanceTemplateDataRelationships" type: - $ref: "#/components/schemas/PatchMaintenanceTemplateRequestDataType" + $ref: "#/components/schemas/LLMObsSpanType" required: + - id - type + - attributes type: object - MaintenanceTemplateDataAttributes: - description: The attributes of a maintenance template. + LLMObsSpanEvaluationMetric: + description: An evaluation metric associated with an Agent Observability span. properties: - completed_description: - description: The description shown when a maintenance created from this template is completed. + assessment: + description: Assessment result (e.g., pass or fail). + example: pass type: string - component_ids: - description: The IDs of the components affected by a maintenance created from this template. + eval_metric_type: + description: Type of the evaluation metric (e.g., score, categorical, boolean). + example: score + type: string + reasoning: + description: Human-readable reasoning for the evaluation result. + type: string + status: + description: Status of the evaluation execution. + type: string + tags: + description: Tags associated with the evaluation metric. items: type: string type: array - created_at: - description: Timestamp of when the maintenance template was created. - format: date-time + value: + description: Value of the evaluation result. + type: object + LLMObsSpanFilter: + description: Filter criteria for an Agent Observability span search. + properties: + from: + description: Start of the time range. Accepts ISO 8601 or relative format (e.g., `now-15m`). Defaults to `now-15m`. + example: "now-900s" type: string - in_progress_description: - description: The description shown while a maintenance created from this template is in progress. + ml_app: + description: Filter by ML application name. + example: "my-llm-app" type: string - maintenance_title: - description: The title used for a maintenance created from this template. + query: + description: >- + Search query using Agent Observability query syntax. Supports attribute filters using the field:value syntax (e.g. session_id, trace_id, ml_app, meta.span.kind). When provided, structured field filters (`span_id`, `trace_id`, etc.) are ignored. + example: "@session_id:abc123def456" type: string - modified_at: - description: Timestamp of when the maintenance template was last modified. - format: date-time + span_id: + description: Filter by exact span ID. + example: "abc123def456" type: string - name: - description: The name of the maintenance template. + span_kind: + description: Filter by span kind (e.g., llm, agent, tool, task, workflow). + example: "llm" type: string - scheduled_description: - description: The description shown when a maintenance created from this template is scheduled. + span_name: + description: Filter by span name. + example: "llm_call" + type: string + tags: + additionalProperties: + type: string + description: Filter by tag key-value pairs. + type: object + to: + description: End of the time range. Accepts ISO 8601 or relative format (e.g., `now`). Defaults to `now`. + example: "now" + type: string + trace_id: + description: Filter by exact trace ID. + example: "trace-9a8b7c6d5e4f" type: string type: object - MaintenanceTemplateDataRelationships: - description: The relationships of a maintenance template. - properties: - created_by_user: - $ref: "#/components/schemas/MaintenanceTemplateDataRelationshipsCreatedByUser" - description: The Datadog user who created the maintenance template. - last_modified_by_user: - $ref: "#/components/schemas/MaintenanceTemplateDataRelationshipsLastModifiedByUser" - description: The Datadog user who last modified the maintenance template. - status_page: - $ref: "#/components/schemas/MaintenanceTemplateDataRelationshipsStatusPage" - description: The status page the maintenance template belongs to. - type: object - MaintenanceTemplateDataRelationshipsCreatedByUser: - description: The Datadog user who created the maintenance template. + LLMObsSpanIO: + description: Input or output content of an Agent Observability span. properties: - data: - $ref: "#/components/schemas/MaintenanceTemplateDataRelationshipsCreatedByUserData" - required: - - data + messages: + description: List of messages in the input or output. + items: + $ref: "#/components/schemas/LLMObsSpanMessage" + type: array + value: + description: Plain-text value of the input or output. + type: string type: object - MaintenanceTemplateDataRelationshipsCreatedByUserData: - description: The data object identifying the Datadog user who created the maintenance template. + LLMObsSpanMessage: + description: A single message in a span input or output. properties: + content: + description: Text content of the message. + type: string id: - description: The ID of the Datadog user who created the maintenance template. - example: "" + description: Unique identifier of the message. type: string - type: - $ref: "#/components/schemas/StatusPagesUserType" - required: - - type - - id + role: + description: Role of the message sender (e.g., user, assistant, system). + type: string + tool_calls: + description: Tool calls made in this message. + items: + $ref: "#/components/schemas/LLMObsSpanToolCall" + type: array + tool_results: + description: Tool results returned in this message. + items: + $ref: "#/components/schemas/LLMObsSpanToolResult" + type: array type: object - MaintenanceTemplateDataRelationshipsLastModifiedByUser: - description: The Datadog user who last modified the maintenance template. + LLMObsSpanPageQuery: + description: Pagination settings for a span search request. properties: - data: - $ref: "#/components/schemas/MaintenanceTemplateDataRelationshipsLastModifiedByUserData" - required: - - data + cursor: + description: Cursor from the previous response to retrieve the next page. + example: "eyJzdGFydCI6MTAwfQ==" + type: string + limit: + description: Maximum number of spans to return. Defaults to `10`. + example: 10 + format: int64 + type: integer type: object - MaintenanceTemplateDataRelationshipsLastModifiedByUserData: - description: The data object identifying the Datadog user who last modified the maintenance template. + LLMObsSpanSearchOptions: + description: Additional options for a span search request. properties: - id: - description: The ID of the Datadog user who last modified the maintenance template. - example: "" - type: string - type: - $ref: "#/components/schemas/StatusPagesUserType" - required: - - type - - id - type: object - MaintenanceTemplateDataRelationshipsStatusPage: - description: The status page the maintenance template belongs to. - properties: - data: - $ref: "#/components/schemas/MaintenanceTemplateDataRelationshipsStatusPageData" - required: - - data + include_attachments: + description: Whether to include attachment data in the response. Defaults to `true`. + example: true + type: boolean + time_offset: + description: Offset in seconds applied to both `from` and `to` timestamps. + example: 0 + format: int64 + type: integer type: object - MaintenanceTemplateDataRelationshipsStatusPageData: - description: The data object identifying the status page associated with a maintenance template. + LLMObsSpanToolCall: + description: A tool call made during a span. properties: - id: - description: The ID of the status page. - example: "" + arguments: + additionalProperties: {} + description: Arguments passed to the tool. + type: object + name: + description: Name of the tool called. + type: string + tool_id: + description: Identifier of the tool call. type: string type: - $ref: "#/components/schemas/StatusPageDataType" - required: - - type - - id - type: object - MaintenanceUpdate: - description: Response object for a maintenance update. - properties: - data: - $ref: "#/components/schemas/MaintenanceUpdateData" + description: Type of the tool call. + type: string type: object - MaintenanceUpdateData: - description: The data object for a maintenance update. + LLMObsSpanToolDefinition: + description: A tool definition available to an LLM span. properties: - attributes: - $ref: "#/components/schemas/MaintenanceUpdateDataAttributes" - id: - description: The ID of the maintenance update. - example: "1234abcd-12ab-34cd-56ef-123456abcdef" - format: uuid + description: + description: Description of what the tool does. + type: string + name: + description: Name of the tool. + type: string + schema: + additionalProperties: {} + description: JSON schema describing the tool's input parameters. + type: object + version: + description: Version of the tool definition. type: string - relationships: - $ref: "#/components/schemas/MaintenanceUpdateDataRelationships" - type: - $ref: "#/components/schemas/PatchMaintenanceUpdateRequestDataType" - required: - - id - - type type: object - MaintenanceUpdateDataAttributes: - description: Attributes of a maintenance update resource. + LLMObsSpanToolResult: + description: A result returned from a tool call during a span. properties: - components_affected: - description: Components affected at the time of the update. - items: - $ref: "#/components/schemas/CreateMaintenanceRequestDataAttributesComponentsAffectedItems" - type: array - created_at: - description: The date and time the update was created. - format: date-time + name: + description: Name of the tool that produced this result. type: string - description: - description: The message body of the update. + result: + description: Result value returned by the tool. type: string - manual_transition: - description: Whether the update was applied manually by a user (true) or automatically by the system (false). - type: boolean - modified_at: - description: The date and time the update was last modified. - format: date-time + tool_id: + description: Identifier of the corresponding tool call. type: string - started_at: - description: The date and time the update started. - format: date-time + type: + description: Type of the tool result. type: string - status: - $ref: "#/components/schemas/MaintenanceUpdateDataAttributesStatus" type: object - MaintenanceUpdateDataAttributesStatus: - description: The status of the maintenance update. + LLMObsSpanType: + description: Resource type for an Agent Observability span. enum: - - scheduled - - in_progress - - completed - - canceled + - span + example: span type: string x-enum-varnames: - - SCHEDULED - - IN_PROGRESS - - COMPLETED - - CANCELED - MaintenanceUpdateDataRelationships: - description: Relationships of a maintenance update resource. - properties: - created_by_user: - $ref: "#/components/schemas/MaintenanceUpdateDataRelationshipsUser" - last_modified_by_user: - $ref: "#/components/schemas/MaintenanceUpdateDataRelationshipsUser" - maintenance: - $ref: "#/components/schemas/MaintenanceUpdateDataRelationshipsMaintenance" - type: object - MaintenanceUpdateDataRelationshipsMaintenance: - description: The parent maintenance of the update. + - SPAN + LLMObsSpansResponse: + description: Response containing a list of Agent Observability spans. properties: data: - $ref: "#/components/schemas/MaintenanceUpdateDataRelationshipsMaintenanceData" + description: List of spans matching the query. + items: + $ref: "#/components/schemas/LLMObsSpanData" + type: array + links: + $ref: "#/components/schemas/LLMObsSpansResponseLinks" + meta: + $ref: "#/components/schemas/LLMObsSpansResponseMeta" required: - data + - meta type: object - MaintenanceUpdateDataRelationshipsMaintenanceData: - description: The maintenance linked to a maintenance update. + LLMObsSpansResponseLinks: + description: Pagination links accompanying the spans response. properties: - id: - description: The ID of the maintenance. - example: "" - format: uuid + next: + description: URL to retrieve the next page of results. + example: "https://api.datadoghq.com/api/v2/llm-obs/v1/spans/events?page[cursor]=eyJzdGFydCI6MTAwfQ==" type: string - type: - $ref: "#/components/schemas/PatchMaintenanceRequestDataType" - required: - - type - - id type: object - MaintenanceUpdateDataRelationshipsUser: - description: A user relationship of a maintenance update. + LLMObsSpansResponseMeta: + description: Metadata accompanying the spans response. properties: - data: - $ref: "#/components/schemas/MaintenanceUpdateDataRelationshipsUserData" + elapsed: + description: Time elapsed for the query in milliseconds. + example: 132 + format: int64 + type: integer + page: + $ref: "#/components/schemas/LLMObsSpansResponsePage" + request_id: + description: Unique identifier for the request. + example: "req-abc123" + type: string + status: + description: Status of the query execution. + example: "done" + type: string required: - - data + - elapsed + - request_id + - status + - page type: object - MaintenanceUpdateDataRelationshipsUserData: - description: The data object identifying a Datadog user linked to a maintenance update. + LLMObsSpansResponsePage: + description: Pagination cursor for the spans response. + properties: + after: + description: Cursor to retrieve the next page of results. Absent when there are no more results. + example: "eyJzdGFydCI6MTAwfQ==" + type: string + type: object + LLMObsTraceAnnotatedInteractionItem: + description: A trace, experiment trace, or session interaction with its associated annotations. properties: + annotations: + description: List of annotations for this interaction. + items: + $ref: "#/components/schemas/LLMObsAnnotationItem" + type: array + can_annotate: + description: Whether the current caller can annotate this interaction. + example: true + type: boolean + content_id: + description: Upstream entity identifier supplied by the caller. + example: "trace-abc-123" + type: string + created_at: + description: Timestamp when the interaction was added to the queue. + example: "2024-01-15T10:30:00Z" + format: date-time + type: string id: - description: The ID of the Datadog user. - example: "" - format: uuid + description: Unique identifier of the interaction. + example: "interaction-456" + type: string + modified_at: + description: Timestamp when the interaction was last updated. + example: "2024-01-15T10:30:00Z" + format: date-time type: string type: - $ref: "#/components/schemas/StatusPagesUserType" + $ref: "#/components/schemas/LLMObsTraceInteractionType" required: - - type - id + - type + - content_id + - created_at + - modified_at + - can_annotate + - annotations type: object - MaintenanceWindow: - description: A maintenance window that defines a scheduled time period during which case-related notifications and automation rules are suppressed. Each maintenance window applies to cases matching a specified query. + LLMObsTraceInteractionItem: + description: An interaction that references an upstream trace, experiment trace, or session. properties: - attributes: - $ref: "#/components/schemas/MaintenanceWindowAttributes" - id: - description: The maintenance window's identifier. - example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + content_id: + description: Upstream entity identifier (trace, experiment trace, or session ID). + example: "trace-abc-123" type: string type: - $ref: "#/components/schemas/MaintenanceWindowResourceType" + $ref: "#/components/schemas/LLMObsTraceInteractionType" required: - - id - type - - attributes + - content_id type: object - MaintenanceWindowAttributes: - description: Attributes of a maintenance window, including its schedule and the query that determines which cases are affected. + LLMObsTraceInteractionResponseItem: + description: A trace, experiment trace, or session interaction result. properties: - created_by: - description: The UUID of the user who created this maintenance window. Read-only. - readOnly: true + already_existed: + description: Whether this interaction already existed in the queue. + example: false + type: boolean + content_id: + description: Upstream entity identifier supplied by the caller. + example: "trace-abc-123" type: string - end_at: - description: The ISO 8601 timestamp when the maintenance window ends and normal notification behavior resumes. - example: "2026-06-01T06:00:00Z" + created_at: + description: Timestamp when the interaction was added to the queue. + example: "2024-01-15T10:30:00Z" format: date-time type: string - name: - description: "A human-readable name for the maintenance window (for example, `Database migration - Dec 15`)." - example: "Weekly maintenance" - type: string - query: - description: A case search query that determines which cases are affected during the maintenance window. Uses the same syntax as the Case Management search bar. - example: "project:SEC" + id: + description: Unique identifier of the interaction. + example: "00000000-0000-0000-0000-000000000000" type: string - start_at: - description: The ISO 8601 timestamp when the maintenance window begins and notifications start being suppressed. - example: "2026-06-01T00:00:00Z" + modified_at: + description: Timestamp when the interaction was last updated. + example: "2024-01-15T10:30:00Z" format: date-time type: string - updated_by: - description: The UUID of the user who last modified this maintenance window. Read-only. - readOnly: true - type: string + type: + $ref: "#/components/schemas/LLMObsTraceInteractionType" required: - - name - - query - - start_at - - end_at + - id + - type + - content_id + - already_existed + - created_at + - modified_at type: object - MaintenanceWindowCreate: - description: Data object for creating a maintenance window. + LLMObsTraceInteractionType: + description: Type of an upstream-entity interaction. + enum: + - trace + - experiment_trace + - session + example: trace + type: string + x-enum-varnames: + - TRACE + - EXPERIMENT_TRACE + - SESSION + LLMObsUpdatePromptData: + description: Data object for updating an Agent Observability prompt. properties: attributes: - $ref: "#/components/schemas/MaintenanceWindowCreateAttributes" + $ref: "#/components/schemas/LLMObsUpdatePromptDataAttributes" type: - $ref: "#/components/schemas/MaintenanceWindowResourceType" + $ref: "#/components/schemas/LLMObsPromptType" required: - type - attributes type: object - MaintenanceWindowCreateAttributes: - description: Attributes required to create a maintenance window. + LLMObsUpdatePromptDataAttributes: + additionalProperties: false + description: >- + Attributes for updating an Agent Observability prompt. At least one of `title` or `description` must be provided; both attributes are optional individually. + minProperties: 1 properties: - end_at: - description: The end time of the maintenance window. - example: "2026-06-01T06:00:00Z" - format: date-time - type: string - name: - description: The name of the maintenance window. - example: "Weekly maintenance" - type: string - query: - description: The query to filter event management cases for this maintenance window. - example: "project:SEC" + description: + description: Optional new description for the prompt. type: string - start_at: - description: The start time of the maintenance window. - example: "2026-06-01T00:00:00Z" - format: date-time + title: + description: Optional new title for the prompt. type: string - required: - - name - - query - - start_at - - end_at - type: object - MaintenanceWindowCreateRequest: - description: Request payload for creating a maintenance window. - properties: - data: - $ref: "#/components/schemas/MaintenanceWindowCreate" - required: - - data type: object - MaintenanceWindowResourceType: - default: maintenance_window - description: JSON:API resource type for maintenance windows. - enum: - - maintenance_window - example: maintenance_window - type: string - x-enum-varnames: - - MAINTENANCE_WINDOW - MaintenanceWindowResponse: - description: Response containing a single maintenance window. + LLMObsUpdatePromptRequest: + description: Request to update an Agent Observability prompt's metadata. properties: data: - $ref: "#/components/schemas/MaintenanceWindow" + $ref: "#/components/schemas/LLMObsUpdatePromptData" required: - data type: object - MaintenanceWindowUpdate: - description: Data object for updating a maintenance window. + LLMObsUpdatePromptVersionData: + description: Data object for updating an Agent Observability prompt version. properties: attributes: - $ref: "#/components/schemas/MaintenanceWindowUpdateAttributes" + $ref: "#/components/schemas/LLMObsUpdatePromptVersionDataAttributes" type: - $ref: "#/components/schemas/MaintenanceWindowResourceType" + $ref: "#/components/schemas/LLMObsPromptVersionType" required: - type + - attributes type: object - MaintenanceWindowUpdateAttributes: - description: Attributes that can be updated on a maintenance window. All fields are optional; only provided fields are changed. + LLMObsUpdatePromptVersionDataAttributes: + additionalProperties: false + description: >- + Attributes for updating an Agent Observability prompt version. At least one of `description`, `labels`, or `env_ids` must be provided; all three attributes are optional individually. + minProperties: 1 properties: - end_at: - description: The end time of the maintenance window. - format: date-time - type: string - name: - description: The name of the maintenance window. - type: string - query: - description: The query to filter event management cases for this maintenance window. - type: string - start_at: - description: The start time of the maintenance window. - format: date-time + description: + description: Optional new description for this version. type: string + env_ids: + description: >- + Optional feature-flag environment UUIDs the service attempts to enable and configure to use this version as their default. + items: + type: string + type: array + labels: + deprecated: true + description: Optional new labels for this version. Do not use this attribute for new integrations. + items: + $ref: "#/components/schemas/LLMObsPromptVersionLabel" + type: array type: object - MaintenanceWindowUpdateRequest: - description: Request payload for updating a maintenance window. + LLMObsUpdatePromptVersionRequest: + description: Request to update an Agent Observability prompt version's metadata or feature-flag environments. properties: data: - $ref: "#/components/schemas/MaintenanceWindowUpdate" + $ref: "#/components/schemas/LLMObsUpdatePromptVersionData" required: - data type: object - MaintenanceWindowsResponse: - description: Response containing a list of maintenance windows. + LLMObsUpsertAnnotationItem: + description: |- + A single annotation to create or update. The annotation is matched by + `interaction_id` and the requesting user's identity. properties: - data: - description: List of maintenance windows. + interaction_id: + description: ID of the interaction to annotate. + example: "00000000-0000-0000-0000-000000000001" + type: string + label_values: + description: |- + Label values for this annotation. Each entry references a label schema by ID + and provides the corresponding value validated against the schema type constraints. + example: + - label_schema_id: "abc-123" + value: "good" + - label_schema_id: "ef56gh78" + value: "positive" items: - $ref: "#/components/schemas/MaintenanceWindow" + $ref: "#/components/schemas/LLMObsAnnotationLabelValue" + minItems: 1 type: array required: - - data + - interaction_id + - label_values type: object - ManagedOrgsData: - description: The managed organizations resource. + LLMObsVertexAIMetadata: + description: Vertex AI-specific metadata for an integration account or inference request. properties: - id: - description: The UUID of the current organization. - example: "4dee724d-00cc-11ea-a77b-570c9d03c6c5" - format: uuid + location: + description: The Vertex AI region. + example: "us-central1" type: string - relationships: - $ref: "#/components/schemas/ManagedOrgsRelationships" - type: - $ref: "#/components/schemas/ManagedOrgsType" - required: - - id - - type - - relationships - type: object - ManagedOrgsRelationshipToOrg: - description: Relationship to the current organization. - properties: - data: - $ref: "#/components/schemas/OrgRelationshipData" - required: - - data - type: object - ManagedOrgsRelationshipToOrgs: - description: Relationship to the managed organizations. - properties: - data: - description: List of managed organization references. + project: + description: The Google Cloud project ID. + example: "my-gcp-project" + type: string + project_ids: + description: List of Google Cloud project IDs available to the service account. + example: + - "my-gcp-project" items: - $ref: "#/components/schemas/OrgRelationshipData" + type: string type: array + type: object + Language: + description: Programming language + enum: + - PYTHON + - JAVASCRIPT + - TYPESCRIPT + - JAVA + - GO + - YAML + - RUBY + - CSHARP + - PHP + - KOTLIN + - SWIFT + - DART + - DOCKERFILE + - ELIXIR + - JSON + - RUST + - TERRAFORM + - STARLARK + - BASH + - MARKDOWN + - APEX + - R + - SQL + example: PYTHON + type: string + x-enum-varnames: + - PYTHON + - JAVASCRIPT + - TYPESCRIPT + - JAVA + - GO + - YAML + - RUBY + - CSHARP + - PHP + - KOTLIN + - SWIFT + - DART + - DOCKERFILE + - ELIXIR + - JSON + - RUST + - TERRAFORM + - STARLARK + - BASH + - MARKDOWN + - APEX + - R + - SQL + LatestVersionMatchPolicy: + description: The policy for matching the latest form version during an upsert operation. + enum: + - none + - if_etag_match + example: none + type: string + x-enum-varnames: + - NONE + - IF_ETAG_MATCH + LaunchDarklyAPIKey: + description: The definition of the `LaunchDarklyAPIKey` object. + properties: + api_token: + description: The `LaunchDarklyAPIKey` `api_token`. + example: "" + type: string + type: + $ref: "#/components/schemas/LaunchDarklyAPIKeyType" required: - - data + - type + - api_token type: object - ManagedOrgsRelationships: - description: Relationships of the managed organizations resource. + LaunchDarklyAPIKeyType: + description: The definition of the `LaunchDarklyAPIKey` object. + enum: + - LaunchDarklyAPIKey + example: LaunchDarklyAPIKey + type: string + x-enum-varnames: + - LAUNCHDARKLYAPIKEY + LaunchDarklyAPIKeyUpdate: + description: The definition of the `LaunchDarklyAPIKey` object. properties: - current_org: - $ref: "#/components/schemas/ManagedOrgsRelationshipToOrg" - managed_orgs: - $ref: "#/components/schemas/ManagedOrgsRelationshipToOrgs" + api_token: + description: The `LaunchDarklyAPIKeyUpdate` `api_token`. + type: string + type: + $ref: "#/components/schemas/LaunchDarklyAPIKeyType" required: - - current_org - - managed_orgs + - type type: object - ManagedOrgsResponse: - description: Response containing the current organization and its managed organizations. + LaunchDarklyCredentials: + description: The definition of the `LaunchDarklyCredentials` object. + oneOf: + - $ref: "#/components/schemas/LaunchDarklyAPIKey" + LaunchDarklyCredentialsUpdate: + description: The definition of the `LaunchDarklyCredentialsUpdate` object. + oneOf: + - $ref: "#/components/schemas/LaunchDarklyAPIKeyUpdate" + LaunchDarklyIntegration: + description: The definition of the `LaunchDarklyIntegration` object. properties: - data: - $ref: "#/components/schemas/ManagedOrgsData" - included: - description: Included organization resources. - items: - $ref: "#/components/schemas/OrgData" - type: array + credentials: + $ref: "#/components/schemas/LaunchDarklyCredentials" + type: + $ref: "#/components/schemas/LaunchDarklyIntegrationType" required: - - data - - included + - type + - credentials type: object - ManagedOrgsType: - description: The resource type for managed organizations. - enum: [managed_orgs] - example: "managed_orgs" + LaunchDarklyIntegrationType: + description: The definition of the `LaunchDarklyIntegrationType` object. + enum: + - LaunchDarkly + example: LaunchDarkly type: string x-enum-varnames: - - MANAGED_ORGS - MatchingSignalAttributes: - description: Attributes of a matching security signal. + - LAUNCHDARKLY + LaunchDarklyIntegrationUpdate: + description: The definition of the `LaunchDarklyIntegrationUpdate` object. properties: - event_tracker_id: - description: The tracker ID linking the signal back to the originating event. Distinct from `id`, which identifies the matching signal itself. - example: AAAAAWgOAX0mtsWfeQAAAABzX1RyYWNrZXJfMTIzNDU2Nzg5MA - type: string - severity: - description: The severity of the signal. - example: high - type: string - title: - description: The title of the signal. - example: Unusual login activity detected - type: string - trigger_time_ms: - description: The Unix timestamp (in milliseconds) at which the signal was triggered. - example: 1707393746000 - format: int64 - type: integer + credentials: + $ref: "#/components/schemas/LaunchDarklyCredentialsUpdate" + type: + $ref: "#/components/schemas/LaunchDarklyIntegrationType" required: - - event_tracker_id - - severity - - title - - trigger_time_ms + - type type: object - MatchingSignalData: - description: A security signal that matches the queried event. + Layer: + description: Encapsulates a layer resource, holding attributes like rotation details, plus relationships to the members covering that layer. properties: attributes: - $ref: "#/components/schemas/MatchingSignalAttributes" + $ref: "#/components/schemas/LayerAttributes" id: - description: The ID of the matching signal. - example: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA + description: A unique identifier for this layer. type: string + relationships: + $ref: "#/components/schemas/LayerRelationships" type: - $ref: "#/components/schemas/MatchingSignalType" + $ref: "#/components/schemas/LayerType" required: - - id - type - - attributes type: object - MatchingSignalType: - default: matching_signal - description: The type of the resource. The value should always be `matching_signal`. - enum: - - matching_signal - example: matching_signal - type: string - x-enum-varnames: - - MATCHING_SIGNAL - MatchingSignalsResponse: - description: Response containing the list of security signals matching an event. + LayerAttributes: + description: Describes key properties of a Layer, including rotation details, name, start/end times, and any restrictions. properties: - data: - description: Array of matching signals. + effective_date: + description: When the layer becomes active (ISO 8601). + format: date-time + type: string + end_date: + description: When the layer ceases to be active (ISO 8601). + format: date-time + type: string + interval: + $ref: "#/components/schemas/LayerAttributesInterval" + name: + description: The name of this layer. + example: Weekend Layer + type: string + restrictions: + description: An optional list of time restrictions for when this layer is in effect. items: - $ref: "#/components/schemas/MatchingSignalData" + $ref: "#/components/schemas/TimeRestriction" type: array - required: - - data + rotation_start: + description: The date/time when the rotation starts (ISO 8601). + format: date-time + type: string + time_zone: + description: The time zone for this layer. + example: "America/New_York" + type: string type: object - MaxSessionDurationType: - description: Data type of a maximum session duration update. - enum: [max_session_duration] - example: max_session_duration - type: string - x-enum-varnames: - - MAX_SESSION_DURATION - MaxSessionDurationUpdateAttributes: - description: Attributes for the maximum session duration update request. + LayerAttributesInterval: + description: Defines how often the rotation repeats, using a combination of days and optional seconds. Should be at least 1 hour. properties: - max_session_duration: - description: The maximum session duration, in seconds. - example: 604800 + days: + description: The number of days in each rotation cycle. + example: 1 + format: int32 + maximum: 400 + type: integer + seconds: + description: Any additional seconds for the rotation cycle (up to 30 days). + example: 300 format: int64 - minimum: 1 + maximum: 2592000 type: integer - required: [max_session_duration] type: object - MaxSessionDurationUpdateData: - description: The data object for a maximum session duration update request. + LayerRelationships: + description: Holds references to objects related to the Layer entity, such as its members. properties: - attributes: - $ref: "#/components/schemas/MaxSessionDurationUpdateAttributes" - type: - $ref: "#/components/schemas/MaxSessionDurationType" - required: [type, attributes] + members: + $ref: "#/components/schemas/LayerRelationshipsMembers" type: object - MaxSessionDurationUpdateRequest: - description: A request to update the maximum session duration for an organization. + LayerRelationshipsMembers: + description: Holds an array of references to the members of a Layer, each containing member IDs. properties: data: - $ref: "#/components/schemas/MaxSessionDurationUpdateData" - required: [data] + description: The list of members who belong to this layer. + items: + $ref: "#/components/schemas/LayerRelationshipsMembersDataItems" + type: array type: object - McpScanRequest: - description: The top-level request object for submitting an MCP SCA dependency scan. + LayerRelationshipsMembersDataItems: + description: |- + Represents a single member object in a layer's `members` array, referencing + a unique Datadog user ID. properties: - data: - $ref: "#/components/schemas/McpScanRequestData" + id: + description: The unique user ID of the layer member. + example: "00000000-0000-0000-0000-000000000002" + type: string + type: + $ref: "#/components/schemas/LayerRelationshipsMembersDataItemsType" required: - - data + - type + - id type: object - McpScanRequestData: - description: The data object in an MCP SCA scan request, containing the scan attributes and request type. + LayerRelationshipsMembersDataItemsType: + default: members + description: |- + Members resource type. + enum: + - members + example: members + type: string + x-enum-varnames: + - MEMBERS + LayerType: + default: layers + description: |- + Layers resource type. + enum: + - layers + example: layers + type: string + x-enum-varnames: + - LAYERS + LeakedKey: + description: The definition of LeakedKey object. properties: attributes: - $ref: "#/components/schemas/McpScanRequestDataAttributes" + $ref: "#/components/schemas/LeakedKeyAttributes" id: - description: An optional identifier for this scan request. + description: The LeakedKey id. + example: "id" type: string type: - $ref: "#/components/schemas/McpScanRequestDataType" + $ref: "#/components/schemas/LeakedKeyType" required: - - type - attributes + - id + - type type: object - McpScanRequestDataAttributes: - description: The attributes of an MCP SCA scan request, describing the libraries to scan and their context. + LeakedKeyAttributes: + description: The definition of LeakedKeyAttributes object. properties: - commit_hash: - description: The commit hash of the source code being scanned. - example: 0e9fc8de83eaabecd722e1cd0ed44fb489fe15fc + date: + description: The LeakedKeyAttributes date. + example: "2017-07-21T17:32:28Z" + format: date-time type: string - libraries: - $ref: "#/components/schemas/McpScanRequestDataAttributesLibraries" - resource_name: - description: The name of the resource (typically the repository or project name) being scanned. - example: my-org/my-repo + leak_source: + description: The LeakedKeyAttributes leak_source. type: string required: - - resource_name - - commit_hash - - libraries + - date type: object - McpScanRequestDataAttributesLibraries: - description: The list of libraries to scan for vulnerabilities. - items: - $ref: "#/components/schemas/McpScanRequestDataAttributesLibrariesItems" - type: array - McpScanRequestDataAttributesLibrariesItems: - description: A library declaration to include in the dependency scan. + LeakedKeyType: + default: leaked_keys + description: The definition of LeakedKeyType object. + enum: + - leaked_keys + example: leaked_keys + type: string + x-enum-varnames: + - LEAKED_KEYS + Library: + description: Vulnerability library. properties: - exclusions: - $ref: "#/components/schemas/McpScanRequestDataAttributesLibrariesItemsExclusions" - is_dev: - description: Whether this library is a development-only dependency. - example: false - type: boolean - is_direct: - description: Whether this library is a direct (rather than transitive) dependency. - example: true - type: boolean - package_manager: - description: The package manager that produced this library entry (for example, `npm`, `pip`, `nuget`). - example: nuget + additional_names: + description: Related library or package names (such as child packages or affected binary paths). + items: + description: A related library or package name affected by the vulnerability. + example: linux-tools-common + type: string + type: array + name: + description: Vulnerability library name. + example: linux-aws-5.15 type: string - purl: - description: The Package URL (PURL) uniquely identifying the library and its version. - example: pkg:nuget/Newtonsoft.Json@13.0.1 + version: + description: Vulnerability library version. + example: 5.15.0 type: string - target_frameworks: - $ref: "#/components/schemas/McpScanRequestDataAttributesLibrariesItemsTargetFrameworks" required: - - purl - - is_dev - - is_direct - - package_manager + - name type: object - McpScanRequestDataAttributesLibrariesItemsExclusions: - description: The list of dependency PURLs to exclude when resolving transitive dependencies for this library. - items: - description: A dependency PURL to exclude. - type: string - type: array - McpScanRequestDataAttributesLibrariesItemsTargetFrameworks: - description: The list of target framework identifiers associated with the library. - items: - description: A target framework identifier (for example, `net8.0`). - type: string - type: array - McpScanRequestDataType: - default: mcpscanrequest - description: The type identifier for MCP SCA scan requests. - enum: - - mcpscanrequest - example: mcpscanrequest - type: string - x-enum-varnames: - - MCPSCANREQUEST - McpScanRequestResponse: - description: The top-level response object returned when an MCP SCA dependency scan request has been accepted. + LicensesListResponse: + description: >- + The top-level response object returned by the licenses list endpoint, containing the array of supported SPDX licenses. properties: data: - $ref: "#/components/schemas/McpScanRequestResponseData" + $ref: "#/components/schemas/LicensesListResponseData" required: - data type: object - McpScanRequestResponseData: - description: The data object returned when a scan request has been accepted. + LicensesListResponseData: + description: The data object in a licenses list response, containing the list of SPDX licenses. properties: attributes: - $ref: "#/components/schemas/McpScanRequestResponseDataAttributes" + $ref: "#/components/schemas/LicensesListResponseDataAttributes" id: - description: The job identifier assigned to the scan. + description: The unique identifier for this licenses list response. example: 0190a3d4-1234-7000-8000-000000000000 type: string type: - $ref: "#/components/schemas/McpScanRequestResponseDataType" + $ref: "#/components/schemas/LicensesListResponseDataType" required: - id - type - attributes type: object - McpScanRequestResponseDataAttributes: - description: >- - The attributes returned when a scan request has been accepted, containing the job identifier used to poll for results. + LicensesListResponseDataAttributes: + description: The attributes of the licenses list response, containing the array of SPDX licenses. properties: - job_id: - description: The job identifier assigned to the scan, used to retrieve the scan result. - example: 0190a3d4-1234-7000-8000-000000000000 - type: string + licenses: + $ref: "#/components/schemas/LicensesListResponseDataAttributesLicenses" required: - - job_id + - licenses type: object - McpScanRequestResponseDataType: - default: mcpscanrequestresponse - description: The type identifier for MCP SCA scan request responses. - enum: - - mcpscanrequestresponse - example: mcpscanrequestresponse - type: string - x-enum-varnames: - - MCPSCANREQUESTRESPONSE - MemberTeam: - description: A member team + LicensesListResponseDataAttributesLicenses: + description: The list of SPDX licenses returned by the API. + items: + $ref: "#/components/schemas/LicensesListResponseDataAttributesLicensesItems" + type: array + LicensesListResponseDataAttributesLicensesItems: + description: An SPDX license entry returned by the licenses list endpoint. properties: - id: - description: The member team's identifier - example: aeadc05e-98a8-11ec-ac2c-da7ad0900001 + display_name: + description: The human-readable name of the license. + example: MIT License + type: string + identifier: + description: The SPDX identifier of the license. + example: MIT + type: string + short_name: + description: The short name of the license, typically matching the SPDX identifier. + example: MIT type: string - type: - $ref: "#/components/schemas/MemberTeamType" required: - - id - - type + - display_name + - identifier + - short_name type: object - MemberTeamType: - default: member_teams - description: Member team type + LicensesListResponseDataType: + default: licenserequest + description: The type identifier for license list responses. enum: - - member_teams - example: member_teams + - licenserequest + example: licenserequest type: string x-enum-varnames: - - MEMBER_TEAMS - Metadata: - description: The metadata related to this request. + - LICENSEREQUEST + LinearIssuesDataType: + default: linear_issues + description: Linear issues resource type. + enum: + - linear_issues + example: linear_issues + type: string + x-enum-varnames: + - LINEAR_ISSUES + Links: + description: The JSON:API links related to pagination. properties: - count: - description: Number of entities included in the response. - example: 150 - format: int64 - type: integer - token: - description: The token that identifies the request. - example: "b82cef018aab81ed1d4bb4xb35xxfc065da7efa685fbcecdbd338f3015e3afabbbfa3a911b4984_721ee28a-zecb-4e45-9960-c42065b574f4" + first: + description: First page link. + example: "https://api.datadoghq.com/api/v2/security/vulnerabilities?page%5Bnumber%5D=1&page%5Btoken%5D=b82cef018aab81ed1d4bb4xb35xxfc065da7efa685fbcecdbd338f3015e3afabbbfa3a911b4984_721ee28a-zecb-4e45-9960-c42065b574f4" + type: string + last: + description: Last page link. + example: "https://api.datadoghq.com/api/v2/security/vulnerabilities?page%5Bnumber%5D=15&page%5Btoken%5D=b82cef018aab81ed1d4bb4xb35xxfc065da7efa685fbcecdbd338f3015e3afabbbfa3a911b4984_721ee28a-zecb-4e45-9960-c42065b574f4" + type: string + next: + description: Next page link. + example: "https://api.datadoghq.com/api/v2/security/vulnerabilities?page%5Bnumber%5D=16&page%5Btoken%5D=b82cef018aab81ed1d4bb4xb35xxfc065da7efa685fbcecdbd338f3015e3afabbbfa3a911b4984_721ee28a-zecb-4e45-9960-c42065b574f4" + type: string + previous: + description: Previous page link. + example: "https://api.datadoghq.com/api/v2/security/vulnerabilities?page%5Bnumber%5D=14&page%5Btoken%5D=b82cef018aab81ed1d4bb4xb35xxfc065da7efa685fbcecdbd338f3015e3afabbbfa3a911b4984_721ee28a-zecb-4e45-9960-c42065b574f4" + type: string + self: + description: Request link. + example: https://api.datadoghq.com/api/v2/security/vulnerabilities?filter%5Btool%5D=Infra type: string - total: - description: Total number of entities across all pages. - example: 152431 - format: int64 - type: integer required: - - count - - total - - token + - self + - first + - last type: object - Metric: - description: Object for a single metric. - example: - id: metric.foo.bar - type: metrics + ListAPIsResponse: + description: Response for `ListAPIs`. properties: - id: - $ref: "#/components/schemas/MetricName" - relationships: - $ref: "#/components/schemas/MetricRelationships" - type: - $ref: "#/components/schemas/MetricType" + data: + description: List of API items. + items: + $ref: "#/components/schemas/ListAPIsResponseData" + type: array + meta: + $ref: "#/components/schemas/ListAPIsResponseMeta" type: object - MetricActiveConfigurationType: - default: actively_queried_configurations - description: The metric actively queried configuration resource type. - enum: - - actively_queried_configurations - example: actively_queried_configurations - type: string - x-enum-varnames: - - ACTIVELY_QUERIED_CONFIGURATIONS - MetricAllTags: - description: Object for a single metric's indexed and ingested tags. + ListAPIsResponseData: + description: Data envelope for `ListAPIsResponse`. properties: attributes: - $ref: "#/components/schemas/MetricAllTagsAttributes" + $ref: "#/components/schemas/ListAPIsResponseDataAttributes" id: - $ref: "#/components/schemas/MetricName" - type: - $ref: "#/components/schemas/MetricType" - type: object - MetricAllTagsAttributes: - description: Object containing the definition of a metric's indexed and ingested tags. - properties: - ingested_tags: - description: List of ingested tags that are not indexed. - example: ["env:prod", "service:web", "version:1.0"] - items: - description: Ingested tags for the metric. - type: string - type: array - tags: - description: List of indexed tags. - example: ["sport:golf", "sport:football", "animal:dog"] - items: - description: Indexed tags for the metric. - type: string - type: array + $ref: "#/components/schemas/ApiID" type: object - MetricAllTagsResponse: - description: Response object that includes a single metric's indexed and ingested tags. + ListAPIsResponseDataAttributes: + description: Attributes for `ListAPIsResponseData`. properties: - data: - $ref: "#/components/schemas/MetricAllTags" - readOnly: true + name: + description: API name. + example: "Payments API" + type: string type: object - MetricAssetAttributes: - description: Assets related to the object, including title, url, and tags. + ListAPIsResponseMeta: + description: Metadata for `ListAPIsResponse`. properties: - tags: - description: List of tag keys used in the asset. - example: ["env", "service", "host", "datacenter"] - items: - description: Tag key used in assets. - type: string - type: array - title: - description: Title of the asset. - type: string - url: - description: URL path of the asset. - type: string + pagination: + $ref: "#/components/schemas/ListAPIsResponseMetaPagination" type: object - MetricAssetDashboardRelationship: - description: An object of type `dashboard` that can be referenced in the `included` data. + ListAPIsResponseMetaPagination: + description: Pagination metadata information for `ListAPIsResponse`. properties: - id: - $ref: "#/components/schemas/MetricDashboardID" - type: - $ref: "#/components/schemas/MetricDashboardType" + limit: + description: Number of items in the current page. + example: 20 + format: int64 + type: integer + offset: + description: Offset for pagination. + example: 0 + format: int64 + type: integer + total_count: + description: Total number of items. + example: 35 + format: int64 + type: integer type: object - MetricAssetDashboardRelationships: - description: An object containing the list of dashboards that can be referenced in the `included` data. + ListAllocationsResponse: + description: Response containing a list of targeting rules (allocations). properties: data: - description: A list of dashboards that can be referenced in the `included` data. + description: List of targeting rules (allocations). items: - $ref: "#/components/schemas/MetricAssetDashboardRelationship" + $ref: "#/components/schemas/AllocationDataResponse" + description: Allocation item. type: array + required: + - data type: object - MetricAssetMonitorRelationship: - description: An object of type `monitor` that can be referenced in the `included` data. - properties: - id: - $ref: "#/components/schemas/MetricMonitorID" - type: - $ref: "#/components/schemas/MetricMonitorType" - type: object - MetricAssetMonitorRelationships: - description: A object containing the list of monitors that can be referenced in the `included` data. + ListAppKeyRegistrationsResponse: + description: A paginated list of app key registrations. properties: data: - description: A list of monitors that can be referenced in the `included` data. + description: An array of app key registrations. items: - $ref: "#/components/schemas/MetricAssetMonitorRelationship" + $ref: "#/components/schemas/AppKeyRegistrationData" type: array + meta: + $ref: "#/components/schemas/ListAppKeyRegistrationsResponseMeta" type: object - MetricAssetNotebookRelationship: - description: An object of type `notebook` that can be referenced in the `included` data. + ListAppKeyRegistrationsResponseMeta: + description: The definition of `ListAppKeyRegistrationsResponseMeta` object. properties: - id: - $ref: "#/components/schemas/MetricNotebookID" - type: - $ref: "#/components/schemas/MetricNotebookType" + total: + description: The total number of app key registrations. + example: 1 + format: int64 + type: integer + total_filtered: + description: The total number of app key registrations that match the specified filters. + example: 1 + format: int64 + type: integer type: object - MetricAssetNotebookRelationships: - description: An object containing the list of notebooks that can be referenced in the `included` data. + ListAppVersionsResponse: + description: A paginated list of versions for an app. properties: data: - description: A list of notebooks that can be referenced in the `included` data. + description: The list of app versions. items: - $ref: "#/components/schemas/MetricAssetNotebookRelationship" + $ref: "#/components/schemas/AppVersion" type: array + meta: + $ref: "#/components/schemas/ListAppsResponseMeta" type: object - MetricAssetResponseData: - description: Metric assets response data. - properties: - id: - $ref: "#/components/schemas/MetricName" - relationships: - $ref: "#/components/schemas/MetricAssetResponseRelationships" - type: - $ref: "#/components/schemas/MetricType" - required: - - id - - type - type: object - MetricAssetResponseIncluded: - description: List of included assets with full set of attributes. - oneOf: - - $ref: "#/components/schemas/MetricDashboardAsset" - - $ref: "#/components/schemas/MetricMonitorAsset" - - $ref: "#/components/schemas/MetricNotebookAsset" - - $ref: "#/components/schemas/MetricSLOAsset" - MetricAssetResponseRelationships: - description: Relationships to assets related to the metric. - properties: - dashboards: - $ref: "#/components/schemas/MetricAssetDashboardRelationships" - monitors: - $ref: "#/components/schemas/MetricAssetMonitorRelationships" - notebooks: - $ref: "#/components/schemas/MetricAssetNotebookRelationships" - slos: - $ref: "#/components/schemas/MetricAssetSLORelationships" - type: object - MetricAssetSLORelationship: - description: An object of type `slos` that can be referenced in the `included` data. - properties: - id: - $ref: "#/components/schemas/MetricSLOID" - type: - $ref: "#/components/schemas/MetricSLOType" - type: object - MetricAssetSLORelationships: - description: An object containing a list of SLOs that can be referenced in the `included` data. + ListApplicationKeysResponse: + description: Response for a list of application keys. properties: data: - description: A list of SLOs that can be referenced in the `included` data. + description: Array of application keys. items: - $ref: "#/components/schemas/MetricAssetSLORelationship" + $ref: "#/components/schemas/PartialApplicationKey" + type: array + included: + description: Array of objects related to the application key. + items: + $ref: "#/components/schemas/ApplicationKeyResponseIncludedItem" type: array + meta: + $ref: "#/components/schemas/ApplicationKeyResponseMeta" type: object - MetricAssetsResponse: - description: Response object that includes related dashboards, monitors, notebooks, and SLOs. + ListAppsResponse: + description: A paginated list of apps matching the specified filters and sorting. properties: data: - $ref: "#/components/schemas/MetricAssetResponseData" + description: An array of app definitions. + items: + $ref: "#/components/schemas/ListAppsResponseDataItems" + type: array included: - description: Array of objects related to the metric assets. + description: Data on the version of the app that was published. items: - $ref: "#/components/schemas/MetricAssetResponseIncluded" + $ref: "#/components/schemas/Deployment" type: array + meta: + $ref: "#/components/schemas/ListAppsResponseMeta" type: object - MetricBulkConfigureTagsType: - default: metric_bulk_configure_tags - description: The metric bulk configure tags resource. - enum: - - metric_bulk_configure_tags - example: metric_bulk_configure_tags - type: string - x-enum-varnames: - - BULK_MANAGE_TAGS - MetricBulkTagConfigCreate: - description: Request object to bulk configure tags for metrics matching the given prefix. + ListAppsResponseDataItems: + description: An app definition object. This contains only basic information about the app such as ID, name, and tags. properties: attributes: - $ref: "#/components/schemas/MetricBulkTagConfigCreateAttributes" + $ref: "#/components/schemas/ListAppsResponseDataItemsAttributes" id: - $ref: "#/components/schemas/MetricBulkTagConfigNamePrefix" + description: The ID of the app. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + format: uuid + type: string + meta: + $ref: "#/components/schemas/AppMeta" + relationships: + $ref: "#/components/schemas/ListAppsResponseDataItemsRelationships" type: - $ref: "#/components/schemas/MetricBulkConfigureTagsType" + $ref: "#/components/schemas/AppDefinitionType" required: - id - type + - attributes type: object - MetricBulkTagConfigCreateAttributes: - description: Optional parameters for bulk creating metric tag configurations. + ListAppsResponseDataItemsAttributes: + description: Basic information about the app such as name, description, and tags. properties: - emails: - $ref: "#/components/schemas/MetricBulkTagConfigEmailList" - exclude_tags_mode: - description: |- - When set to true, the configuration will exclude the configured tags and include any other submitted tags. - When set to false, the configuration will include the configured tags and exclude any other submitted tags. - Defaults to false. + description: + description: A human-readable description for the app. + type: string + favorite: + description: Whether the app is marked as a favorite by the current user. type: boolean - include_actively_queried_tags_window: - description: |- - When provided, all tags that have been actively queried are - configured (and, therefore, remain queryable) for each metric that - matches the given prefix. Minimum value is 1 second, and maximum - value is 7,776,000 seconds (90 days). - format: double - maximum: 7776000 - minimum: 1 - type: number - override_existing_configurations: - description: |- - When set to true, the configuration overrides any existing - configurations for the given metric with the new set of tags in this - configuration request. If false, old configurations are kept and - are merged with the set of tags in this configuration request. - Defaults to true. + name: + description: The name of the app. + type: string + selfService: + description: Whether the app is enabled for use in the Datadog self-service hub. type: boolean tags: - $ref: "#/components/schemas/MetricBulkTagConfigTagNameList" + description: A list of tags for the app, which can be used to filter apps. + example: + - "service:webshop-backend" + - "team:webshop" + items: + description: An individual tag for the app. + type: string + type: array type: object - MetricBulkTagConfigCreateRequest: - description: Wrapper object for a single bulk tag configuration request. + ListAppsResponseDataItemsRelationships: + description: The app's publication information. properties: - data: - $ref: "#/components/schemas/MetricBulkTagConfigCreate" - required: - - data + deployment: + $ref: "#/components/schemas/DeploymentRelationship" type: object - MetricBulkTagConfigDelete: - description: Request object to bulk delete all tag configurations for metrics matching the given prefix. + ListAppsResponseMeta: + description: Pagination metadata. properties: - attributes: - $ref: "#/components/schemas/MetricBulkTagConfigDeleteAttributes" - id: - $ref: "#/components/schemas/MetricBulkTagConfigNamePrefix" - type: - $ref: "#/components/schemas/MetricBulkConfigureTagsType" - required: - - id - - type + page: + $ref: "#/components/schemas/ListAppsResponseMetaPage" type: object - MetricBulkTagConfigDeleteAttributes: - description: Optional parameters for bulk deleting metric tag configurations. + ListAppsResponseMetaPage: + description: Information on the total number of apps, to be used for pagination. properties: - emails: - $ref: "#/components/schemas/MetricBulkTagConfigEmailList" + totalCount: + description: The total number of apps under the Datadog organization, disregarding any filters applied. + format: int64 + type: integer + totalFilteredCount: + description: The total number of apps that match the specified filters. + format: int64 + type: integer type: object - MetricBulkTagConfigDeleteRequest: - description: Wrapper object for a single bulk tag deletion request. + ListAssetsSBOMsResponse: + description: The expected response schema when listing assets SBOMs. properties: data: - $ref: "#/components/schemas/MetricBulkTagConfigDelete" + description: List of assets SBOMs. + items: + $ref: "#/components/schemas/SBOM" + type: array + links: + $ref: "#/components/schemas/Links" + meta: + $ref: "#/components/schemas/Metadata" required: - data type: object - MetricBulkTagConfigEmailList: - description: A list of account emails to notify when the configuration is applied. - example: ["sue@example.com", "bob@example.com"] - items: - description: An email address. - type: string - type: array - MetricBulkTagConfigNamePrefix: - description: A text prefix to match against metric names. - example: "kafka.lag" - type: string - MetricBulkTagConfigResponse: - description: Wrapper for a single bulk tag configuration status response. + ListBlueprintsResponse: + description: The response for listing available blueprints. properties: data: - $ref: "#/components/schemas/MetricBulkTagConfigStatus" + description: An array of blueprint metadata. + items: + $ref: "#/components/schemas/BlueprintMetadataData" + type: array type: object - MetricBulkTagConfigStatus: - description: |- - The status of a request to bulk configure metric tags. - It contains the fields from the original request for reference. + ListCampaignsResponse: + description: Response containing a list of campaigns. properties: - attributes: - $ref: "#/components/schemas/MetricBulkTagConfigStatusAttributes" - id: - $ref: "#/components/schemas/MetricBulkTagConfigNamePrefix" - type: - $ref: "#/components/schemas/MetricBulkConfigureTagsType" + data: + $ref: "#/components/schemas/ListCampaignsResponseData" + meta: + $ref: "#/components/schemas/PaginatedResponseMeta" required: - - id - - type - type: object - MetricBulkTagConfigStatusAttributes: - description: Optional attributes for the status of a bulk tag configuration request. - properties: - emails: - $ref: "#/components/schemas/MetricBulkTagConfigEmailList" - exclude_tags_mode: - description: |- - When set to true, the configuration will exclude the configured tags and include any other submitted tags. - When set to false, the configuration will include the configured tags and exclude any other submitted tags. - type: boolean - status: - description: The status of the request. - example: "Accepted" - type: string - tags: - $ref: "#/components/schemas/MetricBulkTagConfigTagNameList" + - data + - meta type: object - MetricBulkTagConfigTagNameList: - description: A list of tag names to apply to the configuration. - example: ["host", "pod_name", "is_shadow"] + ListCampaignsResponseData: + description: Array of campaigns. items: - description: A metric tag name. - maxLength: 200 - pattern: ^[A-Za-z][A-Za-z0-9\.\-\_:\/]*$ - type: string + $ref: "#/components/schemas/CampaignResponseData" type: array - MetricContentEncoding: - default: deflate - description: HTTP header used to compress the media-type. - enum: - - deflate - - zstd1 - - gzip - example: deflate - type: string - x-enum-varnames: - - DEFLATE - - ZSTD1 - - GZIP - MetricCustomAggregation: - description: |- - A time and space aggregation combination for use in query. + ListConnectionsResponse: + description: Response containing the list of all data source connections configured for an entity. example: - space: sum - time: sum + data: + attributes: + connections: + - created_at: "0001-01-01T00:00:00Z" + created_by: 00000000-0000-0000-0000-000000000000 + fields: + - description: Customer subscription tier + display_name: Customer Tier + groups: + - Business + - Subscription + id: customer_tier + source_name: subscription_tier + type: string + - description: Channel through which user signed up + display_name: Signup Source + groups: + - Marketing + - Attribution + id: signup_source + source_name: acquisition_channel + type: string + id: user-profiles-connection + join: + attribute: user_email + type: email + type: ref_table + updated_at: "0001-01-01T00:00:00Z" + updated_by: 00000000-0000-0000-0000-000000000000 + id: list_connections_response + type: list_connections_response properties: - space: - $ref: "#/components/schemas/MetricCustomSpaceAggregation" - time: - $ref: "#/components/schemas/MetricCustomTimeAggregation" - required: - - time - - space + data: + $ref: "#/components/schemas/ListConnectionsResponseData" type: object - MetricCustomAggregations: - description: |- - Deprecated. You no longer need to configure specific time and space aggregations for Metrics Without Limits. - example: - - space: sum - time: sum - - space: sum - time: count - items: - $ref: "#/components/schemas/MetricCustomAggregation" - type: array - MetricCustomSpaceAggregation: - description: A space aggregation for use in query. - enum: - - avg - - max - - min - - sum - example: sum - type: string - x-enum-varnames: - - AVG - - MAX - - MIN - - SUM - MetricCustomTimeAggregation: - description: A time aggregation for use in query. - enum: - - avg - - count - - max - - min - - sum - example: sum - type: string - x-enum-varnames: - - AVG - - COUNT - - MAX - - MIN - - SUM - MetricDashboardAsset: - description: A dashboard object with title and popularity. + ListConnectionsResponseData: + description: The data object containing the resource type and attributes for the list connections response. properties: attributes: - $ref: "#/components/schemas/MetricDashboardAttributes" + $ref: "#/components/schemas/ListConnectionsResponseDataAttributes" id: - $ref: "#/components/schemas/MetricDashboardID" + description: Unique identifier for the list connections response resource. + type: string type: - $ref: "#/components/schemas/MetricDashboardType" + $ref: "#/components/schemas/ListConnectionsResponseDataType" required: - - id - type type: object - MetricDashboardAttributes: - description: Attributes related to the dashboard, including title, popularity, and url. + ListConnectionsResponseDataAttributes: + description: Attributes of the list connections response, containing the collection of data source connections. properties: - popularity: - description: Value from 0 to 5 that ranks popularity of the dashboard. - format: double - maximum: 5 - minimum: 0 - type: number - tags: - description: List of tag keys used in the asset. - example: ["env", "service", "host", "datacenter"] + connections: + description: The list of data source connections configured for the entity. items: - description: Tag key used in assets. - type: string + $ref: "#/components/schemas/ListConnectionsResponseDataAttributesConnectionsItems" type: array - title: - description: Title of the asset. - type: string - url: - description: URL path of the asset. - type: string type: object - MetricDashboardID: - description: The related dashboard's ID. - example: "xxx-yyy-zzz" - type: string - MetricDashboardType: - description: Dashboard resource type. - enum: - - dashboards - example: "dashboards" - type: string - x-enum-varnames: - - DASHBOARDS - MetricDistinctVolume: - description: Object for a single metric's distinct volume. + ListConnectionsResponseDataAttributesConnectionsItems: + description: Details of a single data source connection, including its fields, join configuration, and audit metadata. properties: - attributes: - $ref: "#/components/schemas/MetricDistinctVolumeAttributes" + created_at: + description: Timestamp indicating when the connection was created. + format: date-time + type: string + created_by: + description: Identifier of the user who created the connection. + type: string + fields: + description: List of custom attribute fields imported from the data source. + items: + $ref: "#/components/schemas/CreateConnectionRequestDataAttributesFieldsItems" + type: array id: - $ref: "#/components/schemas/MetricName" + description: Unique identifier of the connection. + type: string + join: + $ref: "#/components/schemas/ListConnectionsResponseDataAttributesConnectionsItemsJoin" + metadata: + additionalProperties: + type: string + description: Additional key-value metadata associated with the connection. + type: object type: - $ref: "#/components/schemas/MetricDistinctVolumeType" - type: object - MetricDistinctVolumeAttributes: - description: Object containing the definition of a metric's distinct volume. - properties: - distinct_volume: - description: Distinct volume for the given metric. - example: 10 - format: int64 - type: integer + description: The type of data source connection (for example, ref_table). + type: string + updated_at: + description: Timestamp indicating when the connection was last updated. + format: date-time + type: string + updated_by: + description: Identifier of the user who last updated the connection. + type: string type: object - MetricDistinctVolumeType: - default: distinct_metric_volumes - description: The metric distinct volume type. - enum: - - distinct_metric_volumes - example: distinct_metric_volumes - type: string - x-enum-varnames: - - DISTINCT_METRIC_VOLUMES - MetricEstimate: - description: Object for a metric cardinality estimate. + ListConnectionsResponseDataAttributesConnectionsItemsJoin: + description: The join configuration describing how the data source is linked to the entity. properties: - attributes: - $ref: "#/components/schemas/MetricEstimateAttributes" - id: - $ref: "#/components/schemas/MetricName" + attribute: + description: The entity attribute used as the join key to link records from the data source. + type: string type: - $ref: "#/components/schemas/MetricEstimateResourceType" - type: object - MetricEstimateAttributes: - description: Object containing the definition of a metric estimate attribute. - properties: - estimate_type: - $ref: "#/components/schemas/MetricEstimateType" - estimated_at: - description: Timestamp when the cardinality estimate was requested. - example: "2022-04-27T09:48:37.463835Z" - format: date-time + description: The type of join key used (for example, email or user_id). type: string - estimated_output_series: - description: Estimated cardinality of the metric based on the queried configuration. - example: 50 - format: int64 - type: integer type: object - MetricEstimateResourceType: - default: metric_cardinality_estimate - description: The metric estimate resource type. + ListConnectionsResponseDataType: + default: list_connections_response + description: List connections response resource type. enum: - - metric_cardinality_estimate - example: metric_cardinality_estimate + - list_connections_response + example: list_connections_response type: string x-enum-varnames: - - METRIC_CARDINALITY_ESTIMATE - MetricEstimateResponse: - description: Response object that includes metric cardinality estimates. + - LIST_CONNECTIONS_RESPONSE + ListDashboardsUsageResponse: + description: Paginated list of dashboard usage records. properties: data: - $ref: "#/components/schemas/MetricEstimate" - type: object - MetricEstimateType: - default: count_or_gauge - description: |- - Estimate type based on the queried configuration. `count_or_gauge` is returned by default, and `distribution` is returned for distribution metrics. The `filter[pct]` query parameter has no effect on this value. - enum: - - count_or_gauge - - distribution - - percentile - example: distribution - type: string - x-enum-varnames: - - COUNT_OR_GAUGE - - DISTRIBUTION - - PERCENTILE - MetricIngestedIndexedVolume: - description: Object for a single metric's ingested and indexed volume. - properties: - attributes: - $ref: "#/components/schemas/MetricIngestedIndexedVolumeAttributes" - id: - $ref: "#/components/schemas/MetricName" - type: - $ref: "#/components/schemas/MetricIngestedIndexedVolumeType" - type: object - MetricIngestedIndexedVolumeAttributes: - description: Object containing the definition of a metric's ingested and indexed volume. - properties: - indexed_volume: - description: Estimated average hourly number of indexed time series for the given metric over the last hour. For organizations on Metric Name Pricing, this represents the estimated sum of indexed data points over the last hour. - example: 10 - format: int64 - type: integer - ingested_volume: - description: Estimated average hourly number of ingested time series for the given metric over the last hour. This value is `0` for metrics not configured with Metrics Without Limits. For organizations on Metric Name Pricing, this represents the estimated sum of ingested data points over the last hour. - example: 20 - format: int64 - type: integer + description: Dashboard usage records, one per dashboard in the caller's organization. + items: + $ref: "#/components/schemas/DashboardUsage" + type: array + links: + $ref: "#/components/schemas/ListDashboardsUsageResponseLinks" + meta: + $ref: "#/components/schemas/ListDashboardsUsageResponseMeta" + required: + - data + - meta type: object - MetricIngestedIndexedVolumeType: - default: metric_volumes - description: The metric ingested and indexed volume type. - enum: - - metric_volumes - example: metric_volumes - type: string - x-enum-varnames: - - METRIC_VOLUMES - MetricIntakeType: - description: The type of metric. The available types are `0` (unspecified), `1` (count), `2` (rate), and `3` (gauge). - enum: - - 0 - - 1 - - 2 - - 3 - format: int32 - type: integer - x-enum-varnames: - - UNSPECIFIED - - COUNT - - RATE - - GAUGE - MetricMetaPage: - description: Paging attributes. Only present if pagination query parameters were provided. + ListDashboardsUsageResponseLinks: + description: Pagination links for a list of dashboard usage records. properties: - cursor: - description: The cursor used to get the current results, if any. + first: + description: Link to the first page. + example: "https://api.datadoghq.com/api/v2/dashboards/usage?page[offset]=0&page[limit]=250" + type: string + last: + description: Link to the last page, or `null` if the total is unknown. nullable: true type: string - limit: - description: Number of results returned - format: int32 - maximum: 20000 - minimum: 0 - type: integer - next_cursor: - description: The cursor used to get the next results, if any. + next: + description: Link to the next page. Absent when there is no next page. nullable: true type: string - type: - $ref: "#/components/schemas/MetricMetaPageType" + prev: + description: Link to the previous page. Absent when there is no previous page. + nullable: true + type: string + self: + description: Link to the current page. + example: "https://api.datadoghq.com/api/v2/dashboards/usage" + type: string type: object - MetricMetaPageType: - default: cursor_limit - description: Type of metric pagination. - enum: - - cursor_limit - example: cursor_limit - type: string - x-enum-varnames: - - CURSOR_LIMIT - MetricMetadata: - description: Metadata for the metric. + ListDashboardsUsageResponseMeta: + description: Pagination metadata for a list of dashboard usage records. properties: - origin: - $ref: "#/components/schemas/MetricOrigin" + page: + $ref: "#/components/schemas/PaginationMetaPage" type: object - MetricMonitorAsset: - description: A monitor object with title. + ListDeploymentRuleResponseData: + description: Data for a list of deployment rules. properties: attributes: - $ref: "#/components/schemas/MetricAssetAttributes" + $ref: "#/components/schemas/ListDeploymentRulesResponseDataAttributes" id: - $ref: "#/components/schemas/MetricMonitorID" + description: Unique identifier of the deployment rule. + example: "1111-2222-3333-4444-555566667777" + type: string type: - $ref: "#/components/schemas/MetricMonitorType" + $ref: "#/components/schemas/ListDeploymentRulesDataType" required: - - id - type - type: object - MetricMonitorID: - description: The related monitor's ID. - example: "1775073" - type: string - MetricMonitorType: - description: Monitor resource type. - enum: - - monitors - example: "monitors" - type: string - x-enum-varnames: - - MONITORS - MetricName: - description: The metric name for this resource. - example: test.metric.latency - type: string - MetricNotebookAsset: - description: A notebook object with title. - properties: - attributes: - $ref: "#/components/schemas/MetricAssetAttributes" - id: - $ref: "#/components/schemas/MetricNotebookID" - type: - $ref: "#/components/schemas/MetricNotebookType" - required: + - attributes - id - - type type: object - MetricNotebookID: - description: The related notebook's ID. - example: "12345" - type: string - MetricNotebookType: - description: Notebook resource type. + ListDeploymentRulesDataType: + description: List deployment rule resource type. enum: - - notebooks - example: "notebooks" + - list_deployment_rules + example: list_deployment_rules type: string x-enum-varnames: - - NOTEBOOKS - MetricOrigin: - description: Metric origin information. - properties: - metric_type: - default: 0 - description: The origin metric type code - format: int32 - maximum: 1000 - type: integer - product: - default: 0 - description: The origin product code - format: int32 - maximum: 1000 - type: integer - service: - default: 0 - description: The origin service code - format: int32 - maximum: 1000 - type: integer - type: object - MetricPaginationMeta: - description: Response metadata object. + - LIST_DEPLOYMENT_RULES + ListDeploymentRulesResponseDataAttributes: + description: Attributes of the response for listing deployment rules. properties: - pagination: - $ref: "#/components/schemas/MetricMetaPage" + rules: + description: The list of deployment rules. + items: + $ref: "#/components/schemas/DeploymentRuleResponseDataAttributes" + type: array type: object - MetricPayload: - description: The metrics' payload. + ListDevicesResponse: + description: List devices response. properties: - series: - description: A list of timeseries to submit to Datadog. - example: - - metric: "system.load.1" - points: - - {timestamp: 1475317847, value: 0.7} - resources: - - {name: "dummyhost", type: "host"} + data: + description: The list devices response data. items: - $ref: "#/components/schemas/MetricSeries" + $ref: "#/components/schemas/DevicesListData" type: array - required: - - series + meta: + $ref: "#/components/schemas/ListDevicesResponseMetadata" type: object - MetricPoint: - description: A point object is of the form `{POSIX_timestamp, numeric_value}`. - example: {timestamp: 1575317847, value: 0.5} + ListDevicesResponseMetadata: + description: Object describing meta attributes of response. properties: - timestamp: - description: |- - The timestamp should be in seconds and current. - Current is defined as not more than 10 minutes in the future or more than 1 hour in the past. + page: + $ref: "#/components/schemas/ListDevicesResponseMetadataPage" + type: object + ListDevicesResponseMetadataPage: + description: Pagination object. + properties: + total_filtered_count: + description: Total count of devices matched by the filter. + example: 1 format: int64 type: integer - value: - description: The numeric value format should be a 64bit float gauge-type value. - format: double - type: number type: object - MetricRelationships: - description: Relationships for a metric. + ListDowntimesResponse: + description: Response for retrieving all downtimes. properties: - metric_volumes: - $ref: "#/components/schemas/MetricVolumesRelationship" + data: + description: An array of downtimes. + items: + $ref: "#/components/schemas/DowntimeResponseData" + type: array + included: + description: Array of objects related to the downtimes. + items: + $ref: "#/components/schemas/DowntimeResponseIncludedItem" + type: array + meta: + $ref: "#/components/schemas/DowntimeMeta" type: object - MetricResource: - description: Metric resource. - example: {name: "dummyhost", type: "host"} + ListEntityCatalogResponse: + description: List entity response. properties: - name: - description: The name of the resource. - type: string - type: - description: The type of the resource. - type: string + data: + $ref: "#/components/schemas/EntityResponseData" + included: + $ref: "#/components/schemas/ListEntityCatalogResponseIncluded" + links: + $ref: "#/components/schemas/ListEntityCatalogResponseLinks" + meta: + $ref: "#/components/schemas/EntityResponseMeta" type: object - MetricSLOAsset: - description: A SLO object with title. + ListEntityCatalogResponseIncluded: + description: List entity response included. + items: + $ref: "#/components/schemas/ListEntityCatalogResponseIncludedItem" + type: array + ListEntityCatalogResponseIncludedItem: + description: List entity response included item. + oneOf: + - $ref: "#/components/schemas/EntityResponseIncludedSchema" + - $ref: "#/components/schemas/EntityResponseIncludedRawSchema" + - $ref: "#/components/schemas/EntityResponseIncludedRelatedEntity" + - $ref: "#/components/schemas/EntityResponseIncludedOncall" + - $ref: "#/components/schemas/EntityResponseIncludedIncident" + ListEntityCatalogResponseLinks: + description: List entity response links. properties: - attributes: - $ref: "#/components/schemas/MetricAssetAttributes" - id: - $ref: "#/components/schemas/MetricSLOID" - type: - $ref: "#/components/schemas/MetricSLOType" - required: - - id - - type + next: + description: Next link. + type: string + previous: + description: Previous link. + type: string + self: + description: Current link. + type: string type: object - MetricSLOID: - description: The SLO ID. - example: "9ffef113b389520db54391d67d652dfb" - type: string - MetricSLOType: - description: SLO resource type. - enum: - - slos - example: "slos" - type: string - x-enum-varnames: - - SLOS - MetricSeries: - description: |- - A metric to submit to Datadog. - See [Datadog metrics](https://docs.datadoghq.com/developers/metrics/#custom-metrics-properties). + ListEnvironmentsResponse: + description: Response containing a list of environments. properties: - interval: - description: If the type of the metric is rate or count, define the corresponding interval in seconds. - example: 20 - format: int64 - type: integer - metadata: - $ref: "#/components/schemas/MetricMetadata" - metric: - description: The name of the timeseries. - example: system.load.1 - type: string - points: - description: Points relating to a metric. All points must be objects with timestamp and a scalar value (cannot be a string). Timestamps should be in POSIX time in seconds, and cannot be more than ten minutes in the future or more than one hour in the past. - example: - - {timestamp: 1575317847, value: 0.5} - items: - $ref: "#/components/schemas/MetricPoint" - type: array - resources: - description: A list of resources to associate with this metric. + data: + description: List of environments. items: - $ref: "#/components/schemas/MetricResource" + $ref: "#/components/schemas/Environment" type: array - source_type_name: - description: The source type name. - example: "datadog" - type: string - tags: - description: A list of tags associated with the metric. - example: ["environment:test"] + meta: + $ref: "#/components/schemas/EnvironmentsPaginationMeta" + required: + - data + type: object + ListFeatureFlagsResponse: + description: Response containing a list of feature flags. + properties: + data: + description: List of feature flags. items: - description: Individual tags. - type: string + $ref: "#/components/schemas/FeatureFlagListItem" type: array - type: - $ref: "#/components/schemas/MetricIntakeType" - unit: - description: The unit of point value. - example: "second" - type: string + meta: + $ref: "#/components/schemas/FeatureFlagsPaginationMeta" required: - - metric - - points + - data type: object - MetricSuggestedAggregations: - description: |- - List of aggregation combinations that have been actively queried. - example: - - space: sum - time: sum - - space: sum - time: count + ListFindingsData: + description: Array of findings. items: - $ref: "#/components/schemas/MetricCustomAggregation" + $ref: "#/components/schemas/Finding" type: array - MetricSuggestedTagsAndAggregations: - description: Object for a single metric's actively queried tags and aggregations. + ListFindingsMeta: + additionalProperties: false + description: Metadata for pagination. properties: - attributes: - $ref: "#/components/schemas/MetricSuggestedTagsAttributes" - id: - $ref: "#/components/schemas/MetricName" - type: - $ref: "#/components/schemas/MetricActiveConfigurationType" + page: + $ref: "#/components/schemas/ListFindingsPage" + snapshot_timestamp: + description: The point in time corresponding to the listed findings. + example: 1678721573794 + format: int64 + minimum: 1 + type: integer type: object - MetricSuggestedTagsAndAggregationsResponse: - description: Response object that includes a single metric's actively queried tags and aggregations. + ListFindingsPage: + additionalProperties: false + description: Pagination and findings count information. + properties: + cursor: + description: The cursor used to paginate requests. + example: "eyJhZnRlciI6IkFRQUFBWWJiaEJXQS1OY1dqUUFBQUFCQldXSmlhRUpYUVVGQlJFSktkbTlDTUdaWFRVbDNRVUUiLCJ2YWx1ZXMiOlsiY3JpdGljYWwiXX0=" + type: string + total_filtered_count: + description: The total count of findings after the filter has been applied. + example: 213 + format: int64 + type: integer + type: object + ListFindingsResponse: + description: The expected response schema when listing findings. properties: data: - $ref: "#/components/schemas/MetricSuggestedTagsAndAggregations" - readOnly: true + $ref: "#/components/schemas/ListFindingsData" + example: + - attributes: + evaluation: fail + resource: "arn:aws:s3:::my-bucket" + resource_type: aws_s3_bucket + status: high + id: "abc-123-xyz" + type: finding + meta: + $ref: "#/components/schemas/ListFindingsMeta" + required: + - data + - meta type: object - MetricSuggestedTagsAttributes: - description: Object containing the definition of a metric's actively queried tags and aggregations. + ListHistoricalJobsResponse: + description: List of historical jobs. properties: - active_aggregations: - $ref: "#/components/schemas/MetricSuggestedAggregations" - active_tags: - description: List of tag keys that have been actively queried. - example: ["app", "datacenter"] + data: + description: Array containing the list of historical jobs. items: - description: Actively queried tag keys. - type: string + $ref: "#/components/schemas/HistoricalJobResponseData" type: array + meta: + $ref: "#/components/schemas/HistoricalJobListMeta" type: object - MetricTagCardinalitiesData: - description: A list of tag cardinalities associated with the given metric. - items: - $ref: "#/components/schemas/MetricTagCardinality" - type: array - MetricTagCardinalitiesMeta: - description: Response metadata object. + ListIntegrationsResponse: + description: Response containing information about multiple integrations. properties: - metric_name: - description: |- - The name of metric for which the tag cardinalities are returned. - This matches the metric name provided in the request. - type: string + data: + description: Array of integration objects. + items: + $ref: "#/components/schemas/Integration" + type: array + required: + - data type: object - MetricTagCardinalitiesResponse: - description: |- - Response object that includes an array of objects representing the cardinality details of a metric's tags. + ListInterfaceTagsResponse: + description: Response for listing interface tags. properties: data: - $ref: "#/components/schemas/MetricTagCardinalitiesData" - meta: - $ref: "#/components/schemas/MetricTagCardinalitiesMeta" - readOnly: true + $ref: "#/components/schemas/ListInterfaceTagsResponseData" type: object - MetricTagCardinality: - description: Object containing metadata and attributes related to a specific tag key associated with the metric. - example: - attributes: - cardinality_delta: 25 - id: http.request.latency - type: tag_cardinality + ListInterfaceTagsResponseData: + description: Response data for listing interface tags. properties: attributes: - $ref: "#/components/schemas/MetricTagCardinalityAttributes" + $ref: "#/components/schemas/ListTagsResponseDataAttributes" id: - description: The name of the tag key. + description: The interface ID + example: example:1.2.3.4:1 type: string type: - default: tag_cardinality - description: This describes the endpoint action. + description: The type of the resource. The value should always be tags. type: string type: object - MetricTagCardinalityAttributes: - description: An object containing properties related to the tag key + ListInvestigationsResponse: + description: Response for listing investigations. properties: - cardinality_delta: - description: This describes the recent change in the tag keys cardinality - format: int64 - type: integer + data: + description: List of investigations. + items: + $ref: "#/components/schemas/ListInvestigationsResponseData" + type: array + links: + $ref: "#/components/schemas/ListInvestigationsResponseLinks" + meta: + $ref: "#/components/schemas/ListInvestigationsResponseMeta" + required: + - data + - meta + - links type: object - MetricTagConfiguration: - description: Object for a single metric tag configuration. - example: - attributes: - aggregations: [{"space": "avg", "time": "avg"}] - created_at: "2020-03-25T09:48:37.463835Z" - metric_type: gauge - modified_at: "2020-04-25T09:48:37.463835Z" - tags: ["app", "datacenter"] - id: http.request.latency - type: manage_tags + ListInvestigationsResponseData: + description: Data for an investigation list item. properties: attributes: - $ref: "#/components/schemas/MetricTagConfigurationAttributes" + $ref: "#/components/schemas/ListInvestigationsResponseDataAttributes" id: - $ref: "#/components/schemas/MetricName" - relationships: - $ref: "#/components/schemas/MetricRelationships" + description: The unique identifier of the investigation. + example: "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d" + type: string type: - $ref: "#/components/schemas/MetricTagConfigurationType" + $ref: "#/components/schemas/InvestigationType" + required: + - id + - type + - attributes type: object - MetricTagConfigurationAttributes: - description: Object containing the definition of a metric tag configuration attributes. + ListInvestigationsResponseDataAttributes: + description: Attributes of an investigation list item. properties: - aggregations: - $ref: "#/components/schemas/MetricCustomAggregations" - created_at: - description: Timestamp when the tag configuration was created. - example: "2020-03-25T09:48:37.463835Z" - format: date-time + status: + description: The current status of the investigation. + example: "conclusive" type: string - exclude_tags_mode: - description: |- - When set to true, the configuration will exclude the configured tags and include any other submitted tags. - When set to false, the configuration will include the configured tags and exclude any other submitted tags. - Defaults to false. Requires `tags` property. - type: boolean - include_percentiles: - description: |- - Toggle to include or exclude percentile aggregations for distribution metrics. - Only present when the `metric_type` is `distribution`. - example: true - type: boolean - metric_type: - $ref: "#/components/schemas/MetricTagConfigurationMetricTypes" - modified_at: - description: Timestamp when the tag configuration was last modified. - example: "2020-03-25T09:48:37.463835Z" - format: date-time + title: + description: The title of the investigation. + example: "Monitor alert investigation for web-server-01" type: string - tags: - description: List of tag keys on which to group. - example: ["app", "datacenter"] - items: - description: Tag keys to group by. - type: string - type: array + required: + - status + - title type: object - MetricTagConfigurationCreateAttributes: - description: Object containing the definition of a metric tag configuration to be created. + ListInvestigationsResponseLinks: + description: Pagination links for the list investigations response. properties: - aggregations: - $ref: "#/components/schemas/MetricCustomAggregations" - exclude_tags_mode: - description: |- - When set to true, the configuration will exclude the configured tags and include any other submitted tags. - When set to false, the configuration will include the configured tags and exclude any other submitted tags. - Defaults to false. Requires `tags` property. - type: boolean - include_percentiles: - description: |- - Toggle to include/exclude percentiles for a distribution metric. - Defaults to false. Can only be applied to metrics that have a `metric_type` of `distribution`. - example: true - type: boolean - metric_type: - $ref: "#/components/schemas/MetricTagConfigurationMetricTypes" - tags: - default: [] - description: A list of tag keys that will be queryable for your metric. - example: ["app", "datacenter"] - items: - description: Tag keys to group by. - type: string - type: array + first: + description: Link to the first page. + example: "https://api.datadoghq.com/api/v2/bits-ai/investigations?page[offset]=0&page[limit]=10" + type: string + last: + description: Link to the last page. + nullable: true + type: string + next: + description: Link to the next page. + example: "https://api.datadoghq.com/api/v2/bits-ai/investigations?page[offset]=10&page[limit]=10" + type: string + prev: + description: Link to the previous page. + nullable: true + type: string + self: + description: Link to the current page. + example: "https://api.datadoghq.com/api/v2/bits-ai/investigations?page[offset]=0&page[limit]=10" + type: string required: - - tags - - metric_type + - first + - next + - self type: object - MetricTagConfigurationCreateData: - description: Object for a single metric to be configure tags on. - example: - attributes: - include_percentiles: false - metric_type: distribution - tags: - - app - - datacenter - id: http.endpoint.request - type: manage_tags + ListInvestigationsResponseMeta: + description: Metadata for the list investigations response. properties: - attributes: - $ref: "#/components/schemas/MetricTagConfigurationCreateAttributes" - id: - $ref: "#/components/schemas/MetricName" - type: - $ref: "#/components/schemas/MetricTagConfigurationType" + page: + $ref: "#/components/schemas/ListInvestigationsResponseMetaPage" required: - - id - - type + - page type: object - MetricTagConfigurationCreateRequest: - description: Request object that includes the metric that you would like to configure tags for. + ListInvestigationsResponseMetaPage: + description: Pagination metadata. properties: - data: - $ref: "#/components/schemas/MetricTagConfigurationCreateData" + limit: + description: Maximum number of results per page. + example: 10 + format: int64 + type: integer + offset: + description: Offset of the current page. + example: 0 + format: int64 + type: integer + total: + description: Total number of investigations. + example: 50 + format: int64 + type: integer required: - - data + - total + - limit + - offset type: object - MetricTagConfigurationMetricTypeCategory: - default: distribution - description: The metric's type category. - enum: - - non_distribution - - distribution - example: distribution - type: string - x-enum-varnames: - - NON_DISTRIBUTION - - DISTRIBUTION - MetricTagConfigurationMetricTypes: - default: gauge - description: The metric's type. - enum: - - gauge - - count - - rate - - distribution - example: count - type: string - x-enum-varnames: - - GAUGE - - COUNT - - RATE - - DISTRIBUTION - MetricTagConfigurationResponse: - description: Response object which includes a single metric's tag configuration. + ListKindCatalogResponse: + description: List kind response. properties: data: - $ref: "#/components/schemas/MetricTagConfiguration" - readOnly: true + $ref: "#/components/schemas/KindResponseData" + meta: + $ref: "#/components/schemas/KindResponseMeta" type: object - MetricTagConfigurationType: - default: manage_tags - description: The metric tag configuration resource type. - enum: - - manage_tags - example: manage_tags - type: string - x-enum-varnames: - - MANAGE_TAGS - MetricTagConfigurationUpdateAttributes: - description: Object containing the definition of a metric tag configuration to be updated. + ListNotificationChannelsResponse: + description: Response type for listing notification channels for a user properties: - aggregations: - $ref: "#/components/schemas/MetricCustomAggregations" - exclude_tags_mode: - description: |- - When set to true, the configuration will exclude the configured tags and include any other submitted tags. - When set to false, the configuration will include the configured tags and exclude any other submitted tags. - Defaults to false. Requires `tags` property. - type: boolean - include_percentiles: - description: |- - Toggle to include/exclude percentiles for a distribution metric. - Defaults to false. Can only be applied to metrics that have a `metric_type` of `distribution`. - example: true - type: boolean - tags: - default: [] - description: A list of tag keys that will be queryable for your metric. - example: ["app", "datacenter"] + data: + description: Array of notification channel data objects. items: - description: Tag keys to group by. - type: string + $ref: "#/components/schemas/NotificationChannelData" type: array type: object - MetricTagConfigurationUpdateData: - description: Object for a single tag configuration to be edited. - example: - attributes: - group_by: - - app - - datacenter - include_percentiles: false - id: http.endpoint.request - type: manage_tags - properties: - attributes: - $ref: "#/components/schemas/MetricTagConfigurationUpdateAttributes" - id: - $ref: "#/components/schemas/MetricName" - type: - $ref: "#/components/schemas/MetricTagConfigurationType" - required: - - id - - type - type: object - MetricTagConfigurationUpdateRequest: - description: Request object that includes the metric that you would like to edit the tag configuration on. + ListOnCallNotificationRulesResponse: + description: Response type for listing notification rules for a user properties: data: - $ref: "#/components/schemas/MetricTagConfigurationUpdateData" - required: - - data + description: Array of notification rule data objects. + items: + $ref: "#/components/schemas/OnCallNotificationRuleData" + type: array + included: + items: + $ref: "#/components/schemas/OnCallNotificationRulesIncluded" + type: array type: object - MetricType: - default: metrics - description: The metric resource type. - enum: - - metrics - example: metrics - type: string - x-enum-varnames: - - METRICS - MetricVolumes: - description: Possible response objects for a metric's volume. - oneOf: - - $ref: "#/components/schemas/MetricDistinctVolume" - - $ref: "#/components/schemas/MetricIngestedIndexedVolume" - MetricVolumesRelationship: - description: Relationship to a metric volume included in the response. + ListPersonalAccessTokensResponse: + description: Response for a list of access tokens. Includes both personal and service access tokens. properties: data: - $ref: "#/components/schemas/MetricVolumesRelationshipData" + description: Array of access tokens. Includes both personal and service access tokens. + items: + $ref: "#/components/schemas/AccessTokenListItem" + type: array + included: + $ref: "#/components/schemas/AccessTokenResponseIncludedArray" + meta: + $ref: "#/components/schemas/PersonalAccessTokenResponseMeta" type: object - MetricVolumesRelationshipData: - description: Relationship data for a metric volume. + ListPipelinesResponse: + description: Represents the response payload containing a list of pipelines and associated metadata. properties: - id: - $ref: "#/components/schemas/MetricName" - type: - $ref: "#/components/schemas/MetricIngestedIndexedVolumeType" + data: + description: The `schema` `data`. + items: + $ref: "#/components/schemas/ObservabilityPipelineData" + type: array + meta: + $ref: "#/components/schemas/ListPipelinesResponseMeta" + required: + - data type: object - MetricVolumesResponse: - description: Response object which includes a single metric's volume. + ListPipelinesResponseMeta: + description: Metadata about the response. properties: - data: - $ref: "#/components/schemas/MetricVolumes" - readOnly: true + totalCount: + description: The total number of pipelines. + example: 42 + format: int64 + type: integer type: object - MetricsAggregator: - default: "avg" - description: The type of aggregation that can be performed on metrics-based queries. - enum: - - avg - - min - - max - - sum - - last - - percentile - - mean - - l2norm - - area - example: "avg" - type: string - x-enum-varnames: - - AVG - - MIN - - MAX - - SUM - - LAST - - PERCENTILE - - MEAN - - L2NORM - - AREA - MetricsAndMetricTagConfigurations: - description: Object for a metrics and metric tag configurations. - oneOf: - - $ref: "#/components/schemas/Metric" - - $ref: "#/components/schemas/MetricTagConfiguration" - MetricsAndMetricTagConfigurationsResponse: - description: Response object that includes metrics and metric tag configurations. + ListPowerpacksResponse: + description: Response object which includes all powerpack configurations. properties: data: - description: Array of metrics and metric tag configurations. + description: List of powerpack definitions. items: - $ref: "#/components/schemas/MetricsAndMetricTagConfigurations" + $ref: "#/components/schemas/PowerpackData" type: array included: - description: Array of metric volume resources included when requested with `include=metric_volumes`. + description: Array of objects related to the users. items: - $ref: "#/components/schemas/MetricIngestedIndexedVolume" + $ref: "#/components/schemas/User" type: array links: - $ref: "#/components/schemas/MetricsListResponseLinks" + $ref: "#/components/schemas/PowerpackResponseLinks" meta: - $ref: "#/components/schemas/MetricPaginationMeta" - readOnly: true + $ref: "#/components/schemas/PowerpacksResponseMeta" type: object - MetricsDataSource: - default: metrics - description: A data source that is powered by the Metrics platform. - enum: - - metrics - - cloud_cost - example: metrics - type: string - x-enum-varnames: - - METRICS - - CLOUD_COST - MetricsListResponseLinks: - description: Pagination links. Only present if pagination query parameters were provided. + ListRelationCatalogResponse: + description: List entity relation response. + properties: + data: + $ref: "#/components/schemas/RelationResponseData" + included: + $ref: "#/components/schemas/ListRelationCatalogResponseIncluded" + links: + $ref: "#/components/schemas/ListRelationCatalogResponseLinks" + meta: + $ref: "#/components/schemas/RelationResponseMeta" + type: object + ListRelationCatalogResponseIncluded: + description: List relation response included entities. + items: + $ref: "#/components/schemas/EntityData" + type: array + ListRelationCatalogResponseLinks: + description: List relation response links. properties: - first: - description: Link to the first page. - type: string - last: - description: Link to the last page. - nullable: true - type: string next: - description: Link to the next page. - nullable: true + description: Next link. + example: "/api/v2/catalog/relation?filter[from_ref]=service:service-catalog&include=entity&page[limit]=2&page[offset]=2" type: string - prev: - description: Link to previous page. - nullable: true + previous: + description: Previous link. type: string self: - description: Link to current page. + description: Current link. + example: "/api/v2/catalog/relation?filter[from_ref]=service:service-catalog&include=entity&page[limit]=2&page[offset]=0" type: string type: object - MetricsScalarQuery: - description: A query against Datadog custom metrics or Cloud Cost data sources. + ListRowsResponse: + description: Paginated list of reference table rows. + example: + data: + - attributes: + values: + category: tor + intention: suspicious + ip_address: 102.130.113.9 + id: 102.130.113.9 + type: row + links: + first: "/api/v2/reference-tables/tables//rows/list?page[limit]=100" + self: "/api/v2/reference-tables/tables//rows/list?page[continuation_token]=" + meta: + page: + next_continuation_token: eyJzaWQiOjEyMzQ1LCJwayI6ImV4YW1wbGVfcGsifQ== properties: - aggregator: - $ref: "#/components/schemas/MetricsAggregator" - cross_org_uuids: - $ref: "#/components/schemas/CrossOrgUuids" - data_source: - $ref: "#/components/schemas/MetricsDataSource" - name: - description: The variable name for use in formulas. - type: string - query: - description: A classic metrics query string. - example: avg:system.cpu.user{*} by {env} - type: string + data: + description: The rows. + items: + $ref: "#/components/schemas/TableRowResourceData" + type: array + links: + $ref: "#/components/schemas/ListRowsResponseLinks" + meta: + $ref: "#/components/schemas/ListRowsResponseMeta" required: - - data_source - - query - - aggregator + - data + - links type: object - MetricsTimeseriesQuery: - description: A query against Datadog custom metrics or Cloud Cost data sources. + ListRowsResponseLinks: + description: Pagination links for the list rows response. properties: - cross_org_uuids: - $ref: "#/components/schemas/CrossOrgUuids" - data_source: - $ref: "#/components/schemas/MetricsDataSource" - name: - description: The variable name for use in formulas. + first: + description: Link to the first page of results. + example: "/api/v2/reference-tables/tables//rows/list?page[limit]=100" type: string - query: - description: A classic metrics query string. - example: avg:system.cpu.user{*} by {env} + next: + description: Link to the next page of results. Only present when more rows are available. + example: "/api/v2/reference-tables/tables//rows/list?page[continuation_token]=" + type: string + self: + description: Link to the current page of results. + example: "/api/v2/reference-tables/tables//rows/list?page[continuation_token]=" type: string required: - - data_source - - query + - self + - first type: object - MicrosoftSentinelDestination: - description: |- - The `microsoft_sentinel` destination forwards logs to Microsoft Sentinel. - - **Supported pipeline types:** logs + ListRowsResponseMeta: + description: Contains pagination details, including the continuation token for fetching additional rows. properties: - buffer: - $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" - client_id: - description: Azure AD client ID used for authentication. - example: "a1b2c3d4-5678-90ab-cdef-1234567890ab" - type: string - client_secret_key: - description: Name of the environment variable or secret that holds the Azure AD client secret. - example: AZURE_CLIENT_SECRET - type: string - dce_uri_key: - description: Name of the environment variable or secret that holds the Data Collection Endpoint (DCE) URI. - example: DCE_URI - type: string - dcr_immutable_id: - description: The immutable ID of the Data Collection Rule (DCR). - example: "dcr-uuid-1234" - type: string - id: - description: The unique identifier for this component. - example: "sentinel-destination" - type: string - inputs: - description: A list of component IDs whose output is used as the `input` for this component. - example: ["filter-processor"] - items: - description: The ID of a component whose output is used as input for this destination. - type: string - type: array - table: - description: The name of the Log Analytics table where logs are sent. - example: "CustomLogsTable" - type: string - tenant_id: - description: Azure AD tenant ID. - example: "abcdef12-3456-7890-abcd-ef1234567890" - type: string - type: - $ref: "#/components/schemas/MicrosoftSentinelDestinationType" - required: - - id - - type - - inputs - - client_id - - tenant_id - - dcr_immutable_id - - table + page: + $ref: "#/components/schemas/ListRowsResponseMetaPage" type: object - x-pipeline-types: [logs] - MicrosoftSentinelDestinationType: - default: microsoft_sentinel - description: The destination type. The value should always be `microsoft_sentinel`. - enum: - - microsoft_sentinel - example: microsoft_sentinel - type: string - x-enum-varnames: - - MICROSOFT_SENTINEL - MicrosoftTeamsChannelInfoResponseAttributes: - description: Channel attributes. + ListRowsResponseMetaPage: + description: Contains the continuation token for navigating to the next page of rows. properties: - is_primary: - description: Indicates if this is the primary channel. - example: true - maxLength: 255 - type: boolean - team_id: - description: Team id. - example: "00000000-0000-0000-0000-000000000000" - maxLength: 255 - type: string - tenant_id: - description: Tenant id. - example: "00000000-0000-0000-0000-000000000001" - maxLength: 255 + next_continuation_token: + description: >- + Opaque token to pass as the `page[continuation_token]` query parameter to fetch the next page of results. Only present when more rows are available. + example: eyJzaWQiOjEyMzQ1LCJwayI6ImV4YW1wbGVfcGsifQ== type: string type: object - MicrosoftTeamsChannelInfoResponseData: - description: Channel data from a response. + ListRulesResponse: + description: Scorecard rules response. + properties: + data: + $ref: "#/components/schemas/ListRulesResponseData" + links: + $ref: "#/components/schemas/ListRulesResponseLinks" + type: object + ListRulesResponseData: + description: Array of rule details. + items: + $ref: "#/components/schemas/ListRulesResponseDataItem" + type: array + ListRulesResponseDataItem: + description: Rule details. properties: attributes: - $ref: "#/components/schemas/MicrosoftTeamsChannelInfoResponseAttributes" + $ref: "#/components/schemas/RuleAttributes" id: - description: The ID of the channel. - example: "19:b41k24b14bn1nwffkernfkwrnfneubgkr@thread.tacv2" - maxLength: 255 - minLength: 1 - type: string + $ref: "#/components/schemas/RuleId" + relationships: + $ref: "#/components/schemas/RelationshipToRule" type: - $ref: "#/components/schemas/MicrosoftTeamsChannelInfoType" + $ref: "#/components/schemas/RuleType" type: object - MicrosoftTeamsChannelInfoType: - default: ms-teams-channel-info - description: Channel info resource type. - enum: - - ms-teams-channel-info - example: ms-teams-channel-info - type: string - x-enum-varnames: - - MS_TEAMS_CHANNEL_INFO - MicrosoftTeamsConfigurationReference: - description: A reference to a Microsoft Teams Configuration resource. - nullable: true + ListRulesResponseLinks: + description: Links attributes. + properties: + next: + description: |- + Link for the next set of rules. + example: "/api/v2/scorecard/rules?page%5Blimit%5D=2&page%5Boffset%5D=2&page%5Bsize%5D=2" + type: string + type: object + ListScorecardScoresMeta: + description: Pagination metadata for scores. + properties: + count: + description: The number of results returned in this page. + format: int64 + type: integer + limit: + description: The page limit. + format: int64 + type: integer + offset: + description: The page offset. + format: int64 + type: integer + total: + description: The total number of results. + format: int64 + type: integer + type: object + ListScorecardScoresResponse: + description: A list of scorecard scores for a given aggregation type. properties: data: - $ref: "#/components/schemas/MicrosoftTeamsConfigurationReferenceData" + description: Array of score objects. + items: + $ref: "#/components/schemas/ScorecardScoreData" + type: array + links: + $ref: "#/components/schemas/ListRulesResponseLinks" + meta: + $ref: "#/components/schemas/ListScorecardScoresMeta" + type: object + ListScorecardsResponse: + description: Response containing a list of scorecards. + properties: + data: + $ref: "#/components/schemas/ListScorecardsResponseData" required: - data type: object - MicrosoftTeamsConfigurationReferenceData: - description: The Microsoft Teams configuration relationship data object. - nullable: true + ListScorecardsResponseData: + description: Array of scorecards. + items: + $ref: "#/components/schemas/ScorecardListResponseData" + type: array + ListSecurityFindingsResponse: + description: The expected response schema when listing security findings. properties: - id: - description: The unique identifier of the Microsoft Teams configuration. - example: "00000000-0000-0000-0000-000000000000" - type: string - type: - description: The type of the Microsoft Teams configuration. - example: "microsoft_teams_configurations" - type: string - required: - - id - - type + data: + description: Array of security findings matching the search query. + items: + $ref: "#/components/schemas/SecurityFindingsData" + type: array + links: + $ref: "#/components/schemas/SecurityFindingsLinks" + meta: + $ref: "#/components/schemas/SecurityFindingsMeta" type: object - MicrosoftTeamsCreateTenantBasedHandleRequest: - description: Create tenant-based handle request. + ListServiceAccessTokensResponse: + description: Response for a list of access tokens. properties: data: - $ref: "#/components/schemas/MicrosoftTeamsTenantBasedHandleRequestData" + description: Array of access tokens. + items: + $ref: "#/components/schemas/ServiceAccessToken" + type: array + included: + $ref: "#/components/schemas/AccessTokenResponseIncludedArray" + meta: + $ref: "#/components/schemas/ServiceAccessTokenResponseMeta" + type: object + ListSharedDashboardsResponse: + description: Response containing shared dashboards for a dashboard. + properties: + data: + description: Shared dashboards for the dashboard. + items: + $ref: "#/components/schemas/SharedDashboardResponse" + type: array + included: + description: Users and dashboards related to the shared dashboards. + items: + $ref: "#/components/schemas/SharedDashboardIncluded" + type: array required: - data + - included type: object - MicrosoftTeamsCreateWorkflowsWebhookHandleRequest: - description: Create Workflows webhook handle request. + ListSourcemapsResponse: + description: Response containing a paginated list of source maps. properties: data: - $ref: "#/components/schemas/MicrosoftTeamsWorkflowsWebhookHandleRequestData" + $ref: "#/components/schemas/SourcemapsData" + meta: + $ref: "#/components/schemas/SourcemapsListMeta" required: - data type: object - MicrosoftTeamsGetChannelByNameResponse: - description: Response with channel, team, and tenant ID information. + ListTagsResponse: + description: List tags response. properties: data: - $ref: "#/components/schemas/MicrosoftTeamsChannelInfoResponseData" + $ref: "#/components/schemas/ListTagsResponseData" type: object - MicrosoftTeamsTenantBasedHandleAttributes: - description: Tenant-based handle attributes. + ListTagsResponseData: + description: The list tags response data. properties: - channel_id: - description: Channel id. - example: "fake-channel-id" - maxLength: 255 - type: string - name: - description: Tenant-based handle name. - example: "fake-handle-name" - maxLength: 255 - type: string - team_id: - description: Team id. - example: "00000000-0000-0000-0000-000000000000" - maxLength: 255 + attributes: + $ref: "#/components/schemas/ListTagsResponseDataAttributes" + id: + description: The device ID + example: example:1.2.3.4 type: string - tenant_id: - description: Tenant id. - example: "00000000-0000-0000-0000-000000000001" - maxLength: 255 + type: + description: The type of the resource. The value should always be tags. type: string type: object - MicrosoftTeamsTenantBasedHandleInfoResponseAttributes: - description: Tenant-based handle attributes. - properties: - channel_id: - description: Channel id. - example: "fake-channel-id" - maxLength: 255 - type: string - channel_name: - description: Channel name. - example: "fake-channel-name" - maxLength: 255 - type: string - name: - description: Tenant-based handle name. - example: "fake-handle-name" - maxLength: 255 - type: string - team_id: - description: Team id. - example: "00000000-0000-0000-0000-000000000000" - maxLength: 255 - type: string - team_name: - description: Team name. - example: "fake-team-name" - maxLength: 255 - type: string - tenant_id: - description: Tenant id. - example: "00000000-0000-0000-0000-000000000001" - maxLength: 255 - type: string - tenant_name: - description: Tenant name. - example: "fake-tenant-name" - maxLength: 255 - type: string - type: object - MicrosoftTeamsTenantBasedHandleInfoResponseData: - description: Tenant-based handle data from a response. + ListTagsResponseDataAttributes: + description: The definition of ListTagsResponseDataAttributes object. properties: - attributes: - $ref: "#/components/schemas/MicrosoftTeamsTenantBasedHandleInfoResponseAttributes" - id: - description: The ID of the tenant-based handle. - example: "596da4af-0563-4097-90ff-07230c3f9db3" - maxLength: 100 - minLength: 1 - type: string - type: - $ref: "#/components/schemas/MicrosoftTeamsTenantBasedHandleInfoType" + by_source: + description: The list of device tags grouped by source. + items: + $ref: "#/components/schemas/DeviceTagsBySource" + readOnly: true + type: array + tags: + description: The list of tags + example: ["tag:test", "tag:testbis"] + items: + description: A tag string in `key:value` format. + type: string + type: array type: object - MicrosoftTeamsTenantBasedHandleInfoType: - default: ms-teams-tenant-based-handle-info - description: Tenant-based handle resource type. + ListTeamsInclude: + description: Included related resources optionally requested. enum: - - ms-teams-tenant-based-handle-info - example: ms-teams-tenant-based-handle-info + - team_links + - user_team_permissions type: string x-enum-varnames: - - MS_TEAMS_TENANT_BASED_HANDLE_INFO - MicrosoftTeamsTenantBasedHandleRequestAttributes: - description: Tenant-based handle attributes. - properties: - channel_id: - description: Channel id. - example: "fake-channel-id" - maxLength: 255 - type: string - name: - description: Tenant-based handle name. - example: "fake-handle-name" - maxLength: 255 - type: string - team_id: - description: Team id. - example: "00000000-0000-0000-0000-000000000000" - maxLength: 255 - type: string - tenant_id: - description: Tenant id. - example: "00000000-0000-0000-0000-000000000001" - maxLength: 255 - type: string - required: + - TEAM_LINKS + - USER_TEAM_PERMISSIONS + ListTeamsSort: + description: Specifies the order of the returned teams + enum: - name - - channel_id - - team_id - - tenant_id - type: object - MicrosoftTeamsTenantBasedHandleRequestData: - description: Tenant-based handle data from a response. - properties: - attributes: - $ref: "#/components/schemas/MicrosoftTeamsTenantBasedHandleRequestAttributes" - type: - $ref: "#/components/schemas/MicrosoftTeamsTenantBasedHandleType" - required: - - type - - attributes - type: object - MicrosoftTeamsTenantBasedHandleResponse: - description: Response of a tenant-based handle. + - -name + - user_count + - -user_count + type: string + x-enum-varnames: + - NAME + - _NAME + - USER_COUNT + - _USER_COUNT + ListVulnerabilitiesResponse: + description: The expected response schema when listing vulnerabilities. properties: data: - $ref: "#/components/schemas/MicrosoftTeamsTenantBasedHandleResponseData" + description: List of vulnerabilities. + items: + $ref: "#/components/schemas/Vulnerability" + type: array + links: + $ref: "#/components/schemas/Links" + meta: + $ref: "#/components/schemas/Metadata" required: - data type: object - MicrosoftTeamsTenantBasedHandleResponseData: - description: Tenant-based handle data from a response. - properties: - attributes: - $ref: "#/components/schemas/MicrosoftTeamsTenantBasedHandleAttributes" - id: - description: The ID of the tenant-based handle. - example: "596da4af-0563-4097-90ff-07230c3f9db3" - maxLength: 100 - minLength: 1 - type: string - type: - $ref: "#/components/schemas/MicrosoftTeamsTenantBasedHandleType" - type: object - MicrosoftTeamsTenantBasedHandleType: - default: tenant-based-handle - description: Specifies the tenant-based handle resource type. - enum: - - tenant-based-handle - example: tenant-based-handle - type: string - x-enum-varnames: - - TENANT_BASED_HANDLE - MicrosoftTeamsTenantBasedHandlesResponse: - description: Response with a list of tenant-based handles. + ListVulnerableAssetsResponse: + description: The expected response schema when listing vulnerable assets. properties: data: - description: An array of tenant-based handles. - example: [{"attributes": {"channelId": "19:b41k24b14bn1nwffkernfkwrnfneubgkr@thread.tacv2", "channelName": "General", "name": "general-handle", "teamId": "00000000-0000-0000-0000-000000000000", "teamName": "Example Team", "tenantId": "00000000-0000-0000-0000-000000000001", "tenantName": "Company, Inc."}, "id": "596da4af-0563-4097-90ff-07230c3f9db3", "type": "ms-teams-tenant-based-handle-info"}, {"attributes": {"channelId": "19:b41k24b14bn1nwffkernfkwrnfneubgk1@thread.tacv2", "channelName": "General2", "name": "general-handle-2", "teamId": "00000000-0000-0000-0000-000000000002", "teamName": "Example Team 2", "tenantId": "00000000-0000-0000-0000-000000000003", "tenantName": "Company, Inc."}, "id": "596da4af-0563-4097-90ff-07230c3f9db4", "type": "ms-teams-tenant-based-handle-info"}] + description: List of vulnerable assets. items: - $ref: "#/components/schemas/MicrosoftTeamsTenantBasedHandleInfoResponseData" + $ref: "#/components/schemas/Asset" type: array + links: + $ref: "#/components/schemas/Links" + meta: + $ref: "#/components/schemas/Metadata" required: - data type: object - MicrosoftTeamsUpdateTenantBasedHandleRequest: - description: Update tenant-based handle request. + ListWorkflowsResponse: + description: The response object for a listing workflows request. properties: data: - $ref: "#/components/schemas/MicrosoftTeamsUpdateTenantBasedHandleRequestData" - required: - - data + description: A list of workflows. + items: + $ref: "#/components/schemas/WorkflowListItem" + type: array + meta: + $ref: "#/components/schemas/ListWorkflowsResponseMeta" type: object - MicrosoftTeamsUpdateTenantBasedHandleRequestData: - description: Tenant-based handle data from a response. + ListWorkflowsResponseMeta: + description: Metadata for a List Workflows response. properties: - attributes: - $ref: "#/components/schemas/MicrosoftTeamsTenantBasedHandleAttributes" - type: - $ref: "#/components/schemas/MicrosoftTeamsTenantBasedHandleType" - required: - - type - - attributes + page: + $ref: "#/components/schemas/ListWorkflowsResponseMetaPage" type: object - MicrosoftTeamsUpdateWorkflowsWebhookHandleRequest: - description: Update Workflows webhook handle request. + ListWorkflowsResponseMetaPage: + description: Pagination metadata for a List Workflows response. properties: - data: - $ref: "#/components/schemas/MicrosoftTeamsUpdateWorkflowsWebhookHandleRequestData" - required: - - data + totalCount: + description: The total number of workflows in the organization. + format: int64 + type: integer + totalFilteredCount: + description: The total number of workflows matching the applied filters. + format: int64 + type: integer type: object - MicrosoftTeamsUpdateWorkflowsWebhookHandleRequestData: - description: Workflows Webhook handle data from a response. + Log: + description: Object description of a log after being processed and stored by Datadog. properties: attributes: - $ref: "#/components/schemas/MicrosoftTeamsWorkflowsWebhookHandleAttributes" + $ref: "#/components/schemas/LogAttributes" + id: + description: Unique ID of the Log. + example: "AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA" + type: string type: - $ref: "#/components/schemas/MicrosoftTeamsWorkflowsWebhookHandleType" - required: - - type - - attributes + $ref: "#/components/schemas/LogType" type: object - MicrosoftTeamsWorkflowsWebhookHandleAttributes: - description: Workflows Webhook handle attributes. + LogAttributes: + description: JSON object containing all log attributes and their associated values. properties: - name: - description: Workflows Webhook handle name. - example: "fake-handle-name" - maxLength: 255 + attributes: + additionalProperties: {} + description: JSON object of attributes from your log. + example: {"customAttribute": 123, "duration": 2345} + type: object + host: + description: |- + Name of the machine from where the logs are being sent. + example: "i-0123" type: string - url: - description: Workflows Webhook URL. - example: "https://fake.url.com" - maxLength: 255 + message: + description: |- + The message [reserved attribute](https://docs.datadoghq.com/logs/log_collection/#reserved-attributes) + of your log. By default, Datadog ingests the value of the message attribute as the body of the log entry. + That value is then highlighted and displayed in the Logstream, where it is indexed for full text search. + example: "Host connected to remote" type: string - type: object - MicrosoftTeamsWorkflowsWebhookHandleRequestAttributes: - description: Workflows Webhook handle attributes. - properties: - name: - description: Workflows Webhook handle name. - example: "fake-handle-name" - maxLength: 255 + service: + description: |- + The name of the application or service generating the log events. + It is used to switch from Logs to APM, so make sure you define the same + value when you use both products. + example: "agent" type: string - url: - description: Workflows Webhook URL. - example: "https://fake.url.com" - maxLength: 255 + status: + description: |- + Status of the message associated with your log. + example: "INFO" + type: string + tags: + description: Array of tags associated with your log. + example: ["team:A"] + items: + description: Tag associated with your log. + type: string + type: array + timestamp: + description: Timestamp of your log. + example: "2019-01-02T09:42:36.320Z" + format: date-time type: string - required: - - name - - url type: object - MicrosoftTeamsWorkflowsWebhookHandleRequestData: - description: Workflows Webhook handle data from a response. + LogType: + default: log + description: Type of the event. + enum: + - log + example: "log" + type: string + x-enum-varnames: + - LOG + LogsAggregateBucket: + description: A bucket values properties: - attributes: - $ref: "#/components/schemas/MicrosoftTeamsWorkflowsWebhookHandleRequestAttributes" - type: - $ref: "#/components/schemas/MicrosoftTeamsWorkflowsWebhookHandleType" - required: - - type - - attributes + by: + additionalProperties: + description: The values for each group by + description: The key, value pairs for each group by + example: {"@state": "success", "@version": "abc"} + type: object + computes: + additionalProperties: + $ref: "#/components/schemas/LogsAggregateBucketValue" + description: A map of the metric name -> value for regular compute or list of values for a timeseries + type: object type: object - MicrosoftTeamsWorkflowsWebhookHandleResponse: - description: Response of a Workflows webhook handle. + LogsAggregateBucketValue: + description: A bucket value, can be either a timeseries or a single value + oneOf: + - $ref: "#/components/schemas/LogsAggregateBucketValueSingleString" + - $ref: "#/components/schemas/LogsAggregateBucketValueSingleNumber" + - $ref: "#/components/schemas/LogsAggregateBucketValueTimeseries" + LogsAggregateBucketValueSingleNumber: + description: A single number value + format: double + type: number + LogsAggregateBucketValueSingleString: + description: A single string value + type: string + LogsAggregateBucketValueTimeseries: + description: A timeseries array + items: + $ref: "#/components/schemas/LogsAggregateBucketValueTimeseriesPoint" + type: array + x-generate-alias-as-model: true + LogsAggregateBucketValueTimeseriesPoint: + description: A timeseries point properties: - data: - $ref: "#/components/schemas/MicrosoftTeamsWorkflowsWebhookHandleResponseData" - required: - - data + time: + description: The time value for this point + example: "2020-06-08T11:55:00Z" + type: string + value: + description: The value for this point + example: 19 + format: double + type: number type: object - MicrosoftTeamsWorkflowsWebhookHandleResponseData: - description: Workflows Webhook handle data from a response. + LogsAggregateRequest: + description: The object sent with the request to retrieve a list of logs from your organization. properties: - attributes: - $ref: "#/components/schemas/MicrosoftTeamsWorkflowsWebhookResponseAttributes" - id: - description: The ID of the Workflows webhook handle. - example: "596da4af-0563-4097-90ff-07230c3f9db3" - maxLength: 100 - minLength: 1 + compute: + description: The list of metrics or timeseries to compute for the retrieved buckets. + items: + $ref: "#/components/schemas/LogsCompute" + type: array + filter: + $ref: "#/components/schemas/LogsQueryFilter" + group_by: + description: The rules for the group by + items: + $ref: "#/components/schemas/LogsGroupBy" + type: array + options: + $ref: "#/components/schemas/LogsQueryOptions" + page: + $ref: "#/components/schemas/LogsAggregateRequestPage" + type: object + LogsAggregateRequestPage: + description: Paging settings + properties: + cursor: + description: |- + The returned paging point to use to get the next results. Note: at most 1000 results can be paged. + example: "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" type: string - type: - $ref: "#/components/schemas/MicrosoftTeamsWorkflowsWebhookHandleType" type: object - MicrosoftTeamsWorkflowsWebhookHandleType: - default: workflows-webhook-handle - description: Specifies the Workflows webhook handle resource type. - enum: - - workflows-webhook-handle - example: workflows-webhook-handle - type: string - x-enum-varnames: - - WORKFLOWS_WEBHOOK_HANDLE - MicrosoftTeamsWorkflowsWebhookHandlesResponse: - description: Response with a list of Workflows webhook handles. + LogsAggregateResponse: + description: The response object for the logs aggregate API endpoint properties: data: - description: An array of Workflows webhook handles. - example: [{"attributes": {"name": "general-handle"}, "id": "596da4af-0563-4097-90ff-07230c3f9db3", "type": "workflows-webhook-handle"}, {"attributes": {"name": "general-handle-2"}, "id": "596da4af-0563-4097-90ff-07230c3f9db4", "type": "workflows-webhook-handle"}] + $ref: "#/components/schemas/LogsAggregateResponseData" + meta: + $ref: "#/components/schemas/LogsResponseMetadata" + type: object + LogsAggregateResponseData: + description: The query results + properties: + buckets: + description: The list of matching buckets, one item per bucket items: - $ref: "#/components/schemas/MicrosoftTeamsWorkflowsWebhookHandleResponseData" + $ref: "#/components/schemas/LogsAggregateBucket" type: array - required: - - data type: object - MicrosoftTeamsWorkflowsWebhookResponseAttributes: - description: Workflows Webhook handle attributes. + LogsAggregateResponseStatus: + description: The status of the response + enum: ["done", "timeout"] + example: "done" + type: string + x-enum-varnames: ["DONE", "TIMEOUT"] + LogsAggregateSort: + description: A sort rule + example: {"aggregation": "count", "order": "asc"} properties: - name: - description: Workflows Webhook handle name. - example: "fake-handle-name" - maxLength: 255 + aggregation: + $ref: "#/components/schemas/LogsAggregationFunction" + metric: + description: The metric to sort by (only used for `type=measure`) + example: "@duration" type: string + order: + $ref: "#/components/schemas/LogsSortOrder" + type: + $ref: "#/components/schemas/LogsAggregateSortType" type: object - ModelLabArtifactInfo: - description: Information about a project-level artifact file. + LogsAggregateSortType: + default: "alphabetical" + description: The type of sorting algorithm + enum: ["alphabetical", "measure"] + type: string + x-enum-varnames: ["ALPHABETICAL", "MEASURE"] + LogsAggregationFunction: + description: An aggregation function + enum: ["count", "cardinality", "pc75", "pc90", "pc95", "pc98", "pc99", "sum", "min", "max", "avg", "median"] + example: "pc90" + type: string + x-enum-varnames: ["COUNT", "CARDINALITY", "PERCENTILE_75", "PERCENTILE_90", "PERCENTILE_95", "PERCENTILE_98", "PERCENTILE_99", "SUM", "MIN", "MAX", "AVG", "MEDIAN"] + LogsArchive: + description: The logs archive. properties: - artifact_path: - description: The full artifact path relative to the project's artifact root. - example: projects/1/artifacts/model.pkl + data: + $ref: "#/components/schemas/LogsArchiveDefinition" + type: object + LogsArchiveAttributes: + description: The attributes associated with the archive. + properties: + compression_method: + $ref: "#/components/schemas/LogsArchiveAttributesCompressionMethod" + destination: + $ref: "#/components/schemas/LogsArchiveDestination" + include_tags: + default: false + description: |- + To store the tags in the archive, set the value "true". + If it is set to "false", the tags will be deleted when the logs are sent to the archive. + example: false + type: boolean + lookup_attributes: + description: An array of attributes to use as lookup keys for the archive. + example: ["trace_id", "user_id"] + items: + description: A lookup attribute name. + type: string + type: array + name: + description: The archive name. + example: Nginx Archive type: string - created_at: - description: The date and time the artifact was created. - example: "2024-01-20T10:00:00Z" - format: date-time + partitioning_attributes: + description: An array of attributes to use as partition keys for the archive. The attribute used most frequently for querying should be first. + example: ["service", "status"] + items: + description: A partition attribute name. + type: string + type: array + query: + description: The archive query/filter. Logs matching this query are included in the archive. + example: source:nginx type: string - file_size: - description: The size of the file in bytes. + rehydration_max_scan_size_in_gb: + description: Maximum scan size for rehydration from this archive. + example: 100 format: int64 nullable: true type: integer - filename: - description: The filename of the artifact. - example: model.pkl - type: string + rehydration_tags: + description: An array of tags to add to rehydrated logs from an archive. + example: ["team:intake", "team:app"] + items: + description: A given tag in the `:` format. + type: string + type: array + state: + $ref: "#/components/schemas/LogsArchiveState" required: - - filename - - artifact_path - - created_at + - name + - query + - destination type: object - ModelLabArtifactObjectInfo: - description: Information about an artifact file or directory within a run. + LogsArchiveAttributesCompressionMethod: + default: GZIP + description: The type of compression for the archive. + enum: + - GZIP + - ZSTD + example: GZIP + type: string + x-enum-varnames: + - GZIP + - ZSTD + LogsArchiveCreateRequest: + description: The logs archive. properties: - file_size: - description: The size of the file in bytes. - format: int64 - nullable: true - type: integer - is_dir: - description: Whether this artifact entry is a directory. - example: false - type: boolean - path: - description: The path of the artifact relative to the run's artifact root. - example: model/weights.pt - type: string - required: - - path - - is_dir + data: + $ref: "#/components/schemas/LogsArchiveCreateRequestDefinition" type: object - ModelLabFacetKeysAttributes: - description: Available facet key names for filtering resources. + LogsArchiveCreateRequestAttributes: + description: The attributes associated with the archive. properties: - metrics: - description: The list of available metric facet keys. - example: - - accuracy + compression_method: + $ref: "#/components/schemas/LogsArchiveAttributesCompressionMethod" + destination: + $ref: "#/components/schemas/LogsArchiveCreateRequestDestination" + include_tags: + default: false + description: |- + To store the tags in the archive, set the value "true". + If it is set to "false", the tags will be deleted when the logs are sent to the archive. + example: false + type: boolean + lookup_attributes: + description: An array of attributes to use as lookup keys for the archive. + example: ["trace_id", "user_id"] items: + description: A lookup attribute name. type: string - nullable: true type: array - parameters: - description: The list of available parameter facet keys. - example: - - learning_rate + name: + description: The archive name. + example: Nginx Archive + type: string + partitioning_attributes: + description: An array of attributes to use as partition keys for the archive. The attribute used most frequently for querying should be first. + example: ["service", "status"] items: + description: A partition attribute name. type: string type: array - tags: - description: The list of available tag facet keys. - example: - - model + query: + description: The archive query/filter. Logs matching this query are included in the archive. + example: source:nginx + type: string + rehydration_max_scan_size_in_gb: + description: Maximum scan size for rehydration from this archive. + example: 100 + format: int64 + nullable: true + type: integer + rehydration_tags: + description: An array of tags to add to rehydrated logs from an archive. + example: ["team:intake", "team:app"] items: + description: A given tag in the `:` format. type: string type: array required: - - parameters - - tags - - metrics + - name + - query + - destination type: object - ModelLabFacetKeysData: - description: A facet keys JSON:API resource object. + LogsArchiveCreateRequestDefinition: + description: The definition of an archive. properties: attributes: - $ref: "#/components/schemas/ModelLabFacetKeysAttributes" + $ref: "#/components/schemas/LogsArchiveCreateRequestAttributes" + type: + default: archives + description: The type of the resource. The value should always be archives. + example: archives + type: string + required: + - type + type: object + LogsArchiveCreateRequestDestination: + description: An archive's destination. + oneOf: + - $ref: "#/components/schemas/LogsArchiveDestinationAzure" + - $ref: "#/components/schemas/LogsArchiveDestinationGCS" + - $ref: "#/components/schemas/LogsArchiveDestinationS3" + LogsArchiveDefinition: + description: The definition of an archive. + properties: + attributes: + $ref: "#/components/schemas/LogsArchiveAttributes" id: - description: The unique identifier of the facet keys resource. - example: "1" + description: The archive ID. + example: a2zcMylnM4OCHpYusxIi3g + readOnly: true type: string type: - $ref: "#/components/schemas/ModelLabFacetKeysType" + default: archives + description: The type of the resource. The value should always be archives. + example: archives + readOnly: true + type: string required: - - id - type - - attributes type: object - ModelLabFacetKeysResponse: - description: Response containing available facet keys. + LogsArchiveDestination: + description: An archive's destination. + nullable: true + oneOf: + - $ref: "#/components/schemas/LogsArchiveDestinationAzure" + - $ref: "#/components/schemas/LogsArchiveDestinationGCS" + - $ref: "#/components/schemas/LogsArchiveDestinationS3" + type: object + LogsArchiveDestinationAzure: + description: The Azure archive destination. properties: - data: - $ref: "#/components/schemas/ModelLabFacetKeysData" + container: + description: The container where the archive will be stored. + example: container-name + type: string + integration: + $ref: "#/components/schemas/LogsArchiveIntegrationAzure" + path: + description: The archive path. + type: string + region: + description: The region where the archive will be stored. + type: string + storage_account: + description: The associated storage account. + example: account-name + type: string + type: + $ref: "#/components/schemas/LogsArchiveDestinationAzureType" required: - - data + - storage_account + - container + - integration + - type type: object - ModelLabFacetKeysType: - description: The JSON:API type for a facet keys resource. - enum: - - facet_keys - example: facet_keys - type: string - x-enum-varnames: - - FACET_KEYS - ModelLabFacetType: - description: The type of facet for filtering Model Lab runs. + LogsArchiveDestinationAzureType: + default: azure + description: Type of the Azure archive destination. enum: - - parameter - - attribute - - tag - - metric - example: tag + - azure + example: azure type: string x-enum-varnames: - - PARAMETER - - ATTRIBUTE - - TAG - - METRIC - ModelLabFacetValuesAttributes: - description: Available values for a specific facet key. + - AZURE + LogsArchiveDestinationGCS: + description: The GCS archive destination. properties: - facet_name: - description: The name of the facet. - example: model + bucket: + description: The bucket where the archive will be stored. + example: bucket-name type: string - facet_type: - description: The type of the facet. - example: tag + integration: + $ref: "#/components/schemas/LogsArchiveIntegrationGCS" + path: + description: The archive path. type: string - metric_stat_ranges: - description: The ranges for each metric statistic. - items: - $ref: "#/components/schemas/ModelLabMetricStatRange" - type: array - numeric_range: - $ref: "#/components/schemas/ModelLabNumericRange" - values: - description: The list of available string values for this facet. - example: - - gpt4 - items: - type: string - type: array + type: + $ref: "#/components/schemas/LogsArchiveDestinationGCSType" required: - - facet_type - - facet_name - - values + - bucket + - integration + - type type: object - ModelLabFacetValuesData: - description: A facet values JSON:API resource object. + LogsArchiveDestinationGCSType: + default: gcs + description: Type of the GCS archive destination. + enum: + - gcs + example: gcs + type: string + x-enum-varnames: + - GCS + LogsArchiveDestinationS3: + description: The S3 archive destination. properties: - attributes: - $ref: "#/components/schemas/ModelLabFacetValuesAttributes" - id: - description: The unique identifier of the facet values resource. - example: "1" + bucket: + description: The bucket where the archive will be stored. + example: bucket-name + type: string + encryption: + $ref: "#/components/schemas/LogsArchiveEncryptionS3" + integration: + $ref: "#/components/schemas/LogsArchiveIntegrationS3" + path: + description: The archive path. type: string + storage_class: + $ref: "#/components/schemas/LogsArchiveStorageClassS3Type" type: - $ref: "#/components/schemas/ModelLabFacetValuesType" + $ref: "#/components/schemas/LogsArchiveDestinationS3Type" required: - - id + - bucket + - integration - type - - attributes type: object - ModelLabFacetValuesResponse: - description: Response containing available values for a facet key. + LogsArchiveDestinationS3Type: + default: s3 + description: Type of the S3 archive destination. + enum: + - s3 + example: s3 + type: string + x-enum-varnames: + - S3 + LogsArchiveEncryptionS3: + description: The S3 encryption settings. properties: - data: - $ref: "#/components/schemas/ModelLabFacetValuesData" + key: + description: An Amazon Resource Name (ARN) used to identify an AWS KMS key. + example: arn:aws:kms:us-east-1:012345678901:key/DatadogIntegrationRoleKms + type: string + type: + $ref: "#/components/schemas/LogsArchiveEncryptionS3Type" required: - - data + - type type: object - ModelLabFacetValuesType: - description: The JSON:API type for a facet values resource. + LogsArchiveEncryptionS3Type: + description: Type of S3 encryption for a destination. enum: - - facet_values - example: facet_values + - NO_OVERRIDE + - SSE_S3 + - SSE_KMS + example: SSE_S3 type: string x-enum-varnames: - - FACET_VALUES - ModelLabMetricStatRange: - description: The range of values for a specific metric statistic. + - NO_OVERRIDE + - SSE_S3 + - SSE_KMS + LogsArchiveIntegrationAzure: + description: The Azure archive's integration destination. properties: - max: - description: The maximum value of the statistic. - example: 1.0 - format: double - type: number - min: - description: The minimum value of the statistic. - example: 0.0 - format: double - type: number - stat: - description: The metric statistic name. - example: mean + client_id: + description: A client ID. + example: aaaaaaaa-1a1a-1a1a-1a1a-aaaaaaaaaaaa + type: string + tenant_id: + description: A tenant ID. + example: aaaaaaaa-1a1a-1a1a-1a1a-aaaaaaaaaaaa type: string required: - - stat - - min - - max + - tenant_id + - client_id type: object - ModelLabMetricSummary: - description: Summary statistics for a metric recorded during a Model Lab run. + LogsArchiveIntegrationGCS: + description: The GCS archive's integration destination. properties: - count: - description: The total number of recorded values. - example: 100 - format: int64 - type: integer - first_step: - description: The first step at which the metric was recorded. - format: int64 - nullable: true - type: integer - key: - description: The metric name. - example: accuracy + client_email: + description: A client email. + example: youremail@example.com + type: string + project_id: + description: A project ID. + example: project-id type: string - last_step: - description: The last step at which the metric was recorded. - format: int64 - nullable: true - type: integer - latest: - description: The most recently recorded value. - format: double - nullable: true - type: number - max: - description: The maximum recorded value. - format: double - nullable: true - type: number - mean: - description: The mean of recorded values. - format: double - nullable: true - type: number - min: - description: The minimum recorded value. - format: double - nullable: true - type: number - stddev: - description: The standard deviation of recorded values. - format: double - nullable: true - type: number required: - - key - - count + - client_email type: object - ModelLabNumericRange: - description: The numeric range of values for a facet. + LogsArchiveIntegrationS3: + description: >- + The S3 Archive's integration destination. You must provide one of the following: `access_key_id` alone, or both `account_id` and `role_name` together. + oneOf: + - $ref: "#/components/schemas/LogsArchiveIntegrationS3AccessKey" + - $ref: "#/components/schemas/LogsArchiveIntegrationS3Role" + LogsArchiveIntegrationS3AccessKey: + description: The S3 Archive's integration destination using an access key. properties: - max: - description: The maximum value. - example: 1.0 - format: double - type: number - min: - description: The minimum value. - example: 0.0 - format: double - type: number + access_key_id: + description: The access key ID for the integration. + example: AKIAIOSFODNN7EXAMPLE + type: string required: - - min - - max + - access_key_id type: object - ModelLabPageMeta: - description: Pagination metadata for a list response. + LogsArchiveIntegrationS3Role: + description: The S3 Archive's integration destination using an IAM role. properties: - page: - $ref: "#/components/schemas/ModelLabPageMetaPage" + account_id: + description: The account ID for the integration. + example: "123456789012" + type: string + role_name: + description: The name of the role to assume for the integration. + example: role-name + type: string required: - - page + - account_id + - role_name type: object - ModelLabPageMetaPage: - description: Pagination details for a list response. + LogsArchiveOrder: + description: A ordered list of archive IDs. properties: - first_number: - description: The first page number. - format: int64 - type: integer - last_number: - description: The last page number. - format: int64 - type: integer - next_number: - description: The next page number. - format: int64 - nullable: true - type: integer - number: - description: The current page number. - example: 1 - format: int64 - type: integer - prev_number: - description: The previous page number. - format: int64 - nullable: true - type: integer - size: - description: The number of items per page. - example: 25 - format: int64 - type: integer - total: - description: The total number of items. - example: 100 - format: int64 - type: integer - type: - description: The pagination type. - type: string - required: - - number - - size - - total + data: + $ref: "#/components/schemas/LogsArchiveOrderDefinition" type: object - ModelLabPaginationLinks: - description: Pagination links for navigating list responses. + LogsArchiveOrderAttributes: + description: The attributes associated with the archive order. properties: - first: - description: Link to the first page. - type: string - last: - description: Link to the last page. - type: string - next: - description: Link to the next page. - nullable: true - type: string - prev: - description: Link to the previous page. - nullable: true - type: string - self: - description: Link to the current page. - type: string - type: object - ModelLabProjectArtifactsAttributes: - description: Artifact listing for a Model Lab project. - properties: - files: - description: The list of artifact files associated with the project. + archive_ids: + description: |- + An ordered array of `` strings, the order of archive IDs in the array + define the overall archives order for Datadog. + example: ["a2zcMylnM4OCHpYusxIi1g", "a2zcMylnM4OCHpYusxIi2g", "a2zcMylnM4OCHpYusxIi3g"] items: - $ref: "#/components/schemas/ModelLabArtifactInfo" + description: A given archive ID. + type: string type: array required: - - files + - archive_ids type: object - ModelLabProjectArtifactsData: - description: A project artifacts JSON:API resource object. + LogsArchiveOrderDefinition: + description: The definition of an archive order. properties: attributes: - $ref: "#/components/schemas/ModelLabProjectArtifactsAttributes" - id: - description: The unique identifier of the project artifacts resource. - example: "1" - type: string + $ref: "#/components/schemas/LogsArchiveOrderAttributes" type: - $ref: "#/components/schemas/ModelLabProjectArtifactsType" + $ref: "#/components/schemas/LogsArchiveOrderDefinitionType" required: - - id - type - attributes type: object - ModelLabProjectArtifactsResponse: - description: Response containing the artifact listing for a Model Lab project. - properties: - data: - $ref: "#/components/schemas/ModelLabProjectArtifactsData" - required: - - data - type: object - ModelLabProjectArtifactsType: - description: The JSON:API type for a project artifacts resource. + LogsArchiveOrderDefinitionType: + default: archive_order + description: Type of the archive order definition. enum: - - project_files - example: project_files + - archive_order + example: archive_order type: string x-enum-varnames: - - PROJECT_FILES - ModelLabProjectAttributes: - description: Attributes of a Model Lab project. + - ARCHIVE_ORDER + LogsArchiveState: + description: The state of the archive. + enum: + - UNKNOWN + - WORKING + - FAILING + - WORKING_AUTH_LEGACY + example: WORKING + type: string + x-enum-varnames: + - UNKNOWN + - WORKING + - FAILING + - WORKING_AUTH_LEGACY + LogsArchiveStorageClassS3Type: + default: STANDARD + description: The storage class where the archive will be stored. + enum: + - STANDARD + - STANDARD_IA + - ONEZONE_IA + - INTELLIGENT_TIERING + - GLACIER_IR + example: STANDARD + type: string + x-enum-varnames: + - STANDARD + - STANDARD_IA + - ONEZONE_IA + - INTELLIGENT_TIERING + - GLACIER_IR + LogsArchives: + description: The available archives. properties: - artifact_storage_location: - description: The storage location for project artifacts. - example: s3://bucket/active-project - type: string - created_at: - description: The date and time the project was created. - example: "2024-01-20T10:00:00Z" - format: date-time - type: string - deleted_at: - description: The date and time the project was soft-deleted. - format: date-time - nullable: true - type: string - description: - description: A description of the project. - example: A machine learning training project. - type: string - external_url: - description: An optional external URL associated with the project. - nullable: true - type: string - is_starred: - description: Whether the project is starred by the current user. - example: false - type: boolean - name: - description: The name of the project. - example: active-project - type: string - owner_id: - description: The UUID of the project owner. - nullable: true - type: string - tags: - description: The list of tags associated with the project. + data: + description: A list of archives. items: - $ref: "#/components/schemas/ModelLabTag" + $ref: "#/components/schemas/LogsArchiveDefinition" type: array - updated_at: - description: The date and time the project was last updated. - example: "2024-01-20T11:00:00Z" - format: date-time - type: string - required: - - name - - description - - artifact_storage_location - - created_at - - updated_at - - tags - - is_starred type: object - ModelLabProjectData: - description: A Model Lab project JSON:API resource object. + LogsCompute: + description: A compute rule to compute metrics or timeseries properties: - attributes: - $ref: "#/components/schemas/ModelLabProjectAttributes" - id: - description: The unique identifier of the project. - example: "2" + aggregation: + $ref: "#/components/schemas/LogsAggregationFunction" + interval: + description: |- + The time buckets' size (only used for type=timeseries) + Defaults to a resolution of 150 points + example: "5m" + type: string + metric: + description: The metric to use + example: "@duration" type: string type: - $ref: "#/components/schemas/ModelLabProjectType" + $ref: "#/components/schemas/LogsComputeType" required: - - id - - type - - attributes + - aggregation type: object - ModelLabProjectFacetType: - description: The type of facet for filtering Model Lab projects. - enum: - - tag - example: tag + LogsComputeType: + default: "total" + description: The type of compute + enum: ["timeseries", "total"] type: string - x-enum-varnames: - - TAG - ModelLabProjectResponse: - description: Response containing a single Model Lab project. + x-enum-varnames: ["TIMESERIES", "TOTAL"] + LogsGroupBy: + description: A group by rule properties: - data: - $ref: "#/components/schemas/ModelLabProjectData" + facet: + description: The name of the facet to use (required) + example: "host" + type: string + histogram: + $ref: "#/components/schemas/LogsGroupByHistogram" + limit: + default: 10 + description: |- + The maximum buckets to return for this group by. Note: at most 10000 buckets are allowed. + If grouping by multiple facets, the product of limits must not exceed 10000. + format: int64 + type: integer + missing: + $ref: "#/components/schemas/LogsGroupByMissing" + sort: + $ref: "#/components/schemas/LogsAggregateSort" + total: + $ref: "#/components/schemas/LogsGroupByTotal" required: - - data + - facet type: object - ModelLabProjectType: - description: The JSON:API type for a Model Lab project resource. - enum: - - projects - example: projects + LogsGroupByHistogram: + description: |- + Used to perform a histogram computation (only for measure facets). + Note: at most 100 buckets are allowed, the number of buckets is (max - min)/interval. + properties: + interval: + description: The bin size of the histogram buckets + example: 10 + format: double + type: number + max: + description: |- + The maximum value for the measure used in the histogram + (values greater than this one are filtered out) + example: 100 + format: double + type: number + min: + description: |- + The minimum value for the measure used in the histogram + (values smaller than this one are filtered out) + example: 50 + format: double + type: number + required: + - interval + - min + - max + type: object + LogsGroupByMissing: + description: The value to use for logs that don't have the facet used to group by + oneOf: + - $ref: "#/components/schemas/LogsGroupByMissingString" + - $ref: "#/components/schemas/LogsGroupByMissingNumber" + LogsGroupByMissingNumber: + description: The missing value to use if there is a number valued facet. + format: double + type: number + LogsGroupByMissingString: + description: The missing value to use if there is string valued facet. type: string - x-enum-varnames: - - PROJECTS - ModelLabProjectsResponse: - description: Response containing a list of Model Lab projects with pagination metadata. + LogsGroupByTotal: + default: false + description: |- + A resulting object to put the given computes in over all the matching records. + oneOf: + - $ref: "#/components/schemas/LogsGroupByTotalBoolean" + - $ref: "#/components/schemas/LogsGroupByTotalString" + - $ref: "#/components/schemas/LogsGroupByTotalNumber" + LogsGroupByTotalBoolean: + description: If set to true, creates an additional bucket labeled "$facet_total" + type: boolean + LogsGroupByTotalNumber: + description: A number to use as the key value for the total bucket + format: double + type: number + LogsGroupByTotalString: + description: A string to use as the key value for the total bucket + type: string + LogsListRequest: + description: The request for a logs list. + properties: + filter: + $ref: "#/components/schemas/LogsQueryFilter" + options: + $ref: "#/components/schemas/LogsQueryOptions" + page: + $ref: "#/components/schemas/LogsListRequestPage" + sort: + $ref: "#/components/schemas/LogsSort" + type: object + LogsListRequestPage: + description: Paging attributes for listing logs. + properties: + cursor: + description: |- + List following results with a cursor provided in the previous query. + example: "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" + type: string + limit: + default: 10 + description: Maximum number of logs in the response. + example: 25 + format: int32 + maximum: 1000 + type: integer + type: object + LogsListResponse: + description: Response object with all logs matching the request and pagination information. properties: data: - description: The list of projects. + description: Array of logs matching the request. items: - $ref: "#/components/schemas/ModelLabProjectData" + $ref: "#/components/schemas/Log" type: array links: - $ref: "#/components/schemas/ModelLabPaginationLinks" + $ref: "#/components/schemas/LogsListResponseLinks" meta: - $ref: "#/components/schemas/ModelLabPageMeta" - required: - - data - - meta + $ref: "#/components/schemas/LogsResponseMetadata" type: object - ModelLabRunArtifactsAttributes: - description: Artifact listing for a Model Lab run. + LogsListResponseLinks: + description: Links attributes. properties: - files: - description: The list of artifact files and directories. - items: - $ref: "#/components/schemas/ModelLabArtifactObjectInfo" - type: array - path_in_project: - description: The path of the run's artifacts relative to the project's artifact root. - example: runs/42 + next: + description: |- + Link for the next set of results. Note that the request can also be made using the + POST endpoint. + example: "https://app.datadoghq.com/api/v2/logs/event?filter[query]=foo&page[cursor]=eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" type: string - required: - - path_in_project - - files type: object - ModelLabRunArtifactsData: - description: A run artifacts JSON:API resource object. + LogsMetricCompute: + description: The compute rule to compute the log-based metric. properties: - attributes: - $ref: "#/components/schemas/ModelLabRunArtifactsAttributes" - id: - description: The unique identifier of the artifacts resource. - example: "42" + aggregation_type: + $ref: "#/components/schemas/LogsMetricComputeAggregationType" + include_percentiles: + $ref: "#/components/schemas/LogsMetricComputeIncludePercentiles" + path: + description: The path to the value the log-based metric will aggregate on (only used if the aggregation type is a "distribution"). + example: "@duration" type: string - type: - $ref: "#/components/schemas/ModelLabRunArtifactsType" - required: - - id - - type - - attributes - type: object - ModelLabRunArtifactsResponse: - description: Response containing the artifact listing for a Model Lab run. - properties: - data: - $ref: "#/components/schemas/ModelLabRunArtifactsData" required: - - data + - aggregation_type type: object - ModelLabRunArtifactsType: - description: The JSON:API type for a run artifacts resource. - enum: - - artifacts - example: artifacts + LogsMetricComputeAggregationType: + description: The type of aggregation to use. + enum: ["count", "distribution"] + example: "distribution" type: string - x-enum-varnames: - - ARTIFACTS - ModelLabRunAttributes: - description: Attributes of a Model Lab run. + x-enum-varnames: ["COUNT", "DISTRIBUTION"] + LogsMetricComputeIncludePercentiles: + description: |- + Toggle to include or exclude percentile aggregations for distribution metrics. + Only present when the `aggregation_type` is `distribution`. + example: true + type: boolean + LogsMetricCreateAttributes: + description: The object describing the Datadog log-based metric to create. properties: - completed_at: - description: The date and time the run completed. - format: date-time - nullable: true - type: string - created_at: - description: The date and time the run was created. - example: "2024-01-20T10:00:00Z" - format: date-time - type: string - deleted_at: - description: The date and time the run was soft-deleted. - format: date-time - nullable: true - type: string - descendant_match: - description: Whether a descendant run matched the applied filters. - example: false - type: boolean - description: - description: A description of the run. - example: Fine-tuning run with custom hyperparameters. - type: string - duration: - description: The duration of the run in seconds. - format: double - nullable: true - type: number - external_url: - description: An optional external URL associated with the run. - nullable: true - type: string - has_children: - description: Whether the run has child runs. - example: false - type: boolean - is_pinned: - description: Whether the run is pinned by the current user. - example: false - type: boolean - metric_summaries: - description: Summary statistics for metrics recorded during the run. - items: - $ref: "#/components/schemas/ModelLabMetricSummary" - type: array - mlflow_artifact_location: - description: The MLflow artifact storage location for this run. - example: s3://bucket/active-run - type: string - name: - description: The name of the run. - example: training-run-1 - type: string - owner_id: - description: The UUID of the run owner. - nullable: true - type: string - params: - description: The list of parameters used for the run. - items: - $ref: "#/components/schemas/ModelLabRunParam" - nullable: true - type: array - project_id: - description: The ID of the project this run belongs to. - example: 101 - format: int64 - type: integer - started_at: - description: The date and time the run started. - example: "2024-01-20T10:00:00Z" - format: date-time - type: string - status: - $ref: "#/components/schemas/ModelLabRunStatus" - tags: - description: The list of tags associated with the run. + compute: + $ref: "#/components/schemas/LogsMetricCompute" + filter: + $ref: "#/components/schemas/LogsMetricFilter" + group_by: + description: The rules for the group by. items: - $ref: "#/components/schemas/ModelLabTag" + $ref: "#/components/schemas/LogsMetricGroupBy" type: array - updated_at: - description: The date and time the run was last updated. - example: "2024-01-20T11:00:00Z" - format: date-time - type: string required: - - project_id - - name - - description - - status - - mlflow_artifact_location - - started_at - - created_at - - updated_at - - tags - - params - - metric_summaries - - is_pinned - - has_children - - descendant_match + - compute type: object - ModelLabRunData: - description: A Model Lab run JSON:API resource object. + LogsMetricCreateData: + description: The new log-based metric properties. properties: attributes: - $ref: "#/components/schemas/ModelLabRunAttributes" + $ref: "#/components/schemas/LogsMetricCreateAttributes" id: - description: The unique identifier of the run. - example: "42" - type: string + $ref: "#/components/schemas/LogsMetricID" type: - $ref: "#/components/schemas/ModelLabRunType" + $ref: "#/components/schemas/LogsMetricType" required: - id - type - attributes type: object - ModelLabRunParam: - description: A key-value parameter for a Model Lab run. - properties: - key: - description: The parameter key. - example: algorithm - type: string - value: - description: The parameter value. - example: gpt4 - type: string - required: - - key - - value - type: object - ModelLabRunResponse: - description: Response containing a single Model Lab run. - properties: - data: - $ref: "#/components/schemas/ModelLabRunData" - required: - - data - type: object - ModelLabRunStatus: - description: The status of a Model Lab run. - enum: - - pending - - running - - completed - - failed - - killed - - unresponsive - - paused - example: running - type: string - x-enum-varnames: - - PENDING - - RUNNING - - COMPLETED - - FAILED - - KILLED - - UNRESPONSIVE - - PAUSED - ModelLabRunType: - description: The JSON:API type for a Model Lab run resource. - enum: - - runs - example: runs - type: string - x-enum-varnames: - - RUNS - ModelLabRunsResponse: - description: Response containing a list of Model Lab runs with pagination metadata. + LogsMetricCreateRequest: + description: The new log-based metric body. properties: data: - description: The list of runs. - items: - $ref: "#/components/schemas/ModelLabRunData" - type: array - links: - $ref: "#/components/schemas/ModelLabPaginationLinks" - meta: - $ref: "#/components/schemas/ModelLabPageMeta" + $ref: "#/components/schemas/LogsMetricCreateData" required: - data - - meta type: object - ModelLabTag: - description: A key-value tag attached to a resource. + LogsMetricFilter: + description: The log-based metric filter. Logs matching this filter will be aggregated in this metric. properties: - key: - description: The tag key. - example: model - type: string - value: - description: The tag value. - example: opus + query: + default: "*" + description: The search query - following the log search syntax. + example: "service:web* AND @http.status_code:[200 TO 299]" type: string - required: - - key - - value - type: object - MonitorAlertTrigger: - additionalProperties: false - description: A trigger created from a monitor alert. - properties: - monitor_alert_trigger: - $ref: "#/components/schemas/MonitorAlertTriggerAttributes" - type: - $ref: "#/components/schemas/MonitorAlertTriggerType" - required: - - type - - monitor_alert_trigger type: object - MonitorAlertTriggerAttributes: - description: Attributes for a monitor alert trigger. + LogsMetricGroupBy: + description: A group by rule. properties: - event_id: - description: The event ID associated with the monitor alert. - example: "1234567890123456789" + path: + description: The path to the value the log-based metric will be aggregated over. + example: "@http.status_code" + type: string + tag_name: + description: Eventual name of the tag that gets created. By default, the path attribute is used as the tag name. + example: "status_code" type: string - event_ts: - description: The timestamp of the event in Unix milliseconds. - example: 1700000000000 - format: int64 - type: integer - monitor_id: - description: The monitor ID that triggered the alert. - example: 12345678 - format: int64 - type: integer required: - - monitor_id - - event_id - - event_ts + - path type: object - MonitorAlertTriggerType: - description: The type of monitor alert trigger. - enum: - - monitor_alert_trigger - example: monitor_alert_trigger + LogsMetricID: + description: The name of the log-based metric. + example: "logs.page.load.count" type: string - x-enum-varnames: - - MONITOR_ALERT_TRIGGER - MonitorConfigPolicyAttributeCreateRequest: - description: Policy and policy type for a monitor configuration policy. + LogsMetricResponse: + description: The log-based metric object. properties: - policy: - $ref: "#/components/schemas/MonitorConfigPolicyPolicyCreateRequest" - policy_type: - $ref: "#/components/schemas/MonitorConfigPolicyType" - required: - - policy_type - - policy + data: + $ref: "#/components/schemas/LogsMetricResponseData" type: object - MonitorConfigPolicyAttributeEditRequest: - description: Policy and policy type for a monitor configuration policy. + LogsMetricResponseAttributes: + description: The object describing a Datadog log-based metric. properties: - policy: - $ref: "#/components/schemas/MonitorConfigPolicyPolicy" - policy_type: - $ref: "#/components/schemas/MonitorConfigPolicyType" - required: - - policy_type - - policy + compute: + $ref: "#/components/schemas/LogsMetricResponseCompute" + filter: + $ref: "#/components/schemas/LogsMetricResponseFilter" + group_by: + description: The rules for the group by. + items: + $ref: "#/components/schemas/LogsMetricResponseGroupBy" + type: array type: object - MonitorConfigPolicyAttributeResponse: - description: Policy and policy type for a monitor configuration policy. + LogsMetricResponseCompute: + description: The compute rule to compute the log-based metric. properties: - policy: - $ref: "#/components/schemas/MonitorConfigPolicyPolicy" - policy_type: - $ref: "#/components/schemas/MonitorConfigPolicyType" + aggregation_type: + $ref: "#/components/schemas/LogsMetricResponseComputeAggregationType" + include_percentiles: + $ref: "#/components/schemas/LogsMetricComputeIncludePercentiles" + path: + description: The path to the value the log-based metric will aggregate on (only used if the aggregation type is a "distribution"). + example: "@duration" + type: string type: object - MonitorConfigPolicyCreateData: - description: A monitor configuration policy data. + LogsMetricResponseComputeAggregationType: + description: The type of aggregation to use. + enum: ["count", "distribution"] + example: "distribution" + type: string + x-enum-varnames: ["COUNT", "DISTRIBUTION"] + LogsMetricResponseData: + description: The log-based metric properties. properties: attributes: - $ref: "#/components/schemas/MonitorConfigPolicyAttributeCreateRequest" + $ref: "#/components/schemas/LogsMetricResponseAttributes" + id: + $ref: "#/components/schemas/LogsMetricID" type: - $ref: "#/components/schemas/MonitorConfigPolicyResourceType" - required: - - type - - attributes + $ref: "#/components/schemas/LogsMetricType" type: object - MonitorConfigPolicyCreateRequest: - description: Request for creating a monitor configuration policy. + LogsMetricResponseFilter: + description: The log-based metric filter. Logs matching this filter will be aggregated in this metric. properties: - data: - $ref: "#/components/schemas/MonitorConfigPolicyCreateData" - required: - - data + query: + description: The search query - following the log search syntax. + example: "service:web* AND @http.status_code:[200 TO 299]" + type: string type: object - MonitorConfigPolicyDowntimePolicy: - additionalProperties: false - description: Downtime duration attributes of a monitor configuration policy. + LogsMetricResponseGroupBy: + description: A group by rule. properties: - max_duration_ms: - description: The maximum allowed downtime duration, in milliseconds. - example: 3600000 - format: int64 - minimum: 1 - type: integer - required: - - max_duration_ms + path: + description: The path to the value the log-based metric will be aggregated over. + example: "@http.status_code" + type: string + tag_name: + description: Eventual name of the tag that gets created. By default, the path attribute is used as the tag name. + example: "status_code" + type: string type: object - MonitorConfigPolicyDowntimePolicyCreateRequest: - additionalProperties: false - description: Downtime duration attributes of a monitor configuration policy. + LogsMetricType: + default: logs_metrics + description: The type of the resource. The value should always be logs_metrics. + enum: + - logs_metrics + example: logs_metrics + type: string + x-enum-varnames: ["LOGS_METRICS"] + LogsMetricUpdateAttributes: + description: The log-based metric properties that will be updated. properties: - max_duration_ms: - description: The maximum allowed downtime duration, in milliseconds. - example: 3600000 - format: int64 - minimum: 1 - type: integer - required: - - max_duration_ms + compute: + $ref: "#/components/schemas/LogsMetricUpdateCompute" + filter: + $ref: "#/components/schemas/LogsMetricFilter" + group_by: + description: The rules for the group by. + items: + $ref: "#/components/schemas/LogsMetricGroupBy" + type: array type: object - MonitorConfigPolicyEditData: - description: A monitor configuration policy data. + LogsMetricUpdateCompute: + description: The compute rule to compute the log-based metric. + properties: + include_percentiles: + $ref: "#/components/schemas/LogsMetricComputeIncludePercentiles" + type: object + LogsMetricUpdateData: + description: The new log-based metric properties. properties: attributes: - $ref: "#/components/schemas/MonitorConfigPolicyAttributeEditRequest" - id: - description: ID of this monitor configuration policy. - example: "00000000-0000-1234-0000-000000000000" - type: string + $ref: "#/components/schemas/LogsMetricUpdateAttributes" type: - $ref: "#/components/schemas/MonitorConfigPolicyResourceType" + $ref: "#/components/schemas/LogsMetricType" required: - - id - type - attributes type: object - MonitorConfigPolicyEditRequest: - description: Request for editing a monitor configuration policy. + LogsMetricUpdateRequest: + description: The new log-based metric body. properties: data: - $ref: "#/components/schemas/MonitorConfigPolicyEditData" + $ref: "#/components/schemas/LogsMetricUpdateData" required: - data type: object - MonitorConfigPolicyListResponse: - description: Response for retrieving all monitor configuration policies. + LogsMetricsResponse: + description: All the available log-based metric objects. properties: data: - description: An array of monitor configuration policies. + description: A list of log-based metric objects. items: - $ref: "#/components/schemas/MonitorConfigPolicyResponseData" + $ref: "#/components/schemas/LogsMetricResponseData" type: array type: object - MonitorConfigPolicyPolicy: - description: Configuration for the policy. - oneOf: - - $ref: "#/components/schemas/MonitorConfigPolicyTagPolicy" - - $ref: "#/components/schemas/MonitorConfigPolicyDowntimePolicy" - MonitorConfigPolicyPolicyCreateRequest: - description: Configuration for the policy. - oneOf: - - $ref: "#/components/schemas/MonitorConfigPolicyTagPolicyCreateRequest" - - $ref: "#/components/schemas/MonitorConfigPolicyDowntimePolicyCreateRequest" - MonitorConfigPolicyResourceType: - default: monitor-config-policy - description: Monitor configuration policy resource type. - enum: - - monitor-config-policy - example: "monitor-config-policy" - type: string - x-enum-varnames: - - MONITOR_CONFIG_POLICY - MonitorConfigPolicyResponse: - description: Response for retrieving a monitor configuration policy. + LogsQueryFilter: + description: The search and filter query settings properties: - data: - $ref: "#/components/schemas/MonitorConfigPolicyResponseData" + from: + default: "now-15m" + description: The minimum time for the requested logs, supports date math and regular timestamps (milliseconds). + example: "now-15m" + type: string + indexes: + default: ["*"] + description: For customers with multiple indexes, the indexes to search. Defaults to ['*'] which means all indexes. + example: ["main", "web"] + items: + description: The name of a log index. + type: string + type: array + query: + default: "*" + description: The search query - following the log search syntax. + example: "service:web* AND @http.status_code:[200 TO 299]" + type: string + storage_tier: + $ref: "#/components/schemas/LogsStorageTier" + to: + default: "now" + description: The maximum time for the requested logs, supports date math and regular timestamps (milliseconds). + example: "now" + type: string type: object - MonitorConfigPolicyResponseData: - description: A monitor configuration policy data. + LogsQueryOptions: + deprecated: true + description: |- + Global query options that are used during the query. + Note: These fields are currently deprecated and do not affect the query results. properties: - attributes: - $ref: "#/components/schemas/MonitorConfigPolicyAttributeResponse" - id: - description: ID of this monitor configuration policy. - example: "00000000-0000-1234-0000-000000000000" + timeOffset: + description: The time offset (in seconds) to apply to the query. + format: int64 + type: integer + timezone: + default: "UTC" + description: |- + The timezone can be specified as GMT, UTC, an offset from UTC (like UTC+1), or as a Timezone Database identifier (like America/New_York). + example: "GMT" type: string - type: - $ref: "#/components/schemas/MonitorConfigPolicyResourceType" type: object - MonitorConfigPolicyTagPolicy: - additionalProperties: false - description: Tag attributes of a monitor configuration policy. + LogsResponseMetadata: + description: The metadata associated with a request properties: - tag_key: - description: The key of the tag. - example: datacenter - maxLength: 255 + elapsed: + description: The time elapsed in milliseconds + example: 132 + format: int64 + type: integer + page: + $ref: "#/components/schemas/LogsResponseMetadataPage" + request_id: + description: The identifier of the request + example: "MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR" type: string - tag_key_required: - description: If a tag key is required for monitor creation. - example: true - type: boolean - valid_tag_values: - description: Valid values for the tag. - example: ["prod", "staging"] + status: + $ref: "#/components/schemas/LogsAggregateResponseStatus" + warnings: + description: |- + A list of warnings (non fatal errors) encountered, partial results might be returned if + warnings are present in the response. items: - description: A valid tag value for the monitor configuration policy. - maxLength: 255 - type: string + $ref: "#/components/schemas/LogsWarning" type: array type: object - MonitorConfigPolicyTagPolicyCreateRequest: - additionalProperties: false - description: Tag attributes of a monitor configuration policy. + LogsResponseMetadataPage: + description: Paging attributes. properties: - tag_key: - description: The key of the tag. - example: datacenter - maxLength: 255 + after: + description: |- + The cursor to use to get the next results, if any. To make the next request, use the same + parameters with the addition of the `page[cursor]`. + example: "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" type: string - tag_key_required: - description: If a tag key is required for monitor creation. - example: true - type: boolean - valid_tag_values: - description: Valid values for the tag. - example: ["prod", "staging"] - items: - description: A valid tag value for the monitor configuration policy. - maxLength: 255 - type: string - type: array - required: - - tag_key - - tag_key_required - - valid_tag_values type: object - MonitorConfigPolicyType: - default: tag - description: |- - The monitor configuration policy type. - `tag` enforces required tags on monitors. - `downtime` sets a maximum downtime duration for the organization. + LogsRestrictionQueriesType: + default: logs_restriction_queries + description: Restriction query resource type. enum: - - tag - - downtime - example: "tag" + - logs_restriction_queries + example: logs_restriction_queries type: string x-enum-varnames: - - TAG - - DOWNTIME - MonitorDowntimeMatchResourceType: - default: downtime_match - description: Monitor Downtime Match resource type. + - LOGS_RESTRICTION_QUERIES + LogsSort: + description: Sort parameters when querying logs. enum: - - downtime_match - example: "downtime_match" + - timestamp + - -timestamp type: string x-enum-varnames: - - DOWNTIME_MATCH - MonitorDowntimeMatchResponse: - description: Response for retrieving all downtime matches for a monitor. + - TIMESTAMP_ASCENDING + - TIMESTAMP_DESCENDING + LogsSortOrder: + description: The order to use, ascending or descending + enum: + - "asc" + - "desc" + example: "asc" + type: string + x-enum-varnames: + - "ASCENDING" + - "DESCENDING" + LogsStorageTier: + default: "indexes" + description: Specifies storage type as indexes, online-archives or flex + enum: ["indexes", "online-archives", "flex"] + example: "indexes" + type: string + x-enum-varnames: ["INDEXES", "ONLINE_ARCHIVES", "FLEX"] + LogsWarning: + description: A warning message indicating something that went wrong with the query properties: - data: - description: An array of downtime matches. - items: - $ref: "#/components/schemas/MonitorDowntimeMatchResponseData" - type: array - meta: - $ref: "#/components/schemas/DowntimeMeta" + code: + description: A unique code for this type of warning + example: "unknown_index" + type: string + detail: + description: A detailed explanation of this specific warning + example: "indexes: foo, bar" + type: string + title: + description: A short human-readable summary of the warning + example: "One or several indexes are missing or invalid, results hold data from the other indexes" + type: string type: object - MonitorDowntimeMatchResponseAttributes: - description: Downtime match details. + LongTaskMetricStats: + description: Statistical distribution (average, min, max) of a long task metric across sampled views. properties: - end: - description: The end of the downtime. - example: 2020-01-02 03:04:00+00:00 - format: date-time - nullable: true - type: string - groups: - description: An array of groups associated with the downtime. - example: ["service:postgres", "team:frontend"] - items: - description: An array of groups. - example: "service:postgres" - type: string - type: array - scope: - $ref: "#/components/schemas/DowntimeScope" - start: - description: The start of the downtime. - example: 2020-01-02 03:04:00+00:00 - format: date-time - type: string - type: object - MonitorDowntimeMatchResponseData: - description: A downtime match. - properties: - attributes: - $ref: "#/components/schemas/MonitorDowntimeMatchResponseAttributes" - id: - description: The downtime ID. - example: "00000000-0000-1234-0000-000000000000" - nullable: true - type: string - type: - $ref: "#/components/schemas/MonitorDowntimeMatchResourceType" - type: object - MonitorNotificationRuleAttributes: - additionalProperties: false - description: Attributes of the monitor notification rule. - properties: - bundle_config: - $ref: "#/components/schemas/MonitorNotificationRuleBundleConfig" - conditional_recipients: - $ref: "#/components/schemas/MonitorNotificationRuleConditionalRecipients" - filter: - $ref: "#/components/schemas/MonitorNotificationRuleFilter" - name: - $ref: "#/components/schemas/MonitorNotificationRuleName" - recipients: - $ref: "#/components/schemas/MonitorNotificationRuleRecipients" - required: [name] - type: object - MonitorNotificationRuleBundleConfig: - description: |- - Use bundle config to enable alert bundling to reduce monitor signal noises. **Note**: This feature is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - properties: - duration: - description: Duration of the bundling period. - example: 3600 - format: int32 - maximum: 2147483647 - type: integer - required: [duration] + average: + description: Average value across sampled views. + example: 3504.1 + format: double + type: number + max: + description: Maximum value across sampled views. + example: 3517.8 + format: double + type: number + min: + description: Minimum value across sampled views. + example: 3500.1 + format: double + type: number + required: + - average + - min + - max type: object - MonitorNotificationRuleCondition: - description: |- - A conditional recipient rule composed of a `scope` (the matching condition) and - `recipients` (who to notify when it matches). + LongTaskStatsPerView: + description: Statistical distributions of long task metrics computed per view across sampled views. properties: - recipients: - $ref: "#/components/schemas/MonitorNotificationRuleRecipients" - description: A list of recipients to notify. Uses the same format as the monitor `message` field. Must not start with an '@'. - scope: - $ref: "#/components/schemas/MonitorNotificationRuleConditionScope" - required: [scope, recipients] + fcp_blocking_time_ms: + $ref: "#/components/schemas/LongTaskMetricStats" + fcp_count: + $ref: "#/components/schemas/LongTaskMetricStats" + inp_overlap_blocking_time_ms: + $ref: "#/components/schemas/LongTaskMetricStats" + inp_overlap_count: + $ref: "#/components/schemas/LongTaskMetricStats" + lcp_blocking_time_ms: + $ref: "#/components/schemas/LongTaskMetricStats" + lcp_count: + $ref: "#/components/schemas/LongTaskMetricStats" + loading_time_blocking_time_ms: + $ref: "#/components/schemas/LongTaskMetricStats" + loading_time_count: + $ref: "#/components/schemas/LongTaskMetricStats" + total_blocking_time_ms: + $ref: "#/components/schemas/LongTaskMetricStats" + total_count: + $ref: "#/components/schemas/LongTaskMetricStats" type: object - MonitorNotificationRuleConditionScope: - description: |- - Defines the condition under which the recipients are notified. Supported formats: - - Monitor status condition using `transition_type:`, for example `transition_type:is_alert`. - - A single tag key:value pair, for example `env:prod`. - example: transition_type:is_alert - maxLength: 3000 - minLength: 1 - type: string - MonitorNotificationRuleConditionalRecipients: - description: |- - Use conditional recipients to define different recipients for different situations. Cannot be used with `recipients`. + MSTeamsIntegrationMetadata: + description: Incident integration metadata for the Microsoft Teams integration. properties: - conditions: - description: Conditions of the notification rule. + teams: + description: Array of Microsoft Teams in this integration metadata. + example: [] items: - $ref: "#/components/schemas/MonitorNotificationRuleCondition" - maxItems: 10 - minItems: 1 + $ref: "#/components/schemas/MSTeamsIntegrationMetadataTeamsItem" type: array - fallback_recipients: - $ref: "#/components/schemas/MonitorNotificationRuleRecipients" - description: If none of the `conditions` applied, `fallback_recipients` will get notified. - required: [conditions] - type: object - MonitorNotificationRuleCreateRequest: - description: Request for creating a monitor notification rule. - properties: - data: - $ref: "#/components/schemas/MonitorNotificationRuleCreateRequestData" - required: [data] - type: object - MonitorNotificationRuleCreateRequestData: - description: Object to create a monitor notification rule. - properties: - attributes: - $ref: "#/components/schemas/MonitorNotificationRuleAttributes" - type: - $ref: "#/components/schemas/MonitorNotificationRuleResourceType" - required: [attributes] - type: object - MonitorNotificationRuleData: - description: Monitor notification rule data. - properties: - attributes: - $ref: "#/components/schemas/MonitorNotificationRuleResponseAttributes" - id: - $ref: "#/components/schemas/MonitorNotificationRuleId" - relationships: - $ref: "#/components/schemas/MonitorNotificationRuleRelationships" - type: - $ref: "#/components/schemas/MonitorNotificationRuleResourceType" + required: + - teams type: object - MonitorNotificationRuleFilter: - description: Specifies the matching criteria for monitor notifications. - oneOf: - - $ref: "#/components/schemas/MonitorNotificationRuleFilterTags" - - $ref: "#/components/schemas/MonitorNotificationRuleFilterScope" - MonitorNotificationRuleFilterScope: - additionalProperties: false - description: Filters monitor notifications using a scope expression over key:value pairs with boolean logic (AND, OR, NOT). + MSTeamsIntegrationMetadataTeamsItem: + description: Item in the Microsoft Teams integration metadata teams array. properties: - scope: - description: |- - A scope expression composed by key:value pairs (e.g. `service:foo`) with boolean operators (AND, OR, NOT) and parentheses for grouping. - example: service:(foo OR bar) AND team:test NOT environment:staging - maxLength: 3000 - minLength: 1 + ms_channel_id: + description: Microsoft Teams channel ID. + example: 19:abc00abcdef00a0abcdef0abcdef0a@thread.tacv2 type: string - required: [scope] + ms_channel_name: + description: Microsoft Teams channel name. + example: incident-0001-example + type: string + ms_tenant_id: + description: Microsoft Teams tenant ID. + example: 00000000-abcd-0005-0000-000000000000 + type: string + redirect_url: + description: URL redirecting to the Microsoft Teams channel. + example: https://teams.microsoft.com/l/channel/19%3Aabc00abcdef00a0abcdef0abcdef0a%40thread.tacv2/conversations?groupId=12345678-abcd-dcba-abcd-1234567890ab&tenantId=00000000-abcd-0005-0000-000000000000 + type: string + required: + - ms_tenant_id + - ms_channel_id + - ms_channel_name + - redirect_url type: object - MonitorNotificationRuleFilterTags: - additionalProperties: false - description: Filters monitor notifications by a list of tag key:value pairs. + Maintenance: + description: Response object for a single maintenance. properties: - tags: - description: |- - A list of tag key:value pairs (e.g. `team:product`). All tags must match (AND semantics). - example: [team:product, host:abc] + data: + $ref: "#/components/schemas/MaintenanceData" + included: + description: The included related resources of a maintenance. Client must explicitly request these resources by name in the `include` query parameter. items: - description: A tag key:value pair to match against monitor notifications. - maxLength: 255 - type: string - maxItems: 20 - minItems: 1 + $ref: "#/components/schemas/DegradationIncluded" type: array - uniqueItems: true - required: [tags] type: object - MonitorNotificationRuleId: - description: The ID of the monitor notification rule. - example: 00000000-0000-1234-0000-000000000000 - type: string - MonitorNotificationRuleListResponse: - description: Response for retrieving all monitor notification rules. + MaintenanceArray: + description: Response object for a list of maintenances. properties: data: - description: A list of monitor notification rules. + description: A list of maintenance data objects. items: - $ref: "#/components/schemas/MonitorNotificationRuleData" + $ref: "#/components/schemas/MaintenanceData" type: array included: - description: Array of objects related to the monitor notification rules. + description: The included related resources of a maintenance. Client must explicitly request these resources by name in the `include` query parameter. items: - $ref: "#/components/schemas/MonitorNotificationRuleResponseIncludedItem" + $ref: "#/components/schemas/DegradationIncluded" type: array + meta: + $ref: "#/components/schemas/PaginationMeta" + required: + - data type: object - MonitorNotificationRuleName: - description: The name of the monitor notification rule. - example: A notification rule name - maxLength: 1000 - minLength: 1 - type: string - MonitorNotificationRuleRecipients: - description: |- - A list of recipients to notify. Uses the same format as the monitor `message` field. Must not start with an '@'. Cannot be used with `conditional_recipients`. - example: [slack-test-channel, jira-test] - items: - description: individual recipient. - maxLength: 255 - type: string - maxItems: 20 - minItems: 1 - type: array - uniqueItems: true - MonitorNotificationRuleRelationships: - description: All relationships associated with monitor notification rule. - properties: - created_by: - $ref: "#/components/schemas/MonitorNotificationRuleRelationshipsCreatedBy" - type: object - MonitorNotificationRuleRelationshipsCreatedBy: - description: The user who created the monitor notification rule. - properties: - data: - $ref: "#/components/schemas/MonitorNotificationRuleRelationshipsCreatedByData" - type: object - MonitorNotificationRuleRelationshipsCreatedByData: - description: Data for the user who created the monitor notification rule. - nullable: true + MaintenanceData: + description: The data object for a maintenance. properties: + attributes: + $ref: "#/components/schemas/MaintenanceDataAttributes" id: - description: User ID of the monitor notification rule creator. - example: "00000000-0000-1234-0000-000000000000" + description: The ID of the maintenance. + format: uuid type: string + relationships: + $ref: "#/components/schemas/MaintenanceDataRelationships" type: - $ref: "#/components/schemas/UsersType" + $ref: "#/components/schemas/PatchMaintenanceRequestDataType" + required: + - type type: object - MonitorNotificationRuleResourceType: - default: monitor-notification-rule - description: Monitor notification rule resource type. - enum: [monitor-notification-rule] - example: monitor-notification-rule - type: string - x-enum-varnames: [MONITOR_NOTIFICATION_RULE] - MonitorNotificationRuleResponse: - description: A monitor notification rule. + MaintenanceDataAttributes: + description: The attributes of a maintenance. properties: - data: - $ref: "#/components/schemas/MonitorNotificationRuleData" - included: - description: Array of objects related to the monitor notification rule that the user requested. + canceled_description: + description: The description shown when the maintenance is canceled. + type: string + completed_date: + description: Timestamp of when the maintenance was completed. + format: date-time + type: string + completed_description: + description: The description shown when the maintenance is completed. + type: string + components_affected: + description: Components affected by the maintenance. items: - $ref: "#/components/schemas/MonitorNotificationRuleResponseIncludedItem" + $ref: "#/components/schemas/MaintenanceDataAttributesComponentsAffectedItems" type: array - type: object - MonitorNotificationRuleResponseAttributes: - additionalProperties: {} - description: Attributes of the monitor notification rule. - properties: - bundle_config: - $ref: "#/components/schemas/MonitorNotificationRuleBundleConfig" - conditional_recipients: - $ref: "#/components/schemas/MonitorNotificationRuleConditionalRecipients" - created: - description: Creation time of the monitor notification rule. - example: 2020-01-02 03:04:00+00:00 + in_progress_description: + description: The description shown while the maintenance is in progress. + type: string + is_backfilled: + description: Whether the maintenance was backfilled. + type: boolean + modified_at: + description: Timestamp of when the maintenance was last modified. format: date-time type: string - filter: - $ref: "#/components/schemas/MonitorNotificationRuleFilter" - modified: - description: Time the monitor notification rule was last modified. - example: 2020-01-02 03:04:00+00:00 + published_date: + description: Timestamp of when the maintenance was published. format: date-time type: string - name: - $ref: "#/components/schemas/MonitorNotificationRuleName" - recipients: - $ref: "#/components/schemas/MonitorNotificationRuleRecipients" - type: object - MonitorNotificationRuleResponseIncludedItem: - description: An object related to a monitor notification rule. - oneOf: - - $ref: "#/components/schemas/User" - MonitorNotificationRuleUpdateRequest: - description: Request for updating a monitor notification rule. - properties: - data: - $ref: "#/components/schemas/MonitorNotificationRuleUpdateRequestData" - required: [data] + scheduled_description: + description: The description shown when the maintenance is scheduled. + type: string + start_date: + description: Timestamp of when the maintenance is scheduled to start. + format: date-time + type: string + status: + $ref: "#/components/schemas/MaintenanceDataAttributesStatus" + description: The status of the maintenance. + title: + description: Title of the maintenance. + type: string + updates: + description: Past updates made to the maintenance. + items: + $ref: "#/components/schemas/MaintenanceDataAttributesUpdatesItems" + type: array type: object - MonitorNotificationRuleUpdateRequestData: - description: Object to update a monitor notification rule. + MaintenanceDataAttributesComponentsAffectedItems: + description: A component affected by a maintenance. properties: - attributes: - $ref: "#/components/schemas/MonitorNotificationRuleAttributes" id: - $ref: "#/components/schemas/MonitorNotificationRuleId" - type: - $ref: "#/components/schemas/MonitorNotificationRuleResourceType" - required: [id, attributes] - type: object - MonitorTrigger: - description: "Trigger a workflow from a Monitor. For automatic triggering a handle must be configured and the workflow must be published." - properties: - rateLimit: - $ref: "#/components/schemas/TriggerRateLimit" - type: object - MonitorTriggerWrapper: - description: "Schema for a Monitor-based trigger." - properties: - monitorTrigger: - $ref: "#/components/schemas/MonitorTrigger" - startStepNames: - $ref: "#/components/schemas/StartStepNames" + description: The ID of the component. Must be a component of type `component`. + example: "1234abcd-12ab-34cd-56ef-123456abcdef" + format: uuid + type: string + name: + description: The name of the component. + readOnly: true + type: string + status: + $ref: "#/components/schemas/PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus" required: - - monitorTrigger + - id + - status type: object - MonitorType: - description: |- - Attributes from the monitor that triggered the event. - nullable: true + MaintenanceDataAttributesStatus: + description: The status of the maintenance. + enum: + - scheduled + - in_progress + - completed + type: string + x-enum-varnames: + - SCHEDULED + - IN_PROGRESS + - COMPLETED + MaintenanceDataAttributesUpdatesItems: + description: An update made to a maintenance. properties: - created_at: - description: The POSIX timestamp of the monitor's creation in nanoseconds. - example: 1646318692000 - format: int64 - type: integer - group_status: - description: Monitor group status used when there is no `result_groups`. - format: int32 - maximum: 2147483647 - type: integer - groups: - description: Groups to which the monitor belongs. + components_affected: + description: The components affected at the time of the update. items: - description: A group. - type: string + $ref: "#/components/schemas/MaintenanceDataAttributesUpdatesItemsComponentsAffectedItems" type: array + created_at: + description: Timestamp of when the update was created. + format: date-time + readOnly: true + type: string + description: + description: Description of the update. + type: string id: - description: The monitor ID. - format: int64 - type: integer - message: - description: The monitor message. + description: Identifier of the update. + format: uuid + readOnly: true type: string - modified: - description: The monitor's last-modified timestamp. - format: int64 - type: integer - name: - description: The monitor name. + manual_transition: + description: Whether the update was applied manually by a user (true) or automatically by the system (false). + readOnly: true + type: boolean + modified_at: + description: Timestamp of when the update was last modified. + format: date-time + readOnly: true type: string - query: - description: The query that triggers the alert. + started_at: + description: Timestamp of when the update started. + format: date-time type: string - tags: - description: A list of tags attached to the monitor. - example: ["environment:test"] - items: - description: A tag. - type: string - type: array - templated_name: - description: The templated name of the monitor before resolving any template variables. + status: + description: The status of the update. type: string - type: - description: The monitor type. + type: object + MaintenanceDataAttributesUpdatesItemsComponentsAffectedItems: + description: A component affected at the time of a maintenance update. + properties: + id: + description: Identifier of the component affected at the time of the update. + example: "1234abcd-12ab-34cd-56ef-123456abcdef" + format: uuid + type: string + name: + description: The name of the component affected at the time of the update. + readOnly: true type: string + status: + $ref: "#/components/schemas/PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus" + description: The status of the component affected at the time of the update. + required: + - id + - status type: object - MonitorUserTemplate: - additionalProperties: {} - description: A monitor user template object. + MaintenanceDataRelationships: + description: The relationships of a maintenance. properties: - created: - $ref: "#/components/schemas/MonitorUserTemplateCreated" - description: - $ref: "#/components/schemas/MonitorUserTemplateDescription" - modified: - $ref: "#/components/schemas/MonitorUserTemplateModified" - monitor_definition: - additionalProperties: {} - description: A valid monitor definition in the same format as the [V1 Monitor API](https://docs.datadoghq.com/api/latest/monitors/#create-a-monitor). - example: {"message": "You may need to add web hosts if this is consistently high.", "name": "Bytes received on host0", "query": "avg(last_5m):sum:system.net.bytes_rcvd{host:host0} > 100", "type": "query alert"} - type: object - tags: - $ref: "#/components/schemas/MonitorUserTemplateTags" - template_variables: - $ref: "#/components/schemas/MonitorUserTemplateTemplateVariables" - title: - $ref: "#/components/schemas/MonitorUserTemplateTitle" - version: - $ref: "#/components/schemas/MonitorUserTemplateVersion" - versions: - description: All versions of the monitor user template. - items: - $ref: "#/components/schemas/SimpleMonitorUserTemplate" - type: array + created_by_user: + $ref: "#/components/schemas/MaintenanceDataRelationshipsCreatedByUser" + description: The Datadog user who created the maintenance. + last_modified_by_user: + $ref: "#/components/schemas/MaintenanceDataRelationshipsLastModifiedByUser" + description: The Datadog user who last modified the maintenance. + status_page: + $ref: "#/components/schemas/MaintenanceDataRelationshipsStatusPage" + description: The status page the maintenance belongs to. + template: + $ref: "#/components/schemas/MaintenanceDataRelationshipsTemplate" + description: The template the maintenance was created from. type: object - MonitorUserTemplateCreateData: - description: Monitor user template data. + MaintenanceDataRelationshipsCreatedByUser: + description: The Datadog user who created the maintenance. properties: - attributes: - $ref: "#/components/schemas/MonitorUserTemplateRequestAttributes" + data: + $ref: "#/components/schemas/MaintenanceDataRelationshipsCreatedByUserData" + required: + - data + type: object + MaintenanceDataRelationshipsCreatedByUserData: + description: The data object identifying the Datadog user who created the maintenance. + properties: + id: + description: The ID of the Datadog user who created the maintenance. + example: "" + format: uuid + type: string type: - $ref: "#/components/schemas/MonitorUserTemplateResourceType" + $ref: "#/components/schemas/StatusPagesUserType" required: - type - - attributes + - id type: object - MonitorUserTemplateCreateRequest: - description: Request for creating a monitor user template. + MaintenanceDataRelationshipsLastModifiedByUser: + description: The Datadog user who last modified the maintenance. properties: data: - $ref: "#/components/schemas/MonitorUserTemplateCreateData" + $ref: "#/components/schemas/MaintenanceDataRelationshipsLastModifiedByUserData" required: - data type: object - MonitorUserTemplateCreateResponse: - description: Response for creating a monitor user template. + MaintenanceDataRelationshipsLastModifiedByUserData: + description: The data object identifying the Datadog user who last modified the maintenance. properties: - data: - $ref: "#/components/schemas/MonitorUserTemplateResponseData" + id: + description: The ID of the Datadog user who last modified the maintenance. + example: "" + format: uuid + type: string + type: + $ref: "#/components/schemas/StatusPagesUserType" + required: + - type + - id type: object - MonitorUserTemplateCreated: - description: The created timestamp of the template. - example: "2024-01-02T03:04:23.274966+00:00" - format: date-time - readOnly: true - type: string - MonitorUserTemplateDescription: - description: A brief description of the monitor user template. - example: "This is a template for monitoring user activity." - nullable: true - type: string - MonitorUserTemplateId: - description: The unique identifier. - example: "00000000-0000-1234-0000-000000000000" - type: string - MonitorUserTemplateListResponse: - description: Response for retrieving all monitor user templates. + MaintenanceDataRelationshipsStatusPage: + description: The status page the maintenance belongs to. properties: data: - description: An array of monitor user templates. - items: - $ref: "#/components/schemas/MonitorUserTemplateResponseData" - type: array + $ref: "#/components/schemas/MaintenanceDataRelationshipsStatusPageData" + required: + - data type: object - MonitorUserTemplateModified: - description: The last modified timestamp. When the template version was created. - example: "2024-02-02T03:04:23.274966+00:00" - format: date-time - readOnly: true - type: string - MonitorUserTemplateRequestAttributes: - additionalProperties: false - description: Attributes for a monitor user template. + MaintenanceDataRelationshipsStatusPageData: + description: The data object identifying the status page associated with a maintenance. properties: - description: - $ref: "#/components/schemas/MonitorUserTemplateDescription" - monitor_definition: - additionalProperties: {} - description: A valid monitor definition in the same format as the [V1 Monitor API](https://docs.datadoghq.com/api/latest/monitors/#create-a-monitor). - example: {"message": "You may need to add web hosts if this is consistently high.", "name": "Bytes received on host0", "query": "avg(last_5m):sum:system.net.bytes_rcvd{host:host0} > 100", "type": "query alert"} - type: object - tags: - $ref: "#/components/schemas/MonitorUserTemplateTags" - template_variables: - $ref: "#/components/schemas/MonitorUserTemplateTemplateVariables" - title: - $ref: "#/components/schemas/MonitorUserTemplateTitle" + id: + description: The ID of the status page. + example: "" + format: uuid + type: string + type: + $ref: "#/components/schemas/StatusPageDataType" required: - - title - - monitor_definition - - tags + - type + - id type: object - MonitorUserTemplateResourceType: - default: monitor-user-template - description: Monitor user template resource type. - enum: - - monitor-user-template - example: "monitor-user-template" - type: string - x-enum-varnames: - - MONITOR_USER_TEMPLATE - MonitorUserTemplateResponse: - description: Response for retrieving a monitor user template. + MaintenanceDataRelationshipsTemplate: + description: The template the maintenance was created from. properties: data: - $ref: "#/components/schemas/MonitorUserTemplateResponseDataWithVersions" - type: object - MonitorUserTemplateResponseAttributes: - additionalProperties: {} - description: Attributes for a monitor user template. - properties: - created: - $ref: "#/components/schemas/MonitorUserTemplateCreated" - description: - $ref: "#/components/schemas/MonitorUserTemplateDescription" - modified: - $ref: "#/components/schemas/MonitorUserTemplateModified" - monitor_definition: - additionalProperties: {} - description: A valid monitor definition in the same format as the [V1 Monitor API](https://docs.datadoghq.com/api/latest/monitors/#create-a-monitor). - example: {"message": "You may need to add web hosts if this is consistently high.", "name": "Bytes received on host0", "query": "avg(last_5m):sum:system.net.bytes_rcvd{host:host0} > 100", "type": "query alert"} - type: object - tags: - $ref: "#/components/schemas/MonitorUserTemplateTags" - template_variables: - $ref: "#/components/schemas/MonitorUserTemplateTemplateVariables" - title: - $ref: "#/components/schemas/MonitorUserTemplateTitle" - version: - $ref: "#/components/schemas/MonitorUserTemplateVersion" + $ref: "#/components/schemas/MaintenanceDataRelationshipsTemplateData" + required: + - data type: object - MonitorUserTemplateResponseData: - description: Monitor user template list response data. + MaintenanceDataRelationshipsTemplateData: + description: The data object identifying the template the maintenance was created from. properties: - attributes: - $ref: "#/components/schemas/MonitorUserTemplateResponseAttributes" id: - $ref: "#/components/schemas/MonitorUserTemplateId" + description: The ID of the maintenance template. + example: "" + type: string type: - $ref: "#/components/schemas/MonitorUserTemplateResourceType" + $ref: "#/components/schemas/PatchMaintenanceTemplateRequestDataType" + required: + - type + - id type: object - MonitorUserTemplateResponseDataWithVersions: - description: Monitor user template data. + MaintenanceTemplate: + description: Response object for a single maintenance template. properties: - attributes: - $ref: "#/components/schemas/MonitorUserTemplate" - id: - $ref: "#/components/schemas/MonitorUserTemplateId" - type: - $ref: "#/components/schemas/MonitorUserTemplateResourceType" + data: + $ref: "#/components/schemas/MaintenanceTemplateData" + included: + description: The included related resources of a maintenance template. Client must explicitly request these resources by name in the `include` query parameter. + items: + $ref: "#/components/schemas/DegradationIncluded" + type: array type: object - MonitorUserTemplateTags: - description: The definition of `MonitorUserTemplateTags` object. - example: ["product:Our Custom App", "integration:Azure"] - items: - description: |- - Tags associated with the monitor user template. Must be key value. Only 'product' and 'integration' keys are - allowed. The value is the name of the category to display the template under. Integrations can be filtered out in the UI. - (Review note: This modeling of 'categories' is subject to change.) - example: "us-east1" - minLength: 1 - type: string - uniqueItems: true - type: array - MonitorUserTemplateTemplateVariables: - description: The definition of `MonitorUserTemplateTemplateVariables` object. - items: - $ref: "#/components/schemas/MonitorUserTemplateTemplateVariablesItems" - type: array - MonitorUserTemplateTemplateVariablesItems: - additionalProperties: false - description: List of objects representing template variables on the monitor which can have selectable values. + MaintenanceTemplateArray: + description: Response object for a list of maintenance templates. properties: - available_values: - description: Available values for the variable. - example: ["value1", "value2"] + data: + description: A list of maintenance template data objects. items: - description: An available value for the template variable. - minLength: 1 - type: string - uniqueItems: true + $ref: "#/components/schemas/MaintenanceTemplateData" type: array - defaults: - description: Default values of the template variable. - example: ["defaultValue"] + included: + description: The included related resources of a maintenance template. Client must explicitly request these resources by name in the `include` query parameter. items: - description: A default value for the template variable. - minLength: 0 - type: string - uniqueItems: true + $ref: "#/components/schemas/DegradationIncluded" type: array - name: - description: The name of the template variable. - example: "regionName" - type: string - tag_key: - description: |- - The tag key associated with the variable. This works the same as dashboard template variables. - example: "datacenter" - type: string required: - - name + - data type: object - MonitorUserTemplateTitle: - description: The title of the monitor user template. - example: "Postgres CPU Monitor" - type: string - MonitorUserTemplateUpdateData: - description: Monitor user template data. + MaintenanceTemplateData: + description: The data object for a maintenance template. properties: attributes: - $ref: "#/components/schemas/MonitorUserTemplateRequestAttributes" + $ref: "#/components/schemas/MaintenanceTemplateDataAttributes" id: - $ref: "#/components/schemas/MonitorUserTemplateId" + description: The ID of the maintenance template. + type: string + relationships: + $ref: "#/components/schemas/MaintenanceTemplateDataRelationships" type: - $ref: "#/components/schemas/MonitorUserTemplateResourceType" + $ref: "#/components/schemas/PatchMaintenanceTemplateRequestDataType" required: - - id - type - - attributes - type: object - MonitorUserTemplateUpdateRequest: - description: Request for creating a new monitor user template version. - properties: - data: - $ref: "#/components/schemas/MonitorUserTemplateUpdateData" - required: - - data type: object - MonitorUserTemplateVersion: - description: The version of the monitor user template. - example: 0 - format: int64 - nullable: true - readOnly: true - type: integer - MonthlyCostAttributionAttributes: - description: Cost Attribution by Tag for a given organization. + MaintenanceTemplateDataAttributes: + description: The attributes of a maintenance template. properties: - month: - description: "Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]`." + completed_description: + description: The description shown when a maintenance created from this template is completed. + type: string + component_ids: + description: The IDs of the components affected by a maintenance created from this template. + items: + type: string + type: array + created_at: + description: Timestamp of when the maintenance template was created. format: date-time type: string - org_name: - description: The name of the organization. + in_progress_description: + description: The description shown while a maintenance created from this template is in progress. type: string - public_id: - description: The organization public ID. + maintenance_title: + description: The title used for a maintenance created from this template. type: string - tag_config_source: - description: The source of the cost attribution tag configuration and the selected tags in the format `::://////`. + modified_at: + description: Timestamp of when the maintenance template was last modified. + format: date-time type: string - tags: - $ref: "#/components/schemas/CostAttributionTagNames" - updated_at: - description: Shows the most recent hour in the current months for all organizations for which all costs were calculated. + name: + description: The name of the maintenance template. + type: string + scheduled_description: + description: The description shown when a maintenance created from this template is scheduled. type: string - values: - description: |- - Fields in Cost Attribution by tag(s). Example: `infra_host_on_demand_cost`, `infra_host_committed_cost`, `infra_host_total_cost`, `infra_host_percentage_in_org`, `infra_host_percentage_in_account`. - type: object type: object - MonthlyCostAttributionBody: - description: Cost data. + MaintenanceTemplateDataRelationships: + description: The relationships of a maintenance template. properties: - attributes: - $ref: "#/components/schemas/MonthlyCostAttributionAttributes" - id: - description: Unique ID of the response. - type: string - type: - $ref: "#/components/schemas/CostAttributionType" + created_by_user: + $ref: "#/components/schemas/MaintenanceTemplateDataRelationshipsCreatedByUser" + description: The Datadog user who created the maintenance template. + last_modified_by_user: + $ref: "#/components/schemas/MaintenanceTemplateDataRelationshipsLastModifiedByUser" + description: The Datadog user who last modified the maintenance template. + status_page: + $ref: "#/components/schemas/MaintenanceTemplateDataRelationshipsStatusPage" + description: The status page the maintenance template belongs to. type: object - MonthlyCostAttributionMeta: - description: The object containing document metadata. + MaintenanceTemplateDataRelationshipsCreatedByUser: + description: The Datadog user who created the maintenance template. properties: - aggregates: - $ref: "#/components/schemas/CostAttributionAggregates" - pagination: - $ref: "#/components/schemas/MonthlyCostAttributionPagination" + data: + $ref: "#/components/schemas/MaintenanceTemplateDataRelationshipsCreatedByUserData" + required: + - data type: object - MonthlyCostAttributionPagination: - description: The metadata for the current pagination. + MaintenanceTemplateDataRelationshipsCreatedByUserData: + description: The data object identifying the Datadog user who created the maintenance template. properties: - next_record_id: - description: The cursor to use to get the next results, if any. To make the next request, use the same parameters with the addition of the `next_record_id`. - nullable: true + id: + description: The ID of the Datadog user who created the maintenance template. + example: "" type: string + type: + $ref: "#/components/schemas/StatusPagesUserType" + required: + - type + - id type: object - MonthlyCostAttributionResponse: - description: Response containing the monthly cost attribution by tag(s). + MaintenanceTemplateDataRelationshipsLastModifiedByUser: + description: The Datadog user who last modified the maintenance template. properties: data: - description: Response containing cost attribution. - items: - $ref: "#/components/schemas/MonthlyCostAttributionBody" - type: array - meta: - $ref: "#/components/schemas/MonthlyCostAttributionMeta" + $ref: "#/components/schemas/MaintenanceTemplateDataRelationshipsLastModifiedByUserData" + required: + - data type: object - MuteDataType: - default: mute - description: Mute resource type. - enum: - - mute - example: mute - type: string - x-enum-varnames: - - MUTE - MuteFindingsMuteAttributes: - description: Mute properties to apply to the findings. + MaintenanceTemplateDataRelationshipsLastModifiedByUserData: + description: The data object identifying the Datadog user who last modified the maintenance template. properties: - description: - description: Additional information about the reason why the findings are muted or unmuted. This field has a limit of 280 characters. - example: "To be resolved later." + id: + description: The ID of the Datadog user who last modified the maintenance template. + example: "" type: string - expire_at: - description: >- - The expiration date of the mute action (Unix ms). It must be set to a value greater than the current timestamp. If this field is not provided, the findings remain muted indefinitely. - example: 1778721573794 - format: int64 - type: integer - is_muted: - description: Whether the findings should be muted or unmuted. - example: true - type: boolean - reason: - $ref: "#/components/schemas/MuteFindingsReason" - description: The reason why the findings are muted or unmuted. + type: + $ref: "#/components/schemas/StatusPagesUserType" required: - - is_muted - - reason + - type + - id type: object - MuteFindingsReason: - description: The reason why the findings are muted or unmuted. - enum: - - PENDING_FIX - - FALSE_POSITIVE - - OTHER - - NO_FIX - - DUPLICATE - - RISK_ACCEPTED - - NO_PENDING_FIX - - HUMAN_ERROR - - NO_LONGER_ACCEPTED_RISK - example: PENDING_FIX - type: string - x-enum-varnames: - - PENDING_FIX - - FALSE_POSITIVE - - OTHER - - NO_FIX - - DUPLICATE - - RISK_ACCEPTED - - NO_PENDING_FIX - - HUMAN_ERROR - - NO_LONGER_ACCEPTED_RISK - MuteFindingsRequest: - description: Request to mute or unmute security findings. + MaintenanceTemplateDataRelationshipsStatusPage: + description: The status page the maintenance template belongs to. properties: data: - $ref: "#/components/schemas/MuteFindingsRequestData" + $ref: "#/components/schemas/MaintenanceTemplateDataRelationshipsStatusPageData" required: - data type: object - MuteFindingsRequestData: - description: Data of the mute request. + MaintenanceTemplateDataRelationshipsStatusPageData: + description: The data object identifying the status page associated with a maintenance template. properties: - attributes: - $ref: "#/components/schemas/MuteFindingsRequestDataAttributes" id: - description: Unique identifier of the mute request. - example: "00000000-0000-0000-0000-000000000001" + description: The ID of the status page. + example: "" type: string - relationships: - $ref: "#/components/schemas/MuteFindingsRequestDataRelationships" type: - $ref: "#/components/schemas/MuteDataType" + $ref: "#/components/schemas/StatusPageDataType" required: - - attributes - - relationships - type + - id type: object - MuteFindingsRequestDataAttributes: - description: Attributes of the mute request. - properties: - mute: - $ref: "#/components/schemas/MuteFindingsMuteAttributes" - required: - - mute - type: object - MuteFindingsRequestDataRelationships: - description: Relationships of the mute request. - properties: - findings: - $ref: "#/components/schemas/Findings" - description: Security findings to mute or unmute. - required: - - findings - type: object - MuteFindingsResponse: - description: Response for the mute or unmute request. + MaintenanceUpdate: + description: Response object for a maintenance update. properties: data: - $ref: "#/components/schemas/MuteFindingsResponseData" + $ref: "#/components/schemas/MaintenanceUpdateData" type: object - MuteFindingsResponseData: - description: Data of the mute response. + MaintenanceUpdateData: + description: The data object for a maintenance update. properties: + attributes: + $ref: "#/components/schemas/MaintenanceUpdateDataAttributes" id: - description: Unique identifier of the mute request. - example: "00000000-0000-0000-0000-000000000001" + description: The ID of the maintenance update. + example: "1234abcd-12ab-34cd-56ef-123456abcdef" + format: uuid type: string + relationships: + $ref: "#/components/schemas/MaintenanceUpdateDataRelationships" type: - $ref: "#/components/schemas/MuteDataType" + $ref: "#/components/schemas/PatchMaintenanceUpdateRequestDataType" required: - - type - id + - type type: object - MuteReason: - description: The reason for muting a security finding. - enum: - - duplicate - - false_positive - - no_fix - - other - - pending_fix - - risk_accepted - example: risk_accepted - type: string - x-enum-varnames: - - DUPLICATE - - FALSE_POSITIVE - - NO_FIX - - OTHER - - PENDING_FIX - - RISK_ACCEPTED - MuteRuleAction: - description: The action to take when the mute rule matches a finding. + MaintenanceUpdateDataAttributes: + description: Attributes of a maintenance update resource. properties: - expire_at: - description: The Unix timestamp in milliseconds at which the mute expires. If omitted, the mute does not expire. - example: 4070908800000 - format: int64 - type: integer - reason: - $ref: "#/components/schemas/MuteReason" - reason_description: - description: An optional description providing more context for the mute reason. - example: "Accepted for dev environments only" - maxLength: 20000 + components_affected: + description: Components affected at the time of the update. + items: + $ref: "#/components/schemas/CreateMaintenanceRequestDataAttributesComponentsAffectedItems" + type: array + created_at: + description: The date and time the update was created. + format: date-time type: string - required: - - reason - type: object - MuteRuleAttributesCreate: - description: Attributes for creating or updating a mute rule. - properties: - action: - $ref: "#/components/schemas/MuteRuleAction" - enabled: - description: Whether the mute rule is enabled. - example: true - type: boolean - name: - description: The name of the mute rule. - example: "Mute accepted risks in dev" - maxLength: 255 - minLength: 1 + description: + description: The message body of the update. type: string - rule: - $ref: "#/components/schemas/AutomationRuleScope" - required: - - name - - rule - - action - type: object - MuteRuleAttributesResponse: - description: Attributes of a mute rule returned by the API. - properties: - action: - $ref: "#/components/schemas/MuteRuleAction" - created_at: - description: The Unix timestamp in milliseconds when the rule was created. - example: 1722439510282 - format: int64 - type: integer - created_by: - $ref: "#/components/schemas/AutomationRuleCreatedBy" - enabled: - description: Whether the mute rule is enabled. - example: true + manual_transition: + description: Whether the update was applied manually by a user (true) or automatically by the system (false). type: boolean modified_at: - description: The Unix timestamp in milliseconds when the rule was last modified. - example: 1722439510282 - format: int64 - type: integer - modified_by: - $ref: "#/components/schemas/AutomationRuleModifiedBy" - name: - description: The name of the mute rule. - example: "Mute accepted risks in dev" - maxLength: 255 - minLength: 1 + description: The date and time the update was last modified. + format: date-time type: string - rule: - $ref: "#/components/schemas/AutomationRuleScope" - required: - - name - - enabled - - rule - - action - - created_at - - created_by - - modified_at - - modified_by + started_at: + description: The date and time the update started. + format: date-time + type: string + status: + $ref: "#/components/schemas/MaintenanceUpdateDataAttributesStatus" type: object - MuteRuleCreateRequest: - description: The body of a mute rule create request. + MaintenanceUpdateDataAttributesStatus: + description: The status of the maintenance update. + enum: + - scheduled + - in_progress + - completed + - canceled + type: string + x-enum-varnames: + - SCHEDULED + - IN_PROGRESS + - COMPLETED + - CANCELED + MaintenanceUpdateDataRelationships: + description: Relationships of a maintenance update resource. + properties: + created_by_user: + $ref: "#/components/schemas/MaintenanceUpdateDataRelationshipsUser" + last_modified_by_user: + $ref: "#/components/schemas/MaintenanceUpdateDataRelationshipsUser" + maintenance: + $ref: "#/components/schemas/MaintenanceUpdateDataRelationshipsMaintenance" + type: object + MaintenanceUpdateDataRelationshipsMaintenance: + description: The parent maintenance of the update. properties: data: - $ref: "#/components/schemas/MuteRuleDataCreate" + $ref: "#/components/schemas/MaintenanceUpdateDataRelationshipsMaintenanceData" required: - data type: object - MuteRuleDataCreate: - description: The data object for a mute rule create request. + MaintenanceUpdateDataRelationshipsMaintenanceData: + description: The maintenance linked to a maintenance update. properties: - attributes: - $ref: "#/components/schemas/MuteRuleAttributesCreate" + id: + description: The ID of the maintenance. + example: "" + format: uuid + type: string type: - $ref: "#/components/schemas/MuteRuleType" + $ref: "#/components/schemas/PatchMaintenanceRequestDataType" required: - type - - attributes + - id type: object - MuteRuleDataResponse: - description: The data object for a mute rule returned by the API. + MaintenanceUpdateDataRelationshipsUser: + description: A user relationship of a maintenance update. + properties: + data: + $ref: "#/components/schemas/MaintenanceUpdateDataRelationshipsUserData" + required: + - data + type: object + MaintenanceUpdateDataRelationshipsUserData: + description: The data object identifying a Datadog user linked to a maintenance update. properties: - attributes: - $ref: "#/components/schemas/MuteRuleAttributesResponse" id: - description: The ID of the mute rule. - example: "00000000-0000-0000-0000-000000000000" + description: The ID of the Datadog user. + example: "" format: uuid type: string type: - $ref: "#/components/schemas/MuteRuleType" + $ref: "#/components/schemas/StatusPagesUserType" required: - - id - type - - attributes + - id type: object - MuteRuleDataUpdate: - description: The data object for a mute rule update request. The `id` must match the `rule_id` path parameter. + MaintenanceWindow: + description: A maintenance window that defines a scheduled time period during which case-related notifications and automation rules are suppressed. Each maintenance window applies to cases matching a specified query. properties: attributes: - $ref: "#/components/schemas/MuteRuleAttributesCreate" + $ref: "#/components/schemas/MaintenanceWindowAttributes" id: - description: The ID of the mute rule to update. - example: "00000000-0000-0000-0000-000000000000" - format: uuid + description: The maintenance window's identifier. + example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890" type: string type: - $ref: "#/components/schemas/MuteRuleType" + $ref: "#/components/schemas/MaintenanceWindowResourceType" required: - id - type - attributes type: object - MuteRuleReorderData: - description: The ordered list of all mute rules. Every rule must be included. - items: - $ref: "#/components/schemas/MuteRuleReorderItem" - type: array - MuteRuleReorderItem: - description: A reference to a mute rule used for reordering. + MaintenanceWindowAttributes: + description: Attributes of a maintenance window, including its schedule and the query that determines which cases are affected. properties: - id: - description: The ID of the mute rule. - example: "00000000-0000-0000-0000-000000000000" - format: uuid + created_by: + description: The UUID of the user who created this maintenance window. Read-only. + readOnly: true + type: string + end_at: + description: The ISO 8601 timestamp when the maintenance window ends and normal notification behavior resumes. + example: "2026-06-01T06:00:00Z" + format: date-time + type: string + name: + description: "A human-readable name for the maintenance window (for example, `Database migration - Dec 15`)." + example: "Weekly maintenance" + type: string + query: + description: A case search query that determines which cases are affected during the maintenance window. Uses the same syntax as the Case Management search bar. + example: "project:SEC" + type: string + start_at: + description: The ISO 8601 timestamp when the maintenance window begins and notifications start being suppressed. + example: "2026-06-01T00:00:00Z" + format: date-time + type: string + updated_by: + description: The UUID of the user who last modified this maintenance window. Read-only. + readOnly: true type: string - type: - $ref: "#/components/schemas/MuteRuleType" required: - - type - - id + - name + - query + - start_at + - end_at type: object - MuteRuleReorderRequest: - description: The body of a mute rule reorder request. + MaintenanceWindowCreate: + description: Data object for creating a maintenance window. properties: - data: - $ref: "#/components/schemas/MuteRuleReorderData" + attributes: + $ref: "#/components/schemas/MaintenanceWindowCreateAttributes" + type: + $ref: "#/components/schemas/MaintenanceWindowResourceType" required: - - data + - type + - attributes type: object - MuteRuleReorderResponse: - description: The response of a mute rule reorder request. + MaintenanceWindowCreateAttributes: + description: Attributes required to create a maintenance window. properties: - data: - $ref: "#/components/schemas/MuteRuleReorderData" + end_at: + description: The end time of the maintenance window. + example: "2026-06-01T06:00:00Z" + format: date-time + type: string + name: + description: The name of the maintenance window. + example: "Weekly maintenance" + type: string + query: + description: The query to filter event management cases for this maintenance window. + example: "project:SEC" + type: string + start_at: + description: The start time of the maintenance window. + example: "2026-06-01T00:00:00Z" + format: date-time + type: string required: - - data + - name + - query + - start_at + - end_at type: object - MuteRuleResponse: - description: A single mute rule response. + MaintenanceWindowCreateRequest: + description: Request payload for creating a maintenance window. properties: data: - $ref: "#/components/schemas/MuteRuleDataResponse" + $ref: "#/components/schemas/MaintenanceWindowCreate" required: - data type: object - MuteRuleType: - description: The JSON:API type for mute rules. + MaintenanceWindowResourceType: + default: maintenance_window + description: JSON:API resource type for maintenance windows. enum: - - mute_rules - example: mute_rules + - maintenance_window + example: maintenance_window type: string x-enum-varnames: - - MUTE_RULES - MuteRuleUpdateRequest: - description: The body of a mute rule update request. + - MAINTENANCE_WINDOW + MaintenanceWindowResponse: + description: Response containing a single maintenance window. properties: data: - $ref: "#/components/schemas/MuteRuleDataUpdate" + $ref: "#/components/schemas/MaintenanceWindow" required: - data type: object - MuteRulesDataList: - description: A list of mute rule data objects. - items: - $ref: "#/components/schemas/MuteRuleDataResponse" - type: array - MuteRulesResponse: - description: A list of mute rules with pagination metadata. + MaintenanceWindowUpdate: + description: Data object for updating a maintenance window. properties: - data: - $ref: "#/components/schemas/MuteRulesDataList" - links: - $ref: "#/components/schemas/SecurityAutomationRulesLinks" - meta: - $ref: "#/components/schemas/SecurityAutomationRulesMeta" + attributes: + $ref: "#/components/schemas/MaintenanceWindowUpdateAttributes" + type: + $ref: "#/components/schemas/MaintenanceWindowResourceType" required: - - data - - meta - - links + - type type: object - NDKSourcemapAttributes: - description: Attributes of an Android NDK symbol file. + MaintenanceWindowUpdateAttributes: + description: Attributes that can be updated on a maintenance window. All fields are optional; only provided fields are changed. properties: - arch: - description: The target CPU architecture. - example: arm64-v8a - type: string - build_id: - description: The build identifier (UUID format). - example: 550e8400-e29b-41d4-a716-446655440000 - type: string - created_at: - description: The timestamp when the symbol file was created. - example: "2024-01-01T00:00:00Z" + end_at: + description: The end time of the maintenance window. format: date-time type: string - file_name: - description: The NDK library file name. - example: libmyapp.so + name: + description: The name of the maintenance window. type: string - mapkind: - description: The type of source map. - example: ndk + query: + description: The query to filter event management cases for this maintenance window. type: string - size: - description: The size of the symbol file in bytes. - example: 32768 - format: int64 - type: integer + start_at: + description: The start time of the maintenance window. + format: date-time + type: string + type: object + MaintenanceWindowUpdateRequest: + description: Request payload for updating a maintenance window. + properties: + data: + $ref: "#/components/schemas/MaintenanceWindowUpdate" required: - - mapkind - - size - - created_at + - data type: object - NDKSourcemapData: - description: Android NDK symbol file data object. + MaintenanceWindowsResponse: + description: Response containing a list of maintenance windows. + properties: + data: + description: List of maintenance windows. + items: + $ref: "#/components/schemas/MaintenanceWindow" + type: array + required: + - data + type: object + ManagedOrgsData: + description: The managed organizations resource. properties: - attributes: - $ref: "#/components/schemas/NDKSourcemapAttributes" id: - description: The unique identifier of the source map. - example: "7" + description: The UUID of the current organization. + example: "4dee724d-00cc-11ea-a77b-570c9d03c6c5" + format: uuid type: string + relationships: + $ref: "#/components/schemas/ManagedOrgsRelationships" type: - $ref: "#/components/schemas/SourcemapDataType" + $ref: "#/components/schemas/ManagedOrgsType" required: - id - type - - attributes + - relationships type: object - NetworkHealthInsight: - description: A single network health insight describing a service-to-service connectivity issue. + ManagedOrgsRelationshipToOrg: + description: Relationship to the current organization. properties: - attributes: - $ref: "#/components/schemas/NetworkHealthInsightAttributes" - id: - description: Unique identifier for this network health insight. - example: example-insight-id - type: string - type: - $ref: "#/components/schemas/NetworkHealthInsightsType" + data: + $ref: "#/components/schemas/OrgRelationshipData" required: - - type - - id - - attributes + - data type: object - NetworkHealthInsightAttributes: - description: Detailed attributes of a network health insight. + ManagedOrgsRelationshipToOrgs: + description: Relationship to the managed organizations. properties: - account_id: - description: AWS account identifier where the certificate is located. Only set for `tls-cert` insights. - example: "123456789012" - type: string - certificate_id: - description: ARN or identifier of the certificate. Only set for `tls-cert` insights. - example: "arn:aws:acm:us-east-1:123456789012:certificate/abcd1234-a123-456b-a123-12345678901f" - type: string - certificate_lifetime_percent: - description: |- - Percentage of the certificate's validity period that has elapsed, ranging from 0 to 100. - Only set for `tls-cert` insights. - example: 96.7 - format: double - type: number - client_region: - description: AWS region where the client is located. Only set for `tls-cert` insights. - example: us-west-2 - type: string - client_service: - description: |- - Name of the service making the request (DNS query or TLS-secured connection). - Set to `N/A` when the client service cannot be determined. - example: network-logger - type: string - days_until_expiration: - description: |- - Number of days remaining until the certificate expires. Negative values indicate the - certificate has already expired. Only set for `tls-cert` insights. - example: 3 - format: int64 - type: integer - dns_query: - description: Domain name that was being resolved when the DNS failure occurred. Only set for `dns` insights. - example: kafka-broker.internal.domain.com - type: string - dns_server: - description: DNS server that received the failing query. Only set for `dns` insights. - example: cluster-dns - type: string - domain_name: - description: Domain name covered by the certificate. Only set for `tls-cert` insights. - example: api.example.com - type: string - failure_magnitude: - description: |- - Count of failed events observed during the query window. Only set for `dns`, `tcp`, - and `security-group` insights. - example: 150 - format: int64 - minimum: 0 - type: integer - failure_rate: - description: |- - Percentage of requests that failed during the query window, ranging from 0 to 100. - Only set for `dns`, `tcp`, and `security-group` insights. - example: 91 - format: double - maximum: 100 - minimum: 0 - type: number - failure_type: - $ref: "#/components/schemas/NetworkHealthInsightFailureType" - loadbalancer_id: - description: ARN of the load balancer using the certificate. Only set for `tls-cert` insights. - example: "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/my-lb/50dc6c495c0c9188" - type: string - server_region: - description: AWS region where the server or load balancer is located. Only set for `tls-cert` insights. - example: us-east-1 - type: string - server_service: - description: Name of the target service the client was trying to reach. - example: kafka - type: string - total_requests: - description: |- - Total number of requests observed during the query window. Provides context for - `failure_magnitude` and `failure_rate`. Only set for `dns`, `tcp`, and `security-group` insights. - example: 1200 - format: int64 - minimum: 0 - type: integer - traffic_volume: - $ref: "#/components/schemas/NetworkHealthInsightTrafficVolume" - type: - $ref: "#/components/schemas/NetworkHealthInsightCategory" + data: + description: List of managed organization references. + items: + $ref: "#/components/schemas/OrgRelationshipData" + type: array + required: + - data type: object - NetworkHealthInsightCategory: - description: |- - Category of network health insight. Indicates whether the insight relates to a DNS issue (`dns`), - a TCP issue (`tcp`), a TLS certificate issue (`tls-cert`), or a security group denial (`security-group`). - enum: - - dns - - tcp - - tls-cert - - security-group - example: dns - type: string - x-enum-varnames: - - DNS - - TCP - - TLS_CERT - - SECURITY_GROUP - NetworkHealthInsightFailureType: - description: |- - Specific failure type within the insight category. For DNS insights: `timeout`, `nxdomain`, - `servfail`, or `general_failure`. For TLS certificate insights: `expired` or `expiring_soon`. - For security group insights: `denied`. - enum: - - timeout - - nxdomain - - servfail - - general_failure - - expired - - expiring_soon - - denied - example: nxdomain - type: string - x-enum-varnames: - - TIMEOUT - - NXDOMAIN - - SERVFAIL - - GENERAL_FAILURE - - EXPIRED - - EXPIRING_SOON - - DENIED - NetworkHealthInsightTrafficVolume: - description: Network traffic volume metrics between the client and server services during the query window. + ManagedOrgsRelationships: + description: Relationships of the managed organizations resource. properties: - bytes_read: - description: Total bytes read from the server to the client during the query window. - example: 1800000 - format: int64 - type: integer - bytes_written: - description: Total bytes written from the client to the server during the query window. - example: 2500000 - format: int64 - type: integer - total_traffic: - description: Sum of bytes written and bytes read across the query window. - example: 4300000 - format: int64 - type: integer + current_org: + $ref: "#/components/schemas/ManagedOrgsRelationshipToOrg" + managed_orgs: + $ref: "#/components/schemas/ManagedOrgsRelationshipToOrgs" + required: + - current_org + - managed_orgs type: object - NetworkHealthInsightsResponse: - description: Response containing a list of network health insights for the organization. + ManagedOrgsResponse: + description: Response containing the current organization and its managed organizations. properties: data: - description: Array of network health insights returned for the query window. + $ref: "#/components/schemas/ManagedOrgsData" + included: + description: Included organization resources. items: - $ref: "#/components/schemas/NetworkHealthInsight" + $ref: "#/components/schemas/OrgData" type: array required: - data + - included type: object - NetworkHealthInsightsType: - default: network-health-insights - description: The resource type for network health insights. Always `network-health-insights`. - enum: - - network-health-insights - example: network-health-insights + ManagedOrgsType: + description: The resource type for managed organizations. + enum: [managed_orgs] + example: "managed_orgs" type: string x-enum-varnames: - - NETWORK_HEALTH_INSIGHTS - NodeType: - additionalProperties: {} - description: A tree-sitter node type definition for a given language, describing the node's structure, subtypes, and fields. - type: object - NodeTypesResponse: - description: The response payload containing tree-sitter node type definitions for a programming language. + - MANAGED_ORGS + MatchingSignalAttributes: + description: Attributes of a matching security signal. properties: - data: - $ref: "#/components/schemas/NodeTypesResponseData" + event_tracker_id: + description: The tracker ID linking the signal back to the originating event. Distinct from `id`, which identifies the matching signal itself. + example: AAAAAWgOAX0mtsWfeQAAAABzX1RyYWNrZXJfMTIzNDU2Nzg5MA + type: string + severity: + description: The severity of the signal. + example: high + type: string + title: + description: The title of the signal. + example: Unusual login activity detected + type: string + trigger_time_ms: + description: The Unix timestamp (in milliseconds) at which the signal was triggered. + example: 1707393746000 + format: int64 + type: integer required: - - data + - event_tracker_id + - severity + - title + - trigger_time_ms type: object - NodeTypesResponseData: - description: The primary data object in the node types response. + MatchingSignalData: + description: A security signal that matches the queried event. properties: attributes: - $ref: "#/components/schemas/NodeTypesResponseDataAttributes" + $ref: "#/components/schemas/MatchingSignalAttributes" id: - description: The unique identifier of the node types response resource. - example: python + description: The ID of the matching signal. + example: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA type: string type: - $ref: "#/components/schemas/NodeTypesResponseDataType" + $ref: "#/components/schemas/MatchingSignalType" required: - id - type - attributes type: object - NodeTypesResponseDataAttributes: - description: The attributes of the node types response, containing the list of node type definitions for the requested language. - properties: - node_types: - description: The list of tree-sitter node type definitions for the language. - items: - $ref: "#/components/schemas/NodeType" - type: array - required: - - node_types - type: object - NodeTypesResponseDataType: - default: get_node_types_response - description: Get node types response resource type. + MatchingSignalType: + default: matching_signal + description: The type of the resource. The value should always be `matching_signal`. enum: - - get_node_types_response - example: get_node_types_response + - matching_signal + example: matching_signal type: string x-enum-varnames: - - GET_NODE_TYPES_RESPONSE - NotebookCreateData: - description: Notebook creation data - properties: - type: - $ref: "#/components/schemas/NotebookResourceType" - required: - - type - type: object - NotebookCreateRequest: - description: Notebook creation request + - MATCHING_SIGNAL + MatchingSignalsResponse: + description: Response containing the list of security signals matching an event. properties: data: - $ref: "#/components/schemas/NotebookCreateData" + description: Array of matching signals. + items: + $ref: "#/components/schemas/MatchingSignalData" + type: array required: - data type: object - NotebookResourceType: - description: Notebook resource type - enum: - - notebook - example: notebook + MaxSessionDurationType: + description: Data type of a maximum session duration update. + enum: [max_session_duration] + example: max_session_duration type: string x-enum-varnames: - - NOTEBOOK - NotebookTriggerWrapper: - description: "Schema for a Notebook-based trigger." + - MAX_SESSION_DURATION + MaxSessionDurationUpdateAttributes: + description: Attributes for the maximum session duration update request. properties: - notebookTrigger: - description: "Trigger a workflow from a Notebook." - type: object - startStepNames: - $ref: "#/components/schemas/StartStepNames" - required: - - notebookTrigger + max_session_duration: + description: The maximum session duration, in seconds. + example: 604800 + format: int64 + minimum: 1 + type: integer + required: [max_session_duration] type: object - NotificationChannel: - description: A top-level wrapper for a user notification channel - example: - data: - attributes: - config: - address: "foo@bar.com" - formats: ["html"] - type: "email" - id: 27590dae-47be-4a7d-9abf-8f4e45124020 - type: notification_channels + MaxSessionDurationUpdateData: + description: The data object for a maximum session duration update request. + properties: + attributes: + $ref: "#/components/schemas/MaxSessionDurationUpdateAttributes" + type: + $ref: "#/components/schemas/MaxSessionDurationType" + required: [type, attributes] + type: object + MaxSessionDurationUpdateRequest: + description: A request to update the maximum session duration for an organization. properties: data: - $ref: "#/components/schemas/NotificationChannelData" + $ref: "#/components/schemas/MaxSessionDurationUpdateData" + required: [data] type: object - NotificationChannelAttributes: - description: Attributes for an on-call notification channel. + McpScanRequest: + description: The top-level request object for submitting an MCP SCA dependency scan. properties: - active: - description: Whether the notification channel is currently active. - type: boolean - config: - $ref: "#/components/schemas/NotificationChannelConfig" - description: Notification channel configuration + data: + $ref: "#/components/schemas/McpScanRequestData" + required: + - data type: object - NotificationChannelConfig: - description: "Defines the configuration for an On-Call notification channel" - oneOf: - - $ref: "#/components/schemas/NotificationChannelPhoneConfig" - - $ref: "#/components/schemas/NotificationChannelEmailConfig" - - $ref: "#/components/schemas/NotificationChannelPushConfig" - NotificationChannelData: - description: Data for an on-call notification channel + McpScanRequestData: + description: The data object in an MCP SCA scan request, containing the scan attributes and request type. properties: attributes: - $ref: "#/components/schemas/NotificationChannelAttributes" + $ref: "#/components/schemas/McpScanRequestDataAttributes" id: - description: Unique identifier for the channel + description: An optional identifier for this scan request. type: string type: - $ref: "#/components/schemas/NotificationChannelType" + $ref: "#/components/schemas/McpScanRequestDataType" required: - type + - attributes type: object - NotificationChannelEmailConfig: - description: "Email notification channel configuration" + McpScanRequestDataAttributes: + description: The attributes of an MCP SCA scan request, describing the libraries to scan and their context. properties: - address: - description: "The e-mail address to be notified" - example: "" + commit_hash: + description: The commit hash of the source code being scanned. + example: 0e9fc8de83eaabecd722e1cd0ed44fb489fe15fc + type: string + libraries: + $ref: "#/components/schemas/McpScanRequestDataAttributesLibraries" + resource_name: + description: The name of the resource (typically the repository or project name) being scanned. + example: my-org/my-repo type: string - formats: - description: Preferred content formats for notifications. - example: - - html - items: - $ref: "#/components/schemas/NotificationChannelEmailFormatType" - type: array - type: - $ref: "#/components/schemas/NotificationChannelEmailConfigType" required: - - type - - address - - formats + - resource_name + - commit_hash + - libraries type: object - NotificationChannelEmailConfigType: - default: email - description: "Indicates that the notification channel is an e-mail address" - enum: - - email - example: email - type: string - x-enum-varnames: - - EMAIL - NotificationChannelEmailFormatType: - default: html - description: Specifies the format of the e-mail that is sent for On-Call notifications - enum: - - html - - text - example: html - type: string - x-enum-varnames: - - HTML - - TEXT - NotificationChannelPhoneConfig: - description: "Phone notification channel configuration" + McpScanRequestDataAttributesLibraries: + description: The list of libraries to scan for vulnerabilities. + items: + $ref: "#/components/schemas/McpScanRequestDataAttributesLibrariesItems" + type: array + McpScanRequestDataAttributesLibrariesItems: + description: A library declaration to include in the dependency scan. properties: - formatted_number: - description: "The formatted international version of Number (e.g. +33 7 1 23 45 67)." - example: "" - type: string - number: - description: "The E-164 formatted phone number (e.g. +3371234567)" - example: "" - type: string - region: - description: "The ISO 3166-1 alpha-2 two-letter country code." - example: "" - type: string - sms_subscribed_at: - description: "If present, the date the user subscribed this number to SMS messages" - format: date-time - nullable: true - type: string - type: - $ref: "#/components/schemas/NotificationChannelPhoneConfigType" - verified: - description: "Indicates whether this phone has been verified by the user in Datadog On-Call" + exclusions: + $ref: "#/components/schemas/McpScanRequestDataAttributesLibrariesItemsExclusions" + is_dev: + description: Whether this library is a development-only dependency. example: false type: boolean + is_direct: + description: Whether this library is a direct (rather than transitive) dependency. + example: true + type: boolean + package_manager: + description: The package manager that produced this library entry (for example, `npm`, `pip`, `nuget`). + example: nuget + type: string + purl: + description: The Package URL (PURL) uniquely identifying the library and its version. + example: pkg:nuget/Newtonsoft.Json@13.0.1 + type: string + target_frameworks: + $ref: "#/components/schemas/McpScanRequestDataAttributesLibrariesItemsTargetFrameworks" required: - - type - - number - - formatted_number - - region - - verified + - purl + - is_dev + - is_direct + - package_manager type: object - NotificationChannelPhoneConfigType: - default: phone - description: "Indicates that the notification channel is a phone" + McpScanRequestDataAttributesLibrariesItemsExclusions: + description: The list of dependency PURLs to exclude when resolving transitive dependencies for this library. + items: + description: A dependency PURL to exclude. + type: string + type: array + McpScanRequestDataAttributesLibrariesItemsTargetFrameworks: + description: The list of target framework identifiers associated with the library. + items: + description: A target framework identifier (for example, `net8.0`). + type: string + type: array + McpScanRequestDataType: + default: mcpscanrequest + description: The type identifier for MCP SCA scan requests. enum: - - phone - example: phone + - mcpscanrequest + example: mcpscanrequest type: string x-enum-varnames: - - PHONE - NotificationChannelPushConfig: - description: "Push notification channel configuration" + - MCPSCANREQUEST + McpScanRequestResponse: + description: The top-level response object returned when an MCP SCA dependency scan request has been accepted. properties: - application_name: - description: "The name of the application used to receive push notifications" - example: "" - type: string - device_name: - description: "The name of the mobile device being used" - example: "" + data: + $ref: "#/components/schemas/McpScanRequestResponseData" + required: + - data + type: object + McpScanRequestResponseData: + description: The data object returned when a scan request has been accepted. + properties: + attributes: + $ref: "#/components/schemas/McpScanRequestResponseDataAttributes" + id: + description: The job identifier assigned to the scan. + example: 0190a3d4-1234-7000-8000-000000000000 type: string type: - $ref: "#/components/schemas/NotificationChannelPushConfigType" + $ref: "#/components/schemas/McpScanRequestResponseDataType" required: + - id - type - - device_name - - application_name + - attributes type: object - NotificationChannelPushConfigType: - default: push - description: "Indicates that the notification channel is a mobile device for push notifications" - enum: - - push - example: push - type: string - x-enum-varnames: - - PUSH - NotificationChannelType: - default: notification_channels - description: "Indicates that the resource is of type 'notification_channels'." + McpScanRequestResponseDataAttributes: + description: >- + The attributes returned when a scan request has been accepted, containing the job identifier used to poll for results. + properties: + job_id: + description: The job identifier assigned to the scan, used to retrieve the scan result. + example: 0190a3d4-1234-7000-8000-000000000000 + type: string + required: + - job_id + type: object + McpScanRequestResponseDataType: + default: mcpscanrequestresponse + description: The type identifier for MCP SCA scan request responses. enum: - - notification_channels - example: notification_channels + - mcpscanrequestresponse + example: mcpscanrequestresponse type: string x-enum-varnames: - - NOTIFICATION_CHANNELS - NotificationRule: - description: |- - Notification rules allow full control over notifications generated by the various Datadog security products. - They allow users to define the conditions under which a notification should be generated (based on rule severities, - rule types, rule tags, and so on), and the targets to notify. - A notification rule is composed of a rule ID, a rule type, and the rule attributes. All fields are required. + - MCPSCANREQUESTRESPONSE + MemberTeam: + description: A member team properties: - attributes: - $ref: "#/components/schemas/NotificationRuleAttributes" id: - $ref: "#/components/schemas/ID" + description: The member team's identifier + example: aeadc05e-98a8-11ec-ac2c-da7ad0900001 + type: string type: - $ref: "#/components/schemas/NotificationRulesType" + $ref: "#/components/schemas/MemberTeamType" required: - - attributes - id - type type: object - NotificationRuleAttributes: - description: Attributes of the notification rule. - properties: - created_at: - $ref: "#/components/schemas/Date" - created_by: - $ref: "#/components/schemas/RuleUser" - enabled: - $ref: "#/components/schemas/Enabled" - modified_at: - $ref: "#/components/schemas/Date" - modified_by: - $ref: "#/components/schemas/RuleUser" - name: - $ref: "#/components/schemas/RuleName" - selectors: - $ref: "#/components/schemas/Selectors" - targets: - $ref: "#/components/schemas/Targets" - time_aggregation: - $ref: "#/components/schemas/TimeAggregation" - version: - $ref: "#/components/schemas/Version" - required: - - created_at - - created_by - - enabled - - modified_at - - modified_by - - name - - selectors - - targets - - version - type: object - NotificationRulePreviewNotificationStatus: - description: The notification status for the given rule type. `SUCCESS` means a matching event was found and the notification was sent successfully. `DEFAULT` means no matching event was found and a default placeholder notification was sent instead. `ERROR` means an error occurred while sending the notification. + MemberTeamType: + default: member_teams + description: Member team type enum: - - SUCCESS - - DEFAULT - - ERROR - example: SUCCESS + - member_teams + example: member_teams type: string x-enum-varnames: - - SUCCESS - - DEFAULT - - ERROR - NotificationRulePreviewResponse: - description: Response from the notification preview request. - properties: - data: - $ref: "#/components/schemas/NotificationRulePreviewResponseData" - required: - - data - type: object - NotificationRulePreviewResponseAttributes: - description: Attributes of the notification preview response. + - MEMBER_TEAMS + Metadata: + description: The metadata related to this request. properties: - preview_results: - $ref: "#/components/schemas/NotificationRulePreviewResults" + count: + description: Number of entities included in the response. + example: 150 + format: int64 + type: integer + token: + description: The token that identifies the request. + example: "b82cef018aab81ed1d4bb4xb35xxfc065da7efa685fbcecdbd338f3015e3afabbbfa3a911b4984_721ee28a-zecb-4e45-9960-c42065b574f4" + type: string + total: + description: Total number of entities across all pages. + example: 152431 + format: int64 + type: integer required: - - preview_results + - count + - total + - token type: object - NotificationRulePreviewResponseData: - description: The notification preview response data. + Metric: + description: Object for a single metric. + example: + id: metric.foo.bar + type: metrics properties: - attributes: - $ref: "#/components/schemas/NotificationRulePreviewResponseAttributes" id: - description: The ID of the notification preview response. - example: rka-loa-zwu - type: string + $ref: "#/components/schemas/MetricName" + relationships: + $ref: "#/components/schemas/MetricRelationships" type: - $ref: "#/components/schemas/NotificationRulePreviewResponseType" - required: - - type - - attributes + $ref: "#/components/schemas/MetricType" type: object - NotificationRulePreviewResponseType: - description: The type of the notification preview response. + MetricActiveConfigurationType: + default: actively_queried_configurations + description: The metric actively queried configuration resource type. enum: - - notification_preview_response - example: notification_preview_response + - actively_queried_configurations + example: actively_queried_configurations type: string x-enum-varnames: - - NOTIFICATION_PREVIEW_RESPONSE - NotificationRulePreviewResult: - description: The preview result for a single rule type. + - ACTIVELY_QUERIED_CONFIGURATIONS + MetricAllTags: + description: Object for a single metric's indexed and ingested tags. properties: - notification_status: - $ref: "#/components/schemas/NotificationRulePreviewNotificationStatus" - rule_type: - $ref: "#/components/schemas/RuleTypesItems" - required: - - rule_type - - notification_status + attributes: + $ref: "#/components/schemas/MetricAllTagsAttributes" + id: + $ref: "#/components/schemas/MetricName" + type: + $ref: "#/components/schemas/MetricType" type: object - NotificationRulePreviewResults: - description: List of preview results for each rule type matched by the notification rule. - example: - - notification_status: DEFAULT - rule_type: log_detection - items: - $ref: "#/components/schemas/NotificationRulePreviewResult" - type: array - NotificationRuleQuery: - description: The query is composed of one or several key:value pairs, which can be used to filter security issues on tags and attributes. - example: (source:production_service OR env:prod) - type: string - NotificationRuleResponse: - description: Response object which includes a notification rule. + MetricAllTagsAttributes: + description: Object containing the definition of a metric's indexed and ingested tags. + properties: + ingested_tags: + description: List of ingested tags that are not indexed. + example: ["env:prod", "service:web", "version:1.0"] + items: + description: Ingested tags for the metric. + type: string + type: array + tags: + description: List of indexed tags. + example: ["sport:golf", "sport:football", "animal:dog"] + items: + description: Indexed tags for the metric. + type: string + type: array + type: object + MetricAllTagsResponse: + description: Response object that includes a single metric's indexed and ingested tags. properties: data: - $ref: "#/components/schemas/NotificationRule" + $ref: "#/components/schemas/MetricAllTags" + readOnly: true type: object - NotificationRuleRouting: - description: Routing configuration for the notification rule. + MetricAssetAttributes: + description: Assets related to the object, including title, url, and tags. properties: - mode: - $ref: "#/components/schemas/NotificationRuleRoutingMode" - required: - - mode + tags: + description: List of tag keys used in the asset. + example: ["env", "service", "host", "datacenter"] + items: + description: Tag key used in assets. + type: string + type: array + title: + description: Title of the asset. + type: string + url: + description: URL path of the asset. + type: string type: object - NotificationRuleRoutingMode: - description: The routing mode for the notification rule. `manual` sends notifications to the configured targets. - enum: - - manual - example: manual - type: string - x-enum-varnames: - - MANUAL - NotificationRulesListResponse: - description: The list of notification rules. + MetricAssetDashboardRelationship: + description: An object of type `dashboard` that can be referenced in the `included` data. + properties: + id: + $ref: "#/components/schemas/MetricDashboardID" + type: + $ref: "#/components/schemas/MetricDashboardType" + type: object + MetricAssetDashboardRelationships: + description: An object containing the list of dashboards that can be referenced in the `included` data. properties: data: + description: A list of dashboards that can be referenced in the `included` data. items: - $ref: "#/components/schemas/NotificationRule" + $ref: "#/components/schemas/MetricAssetDashboardRelationship" type: array type: object - NotificationRulesType: - description: The rule type associated to notification rules. - enum: - - notification_rules - example: notification_rules - type: string - x-enum-varnames: - - NOTIFICATION_RULES - NotionAPIKey: - description: The definition of the `NotionAPIKey` object. + MetricAssetMonitorRelationship: + description: An object of type `monitor` that can be referenced in the `included` data. properties: - api_token: - description: The `NotionAPIKey` `api_token`. - example: "" - type: string + id: + $ref: "#/components/schemas/MetricMonitorID" type: - $ref: "#/components/schemas/NotionAPIKeyType" - required: - - type - - api_token + $ref: "#/components/schemas/MetricMonitorType" type: object - NotionAPIKeyType: - description: The definition of the `NotionAPIKey` object. - enum: - - NotionAPIKey - example: NotionAPIKey - type: string - x-enum-varnames: - - NOTIONAPIKEY - NotionAPIKeyUpdate: - description: The definition of the `NotionAPIKey` object. + MetricAssetMonitorRelationships: + description: A object containing the list of monitors that can be referenced in the `included` data. properties: - api_token: - description: The `NotionAPIKeyUpdate` `api_token`. - type: string + data: + description: A list of monitors that can be referenced in the `included` data. + items: + $ref: "#/components/schemas/MetricAssetMonitorRelationship" + type: array + type: object + MetricAssetNotebookRelationship: + description: An object of type `notebook` that can be referenced in the `included` data. + properties: + id: + $ref: "#/components/schemas/MetricNotebookID" type: - $ref: "#/components/schemas/NotionAPIKeyType" + $ref: "#/components/schemas/MetricNotebookType" + type: object + MetricAssetNotebookRelationships: + description: An object containing the list of notebooks that can be referenced in the `included` data. + properties: + data: + description: A list of notebooks that can be referenced in the `included` data. + items: + $ref: "#/components/schemas/MetricAssetNotebookRelationship" + type: array + type: object + MetricAssetResponseData: + description: Metric assets response data. + properties: + id: + $ref: "#/components/schemas/MetricName" + relationships: + $ref: "#/components/schemas/MetricAssetResponseRelationships" + type: + $ref: "#/components/schemas/MetricType" required: + - id - type type: object - NotionCredentials: - description: The definition of the `NotionCredentials` object. - oneOf: - - $ref: "#/components/schemas/NotionAPIKey" - NotionCredentialsUpdate: - description: The definition of the `NotionCredentialsUpdate` object. + MetricAssetResponseIncluded: + description: List of included assets with full set of attributes. oneOf: - - $ref: "#/components/schemas/NotionAPIKeyUpdate" - NotionIntegration: - description: The definition of the `NotionIntegration` object. + - $ref: "#/components/schemas/MetricDashboardAsset" + - $ref: "#/components/schemas/MetricMonitorAsset" + - $ref: "#/components/schemas/MetricNotebookAsset" + - $ref: "#/components/schemas/MetricSLOAsset" + MetricAssetResponseRelationships: + description: Relationships to assets related to the metric. properties: - credentials: - $ref: "#/components/schemas/NotionCredentials" + dashboards: + $ref: "#/components/schemas/MetricAssetDashboardRelationships" + monitors: + $ref: "#/components/schemas/MetricAssetMonitorRelationships" + notebooks: + $ref: "#/components/schemas/MetricAssetNotebookRelationships" + slos: + $ref: "#/components/schemas/MetricAssetSLORelationships" + type: object + MetricAssetSLORelationship: + description: An object of type `slos` that can be referenced in the `included` data. + properties: + id: + $ref: "#/components/schemas/MetricSLOID" type: - $ref: "#/components/schemas/NotionIntegrationType" - required: - - type - - credentials + $ref: "#/components/schemas/MetricSLOType" type: object - NotionIntegrationType: - description: The definition of the `NotionIntegrationType` object. + MetricAssetSLORelationships: + description: An object containing a list of SLOs that can be referenced in the `included` data. + properties: + data: + description: A list of SLOs that can be referenced in the `included` data. + items: + $ref: "#/components/schemas/MetricAssetSLORelationship" + type: array + type: object + MetricAssetsResponse: + description: Response object that includes related dashboards, monitors, notebooks, and SLOs. + properties: + data: + $ref: "#/components/schemas/MetricAssetResponseData" + included: + description: Array of objects related to the metric assets. + items: + $ref: "#/components/schemas/MetricAssetResponseIncluded" + type: array + type: object + MetricBulkConfigureTagsType: + default: metric_bulk_configure_tags + description: The metric bulk configure tags resource. enum: - - Notion - example: Notion + - metric_bulk_configure_tags + example: metric_bulk_configure_tags type: string x-enum-varnames: - - NOTION - NotionIntegrationUpdate: - description: The definition of the `NotionIntegrationUpdate` object. + - BULK_MANAGE_TAGS + MetricBulkTagConfigCreate: + description: Request object to bulk configure tags for metrics matching the given prefix. properties: - credentials: - $ref: "#/components/schemas/NotionCredentialsUpdate" + attributes: + $ref: "#/components/schemas/MetricBulkTagConfigCreateAttributes" + id: + $ref: "#/components/schemas/MetricBulkTagConfigNamePrefix" type: - $ref: "#/components/schemas/NotionIntegrationType" + $ref: "#/components/schemas/MetricBulkConfigureTagsType" required: + - id - type type: object - NullableRelationshipToUser: - description: Relationship to user. - nullable: true + MetricBulkTagConfigCreateAttributes: + description: Optional parameters for bulk creating metric tag configurations. + properties: + emails: + $ref: "#/components/schemas/MetricBulkTagConfigEmailList" + exclude_tags_mode: + description: |- + When set to true, the configuration will exclude the configured tags and include any other submitted tags. + When set to false, the configuration will include the configured tags and exclude any other submitted tags. + Defaults to false. + type: boolean + include_actively_queried_tags_window: + description: |- + When provided, all tags that have been actively queried are + configured (and, therefore, remain queryable) for each metric that + matches the given prefix. Minimum value is 1 second, and maximum + value is 7,776,000 seconds (90 days). + format: double + maximum: 7776000 + minimum: 1 + type: number + override_existing_configurations: + description: |- + When set to true, the configuration overrides any existing + configurations for the given metric with the new set of tags in this + configuration request. If false, old configurations are kept and + are merged with the set of tags in this configuration request. + Defaults to true. + type: boolean + tags: + $ref: "#/components/schemas/MetricBulkTagConfigTagNameList" + type: object + MetricBulkTagConfigCreateRequest: + description: Wrapper object for a single bulk tag configuration request. properties: data: - $ref: "#/components/schemas/NullableRelationshipToUserData" + $ref: "#/components/schemas/MetricBulkTagConfigCreate" required: - data type: object - NullableRelationshipToUserData: - description: Relationship to user object. - nullable: true + MetricBulkTagConfigDelete: + description: Request object to bulk delete all tag configurations for metrics matching the given prefix. properties: + attributes: + $ref: "#/components/schemas/MetricBulkTagConfigDeleteAttributes" id: - description: A unique identifier that represents the user. - example: "00000000-0000-0000-0000-000000000000" - type: string + $ref: "#/components/schemas/MetricBulkTagConfigNamePrefix" type: - $ref: "#/components/schemas/UsersType" + $ref: "#/components/schemas/MetricBulkConfigureTagsType" required: - id - type type: object - NullableUserRelationship: - description: Relationship to user. - nullable: true + MetricBulkTagConfigDeleteAttributes: + description: Optional parameters for bulk deleting metric tag configurations. + properties: + emails: + $ref: "#/components/schemas/MetricBulkTagConfigEmailList" + type: object + MetricBulkTagConfigDeleteRequest: + description: Wrapper object for a single bulk tag deletion request. properties: data: - $ref: "#/components/schemas/NullableUserRelationshipData" + $ref: "#/components/schemas/MetricBulkTagConfigDelete" required: - data type: object - NullableUserRelationshipData: - description: Relationship to user object. - nullable: true + MetricBulkTagConfigEmailList: + description: A list of account emails to notify when the configuration is applied. + example: ["sue@example.com", "bob@example.com"] + items: + description: An email address. + type: string + type: array + MetricBulkTagConfigNamePrefix: + description: A text prefix to match against metric names. + example: "kafka.lag" + type: string + MetricBulkTagConfigResponse: + description: Wrapper for a single bulk tag configuration status response. + properties: + data: + $ref: "#/components/schemas/MetricBulkTagConfigStatus" + type: object + MetricBulkTagConfigStatus: + description: |- + The status of a request to bulk configure metric tags. + It contains the fields from the original request for reference. properties: + attributes: + $ref: "#/components/schemas/MetricBulkTagConfigStatusAttributes" id: - description: A unique identifier that represents the user. - example: "00000000-0000-0000-0000-000000000000" - type: string + $ref: "#/components/schemas/MetricBulkTagConfigNamePrefix" type: - $ref: "#/components/schemas/UserResourceType" + $ref: "#/components/schemas/MetricBulkConfigureTagsType" required: - id - type type: object - OAuth2WellKnownSitesAttributes: - description: Attributes containing the list of public OAuth2 sites. + MetricBulkTagConfigStatusAttributes: + description: Optional attributes for the status of a bulk tag configuration request. properties: - sites: - description: Array of public OAuth2 site URLs for the environment. - example: - - datadoghq.com - - datadoghq.eu - - us5.datadoghq.com - - us3.datadoghq.com - - ap1.datadoghq.com - - ap2.datadoghq.com - items: - description: Public OAuth2 site URL. - example: app.datadoghq.com - type: string - type: array + emails: + $ref: "#/components/schemas/MetricBulkTagConfigEmailList" + exclude_tags_mode: + description: |- + When set to true, the configuration will exclude the configured tags and include any other submitted tags. + When set to false, the configuration will include the configured tags and exclude any other submitted tags. + type: boolean + status: + description: The status of the request. + example: "Accepted" + type: string + tags: + $ref: "#/components/schemas/MetricBulkTagConfigTagNameList" + type: object + MetricBulkTagConfigTagNameList: + description: A list of tag names to apply to the configuration. + example: ["host", "pod_name", "is_shadow"] + items: + description: A metric tag name. + maxLength: 200 + pattern: ^[A-Za-z][A-Za-z0-9\.\-\_:\/]*$ + type: string + type: array + MetricContentEncoding: + default: deflate + description: HTTP header used to compress the media-type. + enum: + - deflate + - zstd1 + - gzip + example: deflate + type: string + x-enum-varnames: + - DEFLATE + - ZSTD1 + - GZIP + MetricCustomAggregation: + description: |- + A time and space aggregation combination for use in query. + example: + space: sum + time: sum + properties: + space: + $ref: "#/components/schemas/MetricCustomSpaceAggregation" + time: + $ref: "#/components/schemas/MetricCustomTimeAggregation" required: - - sites + - time + - space type: object - OAuth2WellKnownSitesData: - description: Data object containing OAuth2 well-known sites information. + MetricCustomAggregations: + description: |- + Deprecated. You no longer need to configure specific time and space aggregations for Metrics Without Limits. + example: + - space: sum + time: sum + - space: sum + time: count + items: + $ref: "#/components/schemas/MetricCustomAggregation" + type: array + MetricCustomSpaceAggregation: + description: A space aggregation for use in query. + enum: + - avg + - max + - min + - sum + example: sum + type: string + x-enum-varnames: + - AVG + - MAX + - MIN + - SUM + MetricCustomTimeAggregation: + description: A time aggregation for use in query. + enum: + - avg + - count + - max + - min + - sum + example: sum + type: string + x-enum-varnames: + - AVG + - COUNT + - MAX + - MIN + - SUM + MetricDashboardAsset: + description: A dashboard object with title and popularity. properties: attributes: - $ref: "#/components/schemas/OAuth2WellKnownSitesAttributes" + $ref: "#/components/schemas/MetricDashboardAttributes" id: - description: Environment identifier. - example: prod - type: string + $ref: "#/components/schemas/MetricDashboardID" type: - $ref: "#/components/schemas/OAuth2WellKnownSitesEnvType" + $ref: "#/components/schemas/MetricDashboardType" required: - id - type - - attributes type: object - OAuth2WellKnownSitesEnvType: - default: env - description: JSON:API resource type for OAuth2 well-known sites environment. + MetricDashboardAttributes: + description: Attributes related to the dashboard, including title, popularity, and url. + properties: + popularity: + description: Value from 0 to 5 that ranks popularity of the dashboard. + format: double + maximum: 5 + minimum: 0 + type: number + tags: + description: List of tag keys used in the asset. + example: ["env", "service", "host", "datacenter"] + items: + description: Tag key used in assets. + type: string + type: array + title: + description: Title of the asset. + type: string + url: + description: URL path of the asset. + type: string + type: object + MetricDashboardID: + description: The related dashboard's ID. + example: "xxx-yyy-zzz" + type: string + MetricDashboardType: + description: Dashboard resource type. enum: - - env - example: env + - dashboards + example: "dashboards" type: string x-enum-varnames: - - ENV - OAuth2WellKnownSitesResponse: - description: Response payload containing the list of public OAuth2 sites for discovery. + - DASHBOARDS + MetricDistinctVolume: + description: Object for a single metric's distinct volume. properties: - data: - $ref: "#/components/schemas/OAuth2WellKnownSitesData" - required: - - data + attributes: + $ref: "#/components/schemas/MetricDistinctVolumeAttributes" + id: + $ref: "#/components/schemas/MetricName" + type: + $ref: "#/components/schemas/MetricDistinctVolumeType" type: object - OAuthClientRegistrationError: - description: Error payload returned by OAuth2 dynamic client registration as defined by RFC 7591. + MetricDistinctVolumeAttributes: + description: Object containing the definition of a metric's distinct volume. properties: - error: - description: Single ASCII error code per RFC 7591, such as `invalid_request` or `invalid_client_metadata`. - example: invalid_client_metadata - type: string - error_description: - description: Human-readable description of the error. - example: redirect URI is not well-formed - type: string - required: - - error - - error_description + distinct_volume: + description: Distinct volume for the given metric. + example: 10 + format: int64 + type: integer type: object - OAuthClientRegistrationGrantType: - description: OAuth 2.0 grant type that a registered client may use. + MetricDistinctVolumeType: + default: distinct_metric_volumes + description: The metric distinct volume type. enum: - - authorization_code - - refresh_token - example: authorization_code + - distinct_metric_volumes + example: distinct_metric_volumes type: string x-enum-varnames: - - AUTHORIZATION_CODE - - REFRESH_TOKEN - OAuthClientRegistrationRequest: - description: Request payload for OAuth2 dynamic client registration as defined by RFC 7591. + - DISTINCT_METRIC_VOLUMES + MetricEstimate: + description: Object for a metric cardinality estimate. properties: - client_name: - description: Human-readable name of the client. Control characters are rejected. - example: Example MCP Client - maxLength: 1000 - type: string - client_uri: - description: URL of the home page of the client. - example: https://example.com - maxLength: 1000 - type: string - grant_types: - description: |- - OAuth 2.0 grant types the client may use. - Defaults to `authorization_code` and `refresh_token` when omitted. - example: - - authorization_code - - refresh_token - items: - $ref: "#/components/schemas/OAuthClientRegistrationGrantType" - type: array - jwks_uri: - description: URL referencing the client's JSON Web Key Set. - example: https://example.com/.well-known/jwks.json - maxLength: 1000 - type: string - logo_uri: - description: URL referencing a logo for the client. - example: https://example.com/logo.png - maxLength: 1000 - type: string - policy_uri: - description: URL pointing to the client's privacy policy. - example: https://example.com/privacy - maxLength: 1000 - type: string - redirect_uris: - description: Array of redirection URI strings used by the client in redirect-based flows. - example: - - https://example.com/oauth/callback - items: - description: Redirection URI registered for the client. - example: https://example.com/oauth/callback - maxLength: 1000 - type: string - type: array - response_types: - description: OAuth 2.0 response types the client may use. Only `code` is supported. - example: - - code - items: - $ref: "#/components/schemas/OAuthClientRegistrationResponseType" - type: array - scope: - description: Space-separated list of scope values the client may request. - example: openid profile - maxLength: 1000 - type: string - token_endpoint_auth_method: - description: Requested authentication method for the token endpoint. Only `none` is supported. - example: none - maxLength: 20 - type: string - tos_uri: - description: URL pointing to the client's terms of service. - example: https://example.com/tos - maxLength: 1000 - type: string - required: - - client_name - - redirect_uris + attributes: + $ref: "#/components/schemas/MetricEstimateAttributes" + id: + $ref: "#/components/schemas/MetricName" + type: + $ref: "#/components/schemas/MetricEstimateResourceType" type: object - OAuthClientRegistrationResponse: - description: Response payload for a successful OAuth2 dynamic client registration as defined by RFC 7591. + MetricEstimateAttributes: + description: Object containing the definition of a metric estimate attribute. properties: - client_id: - description: Unique identifier assigned to the registered client. - example: 72b68208-36a6-11f0-b21b-da7ad0900002 - format: uuid - type: string - client_name: - description: Human-readable name of the client. - example: Example MCP Client - type: string - grant_types: - description: OAuth 2.0 grant types registered for the client. - example: - - authorization_code - - refresh_token - items: - $ref: "#/components/schemas/OAuthClientRegistrationGrantType" - type: array - redirect_uris: - description: Redirection URIs registered for the client. - example: - - https://example.com/oauth/callback - items: - description: Redirection URI registered for the client. - example: https://example.com/oauth/callback - type: string - type: array - response_types: - description: OAuth 2.0 response types registered for the client. - example: - - code - items: - $ref: "#/components/schemas/OAuthClientRegistrationResponseType" - type: array - token_endpoint_auth_method: - description: Authentication method registered for the token endpoint. Always `none`. - example: none + estimate_type: + $ref: "#/components/schemas/MetricEstimateType" + estimated_at: + description: Timestamp when the cardinality estimate was requested. + example: "2022-04-27T09:48:37.463835Z" + format: date-time type: string - required: - - client_id - - client_name - - redirect_uris - - token_endpoint_auth_method - - grant_types - - response_types + estimated_output_series: + description: Estimated cardinality of the metric based on the queried configuration. + example: 50 + format: int64 + type: integer type: object - OAuthClientRegistrationResponseType: - description: OAuth 2.0 response type that a registered client may use. + MetricEstimateResourceType: + default: metric_cardinality_estimate + description: The metric estimate resource type. enum: - - code - example: code + - metric_cardinality_estimate + example: metric_cardinality_estimate type: string x-enum-varnames: - - CODE - OAuthOidcScope: - description: OIDC scope a client may be restricted to. + - METRIC_CARDINALITY_ESTIMATE + MetricEstimateResponse: + description: Response object that includes metric cardinality estimates. + properties: + data: + $ref: "#/components/schemas/MetricEstimate" + type: object + MetricEstimateType: + default: count_or_gauge + description: |- + Estimate type based on the queried configuration. `count_or_gauge` is returned by default, and `distribution` is returned for distribution metrics. The `filter[pct]` query parameter has no effect on this value. enum: - - openid - - profile - - email - - offline_access - example: openid + - count_or_gauge + - distribution + - percentile + example: distribution type: string x-enum-varnames: - - OPENID - - PROFILE - - EMAIL - - OFFLINE_ACCESS - OAuthScopesRestriction: - description: Allowlist of OIDC and permission scopes enforced for the OAuth2 client. - nullable: true + - COUNT_OR_GAUGE + - DISTRIBUTION + - PERCENTILE + MetricIngestedIndexedVolume: + description: Object for a single metric's ingested and indexed volume. properties: - oidc_scopes: - description: OIDC scopes the client is restricted to. - example: - - openid - - email - items: - $ref: "#/components/schemas/OAuthOidcScope" - type: array - permission_scopes: - description: Datadog permission scopes the client is restricted to. - example: - - dashboards_read - - metrics_read - items: - description: Datadog permission scope name. - example: dashboards_read - type: string - type: array - required: - - oidc_scopes - - permission_scopes + attributes: + $ref: "#/components/schemas/MetricIngestedIndexedVolumeAttributes" + id: + $ref: "#/components/schemas/MetricName" + type: + $ref: "#/components/schemas/MetricIngestedIndexedVolumeType" type: object - OAuthScopesRestrictionResponse: - description: Response payload describing the scopes restriction of an OAuth2 client. + MetricIngestedIndexedVolumeAttributes: + description: Object containing the definition of a metric's ingested and indexed volume. properties: - data: - $ref: "#/components/schemas/OAuthScopesRestrictionResponseData" - required: - - data + indexed_volume: + description: Estimated average hourly number of indexed time series for the given metric over the last hour. For organizations on Metric Name Pricing, this represents the estimated sum of indexed data points over the last hour. + example: 10 + format: int64 + type: integer + ingested_volume: + description: Estimated average hourly number of ingested time series for the given metric over the last hour. This value is `0` for metrics not configured with Metrics Without Limits. For organizations on Metric Name Pricing, this represents the estimated sum of ingested data points over the last hour. + example: 20 + format: int64 + type: integer type: object - OAuthScopesRestrictionResponseAttributes: - description: Attributes of an OAuth2 client scopes restriction. + MetricIngestedIndexedVolumeType: + default: metric_volumes + description: The metric ingested and indexed volume type. + enum: + - metric_volumes + example: metric_volumes + type: string + x-enum-varnames: + - METRIC_VOLUMES + MetricIntakeType: + description: The type of metric. The available types are `0` (unspecified), `1` (count), `2` (rate), and `3` (gauge). + enum: + - 0 + - 1 + - 2 + - 3 + format: int32 + type: integer + x-enum-varnames: + - UNSPECIFIED + - COUNT + - RATE + - GAUGE + MetricMetaPage: + description: Paging attributes. Only present if pagination query parameters were provided. properties: - required_permission_scopes: - description: |- - Permission scopes automatically required for this client (for example, mobile-app permission scopes). - Returns `null` when no scopes are required. - example: - - mobile_app_access - items: - description: Datadog permission scope name. - example: mobile_app_access - type: string + cursor: + description: The cursor used to get the current results, if any. nullable: true - type: array - scopes_restriction: - $ref: "#/components/schemas/OAuthScopesRestriction" - required: - - scopes_restriction - - required_permission_scopes + type: string + limit: + description: Number of results returned + format: int32 + maximum: 20000 + minimum: 0 + type: integer + next_cursor: + description: The cursor used to get the next results, if any. + nullable: true + type: string + type: + $ref: "#/components/schemas/MetricMetaPageType" type: object - OAuthScopesRestrictionResponseData: - description: Data object of an OAuth2 client scopes restriction response. + MetricMetaPageType: + default: cursor_limit + description: Type of metric pagination. + enum: + - cursor_limit + example: cursor_limit + type: string + x-enum-varnames: + - CURSOR_LIMIT + MetricMetadata: + description: Metadata for the metric. + properties: + origin: + $ref: "#/components/schemas/MetricOrigin" + type: object + MetricMonitorAsset: + description: A monitor object with title. properties: attributes: - $ref: "#/components/schemas/OAuthScopesRestrictionResponseAttributes" + $ref: "#/components/schemas/MetricAssetAttributes" id: - description: UUID of the OAuth2 client this restriction applies to. - example: fafa8e1c-36a5-11f0-a83d-da7ad0900001 - format: uuid - type: string + $ref: "#/components/schemas/MetricMonitorID" type: - $ref: "#/components/schemas/OAuthScopesRestrictionType" + $ref: "#/components/schemas/MetricMonitorType" required: - id - type - - attributes type: object - OAuthScopesRestrictionType: - default: scopes_restriction - description: JSON:API resource type for an OAuth2 client scopes restriction. + MetricMonitorID: + description: The related monitor's ID. + example: "1775073" + type: string + MetricMonitorType: + description: Monitor resource type. enum: - - scopes_restriction - example: scopes_restriction + - monitors + example: "monitors" type: string x-enum-varnames: - - SCOPES_RESTRICTION - OCIConfig: - description: OCI config. + - MONITORS + MetricName: + description: The metric name for this resource. + example: test.metric.latency + type: string + MetricNotebookAsset: + description: A notebook object with title. properties: attributes: - $ref: "#/components/schemas/OCIConfigAttributes" + $ref: "#/components/schemas/MetricAssetAttributes" id: - description: The ID of the OCI config. - example: "1" - type: string + $ref: "#/components/schemas/MetricNotebookID" type: - $ref: "#/components/schemas/OCIConfigType" + $ref: "#/components/schemas/MetricNotebookType" required: - - attributes - id - type type: object - OCIConfigAttributes: - description: Attributes for an OCI config. + MetricNotebookID: + description: The related notebook's ID. + example: "12345" + type: string + MetricNotebookType: + description: Notebook resource type. + enum: + - notebooks + example: "notebooks" + type: string + x-enum-varnames: + - NOTEBOOKS + MetricOrigin: + description: Metric origin information. properties: - account_id: - description: The OCID of the OCI tenancy. - example: "ocid1.tenancy.oc1..example" - type: string - created_at: - description: The timestamp when the OCI config was created. - example: "2026-01-01T12:00:00Z" - type: string - error_messages: - description: The error messages for the OCI config. + metric_type: + default: 0 + description: The origin metric type code + format: int32 + maximum: 1000 + type: integer + product: + default: 0 + description: The origin product code + format: int32 + maximum: 1000 + type: integer + service: + default: 0 + description: The origin service code + format: int32 + maximum: 1000 + type: integer + type: object + MetricPaginationMeta: + description: Response metadata object. + properties: + pagination: + $ref: "#/components/schemas/MetricMetaPage" + type: object + MetricPayload: + description: The metrics' payload. + properties: + series: + description: A list of timeseries to submit to Datadog. + example: + - metric: "system.load.1" + points: + - {timestamp: 1475317847, value: 0.7} + resources: + - {name: "dummyhost", type: "host"} items: - description: An error message string. - type: string - nullable: true + $ref: "#/components/schemas/MetricSeries" type: array - status: - description: The status of the OCI config. - example: "active" - type: string - status_updated_at: - description: The timestamp when the OCI config status was last updated. - example: "2026-01-01T12:00:00Z" + required: + - series + type: object + MetricPoint: + description: A point object is of the form `{POSIX_timestamp, numeric_value}`. + example: {timestamp: 1575317847, value: 0.5} + properties: + timestamp: + description: |- + The timestamp should be in seconds and current. + Current is defined as not more than 10 minutes in the future or more than 1 hour in the past. + format: int64 + type: integer + value: + description: The numeric value format should be a 64bit float gauge-type value. + format: double + type: number + type: object + MetricRelationships: + description: Relationships for a metric. + properties: + metric_volumes: + $ref: "#/components/schemas/MetricVolumesRelationship" + type: object + MetricResource: + description: Metric resource. + example: {name: "dummyhost", type: "host"} + properties: + name: + description: The name of the resource. type: string - updated_at: - description: The timestamp when the OCI config was last updated. - example: "2026-01-01T12:00:00Z" + type: + description: The type of the resource. type: string + type: object + MetricSLOAsset: + description: A SLO object with title. + properties: + attributes: + $ref: "#/components/schemas/MetricAssetAttributes" + id: + $ref: "#/components/schemas/MetricSLOID" + type: + $ref: "#/components/schemas/MetricSLOType" required: - - account_id - - created_at - - status - - status_updated_at - - updated_at + - id + - type type: object - OCIConfigType: - default: oci_config - description: Type of OCI config. + MetricSLOID: + description: The SLO ID. + example: "9ffef113b389520db54391d67d652dfb" + type: string + MetricSLOType: + description: SLO resource type. enum: - - oci_config - example: oci_config + - slos + example: "slos" type: string x-enum-varnames: - - OCI_CONFIG - OCIConfigsResponse: - description: List of OCI configs. - example: - data: - - attributes: - account_id: "ocid1.tenancy.oc1..example" - created_at: "2026-01-01T12:00:00Z" - error_messages: [] - status: active - status_updated_at: "2026-01-01T12:00:00Z" - updated_at: "2026-01-01T12:00:00Z" - id: "1" - type: oci_config - properties: - data: - description: An OCI config. - items: - $ref: "#/components/schemas/OCIConfig" - type: array - required: - - data - type: object - OIDCDiscoveryDocument: - description: OpenID Connect provider metadata. + - SLOS + MetricSeries: + description: |- + A metric to submit to Datadog. + See [Datadog metrics](https://docs.datadoghq.com/developers/metrics/#custom-metrics-properties). properties: - authorization_endpoint: - description: URL of the OAuth2 authorization endpoint. - example: https://app.datadoghq.com/oauth2/v1/authorize + interval: + description: If the type of the metric is rate or count, define the corresponding interval in seconds. + example: 20 + format: int64 + type: integer + metadata: + $ref: "#/components/schemas/MetricMetadata" + metric: + description: The name of the timeseries. + example: system.load.1 type: string - id_token_signing_alg_values_supported: - description: Signing algorithms supported for ID tokens. + points: + description: Points relating to a metric. All points must be objects with timestamp and a scalar value (cannot be a string). Timestamps should be in POSIX time in seconds, and cannot be more than ten minutes in the future or more than one hour in the past. example: - - RS256 + - {timestamp: 1575317847, value: 0.5} items: - type: string + $ref: "#/components/schemas/MetricPoint" type: array - issuer: - description: URL identifying the OpenID Connect issuer. - example: https://app.datadoghq.com/api/v2/oauth2 - type: string - jwks_uri: - description: URL of the JSON Web Key Set used to verify ID token signatures. - example: https://app.datadoghq.com/oauth2/v1/keys - type: string - response_types_supported: - description: OAuth2 response types supported by the provider. - example: - - code + resources: + description: A list of resources to associate with this metric. items: - type: string + $ref: "#/components/schemas/MetricResource" type: array - subject_types_supported: - description: Subject identifier types supported by the provider. - example: - - public + source_type_name: + description: The source type name. + example: "datadog" + type: string + tags: + description: A list of tags associated with the metric. + example: ["environment:test"] items: + description: Individual tags. type: string type: array - token_endpoint: - description: URL of the OAuth2 token endpoint. - example: https://app.datadoghq.com/api/v2/oauth2/token + type: + $ref: "#/components/schemas/MetricIntakeType" + unit: + description: The unit of point value. + example: "second" type: string required: - - issuer - - authorization_endpoint - - token_endpoint - - jwks_uri - - response_types_supported - - subject_types_supported - - id_token_signing_alg_values_supported + - metric + - points type: object - ObservabilityPipeline: - description: Top-level schema representing a pipeline. + MetricSuggestedAggregations: + description: |- + List of aggregation combinations that have been actively queried. + example: + - space: sum + time: sum + - space: sum + time: count + items: + $ref: "#/components/schemas/MetricCustomAggregation" + type: array + MetricSuggestedTagsAndAggregations: + description: Object for a single metric's actively queried tags and aggregations. + properties: + attributes: + $ref: "#/components/schemas/MetricSuggestedTagsAttributes" + id: + $ref: "#/components/schemas/MetricName" + type: + $ref: "#/components/schemas/MetricActiveConfigurationType" + type: object + MetricSuggestedTagsAndAggregationsResponse: + description: Response object that includes a single metric's actively queried tags and aggregations. properties: data: - $ref: "#/components/schemas/ObservabilityPipelineData" - required: - - data + $ref: "#/components/schemas/MetricSuggestedTagsAndAggregations" + readOnly: true type: object - ObservabilityPipelineAddEnvVarsProcessor: + MetricSuggestedTagsAttributes: + description: Object containing the definition of a metric's actively queried tags and aggregations. + properties: + active_aggregations: + $ref: "#/components/schemas/MetricSuggestedAggregations" + active_tags: + description: List of tag keys that have been actively queried. + example: ["app", "datacenter"] + items: + description: Actively queried tag keys. + type: string + type: array + type: object + MetricTagCardinalitiesData: + description: A list of tag cardinalities associated with the given metric. + items: + $ref: "#/components/schemas/MetricTagCardinality" + type: array + MetricTagCardinalitiesMeta: + description: Response metadata object. + properties: + metric_name: + description: |- + The name of metric for which the tag cardinalities are returned. + This matches the metric name provided in the request. + type: string + type: object + MetricTagCardinalitiesResponse: description: |- - The `add_env_vars` processor adds environment variable values to log events. - - **Supported pipeline types:** logs + Response object that includes an array of objects representing the cardinality details of a metric's tags. properties: - display_name: - $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" - enabled: - description: Indicates whether the processor is enabled. - example: true - type: boolean + data: + $ref: "#/components/schemas/MetricTagCardinalitiesData" + meta: + $ref: "#/components/schemas/MetricTagCardinalitiesMeta" + readOnly: true + type: object + MetricTagCardinality: + description: Object containing metadata and attributes related to a specific tag key associated with the metric. + example: + attributes: + cardinality_delta: 25 + id: http.request.latency + type: tag_cardinality + properties: + attributes: + $ref: "#/components/schemas/MetricTagCardinalityAttributes" id: - description: The unique identifier for this component. Used to reference this processor in the pipeline. - example: add-env-vars-processor + description: The name of the tag key. type: string - include: - description: A Datadog search query used to determine which logs this processor targets. - example: service:my-service + type: + default: tag_cardinality + description: This describes the endpoint action. type: string + type: object + MetricTagCardinalityAttributes: + description: An object containing properties related to the tag key + properties: + cardinality_delta: + description: This describes the recent change in the tag keys cardinality + format: int64 + type: integer + type: object + MetricTagConfiguration: + description: Object for a single metric tag configuration. + example: + attributes: + aggregations: [{"space": "avg", "time": "avg"}] + created_at: "2020-03-25T09:48:37.463835Z" + metric_type: gauge + modified_at: "2020-04-25T09:48:37.463835Z" + tags: ["app", "datacenter"] + id: http.request.latency + type: manage_tags + properties: + attributes: + $ref: "#/components/schemas/MetricTagConfigurationAttributes" + id: + $ref: "#/components/schemas/MetricName" + relationships: + $ref: "#/components/schemas/MetricRelationships" type: - $ref: "#/components/schemas/ObservabilityPipelineAddEnvVarsProcessorType" - variables: - description: A list of environment variable mappings to apply to log fields. - items: - $ref: "#/components/schemas/ObservabilityPipelineAddEnvVarsProcessorVariable" - type: array - required: - - id - - type - - include - - variables - - enabled + $ref: "#/components/schemas/MetricTagConfigurationType" type: object - x-pipeline-types: [logs] - ObservabilityPipelineAddEnvVarsProcessorType: - default: add_env_vars - description: The processor type. The value should always be `add_env_vars`. - enum: - - add_env_vars - example: add_env_vars - type: string - x-enum-varnames: - - ADD_ENV_VARS - ObservabilityPipelineAddEnvVarsProcessorVariable: - description: Defines a mapping between an environment variable and a log field. + MetricTagConfigurationAttributes: + description: Object containing the definition of a metric tag configuration attributes. properties: - field: - description: The target field in the log event. - example: log.environment.region + aggregations: + $ref: "#/components/schemas/MetricCustomAggregations" + created_at: + description: Timestamp when the tag configuration was created. + example: "2020-03-25T09:48:37.463835Z" + format: date-time type: string - name: - description: The name of the environment variable to read. - example: AWS_REGION + exclude_tags_mode: + description: |- + When set to true, the configuration will exclude the configured tags and include any other submitted tags. + When set to false, the configuration will include the configured tags and exclude any other submitted tags. + Defaults to false. Requires `tags` property. + type: boolean + include_percentiles: + description: |- + Toggle to include or exclude percentile aggregations for distribution metrics. + Only present when the `metric_type` is `distribution`. + example: true + type: boolean + metric_type: + $ref: "#/components/schemas/MetricTagConfigurationMetricTypes" + modified_at: + description: Timestamp when the tag configuration was last modified. + example: "2020-03-25T09:48:37.463835Z" + format: date-time type: string - required: - - field - - name + tags: + description: List of tag keys on which to group. + example: ["app", "datacenter"] + items: + description: Tag keys to group by. + type: string + type: array type: object - ObservabilityPipelineAddFieldsProcessor: - description: |- - The `add_fields` processor adds static key-value fields to logs. - - **Supported pipeline types:** logs + MetricTagConfigurationCreateAttributes: + description: Object containing the definition of a metric tag configuration to be created. properties: - display_name: - $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" - enabled: - description: Indicates whether the processor is enabled. + aggregations: + $ref: "#/components/schemas/MetricCustomAggregations" + exclude_tags_mode: + description: |- + When set to true, the configuration will exclude the configured tags and include any other submitted tags. + When set to false, the configuration will include the configured tags and exclude any other submitted tags. + Defaults to false. Requires `tags` property. + type: boolean + include_percentiles: + description: |- + Toggle to include/exclude percentiles for a distribution metric. + Defaults to false. Can only be applied to metrics that have a `metric_type` of `distribution`. example: true type: boolean - fields: - description: A list of static fields (key-value pairs) that is added to each log event processed by this component. + metric_type: + $ref: "#/components/schemas/MetricTagConfigurationMetricTypes" + tags: + default: [] + description: A list of tag keys that will be queryable for your metric. + example: ["app", "datacenter"] items: - $ref: "#/components/schemas/ObservabilityPipelineFieldValue" + description: Tag keys to group by. + type: string type: array + required: + - tags + - metric_type + type: object + MetricTagConfigurationCreateData: + description: Object for a single metric to be configure tags on. + example: + attributes: + include_percentiles: false + metric_type: distribution + tags: + - app + - datacenter + id: http.endpoint.request + type: manage_tags + properties: + attributes: + $ref: "#/components/schemas/MetricTagConfigurationCreateAttributes" id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: "add-fields-processor" - type: string - include: - description: A Datadog search query used to determine which logs this processor targets. - example: "service:my-service" - type: string + $ref: "#/components/schemas/MetricName" type: - $ref: "#/components/schemas/ObservabilityPipelineAddFieldsProcessorType" + $ref: "#/components/schemas/MetricTagConfigurationType" required: - id - type - - include - - fields - - enabled type: object - x-pipeline-types: [logs] - ObservabilityPipelineAddFieldsProcessorType: - default: add_fields - description: The processor type. The value should always be `add_fields`. + MetricTagConfigurationCreateRequest: + description: Request object that includes the metric that you would like to configure tags for. + properties: + data: + $ref: "#/components/schemas/MetricTagConfigurationCreateData" + required: + - data + type: object + MetricTagConfigurationMetricTypeCategory: + default: distribution + description: The metric's type category. enum: - - add_fields - example: add_fields + - non_distribution + - distribution + example: distribution type: string x-enum-varnames: - - ADD_FIELDS - ObservabilityPipelineAddHostnameProcessor: - description: |- - The `add_hostname` processor adds the hostname to log events. - - **Supported pipeline types:** logs + - NON_DISTRIBUTION + - DISTRIBUTION + MetricTagConfigurationMetricTypes: + default: gauge + description: The metric's type. + enum: + - gauge + - count + - rate + - distribution + example: count + type: string + x-enum-varnames: + - GAUGE + - COUNT + - RATE + - DISTRIBUTION + MetricTagConfigurationResponse: + description: Response object which includes a single metric's tag configuration. properties: - display_name: - $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" - enabled: - description: Indicates whether the processor is enabled. - example: true - type: boolean - id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: add-hostname-processor - type: string - include: - description: A Datadog search query used to determine which logs this processor targets. - example: "service:my-service" - type: string - type: - $ref: "#/components/schemas/ObservabilityPipelineAddHostnameProcessorType" - required: - - id - - type - - include - - enabled + data: + $ref: "#/components/schemas/MetricTagConfiguration" + readOnly: true type: object - x-pipeline-types: [logs] - ObservabilityPipelineAddHostnameProcessorType: - default: add_hostname - description: The processor type. The value should always be `add_hostname`. + MetricTagConfigurationType: + default: manage_tags + description: The metric tag configuration resource type. enum: - - add_hostname - example: add_hostname + - manage_tags + example: manage_tags type: string x-enum-varnames: - - ADD_HOSTNAME - ObservabilityPipelineAddMetricTagsProcessor: - description: |- - The `add_metric_tags` processor adds static tags to metrics. - - **Supported pipeline types:** metrics + - MANAGE_TAGS + MetricTagConfigurationUpdateAttributes: + description: Object containing the definition of a metric tag configuration to be updated. properties: - display_name: - $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" - enabled: - description: Indicates whether the processor is enabled. + aggregations: + $ref: "#/components/schemas/MetricCustomAggregations" + exclude_tags_mode: + description: |- + When set to true, the configuration will exclude the configured tags and include any other submitted tags. + When set to false, the configuration will include the configured tags and exclude any other submitted tags. + Defaults to false. Requires `tags` property. + type: boolean + include_percentiles: + description: |- + Toggle to include/exclude percentiles for a distribution metric. + Defaults to false. Can only be applied to metrics that have a `metric_type` of `distribution`. example: true type: boolean - id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: "add-metric-tags-processor" - type: string - include: - description: A Datadog search query used to determine which metrics this processor targets. - example: "*" - type: string tags: - description: A list of static tags (key-value pairs) added to each metric processed by this component. + default: [] + description: A list of tag keys that will be queryable for your metric. + example: ["app", "datacenter"] items: - $ref: "#/components/schemas/ObservabilityPipelineFieldValue" - maxItems: 15 + description: Tag keys to group by. + type: string type: array + type: object + MetricTagConfigurationUpdateData: + description: Object for a single tag configuration to be edited. + example: + attributes: + group_by: + - app + - datacenter + include_percentiles: false + id: http.endpoint.request + type: manage_tags + properties: + attributes: + $ref: "#/components/schemas/MetricTagConfigurationUpdateAttributes" + id: + $ref: "#/components/schemas/MetricName" type: - $ref: "#/components/schemas/ObservabilityPipelineAddMetricTagsProcessorType" + $ref: "#/components/schemas/MetricTagConfigurationType" required: - id - type - - include - - tags - - enabled type: object - x-pipeline-types: [metrics] - ObservabilityPipelineAddMetricTagsProcessorType: - default: add_metric_tags - description: The processor type. The value must be `add_metric_tags`. - enum: [add_metric_tags] - example: add_metric_tags + MetricTagConfigurationUpdateRequest: + description: Request object that includes the metric that you would like to edit the tag configuration on. + properties: + data: + $ref: "#/components/schemas/MetricTagConfigurationUpdateData" + required: + - data + type: object + MetricType: + default: metrics + description: The metric resource type. + enum: + - metrics + example: metrics type: string x-enum-varnames: - - ADD_METRIC_TAGS - ObservabilityPipelineAggregateProcessor: - description: |- - The `aggregate` processor combines metrics that share the same name and tags into a single metric over a configurable interval. - - **Supported pipeline types:** metrics + - METRICS + MetricVolumes: + description: Possible response objects for a metric's volume. + oneOf: + - $ref: "#/components/schemas/MetricDistinctVolume" + - $ref: "#/components/schemas/MetricIngestedIndexedVolume" + MetricVolumesRelationship: + description: Relationship to a metric volume included in the response. + properties: + data: + $ref: "#/components/schemas/MetricVolumesRelationshipData" + type: object + MetricVolumesRelationshipData: + description: Relationship data for a metric volume. properties: - display_name: - $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" - enabled: - description: Indicates whether the processor is enabled. - example: true - type: boolean id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: "aggregate-processor" - type: string - include: - description: A Datadog search query used to determine which metrics this processor targets. - example: "*" - type: string - interval_secs: - description: The interval, in seconds, over which metrics are aggregated. - example: 10 - format: int64 - maximum: 60 - minimum: 1 - type: integer - mode: - $ref: "#/components/schemas/ObservabilityPipelineAggregateProcessorMode" + $ref: "#/components/schemas/MetricName" type: - $ref: "#/components/schemas/ObservabilityPipelineAggregateProcessorType" - required: - - id - - type - - include - - interval_secs - - mode - - enabled + $ref: "#/components/schemas/MetricIngestedIndexedVolumeType" type: object - x-pipeline-types: [metrics] - ObservabilityPipelineAggregateProcessorMode: - description: The aggregation mode applied to metrics that share the same name and tags within the interval. + MetricVolumesResponse: + description: Response object which includes a single metric's volume. + properties: + data: + $ref: "#/components/schemas/MetricVolumes" + readOnly: true + type: object + MetricsAggregator: + default: "avg" + description: The type of aggregation that can be performed on metrics-based queries. enum: - - auto - - sum - - latest - - count - - max + - avg - min + - max + - sum + - last + - percentile - mean - example: auto + - l2norm + - area + example: "avg" type: string x-enum-varnames: - - AUTO - - SUM - - LATEST - - COUNT - - MAX + - AVG - MIN + - MAX + - SUM + - LAST + - PERCENTILE - MEAN - ObservabilityPipelineAggregateProcessorType: - default: aggregate - description: The processor type. The value must be `aggregate`. - enum: [aggregate] - example: aggregate + - L2NORM + - AREA + MetricsAndMetricTagConfigurations: + description: Object for a metrics and metric tag configurations. + oneOf: + - $ref: "#/components/schemas/Metric" + - $ref: "#/components/schemas/MetricTagConfiguration" + MetricsAndMetricTagConfigurationsResponse: + description: Response object that includes metrics and metric tag configurations. + properties: + data: + description: Array of metrics and metric tag configurations. + items: + $ref: "#/components/schemas/MetricsAndMetricTagConfigurations" + type: array + included: + description: Array of metric volume resources included when requested with `include=metric_volumes`. + items: + $ref: "#/components/schemas/MetricIngestedIndexedVolume" + type: array + links: + $ref: "#/components/schemas/MetricsListResponseLinks" + meta: + $ref: "#/components/schemas/MetricPaginationMeta" + readOnly: true + type: object + MetricsDataSource: + default: metrics + description: A data source that is powered by the Metrics platform. + enum: + - metrics + - cloud_cost + example: metrics type: string x-enum-varnames: - - AGGREGATE - ObservabilityPipelineAmazonDataFirehoseSource: - description: |- - The `amazon_data_firehose` source ingests logs from AWS Data Firehose. - - **Supported pipeline types:** logs + - METRICS + - CLOUD_COST + MetricsListResponseLinks: + description: Pagination links. Only present if pagination query parameters were provided. properties: - address_key: - description: Name of the environment variable or secret that holds the Firehose delivery stream address. - example: FIREHOSE_ADDRESS + first: + description: Link to the first page. type: string - auth: - $ref: "#/components/schemas/ObservabilityPipelineAwsAuth" - id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: amazon-firehose-source + last: + description: Link to the last page. + nullable: true + type: string + next: + description: Link to the next page. + nullable: true + type: string + prev: + description: Link to previous page. + nullable: true + type: string + self: + description: Link to current page. + type: string + type: object + MetricsScalarQuery: + description: A query against Datadog custom metrics or Cloud Cost data sources. + properties: + aggregator: + $ref: "#/components/schemas/MetricsAggregator" + cross_org_uuids: + $ref: "#/components/schemas/CrossOrgUuids" + data_source: + $ref: "#/components/schemas/MetricsDataSource" + name: + description: The variable name for use in formulas. + type: string + query: + description: A classic metrics query string. + example: avg:system.cpu.user{*} by {env} type: string - tls: - $ref: "#/components/schemas/ObservabilityPipelineTls" - type: - $ref: "#/components/schemas/ObservabilityPipelineAmazonDataFirehoseSourceType" required: - - id - - type + - data_source + - query + - aggregator type: object - x-pipeline-types: [logs] - ObservabilityPipelineAmazonDataFirehoseSourceType: - default: amazon_data_firehose - description: The source type. The value should always be `amazon_data_firehose`. - enum: [amazon_data_firehose] - example: amazon_data_firehose - type: string - x-enum-varnames: [AMAZON_DATA_FIREHOSE] - ObservabilityPipelineAmazonOpenSearchDestination: + MetricsTimeseriesQuery: + description: A query against Datadog custom metrics or Cloud Cost data sources. + properties: + cross_org_uuids: + $ref: "#/components/schemas/CrossOrgUuids" + data_source: + $ref: "#/components/schemas/MetricsDataSource" + name: + description: The variable name for use in formulas. + type: string + query: + description: A classic metrics query string. + example: avg:system.cpu.user{*} by {env} + type: string + required: + - data_source + - query + type: object + MicrosoftSentinelDestination: description: |- - The `amazon_opensearch` destination writes logs to Amazon OpenSearch. + The `microsoft_sentinel` destination forwards logs to Microsoft Sentinel. **Supported pipeline types:** logs properties: - auth: - $ref: "#/components/schemas/ObservabilityPipelineAmazonOpenSearchDestinationAuth" buffer: $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" - bulk_index: - description: The index to write logs to. - example: logs-index + client_id: + description: Azure AD client ID used for authentication. + example: "a1b2c3d4-5678-90ab-cdef-1234567890ab" + type: string + client_secret_key: + description: Name of the environment variable or secret that holds the Azure AD client secret. + example: AZURE_CLIENT_SECRET + type: string + dce_uri_key: + description: Name of the environment variable or secret that holds the Data Collection Endpoint (DCE) URI. + example: DCE_URI + type: string + dcr_immutable_id: + description: The immutable ID of the Data Collection Rule (DCR). + example: "dcr-uuid-1234" type: string id: description: The unique identifier for this component. - example: elasticsearch-destination + example: "sentinel-destination" type: string inputs: description: A list of component IDs whose output is used as the `input` for this component. @@ -75131,4429 +78066,3676 @@ components: description: The ID of a component whose output is used as input for this destination. type: string type: array + table: + description: The name of the Log Analytics table where logs are sent. + example: "CustomLogsTable" + type: string + tenant_id: + description: Azure AD tenant ID. + example: "abcdef12-3456-7890-abcd-ef1234567890" + type: string type: - $ref: "#/components/schemas/ObservabilityPipelineAmazonOpenSearchDestinationType" + $ref: "#/components/schemas/MicrosoftSentinelDestinationType" required: - id - type - inputs - - auth + - client_id + - tenant_id + - dcr_immutable_id + - table type: object x-pipeline-types: [logs] - ObservabilityPipelineAmazonOpenSearchDestinationAuth: - description: |- - Authentication settings for the Amazon OpenSearch destination. - The `strategy` field determines whether basic or AWS-based authentication is used. + MicrosoftSentinelDestinationType: + default: microsoft_sentinel + description: The destination type. The value should always be `microsoft_sentinel`. + enum: + - microsoft_sentinel + example: microsoft_sentinel + type: string + x-enum-varnames: + - MICROSOFT_SENTINEL + MicrosoftTeamsChannelInfoResponseAttributes: + description: Channel attributes. properties: - assume_role: - description: The ARN of the role to assume (used with `aws` strategy). - type: string - aws_region: - description: AWS region + is_primary: + description: Indicates if this is the primary channel. + example: true + maxLength: 255 + type: boolean + team_id: + description: Team id. + example: "00000000-0000-0000-0000-000000000000" + maxLength: 255 type: string - external_id: - description: External ID for the assumed role (used with `aws` strategy). + tenant_id: + description: Tenant id. + example: "00000000-0000-0000-0000-000000000001" + maxLength: 255 type: string - session_name: - description: Session name for the assumed role (used with `aws` strategy). + type: object + MicrosoftTeamsChannelInfoResponseData: + description: Channel data from a response. + properties: + attributes: + $ref: "#/components/schemas/MicrosoftTeamsChannelInfoResponseAttributes" + id: + description: The ID of the channel. + example: "19:b41k24b14bn1nwffkernfkwrnfneubgkr@thread.tacv2" + maxLength: 255 + minLength: 1 type: string - strategy: - $ref: "#/components/schemas/ObservabilityPipelineAmazonOpenSearchDestinationAuthStrategy" - required: - - strategy + type: + $ref: "#/components/schemas/MicrosoftTeamsChannelInfoType" type: object - ObservabilityPipelineAmazonOpenSearchDestinationAuthStrategy: - description: The authentication strategy to use. - enum: [basic, aws] - example: aws - type: string - x-enum-varnames: - - BASIC - - AWS - ObservabilityPipelineAmazonOpenSearchDestinationType: - default: amazon_opensearch - description: The destination type. The value should always be `amazon_opensearch`. + MicrosoftTeamsChannelInfoType: + default: ms-teams-channel-info + description: Channel info resource type. enum: - - amazon_opensearch - example: amazon_opensearch + - ms-teams-channel-info + example: ms-teams-channel-info type: string x-enum-varnames: - - AMAZON_OPENSEARCH - ObservabilityPipelineAmazonS3Destination: - description: |- - The `amazon_s3` destination sends your logs in Datadog-rehydratable format to an Amazon S3 bucket for archiving. - - **Supported pipeline types:** logs + - MS_TEAMS_CHANNEL_INFO + MicrosoftTeamsConfigurationReference: + description: A reference to a Microsoft Teams Configuration resource. + nullable: true + properties: + data: + $ref: "#/components/schemas/MicrosoftTeamsConfigurationReferenceData" + required: + - data + type: object + MicrosoftTeamsConfigurationReferenceData: + description: The Microsoft Teams configuration relationship data object. + nullable: true properties: - auth: - $ref: "#/components/schemas/ObservabilityPipelineAwsAuth" - bucket: - description: S3 bucket name. - example: "error-logs" - type: string - buffer: - $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" - compression: - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3DestinationCompression" id: - description: Unique identifier for the destination component. - example: amazon-s3-destination - type: string - inputs: - description: A list of component IDs whose output is used as the `input` for this component. - example: ["datadog-agent-source"] - items: - description: The ID of a component whose output is used as input for this destination. - type: string - type: array - key_prefix: - description: Optional prefix for object keys. - type: string - region: - description: AWS region of the S3 bucket. - example: "us-east-1" - type: string - server_side_encryption: - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3DestinationServerSideEncryption" - ssekms_key_id: - description: |- - The AWS KMS key ID used for SSE-KMS encryption. - Only applies when `server_side_encryption` is set to `aws:kms`. - example: "arn:aws:kms:us-east-1:123456789012:key/mrk-abc123" + description: The unique identifier of the Microsoft Teams configuration. + example: "00000000-0000-0000-0000-000000000000" type: string - storage_class: - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3DestinationStorageClass" - tls: - $ref: "#/components/schemas/ObservabilityPipelineTls" type: - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3DestinationType" + description: The type of the Microsoft Teams configuration. + example: "microsoft_teams_configurations" + type: string required: - id - type - - inputs - - bucket - - region - - storage_class type: object - x-pipeline-types: [logs] - ObservabilityPipelineAmazonS3DestinationCompression: - description: |- - Compression configuration for archived logs. When omitted, logs are compressed with gzip - for backward compatibility. - oneOf: - - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3DestinationCompressionZstd" - - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3DestinationCompressionGzip" - ObservabilityPipelineAmazonS3DestinationCompressionGzip: - description: Gzip compression. + MicrosoftTeamsCreateTenantBasedHandleRequest: + description: Create tenant-based handle request. properties: - algorithm: - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3DestinationCompressionGzipType" - level: - description: Gzip compression level. Valid values range from `1` to `9`. - example: 6 - format: int64 - maximum: 9 - minimum: 1 - type: integer + data: + $ref: "#/components/schemas/MicrosoftTeamsTenantBasedHandleRequestData" required: - - algorithm - - level + - data type: object - ObservabilityPipelineAmazonS3DestinationCompressionGzipType: - default: gzip - description: The compression type. Always `gzip`. - enum: - - gzip - example: gzip - type: string - x-enum-varnames: - - GZIP - ObservabilityPipelineAmazonS3DestinationCompressionZstd: - description: Zstd compression. + MicrosoftTeamsCreateWorkflowsWebhookHandleRequest: + description: Create Workflows webhook handle request. properties: - algorithm: - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3DestinationCompressionZstdType" - level: - description: Zstd compression level. Valid values range from `1` to` 21`. - example: 3 - format: int64 - maximum: 21 - minimum: 1 - type: integer + data: + $ref: "#/components/schemas/MicrosoftTeamsWorkflowsWebhookHandleRequestData" required: - - algorithm - - level + - data type: object - ObservabilityPipelineAmazonS3DestinationCompressionZstdType: - default: zstd - description: The compression type. Always `zstd`. - enum: - - zstd - example: zstd - type: string - x-enum-varnames: - - ZSTD - ObservabilityPipelineAmazonS3DestinationServerSideEncryption: - description: Server-side encryption type for Amazon S3. - enum: - - "aws:kms" - - AES256 - example: "aws:kms" - type: string - x-enum-varnames: - - AWS_KMS - - AES256 - ObservabilityPipelineAmazonS3DestinationStorageClass: - description: S3 storage class. - enum: - - STANDARD - - REDUCED_REDUNDANCY - - INTELLIGENT_TIERING - - STANDARD_IA - - EXPRESS_ONEZONE - - ONEZONE_IA - - GLACIER - - GLACIER_IR - - DEEP_ARCHIVE - example: STANDARD - type: string - x-enum-varnames: - - STANDARD - - REDUCED_REDUNDANCY - - INTELLIGENT_TIERING - - STANDARD_IA - - EXPRESS_ONEZONE - - ONEZONE_IA - - GLACIER - - GLACIER_IR - - DEEP_ARCHIVE - ObservabilityPipelineAmazonS3DestinationType: - default: amazon_s3 - description: The destination type. Always `amazon_s3`. - enum: - - amazon_s3 - example: amazon_s3 - type: string - x-enum-varnames: - - AMAZON_S3 - ObservabilityPipelineAmazonS3GenericBatchSettings: - description: Event batching settings + MicrosoftTeamsGetChannelByNameResponse: + description: Response with channel, team, and tenant ID information. properties: - batch_size: - description: Maximum batch size in bytes. - example: 100000000 - format: int64 - type: integer - timeout_secs: - description: Maximum number of seconds to wait before flushing the batch. - example: 900 - format: int64 - type: integer + data: + $ref: "#/components/schemas/MicrosoftTeamsChannelInfoResponseData" type: object - ObservabilityPipelineAmazonS3GenericCompression: - description: Compression algorithm applied to encoded logs. - oneOf: - - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericCompressionZstd" - - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericCompressionGzip" - - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericCompressionSnappy" - ObservabilityPipelineAmazonS3GenericCompressionGzip: - description: Gzip compression. + MicrosoftTeamsTenantBasedHandleAttributes: + description: Tenant-based handle attributes. properties: - algorithm: - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericCompressionGzipType" - level: - description: Gzip compression level. - example: 6 - format: int64 - type: integer - required: - - algorithm - - level + channel_id: + description: Channel id. + example: "fake-channel-id" + maxLength: 255 + type: string + name: + description: Tenant-based handle name. + example: "fake-handle-name" + maxLength: 255 + type: string + team_id: + description: Team id. + example: "00000000-0000-0000-0000-000000000000" + maxLength: 255 + type: string + tenant_id: + description: Tenant id. + example: "00000000-0000-0000-0000-000000000001" + maxLength: 255 + type: string type: object - ObservabilityPipelineAmazonS3GenericCompressionGzipType: - default: gzip - description: The compression type. Always `gzip`. - enum: - - gzip - example: gzip - type: string - x-enum-varnames: - - GZIP - ObservabilityPipelineAmazonS3GenericCompressionSnappy: - description: Snappy compression. + MicrosoftTeamsTenantBasedHandleInfoResponseAttributes: + description: Tenant-based handle attributes. properties: - algorithm: - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericCompressionSnappyType" - required: - - algorithm + channel_id: + description: Channel id. + example: "fake-channel-id" + maxLength: 255 + type: string + channel_name: + description: Channel name. + example: "fake-channel-name" + maxLength: 255 + type: string + name: + description: Tenant-based handle name. + example: "fake-handle-name" + maxLength: 255 + type: string + team_id: + description: Team id. + example: "00000000-0000-0000-0000-000000000000" + maxLength: 255 + type: string + team_name: + description: Team name. + example: "fake-team-name" + maxLength: 255 + type: string + tenant_id: + description: Tenant id. + example: "00000000-0000-0000-0000-000000000001" + maxLength: 255 + type: string + tenant_name: + description: Tenant name. + example: "fake-tenant-name" + maxLength: 255 + type: string type: object - ObservabilityPipelineAmazonS3GenericCompressionSnappyType: - default: snappy - description: The compression type. Always `snappy`. - enum: - - snappy - example: snappy - type: string - x-enum-varnames: - - SNAPPY - ObservabilityPipelineAmazonS3GenericCompressionZstd: - description: Zstd compression. + MicrosoftTeamsTenantBasedHandleInfoResponseData: + description: Tenant-based handle data from a response. properties: - algorithm: - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericCompressionZstdType" - level: - description: Zstd compression level. - example: 3 - format: int64 - type: integer - required: - - algorithm - - level + attributes: + $ref: "#/components/schemas/MicrosoftTeamsTenantBasedHandleInfoResponseAttributes" + id: + description: The ID of the tenant-based handle. + example: "596da4af-0563-4097-90ff-07230c3f9db3" + maxLength: 100 + minLength: 1 + type: string + type: + $ref: "#/components/schemas/MicrosoftTeamsTenantBasedHandleInfoType" type: object - ObservabilityPipelineAmazonS3GenericCompressionZstdType: - default: zstd - description: The compression type. Always `zstd`. + MicrosoftTeamsTenantBasedHandleInfoType: + default: ms-teams-tenant-based-handle-info + description: Tenant-based handle resource type. enum: - - zstd - example: zstd + - ms-teams-tenant-based-handle-info + example: ms-teams-tenant-based-handle-info type: string x-enum-varnames: - - ZSTD - ObservabilityPipelineAmazonS3GenericDestination: - description: |- - The `amazon_s3_generic` destination sends your logs to an Amazon S3 bucket. - - **Supported pipeline types:** logs + - MS_TEAMS_TENANT_BASED_HANDLE_INFO + MicrosoftTeamsTenantBasedHandleRequestAttributes: + description: Tenant-based handle attributes. properties: - auth: - $ref: "#/components/schemas/ObservabilityPipelineAwsAuth" - batch_settings: - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericBatchSettings" - bucket: - description: S3 bucket name. - example: "my-bucket" - type: string - buffer: - $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" - compression: - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericCompression" - encoding: - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericEncoding" - id: - description: Unique identifier for the destination component. - example: generic-s3-destination + channel_id: + description: Channel id. + example: "fake-channel-id" + maxLength: 255 type: string - inputs: - description: A list of component IDs whose output is used as the `input` for this component. - example: ["filter-processor"] - items: - description: A component ID referenced as an input source. - type: string - type: array - key_prefix: - description: Optional prefix for object keys. + name: + description: Tenant-based handle name. + example: "fake-handle-name" + maxLength: 255 type: string - region: - description: AWS region of the S3 bucket. - example: "us-east-1" + team_id: + description: Team id. + example: "00000000-0000-0000-0000-000000000000" + maxLength: 255 type: string - server_side_encryption: - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3DestinationServerSideEncryption" - ssekms_key_id: - description: |- - The AWS KMS key ID used for SSE-KMS encryption. - Only applies when `server_side_encryption` is set to `aws:kms`. - example: "arn:aws:kms:us-east-1:123456789012:key/mrk-abc123" + tenant_id: + description: Tenant id. + example: "00000000-0000-0000-0000-000000000001" + maxLength: 255 type: string - storage_class: - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3DestinationStorageClass" - type: - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericDestinationType" required: - - id - - type - - inputs - - bucket - - region - - storage_class - - encoding - - compression + - name + - channel_id + - team_id + - tenant_id type: object - x-pipeline-types: [logs] - ObservabilityPipelineAmazonS3GenericDestinationType: - default: amazon_s3_generic - description: The destination type. Always `amazon_s3_generic`. - enum: - - amazon_s3_generic - example: amazon_s3_generic - type: string - x-enum-varnames: - - GENERIC_ARCHIVES_S3 - ObservabilityPipelineAmazonS3GenericEncoding: - description: Encoding format for the destination. - oneOf: - - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericEncodingJson" - - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericEncodingParquet" - ObservabilityPipelineAmazonS3GenericEncodingJson: - description: JSON encoding. + MicrosoftTeamsTenantBasedHandleRequestData: + description: Tenant-based handle data from a response. properties: + attributes: + $ref: "#/components/schemas/MicrosoftTeamsTenantBasedHandleRequestAttributes" type: - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericEncodingJsonType" + $ref: "#/components/schemas/MicrosoftTeamsTenantBasedHandleType" required: - type + - attributes type: object - ObservabilityPipelineAmazonS3GenericEncodingJsonType: - default: json - description: The encoding type. Always `json`. + MicrosoftTeamsTenantBasedHandleResponse: + description: Response of a tenant-based handle. + properties: + data: + $ref: "#/components/schemas/MicrosoftTeamsTenantBasedHandleResponseData" + required: + - data + type: object + MicrosoftTeamsTenantBasedHandleResponseData: + description: Tenant-based handle data from a response. + properties: + attributes: + $ref: "#/components/schemas/MicrosoftTeamsTenantBasedHandleAttributes" + id: + description: The ID of the tenant-based handle. + example: "596da4af-0563-4097-90ff-07230c3f9db3" + maxLength: 100 + minLength: 1 + type: string + type: + $ref: "#/components/schemas/MicrosoftTeamsTenantBasedHandleType" + type: object + MicrosoftTeamsTenantBasedHandleType: + default: tenant-based-handle + description: Specifies the tenant-based handle resource type. enum: - - json - example: json + - tenant-based-handle + example: tenant-based-handle type: string x-enum-varnames: - - JSON - ObservabilityPipelineAmazonS3GenericEncodingParquet: - description: Parquet encoding. + - TENANT_BASED_HANDLE + MicrosoftTeamsTenantBasedHandlesResponse: + description: Response with a list of tenant-based handles. + properties: + data: + description: An array of tenant-based handles. + example: [{"attributes": {"channelId": "19:b41k24b14bn1nwffkernfkwrnfneubgkr@thread.tacv2", "channelName": "General", "name": "general-handle", "teamId": "00000000-0000-0000-0000-000000000000", "teamName": "Example Team", "tenantId": "00000000-0000-0000-0000-000000000001", "tenantName": "Company, Inc."}, "id": "596da4af-0563-4097-90ff-07230c3f9db3", "type": "ms-teams-tenant-based-handle-info"}, {"attributes": {"channelId": "19:b41k24b14bn1nwffkernfkwrnfneubgk1@thread.tacv2", "channelName": "General2", "name": "general-handle-2", "teamId": "00000000-0000-0000-0000-000000000002", "teamName": "Example Team 2", "tenantId": "00000000-0000-0000-0000-000000000003", "tenantName": "Company, Inc."}, "id": "596da4af-0563-4097-90ff-07230c3f9db4", "type": "ms-teams-tenant-based-handle-info"}] + items: + $ref: "#/components/schemas/MicrosoftTeamsTenantBasedHandleInfoResponseData" + type: array + required: + - data + type: object + MicrosoftTeamsUpdateTenantBasedHandleRequest: + description: Update tenant-based handle request. + properties: + data: + $ref: "#/components/schemas/MicrosoftTeamsUpdateTenantBasedHandleRequestData" + required: + - data + type: object + MicrosoftTeamsUpdateTenantBasedHandleRequestData: + description: Tenant-based handle data from a response. properties: + attributes: + $ref: "#/components/schemas/MicrosoftTeamsTenantBasedHandleAttributes" type: - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericEncodingParquetType" + $ref: "#/components/schemas/MicrosoftTeamsTenantBasedHandleType" required: - type + - attributes type: object - ObservabilityPipelineAmazonS3GenericEncodingParquetType: - default: parquet - description: The encoding type. Always `parquet`. - enum: - - parquet - example: parquet - type: string - x-enum-varnames: - - PARQUET - ObservabilityPipelineAmazonS3Source: - description: |- - The `amazon_s3` source ingests logs from an Amazon S3 bucket. - It supports AWS authentication, TLS encryption, and configurable compression. - - **Supported pipeline types:** logs + MicrosoftTeamsUpdateWorkflowsWebhookHandleRequest: + description: Update Workflows webhook handle request. properties: - auth: - $ref: "#/components/schemas/ObservabilityPipelineAwsAuth" - compression: - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3SourceCompression" - id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: aws-s3-source - type: string - region: - description: AWS region where the S3 bucket resides. - example: us-east-1 - type: string - tls: - $ref: "#/components/schemas/ObservabilityPipelineTls" + data: + $ref: "#/components/schemas/MicrosoftTeamsUpdateWorkflowsWebhookHandleRequestData" + required: + - data + type: object + MicrosoftTeamsUpdateWorkflowsWebhookHandleRequestData: + description: Workflows Webhook handle data from a response. + properties: + attributes: + $ref: "#/components/schemas/MicrosoftTeamsWorkflowsWebhookHandleAttributes" type: - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3SourceType" - url_key: - description: Name of the environment variable or secret that holds the S3 bucket URL. - example: S3_BUCKET_URL - type: string + $ref: "#/components/schemas/MicrosoftTeamsWorkflowsWebhookHandleType" required: - - id - type - - region + - attributes type: object - x-pipeline-types: [logs] - ObservabilityPipelineAmazonS3SourceCompression: - description: Compression format for objects retrieved from the S3 bucket. Use `auto` to detect compression from the object's Content-Encoding header or file extension. - enum: - - auto - - none - - gzip - - zstd - example: gzip - type: string - x-enum-varnames: - - AUTO - - NONE - - GZIP - - ZSTD - ObservabilityPipelineAmazonS3SourceType: - default: amazon_s3 - description: The source type. Always `amazon_s3`. - enum: - - amazon_s3 - example: amazon_s3 - type: string - x-enum-varnames: - - AMAZON_S3 - ObservabilityPipelineAmazonSecurityLakeDestination: - description: |- - The `amazon_security_lake` destination sends your logs to Amazon Security Lake. - - **Supported pipeline types:** logs + MicrosoftTeamsWorkflowsWebhookHandleAttributes: + description: Workflows Webhook handle attributes. properties: - auth: - $ref: "#/components/schemas/ObservabilityPipelineAwsAuth" - bucket: - description: Name of the Amazon S3 bucket in Security Lake (3-63 characters). - example: "security-lake-bucket" + name: + description: Workflows Webhook handle name. + example: "fake-handle-name" + maxLength: 255 type: string - buffer: - $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" - custom_source_name: - description: Custom source name for the logs in Security Lake. - example: "my-custom-source" + url: + description: Workflows Webhook URL. + example: "https://fake.url.com" + maxLength: 255 type: string - id: - description: Unique identifier for the destination component. - example: amazon-security-lake-destination + type: object + MicrosoftTeamsWorkflowsWebhookHandleRequestAttributes: + description: Workflows Webhook handle attributes. + properties: + name: + description: Workflows Webhook handle name. + example: "fake-handle-name" + maxLength: 255 type: string - inputs: - description: A list of component IDs whose output is used as the `input` for this component. - example: ["filter-processor"] - items: - description: The ID of a component whose output is used as input for this destination. - type: string - type: array - region: - description: AWS region of the S3 bucket. - example: "us-east-1" + url: + description: Workflows Webhook URL. + example: "https://fake.url.com" + maxLength: 255 type: string - tls: - $ref: "#/components/schemas/ObservabilityPipelineTls" + required: + - name + - url + type: object + MicrosoftTeamsWorkflowsWebhookHandleRequestData: + description: Workflows Webhook handle data from a response. + properties: + attributes: + $ref: "#/components/schemas/MicrosoftTeamsWorkflowsWebhookHandleRequestAttributes" type: - $ref: "#/components/schemas/ObservabilityPipelineAmazonSecurityLakeDestinationType" + $ref: "#/components/schemas/MicrosoftTeamsWorkflowsWebhookHandleType" required: - - id - type - - inputs - - bucket - - region - - custom_source_name + - attributes type: object - x-pipeline-types: [logs] - ObservabilityPipelineAmazonSecurityLakeDestinationType: - default: amazon_security_lake - description: The destination type. Always `amazon_security_lake`. + MicrosoftTeamsWorkflowsWebhookHandleResponse: + description: Response of a Workflows webhook handle. + properties: + data: + $ref: "#/components/schemas/MicrosoftTeamsWorkflowsWebhookHandleResponseData" + required: + - data + type: object + MicrosoftTeamsWorkflowsWebhookHandleResponseData: + description: Workflows Webhook handle data from a response. + properties: + attributes: + $ref: "#/components/schemas/MicrosoftTeamsWorkflowsWebhookResponseAttributes" + id: + description: The ID of the Workflows webhook handle. + example: "596da4af-0563-4097-90ff-07230c3f9db3" + maxLength: 100 + minLength: 1 + type: string + type: + $ref: "#/components/schemas/MicrosoftTeamsWorkflowsWebhookHandleType" + type: object + MicrosoftTeamsWorkflowsWebhookHandleType: + default: workflows-webhook-handle + description: Specifies the Workflows webhook handle resource type. enum: - - amazon_security_lake - example: amazon_security_lake + - workflows-webhook-handle + example: workflows-webhook-handle type: string x-enum-varnames: - - AMAZON_SECURITY_LAKE - ObservabilityPipelineAwsAuth: - description: |- - AWS authentication credentials used for accessing AWS services such as S3. - If omitted, the system’s default credentials are used (for example, the IAM role and environment variables). + - WORKFLOWS_WEBHOOK_HANDLE + MicrosoftTeamsWorkflowsWebhookHandlesResponse: + description: Response with a list of Workflows webhook handles. properties: - assume_role: - description: The Amazon Resource Name (ARN) of the role to assume. - type: string - external_id: - description: A unique identifier for cross-account role assumption. - type: string - session_name: - description: A session identifier used for logging and tracing the assumed role session. + data: + description: An array of Workflows webhook handles. + example: [{"attributes": {"name": "general-handle"}, "id": "596da4af-0563-4097-90ff-07230c3f9db3", "type": "workflows-webhook-handle"}, {"attributes": {"name": "general-handle-2"}, "id": "596da4af-0563-4097-90ff-07230c3f9db4", "type": "workflows-webhook-handle"}] + items: + $ref: "#/components/schemas/MicrosoftTeamsWorkflowsWebhookHandleResponseData" + type: array + required: + - data + type: object + MicrosoftTeamsWorkflowsWebhookResponseAttributes: + description: Workflows Webhook handle attributes. + properties: + name: + description: Workflows Webhook handle name. + example: "fake-handle-name" + maxLength: 255 type: string type: object - ObservabilityPipelineAzureStorageDestinationCompression: - description: |- - Compression configuration for archived logs. When omitted, logs are compressed with gzip - for backward compatibility. - oneOf: - - $ref: "#/components/schemas/ObservabilityPipelineAzureStorageDestinationCompressionZstd" - - $ref: "#/components/schemas/ObservabilityPipelineAzureStorageDestinationCompressionGzip" - ObservabilityPipelineAzureStorageDestinationCompressionGzip: - description: Gzip compression. + ModelLabArtifactInfo: + description: Information about a project-level artifact file. properties: - algorithm: - $ref: "#/components/schemas/ObservabilityPipelineAzureStorageDestinationCompressionGzipType" - level: - description: Gzip compression level. Valid values range from `1` to `9`. - example: 6 + artifact_path: + description: The full artifact path relative to the project's artifact root. + example: projects/1/artifacts/model.pkl + type: string + created_at: + description: The date and time the artifact was created. + example: "2024-01-20T10:00:00Z" + format: date-time + type: string + file_size: + description: The size of the file in bytes. format: int64 - maximum: 9 - minimum: 1 + nullable: true type: integer + filename: + description: The filename of the artifact. + example: model.pkl + type: string required: - - algorithm - - level + - filename + - artifact_path + - created_at type: object - ObservabilityPipelineAzureStorageDestinationCompressionGzipType: - default: gzip - description: The compression type. Always `gzip`. - enum: - - gzip - example: gzip - type: string - x-enum-varnames: - - GZIP - ObservabilityPipelineAzureStorageDestinationCompressionZstd: - description: Zstd compression. + ModelLabArtifactObjectInfo: + description: Information about an artifact file or directory within a run. properties: - algorithm: - $ref: "#/components/schemas/ObservabilityPipelineAzureStorageDestinationCompressionZstdType" - level: - description: Zstd compression level. Valid values range from `1` to `21`. - example: 3 + file_size: + description: The size of the file in bytes. format: int64 - maximum: 21 - minimum: 1 + nullable: true type: integer + is_dir: + description: Whether this artifact entry is a directory. + example: false + type: boolean + path: + description: The path of the artifact relative to the run's artifact root. + example: model/weights.pt + type: string required: - - algorithm - - level + - path + - is_dir type: object - ObservabilityPipelineAzureStorageDestinationCompressionZstdType: - default: zstd - description: The compression type. Always `zstd`. - enum: - - zstd - example: zstd - type: string - x-enum-varnames: - - ZSTD - ObservabilityPipelineBufferOptions: - description: Configuration for buffer settings on destination components. - oneOf: - - $ref: "#/components/schemas/ObservabilityPipelineDiskBufferOptions" - - $ref: "#/components/schemas/ObservabilityPipelineMemoryBufferOptions" - - $ref: "#/components/schemas/ObservabilityPipelineMemoryBufferSizeOptions" - ObservabilityPipelineBufferOptionsDiskType: - default: disk - description: The type of the buffer that will be configured, a disk buffer. - enum: - - disk - type: string - x-enum-varnames: - - DISK - ObservabilityPipelineBufferOptionsMemoryType: - default: memory - description: The type of the buffer that will be configured, a memory buffer. + ModelLabFacetKeysAttributes: + description: Available facet key names for filtering resources. + properties: + metrics: + description: The list of available metric facet keys. + example: + - accuracy + items: + type: string + nullable: true + type: array + parameters: + description: The list of available parameter facet keys. + example: + - learning_rate + items: + type: string + type: array + tags: + description: The list of available tag facet keys. + example: + - model + items: + type: string + type: array + required: + - parameters + - tags + - metrics + type: object + ModelLabFacetKeysData: + description: A facet keys JSON:API resource object. + properties: + attributes: + $ref: "#/components/schemas/ModelLabFacetKeysAttributes" + id: + description: The unique identifier of the facet keys resource. + example: "1" + type: string + type: + $ref: "#/components/schemas/ModelLabFacetKeysType" + required: + - id + - type + - attributes + type: object + ModelLabFacetKeysResponse: + description: Response containing available facet keys. + properties: + data: + $ref: "#/components/schemas/ModelLabFacetKeysData" + required: + - data + type: object + ModelLabFacetKeysType: + description: The JSON:API type for a facet keys resource. enum: - - memory + - facet_keys + example: facet_keys type: string x-enum-varnames: - - MEMORY - ObservabilityPipelineBufferOptionsWhenFull: - default: block - description: Behavior when the buffer is full (block and stop accepting new events, or drop new events) + - FACET_KEYS + ModelLabFacetType: + description: The type of facet for filtering Model Lab runs. enum: - - block - - drop_newest + - parameter + - attribute + - tag + - metric + example: tag type: string x-enum-varnames: - - BLOCK - - DROP_NEWEST - ObservabilityPipelineClickhouseDestination: - description: |- - The `clickhouse` destination sends log events to a ClickHouse database table over HTTP. - - **Supported pipeline types:** logs. + - PARAMETER + - ATTRIBUTE + - TAG + - METRIC + ModelLabFacetValuesAttributes: + description: Available values for a specific facet key. properties: - auth: - $ref: "#/components/schemas/ObservabilityPipelineClickhouseDestinationAuth" - batch: - $ref: "#/components/schemas/ObservabilityPipelineClickhouseDestinationBatch" - batch_encoding: - $ref: "#/components/schemas/ObservabilityPipelineClickhouseDestinationBatchEncoding" - buffer: - $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" - compression: - $ref: "#/components/schemas/ObservabilityPipelineClickhouseDestinationCompression" - database: - description: Optional ClickHouse database name. If omitted, the user's default database on the ClickHouse server is used. - example: my_database - type: string - date_time_best_effort: - description: When `true`, enables flexible DateTime parsing on the ClickHouse server side. - example: false - type: boolean - endpoint_url_key: - description: |- - Name of the environment variable or secret that contains the ClickHouse HTTP endpoint URL. - Defaults to `DESTINATION_CLICKHOUSE_ENDPOINT_URL` (prefixed with `DD_OP_` at runtime). - example: CLICKHOUSE_ENDPOINT_URL + facet_name: + description: The name of the facet. + example: model type: string - format: - $ref: "#/components/schemas/ObservabilityPipelineClickhouseDestinationFormat" - id: - description: The unique identifier for this component. - example: clickhouse-destination + facet_type: + description: The type of the facet. + example: tag type: string - inputs: - description: A list of component IDs whose output is used as the `input` for this component. - example: ["filter-processor"] + metric_stat_ranges: + description: The ranges for each metric statistic. + items: + $ref: "#/components/schemas/ModelLabMetricStatRange" + type: array + numeric_range: + $ref: "#/components/schemas/ModelLabNumericRange" + values: + description: The list of available string values for this facet. + example: + - gpt4 items: - description: The ID of a component whose output is used as input for this destination. type: string type: array - skip_unknown_fields: - description: |- - When `true`, fields not present in the target table schema are dropped instead of causing insert errors. - When unset, the ClickHouse server's own `input_format_skip_unknown_fields` setting applies. - example: true - nullable: true - type: boolean - table: - description: Target ClickHouse table name. Events are inserted into this table. - example: application_logs + required: + - facet_type + - facet_name + - values + type: object + ModelLabFacetValuesData: + description: A facet values JSON:API resource object. + properties: + attributes: + $ref: "#/components/schemas/ModelLabFacetValuesAttributes" + id: + description: The unique identifier of the facet values resource. + example: "1" type: string - tls: - $ref: "#/components/schemas/ObservabilityPipelineTls" type: - $ref: "#/components/schemas/ObservabilityPipelineClickhouseDestinationType" + $ref: "#/components/schemas/ModelLabFacetValuesType" required: - id - type - - inputs - - table + - attributes type: object - x-pipeline-types: [logs] - ObservabilityPipelineClickhouseDestinationAuth: - description: |- - HTTP Basic Authentication credentials for the ClickHouse destination. - When `strategy` is `basic`, provide `username_key` and `password_key` that reference environment variables or secrets containing the credentials. + ModelLabFacetValuesResponse: + description: Response containing available values for a facet key. properties: - password_key: - description: Name of the environment variable or secret that contains the ClickHouse password. - example: CLICKHOUSE_PASSWORD - type: string - strategy: - $ref: "#/components/schemas/ObservabilityPipelineClickhouseDestinationAuthStrategy" - username_key: - description: Name of the environment variable or secret that contains the ClickHouse username. - example: CLICKHOUSE_USERNAME - type: string + data: + $ref: "#/components/schemas/ModelLabFacetValuesData" required: - - strategy + - data type: object - ObservabilityPipelineClickhouseDestinationAuthStrategy: - description: The authentication strategy for ClickHouse HTTP requests. Only `basic` is supported. + ModelLabFacetValuesType: + description: The JSON:API type for a facet values resource. enum: - - basic - example: basic + - facet_values + example: facet_values type: string x-enum-varnames: - - BASIC - ObservabilityPipelineClickhouseDestinationBatch: - description: Batching configuration for ClickHouse inserts. + - FACET_VALUES + ModelLabMetricStatRange: + description: The range of values for a specific metric statistic. properties: - max_events: - description: Maximum number of events per batch before it is flushed. - example: 1000 + max: + description: The maximum value of the statistic. + example: 1.0 + format: double + type: number + min: + description: The minimum value of the statistic. + example: 0.0 + format: double + type: number + stat: + description: The metric statistic name. + example: mean + type: string + required: + - stat + - min + - max + type: object + ModelLabMetricSummary: + description: Summary statistics for a metric recorded during a Model Lab run. + properties: + count: + description: The total number of recorded values. + example: 100 format: int64 - minimum: 1 type: integer - timeout_secs: - description: Maximum number of seconds to wait before flushing a partial batch. - example: 1 + first_step: + description: The first step at which the metric was recorded. format: int64 - maximum: 65535 - minimum: 1 + nullable: true type: integer - type: object - ObservabilityPipelineClickhouseDestinationBatchEncoding: - description: |- - Batch encoding configuration for the ClickHouse destination. - Required when `format` is `arrow_stream`. The `codec` field must be set to `arrow_stream`. - properties: - allow_nullable_fields: - description: |- - When `true`, null values are allowed for non-nullable fields in the ClickHouse schema. - When `false` (default), missing values for non-nullable columns cause encoding errors. - example: false - type: boolean - codec: - $ref: "#/components/schemas/ObservabilityPipelineClickhouseDestinationBatchEncodingCodec" + key: + description: The metric name. + example: accuracy + type: string + last_step: + description: The last step at which the metric was recorded. + format: int64 + nullable: true + type: integer + latest: + description: The most recently recorded value. + format: double + nullable: true + type: number + max: + description: The maximum recorded value. + format: double + nullable: true + type: number + mean: + description: The mean of recorded values. + format: double + nullable: true + type: number + min: + description: The minimum recorded value. + format: double + nullable: true + type: number + stddev: + description: The standard deviation of recorded values. + format: double + nullable: true + type: number required: - - codec + - key + - count type: object - ObservabilityPipelineClickhouseDestinationBatchEncodingCodec: - description: The codec used for batch encoding. Only `arrow_stream` is supported. - enum: - - arrow_stream - example: arrow_stream - type: string - x-enum-varnames: - - ARROW_STREAM - ObservabilityPipelineClickhouseDestinationCompression: - description: |- - Compression setting for outbound HTTP requests to ClickHouse. - Can be specified as a shorthand string (`"gzip"` or `"none"`) or as an object - with an `algorithm` field and an optional `level` (gzip only, 1–9). - oneOf: - - $ref: "#/components/schemas/ObservabilityPipelineClickhouseDestinationCompressionAlgorithm" - - $ref: "#/components/schemas/ObservabilityPipelineClickhouseDestinationCompressionObject" - ObservabilityPipelineClickhouseDestinationCompressionAlgorithm: - description: The compression algorithm applied to outbound HTTP requests. - enum: - - gzip - - none - example: gzip - type: string - x-enum-varnames: - - GZIP - - NONE - ObservabilityPipelineClickhouseDestinationCompressionObject: - description: |- - Structured compression configuration for the ClickHouse destination. - Use `algorithm` to specify the compression type and `level` (optional, gzip only) to control compression strength. + ModelLabNumericRange: + description: The numeric range of values for a facet. properties: - algorithm: - $ref: "#/components/schemas/ObservabilityPipelineClickhouseDestinationCompressionAlgorithm" - level: - description: Compression level (1–9). Only applicable when `algorithm` is `gzip`. - example: 6 + max: + description: The maximum value. + example: 1.0 + format: double + type: number + min: + description: The minimum value. + example: 0.0 + format: double + type: number + required: + - min + - max + type: object + ModelLabPageMeta: + description: Pagination metadata for a list response. + properties: + page: + $ref: "#/components/schemas/ModelLabPageMetaPage" + required: + - page + type: object + ModelLabPageMetaPage: + description: Pagination details for a list response. + properties: + first_number: + description: The first page number. + format: int64 + type: integer + last_number: + description: The last page number. + format: int64 + type: integer + next_number: + description: The next page number. + format: int64 + nullable: true + type: integer + number: + description: The current page number. + example: 1 + format: int64 + type: integer + prev_number: + description: The previous page number. + format: int64 + nullable: true + type: integer + size: + description: The number of items per page. + example: 25 + format: int64 + type: integer + total: + description: The total number of items. + example: 100 format: int64 - maximum: 9 - minimum: 1 type: integer + type: + description: The pagination type. + type: string required: - - algorithm + - number + - size + - total type: object - ObservabilityPipelineClickhouseDestinationFormat: - description: |- - Insert format for events sent to ClickHouse. - - `json_each_row`: Maps event fields to columns by name (ClickHouse `JSONEachRow`). - - `json_as_object`: Inserts each event into a single `Object('json')` / `JSON` column (ClickHouse `JSONAsObject`). - - `json_as_string`: Inserts each event into a single `String`-typed column as raw JSON (ClickHouse `JSONAsString`). - - `arrow_stream`: Batches events using Apache Arrow IPC streaming format. Requires `batch_encoding`. - enum: - - json_each_row - - json_as_object - - json_as_string - - arrow_stream - example: json_each_row - type: string - x-enum-varnames: - - JSON_EACH_ROW - - JSON_AS_OBJECT - - JSON_AS_STRING - - ARROW_STREAM - ObservabilityPipelineClickhouseDestinationType: - default: clickhouse - description: The destination type. The value must be `clickhouse`. - enum: - - clickhouse - example: clickhouse - type: string - x-enum-varnames: - - CLICKHOUSE - ObservabilityPipelineClientTls: - description: Configuration for enabling TLS encryption between the pipeline component and external services. + ModelLabPaginationLinks: + description: Pagination links for navigating list responses. properties: - ca_file: - description: Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate. + first: + description: Link to the first page. type: string - crt_file: - description: Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services. - example: "/path/to/cert.crt" + last: + description: Link to the last page. type: string - key_file: - description: Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication. + next: + description: Link to the next page. + nullable: true type: string - key_pass_key: - description: Name of the environment variable or secret that holds the passphrase for the private key file. - example: TLS_KEY_PASSPHRASE + prev: + description: Link to the previous page. + nullable: true type: string - server_name: - description: Server name to use for Server Name Indication (SNI) and to verify against the certificate presented by the remote host. Use this when the address you connect to doesn't match the certificate's Common Name or Subject Alternative Name. - example: server.example.com - maxLength: 253 - minLength: 1 + self: + description: Link to the current page. type: string + type: object + ModelLabProjectArtifactsAttributes: + description: Artifact listing for a Model Lab project. + properties: + files: + description: The list of artifact files associated with the project. + items: + $ref: "#/components/schemas/ModelLabArtifactInfo" + type: array required: - - crt_file + - files type: object - ObservabilityPipelineCloudPremDestination: - description: |- - The `cloud_prem` destination sends logs to Datadog CloudPrem. - - **Supported pipeline types:** logs + ModelLabProjectArtifactsData: + description: A project artifacts JSON:API resource object. properties: - buffer: - $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" - endpoint_url_key: - description: Name of the environment variable or secret that holds the CloudPrem endpoint URL. - example: CLOUDPREM_ENDPOINT_URL - type: string + attributes: + $ref: "#/components/schemas/ModelLabProjectArtifactsAttributes" id: - description: The unique identifier for this component. - example: cloud-prem-destination + description: The unique identifier of the project artifacts resource. + example: "1" type: string - inputs: - description: A list of component IDs whose output is used as the `input` for this component. - example: ["filter-processor"] - items: - description: The ID of a component whose output is used as input for this destination. - type: string - type: array - tls: - $ref: "#/components/schemas/ObservabilityPipelineClientTls" - description: Configuration for TLS encryption. type: - $ref: "#/components/schemas/ObservabilityPipelineCloudPremDestinationType" + $ref: "#/components/schemas/ModelLabProjectArtifactsType" required: - id - type - - inputs + - attributes type: object - x-pipeline-types: [logs] - ObservabilityPipelineCloudPremDestinationType: - default: cloud_prem - description: The destination type. The value should always be `cloud_prem`. - enum: - - cloud_prem - example: cloud_prem - type: string - x-enum-varnames: - - CLOUD_PREM - ObservabilityPipelineComponentDisplayName: - description: The display name for a component. - example: "my component" - type: string - ObservabilityPipelineConfig: - description: Specifies the pipeline's configuration, including its sources, processors, and destinations. + ModelLabProjectArtifactsResponse: + description: Response containing the artifact listing for a Model Lab project. properties: - destinations: - description: A list of destination components where processed logs are sent. - example: [{"id": "datadog-logs-destination", "inputs": ["my-processor-group"], "type": "datadog_logs"}] - items: - $ref: "#/components/schemas/ObservabilityPipelineConfigDestinationItem" - type: array - pipeline_type: - $ref: "#/components/schemas/ObservabilityPipelineConfigPipelineType" - processor_groups: - description: A list of processor groups that transform or enrich log data. - example: [{"enabled": true, "id": "my-processor-group", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}, {"enabled": true, "field": "message", "id": "json-processor", "include": "*", "type": "parse_json"}]}] - items: - $ref: "#/components/schemas/ObservabilityPipelineConfigProcessorGroup" - type: array - processors: - deprecated: true - description: |- - A list of processor groups that transform or enrich log data. - - **Deprecated:** This field is deprecated, you should now use the processor_groups field. - example: [] - items: - $ref: "#/components/schemas/ObservabilityPipelineConfigProcessorGroup" - type: array - sources: - description: A list of configured data sources for the pipeline. - example: [{"id": "datadog-agent-source", "type": "datadog_agent"}] - items: - $ref: "#/components/schemas/ObservabilityPipelineConfigSourceItem" - type: array - use_legacy_search_syntax: - description: |- - Set to `true` to continue using the legacy search syntax while migrating filter queries. After migrating all queries to the new syntax, set to `false`. - The legacy syntax is deprecated and will eventually be removed. - Requires Observability Pipelines Worker 2.11 or later. - Only applies to `logs` pipelines. This field is ignored for `metrics` pipelines. - See [Upgrade Your Filter Queries to the New Search Syntax](https://docs.datadoghq.com/observability_pipelines/guide/upgrade_your_filter_queries_to_the_new_search_syntax/) for more information. - type: boolean + data: + $ref: "#/components/schemas/ModelLabProjectArtifactsData" required: - - sources - - destinations + - data type: object - ObservabilityPipelineConfigDestinationItem: - description: "A destination for the pipeline." - oneOf: - - $ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestination" - - $ref: "#/components/schemas/ObservabilityPipelineHttpClientDestination" - - $ref: "#/components/schemas/ObservabilityPipelineAmazonOpenSearchDestination" - - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3Destination" - - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericDestination" - - $ref: "#/components/schemas/ObservabilityPipelineAmazonSecurityLakeDestination" - - $ref: "#/components/schemas/AzureStorageDestination" - - $ref: "#/components/schemas/ObservabilityPipelineClickhouseDestination" - - $ref: "#/components/schemas/ObservabilityPipelineCloudPremDestination" - - $ref: "#/components/schemas/ObservabilityPipelineCrowdStrikeNextGenSiemDestination" - - $ref: "#/components/schemas/ObservabilityPipelineDatadogLogsDestination" - - $ref: "#/components/schemas/ObservabilityPipelineGoogleChronicleDestination" - - $ref: "#/components/schemas/ObservabilityPipelineGoogleCloudStorageDestination" - - $ref: "#/components/schemas/ObservabilityPipelineGooglePubSubDestination" - - $ref: "#/components/schemas/ObservabilityPipelineKafkaDestination" - - $ref: "#/components/schemas/MicrosoftSentinelDestination" - - $ref: "#/components/schemas/ObservabilityPipelineNewRelicDestination" - - $ref: "#/components/schemas/ObservabilityPipelineOpenSearchDestination" - - $ref: "#/components/schemas/ObservabilityPipelineRsyslogDestination" - - $ref: "#/components/schemas/ObservabilityPipelineSentinelOneDestination" - - $ref: "#/components/schemas/ObservabilityPipelineSocketDestination" - - $ref: "#/components/schemas/ObservabilityPipelineSplunkHecDestination" - - $ref: "#/components/schemas/ObservabilityPipelineSumoLogicDestination" - - $ref: "#/components/schemas/ObservabilityPipelineSyslogNgDestination" - - $ref: "#/components/schemas/ObservabilityPipelineDatabricksZerobusDestination" - - $ref: "#/components/schemas/ObservabilityPipelineDatadogMetricsDestination" - - $ref: "#/components/schemas/ObservabilityPipelineOpentelemetryMetricsDestination" - - $ref: "#/components/schemas/ObservabilityPipelinePrometheusRemoteWriteDestination" - - $ref: "#/components/schemas/ObservabilityPipelineSplunkHecMetricsDestination" - ObservabilityPipelineConfigPipelineType: - default: logs - description: The type of data being ingested. Defaults to `logs` if not specified. - enum: [logs, metrics] - example: logs + ModelLabProjectArtifactsType: + description: The JSON:API type for a project artifacts resource. + enum: + - project_files + example: project_files type: string x-enum-varnames: - - LOGS - - METRICS - ObservabilityPipelineConfigProcessorGroup: - description: "A group of processors." - example: {"enabled": true, "id": "my-processor-group", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "fields": [{"name": "env", "value": "prod"}], "id": "add-fields-processor", "include": "*", "type": "add_fields"}, {"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}]} + - PROJECT_FILES + ModelLabProjectAttributes: + description: Attributes of a Model Lab project. properties: - display_name: - $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" - enabled: - description: Whether this processor group is enabled. - example: true + artifact_storage_location: + description: The storage location for project artifacts. + example: s3://bucket/active-project + type: string + created_at: + description: The date and time the project was created. + example: "2024-01-20T10:00:00Z" + format: date-time + type: string + deleted_at: + description: The date and time the project was soft-deleted. + format: date-time + nullable: true + type: string + description: + description: A description of the project. + example: A machine learning training project. + type: string + external_url: + description: An optional external URL associated with the project. + nullable: true + type: string + is_starred: + description: Whether the project is starred by the current user. + example: false type: boolean - id: - description: The unique identifier for the processor group. - example: "grouped-processors" + name: + description: The name of the project. + example: active-project type: string - include: - description: Conditional expression for when this processor group should execute. - example: "service:my-service" + owner_id: + description: The UUID of the project owner. + nullable: true type: string - inputs: - description: A list of IDs for components whose output is used as the input for this processor group. - example: ["datadog-agent-source"] - items: - description: The ID of a component whose output is used as input. - type: string - type: array - processors: - description: Processors applied sequentially within this group. Events flow through each processor in order. - example: [{"enabled": true, "fields": [{"name": "env", "value": "prod"}], "id": "add-fields-processor", "include": "*", "type": "add_fields"}, {"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}] + tags: + description: The list of tags associated with the project. items: - $ref: "#/components/schemas/ObservabilityPipelineConfigProcessorItem" + $ref: "#/components/schemas/ModelLabTag" type: array + updated_at: + description: The date and time the project was last updated. + example: "2024-01-20T11:00:00Z" + format: date-time + type: string required: - - id - - include - - inputs - - processors - - enabled + - name + - description + - artifact_storage_location + - created_at + - updated_at + - tags + - is_starred type: object - ObservabilityPipelineConfigProcessorItem: - description: "A processor for the pipeline." - oneOf: - - $ref: "#/components/schemas/ObservabilityPipelineFilterProcessor" - - $ref: "#/components/schemas/ObservabilityPipelineAddEnvVarsProcessor" - - $ref: "#/components/schemas/ObservabilityPipelineAddFieldsProcessor" - - $ref: "#/components/schemas/ObservabilityPipelineAddHostnameProcessor" - - $ref: "#/components/schemas/ObservabilityPipelineCustomProcessor" - - $ref: "#/components/schemas/ObservabilityPipelineDatadogTagsProcessor" - - $ref: "#/components/schemas/ObservabilityPipelineDedupeProcessor" - - $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableProcessor" - - $ref: "#/components/schemas/ObservabilityPipelineGenerateMetricsProcessor" - - $ref: "#/components/schemas/ObservabilityPipelineGenerateMetricsV2Processor" - - $ref: "#/components/schemas/ObservabilityPipelineOcsfMapperProcessor" - - $ref: "#/components/schemas/ObservabilityPipelineParseGrokProcessor" - - $ref: "#/components/schemas/ObservabilityPipelineParseJSONProcessor" - - $ref: "#/components/schemas/ObservabilityPipelineParseXMLProcessor" - - $ref: "#/components/schemas/ObservabilityPipelineQuotaProcessor" - - $ref: "#/components/schemas/ObservabilityPipelineReduceProcessor" - - $ref: "#/components/schemas/ObservabilityPipelineRemoveFieldsProcessor" - - $ref: "#/components/schemas/ObservabilityPipelineRenameFieldsProcessor" - - $ref: "#/components/schemas/ObservabilityPipelineSampleProcessor" - - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessor" - - $ref: "#/components/schemas/ObservabilityPipelineSplitArrayProcessor" - - $ref: "#/components/schemas/ObservabilityPipelineThrottleProcessor" - - $ref: "#/components/schemas/ObservabilityPipelineAddMetricTagsProcessor" - - $ref: "#/components/schemas/ObservabilityPipelineAggregateProcessor" - - $ref: "#/components/schemas/ObservabilityPipelineMetricEnrichmentTableProcessor" - - $ref: "#/components/schemas/ObservabilityPipelineMetricTagsProcessor" - - $ref: "#/components/schemas/ObservabilityPipelineRenameMetricTagsProcessor" - - $ref: "#/components/schemas/ObservabilityPipelineTagCardinalityLimitProcessor" - ObservabilityPipelineConfigSourceItem: - description: "A data source for the pipeline." - oneOf: - - $ref: "#/components/schemas/ObservabilityPipelineDatadogAgentSource" - - $ref: "#/components/schemas/ObservabilityPipelineAmazonDataFirehoseSource" - - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3Source" - - $ref: "#/components/schemas/ObservabilityPipelineFluentBitSource" - - $ref: "#/components/schemas/ObservabilityPipelineFluentdSource" - - $ref: "#/components/schemas/ObservabilityPipelineGooglePubSubSource" - - $ref: "#/components/schemas/ObservabilityPipelineHttpClientSource" - - $ref: "#/components/schemas/ObservabilityPipelineHttpServerSource" - - $ref: "#/components/schemas/ObservabilityPipelineKafkaSource" - - $ref: "#/components/schemas/ObservabilityPipelineLogstashSource" - - $ref: "#/components/schemas/ObservabilityPipelineRsyslogSource" - - $ref: "#/components/schemas/ObservabilityPipelineSocketSource" - - $ref: "#/components/schemas/ObservabilityPipelineSplunkHecSource" - - $ref: "#/components/schemas/ObservabilityPipelineSplunkTcpSource" - - $ref: "#/components/schemas/ObservabilityPipelineSumoLogicSource" - - $ref: "#/components/schemas/ObservabilityPipelineSyslogNgSource" - - $ref: "#/components/schemas/ObservabilityPipelineWebsocketSource" - - $ref: "#/components/schemas/ObservabilityPipelineOpentelemetrySource" - - $ref: "#/components/schemas/ObservabilityPipelinePrometheusRemoteWriteSource" - ObservabilityPipelineCrowdStrikeNextGenSiemDestination: - description: |- - The `crowdstrike_next_gen_siem` destination forwards logs to CrowdStrike Next Gen SIEM. - - **Supported pipeline types:** logs + ModelLabProjectData: + description: A Model Lab project JSON:API resource object. properties: - buffer: - $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" - compression: - $ref: "#/components/schemas/ObservabilityPipelineCrowdStrikeNextGenSiemDestinationCompression" - encoding: - $ref: "#/components/schemas/ObservabilityPipelineCrowdStrikeNextGenSiemDestinationEncoding" - endpoint_url_key: - description: Name of the environment variable or secret that holds the CrowdStrike endpoint URL. - example: CROWDSTRIKE_ENDPOINT_URL - type: string + attributes: + $ref: "#/components/schemas/ModelLabProjectAttributes" id: - description: The unique identifier for this component. - example: crowdstrike-ngsiem-destination - type: string - inputs: - description: A list of component IDs whose output is used as the `input` for this component. - example: ["filter-processor"] - items: - description: The ID of a component whose output is used as input for this destination. - type: string - type: array - tls: - $ref: "#/components/schemas/ObservabilityPipelineTls" - token_key: - description: Name of the environment variable or secret that holds the CrowdStrike API token. - example: CROWDSTRIKE_TOKEN + description: The unique identifier of the project. + example: "2" type: string type: - $ref: "#/components/schemas/ObservabilityPipelineCrowdStrikeNextGenSiemDestinationType" + $ref: "#/components/schemas/ModelLabProjectType" required: - id - type - - inputs - - encoding - type: object - x-pipeline-types: [logs] - ObservabilityPipelineCrowdStrikeNextGenSiemDestinationCompression: - description: Compression configuration for log events. - properties: - algorithm: - $ref: "#/components/schemas/ObservabilityPipelineCrowdStrikeNextGenSiemDestinationCompressionAlgorithm" - level: - description: Compression level. - example: 6 - format: int64 - type: integer - required: - - algorithm + - attributes type: object - ObservabilityPipelineCrowdStrikeNextGenSiemDestinationCompressionAlgorithm: - description: Compression algorithm for log events. - enum: - - gzip - - zlib - example: gzip - type: string - x-enum-varnames: - - GZIP - - ZLIB - ObservabilityPipelineCrowdStrikeNextGenSiemDestinationEncoding: - description: Encoding format for log events. + ModelLabProjectFacetType: + description: The type of facet for filtering Model Lab projects. enum: - - json - - raw_message - example: json + - tag + example: tag type: string x-enum-varnames: - - JSON - - RAW_MESSAGE - ObservabilityPipelineCrowdStrikeNextGenSiemDestinationType: - default: crowdstrike_next_gen_siem - description: The destination type. The value should always be `crowdstrike_next_gen_siem`. + - TAG + ModelLabProjectResponse: + description: Response containing a single Model Lab project. + properties: + data: + $ref: "#/components/schemas/ModelLabProjectData" + required: + - data + type: object + ModelLabProjectType: + description: The JSON:API type for a Model Lab project resource. enum: - - crowdstrike_next_gen_siem - example: crowdstrike_next_gen_siem + - projects + example: projects type: string x-enum-varnames: - - CROWDSTRIKE_NEXT_GEN_SIEM - ObservabilityPipelineCustomProcessor: - description: |- - The `custom_processor` processor transforms events using [Vector Remap Language (VRL)](https://vector.dev/docs/reference/vrl/) scripts with advanced filtering capabilities. - - **Supported pipeline types:** logs + - PROJECTS + ModelLabProjectsResponse: + description: Response containing a list of Model Lab projects with pagination metadata. properties: - display_name: - $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" - enabled: - description: Indicates whether the processor is enabled. - example: true - type: boolean - id: - description: The unique identifier for this processor. - example: remap-vrl-processor - type: string - include: - default: "*" - description: A Datadog search query used to determine which logs this processor targets. This field should always be set to `*` for the custom_processor processor. - example: "*" - type: string - remaps: - description: Array of VRL remap rules. + data: + description: The list of projects. items: - $ref: "#/components/schemas/ObservabilityPipelineCustomProcessorRemap" - minItems: 1 + $ref: "#/components/schemas/ModelLabProjectData" type: array - type: - $ref: "#/components/schemas/ObservabilityPipelineCustomProcessorType" + links: + $ref: "#/components/schemas/ModelLabPaginationLinks" + meta: + $ref: "#/components/schemas/ModelLabPageMeta" required: - - id - - type - - include - - remaps - - enabled + - data + - meta type: object - x-pipeline-types: [logs] - ObservabilityPipelineCustomProcessorRemap: - description: Defines a single VRL remap rule with its own filtering and transformation logic. + ModelLabRunArtifactsAttributes: + description: Artifact listing for a Model Lab run. properties: - drop_on_error: - description: Whether to drop events that caused errors during processing. - example: false - type: boolean - enabled: - description: Whether this remap rule is enabled. - example: true - type: boolean - include: - description: A Datadog search query used to filter events for this specific remap rule. - example: "service:web" - type: string - name: - description: A descriptive name for this remap rule. - example: "Parse JSON from message field" - type: string - source: - description: The VRL script source code that defines the processing logic. - example: ". = parse_json!(.message)" + files: + description: The list of artifact files and directories. + items: + $ref: "#/components/schemas/ModelLabArtifactObjectInfo" + type: array + path_in_project: + description: The path of the run's artifacts relative to the project's artifact root. + example: runs/42 type: string required: - - include - - name - - source - - drop_on_error + - path_in_project + - files type: object - ObservabilityPipelineCustomProcessorType: - default: custom_processor - description: The processor type. The value should always be `custom_processor`. - enum: - - custom_processor - example: custom_processor - type: string - x-enum-varnames: - - CUSTOM_PROCESSOR - ObservabilityPipelineData: - description: Contains the pipeline’s ID, type, and configuration attributes. + ModelLabRunArtifactsData: + description: A run artifacts JSON:API resource object. properties: attributes: - $ref: "#/components/schemas/ObservabilityPipelineDataAttributes" + $ref: "#/components/schemas/ModelLabRunArtifactsAttributes" id: - description: Unique identifier for the pipeline. - example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + description: The unique identifier of the artifacts resource. + example: "42" type: string type: - default: pipelines - description: The resource type identifier. For pipeline resources, this should always be set to `pipelines`. - example: pipelines - type: string + $ref: "#/components/schemas/ModelLabRunArtifactsType" required: - id - type - attributes type: object - ObservabilityPipelineDataAttributes: - description: Defines the pipeline’s name and its components (sources, processors, and destinations). + ModelLabRunArtifactsResponse: + description: Response containing the artifact listing for a Model Lab run. properties: - config: - $ref: "#/components/schemas/ObservabilityPipelineConfig" - name: - description: Name of the pipeline. - example: Main Observability Pipeline - type: string + data: + $ref: "#/components/schemas/ModelLabRunArtifactsData" required: - - name - - config + - data type: object - ObservabilityPipelineDatabricksZerobusDestination: - description: |- - The `databricks_zerobus` destination sends logs to Databricks using the Zerobus ingestion API, streaming data directly into your Databricks Lakehouse. - - **Supported pipeline types:** Logs, rehydration + ModelLabRunArtifactsType: + description: The JSON:API type for a run artifacts resource. + enum: + - artifacts + example: artifacts + type: string + x-enum-varnames: + - ARTIFACTS + ModelLabRunAttributes: + description: Attributes of a Model Lab run. properties: - auth: - $ref: "#/components/schemas/ObservabilityPipelineDatabricksZerobusDestinationAuth" - buffer: - $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" - id: - description: The unique identifier for this component. - example: databricks-zerobus-destination + completed_at: + description: The date and time the run completed. + format: date-time + nullable: true type: string - ingestion_endpoint_key: - description: Name of the environment variable or the secret identifier that references the Databricks Zerobus ingestion endpoint, which is used to stream data directly into your Databricks Lakehouse. - example: DD_OP_DESTINATION_DATABRICKS_ZEROBUS_INGESTION_ENDPOINT + created_at: + description: The date and time the run was created. + example: "2024-01-20T10:00:00Z" + format: date-time type: string - inputs: - description: A list of component IDs whose output is used as the `input` for this component. - example: ["filter-processor"] + deleted_at: + description: The date and time the run was soft-deleted. + format: date-time + nullable: true + type: string + descendant_match: + description: Whether a descendant run matched the applied filters. + example: false + type: boolean + description: + description: A description of the run. + example: Fine-tuning run with custom hyperparameters. + type: string + duration: + description: The duration of the run in seconds. + format: double + nullable: true + type: number + external_url: + description: An optional external URL associated with the run. + nullable: true + type: string + has_children: + description: Whether the run has child runs. + example: false + type: boolean + is_pinned: + description: Whether the run is pinned by the current user. + example: false + type: boolean + metric_summaries: + description: Summary statistics for metrics recorded during the run. items: - description: The ID of a component whose output is used as input for this destination. - type: string + $ref: "#/components/schemas/ModelLabMetricSummary" type: array - table_name: - description: The fully qualified name of your target Databricks table. Make sure this table already exists in your Databricks workspace before deploying. - example: catalog.schema.table + mlflow_artifact_location: + description: The MLflow artifact storage location for this run. + example: s3://bucket/active-run type: string - type: - $ref: "#/components/schemas/ObservabilityPipelineDatabricksZerobusDestinationType" - unity_catalog_endpoint_key: - description: Name of the environment variable or the secret identifier that references your Databricks workspace URL, which is used to communicate with the Unity Catalog API. - example: DD_OP_DESTINATION_DATABRICKS_ZEROBUS_UNITY_CATALOG_ENDPOINT + name: + description: The name of the run. + example: training-run-1 type: string - required: - - id - - type - - inputs - - table_name - - auth - type: object - x-pipeline-types: [logs, rehydration] - ObservabilityPipelineDatabricksZerobusDestinationAuth: - description: OAuth credentials for authenticating with the Databricks Zerobus ingestion API. - properties: - client_id: - description: Your service principal application ID (UUID). - example: 9a8b7c6d-1234-5678-abcd-ef0123456789 + owner_id: + description: The UUID of the run owner. + nullable: true type: string - client_secret_key: - description: Name of the environment variable or secret that holds the OAuth client secret used to authenticate with the Databricks ingestion endpoint. - example: DD_OP_DESTINATION_DATABRICKS_ZEROBUS_OAUTH_CLIENT_SECRET + params: + description: The list of parameters used for the run. + items: + $ref: "#/components/schemas/ModelLabRunParam" + nullable: true + type: array + project_id: + description: The ID of the project this run belongs to. + example: 101 + format: int64 + type: integer + started_at: + description: The date and time the run started. + example: "2024-01-20T10:00:00Z" + format: date-time + type: string + status: + $ref: "#/components/schemas/ModelLabRunStatus" + tags: + description: The list of tags associated with the run. + items: + $ref: "#/components/schemas/ModelLabTag" + type: array + updated_at: + description: The date and time the run was last updated. + example: "2024-01-20T11:00:00Z" + format: date-time type: string required: - - client_id + - project_id + - name + - description + - status + - mlflow_artifact_location + - started_at + - created_at + - updated_at + - tags + - params + - metric_summaries + - is_pinned + - has_children + - descendant_match type: object - ObservabilityPipelineDatabricksZerobusDestinationType: - default: databricks_zerobus - description: The destination type. The value must be `databricks_zerobus`. - enum: - - databricks_zerobus - example: databricks_zerobus - type: string - x-enum-varnames: - - DATABRICKS_ZEROBUS - ObservabilityPipelineDatadogAgentSource: - description: |- - The `datadog_agent` source collects logs/metrics from the Datadog Agent. - - **Supported pipeline types:** logs, metrics + ModelLabRunData: + description: A Model Lab run JSON:API resource object. properties: - address_key: - description: Name of the environment variable or secret that holds the listen address for the Datadog Agent source. - example: DATADOG_AGENT_ADDRESS - type: string + attributes: + $ref: "#/components/schemas/ModelLabRunAttributes" id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: "datadog-agent-source" + description: The unique identifier of the run. + example: "42" type: string - tls: - $ref: "#/components/schemas/ObservabilityPipelineTls" type: - $ref: "#/components/schemas/ObservabilityPipelineDatadogAgentSourceType" + $ref: "#/components/schemas/ModelLabRunType" required: - id - type + - attributes type: object - x-pipeline-types: [logs, metrics] - ObservabilityPipelineDatadogAgentSourceType: - default: datadog_agent - description: The source type. The value should always be `datadog_agent`. - enum: - - datadog_agent - example: datadog_agent - type: string - x-enum-varnames: - - DATADOG_AGENT - ObservabilityPipelineDatadogLogsDestination: - description: |- - The `datadog_logs` destination forwards logs to Datadog Log Management. - - **Supported pipeline types:** logs + ModelLabRunParam: + description: A key-value parameter for a Model Lab run. properties: - buffer: - $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" - id: - description: The unique identifier for this component. - example: "datadog-logs-destination" + key: + description: The parameter key. + example: algorithm + type: string + value: + description: The parameter value. + example: gpt4 type: string - inputs: - description: A list of component IDs whose output is used as the `input` for this component. - example: ["filter-processor"] - items: - description: The ID of a component whose output is used as input for this destination. - type: string - type: array - routes: - description: A list of routing rules that forward matching logs to Datadog using dedicated API keys. - example: [{"api_key_key": "API_KEY_IDENTIFIER", "include": "service:api", "route_id": "datadog-logs-route-us1", "site": "us1"}] - items: - $ref: "#/components/schemas/ObservabilityPipelineDatadogLogsDestinationRoute" - maxItems: 100 - type: array - type: - $ref: "#/components/schemas/ObservabilityPipelineDatadogLogsDestinationType" required: - - id - - type - - inputs + - key + - value type: object - x-pipeline-types: [logs] - ObservabilityPipelineDatadogLogsDestinationRoute: - description: Defines how the `datadog_logs` destination routes matching logs to a Datadog site using a specific API key. + ModelLabRunResponse: + description: Response containing a single Model Lab run. properties: - api_key_key: - description: Name of the environment variable or secret that stores the Datadog API key used by this route. - example: API_KEY_IDENTIFIER - type: string - include: - description: A Datadog search query that determines which logs are forwarded using this route. - example: service:api - type: string - route_id: - description: Unique identifier for this route within the destination. - example: datadog-logs-route-us - type: string - site: - description: Datadog site where matching logs are sent (for example, `us1`). - example: us1 - type: string + data: + $ref: "#/components/schemas/ModelLabRunData" + required: + - data type: object - ObservabilityPipelineDatadogLogsDestinationType: - default: datadog_logs - description: The destination type. The value should always be `datadog_logs`. + ModelLabRunStatus: + description: The status of a Model Lab run. enum: - - datadog_logs - example: datadog_logs + - pending + - running + - completed + - failed + - killed + - unresponsive + - paused + example: running type: string x-enum-varnames: - - DATADOG_LOGS - ObservabilityPipelineDatadogMetricsDestination: - description: |- - The `datadog_metrics` destination forwards metrics to Datadog. - - **Supported pipeline types:** metrics + - PENDING + - RUNNING + - COMPLETED + - FAILED + - KILLED + - UNRESPONSIVE + - PAUSED + ModelLabRunType: + description: The JSON:API type for a Model Lab run resource. + enum: + - runs + example: runs + type: string + x-enum-varnames: + - RUNS + ModelLabRunsResponse: + description: Response containing a list of Model Lab runs with pagination metadata. properties: - id: - description: The unique identifier for this component. - example: datadog-metrics-destination - type: string - inputs: - description: A list of component IDs whose output is used as the input for this component. - example: ["metric-tags-processor"] + data: + description: The list of runs. items: - description: The ID of a component whose output is used as input for this destination. - type: string + $ref: "#/components/schemas/ModelLabRunData" type: array - type: - $ref: "#/components/schemas/ObservabilityPipelineDatadogMetricsDestinationType" + links: + $ref: "#/components/schemas/ModelLabPaginationLinks" + meta: + $ref: "#/components/schemas/ModelLabPageMeta" required: - - id - - type - - inputs + - data + - meta type: object - x-pipeline-types: [metrics] - ObservabilityPipelineDatadogMetricsDestinationType: - default: datadog_metrics - description: The destination type. The value should always be `datadog_metrics`. - enum: - - datadog_metrics - example: datadog_metrics - type: string - x-enum-varnames: - - DATADOG_METRICS - ObservabilityPipelineDatadogTagsProcessor: - description: |- - The `datadog_tags` processor includes or excludes specific Datadog tags in your logs. - - **Supported pipeline types:** logs + ModelLabTag: + description: A key-value tag attached to a resource. properties: - action: - $ref: "#/components/schemas/ObservabilityPipelineDatadogTagsProcessorAction" - display_name: - $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" - enabled: - description: Indicates whether the processor is enabled. - example: true - type: boolean - id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: "datadog-tags-processor" + key: + description: The tag key. + example: model type: string - include: - description: A Datadog search query used to determine which logs this processor targets. - example: "service:my-service" + value: + description: The tag value. + example: opus type: string - keys: - description: A list of tag keys. - example: ["env", "service", "version"] - items: - description: A Datadog tag key to include or exclude. - type: string - type: array - mode: - $ref: "#/components/schemas/ObservabilityPipelineDatadogTagsProcessorMode" + required: + - key + - value + type: object + MonitorAlertTrigger: + additionalProperties: false + description: A trigger created from a monitor alert. + properties: + monitor_alert_trigger: + $ref: "#/components/schemas/MonitorAlertTriggerAttributes" type: - $ref: "#/components/schemas/ObservabilityPipelineDatadogTagsProcessorType" + $ref: "#/components/schemas/MonitorAlertTriggerType" required: - - id - type - - include - - mode - - action - - keys - - enabled + - monitor_alert_trigger type: object - x-pipeline-types: [logs] - ObservabilityPipelineDatadogTagsProcessorAction: - description: The action to take on tags with matching keys. - enum: - - include - - exclude - example: include - type: string - x-enum-varnames: - - INCLUDE - - EXCLUDE - ObservabilityPipelineDatadogTagsProcessorMode: - description: The processing mode. - enum: - - filter - example: filter - type: string - x-enum-varnames: - - FILTER - ObservabilityPipelineDatadogTagsProcessorType: - default: datadog_tags - description: The processor type. The value should always be `datadog_tags`. - enum: - - datadog_tags - example: datadog_tags - type: string - x-enum-varnames: - - DATADOG_TAGS - ObservabilityPipelineDecoding: - description: The decoding format used to interpret incoming logs. + MonitorAlertTriggerAttributes: + description: Attributes for a monitor alert trigger. + properties: + event_id: + description: The event ID associated with the monitor alert. + example: "1234567890123456789" + type: string + event_ts: + description: The timestamp of the event in Unix milliseconds. + example: 1700000000000 + format: int64 + type: integer + monitor_id: + description: The monitor ID that triggered the alert. + example: 12345678 + format: int64 + type: integer + required: + - monitor_id + - event_id + - event_ts + type: object + MonitorAlertTriggerType: + description: The type of monitor alert trigger. enum: - - bytes - - gelf - - json - - syslog - example: json + - monitor_alert_trigger + example: monitor_alert_trigger type: string x-enum-varnames: - - DECODE_BYTES - - DECODE_GELF - - DECODE_JSON - - DECODE_SYSLOG - ObservabilityPipelineDedupeProcessor: - description: |- - The `dedupe` processor removes duplicate fields in log events. - - **Supported pipeline types:** logs + - MONITOR_ALERT_TRIGGER + MonitorConfigPolicyAttributeCreateRequest: + description: Policy and policy type for a monitor configuration policy. properties: - cache: - $ref: "#/components/schemas/ObservabilityPipelineDedupeProcessorCache" - display_name: - $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" - enabled: - description: Indicates whether the processor is enabled. - example: true - type: boolean - fields: - description: A list of log field paths to check for duplicates. - example: ["log.message", "log.error"] - items: - description: A log field path to evaluate for duplicate values. - type: string - type: array - id: - description: The unique identifier for this processor. - example: dedupe-processor - type: string - include: - description: A Datadog search query used to determine which logs this processor targets. - example: service:my-service - type: string - mode: - $ref: "#/components/schemas/ObservabilityPipelineDedupeProcessorMode" + policy: + $ref: "#/components/schemas/MonitorConfigPolicyPolicyCreateRequest" + policy_type: + $ref: "#/components/schemas/MonitorConfigPolicyType" + required: + - policy_type + - policy + type: object + MonitorConfigPolicyAttributeEditRequest: + description: Policy and policy type for a monitor configuration policy. + properties: + policy: + $ref: "#/components/schemas/MonitorConfigPolicyPolicy" + policy_type: + $ref: "#/components/schemas/MonitorConfigPolicyType" + required: + - policy_type + - policy + type: object + MonitorConfigPolicyAttributeResponse: + description: Policy and policy type for a monitor configuration policy. + properties: + policy: + $ref: "#/components/schemas/MonitorConfigPolicyPolicy" + policy_type: + $ref: "#/components/schemas/MonitorConfigPolicyType" + type: object + MonitorConfigPolicyCreateData: + description: A monitor configuration policy data. + properties: + attributes: + $ref: "#/components/schemas/MonitorConfigPolicyAttributeCreateRequest" type: - $ref: "#/components/schemas/ObservabilityPipelineDedupeProcessorType" + $ref: "#/components/schemas/MonitorConfigPolicyResourceType" required: - - id - type - - include - - fields - - mode - - enabled + - attributes type: object - x-pipeline-types: [logs] - ObservabilityPipelineDedupeProcessorCache: - description: Configuration for the cache used to detect duplicates. + MonitorConfigPolicyCreateRequest: + description: Request for creating a monitor configuration policy. properties: - num_events: - description: The number of events to cache for duplicate detection. - example: 5000 + data: + $ref: "#/components/schemas/MonitorConfigPolicyCreateData" + required: + - data + type: object + MonitorConfigPolicyDowntimePolicy: + additionalProperties: false + description: Downtime duration attributes of a monitor configuration policy. + properties: + max_duration_ms: + description: The maximum allowed downtime duration, in milliseconds. + example: 3600000 format: int64 - maximum: 1000000000 minimum: 1 type: integer required: - - num_events + - max_duration_ms type: object - ObservabilityPipelineDedupeProcessorMode: - description: The deduplication mode to apply to the fields. - enum: - - match - - ignore - example: match - type: string - x-enum-varnames: - - MATCH - - IGNORE - ObservabilityPipelineDedupeProcessorType: - default: dedupe - description: The processor type. The value should always be `dedupe`. - enum: - - dedupe - example: dedupe - type: string - x-enum-varnames: - - DEDUPE - ObservabilityPipelineDiskBufferOptions: - description: Options for configuring a disk buffer. + MonitorConfigPolicyDowntimePolicyCreateRequest: + additionalProperties: false + description: Downtime duration attributes of a monitor configuration policy. properties: - max_size: - description: Maximum size of the disk buffer. - example: 4096 + max_duration_ms: + description: The maximum allowed downtime duration, in milliseconds. + example: 3600000 format: int64 + minimum: 1 type: integer - type: - $ref: "#/components/schemas/ObservabilityPipelineBufferOptionsDiskType" - when_full: - $ref: "#/components/schemas/ObservabilityPipelineBufferOptionsWhenFull" required: - - max_size + - max_duration_ms type: object - ObservabilityPipelineElasticsearchDestination: - description: |- - The `elasticsearch` destination writes logs or metrics to an Elasticsearch cluster. - - **Supported pipeline types:** logs, metrics + MonitorConfigPolicyEditData: + description: A monitor configuration policy data. properties: - api_version: - $ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestinationApiVersion" - auth: - $ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestinationAuth" - buffer: - $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" - bulk_index: - description: The name of the index to write events to in Elasticsearch. - example: logs-index - type: string - compression: - $ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestinationCompression" - data_stream: - $ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestinationDataStream" - endpoint_url_key: - description: Name of the environment variable or secret that holds the Elasticsearch endpoint URL. - example: ELASTICSEARCH_ENDPOINT_URL - type: string + attributes: + $ref: "#/components/schemas/MonitorConfigPolicyAttributeEditRequest" id: - description: The unique identifier for this component. - example: "elasticsearch-destination" - type: string - id_key: - description: The name of the field used as the document ID in Elasticsearch. - example: id - type: string - inputs: - description: A list of component IDs whose output is used as the `input` for this component. - example: ["filter-processor"] - items: - description: The ID of a component whose output is used as input for this destination. - type: string - type: array - pipeline: - description: The name of an Elasticsearch ingest pipeline to apply to events before indexing. - example: my-pipeline + description: ID of this monitor configuration policy. + example: "00000000-0000-1234-0000-000000000000" type: string - request_retry_partial: - description: When `true`, retries failed partial bulk requests when some events in a batch fail while others succeed. - type: boolean - tls: - $ref: "#/components/schemas/ObservabilityPipelineTls" type: - $ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestinationType" + $ref: "#/components/schemas/MonitorConfigPolicyResourceType" required: - id - type - - inputs - type: object - x-pipeline-types: [logs, metrics] - ObservabilityPipelineElasticsearchDestinationApiVersion: - description: The Elasticsearch API version to use. Set to `auto` to auto-detect. - enum: [auto, v6, v7, v8] - example: auto - type: string - x-enum-varnames: - - AUTO - - V6 - - V7 - - V8 - ObservabilityPipelineElasticsearchDestinationAuth: - description: |- - Authentication settings for the Elasticsearch destination. - When `strategy` is `basic`, use `username_key` and `password_key` to reference credentials stored in environment variables or secrets. - properties: - password_key: - description: Name of the environment variable or secret that holds the Elasticsearch password (used when `strategy` is `basic`). - example: ELASTICSEARCH_PASSWORD - type: string - strategy: - $ref: "#/components/schemas/ObservabilityPipelineAmazonOpenSearchDestinationAuthStrategy" - username_key: - description: Name of the environment variable or secret that holds the Elasticsearch username (used when `strategy` is `basic`). - example: ELASTICSEARCH_USERNAME - type: string - required: - - strategy + - attributes type: object - ObservabilityPipelineElasticsearchDestinationCompression: - description: Compression configuration for the Elasticsearch destination. + MonitorConfigPolicyEditRequest: + description: Request for editing a monitor configuration policy. properties: - algorithm: - $ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm" - level: - description: The compression level. Only applicable for `gzip`, `zlib`, and `zstd` algorithms. - example: 6 - format: int64 - type: integer + data: + $ref: "#/components/schemas/MonitorConfigPolicyEditData" required: - - algorithm + - data type: object - ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm: - description: The compression algorithm applied when sending data to Elasticsearch. - enum: [none, gzip, zlib, zstd, snappy] - example: gzip - type: string - x-enum-varnames: - - NONE - - GZIP - - ZLIB - - ZSTD - - SNAPPY - ObservabilityPipelineElasticsearchDestinationDataStream: - description: Configuration options for writing to Elasticsearch Data Streams instead of a fixed index. + MonitorConfigPolicyListResponse: + description: Response for retrieving all monitor configuration policies. properties: - auto_routing: - description: When `true`, automatically routes events to the appropriate data stream based on the event content. - type: boolean - dataset: - description: The data stream dataset. This groups events by their source or application. - type: string - dtype: - description: The data stream type. This determines how events are categorized within the data stream. - type: string - namespace: - description: The data stream namespace. This separates events into different environments or domains. - type: string - sync_fields: - description: When `true`, synchronizes data stream fields with the Elasticsearch index mapping. - type: boolean + data: + description: An array of monitor configuration policies. + items: + $ref: "#/components/schemas/MonitorConfigPolicyResponseData" + type: array type: object - ObservabilityPipelineElasticsearchDestinationType: - default: elasticsearch - description: The destination type. The value should always be `elasticsearch`. + MonitorConfigPolicyPolicy: + description: Configuration for the policy. + oneOf: + - $ref: "#/components/schemas/MonitorConfigPolicyTagPolicy" + - $ref: "#/components/schemas/MonitorConfigPolicyDowntimePolicy" + MonitorConfigPolicyPolicyCreateRequest: + description: Configuration for the policy. + oneOf: + - $ref: "#/components/schemas/MonitorConfigPolicyTagPolicyCreateRequest" + - $ref: "#/components/schemas/MonitorConfigPolicyDowntimePolicyCreateRequest" + MonitorConfigPolicyResourceType: + default: monitor-config-policy + description: Monitor configuration policy resource type. enum: - - elasticsearch - example: elasticsearch + - monitor-config-policy + example: "monitor-config-policy" type: string x-enum-varnames: - - ELASTICSEARCH - ObservabilityPipelineEnrichmentTableFieldEventLookup: - description: Looks up a value from a field path in the log event. - properties: - event: - description: The path to the field in the log event to use as the lookup key. - example: log.user.id - type: string - required: - - event - type: object - ObservabilityPipelineEnrichmentTableFieldSecretLookup: - description: Looks up a value stored as a pipeline secret. + - MONITOR_CONFIG_POLICY + MonitorConfigPolicyResponse: + description: Response for retrieving a monitor configuration policy. properties: - secret: - description: The name of the secret containing the lookup key value. - example: MY_LOOKUP_SECRET - type: string - required: - - secret + data: + $ref: "#/components/schemas/MonitorConfigPolicyResponseData" type: object - ObservabilityPipelineEnrichmentTableFieldStringPath: - description: A plain field path in the log event, used as the lookup key. - example: log.user.id - type: string - ObservabilityPipelineEnrichmentTableFieldVrlLookup: - description: Evaluates a VRL expression to produce the lookup key. + MonitorConfigPolicyResponseData: + description: A monitor configuration policy data. properties: - vrl: - description: A VRL expression that returns the value to use as the lookup key. - example: .log.user.id + attributes: + $ref: "#/components/schemas/MonitorConfigPolicyAttributeResponse" + id: + description: ID of this monitor configuration policy. + example: "00000000-0000-1234-0000-000000000000" type: string - required: - - vrl + type: + $ref: "#/components/schemas/MonitorConfigPolicyResourceType" type: object - ObservabilityPipelineEnrichmentTableFile: - description: Defines a static enrichment table loaded from a CSV file. + MonitorConfigPolicyTagPolicy: + additionalProperties: false + description: Tag attributes of a monitor configuration policy. properties: - encoding: - $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFileEncoding" - key: - description: Key fields used to look up enrichment values. - items: - $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFileKeyItems" - type: array - path: - description: Path to the CSV file. - example: /etc/enrichment/lookup.csv + tag_key: + description: The key of the tag. + example: datacenter + maxLength: 255 type: string - schema: - description: Schema defining column names and their types. + tag_key_required: + description: If a tag key is required for monitor creation. + example: true + type: boolean + valid_tag_values: + description: Valid values for the tag. + example: ["prod", "staging"] items: - $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFileSchemaItems" + description: A valid tag value for the monitor configuration policy. + maxLength: 255 + type: string type: array - required: - - encoding - - key - - path - - schema type: object - ObservabilityPipelineEnrichmentTableFileEncoding: - description: File encoding format. + MonitorConfigPolicyTagPolicyCreateRequest: + additionalProperties: false + description: Tag attributes of a monitor configuration policy. properties: - delimiter: - description: The `encoding` `delimiter`. - example: "," + tag_key: + description: The key of the tag. + example: datacenter + maxLength: 255 type: string - includes_headers: - description: The `encoding` `includes_headers`. + tag_key_required: + description: If a tag key is required for monitor creation. example: true type: boolean - type: - $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFileEncodingType" + valid_tag_values: + description: Valid values for the tag. + example: ["prod", "staging"] + items: + description: A valid tag value for the monitor configuration policy. + maxLength: 255 + type: string + type: array required: - - type - - delimiter - - includes_headers + - tag_key + - tag_key_required + - valid_tag_values type: object - ObservabilityPipelineEnrichmentTableFileEncodingType: - description: Specifies the encoding format (e.g., CSV) used for enrichment tables. - enum: [csv] - example: csv + MonitorConfigPolicyType: + default: tag + description: |- + The monitor configuration policy type. + `tag` enforces required tags on monitors. + `downtime` sets a maximum downtime duration for the organization. + enum: + - tag + - downtime + example: "tag" type: string x-enum-varnames: - - CSV - ObservabilityPipelineEnrichmentTableFileKeyItemField: - description: |- - Specifies the source of the key value used for enrichment table lookups. - Can be a plain field path string or an object specifying `event`, `vrl`, or `secret`. - example: log.user.id - oneOf: - - $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFieldStringPath" - - $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFieldEventLookup" - - $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFieldVrlLookup" - - $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFieldSecretLookup" - ObservabilityPipelineEnrichmentTableFileKeyItems: - description: Defines how to map log fields to enrichment table columns during lookups. - properties: - column: - description: The `items` `column`. - example: user_id - type: string - comparison: - $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFileKeyItemsComparison" - field: - $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFileKeyItemField" - required: - - column - - comparison - - field - type: object - ObservabilityPipelineEnrichmentTableFileKeyItemsComparison: - description: Defines how to compare key fields for enrichment table lookups. - enum: [equals] - example: equals + - TAG + - DOWNTIME + MonitorDowntimeMatchResourceType: + default: downtime_match + description: Monitor Downtime Match resource type. + enum: + - downtime_match + example: "downtime_match" type: string x-enum-varnames: - - EQUALS - ObservabilityPipelineEnrichmentTableFileSchemaItems: - description: Describes a single column and its type in an enrichment table schema. + - DOWNTIME_MATCH + MonitorDowntimeMatchResponse: + description: Response for retrieving all downtime matches for a monitor. properties: - column: - description: The `items` `column`. - example: region - type: string - type: - $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFileSchemaItemsType" - required: - - column - - type + data: + description: An array of downtime matches. + items: + $ref: "#/components/schemas/MonitorDowntimeMatchResponseData" + type: array + meta: + $ref: "#/components/schemas/DowntimeMeta" type: object - ObservabilityPipelineEnrichmentTableFileSchemaItemsType: - description: Declares allowed data types for enrichment table columns. - enum: [string, boolean, integer, float, date, timestamp] - example: string - type: string - x-enum-varnames: - - STRING - - BOOLEAN - - INTEGER - - FLOAT - - DATE - - TIMESTAMP - ObservabilityPipelineEnrichmentTableGeoIp: - description: Uses a GeoIP database to enrich logs based on an IP field. + MonitorDowntimeMatchResponseAttributes: + description: Downtime match details. properties: - key_field: - description: Path to the IP field in the log. - example: log.source.ip - type: string - locale: - description: Locale used to resolve geographical names. - example: en + end: + description: The end of the downtime. + example: 2020-01-02 03:04:00+00:00 + format: date-time + nullable: true type: string - path: - description: Path to the GeoIP database file. - example: /etc/geoip/GeoLite2-City.mmdb + groups: + description: An array of groups associated with the downtime. + example: ["service:postgres", "team:frontend"] + items: + description: An array of groups. + example: "service:postgres" + type: string + type: array + scope: + $ref: "#/components/schemas/DowntimeScope" + start: + description: The start of the downtime. + example: 2020-01-02 03:04:00+00:00 + format: date-time type: string - required: - - key_field - - locale - - path type: object - ObservabilityPipelineEnrichmentTableProcessor: - description: |- - The `enrichment_table` processor enriches logs using a static CSV file, GeoIP database, or reference table. Exactly one of `file`, `geoip`, or `reference_table` must be configured. - - **Supported pipeline types:** logs + MonitorDowntimeMatchResponseData: + description: A downtime match. properties: - display_name: - $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" - enabled: - description: Indicates whether the processor is enabled. - example: true - type: boolean - file: - $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFile" - geoip: - $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableGeoIp" + attributes: + $ref: "#/components/schemas/MonitorDowntimeMatchResponseAttributes" id: - description: The unique identifier for this processor. - example: enrichment-table-processor - type: string - include: - description: A Datadog search query used to determine which logs this processor targets. - example: source:my-source - type: string - reference_table: - $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableReferenceTable" - target: - description: Path where enrichment results should be stored in the log. - example: enriched.geoip + description: The downtime ID. + example: "00000000-0000-1234-0000-000000000000" + nullable: true type: string type: - $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableProcessorType" - required: - - id - - type - - include - - target - - enabled + $ref: "#/components/schemas/MonitorDowntimeMatchResourceType" type: object - x-pipeline-types: [logs] - ObservabilityPipelineEnrichmentTableProcessorType: - default: enrichment_table - description: The processor type. The value should always be `enrichment_table`. - enum: - - enrichment_table - example: enrichment_table - type: string - x-enum-varnames: - - ENRICHMENT_TABLE - ObservabilityPipelineEnrichmentTableReferenceTable: - description: Uses a Datadog reference table to enrich logs. + MonitorNotificationRuleAttributes: + additionalProperties: false + description: Attributes of the monitor notification rule. properties: - app_key_key: - description: Name of the environment variable or secret that holds the Datadog application key used to access the reference table. - example: DD_APP_KEY - type: string - columns: - description: List of column names to include from the reference table. If not provided, all columns are included. - items: - description: The name of a column to include from the reference table. - type: string - type: array - key_field: - description: Path to the field in the log event to match against the reference table. - example: log.user.id - type: string - table_id: - description: The unique identifier of the reference table. - example: 550e8400-e29b-41d4-a716-446655440000 - type: string - required: - - key_field - - table_id + bundle_config: + $ref: "#/components/schemas/MonitorNotificationRuleBundleConfig" + conditional_recipients: + $ref: "#/components/schemas/MonitorNotificationRuleConditionalRecipients" + filter: + $ref: "#/components/schemas/MonitorNotificationRuleFilter" + name: + $ref: "#/components/schemas/MonitorNotificationRuleName" + recipients: + $ref: "#/components/schemas/MonitorNotificationRuleRecipients" + required: [name] type: object - ObservabilityPipelineFieldValue: - description: Represents a static key-value pair used in various processors. + MonitorNotificationRuleBundleConfig: + description: |- + Use bundle config to enable alert bundling to reduce monitor signal noises. **Note**: This feature is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). properties: - name: - description: The field name. - example: "field_name" - type: string - value: - description: The field value. - example: "field_value" - type: string - required: - - name - - value + duration: + description: Duration of the bundling period. + example: 3600 + format: int32 + maximum: 2147483647 + type: integer + required: [duration] type: object - ObservabilityPipelineFilterProcessor: + MonitorNotificationRuleCondition: description: |- - The `filter` processor allows conditional processing of logs/metrics based on a Datadog search query. Logs/metrics that match the `include` query are passed through; others are discarded. - - **Supported pipeline types:** logs, metrics + A conditional recipient rule composed of a `scope` (the matching condition) and + `recipients` (who to notify when it matches). properties: - display_name: - $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" - enabled: - description: Indicates whether the processor is enabled. - example: true - type: boolean - id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: "filter-processor" - type: string - include: - description: A Datadog search query used to determine which logs/metrics should pass through the filter. Logs/metrics that match this query continue to downstream components; others are dropped. - example: "service:my-service" - type: string - type: - $ref: "#/components/schemas/ObservabilityPipelineFilterProcessorType" - required: - - id - - type - - include - - enabled + recipients: + $ref: "#/components/schemas/MonitorNotificationRuleRecipients" + description: A list of recipients to notify. Uses the same format as the monitor `message` field. Must not start with an '@'. + scope: + $ref: "#/components/schemas/MonitorNotificationRuleConditionScope" + required: [scope, recipients] type: object - x-pipeline-types: [logs, metrics] - ObservabilityPipelineFilterProcessorType: - default: filter - description: The processor type. The value should always be `filter`. - enum: - - filter - example: filter + MonitorNotificationRuleConditionScope: + description: |- + Defines the condition under which the recipients are notified. Supported formats: + - Monitor status condition using `transition_type:`, for example `transition_type:is_alert`. + - A single tag key:value pair, for example `env:prod`. + example: transition_type:is_alert + maxLength: 3000 + minLength: 1 type: string - x-enum-varnames: - - FILTER - ObservabilityPipelineFluentBitSource: + MonitorNotificationRuleConditionalRecipients: description: |- - The `fluent_bit` source ingests logs from Fluent Bit. - - **Supported pipeline types:** logs + Use conditional recipients to define different recipients for different situations. Cannot be used with `recipients`. properties: - address_key: - description: Name of the environment variable or secret that holds the listen address for the Fluent Bit receiver. - example: FLUENT_ADDRESS - type: string - id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: "fluent-source" - type: string - tls: - $ref: "#/components/schemas/ObservabilityPipelineMtlsServerTls" + conditions: + description: Conditions of the notification rule. + items: + $ref: "#/components/schemas/MonitorNotificationRuleCondition" + maxItems: 10 + minItems: 1 + type: array + fallback_recipients: + $ref: "#/components/schemas/MonitorNotificationRuleRecipients" + description: If none of the `conditions` applied, `fallback_recipients` will get notified. + required: [conditions] + type: object + MonitorNotificationRuleCreateRequest: + description: Request for creating a monitor notification rule. + properties: + data: + $ref: "#/components/schemas/MonitorNotificationRuleCreateRequestData" + required: [data] + type: object + MonitorNotificationRuleCreateRequestData: + description: Object to create a monitor notification rule. + properties: + attributes: + $ref: "#/components/schemas/MonitorNotificationRuleAttributes" type: - $ref: "#/components/schemas/ObservabilityPipelineFluentBitSourceType" - required: - - id - - type + $ref: "#/components/schemas/MonitorNotificationRuleResourceType" + required: [attributes] type: object - x-pipeline-types: [logs] - ObservabilityPipelineFluentBitSourceType: - default: fluent_bit - description: The source type. The value should always be `fluent_bit`. - enum: - - fluent_bit - example: fluent_bit - type: string - x-enum-varnames: - - FLUENT_BIT - ObservabilityPipelineFluentdSource: - description: |- - The `fluentd` source ingests logs from a Fluentd-compatible service. - - **Supported pipeline types:** logs + MonitorNotificationRuleData: + description: Monitor notification rule data. properties: - address_key: - description: Name of the environment variable or secret that holds the listen address for the Fluent receiver. - example: FLUENT_ADDRESS - type: string + attributes: + $ref: "#/components/schemas/MonitorNotificationRuleResponseAttributes" id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: "fluent-source" - type: string - tls: - $ref: "#/components/schemas/ObservabilityPipelineMtlsServerTls" + $ref: "#/components/schemas/MonitorNotificationRuleId" + relationships: + $ref: "#/components/schemas/MonitorNotificationRuleRelationships" type: - $ref: "#/components/schemas/ObservabilityPipelineFluentdSourceType" - required: - - id - - type + $ref: "#/components/schemas/MonitorNotificationRuleResourceType" type: object - x-pipeline-types: [logs] - ObservabilityPipelineFluentdSourceType: - default: fluentd - description: The source type. The value should always be `fluentd. - enum: - - fluentd - example: fluentd - type: string - x-enum-varnames: - - FLUENTD - ObservabilityPipelineGcpAuth: - description: |- - Google Cloud credentials used to authenticate with Google Cloud Storage. + MonitorNotificationRuleFilter: + description: Specifies the matching criteria for monitor notifications. + oneOf: + - $ref: "#/components/schemas/MonitorNotificationRuleFilterTags" + - $ref: "#/components/schemas/MonitorNotificationRuleFilterScope" + MonitorNotificationRuleFilterScope: + additionalProperties: false + description: Filters monitor notifications using a scope expression over key:value pairs with boolean logic (AND, OR, NOT). properties: - credentials_file: - description: Path to the Google Cloud service account key file. - example: /var/secrets/gcp-credentials.json + scope: + description: |- + A scope expression composed by key:value pairs (e.g. `service:foo`) with boolean operators (AND, OR, NOT) and parentheses for grouping. + example: service:(foo OR bar) AND team:test NOT environment:staging + maxLength: 3000 + minLength: 1 type: string - required: - - credentials_file + required: [scope] type: object - ObservabilityPipelineGenerateMetricsProcessor: - deprecated: true - description: |- - The `generate_datadog_metrics` processor creates custom metrics from logs and sends them to Datadog. - Metrics can be counters, gauges, or distributions and optionally grouped by log fields. - - **Supported pipeline types:** logs - - **Deprecated:** This processor is deprecated. Use the `generate_metrics` processor instead. + MonitorNotificationRuleFilterTags: + additionalProperties: false + description: Filters monitor notifications by a list of tag key:value pairs. properties: - display_name: - $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" - enabled: - description: Indicates whether the processor is enabled. - example: true - type: boolean - id: - description: The unique identifier for this component. Used to reference this component in other parts of the pipeline. - example: generate-metrics-processor - type: string - include: - description: A Datadog search query used to determine which logs this processor targets. - example: "service:my-service" - type: string - metrics: - description: Configuration for generating individual metrics. + tags: + description: |- + A list of tag key:value pairs (e.g. `team:product`). All tags must match (AND semantics). + example: [team:product, host:abc] items: - $ref: "#/components/schemas/ObservabilityPipelineGeneratedMetric" + description: A tag key:value pair to match against monitor notifications. + maxLength: 255 + type: string + maxItems: 20 + minItems: 1 type: array - type: - $ref: "#/components/schemas/ObservabilityPipelineGenerateMetricsProcessorType" - required: - - id - - type - - enabled + uniqueItems: true + required: [tags] type: object - x-pipeline-types: [logs] - ObservabilityPipelineGenerateMetricsProcessorType: - default: generate_datadog_metrics - description: The processor type. Always `generate_datadog_metrics`. - enum: - - generate_datadog_metrics - example: generate_datadog_metrics + MonitorNotificationRuleId: + description: The ID of the monitor notification rule. + example: 00000000-0000-1234-0000-000000000000 type: string - x-enum-varnames: - - GENERATE_DATADOG_METRICS - ObservabilityPipelineGenerateMetricsV2Processor: - description: |- - The `generate_metrics` processor creates custom metrics from logs. - Metrics can be counters, gauges, or distributions and optionally grouped by log fields. - - There must be a destination whose `inputs` reference this processor with the `.metrics` suffix to route the generated metrics. All destination types normally supported for `metrics` pipelines are also supported as metrics destinations in `logs` pipelines. - - **Supported pipeline types:** logs + MonitorNotificationRuleListResponse: + description: Response for retrieving all monitor notification rules. properties: - display_name: - $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" - enabled: - description: Indicates whether the processor is enabled. - example: true - type: boolean - id: - description: The unique identifier for this component. Used to reference this component in other parts of the pipeline. - example: generate-metrics-processor - type: string - include: - description: A Datadog search query used to determine which logs this processor targets. - example: "service:my-service" - type: string - metrics: - description: Configuration for generating individual metrics. + data: + description: A list of monitor notification rules. items: - $ref: "#/components/schemas/ObservabilityPipelineGeneratedMetric" + $ref: "#/components/schemas/MonitorNotificationRuleData" + type: array + included: + description: Array of objects related to the monitor notification rules. + items: + $ref: "#/components/schemas/MonitorNotificationRuleResponseIncludedItem" type: array - type: - $ref: "#/components/schemas/ObservabilityPipelineGenerateMetricsV2ProcessorType" - required: - - id - - type - - enabled type: object - x-pipeline-types: [logs] - ObservabilityPipelineGenerateMetricsV2ProcessorType: - default: generate_metrics - description: The processor type. Always `generate_metrics`. - enum: - - generate_metrics - example: generate_metrics + MonitorNotificationRuleName: + description: The name of the monitor notification rule. + example: A notification rule name + maxLength: 1000 + minLength: 1 type: string - x-enum-varnames: - - GENERATE_METRICS - ObservabilityPipelineGeneratedMetric: + MonitorNotificationRuleRecipients: description: |- - Defines a log-based custom metric, including its name, type, filter, value computation strategy, - and optional grouping fields. + A list of recipients to notify. Uses the same format as the monitor `message` field. Must not start with an '@'. Cannot be used with `conditional_recipients`. + example: [slack-test-channel, jira-test] + items: + description: individual recipient. + maxLength: 255 + type: string + maxItems: 20 + minItems: 1 + type: array + uniqueItems: true + MonitorNotificationRuleRelationships: + description: All relationships associated with monitor notification rule. properties: - group_by: - description: Optional fields used to group the metric series. - example: ["service", "env"] - items: - description: A log field name used to group the metric series. - type: string - type: array - include: - description: Datadog filter query to match logs for metric generation. - example: service:billing - type: string - metric_type: - $ref: "#/components/schemas/ObservabilityPipelineGeneratedMetricMetricType" - name: - description: Name of the custom metric to be created. - example: logs.processed - type: string - value: - $ref: "#/components/schemas/ObservabilityPipelineMetricValue" - required: - - name - - include - - metric_type - - value + created_by: + $ref: "#/components/schemas/MonitorNotificationRuleRelationshipsCreatedBy" type: object - ObservabilityPipelineGeneratedMetricIncrementByField: - description: Strategy that increments a generated metric based on the value of a log field. + MonitorNotificationRuleRelationshipsCreatedBy: + description: The user who created the monitor notification rule. properties: - field: - description: Name of the log field containing the numeric value to increment the metric by. - example: "errors" + data: + $ref: "#/components/schemas/MonitorNotificationRuleRelationshipsCreatedByData" + type: object + MonitorNotificationRuleRelationshipsCreatedByData: + description: Data for the user who created the monitor notification rule. + nullable: true + properties: + id: + description: User ID of the monitor notification rule creator. + example: "00000000-0000-1234-0000-000000000000" type: string - strategy: - $ref: "#/components/schemas/ObservabilityPipelineGeneratedMetricIncrementByFieldStrategy" - required: - - strategy - - field + type: + $ref: "#/components/schemas/UsersType" type: object - ObservabilityPipelineGeneratedMetricIncrementByFieldStrategy: - description: Uses a numeric field in the log event as the metric increment. - enum: - - increment_by_field - example: increment_by_field + MonitorNotificationRuleResourceType: + default: monitor-notification-rule + description: Monitor notification rule resource type. + enum: [monitor-notification-rule] + example: monitor-notification-rule type: string - x-enum-varnames: - - INCREMENT_BY_FIELD - ObservabilityPipelineGeneratedMetricIncrementByOne: - description: Strategy that increments a generated metric by one for each matching event. + x-enum-varnames: [MONITOR_NOTIFICATION_RULE] + MonitorNotificationRuleResponse: + description: A monitor notification rule. properties: - strategy: - $ref: "#/components/schemas/ObservabilityPipelineGeneratedMetricIncrementByOneStrategy" - required: - - strategy + data: + $ref: "#/components/schemas/MonitorNotificationRuleData" + included: + description: Array of objects related to the monitor notification rule that the user requested. + items: + $ref: "#/components/schemas/MonitorNotificationRuleResponseIncludedItem" + type: array type: object - ObservabilityPipelineGeneratedMetricIncrementByOneStrategy: - description: Increments the metric by 1 for each matching event. - enum: - - increment_by_one - example: increment_by_one - type: string - x-enum-varnames: - - INCREMENT_BY_ONE - ObservabilityPipelineGeneratedMetricMetricType: - description: Type of metric to create. - enum: - - count - - gauge - - distribution - example: count - type: string - x-enum-varnames: - - COUNT - - GAUGE - - DISTRIBUTION - ObservabilityPipelineGoogleChronicleDestination: - description: |- - The `google_chronicle` destination sends logs to Google Chronicle. - - **Supported pipeline types:** logs + MonitorNotificationRuleResponseAttributes: + additionalProperties: {} + description: Attributes of the monitor notification rule. properties: - auth: - $ref: "#/components/schemas/ObservabilityPipelineGcpAuth" - buffer: - $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" - customer_id: - description: The Google Chronicle customer ID. - example: abcdefg123456789 + bundle_config: + $ref: "#/components/schemas/MonitorNotificationRuleBundleConfig" + conditional_recipients: + $ref: "#/components/schemas/MonitorNotificationRuleConditionalRecipients" + created: + description: Creation time of the monitor notification rule. + example: 2020-01-02 03:04:00+00:00 + format: date-time type: string - encoding: - $ref: "#/components/schemas/ObservabilityPipelineGoogleChronicleDestinationEncoding" - endpoint_url_key: - description: Name of the environment variable or secret that holds the Google Chronicle endpoint URL. - example: CHRONICLE_ENDPOINT_URL + filter: + $ref: "#/components/schemas/MonitorNotificationRuleFilter" + modified: + description: Time the monitor notification rule was last modified. + example: 2020-01-02 03:04:00+00:00 + format: date-time type: string + name: + $ref: "#/components/schemas/MonitorNotificationRuleName" + recipients: + $ref: "#/components/schemas/MonitorNotificationRuleRecipients" + type: object + MonitorNotificationRuleResponseIncludedItem: + description: An object related to a monitor notification rule. + oneOf: + - $ref: "#/components/schemas/User" + MonitorNotificationRuleUpdateRequest: + description: Request for updating a monitor notification rule. + properties: + data: + $ref: "#/components/schemas/MonitorNotificationRuleUpdateRequestData" + required: [data] + type: object + MonitorNotificationRuleUpdateRequestData: + description: Object to update a monitor notification rule. + properties: + attributes: + $ref: "#/components/schemas/MonitorNotificationRuleAttributes" id: - description: The unique identifier for this component. - example: google-chronicle-destination - type: string - inputs: - description: A list of component IDs whose output is used as the `input` for this component. - example: ["parse-json-processor"] - items: - description: The ID of a component whose output is used as input for this destination. - type: string - type: array - log_type: - description: The log type metadata associated with the Chronicle destination. - example: nginx_logs - type: string + $ref: "#/components/schemas/MonitorNotificationRuleId" type: - $ref: "#/components/schemas/ObservabilityPipelineGoogleChronicleDestinationType" + $ref: "#/components/schemas/MonitorNotificationRuleResourceType" + required: [id, attributes] + type: object + MonitorTrigger: + description: "Trigger a workflow from a Monitor. For automatic triggering a handle must be configured and the workflow must be published." + properties: + rateLimit: + $ref: "#/components/schemas/TriggerRateLimit" + type: object + MonitorTriggerWrapper: + description: "Schema for a Monitor-based trigger." + properties: + monitorTrigger: + $ref: "#/components/schemas/MonitorTrigger" + startStepNames: + $ref: "#/components/schemas/StartStepNames" required: - - id - - type - - inputs - - customer_id + - monitorTrigger type: object - x-pipeline-types: [logs] - ObservabilityPipelineGoogleChronicleDestinationEncoding: - description: The encoding format for the logs sent to Chronicle. - enum: - - json - - raw_message - example: json - type: string - x-enum-varnames: - - JSON - - RAW_MESSAGE - ObservabilityPipelineGoogleChronicleDestinationType: - default: google_chronicle - description: The destination type. The value should always be `google_chronicle`. - enum: - - google_chronicle - example: google_chronicle - type: string - x-enum-varnames: - - GOOGLE_CHRONICLE - ObservabilityPipelineGoogleCloudStorageDestination: + MonitorType: description: |- - The `google_cloud_storage` destination stores logs in a Google Cloud Storage (GCS) bucket. - It requires a bucket name, Google Cloud authentication, and metadata fields. - - **Supported pipeline types:** logs + Attributes from the monitor that triggered the event. + nullable: true properties: - acl: - $ref: "#/components/schemas/ObservabilityPipelineGoogleCloudStorageDestinationAcl" - auth: - $ref: "#/components/schemas/ObservabilityPipelineGcpAuth" - bucket: - description: Name of the GCS bucket. - example: "error-logs" - type: string - buffer: - $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" - compression: - $ref: "#/components/schemas/ObservabilityPipelineGoogleCloudStorageDestinationCompression" + created_at: + description: The POSIX timestamp of the monitor's creation in nanoseconds. + example: 1646318692000 + format: int64 + type: integer + group_status: + description: Monitor group status used when there is no `result_groups`. + format: int32 + maximum: 2147483647 + type: integer + groups: + description: Groups to which the monitor belongs. + items: + description: A group. + type: string + type: array id: - description: Unique identifier for the destination component. - example: gcs-destination + description: The monitor ID. + format: int64 + type: integer + message: + description: The monitor message. type: string - inputs: - description: A list of component IDs whose output is used as the `input` for this component. - example: ["datadog-agent-source"] + modified: + description: The monitor's last-modified timestamp. + format: int64 + type: integer + name: + description: The monitor name. + type: string + query: + description: The query that triggers the alert. + type: string + tags: + description: A list of tags attached to the monitor. + example: ["environment:test"] items: - description: The ID of a component whose output is used as input for this destination. + description: A tag. type: string type: array - key_prefix: - description: Optional prefix for object keys within the GCS bucket. + templated_name: + description: The templated name of the monitor before resolving any template variables. type: string - metadata: - description: Custom metadata to attach to each object uploaded to the GCS bucket. + type: + description: The monitor type. + type: string + type: object + MonitorUserTemplate: + additionalProperties: {} + description: A monitor user template object. + properties: + created: + $ref: "#/components/schemas/MonitorUserTemplateCreated" + description: + $ref: "#/components/schemas/MonitorUserTemplateDescription" + modified: + $ref: "#/components/schemas/MonitorUserTemplateModified" + monitor_definition: + additionalProperties: {} + description: A valid monitor definition in the same format as the [V1 Monitor API](https://docs.datadoghq.com/api/latest/monitors/#create-a-monitor). + example: {"message": "You may need to add web hosts if this is consistently high.", "name": "Bytes received on host0", "query": "avg(last_5m):sum:system.net.bytes_rcvd{host:host0} > 100", "type": "query alert"} + type: object + tags: + $ref: "#/components/schemas/MonitorUserTemplateTags" + template_variables: + $ref: "#/components/schemas/MonitorUserTemplateTemplateVariables" + title: + $ref: "#/components/schemas/MonitorUserTemplateTitle" + version: + $ref: "#/components/schemas/MonitorUserTemplateVersion" + versions: + description: All versions of the monitor user template. items: - $ref: "#/components/schemas/ObservabilityPipelineMetadataEntry" + $ref: "#/components/schemas/SimpleMonitorUserTemplate" type: array - storage_class: - $ref: "#/components/schemas/ObservabilityPipelineGoogleCloudStorageDestinationStorageClass" + type: object + MonitorUserTemplateCreateData: + description: Monitor user template data. + properties: + attributes: + $ref: "#/components/schemas/MonitorUserTemplateRequestAttributes" type: - $ref: "#/components/schemas/ObservabilityPipelineGoogleCloudStorageDestinationType" + $ref: "#/components/schemas/MonitorUserTemplateResourceType" required: - - id - type - - inputs - - bucket - - storage_class + - attributes type: object - x-pipeline-types: [logs] - ObservabilityPipelineGoogleCloudStorageDestinationAcl: - description: Access control list setting for objects written to the bucket. - enum: - - private - - project-private - - public-read - - authenticated-read - - bucket-owner-read - - bucket-owner-full-control - example: private - type: string - x-enum-varnames: - - PRIVATE - - PROJECTNOT_PRIVATE - - PUBLICNOT_READ - - AUTHENTICATEDNOT_READ - - BUCKETNOT_OWNERNOT_READ - - BUCKETNOT_OWNERNOT_FULLNOT_CONTROL - ObservabilityPipelineGoogleCloudStorageDestinationCompression: - description: |- - Compression configuration for archived logs. When omitted, logs are compressed with gzip - for backward compatibility. - oneOf: - - $ref: "#/components/schemas/ObservabilityPipelineGoogleCloudStorageDestinationCompressionZstd" - - $ref: "#/components/schemas/ObservabilityPipelineGoogleCloudStorageDestinationCompressionGzip" - ObservabilityPipelineGoogleCloudStorageDestinationCompressionGzip: - description: Gzip compression. + MonitorUserTemplateCreateRequest: + description: Request for creating a monitor user template. properties: - algorithm: - $ref: "#/components/schemas/ObservabilityPipelineGoogleCloudStorageDestinationCompressionGzipType" - level: - description: Gzip compression level. Valid values range from `1` to `9`. - example: 6 - format: int64 - maximum: 9 - minimum: 1 - type: integer + data: + $ref: "#/components/schemas/MonitorUserTemplateCreateData" required: - - algorithm - - level + - data type: object - ObservabilityPipelineGoogleCloudStorageDestinationCompressionGzipType: - default: gzip - description: The compression type. Always `gzip`. - enum: - - gzip - example: gzip - type: string - x-enum-varnames: - - GZIP - ObservabilityPipelineGoogleCloudStorageDestinationCompressionZstd: - description: Zstd compression. + MonitorUserTemplateCreateResponse: + description: Response for creating a monitor user template. properties: - algorithm: - $ref: "#/components/schemas/ObservabilityPipelineGoogleCloudStorageDestinationCompressionZstdType" - level: - description: Zstd compression level. Valid values range from `1` to `21`. - example: 3 - format: int64 - maximum: 21 - minimum: 1 - type: integer - required: - - algorithm - - level + data: + $ref: "#/components/schemas/MonitorUserTemplateResponseData" type: object - ObservabilityPipelineGoogleCloudStorageDestinationCompressionZstdType: - default: zstd - description: The compression type. Always `zstd`. - enum: - - zstd - example: zstd + MonitorUserTemplateCreated: + description: The created timestamp of the template. + example: "2024-01-02T03:04:23.274966+00:00" + format: date-time + readOnly: true type: string - x-enum-varnames: - - ZSTD - ObservabilityPipelineGoogleCloudStorageDestinationStorageClass: - description: Storage class used for objects stored in GCS. - enum: - - STANDARD - - NEARLINE - - COLDLINE - - ARCHIVE - example: STANDARD + MonitorUserTemplateDescription: + description: A brief description of the monitor user template. + example: "This is a template for monitoring user activity." + nullable: true type: string - x-enum-varnames: - - STANDARD - - NEARLINE - - COLDLINE - - ARCHIVE - ObservabilityPipelineGoogleCloudStorageDestinationType: - default: google_cloud_storage - description: The destination type. Always `google_cloud_storage`. - enum: - - google_cloud_storage - example: google_cloud_storage + MonitorUserTemplateId: + description: The unique identifier. + example: "00000000-0000-1234-0000-000000000000" type: string - x-enum-varnames: - - GOOGLE_CLOUD_STORAGE - ObservabilityPipelineGooglePubSubDestination: - description: |- - The `google_pubsub` destination publishes logs to a Google Cloud Pub/Sub topic. - - **Supported pipeline types:** logs + MonitorUserTemplateListResponse: + description: Response for retrieving all monitor user templates. properties: - auth: - $ref: "#/components/schemas/ObservabilityPipelineGcpAuth" - buffer: - $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" - encoding: - $ref: "#/components/schemas/ObservabilityPipelineGooglePubSubDestinationEncoding" - endpoint_url_key: - description: Name of the environment variable or secret that holds the Google Cloud Pub/Sub endpoint URL. - example: GCP_PUBSUB_ENDPOINT_URL - type: string - id: - description: The unique identifier for this component. - example: google-pubsub-destination - type: string - inputs: - description: A list of component IDs whose output is used as the `input` for this component. - example: ["filter-processor"] + data: + description: An array of monitor user templates. items: - description: The ID of a component whose output is used as input for this destination. - type: string + $ref: "#/components/schemas/MonitorUserTemplateResponseData" type: array - project: - description: The Google Cloud project ID that owns the Pub/Sub topic. - example: my-gcp-project - type: string - tls: - $ref: "#/components/schemas/ObservabilityPipelineTls" - topic: - description: The Pub/Sub topic name to publish logs to. - example: logs-subscription - type: string - type: - $ref: "#/components/schemas/ObservabilityPipelineGooglePubSubDestinationType" - required: - - id - - type - - inputs - - encoding - - project - - topic type: object - x-pipeline-types: [logs] - ObservabilityPipelineGooglePubSubDestinationEncoding: - description: Encoding format for log events. - enum: - - json - - raw_message - example: json + MonitorUserTemplateModified: + description: The last modified timestamp. When the template version was created. + example: "2024-02-02T03:04:23.274966+00:00" + format: date-time + readOnly: true type: string - x-enum-varnames: - - JSON - - RAW_MESSAGE - ObservabilityPipelineGooglePubSubDestinationType: - default: google_pubsub - description: The destination type. The value should always be `google_pubsub`. + MonitorUserTemplateRequestAttributes: + additionalProperties: false + description: Attributes for a monitor user template. + properties: + description: + $ref: "#/components/schemas/MonitorUserTemplateDescription" + monitor_definition: + additionalProperties: {} + description: A valid monitor definition in the same format as the [V1 Monitor API](https://docs.datadoghq.com/api/latest/monitors/#create-a-monitor). + example: {"message": "You may need to add web hosts if this is consistently high.", "name": "Bytes received on host0", "query": "avg(last_5m):sum:system.net.bytes_rcvd{host:host0} > 100", "type": "query alert"} + type: object + tags: + $ref: "#/components/schemas/MonitorUserTemplateTags" + template_variables: + $ref: "#/components/schemas/MonitorUserTemplateTemplateVariables" + title: + $ref: "#/components/schemas/MonitorUserTemplateTitle" + required: + - title + - monitor_definition + - tags + type: object + MonitorUserTemplateResourceType: + default: monitor-user-template + description: Monitor user template resource type. enum: - - google_pubsub - example: google_pubsub + - monitor-user-template + example: "monitor-user-template" type: string x-enum-varnames: - - GOOGLE_PUBSUB - ObservabilityPipelineGooglePubSubSource: - description: |- - The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription. - - **Supported pipeline types:** logs + - MONITOR_USER_TEMPLATE + MonitorUserTemplateResponse: + description: Response for retrieving a monitor user template. properties: - auth: - $ref: "#/components/schemas/ObservabilityPipelineGcpAuth" - decoding: - $ref: "#/components/schemas/ObservabilityPipelineDecoding" + data: + $ref: "#/components/schemas/MonitorUserTemplateResponseDataWithVersions" + type: object + MonitorUserTemplateResponseAttributes: + additionalProperties: {} + description: Attributes for a monitor user template. + properties: + created: + $ref: "#/components/schemas/MonitorUserTemplateCreated" + description: + $ref: "#/components/schemas/MonitorUserTemplateDescription" + modified: + $ref: "#/components/schemas/MonitorUserTemplateModified" + monitor_definition: + additionalProperties: {} + description: A valid monitor definition in the same format as the [V1 Monitor API](https://docs.datadoghq.com/api/latest/monitors/#create-a-monitor). + example: {"message": "You may need to add web hosts if this is consistently high.", "name": "Bytes received on host0", "query": "avg(last_5m):sum:system.net.bytes_rcvd{host:host0} > 100", "type": "query alert"} + type: object + tags: + $ref: "#/components/schemas/MonitorUserTemplateTags" + template_variables: + $ref: "#/components/schemas/MonitorUserTemplateTemplateVariables" + title: + $ref: "#/components/schemas/MonitorUserTemplateTitle" + version: + $ref: "#/components/schemas/MonitorUserTemplateVersion" + type: object + MonitorUserTemplateResponseData: + description: Monitor user template list response data. + properties: + attributes: + $ref: "#/components/schemas/MonitorUserTemplateResponseAttributes" id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: google-pubsub-source - type: string - project: - description: The Google Cloud project ID that owns the Pub/Sub subscription. - example: my-gcp-project - type: string - subscription: - description: The Pub/Sub subscription name from which messages are consumed. - example: logs-subscription - type: string - tls: - $ref: "#/components/schemas/ObservabilityPipelineTls" + $ref: "#/components/schemas/MonitorUserTemplateId" type: - $ref: "#/components/schemas/ObservabilityPipelineGooglePubSubSourceType" - required: - - id - - type - - decoding - - project - - subscription + $ref: "#/components/schemas/MonitorUserTemplateResourceType" type: object - x-pipeline-types: [logs] - ObservabilityPipelineGooglePubSubSourceType: - default: google_pubsub - description: The source type. The value should always be `google_pubsub`. - enum: [google_pubsub] - example: google_pubsub - type: string - x-enum-varnames: [GOOGLE_PUBSUB] - ObservabilityPipelineHttpClientDestination: - description: |- - The `http_client` destination sends data to an HTTP endpoint. - - **Supported pipeline types:** logs, metrics + MonitorUserTemplateResponseDataWithVersions: + description: Monitor user template data. properties: - auth_strategy: - $ref: "#/components/schemas/ObservabilityPipelineHttpClientDestinationAuthStrategy" - buffer: - $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" - compression: - $ref: "#/components/schemas/ObservabilityPipelineHttpClientDestinationCompression" - custom_key: - description: Name of the environment variable or secret that holds a custom header value (used with custom auth strategies). - example: HTTP_AUTH_CUSTOM_HEADER - type: string - encoding: - $ref: "#/components/schemas/ObservabilityPipelineHttpClientDestinationEncoding" + attributes: + $ref: "#/components/schemas/MonitorUserTemplate" id: - description: The unique identifier for this component. - example: http-client-destination - type: string - inputs: - description: A list of component IDs whose output is used as the input for this component. - example: ["filter-processor"] + $ref: "#/components/schemas/MonitorUserTemplateId" + type: + $ref: "#/components/schemas/MonitorUserTemplateResourceType" + type: object + MonitorUserTemplateTags: + description: The definition of `MonitorUserTemplateTags` object. + example: ["product:Our Custom App", "integration:Azure"] + items: + description: |- + Tags associated with the monitor user template. Must be key value. Only 'product' and 'integration' keys are + allowed. The value is the name of the category to display the template under. Integrations can be filtered out in the UI. + (Review note: This modeling of 'categories' is subject to change.) + example: "us-east1" + minLength: 1 + type: string + uniqueItems: true + type: array + MonitorUserTemplateTemplateVariables: + description: The definition of `MonitorUserTemplateTemplateVariables` object. + items: + $ref: "#/components/schemas/MonitorUserTemplateTemplateVariablesItems" + type: array + MonitorUserTemplateTemplateVariablesItems: + additionalProperties: false + description: List of objects representing template variables on the monitor which can have selectable values. + properties: + available_values: + description: Available values for the variable. + example: ["value1", "value2"] items: - description: The ID of a component whose output is used as input for this destination. + description: An available value for the template variable. + minLength: 1 type: string + uniqueItems: true type: array - password_key: - description: Name of the environment variable or secret that holds the password (used when `auth_strategy` is `basic`). - example: HTTP_AUTH_PASSWORD + defaults: + description: Default values of the template variable. + example: ["defaultValue"] + items: + description: A default value for the template variable. + minLength: 0 + type: string + uniqueItems: true + type: array + name: + description: The name of the template variable. + example: "regionName" type: string - tls: - $ref: "#/components/schemas/ObservabilityPipelineClientTls" - token_key: - description: Name of the environment variable or secret that holds the bearer token (used when `auth_strategy` is `bearer`). - example: HTTP_AUTH_TOKEN + tag_key: + description: |- + The tag key associated with the variable. This works the same as dashboard template variables. + example: "datacenter" type: string + required: + - name + type: object + MonitorUserTemplateTitle: + description: The title of the monitor user template. + example: "Postgres CPU Monitor" + type: string + MonitorUserTemplateUpdateData: + description: Monitor user template data. + properties: + attributes: + $ref: "#/components/schemas/MonitorUserTemplateRequestAttributes" + id: + $ref: "#/components/schemas/MonitorUserTemplateId" type: - $ref: "#/components/schemas/ObservabilityPipelineHttpClientDestinationType" - uri_key: - description: Name of the environment variable or secret that holds the HTTP endpoint URI. - example: HTTP_DESTINATION_URI - type: string - username_key: - description: Name of the environment variable or secret that holds the username (used when `auth_strategy` is `basic`). - example: HTTP_AUTH_USERNAME - type: string + $ref: "#/components/schemas/MonitorUserTemplateResourceType" required: - id - type - - inputs - - encoding + - attributes type: object - x-pipeline-types: [logs, metrics] - ObservabilityPipelineHttpClientDestinationAuthStrategy: - description: HTTP authentication strategy. - enum: [none, basic, bearer, custom] - example: basic - type: string - x-enum-varnames: - - NONE - - BASIC - - BEARER - - CUSTOM - ObservabilityPipelineHttpClientDestinationCompression: - description: Compression configuration for HTTP requests. + MonitorUserTemplateUpdateRequest: + description: Request for creating a new monitor user template version. properties: - algorithm: - $ref: "#/components/schemas/ObservabilityPipelineHttpClientDestinationCompressionAlgorithm" + data: + $ref: "#/components/schemas/MonitorUserTemplateUpdateData" required: - - algorithm + - data type: object - ObservabilityPipelineHttpClientDestinationCompressionAlgorithm: - description: Compression algorithm. - enum: [gzip] - example: gzip - type: string - x-enum-varnames: - - GZIP - ObservabilityPipelineHttpClientDestinationEncoding: - description: Encoding format for log events. - enum: [json] - example: json - type: string - x-enum-varnames: - - JSON - ObservabilityPipelineHttpClientDestinationType: - default: http_client - description: The destination type. The value should always be `http_client`. - enum: [http_client] - example: http_client - type: string - x-enum-varnames: - - HTTP_CLIENT - ObservabilityPipelineHttpClientSource: - description: |- - The `http_client` source scrapes logs from HTTP endpoints at regular intervals. - - **Supported pipeline types:** logs + MonitorUserTemplateVersion: + description: The version of the monitor user template. + example: 0 + format: int64 + nullable: true + readOnly: true + type: integer + MonthlyCostAttributionAttributes: + description: Cost Attribution by Tag for a given organization. properties: - auth_strategy: - $ref: "#/components/schemas/ObservabilityPipelineHttpClientSourceAuthStrategy" - custom_key: - description: Name of the environment variable or secret that holds a custom header value (used with custom auth strategies). - example: HTTP_AUTH_CUSTOM_HEADER - type: string - decoding: - $ref: "#/components/schemas/ObservabilityPipelineDecoding" - endpoint_url_key: - description: Name of the environment variable or secret that holds the HTTP endpoint URL to scrape. - example: HTTP_ENDPOINT_URL + month: + description: "Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]`." + format: date-time type: string - id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: http-client-source + org_name: + description: The name of the organization. type: string - password_key: - description: Name of the environment variable or secret that holds the password (used when `auth_strategy` is `basic`). - example: HTTP_AUTH_PASSWORD + public_id: + description: The organization public ID. type: string - scrape_interval_secs: - description: The interval (in seconds) between HTTP scrape requests. - example: 60 - format: int64 - type: integer - scrape_timeout_secs: - description: The timeout (in seconds) for each scrape request. - example: 10 - format: int64 - type: integer - tls: - $ref: "#/components/schemas/ObservabilityPipelineClientTls" - token_key: - description: Name of the environment variable or secret that holds the bearer token (used when `auth_strategy` is `bearer`). - example: HTTP_AUTH_TOKEN + tag_config_source: + description: The source of the cost attribution tag configuration and the selected tags in the format `::://////`. type: string - type: - $ref: "#/components/schemas/ObservabilityPipelineHttpClientSourceType" - username_key: - description: Name of the environment variable or secret that holds the username (used when `auth_strategy` is `basic`). - example: HTTP_AUTH_USERNAME + tags: + $ref: "#/components/schemas/CostAttributionTagNames" + updated_at: + description: Shows the most recent hour in the current months for all organizations for which all costs were calculated. type: string - required: - - id - - type - - decoding + values: + description: |- + Fields in Cost Attribution by tag(s). Example: `infra_host_on_demand_cost`, `infra_host_committed_cost`, `infra_host_total_cost`, `infra_host_percentage_in_org`, `infra_host_percentage_in_account`. + type: object type: object - x-pipeline-types: [logs] - ObservabilityPipelineHttpClientSourceAuthStrategy: - description: Optional authentication strategy for HTTP requests. - enum: [none, basic, bearer, custom] - example: basic - type: string - x-enum-varnames: - - NONE - - BASIC - - BEARER - - CUSTOM - ObservabilityPipelineHttpClientSourceType: - default: http_client - description: The source type. The value should always be `http_client`. - enum: [http_client] - example: http_client - type: string - x-enum-varnames: [HTTP_CLIENT] - ObservabilityPipelineHttpServerSource: - description: |- - The `http_server` source collects logs over HTTP POST from external services. - - **Supported pipeline types:** logs + MonthlyCostAttributionBody: + description: Cost data. properties: - address_key: - description: Name of the environment variable or secret that holds the listen address for the HTTP server. - example: HTTP_SERVER_ADDRESS - type: string - auth_strategy: - $ref: "#/components/schemas/ObservabilityPipelineHttpServerSourceAuthStrategy" - custom_key: - description: Name of the environment variable or secret that holds a custom header value (used with custom auth strategies). - example: HTTP_AUTH_CUSTOM_HEADER - type: string - decoding: - $ref: "#/components/schemas/ObservabilityPipelineDecoding" + attributes: + $ref: "#/components/schemas/MonthlyCostAttributionAttributes" id: - description: Unique ID for the HTTP server source. - example: "http-server-source" - type: string - password_key: - description: Name of the environment variable or secret that holds the password (used when `auth_strategy` is `plain`). - example: HTTP_AUTH_PASSWORD + description: Unique ID of the response. type: string - tls: - $ref: "#/components/schemas/ObservabilityPipelineMtlsServerTls" type: - $ref: "#/components/schemas/ObservabilityPipelineHttpServerSourceType" - username_key: - description: Name of the environment variable or secret that holds the username (used when `auth_strategy` is `plain`). - example: HTTP_AUTH_USERNAME + $ref: "#/components/schemas/CostAttributionType" + type: object + MonthlyCostAttributionMeta: + description: The object containing document metadata. + properties: + aggregates: + $ref: "#/components/schemas/CostAttributionAggregates" + pagination: + $ref: "#/components/schemas/MonthlyCostAttributionPagination" + type: object + MonthlyCostAttributionPagination: + description: The metadata for the current pagination. + properties: + next_record_id: + description: The cursor to use to get the next results, if any. To make the next request, use the same parameters with the addition of the `next_record_id`. + nullable: true type: string - valid_tokens: - description: |- - A list of tokens that are accepted for authenticating incoming HTTP requests. When set, - the source rejects any request whose token does not match an enabled entry in this list. - Cannot be combined with the `plain` auth strategy. + type: object + MonthlyCostAttributionResponse: + description: Response containing the monthly cost attribution by tag(s). + properties: + data: + description: Response containing cost attribution. items: - $ref: "#/components/schemas/ObservabilityPipelineHttpServerSourceValidToken" - maxItems: 1000 - minItems: 1 + $ref: "#/components/schemas/MonthlyCostAttributionBody" type: array - required: - - id - - type - - auth_strategy - - decoding + meta: + $ref: "#/components/schemas/MonthlyCostAttributionMeta" type: object - x-pipeline-types: [logs] - ObservabilityPipelineHttpServerSourceAuthStrategy: - description: HTTP authentication method. + MuteDataType: + default: mute + description: Mute resource type. enum: - - none - - plain - example: plain - type: string - x-enum-varnames: - - NONE - - PLAIN - ObservabilityPipelineHttpServerSourceType: - default: http_server - description: The source type. The value should always be `http_server`. - enum: [http_server] - example: http_server + - mute + example: mute type: string x-enum-varnames: - - HTTP_SERVER - ObservabilityPipelineHttpServerSourceValidToken: - description: An accepted token used to authenticate incoming HTTP server requests. + - MUTE + MuteFindingsMuteAttributes: + description: Mute properties to apply to the findings. properties: - enabled: - default: true - description: |- - Indicates whether this token is currently accepted. Disabled tokens are rejected without - being removed from the configuration. + description: + description: Additional information about the reason why the findings are muted or unmuted. This field has a limit of 280 characters. + example: "To be resolved later." + type: string + expire_at: + description: >- + The expiration date of the mute action (Unix ms). It must be set to a value greater than the current timestamp. If this field is not provided, the findings remain muted indefinitely. + example: 1778721573794 + format: int64 + type: integer + is_muted: + description: Whether the findings should be muted or unmuted. example: true type: boolean - field_to_add: - $ref: "#/components/schemas/ObservabilityPipelineSourceValidTokenFieldToAdd" - path_to_token: - $ref: "#/components/schemas/ObservabilityPipelineHttpServerSourceValidTokenPathToToken" - token_key: - description: Name of the environment variable or secret that holds the expected token value. - example: HTTP_SERVER_TOKEN - pattern: "^[A-Za-z0-9_]+$" - type: string - required: - - token_key - type: object - ObservabilityPipelineHttpServerSourceValidTokenPathToToken: - description: |- - Specifies where the worker extracts the token from in the incoming HTTP request. - This can be either a built-in location (`path` or `address`) or an HTTP header object. - oneOf: - - $ref: "#/components/schemas/ObservabilityPipelineHttpServerSourceValidTokenPathToTokenLocation" - - $ref: "#/components/schemas/ObservabilityPipelineHttpServerSourceValidTokenPathToTokenHeader" - ObservabilityPipelineHttpServerSourceValidTokenPathToTokenHeader: - description: Extract the token from a specific HTTP request header. - properties: - header: - description: The name of the HTTP header that carries the token. - example: X-Token - type: string + reason: + $ref: "#/components/schemas/MuteFindingsReason" + description: The reason why the findings are muted or unmuted. required: - - header + - is_muted + - reason type: object - ObservabilityPipelineHttpServerSourceValidTokenPathToTokenLocation: - description: Built-in token location on the incoming HTTP request. + MuteFindingsReason: + description: The reason why the findings are muted or unmuted. enum: - - path - - address - example: path + - PENDING_FIX + - FALSE_POSITIVE + - OTHER + - NO_FIX + - DUPLICATE + - RISK_ACCEPTED + - NO_PENDING_FIX + - HUMAN_ERROR + - NO_LONGER_ACCEPTED_RISK + example: PENDING_FIX type: string x-enum-varnames: - - PATH - - ADDRESS - ObservabilityPipelineKafkaDestination: - description: |- - The `kafka` destination sends logs to Apache Kafka topics. - - **Supported pipeline types:** logs + - PENDING_FIX + - FALSE_POSITIVE + - OTHER + - NO_FIX + - DUPLICATE + - RISK_ACCEPTED + - NO_PENDING_FIX + - HUMAN_ERROR + - NO_LONGER_ACCEPTED_RISK + MuteFindingsRequest: + description: Request to mute or unmute security findings. properties: - bootstrap_servers_key: - description: Name of the environment variable or secret that holds the Kafka bootstrap servers list. - example: KAFKA_BOOTSTRAP_SERVERS - type: string - buffer: - $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" - compression: - $ref: "#/components/schemas/ObservabilityPipelineKafkaDestinationCompression" - encoding: - $ref: "#/components/schemas/ObservabilityPipelineKafkaDestinationEncoding" - headers_key: - description: The field name to use for Kafka message headers. - example: headers - type: string - id: - description: The unique identifier for this component. - example: kafka-destination - type: string - inputs: - description: A list of component IDs whose output is used as the `input` for this component. - example: ["filter-processor"] - items: - description: The ID of a component whose output is used as input for this destination. - type: string - type: array - key_field: - description: The field name to use as the Kafka message key. - example: message_id - type: string - librdkafka_options: - description: Optional list of advanced Kafka producer configuration options, defined as key-value pairs. - items: - $ref: "#/components/schemas/ObservabilityPipelineKafkaLibrdkafkaOption" - type: array - message_timeout_ms: - description: Maximum time in milliseconds to wait for message delivery confirmation. - example: 300000 - format: int64 - minimum: 1 - type: integer - rate_limit_duration_secs: - description: Duration in seconds for the rate limit window. - example: 1 - format: int64 - minimum: 1 - type: integer - rate_limit_num: - description: Maximum number of messages allowed per rate limit duration. - example: 1000 - format: int64 - minimum: 1 - type: integer - sasl: - $ref: "#/components/schemas/ObservabilityPipelineKafkaSasl" - socket_timeout_ms: - description: Socket timeout in milliseconds for network requests. - example: 60000 - format: int64 - maximum: 300000 - minimum: 10 - type: integer - tls: - $ref: "#/components/schemas/ObservabilityPipelineTls" - topic: - description: The Kafka topic name to publish logs to. - example: logs-topic + data: + $ref: "#/components/schemas/MuteFindingsRequestData" + required: + - data + type: object + MuteFindingsRequestData: + description: Data of the mute request. + properties: + attributes: + $ref: "#/components/schemas/MuteFindingsRequestDataAttributes" + id: + description: Unique identifier of the mute request. + example: "00000000-0000-0000-0000-000000000001" type: string + relationships: + $ref: "#/components/schemas/MuteFindingsRequestDataRelationships" type: - $ref: "#/components/schemas/ObservabilityPipelineKafkaDestinationType" + $ref: "#/components/schemas/MuteDataType" required: - - id + - attributes + - relationships - type - - inputs - - topic - - encoding type: object - x-pipeline-types: [logs] - ObservabilityPipelineKafkaDestinationCompression: - description: Compression codec for Kafka messages. - enum: - - none - - gzip - - snappy - - lz4 - - zstd - example: gzip - type: string - x-enum-varnames: - - NONE - - GZIP - - SNAPPY - - LZ4 - - ZSTD - ObservabilityPipelineKafkaDestinationEncoding: - description: Encoding format for log events. - enum: - - json - - raw_message - example: json - type: string - x-enum-varnames: - - JSON - - RAW_MESSAGE - ObservabilityPipelineKafkaDestinationType: - default: kafka - description: The destination type. The value should always be `kafka`. - enum: - - kafka - example: kafka - type: string - x-enum-varnames: - - KAFKA - ObservabilityPipelineKafkaLibrdkafkaOption: - description: Represents a key-value pair used to configure low-level `librdkafka` client options for Kafka source and destination, such as timeouts, buffer sizes, and security settings. + MuteFindingsRequestDataAttributes: + description: Attributes of the mute request. properties: - name: - description: The name of the `librdkafka` configuration option to set. - example: "fetch.message.max.bytes" - type: string - value: - description: The value assigned to the specified `librdkafka` configuration option. - example: "1048576" - type: string + mute: + $ref: "#/components/schemas/MuteFindingsMuteAttributes" required: - - name - - value + - mute type: object - ObservabilityPipelineKafkaSasl: - description: Specifies the SASL mechanism for authenticating with a Kafka cluster. + MuteFindingsRequestDataRelationships: + description: Relationships of the mute request. properties: - mechanism: - $ref: "#/components/schemas/ObservabilityPipelineKafkaSaslMechanism" - password_key: - description: Name of the environment variable or secret that holds the SASL password. - example: KAFKA_SASL_PASSWORD - type: string - username_key: - description: Name of the environment variable or secret that holds the SASL username. - example: KAFKA_SASL_USERNAME - type: string + findings: + $ref: "#/components/schemas/Findings" + description: Security findings to mute or unmute. + required: + - findings type: object - ObservabilityPipelineKafkaSaslMechanism: - description: SASL mechanism used for Kafka authentication. - enum: - - PLAIN - - SCRAM-SHA-256 - - SCRAM-SHA-512 - type: string - x-enum-varnames: - - PLAIN - - SCRAMNOT_SHANOT_256 - - SCRAMNOT_SHANOT_512 - ObservabilityPipelineKafkaSource: - description: |- - The `kafka` source ingests data from Apache Kafka topics. - - **Supported pipeline types:** logs + MuteFindingsResponse: + description: Response for the mute or unmute request. properties: - bootstrap_servers_key: - description: Name of the environment variable or secret that holds the Kafka bootstrap servers list. - example: KAFKA_BOOTSTRAP_SERVERS - type: string - group_id: - description: Consumer group ID used by the Kafka client. - example: "consumer-group-0" - type: string - id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: "kafka-source" - type: string - librdkafka_options: - description: Optional list of advanced Kafka client configuration options, defined as key-value pairs. - items: - $ref: "#/components/schemas/ObservabilityPipelineKafkaLibrdkafkaOption" - type: array - sasl: - $ref: "#/components/schemas/ObservabilityPipelineKafkaSasl" - tls: - $ref: "#/components/schemas/ObservabilityPipelineTls" - topics: - description: A list of Kafka topic names to subscribe to. The source ingests messages from each topic specified. - example: ["topic1", "topic2"] - items: - description: A Kafka topic name to subscribe to. - type: string - type: array - type: - $ref: "#/components/schemas/ObservabilityPipelineKafkaSourceType" - required: - - id - - type - - group_id - - topics + data: + $ref: "#/components/schemas/MuteFindingsResponseData" type: object - x-pipeline-types: [logs] - ObservabilityPipelineKafkaSourceType: - default: kafka - description: The source type. The value should always be `kafka`. - enum: - - kafka - example: kafka - type: string - x-enum-varnames: - - KAFKA - ObservabilityPipelineLogstashSource: - description: |- - The `logstash` source ingests logs from a Logstash forwarder. - - **Supported pipeline types:** logs + MuteFindingsResponseData: + description: Data of the mute response. properties: - address_key: - description: Name of the environment variable or secret that holds the listen address for the Logstash receiver. - example: LOGSTASH_ADDRESS - type: string id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: logstash-source + description: Unique identifier of the mute request. + example: "00000000-0000-0000-0000-000000000001" type: string - tls: - $ref: "#/components/schemas/ObservabilityPipelineMtlsServerTls" type: - $ref: "#/components/schemas/ObservabilityPipelineLogstashSourceType" + $ref: "#/components/schemas/MuteDataType" required: - - id - type + - id type: object - x-pipeline-types: [logs] - ObservabilityPipelineLogstashSourceType: - default: logstash - description: The source type. The value should always be `logstash`. + MuteReason: + description: The reason for muting a security finding. enum: - - logstash - example: logstash + - duplicate + - false_positive + - no_fix + - other + - pending_fix + - risk_accepted + example: risk_accepted type: string x-enum-varnames: - - LOGSTASH - ObservabilityPipelineMemoryBufferOptions: - description: Options for configuring a memory buffer by byte size. + - DUPLICATE + - FALSE_POSITIVE + - NO_FIX + - OTHER + - PENDING_FIX + - RISK_ACCEPTED + MuteRuleAction: + description: The action to take when the mute rule matches a finding. properties: - max_size: - description: Maximum size of the memory buffer. - example: 4096 + expire_at: + description: The Unix timestamp in milliseconds at which the mute expires. If omitted, the mute does not expire. + example: 4070908800000 format: int64 type: integer - type: - $ref: "#/components/schemas/ObservabilityPipelineBufferOptionsMemoryType" - when_full: - $ref: "#/components/schemas/ObservabilityPipelineBufferOptionsWhenFull" + reason: + $ref: "#/components/schemas/MuteReason" + reason_description: + description: An optional description providing more context for the mute reason. + example: "Accepted for dev environments only" + maxLength: 20000 + type: string required: - - max_size + - reason type: object - ObservabilityPipelineMemoryBufferSizeOptions: - description: Options for configuring a memory buffer by queue length. + MuteRuleAttributesCreate: + description: Attributes for creating or updating a mute rule. properties: - max_events: - description: Maximum events for the memory buffer. - example: 500 - format: int64 - type: integer - type: - $ref: "#/components/schemas/ObservabilityPipelineBufferOptionsMemoryType" - when_full: - $ref: "#/components/schemas/ObservabilityPipelineBufferOptionsWhenFull" + action: + $ref: "#/components/schemas/MuteRuleAction" + enabled: + description: Whether the mute rule is enabled. + example: true + type: boolean + name: + description: The name of the mute rule. + example: "Mute accepted risks in dev" + maxLength: 255 + minLength: 1 + type: string + rule: + $ref: "#/components/schemas/AutomationRuleScope" required: - - max_events + - name + - rule + - action type: object - ObservabilityPipelineMetadataEntry: - description: A custom metadata entry. + MuteRuleAttributesResponse: + description: Attributes of a mute rule returned by the API. properties: + action: + $ref: "#/components/schemas/MuteRuleAction" + created_at: + description: The Unix timestamp in milliseconds when the rule was created. + example: 1722439510282 + format: int64 + type: integer + created_by: + $ref: "#/components/schemas/AutomationRuleCreatedBy" + enabled: + description: Whether the mute rule is enabled. + example: true + type: boolean + modified_at: + description: The Unix timestamp in milliseconds when the rule was last modified. + example: 1722439510282 + format: int64 + type: integer + modified_by: + $ref: "#/components/schemas/AutomationRuleModifiedBy" name: - description: The metadata key. - example: environment - type: string - value: - description: The metadata value. - example: production + description: The name of the mute rule. + example: "Mute accepted risks in dev" + maxLength: 255 + minLength: 1 type: string + rule: + $ref: "#/components/schemas/AutomationRuleScope" required: - name - - value + - enabled + - rule + - action + - created_at + - created_by + - modified_at + - modified_by type: object - ObservabilityPipelineMetricEnrichmentTableFile: - description: Defines a static enrichment table loaded from a CSV file for metric enrichment. + MuteRuleCreateRequest: + description: The body of a mute rule create request. properties: - encoding: - $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFileEncoding" - key: - $ref: "#/components/schemas/ObservabilityPipelineMetricEnrichmentTableFileKey" - path: - description: Path to the CSV file. - example: /etc/enrichment/lookup.csv - type: string + data: + $ref: "#/components/schemas/MuteRuleDataCreate" required: - - encoding - - key - - path + - data type: object - ObservabilityPipelineMetricEnrichmentTableFileKey: - description: Defines how to map a metric lookup value to a CSV column during enrichment table lookups. + MuteRuleDataCreate: + description: The data object for a mute rule create request. properties: - column: - description: The CSV column name or index to match against the lookup value. - example: service - type: string - source: - $ref: "#/components/schemas/ObservabilityPipelineMetricEnrichmentTableLookupSource" + attributes: + $ref: "#/components/schemas/MuteRuleAttributesCreate" + type: + $ref: "#/components/schemas/MuteRuleType" required: - - column - - source + - type + - attributes type: object - ObservabilityPipelineMetricEnrichmentTableFileProcessor: - description: An `enrichment_table` processor that enriches metrics using a static CSV file. + MuteRuleDataResponse: + description: The data object for a mute rule returned by the API. properties: - display_name: - $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" - enabled: - description: Indicates whether the processor is enabled. - example: true - type: boolean - file: - $ref: "#/components/schemas/ObservabilityPipelineMetricEnrichmentTableFile" + attributes: + $ref: "#/components/schemas/MuteRuleAttributesResponse" id: - description: |- - The unique identifier for this component. Used in other parts of the pipeline to reference this component - (for example, as the `input` to downstream components). - example: enrichment-table-processor + description: The ID of the mute rule. + example: "00000000-0000-0000-0000-000000000000" + format: uuid type: string - include: - description: A Datadog search query used to determine which metrics this processor targets. - example: "*" + type: + $ref: "#/components/schemas/MuteRuleType" + required: + - id + - type + - attributes + type: object + MuteRuleDataUpdate: + description: The data object for a mute rule update request. The `id` must match the `rule_id` path parameter. + properties: + attributes: + $ref: "#/components/schemas/MuteRuleAttributesCreate" + id: + description: The ID of the mute rule to update. + example: "00000000-0000-0000-0000-000000000000" + format: uuid type: string type: - $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableProcessorType" + $ref: "#/components/schemas/MuteRuleType" required: - id - type - - include - - file - - enabled + - attributes type: object - ObservabilityPipelineMetricEnrichmentTableLookupSource: - description: |- - Specifies the source of the key value used for metric enrichment table lookups. - The lookup key can be either the metric name or a metric tag. - oneOf: - - $ref: "#/components/schemas/ObservabilityPipelineMetricEnrichmentTableMetricNameLookup" - - $ref: "#/components/schemas/ObservabilityPipelineMetricEnrichmentTableTagLookup" - ObservabilityPipelineMetricEnrichmentTableMetricNameLookup: - description: Uses the metric name as the lookup key for enrichment table matching. + MuteRuleReorderData: + description: The ordered list of all mute rules. Every rule must be included. + items: + $ref: "#/components/schemas/MuteRuleReorderItem" + type: array + MuteRuleReorderItem: + description: A reference to a mute rule used for reordering. properties: + id: + description: The ID of the mute rule. + example: "00000000-0000-0000-0000-000000000000" + format: uuid + type: string type: - $ref: "#/components/schemas/ObservabilityPipelineMetricEnrichmentTableMetricNameLookupType" + $ref: "#/components/schemas/MuteRuleType" required: - type + - id type: object - ObservabilityPipelineMetricEnrichmentTableMetricNameLookupType: - default: metric_name - description: The lookup source type. The value should always be `metric_name`. - enum: [metric_name] - example: metric_name + MuteRuleReorderRequest: + description: The body of a mute rule reorder request. + properties: + data: + $ref: "#/components/schemas/MuteRuleReorderData" + required: + - data + type: object + MuteRuleReorderResponse: + description: The response of a mute rule reorder request. + properties: + data: + $ref: "#/components/schemas/MuteRuleReorderData" + required: + - data + type: object + MuteRuleResponse: + description: A single mute rule response. + properties: + data: + $ref: "#/components/schemas/MuteRuleDataResponse" + required: + - data + type: object + MuteRuleType: + description: The JSON:API type for mute rules. + enum: + - mute_rules + example: mute_rules type: string x-enum-varnames: - - METRIC_NAME - ObservabilityPipelineMetricEnrichmentTableProcessor: - description: |- - The `enrichment_table` processor enriches metrics with tags from a static CSV file or a Datadog reference table. - It looks up a row using the metric name or a metric tag value. It then adds each column of the matching row as a - metric tag, overwriting any existing tag with the same key. Exactly one of `file` or `reference_table` must be - configured. - - **Supported pipeline types:** metrics - oneOf: - - $ref: "#/components/schemas/ObservabilityPipelineMetricEnrichmentTableFileProcessor" - - $ref: "#/components/schemas/ObservabilityPipelineMetricEnrichmentTableReferenceTableProcessor" - x-pipeline-types: [metrics] - ObservabilityPipelineMetricEnrichmentTableReferenceKey: - description: Defines the metric lookup value used as the reference-table row ID. + - MUTE_RULES + MuteRuleUpdateRequest: + description: The body of a mute rule update request. properties: - source: - $ref: "#/components/schemas/ObservabilityPipelineMetricEnrichmentTableLookupSource" + data: + $ref: "#/components/schemas/MuteRuleDataUpdate" required: - - source + - data type: object - ObservabilityPipelineMetricEnrichmentTableReferenceTable: - description: Uses a Datadog reference table to enrich metrics. + MuteRulesDataList: + description: A list of mute rule data objects. + items: + $ref: "#/components/schemas/MuteRuleDataResponse" + type: array + MuteRulesResponse: + description: A list of mute rules with pagination metadata. properties: - app_key_key: - description: |- - The name of the environment variable or secret that holds the Datadog application key used to access the - reference table. - example: DD_APP_KEY + data: + $ref: "#/components/schemas/MuteRulesDataList" + links: + $ref: "#/components/schemas/SecurityAutomationRulesLinks" + meta: + $ref: "#/components/schemas/SecurityAutomationRulesMeta" + required: + - data + - meta + - links + type: object + NDKSourcemapAttributes: + description: Attributes of an Android NDK symbol file. + properties: + arch: + description: The target CPU architecture. + example: arm64-v8a type: string - columns: - description: |- - A list of column names to include from the reference table. If not provided, all columns are included. - items: - description: The name of a column to include from the reference table. - type: string - maxItems: 50 - type: array - key: - $ref: "#/components/schemas/ObservabilityPipelineMetricEnrichmentTableReferenceKey" - table_id: - description: The unique identifier of the reference table. + build_id: + description: The build identifier (UUID format). example: 550e8400-e29b-41d4-a716-446655440000 type: string + created_at: + description: The timestamp when the symbol file was created. + example: "2024-01-01T00:00:00Z" + format: date-time + type: string + file_name: + description: The NDK library file name. + example: libmyapp.so + type: string + mapkind: + description: The type of source map. + example: ndk + type: string + size: + description: The size of the symbol file in bytes. + example: 32768 + format: int64 + type: integer required: - - key - - table_id + - mapkind + - size + - created_at type: object - ObservabilityPipelineMetricEnrichmentTableReferenceTableProcessor: - description: An `enrichment_table` processor that enriches metrics using a Datadog reference table. + NDKSourcemapData: + description: Android NDK symbol file data object. properties: - display_name: - $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" - enabled: - description: Indicates whether the processor is enabled. - example: true - type: boolean + attributes: + $ref: "#/components/schemas/NDKSourcemapAttributes" id: - description: |- - The unique identifier for this component. Used in other parts of the pipeline to reference this component - (for example, as the `input` to downstream components). - example: enrichment-table-processor - type: string - include: - description: A Datadog search query used to determine which metrics this processor targets. - example: "*" + description: The unique identifier of the source map. + example: "7" type: string - reference_table: - $ref: "#/components/schemas/ObservabilityPipelineMetricEnrichmentTableReferenceTable" type: - $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableProcessorType" + $ref: "#/components/schemas/SourcemapDataType" required: - id - type - - include - - reference_table - - enabled + - attributes type: object - ObservabilityPipelineMetricEnrichmentTableTagLookup: - description: Uses a metric tag as the lookup key for enrichment table matching. + NetworkHealthInsight: + description: A single network health insight describing a service-to-service connectivity issue. properties: - name: - description: The Datadog tag key used as the lookup key. - example: service - maxLength: 200 + attributes: + $ref: "#/components/schemas/NetworkHealthInsightAttributes" + id: + description: Unique identifier for this network health insight. + example: example-insight-id type: string type: - $ref: "#/components/schemas/ObservabilityPipelineMetricEnrichmentTableTagLookupType" + $ref: "#/components/schemas/NetworkHealthInsightsType" required: - type - - name + - id + - attributes type: object - ObservabilityPipelineMetricEnrichmentTableTagLookupType: - default: tag - description: The lookup source type. The value should always be `tag`. - enum: [tag] - example: tag - type: string - x-enum-varnames: - - TAG - ObservabilityPipelineMetricTagsProcessor: - description: |- - The `metric_tags` processor filters metrics based on their tags using Datadog tag key patterns. - - **Supported pipeline types:** metrics + NetworkHealthInsightAttributes: + description: Detailed attributes of a network health insight. properties: - display_name: - $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" - enabled: - description: Indicates whether the processor is enabled. - example: true - type: boolean - id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: metric-tags-processor + account_id: + description: AWS account identifier where the certificate is located. Only set for `tls-cert` insights. + example: "123456789012" type: string - include: - description: A Datadog search query that determines which metrics the processor targets. - example: "*" + certificate_id: + description: ARN or identifier of the certificate. Only set for `tls-cert` insights. + example: "arn:aws:acm:us-east-1:123456789012:certificate/abcd1234-a123-456b-a123-12345678901f" type: string - rules: - description: A list of rules for filtering metric tags. - items: - $ref: "#/components/schemas/ObservabilityPipelineMetricTagsProcessorRule" - maxItems: 100 - minItems: 1 - type: array + certificate_lifetime_percent: + description: |- + Percentage of the certificate's validity period that has elapsed, ranging from 0 to 100. + Only set for `tls-cert` insights. + example: 96.7 + format: double + type: number + client_region: + description: AWS region where the client is located. Only set for `tls-cert` insights. + example: us-west-2 + type: string + client_service: + description: |- + Name of the service making the request (DNS query or TLS-secured connection). + Set to `N/A` when the client service cannot be determined. + example: network-logger + type: string + days_until_expiration: + description: |- + Number of days remaining until the certificate expires. Negative values indicate the + certificate has already expired. Only set for `tls-cert` insights. + example: 3 + format: int64 + type: integer + dns_query: + description: Domain name that was being resolved when the DNS failure occurred. Only set for `dns` insights. + example: kafka-broker.internal.domain.com + type: string + dns_server: + description: DNS server that received the failing query. Only set for `dns` insights. + example: cluster-dns + type: string + domain_name: + description: Domain name covered by the certificate. Only set for `tls-cert` insights. + example: api.example.com + type: string + failure_magnitude: + description: |- + Count of failed events observed during the query window. Only set for `dns`, `tcp`, + and `security-group` insights. + example: 150 + format: int64 + minimum: 0 + type: integer + failure_rate: + description: |- + Percentage of requests that failed during the query window, ranging from 0 to 100. + Only set for `dns`, `tcp`, and `security-group` insights. + example: 91 + format: double + maximum: 100 + minimum: 0 + type: number + failure_type: + $ref: "#/components/schemas/NetworkHealthInsightFailureType" + loadbalancer_id: + description: ARN of the load balancer using the certificate. Only set for `tls-cert` insights. + example: "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/my-lb/50dc6c495c0c9188" + type: string + server_region: + description: AWS region where the server or load balancer is located. Only set for `tls-cert` insights. + example: us-east-1 + type: string + server_service: + description: Name of the target service the client was trying to reach. + example: kafka + type: string + total_requests: + description: |- + Total number of requests observed during the query window. Provides context for + `failure_magnitude` and `failure_rate`. Only set for `dns`, `tcp`, and `security-group` insights. + example: 1200 + format: int64 + minimum: 0 + type: integer + traffic_volume: + $ref: "#/components/schemas/NetworkHealthInsightTrafficVolume" type: - $ref: "#/components/schemas/ObservabilityPipelineMetricTagsProcessorType" - required: - - id - - type - - include - - rules - - enabled + $ref: "#/components/schemas/NetworkHealthInsightCategory" type: object - x-pipeline-types: [metrics] - ObservabilityPipelineMetricTagsProcessorRule: - description: Defines a rule for filtering metric tags based on key patterns. + NetworkHealthInsightCategory: + description: |- + Category of network health insight. Indicates whether the insight relates to a DNS issue (`dns`), + a TCP issue (`tcp`), a TLS certificate issue (`tls-cert`), or a security group denial (`security-group`). + enum: + - dns + - tcp + - tls-cert + - security-group + example: dns + type: string + x-enum-varnames: + - DNS + - TCP + - TLS_CERT + - SECURITY_GROUP + NetworkHealthInsightFailureType: + description: |- + Specific failure type within the insight category. For DNS insights: `timeout`, `nxdomain`, + `servfail`, or `general_failure`. For TLS certificate insights: `expired` or `expiring_soon`. + For security group insights: `denied`. + enum: + - timeout + - nxdomain + - servfail + - general_failure + - expired + - expiring_soon + - denied + example: nxdomain + type: string + x-enum-varnames: + - TIMEOUT + - NXDOMAIN + - SERVFAIL + - GENERAL_FAILURE + - EXPIRED + - EXPIRING_SOON + - DENIED + NetworkHealthInsightTrafficVolume: + description: Network traffic volume metrics between the client and server services during the query window. properties: - action: - $ref: "#/components/schemas/ObservabilityPipelineMetricTagsProcessorRuleAction" - include: - description: A Datadog search query used to determine which metrics this rule targets. - example: "*" - type: string - keys: - description: A list of tag keys to include or exclude. - example: ["env", "service", "version"] + bytes_read: + description: Total bytes read from the server to the client during the query window. + example: 1800000 + format: int64 + type: integer + bytes_written: + description: Total bytes written from the client to the server during the query window. + example: 2500000 + format: int64 + type: integer + total_traffic: + description: Sum of bytes written and bytes read across the query window. + example: 4300000 + format: int64 + type: integer + type: object + NetworkHealthInsightsResponse: + description: Response containing a list of network health insights for the organization. + properties: + data: + description: Array of network health insights returned for the query window. items: - description: A metric tag key to include or exclude based on the action. - type: string + $ref: "#/components/schemas/NetworkHealthInsight" type: array - mode: - $ref: "#/components/schemas/ObservabilityPipelineMetricTagsProcessorRuleMode" required: - - include - - mode - - action - - keys + - data type: object - ObservabilityPipelineMetricTagsProcessorRuleAction: - description: The action to take on tags with matching keys. - enum: [include, exclude] - example: include - type: string - x-enum-varnames: - - INCLUDE - - EXCLUDE - ObservabilityPipelineMetricTagsProcessorRuleMode: - description: The processing mode for tag filtering. - enum: [filter] - example: filter - type: string - x-enum-varnames: - - FILTER - ObservabilityPipelineMetricTagsProcessorType: - default: metric_tags - description: The processor type. The value should always be `metric_tags`. - enum: [metric_tags] - example: metric_tags + NetworkHealthInsightsType: + default: network-health-insights + description: The resource type for network health insights. Always `network-health-insights`. + enum: + - network-health-insights + example: network-health-insights type: string x-enum-varnames: - - METRIC_TAGS - ObservabilityPipelineMetricValue: - description: Specifies how the value of the generated metric is computed. - oneOf: - - $ref: "#/components/schemas/ObservabilityPipelineGeneratedMetricIncrementByOne" - - $ref: "#/components/schemas/ObservabilityPipelineGeneratedMetricIncrementByField" - ObservabilityPipelineMtlsServerTls: - description: Configuration for enabling TLS encryption between the pipeline component and external connecting clients. + - NETWORK_HEALTH_INSIGHTS + NodeType: + additionalProperties: {} + description: A tree-sitter node type definition for a given language, describing the node's structure, subtypes, and fields. + type: object + NodeTypesResponse: + description: The response payload containing tree-sitter node type definitions for a programming language. properties: - ca_file: - description: Path to the Certificate Authority (CA) file used to validate connecting clients' TLS certificates. - type: string - crt_file: - description: Path to the TLS server certificate file used to used to identify the pipeline component to connecting clients. - example: "/path/to/cert.crt" - type: string - key_file: - description: Path to the private key file associated with the TLS server certificate. - type: string - key_pass_key: - description: Name of the environment variable or secret that holds the passphrase for the private key file. - example: TLS_KEY_PASSPHRASE - type: string - verify_certificate: - description: When `true`, requires client connections to present a valid certificate, enabling mutual TLS authentication. - type: boolean + data: + $ref: "#/components/schemas/NodeTypesResponseData" required: - - crt_file + - data type: object - ObservabilityPipelineNewRelicDestination: - description: |- - The `new_relic` destination sends logs to the New Relic platform. - - **Supported pipeline types:** logs + NodeTypesResponseData: + description: The primary data object in the node types response. properties: - account_id_key: - description: Name of the environment variable or secret that holds the New Relic account ID. - example: NEW_RELIC_ACCOUNT_ID - type: string - buffer: - $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" + attributes: + $ref: "#/components/schemas/NodeTypesResponseDataAttributes" id: - description: The unique identifier for this component. - example: new-relic-destination - type: string - inputs: - description: A list of component IDs whose output is used as the `input` for this component. - example: ["parse-json-processor"] - items: - description: The ID of a component whose output is used as input for this destination. - type: string - type: array - license_key_key: - description: Name of the environment variable or secret that holds the New Relic license key. - example: NEW_RELIC_LICENSE_KEY + description: The unique identifier of the node types response resource. + example: python type: string - region: - $ref: "#/components/schemas/ObservabilityPipelineNewRelicDestinationRegion" type: - $ref: "#/components/schemas/ObservabilityPipelineNewRelicDestinationType" + $ref: "#/components/schemas/NodeTypesResponseDataType" required: - id - type - - inputs - - region + - attributes type: object - x-pipeline-types: [logs] - ObservabilityPipelineNewRelicDestinationRegion: - description: The New Relic region. - enum: - - us - - eu - example: us - type: string - x-enum-varnames: - - US - - EU - ObservabilityPipelineNewRelicDestinationType: - default: new_relic - description: The destination type. The value should always be `new_relic`. + NodeTypesResponseDataAttributes: + description: The attributes of the node types response, containing the list of node type definitions for the requested language. + properties: + node_types: + description: The list of tree-sitter node type definitions for the language. + items: + $ref: "#/components/schemas/NodeType" + type: array + required: + - node_types + type: object + NodeTypesResponseDataType: + default: get_node_types_response + description: Get node types response resource type. enum: - - new_relic - example: new_relic + - get_node_types_response + example: get_node_types_response type: string x-enum-varnames: - - NEW_RELIC - ObservabilityPipelineOcsfMapperProcessor: - description: |- - The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration. - - **Supported pipeline types:** logs + - GET_NODE_TYPES_RESPONSE + NotebookCreateData: + description: Notebook creation data properties: - display_name: - $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" - enabled: - description: Indicates whether the processor is enabled. - example: true - type: boolean - id: - description: The unique identifier for this component. Used to reference this component in other parts of the pipeline. - example: ocsf-mapper-processor - type: string - include: - description: A Datadog search query used to determine which logs this processor targets. - example: service:my-service - type: string - keep_unmatched: - description: Whether to keep an event that does not match any of the mapping filters. - example: false - type: boolean - mappings: - description: A list of mapping rules to convert events to the OCSF format. - items: - $ref: "#/components/schemas/ObservabilityPipelineOcsfMapperProcessorMapping" - type: array type: - $ref: "#/components/schemas/ObservabilityPipelineOcsfMapperProcessorType" + $ref: "#/components/schemas/NotebookResourceType" required: - - id - type - - include - - mappings - - enabled type: object - x-pipeline-types: [logs] - ObservabilityPipelineOcsfMapperProcessorMapping: - description: Defines how specific events are transformed to OCSF using a mapping configuration. + NotebookCreateRequest: + description: Notebook creation request properties: - include: - description: A Datadog search query used to select the logs that this mapping should apply to. - example: service:my-service - type: string - mapping: - $ref: "#/components/schemas/ObservabilityPipelineOcsfMapperProcessorMappingMapping" + data: + $ref: "#/components/schemas/NotebookCreateData" required: - - include - - mapping + - data type: object - ObservabilityPipelineOcsfMapperProcessorMappingMapping: - description: Defines a single mapping rule for transforming logs into the OCSF schema. - example: CloudTrail Account Change - oneOf: - - $ref: "#/components/schemas/ObservabilityPipelineOcsfMappingLibrary" - - $ref: "#/components/schemas/ObservabilityPipelineOcsfMappingCustom" - ObservabilityPipelineOcsfMapperProcessorType: - default: ocsf_mapper - description: The processor type. The value should always be `ocsf_mapper`. + NotebookResourceType: + description: Notebook resource type enum: - - ocsf_mapper - example: ocsf_mapper + - notebook + example: notebook type: string x-enum-varnames: - - OCSF_MAPPER - ObservabilityPipelineOcsfMappingCustom: - description: Custom OCSF mapping configuration for transforming logs. + - NOTEBOOK + NotebookTriggerWrapper: + description: "Schema for a Notebook-based trigger." properties: - mapping: - description: A list of field mapping rules for transforming log fields to OCSF schema fields. - items: - $ref: "#/components/schemas/ObservabilityPipelineOcsfMappingCustomFieldMapping" - type: array - metadata: - $ref: "#/components/schemas/ObservabilityPipelineOcsfMappingCustomMetadata" - version: - description: The version of the custom mapping configuration. - example: 1 - format: int64 - type: integer + notebookTrigger: + description: "Trigger a workflow from a Notebook." + type: object + startStepNames: + $ref: "#/components/schemas/StartStepNames" required: - - mapping - - metadata - - version + - notebookTrigger type: object - ObservabilityPipelineOcsfMappingCustomFieldMapping: - description: Defines a single field mapping rule for transforming a source field to an OCSF destination field. + NotificationChannel: + description: A top-level wrapper for a user notification channel + example: + data: + attributes: + config: + address: "foo@bar.com" + formats: ["html"] + type: "email" + id: 27590dae-47be-4a7d-9abf-8f4e45124020 + type: notification_channels properties: - default: - description: The default value to use if the source field is missing or empty. - example: "" - dest: - description: The destination OCSF field path. - example: device.type - type: string - lookup: - $ref: "#/components/schemas/ObservabilityPipelineOcsfMappingCustomLookup" - source: - description: The source field path from the log event. - example: host.type - sources: - description: Multiple source field paths for combined mapping. - example: - - field1 - - field2 - value: - description: A static value to use for the destination field. - example: static_value - required: - - dest + data: + $ref: "#/components/schemas/NotificationChannelData" type: object - ObservabilityPipelineOcsfMappingCustomLookup: - description: Lookup table configuration for mapping source values to destination values. + NotificationChannelAttributes: + description: Attributes for an on-call notification channel. properties: - default: - description: The default value to use if no lookup match is found. - example: unknown - table: - description: A list of lookup table entries for value transformation. - items: - $ref: "#/components/schemas/ObservabilityPipelineOcsfMappingCustomLookupTableEntry" - type: array + active: + description: Whether the notification channel is currently active. + type: boolean + config: + $ref: "#/components/schemas/NotificationChannelConfig" + description: Notification channel configuration type: object - ObservabilityPipelineOcsfMappingCustomLookupTableEntry: - description: A single entry in a lookup table for value transformation. + NotificationChannelConfig: + description: "Defines the configuration for an On-Call notification channel" + oneOf: + - $ref: "#/components/schemas/NotificationChannelPhoneConfig" + - $ref: "#/components/schemas/NotificationChannelEmailConfig" + - $ref: "#/components/schemas/NotificationChannelPushConfig" + NotificationChannelData: + description: Data for an on-call notification channel properties: - contains: - description: The substring to match in the source value. - example: Desktop - type: string - equals: - description: The exact value to match in the source. - example: desktop - equals_source: - description: The source field to match against. - example: device_type - type: string - matches: - description: A regex pattern to match in the source value. - example: "^Desktop.*" - type: string - not_matches: - description: A regex pattern that must not match the source value. - example: "^Mobile.*" + attributes: + $ref: "#/components/schemas/NotificationChannelAttributes" + id: + description: Unique identifier for the channel type: string - value: - description: The value to use when a match is found. - example: desktop + type: + $ref: "#/components/schemas/NotificationChannelType" + required: + - type type: object - ObservabilityPipelineOcsfMappingCustomMetadata: - description: Metadata for the custom OCSF mapping. + NotificationChannelEmailConfig: + description: "Email notification channel configuration" properties: - class: - description: The OCSF event class name. - example: Device Inventory Info + address: + description: "The e-mail address to be notified" + example: "" type: string - profiles: - description: A list of OCSF profiles to apply. + formats: + description: Preferred content formats for notifications. example: - - container + - html items: - description: The name of an OCSF profile to apply to the event. - type: string + $ref: "#/components/schemas/NotificationChannelEmailFormatType" type: array - version: - description: The OCSF schema version. - example: "1.3.0" - type: string + type: + $ref: "#/components/schemas/NotificationChannelEmailConfigType" required: - - class - - version + - type + - address + - formats type: object - ObservabilityPipelineOcsfMappingLibrary: - description: Predefined library mappings for common log formats. + NotificationChannelEmailConfigType: + default: email + description: "Indicates that the notification channel is an e-mail address" enum: - - CloudTrail Account Change - - GCP Cloud Audit CreateBucket - - GCP Cloud Audit CreateSink - - GCP Cloud Audit SetIamPolicy - - GCP Cloud Audit UpdateSink - - Github Audit Log API Activity - - Google Workspace Admin Audit addPrivilege - - Microsoft 365 Defender Incident - - Microsoft 365 Defender UserLoggedIn - - Okta System Log Authentication - - Palo Alto Networks Firewall Traffic - example: CloudTrail Account Change + - email + example: email type: string x-enum-varnames: - - CLOUDTRAIL_ACCOUNT_CHANGE - - GCP_CLOUD_AUDIT_CREATEBUCKET - - GCP_CLOUD_AUDIT_CREATESINK - - GCP_CLOUD_AUDIT_SETIAMPOLICY - - GCP_CLOUD_AUDIT_UPDATESINK - - GITHUB_AUDIT_LOG_API_ACTIVITY - - GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE - - MICROSOFT_365_DEFENDER_INCIDENT - - MICROSOFT_365_DEFENDER_USERLOGGEDIN - - OKTA_SYSTEM_LOG_AUTHENTICATION - - PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC - ObservabilityPipelineOpenSearchDestination: - description: |- - The `opensearch` destination writes logs to an OpenSearch cluster. - - **Supported pipeline types:** logs + - EMAIL + NotificationChannelEmailFormatType: + default: html + description: Specifies the format of the e-mail that is sent for On-Call notifications + enum: + - html + - text + example: html + type: string + x-enum-varnames: + - HTML + - TEXT + NotificationChannelPhoneConfig: + description: "Phone notification channel configuration" properties: - auth: - $ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestinationAuth" - buffer: - $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" - bulk_index: - description: The index to write logs to. - example: logs-index + formatted_number: + description: "The formatted international version of Number (e.g. +33 7 1 23 45 67)." + example: "" type: string - data_stream: - $ref: "#/components/schemas/ObservabilityPipelineOpenSearchDestinationDataStream" - endpoint_url_key: - description: Name of the environment variable or secret that holds the OpenSearch endpoint URL. - example: OPENSEARCH_ENDPOINT_URL + number: + description: "The E-164 formatted phone number (e.g. +3371234567)" + example: "" type: string - id: - description: The unique identifier for this component. - example: "opensearch-destination" + region: + description: "The ISO 3166-1 alpha-2 two-letter country code." + example: "" + type: string + sms_subscribed_at: + description: "If present, the date the user subscribed this number to SMS messages" + format: date-time + nullable: true type: string - inputs: - description: A list of component IDs whose output is used as the `input` for this component. - example: ["filter-processor"] - items: - description: The ID of a component whose output is used as input for this destination. - type: string - type: array type: - $ref: "#/components/schemas/ObservabilityPipelineOpenSearchDestinationType" + $ref: "#/components/schemas/NotificationChannelPhoneConfigType" + verified: + description: "Indicates whether this phone has been verified by the user in Datadog On-Call" + example: false + type: boolean required: - - id - type - - inputs - type: object - x-pipeline-types: [logs] - ObservabilityPipelineOpenSearchDestinationDataStream: - description: Configuration options for writing to OpenSearch Data Streams instead of a fixed index. - properties: - dataset: - description: The data stream dataset for your logs. This groups logs by their source or application. - type: string - dtype: - description: The data stream type for your logs. This determines how logs are categorized within the data stream. - type: string - namespace: - description: The data stream namespace for your logs. This separates logs into different environments or domains. - type: string + - number + - formatted_number + - region + - verified type: object - ObservabilityPipelineOpenSearchDestinationType: - default: opensearch - description: The destination type. The value should always be `opensearch`. + NotificationChannelPhoneConfigType: + default: phone + description: "Indicates that the notification channel is a phone" enum: - - opensearch - example: opensearch + - phone + example: phone type: string x-enum-varnames: - - OPENSEARCH - ObservabilityPipelineOpentelemetryMetricsDestination: - description: |- - The `opentelemetry` destination forwards metrics using the OpenTelemetry Protocol (OTLP) over HTTP. - - **Supported pipeline types:** metrics + - PHONE + NotificationChannelPushConfig: + description: "Push notification channel configuration" properties: - buffer: - $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" - http_client_uri_key: - default: DESTINATION_OTEL_HTTP_CLIENT_URI - description: Environment variable name containing the URI of the OTLP HTTP endpoint to send metrics to. - example: DESTINATION_OTEL_HTTP_CLIENT_URI + application_name: + description: "The name of the application used to receive push notifications" + example: "" type: string - id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: opentelemetry-metrics-destination + device_name: + description: "The name of the mobile device being used" + example: "" type: string - inputs: - description: A list of component IDs whose output is used as the `input` for this component. - example: ["metrics-filter-processor"] - items: - description: The ID of a component whose output is used as input for this destination. - type: string - type: array - tls: - $ref: "#/components/schemas/ObservabilityPipelineTls" type: - $ref: "#/components/schemas/ObservabilityPipelineOpentelemetryMetricsDestinationType" + $ref: "#/components/schemas/NotificationChannelPushConfigType" required: - - id - type - - inputs + - device_name + - application_name type: object - x-pipeline-types: [metrics] - ObservabilityPipelineOpentelemetryMetricsDestinationType: - default: opentelemetry - description: The destination type. Always `opentelemetry`. + NotificationChannelPushConfigType: + default: push + description: "Indicates that the notification channel is a mobile device for push notifications" enum: - - opentelemetry - example: opentelemetry + - push + example: push type: string x-enum-varnames: - - OPENTELEMETRY - ObservabilityPipelineOpentelemetrySource: + - PUSH + NotificationChannelType: + default: notification_channels + description: "Indicates that the resource is of type 'notification_channels'." + enum: + - notification_channels + example: notification_channels + type: string + x-enum-varnames: + - NOTIFICATION_CHANNELS + NotificationRule: description: |- - The `opentelemetry` source receives telemetry data using the OpenTelemetry Protocol (OTLP) over gRPC and HTTP. - - **Supported pipeline types:** logs, metrics + Notification rules allow full control over notifications generated by the various Datadog security products. + They allow users to define the conditions under which a notification should be generated (based on rule severities, + rule types, rule tags, and so on), and the targets to notify. + A notification rule is composed of a rule ID, a rule type, and the rule attributes. All fields are required. properties: - grpc_address_key: - description: Environment variable name containing the gRPC server address for receiving OTLP data. Must be a valid environment variable name (alphanumeric characters and underscores only). - example: OTEL_GRPC_ADDRESS - type: string - http_address_key: - description: Environment variable name containing the HTTP server address for receiving OTLP data. Must be a valid environment variable name (alphanumeric characters and underscores only). - example: OTEL_HTTP_ADDRESS - type: string + attributes: + $ref: "#/components/schemas/NotificationRuleAttributes" id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: opentelemetry-source - type: string - tls: - $ref: "#/components/schemas/ObservabilityPipelineMtlsServerTls" + $ref: "#/components/schemas/ID" type: - $ref: "#/components/schemas/ObservabilityPipelineOpentelemetrySourceType" + $ref: "#/components/schemas/NotificationRulesType" required: + - attributes - id - type type: object - x-pipeline-types: [logs, metrics] - ObservabilityPipelineOpentelemetrySourceType: - default: opentelemetry - description: The source type. The value should always be `opentelemetry`. - enum: [opentelemetry] - example: opentelemetry + NotificationRuleAttributes: + description: Attributes of the notification rule. + properties: + created_at: + $ref: "#/components/schemas/Date" + created_by: + $ref: "#/components/schemas/RuleUser" + enabled: + $ref: "#/components/schemas/Enabled" + modified_at: + $ref: "#/components/schemas/Date" + modified_by: + $ref: "#/components/schemas/RuleUser" + name: + $ref: "#/components/schemas/RuleName" + selectors: + $ref: "#/components/schemas/Selectors" + targets: + $ref: "#/components/schemas/Targets" + time_aggregation: + $ref: "#/components/schemas/TimeAggregation" + version: + $ref: "#/components/schemas/Version" + required: + - created_at + - created_by + - enabled + - modified_at + - modified_by + - name + - selectors + - targets + - version + type: object + NotificationRulePreviewNotificationStatus: + description: The notification status for the given rule type. `SUCCESS` means a matching event was found and the notification was sent successfully. `DEFAULT` means no matching event was found and a default placeholder notification was sent instead. `ERROR` means an error occurred while sending the notification. + enum: + - SUCCESS + - DEFAULT + - ERROR + example: SUCCESS type: string x-enum-varnames: - - OPENTELEMETRY - ObservabilityPipelineParseGrokProcessor: - description: |- - The `parse_grok` processor extracts structured fields from unstructured log messages using Grok patterns. - - **Supported pipeline types:** logs - example: - id: "parse-grok-processor" - include: "service:my-service" - type: "parse_grok" + - SUCCESS + - DEFAULT + - ERROR + NotificationRulePreviewResponse: + description: Response from the notification preview request. properties: - disable_library_rules: - default: false - description: If set to `true`, disables the default Grok rules provided by Datadog. - example: true - type: boolean - display_name: - $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" - enabled: - description: Indicates whether the processor is enabled. - example: true - type: boolean - field: - default: "message" - description: The log field to parse with the Grok rules. - example: "message" - type: string + data: + $ref: "#/components/schemas/NotificationRulePreviewResponseData" + required: + - data + type: object + NotificationRulePreviewResponseAttributes: + description: Attributes of the notification preview response. + properties: + preview_results: + $ref: "#/components/schemas/NotificationRulePreviewResults" + required: + - preview_results + type: object + NotificationRulePreviewResponseData: + description: The notification preview response data. + properties: + attributes: + $ref: "#/components/schemas/NotificationRulePreviewResponseAttributes" id: - description: A unique identifier for this processor. - example: "parse-grok-processor" - type: string - include: - description: A Datadog search query used to determine which logs this processor targets. - example: "service:my-service" + description: The ID of the notification preview response. + example: rka-loa-zwu type: string - rules: - description: The list of Grok parsing rules selected by either source field or include query. - items: - $ref: "#/components/schemas/ObservabilityPipelineParseGrokProcessorRuleItem" - type: array type: - $ref: "#/components/schemas/ObservabilityPipelineParseGrokProcessorType" + $ref: "#/components/schemas/NotificationRulePreviewResponseType" required: - - id - type - - include - - rules - - enabled + - attributes type: object - x-pipeline-types: [logs] - ObservabilityPipelineParseGrokProcessorIncludeRule: - description: |- - A Grok parsing rule selected using the `include` query. Each rule defines how to extract structured fields - from logs matching a Datadog search query. + NotificationRulePreviewResponseType: + description: The type of the notification preview response. + enum: + - notification_preview_response + example: notification_preview_response + type: string + x-enum-varnames: + - NOTIFICATION_PREVIEW_RESPONSE + NotificationRulePreviewResult: + description: The preview result for a single rule type. properties: - include: - description: A Datadog search query used to determine which logs this Grok rule targets. - example: "service:my-service" - type: string - match_rules: - description: |- - A list of Grok parsing rules that define how to extract fields from matching logs. - Each rule must contain a name and a valid Grok pattern. - example: - - name: "MyParsingRule" - rule: '%{word:user} connected on %{date("MM/dd/yyyy"):date}' - items: - $ref: "#/components/schemas/ObservabilityPipelineParseGrokProcessorRuleMatchRule" - type: array - support_rules: - description: A list of Grok helper rules that can be referenced by the parsing rules. - example: - - name: "user" - rule: "%{word:user.name}" - items: - $ref: "#/components/schemas/ObservabilityPipelineParseGrokProcessorRuleSupportRule" - type: array + notification_status: + $ref: "#/components/schemas/NotificationRulePreviewNotificationStatus" + rule_type: + $ref: "#/components/schemas/RuleTypesItems" required: - - include - - match_rules + - rule_type + - notification_status type: object - ObservabilityPipelineParseGrokProcessorRule: - description: |- - A Grok parsing rule used in the `parse_grok` processor. Each rule defines how to extract structured fields - from a specific log field using Grok patterns. + NotificationRulePreviewResults: + description: List of preview results for each rule type matched by the notification rule. + example: + - notification_status: DEFAULT + rule_type: log_detection + items: + $ref: "#/components/schemas/NotificationRulePreviewResult" + type: array + NotificationRuleQuery: + description: The query is composed of one or several key:value pairs, which can be used to filter security issues on tags and attributes. + example: (source:production_service OR env:prod) + type: string + NotificationRuleResponse: + description: Response object which includes a notification rule. properties: - match_rules: - description: |- - A list of Grok parsing rules that define how to extract fields from the source field. - Each rule must contain a name and a valid Grok pattern. - example: - - name: "MyParsingRule" - rule: '%{word:user} connected on %{date("MM/dd/yyyy"):date}' + data: + $ref: "#/components/schemas/NotificationRule" + type: object + NotificationRuleRouting: + description: Routing configuration for the notification rule. + properties: + mode: + $ref: "#/components/schemas/NotificationRuleRoutingMode" + required: + - mode + type: object + NotificationRuleRoutingMode: + description: The routing mode for the notification rule. `manual` sends notifications to the configured targets. + enum: + - manual + example: manual + type: string + x-enum-varnames: + - MANUAL + NotificationRulesListResponse: + description: The list of notification rules. + properties: + data: items: - $ref: "#/components/schemas/ObservabilityPipelineParseGrokProcessorRuleMatchRule" + $ref: "#/components/schemas/NotificationRule" type: array - source: - description: The value of the source field in log events to be processed by the Grok rules. - example: "message" + type: object + NotificationRulesType: + description: The rule type associated to notification rules. + enum: + - notification_rules + example: notification_rules + type: string + x-enum-varnames: + - NOTIFICATION_RULES + NotionAPIKey: + description: The definition of the `NotionAPIKey` object. + properties: + api_token: + description: The `NotionAPIKey` `api_token`. + example: "" type: string - support_rules: - description: |- - A list of Grok helper rules that can be referenced by the parsing rules. - example: - - name: "user" - rule: "%{word:user.name}" - items: - $ref: "#/components/schemas/ObservabilityPipelineParseGrokProcessorRuleSupportRule" - type: array + type: + $ref: "#/components/schemas/NotionAPIKeyType" required: - - source - - match_rules + - type + - api_token type: object - ObservabilityPipelineParseGrokProcessorRuleItem: - description: A single Grok parsing rule, selected by either source field or include query. - oneOf: - - $ref: "#/components/schemas/ObservabilityPipelineParseGrokProcessorRule" - - $ref: "#/components/schemas/ObservabilityPipelineParseGrokProcessorIncludeRule" - ObservabilityPipelineParseGrokProcessorRuleMatchRule: - description: |- - Defines a Grok parsing rule, which extracts structured fields from log content using named Grok patterns. - Each rule must have a unique name and a valid Datadog Grok pattern that will be applied to the source field. + NotionAPIKeyType: + description: The definition of the `NotionAPIKey` object. + enum: + - NotionAPIKey + example: NotionAPIKey + type: string + x-enum-varnames: + - NOTIONAPIKEY + NotionAPIKeyUpdate: + description: The definition of the `NotionAPIKey` object. properties: - name: - description: The name of the rule. - example: "MyParsingRule" - type: string - rule: - description: The definition of the Grok rule. - example: '%{word:user} connected on %{date("MM/dd/yyyy"):date}' + api_token: + description: The `NotionAPIKeyUpdate` `api_token`. type: string + type: + $ref: "#/components/schemas/NotionAPIKeyType" required: - - name - - rule + - type type: object - ObservabilityPipelineParseGrokProcessorRuleSupportRule: - description: The Grok helper rule referenced in the parsing rules. + NotionCredentials: + description: The definition of the `NotionCredentials` object. + oneOf: + - $ref: "#/components/schemas/NotionAPIKey" + NotionCredentialsUpdate: + description: The definition of the `NotionCredentialsUpdate` object. + oneOf: + - $ref: "#/components/schemas/NotionAPIKeyUpdate" + NotionIntegration: + description: The definition of the `NotionIntegration` object. properties: - name: - description: The name of the Grok helper rule. - example: "user" - type: string - rule: - description: The definition of the Grok helper rule. - example: " %{word:user.name}" - type: string + credentials: + $ref: "#/components/schemas/NotionCredentials" + type: + $ref: "#/components/schemas/NotionIntegrationType" required: - - name - - rule + - type + - credentials type: object - ObservabilityPipelineParseGrokProcessorType: - default: parse_grok - description: The processor type. The value should always be `parse_grok`. - enum: [parse_grok] - example: parse_grok + NotionIntegrationType: + description: The definition of the `NotionIntegrationType` object. + enum: + - Notion + example: Notion type: string x-enum-varnames: - - PARSE_GROK - ObservabilityPipelineParseJSONProcessor: - description: |- - The `parse_json` processor extracts JSON from a specified field and flattens it into the event. This is useful when logs contain embedded JSON as a string. - - **Supported pipeline types:** logs + - NOTION + NotionIntegrationUpdate: + description: The definition of the `NotionIntegrationUpdate` object. + properties: + credentials: + $ref: "#/components/schemas/NotionCredentialsUpdate" + type: + $ref: "#/components/schemas/NotionIntegrationType" + required: + - type + type: object + NullableRelationshipToUser: + description: Relationship to user. + nullable: true + properties: + data: + $ref: "#/components/schemas/NullableRelationshipToUserData" + required: + - data + type: object + NullableRelationshipToUserData: + description: Relationship to user object. + nullable: true properties: - display_name: - $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" - enabled: - description: Indicates whether the processor is enabled. - example: true - type: boolean - field: - description: The name of the log field that contains a JSON string. - example: "message" - type: string id: - description: A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components). - example: "parse-json-processor" - type: string - include: - description: A Datadog search query used to determine which logs this processor targets. - example: "service:my-service" + description: A unique identifier that represents the user. + example: "00000000-0000-0000-0000-000000000000" type: string type: - $ref: "#/components/schemas/ObservabilityPipelineParseJSONProcessorType" + $ref: "#/components/schemas/UsersType" required: - id - type - - include - - field - - enabled type: object - x-pipeline-types: [logs] - ObservabilityPipelineParseJSONProcessorType: - default: parse_json - description: The processor type. The value should always be `parse_json`. - enum: - - parse_json - example: parse_json - type: string - x-enum-varnames: - - PARSE_JSON - ObservabilityPipelineParseXMLProcessor: - description: |- - The `parse_xml` processor parses XML from a specified field and extracts it into the event. - - **Supported pipeline types:** logs + NullableUserRelationship: + description: Relationship to user. + nullable: true + properties: + data: + $ref: "#/components/schemas/NullableUserRelationshipData" + required: + - data + type: object + NullableUserRelationshipData: + description: Relationship to user object. + nullable: true properties: - always_use_text_key: - description: Whether to always use a text key for element content. - type: boolean - attr_prefix: - description: The prefix to use for XML attributes in the parsed output. - type: string - display_name: - $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" - enabled: - description: Indicates whether the processor is enabled. - example: true - type: boolean - field: - description: The name of the log field that contains an XML string. - example: "message" - type: string id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: parse-xml-processor - type: string - include: - description: A Datadog search query used to determine which logs this processor targets. - example: "service:my-service" - type: string - include_attr: - description: Whether to include XML attributes in the parsed output. - type: boolean - parse_bool: - description: Whether to parse boolean values from strings. - type: boolean - parse_null: - description: Whether to parse null values. - type: boolean - parse_number: - description: Whether to parse numeric values from strings. - type: boolean - text_key: - description: The key name to use for text content within XML elements. Must be at least 1 character if specified. - minLength: 1 + description: A unique identifier that represents the user. + example: "00000000-0000-0000-0000-000000000000" type: string type: - $ref: "#/components/schemas/ObservabilityPipelineParseXMLProcessorType" + $ref: "#/components/schemas/UserResourceType" required: - id - type - - include - - field - - enabled type: object - x-pipeline-types: [logs] - ObservabilityPipelineParseXMLProcessorType: - default: parse_xml - description: The processor type. The value should always be `parse_xml`. - enum: - - parse_xml - example: parse_xml - type: string - x-enum-varnames: - - PARSE_XML - ObservabilityPipelinePrometheusRemoteWriteDestination: - description: |- - The `prometheus_remote_write` destination forwards metrics to an endpoint that supports the Prometheus Remote Write protocol. - - **Supported pipeline types:** metrics + OAuth2WellKnownSitesAttributes: + description: Attributes containing the list of public OAuth2 sites. properties: - auth_strategy: - $ref: "#/components/schemas/ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategy" - buffer: - $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" - default_namespace: - description: The default namespace to add as a prefix to metric names that do not already have one. - example: datadog - type: string - endpoint_url_key: - description: |- - Name of the environment variable or secret that holds the Prometheus Remote Write endpoint URL. - Defaults to `DESTINATION_PROMETHEUS_REMOTE_WRITE_ENDPOINT_URL` (prefixed with `DD_OP_` at runtime). - example: PROMETHEUS_REMOTE_WRITE_ENDPOINT_URL - type: string - id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: prometheus-remote-write-destination - type: string - inputs: - description: A list of component IDs whose output is used as the `input` for this component. - example: ["metrics-filter-processor"] + sites: + description: Array of public OAuth2 site URLs for the environment. + example: + - datadoghq.com + - datadoghq.eu + - us5.datadoghq.com + - us3.datadoghq.com + - ap1.datadoghq.com + - ap2.datadoghq.com items: - description: The ID of a component whose output is used as input for this destination. + description: Public OAuth2 site URL. + example: app.datadoghq.com type: string type: array - password_key: - description: Name of the environment variable or secret that holds the password (used when `auth_strategy` is `basic`). - example: PROMETHEUS_REMOTE_WRITE_PASSWORD - type: string - tenant_id: - description: The tenant ID to include with outgoing requests. Used by multi-tenant Prometheus Remote Write receivers. - example: my-tenant - type: string - tls: - $ref: "#/components/schemas/ObservabilityPipelineClientTls" - token_key: - description: Name of the environment variable or secret that holds the bearer token (used when `auth_strategy` is `bearer`). - example: PROMETHEUS_REMOTE_WRITE_TOKEN + required: + - sites + type: object + OAuth2WellKnownSitesData: + description: Data object containing OAuth2 well-known sites information. + properties: + attributes: + $ref: "#/components/schemas/OAuth2WellKnownSitesAttributes" + id: + description: Environment identifier. + example: prod type: string type: - $ref: "#/components/schemas/ObservabilityPipelinePrometheusRemoteWriteDestinationType" - username_key: - description: Name of the environment variable or secret that holds the username (used when `auth_strategy` is `basic`). - example: PROMETHEUS_REMOTE_WRITE_USERNAME - type: string + $ref: "#/components/schemas/OAuth2WellKnownSitesEnvType" required: - id - type - - inputs + - attributes type: object - x-pipeline-types: [metrics] - ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategy: - description: The authentication strategy to use for outgoing Prometheus Remote Write requests. + OAuth2WellKnownSitesEnvType: + default: env + description: JSON:API resource type for OAuth2 well-known sites environment. enum: - - none - - basic - - bearer - example: basic + - env + example: env type: string x-enum-varnames: - - NONE - - BASIC - - BEARER - ObservabilityPipelinePrometheusRemoteWriteDestinationType: - default: prometheus_remote_write - description: The destination type. The value should always be `prometheus_remote_write`. + - ENV + OAuth2WellKnownSitesResponse: + description: Response payload containing the list of public OAuth2 sites for discovery. + properties: + data: + $ref: "#/components/schemas/OAuth2WellKnownSitesData" + required: + - data + type: object + OAuthClientRegistrationError: + description: Error payload returned by OAuth2 dynamic client registration as defined by RFC 7591. + properties: + error: + description: Single ASCII error code per RFC 7591, such as `invalid_request` or `invalid_client_metadata`. + example: invalid_client_metadata + type: string + error_description: + description: Human-readable description of the error. + example: redirect URI is not well-formed + type: string + required: + - error + - error_description + type: object + OAuthClientRegistrationGrantType: + description: OAuth 2.0 grant type that a registered client may use. enum: - - prometheus_remote_write - example: prometheus_remote_write + - authorization_code + - refresh_token + example: authorization_code type: string x-enum-varnames: - - PROMETHEUS_REMOTE_WRITE - ObservabilityPipelinePrometheusRemoteWriteSource: - description: |- - The `prometheus_remote_write` source ingests metrics pushed over the Prometheus Remote Write protocol. - - **Supported pipeline types:** metrics + - AUTHORIZATION_CODE + - REFRESH_TOKEN + OAuthClientRegistrationRequest: + description: Request payload for OAuth2 dynamic client registration as defined by RFC 7591. properties: - address_key: - description: Name of the environment variable or secret that holds the listen address for the Prometheus Remote Write endpoint. - example: PROMETHEUS_REMOTE_WRITE_ADDRESS + client_name: + description: Human-readable name of the client. Control characters are rejected. + example: Example MCP Client + maxLength: 1000 type: string - auth_strategy: - $ref: "#/components/schemas/ObservabilityPipelinePrometheusRemoteWriteSourceAuthStrategy" - id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: prometheus-remote-write-source + client_uri: + description: URL of the home page of the client. + example: https://example.com + maxLength: 1000 type: string - password_key: - description: Name of the environment variable or secret that holds the password (used when `auth_strategy` is `plain`). - example: PROMETHEUS_REMOTE_WRITE_PASSWORD + grant_types: + description: |- + OAuth 2.0 grant types the client may use. + Defaults to `authorization_code` and `refresh_token` when omitted. + example: + - authorization_code + - refresh_token + items: + $ref: "#/components/schemas/OAuthClientRegistrationGrantType" + type: array + jwks_uri: + description: URL referencing the client's JSON Web Key Set. + example: https://example.com/.well-known/jwks.json + maxLength: 1000 type: string - path: - description: The HTTP path on which the source listens for incoming Prometheus Remote Write requests. - example: "/api/v1/write" + logo_uri: + description: URL referencing a logo for the client. + example: https://example.com/logo.png + maxLength: 1000 type: string - tls: - $ref: "#/components/schemas/ObservabilityPipelineMtlsServerTls" - type: - $ref: "#/components/schemas/ObservabilityPipelinePrometheusRemoteWriteSourceType" - username_key: - description: Name of the environment variable or secret that holds the username (used when `auth_strategy` is `plain`). - example: PROMETHEUS_REMOTE_WRITE_USERNAME + policy_uri: + description: URL pointing to the client's privacy policy. + example: https://example.com/privacy + maxLength: 1000 type: string - valid_tokens: - description: |- - A list of tokens that are accepted for authenticating incoming requests. When set, - the source rejects any request whose token does not match an enabled entry in this list. + redirect_uris: + description: Array of redirection URI strings used by the client in redirect-based flows. + example: + - https://example.com/oauth/callback items: - $ref: "#/components/schemas/ObservabilityPipelinePrometheusRemoteWriteSourceValidToken" + description: Redirection URI registered for the client. + example: https://example.com/oauth/callback + maxLength: 1000 + type: string type: array - required: - - id - - type - - auth_strategy - - path + response_types: + description: OAuth 2.0 response types the client may use. Only `code` is supported. + example: + - code + items: + $ref: "#/components/schemas/OAuthClientRegistrationResponseType" + type: array + scope: + description: Space-separated list of scope values the client may request. + example: openid profile + maxLength: 1000 + type: string + token_endpoint_auth_method: + description: Requested authentication method for the token endpoint. Only `none` is supported. + example: none + maxLength: 20 + type: string + tos_uri: + description: URL pointing to the client's terms of service. + example: https://example.com/tos + maxLength: 1000 + type: string + required: + - client_name + - redirect_uris type: object - x-pipeline-types: [metrics] - ObservabilityPipelinePrometheusRemoteWriteSourceAuthStrategy: - description: HTTP authentication method. + OAuthClientRegistrationResponse: + description: Response payload for a successful OAuth2 dynamic client registration as defined by RFC 7591. + properties: + client_id: + description: Unique identifier assigned to the registered client. + example: 72b68208-36a6-11f0-b21b-da7ad0900002 + format: uuid + type: string + client_name: + description: Human-readable name of the client. + example: Example MCP Client + type: string + grant_types: + description: OAuth 2.0 grant types registered for the client. + example: + - authorization_code + - refresh_token + items: + $ref: "#/components/schemas/OAuthClientRegistrationGrantType" + type: array + redirect_uris: + description: Redirection URIs registered for the client. + example: + - https://example.com/oauth/callback + items: + description: Redirection URI registered for the client. + example: https://example.com/oauth/callback + type: string + type: array + response_types: + description: OAuth 2.0 response types registered for the client. + example: + - code + items: + $ref: "#/components/schemas/OAuthClientRegistrationResponseType" + type: array + token_endpoint_auth_method: + description: Authentication method registered for the token endpoint. Always `none`. + example: none + type: string + required: + - client_id + - client_name + - redirect_uris + - token_endpoint_auth_method + - grant_types + - response_types + type: object + OAuthClientRegistrationResponseType: + description: OAuth 2.0 response type that a registered client may use. enum: - - none - - plain - example: plain + - code + example: code type: string x-enum-varnames: - - NONE - - PLAIN - ObservabilityPipelinePrometheusRemoteWriteSourceType: - default: prometheus_remote_write - description: The source type. The value should always be `prometheus_remote_write`. - enum: [prometheus_remote_write] - example: prometheus_remote_write + - CODE + OAuthOidcScope: + description: OIDC scope a client may be restricted to. + enum: + - openid + - profile + - email + - offline_access + example: openid type: string x-enum-varnames: - - PROMETHEUS_REMOTE_WRITE - ObservabilityPipelinePrometheusRemoteWriteSourceValidToken: - description: An accepted token used to authenticate incoming Prometheus Remote Write requests. + - OPENID + - PROFILE + - EMAIL + - OFFLINE_ACCESS + OAuthScopesRestriction: + description: Allowlist of OIDC and permission scopes enforced for the OAuth2 client. + nullable: true properties: - enabled: - default: true - description: |- - Indicates whether this token is currently accepted. Disabled tokens are rejected without - being removed from the configuration. - example: true - type: boolean - path_to_token: - $ref: "#/components/schemas/ObservabilityPipelineHttpServerSourceValidTokenPathToToken" - token_key: - description: Name of the environment variable or secret that holds the expected token value. - example: PROMETHEUS_REMOTE_WRITE_TOKEN - pattern: "^[A-Za-z0-9_]+$" - type: string + oidc_scopes: + description: OIDC scopes the client is restricted to. + example: + - openid + - email + items: + $ref: "#/components/schemas/OAuthOidcScope" + type: array + permission_scopes: + description: Datadog permission scopes the client is restricted to. + example: + - dashboards_read + - metrics_read + items: + description: Datadog permission scope name. + example: dashboards_read + type: string + type: array required: - - token_key + - oidc_scopes + - permission_scopes type: object - ObservabilityPipelineQuotaProcessor: - description: |- - The `quota` processor measures logging traffic for logs that match a specified filter. When the configured daily quota is met, the processor can drop or alert. - - **Supported pipeline types:** logs + OAuthScopesRestrictionResponse: + description: Response payload describing the scopes restriction of an OAuth2 client. properties: - display_name: - $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" - drop_events: + data: + $ref: "#/components/schemas/OAuthScopesRestrictionResponseData" + required: + - data + type: object + OAuthScopesRestrictionResponseAttributes: + description: Attributes of an OAuth2 client scopes restriction. + properties: + required_permission_scopes: description: |- - If set to `true`, logs that match the quota filter and are sent after the quota is exceeded are dropped. Logs that do not match the filter continue through the pipeline. **Note**: You can set either `drop_events` or `overflow_action`, but not both. - example: false - type: boolean - enabled: - description: Indicates whether the processor is enabled. - example: true - type: boolean - id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: "quota-processor" - type: string - ignore_when_missing_partitions: - description: If `true`, the processor skips quota checks when partition fields are missing from the logs. - type: boolean - include: - description: A Datadog search query used to determine which logs this processor targets. - example: "service:my-service" - type: string - limit: - $ref: "#/components/schemas/ObservabilityPipelineQuotaProcessorLimit" - name: - description: Name of the quota. - example: MyQuota - type: string - overflow_action: - $ref: "#/components/schemas/ObservabilityPipelineQuotaProcessorOverflowAction" - overrides: - description: A list of alternate quota rules that apply to specific sets of events, identified by matching field values. Each override can define a custom limit. - items: - $ref: "#/components/schemas/ObservabilityPipelineQuotaProcessorOverride" - type: array - partition_fields: - description: A list of fields used to segment log traffic for quota enforcement. Quotas are tracked independently by unique combinations of these field values. + Permission scopes automatically required for this client (for example, mobile-app permission scopes). + Returns `null` when no scopes are required. + example: + - mobile_app_access items: - description: The name of a log field used to partition quota enforcement. + description: Datadog permission scope name. + example: mobile_app_access type: string + nullable: true type: array - too_many_buckets_action: - $ref: "#/components/schemas/ObservabilityPipelineQuotaProcessorOverflowAction" - type: - $ref: "#/components/schemas/ObservabilityPipelineQuotaProcessorType" + scopes_restriction: + $ref: "#/components/schemas/OAuthScopesRestriction" required: - - id - - type - - include - - name - - limit - - enabled + - scopes_restriction + - required_permission_scopes type: object - x-pipeline-types: [logs] - ObservabilityPipelineQuotaProcessorLimit: - description: The maximum amount of data or number of events allowed before the quota is enforced. Can be specified in bytes or events. + OAuthScopesRestrictionResponseData: + description: Data object of an OAuth2 client scopes restriction response. properties: - enforce: - $ref: "#/components/schemas/ObservabilityPipelineQuotaProcessorLimitEnforceType" - limit: - description: The limit for quota enforcement. - example: 1000 - format: int64 - type: integer + attributes: + $ref: "#/components/schemas/OAuthScopesRestrictionResponseAttributes" + id: + description: UUID of the OAuth2 client this restriction applies to. + example: fafa8e1c-36a5-11f0-a83d-da7ad0900001 + format: uuid + type: string + type: + $ref: "#/components/schemas/OAuthScopesRestrictionType" required: - - enforce - - limit + - id + - type + - attributes type: object - ObservabilityPipelineQuotaProcessorLimitEnforceType: - description: Unit for quota enforcement in bytes for data size or events for count. - enum: - - bytes - - events - example: bytes - type: string - x-enum-varnames: - - BYTES - - EVENTS - ObservabilityPipelineQuotaProcessorOverflowAction: - description: |- - The action to take when the quota or bucket limit is exceeded. Options: - - `drop`: Drop the event. - - `no_action`: Let the event pass through. - - `overflow_routing`: Route to an overflow destination. - - When `overflow_routing` is used, there must be a destination whose `inputs` reference this processor with the `.overflow_events` suffix to route the overflowing events. Only the following destination types support overflow inputs: `amazon_s3_generic`, `amazon_s3`, `google_cloud_storage`, and `azure_storage`. + OAuthScopesRestrictionType: + default: scopes_restriction + description: JSON:API resource type for an OAuth2 client scopes restriction. enum: - - drop - - no_action - - overflow_routing - example: drop + - scopes_restriction + example: scopes_restriction type: string x-enum-varnames: - - DROP - - NO_ACTION - - OVERFLOW_ROUTING - ObservabilityPipelineQuotaProcessorOverride: - description: Defines a custom quota limit that applies to specific log events based on matching field values. + - SCOPES_RESTRICTION + OCIConfig: + description: OCI config. properties: - fields: - description: A list of field matchers used to apply a specific override. If an event matches all listed key-value pairs, the corresponding override limit is enforced. + attributes: + $ref: "#/components/schemas/OCIConfigAttributes" + id: + description: The ID of the OCI config. + example: "1" + type: string + type: + $ref: "#/components/schemas/OCIConfigType" + required: + - attributes + - id + - type + type: object + OCIConfigAttributes: + description: Attributes for an OCI config. + properties: + account_id: + description: The OCID of the OCI tenancy. + example: "ocid1.tenancy.oc1..example" + type: string + created_at: + description: The timestamp when the OCI config was created. + example: "2026-01-01T12:00:00Z" + type: string + error_messages: + description: The error messages for the OCI config. items: - $ref: "#/components/schemas/ObservabilityPipelineFieldValue" + description: An error message string. + type: string + nullable: true type: array - limit: - $ref: "#/components/schemas/ObservabilityPipelineQuotaProcessorLimit" + status: + description: The status of the OCI config. + example: "active" + type: string + status_updated_at: + description: The timestamp when the OCI config status was last updated. + example: "2026-01-01T12:00:00Z" + type: string + updated_at: + description: The timestamp when the OCI config was last updated. + example: "2026-01-01T12:00:00Z" + type: string required: - - fields - - limit + - account_id + - created_at + - status + - status_updated_at + - updated_at type: object - ObservabilityPipelineQuotaProcessorType: - default: quota - description: The processor type. The value should always be `quota`. + OCIConfigType: + default: oci_config + description: Type of OCI config. enum: - - quota - example: quota + - oci_config + example: oci_config type: string x-enum-varnames: - - QUOTA - ObservabilityPipelineReduceProcessor: + - OCI_CONFIG + OCIConfigsResponse: + description: List of OCI configs. + example: + data: + - attributes: + account_id: "ocid1.tenancy.oc1..example" + created_at: "2026-01-01T12:00:00Z" + error_messages: [] + status: active + status_updated_at: "2026-01-01T12:00:00Z" + updated_at: "2026-01-01T12:00:00Z" + id: "1" + type: oci_config + properties: + data: + description: An OCI config. + items: + $ref: "#/components/schemas/OCIConfig" + type: array + required: + - data + type: object + OIDCDiscoveryDocument: + description: OpenID Connect provider metadata. + properties: + authorization_endpoint: + description: URL of the OAuth2 authorization endpoint. + example: https://app.datadoghq.com/oauth2/v1/authorize + type: string + id_token_signing_alg_values_supported: + description: Signing algorithms supported for ID tokens. + example: + - RS256 + items: + type: string + type: array + issuer: + description: URL identifying the OpenID Connect issuer. + example: https://app.datadoghq.com/api/v2/oauth2 + type: string + jwks_uri: + description: URL of the JSON Web Key Set used to verify ID token signatures. + example: https://app.datadoghq.com/oauth2/v1/keys + type: string + response_types_supported: + description: OAuth2 response types supported by the provider. + example: + - code + items: + type: string + type: array + subject_types_supported: + description: Subject identifier types supported by the provider. + example: + - public + items: + type: string + type: array + token_endpoint: + description: URL of the OAuth2 token endpoint. + example: https://app.datadoghq.com/api/v2/oauth2/token + type: string + required: + - issuer + - authorization_endpoint + - token_endpoint + - jwks_uri + - response_types_supported + - subject_types_supported + - id_token_signing_alg_values_supported + type: object + ObservabilityPipeline: + description: Top-level schema representing a pipeline. + properties: + data: + $ref: "#/components/schemas/ObservabilityPipelineData" + required: + - data + type: object + ObservabilityPipelineAddEnvVarsProcessor: description: |- - The `reduce` processor aggregates and merges logs based on matching keys and merge strategies. + The `add_env_vars` processor adds environment variable values to log events. **Supported pipeline types:** logs properties: @@ -79563,92 +81745,56 @@ components: description: Indicates whether the processor is enabled. example: true type: boolean - group_by: - description: A list of fields used to group log events for merging. - example: ["log.user.id", "log.device.id"] - items: - description: A log field path used to group events for aggregation. - type: string - type: array id: - description: The unique identifier for this processor. - example: reduce-processor + description: The unique identifier for this component. Used to reference this processor in the pipeline. + example: add-env-vars-processor type: string include: description: A Datadog search query used to determine which logs this processor targets. - example: env:prod + example: service:my-service type: string - merge_strategies: - description: List of merge strategies defining how values from grouped events should be combined. + type: + $ref: "#/components/schemas/ObservabilityPipelineAddEnvVarsProcessorType" + variables: + description: A list of environment variable mappings to apply to log fields. items: - $ref: "#/components/schemas/ObservabilityPipelineReduceProcessorMergeStrategy" + $ref: "#/components/schemas/ObservabilityPipelineAddEnvVarsProcessorVariable" type: array - type: - $ref: "#/components/schemas/ObservabilityPipelineReduceProcessorType" required: - id - type - include - - group_by - - merge_strategies + - variables - enabled type: object x-pipeline-types: [logs] - ObservabilityPipelineReduceProcessorMergeStrategy: - description: Defines how a specific field should be merged across grouped events. + ObservabilityPipelineAddEnvVarsProcessorType: + default: add_env_vars + description: The processor type. The value should always be `add_env_vars`. + enum: + - add_env_vars + example: add_env_vars + type: string + x-enum-varnames: + - ADD_ENV_VARS + ObservabilityPipelineAddEnvVarsProcessorVariable: + description: Defines a mapping between an environment variable and a log field. properties: - path: - description: The field path in the log event. - example: log.user.roles + field: + description: The target field in the log event. + example: log.environment.region + type: string + name: + description: The name of the environment variable to read. + example: AWS_REGION type: string - strategy: - $ref: "#/components/schemas/ObservabilityPipelineReduceProcessorMergeStrategyStrategy" required: - - path - - strategy + - field + - name type: object - ObservabilityPipelineReduceProcessorMergeStrategyStrategy: - description: The merge strategy to apply. - enum: - - discard - - retain - - sum - - max - - min - - array - - concat - - concat_newline - - concat_raw - - shortest_array - - longest_array - - flat_unique - example: flat_unique - type: string - x-enum-varnames: - - DISCARD - - RETAIN - - SUM - - MAX - - MIN - - ARRAY - - CONCAT - - CONCAT_NEWLINE - - CONCAT_RAW - - SHORTEST_ARRAY - - LONGEST_ARRAY - - FLAT_UNIQUE - ObservabilityPipelineReduceProcessorType: - default: reduce - description: The processor type. The value should always be `reduce`. - enum: - - reduce - example: reduce - type: string - x-enum-varnames: - - REDUCE - ObservabilityPipelineRemoveFieldsProcessor: + ObservabilityPipelineAddFieldsProcessor: description: |- - The `remove_fields` processor deletes specified fields from logs. + The `add_fields` processor adds static key-value fields to logs. **Supported pipeline types:** logs properties: @@ -79659,22 +81805,20 @@ components: example: true type: boolean fields: - description: A list of field names to be removed from each log event. - example: ["field1", "field2"] + description: A list of static fields (key-value pairs) that is added to each log event processed by this component. items: - description: The name of a field to remove from the log event. - type: string + $ref: "#/components/schemas/ObservabilityPipelineFieldValue" type: array id: description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: "remove-fields-processor" + example: "add-fields-processor" type: string include: description: A Datadog search query used to determine which logs this processor targets. example: "service:my-service" type: string type: - $ref: "#/components/schemas/ObservabilityPipelineRemoveFieldsProcessorType" + $ref: "#/components/schemas/ObservabilityPipelineAddFieldsProcessorType" required: - id - type @@ -79683,18 +81827,18 @@ components: - enabled type: object x-pipeline-types: [logs] - ObservabilityPipelineRemoveFieldsProcessorType: - default: remove_fields - description: The processor type. The value should always be `remove_fields`. + ObservabilityPipelineAddFieldsProcessorType: + default: add_fields + description: The processor type. The value should always be `add_fields`. enum: - - remove_fields - example: remove_fields + - add_fields + example: add_fields type: string x-enum-varnames: - - REMOVE_FIELDS - ObservabilityPipelineRenameFieldsProcessor: + - ADD_FIELDS + ObservabilityPipelineAddHostnameProcessor: description: |- - The `rename_fields` processor changes field names. + The `add_hostname` processor adds the hostname to log events. **Supported pipeline types:** logs properties: @@ -79704,61 +81848,35 @@ components: description: Indicates whether the processor is enabled. example: true type: boolean - fields: - description: A list of rename rules specifying which fields to rename in the event, what to rename them to, and whether to preserve the original fields. - items: - $ref: "#/components/schemas/ObservabilityPipelineRenameFieldsProcessorField" - type: array id: - description: A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components). - example: "rename-fields-processor" + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: add-hostname-processor type: string include: description: A Datadog search query used to determine which logs this processor targets. example: "service:my-service" type: string type: - $ref: "#/components/schemas/ObservabilityPipelineRenameFieldsProcessorType" + $ref: "#/components/schemas/ObservabilityPipelineAddHostnameProcessorType" required: - id - type - include - - fields - enabled type: object x-pipeline-types: [logs] - ObservabilityPipelineRenameFieldsProcessorField: - description: Defines how to rename a field in log events. - properties: - destination: - description: The field name to assign the renamed value to. - example: "destination_field" - type: string - preserve_source: - description: Indicates whether the original field, that is received from the source, should be kept (`true`) or removed (`false`) after renaming. - example: false - type: boolean - source: - description: The original field name in the log event that should be renamed. - example: "source_field" - type: string - required: - - source - - destination - - preserve_source - type: object - ObservabilityPipelineRenameFieldsProcessorType: - default: rename_fields - description: The processor type. The value should always be `rename_fields`. + ObservabilityPipelineAddHostnameProcessorType: + default: add_hostname + description: The processor type. The value should always be `add_hostname`. enum: - - rename_fields - example: rename_fields + - add_hostname + example: add_hostname type: string x-enum-varnames: - - RENAME_FIELDS - ObservabilityPipelineRenameMetricTagsProcessor: + - ADD_HOSTNAME + ObservabilityPipelineAddMetricTagsProcessor: description: |- - The `rename_metric_tags` processor changes the keys of tags on metrics. + The `add_metric_tags` processor adds static tags to metrics. **Supported pipeline types:** metrics properties: @@ -79770,20 +81888,20 @@ components: type: boolean id: description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: "rename-metric-tags-processor" + example: "add-metric-tags-processor" type: string include: description: A Datadog search query used to determine which metrics this processor targets. example: "*" type: string tags: - description: A list of rename rules specifying which tag keys to rename on each metric. + description: A list of static tags (key-value pairs) added to each metric processed by this component. items: - $ref: "#/components/schemas/ObservabilityPipelineRenameMetricTagsProcessorTag" + $ref: "#/components/schemas/ObservabilityPipelineFieldValue" maxItems: 15 type: array type: - $ref: "#/components/schemas/ObservabilityPipelineRenameMetricTagsProcessorType" + $ref: "#/components/schemas/ObservabilityPipelineAddMetricTagsProcessorType" required: - id - type @@ -79792,917 +81910,614 @@ components: - enabled type: object x-pipeline-types: [metrics] - ObservabilityPipelineRenameMetricTagsProcessorTag: - description: Defines how to rename a tag on metric events. - properties: - rename_to: - description: The new tag key to assign in place of the original. - example: "destination_tag" - type: string - tag: - description: The original tag key on the metric event. - example: "source_tag" - type: string - required: - - tag - - rename_to - type: object - ObservabilityPipelineRenameMetricTagsProcessorType: - default: rename_metric_tags - description: The processor type. The value must be `rename_metric_tags`. - enum: [rename_metric_tags] - example: rename_metric_tags + ObservabilityPipelineAddMetricTagsProcessorType: + default: add_metric_tags + description: The processor type. The value must be `add_metric_tags`. + enum: [add_metric_tags] + example: add_metric_tags type: string x-enum-varnames: - - RENAME_METRIC_TAGS - ObservabilityPipelineRsyslogDestination: + - ADD_METRIC_TAGS + ObservabilityPipelineAggregateProcessor: description: |- - The `rsyslog` destination forwards logs to an external `rsyslog` server over TCP or UDP using the syslog protocol. + The `aggregate` processor combines metrics that share the same name and tags into a single metric over a configurable interval. - **Supported pipeline types:** logs + **Supported pipeline types:** metrics properties: - buffer: - $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" - endpoint_url_key: - description: Name of the environment variable or secret that holds the syslog server endpoint URL. - example: SYSLOG_ENDPOINT_URL - type: string + display_name: + $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" + enabled: + description: Indicates whether the processor is enabled. + example: true + type: boolean id: - description: The unique identifier for this component. - example: "rsyslog-destination" + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: "aggregate-processor" type: string - inputs: - description: A list of component IDs whose output is used as the `input` for this component. - example: ["filter-processor"] - items: - description: The ID of a component whose output is used as input for this destination. - type: string - type: array - keepalive: - description: Optional socket keepalive duration in milliseconds. - example: 60000 + include: + description: A Datadog search query used to determine which metrics this processor targets. + example: "*" + type: string + interval_secs: + description: The interval, in seconds, over which metrics are aggregated. + example: 10 format: int64 - minimum: 0 + maximum: 60 + minimum: 1 type: integer - tls: - $ref: "#/components/schemas/ObservabilityPipelineTls" + mode: + $ref: "#/components/schemas/ObservabilityPipelineAggregateProcessorMode" type: - $ref: "#/components/schemas/ObservabilityPipelineRsyslogDestinationType" + $ref: "#/components/schemas/ObservabilityPipelineAggregateProcessorType" required: - id - type - - inputs + - include + - interval_secs + - mode + - enabled type: object - x-pipeline-types: [logs] - ObservabilityPipelineRsyslogDestinationType: - default: rsyslog - description: The destination type. The value should always be `rsyslog`. - enum: [rsyslog] - example: rsyslog + x-pipeline-types: [metrics] + ObservabilityPipelineAggregateProcessorMode: + description: The aggregation mode applied to metrics that share the same name and tags within the interval. + enum: + - auto + - sum + - latest + - count + - max + - min + - mean + example: auto type: string x-enum-varnames: - - RSYSLOG - ObservabilityPipelineRsyslogSource: + - AUTO + - SUM + - LATEST + - COUNT + - MAX + - MIN + - MEAN + ObservabilityPipelineAggregateProcessorType: + default: aggregate + description: The processor type. The value must be `aggregate`. + enum: [aggregate] + example: aggregate + type: string + x-enum-varnames: + - AGGREGATE + ObservabilityPipelineAmazonDataFirehoseSource: description: |- - The `rsyslog` source listens for logs over TCP or UDP from an `rsyslog` server using the syslog protocol. + The `amazon_data_firehose` source ingests logs from AWS Data Firehose. **Supported pipeline types:** logs properties: address_key: - description: Name of the environment variable or secret that holds the listen address for the syslog receiver. - example: SYSLOG_ADDRESS + description: Name of the environment variable or secret that holds the Firehose delivery stream address. + example: FIREHOSE_ADDRESS type: string + auth: + $ref: "#/components/schemas/ObservabilityPipelineAwsAuth" id: description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: "rsyslog-source" + example: amazon-firehose-source type: string - mode: - $ref: "#/components/schemas/ObservabilityPipelineSyslogSourceMode" tls: - $ref: "#/components/schemas/ObservabilityPipelineMtlsServerTls" + $ref: "#/components/schemas/ObservabilityPipelineTls" type: - $ref: "#/components/schemas/ObservabilityPipelineRsyslogSourceType" + $ref: "#/components/schemas/ObservabilityPipelineAmazonDataFirehoseSourceType" required: - id - type - - mode type: object x-pipeline-types: [logs] - ObservabilityPipelineRsyslogSourceType: - default: rsyslog - description: The source type. The value should always be `rsyslog`. - enum: [rsyslog] - example: rsyslog + ObservabilityPipelineAmazonDataFirehoseSourceType: + default: amazon_data_firehose + description: The source type. The value should always be `amazon_data_firehose`. + enum: [amazon_data_firehose] + example: amazon_data_firehose type: string - x-enum-varnames: - - RSYSLOG - ObservabilityPipelineSampleProcessor: + x-enum-varnames: [AMAZON_DATA_FIREHOSE] + ObservabilityPipelineAmazonOpenSearchDestination: description: |- - The `sample` processor allows probabilistic sampling of logs at a fixed rate. + The `amazon_opensearch` destination writes logs to Amazon OpenSearch. **Supported pipeline types:** logs properties: - display_name: - $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" - enabled: - description: Indicates whether the processor is enabled. - example: true - type: boolean - group_by: - description: Optional list of fields to group events by. Each group is sampled independently. - example: ["service", "host"] + auth: + $ref: "#/components/schemas/ObservabilityPipelineAmazonOpenSearchDestinationAuth" + buffer: + $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" + bulk_index: + description: The index to write logs to. + example: logs-index + type: string + id: + description: The unique identifier for this component. + example: elasticsearch-destination + type: string + inputs: + description: A list of component IDs whose output is used as the `input` for this component. + example: ["filter-processor"] items: - description: A log field name used to group events for independent sampling. + description: The ID of a component whose output is used as input for this destination. type: string - minItems: 1 type: array - id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: "sample-processor" - type: string - include: - description: A Datadog search query used to determine which logs this processor targets. - example: "service:my-service" - type: string - percentage: - description: The percentage of logs to sample. - example: 10.0 - format: double - type: number type: - $ref: "#/components/schemas/ObservabilityPipelineSampleProcessorType" + $ref: "#/components/schemas/ObservabilityPipelineAmazonOpenSearchDestinationType" required: - id - type - - include - - percentage - - enabled + - inputs + - auth type: object x-pipeline-types: [logs] - ObservabilityPipelineSampleProcessorType: - default: sample - description: The processor type. The value should always be `sample`. - enum: [sample] - example: sample + ObservabilityPipelineAmazonOpenSearchDestinationAuth: + description: |- + Authentication settings for the Amazon OpenSearch destination. + The `strategy` field determines whether basic or AWS-based authentication is used. + properties: + assume_role: + description: The ARN of the role to assume (used with `aws` strategy). + type: string + aws_region: + description: AWS region + type: string + external_id: + description: External ID for the assumed role (used with `aws` strategy). + type: string + session_name: + description: Session name for the assumed role (used with `aws` strategy). + type: string + strategy: + $ref: "#/components/schemas/ObservabilityPipelineAmazonOpenSearchDestinationAuthStrategy" + required: + - strategy + type: object + ObservabilityPipelineAmazonOpenSearchDestinationAuthStrategy: + description: The authentication strategy to use. + enum: [basic, aws] + example: aws type: string x-enum-varnames: - - SAMPLE - ObservabilityPipelineSensitiveDataScannerProcessor: + - BASIC + - AWS + ObservabilityPipelineAmazonOpenSearchDestinationType: + default: amazon_opensearch + description: The destination type. The value should always be `amazon_opensearch`. + enum: + - amazon_opensearch + example: amazon_opensearch + type: string + x-enum-varnames: + - AMAZON_OPENSEARCH + ObservabilityPipelineAmazonS3Destination: description: |- - The `sensitive_data_scanner` processor detects and optionally redacts sensitive data in log events. + The `amazon_s3` destination sends your logs in Datadog-rehydratable format to an Amazon S3 bucket for archiving. **Supported pipeline types:** logs properties: - display_name: - $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" - enabled: - description: Indicates whether the processor is enabled. - example: true - type: boolean - id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: "sensitive-scanner" + auth: + $ref: "#/components/schemas/ObservabilityPipelineAwsAuth" + bucket: + description: S3 bucket name. + example: "error-logs" type: string - include: - description: A Datadog search query used to determine which logs this processor targets. - example: "source:prod" + buffer: + $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" + compression: + $ref: "#/components/schemas/ObservabilityPipelineAmazonS3DestinationCompression" + id: + description: Unique identifier for the destination component. + example: amazon-s3-destination type: string - rules: - description: A list of rules for identifying and acting on sensitive data patterns. + inputs: + description: A list of component IDs whose output is used as the `input` for this component. + example: ["datadog-agent-source"] items: - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorRule" + description: The ID of a component whose output is used as input for this destination. + type: string type: array + key_prefix: + description: Optional prefix for object keys. + type: string + region: + description: AWS region of the S3 bucket. + example: "us-east-1" + type: string + server_side_encryption: + $ref: "#/components/schemas/ObservabilityPipelineAmazonS3DestinationServerSideEncryption" + ssekms_key_id: + description: |- + The AWS KMS key ID used for SSE-KMS encryption. + Only applies when `server_side_encryption` is set to `aws:kms`. + example: "arn:aws:kms:us-east-1:123456789012:key/mrk-abc123" + type: string + storage_class: + $ref: "#/components/schemas/ObservabilityPipelineAmazonS3DestinationStorageClass" + tls: + $ref: "#/components/schemas/ObservabilityPipelineTls" type: - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorType" + $ref: "#/components/schemas/ObservabilityPipelineAmazonS3DestinationType" required: - id - type - - include - - rules - - enabled + - inputs + - bucket + - region + - storage_class type: object x-pipeline-types: [logs] - ObservabilityPipelineSensitiveDataScannerProcessorAction: - description: Defines what action to take when sensitive data is matched. + ObservabilityPipelineAmazonS3DestinationCompression: + description: |- + Compression configuration for archived logs. When omitted, logs are compressed with gzip + for backward compatibility. oneOf: - - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorActionRedact" - - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorActionHash" - - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorActionPartialRedact" - ObservabilityPipelineSensitiveDataScannerProcessorActionHash: - description: Configuration for hashing matched sensitive values. - properties: - action: - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorActionHashAction" - options: - description: |- - Optional settings for the hash action. When omitted or empty, matched sensitive data is - replaced with a deterministic hashed value that preserves structure for analytics while - protecting the original content. Reserved for future hash configuration (for example, algorithm or salt). - type: object - required: [action] - type: object - ObservabilityPipelineSensitiveDataScannerProcessorActionHashAction: - description: Action type that replaces the matched sensitive data with a hashed representation, preserving structure while securing content. - enum: [hash] - example: hash - type: string - x-enum-varnames: - - HASH - ObservabilityPipelineSensitiveDataScannerProcessorActionPartialRedact: - description: Configuration for partially redacting matched sensitive data. + - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3DestinationCompressionZstd" + - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3DestinationCompressionGzip" + ObservabilityPipelineAmazonS3DestinationCompressionGzip: + description: Gzip compression. properties: - action: - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorActionPartialRedactAction" - options: - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorActionPartialRedactOptions" - required: [action, options] + algorithm: + $ref: "#/components/schemas/ObservabilityPipelineAmazonS3DestinationCompressionGzipType" + level: + description: Gzip compression level. Valid values range from `1` to `9`. + example: 6 + format: int64 + maximum: 9 + minimum: 1 + type: integer + required: + - algorithm + - level type: object - ObservabilityPipelineSensitiveDataScannerProcessorActionPartialRedactAction: - description: Action type that redacts part of the sensitive data while preserving a configurable number of characters, typically used for masking purposes (e.g., show last 4 digits of a credit card). - enum: [partial_redact] - example: partial_redact + ObservabilityPipelineAmazonS3DestinationCompressionGzipType: + default: gzip + description: The compression type. Always `gzip`. + enum: + - gzip + example: gzip type: string x-enum-varnames: - - PARTIAL_REDACT - ObservabilityPipelineSensitiveDataScannerProcessorActionPartialRedactOptions: - description: Controls how partial redaction is applied, including character count and direction. + - GZIP + ObservabilityPipelineAmazonS3DestinationCompressionZstd: + description: Zstd compression. properties: - characters: - description: Number of characters to leave visible from the start or end of the matched value; the rest are redacted. - example: 4 + algorithm: + $ref: "#/components/schemas/ObservabilityPipelineAmazonS3DestinationCompressionZstdType" + level: + description: Zstd compression level. Valid values range from `1` to` 21`. + example: 3 format: int64 + maximum: 21 + minimum: 1 type: integer - direction: - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorActionPartialRedactOptionsDirection" - required: [characters, direction] + required: + - algorithm + - level type: object - ObservabilityPipelineSensitiveDataScannerProcessorActionPartialRedactOptionsDirection: - description: Indicates whether to redact characters from the first or last part of the matched value. - enum: [first, last] - example: last + ObservabilityPipelineAmazonS3DestinationCompressionZstdType: + default: zstd + description: The compression type. Always `zstd`. + enum: + - zstd + example: zstd type: string x-enum-varnames: - - FIRST - - LAST - ObservabilityPipelineSensitiveDataScannerProcessorActionRedact: - description: Configuration for completely redacting matched sensitive data. - properties: - action: - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorActionRedactAction" - options: - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorActionRedactOptions" - required: [action, options] - type: object - ObservabilityPipelineSensitiveDataScannerProcessorActionRedactAction: - description: Action type that completely replaces the matched sensitive data with a fixed replacement string to remove all visibility. - enum: [redact] - example: redact - type: string + - ZSTD + ObservabilityPipelineAmazonS3DestinationServerSideEncryption: + description: Server-side encryption type for Amazon S3. + enum: + - "aws:kms" + - AES256 + example: "aws:kms" + type: string x-enum-varnames: - - REDACT - ObservabilityPipelineSensitiveDataScannerProcessorActionRedactOptions: - description: Configuration for fully redacting sensitive data. - properties: - replace: - description: The string used to replace matched sensitive data (for example, "***" or "[REDACTED]"). - example: "***" - type: string - required: [replace] - type: object - ObservabilityPipelineSensitiveDataScannerProcessorCustomPattern: - description: Defines a custom regex-based pattern for identifying sensitive data in logs. - properties: - options: - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorCustomPatternOptions" - type: - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorCustomPatternType" - required: [type, options] - type: object - ObservabilityPipelineSensitiveDataScannerProcessorCustomPatternOptions: - description: Options for defining a custom regex pattern. - properties: - description: - description: Human-readable description providing context about a sensitive data scanner rule - example: Custom regex for internal API keys - type: string - rule: - description: A regular expression used to detect sensitive values. Must be a valid regex. - example: "\\b\\d{16}\\b" - type: string - required: [rule] - type: object - ObservabilityPipelineSensitiveDataScannerProcessorCustomPatternType: - description: Indicates a custom regular expression is used for matching. - enum: [custom] - example: custom + - AWS_KMS + - AES256 + ObservabilityPipelineAmazonS3DestinationStorageClass: + description: S3 storage class. + enum: + - STANDARD + - REDUCED_REDUNDANCY + - INTELLIGENT_TIERING + - STANDARD_IA + - EXPRESS_ONEZONE + - ONEZONE_IA + - GLACIER + - GLACIER_IR + - DEEP_ARCHIVE + example: STANDARD type: string x-enum-varnames: - - CUSTOM - ObservabilityPipelineSensitiveDataScannerProcessorKeywordOptions: - description: Configuration for keywords used to reinforce sensitive data pattern detection. + - STANDARD + - REDUCED_REDUNDANCY + - INTELLIGENT_TIERING + - STANDARD_IA + - EXPRESS_ONEZONE + - ONEZONE_IA + - GLACIER + - GLACIER_IR + - DEEP_ARCHIVE + ObservabilityPipelineAmazonS3DestinationType: + default: amazon_s3 + description: The destination type. Always `amazon_s3`. + enum: + - amazon_s3 + example: amazon_s3 + type: string + x-enum-varnames: + - AMAZON_S3 + ObservabilityPipelineAmazonS3GenericBatchSettings: + description: Event batching settings properties: - keywords: - description: A list of keywords to match near the sensitive pattern. - example: ["ssn", "card", "account"] - items: - description: A keyword string that reinforces detection when found near the sensitive pattern. - type: string - type: array - proximity: - description: Maximum number of tokens between a keyword and a sensitive value match. - example: 5 + batch_size: + description: Maximum batch size in bytes. + example: 100000000 + format: int64 + type: integer + timeout_secs: + description: Maximum number of seconds to wait before flushing the batch. + example: 900 format: int64 type: integer - required: [keywords, proximity] - type: object - ObservabilityPipelineSensitiveDataScannerProcessorLibraryPattern: - description: Specifies a pattern from Datadog’s sensitive data detection library to match known sensitive data types. - properties: - options: - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorLibraryPatternOptions" - type: - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorLibraryPatternType" - required: [type, options] - type: object - ObservabilityPipelineSensitiveDataScannerProcessorLibraryPatternOptions: - description: Options for selecting a predefined library pattern and enabling keyword support. - properties: - description: - description: Human-readable description providing context about a sensitive data scanner rule - example: Credit card pattern - type: string - id: - description: Identifier for a predefined pattern from the sensitive data scanner pattern library. - example: credit_card - type: string - use_recommended_keywords: - description: Whether to augment the pattern with recommended keywords (optional). - type: boolean - required: [id] type: object - ObservabilityPipelineSensitiveDataScannerProcessorLibraryPatternType: - description: Indicates that a predefined library pattern is used. - enum: [library] - example: library - type: string - x-enum-varnames: - - LIBRARY - ObservabilityPipelineSensitiveDataScannerProcessorPattern: - description: Pattern detection configuration for identifying sensitive data using either a custom regex or a library reference. + ObservabilityPipelineAmazonS3GenericCompression: + description: Compression algorithm applied to encoded logs. oneOf: - - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorCustomPattern" - - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorLibraryPattern" - ObservabilityPipelineSensitiveDataScannerProcessorRule: - description: Defines a rule for detecting sensitive data, including matching pattern, scope, and the action to take. + - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericCompressionZstd" + - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericCompressionGzip" + - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericCompressionSnappy" + ObservabilityPipelineAmazonS3GenericCompressionGzip: + description: Gzip compression. properties: - keyword_options: - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorKeywordOptions" - name: - description: A name identifying the rule. - example: "Redact Credit Card Numbers" - type: string - on_match: - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorAction" - pattern: - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorPattern" - scope: - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorScope" - tags: - description: Tags assigned to this rule for filtering and classification. - example: ["pii", "ccn"] - items: - description: A tag string used to classify and filter this sensitive data rule. - type: string - type: array + algorithm: + $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericCompressionGzipType" + level: + description: Gzip compression level. + example: 6 + format: int64 + type: integer required: - - name - - pattern - - scope - - on_match - type: object - ObservabilityPipelineSensitiveDataScannerProcessorScope: - description: Determines which parts of the log the pattern-matching rule should be applied to. - oneOf: - - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorScopeInclude" - - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorScopeExclude" - - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorScopeAll" - ObservabilityPipelineSensitiveDataScannerProcessorScopeAll: - description: Applies scanning across all available fields. - properties: - target: - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorScopeAllTarget" - required: [target] - type: object - ObservabilityPipelineSensitiveDataScannerProcessorScopeAllTarget: - description: Applies the rule to all fields. - enum: [all] - example: all - type: string - x-enum-varnames: - - ALL - ObservabilityPipelineSensitiveDataScannerProcessorScopeExclude: - description: Excludes specific fields from sensitive data scanning. - properties: - options: - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorScopeOptions" - target: - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorScopeExcludeTarget" - required: [target, options] + - algorithm + - level type: object - ObservabilityPipelineSensitiveDataScannerProcessorScopeExcludeTarget: - description: Excludes specific fields from processing. - enum: [exclude] - example: exclude + ObservabilityPipelineAmazonS3GenericCompressionGzipType: + default: gzip + description: The compression type. Always `gzip`. + enum: + - gzip + example: gzip type: string x-enum-varnames: - - EXCLUDE - ObservabilityPipelineSensitiveDataScannerProcessorScopeInclude: - description: Includes only specific fields for sensitive data scanning. + - GZIP + ObservabilityPipelineAmazonS3GenericCompressionSnappy: + description: Snappy compression. properties: - options: - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorScopeOptions" - target: - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorScopeIncludeTarget" - required: [target, options] + algorithm: + $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericCompressionSnappyType" + required: + - algorithm type: object - ObservabilityPipelineSensitiveDataScannerProcessorScopeIncludeTarget: - description: Applies the rule only to included fields. - enum: [include] - example: include + ObservabilityPipelineAmazonS3GenericCompressionSnappyType: + default: snappy + description: The compression type. Always `snappy`. + enum: + - snappy + example: snappy type: string x-enum-varnames: - - INCLUDE - ObservabilityPipelineSensitiveDataScannerProcessorScopeOptions: - description: Fields to which the scope rule applies. + - SNAPPY + ObservabilityPipelineAmazonS3GenericCompressionZstd: + description: Zstd compression. properties: - fields: - description: List of log attribute names (field paths) to which the scope applies. Only these fields are included in or excluded from pattern matching. - example: - - "" - items: - description: A log field path to include or exclude from sensitive data scanning. - type: string - type: array - required: [fields] + algorithm: + $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericCompressionZstdType" + level: + description: Zstd compression level. + example: 3 + format: int64 + type: integer + required: + - algorithm + - level type: object - ObservabilityPipelineSensitiveDataScannerProcessorType: - default: sensitive_data_scanner - description: The processor type. The value should always be `sensitive_data_scanner`. - enum: [sensitive_data_scanner] - example: sensitive_data_scanner + ObservabilityPipelineAmazonS3GenericCompressionZstdType: + default: zstd + description: The compression type. Always `zstd`. + enum: + - zstd + example: zstd type: string x-enum-varnames: - - SENSITIVE_DATA_SCANNER - ObservabilityPipelineSentinelOneDestination: + - ZSTD + ObservabilityPipelineAmazonS3GenericDestination: description: |- - The `sentinel_one` destination sends logs to SentinelOne. + The `amazon_s3_generic` destination sends your logs to an Amazon S3 bucket. **Supported pipeline types:** logs properties: + auth: + $ref: "#/components/schemas/ObservabilityPipelineAwsAuth" + batch_settings: + $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericBatchSettings" + bucket: + description: S3 bucket name. + example: "my-bucket" + type: string buffer: $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" + compression: + $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericCompression" + encoding: + $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericEncoding" id: - description: The unique identifier for this component. - example: sentinelone-destination + description: Unique identifier for the destination component. + example: generic-s3-destination type: string inputs: description: A list of component IDs whose output is used as the `input` for this component. example: ["filter-processor"] items: - description: The ID of a component whose output is used as input for this destination. + description: A component ID referenced as an input source. type: string type: array + key_prefix: + description: Optional prefix for object keys. + type: string region: - $ref: "#/components/schemas/ObservabilityPipelineSentinelOneDestinationRegion" - token_key: - description: Name of the environment variable or secret that holds the SentinelOne API token. - example: SENTINELONE_TOKEN + description: AWS region of the S3 bucket. + example: "us-east-1" + type: string + server_side_encryption: + $ref: "#/components/schemas/ObservabilityPipelineAmazonS3DestinationServerSideEncryption" + ssekms_key_id: + description: |- + The AWS KMS key ID used for SSE-KMS encryption. + Only applies when `server_side_encryption` is set to `aws:kms`. + example: "arn:aws:kms:us-east-1:123456789012:key/mrk-abc123" type: string + storage_class: + $ref: "#/components/schemas/ObservabilityPipelineAmazonS3DestinationStorageClass" type: - $ref: "#/components/schemas/ObservabilityPipelineSentinelOneDestinationType" + $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericDestinationType" required: - id - type - inputs + - bucket - region + - storage_class + - encoding + - compression type: object x-pipeline-types: [logs] - ObservabilityPipelineSentinelOneDestinationRegion: - description: The SentinelOne region to send logs to. - enum: - - us - - eu - - ca - - data_set_us - example: us - type: string - x-enum-varnames: - - US - - EU - - CA - - DATA_SET_US - ObservabilityPipelineSentinelOneDestinationType: - default: sentinel_one - description: The destination type. The value should always be `sentinel_one`. + ObservabilityPipelineAmazonS3GenericDestinationType: + default: amazon_s3_generic + description: The destination type. Always `amazon_s3_generic`. enum: - - sentinel_one - example: sentinel_one + - amazon_s3_generic + example: amazon_s3_generic type: string x-enum-varnames: - - SENTINEL_ONE - ObservabilityPipelineSocketDestination: - description: |- - The `socket` destination sends logs over TCP or UDP to a remote server. - - **Supported pipeline types:** logs + - GENERIC_ARCHIVES_S3 + ObservabilityPipelineAmazonS3GenericEncoding: + description: Encoding format for the destination. + oneOf: + - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericEncodingJson" + - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericEncodingParquet" + ObservabilityPipelineAmazonS3GenericEncodingJson: + description: JSON encoding. properties: - address_key: - description: Name of the environment variable or secret that holds the socket address (host:port). - example: SOCKET_ADDRESS - type: string - buffer: - $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" - encoding: - $ref: "#/components/schemas/ObservabilityPipelineSocketDestinationEncoding" - framing: - $ref: "#/components/schemas/ObservabilityPipelineSocketDestinationFraming" - id: - description: The unique identifier for this component. - example: socket-destination - type: string - inputs: - description: A list of component IDs whose output is used as the `input` for this component. - example: ["filter-processor"] - items: - description: The ID of a component whose output is used as input for this destination. - type: string - type: array - mode: - $ref: "#/components/schemas/ObservabilityPipelineSocketDestinationMode" - tls: - $ref: "#/components/schemas/ObservabilityPipelineClientTls" - description: TLS configuration. Relevant only when `mode` is `tcp`. type: - $ref: "#/components/schemas/ObservabilityPipelineSocketDestinationType" + $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericEncodingJsonType" required: - - id - type - - inputs - - encoding - - framing - - mode type: object - x-pipeline-types: [logs] - ObservabilityPipelineSocketDestinationEncoding: - description: Encoding format for log events. - enum: [json, raw_message] + ObservabilityPipelineAmazonS3GenericEncodingJsonType: + default: json + description: The encoding type. Always `json`. + enum: + - json example: json type: string x-enum-varnames: - JSON - - RAW_MESSAGE - ObservabilityPipelineSocketDestinationFraming: - description: Framing method configuration. - oneOf: - - $ref: "#/components/schemas/ObservabilityPipelineSocketDestinationFramingNewlineDelimited" - - $ref: "#/components/schemas/ObservabilityPipelineSocketDestinationFramingBytes" - - $ref: "#/components/schemas/ObservabilityPipelineSocketDestinationFramingCharacterDelimited" - ObservabilityPipelineSocketDestinationFramingBytes: - description: Event data is not delimited at all. - properties: - method: - $ref: "#/components/schemas/ObservabilityPipelineSocketDestinationFramingBytesMethod" - required: [method] - type: object - ObservabilityPipelineSocketDestinationFramingBytesMethod: - description: The definition of `ObservabilityPipelineSocketDestinationFramingBytesMethod` object. - enum: [bytes] - example: bytes - type: string - x-enum-varnames: - - BYTES - ObservabilityPipelineSocketDestinationFramingCharacterDelimited: - description: Each log event is separated using the specified delimiter character. - properties: - delimiter: - description: A single ASCII character used as a delimiter. - example: "|" - maxLength: 1 - minLength: 1 - type: string - method: - $ref: "#/components/schemas/ObservabilityPipelineSocketDestinationFramingCharacterDelimitedMethod" - required: [method, delimiter] - type: object - ObservabilityPipelineSocketDestinationFramingCharacterDelimitedMethod: - description: The definition of `ObservabilityPipelineSocketDestinationFramingCharacterDelimitedMethod` object. - enum: [character_delimited] - example: character_delimited - type: string - x-enum-varnames: - - CHARACTER_DELIMITED - ObservabilityPipelineSocketDestinationFramingNewlineDelimited: - description: Each log event is delimited by a newline character. - properties: - method: - $ref: "#/components/schemas/ObservabilityPipelineSocketDestinationFramingNewlineDelimitedMethod" - required: [method] - type: object - ObservabilityPipelineSocketDestinationFramingNewlineDelimitedMethod: - description: The definition of `ObservabilityPipelineSocketDestinationFramingNewlineDelimitedMethod` object. - enum: [newline_delimited] - example: newline_delimited - type: string - x-enum-varnames: - - NEWLINE_DELIMITED - ObservabilityPipelineSocketDestinationMode: - description: Protocol used to send logs. - enum: [tcp, udp] - example: tcp - type: string - x-enum-varnames: - - TCP - - UDP - ObservabilityPipelineSocketDestinationType: - default: socket - description: The destination type. The value should always be `socket`. - enum: [socket] - example: socket - type: string - x-enum-varnames: - - SOCKET - ObservabilityPipelineSocketSource: - description: |- - The `socket` source ingests logs over TCP or UDP. - - **Supported pipeline types:** logs + ObservabilityPipelineAmazonS3GenericEncodingParquet: + description: Parquet encoding. properties: - address_key: - description: Name of the environment variable or secret that holds the listen address for the socket. - example: SOCKET_ADDRESS - type: string - framing: - $ref: "#/components/schemas/ObservabilityPipelineSocketSourceFraming" - id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: socket-source - type: string - mode: - $ref: "#/components/schemas/ObservabilityPipelineSocketSourceMode" - tls: - $ref: "#/components/schemas/ObservabilityPipelineMtlsServerTls" - description: TLS configuration. Relevant only when `mode` is `tcp`. type: - $ref: "#/components/schemas/ObservabilityPipelineSocketSourceType" + $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericEncodingParquetType" required: - - id - type - - mode - - framing - type: object - x-pipeline-types: [logs] - ObservabilityPipelineSocketSourceFraming: - description: Framing method configuration for the socket source. - oneOf: - - $ref: "#/components/schemas/ObservabilityPipelineSocketSourceFramingNewlineDelimited" - - $ref: "#/components/schemas/ObservabilityPipelineSocketSourceFramingBytes" - - $ref: "#/components/schemas/ObservabilityPipelineSocketSourceFramingCharacterDelimited" - - $ref: "#/components/schemas/ObservabilityPipelineSocketSourceFramingOctetCounting" - - $ref: "#/components/schemas/ObservabilityPipelineSocketSourceFramingChunkedGelf" - ObservabilityPipelineSocketSourceFramingBytes: - description: Byte frames are passed through as-is according to the underlying I/O boundaries (for example, split between messages or stream segments). - properties: - method: - $ref: "#/components/schemas/ObservabilityPipelineSocketSourceFramingBytesMethod" - required: [method] - type: object - ObservabilityPipelineSocketSourceFramingBytesMethod: - description: Byte frames are passed through as-is according to the underlying I/O boundaries (for example, split between messages or stream segments). - enum: [bytes] - example: bytes - type: string - x-enum-varnames: - - BYTES - ObservabilityPipelineSocketSourceFramingCharacterDelimited: - description: Byte frames which are delimited by a chosen character. - properties: - delimiter: - description: A single ASCII character used to delimit events. - example: "|" - maxLength: 1 - minLength: 1 - type: string - method: - $ref: "#/components/schemas/ObservabilityPipelineSocketSourceFramingCharacterDelimitedMethod" - required: [method, delimiter] - type: object - ObservabilityPipelineSocketSourceFramingCharacterDelimitedMethod: - description: Byte frames which are delimited by a chosen character. - enum: [character_delimited] - example: character_delimited - type: string - x-enum-varnames: - - CHARACTER_DELIMITED - ObservabilityPipelineSocketSourceFramingChunkedGelf: - description: Byte frames which are chunked GELF messages. - properties: - method: - $ref: "#/components/schemas/ObservabilityPipelineSocketSourceFramingChunkedGelfMethod" - required: [method] - type: object - ObservabilityPipelineSocketSourceFramingChunkedGelfMethod: - description: Byte frames which are chunked GELF messages. - enum: [chunked_gelf] - example: chunked_gelf - type: string - x-enum-varnames: - - CHUNKED_GELF - ObservabilityPipelineSocketSourceFramingNewlineDelimited: - description: Byte frames which are delimited by a newline character. - properties: - method: - $ref: "#/components/schemas/ObservabilityPipelineSocketSourceFramingNewlineDelimitedMethod" - required: [method] - type: object - ObservabilityPipelineSocketSourceFramingNewlineDelimitedMethod: - description: Byte frames which are delimited by a newline character. - enum: [newline_delimited] - example: newline_delimited - type: string - x-enum-varnames: - - NEWLINE_DELIMITED - ObservabilityPipelineSocketSourceFramingOctetCounting: - description: Byte frames according to the octet counting format as per RFC6587. - properties: - method: - $ref: "#/components/schemas/ObservabilityPipelineSocketSourceFramingOctetCountingMethod" - required: [method] type: object - ObservabilityPipelineSocketSourceFramingOctetCountingMethod: - description: Byte frames according to the octet counting format as per RFC6587. - enum: [octet_counting] - example: octet_counting - type: string - x-enum-varnames: - - OCTET_COUNTING - ObservabilityPipelineSocketSourceMode: - description: Protocol used to receive logs. - enum: [tcp, udp] - example: tcp - type: string - x-enum-varnames: - - TCP - - UDP - ObservabilityPipelineSocketSourceType: - default: socket - description: The source type. The value should always be `socket`. - enum: [socket] - example: socket + ObservabilityPipelineAmazonS3GenericEncodingParquetType: + default: parquet + description: The encoding type. Always `parquet`. + enum: + - parquet + example: parquet type: string x-enum-varnames: - - SOCKET - ObservabilityPipelineSourceValidTokenFieldToAdd: - description: |- - An optional metadata field that is attached to every event authenticated by the - associated token. Both `key` and `value` must match `^[A-Za-z0-9_]+$`. - properties: - key: - description: The metadata field name to add to incoming events. - example: token_name - maxLength: 256 - pattern: "^[A-Za-z0-9_]+$" - type: string - value: - description: The metadata field value to add to incoming events. - example: my_token - maxLength: 1024 - pattern: "^[A-Za-z0-9_]+$" - type: string - required: - - key - - value - type: object - ObservabilityPipelineSpec: - description: Input schema representing an observability pipeline configuration. Used in create and validate requests. - properties: - data: - $ref: "#/components/schemas/ObservabilityPipelineSpecData" - required: - - data - type: object - ObservabilityPipelineSpecData: - description: Contains the the pipeline configuration. - properties: - attributes: - $ref: "#/components/schemas/ObservabilityPipelineDataAttributes" - type: - default: pipelines - description: The resource type identifier. For pipeline resources, this should always be set to `pipelines`. - example: pipelines - type: string - required: - - type - - attributes - type: object - ObservabilityPipelineSplitArrayProcessor: + - PARQUET + ObservabilityPipelineAmazonS3Source: description: |- - The `split_array` processor splits array fields into separate events based on configured rules. + The `amazon_s3` source ingests logs from an Amazon S3 bucket. + It supports AWS authentication, TLS encryption, and configurable compression. **Supported pipeline types:** logs properties: - arrays: - description: A list of array split configurations. - items: - $ref: "#/components/schemas/ObservabilityPipelineSplitArrayProcessorArrayConfig" - maxItems: 15 - minItems: 1 - type: array - display_name: - $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" - enabled: - description: Indicates whether the processor is enabled. - example: true - type: boolean + auth: + $ref: "#/components/schemas/ObservabilityPipelineAwsAuth" + compression: + $ref: "#/components/schemas/ObservabilityPipelineAmazonS3SourceCompression" id: description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: split-array-processor + example: aws-s3-source type: string - include: - description: A Datadog search query used to determine which logs this processor targets. For split_array, this should typically be `*`. - example: "*" + region: + description: AWS region where the S3 bucket resides. + example: us-east-1 type: string + tls: + $ref: "#/components/schemas/ObservabilityPipelineTls" type: - $ref: "#/components/schemas/ObservabilityPipelineSplitArrayProcessorType" + $ref: "#/components/schemas/ObservabilityPipelineAmazonS3SourceType" + url_key: + description: Name of the environment variable or secret that holds the S3 bucket URL. + example: S3_BUCKET_URL + type: string required: - id - type - - include - - arrays - - enabled + - region type: object x-pipeline-types: [logs] - ObservabilityPipelineSplitArrayProcessorArrayConfig: - description: Configuration for a single array split operation. - properties: - field: - description: The path to the array field to split. - example: "tags" - type: string - include: - description: A Datadog search query used to determine which logs this array split operation targets. - example: "*" - type: string - required: - - include - - field - type: object - ObservabilityPipelineSplitArrayProcessorType: - default: split_array - description: The processor type. The value should always be `split_array`. + ObservabilityPipelineAmazonS3SourceCompression: + description: Compression format for objects retrieved from the S3 bucket. Use `auto` to detect compression from the object's Content-Encoding header or file extension. enum: - - split_array - example: split_array + - auto + - none + - gzip + - zstd + example: gzip type: string x-enum-varnames: - - SPLIT_ARRAY - ObservabilityPipelineSplunkHecDestination: + - AUTO + - NONE + - GZIP + - ZSTD + ObservabilityPipelineAmazonS3SourceType: + default: amazon_s3 + description: The source type. Always `amazon_s3`. + enum: + - amazon_s3 + example: amazon_s3 + type: string + x-enum-varnames: + - AMAZON_S3 + ObservabilityPipelineAmazonSecurityLakeDestination: description: |- - The `splunk_hec` destination forwards logs to Splunk using the HTTP Event Collector (HEC). + The `amazon_security_lake` destination sends your logs to Amazon Security Lake. **Supported pipeline types:** logs properties: - auto_extract_timestamp: - description: |- - If `true`, Splunk tries to extract timestamps from incoming log events. - If `false`, Splunk assigns the time the event was received. - Only applies when `endpoint_target` is `event`; cannot be `true` when `endpoint_target` is `raw`. - example: true - type: boolean + auth: + $ref: "#/components/schemas/ObservabilityPipelineAwsAuth" + bucket: + description: Name of the Amazon S3 bucket in Security Lake (3-63 characters). + example: "security-lake-bucket" + type: string buffer: $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" - encoding: - $ref: "#/components/schemas/ObservabilityPipelineSplunkHecDestinationEncoding" - endpoint_target: - $ref: "#/components/schemas/ObservabilityPipelineSplunkHecDestinationEndpointTarget" - endpoint_url_key: - description: Name of the environment variable or secret that holds the Splunk HEC endpoint URL. - example: SPLUNK_HEC_ENDPOINT_URL + custom_source_name: + description: Custom source name for the logs in Security Lake. + example: "my-custom-source" type: string id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: splunk-hec-destination - type: string - index: - description: Optional name of the Splunk index where logs are written. - example: "main" + description: Unique identifier for the destination component. + example: amazon-security-lake-destination type: string - indexed_fields: - description: List of log field names to send as indexed fields to Splunk HEC. Available only when `encoding` is `json`. - example: ["service", "host"] - items: - description: A log field name to index in Splunk. - type: string - type: array inputs: description: A list of component IDs whose output is used as the `input` for this component. example: ["filter-processor"] @@ -80710,279 +82525,789 @@ components: description: The ID of a component whose output is used as input for this destination. type: string type: array - sourcetype: - description: The Splunk sourcetype to assign to log events. - example: "custom_sourcetype" - type: string - token_key: - description: Name of the environment variable or secret that holds the Splunk HEC token. - example: SPLUNK_HEC_TOKEN + region: + description: AWS region of the S3 bucket. + example: "us-east-1" type: string - token_strategy: - $ref: "#/components/schemas/ObservabilityPipelineSplunkHecDestinationTokenStrategy" + tls: + $ref: "#/components/schemas/ObservabilityPipelineTls" type: - $ref: "#/components/schemas/ObservabilityPipelineSplunkHecDestinationType" + $ref: "#/components/schemas/ObservabilityPipelineAmazonSecurityLakeDestinationType" required: - id - type - inputs + - bucket + - region + - custom_source_name type: object x-pipeline-types: [logs] - ObservabilityPipelineSplunkHecDestinationEncoding: - description: Encoding format for log events. + ObservabilityPipelineAmazonSecurityLakeDestinationType: + default: amazon_security_lake + description: The destination type. Always `amazon_security_lake`. enum: - - json - - raw_message - example: json + - amazon_security_lake + example: amazon_security_lake type: string x-enum-varnames: - - JSON - - RAW_MESSAGE - ObservabilityPipelineSplunkHecDestinationEndpointTarget: - description: The Splunk HEC endpoint to send events to. Use `event` to send structured events to the `/event` endpoint, or `raw` to send the raw message to the `/raw` endpoint. + - AMAZON_SECURITY_LAKE + ObservabilityPipelineAwsAuth: + description: |- + AWS authentication credentials used for accessing AWS services such as S3. + If omitted, the system’s default credentials are used (for example, the IAM role and environment variables). + properties: + assume_role: + description: The Amazon Resource Name (ARN) of the role to assume. + type: string + external_id: + description: A unique identifier for cross-account role assumption. + type: string + session_name: + description: A session identifier used for logging and tracing the assumed role session. + type: string + type: object + ObservabilityPipelineAzureStorageDestinationCompression: + description: |- + Compression configuration for archived logs. When omitted, logs are compressed with gzip + for backward compatibility. + oneOf: + - $ref: "#/components/schemas/ObservabilityPipelineAzureStorageDestinationCompressionZstd" + - $ref: "#/components/schemas/ObservabilityPipelineAzureStorageDestinationCompressionGzip" + ObservabilityPipelineAzureStorageDestinationCompressionGzip: + description: Gzip compression. + properties: + algorithm: + $ref: "#/components/schemas/ObservabilityPipelineAzureStorageDestinationCompressionGzipType" + level: + description: Gzip compression level. Valid values range from `1` to `9`. + example: 6 + format: int64 + maximum: 9 + minimum: 1 + type: integer + required: + - algorithm + - level + type: object + ObservabilityPipelineAzureStorageDestinationCompressionGzipType: + default: gzip + description: The compression type. Always `gzip`. enum: - - event - - raw - example: event + - gzip + example: gzip type: string x-enum-varnames: - - EVENT - - RAW - ObservabilityPipelineSplunkHecDestinationTokenStrategy: - description: Controls how the Splunk HEC token is supplied. Use `custom` to provide a token with `token_key`, or `from_source` to forward the token received from an upstream Splunk HEC source. + - GZIP + ObservabilityPipelineAzureStorageDestinationCompressionZstd: + description: Zstd compression. + properties: + algorithm: + $ref: "#/components/schemas/ObservabilityPipelineAzureStorageDestinationCompressionZstdType" + level: + description: Zstd compression level. Valid values range from `1` to `21`. + example: 3 + format: int64 + maximum: 21 + minimum: 1 + type: integer + required: + - algorithm + - level + type: object + ObservabilityPipelineAzureStorageDestinationCompressionZstdType: + default: zstd + description: The compression type. Always `zstd`. enum: - - custom - - from_source - example: custom + - zstd + example: zstd type: string x-enum-varnames: - - CUSTOM - - FROM_SOURCE - ObservabilityPipelineSplunkHecDestinationType: - default: splunk_hec - description: The destination type. Always `splunk_hec`. + - ZSTD + ObservabilityPipelineBufferOptions: + description: Configuration for buffer settings on destination components. + oneOf: + - $ref: "#/components/schemas/ObservabilityPipelineDiskBufferOptions" + - $ref: "#/components/schemas/ObservabilityPipelineMemoryBufferOptions" + - $ref: "#/components/schemas/ObservabilityPipelineMemoryBufferSizeOptions" + ObservabilityPipelineBufferOptionsDiskType: + default: disk + description: The type of the buffer that will be configured, a disk buffer. enum: - - splunk_hec - example: splunk_hec + - disk type: string x-enum-varnames: - - SPLUNK_HEC - ObservabilityPipelineSplunkHecMetricsDestination: + - DISK + ObservabilityPipelineBufferOptionsMemoryType: + default: memory + description: The type of the buffer that will be configured, a memory buffer. + enum: + - memory + type: string + x-enum-varnames: + - MEMORY + ObservabilityPipelineBufferOptionsWhenFull: + default: block + description: Behavior when the buffer is full (block and stop accepting new events, or drop new events) + enum: + - block + - drop_newest + type: string + x-enum-varnames: + - BLOCK + - DROP_NEWEST + ObservabilityPipelineClickhouseDestination: description: |- - The `splunk_hec_metrics` destination forwards metrics to Splunk using the HTTP Event Collector (HEC). + The `clickhouse` destination sends log events to a ClickHouse database table over HTTP. - **Supported pipeline types:** metrics + **Supported pipeline types:** logs. properties: + auth: + $ref: "#/components/schemas/ObservabilityPipelineClickhouseDestinationAuth" + batch: + $ref: "#/components/schemas/ObservabilityPipelineClickhouseDestinationBatch" + batch_encoding: + $ref: "#/components/schemas/ObservabilityPipelineClickhouseDestinationBatchEncoding" buffer: $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" compression: - $ref: "#/components/schemas/ObservabilityPipelineSplunkHecMetricsDestinationCompression" - default_namespace: - description: Optional default namespace for metrics sent to Splunk HEC. - example: "custom_namespace" + $ref: "#/components/schemas/ObservabilityPipelineClickhouseDestinationCompression" + database: + description: Optional ClickHouse database name. If omitted, the user's default database on the ClickHouse server is used. + example: my_database type: string + date_time_best_effort: + description: When `true`, enables flexible DateTime parsing on the ClickHouse server side. + example: false + type: boolean endpoint_url_key: - description: Name of the environment variable or secret that holds the Splunk HEC endpoint URL. - example: SPLUNK_HEC_ENDPOINT_URL + description: |- + Name of the environment variable or secret that contains the ClickHouse HTTP endpoint URL. + Defaults to `DESTINATION_CLICKHOUSE_ENDPOINT_URL` (prefixed with `DD_OP_` at runtime). + example: CLICKHOUSE_ENDPOINT_URL type: string + format: + $ref: "#/components/schemas/ObservabilityPipelineClickhouseDestinationFormat" id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: splunk-hec-metrics-destination - type: string - index: - description: Optional name of the Splunk index where metrics are written. - example: "metrics" + description: The unique identifier for this component. + example: clickhouse-destination type: string inputs: description: A list of component IDs whose output is used as the `input` for this component. - example: ["metrics-filter-processor"] + example: ["filter-processor"] items: description: The ID of a component whose output is used as input for this destination. type: string type: array - source: - description: The Splunk source field value for metric events. - example: "observability_pipelines" - type: string - sourcetype: - description: The Splunk sourcetype to assign to metric events. - example: "custom_sourcetype" + skip_unknown_fields: + description: |- + When `true`, fields not present in the target table schema are dropped instead of causing insert errors. + When unset, the ClickHouse server's own `input_format_skip_unknown_fields` setting applies. + example: true + nullable: true + type: boolean + table: + description: Target ClickHouse table name. Events are inserted into this table. + example: application_logs type: string tls: $ref: "#/components/schemas/ObservabilityPipelineTls" - token_key: - description: Name of the environment variable or secret that holds the Splunk HEC token. - example: SPLUNK_HEC_TOKEN - type: string type: - $ref: "#/components/schemas/ObservabilityPipelineSplunkHecMetricsDestinationType" + $ref: "#/components/schemas/ObservabilityPipelineClickhouseDestinationType" required: - id - type - inputs + - table type: object - x-pipeline-types: [metrics] - ObservabilityPipelineSplunkHecMetricsDestinationCompression: - default: none - description: Compression algorithm applied when sending metrics to Splunk HEC. + x-pipeline-types: [logs] + ObservabilityPipelineClickhouseDestinationAuth: + description: |- + HTTP Basic Authentication credentials for the ClickHouse destination. + When `strategy` is `basic`, provide `username_key` and `password_key` that reference environment variables or secrets containing the credentials. + properties: + password_key: + description: Name of the environment variable or secret that contains the ClickHouse password. + example: CLICKHOUSE_PASSWORD + type: string + strategy: + $ref: "#/components/schemas/ObservabilityPipelineClickhouseDestinationAuthStrategy" + username_key: + description: Name of the environment variable or secret that contains the ClickHouse username. + example: CLICKHOUSE_USERNAME + type: string + required: + - strategy + type: object + ObservabilityPipelineClickhouseDestinationAuthStrategy: + description: The authentication strategy for ClickHouse HTTP requests. Only `basic` is supported. enum: - - none - - gzip - example: none + - basic + example: basic type: string x-enum-varnames: - - NONE - - GZIP - ObservabilityPipelineSplunkHecMetricsDestinationType: - default: splunk_hec_metrics - description: The destination type. Always `splunk_hec_metrics`. + - BASIC + ObservabilityPipelineClickhouseDestinationBatch: + description: Batching configuration for ClickHouse inserts. + properties: + max_events: + description: Maximum number of events per batch before it is flushed. + example: 1000 + format: int64 + minimum: 1 + type: integer + timeout_secs: + description: Maximum number of seconds to wait before flushing a partial batch. + example: 1 + format: int64 + maximum: 65535 + minimum: 1 + type: integer + type: object + ObservabilityPipelineClickhouseDestinationBatchEncoding: + description: |- + Batch encoding configuration for the ClickHouse destination. + Required when `format` is `arrow_stream`. The `codec` field must be set to `arrow_stream`. + properties: + allow_nullable_fields: + description: |- + When `true`, null values are allowed for non-nullable fields in the ClickHouse schema. + When `false` (default), missing values for non-nullable columns cause encoding errors. + example: false + type: boolean + codec: + $ref: "#/components/schemas/ObservabilityPipelineClickhouseDestinationBatchEncodingCodec" + required: + - codec + type: object + ObservabilityPipelineClickhouseDestinationBatchEncodingCodec: + description: The codec used for batch encoding. Only `arrow_stream` is supported. enum: - - splunk_hec_metrics - example: splunk_hec_metrics + - arrow_stream + example: arrow_stream type: string x-enum-varnames: - - SPLUNK_HEC_METRICS - ObservabilityPipelineSplunkHecSource: + - ARROW_STREAM + ObservabilityPipelineClickhouseDestinationCompression: description: |- - The `splunk_hec` source implements the Splunk HTTP Event Collector (HEC) API. + Compression setting for outbound HTTP requests to ClickHouse. + Can be specified as a shorthand string (`"gzip"` or `"none"`) or as an object + with an `algorithm` field and an optional `level` (gzip only, 1–9). + oneOf: + - $ref: "#/components/schemas/ObservabilityPipelineClickhouseDestinationCompressionAlgorithm" + - $ref: "#/components/schemas/ObservabilityPipelineClickhouseDestinationCompressionObject" + ObservabilityPipelineClickhouseDestinationCompressionAlgorithm: + description: The compression algorithm applied to outbound HTTP requests. + enum: + - gzip + - none + example: gzip + type: string + x-enum-varnames: + - GZIP + - NONE + ObservabilityPipelineClickhouseDestinationCompressionObject: + description: |- + Structured compression configuration for the ClickHouse destination. + Use `algorithm` to specify the compression type and `level` (optional, gzip only) to control compression strength. + properties: + algorithm: + $ref: "#/components/schemas/ObservabilityPipelineClickhouseDestinationCompressionAlgorithm" + level: + description: Compression level (1–9). Only applicable when `algorithm` is `gzip`. + example: 6 + format: int64 + maximum: 9 + minimum: 1 + type: integer + required: + - algorithm + type: object + ObservabilityPipelineClickhouseDestinationFormat: + description: |- + Insert format for events sent to ClickHouse. + - `json_each_row`: Maps event fields to columns by name (ClickHouse `JSONEachRow`). + - `json_as_object`: Inserts each event into a single `Object('json')` / `JSON` column (ClickHouse `JSONAsObject`). + - `json_as_string`: Inserts each event into a single `String`-typed column as raw JSON (ClickHouse `JSONAsString`). + - `arrow_stream`: Batches events using Apache Arrow IPC streaming format. Requires `batch_encoding`. + enum: + - json_each_row + - json_as_object + - json_as_string + - arrow_stream + example: json_each_row + type: string + x-enum-varnames: + - JSON_EACH_ROW + - JSON_AS_OBJECT + - JSON_AS_STRING + - ARROW_STREAM + ObservabilityPipelineClickhouseDestinationType: + default: clickhouse + description: The destination type. The value must be `clickhouse`. + enum: + - clickhouse + example: clickhouse + type: string + x-enum-varnames: + - CLICKHOUSE + ObservabilityPipelineClientTls: + description: Configuration for enabling TLS encryption between the pipeline component and external services. + properties: + ca_file: + description: Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate. + type: string + crt_file: + description: Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services. + example: "/path/to/cert.crt" + type: string + key_file: + description: Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication. + type: string + key_pass_key: + description: Name of the environment variable or secret that holds the passphrase for the private key file. + example: TLS_KEY_PASSPHRASE + type: string + server_name: + description: Server name to use for Server Name Indication (SNI) and to verify against the certificate presented by the remote host. Use this when the address you connect to doesn't match the certificate's Common Name or Subject Alternative Name. + example: server.example.com + maxLength: 253 + minLength: 1 + type: string + required: + - crt_file + type: object + ObservabilityPipelineCloudPremDestination: + description: |- + The `cloud_prem` destination sends logs to Datadog CloudPrem. **Supported pipeline types:** logs properties: - address_key: - description: Name of the environment variable or secret that holds the listen address for the HEC API. - example: SPLUNK_HEC_ADDRESS + buffer: + $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" + endpoint_url_key: + description: Name of the environment variable or secret that holds the CloudPrem endpoint URL. + example: CLOUDPREM_ENDPOINT_URL type: string id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: splunk-hec-source + description: The unique identifier for this component. + example: cloud-prem-destination type: string - store_hec_token: - description: |- - When `true`, the Splunk HEC token from the incoming request is stored in the event metadata. - This allows downstream components to forward the token to other Splunk HEC destinations. - example: true - type: boolean - tls: - $ref: "#/components/schemas/ObservabilityPipelineMtlsServerTls" - type: - $ref: "#/components/schemas/ObservabilityPipelineSplunkHecSourceType" - valid_tokens: - description: |- - A list of tokens that are accepted for authenticating incoming HEC requests. When set, the source - rejects any request whose HEC token does not match an enabled entry in this list. + inputs: + description: A list of component IDs whose output is used as the `input` for this component. + example: ["filter-processor"] items: - $ref: "#/components/schemas/ObservabilityPipelineSplunkHecSourceValidToken" - maxItems: 1000 - minItems: 1 + description: The ID of a component whose output is used as input for this destination. + type: string type: array + tls: + $ref: "#/components/schemas/ObservabilityPipelineClientTls" + description: Configuration for TLS encryption. + type: + $ref: "#/components/schemas/ObservabilityPipelineCloudPremDestinationType" required: - id - type + - inputs type: object x-pipeline-types: [logs] - ObservabilityPipelineSplunkHecSourceType: - default: splunk_hec - description: The source type. Always `splunk_hec`. + ObservabilityPipelineCloudPremDestinationType: + default: cloud_prem + description: The destination type. The value should always be `cloud_prem`. enum: - - splunk_hec - example: splunk_hec + - cloud_prem + example: cloud_prem type: string x-enum-varnames: - - SPLUNK_HEC - ObservabilityPipelineSplunkHecSourceValidToken: - description: An accepted HEC token used to authenticate incoming Splunk HEC requests. + - CLOUD_PREM + ObservabilityPipelineComponentDisplayName: + description: The display name for a component. + example: "my component" + type: string + ObservabilityPipelineConfig: + description: Specifies the pipeline's configuration, including its sources, processors, and destinations. properties: - enabled: - default: true + destinations: + description: A list of destination components where processed logs are sent. + example: [{"id": "datadog-logs-destination", "inputs": ["my-processor-group"], "type": "datadog_logs"}] + items: + $ref: "#/components/schemas/ObservabilityPipelineConfigDestinationItem" + type: array + pipeline_type: + $ref: "#/components/schemas/ObservabilityPipelineConfigPipelineType" + processor_groups: + description: A list of processor groups that transform or enrich log data. + example: [{"enabled": true, "id": "my-processor-group", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}, {"enabled": true, "field": "message", "id": "json-processor", "include": "*", "type": "parse_json"}]}] + items: + $ref: "#/components/schemas/ObservabilityPipelineConfigProcessorGroup" + type: array + processors: + deprecated: true description: |- - Indicates whether this token is currently accepted. Disabled tokens are rejected without - being removed from the configuration. + A list of processor groups that transform or enrich log data. + + **Deprecated:** This field is deprecated, you should now use the processor_groups field. + example: [] + items: + $ref: "#/components/schemas/ObservabilityPipelineConfigProcessorGroup" + type: array + sources: + description: A list of configured data sources for the pipeline. + example: [{"id": "datadog-agent-source", "type": "datadog_agent"}] + items: + $ref: "#/components/schemas/ObservabilityPipelineConfigSourceItem" + type: array + use_legacy_search_syntax: + description: |- + Set to `true` to continue using the legacy search syntax while migrating filter queries. After migrating all queries to the new syntax, set to `false`. + The legacy syntax is deprecated and will eventually be removed. + Requires Observability Pipelines Worker 2.11 or later. + Only applies to `logs` pipelines. This field is ignored for `metrics` pipelines. + See [Upgrade Your Filter Queries to the New Search Syntax](https://docs.datadoghq.com/observability_pipelines/guide/upgrade_your_filter_queries_to_the_new_search_syntax/) for more information. + type: boolean + required: + - sources + - destinations + type: object + ObservabilityPipelineConfigDestinationItem: + description: "A destination for the pipeline." + oneOf: + - $ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestination" + - $ref: "#/components/schemas/ObservabilityPipelineHttpClientDestination" + - $ref: "#/components/schemas/ObservabilityPipelineAmazonOpenSearchDestination" + - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3Destination" + - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3GenericDestination" + - $ref: "#/components/schemas/ObservabilityPipelineAmazonSecurityLakeDestination" + - $ref: "#/components/schemas/AzureStorageDestination" + - $ref: "#/components/schemas/ObservabilityPipelineClickhouseDestination" + - $ref: "#/components/schemas/ObservabilityPipelineCloudPremDestination" + - $ref: "#/components/schemas/ObservabilityPipelineCrowdStrikeNextGenSiemDestination" + - $ref: "#/components/schemas/ObservabilityPipelineDatadogLogsDestination" + - $ref: "#/components/schemas/ObservabilityPipelineGoogleChronicleDestination" + - $ref: "#/components/schemas/ObservabilityPipelineGoogleCloudStorageDestination" + - $ref: "#/components/schemas/ObservabilityPipelineGooglePubSubDestination" + - $ref: "#/components/schemas/ObservabilityPipelineKafkaDestination" + - $ref: "#/components/schemas/MicrosoftSentinelDestination" + - $ref: "#/components/schemas/ObservabilityPipelineNewRelicDestination" + - $ref: "#/components/schemas/ObservabilityPipelineOpenSearchDestination" + - $ref: "#/components/schemas/ObservabilityPipelineRsyslogDestination" + - $ref: "#/components/schemas/ObservabilityPipelineSentinelOneDestination" + - $ref: "#/components/schemas/ObservabilityPipelineSocketDestination" + - $ref: "#/components/schemas/ObservabilityPipelineSplunkHecDestination" + - $ref: "#/components/schemas/ObservabilityPipelineSumoLogicDestination" + - $ref: "#/components/schemas/ObservabilityPipelineSyslogNgDestination" + - $ref: "#/components/schemas/ObservabilityPipelineDatabricksZerobusDestination" + - $ref: "#/components/schemas/ObservabilityPipelineDatadogMetricsDestination" + - $ref: "#/components/schemas/ObservabilityPipelineOpentelemetryMetricsDestination" + - $ref: "#/components/schemas/ObservabilityPipelinePrometheusRemoteWriteDestination" + - $ref: "#/components/schemas/ObservabilityPipelineSplunkHecMetricsDestination" + ObservabilityPipelineConfigPipelineType: + default: logs + description: The type of data being ingested. Defaults to `logs` if not specified. + enum: [logs, metrics] + example: logs + type: string + x-enum-varnames: + - LOGS + - METRICS + ObservabilityPipelineConfigProcessorGroup: + description: "A group of processors." + example: {"enabled": true, "id": "my-processor-group", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "fields": [{"name": "env", "value": "prod"}], "id": "add-fields-processor", "include": "*", "type": "add_fields"}, {"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}]} + properties: + display_name: + $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" + enabled: + description: Whether this processor group is enabled. example: true type: boolean - field_to_add: - $ref: "#/components/schemas/ObservabilityPipelineSourceValidTokenFieldToAdd" - token_key: - description: Name of the environment variable or secret that holds the expected HEC token value. - example: SPLUNK_HEC_TOKEN - pattern: "^[A-Za-z0-9_]+$" + id: + description: The unique identifier for the processor group. + example: "grouped-processors" + type: string + include: + description: Conditional expression for when this processor group should execute. + example: "service:my-service" type: string + inputs: + description: A list of IDs for components whose output is used as the input for this processor group. + example: ["datadog-agent-source"] + items: + description: The ID of a component whose output is used as input. + type: string + type: array + processors: + description: Processors applied sequentially within this group. Events flow through each processor in order. + example: [{"enabled": true, "fields": [{"name": "env", "value": "prod"}], "id": "add-fields-processor", "include": "*", "type": "add_fields"}, {"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}] + items: + $ref: "#/components/schemas/ObservabilityPipelineConfigProcessorItem" + type: array required: - - token_key + - id + - include + - inputs + - processors + - enabled type: object - ObservabilityPipelineSplunkTcpSource: + ObservabilityPipelineConfigProcessorItem: + description: "A processor for the pipeline." + oneOf: + - $ref: "#/components/schemas/ObservabilityPipelineFilterProcessor" + - $ref: "#/components/schemas/ObservabilityPipelineAddEnvVarsProcessor" + - $ref: "#/components/schemas/ObservabilityPipelineAddFieldsProcessor" + - $ref: "#/components/schemas/ObservabilityPipelineAddHostnameProcessor" + - $ref: "#/components/schemas/ObservabilityPipelineCustomProcessor" + - $ref: "#/components/schemas/ObservabilityPipelineDatadogTagsProcessor" + - $ref: "#/components/schemas/ObservabilityPipelineDedupeProcessor" + - $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableProcessor" + - $ref: "#/components/schemas/ObservabilityPipelineGenerateMetricsProcessor" + - $ref: "#/components/schemas/ObservabilityPipelineGenerateMetricsV2Processor" + - $ref: "#/components/schemas/ObservabilityPipelineOcsfMapperProcessor" + - $ref: "#/components/schemas/ObservabilityPipelineParseGrokProcessor" + - $ref: "#/components/schemas/ObservabilityPipelineParseJSONProcessor" + - $ref: "#/components/schemas/ObservabilityPipelineParseXMLProcessor" + - $ref: "#/components/schemas/ObservabilityPipelineQuotaProcessor" + - $ref: "#/components/schemas/ObservabilityPipelineReduceProcessor" + - $ref: "#/components/schemas/ObservabilityPipelineRemoveFieldsProcessor" + - $ref: "#/components/schemas/ObservabilityPipelineRenameFieldsProcessor" + - $ref: "#/components/schemas/ObservabilityPipelineSampleProcessor" + - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessor" + - $ref: "#/components/schemas/ObservabilityPipelineSplitArrayProcessor" + - $ref: "#/components/schemas/ObservabilityPipelineThrottleProcessor" + - $ref: "#/components/schemas/ObservabilityPipelineAddMetricTagsProcessor" + - $ref: "#/components/schemas/ObservabilityPipelineAggregateProcessor" + - $ref: "#/components/schemas/ObservabilityPipelineMetricEnrichmentTableProcessor" + - $ref: "#/components/schemas/ObservabilityPipelineMetricTagsProcessor" + - $ref: "#/components/schemas/ObservabilityPipelineRenameMetricTagsProcessor" + - $ref: "#/components/schemas/ObservabilityPipelineTagCardinalityLimitProcessor" + ObservabilityPipelineConfigSourceItem: + description: "A data source for the pipeline." + oneOf: + - $ref: "#/components/schemas/ObservabilityPipelineDatadogAgentSource" + - $ref: "#/components/schemas/ObservabilityPipelineAmazonDataFirehoseSource" + - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3Source" + - $ref: "#/components/schemas/ObservabilityPipelineFluentBitSource" + - $ref: "#/components/schemas/ObservabilityPipelineFluentdSource" + - $ref: "#/components/schemas/ObservabilityPipelineGooglePubSubSource" + - $ref: "#/components/schemas/ObservabilityPipelineHttpClientSource" + - $ref: "#/components/schemas/ObservabilityPipelineHttpServerSource" + - $ref: "#/components/schemas/ObservabilityPipelineKafkaSource" + - $ref: "#/components/schemas/ObservabilityPipelineLogstashSource" + - $ref: "#/components/schemas/ObservabilityPipelineRsyslogSource" + - $ref: "#/components/schemas/ObservabilityPipelineSocketSource" + - $ref: "#/components/schemas/ObservabilityPipelineSplunkHecSource" + - $ref: "#/components/schemas/ObservabilityPipelineSplunkTcpSource" + - $ref: "#/components/schemas/ObservabilityPipelineSumoLogicSource" + - $ref: "#/components/schemas/ObservabilityPipelineSyslogNgSource" + - $ref: "#/components/schemas/ObservabilityPipelineWebsocketSource" + - $ref: "#/components/schemas/ObservabilityPipelineOpentelemetrySource" + - $ref: "#/components/schemas/ObservabilityPipelinePrometheusRemoteWriteSource" + ObservabilityPipelineCrowdStrikeNextGenSiemDestination: description: |- - The `splunk_tcp` source receives logs from a Splunk Universal Forwarder over TCP. - TLS is supported for secure transmission. + The `crowdstrike_next_gen_siem` destination forwards logs to CrowdStrike Next Gen SIEM. **Supported pipeline types:** logs properties: - address_key: - description: Name of the environment variable or secret that holds the listen address for the Splunk TCP receiver. - example: SPLUNK_TCP_ADDRESS + buffer: + $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" + compression: + $ref: "#/components/schemas/ObservabilityPipelineCrowdStrikeNextGenSiemDestinationCompression" + encoding: + $ref: "#/components/schemas/ObservabilityPipelineCrowdStrikeNextGenSiemDestinationEncoding" + endpoint_url_key: + description: Name of the environment variable or secret that holds the CrowdStrike endpoint URL. + example: CROWDSTRIKE_ENDPOINT_URL type: string id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: splunk-tcp-source + description: The unique identifier for this component. + example: crowdstrike-ngsiem-destination type: string - max_connection_duration_secs: - description: Maximum duration, in seconds, that a connection can remain open before it is closed. When unset, connections can remain open indefinitely. - example: 3600 - format: int64 - maximum: 9007199254740991 - minimum: 1 - type: integer + inputs: + description: A list of component IDs whose output is used as the `input` for this component. + example: ["filter-processor"] + items: + description: The ID of a component whose output is used as input for this destination. + type: string + type: array tls: - $ref: "#/components/schemas/ObservabilityPipelineMtlsServerTls" + $ref: "#/components/schemas/ObservabilityPipelineTls" + token_key: + description: Name of the environment variable or secret that holds the CrowdStrike API token. + example: CROWDSTRIKE_TOKEN + type: string type: - $ref: "#/components/schemas/ObservabilityPipelineSplunkTcpSourceType" + $ref: "#/components/schemas/ObservabilityPipelineCrowdStrikeNextGenSiemDestinationType" required: - id - type + - inputs + - encoding type: object x-pipeline-types: [logs] - ObservabilityPipelineSplunkTcpSourceType: - default: splunk_tcp - description: The source type. Always `splunk_tcp`. + ObservabilityPipelineCrowdStrikeNextGenSiemDestinationCompression: + description: Compression configuration for log events. + properties: + algorithm: + $ref: "#/components/schemas/ObservabilityPipelineCrowdStrikeNextGenSiemDestinationCompressionAlgorithm" + level: + description: Compression level. + example: 6 + format: int64 + type: integer + required: + - algorithm + type: object + ObservabilityPipelineCrowdStrikeNextGenSiemDestinationCompressionAlgorithm: + description: Compression algorithm for log events. enum: - - splunk_tcp - example: splunk_tcp + - gzip + - zlib + example: gzip type: string x-enum-varnames: - - SPLUNK_TCP - ObservabilityPipelineSumoLogicDestination: + - GZIP + - ZLIB + ObservabilityPipelineCrowdStrikeNextGenSiemDestinationEncoding: + description: Encoding format for log events. + enum: + - json + - raw_message + example: json + type: string + x-enum-varnames: + - JSON + - RAW_MESSAGE + ObservabilityPipelineCrowdStrikeNextGenSiemDestinationType: + default: crowdstrike_next_gen_siem + description: The destination type. The value should always be `crowdstrike_next_gen_siem`. + enum: + - crowdstrike_next_gen_siem + example: crowdstrike_next_gen_siem + type: string + x-enum-varnames: + - CROWDSTRIKE_NEXT_GEN_SIEM + ObservabilityPipelineCustomProcessor: description: |- - The `sumo_logic` destination forwards logs to Sumo Logic. + The `custom_processor` processor transforms events using [Vector Remap Language (VRL)](https://vector.dev/docs/reference/vrl/) scripts with advanced filtering capabilities. **Supported pipeline types:** logs properties: - buffer: - $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" - encoding: - $ref: "#/components/schemas/ObservabilityPipelineSumoLogicDestinationEncoding" - endpoint_url_key: - description: Name of the environment variable or secret that holds the Sumo Logic HTTP endpoint URL. - example: SUMO_LOGIC_ENDPOINT_URL + display_name: + $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" + enabled: + description: Indicates whether the processor is enabled. + example: true + type: boolean + id: + description: The unique identifier for this processor. + example: remap-vrl-processor type: string - header_custom_fields: - description: A list of custom headers to include in the request to Sumo Logic. + include: + default: "*" + description: A Datadog search query used to determine which logs this processor targets. This field should always be set to `*` for the custom_processor processor. + example: "*" + type: string + remaps: + description: Array of VRL remap rules. items: - $ref: "#/components/schemas/ObservabilityPipelineSumoLogicDestinationHeaderCustomFieldsItem" + $ref: "#/components/schemas/ObservabilityPipelineCustomProcessorRemap" + minItems: 1 type: array - header_host_name: - description: Optional override for the host name header. - example: "host-123" + type: + $ref: "#/components/schemas/ObservabilityPipelineCustomProcessorType" + required: + - id + - type + - include + - remaps + - enabled + type: object + x-pipeline-types: [logs] + ObservabilityPipelineCustomProcessorRemap: + description: Defines a single VRL remap rule with its own filtering and transformation logic. + properties: + drop_on_error: + description: Whether to drop events that caused errors during processing. + example: false + type: boolean + enabled: + description: Whether this remap rule is enabled. + example: true + type: boolean + include: + description: A Datadog search query used to filter events for this specific remap rule. + example: "service:web" type: string - header_source_category: - description: Optional override for the source category header. - example: "source-category" + name: + description: A descriptive name for this remap rule. + example: "Parse JSON from message field" type: string - header_source_name: - description: Optional override for the source name header. - example: "source-name" + source: + description: The VRL script source code that defines the processing logic. + example: ". = parse_json!(.message)" + type: string + required: + - include + - name + - source + - drop_on_error + type: object + ObservabilityPipelineCustomProcessorType: + default: custom_processor + description: The processor type. The value should always be `custom_processor`. + enum: + - custom_processor + example: custom_processor + type: string + x-enum-varnames: + - CUSTOM_PROCESSOR + ObservabilityPipelineData: + description: Contains the pipeline’s ID, type, and configuration attributes. + properties: + attributes: + $ref: "#/components/schemas/ObservabilityPipelineDataAttributes" + id: + description: Unique identifier for the pipeline. + example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + type: string + type: + default: pipelines + description: The resource type identifier. For pipeline resources, this should always be set to `pipelines`. + example: pipelines + type: string + required: + - id + - type + - attributes + type: object + ObservabilityPipelineDataAttributes: + description: Defines the pipeline’s name and its components (sources, processors, and destinations). + properties: + config: + $ref: "#/components/schemas/ObservabilityPipelineConfig" + name: + description: Name of the pipeline. + example: Main Observability Pipeline type: string + required: + - name + - config + type: object + ObservabilityPipelineDatabricksZerobusDestination: + description: |- + The `databricks_zerobus` destination sends logs to Databricks using the Zerobus ingestion API, streaming data directly into your Databricks Lakehouse. + + **Supported pipeline types:** Logs, rehydration + properties: + auth: + $ref: "#/components/schemas/ObservabilityPipelineDatabricksZerobusDestinationAuth" + buffer: + $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" id: description: The unique identifier for this component. - example: "sumo-logic-destination" + example: databricks-zerobus-destination + type: string + ingestion_endpoint_key: + description: Name of the environment variable or the secret identifier that references the Databricks Zerobus ingestion endpoint, which is used to stream data directly into your Databricks Lakehouse. + example: DD_OP_DESTINATION_DATABRICKS_ZEROBUS_INGESTION_ENDPOINT type: string inputs: description: A list of component IDs whose output is used as the `input` for this component. @@ -80991,92 +83316,90 @@ components: description: The ID of a component whose output is used as input for this destination. type: string type: array + table_name: + description: The fully qualified name of your target Databricks table. Make sure this table already exists in your Databricks workspace before deploying. + example: catalog.schema.table + type: string type: - $ref: "#/components/schemas/ObservabilityPipelineSumoLogicDestinationType" + $ref: "#/components/schemas/ObservabilityPipelineDatabricksZerobusDestinationType" + unity_catalog_endpoint_key: + description: Name of the environment variable or the secret identifier that references your Databricks workspace URL, which is used to communicate with the Unity Catalog API. + example: DD_OP_DESTINATION_DATABRICKS_ZEROBUS_UNITY_CATALOG_ENDPOINT + type: string required: - id - type - inputs + - table_name + - auth type: object - x-pipeline-types: [logs] - ObservabilityPipelineSumoLogicDestinationEncoding: - description: The output encoding format. - enum: [json, raw_message, logfmt] - example: json - type: string - x-enum-varnames: - - JSON - - RAW_MESSAGE - - LOGFMT - ObservabilityPipelineSumoLogicDestinationHeaderCustomFieldsItem: - description: Single key-value pair used as a custom log header for Sumo Logic. + x-pipeline-types: [logs, rehydration] + ObservabilityPipelineDatabricksZerobusDestinationAuth: + description: OAuth credentials for authenticating with the Databricks Zerobus ingestion API. properties: - name: - description: The header field name. - example: "X-Sumo-Category" + client_id: + description: Your service principal application ID (UUID). + example: 9a8b7c6d-1234-5678-abcd-ef0123456789 type: string - value: - description: The header field value. - example: "my-app-logs" + client_secret_key: + description: Name of the environment variable or secret that holds the OAuth client secret used to authenticate with the Databricks ingestion endpoint. + example: DD_OP_DESTINATION_DATABRICKS_ZEROBUS_OAUTH_CLIENT_SECRET type: string required: - - name - - value + - client_id type: object - ObservabilityPipelineSumoLogicDestinationType: - default: sumo_logic - description: The destination type. The value should always be `sumo_logic`. + ObservabilityPipelineDatabricksZerobusDestinationType: + default: databricks_zerobus + description: The destination type. The value must be `databricks_zerobus`. enum: - - sumo_logic - example: sumo_logic + - databricks_zerobus + example: databricks_zerobus type: string x-enum-varnames: - - SUMO_LOGIC - ObservabilityPipelineSumoLogicSource: + - DATABRICKS_ZEROBUS + ObservabilityPipelineDatadogAgentSource: description: |- - The `sumo_logic` source receives logs from Sumo Logic collectors. + The `datadog_agent` source collects logs/metrics from the Datadog Agent. - **Supported pipeline types:** logs + **Supported pipeline types:** logs, metrics properties: address_key: - description: Name of the environment variable or secret that holds the listen address for the Sumo Logic receiver. - example: SUMO_LOGIC_ADDRESS + description: Name of the environment variable or secret that holds the listen address for the Datadog Agent source. + example: DATADOG_AGENT_ADDRESS type: string id: description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: "sumo-logic-source" + example: "datadog-agent-source" type: string + tls: + $ref: "#/components/schemas/ObservabilityPipelineTls" type: - $ref: "#/components/schemas/ObservabilityPipelineSumoLogicSourceType" + $ref: "#/components/schemas/ObservabilityPipelineDatadogAgentSourceType" required: - id - type type: object - x-pipeline-types: [logs] - ObservabilityPipelineSumoLogicSourceType: - default: sumo_logic - description: The source type. The value should always be `sumo_logic`. + x-pipeline-types: [logs, metrics] + ObservabilityPipelineDatadogAgentSourceType: + default: datadog_agent + description: The source type. The value should always be `datadog_agent`. enum: - - sumo_logic - example: sumo_logic + - datadog_agent + example: datadog_agent type: string x-enum-varnames: - - SUMO_LOGIC - ObservabilityPipelineSyslogNgDestination: + - DATADOG_AGENT + ObservabilityPipelineDatadogLogsDestination: description: |- - The `syslog_ng` destination forwards logs to an external `syslog-ng` server over TCP or UDP using the syslog protocol. + The `datadog_logs` destination forwards logs to Datadog Log Management. **Supported pipeline types:** logs properties: buffer: $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" - endpoint_url_key: - description: Name of the environment variable or secret that holds the syslog-ng server endpoint URL. - example: SYSLOG_ENDPOINT_URL - type: string id: description: The unique identifier for this component. - example: "syslog-ng-destination" + example: "datadog-logs-destination" type: string inputs: description: A list of component IDs whose output is used as the `input` for this component. @@ -81085,78 +83408,92 @@ components: description: The ID of a component whose output is used as input for this destination. type: string type: array - keepalive: - description: Optional socket keepalive duration in milliseconds. - example: 60000 - format: int64 - minimum: 0 - type: integer - tls: - $ref: "#/components/schemas/ObservabilityPipelineClientTls" + routes: + description: A list of routing rules that forward matching logs to Datadog using dedicated API keys. + example: [{"api_key_key": "API_KEY_IDENTIFIER", "include": "service:api", "route_id": "datadog-logs-route-us1", "site": "us1"}] + items: + $ref: "#/components/schemas/ObservabilityPipelineDatadogLogsDestinationRoute" + maxItems: 100 + type: array type: - $ref: "#/components/schemas/ObservabilityPipelineSyslogNgDestinationType" + $ref: "#/components/schemas/ObservabilityPipelineDatadogLogsDestinationType" required: - id - type - inputs type: object x-pipeline-types: [logs] - ObservabilityPipelineSyslogNgDestinationType: - default: syslog_ng - description: The destination type. The value should always be `syslog_ng`. - enum: [syslog_ng] - example: syslog_ng + ObservabilityPipelineDatadogLogsDestinationRoute: + description: Defines how the `datadog_logs` destination routes matching logs to a Datadog site using a specific API key. + properties: + api_key_key: + description: Name of the environment variable or secret that stores the Datadog API key used by this route. + example: API_KEY_IDENTIFIER + type: string + include: + description: A Datadog search query that determines which logs are forwarded using this route. + example: service:api + type: string + route_id: + description: Unique identifier for this route within the destination. + example: datadog-logs-route-us + type: string + site: + description: Datadog site where matching logs are sent (for example, `us1`). + example: us1 + type: string + type: object + ObservabilityPipelineDatadogLogsDestinationType: + default: datadog_logs + description: The destination type. The value should always be `datadog_logs`. + enum: + - datadog_logs + example: datadog_logs type: string x-enum-varnames: - - SYSLOG_NG - ObservabilityPipelineSyslogNgSource: + - DATADOG_LOGS + ObservabilityPipelineDatadogMetricsDestination: description: |- - The `syslog_ng` source listens for logs over TCP or UDP from a `syslog-ng` server using the syslog protocol. + The `datadog_metrics` destination forwards metrics to Datadog. - **Supported pipeline types:** logs + **Supported pipeline types:** metrics properties: - address_key: - description: Name of the environment variable or secret that holds the listen address for the syslog-ng receiver. - example: SYSLOG_ADDRESS - type: string id: - description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: "syslog-ng-source" + description: The unique identifier for this component. + example: datadog-metrics-destination type: string - mode: - $ref: "#/components/schemas/ObservabilityPipelineSyslogSourceMode" - tls: - $ref: "#/components/schemas/ObservabilityPipelineMtlsServerTls" + inputs: + description: A list of component IDs whose output is used as the input for this component. + example: ["metric-tags-processor"] + items: + description: The ID of a component whose output is used as input for this destination. + type: string + type: array type: - $ref: "#/components/schemas/ObservabilityPipelineSyslogNgSourceType" + $ref: "#/components/schemas/ObservabilityPipelineDatadogMetricsDestinationType" required: - id - type - - mode + - inputs type: object - x-pipeline-types: [logs] - ObservabilityPipelineSyslogNgSourceType: - default: syslog_ng - description: The source type. The value should always be `syslog_ng`. - enum: [syslog_ng] - example: syslog_ng - type: string - x-enum-varnames: - - SYSLOG_NG - ObservabilityPipelineSyslogSourceMode: - description: Protocol used by the syslog source to receive messages. - enum: [tcp, udp] - example: tcp + x-pipeline-types: [metrics] + ObservabilityPipelineDatadogMetricsDestinationType: + default: datadog_metrics + description: The destination type. The value should always be `datadog_metrics`. + enum: + - datadog_metrics + example: datadog_metrics type: string x-enum-varnames: - - TCP - - UDP - ObservabilityPipelineTagCardinalityLimitProcessor: + - DATADOG_METRICS + ObservabilityPipelineDatadogTagsProcessor: description: |- - The `tag_cardinality_limit` processor caps the number of distinct tag value combinations on metrics, dropping tags or events once the limit is exceeded. + The `datadog_tags` processor includes or excludes specific Datadog tags in your logs. - **Supported pipeline types:** metrics + **Supported pipeline types:** logs properties: + action: + $ref: "#/components/schemas/ObservabilityPipelineDatadogTagsProcessorAction" display_name: $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" enabled: @@ -81165,50243 +83502,54818 @@ components: type: boolean id: description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). - example: "tag-cardinality-limit-processor" + example: "datadog-tags-processor" type: string include: - description: A Datadog search query used to determine which metrics this processor targets. - example: "*" + description: A Datadog search query used to determine which logs this processor targets. + example: "service:my-service" type: string - limit_exceeded_action: - $ref: "#/components/schemas/ObservabilityPipelineTagCardinalityLimitProcessorAction" - per_metric_limits: - description: A list of per-metric cardinality overrides that take precedence over the default `value_limit`. + keys: + description: A list of tag keys. + example: ["env", "service", "version"] items: - $ref: "#/components/schemas/ObservabilityPipelineTagCardinalityLimitProcessorPerMetricLimit" - maxItems: 100 + description: A Datadog tag key to include or exclude. + type: string type: array - tracking_mode: - $ref: "#/components/schemas/ObservabilityPipelineTagCardinalityLimitProcessorTrackingMode" + mode: + $ref: "#/components/schemas/ObservabilityPipelineDatadogTagsProcessorMode" type: - $ref: "#/components/schemas/ObservabilityPipelineTagCardinalityLimitProcessorType" - value_limit: - description: The default maximum number of distinct tag value combinations allowed per metric. - example: 10000 - format: int64 - maximum: 1000000 - minimum: 0 - type: integer + $ref: "#/components/schemas/ObservabilityPipelineDatadogTagsProcessorType" required: - id - type - include - - limit_exceeded_action - - tracking_mode - - value_limit + - mode + - action + - keys - enabled type: object - x-pipeline-types: [metrics] - ObservabilityPipelineTagCardinalityLimitProcessorAction: - description: The action to take when the cardinality limit is exceeded. + x-pipeline-types: [logs] + ObservabilityPipelineDatadogTagsProcessorAction: + description: The action to take on tags with matching keys. enum: - - drop_tag - - drop_event - example: drop_tag + - include + - exclude + example: include type: string x-enum-varnames: - - DROP_TAG - - DROP_EVENT - ObservabilityPipelineTagCardinalityLimitProcessorOverrideType: - description: How the override is applied. `limit_override` enforces a custom limit; `excluded` omits the metric or tag from cardinality tracking. + - INCLUDE + - EXCLUDE + ObservabilityPipelineDatadogTagsProcessorMode: + description: The processing mode. enum: - - limit_override - - excluded - example: limit_override + - filter + example: filter type: string x-enum-varnames: - - LIMIT_OVERRIDE - - EXCLUDED - ObservabilityPipelineTagCardinalityLimitProcessorPerMetricLimit: - description: A cardinality override applied to a specific metric. - properties: - limit_exceeded_action: - $ref: "#/components/schemas/ObservabilityPipelineTagCardinalityLimitProcessorAction" - metric_name: - description: The name of the metric this override applies to. - example: "system.cpu.user" - type: string - override_type: - $ref: "#/components/schemas/ObservabilityPipelineTagCardinalityLimitProcessorOverrideType" - per_tag_limits: - description: A list of per-tag cardinality overrides that apply within this metric. Must be omitted when `override_type` is `excluded`. - items: - $ref: "#/components/schemas/ObservabilityPipelineTagCardinalityLimitProcessorPerTagLimit" - maxItems: 50 - type: array - value_limit: - description: The maximum number of distinct tag value combinations allowed for this metric. Required when `override_type` is `limit_override`. Must be omitted when `override_type` is `excluded`. - example: 10000 - format: int64 - maximum: 1000000 - minimum: 0 - type: integer - required: - - metric_name - - override_type - type: object - ObservabilityPipelineTagCardinalityLimitProcessorPerTagLimit: - description: A cardinality override for a specific tag key within a per-metric limit. - properties: - override_type: - $ref: "#/components/schemas/ObservabilityPipelineTagCardinalityLimitProcessorOverrideType" - tag_key: - description: The tag key this override applies to. - example: "host" - type: string - value_limit: - description: The maximum number of distinct values allowed for this tag. Required when `override_type` is `limit_override`. Must be omitted when `override_type` is `excluded`. - example: 5000 - format: int64 - maximum: 1000000 - minimum: 0 - type: integer - required: - - tag_key - - override_type - type: object - ObservabilityPipelineTagCardinalityLimitProcessorTrackingMode: - description: Controls whether the processor uses exact or probabilistic tag tracking. - properties: - mode: - $ref: "#/components/schemas/ObservabilityPipelineTagCardinalityLimitProcessorTrackingModeMode" - required: - - mode - type: object - ObservabilityPipelineTagCardinalityLimitProcessorTrackingModeMode: - description: The cardinality tracking algorithm to use. + - FILTER + ObservabilityPipelineDatadogTagsProcessorType: + default: datadog_tags + description: The processor type. The value should always be `datadog_tags`. enum: - - exact_fingerprint - - probabilistic - example: exact_fingerprint + - datadog_tags + example: datadog_tags type: string x-enum-varnames: - - EXACT_FINGERPRINT - - PROBABILISTIC - ObservabilityPipelineTagCardinalityLimitProcessorType: - default: tag_cardinality_limit - description: The processor type. The value must be `tag_cardinality_limit`. - enum: [tag_cardinality_limit] - example: tag_cardinality_limit + - DATADOG_TAGS + ObservabilityPipelineDecoding: + description: The decoding format used to interpret incoming logs. + enum: + - bytes + - gelf + - json + - syslog + example: json type: string x-enum-varnames: - - TAG_CARDINALITY_LIMIT - ObservabilityPipelineThrottleProcessor: + - DECODE_BYTES + - DECODE_GELF + - DECODE_JSON + - DECODE_SYSLOG + ObservabilityPipelineDedupeProcessor: description: |- - The `throttle` processor limits the number of events that pass through over a given time window. + The `dedupe` processor removes duplicate fields in log events. **Supported pipeline types:** logs properties: + cache: + $ref: "#/components/schemas/ObservabilityPipelineDedupeProcessorCache" display_name: $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" enabled: description: Indicates whether the processor is enabled. example: true type: boolean - group_by: - description: Optional list of fields used to group events before the threshold has been reached. - example: ["log.user.id"] + fields: + description: A list of log field paths to check for duplicates. + example: ["log.message", "log.error"] items: - description: A log field name used to group events for independent throttling. + description: A log field path to evaluate for duplicate values. type: string type: array id: description: The unique identifier for this processor. - example: throttle-processor + example: dedupe-processor type: string include: description: A Datadog search query used to determine which logs this processor targets. - example: env:prod + example: service:my-service type: string - threshold: - description: the number of events allowed in a given time window. Events sent after the threshold has been reached, are dropped. - example: 1000 - format: int64 - type: integer + mode: + $ref: "#/components/schemas/ObservabilityPipelineDedupeProcessorMode" type: - $ref: "#/components/schemas/ObservabilityPipelineThrottleProcessorType" - window: - description: The time window in seconds over which the threshold applies. - example: 60.0 - format: double - type: number + $ref: "#/components/schemas/ObservabilityPipelineDedupeProcessorType" required: - id - type - include - - threshold - - window + - fields + - mode - enabled type: object x-pipeline-types: [logs] - ObservabilityPipelineThrottleProcessorType: - default: throttle - description: The processor type. The value should always be `throttle`. + ObservabilityPipelineDedupeProcessorCache: + description: Configuration for the cache used to detect duplicates. + properties: + num_events: + description: The number of events to cache for duplicate detection. + example: 5000 + format: int64 + maximum: 1000000000 + minimum: 1 + type: integer + required: + - num_events + type: object + ObservabilityPipelineDedupeProcessorMode: + description: The deduplication mode to apply to the fields. enum: - - throttle - example: throttle + - match + - ignore + example: match type: string x-enum-varnames: - - THROTTLE - ObservabilityPipelineTls: - description: Configuration for enabling TLS encryption between the pipeline component and external services. - properties: - ca_file: - description: Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate. - type: string - crt_file: - description: Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services. - example: "/path/to/cert.crt" - type: string - key_file: - description: Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication. - type: string - key_pass_key: - description: Name of the environment variable or secret that holds the passphrase for the private key file. - example: TLS_KEY_PASSPHRASE - type: string + - MATCH + - IGNORE + ObservabilityPipelineDedupeProcessorType: + default: dedupe + description: The processor type. The value should always be `dedupe`. + enum: + - dedupe + example: dedupe + type: string + x-enum-varnames: + - DEDUPE + ObservabilityPipelineDiskBufferOptions: + description: Options for configuring a disk buffer. + properties: + max_size: + description: Maximum size of the disk buffer. + example: 4096 + format: int64 + type: integer + type: + $ref: "#/components/schemas/ObservabilityPipelineBufferOptionsDiskType" + when_full: + $ref: "#/components/schemas/ObservabilityPipelineBufferOptionsWhenFull" required: - - crt_file + - max_size type: object - ObservabilityPipelineWebsocketSource: + ObservabilityPipelineElasticsearchDestination: description: |- - The `websocket` source ingests logs from a WebSocket server using the `ws://` or `wss://` protocol. + The `elasticsearch` destination writes logs or metrics to an Elasticsearch cluster. - **Supported pipeline types:** logs. + **Supported pipeline types:** logs, metrics properties: - auth_strategy: - $ref: "#/components/schemas/ObservabilityPipelineWebsocketSourceAuthStrategy" - custom_key: - description: Name of the environment variable or secret that holds the custom authorization header value. Used when `auth_strategy` is `custom`. - example: WS_AUTH_CUSTOM_HEADER + api_version: + $ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestinationApiVersion" + auth: + $ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestinationAuth" + buffer: + $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" + bulk_index: + description: The name of the index to write events to in Elasticsearch. + example: logs-index + type: string + compression: + $ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestinationCompression" + data_stream: + $ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestinationDataStream" + endpoint_url_key: + description: Name of the environment variable or secret that holds the Elasticsearch endpoint URL. + example: ELASTICSEARCH_ENDPOINT_URL type: string - decoding: - $ref: "#/components/schemas/ObservabilityPipelineDecoding" id: description: The unique identifier for this component. - example: websocket-source + example: "elasticsearch-destination" type: string - password_key: - description: Name of the environment variable or secret that holds the password. Used when `auth_strategy` is `basic`. - example: WS_AUTH_PASSWORD + id_key: + description: The name of the field used as the document ID in Elasticsearch. + example: id type: string - tls: - $ref: "#/components/schemas/ObservabilityPipelineWebsocketSourceTls" - token_key: - description: Name of the environment variable or secret that holds the bearer token. Used when `auth_strategy` is `bearer`. - example: WS_BEARER_TOKEN + inputs: + description: A list of component IDs whose output is used as the `input` for this component. + example: ["filter-processor"] + items: + description: The ID of a component whose output is used as input for this destination. + type: string + type: array + pipeline: + description: The name of an Elasticsearch ingest pipeline to apply to events before indexing. + example: my-pipeline type: string + request_retry_partial: + description: When `true`, retries failed partial bulk requests when some events in a batch fail while others succeed. + type: boolean + tls: + $ref: "#/components/schemas/ObservabilityPipelineTls" type: - $ref: "#/components/schemas/ObservabilityPipelineWebsocketSourceType" - uri_key: - description: Name of the environment variable or secret that holds the WebSocket server URI (`ws://` or `wss://`). - example: WS_URI - type: string - username_key: - description: Name of the environment variable or secret that holds the username. Used when `auth_strategy` is `basic`. - example: WS_AUTH_USERNAME - type: string + $ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestinationType" required: - id - type - - decoding - - auth_strategy + - inputs type: object - x-pipeline-types: [logs] - ObservabilityPipelineWebsocketSourceAuthStrategy: - description: Authentication strategy for the WebSocket source connection. - enum: - - none - - basic - - bearer - - custom - example: bearer + x-pipeline-types: [logs, metrics] + ObservabilityPipelineElasticsearchDestinationApiVersion: + description: The Elasticsearch API version to use. Set to `auto` to auto-detect. + enum: [auto, v6, v7, v8] + example: auto type: string x-enum-varnames: - - NONE - - BASIC - - BEARER - - CUSTOM - ObservabilityPipelineWebsocketSourceTls: - description: TLS configuration for the WebSocket source. Use `enabled` for standard `wss://` connections, or `with_client_cert` to present a client certificate for mutual TLS. - oneOf: - - $ref: "#/components/schemas/ObservabilityPipelineWebsocketSourceTlsEnabled" - - $ref: "#/components/schemas/ObservabilityPipelineWebsocketSourceTlsWithClientCert" - ObservabilityPipelineWebsocketSourceTlsEnabled: - description: TLS configuration that enables encryption without a client certificate. Use this for standard `wss://` connections that do not require mutual TLS. + - AUTO + - V6 + - V7 + - V8 + ObservabilityPipelineElasticsearchDestinationAuth: + description: |- + Authentication settings for the Elasticsearch destination. + When `strategy` is `basic`, use `username_key` and `password_key` to reference credentials stored in environment variables or secrets. properties: - mode: - $ref: "#/components/schemas/ObservabilityPipelineWebsocketSourceTlsEnabledMode" + password_key: + description: Name of the environment variable or secret that holds the Elasticsearch password (used when `strategy` is `basic`). + example: ELASTICSEARCH_PASSWORD + type: string + strategy: + $ref: "#/components/schemas/ObservabilityPipelineAmazonOpenSearchDestinationAuthStrategy" + username_key: + description: Name of the environment variable or secret that holds the Elasticsearch username (used when `strategy` is `basic`). + example: ELASTICSEARCH_USERNAME + type: string required: - - mode + - strategy type: object - ObservabilityPipelineWebsocketSourceTlsEnabledMode: - description: TLS mode. Must be `enabled`. - enum: - - enabled - example: enabled - type: string - x-enum-varnames: - - ENABLED - ObservabilityPipelineWebsocketSourceTlsWithClientCert: - description: TLS configuration that enables encryption and presents a client certificate for mutual TLS authentication. + ObservabilityPipelineElasticsearchDestinationCompression: + description: Compression configuration for the Elasticsearch destination. properties: - ca_file: - description: Path to the Certificate Authority (CA) file used to validate the remote server's TLS certificate. - example: /path/to/ca.crt - type: string - crt_file: - description: Path to the TLS client certificate file used to identify this source to the remote server. - example: /path/to/client.crt - type: string - key_file: - description: Path to the private key file associated with the client certificate. - example: /path/to/client.key - type: string - key_pass_key: - description: Name of the environment variable or secret that holds the passphrase for the private key file. - example: WS_TLS_KEY_PASSPHRASE - type: string - mode: - $ref: "#/components/schemas/ObservabilityPipelineWebsocketSourceTlsWithClientCertMode" + algorithm: + $ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm" + level: + description: The compression level. Only applicable for `gzip`, `zlib`, and `zstd` algorithms. + example: 6 + format: int64 + type: integer required: - - mode - - crt_file + - algorithm type: object - ObservabilityPipelineWebsocketSourceTlsWithClientCertMode: - description: TLS mode. Must be `with_client_cert`. - enum: - - with_client_cert - example: with_client_cert - type: string - x-enum-varnames: - - WITH_CLIENT_CERT - ObservabilityPipelineWebsocketSourceType: - default: websocket - description: The source type. The value should always be `websocket`. - enum: - - websocket - example: websocket + ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm: + description: The compression algorithm applied when sending data to Elasticsearch. + enum: [none, gzip, zlib, zstd, snappy] + example: gzip type: string x-enum-varnames: - - WEBSOCKET - OktaAPIToken: - description: The definition of the `OktaAPIToken` object. + - NONE + - GZIP + - ZLIB + - ZSTD + - SNAPPY + ObservabilityPipelineElasticsearchDestinationDataStream: + description: Configuration options for writing to Elasticsearch Data Streams instead of a fixed index. properties: - api_token: - description: The `OktaAPIToken` `api_token`. - example: "" + auto_routing: + description: When `true`, automatically routes events to the appropriate data stream based on the event content. + type: boolean + dataset: + description: The data stream dataset. This groups events by their source or application. type: string - domain: - description: The `OktaAPIToken` `domain`. - example: "" + dtype: + description: The data stream type. This determines how events are categorized within the data stream. type: string - type: - $ref: "#/components/schemas/OktaAPITokenType" - required: - - type - - domain - - api_token + namespace: + description: The data stream namespace. This separates events into different environments or domains. + type: string + sync_fields: + description: When `true`, synchronizes data stream fields with the Elasticsearch index mapping. + type: boolean type: object - OktaAPITokenType: - description: The definition of the `OktaAPIToken` object. + ObservabilityPipelineElasticsearchDestinationType: + default: elasticsearch + description: The destination type. The value should always be `elasticsearch`. enum: - - OktaAPIToken - example: OktaAPIToken + - elasticsearch + example: elasticsearch type: string x-enum-varnames: - - OKTAAPITOKEN - OktaAPITokenUpdate: - description: The definition of the `OktaAPIToken` object. + - ELASTICSEARCH + ObservabilityPipelineEnrichmentTableFieldEventLookup: + description: Looks up a value from a field path in the log event. properties: - api_token: - description: The `OktaAPITokenUpdate` `api_token`. - type: string - domain: - description: The `OktaAPITokenUpdate` `domain`. + event: + description: The path to the field in the log event to use as the lookup key. + example: log.user.id type: string - type: - $ref: "#/components/schemas/OktaAPITokenType" required: - - type + - event type: object - OktaAccount: - description: Schema for an Okta account. + ObservabilityPipelineEnrichmentTableFieldSecretLookup: + description: Looks up a value stored as a pipeline secret. properties: - attributes: - $ref: "#/components/schemas/OktaAccountAttributes" - id: - description: The ID of the Okta account, a UUID hash of the account name. - example: "f749daaf-682e-4208-a38d-c9b43162c609" + secret: + description: The name of the secret containing the lookup key value. + example: MY_LOOKUP_SECRET type: string - type: - $ref: "#/components/schemas/OktaAccountType" required: - - attributes - - type + - secret type: object - OktaAccountAttributes: - description: Attributes object for an Okta account. + ObservabilityPipelineEnrichmentTableFieldStringPath: + description: A plain field path in the log event, used as the lookup key. + example: log.user.id + type: string + ObservabilityPipelineEnrichmentTableFieldVrlLookup: + description: Evaluates a VRL expression to produce the lookup key. properties: - api_key: - description: The API key of the Okta account. - type: string - writeOnly: true - auth_method: - description: The authorization method for an Okta account. - example: "oauth" - type: string - client_id: - description: The Client ID of an Okta app integration. - type: string - client_secret: - description: The client secret of an Okta app integration. - type: string - writeOnly: true - domain: - description: The domain of the Okta account. - example: "https://example.okta.com/" - type: string - name: - description: The name of the Okta account. - example: "Okta-Prod" + vrl: + description: A VRL expression that returns the value to use as the lookup key. + example: .log.user.id type: string required: - - auth_method - - domain - - name + - vrl type: object - OktaAccountRequest: - description: Request object for an Okta account. + ObservabilityPipelineEnrichmentTableFile: + description: Defines a static enrichment table loaded from a CSV file. properties: - data: - $ref: "#/components/schemas/OktaAccount" + encoding: + $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFileEncoding" + key: + description: Key fields used to look up enrichment values. + items: + $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFileKeyItems" + type: array + path: + description: Path to the CSV file. + example: /etc/enrichment/lookup.csv + type: string + schema: + description: Schema defining column names and their types. + items: + $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFileSchemaItems" + type: array required: - - data - type: object - OktaAccountResponse: - description: Response object for an Okta account. - properties: - data: - $ref: "#/components/schemas/OktaAccount" + - encoding + - key + - path + - schema type: object - OktaAccountResponseData: - description: Data object of an Okta account + ObservabilityPipelineEnrichmentTableFileEncoding: + description: File encoding format. properties: - attributes: - $ref: "#/components/schemas/OktaAccountAttributes" - id: - description: The ID of the Okta account, a UUID hash of the account name. - example: "f749daaf-682e-4208-a38d-c9b43162c609" + delimiter: + description: The `encoding` `delimiter`. + example: "," type: string + includes_headers: + description: The `encoding` `includes_headers`. + example: true + type: boolean type: - $ref: "#/components/schemas/OktaAccountType" + $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFileEncodingType" required: - - attributes - - id - type + - delimiter + - includes_headers type: object - OktaAccountType: - default: okta-accounts - description: Account type for an Okta account. - enum: - - okta-accounts - example: okta-accounts + ObservabilityPipelineEnrichmentTableFileEncodingType: + description: Specifies the encoding format (e.g., CSV) used for enrichment tables. + enum: [csv] + example: csv type: string x-enum-varnames: - - OKTA_ACCOUNTS - OktaAccountUpdateRequest: - description: Payload schema when updating an Okta account. + - CSV + ObservabilityPipelineEnrichmentTableFileKeyItemField: + description: |- + Specifies the source of the key value used for enrichment table lookups. + Can be a plain field path string or an object specifying `event`, `vrl`, or `secret`. + example: log.user.id + oneOf: + - $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFieldStringPath" + - $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFieldEventLookup" + - $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFieldVrlLookup" + - $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFieldSecretLookup" + ObservabilityPipelineEnrichmentTableFileKeyItems: + description: Defines how to map log fields to enrichment table columns during lookups. properties: - data: - $ref: "#/components/schemas/OktaAccountUpdateRequestData" + column: + description: The `items` `column`. + example: user_id + type: string + comparison: + $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFileKeyItemsComparison" + field: + $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFileKeyItemField" required: - - data + - column + - comparison + - field type: object - OktaAccountUpdateRequestAttributes: - description: Attributes object for updating an Okta account. + ObservabilityPipelineEnrichmentTableFileKeyItemsComparison: + description: Defines how to compare key fields for enrichment table lookups. + enum: [equals] + example: equals + type: string + x-enum-varnames: + - EQUALS + ObservabilityPipelineEnrichmentTableFileSchemaItems: + description: Describes a single column and its type in an enrichment table schema. properties: - api_key: - description: The API key of the Okta account. - type: string - writeOnly: true - auth_method: - description: The authorization method for an Okta account. - example: "oauth" + column: + description: The `items` `column`. + example: region type: string - client_id: - description: The Client ID of an Okta app integration. + type: + $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFileSchemaItemsType" + required: + - column + - type + type: object + ObservabilityPipelineEnrichmentTableFileSchemaItemsType: + description: Declares allowed data types for enrichment table columns. + enum: [string, boolean, integer, float, date, timestamp] + example: string + type: string + x-enum-varnames: + - STRING + - BOOLEAN + - INTEGER + - FLOAT + - DATE + - TIMESTAMP + ObservabilityPipelineEnrichmentTableGeoIp: + description: Uses a GeoIP database to enrich logs based on an IP field. + properties: + key_field: + description: Path to the IP field in the log. + example: log.source.ip type: string - client_secret: - description: The client secret of an Okta app integration. + locale: + description: Locale used to resolve geographical names. + example: en type: string - writeOnly: true - domain: - description: The domain associated with an Okta account. - example: "https://dev-test.okta.com/" + path: + description: Path to the GeoIP database file. + example: /etc/geoip/GeoLite2-City.mmdb type: string required: - - auth_method - - domain - type: object - OktaAccountUpdateRequestData: - description: Data object for updating an Okta account. - properties: - attributes: - $ref: "#/components/schemas/OktaAccountUpdateRequestAttributes" - type: - $ref: "#/components/schemas/OktaAccountType" - type: object - OktaAccountsResponse: - description: The expected response schema when getting Okta accounts. - properties: - data: - description: List of Okta accounts. - items: - $ref: "#/components/schemas/OktaAccountResponseData" - type: array + - key_field + - locale + - path type: object - OktaCredentials: - description: The definition of the `OktaCredentials` object. - oneOf: - - $ref: "#/components/schemas/OktaAPIToken" - OktaCredentialsUpdate: - description: The definition of the `OktaCredentialsUpdate` object. - oneOf: - - $ref: "#/components/schemas/OktaAPITokenUpdate" - OktaIntegration: - description: The definition of the `OktaIntegration` object. + ObservabilityPipelineEnrichmentTableProcessor: + description: |- + The `enrichment_table` processor enriches logs using a static CSV file, GeoIP database, or reference table. Exactly one of `file`, `geoip`, or `reference_table` must be configured. + + **Supported pipeline types:** logs properties: - credentials: - $ref: "#/components/schemas/OktaCredentials" + display_name: + $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" + enabled: + description: Indicates whether the processor is enabled. + example: true + type: boolean + file: + $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFile" + geoip: + $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableGeoIp" + id: + description: The unique identifier for this processor. + example: enrichment-table-processor + type: string + include: + description: A Datadog search query used to determine which logs this processor targets. + example: source:my-source + type: string + reference_table: + $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableReferenceTable" + target: + description: Path where enrichment results should be stored in the log. + example: enriched.geoip + type: string type: - $ref: "#/components/schemas/OktaIntegrationType" + $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableProcessorType" required: + - id - type - - credentials + - include + - target + - enabled type: object - OktaIntegrationType: - description: The definition of the `OktaIntegrationType` object. + x-pipeline-types: [logs] + ObservabilityPipelineEnrichmentTableProcessorType: + default: enrichment_table + description: The processor type. The value should always be `enrichment_table`. enum: - - Okta - example: Okta + - enrichment_table + example: enrichment_table type: string x-enum-varnames: - - OKTA - OktaIntegrationUpdate: - description: The definition of the `OktaIntegrationUpdate` object. - properties: - credentials: - $ref: "#/components/schemas/OktaCredentialsUpdate" - type: - $ref: "#/components/schemas/OktaIntegrationType" - required: - - type - type: object - OnCallNotificationRule: - description: A top-level wrapper for a notification rule - example: - data: - attributes: - "category": "high_urgency" - channel_settings: - method: "sms" - type: "phone" - "delay_minutes": 1 - id: 27590dae-47be-4a7d-9abf-8f4e45124020 - relationships: - channel: - data: - id: 1562fab3-a8c2-49e2-8f3a-28dcda2405e2 - type: notification_channels - type: notification_rules + - ENRICHMENT_TABLE + ObservabilityPipelineEnrichmentTableReferenceTable: + description: Uses a Datadog reference table to enrich logs. properties: - data: - $ref: "#/components/schemas/OnCallNotificationRuleData" - included: + app_key_key: + description: Name of the environment variable or secret that holds the Datadog application key used to access the reference table. + example: DD_APP_KEY + type: string + columns: + description: List of column names to include from the reference table. If not provided, all columns are included. items: - $ref: "#/components/schemas/OnCallNotificationRulesIncluded" + description: The name of a column to include from the reference table. + type: string type: array + key_field: + description: Path to the field in the log event to match against the reference table. + example: log.user.id + type: string + table_id: + description: The unique identifier of the reference table. + example: 550e8400-e29b-41d4-a716-446655440000 + type: string required: - - data - type: object - OnCallNotificationRuleAttributes: - description: Attributes for an on-call notification rule. - properties: - category: - $ref: "#/components/schemas/OnCallNotificationRuleCategory" - channel_settings: - $ref: "#/components/schemas/OnCallNotificationRuleChannelSettings" - description: Configuration for the associated channel, if necessary - nullable: true - delay_minutes: - description: The number of minutes that will elapse before this rule is evaluated. 0 indicates immediate evaluation - format: int64 - type: integer + - key_field + - table_id type: object - OnCallNotificationRuleCategory: - default: high_urgency - description: "Specifies the category a notification rule will apply to" - enum: - - high_urgency - - low_urgency - type: string - x-enum-varnames: - - HIGH_URGENCY - - LOW_URGENCY - OnCallNotificationRuleChannelRelationship: - description: Relationship object for creating a notification rule + ObservabilityPipelineFieldValue: + description: Represents a static key-value pair used in various processors. properties: - data: - $ref: "#/components/schemas/OnCallNotificationRuleChannelRelationshipData" + name: + description: The field name. + example: "field_name" + type: string + value: + description: The field value. + example: "field_value" + type: string required: - - data + - name + - value type: object - OnCallNotificationRuleChannelRelationshipData: - description: Channel relationship data for creating a notification rule + ObservabilityPipelineFilterProcessor: + description: |- + The `filter` processor allows conditional processing of logs/metrics based on a Datadog search query. Logs/metrics that match the `include` query are passed through; others are discarded. + + **Supported pipeline types:** logs, metrics properties: + display_name: + $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" + enabled: + description: Indicates whether the processor is enabled. + example: true + type: boolean id: - description: ID of the notification channel + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: "filter-processor" type: string - type: - $ref: "#/components/schemas/NotificationChannelType" - type: object - OnCallNotificationRuleChannelSettings: - description: "Defines the configuration for a channel associated with a notification rule" - oneOf: - - $ref: "#/components/schemas/OnCallPhoneNotificationRuleSettings" - OnCallNotificationRuleData: - description: Data for an on-call notification rule - properties: - attributes: - $ref: "#/components/schemas/OnCallNotificationRuleAttributes" - id: - description: Unique identifier for the rule + include: + description: A Datadog search query used to determine which logs/metrics should pass through the filter. Logs/metrics that match this query continue to downstream components; others are dropped. + example: "service:my-service" type: string - relationships: - $ref: "#/components/schemas/OnCallNotificationRuleRelationships" type: - $ref: "#/components/schemas/OnCallNotificationRuleType" + $ref: "#/components/schemas/ObservabilityPipelineFilterProcessorType" required: + - id - type + - include + - enabled type: object - OnCallNotificationRuleRelationships: - description: Relationship object for creating a notification rule - properties: - channel: - $ref: "#/components/schemas/OnCallNotificationRuleChannelRelationship" - type: object - OnCallNotificationRuleRequestAttributes: - description: Attributes for creating or modifying an on-call notification rule. - properties: - category: - $ref: "#/components/schemas/OnCallNotificationRuleCategory" - channel_settings: - $ref: "#/components/schemas/OnCallNotificationRuleChannelSettings" - description: Configuration for the associated channel, if necessary - nullable: true - delay_minutes: - description: The number of minutes that will elapse before this rule is evaluated. 0 indicates immediate evaluation - format: int64 - type: integer - type: object - OnCallNotificationRuleType: - default: notification_rules - description: "Indicates that the resource is of type 'notification_rules'." - enum: - - notification_rules - example: notification_rules - type: string - x-enum-varnames: - - NOTIFICATION_RULES - OnCallNotificationRulesIncluded: - description: Represents additional included resources for a on-call notification rules - oneOf: - - $ref: "#/components/schemas/NotificationChannelData" - OnCallPageTargetType: - description: The kind of target, `team_id` | `team_handle` | `user_id`. - enum: - - team_id - - team_handle - - user_id - example: team_id - type: string - x-enum-varnames: - - TEAM_ID - - TEAM_HANDLE - - USER_ID - OnCallPhoneNotificationRuleMethod: - description: "Specifies the method in which a phone is used in a notification rule" + x-pipeline-types: [logs, metrics] + ObservabilityPipelineFilterProcessorType: + default: filter + description: The processor type. The value should always be `filter`. enum: - - sms - - voice - example: sms + - filter + example: filter type: string x-enum-varnames: - - SMS - - VOICE - OnCallPhoneNotificationRuleSettings: - description: "Configuration for using a phone notification channel in a notification rule" + - FILTER + ObservabilityPipelineFluentBitSource: + description: |- + The `fluent_bit` source ingests logs from Fluent Bit. + + **Supported pipeline types:** logs properties: - method: - $ref: "#/components/schemas/OnCallPhoneNotificationRuleMethod" + address_key: + description: Name of the environment variable or secret that holds the listen address for the Fluent Bit receiver. + example: FLUENT_ADDRESS + type: string + id: + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: "fluent-source" + type: string + tls: + $ref: "#/components/schemas/ObservabilityPipelineMtlsServerTls" type: - $ref: "#/components/schemas/NotificationChannelPhoneConfigType" + $ref: "#/components/schemas/ObservabilityPipelineFluentBitSourceType" required: + - id - type - - method - type: object - OnCallTrigger: - description: "Trigger a workflow from an On-Call Page or On-Call Handover. For automatic triggering a handle must be configured and the workflow must be published." - properties: - rateLimit: - $ref: "#/components/schemas/TriggerRateLimit" - type: object - OnCallTriggerWrapper: - description: "Schema for an On-Call-based trigger." - properties: - onCallTrigger: - $ref: "#/components/schemas/OnCallTrigger" - startStepNames: - $ref: "#/components/schemas/StartStepNames" - required: - - onCallTrigger - type: object - OnDemandConcurrencyCap: - description: On-demand concurrency cap. - properties: - attributes: - $ref: "#/components/schemas/OnDemandConcurrencyCapAttributes" - type: - $ref: "#/components/schemas/OnDemandConcurrencyCapType" - type: object - OnDemandConcurrencyCapAttributes: - description: On-demand concurrency cap attributes. - properties: - on_demand_concurrency_cap: - description: Value of the on-demand concurrency cap. - format: double - type: number - type: object - OnDemandConcurrencyCapResponse: - description: On-demand concurrency cap response. - properties: - data: - $ref: "#/components/schemas/OnDemandConcurrencyCap" type: object - OnDemandConcurrencyCapType: - description: On-demand concurrency cap type. + x-pipeline-types: [logs] + ObservabilityPipelineFluentBitSourceType: + default: fluent_bit + description: The source type. The value should always be `fluent_bit`. enum: - - on_demand_concurrency_cap + - fluent_bit + example: fluent_bit type: string x-enum-varnames: - - ON_DEMAND_CONCURRENCY_CAP - OpenAIAPIKey: - description: The definition of the `OpenAIAPIKey` object. + - FLUENT_BIT + ObservabilityPipelineFluentdSource: + description: |- + The `fluentd` source ingests logs from a Fluentd-compatible service. + + **Supported pipeline types:** logs properties: - api_token: - description: The `OpenAIAPIKey` `api_token`. - example: "" + address_key: + description: Name of the environment variable or secret that holds the listen address for the Fluent receiver. + example: FLUENT_ADDRESS + type: string + id: + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: "fluent-source" type: string + tls: + $ref: "#/components/schemas/ObservabilityPipelineMtlsServerTls" type: - $ref: "#/components/schemas/OpenAIAPIKeyType" + $ref: "#/components/schemas/ObservabilityPipelineFluentdSourceType" required: + - id - type - - api_token type: object - OpenAIAPIKeyType: - description: The definition of the `OpenAIAPIKey` object. + x-pipeline-types: [logs] + ObservabilityPipelineFluentdSourceType: + default: fluentd + description: The source type. The value should always be `fluentd. enum: - - OpenAIAPIKey - example: OpenAIAPIKey + - fluentd + example: fluentd type: string x-enum-varnames: - - OPENAIAPIKEY - OpenAIAPIKeyUpdate: - description: The definition of the `OpenAIAPIKey` object. + - FLUENTD + ObservabilityPipelineGcpAuth: + description: |- + Google Cloud credentials used to authenticate with Google Cloud Storage. properties: - api_token: - description: The `OpenAIAPIKeyUpdate` `api_token`. + credentials_file: + description: Path to the Google Cloud service account key file. + example: /var/secrets/gcp-credentials.json type: string - type: - $ref: "#/components/schemas/OpenAIAPIKeyType" required: - - type + - credentials_file type: object - OpenAICredentials: - description: The definition of the `OpenAICredentials` object. - oneOf: - - $ref: "#/components/schemas/OpenAIAPIKey" - OpenAICredentialsUpdate: - description: The definition of the `OpenAICredentialsUpdate` object. - oneOf: - - $ref: "#/components/schemas/OpenAIAPIKeyUpdate" - OpenAIIntegration: - description: The definition of the `OpenAIIntegration` object. + ObservabilityPipelineGenerateMetricsProcessor: + deprecated: true + description: |- + The `generate_datadog_metrics` processor creates custom metrics from logs and sends them to Datadog. + Metrics can be counters, gauges, or distributions and optionally grouped by log fields. + + **Supported pipeline types:** logs + + **Deprecated:** This processor is deprecated. Use the `generate_metrics` processor instead. properties: - credentials: - $ref: "#/components/schemas/OpenAICredentials" + display_name: + $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" + enabled: + description: Indicates whether the processor is enabled. + example: true + type: boolean + id: + description: The unique identifier for this component. Used to reference this component in other parts of the pipeline. + example: generate-metrics-processor + type: string + include: + description: A Datadog search query used to determine which logs this processor targets. + example: "service:my-service" + type: string + metrics: + description: Configuration for generating individual metrics. + items: + $ref: "#/components/schemas/ObservabilityPipelineGeneratedMetric" + type: array type: - $ref: "#/components/schemas/OpenAIIntegrationType" + $ref: "#/components/schemas/ObservabilityPipelineGenerateMetricsProcessorType" required: + - id - type - - credentials + - enabled type: object - OpenAIIntegrationType: - description: The definition of the `OpenAIIntegrationType` object. + x-pipeline-types: [logs] + ObservabilityPipelineGenerateMetricsProcessorType: + default: generate_datadog_metrics + description: The processor type. Always `generate_datadog_metrics`. enum: - - OpenAI - example: OpenAI + - generate_datadog_metrics + example: generate_datadog_metrics type: string x-enum-varnames: - - OPENAI - OpenAIIntegrationUpdate: - description: The definition of the `OpenAIIntegrationUpdate` object. + - GENERATE_DATADOG_METRICS + ObservabilityPipelineGenerateMetricsV2Processor: + description: |- + The `generate_metrics` processor creates custom metrics from logs. + Metrics can be counters, gauges, or distributions and optionally grouped by log fields. + + There must be a destination whose `inputs` reference this processor with the `.metrics` suffix to route the generated metrics. All destination types normally supported for `metrics` pipelines are also supported as metrics destinations in `logs` pipelines. + + **Supported pipeline types:** logs properties: - credentials: - $ref: "#/components/schemas/OpenAICredentialsUpdate" + display_name: + $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" + enabled: + description: Indicates whether the processor is enabled. + example: true + type: boolean + id: + description: The unique identifier for this component. Used to reference this component in other parts of the pipeline. + example: generate-metrics-processor + type: string + include: + description: A Datadog search query used to determine which logs this processor targets. + example: "service:my-service" + type: string + metrics: + description: Configuration for generating individual metrics. + items: + $ref: "#/components/schemas/ObservabilityPipelineGeneratedMetric" + type: array type: - $ref: "#/components/schemas/OpenAIIntegrationType" + $ref: "#/components/schemas/ObservabilityPipelineGenerateMetricsV2ProcessorType" required: + - id - type + - enabled type: object - OpenAPIEndpoint: - description: Endpoint info extracted from an `OpenAPI` specification. + x-pipeline-types: [logs] + ObservabilityPipelineGenerateMetricsV2ProcessorType: + default: generate_metrics + description: The processor type. Always `generate_metrics`. + enum: + - generate_metrics + example: generate_metrics + type: string + x-enum-varnames: + - GENERATE_METRICS + ObservabilityPipelineGeneratedMetric: + description: |- + Defines a log-based custom metric, including its name, type, filter, value computation strategy, + and optional grouping fields. properties: - method: - description: The endpoint method. + group_by: + description: Optional fields used to group the metric series. + example: ["service", "env"] + items: + description: A log field name used to group the metric series. + type: string + type: array + include: + description: Datadog filter query to match logs for metric generation. + example: service:billing type: string - path: - description: The endpoint path. + metric_type: + $ref: "#/components/schemas/ObservabilityPipelineGeneratedMetricMetricType" + name: + description: Name of the custom metric to be created. + example: logs.processed type: string + value: + $ref: "#/components/schemas/ObservabilityPipelineMetricValue" + required: + - name + - include + - metric_type + - value type: object - OpenAPIFile: - description: Object for API data in an `OpenAPI` format as a file. + ObservabilityPipelineGeneratedMetricIncrementByField: + description: Strategy that increments a generated metric based on the value of a log field. properties: - openapi_spec_file: - description: Binary `OpenAPI` spec file - format: binary + field: + description: Name of the log field containing the numeric value to increment the metric by. + example: "errors" type: string + strategy: + $ref: "#/components/schemas/ObservabilityPipelineGeneratedMetricIncrementByFieldStrategy" + required: + - strategy + - field type: object - OpsgenieAccountCreateAttributes: - description: The Opsgenie account attributes for a create request. - properties: - api_key: - description: The Opsgenie API key for your Opsgenie account. - example: "00000000-0000-0000-0000-000000000000" - minLength: 1 - type: string - region: - $ref: "#/components/schemas/OpsgenieServiceRegionType" - required: - - api_key - - region - type: object - OpsgenieAccountCreateData: - description: Opsgenie account data for a create request. - properties: - attributes: - $ref: "#/components/schemas/OpsgenieAccountCreateAttributes" - type: - $ref: "#/components/schemas/OpsgenieAccountType" - required: - - type - - attributes - type: object - OpsgenieAccountCreateRequest: - description: Create request for an Opsgenie account. - properties: - data: - $ref: "#/components/schemas/OpsgenieAccountCreateData" - required: - - data - type: object - OpsgenieAccountResponse: - description: Response containing an Opsgenie account. + ObservabilityPipelineGeneratedMetricIncrementByFieldStrategy: + description: Uses a numeric field in the log event as the metric increment. + enum: + - increment_by_field + example: increment_by_field + type: string + x-enum-varnames: + - INCREMENT_BY_FIELD + ObservabilityPipelineGeneratedMetricIncrementByOne: + description: Strategy that increments a generated metric by one for each matching event. properties: - data: - $ref: "#/components/schemas/OpsgenieAccountResponseData" + strategy: + $ref: "#/components/schemas/ObservabilityPipelineGeneratedMetricIncrementByOneStrategy" required: - - data - type: object - OpsgenieAccountResponseAttributes: - description: The attributes from an Opsgenie account response. - properties: - region: - $ref: "#/components/schemas/OpsgenieServiceRegionType" + - strategy type: object - OpsgenieAccountResponseData: - description: Opsgenie account data from a response. + ObservabilityPipelineGeneratedMetricIncrementByOneStrategy: + description: Increments the metric by 1 for each matching event. + enum: + - increment_by_one + example: increment_by_one + type: string + x-enum-varnames: + - INCREMENT_BY_ONE + ObservabilityPipelineGeneratedMetricMetricType: + description: Type of metric to create. + enum: + - count + - gauge + - distribution + example: count + type: string + x-enum-varnames: + - COUNT + - GAUGE + - DISTRIBUTION + ObservabilityPipelineGoogleChronicleDestination: + description: |- + The `google_chronicle` destination sends logs to Google Chronicle. + + **Supported pipeline types:** logs properties: - attributes: - $ref: "#/components/schemas/OpsgenieAccountResponseAttributes" + auth: + $ref: "#/components/schemas/ObservabilityPipelineGcpAuth" + buffer: + $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" + customer_id: + description: The Google Chronicle customer ID. + example: abcdefg123456789 + type: string + encoding: + $ref: "#/components/schemas/ObservabilityPipelineGoogleChronicleDestinationEncoding" + endpoint_url_key: + description: Name of the environment variable or secret that holds the Google Chronicle endpoint URL. + example: CHRONICLE_ENDPOINT_URL + type: string id: - description: The ID of the Opsgenie account. - example: "596da4af-0563-4097-90ff-07230c3f9db3" - maxLength: 100 - minLength: 1 + description: The unique identifier for this component. + example: google-chronicle-destination + type: string + inputs: + description: A list of component IDs whose output is used as the `input` for this component. + example: ["parse-json-processor"] + items: + description: The ID of a component whose output is used as input for this destination. + type: string + type: array + log_type: + description: The log type metadata associated with the Chronicle destination. + example: nginx_logs type: string type: - $ref: "#/components/schemas/OpsgenieAccountType" + $ref: "#/components/schemas/ObservabilityPipelineGoogleChronicleDestinationType" required: - id - type - - attributes + - inputs + - customer_id type: object - OpsgenieAccountType: - default: opsgenie-account - description: Opsgenie account resource type. + x-pipeline-types: [logs] + ObservabilityPipelineGoogleChronicleDestinationEncoding: + description: The encoding format for the logs sent to Chronicle. enum: - - opsgenie-account - example: opsgenie-account + - json + - raw_message + example: json type: string x-enum-varnames: - - OPSGENIE_ACCOUNT - OpsgenieAccountUpdateAttributes: - description: The Opsgenie account attributes for an update request. + - JSON + - RAW_MESSAGE + ObservabilityPipelineGoogleChronicleDestinationType: + default: google_chronicle + description: The destination type. The value should always be `google_chronicle`. + enum: + - google_chronicle + example: google_chronicle + type: string + x-enum-varnames: + - GOOGLE_CHRONICLE + ObservabilityPipelineGoogleCloudStorageDestination: + description: |- + The `google_cloud_storage` destination stores logs in a Google Cloud Storage (GCS) bucket. + It requires a bucket name, Google Cloud authentication, and metadata fields. + + **Supported pipeline types:** logs properties: - api_key: - description: The Opsgenie API key for your Opsgenie account. - example: "00000000-0000-0000-0000-000000000000" - minLength: 1 + acl: + $ref: "#/components/schemas/ObservabilityPipelineGoogleCloudStorageDestinationAcl" + auth: + $ref: "#/components/schemas/ObservabilityPipelineGcpAuth" + bucket: + description: Name of the GCS bucket. + example: "error-logs" type: string - region: - $ref: "#/components/schemas/OpsgenieServiceRegionType" - type: object - OpsgenieAccountUpdateData: - description: Opsgenie account data for an update request. - properties: - attributes: - $ref: "#/components/schemas/OpsgenieAccountUpdateAttributes" + buffer: + $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" + compression: + $ref: "#/components/schemas/ObservabilityPipelineGoogleCloudStorageDestinationCompression" id: - description: The ID of the Opsgenie account. - example: "596da4af-0563-4097-90ff-07230c3f9db3" - maxLength: 100 - minLength: 1 + description: Unique identifier for the destination component. + example: gcs-destination + type: string + inputs: + description: A list of component IDs whose output is used as the `input` for this component. + example: ["datadog-agent-source"] + items: + description: The ID of a component whose output is used as input for this destination. + type: string + type: array + key_prefix: + description: Optional prefix for object keys within the GCS bucket. type: string + metadata: + description: Custom metadata to attach to each object uploaded to the GCS bucket. + items: + $ref: "#/components/schemas/ObservabilityPipelineMetadataEntry" + type: array + storage_class: + $ref: "#/components/schemas/ObservabilityPipelineGoogleCloudStorageDestinationStorageClass" type: - $ref: "#/components/schemas/OpsgenieAccountType" + $ref: "#/components/schemas/ObservabilityPipelineGoogleCloudStorageDestinationType" required: - id - type - - attributes + - inputs + - bucket + - storage_class type: object - OpsgenieAccountUpdateRequest: - description: Update request for an Opsgenie account. + x-pipeline-types: [logs] + ObservabilityPipelineGoogleCloudStorageDestinationAcl: + description: Access control list setting for objects written to the bucket. + enum: + - private + - project-private + - public-read + - authenticated-read + - bucket-owner-read + - bucket-owner-full-control + example: private + type: string + x-enum-varnames: + - PRIVATE + - PROJECTNOT_PRIVATE + - PUBLICNOT_READ + - AUTHENTICATEDNOT_READ + - BUCKETNOT_OWNERNOT_READ + - BUCKETNOT_OWNERNOT_FULLNOT_CONTROL + ObservabilityPipelineGoogleCloudStorageDestinationCompression: + description: |- + Compression configuration for archived logs. When omitted, logs are compressed with gzip + for backward compatibility. + oneOf: + - $ref: "#/components/schemas/ObservabilityPipelineGoogleCloudStorageDestinationCompressionZstd" + - $ref: "#/components/schemas/ObservabilityPipelineGoogleCloudStorageDestinationCompressionGzip" + ObservabilityPipelineGoogleCloudStorageDestinationCompressionGzip: + description: Gzip compression. properties: - data: - $ref: "#/components/schemas/OpsgenieAccountUpdateData" + algorithm: + $ref: "#/components/schemas/ObservabilityPipelineGoogleCloudStorageDestinationCompressionGzipType" + level: + description: Gzip compression level. Valid values range from `1` to `9`. + example: 6 + format: int64 + maximum: 9 + minimum: 1 + type: integer required: - - data + - algorithm + - level type: object - OpsgenieAccountsResponse: - description: Response with a list of Opsgenie accounts. + ObservabilityPipelineGoogleCloudStorageDestinationCompressionGzipType: + default: gzip + description: The compression type. Always `gzip`. + enum: + - gzip + example: gzip + type: string + x-enum-varnames: + - GZIP + ObservabilityPipelineGoogleCloudStorageDestinationCompressionZstd: + description: Zstd compression. properties: - data: - description: An array of Opsgenie accounts. - example: [{"attributes": {"region": "us"}, "id": "596da4af-0563-4097-90ff-07230c3f9db3", "type": "opsgenie-account"}, {"attributes": {"region": "eu"}, "id": "0d2937f1-b561-44fa-914a-99910f848014", "type": "opsgenie-account"}] - items: - $ref: "#/components/schemas/OpsgenieAccountResponseData" - type: array + algorithm: + $ref: "#/components/schemas/ObservabilityPipelineGoogleCloudStorageDestinationCompressionZstdType" + level: + description: Zstd compression level. Valid values range from `1` to `21`. + example: 3 + format: int64 + maximum: 21 + minimum: 1 + type: integer required: - - data + - algorithm + - level type: object - OpsgenieServiceCreateAttributes: - description: The Opsgenie service attributes for a create request. + ObservabilityPipelineGoogleCloudStorageDestinationCompressionZstdType: + default: zstd + description: The compression type. Always `zstd`. + enum: + - zstd + example: zstd + type: string + x-enum-varnames: + - ZSTD + ObservabilityPipelineGoogleCloudStorageDestinationStorageClass: + description: Storage class used for objects stored in GCS. + enum: + - STANDARD + - NEARLINE + - COLDLINE + - ARCHIVE + example: STANDARD + type: string + x-enum-varnames: + - STANDARD + - NEARLINE + - COLDLINE + - ARCHIVE + ObservabilityPipelineGoogleCloudStorageDestinationType: + default: google_cloud_storage + description: The destination type. Always `google_cloud_storage`. + enum: + - google_cloud_storage + example: google_cloud_storage + type: string + x-enum-varnames: + - GOOGLE_CLOUD_STORAGE + ObservabilityPipelineGooglePubSubDestination: + description: |- + The `google_pubsub` destination publishes logs to a Google Cloud Pub/Sub topic. + + **Supported pipeline types:** logs properties: - custom_url: - description: The custom URL for a custom region. - example: "https://example.com" + auth: + $ref: "#/components/schemas/ObservabilityPipelineGcpAuth" + buffer: + $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" + encoding: + $ref: "#/components/schemas/ObservabilityPipelineGooglePubSubDestinationEncoding" + endpoint_url_key: + description: Name of the environment variable or secret that holds the Google Cloud Pub/Sub endpoint URL. + example: GCP_PUBSUB_ENDPOINT_URL type: string - name: - description: The name for the Opsgenie service. - example: "fake-opsgenie-service-name" - maxLength: 100 + id: + description: The unique identifier for this component. + example: google-pubsub-destination type: string - opsgenie_api_key: - description: The Opsgenie API key for your Opsgenie service. - example: "00000000-0000-0000-0000-000000000000" + inputs: + description: A list of component IDs whose output is used as the `input` for this component. + example: ["filter-processor"] + items: + description: The ID of a component whose output is used as input for this destination. + type: string + type: array + project: + description: The Google Cloud project ID that owns the Pub/Sub topic. + example: my-gcp-project + type: string + tls: + $ref: "#/components/schemas/ObservabilityPipelineTls" + topic: + description: The Pub/Sub topic name to publish logs to. + example: logs-subscription type: string - region: - $ref: "#/components/schemas/OpsgenieServiceRegionType" - required: - - name - - opsgenie_api_key - - region - type: object - OpsgenieServiceCreateData: - description: Opsgenie service data for a create request. - properties: - attributes: - $ref: "#/components/schemas/OpsgenieServiceCreateAttributes" type: - $ref: "#/components/schemas/OpsgenieServiceType" + $ref: "#/components/schemas/ObservabilityPipelineGooglePubSubDestinationType" required: + - id - type - - attributes - type: object - OpsgenieServiceCreateRequest: - description: Create request for an Opsgenie service. - properties: - data: - $ref: "#/components/schemas/OpsgenieServiceCreateData" - required: - - data + - inputs + - encoding + - project + - topic type: object - OpsgenieServiceRegionType: - description: The region for the Opsgenie service. + x-pipeline-types: [logs] + ObservabilityPipelineGooglePubSubDestinationEncoding: + description: Encoding format for log events. enum: - - us - - eu - - custom - example: "us" + - json + - raw_message + example: json type: string x-enum-varnames: - - US - - EU - - CUSTOM - OpsgenieServiceResponse: - description: Response of an Opsgenie service. - properties: - data: - $ref: "#/components/schemas/OpsgenieServiceResponseData" - required: - - data - type: object - OpsgenieServiceResponseAttributes: - description: The attributes from an Opsgenie service response. + - JSON + - RAW_MESSAGE + ObservabilityPipelineGooglePubSubDestinationType: + default: google_pubsub + description: The destination type. The value should always be `google_pubsub`. + enum: + - google_pubsub + example: google_pubsub + type: string + x-enum-varnames: + - GOOGLE_PUBSUB + ObservabilityPipelineGooglePubSubSource: + description: |- + The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription. + + **Supported pipeline types:** logs properties: - custom_url: - description: The custom URL for a custom region. - example: - nullable: true + auth: + $ref: "#/components/schemas/ObservabilityPipelineGcpAuth" + decoding: + $ref: "#/components/schemas/ObservabilityPipelineDecoding" + id: + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: google-pubsub-source type: string - name: - description: The name for the Opsgenie service. - example: "fake-opsgenie-service-name" - maxLength: 100 + project: + description: The Google Cloud project ID that owns the Pub/Sub subscription. + example: my-gcp-project type: string - region: - $ref: "#/components/schemas/OpsgenieServiceRegionType" - type: object - OpsgenieServiceResponseData: - description: Opsgenie service data from a response. - properties: - attributes: - $ref: "#/components/schemas/OpsgenieServiceResponseAttributes" - id: - description: The ID of the Opsgenie service. - example: "596da4af-0563-4097-90ff-07230c3f9db3" - maxLength: 100 - minLength: 1 + subscription: + description: The Pub/Sub subscription name from which messages are consumed. + example: logs-subscription type: string + tls: + $ref: "#/components/schemas/ObservabilityPipelineTls" type: - $ref: "#/components/schemas/OpsgenieServiceType" + $ref: "#/components/schemas/ObservabilityPipelineGooglePubSubSourceType" required: - id - type - - attributes + - decoding + - project + - subscription type: object - OpsgenieServiceType: - default: opsgenie-service - description: Opsgenie service resource type. - enum: - - opsgenie-service - example: opsgenie-service + x-pipeline-types: [logs] + ObservabilityPipelineGooglePubSubSourceType: + default: google_pubsub + description: The source type. The value should always be `google_pubsub`. + enum: [google_pubsub] + example: google_pubsub type: string - x-enum-varnames: - - OPSGENIE_SERVICE - OpsgenieServiceUpdateAttributes: - description: The Opsgenie service attributes for an update request. + x-enum-varnames: [GOOGLE_PUBSUB] + ObservabilityPipelineHttpClientDestination: + description: |- + The `http_client` destination sends data to an HTTP endpoint. + + **Supported pipeline types:** logs, metrics properties: - custom_url: - description: The custom URL for a custom region. - example: "https://example.com" - nullable: true + auth_strategy: + $ref: "#/components/schemas/ObservabilityPipelineHttpClientDestinationAuthStrategy" + buffer: + $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" + compression: + $ref: "#/components/schemas/ObservabilityPipelineHttpClientDestinationCompression" + custom_key: + description: Name of the environment variable or secret that holds a custom header value (used with custom auth strategies). + example: HTTP_AUTH_CUSTOM_HEADER type: string - name: - description: The name for the Opsgenie service. - example: "fake-opsgenie-service-name" - maxLength: 100 + encoding: + $ref: "#/components/schemas/ObservabilityPipelineHttpClientDestinationEncoding" + id: + description: The unique identifier for this component. + example: http-client-destination type: string - opsgenie_api_key: - description: The Opsgenie API key for your Opsgenie service. - example: "00000000-0000-0000-0000-000000000000" + inputs: + description: A list of component IDs whose output is used as the input for this component. + example: ["filter-processor"] + items: + description: The ID of a component whose output is used as input for this destination. + type: string + type: array + password_key: + description: Name of the environment variable or secret that holds the password (used when `auth_strategy` is `basic`). + example: HTTP_AUTH_PASSWORD type: string - region: - $ref: "#/components/schemas/OpsgenieServiceRegionType" - type: object - OpsgenieServiceUpdateData: - description: Opsgenie service for an update request. - properties: - attributes: - $ref: "#/components/schemas/OpsgenieServiceUpdateAttributes" - id: - description: The ID of the Opsgenie service. - example: "596da4af-0563-4097-90ff-07230c3f9db3" - maxLength: 100 - minLength: 1 + tls: + $ref: "#/components/schemas/ObservabilityPipelineClientTls" + token_key: + description: Name of the environment variable or secret that holds the bearer token (used when `auth_strategy` is `bearer`). + example: HTTP_AUTH_TOKEN type: string type: - $ref: "#/components/schemas/OpsgenieServiceType" + $ref: "#/components/schemas/ObservabilityPipelineHttpClientDestinationType" + uri_key: + description: Name of the environment variable or secret that holds the HTTP endpoint URI. + example: HTTP_DESTINATION_URI + type: string + username_key: + description: Name of the environment variable or secret that holds the username (used when `auth_strategy` is `basic`). + example: HTTP_AUTH_USERNAME + type: string required: - id - type - - attributes - type: object - OpsgenieServiceUpdateRequest: - description: Update request for an Opsgenie service. - properties: - data: - $ref: "#/components/schemas/OpsgenieServiceUpdateData" - required: - - data + - inputs + - encoding type: object - OpsgenieServicesResponse: - description: Response with a list of Opsgenie services. + x-pipeline-types: [logs, metrics] + ObservabilityPipelineHttpClientDestinationAuthStrategy: + description: HTTP authentication strategy. + enum: [none, basic, bearer, custom] + example: basic + type: string + x-enum-varnames: + - NONE + - BASIC + - BEARER + - CUSTOM + ObservabilityPipelineHttpClientDestinationCompression: + description: Compression configuration for HTTP requests. properties: - data: - description: An array of Opsgenie services. - example: [{"attributes": {"custom_url": null, "name": "fake-opsgenie-service-name", "region": "us"}, "id": "596da4af-0563-4097-90ff-07230c3f9db3", "type": "opsgenie-service"}, {"attributes": {"custom_url": null, "name": "fake-opsgenie-service-name-2", "region": "eu"}, "id": "0d2937f1-b561-44fa-914a-99910f848014", "type": "opsgenie-service"}] - items: - $ref: "#/components/schemas/OpsgenieServiceResponseData" - type: array + algorithm: + $ref: "#/components/schemas/ObservabilityPipelineHttpClientDestinationCompressionAlgorithm" required: - - data + - algorithm type: object - OrderDirection: - description: The sort direction for results. - enum: - - asc - - desc - example: asc + ObservabilityPipelineHttpClientDestinationCompressionAlgorithm: + description: Compression algorithm. + enum: [gzip] + example: gzip type: string x-enum-varnames: - - ASC - - DESC - OrgAttributes: - description: Attributes of an organization. + - GZIP + ObservabilityPipelineHttpClientDestinationEncoding: + description: Encoding format for log events. + enum: [json] + example: json + type: string + x-enum-varnames: + - JSON + ObservabilityPipelineHttpClientDestinationType: + default: http_client + description: The destination type. The value should always be `http_client`. + enum: [http_client] + example: http_client + type: string + x-enum-varnames: + - HTTP_CLIENT + ObservabilityPipelineHttpClientSource: + description: |- + The `http_client` source scrapes logs from HTTP endpoints at regular intervals. + + **Supported pipeline types:** logs properties: - created_at: - description: The creation timestamp of the organization. - example: "2019-09-26T17:28:28Z" - format: date-time - type: string - description: - description: A description of the organization. - example: "Production organization." - type: string - disabled: - description: Whether the organization is disabled. - example: false - type: boolean - modified_at: - description: The last modification timestamp of the organization. - example: "2024-01-15T10:30:00Z" - format: date-time - type: string - name: - description: The name of the organization. - example: "My Organization" - type: string - public_id: - description: The public identifier of the organization. - example: "abcdef12345" + auth_strategy: + $ref: "#/components/schemas/ObservabilityPipelineHttpClientSourceAuthStrategy" + custom_key: + description: Name of the environment variable or secret that holds a custom header value (used with custom auth strategies). + example: HTTP_AUTH_CUSTOM_HEADER type: string - sharing: - description: The sharing setting of the organization. - example: "none" + decoding: + $ref: "#/components/schemas/ObservabilityPipelineDecoding" + endpoint_url_key: + description: Name of the environment variable or secret that holds the HTTP endpoint URL to scrape. + example: HTTP_ENDPOINT_URL type: string - url: - description: The URL of the organization. - example: "https://app.datadoghq.com/account/my-org" + id: + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: http-client-source type: string - required: - - public_id - - name - - description - - sharing - - url - - disabled - - created_at - - modified_at - type: object - OrgAuthorizedClientAttributes: - description: Attributes of an org authorized client. - properties: - disabled: - description: Whether the organization has disabled this client. - example: false - type: boolean - last_exercised: - description: The date and time this client was last exercised. - example: "2024-01-15T10:30:00+00:00" - format: date-time - nullable: true + password_key: + description: Name of the environment variable or secret that holds the password (used when `auth_strategy` is `basic`). + example: HTTP_AUTH_PASSWORD type: string - user_count: - description: The number of users in the organization who have authorized this client. - example: 2 + scrape_interval_secs: + description: The interval (in seconds) between HTTP scrape requests. + example: 60 format: int64 type: integer - required: - - last_exercised - - disabled - - user_count - type: object - OrgAuthorizedClientData: - description: Data object representing an org authorized client. - properties: - attributes: - $ref: "#/components/schemas/OrgAuthorizedClientAttributes" - id: - description: The unique identifier of the org authorized client. - example: "00000000-0000-0000-0000-000000000001" + scrape_timeout_secs: + description: The timeout (in seconds) for each scrape request. + example: 10 + format: int64 + type: integer + tls: + $ref: "#/components/schemas/ObservabilityPipelineClientTls" + token_key: + description: Name of the environment variable or secret that holds the bearer token (used when `auth_strategy` is `bearer`). + example: HTTP_AUTH_TOKEN type: string - relationships: - $ref: "#/components/schemas/OrgAuthorizedClientRelationships" type: - $ref: "#/components/schemas/OrgAuthorizedClientType" - required: - - id - - type - - attributes - - relationships - type: object - OrgAuthorizedClientDataList: - description: List of org authorized client data objects. - items: - $ref: "#/components/schemas/OrgAuthorizedClientData" - type: array - OrgAuthorizedClientRelationshipOAuth2Client: - description: Relationship to the OAuth2 client for this org authorized client. - properties: - data: - $ref: "#/components/schemas/OrgAuthorizedClientRelationshipOAuth2ClientData" - required: - - data - type: object - OrgAuthorizedClientRelationshipOAuth2ClientData: - description: Data identifying the OAuth2 client associated with this org authorized client. - properties: - id: - description: The ID of the OAuth2 client. - example: "00000000-0000-0000-0000-000000000010" + $ref: "#/components/schemas/ObservabilityPipelineHttpClientSourceType" + username_key: + description: Name of the environment variable or secret that holds the username (used when `auth_strategy` is `basic`). + example: HTTP_AUTH_USERNAME type: string - type: - $ref: "#/components/schemas/OrgAuthorizedClientRelationshipOAuth2ClientDataType" required: - - type - id + - type + - decoding type: object - OrgAuthorizedClientRelationshipOAuth2ClientDataType: - description: OAuth2 client resource type. - enum: - - oauth2_clients - example: oauth2_clients + x-pipeline-types: [logs] + ObservabilityPipelineHttpClientSourceAuthStrategy: + description: Optional authentication strategy for HTTP requests. + enum: [none, basic, bearer, custom] + example: basic type: string x-enum-varnames: - - OAUTH2_CLIENTS - OrgAuthorizedClientRelationshipUserAuthorizedClients: - description: Relationship to the user authorized clients for this org authorized client. - properties: - data: - $ref: "#/components/schemas/OrgAuthorizedClientRelationshipUserAuthorizedClientsDataList" - links: - $ref: "#/components/schemas/OrgAuthorizedClientRelationshipUserAuthorizedClientsLinks" - required: - - links - - data - type: object - OrgAuthorizedClientRelationshipUserAuthorizedClientsData: - description: Data identifying a user authorized client. + - NONE + - BASIC + - BEARER + - CUSTOM + ObservabilityPipelineHttpClientSourceType: + default: http_client + description: The source type. The value should always be `http_client`. + enum: [http_client] + example: http_client + type: string + x-enum-varnames: [HTTP_CLIENT] + ObservabilityPipelineHttpServerSource: + description: |- + The `http_server` source collects logs over HTTP POST from external services. + + **Supported pipeline types:** logs properties: + address_key: + description: Name of the environment variable or secret that holds the listen address for the HTTP server. + example: HTTP_SERVER_ADDRESS + type: string + auth_strategy: + $ref: "#/components/schemas/ObservabilityPipelineHttpServerSourceAuthStrategy" + custom_key: + description: Name of the environment variable or secret that holds a custom header value (used with custom auth strategies). + example: HTTP_AUTH_CUSTOM_HEADER + type: string + decoding: + $ref: "#/components/schemas/ObservabilityPipelineDecoding" id: - description: The ID of the user authorized client. - example: "00000000-0000-0000-0000-000000000020" + description: Unique ID for the HTTP server source. + example: "http-server-source" + type: string + password_key: + description: Name of the environment variable or secret that holds the password (used when `auth_strategy` is `plain`). + example: HTTP_AUTH_PASSWORD type: string + tls: + $ref: "#/components/schemas/ObservabilityPipelineMtlsServerTls" type: - $ref: "#/components/schemas/OrgAuthorizedClientRelationshipUserAuthorizedClientsDataType" + $ref: "#/components/schemas/ObservabilityPipelineHttpServerSourceType" + username_key: + description: Name of the environment variable or secret that holds the username (used when `auth_strategy` is `plain`). + example: HTTP_AUTH_USERNAME + type: string + valid_tokens: + description: |- + A list of tokens that are accepted for authenticating incoming HTTP requests. When set, + the source rejects any request whose token does not match an enabled entry in this list. + Cannot be combined with the `plain` auth strategy. + items: + $ref: "#/components/schemas/ObservabilityPipelineHttpServerSourceValidToken" + maxItems: 1000 + minItems: 1 + type: array required: - - type - id + - type + - auth_strategy + - decoding type: object - OrgAuthorizedClientRelationshipUserAuthorizedClientsDataList: - description: List of user authorized client relationship data objects. - items: - $ref: "#/components/schemas/OrgAuthorizedClientRelationshipUserAuthorizedClientsData" - type: array - OrgAuthorizedClientRelationshipUserAuthorizedClientsDataType: - description: User authorized client resource type. + x-pipeline-types: [logs] + ObservabilityPipelineHttpServerSourceAuthStrategy: + description: HTTP authentication method. enum: - - user_authorized_clients - example: user_authorized_clients + - none + - plain + example: plain type: string x-enum-varnames: - - USER_AUTHORIZED_CLIENTS - OrgAuthorizedClientRelationshipUserAuthorizedClientsLinks: - description: Links for the user authorized clients relationship. + - NONE + - PLAIN + ObservabilityPipelineHttpServerSourceType: + default: http_server + description: The source type. The value should always be `http_server`. + enum: [http_server] + example: http_server + type: string + x-enum-varnames: + - HTTP_SERVER + ObservabilityPipelineHttpServerSourceValidToken: + description: An accepted token used to authenticate incoming HTTP server requests. properties: - related: - description: Link to the user authorized clients for this org authorized client. - example: "/api/v2/org_authorized_clients/00000000-0000-0000-0000-000000000001/user_authorized_clients" + enabled: + default: true + description: |- + Indicates whether this token is currently accepted. Disabled tokens are rejected without + being removed from the configuration. + example: true + type: boolean + field_to_add: + $ref: "#/components/schemas/ObservabilityPipelineSourceValidTokenFieldToAdd" + path_to_token: + $ref: "#/components/schemas/ObservabilityPipelineHttpServerSourceValidTokenPathToToken" + token_key: + description: Name of the environment variable or secret that holds the expected token value. + example: HTTP_SERVER_TOKEN + pattern: "^[A-Za-z0-9_]+$" type: string required: - - related - type: object - OrgAuthorizedClientRelationships: - description: Relationships for an org authorized client. - properties: - oauth2_client: - $ref: "#/components/schemas/OrgAuthorizedClientRelationshipOAuth2Client" - user_authorized_clients: - $ref: "#/components/schemas/OrgAuthorizedClientRelationshipUserAuthorizedClients" - required: - - oauth2_client - - user_authorized_clients + - token_key type: object - OrgAuthorizedClientResponse: - description: Response containing a single org authorized client. + ObservabilityPipelineHttpServerSourceValidTokenPathToToken: + description: |- + Specifies where the worker extracts the token from in the incoming HTTP request. + This can be either a built-in location (`path` or `address`) or an HTTP header object. + oneOf: + - $ref: "#/components/schemas/ObservabilityPipelineHttpServerSourceValidTokenPathToTokenLocation" + - $ref: "#/components/schemas/ObservabilityPipelineHttpServerSourceValidTokenPathToTokenHeader" + ObservabilityPipelineHttpServerSourceValidTokenPathToTokenHeader: + description: Extract the token from a specific HTTP request header. properties: - data: - $ref: "#/components/schemas/OrgAuthorizedClientData" + header: + description: The name of the HTTP header that carries the token. + example: X-Token + type: string required: - - data + - header type: object - OrgAuthorizedClientType: - description: The resource type for org authorized clients. + ObservabilityPipelineHttpServerSourceValidTokenPathToTokenLocation: + description: Built-in token location on the incoming HTTP request. enum: - - org_authorized_clients - example: org_authorized_clients + - path + - address + example: path type: string x-enum-varnames: - - ORG_AUTHORIZED_CLIENTS - OrgAuthorizedClientUpdateAttributes: - description: Attributes for updating an org authorized client. - properties: - disabled: - description: Whether to disable or enable this client for the organization. - example: true - type: boolean - type: object - OrgAuthorizedClientUpdateData: - description: Data object for updating an org authorized client. + - PATH + - ADDRESS + ObservabilityPipelineKafkaDestination: + description: |- + The `kafka` destination sends logs to Apache Kafka topics. + + **Supported pipeline types:** logs properties: - attributes: - $ref: "#/components/schemas/OrgAuthorizedClientUpdateAttributes" + bootstrap_servers_key: + description: Name of the environment variable or secret that holds the Kafka bootstrap servers list. + example: KAFKA_BOOTSTRAP_SERVERS + type: string + buffer: + $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" + compression: + $ref: "#/components/schemas/ObservabilityPipelineKafkaDestinationCompression" + encoding: + $ref: "#/components/schemas/ObservabilityPipelineKafkaDestinationEncoding" + headers_key: + description: The field name to use for Kafka message headers. + example: headers + type: string id: - description: The unique identifier of the org authorized client to update. - example: "00000000-0000-0000-0000-000000000001" + description: The unique identifier for this component. + example: kafka-destination + type: string + inputs: + description: A list of component IDs whose output is used as the `input` for this component. + example: ["filter-processor"] + items: + description: The ID of a component whose output is used as input for this destination. + type: string + type: array + key_field: + description: The field name to use as the Kafka message key. + example: message_id + type: string + librdkafka_options: + description: Optional list of advanced Kafka producer configuration options, defined as key-value pairs. + items: + $ref: "#/components/schemas/ObservabilityPipelineKafkaLibrdkafkaOption" + type: array + message_timeout_ms: + description: Maximum time in milliseconds to wait for message delivery confirmation. + example: 300000 + format: int64 + minimum: 1 + type: integer + rate_limit_duration_secs: + description: Duration in seconds for the rate limit window. + example: 1 + format: int64 + minimum: 1 + type: integer + rate_limit_num: + description: Maximum number of messages allowed per rate limit duration. + example: 1000 + format: int64 + minimum: 1 + type: integer + sasl: + $ref: "#/components/schemas/ObservabilityPipelineKafkaSasl" + socket_timeout_ms: + description: Socket timeout in milliseconds for network requests. + example: 60000 + format: int64 + maximum: 300000 + minimum: 10 + type: integer + tls: + $ref: "#/components/schemas/ObservabilityPipelineTls" + topic: + description: The Kafka topic name to publish logs to. + example: logs-topic type: string type: - $ref: "#/components/schemas/OrgAuthorizedClientType" + $ref: "#/components/schemas/ObservabilityPipelineKafkaDestinationType" required: - id - type + - inputs + - topic + - encoding type: object - OrgAuthorizedClientUpdateRequest: - description: Request body for updating an org authorized client. - properties: - data: - $ref: "#/components/schemas/OrgAuthorizedClientUpdateData" - required: - - data - type: object - OrgAuthorizedClientUserAuthorizationsSort: - description: Field to sort user authorizations by. + x-pipeline-types: [logs] + ObservabilityPipelineKafkaDestinationCompression: + description: Compression codec for Kafka messages. enum: - - user.name - - user.email - - oauth2_client.name - example: user.name + - none + - gzip + - snappy + - lz4 + - zstd + example: gzip type: string x-enum-varnames: - - USER_NAME - - USER_EMAIL - - OAUTH2_CLIENT_NAME - OrgAuthorizedClientsResponse: - description: Response containing a list of org authorized clients. - properties: - data: - $ref: "#/components/schemas/OrgAuthorizedClientDataList" - meta: - $ref: "#/components/schemas/ResponseMetaAttributes" - required: - - data - - meta - type: object - OrgConfigGetResponse: - description: A response with a single Org Config. - properties: - data: - $ref: "#/components/schemas/OrgConfigRead" - required: [data] - type: object - OrgConfigListResponse: - description: A response with multiple Org Configs. - properties: - data: - description: An array of Org Configs. - items: - $ref: "#/components/schemas/OrgConfigRead" - type: array - required: [data] - type: object - OrgConfigRead: - description: A single Org Config. + - NONE + - GZIP + - SNAPPY + - LZ4 + - ZSTD + ObservabilityPipelineKafkaDestinationEncoding: + description: Encoding format for log events. + enum: + - json + - raw_message + example: json + type: string + x-enum-varnames: + - JSON + - RAW_MESSAGE + ObservabilityPipelineKafkaDestinationType: + default: kafka + description: The destination type. The value should always be `kafka`. + enum: + - kafka + example: kafka + type: string + x-enum-varnames: + - KAFKA + ObservabilityPipelineKafkaLibrdkafkaOption: + description: Represents a key-value pair used to configure low-level `librdkafka` client options for Kafka source and destination, such as timeouts, buffer sizes, and security settings. properties: - attributes: - $ref: "#/components/schemas/OrgConfigReadAttributes" - id: - description: A unique identifier for an Org Config. - example: abcd1234 + name: + description: The name of the `librdkafka` configuration option to set. + example: "fetch.message.max.bytes" type: string - type: - $ref: "#/components/schemas/OrgConfigType" - required: [id, type, attributes] + value: + description: The value assigned to the specified `librdkafka` configuration option. + example: "1048576" + type: string + required: + - name + - value type: object - OrgConfigReadAttributes: - description: Readable attributes of an Org Config. + ObservabilityPipelineKafkaSasl: + description: Specifies the SASL mechanism for authenticating with a Kafka cluster. properties: - description: - description: The description of an Org Config. - example: Frobulate the turbo encabulator manifold - type: string - modified_at: - description: The timestamp of the last Org Config update (if any). - format: date-time - nullable: true - type: string - name: - description: The machine-friendly name of an Org Config. - example: monitor_timezone + mechanism: + $ref: "#/components/schemas/ObservabilityPipelineKafkaSaslMechanism" + password_key: + description: Name of the environment variable or secret that holds the SASL password. + example: KAFKA_SASL_PASSWORD type: string - value: - description: The value of an Org Config. - value_type: - description: The type of an Org Config value. - example: bool + username_key: + description: Name of the environment variable or secret that holds the SASL username. + example: KAFKA_SASL_USERNAME type: string - required: [name, description, value_type, value] type: object - OrgConfigType: - description: Data type of an Org Config. - enum: [org_configs] - example: org_configs + ObservabilityPipelineKafkaSaslMechanism: + description: SASL mechanism used for Kafka authentication. + enum: + - PLAIN + - SCRAM-SHA-256 + - SCRAM-SHA-512 type: string x-enum-varnames: - - ORG_CONFIGS - OrgConfigWrite: - description: An Org Config write operation. - properties: - attributes: - $ref: "#/components/schemas/OrgConfigWriteAttributes" - type: - $ref: "#/components/schemas/OrgConfigType" - required: [type, attributes] - type: object - OrgConfigWriteAttributes: - description: Writable attributes of an Org Config. - properties: - value: - description: The value of an Org Config. - required: [value] - type: object - OrgConfigWriteRequest: - description: A request to update an Org Config. - properties: - data: - $ref: "#/components/schemas/OrgConfigWrite" - required: [data] - type: object - OrgConnection: - description: An org connection. + - PLAIN + - SCRAMNOT_SHANOT_256 + - SCRAMNOT_SHANOT_512 + ObservabilityPipelineKafkaSource: + description: |- + The `kafka` source ingests data from Apache Kafka topics. + + **Supported pipeline types:** logs properties: - attributes: - $ref: "#/components/schemas/OrgConnectionAttributes" - id: - description: The unique identifier of the org connection. - example: "f9ec96b0-8c8a-4b0a-9b0a-1b2c3d4e5f6a" - format: uuid + bootstrap_servers_key: + description: Name of the environment variable or secret that holds the Kafka bootstrap servers list. + example: KAFKA_BOOTSTRAP_SERVERS type: string - relationships: - $ref: "#/components/schemas/OrgConnectionRelationships" - type: - $ref: "#/components/schemas/OrgConnectionType" - required: [id, type, attributes, relationships] - type: object - OrgConnectionAttributes: - description: Org connection attributes. - properties: - connection_types: - description: List of connection types. - example: ["logs", "metrics"] - items: - $ref: "#/components/schemas/OrgConnectionTypeEnum" - type: array - created_at: - description: Timestamp when the connection was created. - example: "2023-01-01T12:00:00Z" - format: date-time + group_id: + description: Consumer group ID used by the Kafka client. + example: "consumer-group-0" type: string - required: [connection_types, created_at] - type: object - OrgConnectionCreate: - description: Org connection creation data. - properties: - attributes: - $ref: "#/components/schemas/OrgConnectionCreateAttributes" - relationships: - $ref: "#/components/schemas/OrgConnectionCreateRelationships" - type: - $ref: "#/components/schemas/OrgConnectionType" - required: [type, attributes, relationships] - type: object - OrgConnectionCreateAttributes: - description: Attributes for creating an org connection. - properties: - connection_types: - description: List of connection types to establish. - example: ["logs"] + id: + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: "kafka-source" + type: string + librdkafka_options: + description: Optional list of advanced Kafka client configuration options, defined as key-value pairs. items: - $ref: "#/components/schemas/OrgConnectionTypeEnum" - minItems: 1 + $ref: "#/components/schemas/ObservabilityPipelineKafkaLibrdkafkaOption" type: array - required: [connection_types] - type: object - OrgConnectionCreateRelationships: - description: Relationships for org connection creation. - properties: - sink_org: - $ref: "#/components/schemas/OrgConnectionOrgRelationship" - required: [sink_org] - type: object - OrgConnectionCreateRequest: - description: Request to create an org connection. - properties: - data: - $ref: "#/components/schemas/OrgConnectionCreate" - required: [data] - type: object - OrgConnectionListResponse: - description: Response containing a list of org connections. - properties: - data: - description: List of org connections. + sasl: + $ref: "#/components/schemas/ObservabilityPipelineKafkaSasl" + tls: + $ref: "#/components/schemas/ObservabilityPipelineTls" + topics: + description: A list of Kafka topic names to subscribe to. The source ingests messages from each topic specified. + example: ["topic1", "topic2"] items: - $ref: "#/components/schemas/OrgConnection" + description: A Kafka topic name to subscribe to. + type: string type: array - meta: - $ref: "#/components/schemas/OrgConnectionListResponseMeta" - required: [data] - type: object - OrgConnectionListResponseMeta: - description: Pagination metadata. - properties: - page: - $ref: "#/components/schemas/OrgConnectionListResponseMetaPage" - type: object - OrgConnectionListResponseMetaPage: - description: Page information. - properties: - total_count: - description: Total number of org connections. - example: 0 - format: int64 - type: integer - total_filtered_count: - description: Total number of org connections matching the filter. - example: 0 - format: int64 - type: integer - type: object - OrgConnectionOrgRelationship: - description: Org relationship. - properties: - data: - $ref: "#/components/schemas/OrgConnectionOrgRelationshipData" - type: object - OrgConnectionOrgRelationshipData: - description: The definition of `OrgConnectionOrgRelationshipData` object. - properties: - id: - description: Org UUID. - example: "f9ec96b0-8c8a-4b0a-9b0a-1b2c3d4e5f6a" - type: string - name: - description: Org name. - example: "Example Org" - type: string type: - $ref: "#/components/schemas/OrgConnectionOrgRelationshipDataType" - type: object - OrgConnectionOrgRelationshipDataType: - description: The type of the organization relationship. - enum: [orgs] - example: "orgs" - type: string - x-enum-varnames: - - ORGS - OrgConnectionRelationships: - description: Related organizations and user. - properties: - created_by: - $ref: "#/components/schemas/OrgConnectionUserRelationship" - sink_org: - $ref: "#/components/schemas/OrgConnectionOrgRelationship" - source_org: - $ref: "#/components/schemas/OrgConnectionOrgRelationship" - type: object - OrgConnectionResponse: - description: Response containing a single org connection. - properties: - data: - $ref: "#/components/schemas/OrgConnection" - required: [data] + $ref: "#/components/schemas/ObservabilityPipelineKafkaSourceType" + required: + - id + - type + - group_id + - topics type: object - OrgConnectionType: - description: Org connection type. - enum: [org_connection] - example: "org_connection" - type: string - x-enum-varnames: - - ORG_CONNECTION - OrgConnectionTypeEnum: - description: Available connection types between organizations. + x-pipeline-types: [logs] + ObservabilityPipelineKafkaSourceType: + default: kafka + description: The source type. The value should always be `kafka`. enum: - - logs - - metrics - - audit - example: "logs" + - kafka + example: kafka type: string x-enum-varnames: - - LOGS - - METRICS - - AUDIT - OrgConnectionUpdate: - description: Org connection update data. + - KAFKA + ObservabilityPipelineLogstashSource: + description: |- + The `logstash` source ingests logs from a Logstash forwarder. + + **Supported pipeline types:** logs properties: - attributes: - $ref: "#/components/schemas/OrgConnectionUpdateAttributes" - id: - description: The unique identifier of the org connection. - example: "f9ec96b0-8c8a-4b0a-9b0a-1b2c3d4e5f6a" - format: uuid + address_key: + description: Name of the environment variable or secret that holds the listen address for the Logstash receiver. + example: LOGSTASH_ADDRESS type: string - type: - $ref: "#/components/schemas/OrgConnectionType" - required: [type, id, attributes] - type: object - OrgConnectionUpdateAttributes: - description: Attributes for updating an org connection. - properties: - connection_types: - description: Updated list of connection types. - example: ["logs", "metrics"] - items: - $ref: "#/components/schemas/OrgConnectionTypeEnum" - minItems: 1 - type: array - required: [connection_types] - type: object - OrgConnectionUpdateRequest: - description: Request to update an org connection. - properties: - data: - $ref: "#/components/schemas/OrgConnectionUpdate" - required: [data] - type: object - OrgConnectionUserRelationship: - description: User relationship. - properties: - data: - $ref: "#/components/schemas/OrgConnectionUserRelationshipData" - type: object - OrgConnectionUserRelationshipData: - description: The data for a user relationship. - properties: id: - description: User UUID. - example: "usr123abc456" - type: string - name: - description: User name. - example: "John Doe" + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: logstash-source type: string + tls: + $ref: "#/components/schemas/ObservabilityPipelineMtlsServerTls" type: - $ref: "#/components/schemas/OrgConnectionUserRelationshipDataType" + $ref: "#/components/schemas/ObservabilityPipelineLogstashSourceType" + required: + - id + - type type: object - OrgConnectionUserRelationshipDataType: - description: The type of the user relationship. - enum: [users] - example: "users" + x-pipeline-types: [logs] + ObservabilityPipelineLogstashSourceType: + default: logstash + description: The source type. The value should always be `logstash`. + enum: + - logstash + example: logstash type: string x-enum-varnames: - - USERS - OrgData: - description: An organization resource. + - LOGSTASH + ObservabilityPipelineMemoryBufferOptions: + description: Options for configuring a memory buffer by byte size. properties: - attributes: - $ref: "#/components/schemas/OrgAttributes" - id: - description: The UUID of the organization. - example: "4dee724d-00cc-11ea-a77b-570c9d03c6c5" - format: uuid - type: string + max_size: + description: Maximum size of the memory buffer. + example: 4096 + format: int64 + type: integer type: - $ref: "#/components/schemas/OrgResourceType" + $ref: "#/components/schemas/ObservabilityPipelineBufferOptionsMemoryType" + when_full: + $ref: "#/components/schemas/ObservabilityPipelineBufferOptionsWhenFull" required: - - id - - type - - attributes + - max_size type: object - OrgGroupAttributes: - description: Attributes of an org group. + ObservabilityPipelineMemoryBufferSizeOptions: + description: Options for configuring a memory buffer by queue length. properties: - created_at: - description: Timestamp when the org group was created. - example: "2024-01-15T10:30:00Z" - format: date-time - type: string - modified_at: - description: Timestamp when the org group was last modified. - example: "2024-01-15T10:30:00Z" - format: date-time - type: string - name: - description: The name of the org group. - example: "My Org Group" - type: string - owner_org_site: - description: The site of the organization that owns this org group. - example: "us1" - type: string - owner_org_uuid: - description: The UUID of the organization that owns this org group. - example: "b2c3d4e5-f6a7-8901-bcde-f01234567890" - format: uuid - type: string + max_events: + description: Maximum events for the memory buffer. + example: 500 + format: int64 + type: integer + type: + $ref: "#/components/schemas/ObservabilityPipelineBufferOptionsMemoryType" + when_full: + $ref: "#/components/schemas/ObservabilityPipelineBufferOptionsWhenFull" required: - - name - - owner_org_uuid - - owner_org_site - - created_at - - modified_at + - max_events type: object - OrgGroupCreateAttributes: - description: Attributes for creating an org group. + ObservabilityPipelineMetadataEntry: + description: A custom metadata entry. properties: name: - description: The name of the org group. - example: "My Org Group" + description: The metadata key. + example: environment + type: string + value: + description: The metadata value. + example: production type: string required: - name + - value type: object - OrgGroupCreateData: - description: Data for creating an org group. + ObservabilityPipelineMetricEnrichmentTableFile: + description: Defines a static enrichment table loaded from a CSV file for metric enrichment. properties: - attributes: - $ref: "#/components/schemas/OrgGroupCreateAttributes" - type: - $ref: "#/components/schemas/OrgGroupType" + encoding: + $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFileEncoding" + key: + $ref: "#/components/schemas/ObservabilityPipelineMetricEnrichmentTableFileKey" + path: + description: Path to the CSV file. + example: /etc/enrichment/lookup.csv + type: string required: - - type - - attributes + - encoding + - key + - path type: object - OrgGroupCreateRequest: - description: Request to create an org group. + ObservabilityPipelineMetricEnrichmentTableFileKey: + description: Defines how to map a metric lookup value to a CSV column during enrichment table lookups. properties: - data: - $ref: "#/components/schemas/OrgGroupCreateData" + column: + description: The CSV column name or index to match against the lookup value. + example: service + type: string + source: + $ref: "#/components/schemas/ObservabilityPipelineMetricEnrichmentTableLookupSource" required: - - data + - column + - source type: object - OrgGroupData: - description: An org group resource. + ObservabilityPipelineMetricEnrichmentTableFileProcessor: + description: An `enrichment_table` processor that enriches metrics using a static CSV file. properties: - attributes: - $ref: "#/components/schemas/OrgGroupAttributes" + display_name: + $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" + enabled: + description: Indicates whether the processor is enabled. + example: true + type: boolean + file: + $ref: "#/components/schemas/ObservabilityPipelineMetricEnrichmentTableFile" id: - description: The ID of the org group. - example: "a1b2c3d4-e5f6-7890-abcd-ef0123456789" - format: uuid + description: |- + The unique identifier for this component. Used in other parts of the pipeline to reference this component + (for example, as the `input` to downstream components). + example: enrichment-table-processor + type: string + include: + description: A Datadog search query used to determine which metrics this processor targets. + example: "*" type: string type: - $ref: "#/components/schemas/OrgGroupType" + $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableProcessorType" required: - id - type - - attributes + - include + - file + - enabled type: object - OrgGroupListResponse: - description: Response containing a list of org groups. + ObservabilityPipelineMetricEnrichmentTableLookupSource: + description: |- + Specifies the source of the key value used for metric enrichment table lookups. + The lookup key can be either the metric name or a metric tag. + oneOf: + - $ref: "#/components/schemas/ObservabilityPipelineMetricEnrichmentTableMetricNameLookup" + - $ref: "#/components/schemas/ObservabilityPipelineMetricEnrichmentTableTagLookup" + ObservabilityPipelineMetricEnrichmentTableMetricNameLookup: + description: Uses the metric name as the lookup key for enrichment table matching. properties: - data: - description: An array of org groups. - items: - $ref: "#/components/schemas/OrgGroupData" - type: array - links: - $ref: "#/components/schemas/OrgGroupPaginationLinks" - meta: - $ref: "#/components/schemas/OrgGroupPaginationMeta" + type: + $ref: "#/components/schemas/ObservabilityPipelineMetricEnrichmentTableMetricNameLookupType" required: - - data + - type type: object - OrgGroupMembershipAttributes: - description: Attributes of an org group membership. + ObservabilityPipelineMetricEnrichmentTableMetricNameLookupType: + default: metric_name + description: The lookup source type. The value should always be `metric_name`. + enum: [metric_name] + example: metric_name + type: string + x-enum-varnames: + - METRIC_NAME + ObservabilityPipelineMetricEnrichmentTableProcessor: + description: |- + The `enrichment_table` processor enriches metrics with tags from a static CSV file or a Datadog reference table. + It looks up a row using the metric name or a metric tag value. It then adds each column of the matching row as a + metric tag, overwriting any existing tag with the same key. Exactly one of `file` or `reference_table` must be + configured. + + **Supported pipeline types:** metrics + oneOf: + - $ref: "#/components/schemas/ObservabilityPipelineMetricEnrichmentTableFileProcessor" + - $ref: "#/components/schemas/ObservabilityPipelineMetricEnrichmentTableReferenceTableProcessor" + x-pipeline-types: [metrics] + ObservabilityPipelineMetricEnrichmentTableReferenceKey: + description: Defines the metric lookup value used as the reference-table row ID. properties: - created_at: - description: Timestamp when the membership was created. - example: "2024-01-15T10:30:00Z" - format: date-time - type: string - modified_at: - description: Timestamp when the membership was last modified. - example: "2024-01-15T10:30:00Z" - format: date-time - type: string - org_name: - description: The name of the member organization. - example: "Acme Corp" - type: string - org_site: - description: The site of the member organization. - example: "us1" - type: string - org_uuid: - description: The UUID of the member organization. - example: "c3d4e5f6-a7b8-9012-cdef-012345678901" - format: uuid - type: string + source: + $ref: "#/components/schemas/ObservabilityPipelineMetricEnrichmentTableLookupSource" required: - - org_name - - org_uuid - - org_site - - created_at - - modified_at + - source type: object - OrgGroupMembershipBulkUpdateAttributes: - description: Attributes for bulk updating org group memberships. + ObservabilityPipelineMetricEnrichmentTableReferenceTable: + description: Uses a Datadog reference table to enrich metrics. properties: - orgs: - description: List of organizations to move. Maximum 100 per request. + app_key_key: + description: |- + The name of the environment variable or secret that holds the Datadog application key used to access the + reference table. + example: DD_APP_KEY + type: string + columns: + description: |- + A list of column names to include from the reference table. If not provided, all columns are included. items: - $ref: "#/components/schemas/GlobalOrgIdentifier" + description: The name of a column to include from the reference table. + type: string + maxItems: 50 type: array + key: + $ref: "#/components/schemas/ObservabilityPipelineMetricEnrichmentTableReferenceKey" + table_id: + description: The unique identifier of the reference table. + example: 550e8400-e29b-41d4-a716-446655440000 + type: string required: - - orgs + - key + - table_id type: object - OrgGroupMembershipBulkUpdateData: - description: Data for bulk updating org group memberships. + ObservabilityPipelineMetricEnrichmentTableReferenceTableProcessor: + description: An `enrichment_table` processor that enriches metrics using a Datadog reference table. properties: - attributes: - $ref: "#/components/schemas/OrgGroupMembershipBulkUpdateAttributes" - relationships: - $ref: "#/components/schemas/OrgGroupMembershipBulkUpdateRelationships" + display_name: + $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" + enabled: + description: Indicates whether the processor is enabled. + example: true + type: boolean + id: + description: |- + The unique identifier for this component. Used in other parts of the pipeline to reference this component + (for example, as the `input` to downstream components). + example: enrichment-table-processor + type: string + include: + description: A Datadog search query used to determine which metrics this processor targets. + example: "*" + type: string + reference_table: + $ref: "#/components/schemas/ObservabilityPipelineMetricEnrichmentTableReferenceTable" type: - $ref: "#/components/schemas/OrgGroupMembershipBulkUpdateType" + $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableProcessorType" required: + - id - type - - attributes - - relationships - type: object - OrgGroupMembershipBulkUpdateRelationships: - description: Relationships for bulk updating memberships. - properties: - source_org_group: - $ref: "#/components/schemas/OrgGroupRelationshipToOne" - target_org_group: - $ref: "#/components/schemas/OrgGroupRelationshipToOne" - required: - - source_org_group - - target_org_group + - include + - reference_table + - enabled type: object - OrgGroupMembershipBulkUpdateRequest: - description: Request to bulk update org group memberships. + ObservabilityPipelineMetricEnrichmentTableTagLookup: + description: Uses a metric tag as the lookup key for enrichment table matching. properties: - data: - $ref: "#/components/schemas/OrgGroupMembershipBulkUpdateData" + name: + description: The Datadog tag key used as the lookup key. + example: service + maxLength: 200 + type: string + type: + $ref: "#/components/schemas/ObservabilityPipelineMetricEnrichmentTableTagLookupType" required: - - data + - type + - name type: object - OrgGroupMembershipBulkUpdateType: - description: Org group membership bulk update resource type. - enum: - - org_group_membership_bulk_updates - example: org_group_membership_bulk_updates + ObservabilityPipelineMetricEnrichmentTableTagLookupType: + default: tag + description: The lookup source type. The value should always be `tag`. + enum: [tag] + example: tag type: string x-enum-varnames: - - ORG_GROUP_MEMBERSHIP_BULK_UPDATES - OrgGroupMembershipData: - description: An org group membership resource. + - TAG + ObservabilityPipelineMetricTagsProcessor: + description: |- + The `metric_tags` processor filters metrics based on their tags using Datadog tag key patterns. + + **Supported pipeline types:** metrics properties: - attributes: - $ref: "#/components/schemas/OrgGroupMembershipAttributes" + display_name: + $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" + enabled: + description: Indicates whether the processor is enabled. + example: true + type: boolean id: - description: The ID of the org group membership. - example: "f1e2d3c4-b5a6-7890-1234-567890abcdef" - format: uuid + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: metric-tags-processor type: string - relationships: - $ref: "#/components/schemas/OrgGroupMembershipRelationships" + include: + description: A Datadog search query that determines which metrics the processor targets. + example: "*" + type: string + rules: + description: A list of rules for filtering metric tags. + items: + $ref: "#/components/schemas/ObservabilityPipelineMetricTagsProcessorRule" + maxItems: 100 + minItems: 1 + type: array type: - $ref: "#/components/schemas/OrgGroupMembershipType" + $ref: "#/components/schemas/ObservabilityPipelineMetricTagsProcessorType" required: - id - type - - attributes + - include + - rules + - enabled type: object - OrgGroupMembershipListResponse: - description: Response containing a list of org group memberships. + x-pipeline-types: [metrics] + ObservabilityPipelineMetricTagsProcessorRule: + description: Defines a rule for filtering metric tags based on key patterns. properties: - data: - description: An array of org group memberships. + action: + $ref: "#/components/schemas/ObservabilityPipelineMetricTagsProcessorRuleAction" + include: + description: A Datadog search query used to determine which metrics this rule targets. + example: "*" + type: string + keys: + description: A list of tag keys to include or exclude. + example: ["env", "service", "version"] items: - $ref: "#/components/schemas/OrgGroupMembershipData" + description: A metric tag key to include or exclude based on the action. + type: string type: array - links: - $ref: "#/components/schemas/OrgGroupPaginationLinks" - meta: - $ref: "#/components/schemas/OrgGroupPaginationMeta" + mode: + $ref: "#/components/schemas/ObservabilityPipelineMetricTagsProcessorRuleMode" required: - - data + - include + - mode + - action + - keys type: object - OrgGroupMembershipRelationships: - description: Relationships of an org group membership. + ObservabilityPipelineMetricTagsProcessorRuleAction: + description: The action to take on tags with matching keys. + enum: [include, exclude] + example: include + type: string + x-enum-varnames: + - INCLUDE + - EXCLUDE + ObservabilityPipelineMetricTagsProcessorRuleMode: + description: The processing mode for tag filtering. + enum: [filter] + example: filter + type: string + x-enum-varnames: + - FILTER + ObservabilityPipelineMetricTagsProcessorType: + default: metric_tags + description: The processor type. The value should always be `metric_tags`. + enum: [metric_tags] + example: metric_tags + type: string + x-enum-varnames: + - METRIC_TAGS + ObservabilityPipelineMetricValue: + description: Specifies how the value of the generated metric is computed. + oneOf: + - $ref: "#/components/schemas/ObservabilityPipelineGeneratedMetricIncrementByOne" + - $ref: "#/components/schemas/ObservabilityPipelineGeneratedMetricIncrementByField" + ObservabilityPipelineMtlsServerTls: + description: Configuration for enabling TLS encryption between the pipeline component and external connecting clients. properties: - org_group: - $ref: "#/components/schemas/OrgGroupRelationshipToOne" + ca_file: + description: Path to the Certificate Authority (CA) file used to validate connecting clients' TLS certificates. + type: string + crt_file: + description: Path to the TLS server certificate file used to used to identify the pipeline component to connecting clients. + example: "/path/to/cert.crt" + type: string + key_file: + description: Path to the private key file associated with the TLS server certificate. + type: string + key_pass_key: + description: Name of the environment variable or secret that holds the passphrase for the private key file. + example: TLS_KEY_PASSPHRASE + type: string + verify_certificate: + description: When `true`, requires client connections to present a valid certificate, enabling mutual TLS authentication. + type: boolean + required: + - crt_file type: object - OrgGroupMembershipResponse: - description: Response containing a single org group membership. + ObservabilityPipelineNewRelicDestination: + description: |- + The `new_relic` destination sends logs to the New Relic platform. + + **Supported pipeline types:** logs properties: - data: - $ref: "#/components/schemas/OrgGroupMembershipData" + account_id_key: + description: Name of the environment variable or secret that holds the New Relic account ID. + example: NEW_RELIC_ACCOUNT_ID + type: string + buffer: + $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" + id: + description: The unique identifier for this component. + example: new-relic-destination + type: string + inputs: + description: A list of component IDs whose output is used as the `input` for this component. + example: ["parse-json-processor"] + items: + description: The ID of a component whose output is used as input for this destination. + type: string + type: array + license_key_key: + description: Name of the environment variable or secret that holds the New Relic license key. + example: NEW_RELIC_LICENSE_KEY + type: string + region: + $ref: "#/components/schemas/ObservabilityPipelineNewRelicDestinationRegion" + type: + $ref: "#/components/schemas/ObservabilityPipelineNewRelicDestinationType" required: - - data + - id + - type + - inputs + - region type: object - OrgGroupMembershipSortOption: - default: uuid - description: Field to sort memberships by. + x-pipeline-types: [logs] + ObservabilityPipelineNewRelicDestinationRegion: + description: The New Relic region. enum: - - name - - -name - - uuid - - -uuid - example: uuid + - us + - eu + example: us type: string x-enum-varnames: - - NAME - - MINUS_NAME - - UUID - - MINUS_UUID - OrgGroupMembershipType: - description: Org group memberships resource type. + - US + - EU + ObservabilityPipelineNewRelicDestinationType: + default: new_relic + description: The destination type. The value should always be `new_relic`. enum: - - org_group_memberships - example: org_group_memberships + - new_relic + example: new_relic type: string x-enum-varnames: - - ORG_GROUP_MEMBERSHIPS - OrgGroupMembershipUpdateData: - description: Data for updating an org group membership. + - NEW_RELIC + ObservabilityPipelineOcsfMapperProcessor: + description: |- + The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration. + + **Supported pipeline types:** logs properties: + display_name: + $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" + enabled: + description: Indicates whether the processor is enabled. + example: true + type: boolean id: - description: The ID of the membership. - example: "f1e2d3c4-b5a6-7890-1234-567890abcdef" - format: uuid + description: The unique identifier for this component. Used to reference this component in other parts of the pipeline. + example: ocsf-mapper-processor type: string - relationships: - $ref: "#/components/schemas/OrgGroupMembershipUpdateRelationships" + include: + description: A Datadog search query used to determine which logs this processor targets. + example: service:my-service + type: string + keep_unmatched: + description: Whether to keep an event that does not match any of the mapping filters. + example: false + type: boolean + mappings: + description: A list of mapping rules to convert events to the OCSF format. + items: + $ref: "#/components/schemas/ObservabilityPipelineOcsfMapperProcessorMapping" + type: array type: - $ref: "#/components/schemas/OrgGroupMembershipType" + $ref: "#/components/schemas/ObservabilityPipelineOcsfMapperProcessorType" required: - id - type - - relationships - type: object - OrgGroupMembershipUpdateRelationships: - description: Relationships for updating a membership. - properties: - org_group: - $ref: "#/components/schemas/OrgGroupRelationshipToOne" - required: - - org_group + - include + - mappings + - enabled type: object - OrgGroupMembershipUpdateRequest: - description: Request to update an org group membership. + x-pipeline-types: [logs] + ObservabilityPipelineOcsfMapperProcessorMapping: + description: Defines how specific events are transformed to OCSF using a mapping configuration. properties: - data: - $ref: "#/components/schemas/OrgGroupMembershipUpdateData" + include: + description: A Datadog search query used to select the logs that this mapping should apply to. + example: service:my-service + type: string + mapping: + $ref: "#/components/schemas/ObservabilityPipelineOcsfMapperProcessorMappingMapping" required: - - data + - include + - mapping type: object - OrgGroupPaginationLinks: - description: Pagination links for navigating between pages of an org group list response. - properties: - first: - description: Link to the first page. - type: string - last: - description: Link to the last page. - type: string - next: - description: Link to the next page. - nullable: true - type: string - prev: - description: Link to the previous page. - nullable: true - type: string - self: - description: Link to the current page. - type: string - type: object - OrgGroupPaginationMeta: - description: Pagination metadata for org group list responses. - properties: - page: - $ref: "#/components/schemas/OrgGroupPaginationMetaPage" - type: object - OrgGroupPaginationMetaPage: - description: Page-based pagination details for org group list responses. + ObservabilityPipelineOcsfMapperProcessorMappingMapping: + description: Defines a single mapping rule for transforming logs into the OCSF schema. + example: CloudTrail Account Change + oneOf: + - $ref: "#/components/schemas/ObservabilityPipelineOcsfMappingLibrary" + - $ref: "#/components/schemas/ObservabilityPipelineOcsfMappingCustom" + ObservabilityPipelineOcsfMapperProcessorType: + default: ocsf_mapper + description: The processor type. The value should always be `ocsf_mapper`. + enum: + - ocsf_mapper + example: ocsf_mapper + type: string + x-enum-varnames: + - OCSF_MAPPER + ObservabilityPipelineOcsfMappingCustom: + description: Custom OCSF mapping configuration for transforming logs. properties: - first_number: - description: First page number. - format: int64 - type: integer - last_number: - description: Last page number. - format: int64 - nullable: true - type: integer - next_number: - description: Next page number. - format: int64 - nullable: true - type: integer - number: - description: Page number. - format: int64 - type: integer - prev_number: - description: Previous page number. - format: int64 - nullable: true - type: integer - size: - description: Page size. - format: int64 - type: integer - total: - description: Total number of results. + mapping: + description: A list of field mapping rules for transforming log fields to OCSF schema fields. + items: + $ref: "#/components/schemas/ObservabilityPipelineOcsfMappingCustomFieldMapping" + type: array + metadata: + $ref: "#/components/schemas/ObservabilityPipelineOcsfMappingCustomMetadata" + version: + description: The version of the custom mapping configuration. + example: 1 format: int64 type: integer - type: - description: Pagination type. - example: "number_size" - type: string + required: + - mapping + - metadata + - version type: object - OrgGroupPolicyAttributes: - description: Attributes of an org group policy. + ObservabilityPipelineOcsfMappingCustomFieldMapping: + description: Defines a single field mapping rule for transforming a source field to an OCSF destination field. properties: - content: - additionalProperties: {} - description: >- - The policy content as key-value pairs. For `org_config` policies, an arbitrary key-value map (for example, `{"value": "UTC"}`). For `role` policies, a `permissions` key containing an array of permission UUIDs (for example, `{"permissions": ["", ...]}`). - example: - value: "UTC" - type: object - enforcement_tier: - $ref: "#/components/schemas/OrgGroupPolicyEnforcementTier" - modified_at: - description: Timestamp when the policy was last modified. - example: "2024-01-15T10:30:00Z" - format: date-time - type: string - policy_name: - description: >- - The name of the policy. This becomes the name of the resource created across orgs in the group (for example, for `role` policies, the name of the created role). - example: "monitor_timezone" + default: + description: The default value to use if the source field is missing or empty. + example: "" + dest: + description: The destination OCSF field path. + example: device.type type: string - policy_type: - $ref: "#/components/schemas/OrgGroupPolicyPolicyType" + lookup: + $ref: "#/components/schemas/ObservabilityPipelineOcsfMappingCustomLookup" + source: + description: The source field path from the log event. + example: host.type + sources: + description: Multiple source field paths for combined mapping. + example: + - field1 + - field2 + value: + description: A static value to use for the destination field. + example: static_value required: - - policy_name - - policy_type - - enforcement_tier - - modified_at + - dest type: object - OrgGroupPolicyConfigAttributes: - description: Attributes of an org group policy config. + ObservabilityPipelineOcsfMappingCustomLookup: + description: Lookup table configuration for mapping source values to destination values. properties: - allowed_values: - description: The allowed values for this config. - example: ["UTC", "US/Eastern", "US/Pacific"] + default: + description: The default value to use if no lookup match is found. + example: unknown + table: + description: A list of lookup table entries for value transformation. items: - description: An allowed value for this config. - type: string + $ref: "#/components/schemas/ObservabilityPipelineOcsfMappingCustomLookupTableEntry" type: array - default_value: - description: The default value for this config. - example: "UTC" - description: - description: The description of the policy config. - example: "The default timezone for monitors." + type: object + ObservabilityPipelineOcsfMappingCustomLookupTableEntry: + description: A single entry in a lookup table for value transformation. + properties: + contains: + description: The substring to match in the source value. + example: Desktop type: string - name: - description: The name of the policy config. - example: "monitor_timezone" + equals: + description: The exact value to match in the source. + example: desktop + equals_source: + description: The source field to match against. + example: device_type type: string - value_type: - description: The type of the value for this config. - example: "string" + matches: + description: A regex pattern to match in the source value. + example: "^Desktop.*" type: string - required: - - name - - description - - value_type - - allowed_values - - default_value - type: object - OrgGroupPolicyConfigData: - description: An org group policy config resource. - properties: - attributes: - $ref: "#/components/schemas/OrgGroupPolicyConfigAttributes" - id: - description: The identifier of the policy config (uses the config name). - example: "monitor_timezone" + not_matches: + description: A regex pattern that must not match the source value. + example: "^Mobile.*" type: string - type: - $ref: "#/components/schemas/OrgGroupPolicyConfigType" - required: - - id - - type - - attributes + value: + description: The value to use when a match is found. + example: desktop type: object - OrgGroupPolicyConfigListResponse: - description: Response containing a list of org group policy configs. + ObservabilityPipelineOcsfMappingCustomMetadata: + description: Metadata for the custom OCSF mapping. properties: - data: - description: An array of org group policy configs. + class: + description: The OCSF event class name. + example: Device Inventory Info + type: string + profiles: + description: A list of OCSF profiles to apply. + example: + - container items: - $ref: "#/components/schemas/OrgGroupPolicyConfigData" + description: The name of an OCSF profile to apply to the event. + type: string type: array + version: + description: The OCSF schema version. + example: "1.3.0" + type: string required: - - data + - class + - version type: object - OrgGroupPolicyConfigType: - description: Org group policy configs resource type. + ObservabilityPipelineOcsfMappingLibrary: + description: Predefined library mappings for common log formats. enum: - - org_group_policy_configs - example: org_group_policy_configs + - CloudTrail Account Change + - GCP Cloud Audit CreateBucket + - GCP Cloud Audit CreateSink + - GCP Cloud Audit SetIamPolicy + - GCP Cloud Audit UpdateSink + - Github Audit Log API Activity + - Google Workspace Admin Audit addPrivilege + - Microsoft 365 Defender Incident + - Microsoft 365 Defender UserLoggedIn + - Okta System Log Authentication + - Palo Alto Networks Firewall Traffic + example: CloudTrail Account Change type: string x-enum-varnames: - - ORG_GROUP_POLICY_CONFIGS - OrgGroupPolicyCreateAttributes: - description: >- - Attributes for creating an org group policy. If `policy_type` is not provided, it defaults to `org_config`. `enforcement_tier` is optional; if not provided, the resulting value depends on `policy_type` and is otherwise unspecified. + - CLOUDTRAIL_ACCOUNT_CHANGE + - GCP_CLOUD_AUDIT_CREATEBUCKET + - GCP_CLOUD_AUDIT_CREATESINK + - GCP_CLOUD_AUDIT_SETIAMPOLICY + - GCP_CLOUD_AUDIT_UPDATESINK + - GITHUB_AUDIT_LOG_API_ACTIVITY + - GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE + - MICROSOFT_365_DEFENDER_INCIDENT + - MICROSOFT_365_DEFENDER_USERLOGGEDIN + - OKTA_SYSTEM_LOG_AUTHENTICATION + - PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC + ObservabilityPipelineOpenSearchDestination: + description: |- + The `opensearch` destination writes logs to an OpenSearch cluster. + + **Supported pipeline types:** logs properties: - content: - additionalProperties: {} - description: >- - The policy content as key-value pairs. For `org_config` policies, an arbitrary key-value map (for example, `{"value": "UTC"}`). For `role` policies, a `permissions` key containing an array of permission UUIDs (for example, `{"permissions": ["", ...]}`). - example: - value: "UTC" - type: object - enforcement_tier: - $ref: "#/components/schemas/OrgGroupPolicyEnforcementTier" - policy_name: - description: >- - The name of the policy. This becomes the name of the resource created across orgs in the group (for example, for `role` policies, the name of the created role). - example: "monitor_timezone" + auth: + $ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestinationAuth" + buffer: + $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" + bulk_index: + description: The index to write logs to. + example: logs-index type: string - policy_type: - $ref: "#/components/schemas/OrgGroupPolicyPolicyType" - required: - - policy_name - - content - type: object - OrgGroupPolicyCreateData: - description: Data for creating an org group policy. - properties: - attributes: - $ref: "#/components/schemas/OrgGroupPolicyCreateAttributes" - relationships: - $ref: "#/components/schemas/OrgGroupPolicyCreateRelationships" + data_stream: + $ref: "#/components/schemas/ObservabilityPipelineOpenSearchDestinationDataStream" + endpoint_url_key: + description: Name of the environment variable or secret that holds the OpenSearch endpoint URL. + example: OPENSEARCH_ENDPOINT_URL + type: string + id: + description: The unique identifier for this component. + example: "opensearch-destination" + type: string + inputs: + description: A list of component IDs whose output is used as the `input` for this component. + example: ["filter-processor"] + items: + description: The ID of a component whose output is used as input for this destination. + type: string + type: array type: - $ref: "#/components/schemas/OrgGroupPolicyType" + $ref: "#/components/schemas/ObservabilityPipelineOpenSearchDestinationType" required: + - id - type - - attributes - - relationships - type: object - OrgGroupPolicyCreateRelationships: - description: Relationships for creating a policy. - properties: - org_group: - $ref: "#/components/schemas/OrgGroupRelationshipToOne" - required: - - org_group + - inputs type: object - OrgGroupPolicyCreateRequest: - description: Request to create an org group policy. + x-pipeline-types: [logs] + ObservabilityPipelineOpenSearchDestinationDataStream: + description: Configuration options for writing to OpenSearch Data Streams instead of a fixed index. properties: - data: - $ref: "#/components/schemas/OrgGroupPolicyCreateData" - required: - - data + dataset: + description: The data stream dataset for your logs. This groups logs by their source or application. + type: string + dtype: + description: The data stream type for your logs. This determines how logs are categorized within the data stream. + type: string + namespace: + description: The data stream namespace for your logs. This separates logs into different environments or domains. + type: string type: object - OrgGroupPolicyData: - description: An org group policy resource. + ObservabilityPipelineOpenSearchDestinationType: + default: opensearch + description: The destination type. The value should always be `opensearch`. + enum: + - opensearch + example: opensearch + type: string + x-enum-varnames: + - OPENSEARCH + ObservabilityPipelineOpentelemetryMetricsDestination: + description: |- + The `opentelemetry` destination forwards metrics using the OpenTelemetry Protocol (OTLP) over HTTP. + + **Supported pipeline types:** metrics properties: - attributes: - $ref: "#/components/schemas/OrgGroupPolicyAttributes" + buffer: + $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" + http_client_uri_key: + default: DESTINATION_OTEL_HTTP_CLIENT_URI + description: Environment variable name containing the URI of the OTLP HTTP endpoint to send metrics to. + example: DESTINATION_OTEL_HTTP_CLIENT_URI + type: string id: - description: The ID of the org group policy. - example: "1a2b3c4d-5e6f-7890-abcd-ef0123456789" - format: uuid + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: opentelemetry-metrics-destination type: string - relationships: - $ref: "#/components/schemas/OrgGroupPolicyRelationships" + inputs: + description: A list of component IDs whose output is used as the `input` for this component. + example: ["metrics-filter-processor"] + items: + description: The ID of a component whose output is used as input for this destination. + type: string + type: array + tls: + $ref: "#/components/schemas/ObservabilityPipelineTls" type: - $ref: "#/components/schemas/OrgGroupPolicyType" + $ref: "#/components/schemas/ObservabilityPipelineOpentelemetryMetricsDestinationType" required: - id - type - - attributes + - inputs type: object - OrgGroupPolicyEnforcementTier: - description: >- - The enforcement tier of the policy. `OVERRIDE_ALLOWED` means the policy is set but member orgs may mutate it. `GROUP_MANAGED` means the policy is strictly controlled and mutations are blocked for affected orgs. `DELEGATE` means each member org controls its own value. `role` policies only support `GROUP_MANAGED` and `DELEGATE` — `OVERRIDE_ALLOWED` is rejected for this policy type. Transitioning a `role` policy to `DELEGATE` (disabling it) is one-way — the policy cannot be transitioned back to `GROUP_MANAGED` afterward. - enum: - - OVERRIDE_ALLOWED - - GROUP_MANAGED - - DELEGATE - example: OVERRIDE_ALLOWED - type: string - x-enum-varnames: - - OVERRIDE_ALLOWED - - GROUP_MANAGED - - DELEGATE - OrgGroupPolicyFilterPolicyTypeValue: - description: >- - The type of the policy to filter by. `org_config` indicates a policy backed by an organization configuration setting. `role` indicates a policy backed by a Datadog custom role. + x-pipeline-types: [metrics] + ObservabilityPipelineOpentelemetryMetricsDestinationType: + default: opentelemetry + description: The destination type. Always `opentelemetry`. enum: - - org_config - - role - example: org_config + - opentelemetry + example: opentelemetry type: string x-enum-varnames: - - ORG_CONFIG - - ROLE - OrgGroupPolicyListResponse: - description: Response containing a list of org group policies. - properties: - data: - description: An array of org group policies. - items: - $ref: "#/components/schemas/OrgGroupPolicyData" - type: array - links: - $ref: "#/components/schemas/OrgGroupPaginationLinks" - meta: - $ref: "#/components/schemas/OrgGroupPaginationMeta" - required: - - data - type: object - OrgGroupPolicyOverrideAttributes: - description: Attributes of an org group policy override. + - OPENTELEMETRY + ObservabilityPipelineOpentelemetrySource: + description: |- + The `opentelemetry` source receives telemetry data using the OpenTelemetry Protocol (OTLP) over gRPC and HTTP. + + **Supported pipeline types:** logs, metrics properties: - content: - additionalProperties: {} - description: The override content as key-value pairs. - type: object - created_at: - description: Timestamp when the override was created. - example: "2024-01-15T10:30:00Z" - format: date-time - type: string - modified_at: - description: Timestamp when the override was last modified. - example: "2024-01-15T10:30:00Z" - format: date-time - type: string - org_site: - description: The site of the organization that has the override. - example: "us1" - type: string - org_uuid: - description: The UUID of the organization that has the override. - example: "c3d4e5f6-a7b8-9012-cdef-012345678901" - format: uuid + grpc_address_key: + description: Environment variable name containing the gRPC server address for receiving OTLP data. Must be a valid environment variable name (alphanumeric characters and underscores only). + example: OTEL_GRPC_ADDRESS type: string - required: - - org_uuid - - org_site - - created_at - - modified_at - type: object - OrgGroupPolicyOverrideCreateAttributes: - description: Attributes for creating a policy override. - properties: - org_site: - description: The site of the organization. - example: "us1" + http_address_key: + description: Environment variable name containing the HTTP server address for receiving OTLP data. Must be a valid environment variable name (alphanumeric characters and underscores only). + example: OTEL_HTTP_ADDRESS type: string - org_uuid: - description: The UUID of the organization to grant the override. - example: "c3d4e5f6-a7b8-9012-cdef-012345678901" - format: uuid + id: + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: opentelemetry-source type: string - required: - - org_uuid - - org_site - type: object - OrgGroupPolicyOverrideCreateData: - description: Data for creating an org group policy override. - properties: - attributes: - $ref: "#/components/schemas/OrgGroupPolicyOverrideCreateAttributes" - relationships: - $ref: "#/components/schemas/OrgGroupPolicyOverrideCreateRelationships" + tls: + $ref: "#/components/schemas/ObservabilityPipelineMtlsServerTls" type: - $ref: "#/components/schemas/OrgGroupPolicyOverrideType" + $ref: "#/components/schemas/ObservabilityPipelineOpentelemetrySourceType" required: + - id - type - - attributes - - relationships - type: object - OrgGroupPolicyOverrideCreateRelationships: - description: Relationships for creating a policy override. - properties: - org_group: - $ref: "#/components/schemas/OrgGroupRelationshipToOne" - org_group_policy: - $ref: "#/components/schemas/OrgGroupPolicyRelationshipToOne" - required: - - org_group - - org_group_policy - type: object - OrgGroupPolicyOverrideCreateRequest: - description: Request to create an org group policy override. - properties: - data: - $ref: "#/components/schemas/OrgGroupPolicyOverrideCreateData" - required: - - data type: object - OrgGroupPolicyOverrideData: - description: An org group policy override resource. + x-pipeline-types: [logs, metrics] + ObservabilityPipelineOpentelemetrySourceType: + default: opentelemetry + description: The source type. The value should always be `opentelemetry`. + enum: [opentelemetry] + example: opentelemetry + type: string + x-enum-varnames: + - OPENTELEMETRY + ObservabilityPipelineParseGrokProcessor: + description: |- + The `parse_grok` processor extracts structured fields from unstructured log messages using Grok patterns. + + **Supported pipeline types:** logs + example: + id: "parse-grok-processor" + include: "service:my-service" + type: "parse_grok" properties: - attributes: - $ref: "#/components/schemas/OrgGroupPolicyOverrideAttributes" + disable_library_rules: + default: false + description: If set to `true`, disables the default Grok rules provided by Datadog. + example: true + type: boolean + display_name: + $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" + enabled: + description: Indicates whether the processor is enabled. + example: true + type: boolean + field: + default: "message" + description: The log field to parse with the Grok rules. + example: "message" + type: string id: - description: The ID of the policy override. - example: "9f8e7d6c-5b4a-3210-fedc-ba0987654321" - format: uuid + description: A unique identifier for this processor. + example: "parse-grok-processor" type: string - relationships: - $ref: "#/components/schemas/OrgGroupPolicyOverrideRelationships" + include: + description: A Datadog search query used to determine which logs this processor targets. + example: "service:my-service" + type: string + rules: + description: The list of Grok parsing rules selected by either source field or include query. + items: + $ref: "#/components/schemas/ObservabilityPipelineParseGrokProcessorRuleItem" + type: array type: - $ref: "#/components/schemas/OrgGroupPolicyOverrideType" + $ref: "#/components/schemas/ObservabilityPipelineParseGrokProcessorType" required: - id - type - - attributes + - include + - rules + - enabled type: object - OrgGroupPolicyOverrideListResponse: - description: Response containing a list of org group policy overrides. + x-pipeline-types: [logs] + ObservabilityPipelineParseGrokProcessorIncludeRule: + description: |- + A Grok parsing rule selected using the `include` query. Each rule defines how to extract structured fields + from logs matching a Datadog search query. properties: - data: - description: An array of org group policy overrides. + include: + description: A Datadog search query used to determine which logs this Grok rule targets. + example: "service:my-service" + type: string + match_rules: + description: |- + A list of Grok parsing rules that define how to extract fields from matching logs. + Each rule must contain a name and a valid Grok pattern. + example: + - name: "MyParsingRule" + rule: '%{word:user} connected on %{date("MM/dd/yyyy"):date}' items: - $ref: "#/components/schemas/OrgGroupPolicyOverrideData" + $ref: "#/components/schemas/ObservabilityPipelineParseGrokProcessorRuleMatchRule" + type: array + support_rules: + description: A list of Grok helper rules that can be referenced by the parsing rules. + example: + - name: "user" + rule: "%{word:user.name}" + items: + $ref: "#/components/schemas/ObservabilityPipelineParseGrokProcessorRuleSupportRule" type: array - links: - $ref: "#/components/schemas/OrgGroupPaginationLinks" - meta: - $ref: "#/components/schemas/OrgGroupPaginationMeta" required: - - data + - include + - match_rules type: object - OrgGroupPolicyOverrideRelationships: - description: Relationships of an org group policy override. + ObservabilityPipelineParseGrokProcessorRule: + description: |- + A Grok parsing rule used in the `parse_grok` processor. Each rule defines how to extract structured fields + from a specific log field using Grok patterns. properties: - org_group: - $ref: "#/components/schemas/OrgGroupRelationshipToOne" - org_group_policy: - $ref: "#/components/schemas/OrgGroupPolicyRelationshipToOne" + match_rules: + description: |- + A list of Grok parsing rules that define how to extract fields from the source field. + Each rule must contain a name and a valid Grok pattern. + example: + - name: "MyParsingRule" + rule: '%{word:user} connected on %{date("MM/dd/yyyy"):date}' + items: + $ref: "#/components/schemas/ObservabilityPipelineParseGrokProcessorRuleMatchRule" + type: array + source: + description: The value of the source field in log events to be processed by the Grok rules. + example: "message" + type: string + support_rules: + description: |- + A list of Grok helper rules that can be referenced by the parsing rules. + example: + - name: "user" + rule: "%{word:user.name}" + items: + $ref: "#/components/schemas/ObservabilityPipelineParseGrokProcessorRuleSupportRule" + type: array + required: + - source + - match_rules type: object - OrgGroupPolicyOverrideResponse: - description: Response containing a single org group policy override. + ObservabilityPipelineParseGrokProcessorRuleItem: + description: A single Grok parsing rule, selected by either source field or include query. + oneOf: + - $ref: "#/components/schemas/ObservabilityPipelineParseGrokProcessorRule" + - $ref: "#/components/schemas/ObservabilityPipelineParseGrokProcessorIncludeRule" + ObservabilityPipelineParseGrokProcessorRuleMatchRule: + description: |- + Defines a Grok parsing rule, which extracts structured fields from log content using named Grok patterns. + Each rule must have a unique name and a valid Datadog Grok pattern that will be applied to the source field. properties: - data: - $ref: "#/components/schemas/OrgGroupPolicyOverrideData" + name: + description: The name of the rule. + example: "MyParsingRule" + type: string + rule: + description: The definition of the Grok rule. + example: '%{word:user} connected on %{date("MM/dd/yyyy"):date}' + type: string required: - - data + - name + - rule type: object - OrgGroupPolicyOverrideSortOption: - default: id - description: Field to sort overrides by. - enum: - - id - - -id - - org_uuid - - -org_uuid - example: id - type: string - x-enum-varnames: - - ID - - MINUS_ID - - ORG_UUID - - MINUS_ORG_UUID - OrgGroupPolicyOverrideType: - description: Org group policy overrides resource type. - enum: - - org_group_policy_overrides - example: org_group_policy_overrides - type: string - x-enum-varnames: - - ORG_GROUP_POLICY_OVERRIDES - OrgGroupPolicyOverrideUpdateAttributes: - description: >- - Attributes for updating a policy override. The `org_uuid` and `org_site` fields must match the existing override and cannot be changed. + ObservabilityPipelineParseGrokProcessorRuleSupportRule: + description: The Grok helper rule referenced in the parsing rules. properties: - org_site: - description: The site of the organization. - example: "us1" + name: + description: The name of the Grok helper rule. + example: "user" type: string - org_uuid: - description: The UUID of the organization. - example: "c3d4e5f6-a7b8-9012-cdef-012345678901" - format: uuid + rule: + description: The definition of the Grok helper rule. + example: " %{word:user.name}" type: string required: - - org_uuid - - org_site + - name + - rule type: object - OrgGroupPolicyOverrideUpdateData: - description: Data for updating a policy override. + ObservabilityPipelineParseGrokProcessorType: + default: parse_grok + description: The processor type. The value should always be `parse_grok`. + enum: [parse_grok] + example: parse_grok + type: string + x-enum-varnames: + - PARSE_GROK + ObservabilityPipelineParseJSONProcessor: + description: |- + The `parse_json` processor extracts JSON from a specified field and flattens it into the event. This is useful when logs contain embedded JSON as a string. + + **Supported pipeline types:** logs properties: - attributes: - $ref: "#/components/schemas/OrgGroupPolicyOverrideUpdateAttributes" + display_name: + $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" + enabled: + description: Indicates whether the processor is enabled. + example: true + type: boolean + field: + description: The name of the log field that contains a JSON string. + example: "message" + type: string id: - description: The ID of the policy override. - example: "9f8e7d6c-5b4a-3210-fedc-ba0987654321" - format: uuid + description: A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components). + example: "parse-json-processor" + type: string + include: + description: A Datadog search query used to determine which logs this processor targets. + example: "service:my-service" type: string type: - $ref: "#/components/schemas/OrgGroupPolicyOverrideType" + $ref: "#/components/schemas/ObservabilityPipelineParseJSONProcessorType" required: - id - type - - attributes - type: object - OrgGroupPolicyOverrideUpdateRequest: - description: Request to update an org group policy override. - properties: - data: - $ref: "#/components/schemas/OrgGroupPolicyOverrideUpdateData" - required: - - data + - include + - field + - enabled type: object - OrgGroupPolicyPolicyType: - default: org_config - description: >- - The type of the policy. `org_config` indicates a policy backed by an organization configuration setting. `role` indicates a policy backed by a Datadog custom role. + x-pipeline-types: [logs] + ObservabilityPipelineParseJSONProcessorType: + default: parse_json + description: The processor type. The value should always be `parse_json`. enum: - - org_config - - role - example: org_config + - parse_json + example: parse_json type: string x-enum-varnames: - - ORG_CONFIG - - ROLE - OrgGroupPolicyRelationshipToOne: - description: Relationship to a single org group policy. - properties: - data: - $ref: "#/components/schemas/OrgGroupPolicyRelationshipToOneData" - required: - - data - type: object - OrgGroupPolicyRelationshipToOneData: - description: A reference to an org group policy. + - PARSE_JSON + ObservabilityPipelineParseXMLProcessor: + description: |- + The `parse_xml` processor parses XML from a specified field and extracts it into the event. + + **Supported pipeline types:** logs properties: + always_use_text_key: + description: Whether to always use a text key for element content. + type: boolean + attr_prefix: + description: The prefix to use for XML attributes in the parsed output. + type: string + display_name: + $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" + enabled: + description: Indicates whether the processor is enabled. + example: true + type: boolean + field: + description: The name of the log field that contains an XML string. + example: "message" + type: string id: - description: The ID of the policy. - example: "1a2b3c4d-5e6f-7890-abcd-ef0123456789" - format: uuid + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: parse-xml-processor + type: string + include: + description: A Datadog search query used to determine which logs this processor targets. + example: "service:my-service" + type: string + include_attr: + description: Whether to include XML attributes in the parsed output. + type: boolean + parse_bool: + description: Whether to parse boolean values from strings. + type: boolean + parse_null: + description: Whether to parse null values. + type: boolean + parse_number: + description: Whether to parse numeric values from strings. + type: boolean + text_key: + description: The key name to use for text content within XML elements. Must be at least 1 character if specified. + minLength: 1 type: string type: - $ref: "#/components/schemas/OrgGroupPolicyType" + $ref: "#/components/schemas/ObservabilityPipelineParseXMLProcessorType" required: - id - type + - include + - field + - enabled type: object - OrgGroupPolicyRelationships: - description: Relationships of an org group policy. - properties: - org_group: - $ref: "#/components/schemas/OrgGroupRelationshipToOne" - type: object - OrgGroupPolicyResponse: - description: Response containing a single org group policy. - properties: - data: - $ref: "#/components/schemas/OrgGroupPolicyData" - required: - - data - type: object - OrgGroupPolicySortOption: - default: id - description: Field to sort policies by. + x-pipeline-types: [logs] + ObservabilityPipelineParseXMLProcessorType: + default: parse_xml + description: The processor type. The value should always be `parse_xml`. enum: - - id - - -id - - name - - -name - example: id + - parse_xml + example: parse_xml type: string x-enum-varnames: - - ID - - MINUS_ID - - NAME - - MINUS_NAME - OrgGroupPolicySuggestionAttributes: - description: Attributes of an org group policy suggestion. + - PARSE_XML + ObservabilityPipelinePrometheusRemoteWriteDestination: + description: |- + The `prometheus_remote_write` destination forwards metrics to an endpoint that supports the Prometheus Remote Write protocol. + + **Supported pipeline types:** metrics properties: - consensus_ratio: - description: The ratio of member orgs whose configuration agrees on the recommended value. - example: 0.75 - format: double - maximum: 1 - minimum: 0 - type: number - policy_name: - description: The name of the suggested policy. - example: "monitor_timezone" + auth_strategy: + $ref: "#/components/schemas/ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategy" + buffer: + $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" + default_namespace: + description: The default namespace to add as a prefix to metric names that do not already have one. + example: datadog + type: string + endpoint_url_key: + description: |- + Name of the environment variable or secret that holds the Prometheus Remote Write endpoint URL. + Defaults to `DESTINATION_PROMETHEUS_REMOTE_WRITE_ENDPOINT_URL` (prefixed with `DD_OP_` at runtime). + example: PROMETHEUS_REMOTE_WRITE_ENDPOINT_URL type: string - recommended_value: - description: The recommended value for the policy, based on member org consensus. - example: "UTC" - status: - $ref: "#/components/schemas/OrgGroupPolicySuggestionStatus" - required: - - policy_name - - status - - consensus_ratio - - recommended_value - type: object - OrgGroupPolicySuggestionData: - description: An org group policy suggestion resource. - properties: - attributes: - $ref: "#/components/schemas/OrgGroupPolicySuggestionAttributes" id: - description: The ID of the org group policy suggestion. - example: "1a2b3c4d-5e6f-7890-abcd-ef0123456789" + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: prometheus-remote-write-destination + type: string + inputs: + description: A list of component IDs whose output is used as the `input` for this component. + example: ["metrics-filter-processor"] + items: + description: The ID of a component whose output is used as input for this destination. + type: string + type: array + password_key: + description: Name of the environment variable or secret that holds the password (used when `auth_strategy` is `basic`). + example: PROMETHEUS_REMOTE_WRITE_PASSWORD + type: string + tenant_id: + description: The tenant ID to include with outgoing requests. Used by multi-tenant Prometheus Remote Write receivers. + example: my-tenant + type: string + tls: + $ref: "#/components/schemas/ObservabilityPipelineClientTls" + token_key: + description: Name of the environment variable or secret that holds the bearer token (used when `auth_strategy` is `bearer`). + example: PROMETHEUS_REMOTE_WRITE_TOKEN type: string - relationships: - $ref: "#/components/schemas/OrgGroupPolicySuggestionRelationships" type: - $ref: "#/components/schemas/OrgGroupPolicySuggestionType" + $ref: "#/components/schemas/ObservabilityPipelinePrometheusRemoteWriteDestinationType" + username_key: + description: Name of the environment variable or secret that holds the username (used when `auth_strategy` is `basic`). + example: PROMETHEUS_REMOTE_WRITE_USERNAME + type: string required: - id - type - - attributes - type: object - OrgGroupPolicySuggestionListResponse: - description: Response containing a list of org group policy suggestions. - properties: - data: - description: An array of org group policy suggestions. - items: - $ref: "#/components/schemas/OrgGroupPolicySuggestionData" - type: array - required: - - data - type: object - OrgGroupPolicySuggestionRelationships: - description: Relationships of an org group policy suggestion. - properties: - org_group: - $ref: "#/components/schemas/OrgGroupRelationshipToOne" + - inputs type: object - OrgGroupPolicySuggestionStatus: - description: The status of the policy suggestion. - enum: - - pending - - accepted - - dismissed - example: pending - type: string - x-enum-varnames: - - PENDING - - ACCEPTED - - DISMISSED - OrgGroupPolicySuggestionType: - description: Org group policy suggestions resource type. + x-pipeline-types: [metrics] + ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategy: + description: The authentication strategy to use for outgoing Prometheus Remote Write requests. enum: - - org_group_policy_suggestions - example: org_group_policy_suggestions + - none + - basic + - bearer + example: basic type: string x-enum-varnames: - - ORG_GROUP_POLICY_SUGGESTIONS - OrgGroupPolicyType: - description: Org group policies resource type. + - NONE + - BASIC + - BEARER + ObservabilityPipelinePrometheusRemoteWriteDestinationType: + default: prometheus_remote_write + description: The destination type. The value should always be `prometheus_remote_write`. enum: - - org_group_policies - example: org_group_policies + - prometheus_remote_write + example: prometheus_remote_write type: string x-enum-varnames: - - ORG_GROUP_POLICIES - OrgGroupPolicyUpdateAttributes: - description: >- - Attributes for updating an org group policy. `policy_name`, `content`, and `enforcement_tier` may be omitted individually to leave them unchanged. + - PROMETHEUS_REMOTE_WRITE + ObservabilityPipelinePrometheusRemoteWriteSource: + description: |- + The `prometheus_remote_write` source ingests metrics pushed over the Prometheus Remote Write protocol. + + **Supported pipeline types:** metrics properties: - content: - additionalProperties: {} - description: >- - The policy content as key-value pairs. For `org_config` policies, an arbitrary key-value map (for example, `{"value": "UTC"}`). For `role` policies, a `permissions` key containing an array of permission UUIDs (for example, `{"permissions": ["", ...]}`). - example: - value: "UTC" - type: object - enforcement_tier: - $ref: "#/components/schemas/OrgGroupPolicyEnforcementTier" - policy_name: - description: >- - The name of the policy. This becomes the name of the resource created across orgs in the group (for example, for `role` policies, the name of the created role). Omit to leave unchanged. - example: "monitor_timezone" + address_key: + description: Name of the environment variable or secret that holds the listen address for the Prometheus Remote Write endpoint. + example: PROMETHEUS_REMOTE_WRITE_ADDRESS type: string - type: object - OrgGroupPolicyUpdateData: - description: Data for updating an org group policy. - properties: - attributes: - $ref: "#/components/schemas/OrgGroupPolicyUpdateAttributes" + auth_strategy: + $ref: "#/components/schemas/ObservabilityPipelinePrometheusRemoteWriteSourceAuthStrategy" id: - description: The ID of the policy. - example: "1a2b3c4d-5e6f-7890-abcd-ef0123456789" - format: uuid + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: prometheus-remote-write-source + type: string + password_key: + description: Name of the environment variable or secret that holds the password (used when `auth_strategy` is `plain`). + example: PROMETHEUS_REMOTE_WRITE_PASSWORD + type: string + path: + description: The HTTP path on which the source listens for incoming Prometheus Remote Write requests. + example: "/api/v1/write" type: string + tls: + $ref: "#/components/schemas/ObservabilityPipelineMtlsServerTls" type: - $ref: "#/components/schemas/OrgGroupPolicyType" + $ref: "#/components/schemas/ObservabilityPipelinePrometheusRemoteWriteSourceType" + username_key: + description: Name of the environment variable or secret that holds the username (used when `auth_strategy` is `plain`). + example: PROMETHEUS_REMOTE_WRITE_USERNAME + type: string + valid_tokens: + description: |- + A list of tokens that are accepted for authenticating incoming requests. When set, + the source rejects any request whose token does not match an enabled entry in this list. + items: + $ref: "#/components/schemas/ObservabilityPipelinePrometheusRemoteWriteSourceValidToken" + type: array required: - id - type - - attributes - type: object - OrgGroupPolicyUpdateRequest: - description: Request to update an org group policy. - properties: - data: - $ref: "#/components/schemas/OrgGroupPolicyUpdateData" - required: - - data + - auth_strategy + - path type: object - OrgGroupRelationshipToOne: - description: Relationship to a single org group. + x-pipeline-types: [metrics] + ObservabilityPipelinePrometheusRemoteWriteSourceAuthStrategy: + description: HTTP authentication method. + enum: + - none + - plain + example: plain + type: string + x-enum-varnames: + - NONE + - PLAIN + ObservabilityPipelinePrometheusRemoteWriteSourceType: + default: prometheus_remote_write + description: The source type. The value should always be `prometheus_remote_write`. + enum: [prometheus_remote_write] + example: prometheus_remote_write + type: string + x-enum-varnames: + - PROMETHEUS_REMOTE_WRITE + ObservabilityPipelinePrometheusRemoteWriteSourceValidToken: + description: An accepted token used to authenticate incoming Prometheus Remote Write requests. properties: - data: - $ref: "#/components/schemas/OrgGroupRelationshipToOneData" + enabled: + default: true + description: |- + Indicates whether this token is currently accepted. Disabled tokens are rejected without + being removed from the configuration. + example: true + type: boolean + path_to_token: + $ref: "#/components/schemas/ObservabilityPipelineHttpServerSourceValidTokenPathToToken" + token_key: + description: Name of the environment variable or secret that holds the expected token value. + example: PROMETHEUS_REMOTE_WRITE_TOKEN + pattern: "^[A-Za-z0-9_]+$" + type: string required: - - data + - token_key type: object - OrgGroupRelationshipToOneData: - description: A reference to an org group. + ObservabilityPipelineQuotaProcessor: + description: |- + The `quota` processor measures logging traffic for logs that match a specified filter. When the configured daily quota is met, the processor can drop or alert. + + **Supported pipeline types:** logs properties: + display_name: + $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" + drop_events: + description: |- + If set to `true`, logs that match the quota filter and are sent after the quota is exceeded are dropped. Logs that do not match the filter continue through the pipeline. **Note**: You can set either `drop_events` or `overflow_action`, but not both. + example: false + type: boolean + enabled: + description: Indicates whether the processor is enabled. + example: true + type: boolean id: - description: The ID of the org group. - example: "a1b2c3d4-e5f6-7890-abcd-ef0123456789" - format: uuid + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: "quota-processor" + type: string + ignore_when_missing_partitions: + description: If `true`, the processor skips quota checks when partition fields are missing from the logs. + type: boolean + include: + description: A Datadog search query used to determine which logs this processor targets. + example: "service:my-service" + type: string + limit: + $ref: "#/components/schemas/ObservabilityPipelineQuotaProcessorLimit" + name: + description: Name of the quota. + example: MyQuota type: string + overflow_action: + $ref: "#/components/schemas/ObservabilityPipelineQuotaProcessorOverflowAction" + overrides: + description: A list of alternate quota rules that apply to specific sets of events, identified by matching field values. Each override can define a custom limit. + items: + $ref: "#/components/schemas/ObservabilityPipelineQuotaProcessorOverride" + type: array + partition_fields: + description: A list of fields used to segment log traffic for quota enforcement. Quotas are tracked independently by unique combinations of these field values. + items: + description: The name of a log field used to partition quota enforcement. + type: string + type: array + too_many_buckets_action: + $ref: "#/components/schemas/ObservabilityPipelineQuotaProcessorOverflowAction" type: - $ref: "#/components/schemas/OrgGroupType" + $ref: "#/components/schemas/ObservabilityPipelineQuotaProcessorType" required: - id - type + - include + - name + - limit + - enabled type: object - OrgGroupResponse: - description: Response containing a single org group. + x-pipeline-types: [logs] + ObservabilityPipelineQuotaProcessorLimit: + description: The maximum amount of data or number of events allowed before the quota is enforced. Can be specified in bytes or events. properties: - data: - $ref: "#/components/schemas/OrgGroupData" + enforce: + $ref: "#/components/schemas/ObservabilityPipelineQuotaProcessorLimitEnforceType" + limit: + description: The limit for quota enforcement. + example: 1000 + format: int64 + type: integer required: - - data + - enforce + - limit type: object - OrgGroupSortOption: - default: uuid - description: Field to sort org groups by. + ObservabilityPipelineQuotaProcessorLimitEnforceType: + description: Unit for quota enforcement in bytes for data size or events for count. enum: - - name - - -name - - uuid - - -uuid - example: name + - bytes + - events + example: bytes type: string x-enum-varnames: - - NAME - - MINUS_NAME - - UUID - - MINUS_UUID - OrgGroupType: - description: Org groups resource type. + - BYTES + - EVENTS + ObservabilityPipelineQuotaProcessorOverflowAction: + description: |- + The action to take when the quota or bucket limit is exceeded. Options: + - `drop`: Drop the event. + - `no_action`: Let the event pass through. + - `overflow_routing`: Route to an overflow destination. + + When `overflow_routing` is used, there must be a destination whose `inputs` reference this processor with the `.overflow_events` suffix to route the overflowing events. Only the following destination types support overflow inputs: `amazon_s3_generic`, `amazon_s3`, `google_cloud_storage`, and `azure_storage`. enum: - - org_groups - example: org_groups + - drop + - no_action + - overflow_routing + example: drop type: string x-enum-varnames: - - ORG_GROUPS - OrgGroupUpdateAttributes: - description: Attributes for updating an org group. + - DROP + - NO_ACTION + - OVERFLOW_ROUTING + ObservabilityPipelineQuotaProcessorOverride: + description: Defines a custom quota limit that applies to specific log events based on matching field values. properties: - name: - description: The name of the org group. - example: "Updated Org Group Name" - type: string + fields: + description: A list of field matchers used to apply a specific override. If an event matches all listed key-value pairs, the corresponding override limit is enforced. + items: + $ref: "#/components/schemas/ObservabilityPipelineFieldValue" + type: array + limit: + $ref: "#/components/schemas/ObservabilityPipelineQuotaProcessorLimit" required: - - name + - fields + - limit type: object - OrgGroupUpdateData: - description: Data for updating an org group. + ObservabilityPipelineQuotaProcessorType: + default: quota + description: The processor type. The value should always be `quota`. + enum: + - quota + example: quota + type: string + x-enum-varnames: + - QUOTA + ObservabilityPipelineReduceProcessor: + description: |- + The `reduce` processor aggregates and merges logs based on matching keys and merge strategies. + + **Supported pipeline types:** logs properties: - attributes: - $ref: "#/components/schemas/OrgGroupUpdateAttributes" + display_name: + $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" + enabled: + description: Indicates whether the processor is enabled. + example: true + type: boolean + group_by: + description: A list of fields used to group log events for merging. + example: ["log.user.id", "log.device.id"] + items: + description: A log field path used to group events for aggregation. + type: string + type: array id: - description: The ID of the org group. - example: "a1b2c3d4-e5f6-7890-abcd-ef0123456789" - format: uuid + description: The unique identifier for this processor. + example: reduce-processor + type: string + include: + description: A Datadog search query used to determine which logs this processor targets. + example: env:prod type: string + merge_strategies: + description: List of merge strategies defining how values from grouped events should be combined. + items: + $ref: "#/components/schemas/ObservabilityPipelineReduceProcessorMergeStrategy" + type: array type: - $ref: "#/components/schemas/OrgGroupType" + $ref: "#/components/schemas/ObservabilityPipelineReduceProcessorType" required: - id - type - - attributes + - include + - group_by + - merge_strategies + - enabled type: object - OrgGroupUpdateRequest: - description: Request to update an org group. + x-pipeline-types: [logs] + ObservabilityPipelineReduceProcessorMergeStrategy: + description: Defines how a specific field should be merged across grouped events. properties: - data: - $ref: "#/components/schemas/OrgGroupUpdateData" + path: + description: The field path in the log event. + example: log.user.roles + type: string + strategy: + $ref: "#/components/schemas/ObservabilityPipelineReduceProcessorMergeStrategyStrategy" required: - - data + - path + - strategy type: object - OrgRelationshipData: - description: Reference to an organization resource. + ObservabilityPipelineReduceProcessorMergeStrategyStrategy: + description: The merge strategy to apply. + enum: + - discard + - retain + - sum + - max + - min + - array + - concat + - concat_newline + - concat_raw + - shortest_array + - longest_array + - flat_unique + example: flat_unique + type: string + x-enum-varnames: + - DISCARD + - RETAIN + - SUM + - MAX + - MIN + - ARRAY + - CONCAT + - CONCAT_NEWLINE + - CONCAT_RAW + - SHORTEST_ARRAY + - LONGEST_ARRAY + - FLAT_UNIQUE + ObservabilityPipelineReduceProcessorType: + default: reduce + description: The processor type. The value should always be `reduce`. + enum: + - reduce + example: reduce + type: string + x-enum-varnames: + - REDUCE + ObservabilityPipelineRemoveFieldsProcessor: + description: |- + The `remove_fields` processor deletes specified fields from logs. + + **Supported pipeline types:** logs properties: + display_name: + $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" + enabled: + description: Indicates whether the processor is enabled. + example: true + type: boolean + fields: + description: A list of field names to be removed from each log event. + example: ["field1", "field2"] + items: + description: The name of a field to remove from the log event. + type: string + type: array id: - description: The UUID of the organization. - example: "4dee724d-00cc-11ea-a77b-570c9d03c6c5" - format: uuid + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: "remove-fields-processor" + type: string + include: + description: A Datadog search query used to determine which logs this processor targets. + example: "service:my-service" type: string type: - $ref: "#/components/schemas/OrgResourceType" + $ref: "#/components/schemas/ObservabilityPipelineRemoveFieldsProcessorType" required: - id - type + - include + - fields + - enabled type: object - OrgResourceType: - description: The resource type for organizations. - enum: [orgs] - example: "orgs" + x-pipeline-types: [logs] + ObservabilityPipelineRemoveFieldsProcessorType: + default: remove_fields + description: The processor type. The value should always be `remove_fields`. + enum: + - remove_fields + example: remove_fields type: string x-enum-varnames: - - ORGS - OrgSAMLPreferencesAttributes: - description: Attributes for updating an organization's SAML preferences. + - REMOVE_FIELDS + ObservabilityPipelineRenameFieldsProcessor: + description: |- + The `rename_fields` processor changes field names. + + **Supported pipeline types:** logs properties: - default_role_uuids: - description: |- - The UUID of the default role assigned to just-in-time provisioned users. - Exactly one role UUID must be provided. - example: - - 8dd1cf3c-0c75-11ea-ad28-fb5701eabc7d - items: - description: The UUID of a role. - example: 8dd1cf3c-0c75-11ea-ad28-fb5701eabc7d - format: uuid - type: string - maxItems: 1 - minItems: 1 - type: array - jit_domains: - description: |- - Email domains for which users are automatically provisioned on first SAML login - (just-in-time provisioning). - example: - - example.com + display_name: + $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" + enabled: + description: Indicates whether the processor is enabled. + example: true + type: boolean + fields: + description: A list of rename rules specifying which fields to rename in the event, what to rename them to, and whether to preserve the original fields. items: - description: An email domain for just-in-time user provisioning. - example: example.com - maxLength: 256 - minLength: 1 - type: string - maxItems: 50 + $ref: "#/components/schemas/ObservabilityPipelineRenameFieldsProcessorField" type: array - required: - - jit_domains - - default_role_uuids - type: object - OrgSAMLPreferencesData: - description: Data for updating an organization's SAML preferences. - properties: - attributes: - $ref: "#/components/schemas/OrgSAMLPreferencesAttributes" id: - description: The identifier of the SAML preferences resource. - example: 00000000-0000-0000-0000-000000000000 + description: A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components). + example: "rename-fields-processor" + type: string + include: + description: A Datadog search query used to determine which logs this processor targets. + example: "service:my-service" type: string type: - $ref: "#/components/schemas/OrgSAMLPreferencesType" + $ref: "#/components/schemas/ObservabilityPipelineRenameFieldsProcessorType" required: + - id - type - - attributes + - include + - fields + - enabled type: object - OrgSAMLPreferencesType: - default: saml_preferences - description: SAML preferences resource type. - enum: - - saml_preferences - example: saml_preferences - type: string - x-enum-varnames: - - SAML_PREFERENCES - OrgSAMLPreferencesUpdateRequest: - description: Request to update an organization's SAML preferences. + x-pipeline-types: [logs] + ObservabilityPipelineRenameFieldsProcessorField: + description: Defines how to rename a field in log events. properties: - data: - $ref: "#/components/schemas/OrgSAMLPreferencesData" + destination: + description: The field name to assign the renamed value to. + example: "destination_field" + type: string + preserve_source: + description: Indicates whether the original field, that is received from the source, should be kept (`true`) or removed (`false`) after renaming. + example: false + type: boolean + source: + description: The original field name in the log event that should be renamed. + example: "source_field" + type: string required: - - data + - source + - destination + - preserve_source type: object - Organization: - description: Organization object. + ObservabilityPipelineRenameFieldsProcessorType: + default: rename_fields + description: The processor type. The value should always be `rename_fields`. + enum: + - rename_fields + example: rename_fields + type: string + x-enum-varnames: + - RENAME_FIELDS + ObservabilityPipelineRenameMetricTagsProcessor: + description: |- + The `rename_metric_tags` processor changes the keys of tags on metrics. + + **Supported pipeline types:** metrics properties: - attributes: - $ref: "#/components/schemas/OrganizationAttributes" + display_name: + $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" + enabled: + description: Indicates whether the processor is enabled. + example: true + type: boolean id: - description: ID of the organization. + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: "rename-metric-tags-processor" type: string + include: + description: A Datadog search query used to determine which metrics this processor targets. + example: "*" + type: string + tags: + description: A list of rename rules specifying which tag keys to rename on each metric. + items: + $ref: "#/components/schemas/ObservabilityPipelineRenameMetricTagsProcessorTag" + maxItems: 15 + type: array type: - $ref: "#/components/schemas/OrganizationsType" + $ref: "#/components/schemas/ObservabilityPipelineRenameMetricTagsProcessorType" required: + - id - type + - include + - tags + - enabled type: object - OrganizationAttributes: - description: Attributes of the organization. + x-pipeline-types: [metrics] + ObservabilityPipelineRenameMetricTagsProcessorTag: + description: Defines how to rename a tag on metric events. properties: - created_at: - description: Creation time of the organization. - format: date-time - type: string - description: - description: Description of the organization. - type: string - disabled: - description: Whether or not the organization is disabled. - type: boolean - modified_at: - description: Time of last organization modification. - format: date-time - type: string - name: - description: Name of the organization. + rename_to: + description: The new tag key to assign in place of the original. + example: "destination_tag" type: string - public_id: - description: Public ID of the organization. + tag: + description: The original tag key on the metric event. + example: "source_tag" type: string - sharing: - description: Sharing type of the organization. + required: + - tag + - rename_to + type: object + ObservabilityPipelineRenameMetricTagsProcessorType: + default: rename_metric_tags + description: The processor type. The value must be `rename_metric_tags`. + enum: [rename_metric_tags] + example: rename_metric_tags + type: string + x-enum-varnames: + - RENAME_METRIC_TAGS + ObservabilityPipelineRsyslogDestination: + description: |- + The `rsyslog` destination forwards logs to an external `rsyslog` server over TCP or UDP using the syslog protocol. + + **Supported pipeline types:** logs + properties: + buffer: + $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" + endpoint_url_key: + description: Name of the environment variable or secret that holds the syslog server endpoint URL. + example: SYSLOG_ENDPOINT_URL type: string - url: - description: URL of the site that this organization exists at. + id: + description: The unique identifier for this component. + example: "rsyslog-destination" type: string + inputs: + description: A list of component IDs whose output is used as the `input` for this component. + example: ["filter-processor"] + items: + description: The ID of a component whose output is used as input for this destination. + type: string + type: array + keepalive: + description: Optional socket keepalive duration in milliseconds. + example: 60000 + format: int64 + minimum: 0 + type: integer + tls: + $ref: "#/components/schemas/ObservabilityPipelineTls" + type: + $ref: "#/components/schemas/ObservabilityPipelineRsyslogDestinationType" + required: + - id + - type + - inputs type: object - OrganizationsType: - default: orgs - description: Organizations resource type. - enum: - - orgs - example: orgs + x-pipeline-types: [logs] + ObservabilityPipelineRsyslogDestinationType: + default: rsyslog + description: The destination type. The value should always be `rsyslog`. + enum: [rsyslog] + example: rsyslog type: string x-enum-varnames: - - ORGS - OutboundEdge: - description: The definition of `OutboundEdge` object. + - RSYSLOG + ObservabilityPipelineRsyslogSource: + description: |- + The `rsyslog` source listens for logs over TCP or UDP from an `rsyslog` server using the syslog protocol. + + **Supported pipeline types:** logs properties: - branchName: - description: The `OutboundEdge` `branchName`. - example: main - minLength: 1 + address_key: + description: Name of the environment variable or secret that holds the listen address for the syslog receiver. + example: SYSLOG_ADDRESS type: string - nextStepName: - description: The `OutboundEdge` `nextStepName`. - example: Step2 - minLength: 1 + id: + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: "rsyslog-source" type: string + mode: + $ref: "#/components/schemas/ObservabilityPipelineSyslogSourceMode" + tls: + $ref: "#/components/schemas/ObservabilityPipelineMtlsServerTls" + type: + $ref: "#/components/schemas/ObservabilityPipelineRsyslogSourceType" required: - - nextStepName - - branchName + - id + - type + - mode type: object - OutcomeType: - default: outcome - description: The JSON:API type for an outcome. - enum: - - outcome - example: outcome + x-pipeline-types: [logs] + ObservabilityPipelineRsyslogSourceType: + default: rsyslog + description: The source type. The value should always be `rsyslog`. + enum: [rsyslog] + example: rsyslog type: string x-enum-varnames: - - OUTCOME - OutcomesBatchAttributes: - description: The JSON:API attributes for a batched set of scorecard outcomes. + - RSYSLOG + ObservabilityPipelineSampleProcessor: + description: |- + The `sample` processor allows probabilistic sampling of logs at a fixed rate. + + **Supported pipeline types:** logs properties: - results: - description: Set of scorecard outcomes to update. + display_name: + $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" + enabled: + description: Indicates whether the processor is enabled. + example: true + type: boolean + group_by: + description: Optional list of fields to group events by. Each group is sampled independently. + example: ["service", "host"] items: - $ref: "#/components/schemas/OutcomesBatchRequestItem" + description: A log field name used to group events for independent sampling. + type: string + minItems: 1 type: array - type: object - OutcomesBatchRequest: - description: Scorecard outcomes batch request. - properties: - data: - $ref: "#/components/schemas/OutcomesBatchRequestData" - type: object - OutcomesBatchRequestData: - description: Scorecard outcomes batch request data. - properties: - attributes: - $ref: "#/components/schemas/OutcomesBatchAttributes" + id: + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: "sample-processor" + type: string + include: + description: A Datadog search query used to determine which logs this processor targets. + example: "service:my-service" + type: string + percentage: + description: The percentage of logs to sample. + example: 10.0 + format: double + type: number type: - $ref: "#/components/schemas/OutcomesBatchType" + $ref: "#/components/schemas/ObservabilityPipelineSampleProcessorType" + required: + - id + - type + - include + - percentage + - enabled type: object - OutcomesBatchRequestItem: - description: Scorecard outcome for a specific rule, for a given service within a batched update. + x-pipeline-types: [logs] + ObservabilityPipelineSampleProcessorType: + default: sample + description: The processor type. The value should always be `sample`. + enum: [sample] + example: sample + type: string + x-enum-varnames: + - SAMPLE + ObservabilityPipelineSensitiveDataScannerProcessor: + description: |- + The `sensitive_data_scanner` processor detects and optionally redacts sensitive data in log events. + + **Supported pipeline types:** logs properties: - remarks: - description: >- - Any remarks regarding the scorecard rule's evaluation, and supports HTML hyperlinks. - example: 'See: Services' + display_name: + $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" + enabled: + description: Indicates whether the processor is enabled. + example: true + type: boolean + id: + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: "sensitive-scanner" type: string - rule_id: - $ref: "#/components/schemas/RuleId" - service_name: - description: The unique name for a service in the catalog. - example: my-service + include: + description: A Datadog search query used to determine which logs this processor targets. + example: "source:prod" type: string - state: - $ref: "#/components/schemas/State" + rules: + description: A list of rules for identifying and acting on sensitive data patterns. + items: + $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorRule" + type: array + type: + $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorType" required: - - rule_id - - service_name - - state + - id + - type + - include + - rules + - enabled type: object - OutcomesBatchResponse: - description: Scorecard outcomes batch response. + x-pipeline-types: [logs] + ObservabilityPipelineSensitiveDataScannerProcessorAction: + description: Defines what action to take when sensitive data is matched. + oneOf: + - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorActionRedact" + - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorActionHash" + - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorActionPartialRedact" + ObservabilityPipelineSensitiveDataScannerProcessorActionHash: + description: Configuration for hashing matched sensitive values. properties: - data: - $ref: "#/components/schemas/OutcomesBatchResponseData" - example: - - attributes: - service_name: my-service - state: pass - id: "outcome-abc123" - type: rule-outcome - meta: - $ref: "#/components/schemas/OutcomesBatchResponseMeta" - required: - - data - - meta + action: + $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorActionHashAction" + options: + description: |- + Optional settings for the hash action. When omitted or empty, matched sensitive data is + replaced with a deterministic hashed value that preserves structure for analytics while + protecting the original content. Reserved for future hash configuration (for example, algorithm or salt). + type: object + required: [action] type: object - OutcomesBatchResponseAttributes: - description: The JSON:API attributes for an outcome. + ObservabilityPipelineSensitiveDataScannerProcessorActionHashAction: + description: Action type that replaces the matched sensitive data with a hashed representation, preserving structure while securing content. + enum: [hash] + example: hash + type: string + x-enum-varnames: + - HASH + ObservabilityPipelineSensitiveDataScannerProcessorActionPartialRedact: + description: Configuration for partially redacting matched sensitive data. properties: - created_at: - description: Creation time of the rule outcome. - format: date-time - type: string - modified_at: - description: Time of last rule outcome modification. - format: date-time - type: string - remarks: - description: >- - Any remarks regarding the scorecard rule's evaluation, and supports HTML hyperlinks. - example: 'See: Services' - type: string - service_name: - description: The unique name for a service in the catalog. - example: my-service - type: string - state: - $ref: "#/components/schemas/State" + action: + $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorActionPartialRedactAction" + options: + $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorActionPartialRedactOptions" + required: [action, options] type: object - OutcomesBatchResponseData: - description: List of rule outcomes which were affected during the bulk operation. - items: - $ref: "#/components/schemas/OutcomesResponseDataItem" - type: array - OutcomesBatchResponseMeta: - description: Metadata pertaining to the bulk operation. + ObservabilityPipelineSensitiveDataScannerProcessorActionPartialRedactAction: + description: Action type that redacts part of the sensitive data while preserving a configurable number of characters, typically used for masking purposes (e.g., show last 4 digits of a credit card). + enum: [partial_redact] + example: partial_redact + type: string + x-enum-varnames: + - PARTIAL_REDACT + ObservabilityPipelineSensitiveDataScannerProcessorActionPartialRedactOptions: + description: Controls how partial redaction is applied, including character count and direction. properties: - total_received: - description: Total number of scorecard results received during the bulk operation. - format: int64 - type: integer - total_updated: - description: Total number of scorecard results modified during the bulk operation. + characters: + description: Number of characters to leave visible from the start or end of the matched value; the rest are redacted. + example: 4 format: int64 type: integer + direction: + $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorActionPartialRedactOptionsDirection" + required: [characters, direction] type: object - OutcomesBatchType: - default: batched-outcome - description: The JSON:API type for scorecard outcomes. - enum: [batched-outcome] - example: batched-outcome + ObservabilityPipelineSensitiveDataScannerProcessorActionPartialRedactOptionsDirection: + description: Indicates whether to redact characters from the first or last part of the matched value. + enum: [first, last] + example: last type: string - x-enum-varnames: [BATCHED_OUTCOME] - OutcomesResponse: - description: Scorecard outcomes - the result of a rule for a service. + x-enum-varnames: + - FIRST + - LAST + ObservabilityPipelineSensitiveDataScannerProcessorActionRedact: + description: Configuration for completely redacting matched sensitive data. properties: - data: - $ref: "#/components/schemas/OutcomesResponseData" - included: - $ref: "#/components/schemas/OutcomesResponseIncluded" - links: - $ref: "#/components/schemas/OutcomesResponseLinks" + action: + $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorActionRedactAction" + options: + $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorActionRedactOptions" + required: [action, options] type: object - OutcomesResponseData: - description: List of rule outcomes. - items: - $ref: "#/components/schemas/OutcomesResponseDataItem" - type: array - OutcomesResponseDataItem: - description: A single rule outcome. + ObservabilityPipelineSensitiveDataScannerProcessorActionRedactAction: + description: Action type that completely replaces the matched sensitive data with a fixed replacement string to remove all visibility. + enum: [redact] + example: redact + type: string + x-enum-varnames: + - REDACT + ObservabilityPipelineSensitiveDataScannerProcessorActionRedactOptions: + description: Configuration for fully redacting sensitive data. properties: - attributes: - $ref: "#/components/schemas/OutcomesBatchResponseAttributes" - id: - description: The unique ID for a rule outcome. + replace: + description: The string used to replace matched sensitive data (for example, "***" or "[REDACTED]"). + example: "***" type: string - relationships: - $ref: "#/components/schemas/RuleOutcomeRelationships" - type: - $ref: "#/components/schemas/OutcomeType" + required: [replace] type: object - OutcomesResponseIncluded: - description: Array of rule details. - items: - $ref: "#/components/schemas/OutcomesResponseIncludedItem" - type: array - OutcomesResponseIncludedItem: - description: Attributes of the included rule. + ObservabilityPipelineSensitiveDataScannerProcessorCustomPattern: + description: Defines a custom regex-based pattern for identifying sensitive data in logs. properties: - attributes: - $ref: "#/components/schemas/OutcomesResponseIncludedRuleAttributes" - id: - $ref: "#/components/schemas/RuleId" + options: + $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorCustomPatternOptions" type: - $ref: "#/components/schemas/RuleType" + $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorCustomPatternType" + required: [type, options] type: object - OutcomesResponseIncludedRuleAttributes: - description: Details of a rule. + ObservabilityPipelineSensitiveDataScannerProcessorCustomPatternOptions: + description: Options for defining a custom regex pattern. properties: - name: - description: Name of the rule. - example: Team Defined - type: string - scorecard_name: - description: The scorecard name to which this rule must belong. - example: Observability Best Practices + description: + description: Human-readable description providing context about a sensitive data scanner rule + example: Custom regex for internal API keys type: string - type: object - OutcomesResponseLinks: - description: Links attributes. - properties: - next: - description: |- - Link for the next set of results. - example: "/api/v2/scorecard/outcomes?include=rule&page%5Blimit%5D=100&page%5Boffset%5D=100" + rule: + description: A regular expression used to detect sensitive values. Must be a valid regex. + example: "\\b\\d{16}\\b" type: string + required: [rule] type: object - OutputSchema: - description: "A list of output parameters for the workflow." + ObservabilityPipelineSensitiveDataScannerProcessorCustomPatternType: + description: Indicates a custom regular expression is used for matching. + enum: [custom] + example: custom + type: string + x-enum-varnames: + - CUSTOM + ObservabilityPipelineSensitiveDataScannerProcessorKeywordOptions: + description: Configuration for keywords used to reinforce sensitive data pattern detection. properties: - parameters: - description: The `OutputSchema` `parameters`. + keywords: + description: A list of keywords to match near the sensitive pattern. + example: ["ssn", "card", "account"] items: - $ref: "#/components/schemas/OutputSchemaParameters" + description: A keyword string that reinforces detection when found near the sensitive pattern. + type: string type: array + proximity: + description: Maximum number of tokens between a keyword and a sensitive value match. + example: 5 + format: int64 + type: integer + required: [keywords, proximity] type: object - OutputSchemaParameters: - description: The definition of `OutputSchemaParameters` object. + ObservabilityPipelineSensitiveDataScannerProcessorLibraryPattern: + description: Specifies a pattern from Datadog’s sensitive data detection library to match known sensitive data types. + properties: + options: + $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorLibraryPatternOptions" + type: + $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorLibraryPatternType" + required: [type, options] + type: object + ObservabilityPipelineSensitiveDataScannerProcessorLibraryPatternOptions: + description: Options for selecting a predefined library pattern and enabling keyword support. properties: - defaultValue: - description: The `OutputSchemaParameters` `defaultValue`. description: - description: The `OutputSchemaParameters` `description`. + description: Human-readable description providing context about a sensitive data scanner rule + example: Credit card pattern type: string - label: - description: The `OutputSchemaParameters` `label`. + id: + description: Identifier for a predefined pattern from the sensitive data scanner pattern library. + example: credit_card type: string + use_recommended_keywords: + description: Whether to augment the pattern with recommended keywords (optional). + type: boolean + required: [id] + type: object + ObservabilityPipelineSensitiveDataScannerProcessorLibraryPatternType: + description: Indicates that a predefined library pattern is used. + enum: [library] + example: library + type: string + x-enum-varnames: + - LIBRARY + ObservabilityPipelineSensitiveDataScannerProcessorPattern: + description: Pattern detection configuration for identifying sensitive data using either a custom regex or a library reference. + oneOf: + - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorCustomPattern" + - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorLibraryPattern" + ObservabilityPipelineSensitiveDataScannerProcessorRule: + description: Defines a rule for detecting sensitive data, including matching pattern, scope, and the action to take. + properties: + keyword_options: + $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorKeywordOptions" name: - description: The `OutputSchemaParameters` `name`. - example: "" + description: A name identifying the rule. + example: "Redact Credit Card Numbers" type: string - type: - $ref: "#/components/schemas/OutputSchemaParametersType" - value: - description: The `OutputSchemaParameters` `value`. + on_match: + $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorAction" + pattern: + $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorPattern" + scope: + $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorScope" + tags: + description: Tags assigned to this rule for filtering and classification. + example: ["pii", "ccn"] + items: + description: A tag string used to classify and filter this sensitive data rule. + type: string + type: array required: - name - - type + - pattern + - scope + - on_match type: object - OutputSchemaParametersType: - description: The definition of `OutputSchemaParametersType` object. - enum: - - STRING - - NUMBER - - BOOLEAN - - OBJECT - - ARRAY_STRING - - ARRAY_NUMBER - - ARRAY_BOOLEAN - - ARRAY_OBJECT - example: STRING + ObservabilityPipelineSensitiveDataScannerProcessorScope: + description: Determines which parts of the log the pattern-matching rule should be applied to. + oneOf: + - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorScopeInclude" + - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorScopeExclude" + - $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorScopeAll" + ObservabilityPipelineSensitiveDataScannerProcessorScopeAll: + description: Applies scanning across all available fields. + properties: + target: + $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorScopeAllTarget" + required: [target] + type: object + ObservabilityPipelineSensitiveDataScannerProcessorScopeAllTarget: + description: Applies the rule to all fields. + enum: [all] + example: all type: string x-enum-varnames: - - STRING - - NUMBER - - BOOLEAN - - OBJECT - - ARRAY_STRING - - ARRAY_NUMBER - - ARRAY_BOOLEAN - - ARRAY_OBJECT - OverwriteAllocationsRequest: - description: Request to overwrite targeting rules (allocations) for a feature flag in an environment. + - ALL + ObservabilityPipelineSensitiveDataScannerProcessorScopeExclude: + description: Excludes specific fields from sensitive data scanning. properties: - data: - description: Targeting rules (allocations) to replace existing ones with. - items: - $ref: "#/components/schemas/AllocationDataRequest" - type: array - required: - - data + options: + $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorScopeOptions" + target: + $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorScopeExcludeTarget" + required: [target, options] type: object - OwnershipConfidenceLevel: - description: The ownership confidence level. - enum: - - high - - medium - - low - example: high + ObservabilityPipelineSensitiveDataScannerProcessorScopeExcludeTarget: + description: Excludes specific fields from processing. + enum: [exclude] + example: exclude type: string x-enum-varnames: - - HIGH - - MEDIUM - - LOW - OwnershipEvidenceAttributes: - description: The attributes of an ownership evidence response. + - EXCLUDE + ObservabilityPipelineSensitiveDataScannerProcessorScopeInclude: + description: Includes only specific fields for sensitive data scanning. properties: - evidence_versions: - $ref: "#/components/schemas/OwnershipEvidenceVersions" - required: - - evidence_versions + options: + $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorScopeOptions" + target: + $ref: "#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessorScopeIncludeTarget" + required: [target, options] type: object - OwnershipEvidenceData: - description: The data wrapper for an ownership evidence response. + ObservabilityPipelineSensitiveDataScannerProcessorScopeIncludeTarget: + description: Applies the rule only to included fields. + enum: [include] + example: include + type: string + x-enum-varnames: + - INCLUDE + ObservabilityPipelineSensitiveDataScannerProcessorScopeOptions: + description: Fields to which the scope rule applies. properties: - attributes: - $ref: "#/components/schemas/OwnershipEvidenceAttributes" + fields: + description: List of log attribute names (field paths) to which the scope applies. Only these fields are included in or excluded from pattern matching. + example: + - "" + items: + description: A log field path to include or exclude from sensitive data scanning. + type: string + type: array + required: [fields] + type: object + ObservabilityPipelineSensitiveDataScannerProcessorType: + default: sensitive_data_scanner + description: The processor type. The value should always be `sensitive_data_scanner`. + enum: [sensitive_data_scanner] + example: sensitive_data_scanner + type: string + x-enum-varnames: + - SENSITIVE_DATA_SCANNER + ObservabilityPipelineSentinelOneDestination: + description: |- + The `sentinel_one` destination sends logs to SentinelOne. + + **Supported pipeline types:** logs + properties: + buffer: + $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" id: - description: The identifier of the resource the evidence applies to. - example: test-resource + description: The unique identifier for this component. + example: sentinelone-destination + type: string + inputs: + description: A list of component IDs whose output is used as the `input` for this component. + example: ["filter-processor"] + items: + description: The ID of a component whose output is used as input for this destination. + type: string + type: array + region: + $ref: "#/components/schemas/ObservabilityPipelineSentinelOneDestinationRegion" + token_key: + description: Name of the environment variable or secret that holds the SentinelOne API token. + example: SENTINELONE_TOKEN type: string type: - $ref: "#/components/schemas/OwnershipEvidenceType" + $ref: "#/components/schemas/ObservabilityPipelineSentinelOneDestinationType" required: - id - type - - attributes - type: object - OwnershipEvidenceResponse: - description: The response returned when retrieving the evidence backing an ownership inference for an owner type. - properties: - data: - $ref: "#/components/schemas/OwnershipEvidenceData" - required: - - data + - inputs + - region type: object - OwnershipEvidenceType: - default: ownership_evidence - description: The type of the ownership evidence resource. The value should always be `ownership_evidence`. + x-pipeline-types: [logs] + ObservabilityPipelineSentinelOneDestinationRegion: + description: The SentinelOne region to send logs to. enum: - - ownership_evidence - example: ownership_evidence + - us + - eu + - ca + - data_set_us + example: us type: string x-enum-varnames: - - OWNERSHIP_EVIDENCE - OwnershipEvidenceVersion: - additionalProperties: {} - description: A single evidence version entry describing how an inference was produced. - example: - pipeline_id: p1 - version: v3 - type: object - OwnershipEvidenceVersions: - description: The list of evidence versions associated with an inference. - example: - - pipeline_id: p1 - version: v3 - items: - $ref: "#/components/schemas/OwnershipEvidenceVersion" - nullable: true - type: array - OwnershipFeedbackAction: - description: The feedback action to apply to an inference. + - US + - EU + - CA + - DATA_SET_US + ObservabilityPipelineSentinelOneDestinationType: + default: sentinel_one + description: The destination type. The value should always be `sentinel_one`. enum: - - confirm - - reject - - correct - - persist - example: confirm + - sentinel_one + example: sentinel_one type: string x-enum-varnames: - - CONFIRM - - REJECT - - CORRECT - - PERSIST - OwnershipFeedbackRequest: - description: The request body for submitting ownership feedback. - properties: - data: - $ref: "#/components/schemas/OwnershipFeedbackRequestData" - required: - - data - type: object - OwnershipFeedbackRequestAttributes: - description: The attributes of an ownership feedback request. + - SENTINEL_ONE + ObservabilityPipelineSocketDestination: + description: |- + The `socket` destination sends logs over TCP or UDP to a remote server. + + **Supported pipeline types:** logs properties: - action: - $ref: "#/components/schemas/OwnershipFeedbackAction" - corrected_owner_handle: - description: The corrected owner handle. Required when `action` is `correct`. - example: team-b - nullable: true - type: string - corrected_owner_type: - description: The corrected owner type. Required when `action` is `correct`. - example: team - nullable: true - type: string - inference_checksum: - description: The checksum of the inference being acted upon. Must match the current inference checksum or the request returns a conflict. - example: abc123 + address_key: + description: Name of the environment variable or secret that holds the socket address (host:port). + example: SOCKET_ADDRESS type: string - reason: - description: An optional free-form reason explaining the feedback. - example: Confirmed by team lead. - nullable: true + buffer: + $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" + encoding: + $ref: "#/components/schemas/ObservabilityPipelineSocketDestinationEncoding" + framing: + $ref: "#/components/schemas/ObservabilityPipelineSocketDestinationFraming" + id: + description: The unique identifier for this component. + example: socket-destination type: string - required: - - action - - inference_checksum - type: object - OwnershipFeedbackRequestData: - description: The data wrapper for an ownership feedback request. - properties: - attributes: - $ref: "#/components/schemas/OwnershipFeedbackRequestAttributes" + inputs: + description: A list of component IDs whose output is used as the `input` for this component. + example: ["filter-processor"] + items: + description: The ID of a component whose output is used as input for this destination. + type: string + type: array + mode: + $ref: "#/components/schemas/ObservabilityPipelineSocketDestinationMode" + tls: + $ref: "#/components/schemas/ObservabilityPipelineClientTls" + description: TLS configuration. Relevant only when `mode` is `tcp`. type: - $ref: "#/components/schemas/OwnershipFeedbackType" + $ref: "#/components/schemas/ObservabilityPipelineSocketDestinationType" required: + - id - type - - attributes + - inputs + - encoding + - framing + - mode type: object - OwnershipFeedbackResponse: - description: The response returned after applying ownership feedback to an inference. + x-pipeline-types: [logs] + ObservabilityPipelineSocketDestinationEncoding: + description: Encoding format for log events. + enum: [json, raw_message] + example: json + type: string + x-enum-varnames: + - JSON + - RAW_MESSAGE + ObservabilityPipelineSocketDestinationFraming: + description: Framing method configuration. + oneOf: + - $ref: "#/components/schemas/ObservabilityPipelineSocketDestinationFramingNewlineDelimited" + - $ref: "#/components/schemas/ObservabilityPipelineSocketDestinationFramingBytes" + - $ref: "#/components/schemas/ObservabilityPipelineSocketDestinationFramingCharacterDelimited" + ObservabilityPipelineSocketDestinationFramingBytes: + description: Event data is not delimited at all. properties: - data: - $ref: "#/components/schemas/OwnershipFeedbackResultData" - required: - - data + method: + $ref: "#/components/schemas/ObservabilityPipelineSocketDestinationFramingBytesMethod" + required: [method] type: object - OwnershipFeedbackResultAttributes: - description: The attributes of an ownership feedback result. + ObservabilityPipelineSocketDestinationFramingBytesMethod: + description: The definition of `ObservabilityPipelineSocketDestinationFramingBytesMethod` object. + enum: [bytes] + example: bytes + type: string + x-enum-varnames: + - BYTES + ObservabilityPipelineSocketDestinationFramingCharacterDelimited: + description: Each log event is separated using the specified delimiter character. properties: - action: - $ref: "#/components/schemas/OwnershipFeedbackAction" - checksum: - description: The checksum of the inference after the feedback was applied. - example: abc123 - type: string - new_status: - $ref: "#/components/schemas/OwnershipInferenceStatus" - owner_type: - $ref: "#/components/schemas/OwnershipOwnerType" - previous_status: - $ref: "#/components/schemas/OwnershipInferenceStatus" - primary_contact_ref: - description: The primary contact reference for the inferred owner after the feedback was applied, formatted as `ref:handle/`. - example: ref:handle/team-a - nullable: true - type: string - updated_at: - description: The time when the inference was updated by the feedback. - example: "2026-01-15T10:00:00Z" - format: date-time + delimiter: + description: A single ASCII character used as a delimiter. + example: "|" + maxLength: 1 + minLength: 1 type: string - required: - - action - - previous_status - - new_status - - owner_type - - checksum - - updated_at + method: + $ref: "#/components/schemas/ObservabilityPipelineSocketDestinationFramingCharacterDelimitedMethod" + required: [method, delimiter] type: object - OwnershipFeedbackResultData: - description: The data wrapper for an ownership feedback result response. + ObservabilityPipelineSocketDestinationFramingCharacterDelimitedMethod: + description: The definition of `ObservabilityPipelineSocketDestinationFramingCharacterDelimitedMethod` object. + enum: [character_delimited] + example: character_delimited + type: string + x-enum-varnames: + - CHARACTER_DELIMITED + ObservabilityPipelineSocketDestinationFramingNewlineDelimited: + description: Each log event is delimited by a newline character. properties: - attributes: - $ref: "#/components/schemas/OwnershipFeedbackResultAttributes" - id: - description: The identifier of the resource that the feedback was applied to. - example: res-1 - type: string - type: - $ref: "#/components/schemas/OwnershipFeedbackResultType" - required: - - id - - type - - attributes + method: + $ref: "#/components/schemas/ObservabilityPipelineSocketDestinationFramingNewlineDelimitedMethod" + required: [method] type: object - OwnershipFeedbackResultType: - default: ownership_feedback_result - description: The type of the ownership feedback result resource. The value should always be `ownership_feedback_result`. - enum: - - ownership_feedback_result - example: ownership_feedback_result + ObservabilityPipelineSocketDestinationFramingNewlineDelimitedMethod: + description: The definition of `ObservabilityPipelineSocketDestinationFramingNewlineDelimitedMethod` object. + enum: [newline_delimited] + example: newline_delimited type: string x-enum-varnames: - - OWNERSHIP_FEEDBACK_RESULT - OwnershipFeedbackType: - default: ownership_feedback - description: The type of the ownership feedback request resource. The value should always be `ownership_feedback`. - enum: - - ownership_feedback - example: ownership_feedback + - NEWLINE_DELIMITED + ObservabilityPipelineSocketDestinationMode: + description: Protocol used to send logs. + enum: [tcp, udp] + example: tcp type: string x-enum-varnames: - - OWNERSHIP_FEEDBACK - OwnershipHistoryAttributes: - description: The attributes of an ownership history response. - properties: - items: - $ref: "#/components/schemas/OwnershipHistoryItems" - pagination: - $ref: "#/components/schemas/OwnershipHistoryPagination" - required: - - items - - pagination - type: object - OwnershipHistoryData: - description: The data wrapper for an ownership history response. + - TCP + - UDP + ObservabilityPipelineSocketDestinationType: + default: socket + description: The destination type. The value should always be `socket`. + enum: [socket] + example: socket + type: string + x-enum-varnames: + - SOCKET + ObservabilityPipelineSocketSource: + description: |- + The `socket` source ingests logs over TCP or UDP. + + **Supported pipeline types:** logs properties: - attributes: - $ref: "#/components/schemas/OwnershipHistoryAttributes" + address_key: + description: Name of the environment variable or secret that holds the listen address for the socket. + example: SOCKET_ADDRESS + type: string + framing: + $ref: "#/components/schemas/ObservabilityPipelineSocketSourceFraming" id: - description: The resource identifier for which history is returned. - example: res-1 + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: socket-source type: string + mode: + $ref: "#/components/schemas/ObservabilityPipelineSocketSourceMode" + tls: + $ref: "#/components/schemas/ObservabilityPipelineMtlsServerTls" + description: TLS configuration. Relevant only when `mode` is `tcp`. type: - $ref: "#/components/schemas/OwnershipHistoryType" + $ref: "#/components/schemas/ObservabilityPipelineSocketSourceType" required: - id - type - - attributes + - mode + - framing type: object - OwnershipHistoryItem: - description: A single ownership inference history entry. + x-pipeline-types: [logs] + ObservabilityPipelineSocketSourceFraming: + description: Framing method configuration for the socket source. + oneOf: + - $ref: "#/components/schemas/ObservabilityPipelineSocketSourceFramingNewlineDelimited" + - $ref: "#/components/schemas/ObservabilityPipelineSocketSourceFramingBytes" + - $ref: "#/components/schemas/ObservabilityPipelineSocketSourceFramingCharacterDelimited" + - $ref: "#/components/schemas/ObservabilityPipelineSocketSourceFramingOctetCounting" + - $ref: "#/components/schemas/ObservabilityPipelineSocketSourceFramingChunkedGelf" + ObservabilityPipelineSocketSourceFramingBytes: + description: Byte frames are passed through as-is according to the underlying I/O boundaries (for example, split between messages or stream segments). properties: - checksum: - description: A checksum identifying the state of the inference at this point in time. - example: "" - type: string - confidence: - description: The confidence score of the inference, expressed as a numeric string with up to four decimal places. - example: "0.9000" - type: string - created_at: - description: The time this history entry was created. - example: "2026-01-15T10:00:00Z" - format: date-time - type: string - evidence_versions: - $ref: "#/components/schemas/OwnershipEvidenceVersions" - explanation: - description: A human-readable explanation of how the inference was produced. - example: "" - type: string - failed_at: - description: The time when this inference failed, if applicable. - example: "2026-01-15T10:00:00Z" - format: date-time - nullable: true - type: string - failure_reason: - description: The reason why this inference failed, if applicable. - example: missing evidence - nullable: true - type: string - id: - description: The unique identifier of the history entry. - example: 100 - format: int64 - type: integer - owner_type: - $ref: "#/components/schemas/OwnershipOwnerType" - primary_contact_ref: - description: The primary contact reference for the inferred owner, formatted as `ref:handle/`. - example: ref:handle/team-a - nullable: true - type: string - resource_id: - description: The identifier of the resource that the inference applies to. - example: res-1 - type: string - retry_schedule: - description: The scheduled retry time for a failed inference, if applicable. - example: "2026-01-15T11:00:00Z" - format: date-time - nullable: true - type: string - sources: - $ref: "#/components/schemas/OwnershipInferenceSources" - status: - $ref: "#/components/schemas/OwnershipInferenceStatus" - required: - - id - - resource_id - - owner_type - - confidence - - explanation - - evidence_versions - - sources - - checksum - - status - - created_at + method: + $ref: "#/components/schemas/ObservabilityPipelineSocketSourceFramingBytesMethod" + required: [method] type: object - OwnershipHistoryItems: - description: The list of history entries returned for this page. - items: - $ref: "#/components/schemas/OwnershipHistoryItem" - type: array - OwnershipHistoryPagination: - description: Cursor-based pagination metadata for the history response. + ObservabilityPipelineSocketSourceFramingBytesMethod: + description: Byte frames are passed through as-is according to the underlying I/O boundaries (for example, split between messages or stream segments). + enum: [bytes] + example: bytes + type: string + x-enum-varnames: + - BYTES + ObservabilityPipelineSocketSourceFramingCharacterDelimited: + description: Byte frames which are delimited by a chosen character. properties: - has_more: - description: Whether more history entries are available beyond this page. - example: false - type: boolean - next_cursor: - description: An opaque, base64-encoded cursor token. Pass it as the `cursor` query parameter to retrieve the next page. Absent or `null` when there are no further pages. - example: eyJpZCI6OTh9 - nullable: true + delimiter: + description: A single ASCII character used to delimit events. + example: "|" + maxLength: 1 + minLength: 1 type: string - required: - - has_more + method: + $ref: "#/components/schemas/ObservabilityPipelineSocketSourceFramingCharacterDelimitedMethod" + required: [method, delimiter] type: object - OwnershipHistoryResponse: - description: The response returned when listing the inference history for a resource. + ObservabilityPipelineSocketSourceFramingCharacterDelimitedMethod: + description: Byte frames which are delimited by a chosen character. + enum: [character_delimited] + example: character_delimited + type: string + x-enum-varnames: + - CHARACTER_DELIMITED + ObservabilityPipelineSocketSourceFramingChunkedGelf: + description: Byte frames which are chunked GELF messages. properties: - data: - $ref: "#/components/schemas/OwnershipHistoryData" - required: - - data + method: + $ref: "#/components/schemas/ObservabilityPipelineSocketSourceFramingChunkedGelfMethod" + required: [method] type: object - OwnershipHistoryType: - default: ownership_history - description: The type of the ownership history resource. The value should always be `ownership_history`. - enum: - - ownership_history - example: ownership_history + ObservabilityPipelineSocketSourceFramingChunkedGelfMethod: + description: Byte frames which are chunked GELF messages. + enum: [chunked_gelf] + example: chunked_gelf type: string x-enum-varnames: - - OWNERSHIP_HISTORY - OwnershipInferenceAttributes: - description: The attributes of a single ownership inference. + - CHUNKED_GELF + ObservabilityPipelineSocketSourceFramingNewlineDelimited: + description: Byte frames which are delimited by a newline character. properties: - checksum: - description: A checksum that uniquely identifies the current state of the inference. Required when submitting feedback. - example: abc123 - type: string - confidence: - description: The confidence score of the inference, expressed as a numeric string with up to four decimal places. - example: "0.9500" - type: string - created_at: - description: The time when the inference was created. - example: "2026-01-15T10:00:00Z" - format: date-time - type: string - evidence_versions: - $ref: "#/components/schemas/OwnershipEvidenceVersions" - explanation: - description: A human-readable explanation of how the inference was produced. - example: High confidence match - type: string - owner_type: - $ref: "#/components/schemas/OwnershipOwnerType" - primary_contact_ref: - description: The primary contact reference for the inferred owner, formatted as `ref:handle/`. - example: ref:handle/team-a - nullable: true + method: + $ref: "#/components/schemas/ObservabilityPipelineSocketSourceFramingNewlineDelimitedMethod" + required: [method] + type: object + ObservabilityPipelineSocketSourceFramingNewlineDelimitedMethod: + description: Byte frames which are delimited by a newline character. + enum: [newline_delimited] + example: newline_delimited + type: string + x-enum-varnames: + - NEWLINE_DELIMITED + ObservabilityPipelineSocketSourceFramingOctetCounting: + description: Byte frames according to the octet counting format as per RFC6587. + properties: + method: + $ref: "#/components/schemas/ObservabilityPipelineSocketSourceFramingOctetCountingMethod" + required: [method] + type: object + ObservabilityPipelineSocketSourceFramingOctetCountingMethod: + description: Byte frames according to the octet counting format as per RFC6587. + enum: [octet_counting] + example: octet_counting + type: string + x-enum-varnames: + - OCTET_COUNTING + ObservabilityPipelineSocketSourceMode: + description: Protocol used to receive logs. + enum: [tcp, udp] + example: tcp + type: string + x-enum-varnames: + - TCP + - UDP + ObservabilityPipelineSocketSourceType: + default: socket + description: The source type. The value should always be `socket`. + enum: [socket] + example: socket + type: string + x-enum-varnames: + - SOCKET + ObservabilityPipelineSourceValidTokenFieldToAdd: + description: |- + An optional metadata field that is attached to every event authenticated by the + associated token. Both `key` and `value` must match `^[A-Za-z0-9_]+$`. + properties: + key: + description: The metadata field name to add to incoming events. + example: token_name + maxLength: 256 + pattern: "^[A-Za-z0-9_]+$" type: string - sources: - $ref: "#/components/schemas/OwnershipInferenceSources" - status: - $ref: "#/components/schemas/OwnershipInferenceStatus" - updated_at: - description: The time when the inference was last updated. - example: "2026-01-15T10:00:00Z" - format: date-time + value: + description: The metadata field value to add to incoming events. + example: my_token + maxLength: 1024 + pattern: "^[A-Za-z0-9_]+$" type: string required: - - owner_type - - confidence - - explanation - - evidence_versions - - sources - - status - - checksum - - created_at - - updated_at + - key + - value type: object - OwnershipInferenceData: - description: The data wrapper for a single ownership inference response. + ObservabilityPipelineSpec: + description: Input schema representing an observability pipeline configuration. Used in create and validate requests. + properties: + data: + $ref: "#/components/schemas/ObservabilityPipelineSpecData" + required: + - data + type: object + ObservabilityPipelineSpecData: + description: Contains the the pipeline configuration. properties: attributes: - $ref: "#/components/schemas/OwnershipInferenceAttributes" - id: - description: The identifier of the inference, formatted as `resource_id:owner_type`. - example: test-resource:team - type: string + $ref: "#/components/schemas/ObservabilityPipelineDataAttributes" type: - $ref: "#/components/schemas/OwnershipInferenceType" + default: pipelines + description: The resource type identifier. For pipeline resources, this should always be set to `pipelines`. + example: pipelines + type: string required: - - id - type - attributes type: object - OwnershipInferenceItem: - description: A single ownership inference, scoped to a specific owner type. + ObservabilityPipelineSplitArrayProcessor: + description: |- + The `split_array` processor splits array fields into separate events based on configured rules. + + **Supported pipeline types:** logs properties: - checksum: - description: A checksum that uniquely identifies the current state of the inference. Required when submitting feedback. - example: abc123 - type: string - confidence: - description: The confidence score of the inference, expressed as a numeric string with up to four decimal places. - example: "0.9500" - type: string - created_at: - description: The time when the inference was created. - example: "2026-01-15T10:00:00Z" - format: date-time - type: string - evidence_versions: - $ref: "#/components/schemas/OwnershipEvidenceVersions" - explanation: - description: A human-readable explanation of how the inference was produced. - example: High confidence match - type: string + arrays: + description: A list of array split configurations. + items: + $ref: "#/components/schemas/ObservabilityPipelineSplitArrayProcessorArrayConfig" + maxItems: 15 + minItems: 1 + type: array + display_name: + $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" + enabled: + description: Indicates whether the processor is enabled. + example: true + type: boolean id: - description: The identifier of the inference, formatted as `resource_id:owner_type`. - example: test-resource:team - type: string - owner_type: - $ref: "#/components/schemas/OwnershipOwnerType" - primary_contact_ref: - description: The primary contact reference for the inferred owner, formatted as `ref:handle/`. - example: ref:handle/team-a - nullable: true + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: split-array-processor type: string - sources: - $ref: "#/components/schemas/OwnershipInferenceSources" - status: - $ref: "#/components/schemas/OwnershipInferenceStatus" - updated_at: - description: The time when the inference was last updated. - example: "2026-01-15T10:00:00Z" - format: date-time + include: + description: A Datadog search query used to determine which logs this processor targets. For split_array, this should typically be `*`. + example: "*" type: string + type: + $ref: "#/components/schemas/ObservabilityPipelineSplitArrayProcessorType" required: - id - - owner_type - - confidence - - explanation - - evidence_versions - - sources - - status - - checksum - - created_at - - updated_at + - type + - include + - arrays + - enabled type: object - OwnershipInferenceItems: - description: The list of inferences for a resource, with one inference per owner type. - items: - $ref: "#/components/schemas/OwnershipInferenceItem" - type: array - OwnershipInferenceListAttributes: - description: The attributes of the ownership inferences collection response. + x-pipeline-types: [logs] + ObservabilityPipelineSplitArrayProcessorArrayConfig: + description: Configuration for a single array split operation. properties: - items: - $ref: "#/components/schemas/OwnershipInferenceItems" + field: + description: The path to the array field to split. + example: "tags" + type: string + include: + description: A Datadog search query used to determine which logs this array split operation targets. + example: "*" + type: string required: - - items + - include + - field type: object - OwnershipInferenceListData: - description: The data wrapper for the ownership inferences collection response. + ObservabilityPipelineSplitArrayProcessorType: + default: split_array + description: The processor type. The value should always be `split_array`. + enum: + - split_array + example: split_array + type: string + x-enum-varnames: + - SPLIT_ARRAY + ObservabilityPipelineSplunkHecDestination: + description: |- + The `splunk_hec` destination forwards logs to Splunk using the HTTP Event Collector (HEC). + + **Supported pipeline types:** logs properties: - attributes: - $ref: "#/components/schemas/OwnershipInferenceListAttributes" + auto_extract_timestamp: + description: |- + If `true`, Splunk tries to extract timestamps from incoming log events. + If `false`, Splunk assigns the time the event was received. + Only applies when `endpoint_target` is `event`; cannot be `true` when `endpoint_target` is `raw`. + example: true + type: boolean + buffer: + $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" + encoding: + $ref: "#/components/schemas/ObservabilityPipelineSplunkHecDestinationEncoding" + endpoint_target: + $ref: "#/components/schemas/ObservabilityPipelineSplunkHecDestinationEndpointTarget" + endpoint_url_key: + description: Name of the environment variable or secret that holds the Splunk HEC endpoint URL. + example: SPLUNK_HEC_ENDPOINT_URL + type: string id: - description: The resource identifier associated with the returned inferences. - example: test-resource + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: splunk-hec-destination + type: string + index: + description: Optional name of the Splunk index where logs are written. + example: "main" + type: string + indexed_fields: + description: List of log field names to send as indexed fields to Splunk HEC. Available only when `encoding` is `json`. + example: ["service", "host"] + items: + description: A log field name to index in Splunk. + type: string + type: array + inputs: + description: A list of component IDs whose output is used as the `input` for this component. + example: ["filter-processor"] + items: + description: The ID of a component whose output is used as input for this destination. + type: string + type: array + sourcetype: + description: The Splunk sourcetype to assign to log events. + example: "custom_sourcetype" type: string + token_key: + description: Name of the environment variable or secret that holds the Splunk HEC token. + example: SPLUNK_HEC_TOKEN + type: string + token_strategy: + $ref: "#/components/schemas/ObservabilityPipelineSplunkHecDestinationTokenStrategy" type: - $ref: "#/components/schemas/OwnershipInferencesType" + $ref: "#/components/schemas/ObservabilityPipelineSplunkHecDestinationType" required: - id - type - - attributes - type: object - OwnershipInferenceListResponse: - description: The response returned when listing all current ownership inferences for a resource. - properties: - data: - $ref: "#/components/schemas/OwnershipInferenceListData" - required: - - data - type: object - OwnershipInferenceResponse: - description: The response returned when retrieving a single ownership inference for an owner type. - properties: - data: - $ref: "#/components/schemas/OwnershipInferenceData" - required: - - data - type: object - OwnershipInferenceSource: - additionalProperties: {} - description: A source describing how an inference was derived. - example: - kind: code_owners + - inputs type: object - OwnershipInferenceSources: - description: The list of sources backing an ownership inference. Empty when the inference status is not whitelisted to expose sources. - example: - - kind: code_owners - items: - $ref: "#/components/schemas/OwnershipInferenceSource" - type: array - OwnershipInferenceStatus: - description: The lifecycle status of an ownership inference. + x-pipeline-types: [logs] + ObservabilityPipelineSplunkHecDestinationEncoding: + description: Encoding format for log events. enum: - - suggested - - persisted - - overridden - - failed - - unknown - example: suggested + - json + - raw_message + example: json type: string x-enum-varnames: - - SUGGESTED - - PERSISTED - - OVERRIDDEN - - FAILED - - UNKNOWN - OwnershipInferenceType: - default: ownership_inference - description: The type of the ownership inference resource. The value should always be `ownership_inference`. + - JSON + - RAW_MESSAGE + ObservabilityPipelineSplunkHecDestinationEndpointTarget: + description: The Splunk HEC endpoint to send events to. Use `event` to send structured events to the `/event` endpoint, or `raw` to send the raw message to the `/raw` endpoint. enum: - - ownership_inference - example: ownership_inference + - event + - raw + example: event type: string x-enum-varnames: - - OWNERSHIP_INFERENCE - OwnershipInferencesType: - default: ownership_inferences - description: The type of the ownership inferences collection resource. The value should always be `ownership_inferences`. + - EVENT + - RAW + ObservabilityPipelineSplunkHecDestinationTokenStrategy: + description: Controls how the Splunk HEC token is supplied. Use `custom` to provide a token with `token_key`, or `from_source` to forward the token received from an upstream Splunk HEC source. enum: - - ownership_inferences - example: ownership_inferences + - custom + - from_source + example: custom type: string x-enum-varnames: - - OWNERSHIP_INFERENCES - OwnershipOwnerType: - description: The owner type for an ownership inference. - enum: - - user - - team - - service - - unknown - example: team + - CUSTOM + - FROM_SOURCE + ObservabilityPipelineSplunkHecDestinationType: + default: splunk_hec + description: The destination type. Always `splunk_hec`. + enum: + - splunk_hec + example: splunk_hec type: string x-enum-varnames: - - USER - - TEAM - - SERVICE - - UNKNOWN - OwnershipSettingsAttributes: - description: The attributes of the ownership settings response. - properties: - auto_tag: - description: Whether automatic ownership tagging is enabled. - example: true - type: boolean - confidence_level: - $ref: "#/components/schemas/OwnershipConfidenceLevel" - version: - description: The current version of the ownership settings. - example: 1 - format: int64 - type: integer - required: - - version - - auto_tag - - confidence_level - type: object - OwnershipSettingsData: - description: The data wrapper for an ownership settings response. + - SPLUNK_HEC + ObservabilityPipelineSplunkHecMetricsDestination: + description: |- + The `splunk_hec_metrics` destination forwards metrics to Splunk using the HTTP Event Collector (HEC). + + **Supported pipeline types:** metrics properties: - attributes: - $ref: "#/components/schemas/OwnershipSettingsAttributes" + buffer: + $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" + compression: + $ref: "#/components/schemas/ObservabilityPipelineSplunkHecMetricsDestinationCompression" + default_namespace: + description: Optional default namespace for metrics sent to Splunk HEC. + example: "custom_namespace" + type: string + endpoint_url_key: + description: Name of the environment variable or secret that holds the Splunk HEC endpoint URL. + example: SPLUNK_HEC_ENDPOINT_URL + type: string id: - description: The identifier of the ownership settings resource. - example: settings + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: splunk-hec-metrics-destination + type: string + index: + description: Optional name of the Splunk index where metrics are written. + example: "metrics" + type: string + inputs: + description: A list of component IDs whose output is used as the `input` for this component. + example: ["metrics-filter-processor"] + items: + description: The ID of a component whose output is used as input for this destination. + type: string + type: array + source: + description: The Splunk source field value for metric events. + example: "observability_pipelines" + type: string + sourcetype: + description: The Splunk sourcetype to assign to metric events. + example: "custom_sourcetype" + type: string + tls: + $ref: "#/components/schemas/ObservabilityPipelineTls" + token_key: + description: Name of the environment variable or secret that holds the Splunk HEC token. + example: SPLUNK_HEC_TOKEN type: string type: - $ref: "#/components/schemas/OwnershipSettingsType" + $ref: "#/components/schemas/ObservabilityPipelineSplunkHecMetricsDestinationType" required: - id - type - - attributes - type: object - OwnershipSettingsRequest: - description: The request body for updating ownership settings. - properties: - data: - $ref: "#/components/schemas/OwnershipSettingsRequestData" - required: - - data + - inputs type: object - OwnershipSettingsRequestAttributes: - description: The attributes of an ownership settings request. + x-pipeline-types: [metrics] + ObservabilityPipelineSplunkHecMetricsDestinationCompression: + default: none + description: Compression algorithm applied when sending metrics to Splunk HEC. + enum: + - none + - gzip + example: none + type: string + x-enum-varnames: + - NONE + - GZIP + ObservabilityPipelineSplunkHecMetricsDestinationType: + default: splunk_hec_metrics + description: The destination type. Always `splunk_hec_metrics`. + enum: + - splunk_hec_metrics + example: splunk_hec_metrics + type: string + x-enum-varnames: + - SPLUNK_HEC_METRICS + ObservabilityPipelineSplunkHecSource: + description: |- + The `splunk_hec` source implements the Splunk HTTP Event Collector (HEC) API. + + **Supported pipeline types:** logs properties: - auto_tag: - description: Whether automatic ownership tagging is enabled. + address_key: + description: Name of the environment variable or secret that holds the listen address for the HEC API. + example: SPLUNK_HEC_ADDRESS + type: string + id: + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: splunk-hec-source + type: string + store_hec_token: + description: |- + When `true`, the Splunk HEC token from the incoming request is stored in the event metadata. + This allows downstream components to forward the token to other Splunk HEC destinations. example: true type: boolean - confidence_level: - $ref: "#/components/schemas/OwnershipConfidenceLevel" - required: - - auto_tag - - confidence_level - type: object - OwnershipSettingsRequestData: - description: The data wrapper for an ownership settings request. - properties: - attributes: - $ref: "#/components/schemas/OwnershipSettingsRequestAttributes" + tls: + $ref: "#/components/schemas/ObservabilityPipelineMtlsServerTls" type: - $ref: "#/components/schemas/OwnershipSettingsType" + $ref: "#/components/schemas/ObservabilityPipelineSplunkHecSourceType" + valid_tokens: + description: |- + A list of tokens that are accepted for authenticating incoming HEC requests. When set, the source + rejects any request whose HEC token does not match an enabled entry in this list. + items: + $ref: "#/components/schemas/ObservabilityPipelineSplunkHecSourceValidToken" + maxItems: 1000 + minItems: 1 + type: array required: + - id - type - - attributes - type: object - OwnershipSettingsResponse: - description: The response returned when retrieving or updating ownership settings. - properties: - data: - $ref: "#/components/schemas/OwnershipSettingsData" - required: - - data type: object - OwnershipSettingsType: - default: ownership_settings - description: The type of the ownership settings resource. The value should always be `ownership_settings`. + x-pipeline-types: [logs] + ObservabilityPipelineSplunkHecSourceType: + default: splunk_hec + description: The source type. Always `splunk_hec`. enum: - - ownership_settings - example: ownership_settings + - splunk_hec + example: splunk_hec type: string x-enum-varnames: - - OWNERSHIP_SETTINGS - OwnershipUntaggedFindingsAttributes: - description: The counts of findings without a team tag by ownership confidence. + - SPLUNK_HEC + ObservabilityPipelineSplunkHecSourceValidToken: + description: An accepted HEC token used to authenticate incoming Splunk HEC requests. properties: - high_confidence: - description: The number of high confidence findings without a team tag. - example: 30 - format: int64 - type: integer - low_confidence: - description: The number of low confidence findings without a team tag. - example: 42 - format: int64 - type: integer - medium_confidence: - description: The number of medium confidence findings without a team tag. - example: 70 - format: int64 - type: integer - total: - description: The total number of findings without a team tag. - example: 142 - format: int64 - type: integer + enabled: + default: true + description: |- + Indicates whether this token is currently accepted. Disabled tokens are rejected without + being removed from the configuration. + example: true + type: boolean + field_to_add: + $ref: "#/components/schemas/ObservabilityPipelineSourceValidTokenFieldToAdd" + token_key: + description: Name of the environment variable or secret that holds the expected HEC token value. + example: SPLUNK_HEC_TOKEN + pattern: "^[A-Za-z0-9_]+$" + type: string required: - - total - - high_confidence - - medium_confidence - - low_confidence + - token_key type: object - OwnershipUntaggedFindingsData: - description: The data wrapper for an ownership untagged findings response. + ObservabilityPipelineSplunkTcpSource: + description: |- + The `splunk_tcp` source receives logs from a Splunk Universal Forwarder over TCP. + TLS is supported for secure transmission. + + **Supported pipeline types:** logs properties: - attributes: - $ref: "#/components/schemas/OwnershipUntaggedFindingsAttributes" + address_key: + description: Name of the environment variable or secret that holds the listen address for the Splunk TCP receiver. + example: SPLUNK_TCP_ADDRESS + type: string id: - description: The identifier of the ownership untagged findings resource. - example: untagged + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: splunk-tcp-source type: string + max_connection_duration_secs: + description: Maximum duration, in seconds, that a connection can remain open before it is closed. When unset, connections can remain open indefinitely. + example: 3600 + format: int64 + maximum: 9007199254740991 + minimum: 1 + type: integer + tls: + $ref: "#/components/schemas/ObservabilityPipelineMtlsServerTls" type: - $ref: "#/components/schemas/OwnershipUntaggedFindingsType" + $ref: "#/components/schemas/ObservabilityPipelineSplunkTcpSourceType" required: - id - type - - attributes - type: object - OwnershipUntaggedFindingsResponse: - description: The response returned when counting findings without a team tag by ownership confidence. - properties: - data: - $ref: "#/components/schemas/OwnershipUntaggedFindingsData" - required: - - data type: object - OwnershipUntaggedFindingsType: - default: ownership_untagged_findings - description: The type of the ownership untagged findings resource. The value should always be `ownership_untagged_findings`. + x-pipeline-types: [logs] + ObservabilityPipelineSplunkTcpSourceType: + default: splunk_tcp + description: The source type. Always `splunk_tcp`. enum: - - ownership_untagged_findings - example: ownership_untagged_findings + - splunk_tcp + example: splunk_tcp type: string x-enum-varnames: - - OWNERSHIP_UNTAGGED_FINDINGS - PRCoverageSummaryRequest: - description: Request object for getting code coverage summary for a pull request. + - SPLUNK_TCP + ObservabilityPipelineSumoLogicDestination: + description: |- + The `sumo_logic` destination forwards logs to Sumo Logic. + + **Supported pipeline types:** logs properties: - data: - $ref: "#/components/schemas/PRCoverageSummaryRequestData" + buffer: + $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" + encoding: + $ref: "#/components/schemas/ObservabilityPipelineSumoLogicDestinationEncoding" + endpoint_url_key: + description: Name of the environment variable or secret that holds the Sumo Logic HTTP endpoint URL. + example: SUMO_LOGIC_ENDPOINT_URL + type: string + header_custom_fields: + description: A list of custom headers to include in the request to Sumo Logic. + items: + $ref: "#/components/schemas/ObservabilityPipelineSumoLogicDestinationHeaderCustomFieldsItem" + type: array + header_host_name: + description: Optional override for the host name header. + example: "host-123" + type: string + header_source_category: + description: Optional override for the source category header. + example: "source-category" + type: string + header_source_name: + description: Optional override for the source name header. + example: "source-name" + type: string + id: + description: The unique identifier for this component. + example: "sumo-logic-destination" + type: string + inputs: + description: A list of component IDs whose output is used as the `input` for this component. + example: ["filter-processor"] + items: + description: The ID of a component whose output is used as input for this destination. + type: string + type: array + type: + $ref: "#/components/schemas/ObservabilityPipelineSumoLogicDestinationType" required: - - data + - id + - type + - inputs type: object - PRCoverageSummaryRequestAttributes: - description: Attributes for requesting code coverage summary for a pull request. + x-pipeline-types: [logs] + ObservabilityPipelineSumoLogicDestinationEncoding: + description: The output encoding format. + enum: [json, raw_message, logfmt] + example: json + type: string + x-enum-varnames: + - JSON + - RAW_MESSAGE + - LOGFMT + ObservabilityPipelineSumoLogicDestinationHeaderCustomFieldsItem: + description: Single key-value pair used as a custom log header for Sumo Logic. properties: - pr_number: - description: The pull request number. Must be a positive integer. - example: 42 - format: int64 - minimum: 1 - type: integer - repository_url: - description: The repository URL. Accepts a full URL with or without a scheme (for example, `https://github.com/org/repo` or `github.com/org/repo`). - example: https://github.com/datadog/shopist - minLength: 1 + name: + description: The header field name. + example: "X-Sumo-Category" + type: string + value: + description: The header field value. + example: "my-app-logs" type: string required: - - repository_url - - pr_number + - name + - value type: object - PRCoverageSummaryRequestData: - description: Data object for PR summary request. + ObservabilityPipelineSumoLogicDestinationType: + default: sumo_logic + description: The destination type. The value should always be `sumo_logic`. + enum: + - sumo_logic + example: sumo_logic + type: string + x-enum-varnames: + - SUMO_LOGIC + ObservabilityPipelineSumoLogicSource: + description: |- + The `sumo_logic` source receives logs from Sumo Logic collectors. + + **Supported pipeline types:** logs properties: - attributes: - $ref: "#/components/schemas/PRCoverageSummaryRequestAttributes" + address_key: + description: Name of the environment variable or secret that holds the listen address for the Sumo Logic receiver. + example: SUMO_LOGIC_ADDRESS + type: string + id: + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: "sumo-logic-source" + type: string type: - $ref: "#/components/schemas/PRCoverageSummaryRequestType" + $ref: "#/components/schemas/ObservabilityPipelineSumoLogicSourceType" required: + - id - type - - attributes type: object - PRCoverageSummaryRequestType: - description: JSON:API type for PR coverage summary request. The value must always be `ci_app_coverage_pr_summary_request`. + x-pipeline-types: [logs] + ObservabilityPipelineSumoLogicSourceType: + default: sumo_logic + description: The source type. The value should always be `sumo_logic`. enum: - - ci_app_coverage_pr_summary_request - example: ci_app_coverage_pr_summary_request + - sumo_logic + example: sumo_logic type: string x-enum-varnames: - - CI_APP_COVERAGE_PR_SUMMARY_REQUEST - PageAnnotationsAttributes: - description: Attributes of the annotations on a page. + - SUMO_LOGIC + ObservabilityPipelineSyslogNgDestination: + description: |- + The `syslog_ng` destination forwards logs to an external `syslog-ng` server over TCP or UDP using the syslog protocol. + + **Supported pipeline types:** logs properties: - annotations: - $ref: "#/components/schemas/AnnotationsInPageMap" - global_annotations: - $ref: "#/components/schemas/GlobalAnnotationIds" - widget_mapping: - $ref: "#/components/schemas/WidgetAnnotationsMap" + buffer: + $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" + endpoint_url_key: + description: Name of the environment variable or secret that holds the syslog-ng server endpoint URL. + example: SYSLOG_ENDPOINT_URL + type: string + id: + description: The unique identifier for this component. + example: "syslog-ng-destination" + type: string + inputs: + description: A list of component IDs whose output is used as the `input` for this component. + example: ["filter-processor"] + items: + description: The ID of a component whose output is used as input for this destination. + type: string + type: array + keepalive: + description: Optional socket keepalive duration in milliseconds. + example: 60000 + format: int64 + minimum: 0 + type: integer + tls: + $ref: "#/components/schemas/ObservabilityPipelineClientTls" + type: + $ref: "#/components/schemas/ObservabilityPipelineSyslogNgDestinationType" required: - - annotations - - widget_mapping - - global_annotations + - id + - type + - inputs type: object - PageAnnotationsData: - description: Annotations grouped by widget for a single page. + x-pipeline-types: [logs] + ObservabilityPipelineSyslogNgDestinationType: + default: syslog_ng + description: The destination type. The value should always be `syslog_ng`. + enum: [syslog_ng] + example: syslog_ng + type: string + x-enum-varnames: + - SYSLOG_NG + ObservabilityPipelineSyslogNgSource: + description: |- + The `syslog_ng` source listens for logs over TCP or UDP from a `syslog-ng` server using the syslog protocol. + + **Supported pipeline types:** logs properties: - attributes: - $ref: "#/components/schemas/PageAnnotationsAttributes" + address_key: + description: Name of the environment variable or secret that holds the listen address for the syslog-ng receiver. + example: SYSLOG_ADDRESS + type: string id: - description: |- - ID of the page, prefixed with the page type and joined by a colon - (for example, `dashboard:abc-def-xyz` or `notebook:1234567890`). - example: "dashboard:abc-def-xyz" + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: "syslog-ng-source" type: string + mode: + $ref: "#/components/schemas/ObservabilityPipelineSyslogSourceMode" + tls: + $ref: "#/components/schemas/ObservabilityPipelineMtlsServerTls" type: - $ref: "#/components/schemas/PageAnnotationsType" + $ref: "#/components/schemas/ObservabilityPipelineSyslogNgSourceType" required: - id - type - - attributes + - mode type: object - PageAnnotationsResponse: - description: Response containing all annotations on a page, grouped by widget. + x-pipeline-types: [logs] + ObservabilityPipelineSyslogNgSourceType: + default: syslog_ng + description: The source type. The value should always be `syslog_ng`. + enum: [syslog_ng] + example: syslog_ng + type: string + x-enum-varnames: + - SYSLOG_NG + ObservabilityPipelineSyslogSourceMode: + description: Protocol used by the syslog source to receive messages. + enum: [tcp, udp] + example: tcp + type: string + x-enum-varnames: + - TCP + - UDP + ObservabilityPipelineTagCardinalityLimitProcessor: + description: |- + The `tag_cardinality_limit` processor caps the number of distinct tag value combinations on metrics, dropping tags or events once the limit is exceeded. + + **Supported pipeline types:** metrics properties: - data: - $ref: "#/components/schemas/PageAnnotationsData" + display_name: + $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" + enabled: + description: Indicates whether the processor is enabled. + example: true + type: boolean + id: + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: "tag-cardinality-limit-processor" + type: string + include: + description: A Datadog search query used to determine which metrics this processor targets. + example: "*" + type: string + limit_exceeded_action: + $ref: "#/components/schemas/ObservabilityPipelineTagCardinalityLimitProcessorAction" + per_metric_limits: + description: A list of per-metric cardinality overrides that take precedence over the default `value_limit`. + items: + $ref: "#/components/schemas/ObservabilityPipelineTagCardinalityLimitProcessorPerMetricLimit" + maxItems: 100 + type: array + tracking_mode: + $ref: "#/components/schemas/ObservabilityPipelineTagCardinalityLimitProcessorTrackingMode" + type: + $ref: "#/components/schemas/ObservabilityPipelineTagCardinalityLimitProcessorType" + value_limit: + description: The default maximum number of distinct tag value combinations allowed per metric. + example: 10000 + format: int64 + maximum: 1000000 + minimum: 0 + type: integer required: - - data + - id + - type + - include + - limit_exceeded_action + - tracking_mode + - value_limit + - enabled type: object - PageAnnotationsType: - description: Page annotations resource type. + x-pipeline-types: [metrics] + ObservabilityPipelineTagCardinalityLimitProcessorAction: + description: The action to take when the cardinality limit is exceeded. enum: - - page_annotations - example: page_annotations + - drop_tag + - drop_event + example: drop_tag type: string x-enum-varnames: - - PAGE_ANNOTATIONS - PageUrgency: - default: high - description: On-Call Page urgency level. + - DROP_TAG + - DROP_EVENT + ObservabilityPipelineTagCardinalityLimitProcessorOverrideType: + description: How the override is applied. `limit_override` enforces a custom limit; `excluded` omits the metric or tag from cardinality tracking. enum: - - low - - high - example: high + - limit_override + - excluded + example: limit_override type: string x-enum-varnames: - - LOW - - HIGH - PaginatedResponseMeta: - description: Metadata for scores response. + - LIMIT_OVERRIDE + - EXCLUDED + ObservabilityPipelineTagCardinalityLimitProcessorPerMetricLimit: + description: A cardinality override applied to a specific metric. properties: - count: - description: Number of entities in this response. - example: 10 - format: int64 - type: integer - limit: - description: Pagination limit. - example: 10 - format: int64 - type: integer - offset: - description: Pagination offset. - example: 0 - format: int64 - type: integer - total: - description: Total number of entities available. - example: 150 + limit_exceeded_action: + $ref: "#/components/schemas/ObservabilityPipelineTagCardinalityLimitProcessorAction" + metric_name: + description: The name of the metric this override applies to. + example: "system.cpu.user" + type: string + override_type: + $ref: "#/components/schemas/ObservabilityPipelineTagCardinalityLimitProcessorOverrideType" + per_tag_limits: + description: A list of per-tag cardinality overrides that apply within this metric. Must be omitted when `override_type` is `excluded`. + items: + $ref: "#/components/schemas/ObservabilityPipelineTagCardinalityLimitProcessorPerTagLimit" + maxItems: 50 + type: array + value_limit: + description: The maximum number of distinct tag value combinations allowed for this metric. Required when `override_type` is `limit_override`. Must be omitted when `override_type` is `excluded`. + example: 10000 format: int64 + maximum: 1000000 + minimum: 0 type: integer required: - - count - - total - - limit - - offset + - metric_name + - override_type type: object - Pagination: - description: Pagination object. + ObservabilityPipelineTagCardinalityLimitProcessorPerTagLimit: + description: A cardinality override for a specific tag key within a per-metric limit. properties: - total_count: - description: Total count. - format: int64 - type: integer - total_filtered_count: - description: Total count of elements matched by the filter. + override_type: + $ref: "#/components/schemas/ObservabilityPipelineTagCardinalityLimitProcessorOverrideType" + tag_key: + description: The tag key this override applies to. + example: "host" + type: string + value_limit: + description: The maximum number of distinct values allowed for this tag. Required when `override_type` is `limit_override`. Must be omitted when `override_type` is `excluded`. + example: 5000 format: int64 + maximum: 1000000 + minimum: 0 type: integer + required: + - tag_key + - override_type type: object - PaginationMeta: - description: Response metadata. + ObservabilityPipelineTagCardinalityLimitProcessorTrackingMode: + description: Controls whether the processor uses exact or probabilistic tag tracking. properties: - page: - $ref: "#/components/schemas/PaginationMetaPage" - readOnly: true + mode: + $ref: "#/components/schemas/ObservabilityPipelineTagCardinalityLimitProcessorTrackingModeMode" + required: + - mode type: object - PaginationMetaPage: - description: Offset-based pagination schema. - example: - first_offset: 0 - last_offset: 900 - limit: 100 - next_offset: 100 - offset: 0 - prev_offset: 100 - total: 1000 - type: offset_limit + ObservabilityPipelineTagCardinalityLimitProcessorTrackingModeMode: + description: The cardinality tracking algorithm to use. + enum: + - exact_fingerprint + - probabilistic + example: exact_fingerprint + type: string + x-enum-varnames: + - EXACT_FINGERPRINT + - PROBABILISTIC + ObservabilityPipelineTagCardinalityLimitProcessorType: + default: tag_cardinality_limit + description: The processor type. The value must be `tag_cardinality_limit`. + enum: [tag_cardinality_limit] + example: tag_cardinality_limit + type: string + x-enum-varnames: + - TAG_CARDINALITY_LIMIT + ObservabilityPipelineThrottleProcessor: + description: |- + The `throttle` processor limits the number of events that pass through over a given time window. + + **Supported pipeline types:** logs properties: - first_offset: - description: Integer representing the offset to fetch the first page of results. - example: 0 - format: int64 - type: integer - last_offset: - description: Integer representing the offset to fetch the last page of results. - example: 900 - format: int64 - nullable: true - type: integer - limit: - description: Integer representing the number of elements to be returned in the results. - example: 100 - format: int64 - type: integer - next_offset: - description: >- - Integer representing the index of the first element in the next page of results. Equal to page size added to the current offset. - example: 100 - format: int64 - nullable: true - type: integer - offset: - description: Integer representing the index of the first element in the results. - example: 0 - format: int64 - type: integer - prev_offset: - description: Integer representing the index of the first element in the previous page of results. - example: 100 - format: int64 - nullable: true - type: integer - total: - description: Integer representing the total number of elements available. + display_name: + $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" + enabled: + description: Indicates whether the processor is enabled. + example: true + type: boolean + group_by: + description: Optional list of fields used to group events before the threshold has been reached. + example: ["log.user.id"] + items: + description: A log field name used to group events for independent throttling. + type: string + type: array + id: + description: The unique identifier for this processor. + example: throttle-processor + type: string + include: + description: A Datadog search query used to determine which logs this processor targets. + example: env:prod + type: string + threshold: + description: the number of events allowed in a given time window. Events sent after the threshold has been reached, are dropped. example: 1000 format: int64 - nullable: true type: integer type: - $ref: "#/components/schemas/PaginationMetaPageType" + $ref: "#/components/schemas/ObservabilityPipelineThrottleProcessorType" + window: + description: The time window in seconds over which the threshold applies. + example: 60.0 + format: double + type: number + required: + - id + - type + - include + - threshold + - window + - enabled type: object - PaginationMetaPageType: - default: offset_limit - description: The pagination type used for offset-based pagination. + x-pipeline-types: [logs] + ObservabilityPipelineThrottleProcessorType: + default: throttle + description: The processor type. The value should always be `throttle`. enum: - - offset_limit - example: offset_limit + - throttle + example: throttle type: string x-enum-varnames: - - OFFSET_LIMIT - Parameter: - description: The definition of `Parameter` object. + - THROTTLE + ObservabilityPipelineTls: + description: Configuration for enabling TLS encryption between the pipeline component and external services. properties: - name: - description: The `Parameter` `name`. - example: "" - minLength: 1 + ca_file: + description: Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate. + type: string + crt_file: + description: Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services. + example: "/path/to/cert.crt" + type: string + key_file: + description: Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication. + type: string + key_pass_key: + description: Name of the environment variable or secret that holds the passphrase for the private key file. + example: TLS_KEY_PASSPHRASE type: string - value: - description: The `Parameter` `value`. required: - - name - - value + - crt_file type: object - PartialAPIKey: - description: Partial Datadog API key. + ObservabilityPipelineWebsocketSource: + description: |- + The `websocket` source ingests logs from a WebSocket server using the `ws://` or `wss://` protocol. + + **Supported pipeline types:** logs. properties: - attributes: - $ref: "#/components/schemas/PartialAPIKeyAttributes" + auth_strategy: + $ref: "#/components/schemas/ObservabilityPipelineWebsocketSourceAuthStrategy" + custom_key: + description: Name of the environment variable or secret that holds the custom authorization header value. Used when `auth_strategy` is `custom`. + example: WS_AUTH_CUSTOM_HEADER + type: string + decoding: + $ref: "#/components/schemas/ObservabilityPipelineDecoding" id: - description: ID of the API key. + description: The unique identifier for this component. + example: websocket-source + type: string + password_key: + description: Name of the environment variable or secret that holds the password. Used when `auth_strategy` is `basic`. + example: WS_AUTH_PASSWORD + type: string + tls: + $ref: "#/components/schemas/ObservabilityPipelineWebsocketSourceTls" + token_key: + description: Name of the environment variable or secret that holds the bearer token. Used when `auth_strategy` is `bearer`. + example: WS_BEARER_TOKEN type: string - relationships: - $ref: "#/components/schemas/APIKeyRelationships" type: - $ref: "#/components/schemas/APIKeysType" + $ref: "#/components/schemas/ObservabilityPipelineWebsocketSourceType" + uri_key: + description: Name of the environment variable or secret that holds the WebSocket server URI (`ws://` or `wss://`). + example: WS_URI + type: string + username_key: + description: Name of the environment variable or secret that holds the username. Used when `auth_strategy` is `basic`. + example: WS_AUTH_USERNAME + type: string + required: + - id + - type + - decoding + - auth_strategy type: object - PartialAPIKeyAttributes: - description: Attributes of a partial API key. + x-pipeline-types: [logs] + ObservabilityPipelineWebsocketSourceAuthStrategy: + description: Authentication strategy for the WebSocket source connection. + enum: + - none + - basic + - bearer + - custom + example: bearer + type: string + x-enum-varnames: + - NONE + - BASIC + - BEARER + - CUSTOM + ObservabilityPipelineWebsocketSourceTls: + description: TLS configuration for the WebSocket source. Use `enabled` for standard `wss://` connections, or `with_client_cert` to present a client certificate for mutual TLS. + oneOf: + - $ref: "#/components/schemas/ObservabilityPipelineWebsocketSourceTlsEnabled" + - $ref: "#/components/schemas/ObservabilityPipelineWebsocketSourceTlsWithClientCert" + ObservabilityPipelineWebsocketSourceTlsEnabled: + description: TLS configuration that enables encryption without a client certificate. Use this for standard `wss://` connections that do not require mutual TLS. properties: - category: - description: The category of the API key. + mode: + $ref: "#/components/schemas/ObservabilityPipelineWebsocketSourceTlsEnabledMode" + required: + - mode + type: object + ObservabilityPipelineWebsocketSourceTlsEnabledMode: + description: TLS mode. Must be `enabled`. + enum: + - enabled + example: enabled + type: string + x-enum-varnames: + - ENABLED + ObservabilityPipelineWebsocketSourceTlsWithClientCert: + description: TLS configuration that enables encryption and presents a client certificate for mutual TLS authentication. + properties: + ca_file: + description: Path to the Certificate Authority (CA) file used to validate the remote server's TLS certificate. + example: /path/to/ca.crt type: string - created_at: - description: Creation date of the API key. - example: "2020-11-23T10:00:00.000Z" - readOnly: true + crt_file: + description: Path to the TLS client certificate file used to identify this source to the remote server. + example: /path/to/client.crt type: string - date_last_used: - description: Date the API Key was last used. - example: "2020-11-27T10:00:00.000Z" - format: date-time - nullable: true - readOnly: true + key_file: + description: Path to the private key file associated with the client certificate. + example: /path/to/client.key type: string - last4: - description: The last four characters of the API key. - example: "abcd" - maxLength: 4 - minLength: 4 - readOnly: true + key_pass_key: + description: Name of the environment variable or secret that holds the passphrase for the private key file. + example: WS_TLS_KEY_PASSPHRASE type: string - modified_at: - description: Date the API key was last modified. - example: "2020-11-23T10:00:00.000Z" - readOnly: true + mode: + $ref: "#/components/schemas/ObservabilityPipelineWebsocketSourceTlsWithClientCertMode" + required: + - mode + - crt_file + type: object + ObservabilityPipelineWebsocketSourceTlsWithClientCertMode: + description: TLS mode. Must be `with_client_cert`. + enum: + - with_client_cert + example: with_client_cert + type: string + x-enum-varnames: + - WITH_CLIENT_CERT + ObservabilityPipelineWebsocketSourceType: + default: websocket + description: The source type. The value should always be `websocket`. + enum: + - websocket + example: websocket + type: string + x-enum-varnames: + - WEBSOCKET + OktaAPIToken: + description: The definition of the `OktaAPIToken` object. + properties: + api_token: + description: The `OktaAPIToken` `api_token`. + example: "" type: string - name: - description: Name of the API key. - example: "API Key for submitting metrics" + domain: + description: The `OktaAPIToken` `domain`. + example: "" type: string - private_action_runner_enroll_enabled: - description: Whether the API key can enroll a Private Action Runner. - type: boolean - remote_config_read_enabled: - description: The remote config read enabled status. - type: boolean + type: + $ref: "#/components/schemas/OktaAPITokenType" + required: + - type + - domain + - api_token type: object - PartialApplicationKey: - description: Partial Datadog application key. + OktaAPITokenType: + description: The definition of the `OktaAPIToken` object. + enum: + - OktaAPIToken + example: OktaAPIToken + type: string + x-enum-varnames: + - OKTAAPITOKEN + OktaAPITokenUpdate: + description: The definition of the `OktaAPIToken` object. properties: - attributes: - $ref: "#/components/schemas/PartialApplicationKeyAttributes" - id: - description: ID of the application key. + api_token: + description: The `OktaAPITokenUpdate` `api_token`. + type: string + domain: + description: The `OktaAPITokenUpdate` `domain`. type: string - relationships: - $ref: "#/components/schemas/ApplicationKeyRelationships" type: - $ref: "#/components/schemas/ApplicationKeysType" + $ref: "#/components/schemas/OktaAPITokenType" + required: + - type type: object - PartialApplicationKeyAttributes: - description: Attributes of a partial application key. + OktaAccount: + description: Schema for an Okta account. properties: - created_at: - description: Creation date of the application key. - example: "2020-11-23T10:00:00.000Z" - readOnly: true + attributes: + $ref: "#/components/schemas/OktaAccountAttributes" + id: + description: The ID of the Okta account, a UUID hash of the account name. + example: "f749daaf-682e-4208-a38d-c9b43162c609" type: string - last4: - description: The last four characters of the application key. - example: "abcd" - maxLength: 4 - minLength: 4 - readOnly: true + type: + $ref: "#/components/schemas/OktaAccountType" + required: + - attributes + - type + type: object + OktaAccountAttributes: + description: Attributes object for an Okta account. + properties: + api_key: + description: The API key of the Okta account. type: string - last_used_at: - description: Last usage timestamp of the application key. - example: "2020-12-20T10:00:00.000Z" - nullable: true - readOnly: true + writeOnly: true + auth_method: + description: The authorization method for an Okta account. + example: "oauth" + type: string + client_id: + description: The Client ID of an Okta app integration. + type: string + client_secret: + description: The client secret of an Okta app integration. + type: string + writeOnly: true + domain: + description: The domain of the Okta account. + example: "https://example.okta.com/" type: string name: - description: Name of the application key. - example: "Application Key for managing dashboards" + description: The name of the Okta account. + example: "Okta-Prod" type: string - scopes: - description: Array of scopes to grant the application key. - example: ["dashboards_read", "dashboards_write", "dashboards_public_share"] - items: - description: Name of scope. - type: string - nullable: true - type: array + required: + - auth_method + - domain + - name type: object - PartialApplicationKeyResponse: - description: Response for retrieving a partial application key. + OktaAccountRequest: + description: Request object for an Okta account. properties: data: - $ref: "#/components/schemas/PartialApplicationKey" - included: - description: Array of objects related to the application key. - items: - $ref: "#/components/schemas/ApplicationKeyResponseIncludedItem" - type: array + $ref: "#/components/schemas/OktaAccount" + required: + - data type: object - PatchAttachmentRequest: - description: Request to update an attachment. + OktaAccountResponse: + description: Response object for an Okta account. properties: data: - $ref: "#/components/schemas/PatchAttachmentRequestData" + $ref: "#/components/schemas/OktaAccount" type: object - PatchAttachmentRequestData: - description: Attachment data for an update request. + OktaAccountResponseData: + description: Data object of an Okta account properties: attributes: - $ref: "#/components/schemas/PatchAttachmentRequestDataAttributes" + $ref: "#/components/schemas/OktaAccountAttributes" id: - description: The unique identifier of the attachment. - example: "00000000-abcd-0002-0000-000000000000" + description: The ID of the Okta account, a UUID hash of the account name. + example: "f749daaf-682e-4208-a38d-c9b43162c609" type: string type: - $ref: "#/components/schemas/IncidentAttachmentType" + $ref: "#/components/schemas/OktaAccountType" required: + - attributes + - id - type type: object - PatchAttachmentRequestDataAttributes: - description: The attributes for updating an attachment. + OktaAccountType: + default: okta-accounts + description: Account type for an Okta account. + enum: + - okta-accounts + example: okta-accounts + type: string + x-enum-varnames: + - OKTA_ACCOUNTS + OktaAccountUpdateRequest: + description: Payload schema when updating an Okta account. properties: - attachment: - $ref: "#/components/schemas/PatchAttachmentRequestDataAttributesAttachment" + data: + $ref: "#/components/schemas/OktaAccountUpdateRequestData" + required: + - data type: object - PatchAttachmentRequestDataAttributesAttachment: - description: The updated attachment object. + OktaAccountUpdateRequestAttributes: + description: Attributes object for updating an Okta account. properties: - documentUrl: - description: The updated URL for the attachment. - example: https://app.datadoghq.com/notebook/124/Postmortem-IR-124 + api_key: + description: The API key of the Okta account. type: string - title: - description: The updated title for the attachment. - example: Postmortem-IR-124 + writeOnly: true + auth_method: + description: The authorization method for an Okta account. + example: "oauth" + type: string + client_id: + description: The Client ID of an Okta app integration. + type: string + client_secret: + description: The client secret of an Okta app integration. + type: string + writeOnly: true + domain: + description: The domain associated with an Okta account. + example: "https://dev-test.okta.com/" type: string + required: + - auth_method + - domain type: object - PatchComponentRequest: - description: Request object for updating a component. - example: - data: - attributes: - name: Metrics Intake Service - position: 4 - id: 1234abcd-12ab-34cd-56ef-123456abcdef - type: components + OktaAccountUpdateRequestData: + description: Data object for updating an Okta account. + properties: + attributes: + $ref: "#/components/schemas/OktaAccountUpdateRequestAttributes" + type: + $ref: "#/components/schemas/OktaAccountType" + type: object + OktaAccountsResponse: + description: The expected response schema when getting Okta accounts. properties: data: - $ref: "#/components/schemas/PatchComponentRequestData" + description: List of Okta accounts. + items: + $ref: "#/components/schemas/OktaAccountResponseData" + type: array type: object - PatchComponentRequestData: - description: The data object for updating a component. + OktaCredentials: + description: The definition of the `OktaCredentials` object. + oneOf: + - $ref: "#/components/schemas/OktaAPIToken" + OktaCredentialsUpdate: + description: The definition of the `OktaCredentialsUpdate` object. + oneOf: + - $ref: "#/components/schemas/OktaAPITokenUpdate" + OktaIntegration: + description: The definition of the `OktaIntegration` object. properties: - attributes: - $ref: "#/components/schemas/PatchComponentRequestDataAttributes" - id: - description: The ID of the component. - example: "1234abcd-12ab-34cd-56ef-123456abcdef" - format: uuid - type: string + credentials: + $ref: "#/components/schemas/OktaCredentials" type: - $ref: "#/components/schemas/StatusPagesComponentGroupType" + $ref: "#/components/schemas/OktaIntegrationType" required: - - attributes - - id - type + - credentials type: object - PatchComponentRequestDataAttributes: - description: The supported attributes for updating a component. + OktaIntegrationType: + description: The definition of the `OktaIntegrationType` object. + enum: + - Okta + example: Okta + type: string + x-enum-varnames: + - OKTA + OktaIntegrationUpdate: + description: The definition of the `OktaIntegrationUpdate` object. properties: - name: - description: The name of the component. - example: Web App - type: string - position: - description: The position of the component. If the component belongs to a group, the position is relative to the other components in the group. - example: 1 - format: int64 - type: integer + credentials: + $ref: "#/components/schemas/OktaCredentialsUpdate" + type: + $ref: "#/components/schemas/OktaIntegrationType" + required: + - type type: object - PatchDegradationRequest: - description: Request object for updating a degradation. + OnCallNotificationRule: + description: A top-level wrapper for a notification rule example: data: attributes: - components_affected: - - id: 1234abcd-12ab-34cd-56ef-123456abcdef - status: operational - description: We've deployed a fix and latency has returned to normal. This issue has been resolved. - status: resolved - id: 1234abcd-12ab-34cd-56ef-123456abcdef - type: degradations + "category": "high_urgency" + channel_settings: + method: "sms" + type: "phone" + "delay_minutes": 1 + id: 27590dae-47be-4a7d-9abf-8f4e45124020 + relationships: + channel: + data: + id: 1562fab3-a8c2-49e2-8f3a-28dcda2405e2 + type: notification_channels + type: notification_rules properties: data: - $ref: "#/components/schemas/PatchDegradationRequestData" - meta: - $ref: "#/components/schemas/DegradationRequestMeta" - description: The supported metadata for updating a degradation. - type: object - PatchDegradationRequestData: - description: The data object for updating a degradation. - properties: - attributes: - $ref: "#/components/schemas/PatchDegradationRequestDataAttributes" - id: - description: The ID of the degradation. - example: "1234abcd-12ab-34cd-56ef-123456abcdef" - format: uuid - type: string - relationships: - $ref: "#/components/schemas/PatchDegradationRequestDataRelationships" - type: - $ref: "#/components/schemas/PatchDegradationRequestDataType" - required: - - attributes - - id - - type - type: object - PatchDegradationRequestDataAttributes: - description: The supported attributes for updating a degradation. - properties: - components_affected: - description: The components affected by the degradation. - example: - - id: 1234abcd-12ab-34cd-56ef-123456abcdef - status: operational + $ref: "#/components/schemas/OnCallNotificationRuleData" + included: items: - $ref: "#/components/schemas/PatchDegradationRequestDataAttributesComponentsAffectedItems" + $ref: "#/components/schemas/OnCallNotificationRulesIncluded" type: array - description: - description: The description of the degradation. - example: We've deployed a fix and latency has returned to normal. This issue has been resolved. - type: string - status: - $ref: "#/components/schemas/PatchDegradationRequestDataAttributesStatus" - example: resolved - title: - description: The title of the degradation. - example: Elevated API Latency - type: string + required: + - data type: object - PatchDegradationRequestDataAttributesComponentsAffectedItems: - description: A component affected by a degradation. + OnCallNotificationRuleAttributes: + description: Attributes for an on-call notification rule. properties: - id: - description: The ID of the component. Must be a component of type `component`. - example: "1234abcd-12ab-34cd-56ef-123456abcdef" - format: uuid - type: string - name: - description: The name of the component. - readOnly: true - type: string - status: - $ref: "#/components/schemas/StatusPagesComponentDataAttributesStatus" - required: - - id - - status + category: + $ref: "#/components/schemas/OnCallNotificationRuleCategory" + channel_settings: + $ref: "#/components/schemas/OnCallNotificationRuleChannelSettings" + description: Configuration for the associated channel, if necessary + nullable: true + delay_minutes: + description: The number of minutes that will elapse before this rule is evaluated. 0 indicates immediate evaluation + format: int64 + type: integer type: object - PatchDegradationRequestDataAttributesStatus: - description: The status of the degradation. + OnCallNotificationRuleCategory: + default: high_urgency + description: "Specifies the category a notification rule will apply to" enum: - - investigating - - identified - - monitoring - - resolved + - high_urgency + - low_urgency type: string x-enum-varnames: - - INVESTIGATING - - IDENTIFIED - - MONITORING - - RESOLVED - PatchDegradationRequestDataRelationships: - description: The supported relationships for updating a degradation. - properties: - template: - $ref: "#/components/schemas/PatchDegradationRequestDataRelationshipsTemplate" - description: The template used to create the degradation. - type: object - PatchDegradationRequestDataRelationshipsTemplate: - description: The template used to create the degradation. + - HIGH_URGENCY + - LOW_URGENCY + OnCallNotificationRuleChannelRelationship: + description: Relationship object for creating a notification rule properties: data: - $ref: "#/components/schemas/PatchDegradationRequestDataRelationshipsTemplateData" + $ref: "#/components/schemas/OnCallNotificationRuleChannelRelationshipData" required: - data type: object - PatchDegradationRequestDataRelationshipsTemplateData: - description: The data object identifying the template used to create the degradation. + OnCallNotificationRuleChannelRelationshipData: + description: Channel relationship data for creating a notification rule properties: id: - description: The ID of the degradation template. - example: "" + description: ID of the notification channel type: string type: - $ref: "#/components/schemas/PatchDegradationTemplateRequestDataType" - required: - - type - - id - type: object - PatchDegradationRequestDataType: - default: degradations - description: Degradations resource type. - enum: - - degradations - example: degradations - type: string - x-enum-varnames: - - DEGRADATIONS - PatchDegradationTemplateRequest: - description: Request object for updating a degradation template. - properties: - data: - $ref: "#/components/schemas/PatchDegradationTemplateRequestData" + $ref: "#/components/schemas/NotificationChannelType" type: object - PatchDegradationTemplateRequestData: - description: The data object for updating a degradation template. + OnCallNotificationRuleChannelSettings: + description: "Defines the configuration for a channel associated with a notification rule" + oneOf: + - $ref: "#/components/schemas/OnCallPhoneNotificationRuleSettings" + OnCallNotificationRuleData: + description: Data for an on-call notification rule properties: attributes: - $ref: "#/components/schemas/PatchDegradationTemplateRequestDataAttributes" + $ref: "#/components/schemas/OnCallNotificationRuleAttributes" id: - description: The ID of the degradation template. - example: "" + description: Unique identifier for the rule type: string + relationships: + $ref: "#/components/schemas/OnCallNotificationRuleRelationships" type: - $ref: "#/components/schemas/PatchDegradationTemplateRequestDataType" + $ref: "#/components/schemas/OnCallNotificationRuleType" required: - type - - id type: object - PatchDegradationTemplateRequestDataAttributes: - description: The supported attributes for updating a degradation template. + OnCallNotificationRuleRelationships: + description: Relationship object for creating a notification rule properties: - components_affected: - description: The components affected by a degradation created from this template. - items: - $ref: "#/components/schemas/PatchDegradationTemplateRequestDataAttributesComponentsAffectedItems" - type: array - degradation_title: - description: The title used for a degradation created from this template. - type: string - name: - description: The name of the degradation template. - type: string - updates: - description: The pre-filled updates for a degradation created from this template. - items: - $ref: "#/components/schemas/PatchDegradationTemplateRequestDataAttributesUpdatesItems" - type: array + channel: + $ref: "#/components/schemas/OnCallNotificationRuleChannelRelationship" type: object - PatchDegradationTemplateRequestDataAttributesComponentsAffectedItems: - description: A component affected by a degradation created from this template. + OnCallNotificationRuleRequestAttributes: + description: Attributes for creating or modifying an on-call notification rule. properties: - id: - description: The ID of the component. Must be a component of type `component`. - example: "" - type: string - name: - description: The name of the component. - readOnly: true - type: string - status: - $ref: "#/components/schemas/PatchDegradationTemplateRequestDataAttributesComponentsAffectedItemsStatus" - required: - - id - - status + category: + $ref: "#/components/schemas/OnCallNotificationRuleCategory" + channel_settings: + $ref: "#/components/schemas/OnCallNotificationRuleChannelSettings" + description: Configuration for the associated channel, if necessary + nullable: true + delay_minutes: + description: The number of minutes that will elapse before this rule is evaluated. 0 indicates immediate evaluation + format: int64 + type: integer type: object - PatchDegradationTemplateRequestDataAttributesComponentsAffectedItemsStatus: - description: The status of the component. + OnCallNotificationRuleType: + default: notification_rules + description: "Indicates that the resource is of type 'notification_rules'." enum: - - operational - - degraded - - partial_outage - - major_outage - example: operational + - notification_rules + example: notification_rules type: string x-enum-varnames: - - OPERATIONAL - - DEGRADED - - PARTIAL_OUTAGE - - MAJOR_OUTAGE - PatchDegradationTemplateRequestDataAttributesUpdatesItems: - description: A pre-filled update for a degradation created from this template. - properties: - message: - description: The message of the update. - type: string - status: - $ref: "#/components/schemas/CreateDegradationRequestDataAttributesStatus" - required: - - status - type: object - PatchDegradationTemplateRequestDataType: - default: degradation_templates - description: Degradation templates resource type. + - NOTIFICATION_RULES + OnCallNotificationRulesIncluded: + description: Represents additional included resources for a on-call notification rules + oneOf: + - $ref: "#/components/schemas/NotificationChannelData" + OnCallPageTargetType: + description: The kind of target, `team_id` | `team_handle` | `user_id`. enum: - - degradation_templates - example: degradation_templates + - team_id + - team_handle + - user_id + example: team_id type: string x-enum-varnames: - - DEGRADATION_TEMPLATES - PatchDegradationUpdateRequest: - description: Request object for editing a degradation update. - example: - data: - attributes: - description: We've identified the source of the latency increase and are deploying a fix. - status: identified - id: 00000000-0000-0000-0000-000000000000 - type: degradation_updates + - TEAM_ID + - TEAM_HANDLE + - USER_ID + OnCallPhoneNotificationRuleMethod: + description: "Specifies the method in which a phone is used in a notification rule" + enum: + - sms + - voice + example: sms + type: string + x-enum-varnames: + - SMS + - VOICE + OnCallPhoneNotificationRuleSettings: + description: "Configuration for using a phone notification channel in a notification rule" properties: - data: - $ref: "#/components/schemas/PatchDegradationUpdateRequestData" + method: + $ref: "#/components/schemas/OnCallPhoneNotificationRuleMethod" + type: + $ref: "#/components/schemas/NotificationChannelPhoneConfigType" + required: + - type + - method type: object - PatchDegradationUpdateRequestData: - description: The data object for editing a degradation update. + OnCallTrigger: + description: "Trigger a workflow from an On-Call Page or On-Call Handover. For automatic triggering a handle must be configured and the workflow must be published." + properties: + rateLimit: + $ref: "#/components/schemas/TriggerRateLimit" + type: object + OnCallTriggerWrapper: + description: "Schema for an On-Call-based trigger." + properties: + onCallTrigger: + $ref: "#/components/schemas/OnCallTrigger" + startStepNames: + $ref: "#/components/schemas/StartStepNames" + required: + - onCallTrigger + type: object + OnDemandConcurrencyCap: + description: On-demand concurrency cap. properties: attributes: - $ref: "#/components/schemas/PatchDegradationUpdateRequestDataAttributes" - id: - description: The ID of the degradation update to edit. - type: string + $ref: "#/components/schemas/OnDemandConcurrencyCapAttributes" type: - $ref: "#/components/schemas/PatchDegradationUpdateRequestDataType" - required: - - type + $ref: "#/components/schemas/OnDemandConcurrencyCapType" type: object - PatchDegradationUpdateRequestDataAttributes: - description: Attributes for editing a degradation update. + OnDemandConcurrencyCapAttributes: + description: On-demand concurrency cap attributes. properties: - description: - description: The message body of the update. - type: string - status: - $ref: "#/components/schemas/PatchDegradationUpdateRequestDataAttributesStatus" + on_demand_concurrency_cap: + description: Value of the on-demand concurrency cap. + format: double + type: number type: object - PatchDegradationUpdateRequestDataAttributesStatus: - description: The status of the degradation update. + OnDemandConcurrencyCapResponse: + description: On-demand concurrency cap response. + properties: + data: + $ref: "#/components/schemas/OnDemandConcurrencyCap" + type: object + OnDemandConcurrencyCapType: + description: On-demand concurrency cap type. enum: - - investigating - - identified - - monitoring + - on_demand_concurrency_cap type: string x-enum-varnames: - - INVESTIGATING - - IDENTIFIED - - MONITORING - PatchDegradationUpdateRequestDataType: - default: degradation_updates - description: Degradation updates resource type. + - ON_DEMAND_CONCURRENCY_CAP + OpenAIAPIKey: + description: The definition of the `OpenAIAPIKey` object. + properties: + api_token: + description: The `OpenAIAPIKey` `api_token`. + example: "" + type: string + type: + $ref: "#/components/schemas/OpenAIAPIKeyType" + required: + - type + - api_token + type: object + OpenAIAPIKeyType: + description: The definition of the `OpenAIAPIKey` object. enum: - - degradation_updates - example: degradation_updates + - OpenAIAPIKey + example: OpenAIAPIKey type: string x-enum-varnames: - - DEGRADATION_UPDATES - PatchIncidentNotificationTemplateRequest: - description: Update request for a notification template. + - OPENAIAPIKEY + OpenAIAPIKeyUpdate: + description: The definition of the `OpenAIAPIKey` object. properties: - data: - $ref: "#/components/schemas/IncidentNotificationTemplateUpdateData" + api_token: + description: The `OpenAIAPIKeyUpdate` `api_token`. + type: string + type: + $ref: "#/components/schemas/OpenAIAPIKeyType" required: - - data + - type type: object - PatchMaintenanceRequest: - description: Request object for updating a maintenance. - example: - data: - attributes: - completed_date: "2026-02-18T20:01:13.332360075Z" - in_progress_description: We are currently performing maintenance on the API to improve performance for 40 minutes. - scheduled_description: We will be performing maintenance on the API to improve performance for 40 minutes. - start_date: "2026-02-18T19:21:13.332360075Z" - title: API Maintenance - id: 1234abcd-12ab-34cd-56ef-123456abcdef - type: maintenances + OpenAICredentials: + description: The definition of the `OpenAICredentials` object. + oneOf: + - $ref: "#/components/schemas/OpenAIAPIKey" + OpenAICredentialsUpdate: + description: The definition of the `OpenAICredentialsUpdate` object. + oneOf: + - $ref: "#/components/schemas/OpenAIAPIKeyUpdate" + OpenAIIntegration: + description: The definition of the `OpenAIIntegration` object. properties: - data: - $ref: "#/components/schemas/PatchMaintenanceRequestData" + credentials: + $ref: "#/components/schemas/OpenAICredentials" + type: + $ref: "#/components/schemas/OpenAIIntegrationType" + required: + - type + - credentials type: object - PatchMaintenanceRequestData: - description: The data object for updating a maintenance. + OpenAIIntegrationType: + description: The definition of the `OpenAIIntegrationType` object. + enum: + - OpenAI + example: OpenAI + type: string + x-enum-varnames: + - OPENAI + OpenAIIntegrationUpdate: + description: The definition of the `OpenAIIntegrationUpdate` object. properties: - attributes: - $ref: "#/components/schemas/PatchMaintenanceRequestDataAttributes" - id: - description: The ID of the maintenance. - example: "1234abcd-12ab-34cd-56ef-123456abcdef" - format: uuid - type: string - relationships: - $ref: "#/components/schemas/PatchMaintenanceRequestDataRelationships" + credentials: + $ref: "#/components/schemas/OpenAICredentialsUpdate" type: - $ref: "#/components/schemas/PatchMaintenanceRequestDataType" + $ref: "#/components/schemas/OpenAIIntegrationType" required: - - attributes - type - - id type: object - PatchMaintenanceRequestDataAttributes: - description: The supported attributes for updating a maintenance. + OpenAPIEndpoint: + description: Endpoint info extracted from an `OpenAPI` specification. properties: - canceled_description: - description: The description shown when the maintenance is canceled. - type: string - completed_date: - description: Timestamp of when the maintenance was completed. - format: date-time - type: string - completed_description: - description: The description shown when the maintenance is completed. - type: string - components_affected: - description: The components affected by the maintenance. - items: - $ref: "#/components/schemas/PatchMaintenanceRequestDataAttributesComponentsAffectedItems" - type: array - in_progress_description: - description: The description shown while the maintenance is in progress. - type: string - scheduled_description: - description: The description shown when the maintenance is scheduled. - type: string - start_date: - description: Timestamp of when the maintenance is scheduled to start. - format: date-time + method: + description: The endpoint method. type: string - status: - $ref: "#/components/schemas/MaintenanceDataAttributesStatus" - description: The status of the maintenance. - title: - description: The title of the maintenance. + path: + description: The endpoint path. type: string type: object - PatchMaintenanceRequestDataAttributesComponentsAffectedItems: - description: A component affected by a maintenance. + OpenAPIFile: + description: Object for API data in an `OpenAPI` format as a file. properties: - id: - description: The ID of the component. Must be a component of type `component`. - example: "1234abcd-12ab-34cd-56ef-123456abcdef" - format: uuid + openapi_spec_file: + description: Binary `OpenAPI` spec file + format: binary type: string - name: - description: The name of the component. - readOnly: true + type: object + OpsgenieAccountCreateAttributes: + description: The Opsgenie account attributes for a create request. + properties: + api_key: + description: The Opsgenie API key for your Opsgenie account. + example: "00000000-0000-0000-0000-000000000000" + minLength: 1 type: string - status: - $ref: "#/components/schemas/PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus" + region: + $ref: "#/components/schemas/OpsgenieServiceRegionType" required: - - id - - status + - api_key + - region type: object - PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus: - description: The status of the component. - enum: - - operational - - maintenance - example: operational - type: string - x-enum-varnames: - - OPERATIONAL - - MAINTENANCE - PatchMaintenanceRequestDataRelationships: - description: The supported relationships for updating a maintenance. + OpsgenieAccountCreateData: + description: Opsgenie account data for a create request. properties: - template: - $ref: "#/components/schemas/PatchMaintenanceRequestDataRelationshipsTemplate" - description: The template used to create the maintenance. + attributes: + $ref: "#/components/schemas/OpsgenieAccountCreateAttributes" + type: + $ref: "#/components/schemas/OpsgenieAccountType" + required: + - type + - attributes type: object - PatchMaintenanceRequestDataRelationshipsTemplate: - description: The template used to create the maintenance. + OpsgenieAccountCreateRequest: + description: Create request for an Opsgenie account. properties: data: - $ref: "#/components/schemas/PatchMaintenanceRequestDataRelationshipsTemplateData" + $ref: "#/components/schemas/OpsgenieAccountCreateData" required: - data type: object - PatchMaintenanceRequestDataRelationshipsTemplateData: - description: The data object identifying the template used to create the maintenance. + OpsgenieAccountResponse: + description: Response containing an Opsgenie account. properties: + data: + $ref: "#/components/schemas/OpsgenieAccountResponseData" + required: + - data + type: object + OpsgenieAccountResponseAttributes: + description: The attributes from an Opsgenie account response. + properties: + region: + $ref: "#/components/schemas/OpsgenieServiceRegionType" + type: object + OpsgenieAccountResponseData: + description: Opsgenie account data from a response. + properties: + attributes: + $ref: "#/components/schemas/OpsgenieAccountResponseAttributes" id: - description: The ID of the maintenance template. - example: "" + description: The ID of the Opsgenie account. + example: "596da4af-0563-4097-90ff-07230c3f9db3" + maxLength: 100 + minLength: 1 type: string type: - $ref: "#/components/schemas/PatchMaintenanceTemplateRequestDataType" + $ref: "#/components/schemas/OpsgenieAccountType" required: - - type - id + - type + - attributes type: object - PatchMaintenanceRequestDataType: - default: maintenances - description: Maintenances resource type. + OpsgenieAccountType: + default: opsgenie-account + description: Opsgenie account resource type. enum: - - maintenances - example: maintenances + - opsgenie-account + example: opsgenie-account type: string x-enum-varnames: - - MAINTENANCES - PatchMaintenanceTemplateRequest: - description: Request object for updating a maintenance template. + - OPSGENIE_ACCOUNT + OpsgenieAccountUpdateAttributes: + description: The Opsgenie account attributes for an update request. properties: - data: - $ref: "#/components/schemas/PatchMaintenanceTemplateRequestData" + api_key: + description: The Opsgenie API key for your Opsgenie account. + example: "00000000-0000-0000-0000-000000000000" + minLength: 1 + type: string + region: + $ref: "#/components/schemas/OpsgenieServiceRegionType" type: object - PatchMaintenanceTemplateRequestData: - description: The data object for updating a maintenance template. + OpsgenieAccountUpdateData: + description: Opsgenie account data for an update request. properties: attributes: - $ref: "#/components/schemas/PatchMaintenanceTemplateRequestDataAttributes" + $ref: "#/components/schemas/OpsgenieAccountUpdateAttributes" id: - description: The ID of the maintenance template. - example: "" + description: The ID of the Opsgenie account. + example: "596da4af-0563-4097-90ff-07230c3f9db3" + maxLength: 100 + minLength: 1 type: string type: - $ref: "#/components/schemas/PatchMaintenanceTemplateRequestDataType" + $ref: "#/components/schemas/OpsgenieAccountType" required: - - type - id + - type + - attributes type: object - PatchMaintenanceTemplateRequestDataAttributes: - description: The supported attributes for updating a maintenance template. + OpsgenieAccountUpdateRequest: + description: Update request for an Opsgenie account. properties: - completed_description: - description: The description shown when a maintenance created from this template is completed. - type: string - component_ids: - description: The IDs of the components affected by a maintenance created from this template. + data: + $ref: "#/components/schemas/OpsgenieAccountUpdateData" + required: + - data + type: object + OpsgenieAccountsResponse: + description: Response with a list of Opsgenie accounts. + properties: + data: + description: An array of Opsgenie accounts. + example: [{"attributes": {"region": "us"}, "id": "596da4af-0563-4097-90ff-07230c3f9db3", "type": "opsgenie-account"}, {"attributes": {"region": "eu"}, "id": "0d2937f1-b561-44fa-914a-99910f848014", "type": "opsgenie-account"}] items: - type: string + $ref: "#/components/schemas/OpsgenieAccountResponseData" type: array - in_progress_description: - description: The description shown while a maintenance created from this template is in progress. - type: string - maintenance_title: - description: The title used for a maintenance created from this template. + required: + - data + type: object + OpsgenieServiceCreateAttributes: + description: The Opsgenie service attributes for a create request. + properties: + custom_url: + description: The custom URL for a custom region. + example: "https://example.com" type: string name: - description: The name of the maintenance template. + description: The name for the Opsgenie service. + example: "fake-opsgenie-service-name" + maxLength: 100 type: string - scheduled_description: - description: The description shown when a maintenance created from this template is scheduled. + opsgenie_api_key: + description: The Opsgenie API key for your Opsgenie service. + example: "00000000-0000-0000-0000-000000000000" type: string + region: + $ref: "#/components/schemas/OpsgenieServiceRegionType" + required: + - name + - opsgenie_api_key + - region type: object - PatchMaintenanceTemplateRequestDataType: - default: maintenance_templates - description: Maintenance templates resource type. + OpsgenieServiceCreateData: + description: Opsgenie service data for a create request. + properties: + attributes: + $ref: "#/components/schemas/OpsgenieServiceCreateAttributes" + type: + $ref: "#/components/schemas/OpsgenieServiceType" + required: + - type + - attributes + type: object + OpsgenieServiceCreateRequest: + description: Create request for an Opsgenie service. + properties: + data: + $ref: "#/components/schemas/OpsgenieServiceCreateData" + required: + - data + type: object + OpsgenieServiceRegionType: + description: The region for the Opsgenie service. enum: - - maintenance_templates - example: maintenance_templates + - us + - eu + - custom + example: "us" type: string x-enum-varnames: - - MAINTENANCE_TEMPLATES - PatchMaintenanceUpdateRequest: - description: Request object for editing a maintenance update. - example: - data: - attributes: - description: We have completed maintenance on the API to improve performance. - id: 00000000-0000-0000-0000-000000000000 - type: maintenance_updates + - US + - EU + - CUSTOM + OpsgenieServiceResponse: + description: Response of an Opsgenie service. properties: data: - $ref: "#/components/schemas/PatchMaintenanceUpdateRequestData" + $ref: "#/components/schemas/OpsgenieServiceResponseData" + required: + - data type: object - PatchMaintenanceUpdateRequestData: - description: The data object for editing a maintenance update. + OpsgenieServiceResponseAttributes: + description: The attributes from an Opsgenie service response. + properties: + custom_url: + description: The custom URL for a custom region. + example: + nullable: true + type: string + name: + description: The name for the Opsgenie service. + example: "fake-opsgenie-service-name" + maxLength: 100 + type: string + region: + $ref: "#/components/schemas/OpsgenieServiceRegionType" + type: object + OpsgenieServiceResponseData: + description: Opsgenie service data from a response. properties: attributes: - $ref: "#/components/schemas/PatchMaintenanceUpdateRequestDataAttributes" + $ref: "#/components/schemas/OpsgenieServiceResponseAttributes" id: - description: The ID of the maintenance update to edit. Must match the `update_id` path parameter. - example: "1234abcd-12ab-34cd-56ef-123456abcdef" + description: The ID of the Opsgenie service. + example: "596da4af-0563-4097-90ff-07230c3f9db3" + maxLength: 100 + minLength: 1 type: string type: - $ref: "#/components/schemas/PatchMaintenanceUpdateRequestDataType" + $ref: "#/components/schemas/OpsgenieServiceType" required: - id - type + - attributes type: object - PatchMaintenanceUpdateRequestDataAttributes: - description: Attributes for editing a maintenance update. - properties: - description: - description: The message body of the update. - example: "" - type: string - type: object - PatchMaintenanceUpdateRequestDataType: - default: maintenance_updates - description: Maintenance updates resource type. + OpsgenieServiceType: + default: opsgenie-service + description: Opsgenie service resource type. enum: - - maintenance_updates - example: maintenance_updates + - opsgenie-service + example: opsgenie-service type: string x-enum-varnames: - - MAINTENANCE_UPDATES - PatchNotificationRuleParameters: - description: Body of the notification rule patch request. + - OPSGENIE_SERVICE + OpsgenieServiceUpdateAttributes: + description: The Opsgenie service attributes for an update request. properties: - data: - $ref: "#/components/schemas/PatchNotificationRuleParametersData" + custom_url: + description: The custom URL for a custom region. + example: "https://example.com" + nullable: true + type: string + name: + description: The name for the Opsgenie service. + example: "fake-opsgenie-service-name" + maxLength: 100 + type: string + opsgenie_api_key: + description: The Opsgenie API key for your Opsgenie service. + example: "00000000-0000-0000-0000-000000000000" + type: string + region: + $ref: "#/components/schemas/OpsgenieServiceRegionType" type: object - PatchNotificationRuleParametersData: - description: |- - Data of the notification rule patch request: the rule ID, the rule type, and the rule attributes. All fields are required. + OpsgenieServiceUpdateData: + description: Opsgenie service for an update request. properties: attributes: - $ref: "#/components/schemas/PatchNotificationRuleParametersDataAttributes" + $ref: "#/components/schemas/OpsgenieServiceUpdateAttributes" id: - $ref: "#/components/schemas/ID" + description: The ID of the Opsgenie service. + example: "596da4af-0563-4097-90ff-07230c3f9db3" + maxLength: 100 + minLength: 1 + type: string type: - $ref: "#/components/schemas/NotificationRulesType" + $ref: "#/components/schemas/OpsgenieServiceType" required: - - attributes - id - type + - attributes type: object - PatchNotificationRuleParametersDataAttributes: - description: |- - Attributes of the notification rule patch request. It is required to update the version of the rule when patching it. - properties: - enabled: - $ref: "#/components/schemas/Enabled" - name: - $ref: "#/components/schemas/RuleName" - routing: - $ref: "#/components/schemas/NotificationRuleRouting" - selectors: - $ref: "#/components/schemas/Selectors" - targets: - $ref: "#/components/schemas/Targets" - time_aggregation: - $ref: "#/components/schemas/TimeAggregation" - version: - $ref: "#/components/schemas/Version" - type: object - PatchStatusPageRequest: - description: Request object for updating a status page. - example: - data: - attributes: - company_logo: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAIKMMMM - domain_prefix: status-page-us1-east - email_header_image: data:image/png;base64,pQSLAw0KGgoAAAANSUhEUgAAAQ4AASJKFF - favicon: data:image/png;base64,kWMRNw0KGgoAAAANSUhEUgAAAEAAAABACA - name: Status Page US1 East - subscriptions_enabled: false - type: internal - visualization_type: bars_only - id: 1234abcd-12ab-34cd-56ef-123456abcdef - type: status_pages + OpsgenieServiceUpdateRequest: + description: Update request for an Opsgenie service. properties: data: - $ref: "#/components/schemas/PatchStatusPageRequestData" + $ref: "#/components/schemas/OpsgenieServiceUpdateData" + required: + - data type: object - PatchStatusPageRequestData: - description: The data object for updating a status page. + OpsgenieServicesResponse: + description: Response with a list of Opsgenie services. properties: - attributes: - $ref: "#/components/schemas/PatchStatusPageRequestDataAttributes" - id: - description: The ID of the status page. - example: "1234abcd-12ab-34cd-56ef-123456abcdef" - format: uuid - type: string - type: - $ref: "#/components/schemas/StatusPageDataType" + data: + description: An array of Opsgenie services. + example: [{"attributes": {"custom_url": null, "name": "fake-opsgenie-service-name", "region": "us"}, "id": "596da4af-0563-4097-90ff-07230c3f9db3", "type": "opsgenie-service"}, {"attributes": {"custom_url": null, "name": "fake-opsgenie-service-name-2", "region": "eu"}, "id": "0d2937f1-b561-44fa-914a-99910f848014", "type": "opsgenie-service"}] + items: + $ref: "#/components/schemas/OpsgenieServiceResponseData" + type: array required: - - attributes - - id - - type + - data type: object - PatchStatusPageRequestDataAttributes: - description: The supported attributes for updating a status page. + OrderDirection: + description: The sort direction for results. + enum: + - asc + - desc + example: asc + type: string + x-enum-varnames: + - ASC + - DESC + OrgAttributes: + description: Attributes of an organization. properties: - company_logo: - description: The base64-encoded image data displayed on the status page. - example: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAIKMMMM - type: string - domain_prefix: - description: The subdomain of the status page's url taking the form `https://{domain_prefix}.statuspage.datadoghq.com`. Globally unique across Datadog Status Pages. - example: status-page-us1 + created_at: + description: The creation timestamp of the organization. + example: "2019-09-26T17:28:28Z" + format: date-time type: string - email_header_image: - description: The base64-encoded image data displayed in email notifications sent to status page subscribers. - example: data:image/png;base64,pQSLAw0KGgoAAAANSUhEUgAAAQ4AASJKFF + description: + description: A description of the organization. + example: "Production organization." type: string - favicon: - description: The base64-encoded image data displayed in the browser tab. - example: data:image/png;base64,kWMRNw0KGgoAAAANSUhEUgAAAEAAAABACA + disabled: + description: Whether the organization is disabled. + example: false + type: boolean + modified_at: + description: The last modification timestamp of the organization. + example: "2024-01-15T10:30:00Z" + format: date-time type: string name: - description: The name of the status page. - example: Status Page US1 + description: The name of the organization. + example: "My Organization" type: string - slack_app_icon: - description: The Slack app icon URL for the status page. + public_id: + description: The public identifier of the organization. + example: "abcdef12345" type: string - slack_subscriptions_enabled: - description: Whether Slack subscriptions are enabled for the status page. - type: boolean - subscriptions_enabled: - description: Whether users can subscribe to the status page. - example: true - type: boolean - type: - $ref: "#/components/schemas/CreateStatusPageRequestDataAttributesType" - example: public - visualization_type: - $ref: "#/components/schemas/CreateStatusPageRequestDataAttributesVisualizationType" - example: bars_and_uptime_percentage + sharing: + description: The sharing setting of the organization. + example: "none" + type: string + url: + description: The URL of the organization. + example: "https://app.datadoghq.com/account/my-org" + type: string + required: + - public_id + - name + - description + - sharing + - url + - disabled + - created_at + - modified_at type: object - PatchTableRequest: - description: Request body for updating an existing reference table. - example: - data: - attributes: - description: this is a cloud table generated via a cloud bucket sync - file_metadata: - access_details: - aws_detail: - aws_account_id: test-account-id - aws_bucket_name: test-bucket - file_path: test_rt.csv - sync_enabled: true - schema: - fields: - - name: id - type: INT32 - - name: name - type: STRING - primary_keys: - - id - tags: - - test_tag - type: reference_table + OrgAuthorizedClientAttributes: + description: Attributes of an org authorized client. properties: - data: - $ref: "#/components/schemas/PatchTableRequestData" + disabled: + description: Whether the organization has disabled this client. + example: false + type: boolean + last_exercised: + description: The date and time this client was last exercised. + example: "2024-01-15T10:30:00+00:00" + format: date-time + nullable: true + type: string + user_count: + description: The number of users in the organization who have authorized this client. + example: 2 + format: int64 + type: integer + required: + - last_exercised + - disabled + - user_count type: object - PatchTableRequestData: - additionalProperties: false - description: The data object containing the partial table definition updates. + OrgAuthorizedClientData: + description: Data object representing an org authorized client. properties: attributes: - $ref: "#/components/schemas/PatchTableRequestDataAttributes" + $ref: "#/components/schemas/OrgAuthorizedClientAttributes" + id: + description: The unique identifier of the org authorized client. + example: "00000000-0000-0000-0000-000000000001" + type: string + relationships: + $ref: "#/components/schemas/OrgAuthorizedClientRelationships" type: - $ref: "#/components/schemas/PatchTableRequestDataType" + $ref: "#/components/schemas/OrgAuthorizedClientType" required: + - id - type + - attributes + - relationships type: object - PatchTableRequestDataAttributes: - description: Attributes that define the updates to the reference table's configuration and properties. - properties: - description: - description: Optional text describing the purpose or contents of this reference table. - example: "example description" - type: string - file_metadata: - $ref: "#/components/schemas/PatchTableRequestDataAttributesFileMetadata" - schema: - $ref: "#/components/schemas/PatchTableRequestDataAttributesSchema" - tags: - description: Tags for organizing and filtering reference tables. - example: - - "tag_1" - - "tag_2" - items: - description: A tag associated with the reference table. - type: string - type: array - type: object - PatchTableRequestDataAttributesFileMetadata: - description: Metadata specifying where and how to access the reference table's data file. - oneOf: - - $ref: "#/components/schemas/PatchTableRequestDataAttributesFileMetadataCloudStorage" - - $ref: "#/components/schemas/PatchTableRequestDataAttributesFileMetadataLocalFile" - PatchTableRequestDataAttributesFileMetadataCloudStorage: - additionalProperties: false - description: >- - Cloud storage file metadata for patch requests. Allows partial updates of access_details and sync_enabled. + OrgAuthorizedClientDataList: + description: List of org authorized client data objects. + items: + $ref: "#/components/schemas/OrgAuthorizedClientData" + type: array + OrgAuthorizedClientRelationshipOAuth2Client: + description: Relationship to the OAuth2 client for this org authorized client. properties: - access_details: - $ref: "#/components/schemas/PatchTableRequestDataAttributesFileMetadataOneOfAccessDetails" - sync_enabled: - description: Whether this table is synced automatically. - example: false - type: boolean - title: CloudFileMetadataV2 + data: + $ref: "#/components/schemas/OrgAuthorizedClientRelationshipOAuth2ClientData" + required: + - data type: object - PatchTableRequestDataAttributesFileMetadataLocalFile: - additionalProperties: false - description: Local file metadata for patch requests using upload ID. + OrgAuthorizedClientRelationshipOAuth2ClientData: + description: Data identifying the OAuth2 client associated with this org authorized client. properties: - upload_id: - description: The upload ID. - example: "00000000-0000-0000-0000-000000000000" + id: + description: The ID of the OAuth2 client. + example: "00000000-0000-0000-0000-000000000010" type: string + type: + $ref: "#/components/schemas/OrgAuthorizedClientRelationshipOAuth2ClientDataType" required: - - upload_id - title: LocalFileMetadataV2 - type: object - PatchTableRequestDataAttributesFileMetadataOneOfAccessDetails: - description: Cloud storage access configuration for the reference table data file. - properties: - aws_detail: - $ref: "#/components/schemas/PatchTableRequestDataAttributesFileMetadataOneOfAccessDetailsAwsDetail" - azure_detail: - $ref: "#/components/schemas/PatchTableRequestDataAttributesFileMetadataOneOfAccessDetailsAzureDetail" - gcp_detail: - $ref: "#/components/schemas/PatchTableRequestDataAttributesFileMetadataOneOfAccessDetailsGcpDetail" + - type + - id type: object - PatchTableRequestDataAttributesFileMetadataOneOfAccessDetailsAwsDetail: - description: Amazon Web Services S3 storage access configuration. + OrgAuthorizedClientRelationshipOAuth2ClientDataType: + description: OAuth2 client resource type. + enum: + - oauth2_clients + example: oauth2_clients + type: string + x-enum-varnames: + - OAUTH2_CLIENTS + OrgAuthorizedClientRelationshipUserAuthorizedClients: + description: Relationship to the user authorized clients for this org authorized client. properties: - aws_account_id: - description: AWS account ID where the S3 bucket is located. - example: "123456789000" - type: string - aws_bucket_name: - description: S3 bucket containing the CSV file. - example: "example-data-bucket" - type: string - file_path: - description: The relative file path from the S3 bucket root to the CSV file. - example: "reference-tables/users.csv" - type: string + data: + $ref: "#/components/schemas/OrgAuthorizedClientRelationshipUserAuthorizedClientsDataList" + links: + $ref: "#/components/schemas/OrgAuthorizedClientRelationshipUserAuthorizedClientsLinks" + required: + - links + - data type: object - x-oneOf-parent: - - AwsDetail - PatchTableRequestDataAttributesFileMetadataOneOfAccessDetailsAzureDetail: - description: Azure Blob Storage access configuration. + OrgAuthorizedClientRelationshipUserAuthorizedClientsData: + description: Data identifying a user authorized client. properties: - azure_client_id: - description: Azure service principal (application) client ID with permissions to read from the container. - example: "aaaaaaaa-1111-2222-3333-bbbbbbbbbbbb" - type: string - azure_container_name: - description: Azure Blob Storage container containing the CSV file. - example: "reference-data" - type: string - azure_storage_account_name: - description: Azure storage account where the container is located. - example: "examplestorageaccount" - type: string - azure_tenant_id: - description: Azure Active Directory tenant ID. - example: "cccccccc-4444-5555-6666-dddddddddddd" - type: string - file_path: - description: The relative file path from the Azure container root to the CSV file. - example: "tables/users.csv" + id: + description: The ID of the user authorized client. + example: "00000000-0000-0000-0000-000000000020" type: string + type: + $ref: "#/components/schemas/OrgAuthorizedClientRelationshipUserAuthorizedClientsDataType" + required: + - type + - id type: object - x-oneOf-parent: - - AzureDetail - PatchTableRequestDataAttributesFileMetadataOneOfAccessDetailsGcpDetail: - description: Google Cloud Platform storage access configuration. + OrgAuthorizedClientRelationshipUserAuthorizedClientsDataList: + description: List of user authorized client relationship data objects. + items: + $ref: "#/components/schemas/OrgAuthorizedClientRelationshipUserAuthorizedClientsData" + type: array + OrgAuthorizedClientRelationshipUserAuthorizedClientsDataType: + description: User authorized client resource type. + enum: + - user_authorized_clients + example: user_authorized_clients + type: string + x-enum-varnames: + - USER_AUTHORIZED_CLIENTS + OrgAuthorizedClientRelationshipUserAuthorizedClientsLinks: + description: Links for the user authorized clients relationship. properties: - file_path: - description: The relative file path from the GCS bucket root to the CSV file. - example: "data/reference_tables/users.csv" - type: string - gcp_bucket_name: - description: GCP bucket containing the CSV file. - example: "example-data-bucket" - type: string - gcp_project_id: - description: GCP project ID where the bucket is located. - example: "example-gcp-project-12345" - type: string - gcp_service_account_email: - description: Service account email with read permissions for the GCS bucket. - example: "example-service@example-gcp-project-12345.iam.gserviceaccount.com" + related: + description: Link to the user authorized clients for this org authorized client. + example: "/api/v2/org_authorized_clients/00000000-0000-0000-0000-000000000001/user_authorized_clients" type: string + required: + - related type: object - x-oneOf-parent: - - GcpDetail - PatchTableRequestDataAttributesSchema: - description: >- - Schema defining the updates to the structure and columns of the reference table. Schema fields cannot be deleted or renamed. + OrgAuthorizedClientRelationships: + description: Relationships for an org authorized client. properties: - fields: - description: The schema fields. Maximum of 200 columns. - items: - $ref: "#/components/schemas/PatchTableRequestDataAttributesSchemaFieldsItems" - maxItems: 200 - minItems: 1 - type: array - primary_keys: - description: >- - List of field names that serve as primary keys for the table. Only one primary key is supported, and it is used as an ID to retrieve rows. Primary keys cannot be changed after table creation. - example: - - "field_1" - items: - description: A field name used as a primary key. - type: string - type: array + oauth2_client: + $ref: "#/components/schemas/OrgAuthorizedClientRelationshipOAuth2Client" + user_authorized_clients: + $ref: "#/components/schemas/OrgAuthorizedClientRelationshipUserAuthorizedClients" required: - - fields - - primary_keys + - oauth2_client + - user_authorized_clients type: object - PatchTableRequestDataAttributesSchemaFieldsItems: - description: >- - A single field (column) in the reference table schema to be updated. Schema fields cannot be deleted or renamed. + OrgAuthorizedClientResponse: + description: Response containing a single org authorized client. properties: - name: - description: The field name. - example: "field_1" - type: string - type: - $ref: "#/components/schemas/ReferenceTableSchemaFieldType" + data: + $ref: "#/components/schemas/OrgAuthorizedClientData" required: - - name - - type + - data type: object - PatchTableRequestDataType: - default: reference_table - description: Reference table resource type. + OrgAuthorizedClientType: + description: The resource type for org authorized clients. enum: - - reference_table - example: reference_table + - org_authorized_clients + example: org_authorized_clients type: string x-enum-varnames: - - REFERENCE_TABLE - Permission: - description: Permission object. + - ORG_AUTHORIZED_CLIENTS + OrgAuthorizedClientUpdateAttributes: + description: Attributes for updating an org authorized client. + properties: + disabled: + description: Whether to disable or enable this client for the organization. + example: true + type: boolean + type: object + OrgAuthorizedClientUpdateData: + description: Data object for updating an org authorized client. properties: attributes: - $ref: "#/components/schemas/PermissionAttributes" + $ref: "#/components/schemas/OrgAuthorizedClientUpdateAttributes" id: - description: ID of the permission. + description: The unique identifier of the org authorized client to update. + example: "00000000-0000-0000-0000-000000000001" type: string type: - $ref: "#/components/schemas/PermissionsType" + $ref: "#/components/schemas/OrgAuthorizedClientType" required: + - id - type type: object - PermissionAttributes: - description: Attributes of a permission. + OrgAuthorizedClientUpdateRequest: + description: Request body for updating an org authorized client. properties: - created: - description: Creation time of the permission. - format: date-time - type: string - description: - description: Description of the permission. - type: string - display_name: - description: Displayed name for the permission. - type: string - display_type: - description: Display type. - type: string - group_name: - description: Name of the permission group. - type: string - name: - description: Name of the permission. - type: string - name_aliases: - description: List of alias names for the permission. - items: - description: An alternative name for the permission. - type: string - type: array - restricted: - description: Whether or not the permission is restricted. - type: boolean + data: + $ref: "#/components/schemas/OrgAuthorizedClientUpdateData" + required: + - data type: object - PermissionsResponse: - description: Payload with API-returned permissions. + OrgAuthorizedClientUserAuthorizationsSort: + description: Field to sort user authorizations by. + enum: + - user.name + - user.email + - oauth2_client.name + example: user.name + type: string + x-enum-varnames: + - USER_NAME + - USER_EMAIL + - OAUTH2_CLIENT_NAME + OrgAuthorizedClientsResponse: + description: Response containing a list of org authorized clients. properties: data: - description: Array of permissions. + $ref: "#/components/schemas/OrgAuthorizedClientDataList" + meta: + $ref: "#/components/schemas/ResponseMetaAttributes" + required: + - data + - meta + type: object + OrgConfigGetResponse: + description: A response with a single Org Config. + properties: + data: + $ref: "#/components/schemas/OrgConfigRead" + required: [data] + type: object + OrgConfigListResponse: + description: A response with multiple Org Configs. + properties: + data: + description: An array of Org Configs. items: - $ref: "#/components/schemas/Permission" + $ref: "#/components/schemas/OrgConfigRead" type: array + required: [data] type: object - PermissionsType: - default: permissions - description: Permissions resource type. - enum: - - permissions - example: permissions - type: string - x-enum-varnames: - - PERMISSIONS - PersonalAccessToken: - description: Datadog access token. + OrgConfigRead: + description: A single Org Config. properties: attributes: - $ref: "#/components/schemas/PersonalAccessTokenAttributes" + $ref: "#/components/schemas/OrgConfigReadAttributes" id: - description: ID of the access token. + description: A unique identifier for an Org Config. + example: abcd1234 type: string - relationships: - $ref: "#/components/schemas/PersonalAccessTokenRelationships" type: - $ref: "#/components/schemas/PersonalAccessTokensType" + $ref: "#/components/schemas/OrgConfigType" + required: [id, type, attributes] type: object - PersonalAccessTokenAttributes: - description: Attributes of an access token. + OrgConfigReadAttributes: + description: Readable attributes of an Org Config. properties: - created_at: - description: Creation date of the access token. - example: "2024-01-01T00:00:00+00:00" - format: date-time - readOnly: true - type: string - expires_at: - description: Expiration date of the access token. - example: "2025-12-31T23:59:59+00:00" - format: date-time - nullable: true - readOnly: true - type: string - last_used_at: - description: Date the access token was last used. - example: "2025-06-15T12:30:00+00:00" - format: date-time - nullable: true - readOnly: true + description: + description: The description of an Org Config. + example: Frobulate the turbo encabulator manifold type: string modified_at: - description: Date of last modification of the access token. - example: "2024-06-01T00:00:00+00:00" + description: The timestamp of the last Org Config update (if any). format: date-time nullable: true - readOnly: true type: string name: - description: Name of the access token. - example: "My Access Token" + description: The machine-friendly name of an Org Config. + example: monitor_timezone type: string - public_portion: - description: The public portion of the access token. - example: "ddpat_abc123" - readOnly: true + value: + description: The value of an Org Config. + value_type: + description: The type of an Org Config value. + example: bool type: string - scopes: - description: Array of scopes granted to the access token. - example: - - "dashboards_read" - - "dashboards_write" - items: - description: Name of scope. - type: string - type: array + required: [name, description, value_type, value] type: object - PersonalAccessTokenCreateAttributes: - description: Attributes used to create an access token. + OrgConfigType: + description: Data type of an Org Config. + enum: [org_configs] + example: org_configs + type: string + x-enum-varnames: + - ORG_CONFIGS + OrgConfigWrite: + description: An Org Config write operation. properties: - expires_at: - description: Expiration date of the access token. Must be at least 24 hours in the future. - example: "2025-12-31T23:59:59+00:00" - format: date-time - type: string - name: - description: Name of the access token. - example: "My Personal Access Token" + attributes: + $ref: "#/components/schemas/OrgConfigWriteAttributes" + type: + $ref: "#/components/schemas/OrgConfigType" + required: [type, attributes] + type: object + OrgConfigWriteAttributes: + description: Writable attributes of an Org Config. + properties: + value: + description: The value of an Org Config. + required: [value] + type: object + OrgConfigWriteRequest: + description: A request to update an Org Config. + properties: + data: + $ref: "#/components/schemas/OrgConfigWrite" + required: [data] + type: object + OrgConnection: + description: An org connection. + properties: + attributes: + $ref: "#/components/schemas/OrgConnectionAttributes" + id: + description: The unique identifier of the org connection. + example: "f9ec96b0-8c8a-4b0a-9b0a-1b2c3d4e5f6a" + format: uuid type: string - scopes: - description: Array of scopes to grant the access token. - example: - - "dashboards_read" - - "dashboards_write" + relationships: + $ref: "#/components/schemas/OrgConnectionRelationships" + type: + $ref: "#/components/schemas/OrgConnectionType" + required: [id, type, attributes, relationships] + type: object + OrgConnectionAttributes: + description: Org connection attributes. + properties: + connection_types: + description: List of connection types. + example: ["logs", "metrics"] items: - description: Name of scope. - type: string + $ref: "#/components/schemas/OrgConnectionTypeEnum" type: array - required: - - name - - scopes - - expires_at + created_at: + description: Timestamp when the connection was created. + example: "2023-01-01T12:00:00Z" + format: date-time + type: string + required: [connection_types, created_at] type: object - PersonalAccessTokenCreateData: - description: Object used to create an access token. + OrgConnectionCreate: + description: Org connection creation data. properties: attributes: - $ref: "#/components/schemas/PersonalAccessTokenCreateAttributes" + $ref: "#/components/schemas/OrgConnectionCreateAttributes" + relationships: + $ref: "#/components/schemas/OrgConnectionCreateRelationships" type: - $ref: "#/components/schemas/PersonalAccessTokensType" - required: - - attributes - - type + $ref: "#/components/schemas/OrgConnectionType" + required: [type, attributes, relationships] type: object - PersonalAccessTokenCreateRequest: - description: Request used to create an access token. + OrgConnectionCreateAttributes: + description: Attributes for creating an org connection. properties: - data: - $ref: "#/components/schemas/PersonalAccessTokenCreateData" - required: - - data + connection_types: + description: List of connection types to establish. + example: ["logs"] + items: + $ref: "#/components/schemas/OrgConnectionTypeEnum" + minItems: 1 + type: array + required: [connection_types] type: object - PersonalAccessTokenCreateResponse: - description: Response for creating an access token. Includes the token key. + OrgConnectionCreateRelationships: + description: Relationships for org connection creation. properties: - data: - $ref: "#/components/schemas/FullPersonalAccessToken" + sink_org: + $ref: "#/components/schemas/OrgConnectionOrgRelationship" + required: [sink_org] type: object - PersonalAccessTokenRelationships: - description: Resources related to the access token. + OrgConnectionCreateRequest: + description: Request to create an org connection. properties: - leak_information: - $ref: "#/components/schemas/RelationshipToLeakedKey" - owned_by: - $ref: "#/components/schemas/RelationshipToUser" + data: + $ref: "#/components/schemas/OrgConnectionCreate" + required: [data] type: object - PersonalAccessTokenResponse: - description: Response for retrieving an access token. + OrgConnectionListResponse: + description: Response containing a list of org connections. properties: data: - $ref: "#/components/schemas/PersonalAccessToken" - included: - $ref: "#/components/schemas/AccessTokenResponseIncludedArray" + description: List of org connections. + items: + $ref: "#/components/schemas/OrgConnection" + type: array + meta: + $ref: "#/components/schemas/OrgConnectionListResponseMeta" + required: [data] type: object - PersonalAccessTokenResponseMeta: - description: Additional information related to the access token response. + OrgConnectionListResponseMeta: + description: Pagination metadata. properties: page: - $ref: "#/components/schemas/PersonalAccessTokenResponseMetaPage" + $ref: "#/components/schemas/OrgConnectionListResponseMetaPage" type: object - PersonalAccessTokenResponseMetaPage: - description: Pagination information. + OrgConnectionListResponseMetaPage: + description: Page information. properties: + total_count: + description: Total number of org connections. + example: 0 + format: int64 + type: integer total_filtered_count: - description: Total filtered access token count. + description: Total number of org connections matching the filter. + example: 0 format: int64 type: integer type: object - PersonalAccessTokenUpdateAttributes: - description: Attributes used to update an access token. + OrgConnectionOrgRelationship: + description: Org relationship. properties: - name: - description: Name of the access token. - example: "Updated Personal Access Token" - type: string - scopes: - description: Array of scopes to grant the access token. - example: - - "dashboards_read" - - "dashboards_write" - items: - description: Name of scope. - type: string - type: array + data: + $ref: "#/components/schemas/OrgConnectionOrgRelationshipData" type: object - PersonalAccessTokenUpdateData: - description: Object used to update an access token. + OrgConnectionOrgRelationshipData: + description: The definition of `OrgConnectionOrgRelationshipData` object. properties: - attributes: - $ref: "#/components/schemas/PersonalAccessTokenUpdateAttributes" id: - description: ID of the access token. - example: "00112233-4455-6677-8899-aabbccddeeff" + description: Org UUID. + example: "f9ec96b0-8c8a-4b0a-9b0a-1b2c3d4e5f6a" + type: string + name: + description: Org name. + example: "Example Org" type: string type: - $ref: "#/components/schemas/PersonalAccessTokensType" - required: - - attributes - - id - - type + $ref: "#/components/schemas/OrgConnectionOrgRelationshipDataType" type: object - PersonalAccessTokenUpdateRequest: - description: Request used to update an access token. + OrgConnectionOrgRelationshipDataType: + description: The type of the organization relationship. + enum: [orgs] + example: "orgs" + type: string + x-enum-varnames: + - ORGS + OrgConnectionRelationships: + description: Related organizations and user. + properties: + created_by: + $ref: "#/components/schemas/OrgConnectionUserRelationship" + sink_org: + $ref: "#/components/schemas/OrgConnectionOrgRelationship" + source_org: + $ref: "#/components/schemas/OrgConnectionOrgRelationship" + type: object + OrgConnectionResponse: + description: Response containing a single org connection. properties: data: - $ref: "#/components/schemas/PersonalAccessTokenUpdateData" - required: - - data + $ref: "#/components/schemas/OrgConnection" + required: [data] type: object - PersonalAccessTokensIncludeQueryParameterItem: - description: Relationship object that should be included in the response. - enum: - - leak_information - example: "leak_information" - type: string - x-enum-varnames: - - LEAK_INFORMATION - PersonalAccessTokensSort: - default: name - description: Sorting options - enum: - - name - - -name - - created_at - - -created_at - - expires_at - - -expires_at - - last_used_at - - -last_used_at - - leaked - - -leaked + OrgConnectionType: + description: Org connection type. + enum: [org_connection] + example: "org_connection" type: string x-enum-varnames: - - NAME_ASCENDING - - NAME_DESCENDING - - CREATED_AT_ASCENDING - - CREATED_AT_DESCENDING - - EXPIRES_AT_ASCENDING - - EXPIRES_AT_DESCENDING - - LAST_USED_AT_ASCENDING - - LAST_USED_AT_DESCENDING - - LEAKED_ASCENDING - - LEAKED_DESCENDING - PersonalAccessTokensType: - default: personal_access_tokens - description: Personal access tokens resource type. + - ORG_CONNECTION + OrgConnectionTypeEnum: + description: Available connection types between organizations. enum: - - personal_access_tokens - example: personal_access_tokens + - logs + - metrics + - audit + example: "logs" type: string x-enum-varnames: - - PERSONAL_ACCESS_TOKENS - Playlist: - description: A single RUM replay playlist resource returned by create, update, or get operations. + - LOGS + - METRICS + - AUDIT + OrgConnectionUpdate: + description: Org connection update data. properties: - data: - $ref: "#/components/schemas/PlaylistData" - required: - - data + attributes: + $ref: "#/components/schemas/OrgConnectionUpdateAttributes" + id: + description: The unique identifier of the org connection. + example: "f9ec96b0-8c8a-4b0a-9b0a-1b2c3d4e5f6a" + format: uuid + type: string + type: + $ref: "#/components/schemas/OrgConnectionType" + required: [type, id, attributes] type: object - PlaylistArray: - description: A list of RUM replay playlists returned by a list operation. + OrgConnectionUpdateAttributes: + description: Attributes for updating an org connection. properties: - data: - description: Array of playlist data objects. + connection_types: + description: Updated list of connection types. + example: ["logs", "metrics"] items: - $ref: "#/components/schemas/PlaylistData" + $ref: "#/components/schemas/OrgConnectionTypeEnum" + minItems: 1 type: array - required: - - data + required: [connection_types] type: object - PlaylistData: - description: Data object representing a RUM replay playlist, including its identifier, type, and attributes. + OrgConnectionUpdateRequest: + description: Request to update an org connection. + properties: + data: + $ref: "#/components/schemas/OrgConnectionUpdate" + required: [data] + type: object + OrgConnectionUserRelationship: + description: User relationship. + properties: + data: + $ref: "#/components/schemas/OrgConnectionUserRelationshipData" + type: object + OrgConnectionUserRelationshipData: + description: The data for a user relationship. + properties: + id: + description: User UUID. + example: "usr123abc456" + type: string + name: + description: User name. + example: "John Doe" + type: string + type: + $ref: "#/components/schemas/OrgConnectionUserRelationshipDataType" + type: object + OrgConnectionUserRelationshipDataType: + description: The type of the user relationship. + enum: [users] + example: "users" + type: string + x-enum-varnames: + - USERS + OrgData: + description: An organization resource. properties: attributes: - $ref: "#/components/schemas/PlaylistDataAttributes" + $ref: "#/components/schemas/OrgAttributes" id: - description: Unique identifier of the playlist. + description: The UUID of the organization. + example: "4dee724d-00cc-11ea-a77b-570c9d03c6c5" + format: uuid type: string type: - $ref: "#/components/schemas/PlaylistDataType" + $ref: "#/components/schemas/OrgResourceType" required: + - id - type + - attributes type: object - PlaylistDataAttributes: - description: Attributes of a RUM replay playlist, including its name, description, session count, and audit timestamps. + OrgGroupAttributes: + description: Attributes of an org group. properties: created_at: - description: Timestamp when the playlist was created. + description: Timestamp when the org group was created. + example: "2024-01-15T10:30:00Z" format: date-time type: string - created_by: - $ref: "#/components/schemas/PlaylistDataAttributesCreatedBy" - description: - description: Optional human-readable description of the playlist's purpose or contents. + modified_at: + description: Timestamp when the org group was last modified. + example: "2024-01-15T10:30:00Z" + format: date-time type: string name: - description: Human-readable name of the playlist. - example: My Playlist + description: The name of the org group. + example: "My Org Group" type: string - session_count: - description: Number of replay sessions in the playlist. - format: int64 - type: integer - updated_at: - description: Timestamp when the playlist was last updated. - format: date-time + owner_org_site: + description: The site of the organization that owns this org group. + example: "us1" + type: string + owner_org_uuid: + description: The UUID of the organization that owns this org group. + example: "b2c3d4e5-f6a7-8901-bcde-f01234567890" + format: uuid type: string required: - name + - owner_org_uuid + - owner_org_site + - created_at + - modified_at type: object - PlaylistDataAttributesCreatedBy: - description: Information about the user who created the playlist. + OrgGroupCreateAttributes: + description: Attributes for creating an org group. properties: - handle: - description: Email handle of the user who created the playlist. - example: john.doe@example.com - type: string - icon: - description: URL or identifier of the user's avatar icon. - type: string - id: - description: Unique identifier of the user who created the playlist. - example: 00000000-0000-0000-0000-000000000001 - type: string - name: - description: Display name of the user who created the playlist. - type: string - uuid: - description: UUID of the user who created the playlist. - example: 00000000-0000-0000-0000-000000000001 + name: + description: The name of the org group. + example: "My Org Group" type: string required: - - handle - - id - - uuid + - name type: object - PlaylistDataType: - default: rum_replay_playlist - description: Rum replay playlist resource type. - enum: - - rum_replay_playlist - example: rum_replay_playlist - type: string - x-enum-varnames: - - RUM_REPLAY_PLAYLIST - PlaylistsSession: - description: A single RUM replay session resource as it appears within a playlist context. + OrgGroupCreateData: + description: Data for creating an org group. properties: - data: - $ref: "#/components/schemas/PlaylistsSessionData" + attributes: + $ref: "#/components/schemas/OrgGroupCreateAttributes" + type: + $ref: "#/components/schemas/OrgGroupType" required: - - data + - type + - attributes type: object - PlaylistsSessionArray: - description: A list of RUM replay sessions belonging to a playlist. + OrgGroupCreateRequest: + description: Request to create an org group. properties: data: - description: Array of playlist session data objects. - items: - $ref: "#/components/schemas/PlaylistsSessionData" - type: array + $ref: "#/components/schemas/OrgGroupCreateData" required: - data type: object - PlaylistsSessionData: - description: Data object representing a session within a playlist, including its identifier, type, and attributes. + OrgGroupData: + description: An org group resource. properties: attributes: - $ref: "#/components/schemas/PlaylistsSessionDataAttributes" + $ref: "#/components/schemas/OrgGroupAttributes" id: - description: Unique identifier of the RUM replay session. + description: The ID of the org group. + example: "a1b2c3d4-e5f6-7890-abcd-ef0123456789" + format: uuid type: string type: - $ref: "#/components/schemas/ViewershipHistorySessionDataType" + $ref: "#/components/schemas/OrgGroupType" required: + - id - type + - attributes type: object - PlaylistsSessionDataAttributes: - description: Attributes of a session within a playlist, including the session event data and its replay track. - properties: - session_event: - additionalProperties: {} - description: Raw event data associated with the replay session. - type: object - track: - description: Replay track identifier indicating which recording track the session belongs to. - type: string - type: object - PostmortemAttachmentRequest: - description: Request body for creating a postmortem attachment. + OrgGroupListResponse: + description: Response containing a list of org groups. properties: data: - $ref: "#/components/schemas/PostmortemAttachmentRequestData" - required: - - data - type: object - PostmortemAttachmentRequestAttributes: - description: Postmortem attachment attributes - properties: - cells: - description: The cells of the postmortem + description: An array of org groups. items: - $ref: "#/components/schemas/PostmortemCell" + $ref: "#/components/schemas/OrgGroupData" type: array - content: - description: The content of the postmortem - example: |- - # Incident Report - IR-123 - [...] - type: string - postmortem_template_id: - description: The ID of the postmortem template - example: "93645509-874e-45c4-adfa-623bfeaead89-123" - type: string - title: - description: The title of the postmortem - example: Postmortem-IR-123 - type: string - type: object - PostmortemAttachmentRequestData: - description: Postmortem attachment data - properties: - attributes: - $ref: "#/components/schemas/PostmortemAttachmentRequestAttributes" - type: - $ref: "#/components/schemas/IncidentAttachmentType" + links: + $ref: "#/components/schemas/OrgGroupPaginationLinks" + meta: + $ref: "#/components/schemas/OrgGroupPaginationMeta" required: - - type - - attributes - type: object - PostmortemCell: - description: A cell in the postmortem - properties: - attributes: - $ref: "#/components/schemas/PostmortemCellAttributes" - id: - description: The unique identifier of the cell - example: "cell-1" - type: string - type: - $ref: "#/components/schemas/PostmortemCellType" - type: object - PostmortemCellAttributes: - description: Attributes of a postmortem cell - properties: - definition: - $ref: "#/components/schemas/PostmortemCellDefinition" - type: object - PostmortemCellDefinition: - description: Definition of a postmortem cell - properties: - content: - description: The content of the cell in markdown format - example: |- - ## Incident Summary - This incident was caused by... - type: string + - data type: object - PostmortemCellType: - description: The postmortem cell resource type. - enum: - - markdown - example: markdown - type: string - x-enum-varnames: - - MARKDOWN - PostmortemTemplateAttributesRequest: - description: Attributes for creating or updating a postmortem template. + OrgGroupMembershipAttributes: + description: Attributes of an org group membership. properties: - confluence_postmortem_settings: - $ref: "#/components/schemas/ConfluencePostmortemSettings" - content: - description: The templated content of the postmortem, supporting Markdown and incident template variables. - example: "# Overview\n\n# What Happened\n\n# Timeline\n\n# Action Items" - type: string - google_docs_postmortem_settings: - $ref: "#/components/schemas/GoogleDocsPostmortemSettings" - is_default: - description: When set, marks this template as a default. The effective default for an incident type is the template with the most recent `is_default` timestamp. Set to `null` to unset. - example: "2024-01-01T00:00:00+00:00" + created_at: + description: Timestamp when the membership was created. + example: "2024-01-15T10:30:00Z" format: date-time - nullable: true - type: string - location: - $ref: "#/components/schemas/PostmortemTemplateLocation" - name: - description: The name of the template. - example: "Standard Postmortem Template" - type: string - required: - - name - type: object - PostmortemTemplateAttributesResponse: - description: Attributes of a postmortem template returned in a response. - properties: - confluence_postmortem_settings: - $ref: "#/components/schemas/ConfluencePostmortemSettings" - content: - description: The templated content of the postmortem, supporting Markdown and incident template variables. - example: "# Overview\n\n# What Happened\n\n# Timeline\n\n# Action Items" type: string - createdAt: - description: When the template was created. - example: "2026-01-13T17:15:53.208340Z" + modified_at: + description: Timestamp when the membership was last modified. + example: "2024-01-15T10:30:00Z" format: date-time type: string - google_docs_postmortem_settings: - $ref: "#/components/schemas/GoogleDocsPostmortemSettings" - is_default: - description: When set, marks this template as a default. The effective default for an incident type is the template with the most recent `is_default` timestamp. - example: "2024-01-01T00:00:00+00:00" - format: date-time - nullable: true + org_name: + description: The name of the member organization. + example: "Acme Corp" type: string - location: - $ref: "#/components/schemas/PostmortemTemplateLocation" - modifiedAt: - description: When the template was last modified. - example: "2026-01-13T17:15:53.208340Z" - format: date-time + org_site: + description: The site of the member organization. + example: "us1" type: string - name: - description: The name of the template. - example: "Standard Postmortem Template" + org_uuid: + description: The UUID of the member organization. + example: "c3d4e5f6-a7b8-9012-cdef-012345678901" + format: uuid type: string required: - - name - - content - - is_default - - location - - createdAt - - modifiedAt + - org_name + - org_uuid + - org_site + - created_at + - modified_at type: object - PostmortemTemplateCreateRelationships: - description: Relationships for a postmortem template. `incident_type` is required when creating a template and is immutable afterwards. + OrgGroupMembershipBulkUpdateAttributes: + description: Attributes for bulk updating org group memberships. properties: - incident_type: - $ref: "#/components/schemas/PostmortemTemplateIncidentTypeRelationship" + orgs: + description: List of organizations to move. Maximum 100 per request. + items: + $ref: "#/components/schemas/GlobalOrgIdentifier" + type: array + required: + - orgs type: object - PostmortemTemplateDataRequest: - description: Data object for creating or updating a postmortem template. + OrgGroupMembershipBulkUpdateData: + description: Data for bulk updating org group memberships. properties: attributes: - $ref: "#/components/schemas/PostmortemTemplateAttributesRequest" - id: - description: The ID of the template. Required when updating. - example: 00000000-0000-0000-0000-000000000000 - type: string + $ref: "#/components/schemas/OrgGroupMembershipBulkUpdateAttributes" relationships: - $ref: "#/components/schemas/PostmortemTemplateCreateRelationships" + $ref: "#/components/schemas/OrgGroupMembershipBulkUpdateRelationships" type: - $ref: "#/components/schemas/PostmortemTemplateType" + $ref: "#/components/schemas/OrgGroupMembershipBulkUpdateType" required: - type - attributes + - relationships type: object - PostmortemTemplateDataResponse: - description: Data object for a postmortem template returned in a response. + OrgGroupMembershipBulkUpdateRelationships: + description: Relationships for bulk updating memberships. properties: - attributes: - $ref: "#/components/schemas/PostmortemTemplateAttributesResponse" - id: - description: The ID of the template. - example: 00000000-0000-0000-0000-000000000000 - type: string - relationships: - $ref: "#/components/schemas/PostmortemTemplateResponseRelationships" - type: - $ref: "#/components/schemas/PostmortemTemplateType" + source_org_group: + $ref: "#/components/schemas/OrgGroupRelationshipToOne" + target_org_group: + $ref: "#/components/schemas/OrgGroupRelationshipToOne" required: - - id - - type - - attributes + - source_org_group + - target_org_group type: object - PostmortemTemplateIncidentTypeRelationship: - description: Relationship to the incident type this template belongs to. + OrgGroupMembershipBulkUpdateRequest: + description: Request to bulk update org group memberships. properties: data: - $ref: "#/components/schemas/PostmortemTemplateIncidentTypeRelationshipData" + $ref: "#/components/schemas/OrgGroupMembershipBulkUpdateData" required: - data type: object - PostmortemTemplateIncidentTypeRelationshipData: - description: Incident type relationship data. + OrgGroupMembershipBulkUpdateType: + description: Org group membership bulk update resource type. + enum: + - org_group_membership_bulk_updates + example: org_group_membership_bulk_updates + type: string + x-enum-varnames: + - ORG_GROUP_MEMBERSHIP_BULK_UPDATES + OrgGroupMembershipData: + description: An org group membership resource. properties: + attributes: + $ref: "#/components/schemas/OrgGroupMembershipAttributes" id: - description: The incident type identifier. - example: 00000000-0000-0000-0000-000000000009 + description: The ID of the org group membership. + example: "f1e2d3c4-b5a6-7890-1234-567890abcdef" format: uuid type: string + relationships: + $ref: "#/components/schemas/OrgGroupMembershipRelationships" type: - description: The incident type resource type. - example: incident_types - type: string + $ref: "#/components/schemas/OrgGroupMembershipType" required: - id - type + - attributes type: object - PostmortemTemplateLocation: - default: datadog_notebooks - description: The location where the postmortem is created and stored. - enum: - - datadog_notebooks - - confluence - - google_docs - example: datadog_notebooks - type: string - x-enum-varnames: - - DATADOG_NOTEBOOKS - - CONFLUENCE - - GOOGLE_DOCS - PostmortemTemplateRequest: - description: Request body for creating or updating a postmortem template. + OrgGroupMembershipListResponse: + description: Response containing a list of org group memberships. properties: data: - $ref: "#/components/schemas/PostmortemTemplateDataRequest" + description: An array of org group memberships. + items: + $ref: "#/components/schemas/OrgGroupMembershipData" + type: array + links: + $ref: "#/components/schemas/OrgGroupPaginationLinks" + meta: + $ref: "#/components/schemas/OrgGroupPaginationMeta" required: - data type: object - PostmortemTemplateResponse: - description: Response containing a single postmortem template. + OrgGroupMembershipRelationships: + description: Relationships of an org group membership. + properties: + org_group: + $ref: "#/components/schemas/OrgGroupRelationshipToOne" + type: object + OrgGroupMembershipResponse: + description: Response containing a single org group membership. properties: data: - $ref: "#/components/schemas/PostmortemTemplateDataResponse" + $ref: "#/components/schemas/OrgGroupMembershipData" required: - data type: object - PostmortemTemplateResponseRelationships: - description: Relationships of a postmortem template returned in a response. - properties: - incident_type: - $ref: "#/components/schemas/PostmortemTemplateIncidentTypeRelationship" - last_modified_by_user: - $ref: "#/components/schemas/PostmortemTemplateUserRelationship" - type: object - PostmortemTemplateType: - description: Postmortem template resource type. + OrgGroupMembershipSortOption: + default: uuid + description: Field to sort memberships by. enum: - - postmortem_templates - - postmortem_template - example: postmortem_templates + - name + - -name + - uuid + - -uuid + example: uuid type: string x-enum-varnames: - - POSTMORTEM_TEMPLATES - - POSTMORTEM_TEMPLATE - PostmortemTemplateUserRelationship: - description: Relationship to a user. - properties: - data: - $ref: "#/components/schemas/PostmortemTemplateUserRelationshipData" - required: - - data - type: object - PostmortemTemplateUserRelationshipData: - description: User relationship data. + - NAME + - MINUS_NAME + - UUID + - MINUS_UUID + OrgGroupMembershipType: + description: Org group memberships resource type. + enum: + - org_group_memberships + example: org_group_memberships + type: string + x-enum-varnames: + - ORG_GROUP_MEMBERSHIPS + OrgGroupMembershipUpdateData: + description: Data for updating an org group membership. properties: id: - description: The user identifier. - example: 00000000-0000-0000-0000-000000000000 + description: The ID of the membership. + example: "f1e2d3c4-b5a6-7890-1234-567890abcdef" format: uuid type: string + relationships: + $ref: "#/components/schemas/OrgGroupMembershipUpdateRelationships" type: - description: The user resource type. - example: users - type: string + $ref: "#/components/schemas/OrgGroupMembershipType" required: - id - type + - relationships type: object - PostmortemTemplatesResponse: - description: Response containing a list of postmortem templates. + OrgGroupMembershipUpdateRelationships: + description: Relationships for updating a membership. properties: - data: - description: An array of postmortem template data objects. - items: - $ref: "#/components/schemas/PostmortemTemplateDataResponse" - type: array + org_group: + $ref: "#/components/schemas/OrgGroupRelationshipToOne" required: - - data + - org_group type: object - Powerpack: - description: |- - Powerpacks are templated groups of dashboard widgets you can save from an existing dashboard and turn into reusable packs in the widget tray. + OrgGroupMembershipUpdateRequest: + description: Request to update an org group membership. properties: data: - $ref: "#/components/schemas/PowerpackData" - type: object - PowerpackAttributes: - description: Powerpack attribute object. - properties: - description: - description: Description of this powerpack. - example: "Powerpack for ABC" - type: string - group_widget: - $ref: "#/components/schemas/PowerpackGroupWidget" - name: - description: Name of the powerpack. - example: "Sample Powerpack" - type: string - tags: - description: List of tags to identify this powerpack. - example: ["tag:foo1"] - items: - description: A tag to identify this powerpack. - maxLength: 80 - type: string - maxItems: 8 - type: array - template_variables: - description: List of template variables for this powerpack. - example: [{"defaults": ["*"], "name": "test"}] - items: - $ref: "#/components/schemas/PowerpackTemplateVariable" - type: array + $ref: "#/components/schemas/OrgGroupMembershipUpdateData" required: - - group_widget - - name + - data type: object - PowerpackData: - description: Powerpack data object. + OrgGroupPaginationLinks: + description: Pagination links for navigating between pages of an org group list response. properties: - attributes: - $ref: "#/components/schemas/PowerpackAttributes" - id: - description: ID of the powerpack. + first: + description: Link to the first page. type: string - relationships: - $ref: "#/components/schemas/PowerpackRelationships" - type: - description: Type of widget, must be powerpack. - example: "powerpack" + last: + description: Link to the last page. type: string - type: object - PowerpackGroupWidget: - description: Powerpack group widget definition object. - properties: - definition: - $ref: "#/components/schemas/PowerpackGroupWidgetDefinition" - layout: - $ref: "#/components/schemas/PowerpackGroupWidgetLayout" - live_span: - $ref: "#/components/schemas/WidgetLiveSpan" - required: - - definition - type: object - PowerpackGroupWidgetDefinition: - description: Powerpack group widget object. - properties: - layout_type: - description: Layout type of widgets. - example: ordered + next: + description: Link to the next page. + nullable: true type: string - show_title: - description: Boolean indicating whether powerpack group title should be visible or not. - example: true - type: boolean - title: - description: Name for the group widget. - example: Sample Powerpack + prev: + description: Link to the previous page. + nullable: true type: string - type: - description: Type of widget, must be group. - example: group + self: + description: Link to the current page. type: string - widgets: - description: Widgets inside the powerpack. - example: [{"definition": {"content": "example", "type": "note"}, "layout": {"height": 5, "width": 10, "x": 0, "y": 0}}] - items: - $ref: "#/components/schemas/PowerpackInnerWidgets" - type: array - required: - - widgets - - layout_type - - type type: object - PowerpackGroupWidgetLayout: - description: Powerpack group widget layout. + OrgGroupPaginationMeta: + description: Pagination metadata for org group list responses. properties: - height: - description: The height of the widget. Should be a non-negative integer. - example: 0 - format: int64 - minimum: 0 - type: integer - width: - description: The width of the widget. Should be a non-negative integer. - example: 0 + page: + $ref: "#/components/schemas/OrgGroupPaginationMetaPage" + type: object + OrgGroupPaginationMetaPage: + description: Page-based pagination details for org group list responses. + properties: + first_number: + description: First page number. format: int64 - minimum: 0 type: integer - x: - description: The position of the widget on the x (horizontal) axis. Should be a non-negative integer. - example: 0 + last_number: + description: Last page number. format: int64 - minimum: 0 + nullable: true type: integer - y: - description: The position of the widget on the y (vertical) axis. Should be a non-negative integer. - example: 0 + next_number: + description: Next page number. format: int64 - minimum: 0 + nullable: true type: integer - required: - - x - - y - - width - - height - type: object - PowerpackInnerWidgetLayout: - description: Powerpack inner widget layout. - properties: - height: - description: The height of the widget. Should be a non-negative integer. - example: 0 + number: + description: Page number. format: int64 - minimum: 0 type: integer - width: - description: The width of the widget. Should be a non-negative integer. - example: 0 + prev_number: + description: Previous page number. format: int64 - minimum: 0 + nullable: true type: integer - x: - description: The position of the widget on the x (horizontal) axis. Should be a non-negative integer. - example: 0 + size: + description: Page size. format: int64 - minimum: 0 type: integer - y: - description: The position of the widget on the y (vertical) axis. Should be a non-negative integer. - example: 0 + total: + description: Total number of results. format: int64 - minimum: 0 type: integer - required: - - x - - y - - width - - height + type: + description: Pagination type. + example: "number_size" + type: string type: object - PowerpackInnerWidgets: - description: Powerpack group widget definition of individual widgets. + OrgGroupPolicyAttributes: + description: Attributes of an org group policy. properties: - definition: + content: additionalProperties: {} - description: Information about widget. - example: {"definition": {"content": "example", "type": "note"}} + description: >- + The policy content as key-value pairs. For `org_config` policies, an arbitrary key-value map (for example, `{"value": "UTC"}`). For `role` policies, a `permissions` key containing an array of permission UUIDs (for example, `{"permissions": ["", ...]}`). + example: + value: "UTC" type: object - layout: - $ref: "#/components/schemas/PowerpackInnerWidgetLayout" - required: - - definition - type: object - PowerpackRelationships: - description: Powerpack relationship object. - properties: - author: - $ref: "#/components/schemas/RelationshipToUser" - type: object - PowerpackResponse: - description: Response object which includes a single powerpack configuration. - properties: - data: - $ref: "#/components/schemas/PowerpackData" - included: - description: Array of objects related to the users. - items: - $ref: "#/components/schemas/User" - type: array - readOnly: true - type: object - PowerpackResponseLinks: - description: Links attributes. - properties: - first: - description: Link to last page. - type: string - last: - description: Link to first page. - example: "https://app.datadoghq.com/api/v2/powerpacks?page[offset]=0&page[limit]=25" - nullable: true - type: string - next: - description: Link for the next set of results. - example: "https://app.datadoghq.com/api/v2/powerpacks?page[offset]=25&page[limit]=25" - type: string - prev: - description: Link for the previous set of results. - nullable: true + enforcement_tier: + $ref: "#/components/schemas/OrgGroupPolicyEnforcementTier" + modified_at: + description: Timestamp when the policy was last modified. + example: "2024-01-15T10:30:00Z" + format: date-time type: string - self: - description: Link to current page. - example: "https://app.datadoghq.com/api/v2/powerpacks" + policy_name: + description: >- + The name of the policy. This becomes the name of the resource created across orgs in the group (for example, for `role` policies, the name of the created role). + example: "monitor_timezone" type: string + policy_type: + $ref: "#/components/schemas/OrgGroupPolicyPolicyType" + required: + - policy_name + - policy_type + - enforcement_tier + - modified_at type: object - PowerpackTemplateVariable: - description: Powerpack template variables. + OrgGroupPolicyConfigAttributes: + description: Attributes of an org group policy config. properties: - available_values: - description: The list of values that the template variable drop-down is limited to. - example: ["my-host", "host1", "host2"] - items: - description: Template variable value. - type: string - nullable: true - type: array - defaults: - description: One or many template variable default values within the saved view, which are unioned together using `OR` if more than one is specified. + allowed_values: + description: The allowed values for this config. + example: ["UTC", "US/Eastern", "US/Pacific"] items: - description: One or many default values of the template variable. - minLength: 1 + description: An allowed value for this config. type: string type: array + default_value: + description: The default value for this config. + example: "UTC" + description: + description: The description of the policy config. + example: "The default timezone for monitors." + type: string name: - description: The name of the variable. - example: datacenter + description: The name of the policy config. + example: "monitor_timezone" type: string - prefix: - description: The tag prefix associated with the variable. Only tags with this prefix appear in the variable drop-down. - example: host - nullable: true + value_type: + description: The type of the value for this config. + example: "string" type: string required: - name + - description + - value_type + - allowed_values + - default_value type: object - PowerpacksResponseMeta: - description: Powerpack response metadata. - properties: - pagination: - $ref: "#/components/schemas/PowerpacksResponseMetaPagination" - type: object - PowerpacksResponseMetaPagination: - description: Powerpack response pagination metadata. - properties: - first_offset: - description: The first offset. - format: int64 - type: integer - last_offset: - description: The last offset. - format: int64 - nullable: true - type: integer - limit: - description: Pagination limit. - format: int64 - type: integer - next_offset: - description: The next offset. - format: int64 - type: integer - offset: - description: The offset. - format: int64 - type: integer - prev_offset: - description: The previous offset. - format: int64 - type: integer - total: - description: Total results. - format: int64 - type: integer - type: - description: Offset type. - type: string - type: object - PreviewEntityResponseData: - description: Entity data returned in a preview response, including attributes, relationships, and type. + OrgGroupPolicyConfigData: + description: An org group policy config resource. properties: attributes: - $ref: "#/components/schemas/EntityResponseDataAttributes" + $ref: "#/components/schemas/OrgGroupPolicyConfigAttributes" id: - description: Entity unique identifier. + description: The identifier of the policy config (uses the config name). + example: "monitor_timezone" type: string - relationships: - $ref: "#/components/schemas/EntityResponseDataRelationships" type: - $ref: "#/components/schemas/EntityResponseDataType" + $ref: "#/components/schemas/OrgGroupPolicyConfigType" required: + - id - type + - attributes type: object - PrintReportRequest: - description: Request body for initiating a print-only report. + OrgGroupPolicyConfigListResponse: + description: Response containing a list of org group policy configs. properties: data: - $ref: "#/components/schemas/PrintReportRequestData" + description: An array of org group policy configs. + items: + $ref: "#/components/schemas/OrgGroupPolicyConfigData" + type: array required: - data type: object - PrintReportRequestAttributes: - description: |- - The configuration for a print-only report. Specify exactly one of `timeframe` (for a - relative time window) or both `from_ts` and `to_ts` (for an absolute time range). + OrgGroupPolicyConfigType: + description: Org group policy configs resource type. + enum: + - org_group_policy_configs + example: org_group_policy_configs + type: string + x-enum-varnames: + - ORG_GROUP_POLICY_CONFIGS + OrgGroupPolicyCreateAttributes: + description: >- + Attributes for creating an org group policy. If `policy_type` is not provided, it defaults to `org_config`. `enforcement_tier` is optional; if not provided, the resulting value depends on `policy_type` and is otherwise unspecified. properties: - from_ts: - description: |- - The start of an absolute time range, as a Unix timestamp in milliseconds. - Required when `timeframe` is omitted. - example: 1780318800000 - format: int64 - type: integer - resource_id: - description: The identifier of the dashboard or integration dashboard to render. - example: "abc-def-ghi" - type: string - resource_type: - $ref: "#/components/schemas/ReportScheduleResourceType" - template_variables: - description: The dashboard template variables applied when rendering the report. - items: - $ref: "#/components/schemas/ReportScheduleTemplateVariable" - type: array - timeframe: - description: |- - A relative time window (for example `1w` or `calendar_month`). Mutually - exclusive with `from_ts` and `to_ts`. - example: "1w" - type: string - timezone: - description: The IANA time zone identifier used to evaluate the time window. - example: "America/New_York" + content: + additionalProperties: {} + description: >- + The policy content as key-value pairs. For `org_config` policies, an arbitrary key-value map (for example, `{"value": "UTC"}`). For `role` policies, a `permissions` key containing an array of permission UUIDs (for example, `{"permissions": ["", ...]}`). + example: + value: "UTC" + type: object + enforcement_tier: + $ref: "#/components/schemas/OrgGroupPolicyEnforcementTier" + policy_name: + description: >- + The name of the policy. This becomes the name of the resource created across orgs in the group (for example, for `role` policies, the name of the created role). + example: "monitor_timezone" type: string - to_ts: - description: |- - The end of an absolute time range, as a Unix timestamp in milliseconds. - Required when `timeframe` is omitted. - example: 1780923600000 - format: int64 - type: integer + policy_type: + $ref: "#/components/schemas/OrgGroupPolicyPolicyType" required: - - resource_id - - resource_type - - timezone - - template_variables + - policy_name + - content type: object - PrintReportRequestData: - description: The JSON:API data object for a print report request. + OrgGroupPolicyCreateData: + description: Data for creating an org group policy. properties: attributes: - $ref: "#/components/schemas/PrintReportRequestAttributes" + $ref: "#/components/schemas/OrgGroupPolicyCreateAttributes" + relationships: + $ref: "#/components/schemas/OrgGroupPolicyCreateRelationships" type: - $ref: "#/components/schemas/PrintReportType" + $ref: "#/components/schemas/OrgGroupPolicyType" required: - type - attributes + - relationships type: object - PrintReportResponse: - description: Response containing the initiated print-only report. + OrgGroupPolicyCreateRelationships: + description: Relationships for creating a policy. properties: - data: - $ref: "#/components/schemas/PrintReportResponseData" + org_group: + $ref: "#/components/schemas/OrgGroupRelationshipToOne" required: - - data + - org_group type: object - PrintReportResponseAttributes: - description: The configuration and download URL for the initiated print-only report. + OrgGroupPolicyCreateRequest: + description: Request to create an org group policy. properties: - download_url: - description: The URL from which the rendered PDF report can be downloaded. - example: "https://app.datadoghq.com/..." - type: string - from_ts: - description: The start of the rendered time range, as a Unix timestamp in milliseconds. - example: 1780318800000 - format: int64 - type: integer - resource_id: - description: The identifier of the dashboard or integration dashboard. - example: "abc-def-ghi" - type: string - resource_type: - $ref: "#/components/schemas/ReportScheduleResourceType" - template_variables: - description: The dashboard template variables applied when rendering the report. - items: - $ref: "#/components/schemas/ReportScheduleTemplateVariable" - type: array - timeframe: - description: The relative time window used, if one was specified in the request. - example: "1w" - type: string - timezone: - description: The IANA time zone identifier used when rendering the report. - example: "America/New_York" - type: string - to_ts: - description: The end of the rendered time range, as a Unix timestamp in milliseconds. - example: 1780923600000 - format: int64 - type: integer + data: + $ref: "#/components/schemas/OrgGroupPolicyCreateData" required: - - resource_id - - resource_type - - timezone - - template_variables - - from_ts - - to_ts - - download_url + - data type: object - PrintReportResponseData: - description: The JSON:API data object for a print-only report. + OrgGroupPolicyData: + description: An org group policy resource. properties: attributes: - $ref: "#/components/schemas/PrintReportResponseAttributes" + $ref: "#/components/schemas/OrgGroupPolicyAttributes" id: - description: The unique identifier of the report. - example: "11111111-2222-3333-4444-555555555555" + description: The ID of the org group policy. + example: "1a2b3c4d-5e6f-7890-abcd-ef0123456789" format: uuid type: string + relationships: + $ref: "#/components/schemas/OrgGroupPolicyRelationships" type: - $ref: "#/components/schemas/PrintReportType" + $ref: "#/components/schemas/OrgGroupPolicyType" required: - id - type - attributes type: object - PrintReportType: - description: JSON:API resource type for a print-only report. + OrgGroupPolicyEnforcementTier: + description: >- + The enforcement tier of the policy. `OVERRIDE_ALLOWED` means the policy is set but member orgs may mutate it. `GROUP_MANAGED` means the policy is strictly controlled and mutations are blocked for affected orgs. `DELEGATE` means each member org controls its own value. `role` policies only support `GROUP_MANAGED` and `DELEGATE` — `OVERRIDE_ALLOWED` is rejected for this policy type. Transitioning a `role` policy to `DELEGATE` (disabling it) is one-way — the policy cannot be transitioned back to `GROUP_MANAGED` afterward. enum: - - report - example: report + - OVERRIDE_ALLOWED + - GROUP_MANAGED + - DELEGATE + example: OVERRIDE_ALLOWED type: string x-enum-varnames: - - REPORT - ProcessDataSource: - default: process - description: A data source for process-level infrastructure metrics. + - OVERRIDE_ALLOWED + - GROUP_MANAGED + - DELEGATE + OrgGroupPolicyFilterPolicyTypeValue: + description: >- + The type of the policy to filter by. `org_config` indicates a policy backed by an organization configuration setting. `role` indicates a policy backed by a Datadog custom role. enum: - - process - example: process + - org_config + - role + example: org_config type: string x-enum-varnames: - - PROCESS - ProcessScalarQuery: - description: A query for host-level process metrics such as CPU and memory usage. + - ORG_CONFIG + - ROLE + OrgGroupPolicyListResponse: + description: Response containing a list of org group policies. properties: - aggregator: - $ref: "#/components/schemas/MetricsAggregator" - cross_org_uuids: - $ref: "#/components/schemas/CrossOrgUuids" - data_source: - $ref: "#/components/schemas/ProcessDataSource" - is_normalized_cpu: - description: Whether CPU metrics should be normalized by core count. - type: boolean - limit: - description: Maximum number of results to return. - format: int64 - type: integer - metric: - description: The process metric to query. - example: process.stat.cpu.total_pct - type: string - name: - description: The variable name for use in formulas. - example: query1 - type: string - sort: - $ref: "#/components/schemas/QuerySortOrder" - tag_filters: - description: Tag filters to narrow down processes. + data: + description: An array of org group policies. items: - description: A tag filter value. - example: "env:prod" - type: string + $ref: "#/components/schemas/OrgGroupPolicyData" type: array - text_filter: - description: A full-text search filter to match process names or commands. - type: string + links: + $ref: "#/components/schemas/OrgGroupPaginationLinks" + meta: + $ref: "#/components/schemas/OrgGroupPaginationMeta" required: - - data_source - - name - - metric + - data type: object - ProcessSummariesMeta: - description: Response metadata object. + OrgGroupPolicyOverrideAttributes: + description: Attributes of an org group policy override. properties: - page: - $ref: "#/components/schemas/ProcessSummariesMetaPage" - type: object - ProcessSummariesMetaPage: - description: Paging attributes. - properties: - after: - description: |- - The cursor used to get the next results, if any. To make the next request, use the same - parameters with the addition of the `page[cursor]`. - example: 911abf1204838d9cdfcb9a96d0b6a1bd03e1b514074f1ce1737c4cbd + content: + additionalProperties: {} + description: The override content as key-value pairs. + type: object + created_at: + description: Timestamp when the override was created. + example: "2024-01-15T10:30:00Z" + format: date-time type: string - size: - description: Number of results returned. - format: int32 - maximum: 10000 - minimum: 0 - type: integer + modified_at: + description: Timestamp when the override was last modified. + example: "2024-01-15T10:30:00Z" + format: date-time + type: string + org_site: + description: The site of the organization that has the override. + example: "us1" + type: string + org_uuid: + description: The UUID of the organization that has the override. + example: "c3d4e5f6-a7b8-9012-cdef-012345678901" + format: uuid + type: string + required: + - org_uuid + - org_site + - created_at + - modified_at type: object - ProcessSummariesResponse: - description: List of process summaries. + OrgGroupPolicyOverrideCreateAttributes: + description: Attributes for creating a policy override. properties: - data: - description: Array of process summary objects. - items: - $ref: "#/components/schemas/ProcessSummary" - type: array - meta: - $ref: "#/components/schemas/ProcessSummariesMeta" + org_site: + description: The site of the organization. + example: "us1" + type: string + org_uuid: + description: The UUID of the organization to grant the override. + example: "c3d4e5f6-a7b8-9012-cdef-012345678901" + format: uuid + type: string + required: + - org_uuid + - org_site type: object - ProcessSummary: - description: Process summary object. + OrgGroupPolicyOverrideCreateData: + description: Data for creating an org group policy override. properties: attributes: - $ref: "#/components/schemas/ProcessSummaryAttributes" - id: - description: Process ID. - type: string + $ref: "#/components/schemas/OrgGroupPolicyOverrideCreateAttributes" + relationships: + $ref: "#/components/schemas/OrgGroupPolicyOverrideCreateRelationships" type: - $ref: "#/components/schemas/ProcessSummaryType" + $ref: "#/components/schemas/OrgGroupPolicyOverrideType" + required: + - type + - attributes + - relationships type: object - ProcessSummaryAttributes: - description: Attributes for a process summary. + OrgGroupPolicyOverrideCreateRelationships: + description: Relationships for creating a policy override. properties: - cmdline: - description: Process command line. - type: string - host: - description: Host running the process. - type: string - pid: - description: Process ID. - format: int64 - type: integer - ppid: - description: Parent process ID. - format: int64 - type: integer - start: - description: Time the process was started. - type: string - tags: - description: List of tags associated with the process. - items: - description: A tag associated with the process. - type: string - type: array - timestamp: - description: Time the process was seen. - type: string - user: - description: Process owner. - type: string + org_group: + $ref: "#/components/schemas/OrgGroupRelationshipToOne" + org_group_policy: + $ref: "#/components/schemas/OrgGroupPolicyRelationshipToOne" + required: + - org_group + - org_group_policy type: object - ProcessSummaryType: - default: process - description: Type of process summary. - enum: - - process - example: process - type: string - x-enum-varnames: - - PROCESS - ProcessTimeseriesQuery: - description: A query for host-level process metrics such as CPU and memory usage. + OrgGroupPolicyOverrideCreateRequest: + description: Request to create an org group policy override. properties: - cross_org_uuids: - $ref: "#/components/schemas/CrossOrgUuids" - data_source: - $ref: "#/components/schemas/ProcessDataSource" - is_normalized_cpu: - description: Whether CPU metrics should be normalized by core count. - type: boolean - limit: - description: Maximum number of results to return. - format: int64 - type: integer - metric: - description: The process metric to query. - example: process.stat.cpu.total_pct - type: string - name: - description: The variable name for use in formulas. - example: query1 - type: string - sort: - $ref: "#/components/schemas/QuerySortOrder" - tag_filters: - description: Tag filters to narrow down processes. - items: - description: A tag filter value. - example: "env:prod" - type: string - type: array - text_filter: - description: A full-text search filter to match process names or commands. + data: + $ref: "#/components/schemas/OrgGroupPolicyOverrideCreateData" + required: + - data + type: object + OrgGroupPolicyOverrideData: + description: An org group policy override resource. + properties: + attributes: + $ref: "#/components/schemas/OrgGroupPolicyOverrideAttributes" + id: + description: The ID of the policy override. + example: "9f8e7d6c-5b4a-3210-fedc-ba0987654321" + format: uuid type: string + relationships: + $ref: "#/components/schemas/OrgGroupPolicyOverrideRelationships" + type: + $ref: "#/components/schemas/OrgGroupPolicyOverrideType" required: - - data_source - - name - - metric + - id + - type + - attributes type: object - ProductAnalyticsAnalyticsListQuery: - description: |- - The analytics list query definition. It selects the events to return with `query`, then - chooses the columns on each event row, the sort applied to those rows, and a row limit. - Unlike the scalar and timeseries queries, a list query returns raw event rows rather than - aggregates, so it takes no compute or group-by rule. + OrgGroupPolicyOverrideListResponse: + description: Response containing a list of org group policy overrides. properties: - audience_filters: - $ref: "#/components/schemas/ProductAnalyticsAudienceFilters" - columns: - description: Attribute columns to include in each event row. + data: + description: An array of org group policy overrides. items: - description: The name of an attribute to return as a column. - type: string + $ref: "#/components/schemas/OrgGroupPolicyOverrideData" type: array - limit: - description: Maximum number of event rows to return. - example: 100 - format: int64 - maximum: 1000 - minimum: 1 - type: integer - query: - $ref: "#/components/schemas/ProductAnalyticsBaseQuery" - sort: - $ref: "#/components/schemas/ProductAnalyticsAnalyticsListSort" + links: + $ref: "#/components/schemas/OrgGroupPaginationLinks" + meta: + $ref: "#/components/schemas/OrgGroupPaginationMeta" required: - - query + - data type: object - ProductAnalyticsAnalyticsListRecord: - additionalProperties: - description: The value of one column of the event row. - description: A single event row, keyed by column name. + OrgGroupPolicyOverrideRelationships: + description: Relationships of an org group policy override. + properties: + org_group: + $ref: "#/components/schemas/OrgGroupRelationshipToOne" + org_group_policy: + $ref: "#/components/schemas/OrgGroupPolicyRelationshipToOne" type: object - ProductAnalyticsAnalyticsListRequest: - description: Request for listing the individual event records matching an analytics query. - example: - data: - attributes: - from: 1771232048460 - query: - columns: - - "@view.name" - limit: 100 - query: - data_source: product_analytics - search: - query: "@type:view" - to: 1771836848262 - type: formula_analytics_extended_list_request + OrgGroupPolicyOverrideResponse: + description: Response containing a single org group policy override. properties: data: - $ref: "#/components/schemas/ProductAnalyticsAnalyticsListRequestData" + $ref: "#/components/schemas/OrgGroupPolicyOverrideData" required: - data type: object - ProductAnalyticsAnalyticsListRequestAttributes: - description: Attributes for an analytics list request. + OrgGroupPolicyOverrideSortOption: + default: id + description: Field to sort overrides by. + enum: + - id + - -id + - org_uuid + - -org_uuid + example: id + type: string + x-enum-varnames: + - ID + - MINUS_ID + - ORG_UUID + - MINUS_ORG_UUID + OrgGroupPolicyOverrideType: + description: Org group policy overrides resource type. + enum: + - org_group_policy_overrides + example: org_group_policy_overrides + type: string + x-enum-varnames: + - ORG_GROUP_POLICY_OVERRIDES + OrgGroupPolicyOverrideUpdateAttributes: + description: >- + Attributes for updating a policy override. The `org_uuid` and `org_site` fields must match the existing override and cannot be changed. properties: - from: - description: Start time in epoch milliseconds. Must be less than `to`. - example: 1771232048460 - format: int64 - type: integer - query: - $ref: "#/components/schemas/ProductAnalyticsAnalyticsListQuery" - to: - description: End time in epoch milliseconds. - example: 1771836848262 - format: int64 - type: integer + org_site: + description: The site of the organization. + example: "us1" + type: string + org_uuid: + description: The UUID of the organization. + example: "c3d4e5f6-a7b8-9012-cdef-012345678901" + format: uuid + type: string required: - - from - - to - - query + - org_uuid + - org_site type: object - ProductAnalyticsAnalyticsListRequestData: - description: Data object for an analytics list request. + OrgGroupPolicyOverrideUpdateData: + description: Data for updating a policy override. properties: attributes: - $ref: "#/components/schemas/ProductAnalyticsAnalyticsListRequestAttributes" + $ref: "#/components/schemas/OrgGroupPolicyOverrideUpdateAttributes" + id: + description: The ID of the policy override. + example: "9f8e7d6c-5b4a-3210-fedc-ba0987654321" + format: uuid + type: string type: - $ref: "#/components/schemas/ProductAnalyticsAnalyticsListRequestType" + $ref: "#/components/schemas/OrgGroupPolicyOverrideType" required: + - id - type - attributes type: object - ProductAnalyticsAnalyticsListRequestType: - description: The resource type for analytics list requests. + OrgGroupPolicyOverrideUpdateRequest: + description: Request to update an org group policy override. + properties: + data: + $ref: "#/components/schemas/OrgGroupPolicyOverrideUpdateData" + required: + - data + type: object + OrgGroupPolicyPolicyType: + default: org_config + description: >- + The type of the policy. `org_config` indicates a policy backed by an organization configuration setting. `role` indicates a policy backed by a Datadog custom role. enum: - - formula_analytics_extended_list_request - example: formula_analytics_extended_list_request + - org_config + - role + example: org_config type: string x-enum-varnames: - - FORMULA_ANALYTICS_EXTENDED_LIST_REQUEST - ProductAnalyticsAnalyticsListResponse: - description: Response for an analytics list query, containing individual event records. + - ORG_CONFIG + - ROLE + OrgGroupPolicyRelationshipToOne: + description: Relationship to a single org group policy. properties: data: - $ref: "#/components/schemas/ProductAnalyticsAnalyticsListResponseData" - meta: - $ref: "#/components/schemas/ProductAnalyticsResponseMeta" + $ref: "#/components/schemas/OrgGroupPolicyRelationshipToOneData" required: - data type: object - ProductAnalyticsAnalyticsListResponseAttributes: - description: Attributes of an analytics list response, containing the matching event rows. - properties: - records: - description: The event rows, each holding the values of the requested columns. - items: - $ref: "#/components/schemas/ProductAnalyticsAnalyticsListRecord" - type: array - total_count: - description: Total number of records matching the query, before the row limit is applied. - format: int64 - type: integer - type: object - ProductAnalyticsAnalyticsListResponseData: - description: Data object for an analytics list response. + OrgGroupPolicyRelationshipToOneData: + description: A reference to an org group policy. properties: - attributes: - $ref: "#/components/schemas/ProductAnalyticsAnalyticsListResponseAttributes" id: - description: Unique identifier for this response data object. - example: 00000000-0000-0000-0000-000000000000 + description: The ID of the policy. + example: "1a2b3c4d-5e6f-7890-abcd-ef0123456789" + format: uuid type: string type: - $ref: "#/components/schemas/ProductAnalyticsAnalyticsListResponseType" + $ref: "#/components/schemas/OrgGroupPolicyType" required: - id - type - - attributes - type: object - ProductAnalyticsAnalyticsListResponseType: - description: The resource type identifier for an analytics list response. - enum: - - list_response - example: list_response - type: string - x-enum-varnames: - - LIST_RESPONSE - ProductAnalyticsAnalyticsListSort: - description: The sort applied to the returned event rows. - properties: - facet: - description: Name of the facet to sort the rows by. - type: string - order: - $ref: "#/components/schemas/ProductAnalyticsAnalyticsListSortOrder" type: object - ProductAnalyticsAnalyticsListSortOrder: - description: The direction rows are sorted in. - enum: - - asc - - desc - type: string - x-enum-varnames: - - ASC - - DESC - ProductAnalyticsAnalyticsQuery: - description: The analytics query definition containing a base query, compute rule, and optional grouping. + OrgGroupPolicyRelationships: + description: Relationships of an org group policy. properties: - audience_filters: - $ref: "#/components/schemas/ProductAnalyticsAudienceFilters" - compute: - $ref: "#/components/schemas/ProductAnalyticsCompute" - group_by: - description: Group-by rules for segmenting results. - items: - $ref: "#/components/schemas/ProductAnalyticsGroupBy" - type: array - indexes: - deprecated: true - description: |- - Deprecated. Index selection is a rollout detail and will be removed. - Do not set this field. - items: - description: Index name to restrict the query to. - type: string - maxItems: 1 - type: array - query: - $ref: "#/components/schemas/ProductAnalyticsBaseQuery" - required: - - query - - compute + org_group: + $ref: "#/components/schemas/OrgGroupRelationshipToOne" type: object - ProductAnalyticsAnalyticsRequest: - description: Request for computing analytics results (scalar or timeseries). - example: - data: - attributes: - from: 1771232048460 - query: - compute: - aggregation: count - query: - data_source: product_analytics - search: - query: "@type:view" - to: 1771836848262 - type: formula_analytics_extended_request + OrgGroupPolicyResponse: + description: Response containing a single org group policy. properties: data: - $ref: "#/components/schemas/ProductAnalyticsAnalyticsRequestData" + $ref: "#/components/schemas/OrgGroupPolicyData" required: - data type: object - ProductAnalyticsAnalyticsRequestAttributes: - description: Attributes for an analytics request. + OrgGroupPolicySortOption: + default: id + description: Field to sort policies by. + enum: + - id + - -id + - name + - -name + example: id + type: string + x-enum-varnames: + - ID + - MINUS_ID + - NAME + - MINUS_NAME + OrgGroupPolicySuggestionAttributes: + description: Attributes of an org group policy suggestion. properties: - enforced_execution_type: - $ref: "#/components/schemas/ProductAnalyticsExecutionType" - deprecated: true - description: |- - Deprecated. Selects the internal query execution infrastructure and will be removed. - Do not set this field. - from: - description: Start time in epoch milliseconds. Must be less than `to`. - example: 1771232048460 - format: int64 - type: integer - query: - $ref: "#/components/schemas/ProductAnalyticsAnalyticsQuery" - request_id: - description: Unique identifier of the query. + consensus_ratio: + description: The ratio of member orgs whose configuration agrees on the recommended value. + example: 0.75 + format: double + maximum: 1 + minimum: 0 + type: number + policy_name: + description: The name of the suggested policy. + example: "monitor_timezone" type: string - to: - description: End time in epoch milliseconds. - example: 1771836848262 - format: int64 - type: integer + recommended_value: + description: The recommended value for the policy, based on member org consensus. + example: "UTC" + status: + $ref: "#/components/schemas/OrgGroupPolicySuggestionStatus" required: - - from - - to - - query + - policy_name + - status + - consensus_ratio + - recommended_value type: object - ProductAnalyticsAnalyticsRequestData: - description: Data object for an analytics request. + OrgGroupPolicySuggestionData: + description: An org group policy suggestion resource. properties: attributes: - $ref: "#/components/schemas/ProductAnalyticsAnalyticsRequestAttributes" + $ref: "#/components/schemas/OrgGroupPolicySuggestionAttributes" + id: + description: The ID of the org group policy suggestion. + example: "1a2b3c4d-5e6f-7890-abcd-ef0123456789" + type: string + relationships: + $ref: "#/components/schemas/OrgGroupPolicySuggestionRelationships" type: - $ref: "#/components/schemas/ProductAnalyticsAnalyticsRequestType" + $ref: "#/components/schemas/OrgGroupPolicySuggestionType" required: + - id - type - attributes type: object - ProductAnalyticsAnalyticsRequestType: - description: The resource type for analytics requests. + OrgGroupPolicySuggestionListResponse: + description: Response containing a list of org group policy suggestions. + properties: + data: + description: An array of org group policy suggestions. + items: + $ref: "#/components/schemas/OrgGroupPolicySuggestionData" + type: array + required: + - data + type: object + OrgGroupPolicySuggestionRelationships: + description: Relationships of an org group policy suggestion. + properties: + org_group: + $ref: "#/components/schemas/OrgGroupRelationshipToOne" + type: object + OrgGroupPolicySuggestionStatus: + description: The status of the policy suggestion. enum: - - formula_analytics_extended_request - example: formula_analytics_extended_request + - pending + - accepted + - dismissed + example: pending type: string x-enum-varnames: - - FORMULA_ANALYTICS_EXTENDED_REQUEST - ProductAnalyticsAudienceAccountSubquery: - description: An account-based audience query. + - PENDING + - ACCEPTED + - DISMISSED + OrgGroupPolicySuggestionType: + description: Org group policy suggestions resource type. + enum: + - org_group_policy_suggestions + example: org_group_policy_suggestions + type: string + x-enum-varnames: + - ORG_GROUP_POLICY_SUGGESTIONS + OrgGroupPolicyType: + description: Org group policies resource type. + enum: + - org_group_policies + example: org_group_policies + type: string + x-enum-varnames: + - ORG_GROUP_POLICIES + OrgGroupPolicyUpdateAttributes: + description: >- + Attributes for updating an org group policy. `policy_name`, `content`, and `enforcement_tier` may be omitted individually to leave them unchanged. properties: - name: - description: Name of this query, referenced in the formula. - example: "" - type: string - query: - description: Search query for filtering accounts. + content: + additionalProperties: {} + description: >- + The policy content as key-value pairs. For `org_config` policies, an arbitrary key-value map (for example, `{"value": "UTC"}`). For `role` policies, a `permissions` key containing an array of permission UUIDs (for example, `{"permissions": ["", ...]}`). + example: + value: "UTC" + type: object + enforcement_tier: + $ref: "#/components/schemas/OrgGroupPolicyEnforcementTier" + policy_name: + description: >- + The name of the policy. This becomes the name of the resource created across orgs in the group (for example, for `role` policies, the name of the created role). Omit to leave unchanged. + example: "monitor_timezone" type: string - required: - - name type: object - ProductAnalyticsAudienceFilters: - description: Audience filter definitions for targeting specific user segments. + OrgGroupPolicyUpdateData: + description: Data for updating an org group policy. properties: - accounts: - description: Account audience queries. - items: - $ref: "#/components/schemas/ProductAnalyticsAudienceAccountSubquery" - type: array - formula: - description: Boolean formula combining audience queries by name. - example: "u" + attributes: + $ref: "#/components/schemas/OrgGroupPolicyUpdateAttributes" + id: + description: The ID of the policy. + example: "1a2b3c4d-5e6f-7890-abcd-ef0123456789" + format: uuid type: string - segments: - description: Segment audience queries. - items: - $ref: "#/components/schemas/ProductAnalyticsAudienceSegmentSubquery" - type: array - users: - description: User audience queries. - items: - $ref: "#/components/schemas/ProductAnalyticsAudienceUserSubquery" - type: array + type: + $ref: "#/components/schemas/OrgGroupPolicyType" + required: + - id + - type + - attributes type: object - ProductAnalyticsAudienceSegmentSubquery: - description: A segment-based audience query. + OrgGroupPolicyUpdateRequest: + description: Request to update an org group policy. properties: - name: - description: Name of this query, referenced in the formula. - example: "" - type: string - segment_id: - description: UUID of the segment to filter by. - example: 00000000-0000-0000-0000-000000000000 - format: uuid - type: string + data: + $ref: "#/components/schemas/OrgGroupPolicyUpdateData" required: - - name - - segment_id + - data type: object - ProductAnalyticsAudienceUserSubquery: - description: A user-based audience query. + OrgGroupRelationshipToOne: + description: Relationship to a single org group. properties: - name: - description: Name of this query, referenced in the formula. - example: u - type: string - query: - description: Search query for filtering users. - example: "*" - type: string + data: + $ref: "#/components/schemas/OrgGroupRelationshipToOneData" required: - - name + - data type: object - ProductAnalyticsBaseQuery: - description: |- - A query definition discriminated by the `data_source` field. - Use `product_analytics` for standard event queries, or - `product_analytics_occurrence` for occurrence-filtered queries. - oneOf: - - $ref: "#/components/schemas/ProductAnalyticsEventQuery" - - $ref: "#/components/schemas/ProductAnalyticsOccurrenceQuery" - ProductAnalyticsCalendarInterval: - description: A calendar-aligned bucket definition, such as "every 1 week starting on Monday". + OrgGroupRelationshipToOneData: + description: A reference to an org group. properties: - alignment: - description: |- - Where each bucket starts within the calendar unit. Use an hour for `day` (for example `1am` or `14`), - a day name for `week` (for example `monday`), or an ordinal for `month` (for example `1st`). - example: monday - type: string - quantity: - description: Number of calendar units per bucket. - example: 1 - format: int64 - minimum: 1 - type: integer - timezone: - description: Timezone used to align the buckets. - example: UTC + id: + description: The ID of the org group. + example: "a1b2c3d4-e5f6-7890-abcd-ef0123456789" + format: uuid type: string type: - $ref: "#/components/schemas/ProductAnalyticsCalendarIntervalType" + $ref: "#/components/schemas/OrgGroupType" required: + - id - type type: object - ProductAnalyticsCalendarIntervalType: - description: Calendar unit used to bucket cohorts. + OrgGroupResponse: + description: Response containing a single org group. + properties: + data: + $ref: "#/components/schemas/OrgGroupData" + required: + - data + type: object + OrgGroupSortOption: + default: uuid + description: Field to sort org groups by. enum: - - minute - - hour - - day - - week - - month - - quarter - - year - example: week + - name + - -name + - uuid + - -uuid + example: name type: string x-enum-varnames: - - MINUTE - - HOUR - - DAY - - WEEK - - MONTH - - QUARTER - - YEAR - ProductAnalyticsCompute: - description: A compute rule for aggregating data. + - NAME + - MINUS_NAME + - UUID + - MINUS_UUID + OrgGroupType: + description: Org groups resource type. + enum: + - org_groups + example: org_groups + type: string + x-enum-varnames: + - ORG_GROUPS + OrgGroupUpdateAttributes: + description: Attributes for updating an org group. properties: - aggregation: - description: The aggregation function (count, cardinality, avg, sum, min, max, etc.). - example: count - type: string - interval: - description: |- - Time bucket size in milliseconds. Required for timeseries queries; ignored by the - scalar endpoint, which returns a single value. - example: 3600000 - format: int64 - type: integer - metric: - description: The metric to aggregate on. Required for non-count aggregations. - example: "@session.time_spent" + name: + description: The name of the org group. + example: "Updated Org Group Name" type: string required: - - aggregation + - name type: object - ProductAnalyticsElapsedTime: - description: Elapsed time statistics (min/max/avg in milliseconds). + OrgGroupUpdateData: + description: Data for updating an org group. properties: - avg: - description: Average elapsed time to reach the next step, in milliseconds. - example: 5100 - format: int64 - type: integer - max: - description: Maximum elapsed time to reach the next step, in milliseconds. - example: 42000 - format: int64 - type: integer - min: - description: Minimum elapsed time to reach the next step, in milliseconds. - example: 900 - format: int64 - type: integer + attributes: + $ref: "#/components/schemas/OrgGroupUpdateAttributes" + id: + description: The ID of the org group. + example: "a1b2c3d4-e5f6-7890-abcd-ef0123456789" + format: uuid + type: string + type: + $ref: "#/components/schemas/OrgGroupType" required: - - min - - max - - avg + - id + - type + - attributes type: object - ProductAnalyticsEventQuery: - description: A standard Product Analytics event query. + OrgGroupUpdateRequest: + description: Request to update an org group. properties: - data_source: - $ref: "#/components/schemas/ProductAnalyticsEventQueryDataSource" - search: - $ref: "#/components/schemas/ProductAnalyticsEventSearch" + data: + $ref: "#/components/schemas/OrgGroupUpdateData" required: - - data_source - - search + - data type: object - ProductAnalyticsEventQueryDataSource: - description: The data source identifier. - enum: - - product_analytics - example: product_analytics - type: string - x-enum-varnames: - - PRODUCT_ANALYTICS - ProductAnalyticsEventSearch: - description: Search parameters for an event query. + OrgRelationshipData: + description: Reference to an organization resource. properties: - query: - description: The search query using Datadog search syntax. - example: "@type:view" + id: + description: The UUID of the organization. + example: "4dee724d-00cc-11ea-a77b-570c9d03c6c5" + format: uuid type: string + type: + $ref: "#/components/schemas/OrgResourceType" + required: + - id + - type type: object - ProductAnalyticsExecutionType: - description: Override the query execution strategy. - enum: - - simple - - background - - trino-multistep - - materialized-view + OrgResourceType: + description: The resource type for organizations. + enum: [orgs] + example: "orgs" type: string x-enum-varnames: - - SIMPLE - - BACKGROUND - - TRINO_MULTISTEP - - MATERIALIZED_VIEW - ProductAnalyticsFormulaJourneyQuery: - description: Query definition for a journey timeseries request. + - ORGS + OrgSAMLPreferencesAttributes: + description: Attributes for updating an organization's SAML preferences. properties: - compute: - $ref: "#/components/schemas/ProductAnalyticsGraphQueryCompute" - group_by: - description: Segments the results by the values of one or more facets. + default_role_uuids: + description: |- + The UUID of the default role assigned to just-in-time provisioned users. + Exactly one role UUID must be provided. + example: + - 8dd1cf3c-0c75-11ea-ad28-fb5701eabc7d items: - $ref: "#/components/schemas/ProductAnalyticsGraphQueryGroupBy" + description: The UUID of a role. + example: 8dd1cf3c-0c75-11ea-ad28-fb5701eabc7d + format: uuid + type: string + maxItems: 1 + minItems: 1 + type: array + jit_domains: + description: |- + Email domains for which users are automatically provisioned on first SAML login + (just-in-time provisioning). + example: + - example.com + items: + description: An email domain for just-in-time user provisioning. + example: example.com + maxLength: 256 + minLength: 1 + type: string + maxItems: 50 type: array - query_id: - description: Caller-defined identifier echoed back in the results. - type: string - search: - $ref: "#/components/schemas/ProductAnalyticsJourneySearch" - required: - - search - - compute - type: object - ProductAnalyticsFormulaJourneyRequest: - description: Request body for a journey timeseries query. - properties: - data: - $ref: "#/components/schemas/ProductAnalyticsFormulaJourneyRequestData" - required: - - data - type: object - ProductAnalyticsFormulaJourneyRequestAttributes: - description: Attributes of a journey timeseries request. - properties: - from: - description: Start of the query window, in epoch milliseconds. - example: 1756425600000 - format: int64 - type: integer - interval: - description: Time bucket interval in milliseconds. - format: int64 - type: integer - query: - $ref: "#/components/schemas/ProductAnalyticsFormulaJourneyQuery" - to: - description: End of the query window, in epoch milliseconds. - example: 1756857600000 - format: int64 - type: integer required: - - from - - to - - query + - jit_domains + - default_role_uuids type: object - ProductAnalyticsFormulaJourneyRequestData: - description: |- - The single JSON:API resource carrying a journey timeseries query. Its attributes hold the time - window, the bucket interval that splits it, and the journey metric to compute per bucket. + OrgSAMLPreferencesData: + description: Data for updating an organization's SAML preferences. properties: attributes: - $ref: "#/components/schemas/ProductAnalyticsFormulaJourneyRequestAttributes" + $ref: "#/components/schemas/OrgSAMLPreferencesAttributes" + id: + description: The identifier of the SAML preferences resource. + example: 00000000-0000-0000-0000-000000000000 + type: string type: - $ref: "#/components/schemas/ProductAnalyticsFormulaJourneyRequestType" + $ref: "#/components/schemas/OrgSAMLPreferencesType" required: - type - attributes type: object - ProductAnalyticsFormulaJourneyRequestType: - description: The resource type identifier for a journey timeseries or scalar request. + OrgSAMLPreferencesType: + default: saml_preferences + description: SAML preferences resource type. enum: - - formula_journey_request - example: formula_journey_request + - saml_preferences + example: saml_preferences type: string x-enum-varnames: - - FORMULA_JOURNEY_REQUEST - ProductAnalyticsFormulaRetentionQuery: - description: Query definition for a retention scalar or retention timeseries request. - properties: - computation_scope: - $ref: "#/components/schemas/ProductAnalyticsRetentionScope" - compute: - $ref: "#/components/schemas/ProductAnalyticsRetentionCompute" - group_by: - description: Splits the results by the values of one or more facets. - items: - $ref: "#/components/schemas/ProductAnalyticsRetentionGroupBy" - type: array - search: - $ref: "#/components/schemas/ProductAnalyticsRetentionSearch" - required: - - search - - compute - type: object - ProductAnalyticsFormulaRetentionRequest: - description: Request body for a retention scalar or retention timeseries query. + - SAML_PREFERENCES + OrgSAMLPreferencesUpdateRequest: + description: Request to update an organization's SAML preferences. properties: data: - $ref: "#/components/schemas/ProductAnalyticsFormulaRetentionRequestData" + $ref: "#/components/schemas/OrgSAMLPreferencesData" required: - data type: object - ProductAnalyticsFormulaRetentionRequestAttributes: - description: Attributes of a retention scalar or retention timeseries request. - properties: - exclude_anonymous_traffic: - default: false - description: Whether to exclude sessions that are not tied to an identified user. - type: boolean - from: - description: Start of the query window, in epoch milliseconds. - example: 1756425600000 - format: int64 - type: integer - query: - $ref: "#/components/schemas/ProductAnalyticsFormulaRetentionQuery" - to: - description: End of the query window, in epoch milliseconds. - example: 1756857600000 - format: int64 - type: integer - required: - - from - - to - - query - type: object - ProductAnalyticsFormulaRetentionRequestData: - description: |- - The single JSON:API resource carrying a retention scalar or timeseries query. Its attributes - hold the time window to query and the retention query definition to evaluate. + Organization: + description: Organization object. properties: attributes: - $ref: "#/components/schemas/ProductAnalyticsFormulaRetentionRequestAttributes" + $ref: "#/components/schemas/OrganizationAttributes" + id: + description: ID of the organization. + type: string type: - $ref: "#/components/schemas/ProductAnalyticsFormulaRetentionRequestType" + $ref: "#/components/schemas/OrganizationsType" required: - type - - attributes type: object - ProductAnalyticsFormulaRetentionRequestType: - description: The resource type identifier for a retention scalar or retention timeseries request. - enum: - - formula_retention_request - example: formula_retention_request - type: string - x-enum-varnames: - - FORMULA_RETENTION_REQUEST - ProductAnalyticsGraphQueryCompute: - description: Defines the metric computed over the journey. - properties: - aggregation: - description: |- - Aggregation function: `count`, `cardinality`, `avg`, `median`, `min`, `max`, `sum`, - or a percentile of the form `pc` such as `pc95`. Defaults to `cardinality`. - example: count - pattern: "^(count|cardinality|avg|median|min|max|sum|pc[0-9]{1,2})$" - type: string - interval: - description: Time bucket interval in milliseconds, used by timeseries queries. - format: int64 - type: integer - metric: - description: |- - Metric to aggregate on. Use a facet path such as `@view.time_spent`, or one of the - journey metrics `__dd.conversion`, `__dd.conversion_rate`, `__dd.time_to_convert`, - or `__dd.dropoff_rate`. Defaults to `__dd.conversion`. - type: string - target: - $ref: "#/components/schemas/ProductAnalyticsJourneyTarget" - required: - - aggregation - type: object - ProductAnalyticsGraphQueryGroupBy: - description: Segments journey results by the values of a facet. + OrganizationAttributes: + description: Attributes of the organization. properties: - facet: - description: Attribute path to group by. - example: "@geo.country" + created_at: + description: Creation time of the organization. + format: date-time type: string - limit: - description: Maximum number of groups to return. Omit it to let the service choose. - format: int64 - minimum: 1 - type: integer - should_exclude_missing: - default: false - description: Whether to exclude entities that have no value for this facet. - type: boolean - sort: - $ref: "#/components/schemas/ProductAnalyticsGroupBySort" - source: - $ref: "#/components/schemas/ProductAnalyticsGraphQueryGroupBySource" - target: - $ref: "#/components/schemas/ProductAnalyticsJourneyTarget" - value_filters: - description: Restricts the results to these facet values. - items: - description: A facet value to keep. - type: string - type: array - required: - - facet - type: object - ProductAnalyticsGraphQueryGroupBySource: - description: Audience dimension to group by, instead of an event facet. - enum: - - product_analytics_audience_filters.users - - product_analytics_audience_filters.accounts - example: product_analytics_audience_filters.users - type: string - x-enum-varnames: - - USERS - - ACCOUNTS - ProductAnalyticsGroupBy: - description: A group-by rule for segmenting results by facet values. - properties: - facet: - description: The facet to group by. - example: "@view.name" + description: + description: Description of the organization. type: string - limit: - description: Maximum number of groups to return. - example: 10 - format: int64 - type: integer - should_exclude_missing: - default: false - description: Exclude results with missing facet values. + disabled: + description: Whether or not the organization is disabled. type: boolean - sort: - $ref: "#/components/schemas/ProductAnalyticsGroupBySort" - source: - description: The source for audience-filter-based group-by. + modified_at: + description: Time of last organization modification. + format: date-time type: string - required: - - facet - type: object - ProductAnalyticsGroupBySort: - description: Sort configuration for group-by results. - properties: - aggregation: - description: The aggregation function to sort by. - example: count + name: + description: Name of the organization. type: string - metric: - description: The metric to sort by. + public_id: + description: Public ID of the organization. type: string - order: - $ref: "#/components/schemas/QuerySortOrder" - type: object - ProductAnalyticsInterval: - description: An interval definition in a timeseries response. - properties: - milliseconds: - description: The duration of each time bucket in milliseconds. - format: int64 - type: integer - start_time: - description: The start of this interval as an epoch timestamp in milliseconds. - format: int64 - type: integer - times: - description: Epoch timestamps (in milliseconds) for each bucket in this interval. - items: - description: Epoch timestamp in milliseconds for a time bucket boundary. - format: int64 - type: integer - type: array - type: - description: The interval type (e.g., fixed or auto-computed bucket size). + sharing: + description: Sharing type of the organization. type: string - type: object - ProductAnalyticsJoinKeys: - description: Identity join keys used to stitch events belonging to the same user or session. - properties: - primary: - description: Primary identity join key. Defaults to `@session.id`. - example: "@session.id" + url: + description: URL of the site that this organization exists at. type: string - secondary: - description: Additional identity join keys. - items: - description: An identity join key facet. - type: string - type: array type: object - ProductAnalyticsJourneyAudienceAccountQuery: - description: A named sub-query selecting a set of accounts. + OrganizationsType: + default: orgs + description: Organizations resource type. + enum: + - orgs + example: orgs + type: string + x-enum-varnames: + - ORGS + OutboundEdge: + description: The definition of `OutboundEdge` object. properties: - name: - description: Unique name for this sub-query, referenced from `formula`. - example: enterprise_accounts + branchName: + description: The `OutboundEdge` `branchName`. + example: main + minLength: 1 type: string - query: - description: Search query selecting the accounts. + nextStepName: + description: The `OutboundEdge` `nextStepName`. + example: Step2 + minLength: 1 type: string required: - - name + - nextStepName + - branchName type: object - ProductAnalyticsJourneyAudienceFilters: - description: |- - Restricts the journey to an audience built from named sub-queries. - Sub-query names must be unique across `users`, `segments`, and `accounts`. + OutcomeType: + default: outcome + description: The JSON:API type for an outcome. + enum: + - outcome + example: outcome + type: string + x-enum-varnames: + - OUTCOME + OutcomesBatchAttributes: + description: The JSON:API attributes for a batched set of scorecard outcomes. properties: - accounts: - description: Named account sub-queries. - items: - $ref: "#/components/schemas/ProductAnalyticsJourneyAudienceAccountQuery" - type: array - formula: - description: |- - Boolean expression combining the sub-query names with `AND`, `OR`, and `NOT`. - When empty, all sub-queries are combined with `AND`. - example: power_users AND NOT trial_segment - type: string - segments: - description: Named segment sub-queries. - items: - $ref: "#/components/schemas/ProductAnalyticsJourneyAudienceSegmentQuery" - type: array - users: - description: Named user sub-queries. + results: + description: Set of scorecard outcomes to update. items: - $ref: "#/components/schemas/ProductAnalyticsJourneyAudienceUserQuery" + $ref: "#/components/schemas/OutcomesBatchRequestItem" type: array type: object - ProductAnalyticsJourneyAudienceSegmentQuery: - description: A named sub-query selecting a saved segment. - properties: - name: - description: Unique name for this sub-query, referenced from `formula`. - example: trial_segment - type: string - segment_id: - description: Identifier of the saved segment. - example: 00000000-0000-0000-0000-000000000000 - type: string - required: - - name - - segment_id - type: object - ProductAnalyticsJourneyAudienceUserQuery: - description: A named sub-query selecting a set of users. + OutcomesBatchRequest: + description: Scorecard outcomes batch request. properties: - name: - description: Unique name for this sub-query, referenced from `formula`. - example: power_users - type: string - query: - description: Search query selecting the users. - type: string - required: - - name + data: + $ref: "#/components/schemas/OutcomesBatchRequestData" type: object - ProductAnalyticsJourneyComputedColumn: - description: |- - A computed column added to each row. Requesting `first_conversion_timestamps` adds one - `_timestamp` key per step. + OutcomesBatchRequestData: + description: Scorecard outcomes batch request data. properties: - name: - $ref: "#/components/schemas/ProductAnalyticsJourneyComputedColumnName" - required: - - name + attributes: + $ref: "#/components/schemas/OutcomesBatchAttributes" + type: + $ref: "#/components/schemas/OutcomesBatchType" type: object - ProductAnalyticsJourneyComputedColumnName: - description: Name of a computed column to add to each row. - enum: - - first_conversion_timestamps - example: first_conversion_timestamps - type: string - x-enum-varnames: - - FIRST_CONVERSION_TIMESTAMPS - ProductAnalyticsJourneyConversionType: - description: Whether to return the entities that converted at the target step, or those that dropped off. - enum: - - conversion - - drop-off - example: conversion - type: string - x-enum-varnames: - - CONVERSION - - DROP_OFF - ProductAnalyticsJourneyEntity: - description: The kind of entity returned by a journey list query. - enum: - - session - - user - - account - example: session - type: string - x-enum-varnames: - - SESSION - - USER - - ACCOUNT - ProductAnalyticsJourneyFunnelCompute: - description: Defines the metric computed at each funnel step. + OutcomesBatchRequestItem: + description: Scorecard outcome for a specific rule, for a given service within a batched update. properties: - aggregation: - description: |- - Aggregation function: `count`, `cardinality`, `avg`, `median`, `min`, `max`, `sum`, - or a percentile of the form `pc` such as `pc95`. Defaults to `cardinality`. - pattern: "^(count|cardinality|avg|median|min|max|sum|pc[0-9]{1,2})$" + remarks: + description: >- + Any remarks regarding the scorecard rule's evaluation, and supports HTML hyperlinks. + example: 'See: Services' type: string - metric: - description: Metric to aggregate on. Defaults to the identity join key. + rule_id: + $ref: "#/components/schemas/RuleId" + service_name: + description: The unique name for a service in the catalog. + example: my-service type: string - type: object - ProductAnalyticsJourneyFunnelQuery: - description: Query definition for a journey funnel request. - properties: - compute: - $ref: "#/components/schemas/ProductAnalyticsJourneyFunnelCompute" - group_by: - description: Segments the funnel by the values of one or more facets. - items: - $ref: "#/components/schemas/ProductAnalyticsGraphQueryGroupBy" - type: array - search: - $ref: "#/components/schemas/ProductAnalyticsJourneySearch" + state: + $ref: "#/components/schemas/State" required: - - search + - rule_id + - service_name + - state type: object - ProductAnalyticsJourneyFunnelRequest: - description: Request body for a journey funnel analysis. + OutcomesBatchResponse: + description: Scorecard outcomes batch response. properties: data: - $ref: "#/components/schemas/ProductAnalyticsJourneyFunnelRequestData" + $ref: "#/components/schemas/OutcomesBatchResponseData" + example: + - attributes: + service_name: my-service + state: pass + id: "outcome-abc123" + type: rule-outcome + meta: + $ref: "#/components/schemas/OutcomesBatchResponseMeta" required: - data + - meta type: object - ProductAnalyticsJourneyFunnelRequestAttributes: - description: Attributes of a journey funnel request. + OutcomesBatchResponseAttributes: + description: The JSON:API attributes for an outcome. properties: - exclude_anonymous_traffic: - default: false - description: Whether to exclude sessions that are not tied to an identified user. - type: boolean - from: - description: Start of the query window, in epoch milliseconds. - example: 1756425600000 + created_at: + description: Creation time of the rule outcome. + format: date-time + type: string + modified_at: + description: Time of last rule outcome modification. + format: date-time + type: string + remarks: + description: >- + Any remarks regarding the scorecard rule's evaluation, and supports HTML hyperlinks. + example: 'See: Services' + type: string + service_name: + description: The unique name for a service in the catalog. + example: my-service + type: string + state: + $ref: "#/components/schemas/State" + type: object + OutcomesBatchResponseData: + description: List of rule outcomes which were affected during the bulk operation. + items: + $ref: "#/components/schemas/OutcomesResponseDataItem" + type: array + OutcomesBatchResponseMeta: + description: Metadata pertaining to the bulk operation. + properties: + total_received: + description: Total number of scorecard results received during the bulk operation. format: int64 type: integer - query: - $ref: "#/components/schemas/ProductAnalyticsJourneyFunnelQuery" - to: - description: End of the query window, in epoch milliseconds. - example: 1756857600000 + total_updated: + description: Total number of scorecard results modified during the bulk operation. format: int64 type: integer - required: - - from - - to - - query type: object - ProductAnalyticsJourneyFunnelRequestData: - description: |- - The single JSON:API resource carrying a funnel query. Its attributes hold the time window to - query and the journey whose step-to-step conversion should be measured. - properties: - attributes: - $ref: "#/components/schemas/ProductAnalyticsJourneyFunnelRequestAttributes" - type: - $ref: "#/components/schemas/ProductAnalyticsJourneyRequestType" - required: - - type - - attributes - type: object - ProductAnalyticsJourneyFunnelResponse: - description: Response for a journey funnel analysis. + OutcomesBatchType: + default: batched-outcome + description: The JSON:API type for scorecard outcomes. + enum: [batched-outcome] + example: batched-outcome + type: string + x-enum-varnames: [BATCHED_OUTCOME] + OutcomesResponse: + description: Scorecard outcomes - the result of a rule for a service. properties: data: - $ref: "#/components/schemas/ProductAnalyticsJourneyFunnelResponseData" - required: - - data + $ref: "#/components/schemas/OutcomesResponseData" + included: + $ref: "#/components/schemas/OutcomesResponseIncluded" + links: + $ref: "#/components/schemas/OutcomesResponseLinks" type: object - ProductAnalyticsJourneyFunnelResponseAttributes: - description: Attributes of a journey funnel response. + OutcomesResponseData: + description: List of rule outcomes. + items: + $ref: "#/components/schemas/OutcomesResponseDataItem" + type: array + OutcomesResponseDataItem: + description: A single rule outcome. properties: - end_to_end_conversion_rate: - description: Conversion rate from the first step to the last step. - example: 0.42 - format: double - type: number - end_to_end_elapsed_time: - $ref: "#/components/schemas/ProductAnalyticsElapsedTime" - funnel_steps: - description: The funnel steps, in the order given by the search expression. - items: - $ref: "#/components/schemas/ProductAnalyticsJourneyFunnelStep" - type: array - initial_count: - description: Number of entities that entered the funnel. - example: 1200 - format: int64 - type: integer - required: - - initial_count - - end_to_end_conversion_rate - - end_to_end_elapsed_time - - funnel_steps + attributes: + $ref: "#/components/schemas/OutcomesBatchResponseAttributes" + id: + description: The unique ID for a rule outcome. + type: string + relationships: + $ref: "#/components/schemas/RuleOutcomeRelationships" + type: + $ref: "#/components/schemas/OutcomeType" type: object - ProductAnalyticsJourneyFunnelResponseData: - description: |- - The single JSON:API resource holding a computed funnel. Its attributes contain the number of - entities that entered, the end-to-end conversion, and one entry per funnel step. + OutcomesResponseIncluded: + description: Array of rule details. + items: + $ref: "#/components/schemas/OutcomesResponseIncludedItem" + type: array + OutcomesResponseIncludedItem: + description: Attributes of the included rule. properties: attributes: - $ref: "#/components/schemas/ProductAnalyticsJourneyFunnelResponseAttributes" + $ref: "#/components/schemas/OutcomesResponseIncludedRuleAttributes" id: - description: Identifier of this result. - example: 00000000-0000-0000-0000-000000000000 - type: string + $ref: "#/components/schemas/RuleId" type: - $ref: "#/components/schemas/ProductAnalyticsJourneyFunnelResponseType" - required: - - id - - type - - attributes + $ref: "#/components/schemas/RuleType" type: object - ProductAnalyticsJourneyFunnelResponseType: - description: The resource type identifier for a journey funnel response. - enum: - - funnel_response - example: funnel_response - type: string - x-enum-varnames: - - FUNNEL_RESPONSE - ProductAnalyticsJourneyFunnelStep: - description: A single step of the funnel with its conversion counts and timings. + OutcomesResponseIncludedRuleAttributes: + description: Details of a rule. properties: - elapsed_time_to_next_step: - $ref: "#/components/schemas/ProductAnalyticsElapsedTime" - groups: - description: Breakdown of this step by the requested group-by facets. - items: - $ref: "#/components/schemas/ProductAnalyticsJourneyFunnelStepGroup" - type: array - label: - description: Label of the step, derived from the node alias. - example: A + name: + description: Name of the rule. + example: Team Defined type: string - unit: - description: Unit of the elapsed time values. - example: millisecond + scorecard_name: + description: The scorecard name to which this rule must belong. + example: Observability Best Practices type: string - value: - description: Value of the computed metric at this step. - example: 1200 - format: double - type: number - required: - - value - - label - - unit - - elapsed_time_to_next_step - - groups type: object - ProductAnalyticsJourneyFunnelStepGroup: - description: Breakdown of a funnel step for one combination of group-by values. + OutcomesResponseLinks: + description: Links attributes. properties: - conversion_count: - description: Number of entities in this group that reached the next step. - example: 210 - format: int64 - type: integer - elapsed_time_to_next_step: - $ref: "#/components/schemas/ProductAnalyticsElapsedTime" - group_tags: - description: Group-by values identifying this cohort. - example: - - United States - items: - description: A group-by value. - type: string - type: array - value: - description: Value of the computed metric for this group at this step. - example: 480 - format: double - type: number - required: - - group_tags - - value - - conversion_count - - elapsed_time_to_next_step + next: + description: |- + Link for the next set of results. + example: "/api/v2/scorecard/outcomes?include=rule&page%5Blimit%5D=100&page%5Boffset%5D=100" + type: string type: object - ProductAnalyticsJourneyListQuery: - description: Query definition for a journey list request. + OutputSchema: + description: "A list of output parameters for the workflow." properties: - computed_columns: - description: Computed columns to add to each row. - items: - $ref: "#/components/schemas/ProductAnalyticsJourneyComputedColumn" - type: array - conversion_type: - $ref: "#/components/schemas/ProductAnalyticsJourneyConversionType" - entity_columns: - description: Attribute columns to return for each row, in addition to the identity join key and `timestamp`. - items: - description: An attribute column to return. - type: string - type: array - entity_filters: - description: Additional search query applied to the returned rows. - type: string - group_by: - description: Segments the results by the values of one or more facets. + parameters: + description: The `OutputSchema` `parameters`. items: - $ref: "#/components/schemas/ProductAnalyticsGraphQueryGroupBy" + $ref: "#/components/schemas/OutputSchemaParameters" type: array - limit: - description: Maximum number of rows to return. Omit it to let the service choose. - format: int64 - minimum: 1 - type: integer - search: - $ref: "#/components/schemas/ProductAnalyticsJourneySearch" - sort: - $ref: "#/components/schemas/ProductAnalyticsJourneyListSort" - target: - $ref: "#/components/schemas/ProductAnalyticsJourneyTarget" - required: - - search - type: object - ProductAnalyticsJourneyListRecord: - additionalProperties: {} - description: |- - A single row. Keys are the returned column names: the identity join key, `timestamp`, - each entry of `entity_columns`, and any computed columns. A value is null when the - column has no value for that row. - type: object - ProductAnalyticsJourneyListRequest: - description: Request body for a journey list query. - properties: - data: - $ref: "#/components/schemas/ProductAnalyticsJourneyListRequestData" - required: - - data - type: object - ProductAnalyticsJourneyListRequestAttributes: - description: Attributes of a journey list request. - properties: - from: - description: Start of the query window, in epoch milliseconds. - example: 1756425600000 - format: int64 - type: integer - query: - $ref: "#/components/schemas/ProductAnalyticsJourneyListQuery" - to: - description: End of the query window, in epoch milliseconds. - example: 1756857600000 - format: int64 - type: integer - required: - - from - - to - - query type: object - ProductAnalyticsJourneyListRequestData: - description: |- - The single JSON:API resource carrying a journey list query. Its attributes hold the time window - and the journey whose matching entities should be listed, one row each. + OutputSchemaParameters: + description: The definition of `OutputSchemaParameters` object. properties: - attributes: - $ref: "#/components/schemas/ProductAnalyticsJourneyListRequestAttributes" + defaultValue: + description: The `OutputSchemaParameters` `defaultValue`. + description: + description: The `OutputSchemaParameters` `description`. + type: string + label: + description: The `OutputSchemaParameters` `label`. + type: string + name: + description: The `OutputSchemaParameters` `name`. + example: "" + type: string type: - $ref: "#/components/schemas/ProductAnalyticsJourneyListRequestType" + $ref: "#/components/schemas/OutputSchemaParametersType" + value: + description: The `OutputSchemaParameters` `value`. required: + - name - type - - attributes type: object - ProductAnalyticsJourneyListRequestType: - description: The resource type identifier for a journey list request. + OutputSchemaParametersType: + description: The definition of `OutputSchemaParametersType` object. enum: - - journey_list_request - example: journey_list_request + - STRING + - NUMBER + - BOOLEAN + - OBJECT + - ARRAY_STRING + - ARRAY_NUMBER + - ARRAY_BOOLEAN + - ARRAY_OBJECT + example: STRING type: string x-enum-varnames: - - JOURNEY_LIST_REQUEST - ProductAnalyticsJourneyListResponse: - description: Response for a journey list query. + - STRING + - NUMBER + - BOOLEAN + - OBJECT + - ARRAY_STRING + - ARRAY_NUMBER + - ARRAY_BOOLEAN + - ARRAY_OBJECT + OverwriteAllocationsRequest: + description: Request to overwrite targeting rules (allocations) for a feature flag in an environment. properties: data: - $ref: "#/components/schemas/ProductAnalyticsJourneyListResponseData" + description: Targeting rules (allocations) to replace existing ones with. + items: + $ref: "#/components/schemas/AllocationDataRequest" + type: array required: - data type: object - ProductAnalyticsJourneyListResponseAttributes: - description: Attributes of a journey list response. + OwnershipConfidenceLevel: + description: The ownership confidence level. + enum: + - high + - medium + - low + example: high + type: string + x-enum-varnames: + - HIGH + - MEDIUM + - LOW + OwnershipEvidenceAttributes: + description: The attributes of an ownership evidence response. properties: - entity: - $ref: "#/components/schemas/ProductAnalyticsJourneyEntity" - records: - description: The returned rows. - items: - $ref: "#/components/schemas/ProductAnalyticsJourneyListRecord" - type: array - total_count: - description: Total number of rows matching the query, ignoring `limit`. - example: 231 - format: int64 - type: integer + evidence_versions: + $ref: "#/components/schemas/OwnershipEvidenceVersions" required: - - entity - - total_count - - records + - evidence_versions type: object - ProductAnalyticsJourneyListResponseData: - description: |- - The single JSON:API resource holding the entities matching a journey. Its attributes contain - the returned rows and the total number of rows that matched, ignoring `limit`. + OwnershipEvidenceData: + description: The data wrapper for an ownership evidence response. properties: attributes: - $ref: "#/components/schemas/ProductAnalyticsJourneyListResponseAttributes" + $ref: "#/components/schemas/OwnershipEvidenceAttributes" id: - description: Identifier of this result. - example: 00000000-0000-0000-0000-000000000000 + description: The identifier of the resource the evidence applies to. + example: test-resource type: string type: - $ref: "#/components/schemas/ProductAnalyticsJourneyListResponseType" + $ref: "#/components/schemas/OwnershipEvidenceType" required: - id - type - attributes type: object - ProductAnalyticsJourneyListResponseType: - description: The resource type identifier for a journey list response. - enum: - - journey_list_response - example: journey_list_response - type: string - x-enum-varnames: - - JOURNEY_LIST_RESPONSE - ProductAnalyticsJourneyListSort: - description: |- - Sort configuration for the returned rows. The sort is applied only when `facet` - is one of the returned columns; otherwise it is ignored. - properties: - facet: - description: Column to sort on. - type: string - order: - $ref: "#/components/schemas/QuerySortOrder" - type: object - ProductAnalyticsJourneyNodeTarget: - description: A reference to a single step of the journey. + OwnershipEvidenceResponse: + description: The response returned when retrieving the evidence backing an ownership inference for an owner type. properties: - type: - $ref: "#/components/schemas/ProductAnalyticsJourneyNodeTargetType" - value: - description: Alias of the targeted node. - example: A - type: string + data: + $ref: "#/components/schemas/OwnershipEvidenceData" required: - - type - - value + - data type: object - ProductAnalyticsJourneyNodeTargetType: - description: The discriminator identifying a target that references a single step. + OwnershipEvidenceType: + default: ownership_evidence + description: The type of the ownership evidence resource. The value should always be `ownership_evidence`. enum: - - node - example: node + - ownership_evidence + example: ownership_evidence type: string x-enum-varnames: - - NODE - ProductAnalyticsJourneyPathTarget: - description: A reference to the range of steps between two nodes of the journey. - properties: - end: - description: Alias of the node the path ends at. - example: B - type: string - start: - description: Alias of the node the path starts at. - example: A - type: string - type: - $ref: "#/components/schemas/ProductAnalyticsJourneyPathTargetType" - required: - - type - - start - - end + - OWNERSHIP_EVIDENCE + OwnershipEvidenceVersion: + additionalProperties: {} + description: A single evidence version entry describing how an inference was produced. + example: + pipeline_id: p1 + version: v3 type: object - ProductAnalyticsJourneyPathTargetType: - description: The discriminator identifying a target that references a range of steps. - enum: - - path - example: path - type: string - x-enum-varnames: - - PATH - ProductAnalyticsJourneyRequestType: - description: The resource type identifier for a journey funnel request. + OwnershipEvidenceVersions: + description: The list of evidence versions associated with an inference. + example: + - pipeline_id: p1 + version: v3 + items: + $ref: "#/components/schemas/OwnershipEvidenceVersion" + nullable: true + type: array + OwnershipFeedbackAction: + description: The feedback action to apply to an inference. enum: - - journey_request - example: journey_request + - confirm + - reject + - correct + - persist + example: confirm type: string x-enum-varnames: - - JOURNEY_REQUEST - ProductAnalyticsJourneyScalarCompute: - description: Defines the metric computed over the journey for a scalar query. - properties: - aggregation: - description: |- - Aggregation function: `count`, `cardinality`, `avg`, `median`, `min`, `max`, `sum`, - or a percentile of the form `pc` such as `pc95`. Defaults to `cardinality`. - example: count - pattern: "^(count|cardinality|avg|median|min|max|sum|pc[0-9]{1,2})$" - type: string - metric: - description: |- - Metric to aggregate on. Use a facet path such as `@view.time_spent`, or one of the - journey metrics `__dd.conversion`, `__dd.conversion_rate`, `__dd.time_to_convert`, - or `__dd.dropoff_rate`. Defaults to `__dd.conversion`. - type: string - target: - $ref: "#/components/schemas/ProductAnalyticsJourneyTarget" - required: - - aggregation - type: object - ProductAnalyticsJourneyScalarQuery: - description: Query definition for a journey scalar request. - properties: - compute: - $ref: "#/components/schemas/ProductAnalyticsJourneyScalarCompute" - group_by: - description: Segments the results by the values of one or more facets. - items: - $ref: "#/components/schemas/ProductAnalyticsGraphQueryGroupBy" - type: array - query_id: - description: Caller-defined identifier echoed back in the results. - type: string - search: - $ref: "#/components/schemas/ProductAnalyticsJourneySearch" - required: - - search - - compute - type: object - ProductAnalyticsJourneyScalarRequest: - description: Request body for a journey scalar query. + - CONFIRM + - REJECT + - CORRECT + - PERSIST + OwnershipFeedbackRequest: + description: The request body for submitting ownership feedback. properties: data: - $ref: "#/components/schemas/ProductAnalyticsJourneyScalarRequestData" + $ref: "#/components/schemas/OwnershipFeedbackRequestData" required: - data type: object - ProductAnalyticsJourneyScalarRequestAttributes: - description: Attributes of a journey scalar request. + OwnershipFeedbackRequestAttributes: + description: The attributes of an ownership feedback request. properties: - from: - description: Start of the query window, in epoch milliseconds. - example: 1756425600000 - format: int64 - type: integer - query: - $ref: "#/components/schemas/ProductAnalyticsJourneyScalarQuery" - to: - description: End of the query window, in epoch milliseconds. - example: 1756857600000 - format: int64 - type: integer + action: + $ref: "#/components/schemas/OwnershipFeedbackAction" + corrected_owner_handle: + description: The corrected owner handle. Required when `action` is `correct`. + example: team-b + nullable: true + type: string + corrected_owner_type: + description: The corrected owner type. Required when `action` is `correct`. + example: team + nullable: true + type: string + inference_checksum: + description: The checksum of the inference being acted upon. Must match the current inference checksum or the request returns a conflict. + example: abc123 + type: string + reason: + description: An optional free-form reason explaining the feedback. + example: Confirmed by team lead. + nullable: true + type: string required: - - from - - to - - query + - action + - inference_checksum type: object - ProductAnalyticsJourneyScalarRequestData: - description: |- - The single JSON:API resource carrying a journey scalar query. Its attributes hold the time - window and the journey metric to reduce to one value over that window. + OwnershipFeedbackRequestData: + description: The data wrapper for an ownership feedback request. properties: attributes: - $ref: "#/components/schemas/ProductAnalyticsJourneyScalarRequestAttributes" + $ref: "#/components/schemas/OwnershipFeedbackRequestAttributes" type: - $ref: "#/components/schemas/ProductAnalyticsFormulaJourneyRequestType" + $ref: "#/components/schemas/OwnershipFeedbackType" required: - type - attributes type: object - ProductAnalyticsJourneyScalarResponse: - description: Response for a journey scalar query. + OwnershipFeedbackResponse: + description: The response returned after applying ownership feedback to an inference. properties: data: - $ref: "#/components/schemas/ProductAnalyticsJourneyScalarResponseData" + $ref: "#/components/schemas/OwnershipFeedbackResultData" required: - data type: object - ProductAnalyticsJourneyScalarResponseData: - description: |- - The single JSON:API resource holding journey scalar results. Its attributes contain one value - per group, suitable for a query value or top list widget. + OwnershipFeedbackResultAttributes: + description: The attributes of an ownership feedback result. + properties: + action: + $ref: "#/components/schemas/OwnershipFeedbackAction" + checksum: + description: The checksum of the inference after the feedback was applied. + example: abc123 + type: string + new_status: + $ref: "#/components/schemas/OwnershipInferenceStatus" + owner_type: + $ref: "#/components/schemas/OwnershipOwnerType" + previous_status: + $ref: "#/components/schemas/OwnershipInferenceStatus" + primary_contact_ref: + description: The primary contact reference for the inferred owner after the feedback was applied, formatted as `ref:handle/`. + example: ref:handle/team-a + nullable: true + type: string + updated_at: + description: The time when the inference was updated by the feedback. + example: "2026-01-15T10:00:00Z" + format: date-time + type: string + required: + - action + - previous_status + - new_status + - owner_type + - checksum + - updated_at + type: object + OwnershipFeedbackResultData: + description: The data wrapper for an ownership feedback result response. properties: attributes: - $ref: "#/components/schemas/ProductAnalyticsScalarResponseAttributes" + $ref: "#/components/schemas/OwnershipFeedbackResultAttributes" id: - description: Identifier of this result. - example: 00000000-0000-0000-0000-000000000000 + description: The identifier of the resource that the feedback was applied to. + example: res-1 type: string type: - $ref: "#/components/schemas/ProductAnalyticsJourneyScalarResponseType" + $ref: "#/components/schemas/OwnershipFeedbackResultType" required: - id - type - attributes type: object - ProductAnalyticsJourneyScalarResponseType: - description: The resource type identifier for a journey scalar response. + OwnershipFeedbackResultType: + default: ownership_feedback_result + description: The type of the ownership feedback result resource. The value should always be `ownership_feedback_result`. enum: - - journey_scalar_response - example: journey_scalar_response + - ownership_feedback_result + example: ownership_feedback_result type: string x-enum-varnames: - - JOURNEY_SCALAR_RESPONSE - ProductAnalyticsJourneySearch: - description: Defines the steps of the journey and the filters applied to it. - properties: - expression: - description: Expression combining the node aliases in order, for example `A -> B -> C`. - example: A -> B - type: string - filters: - $ref: "#/components/schemas/ProductAnalyticsJourneySearchFilters" - join_keys: - $ref: "#/components/schemas/ProductAnalyticsJoinKeys" - node_objects: - additionalProperties: - $ref: "#/components/schemas/ProductAnalyticsBaseQuery" - description: |- - Map of node alias to the query matching that step of the journey. - Every alias used in `expression` must have an entry here. - example: - A: - data_source: product_analytics - search: - query: "@type:view @view.name:Login" - B: - data_source: product_analytics - search: - query: "@type:action @action.target.name:Submit" - type: object + - OWNERSHIP_FEEDBACK_RESULT + OwnershipFeedbackType: + default: ownership_feedback + description: The type of the ownership feedback request resource. The value should always be `ownership_feedback`. + enum: + - ownership_feedback + example: ownership_feedback + type: string + x-enum-varnames: + - OWNERSHIP_FEEDBACK + OwnershipHistoryAttributes: + description: The attributes of an ownership history response. + properties: + items: + $ref: "#/components/schemas/OwnershipHistoryItems" + pagination: + $ref: "#/components/schemas/OwnershipHistoryPagination" required: - - expression - - node_objects + - items + - pagination type: object - ProductAnalyticsJourneySearchFilters: - description: Filters applied on top of the journey step expression. + OwnershipHistoryData: + description: The data wrapper for an ownership history response. properties: - audience_filters: - $ref: "#/components/schemas/ProductAnalyticsJourneyAudienceFilters" - graph_filters: - description: Filters on journey-level metrics such as time to convert. - items: - $ref: "#/components/schemas/ProductAnalyticsJourneySearchGraphFilter" - type: array - string_filter: - description: Free-text search query applied to the whole journey. + attributes: + $ref: "#/components/schemas/OwnershipHistoryAttributes" + id: + description: The resource identifier for which history is returned. + example: res-1 type: string + type: + $ref: "#/components/schemas/OwnershipHistoryType" + required: + - id + - type + - attributes type: object - ProductAnalyticsJourneySearchGraphFilter: - description: A filter applied to a step, or a range of steps, of the journey graph. + OwnershipHistoryItem: + description: A single ownership inference history entry. properties: - name: - $ref: "#/components/schemas/ProductAnalyticsJourneySearchGraphFilterName" - operator: - $ref: "#/components/schemas/ProductAnalyticsJourneySearchGraphFilterOperator" - target: - $ref: "#/components/schemas/ProductAnalyticsJourneyTarget" - value: - description: Value compared against the metric. Durations are expressed in milliseconds. - example: 60000 + checksum: + description: A checksum identifying the state of the inference at this point in time. + example: "" + type: string + confidence: + description: The confidence score of the inference, expressed as a numeric string with up to four decimal places. + example: "0.9000" + type: string + created_at: + description: The time this history entry was created. + example: "2026-01-15T10:00:00Z" + format: date-time + type: string + evidence_versions: + $ref: "#/components/schemas/OwnershipEvidenceVersions" + explanation: + description: A human-readable explanation of how the inference was produced. + example: "" + type: string + failed_at: + description: The time when this inference failed, if applicable. + example: "2026-01-15T10:00:00Z" + format: date-time + nullable: true + type: string + failure_reason: + description: The reason why this inference failed, if applicable. + example: missing evidence + nullable: true + type: string + id: + description: The unique identifier of the history entry. + example: 100 format: int64 type: integer + owner_type: + $ref: "#/components/schemas/OwnershipOwnerType" + primary_contact_ref: + description: The primary contact reference for the inferred owner, formatted as `ref:handle/`. + example: ref:handle/team-a + nullable: true + type: string + resource_id: + description: The identifier of the resource that the inference applies to. + example: res-1 + type: string + retry_schedule: + description: The scheduled retry time for a failed inference, if applicable. + example: "2026-01-15T11:00:00Z" + format: date-time + nullable: true + type: string + sources: + $ref: "#/components/schemas/OwnershipInferenceSources" + status: + $ref: "#/components/schemas/OwnershipInferenceStatus" required: - - name - - operator - - value + - id + - resource_id + - owner_type + - confidence + - explanation + - evidence_versions + - sources + - checksum + - status + - created_at type: object - ProductAnalyticsJourneySearchGraphFilterName: - description: The journey-level metric the graph filter applies to. - enum: - - __dd.time_to_convert - - __dd.session - - __dd.dropoff_rate - example: __dd.time_to_convert - type: string - x-enum-varnames: - - TIME_TO_CONVERT - - SESSION - - DROPOFF_RATE - ProductAnalyticsJourneySearchGraphFilterOperator: - description: Comparison operator applied to the graph filter value. + OwnershipHistoryItems: + description: The list of history entries returned for this page. + items: + $ref: "#/components/schemas/OwnershipHistoryItem" + type: array + OwnershipHistoryPagination: + description: Cursor-based pagination metadata for the history response. + properties: + has_more: + description: Whether more history entries are available beyond this page. + example: false + type: boolean + next_cursor: + description: An opaque, base64-encoded cursor token. Pass it as the `cursor` query parameter to retrieve the next page. Absent or `null` when there are no further pages. + example: eyJpZCI6OTh9 + nullable: true + type: string + required: + - has_more + type: object + OwnershipHistoryResponse: + description: The response returned when listing the inference history for a resource. + properties: + data: + $ref: "#/components/schemas/OwnershipHistoryData" + required: + - data + type: object + OwnershipHistoryType: + default: ownership_history + description: The type of the ownership history resource. The value should always be `ownership_history`. enum: - - "=" - - "<" - - ">" - - "<=" - - ">=" - example: "<=" + - ownership_history + example: ownership_history type: string x-enum-varnames: - - EQUAL - - LESS_THAN - - GREATER_THAN - - LESS_THAN_OR_EQUAL - - GREATER_THAN_OR_EQUAL - ProductAnalyticsJourneyTarget: - description: |- - A reference to a step, or a range of steps, in the journey. - Use a `node` target to name a single step, or a `path` target to name the range - between two steps. - oneOf: - - $ref: "#/components/schemas/ProductAnalyticsJourneyNodeTarget" - - $ref: "#/components/schemas/ProductAnalyticsJourneyPathTarget" - ProductAnalyticsJourneyTimeseriesResponse: - description: Response for a journey timeseries query. + - OWNERSHIP_HISTORY + OwnershipInferenceAttributes: + description: The attributes of a single ownership inference. properties: - data: - $ref: "#/components/schemas/ProductAnalyticsJourneyTimeseriesResponseData" + checksum: + description: A checksum that uniquely identifies the current state of the inference. Required when submitting feedback. + example: abc123 + type: string + confidence: + description: The confidence score of the inference, expressed as a numeric string with up to four decimal places. + example: "0.9500" + type: string + created_at: + description: The time when the inference was created. + example: "2026-01-15T10:00:00Z" + format: date-time + type: string + evidence_versions: + $ref: "#/components/schemas/OwnershipEvidenceVersions" + explanation: + description: A human-readable explanation of how the inference was produced. + example: High confidence match + type: string + owner_type: + $ref: "#/components/schemas/OwnershipOwnerType" + primary_contact_ref: + description: The primary contact reference for the inferred owner, formatted as `ref:handle/`. + example: ref:handle/team-a + nullable: true + type: string + sources: + $ref: "#/components/schemas/OwnershipInferenceSources" + status: + $ref: "#/components/schemas/OwnershipInferenceStatus" + updated_at: + description: The time when the inference was last updated. + example: "2026-01-15T10:00:00Z" + format: date-time + type: string required: - - data + - owner_type + - confidence + - explanation + - evidence_versions + - sources + - status + - checksum + - created_at + - updated_at type: object - ProductAnalyticsJourneyTimeseriesResponseData: - description: |- - The single JSON:API resource holding journey timeseries results. Its attributes contain one - series per group along with the timestamps the points fall on. + OwnershipInferenceData: + description: The data wrapper for a single ownership inference response. properties: attributes: - $ref: "#/components/schemas/ProductAnalyticsTimeseriesResponseAttributes" + $ref: "#/components/schemas/OwnershipInferenceAttributes" id: - description: Identifier of this result. - example: 00000000-0000-0000-0000-000000000000 + description: The identifier of the inference, formatted as `resource_id:owner_type`. + example: test-resource:team type: string type: - $ref: "#/components/schemas/ProductAnalyticsJourneyTimeseriesResponseType" + $ref: "#/components/schemas/OwnershipInferenceType" required: - id - type - attributes type: object - ProductAnalyticsJourneyTimeseriesResponseType: - description: The resource type identifier for a journey timeseries response. - enum: - - journey_timeseries_response - example: journey_timeseries_response - type: string - x-enum-varnames: - - JOURNEY_TIMESERIES_RESPONSE - ProductAnalyticsOccurrenceFilter: - description: Filter for occurrence-based queries. + OwnershipInferenceItem: + description: A single ownership inference, scoped to a specific owner type. properties: - meta: - additionalProperties: - type: string - description: Additional metadata. - type: object - operator: - description: Comparison operator (=, >=, <=, >, <). - example: ">=" + checksum: + description: A checksum that uniquely identifies the current state of the inference. Required when submitting feedback. + example: abc123 type: string - value: - description: The occurrence count threshold as a string. - example: "1" + confidence: + description: The confidence score of the inference, expressed as a numeric string with up to four decimal places. + example: "0.9500" + type: string + created_at: + description: The time when the inference was created. + example: "2026-01-15T10:00:00Z" + format: date-time + type: string + evidence_versions: + $ref: "#/components/schemas/OwnershipEvidenceVersions" + explanation: + description: A human-readable explanation of how the inference was produced. + example: High confidence match + type: string + id: + description: The identifier of the inference, formatted as `resource_id:owner_type`. + example: test-resource:team + type: string + owner_type: + $ref: "#/components/schemas/OwnershipOwnerType" + primary_contact_ref: + description: The primary contact reference for the inferred owner, formatted as `ref:handle/`. + example: ref:handle/team-a + nullable: true + type: string + sources: + $ref: "#/components/schemas/OwnershipInferenceSources" + status: + $ref: "#/components/schemas/OwnershipInferenceStatus" + updated_at: + description: The time when the inference was last updated. + example: "2026-01-15T10:00:00Z" + format: date-time type: string required: - - operator - - value + - id + - owner_type + - confidence + - explanation + - evidence_versions + - sources + - status + - checksum + - created_at + - updated_at type: object - ProductAnalyticsOccurrenceQuery: - description: A Product Analytics occurrence-filtered query. + OwnershipInferenceItems: + description: The list of inferences for a resource, with one inference per owner type. + items: + $ref: "#/components/schemas/OwnershipInferenceItem" + type: array + OwnershipInferenceListAttributes: + description: The attributes of the ownership inferences collection response. properties: - data_source: - $ref: "#/components/schemas/ProductAnalyticsOccurrenceQueryDataSource" - search: - $ref: "#/components/schemas/ProductAnalyticsOccurrenceSearch" + items: + $ref: "#/components/schemas/OwnershipInferenceItems" required: - - data_source - - search + - items type: object - ProductAnalyticsOccurrenceQueryDataSource: - description: The data source identifier for occurrence queries. - enum: - - product_analytics_occurrence - example: product_analytics_occurrence - type: string - x-enum-varnames: - - PRODUCT_ANALYTICS_OCCURRENCE - ProductAnalyticsOccurrenceSearch: - description: Search parameters for an occurrence query. + OwnershipInferenceListData: + description: The data wrapper for the ownership inferences collection response. properties: - occurrences: - $ref: "#/components/schemas/ProductAnalyticsOccurrenceFilter" - query: - description: The search query using Datadog search syntax. - example: "@type:action" + attributes: + $ref: "#/components/schemas/OwnershipInferenceListAttributes" + id: + description: The resource identifier associated with the returned inferences. + example: test-resource type: string + type: + $ref: "#/components/schemas/OwnershipInferencesType" + required: + - id + - type + - attributes type: object - ProductAnalyticsResponseMeta: - description: Metadata for a Product Analytics query response. + OwnershipInferenceListResponse: + description: The response returned when listing all current ownership inferences for a resource. properties: - request_id: - description: Unique identifier of the query. - type: string - status: - $ref: "#/components/schemas/ProductAnalyticsResponseMetaStatus" + data: + $ref: "#/components/schemas/OwnershipInferenceListData" + required: + - data type: object - ProductAnalyticsResponseMetaStatus: - description: The execution status of a Product Analytics query. - enum: - - done - - running - - timeout - type: string - x-enum-varnames: - - DONE - - RUNNING - - TIMEOUT - ProductAnalyticsRetentionAggregationTarget: - description: Selects the rolled-up row that aggregates every cohort, rather than a single cohort. + OwnershipInferenceResponse: + description: The response returned when retrieving a single ownership inference for an owner type. properties: - type: - $ref: "#/components/schemas/ProductAnalyticsRetentionAggregationTargetType" - value: - description: The aggregation that produced the rolled-up row. - example: weighted_avg - type: string + data: + $ref: "#/components/schemas/OwnershipInferenceData" required: - - type - - value + - data type: object - ProductAnalyticsRetentionAggregationTargetType: - description: The discriminator identifying a target selected by aggregation. + OwnershipInferenceSource: + additionalProperties: {} + description: A source describing how an inference was derived. + example: + kind: code_owners + type: object + OwnershipInferenceSources: + description: The list of sources backing an ownership inference. Empty when the inference status is not whitelisted to expose sources. + example: + - kind: code_owners + items: + $ref: "#/components/schemas/OwnershipInferenceSource" + type: array + OwnershipInferenceStatus: + description: The lifecycle status of an ownership inference. enum: - - aggregation - example: aggregation + - suggested + - persisted + - overridden + - failed + - unknown + example: suggested type: string x-enum-varnames: - - AGGREGATION - ProductAnalyticsRetentionCalendarTimeInterval: - description: A retention interval aligned to calendar boundaries. - properties: - type: - $ref: "#/components/schemas/ProductAnalyticsRetentionCalendarTimeIntervalType" - value: - $ref: "#/components/schemas/ProductAnalyticsCalendarInterval" - required: - - type - - value - type: object - ProductAnalyticsRetentionCalendarTimeIntervalType: - description: The discriminator identifying a calendar-aligned retention interval. + - SUGGESTED + - PERSISTED + - OVERRIDDEN + - FAILED + - UNKNOWN + OwnershipInferenceType: + default: ownership_inference + description: The type of the ownership inference resource. The value should always be `ownership_inference`. enum: - - calendar - example: calendar + - ownership_inference + example: ownership_inference type: string x-enum-varnames: - - CALENDAR - ProductAnalyticsRetentionCellScope: - description: Narrows a retention query to a single cell, at the intersection of one cohort and one return period. - properties: - cohort_target: - $ref: "#/components/schemas/ProductAnalyticsRetentionCohortTarget" - return_period_target: - $ref: "#/components/schemas/ProductAnalyticsRetentionIndexTarget" - type: - $ref: "#/components/schemas/ProductAnalyticsRetentionCellScopeType" - required: - - type - - cohort_target - - return_period_target - type: object - ProductAnalyticsRetentionCellScopeType: - description: The discriminator identifying a scope narrowed to one grid cell. + - OWNERSHIP_INFERENCE + OwnershipInferencesType: + default: ownership_inferences + description: The type of the ownership inferences collection resource. The value should always be `ownership_inferences`. enum: - - cell - example: cell + - ownership_inferences + example: ownership_inferences type: string x-enum-varnames: - - CELL - ProductAnalyticsRetentionCohortCriteria: - description: Defines the event that places an entity into a cohort, and how cohorts are bucketed over time. + - OWNERSHIP_INFERENCES + OwnershipOwnerType: + description: The owner type for an ownership inference. + enum: + - user + - team + - service + - unknown + example: team + type: string + x-enum-varnames: + - USER + - TEAM + - SERVICE + - UNKNOWN + OwnershipSettingsAttributes: + description: The attributes of the ownership settings response. properties: - base_query: - $ref: "#/components/schemas/ProductAnalyticsBaseQuery" - time_interval: - $ref: "#/components/schemas/ProductAnalyticsRetentionTimeInterval" + auto_tag: + description: Whether automatic ownership tagging is enabled. + example: true + type: boolean + confidence_level: + $ref: "#/components/schemas/OwnershipConfidenceLevel" + version: + description: The current version of the ownership settings. + example: 1 + format: int64 + type: integer required: - - base_query - - time_interval + - version + - auto_tag + - confidence_level type: object - ProductAnalyticsRetentionCohortScope: - description: Narrows a retention query to a single cohort row. + OwnershipSettingsData: + description: The data wrapper for an ownership settings response. properties: - target: - $ref: "#/components/schemas/ProductAnalyticsRetentionCohortTarget" + attributes: + $ref: "#/components/schemas/OwnershipSettingsAttributes" + id: + description: The identifier of the ownership settings resource. + example: settings + type: string type: - $ref: "#/components/schemas/ProductAnalyticsRetentionCohortScopeType" + $ref: "#/components/schemas/OwnershipSettingsType" required: + - id - type - - target + - attributes type: object - ProductAnalyticsRetentionCohortScopeType: - description: The discriminator identifying a scope narrowed to one cohort. - enum: - - cohort - example: cohort - type: string - x-enum-varnames: - - COHORT - ProductAnalyticsRetentionCohortTarget: - description: Selects a cohort, either by index or by the aggregation that rolls all cohorts together. - oneOf: - - $ref: "#/components/schemas/ProductAnalyticsRetentionIndexTarget" - - $ref: "#/components/schemas/ProductAnalyticsRetentionAggregationTarget" - ProductAnalyticsRetentionCompute: - description: The metric and aggregation applied to a retention query. + OwnershipSettingsRequest: + description: The request body for updating ownership settings. properties: - aggregation: - description: The aggregation function applied to the metric, such as `count` or `avg`. - example: count - type: string - metric: - $ref: "#/components/schemas/ProductAnalyticsRetentionComputeMetric" + data: + $ref: "#/components/schemas/OwnershipSettingsRequestData" required: - - metric - - aggregation + - data type: object - ProductAnalyticsRetentionComputeMetric: - description: The retention metric to compute, either an absolute count or a rate. - enum: - - "__dd.retention" - - "__dd.retention_rate" - example: "__dd.retention_rate" - type: string - x-enum-varnames: - - RETENTION - - RETENTION_RATE - ProductAnalyticsRetentionEntity: - description: The entity whose retention is measured. - enum: - - "@usr.id" - - "@account.id" - example: "@usr.id" - type: string - x-enum-varnames: - - USER_ID - - ACCOUNT_ID - ProductAnalyticsRetentionFilters: - description: Filters narrowing the events considered by a retention query. + OwnershipSettingsRequestAttributes: + description: The attributes of an ownership settings request. properties: - audience_filters: - $ref: "#/components/schemas/ProductAnalyticsAudienceFilters" - string_filter: - description: Free-text search query applied to the events. - type: string + auto_tag: + description: Whether automatic ownership tagging is enabled. + example: true + type: boolean + confidence_level: + $ref: "#/components/schemas/OwnershipConfidenceLevel" + required: + - auto_tag + - confidence_level type: object - ProductAnalyticsRetentionFixedTimeInterval: - description: A retention interval of fixed length, such as "7 days". + OwnershipSettingsRequestData: + description: The data wrapper for an ownership settings request. properties: + attributes: + $ref: "#/components/schemas/OwnershipSettingsRequestAttributes" type: - $ref: "#/components/schemas/ProductAnalyticsRetentionFixedTimeIntervalType" - unit: - $ref: "#/components/schemas/ProductAnalyticsRetentionFixedTimeIntervalUnit" - value: - description: Length of the interval, expressed in `unit`. - example: 7 - exclusiveMinimum: true - format: double - minimum: 0 - type: number + $ref: "#/components/schemas/OwnershipSettingsType" required: - type - - value - - unit + - attributes type: object - ProductAnalyticsRetentionFixedTimeIntervalType: - description: The discriminator identifying a fixed-length retention interval. - enum: - - fixed - example: fixed - type: string - x-enum-varnames: - - FIXED - ProductAnalyticsRetentionFixedTimeIntervalUnit: - description: Time unit for a fixed-length retention interval. + OwnershipSettingsResponse: + description: The response returned when retrieving or updating ownership settings. + properties: + data: + $ref: "#/components/schemas/OwnershipSettingsData" + required: + - data + type: object + OwnershipSettingsType: + default: ownership_settings + description: The type of the ownership settings resource. The value should always be `ownership_settings`. enum: - - day - - week - - month - example: day + - ownership_settings + example: ownership_settings type: string x-enum-varnames: - - DAY - - WEEK - - MONTH - ProductAnalyticsRetentionGridCohort: - description: One row of the retention grid, holding the results for a single cohort. + - OWNERSHIP_SETTINGS + OwnershipUntaggedFindingsAttributes: + description: The counts of findings without a team tag by ownership confidence. properties: - cells: - description: The cells of the row, one per return period. - items: - $ref: "#/components/schemas/ProductAnalyticsRetentionGridCohortCell" - type: array - cohort_end_time: - description: End of the cohort window, in epoch milliseconds. + high_confidence: + description: The number of high confidence findings without a team tag. + example: 30 format: int64 type: integer - cohort_index: - description: Zero-based index of the cohort in the grid. + low_confidence: + description: The number of low confidence findings without a team tag. + example: 42 format: int64 type: integer - cohort_size: - description: Number of entities in the cohort. + medium_confidence: + description: The number of medium confidence findings without a team tag. + example: 70 format: int64 type: integer - cohort_start_time: - description: Start of the cohort window, in epoch milliseconds. + total: + description: The total number of findings without a team tag. + example: 142 format: int64 type: integer - group_tags: - description: The group-by facet values that identify this row. - items: - description: A tag value for a group-by facet. - type: string - type: array - name: - description: Label identifying the cohort, such as the week it started. + required: + - total + - high_confidence + - medium_confidence + - low_confidence + type: object + OwnershipUntaggedFindingsData: + description: The data wrapper for an ownership untagged findings response. + properties: + attributes: + $ref: "#/components/schemas/OwnershipUntaggedFindingsAttributes" + id: + description: The identifier of the ownership untagged findings resource. + example: untagged type: string type: - $ref: "#/components/schemas/ProductAnalyticsRetentionGridCohortType" - unit: - description: Unit definitions for the cell values. - items: - $ref: "#/components/schemas/ProductAnalyticsUnit" - type: array + $ref: "#/components/schemas/OwnershipUntaggedFindingsType" + required: + - id + - type + - attributes type: object - ProductAnalyticsRetentionGridCohortCell: - description: |- - One cell of the retention grid, holding the result for a single cohort over a single return period. - Aggregated rows omit the time and count fields. + OwnershipUntaggedFindingsResponse: + description: The response returned when counting findings without a team tag by ownership confidence. properties: - cell_count: - description: Number of entities that returned during the period. - format: int64 - type: integer - cell_rate: - description: Fraction of the cohort that returned, between `0` and `1`. - format: double - type: number - cell_relative_value_change: - description: Change in the metric relative to the cohort baseline. - format: double - nullable: true - type: number - cell_value: - description: Value of the computed metric, when a metric other than the retention rate is requested. - format: double - nullable: true - type: number - is_partial_data: - description: Whether the return period is still open, so the numbers are not yet final. - type: boolean - return_period_end_time: - description: End of the return period, in epoch milliseconds. - format: int64 - type: integer - return_period_index: - description: Zero-based index of the return period this cell belongs to. - format: int64 - type: integer - return_period_start_time: - description: Start of the return period, in epoch milliseconds. - format: int64 - type: integer - type: - $ref: "#/components/schemas/ProductAnalyticsRetentionGridCohortType" + data: + $ref: "#/components/schemas/OwnershipUntaggedFindingsData" + required: + - data type: object - ProductAnalyticsRetentionGridCohortType: - description: |- - Whether the row holds one cohort's own numbers, or the weighted roll-up across every cohort. + OwnershipUntaggedFindingsType: + default: ownership_untagged_findings + description: The type of the ownership untagged findings resource. The value should always be `ownership_untagged_findings`. enum: - - raw - - aggregated - example: raw + - ownership_untagged_findings + example: ownership_untagged_findings type: string x-enum-varnames: - - RAW - - AGGREGATED - ProductAnalyticsRetentionGridQuery: - description: Query definition for a retention grid or retention metadata request. - properties: - computation_scope: - $ref: "#/components/schemas/ProductAnalyticsRetentionScope" - compute: - $ref: "#/components/schemas/ProductAnalyticsRetentionCompute" - group_by: - description: Splits the results by the values of one or more facets. - items: - $ref: "#/components/schemas/ProductAnalyticsRetentionGroupBy" - type: array - search: - $ref: "#/components/schemas/ProductAnalyticsRetentionSearch" - required: - - search - - compute - type: object - ProductAnalyticsRetentionGridRequest: - description: Request body for a retention grid query. + - OWNERSHIP_UNTAGGED_FINDINGS + PRCoverageSummaryRequest: + description: Request object for getting code coverage summary for a pull request. properties: data: - $ref: "#/components/schemas/ProductAnalyticsRetentionGridRequestData" + $ref: "#/components/schemas/PRCoverageSummaryRequestData" required: - data type: object - ProductAnalyticsRetentionGridRequestAttributes: - description: Attributes of a retention grid request. + PRCoverageSummaryRequestAttributes: + description: Attributes for requesting code coverage summary for a pull request. properties: - exclude_anonymous_traffic: - default: false - description: Whether to exclude sessions that are not tied to an identified user. - type: boolean - from: - description: Start of the query window, in epoch milliseconds. - example: 1756425600000 - format: int64 - type: integer - query: - $ref: "#/components/schemas/ProductAnalyticsRetentionGridQuery" - to: - description: End of the query window, in epoch milliseconds. - example: 1756857600000 + pr_number: + description: The pull request number. Must be a positive integer. + example: 42 format: int64 + minimum: 1 type: integer + repository_url: + description: The repository URL. Accepts a full URL with or without a scheme (for example, `https://github.com/org/repo` or `github.com/org/repo`). + example: https://github.com/datadog/shopist + minLength: 1 + type: string required: - - from - - to - - query + - repository_url + - pr_number type: object - ProductAnalyticsRetentionGridRequestData: - description: |- - The single JSON:API resource carrying a retention grid query. Its attributes hold the time - window to query and the cohort and return criteria that define the grid. + PRCoverageSummaryRequestData: + description: Data object for PR summary request. properties: attributes: - $ref: "#/components/schemas/ProductAnalyticsRetentionGridRequestAttributes" + $ref: "#/components/schemas/PRCoverageSummaryRequestAttributes" type: - $ref: "#/components/schemas/ProductAnalyticsRetentionGridRequestType" + $ref: "#/components/schemas/PRCoverageSummaryRequestType" required: - type - attributes type: object - ProductAnalyticsRetentionGridRequestType: - description: The resource type identifier for a retention grid request. + PRCoverageSummaryRequestType: + description: JSON:API type for PR coverage summary request. The value must always be `ci_app_coverage_pr_summary_request`. enum: - - retention_grid_request - example: retention_grid_request + - ci_app_coverage_pr_summary_request + example: ci_app_coverage_pr_summary_request type: string x-enum-varnames: - - RETENTION_GRID_REQUEST - ProductAnalyticsRetentionGridResponse: - description: Response for a retention grid query. + - CI_APP_COVERAGE_PR_SUMMARY_REQUEST + PageAnnotationsAttributes: + description: Attributes of the annotations on a page. properties: - data: - $ref: "#/components/schemas/ProductAnalyticsRetentionGridResponseData" + annotations: + $ref: "#/components/schemas/AnnotationsInPageMap" + global_annotations: + $ref: "#/components/schemas/GlobalAnnotationIds" + widget_mapping: + $ref: "#/components/schemas/WidgetAnnotationsMap" required: - - data - type: object - ProductAnalyticsRetentionGridResponseAttributes: - description: Attributes of a retention grid response, containing the cohort rows and the period columns. - properties: - cohorts: - description: The cohorts forming the rows of the grid. - items: - $ref: "#/components/schemas/ProductAnalyticsRetentionGridCohort" - type: array - retention_entity: - description: The entity whose retention was measured. - type: string - retention_periods: - description: The return periods forming the columns of the grid. - items: - $ref: "#/components/schemas/ProductAnalyticsRetentionPeriod" - type: array - unit: - description: Unit definitions for the grid values. - items: - $ref: "#/components/schemas/ProductAnalyticsUnit" - type: array + - annotations + - widget_mapping + - global_annotations type: object - ProductAnalyticsRetentionGridResponseData: - description: |- - The single JSON:API resource holding a computed retention grid. Its attributes contain the - return periods forming the columns and the cohorts forming the rows. + PageAnnotationsData: + description: Annotations grouped by widget for a single page. properties: attributes: - $ref: "#/components/schemas/ProductAnalyticsRetentionGridResponseAttributes" + $ref: "#/components/schemas/PageAnnotationsAttributes" id: - description: Unique identifier for this response data object. - example: 00000000-0000-0000-0000-000000000000 + description: |- + ID of the page, prefixed with the page type and joined by a colon + (for example, `dashboard:abc-def-xyz` or `notebook:1234567890`). + example: "dashboard:abc-def-xyz" type: string type: - $ref: "#/components/schemas/ProductAnalyticsRetentionGridResponseType" + $ref: "#/components/schemas/PageAnnotationsType" required: - id - type - attributes type: object - ProductAnalyticsRetentionGridResponseType: - description: The resource type identifier for a retention grid response. + PageAnnotationsResponse: + description: Response containing all annotations on a page, grouped by widget. + properties: + data: + $ref: "#/components/schemas/PageAnnotationsData" + required: + - data + type: object + PageAnnotationsType: + description: Page annotations resource type. enum: - - retention_grid_response - example: retention_grid_response + - page_annotations + example: page_annotations type: string x-enum-varnames: - - RETENTION_GRID_RESPONSE - ProductAnalyticsRetentionGroupBy: - description: Splits retention results by the values of a facet. + - PAGE_ANNOTATIONS + PageUrgency: + default: high + description: On-Call Page urgency level. + enum: + - low + - high + example: high + type: string + x-enum-varnames: + - LOW + - HIGH + PaginatedResponseMeta: + description: Metadata for scores response. properties: - facet: - description: The attribute path to group by. - example: "@geo.country" - type: string + count: + description: Number of entities in this response. + example: 10 + format: int64 + type: integer limit: - description: Maximum number of groups to return. Omit it to let the service choose. + description: Pagination limit. example: 10 format: int64 - minimum: 1 type: integer - should_exclude_missing: - default: false - description: Whether to drop entities that have no value for the facet. - type: boolean - sort: - $ref: "#/components/schemas/ProductAnalyticsGroupBySort" - source: - description: Audience source backing the group-by, when grouping by an audience rather than a facet. - type: string - target: - $ref: "#/components/schemas/ProductAnalyticsRetentionGroupByTarget" - required: - - target - - facet - type: object - ProductAnalyticsRetentionGroupByTarget: - description: Which axis of the retention grid a group-by applies to. - enum: - - cohort - - return_period - example: cohort - type: string - x-enum-varnames: - - COHORT - - RETURN_PERIOD - ProductAnalyticsRetentionIndexTarget: - description: Selects a cohort or return period by its zero-based position in the grid. - properties: - type: - $ref: "#/components/schemas/ProductAnalyticsRetentionIndexTargetType" - value: - description: Zero-based index of the targeted cohort or return period. + offset: + description: Pagination offset. example: 0 format: int64 - minimum: 0 + type: integer + total: + description: Total number of entities available. + example: 150 + format: int64 type: integer required: - - type - - value + - count + - total + - limit + - offset type: object - ProductAnalyticsRetentionIndexTargetType: - description: The discriminator identifying a target selected by index. - enum: - - index - example: index - type: string - x-enum-varnames: - - INDEX - ProductAnalyticsRetentionListColumn: - description: A column to include in each returned entity row. + Pagination: + description: Pagination object. properties: - field: - $ref: "#/components/schemas/ProductAnalyticsRetentionListColumnField" + total_count: + description: Total count. + format: int64 + type: integer + total_filtered_count: + description: Total count of elements matched by the filter. + format: int64 + type: integer type: object - ProductAnalyticsRetentionListColumnField: - description: The attribute selected for a column. + PaginationMeta: + description: Response metadata. properties: - path: - description: Attribute path of the column. - example: "@usr.email" - type: string + page: + $ref: "#/components/schemas/PaginationMetaPage" + readOnly: true type: object - ProductAnalyticsRetentionListQuery: - description: Query definition for a retention list request. + PaginationMetaPage: + description: Offset-based pagination schema. + example: + first_offset: 0 + last_offset: 900 + limit: 100 + next_offset: 100 + offset: 0 + prev_offset: 100 + total: 1000 + type: offset_limit properties: - columns: - description: The attribute columns to include in each returned row. - items: - $ref: "#/components/schemas/ProductAnalyticsRetentionListColumn" - type: array - computation_scope: - $ref: "#/components/schemas/ProductAnalyticsRetentionCellScope" + first_offset: + description: Integer representing the offset to fetch the first page of results. + example: 0 + format: int64 + type: integer + last_offset: + description: Integer representing the offset to fetch the last page of results. + example: 900 + format: int64 + nullable: true + type: integer limit: - description: Maximum number of rows to return. Use `0` for no limit. + description: Integer representing the number of elements to be returned in the results. example: 100 format: int64 - minimum: 0 type: integer - search: - $ref: "#/components/schemas/ProductAnalyticsRetentionSearch" - required: - - search - - computation_scope - type: object - ProductAnalyticsRetentionListRecord: - additionalProperties: {} - description: A single entity row, keyed by the requested column paths. - type: object - ProductAnalyticsRetentionListRequest: - description: Request body listing the individual entities behind one cell of the retention grid. - properties: - data: - $ref: "#/components/schemas/ProductAnalyticsRetentionListRequestData" - required: - - data - type: object - ProductAnalyticsRetentionListRequestAttributes: - description: Attributes of a retention list request. - properties: - from: - description: Start of the query window, in epoch milliseconds. - example: 1756425600000 + next_offset: + description: >- + Integer representing the index of the first element in the next page of results. Equal to page size added to the current offset. + example: 100 format: int64 + nullable: true type: integer - query: - $ref: "#/components/schemas/ProductAnalyticsRetentionListQuery" - to: - description: End of the query window, in epoch milliseconds. - example: 1756857600000 + offset: + description: Integer representing the index of the first element in the results. + example: 0 format: int64 type: integer - required: - - from - - to - - query - type: object - ProductAnalyticsRetentionListRequestData: - description: |- - The single JSON:API resource carrying a retention list query. Its attributes hold the time - window, the cell to list, and the columns to return for each entity. - properties: - attributes: - $ref: "#/components/schemas/ProductAnalyticsRetentionListRequestAttributes" + prev_offset: + description: Integer representing the index of the first element in the previous page of results. + example: 100 + format: int64 + nullable: true + type: integer + total: + description: Integer representing the total number of elements available. + example: 1000 + format: int64 + nullable: true + type: integer type: - $ref: "#/components/schemas/ProductAnalyticsRetentionListRequestType" - required: - - type - - attributes + $ref: "#/components/schemas/PaginationMetaPageType" type: object - ProductAnalyticsRetentionListRequestType: - description: The resource type identifier for a retention list request. + PaginationMetaPageType: + default: offset_limit + description: The pagination type used for offset-based pagination. enum: - - retention_list_request - example: retention_list_request + - offset_limit + example: offset_limit type: string x-enum-varnames: - - RETENTION_LIST_REQUEST - ProductAnalyticsRetentionListResponse: - description: Response for a retention list query. + - OFFSET_LIMIT + Parameter: + description: The definition of `Parameter` object. properties: - data: - $ref: "#/components/schemas/ProductAnalyticsRetentionListResponseData" + name: + description: The `Parameter` `name`. + example: "" + minLength: 1 + type: string + value: + description: The `Parameter` `value`. required: - - data + - name + - value type: object - ProductAnalyticsRetentionListResponseAttributes: - description: Attributes of a retention list response, containing the matching entity rows. + PartialAPIKey: + description: Partial Datadog API key. properties: - records: - description: The matching entity rows. - items: - $ref: "#/components/schemas/ProductAnalyticsRetentionListRecord" - type: array - retention_entity: - description: The entity whose retention was measured. + attributes: + $ref: "#/components/schemas/PartialAPIKeyAttributes" + id: + description: ID of the API key. type: string + relationships: + $ref: "#/components/schemas/APIKeyRelationships" + type: + $ref: "#/components/schemas/APIKeysType" type: object - ProductAnalyticsRetentionListResponseData: - description: |- - The single JSON:API resource holding the entities behind one retention cell. Its attributes - contain the entity whose retention was measured and one row per matching entity. + PartialAPIKeyAttributes: + description: Attributes of a partial API key. + properties: + category: + description: The category of the API key. + type: string + created_at: + description: Creation date of the API key. + example: "2020-11-23T10:00:00.000Z" + readOnly: true + type: string + date_last_used: + description: Date the API Key was last used. + example: "2020-11-27T10:00:00.000Z" + format: date-time + nullable: true + readOnly: true + type: string + last4: + description: The last four characters of the API key. + example: "abcd" + maxLength: 4 + minLength: 4 + readOnly: true + type: string + modified_at: + description: Date the API key was last modified. + example: "2020-11-23T10:00:00.000Z" + readOnly: true + type: string + name: + description: Name of the API key. + example: "API Key for submitting metrics" + type: string + private_action_runner_enroll_enabled: + description: Whether the API key can enroll a Private Action Runner. + type: boolean + remote_config_read_enabled: + description: The remote config read enabled status. + type: boolean + type: object + PartialApplicationKey: + description: Partial Datadog application key. properties: attributes: - $ref: "#/components/schemas/ProductAnalyticsRetentionListResponseAttributes" + $ref: "#/components/schemas/PartialApplicationKeyAttributes" id: - description: Unique identifier for this response data object. - example: 00000000-0000-0000-0000-000000000000 + description: ID of the application key. type: string + relationships: + $ref: "#/components/schemas/ApplicationKeyRelationships" type: - $ref: "#/components/schemas/ProductAnalyticsRetentionListResponseType" - required: - - id - - type - - attributes + $ref: "#/components/schemas/ApplicationKeysType" type: object - ProductAnalyticsRetentionListResponseType: - description: The resource type identifier for a retention list response. - enum: - - retention_list_response - example: retention_list_response - type: string - x-enum-varnames: - - RETENTION_LIST_RESPONSE - ProductAnalyticsRetentionPeriod: - description: A return period definition, such as "1 week". + PartialApplicationKeyAttributes: + description: Attributes of a partial application key. properties: - unit: - description: Time unit of the period, such as `day`, `week`, `month`, or `year`. - example: week + created_at: + description: Creation date of the application key. + example: "2020-11-23T10:00:00.000Z" + readOnly: true type: string - value: - description: Length of the period, expressed in `unit`. - example: 1 - format: int64 - type: integer + last4: + description: The last four characters of the application key. + example: "abcd" + maxLength: 4 + minLength: 4 + readOnly: true + type: string + last_used_at: + description: Last usage timestamp of the application key. + example: "2020-12-20T10:00:00.000Z" + nullable: true + readOnly: true + type: string + name: + description: Name of the application key. + example: "Application Key for managing dashboards" + type: string + scopes: + description: Array of scopes to grant the application key. + example: ["dashboards_read", "dashboards_write", "dashboards_public_share"] + items: + description: Name of scope. + type: string + nullable: true + type: array type: object - ProductAnalyticsRetentionReturnCondition: - description: |- - When an entity counts as having returned. Use `conversion_on` to count only entities that - returned during the period itself, or `conversion_on_or_after` to also count later returns. - enum: - - conversion_on - - conversion_on_or_after - example: conversion_on_or_after - type: string - x-enum-varnames: - - CONVERSION_ON - - CONVERSION_ON_OR_AFTER - ProductAnalyticsRetentionReturnCriteria: - description: Defines the event that counts as a return, and the window in which it must occur. + PartialApplicationKeyResponse: + description: Response for retrieving a partial application key. properties: - base_query: - $ref: "#/components/schemas/ProductAnalyticsBaseQuery" - time_interval: - $ref: "#/components/schemas/ProductAnalyticsRetentionTimeInterval" - required: - - base_query + data: + $ref: "#/components/schemas/PartialApplicationKey" + included: + description: Array of objects related to the application key. + items: + $ref: "#/components/schemas/ApplicationKeyResponseIncludedItem" + type: array type: object - ProductAnalyticsRetentionReturnPeriodScope: - description: Narrows a retention query to a single return-period column. + PatchAttachmentRequest: + description: Request to update an attachment. properties: - target: - $ref: "#/components/schemas/ProductAnalyticsRetentionIndexTarget" + data: + $ref: "#/components/schemas/PatchAttachmentRequestData" + type: object + PatchAttachmentRequestData: + description: Attachment data for an update request. + properties: + attributes: + $ref: "#/components/schemas/PatchAttachmentRequestDataAttributes" + id: + description: The unique identifier of the attachment. + example: "00000000-abcd-0002-0000-000000000000" + type: string type: - $ref: "#/components/schemas/ProductAnalyticsRetentionReturnPeriodScopeType" + $ref: "#/components/schemas/IncidentAttachmentType" required: - type - - target type: object - ProductAnalyticsRetentionReturnPeriodScopeType: - description: The discriminator identifying a scope narrowed to one return period. - enum: - - return_period - example: return_period - type: string - x-enum-varnames: - - RETURN_PERIOD - ProductAnalyticsRetentionScope: - description: |- - Restricts a retention query to part of the grid, so that results can be examined in detail. - Omit it to compute the whole grid. - oneOf: - - $ref: "#/components/schemas/ProductAnalyticsRetentionCohortScope" - - $ref: "#/components/schemas/ProductAnalyticsRetentionReturnPeriodScope" - - $ref: "#/components/schemas/ProductAnalyticsRetentionCellScope" - ProductAnalyticsRetentionSearch: - description: Defines the cohort and return criteria that make up a retention query. + PatchAttachmentRequestDataAttributes: + description: The attributes for updating an attachment. properties: - cohort_criteria: - $ref: "#/components/schemas/ProductAnalyticsRetentionCohortCriteria" - filters: - $ref: "#/components/schemas/ProductAnalyticsRetentionFilters" - retention_entity: - $ref: "#/components/schemas/ProductAnalyticsRetentionEntity" - return_condition: - $ref: "#/components/schemas/ProductAnalyticsRetentionReturnCondition" - return_criteria: - $ref: "#/components/schemas/ProductAnalyticsRetentionReturnCriteria" - required: - - cohort_criteria - - retention_entity - - return_condition + attachment: + $ref: "#/components/schemas/PatchAttachmentRequestDataAttributesAttachment" type: object - ProductAnalyticsRetentionTimeInterval: - description: |- - A retention interval, either aligned to calendar boundaries or of a fixed length. - Cohort criteria use calendar intervals; return criteria use fixed intervals. - oneOf: - - $ref: "#/components/schemas/ProductAnalyticsRetentionCalendarTimeInterval" - - $ref: "#/components/schemas/ProductAnalyticsRetentionFixedTimeInterval" - ProductAnalyticsSankeyAggregatedNode: - description: One of the nodes rolled up into an aggregated node, retained so the roll-up can be broken down. + PatchAttachmentRequestDataAttributesAttachment: + description: The updated attachment object. properties: - id: - description: Unique identifier for the node. + documentUrl: + description: The updated URL for the attachment. + example: https://app.datadoghq.com/notebook/124/Postmortem-IR-124 type: string - incoming_value: - description: Number of sessions entering the node. - format: int64 - type: integer - name: - description: The facet value the node represents. + title: + description: The updated title for the attachment. + example: Postmortem-IR-124 type: string - outgoing_value: - description: Number of sessions leaving the node. - format: int64 - type: integer - type: - $ref: "#/components/schemas/ProductAnalyticsSankeyAggregatedNodeType" - value: - description: Number of sessions passing through the node. - format: int64 - type: integer type: object - ProductAnalyticsSankeyAggregatedNodeType: - description: The resource type identifier for a node rolled up into an aggregated node. - enum: - - aggregated - type: string - x-enum-varnames: - - AGGREGATED - ProductAnalyticsSankeyDefinition: - description: The shape of the Sankey diagram, expressed as the facets to flow between and how many steps to show. + PatchComponentRequest: + description: Request object for updating a component. + example: + data: + attributes: + name: Metrics Intake Service + position: 4 + id: 1234abcd-12ab-34cd-56ef-123456abcdef + type: components properties: - entries_per_step: - description: |- - Maximum number of nodes to keep in each column. Remaining values are rolled up into an - aggregated node. Omit it, or send `0`, to use the default of `5`. - example: 10 - format: int64 - maximum: 10 - minimum: 0 - type: integer - number_of_steps: - description: |- - Number of intermediate columns between the source and the target. - Omit it, or send `0`, to use the default of `5`. - example: 3 - format: int64 - maximum: 10 - minimum: 0 - type: integer - source: - description: Facet forming the first column of the diagram. - example: "@view.name" - type: string - target: - description: Facet forming the last column of the diagram. - example: "@view.name" + data: + $ref: "#/components/schemas/PatchComponentRequestData" + type: object + PatchComponentRequestData: + description: The data object for updating a component. + properties: + attributes: + $ref: "#/components/schemas/PatchComponentRequestDataAttributes" + id: + description: The ID of the component. + example: "1234abcd-12ab-34cd-56ef-123456abcdef" + format: uuid type: string + type: + $ref: "#/components/schemas/StatusPagesComponentGroupType" required: - - source - - target + - attributes + - id + - type type: object - ProductAnalyticsSankeyLink: - description: A link of the Sankey diagram, representing the sessions flowing between two nodes. + PatchComponentRequestDataAttributes: + description: The supported attributes for updating a component. properties: - column: - description: Zero-based index of the column the link starts from. + name: + description: The name of the component. + example: Web App + type: string + position: + description: The position of the component. If the component belongs to a group, the position is relative to the other components in the group. + example: 1 format: int64 type: integer + type: object + PatchDegradationRequest: + description: Request object for updating a degradation. + example: + data: + attributes: + components_affected: + - id: 1234abcd-12ab-34cd-56ef-123456abcdef + status: operational + description: We've deployed a fix and latency has returned to normal. This issue has been resolved. + status: resolved + id: 1234abcd-12ab-34cd-56ef-123456abcdef + type: degradations + properties: + data: + $ref: "#/components/schemas/PatchDegradationRequestData" + meta: + $ref: "#/components/schemas/DegradationRequestMeta" + description: The supported metadata for updating a degradation. + type: object + PatchDegradationRequestData: + description: The data object for updating a degradation. + properties: + attributes: + $ref: "#/components/schemas/PatchDegradationRequestDataAttributes" id: - description: Unique identifier for the link. - type: string - source: - description: Identifier of the node the link starts at. - type: string - target: - description: Identifier of the node the link ends at. + description: The ID of the degradation. + example: "1234abcd-12ab-34cd-56ef-123456abcdef" + format: uuid type: string - value: - description: Number of sessions flowing along the link. - format: int64 - type: integer + relationships: + $ref: "#/components/schemas/PatchDegradationRequestDataRelationships" + type: + $ref: "#/components/schemas/PatchDegradationRequestDataType" + required: + - attributes + - id + - type type: object - ProductAnalyticsSankeyNode: - description: A node of the Sankey diagram, representing one facet value in one column. + PatchDegradationRequestDataAttributes: + description: The supported attributes for updating a degradation. properties: - aggregated_nodes: - description: The nodes rolled up into this one, when the node is an aggregate. + components_affected: + description: The components affected by the degradation. + example: + - id: 1234abcd-12ab-34cd-56ef-123456abcdef + status: operational items: - $ref: "#/components/schemas/ProductAnalyticsSankeyAggregatedNode" + $ref: "#/components/schemas/PatchDegradationRequestDataAttributesComponentsAffectedItems" type: array - column: - description: Zero-based index of the column the node sits in. - format: int64 - type: integer - dropoff_value: - description: Number of sessions that ended at the node. - format: int64 - type: integer + description: + description: The description of the degradation. + example: We've deployed a fix and latency has returned to normal. This issue has been resolved. + type: string + status: + $ref: "#/components/schemas/PatchDegradationRequestDataAttributesStatus" + example: resolved + title: + description: The title of the degradation. + example: Elevated API Latency + type: string + type: object + PatchDegradationRequestDataAttributesComponentsAffectedItems: + description: A component affected by a degradation. + properties: id: - description: Unique identifier for the node. + description: The ID of the component. Must be a component of type `component`. + example: "1234abcd-12ab-34cd-56ef-123456abcdef" + format: uuid type: string - incoming_value: - description: Number of sessions entering the node. - format: int64 - type: integer name: - description: The facet value the node represents. + description: The name of the component. + readOnly: true type: string - outgoing_value: - description: Number of sessions leaving the node. - format: int64 - type: integer - type: - $ref: "#/components/schemas/ProductAnalyticsSankeyNodeType" - value: - description: Number of sessions passing through the node. - format: int64 - type: integer + status: + $ref: "#/components/schemas/StatusPagesComponentDataAttributesStatus" + required: + - id + - status type: object - ProductAnalyticsSankeyNodeType: - description: |- - The kind of node. `regular` is a single facet value, `other` rolls up the values that did not - fit within `entries_per_step`, and `dropoff` collects the sessions that ended at this column. + PatchDegradationRequestDataAttributesStatus: + description: The status of the degradation. enum: - - regular - - other - - dropoff + - investigating + - identified + - monitoring + - resolved type: string x-enum-varnames: - - REGULAR - - OTHER - - DROPOFF - ProductAnalyticsSankeyRequest: - description: Request body for a Sankey diagram query. + - INVESTIGATING + - IDENTIFIED + - MONITORING + - RESOLVED + PatchDegradationRequestDataRelationships: + description: The supported relationships for updating a degradation. properties: - data: - $ref: "#/components/schemas/ProductAnalyticsSankeyRequestData" - required: - - data + template: + $ref: "#/components/schemas/PatchDegradationRequestDataRelationshipsTemplate" + description: The template used to create the degradation. type: object - ProductAnalyticsSankeyRequestAttributes: - description: Attributes of a Sankey request. + PatchDegradationRequestDataRelationshipsTemplate: + description: The template used to create the degradation. properties: - definition: - $ref: "#/components/schemas/ProductAnalyticsSankeyDefinition" - search: - $ref: "#/components/schemas/ProductAnalyticsSankeySearch" - time: - $ref: "#/components/schemas/ProductAnalyticsSankeyTime" + data: + $ref: "#/components/schemas/PatchDegradationRequestDataRelationshipsTemplateData" required: - - time - - search - - definition + - data type: object - ProductAnalyticsSankeyRequestData: - description: |- - The single JSON:API resource carrying a Sankey query. Its attributes hold the time window to - query, the search that selects the sessions, and the definition of the diagram to build. + PatchDegradationRequestDataRelationshipsTemplateData: + description: The data object identifying the template used to create the degradation. properties: - attributes: - $ref: "#/components/schemas/ProductAnalyticsSankeyRequestAttributes" + id: + description: The ID of the degradation template. + example: "" + type: string type: - $ref: "#/components/schemas/ProductAnalyticsSankeyRequestType" + $ref: "#/components/schemas/PatchDegradationTemplateRequestDataType" required: - type - - attributes + - id type: object - ProductAnalyticsSankeyRequestType: - description: The resource type identifier for a Sankey request. + PatchDegradationRequestDataType: + default: degradations + description: Degradations resource type. enum: - - sankey_request - example: sankey_request + - degradations + example: degradations type: string x-enum-varnames: - - SANKEY_REQUEST - ProductAnalyticsSankeyResponse: - description: Response for a Sankey diagram query. + - DEGRADATIONS + PatchDegradationTemplateRequest: + description: Request object for updating a degradation template. properties: data: - $ref: "#/components/schemas/ProductAnalyticsSankeyResponseData" + $ref: "#/components/schemas/PatchDegradationTemplateRequestData" + type: object + PatchDegradationTemplateRequestData: + description: The data object for updating a degradation template. + properties: + attributes: + $ref: "#/components/schemas/PatchDegradationTemplateRequestDataAttributes" + id: + description: The ID of the degradation template. + example: "" + type: string + type: + $ref: "#/components/schemas/PatchDegradationTemplateRequestDataType" required: - - data + - type + - id type: object - ProductAnalyticsSankeyResponseAttributes: - description: Attributes of a Sankey response, containing the nodes and the links between them. + PatchDegradationTemplateRequestDataAttributes: + description: The supported attributes for updating a degradation template. properties: - links: - description: The links of the diagram, one per pair of connected nodes. + components_affected: + description: The components affected by a degradation created from this template. items: - $ref: "#/components/schemas/ProductAnalyticsSankeyLink" + $ref: "#/components/schemas/PatchDegradationTemplateRequestDataAttributesComponentsAffectedItems" type: array - nodes: - description: The nodes of the diagram, one per facet value and column. + degradation_title: + description: The title used for a degradation created from this template. + type: string + name: + description: The name of the degradation template. + type: string + updates: + description: The pre-filled updates for a degradation created from this template. items: - $ref: "#/components/schemas/ProductAnalyticsSankeyNode" + $ref: "#/components/schemas/PatchDegradationTemplateRequestDataAttributesUpdatesItems" type: array type: object - ProductAnalyticsSankeyResponseData: - description: |- - The single JSON:API resource holding a computed Sankey diagram. Its attributes contain the - nodes of every column and the links that carry sessions between them. + PatchDegradationTemplateRequestDataAttributesComponentsAffectedItems: + description: A component affected by a degradation created from this template. properties: - attributes: - $ref: "#/components/schemas/ProductAnalyticsSankeyResponseAttributes" id: - description: Unique identifier for this response data object. - example: 00000000-0000-0000-0000-000000000000 + description: The ID of the component. Must be a component of type `component`. + example: "" type: string - type: - $ref: "#/components/schemas/ProductAnalyticsSankeyResponseType" + name: + description: The name of the component. + readOnly: true + type: string + status: + $ref: "#/components/schemas/PatchDegradationTemplateRequestDataAttributesComponentsAffectedItemsStatus" required: - id - - type - - attributes + - status type: object - ProductAnalyticsSankeyResponseType: - description: The resource type identifier for a Sankey response. + PatchDegradationTemplateRequestDataAttributesComponentsAffectedItemsStatus: + description: The status of the component. enum: - - sankey_response - example: sankey_response + - operational + - degraded + - partial_outage + - major_outage + example: operational type: string x-enum-varnames: - - SANKEY_RESPONSE - ProductAnalyticsSankeySearch: - description: Selects the sessions a Sankey diagram is built from. + - OPERATIONAL + - DEGRADED + - PARTIAL_OUTAGE + - MAJOR_OUTAGE + PatchDegradationTemplateRequestDataAttributesUpdatesItems: + description: A pre-filled update for a degradation created from this template. properties: - audience_filters: - $ref: "#/components/schemas/ProductAnalyticsAudienceFilters" - join_keys: - $ref: "#/components/schemas/ProductAnalyticsJoinKeys" - query: - description: Datadog search query restricting the events considered. - example: "@type:view" + message: + description: The message of the update. type: string + status: + $ref: "#/components/schemas/CreateDegradationRequestDataAttributesStatus" + required: + - status type: object - ProductAnalyticsSankeyTime: - description: The time window a Sankey query covers. + PatchDegradationTemplateRequestDataType: + default: degradation_templates + description: Degradation templates resource type. + enum: + - degradation_templates + example: degradation_templates + type: string + x-enum-varnames: + - DEGRADATION_TEMPLATES + PatchDegradationUpdateRequest: + description: Request object for editing a degradation update. + example: + data: + attributes: + description: We've identified the source of the latency increase and are deploying a fix. + status: identified + id: 00000000-0000-0000-0000-000000000000 + type: degradation_updates properties: - from: - description: Start of the query window, in epoch milliseconds. - example: 1756425600000 - format: int64 - type: integer - to: - description: End of the query window, in epoch milliseconds. - example: 1756857600000 - format: int64 - type: integer - required: - - from - - to + data: + $ref: "#/components/schemas/PatchDegradationUpdateRequestData" type: object - ProductAnalyticsScalarColumn: - description: A column in a scalar response. + PatchDegradationUpdateRequestData: + description: The data object for editing a degradation update. properties: - meta: - $ref: "#/components/schemas/ProductAnalyticsScalarColumnMeta" - name: - description: Column name (facet name for group-by, or "query"). + attributes: + $ref: "#/components/schemas/PatchDegradationUpdateRequestDataAttributes" + id: + description: The ID of the degradation update to edit. type: string type: - $ref: "#/components/schemas/ProductAnalyticsScalarColumnType" - values: - description: Column values. - items: - description: A single cell value within the column (string for group-by columns, number for metric columns). - type: array + $ref: "#/components/schemas/PatchDegradationUpdateRequestDataType" + required: + - type type: object - ProductAnalyticsScalarColumnMeta: - description: Metadata associated with a scalar response column, including optional unit information. + PatchDegradationUpdateRequestDataAttributes: + description: Attributes for editing a degradation update. properties: - unit: - description: Unit definitions for the column values, if applicable. - items: - $ref: "#/components/schemas/ProductAnalyticsUnit" - nullable: true - type: array + description: + description: The message body of the update. + type: string + status: + $ref: "#/components/schemas/PatchDegradationUpdateRequestDataAttributesStatus" type: object - ProductAnalyticsScalarColumnType: - description: Column type. + PatchDegradationUpdateRequestDataAttributesStatus: + description: The status of the degradation update. enum: - - number - - group + - investigating + - identified + - monitoring type: string x-enum-varnames: - - NUMBER - - GROUP - ProductAnalyticsScalarResponse: - description: Response for a scalar analytics query. + - INVESTIGATING + - IDENTIFIED + - MONITORING + PatchDegradationUpdateRequestDataType: + default: degradation_updates + description: Degradation updates resource type. + enum: + - degradation_updates + example: degradation_updates + type: string + x-enum-varnames: + - DEGRADATION_UPDATES + PatchIncidentNotificationTemplateRequest: + description: Update request for a notification template. properties: data: - $ref: "#/components/schemas/ProductAnalyticsScalarResponseData" - meta: - $ref: "#/components/schemas/ProductAnalyticsResponseMeta" + $ref: "#/components/schemas/IncidentNotificationTemplateUpdateData" + required: + - data type: object - ProductAnalyticsScalarResponseAttributes: - description: Attributes of a scalar analytics response, containing the result columns. + PatchMaintenanceRequest: + description: Request object for updating a maintenance. + example: + data: + attributes: + completed_date: "2026-02-18T20:01:13.332360075Z" + in_progress_description: We are currently performing maintenance on the API to improve performance for 40 minutes. + scheduled_description: We will be performing maintenance on the API to improve performance for 40 minutes. + start_date: "2026-02-18T19:21:13.332360075Z" + title: API Maintenance + id: 1234abcd-12ab-34cd-56ef-123456abcdef + type: maintenances properties: - columns: - description: The list of result columns, each containing values and metadata. - items: - $ref: "#/components/schemas/ProductAnalyticsScalarColumn" - type: array + data: + $ref: "#/components/schemas/PatchMaintenanceRequestData" type: object - ProductAnalyticsScalarResponseData: - description: Data object for a scalar response. + PatchMaintenanceRequestData: + description: The data object for updating a maintenance. properties: attributes: - $ref: "#/components/schemas/ProductAnalyticsScalarResponseAttributes" + $ref: "#/components/schemas/PatchMaintenanceRequestDataAttributes" id: - description: Unique identifier for this response data object. + description: The ID of the maintenance. + example: "1234abcd-12ab-34cd-56ef-123456abcdef" + format: uuid type: string + relationships: + $ref: "#/components/schemas/PatchMaintenanceRequestDataRelationships" type: - $ref: "#/components/schemas/ProductAnalyticsScalarResponseType" + $ref: "#/components/schemas/PatchMaintenanceRequestDataType" + required: + - attributes + - type + - id type: object - ProductAnalyticsScalarResponseType: - description: The resource type identifier for a scalar analytics response. - enum: - - scalar_response - type: string - x-enum-varnames: - - SCALAR_RESPONSE - ProductAnalyticsSerie: - description: A series in a timeseries response. + PatchMaintenanceRequestDataAttributes: + description: The supported attributes for updating a maintenance. properties: - group_tags: - description: The group-by tag values that identify this series. - items: - description: A tag value for a group-by facet. - type: string - type: array - query_index: - description: The index of the query that produced this series. - format: int64 - type: integer - unit: - description: Unit definitions for the series values. + canceled_description: + description: The description shown when the maintenance is canceled. + type: string + completed_date: + description: Timestamp of when the maintenance was completed. + format: date-time + type: string + completed_description: + description: The description shown when the maintenance is completed. + type: string + components_affected: + description: The components affected by the maintenance. items: - $ref: "#/components/schemas/ProductAnalyticsUnit" + $ref: "#/components/schemas/PatchMaintenanceRequestDataAttributesComponentsAffectedItems" type: array - type: object - ProductAnalyticsServerSideEventError: - description: Error details. - properties: - detail: - description: Error message. - example: "Malformed payload" + in_progress_description: + description: The description shown while the maintenance is in progress. type: string - status: - description: Error code. - example: "400" + scheduled_description: + description: The description shown when the maintenance is scheduled. + type: string + start_date: + description: Timestamp of when the maintenance is scheduled to start. + format: date-time type: string + status: + $ref: "#/components/schemas/MaintenanceDataAttributesStatus" + description: The status of the maintenance. title: - description: Error title. - example: "Bad Request" + description: The title of the maintenance. type: string type: object - ProductAnalyticsServerSideEventErrors: - description: Error response. - properties: - errors: - description: Structured errors. - items: - $ref: "#/components/schemas/ProductAnalyticsServerSideEventError" - type: array - type: object - ProductAnalyticsServerSideEventItem: - description: A Product Analytics server-side event. - properties: - account: - $ref: "#/components/schemas/ProductAnalyticsServerSideEventItemAccount" - application: - $ref: "#/components/schemas/ProductAnalyticsServerSideEventItemApplication" - event: - $ref: "#/components/schemas/ProductAnalyticsServerSideEventItemEvent" - session: - $ref: "#/components/schemas/ProductAnalyticsServerSideEventItemSession" - type: - $ref: "#/components/schemas/ProductAnalyticsServerSideEventItemType" - usr: - $ref: "#/components/schemas/ProductAnalyticsServerSideEventItemUsr" - required: - - application - - event - - type - type: object - ProductAnalyticsServerSideEventItemAccount: - description: The account linked to your event. + PatchMaintenanceRequestDataAttributesComponentsAffectedItems: + description: A component affected by a maintenance. properties: id: - description: The account ID used in Datadog. - example: "account-67890" + description: The ID of the component. Must be a component of type `component`. + example: "1234abcd-12ab-34cd-56ef-123456abcdef" + format: uuid type: string - required: - - id - type: object - ProductAnalyticsServerSideEventItemApplication: - description: The application in which you want to send your events. - properties: - id: - description: |- - The application ID of your application. It can be found in your - [application management page](https://app.datadoghq.com/rum/list). - example: "123abcde-123a-123b-1234-123456789abc" + name: + description: The name of the component. + readOnly: true type: string + status: + $ref: "#/components/schemas/PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus" required: - id + - status type: object - ProductAnalyticsServerSideEventItemEvent: - description: Fields used for the event. - properties: - name: - description: |- - The name of your event, which is used for search in the same way as view or action names. - example: "payment.processed" - type: string - required: - - name - type: object - ProductAnalyticsServerSideEventItemSession: - description: The session linked to your event. - properties: - id: - description: The session ID captured by the SDK. - example: "session-abcdef" - type: string - required: - - id - type: object - ProductAnalyticsServerSideEventItemType: - description: The type of Product Analytics event. Must be `server` for server-side events. + PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus: + description: The status of the component. enum: - - server - example: server + - operational + - maintenance + example: operational type: string x-enum-varnames: - - SERVER - ProductAnalyticsServerSideEventItemUsr: - description: The user linked to your event. + - OPERATIONAL + - MAINTENANCE + PatchMaintenanceRequestDataRelationships: + description: The supported relationships for updating a maintenance. properties: - id: - description: The user ID used in Datadog. - example: "user-12345" - type: string - required: - - id + template: + $ref: "#/components/schemas/PatchMaintenanceRequestDataRelationshipsTemplate" + description: The template used to create the maintenance. type: object - ProductAnalyticsTimeseriesResponse: - description: Response for a timeseries analytics query. + PatchMaintenanceRequestDataRelationshipsTemplate: + description: The template used to create the maintenance. properties: data: - $ref: "#/components/schemas/ProductAnalyticsTimeseriesResponseData" - meta: - $ref: "#/components/schemas/ProductAnalyticsResponseMeta" - type: object - ProductAnalyticsTimeseriesResponseAttributes: - description: |- - Attributes of a timeseries analytics response, containing series data, timestamps, and - interval definitions. - properties: - intervals: - description: Interval definitions describing the time buckets used in the response. - items: - $ref: "#/components/schemas/ProductAnalyticsInterval" - type: array - series: - description: The list of series, each corresponding to a query or group-by combination. - items: - $ref: "#/components/schemas/ProductAnalyticsSerie" - type: array - times: - description: Timestamps for each data point (epoch milliseconds). - items: - description: Epoch timestamp in milliseconds. - format: int64 - type: integer - type: array - values: - description: Values for each series at each time point. - items: - description: Array of numeric values for a single series across all time points. - items: - description: Numeric value at a time point, or null if no data is available. - format: double - nullable: true - type: number - type: array - type: array + $ref: "#/components/schemas/PatchMaintenanceRequestDataRelationshipsTemplateData" + required: + - data type: object - ProductAnalyticsTimeseriesResponseData: - description: Data object for a timeseries analytics response. + PatchMaintenanceRequestDataRelationshipsTemplateData: + description: The data object identifying the template used to create the maintenance. properties: - attributes: - $ref: "#/components/schemas/ProductAnalyticsTimeseriesResponseAttributes" id: - description: Unique identifier for this response data object. + description: The ID of the maintenance template. + example: "" type: string type: - $ref: "#/components/schemas/ProductAnalyticsTimeseriesResponseType" + $ref: "#/components/schemas/PatchMaintenanceTemplateRequestDataType" + required: + - type + - id type: object - ProductAnalyticsTimeseriesResponseType: - description: The resource type identifier for a timeseries analytics response. + PatchMaintenanceRequestDataType: + default: maintenances + description: Maintenances resource type. enum: - - timeseries_response + - maintenances + example: maintenances type: string x-enum-varnames: - - TIMESERIES_RESPONSE - ProductAnalyticsUnit: - description: A unit definition for metric values. + - MAINTENANCES + PatchMaintenanceTemplateRequest: + description: Request object for updating a maintenance template. properties: - family: - description: The unit family (e.g., time, bytes). - example: time - type: string - id: - description: Numeric identifier for the unit. - format: int64 - type: integer - name: - description: The full name of the unit (e.g., nanosecond). - example: nanosecond - type: string - plural: - description: Plural form of the unit name (e.g., nanoseconds). - type: string - scale_factor: - description: Conversion factor relative to the base unit of the family. - format: double - type: number - short_name: - description: Abbreviated unit name (e.g., ns). - type: string + data: + $ref: "#/components/schemas/PatchMaintenanceTemplateRequestData" type: object - ProductCatalogSKUAllotment: - description: |- - A quantity of one SKU that is included with, and consumed before, the billable usage of - another SKU. + PatchMaintenanceTemplateRequestData: + description: The data object for updating a maintenance template. properties: - child_sku_code: - description: The code of the SKU that receives the allotment. - example: CUSTOM-EVENTS - type: string - hourly_quantity: - description: |- - The quantity allotted per hour. Fractional for some allotments, and equal to - `monthly_quantity` for others, depending on how the child SKU meters usage. - example: 0.684932 - format: double - type: number - monthly_quantity: - description: The quantity allotted per month. - example: 500 - format: int64 - type: integer - parent_sku_code: - description: |- - The code of the SKU that provides the allotment. Always the code of the SKU the - allotment is returned under. - example: HOSTS-PRO + attributes: + $ref: "#/components/schemas/PatchMaintenanceTemplateRequestDataAttributes" + id: + description: The ID of the maintenance template. + example: "" type: string + type: + $ref: "#/components/schemas/PatchMaintenanceTemplateRequestDataType" required: - - parent_sku_code - - child_sku_code - - monthly_quantity - - hourly_quantity + - type + - id type: object - ProductCatalogSKUDataAttributesResponse: - description: The pricing and allotment metadata of a SKU. + PatchMaintenanceTemplateRequestDataAttributes: + description: The supported attributes for updating a maintenance template. properties: - allotments: - description: |- - The allotments the SKU provides to other SKUs. Every entry carries the code of this - SKU as its `parent_sku_code`. Empty when the SKU provides no allotments. + completed_description: + description: The description shown when a maintenance created from this template is completed. + type: string + component_ids: + description: The IDs of the components affected by a maintenance created from this template. items: - $ref: "#/components/schemas/ProductCatalogSKUAllotment" + type: string type: array - billing_dimension: - description: |- - The identifier of the billing dimension the SKU is billed on, as used by the usage - metering endpoints. Several SKUs can share one billing dimension, so this value does - not identify a SKU. - example: infra_host - type: string - billing_units: - description: |- - The billable usage unit the SKU is priced per. `null` for SKUs that are not priced - per unit of usage, such as those whose `pricing_type` is `percent`. - example: hosts - nullable: true + in_progress_description: + description: The description shown while a maintenance created from this template is in progress. type: string - currency: - description: The ISO-4217 code of the currency the prices are expressed in. - example: USD + maintenance_title: + description: The title used for a maintenance created from this template. type: string - default_on_demand_option: - $ref: "#/components/schemas/ProductCatalogSKUOnDemandOption" - number_of_units_included_in_price: - description: |- - The number of billable usage units that one unit of price covers. Divide measured - usage by this value before multiplying by the price. For example, a SKU priced at `18.00` with - `number_of_units_included_in_price` of `1` costs `18.00` per host, while a SKU priced - at `12.00` with `number_of_units_included_in_price` of `10000` costs `12.00` per - 10,000 requests. It is a scaling factor on the price, not a free allotment; included - quantities are in `allotments`. The same factor applies to the price of a tier in - `on_demand_tiered` whose `pricing_unit_type` is `unit`. It does not apply to a tier - whose `pricing_unit_type` is `block`: that tier's `price` is charged for the whole - block bounded by `min_usage_quantity` and `max_usage_quantity`, however much of the - block is used. `0` for SKUs that are not priced per unit of usage, such as those - whose `pricing_type` is `percent`. - example: 1 - format: int64 - type: integer - on_demand_list_price: - description: |- - The public list price of on-demand usage of the SKU, as a decimal string. The number - of decimal places is not normalized, so values such as `0`, `0.9`, and `30000.00` - all occur. `null` when the SKU is priced with tiers, in which case the prices are in - `on_demand_tiered`. - example: "18.00" - nullable: true + name: + description: The name of the maintenance template. type: string - on_demand_tiered: - $ref: "#/components/schemas/ProductCatalogSKUTieredPricing" - pricing_type: - $ref: "#/components/schemas/ProductCatalogSKUPricingType" - sku_name: - description: The human-readable name of the SKU. - example: Infra Host (Pro) + scheduled_description: + description: The description shown when a maintenance created from this template is scheduled. type: string - required: - - billing_dimension - - sku_name - - billing_units - - default_on_demand_option - - number_of_units_included_in_price - - on_demand_list_price - - pricing_type - - currency - - allotments - - on_demand_tiered type: object - ProductCatalogSKUDataResponse: - description: A SKU and the pricing metadata that applies to it. + PatchMaintenanceTemplateRequestDataType: + default: maintenance_templates + description: Maintenance templates resource type. + enum: + - maintenance_templates + example: maintenance_templates + type: string + x-enum-varnames: + - MAINTENANCE_TEMPLATES + PatchMaintenanceUpdateRequest: + description: Request object for editing a maintenance update. + example: + data: + attributes: + description: We have completed maintenance on the API to improve performance. + id: 00000000-0000-0000-0000-000000000000 + type: maintenance_updates + properties: + data: + $ref: "#/components/schemas/PatchMaintenanceUpdateRequestData" + type: object + PatchMaintenanceUpdateRequestData: + description: The data object for editing a maintenance update. properties: attributes: - $ref: "#/components/schemas/ProductCatalogSKUDataAttributesResponse" + $ref: "#/components/schemas/PatchMaintenanceUpdateRequestDataAttributes" id: - description: The code that identifies the SKU. - example: HOSTS-PRO + description: The ID of the maintenance update to edit. Must match the `update_id` path parameter. + example: "1234abcd-12ab-34cd-56ef-123456abcdef" type: string type: - $ref: "#/components/schemas/ProductCatalogSKUType" + $ref: "#/components/schemas/PatchMaintenanceUpdateRequestDataType" required: - id - type - - attributes type: object - ProductCatalogSKUOnDemandOption: - description: The billing frequency applied to on-demand usage of the SKU by default. - enum: - - hourly - - monthly - example: monthly - type: string - x-enum-varnames: - - HOURLY - - MONTHLY - ProductCatalogSKUPricingTier: - description: A usage range and the price that applies to usage falling inside it. + PatchMaintenanceUpdateRequestDataAttributes: + description: Attributes for editing a maintenance update. properties: - max_usage_quantity: - description: |- - The exclusive upper bound of the usage range the tier prices. `null` on the final - tier, which is unbounded. - example: 100000 - format: int64 - nullable: true - type: integer - min_usage_quantity: - description: The inclusive lower bound of the usage range the tier prices. - example: 1 - format: int64 - type: integer - price: - description: |- - The price applied to usage in the tier, as a decimal string. The number of decimal - places is not normalized, so free tiers appear as either `0` or `0.00`. - example: "120.00" + description: + description: The message body of the update. + example: "" type: string - pricing_unit_type: - $ref: "#/components/schemas/ProductCatalogSKUPricingUnitType" - required: - - min_usage_quantity - - max_usage_quantity - - price - - pricing_unit_type - type: object - ProductCatalogSKUPricingType: - description: |- - How the SKU is priced. `usage` prices each billable usage unit, and `percent` prices a - percentage; percent-priced SKUs have no `billing_units`. - enum: - - usage - - percent - example: usage - type: string - x-enum-varnames: - - USAGE - - PERCENT - ProductCatalogSKUPricingUnitType: - description: |- - Whether the tier's price applies per unit of usage or to a block of usage. - enum: - - block - - unit - example: unit - type: string - x-enum-varnames: - - BLOCK - - UNIT - ProductCatalogSKUTieredPricing: - description: |- - The tiered pricing applied to on-demand usage of the SKU. `null` when the SKU is priced - with a single list price instead. - nullable: true - properties: - tiers: - description: The pricing tiers, ordered by ascending usage quantity. - items: - $ref: "#/components/schemas/ProductCatalogSKUPricingTier" - type: array - required: - - tiers type: object - ProductCatalogSKUType: - description: The SKU resource type. - enum: - - Sku - example: Sku - type: string - x-enum-varnames: - - SKU - ProductCatalogSKUsAPIVersion: - description: The version of the product catalog contract to return. + PatchMaintenanceUpdateRequestDataType: + default: maintenance_updates + description: Maintenance updates resource type. enum: - - v1 - example: v1 + - maintenance_updates + example: maintenance_updates type: string x-enum-varnames: - - V1 - ProductCatalogSKUsResponse: - description: Response containing the generally available SKUs and their pricing metadata. + - MAINTENANCE_UPDATES + PatchNotificationRuleParameters: + description: Body of the notification rule patch request. properties: data: - description: The generally available SKUs, sorted by SKU code in ascending order. - items: - $ref: "#/components/schemas/ProductCatalogSKUDataResponse" - type: array - required: - - data + $ref: "#/components/schemas/PatchNotificationRuleParametersData" type: object - Project: - description: A Project. + PatchNotificationRuleParametersData: + description: |- + Data of the notification rule patch request: the rule ID, the rule type, and the rule attributes. All fields are required. properties: attributes: - $ref: "#/components/schemas/ProjectAttributes" + $ref: "#/components/schemas/PatchNotificationRuleParametersDataAttributes" id: - description: The Project's identifier. - example: aeadc05e-98a8-11ec-ac2c-da7ad0900001 - type: string - relationships: - $ref: "#/components/schemas/ProjectRelationships" + $ref: "#/components/schemas/ID" type: - $ref: "#/components/schemas/ProjectResourceType" + $ref: "#/components/schemas/NotificationRulesType" required: + - attributes - id - type - - attributes type: object - ProjectAttributes: - description: Project attributes. + PatchNotificationRuleParametersDataAttributes: + description: |- + Attributes of the notification rule patch request. It is required to update the version of the rule when patching it. properties: - columns_config: - $ref: "#/components/schemas/ProjectColumnsConfig" - enabled_custom_case_types: - description: List of enabled custom case type IDs. - items: - description: A custom case type identifier. - type: string - type: array - key: - description: The project's key. - example: CASEM - type: string + enabled: + $ref: "#/components/schemas/Enabled" name: - description: Project's name. - example: "Security Investigation" - type: string - restricted: - description: Whether the project is restricted. - type: boolean - settings: - $ref: "#/components/schemas/ProjectSettings" - type: object - ProjectColumnsConfig: - description: Project columns configuration. - properties: - columns: - description: List of column configurations for the project board view. - items: - $ref: "#/components/schemas/ProjectColumnsConfigColumnsItems" - type: array - type: object - ProjectColumnsConfigColumnsItems: - description: Configuration for a single column in a project board view. - properties: - sort: - $ref: "#/components/schemas/ProjectColumnsConfigColumnsItemsSort" - sort_field: - description: The field used to sort items in this column. - type: string - type: - description: The type of column. - type: string + $ref: "#/components/schemas/RuleName" + routing: + $ref: "#/components/schemas/NotificationRuleRouting" + selectors: + $ref: "#/components/schemas/Selectors" + targets: + $ref: "#/components/schemas/Targets" + time_aggregation: + $ref: "#/components/schemas/TimeAggregation" + version: + $ref: "#/components/schemas/Version" type: object - ProjectColumnsConfigColumnsItemsSort: - description: Sort configuration for a project board column. + PatchStatusPageRequest: + description: Request object for updating a status page. + example: + data: + attributes: + company_logo: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAIKMMMM + domain_prefix: status-page-us1-east + email_header_image: data:image/png;base64,pQSLAw0KGgoAAAANSUhEUgAAAQ4AASJKFF + favicon: data:image/png;base64,kWMRNw0KGgoAAAANSUhEUgAAAEAAAABACA + name: Status Page US1 East + subscriptions_enabled: false + type: internal + visualization_type: bars_only + id: 1234abcd-12ab-34cd-56ef-123456abcdef + type: status_pages properties: - ascending: - description: Whether to sort in ascending order. - type: boolean - priority: - description: The sort priority order for this column. - format: int64 - type: integer + data: + $ref: "#/components/schemas/PatchStatusPageRequestData" type: object - ProjectCreate: - description: Project create. + PatchStatusPageRequestData: + description: The data object for updating a status page. properties: attributes: - $ref: "#/components/schemas/ProjectCreateAttributes" + $ref: "#/components/schemas/PatchStatusPageRequestDataAttributes" + id: + description: The ID of the status page. + example: "1234abcd-12ab-34cd-56ef-123456abcdef" + format: uuid + type: string type: - $ref: "#/components/schemas/ProjectResourceType" + $ref: "#/components/schemas/StatusPageDataType" required: - attributes + - id - type type: object - ProjectCreateAttributes: - description: Project creation attributes. + PatchStatusPageRequestDataAttributes: + description: The supported attributes for updating a status page. properties: - enabled_custom_case_types: - description: List of enabled custom case type IDs. - items: - description: A custom case type identifier. - type: string - type: array - key: - description: Project's key. Cannot be "CASE". - example: "SEC" + company_logo: + description: The base64-encoded image data displayed on the status page. + example: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAIKMMMM + type: string + domain_prefix: + description: The subdomain of the status page's url taking the form `https://{domain_prefix}.statuspage.datadoghq.com`. Globally unique across Datadog Status Pages. + example: status-page-us1 + type: string + email_header_image: + description: The base64-encoded image data displayed in email notifications sent to status page subscribers. + example: data:image/png;base64,pQSLAw0KGgoAAAANSUhEUgAAAQ4AASJKFF + type: string + favicon: + description: The base64-encoded image data displayed in the browser tab. + example: data:image/png;base64,kWMRNw0KGgoAAAANSUhEUgAAAEAAAABACA type: string name: - description: Project name. - example: "Security Investigation" + description: The name of the status page. + example: Status Page US1 type: string - team_uuid: - description: Team UUID to associate with the project. + slack_app_icon: + description: The Slack app icon URL for the status page. type: string - required: - - name - - key + slack_subscriptions_enabled: + description: Whether Slack subscriptions are enabled for the status page. + type: boolean + subscriptions_enabled: + description: Whether users can subscribe to the status page. + example: true + type: boolean + type: + $ref: "#/components/schemas/CreateStatusPageRequestDataAttributesType" + example: public + visualization_type: + $ref: "#/components/schemas/CreateStatusPageRequestDataAttributesVisualizationType" + example: bars_and_uptime_percentage type: object - ProjectCreateRequest: - description: Project create request. + PatchTableRequest: + description: Request body for updating an existing reference table. + example: + data: + attributes: + description: this is a cloud table generated via a cloud bucket sync + file_metadata: + access_details: + aws_detail: + aws_account_id: test-account-id + aws_bucket_name: test-bucket + file_path: test_rt.csv + sync_enabled: true + schema: + fields: + - name: id + type: INT32 + - name: name + type: STRING + primary_keys: + - id + tags: + - test_tag + type: reference_table properties: data: - $ref: "#/components/schemas/ProjectCreate" - required: - - data + $ref: "#/components/schemas/PatchTableRequestData" type: object - ProjectFavorite: - description: Represents a case project that the current user has bookmarked for quick access. Favorited projects appear prominently in the Case Management UI. + PatchTableRequestData: + additionalProperties: false + description: The data object containing the partial table definition updates. properties: - id: - description: The UUID of the favorited project. - example: "e555e290-ed65-49bd-ae18-8acbfcf18db7" - type: string + attributes: + $ref: "#/components/schemas/PatchTableRequestDataAttributes" type: - $ref: "#/components/schemas/ProjectFavoriteResourceType" + $ref: "#/components/schemas/PatchTableRequestDataType" required: - - id - type type: object - ProjectFavoriteResourceType: - default: project_favorite - description: "JSON:API resource type for project favorites." - enum: - - project_favorite - example: project_favorite - type: string - x-enum-varnames: - - PROJECT_FAVORITE - ProjectFavoritesResponse: - description: Response containing the list of projects the current user has favorited. + PatchTableRequestDataAttributes: + description: Attributes that define the updates to the reference table's configuration and properties. properties: - data: - description: List of project favorites. + description: + description: Optional text describing the purpose or contents of this reference table. + example: "example description" + type: string + file_metadata: + $ref: "#/components/schemas/PatchTableRequestDataAttributesFileMetadata" + schema: + $ref: "#/components/schemas/PatchTableRequestDataAttributesSchema" + tags: + description: Tags for organizing and filtering reference tables. + example: + - "tag_1" + - "tag_2" items: - $ref: "#/components/schemas/ProjectFavorite" + description: A tag associated with the reference table. + type: string type: array - required: - - data type: object - ProjectNotificationSettings: - description: Project notification settings. + PatchTableRequestDataAttributesFileMetadata: + description: Metadata specifying where and how to access the reference table's data file. + oneOf: + - $ref: "#/components/schemas/PatchTableRequestDataAttributesFileMetadataCloudStorage" + - $ref: "#/components/schemas/PatchTableRequestDataAttributesFileMetadataLocalFile" + PatchTableRequestDataAttributesFileMetadataCloudStorage: + additionalProperties: false + description: >- + Cloud storage file metadata for patch requests. Allows partial updates of access_details and sync_enabled. properties: - destinations: - description: Notification destinations (1=email, 2=slack, 3=in-app). - items: - description: Notification channel identifier (1=email, 2=slack, 3=in-app). - format: int64 - type: integer - type: array - enabled: - description: Whether notifications are enabled. - type: boolean - notify_on_case_assignment: - description: Whether to send a notification when a case is assigned. - type: boolean - notify_on_case_closed: - description: Whether to send a notification when a case is closed. - type: boolean - notify_on_case_comment: - description: Whether to send a notification when a comment is added to a case. - type: boolean - notify_on_case_comment_mention: - description: Whether to send a notification when a user is mentioned in a case comment. - type: boolean - notify_on_case_priority_change: - description: Whether to send a notification when a case's priority changes. - type: boolean - notify_on_case_status_change: - description: Whether to send a notification when a case's status changes. - type: boolean - notify_on_case_unassignment: - description: Whether to send a notification when a case is unassigned. + access_details: + $ref: "#/components/schemas/PatchTableRequestDataAttributesFileMetadataOneOfAccessDetails" + sync_enabled: + description: Whether this table is synced automatically. + example: false type: boolean + title: CloudFileMetadataV2 type: object - ProjectRelationship: - description: Relationship to project. - properties: - data: - $ref: "#/components/schemas/ProjectRelationshipData" - required: - - data - type: object - ProjectRelationshipData: - description: Relationship to project object. + PatchTableRequestDataAttributesFileMetadataLocalFile: + additionalProperties: false + description: Local file metadata for patch requests using upload ID. properties: - id: - description: A unique identifier that represents the project. - example: "e555e290-ed65-49bd-ae18-8acbfcf18db7" + upload_id: + description: The upload ID. + example: "00000000-0000-0000-0000-000000000000" type: string - type: - $ref: "#/components/schemas/ProjectResourceType" required: - - id - - type + - upload_id + title: LocalFileMetadataV2 type: object - ProjectRelationships: - description: Project relationships. + PatchTableRequestDataAttributesFileMetadataOneOfAccessDetails: + description: Cloud storage access configuration for the reference table data file. properties: - member_team: - $ref: "#/components/schemas/RelationshipToTeamLinks" - member_user: - $ref: "#/components/schemas/UsersRelationship" + aws_detail: + $ref: "#/components/schemas/PatchTableRequestDataAttributesFileMetadataOneOfAccessDetailsAwsDetail" + azure_detail: + $ref: "#/components/schemas/PatchTableRequestDataAttributesFileMetadataOneOfAccessDetailsAzureDetail" + gcp_detail: + $ref: "#/components/schemas/PatchTableRequestDataAttributesFileMetadataOneOfAccessDetailsGcpDetail" type: object - ProjectResourceType: - default: project - description: Project resource type. - enum: - - project - example: project - type: string - x-enum-varnames: - - PROJECT - ProjectResponse: - description: Project response. + PatchTableRequestDataAttributesFileMetadataOneOfAccessDetailsAwsDetail: + description: Amazon Web Services S3 storage access configuration. properties: - data: - $ref: "#/components/schemas/Project" + aws_account_id: + description: AWS account ID where the S3 bucket is located. + example: "123456789000" + type: string + aws_bucket_name: + description: S3 bucket containing the CSV file. + example: "example-data-bucket" + type: string + file_path: + description: The relative file path from the S3 bucket root to the CSV file. + example: "reference-tables/users.csv" + type: string type: object - ProjectSettings: - description: Project settings. + x-oneOf-parent: + - AwsDetail + PatchTableRequestDataAttributesFileMetadataOneOfAccessDetailsAzureDetail: + description: Azure Blob Storage access configuration. properties: - auto_close_inactive_cases: - $ref: "#/components/schemas/AutoCloseInactiveCases" - auto_transition_assigned_cases: - $ref: "#/components/schemas/AutoTransitionAssignedCases" - integration_incident: - $ref: "#/components/schemas/IntegrationIncident" - integration_jira: - $ref: "#/components/schemas/IntegrationJira" - integration_monitor: - $ref: "#/components/schemas/IntegrationMonitor" - integration_on_call: - $ref: "#/components/schemas/IntegrationOnCall" - integration_service_now: - $ref: "#/components/schemas/IntegrationServiceNow" - notification: - $ref: "#/components/schemas/ProjectNotificationSettings" + azure_client_id: + description: Azure service principal (application) client ID with permissions to read from the container. + example: "aaaaaaaa-1111-2222-3333-bbbbbbbbbbbb" + type: string + azure_container_name: + description: Azure Blob Storage container containing the CSV file. + example: "reference-data" + type: string + azure_storage_account_name: + description: Azure storage account where the container is located. + example: "examplestorageaccount" + type: string + azure_tenant_id: + description: Azure Active Directory tenant ID. + example: "cccccccc-4444-5555-6666-dddddddddddd" + type: string + file_path: + description: The relative file path from the Azure container root to the CSV file. + example: "tables/users.csv" + type: string type: object - ProjectUpdate: - description: Project update. + x-oneOf-parent: + - AzureDetail + PatchTableRequestDataAttributesFileMetadataOneOfAccessDetailsGcpDetail: + description: Google Cloud Platform storage access configuration. properties: - attributes: - $ref: "#/components/schemas/ProjectUpdateAttributes" - type: - $ref: "#/components/schemas/ProjectResourceType" - required: - - type + file_path: + description: The relative file path from the GCS bucket root to the CSV file. + example: "data/reference_tables/users.csv" + type: string + gcp_bucket_name: + description: GCP bucket containing the CSV file. + example: "example-data-bucket" + type: string + gcp_project_id: + description: GCP project ID where the bucket is located. + example: "example-gcp-project-12345" + type: string + gcp_service_account_email: + description: Service account email with read permissions for the GCS bucket. + example: "example-service@example-gcp-project-12345.iam.gserviceaccount.com" + type: string type: object - ProjectUpdateAttributes: - description: Project update attributes. + x-oneOf-parent: + - GcpDetail + PatchTableRequestDataAttributesSchema: + description: >- + Schema defining the updates to the structure and columns of the reference table. Schema fields cannot be deleted or renamed. properties: - columns_config: - $ref: "#/components/schemas/ProjectColumnsConfig" - enabled_custom_case_types: - description: List of enabled custom case type IDs. + fields: + description: The schema fields. Maximum of 200 columns. items: - description: A custom case type identifier. + $ref: "#/components/schemas/PatchTableRequestDataAttributesSchemaFieldsItems" + maxItems: 200 + minItems: 1 + type: array + primary_keys: + description: >- + List of field names that serve as primary keys for the table. Only one primary key is supported, and it is used as an ID to retrieve rows. Primary keys cannot be changed after table creation. + example: + - "field_1" + items: + description: A field name used as a primary key. type: string type: array - name: - description: Project name. - type: string - settings: - $ref: "#/components/schemas/ProjectSettings" - team_uuid: - description: Team UUID to associate with the project. - type: string + required: + - fields + - primary_keys type: object - ProjectUpdateRequest: - description: Project update request. + PatchTableRequestDataAttributesSchemaFieldsItems: + description: >- + A single field (column) in the reference table schema to be updated. Schema fields cannot be deleted or renamed. properties: - data: - $ref: "#/components/schemas/ProjectUpdate" + name: + description: The field name. + example: "field_1" + type: string + type: + $ref: "#/components/schemas/ReferenceTableSchemaFieldType" required: - - data + - name + - type type: object - ProjectedCost: - description: Projected Cost data. + PatchTableRequestDataType: + default: reference_table + description: Reference table resource type. + enum: + - reference_table + example: reference_table + type: string + x-enum-varnames: + - REFERENCE_TABLE + Permission: + description: Permission object. properties: attributes: - $ref: "#/components/schemas/ProjectedCostAttributes" + $ref: "#/components/schemas/PermissionAttributes" id: - description: Unique ID of the response. + description: ID of the permission. type: string type: - $ref: "#/components/schemas/ProjectedCostType" + $ref: "#/components/schemas/PermissionsType" + required: + - type type: object - ProjectedCostAttributes: - description: Projected Cost attributes data. + PermissionAttributes: + description: Attributes of a permission. properties: - account_name: - description: The account name. + created: + description: Creation time of the permission. + format: date-time type: string - account_public_id: - description: The account public ID. + description: + description: Description of the permission. type: string - charges: - description: List of charges data reported for the requested month. - items: - $ref: "#/components/schemas/ChargebackBreakdown" - type: array - date: - description: The month requested. - format: date-time + display_name: + description: Displayed name for the permission. type: string - org_name: - description: The organization name. + display_type: + description: Display type. type: string - projected_total_cost: - description: The total projected cost of products for the month. - format: double - type: number - public_id: - description: The organization public ID. + group_name: + description: Name of the permission group. type: string - region: - description: The region of the Datadog instance that the organization belongs to. + name: + description: Name of the permission. type: string + name_aliases: + description: List of alias names for the permission. + items: + description: An alternative name for the permission. + type: string + type: array + restricted: + description: Whether or not the permission is restricted. + type: boolean type: object - ProjectedCostResponse: - description: Projected Cost response. + PermissionsResponse: + description: Payload with API-returned permissions. properties: data: - description: Response containing Projected Cost. + description: Array of permissions. items: - $ref: "#/components/schemas/ProjectedCost" + $ref: "#/components/schemas/Permission" type: array type: object - ProjectedCostType: - default: projected_cost - description: Type of cost data. + PermissionsType: + default: permissions + description: Permissions resource type. enum: - - projected_cost - example: projected_cost + - permissions + example: permissions type: string x-enum-varnames: - - PROJECt_COST - ProjectsResponse: - description: Response with projects. - properties: - data: - description: Projects response data. - items: - $ref: "#/components/schemas/Project" - type: array - type: object - PrunedTraceAttributes: - description: The attributes of a pruned trace returned by the Get pruned trace by ID endpoint. - properties: - is_truncated: - description: |- - Indicates whether the underlying trace was truncated because its size - exceeded the maximum that can be retrieved from storage. - example: false - type: boolean - size_bytes: - description: The size, in bytes, of the original (non-pruned) trace before summarization. - example: 12345 - format: int32 - maximum: 2147483647 - type: integer - summarized_trace: - $ref: "#/components/schemas/SummarizedTrace" - required: - - summarized_trace - - is_truncated - - size_bytes - type: object - PrunedTraceData: - description: A pruned trace resource document. + - PERMISSIONS + PersonalAccessToken: + description: Datadog access token. properties: attributes: - $ref: "#/components/schemas/PrunedTraceAttributes" + $ref: "#/components/schemas/PersonalAccessTokenAttributes" id: - description: The full 128-bit trace ID, encoded as a 32-character hexadecimal string. - example: "0000000000000000abc1230000000000" + description: ID of the access token. type: string + relationships: + $ref: "#/components/schemas/PersonalAccessTokenRelationships" type: - $ref: "#/components/schemas/PrunedTraceType" - required: - - id - - type - - attributes + $ref: "#/components/schemas/PersonalAccessTokensType" type: object - PrunedTraceResponse: - description: Response containing a single pruned trace. + PersonalAccessTokenAttributes: + description: Attributes of an access token. properties: - data: - $ref: "#/components/schemas/PrunedTraceData" - required: - - data + created_at: + description: Creation date of the access token. + example: "2024-01-01T00:00:00+00:00" + format: date-time + readOnly: true + type: string + expires_at: + description: Expiration date of the access token. + example: "2025-12-31T23:59:59+00:00" + format: date-time + nullable: true + readOnly: true + type: string + last_used_at: + description: Date the access token was last used. + example: "2025-06-15T12:30:00+00:00" + format: date-time + nullable: true + readOnly: true + type: string + modified_at: + description: Date of last modification of the access token. + example: "2024-06-01T00:00:00+00:00" + format: date-time + nullable: true + readOnly: true + type: string + name: + description: Name of the access token. + example: "My Access Token" + type: string + public_portion: + description: The public portion of the access token. + example: "ddpat_abc123" + readOnly: true + type: string + scopes: + description: Array of scopes granted to the access token. + example: + - "dashboards_read" + - "dashboards_write" + items: + description: Name of scope. + type: string + type: array type: object - PrunedTraceType: - description: The type of the pruned trace resource. The value is always `pruned_trace`. - enum: - - pruned_trace - example: pruned_trace - type: string - x-enum-varnames: - - PRUNED_TRACE - PublishAppResponse: - description: The response object after an app is successfully published. + PersonalAccessTokenCreateAttributes: + description: Attributes used to create an access token. properties: - data: - $ref: "#/components/schemas/Deployment" + expires_at: + description: Expiration date of the access token. Must be at least 24 hours in the future. + example: "2025-12-31T23:59:59+00:00" + format: date-time + type: string + name: + description: Name of the access token. + example: "My Personal Access Token" + type: string + scopes: + description: Array of scopes to grant the access token. + example: + - "dashboards_read" + - "dashboards_write" + items: + description: Name of scope. + type: string + type: array + required: + - name + - scopes + - expires_at type: object - PublishFormData: - description: The data for publishing a form version. + PersonalAccessTokenCreateData: + description: Object used to create an access token. properties: attributes: - $ref: "#/components/schemas/PublishFormDataAttributes" + $ref: "#/components/schemas/PersonalAccessTokenCreateAttributes" type: - $ref: "#/components/schemas/FormPublicationType" + $ref: "#/components/schemas/PersonalAccessTokensType" required: - - type - attributes + - type type: object - PublishFormDataAttributes: - description: The attributes for publishing a form version. - properties: - version: - description: The version number to publish. - example: 1 - format: int64 - type: integer - required: - - version - type: object - PublishFormRequest: - description: A request to publish a form version. + PersonalAccessTokenCreateRequest: + description: Request used to create an access token. properties: data: - $ref: "#/components/schemas/PublishFormData" + $ref: "#/components/schemas/PersonalAccessTokenCreateData" required: - data type: object - PublishRequestType: - default: publishRequest - description: The publish-request resource type. - enum: - - publishRequest - example: publishRequest - type: string - x-enum-varnames: - - PUBLISHREQUEST - PutAppsDatastoreItemResponseArray: - description: Response after successfully inserting multiple items into a datastore, containing the identifiers of the created items. + PersonalAccessTokenCreateResponse: + description: Response for creating an access token. Includes the token key. properties: data: - description: An array of data objects containing the identifiers of the successfully inserted items. - items: - $ref: "#/components/schemas/PutAppsDatastoreItemResponseData" - maxItems: 100 - type: array - required: - - data - type: object - PutAppsDatastoreItemResponseData: - description: Data containing the identifier of a single item that was successfully inserted into the datastore. - properties: - id: - description: The unique identifier assigned to the inserted item. - type: string - type: - $ref: "#/components/schemas/DatastoreItemsDataType" - required: - - type + $ref: "#/components/schemas/FullPersonalAccessToken" type: object - PutIncidentNotificationRuleRequest: - description: Put request for a notification rule. + PersonalAccessTokenRelationships: + description: Resources related to the access token. properties: - data: - $ref: "#/components/schemas/IncidentNotificationRuleUpdateData" - required: - - data + leak_information: + $ref: "#/components/schemas/RelationshipToLeakedKey" + owned_by: + $ref: "#/components/schemas/RelationshipToUser" type: object - Query: - description: A data query used by an app. This can take the form of an external action, a data transformation, or a state variable. - oneOf: - - $ref: "#/components/schemas/ActionQuery" - - $ref: "#/components/schemas/DataTransform" - - $ref: "#/components/schemas/StateVariable" - QueryAccountRequest: - description: Request body for querying accounts with optional filtering, column selection, and sorting. - example: - data: - attributes: - limit: 20 - query: plan_type:enterprise AND user_count:>100 AND subscription_status:active - select_columns: - - account_id - - account_name - - user_count - - plan_type - - subscription_status - - created_at - - mrr - - industry - sort: - field: user_count - order: DESC - wildcard_search_term: tech - id: query_account_request - type: query_account_request + PersonalAccessTokenResponse: + description: Response for retrieving an access token. properties: data: - $ref: "#/components/schemas/QueryAccountRequestData" + $ref: "#/components/schemas/PersonalAccessToken" + included: + $ref: "#/components/schemas/AccessTokenResponseIncludedArray" type: object - QueryAccountRequestData: - description: The data object containing the resource type and attributes for querying accounts. + PersonalAccessTokenResponseMeta: + description: Additional information related to the access token response. properties: - attributes: - $ref: "#/components/schemas/QueryAccountRequestDataAttributes" - id: - description: Unique identifier for the query account request resource. - type: string - type: - $ref: "#/components/schemas/QueryAccountRequestDataType" - required: - - type + page: + $ref: "#/components/schemas/PersonalAccessTokenResponseMetaPage" type: object - QueryAccountRequestDataAttributes: - description: Attributes for filtering and shaping the account query results. + PersonalAccessTokenResponseMetaPage: + description: Pagination information. properties: - limit: - description: Maximum number of account records to return in the response. + total_filtered_count: + description: Total filtered access token count. format: int64 type: integer - query: - description: Filter expression using account attribute conditions to narrow results. + type: object + PersonalAccessTokenUpdateAttributes: + description: Attributes used to update an access token. + properties: + name: + description: Name of the access token. + example: "Updated Personal Access Token" type: string - select_columns: - description: List of account attribute column names to include in the response. + scopes: + description: Array of scopes to grant the access token. + example: + - "dashboards_read" + - "dashboards_write" items: - description: Name of an account attribute column to include in the response. + description: Name of scope. type: string type: array - sort: - $ref: "#/components/schemas/QueryAccountRequestDataAttributesSort" - wildcard_search_term: - description: Free-text term used for wildcard search across account attribute values. - type: string type: object - QueryAccountRequestDataAttributesSort: - description: Sorting configuration specifying the field and direction for ordering query results. + PersonalAccessTokenUpdateData: + description: Object used to update an access token. properties: - field: - description: The attribute field name to sort results by. - type: string - order: - description: The sort direction, either ascending or descending. + attributes: + $ref: "#/components/schemas/PersonalAccessTokenUpdateAttributes" + id: + description: ID of the access token. + example: "00112233-4455-6677-8899-aabbccddeeff" type: string + type: + $ref: "#/components/schemas/PersonalAccessTokensType" + required: + - attributes + - id + - type type: object - QueryAccountRequestDataType: - default: query_account_request - description: Query account request resource type. + PersonalAccessTokenUpdateRequest: + description: Request used to update an access token. + properties: + data: + $ref: "#/components/schemas/PersonalAccessTokenUpdateData" + required: + - data + type: object + PersonalAccessTokensIncludeQueryParameterItem: + description: Relationship object that should be included in the response. enum: - - query_account_request - example: query_account_request + - leak_information + example: "leak_information" type: string x-enum-varnames: - - QUERY_ACCOUNT_REQUEST - QueryEventFilteredUsersRequest: - description: Request body for querying users filtered by user properties combined with event platform activity. - example: + - LEAK_INFORMATION + PersonalAccessTokensSort: + default: name + description: Sorting options + enum: + - name + - -name + - created_at + - -created_at + - expires_at + - -expires_at + - last_used_at + - -last_used_at + - leaked + - -leaked + type: string + x-enum-varnames: + - NAME_ASCENDING + - NAME_DESCENDING + - CREATED_AT_ASCENDING + - CREATED_AT_DESCENDING + - EXPIRES_AT_ASCENDING + - EXPIRES_AT_DESCENDING + - LAST_USED_AT_ASCENDING + - LAST_USED_AT_DESCENDING + - LEAKED_ASCENDING + - LEAKED_DESCENDING + PersonalAccessTokensType: + default: personal_access_tokens + description: Personal access tokens resource type. + enum: + - personal_access_tokens + example: personal_access_tokens + type: string + x-enum-varnames: + - PERSONAL_ACCESS_TOKENS + Playlist: + description: A single RUM replay playlist resource returned by create, update, or get operations. + properties: data: - attributes: - event_query: - query: "@type:view AND @view.loading_time:>3000 AND @application.name:ecommerce-platform" - time_frame: - end: 1761309676 - start: 1760100076 - include_row_count: true - limit: 25 - query: user_org_id:5001 AND first_country_code:US AND first_browser_name:Chrome - select_columns: - - user_id - - user_email - - first_country_code - - first_browser_name - - events_count - - session_count - - error_count - - avg_loading_time - id: query_event_filtered_users_request - type: query_event_filtered_users_request + $ref: "#/components/schemas/PlaylistData" + required: + - data + type: object + PlaylistArray: + description: A list of RUM replay playlists returned by a list operation. properties: data: - $ref: "#/components/schemas/QueryEventFilteredUsersRequestData" + description: Array of playlist data objects. + items: + $ref: "#/components/schemas/PlaylistData" + type: array + required: + - data type: object - QueryEventFilteredUsersRequestData: - description: The data object containing the resource type and attributes for querying event-filtered users. + PlaylistData: + description: Data object representing a RUM replay playlist, including its identifier, type, and attributes. properties: attributes: - $ref: "#/components/schemas/QueryEventFilteredUsersRequestDataAttributes" + $ref: "#/components/schemas/PlaylistDataAttributes" id: - description: Unique identifier for the query event filtered users request resource. + description: Unique identifier of the playlist. type: string type: - $ref: "#/components/schemas/QueryEventFilteredUsersRequestDataType" + $ref: "#/components/schemas/PlaylistDataType" required: - type type: object - QueryEventFilteredUsersRequestDataAttributes: - description: Attributes for filtering users by both user properties and event platform activity. + PlaylistDataAttributes: + description: Attributes of a RUM replay playlist, including its name, description, session count, and audit timestamps. properties: - event_query: - $ref: "#/components/schemas/QueryEventFilteredUsersRequestDataAttributesEventQuery" - include_row_count: - description: Whether to include the total count of matching users in the response. - type: boolean - limit: - description: Maximum number of user records to return in the response. + created_at: + description: Timestamp when the playlist was created. + format: date-time + type: string + created_by: + $ref: "#/components/schemas/PlaylistDataAttributesCreatedBy" + description: + description: Optional human-readable description of the playlist's purpose or contents. + type: string + name: + description: Human-readable name of the playlist. + example: My Playlist + type: string + session_count: + description: Number of replay sessions in the playlist. format: int64 type: integer - query: - description: Filter expression using user attribute conditions to narrow results. + updated_at: + description: Timestamp when the playlist was last updated. + format: date-time type: string - select_columns: - description: List of user attribute column names to include in the response. - items: - description: Name of a user attribute column to include in the response. - type: string - type: array + required: + - name type: object - QueryEventFilteredUsersRequestDataAttributesEventQuery: - description: Event platform query used to filter users based on their event activity within a specified time window. + PlaylistDataAttributesCreatedBy: + description: Information about the user who created the playlist. properties: - query: - description: The event platform query expression for filtering users by their event activity. + handle: + description: Email handle of the user who created the playlist. + example: john.doe@example.com type: string - time_frame: - $ref: "#/components/schemas/QueryEventFilteredUsersRequestDataAttributesEventQueryTimeFrame" - type: object - QueryEventFilteredUsersRequestDataAttributesEventQueryTimeFrame: - description: The time window defining the start and end of the event query period as Unix timestamps. - properties: - end: - description: End of the time frame as a Unix timestamp in seconds. - format: int64 - type: integer - start: - description: Start of the time frame as a Unix timestamp in seconds. - format: int64 - type: integer + icon: + description: URL or identifier of the user's avatar icon. + type: string + id: + description: Unique identifier of the user who created the playlist. + example: 00000000-0000-0000-0000-000000000001 + type: string + name: + description: Display name of the user who created the playlist. + type: string + uuid: + description: UUID of the user who created the playlist. + example: 00000000-0000-0000-0000-000000000001 + type: string + required: + - handle + - id + - uuid type: object - QueryEventFilteredUsersRequestDataType: - default: query_event_filtered_users_request - description: Query event filtered users request resource type. + PlaylistDataType: + default: rum_replay_playlist + description: Rum replay playlist resource type. enum: - - query_event_filtered_users_request - example: query_event_filtered_users_request + - rum_replay_playlist + example: rum_replay_playlist type: string x-enum-varnames: - - QUERY_EVENT_FILTERED_USERS_REQUEST - QueryFormula: - description: A formula for calculation based on one or more queries. + - RUM_REPLAY_PLAYLIST + PlaylistsSession: + description: A single RUM replay session resource as it appears within a playlist context. properties: - formula: - description: Formula string, referencing one or more queries with their name property. - example: "a+b" - type: string - limit: - $ref: "#/components/schemas/FormulaLimit" + data: + $ref: "#/components/schemas/PlaylistsSessionData" required: - - formula + - data type: object - QueryResponse: - description: Response containing the query results with matched records and total count. - example: - data: - attributes: - hits: - - first_browser_name: Chrome - first_city: San Francisco - first_country_code: US - first_device_type: Desktop - last_seen: "2025-08-14T06:45:12.142Z" - session_count: 47 - user_created: "2024-12-15T08:42:33.287Z" - user_email: john.smith@techcorp.com - user_id: "150847" - user_name: John Smith - user_org_id: "5001" - - first_browser_name: Chrome - first_city: Austin - first_country_code: US - first_device_type: Desktop - last_seen: "2025-08-14T05:22:08.951Z" - session_count: 89 - user_created: "2024-11-28T14:17:45.634Z" - user_email: john.williams@techcorp.com - user_id: "150848" - user_name: John Williams - user_org_id: "5001" - - first_browser_name: Chrome - first_city: Seattle - first_country_code: US - first_device_type: Desktop - last_seen: "2025-08-14T04:18:34.726Z" - session_count: 23 - user_created: "2025-01-03T16:33:21.445Z" - user_email: john.jones@techcorp.com - user_id: "150849" - user_name: John Jones - user_org_id: "5001" - total: 147 - id: query_response - type: query_response + PlaylistsSessionArray: + description: A list of RUM replay sessions belonging to a playlist. properties: data: - $ref: "#/components/schemas/QueryResponseData" + description: Array of playlist session data objects. + items: + $ref: "#/components/schemas/PlaylistsSessionData" + type: array + required: + - data type: object - QueryResponseData: - description: The data object containing the resource type and attributes of the query response. + PlaylistsSessionData: + description: Data object representing a session within a playlist, including its identifier, type, and attributes. properties: attributes: - $ref: "#/components/schemas/QueryResponseDataAttributes" + $ref: "#/components/schemas/PlaylistsSessionDataAttributes" id: - description: Unique identifier for the query response resource. + description: Unique identifier of the RUM replay session. type: string type: - $ref: "#/components/schemas/QueryResponseDataType" + $ref: "#/components/schemas/ViewershipHistorySessionDataType" required: - type type: object - QueryResponseDataAttributes: - description: Attributes of the query response, containing the matched records and total count. + PlaylistsSessionDataAttributes: + description: Attributes of a session within a playlist, including the session event data and its replay track. properties: - hits: - description: The list of matching records returned by the query, each as a map of attribute names to values. - items: - additionalProperties: {} - description: A single matched record represented as a map of attribute names to their values. - type: array - total: - description: Total number of records matching the query, regardless of the limit applied. - format: int64 - type: integer + session_event: + additionalProperties: {} + description: Raw event data associated with the replay session. + type: object + track: + description: Replay track identifier indicating which recording track the session belongs to. + type: string type: object - QueryResponseDataType: - default: query_response - description: Query response resource type. - enum: - - query_response - example: query_response - type: string - x-enum-varnames: - - QUERY_RESPONSE - QuerySortOrder: - default: desc - description: Direction of sort. - enum: - - asc - - desc - type: string - x-enum-varnames: - - ASC - - DESC - QueryUsersRequest: - description: Request body for querying users with optional filtering, column selection, and sorting. - example: - data: - attributes: - limit: 25 - query: user_email:*@techcorp.com AND first_country_code:US AND first_browser_name:Chrome - select_columns: - - user_id - - user_email - - user_name - - user_org_id - - first_country_code - - first_browser_name - - first_device_type - - last_seen - sort: - field: first_seen - order: DESC - wildcard_search_term: john - id: query_users_request - type: query_users_request + PostmortemAttachmentRequest: + description: Request body for creating a postmortem attachment. properties: data: - $ref: "#/components/schemas/QueryUsersRequestData" - type: object - QueryUsersRequestData: - description: The data object containing the resource type and attributes for querying users. - properties: - attributes: - $ref: "#/components/schemas/QueryUsersRequestDataAttributes" - id: - description: Unique identifier for the query users request resource. - type: string - type: - $ref: "#/components/schemas/QueryUsersRequestDataType" + $ref: "#/components/schemas/PostmortemAttachmentRequestData" required: - - type + - data type: object - QueryUsersRequestDataAttributes: - description: Attributes for filtering and shaping the user query results. + PostmortemAttachmentRequestAttributes: + description: Postmortem attachment attributes properties: - limit: - description: Maximum number of user records to return in the response. - format: int64 - type: integer - query: - description: Filter expression using user attribute conditions to narrow results. - type: string - select_columns: - description: List of user attribute column names to include in the response. + cells: + description: The cells of the postmortem items: - description: Name of a user attribute column to include in the response. - type: string + $ref: "#/components/schemas/PostmortemCell" type: array - sort: - $ref: "#/components/schemas/QueryUsersRequestDataAttributesSort" - wildcard_search_term: - description: Free-text term used for wildcard search across user attribute values. - type: string - type: object - QueryUsersRequestDataAttributesSort: - description: Sorting configuration specifying the field and direction for ordering user query results. - properties: - field: - description: The user attribute field name to sort results by. + content: + description: The content of the postmortem + example: |- + # Incident Report - IR-123 + [...] type: string - order: - description: The sort direction, either ascending or descending. + postmortem_template_id: + description: The ID of the postmortem template + example: "93645509-874e-45c4-adfa-623bfeaead89-123" type: string - type: object - QueryUsersRequestDataType: - default: query_users_request - description: Query users request resource type. - enum: - - query_users_request - example: query_users_request - type: string - x-enum-varnames: - - QUERY_USERS_REQUEST - RUMAggregateBucketValue: - description: A bucket value, can be either a timeseries or a single value. - oneOf: - - $ref: "#/components/schemas/RUMAggregateBucketValueSingleString" - - $ref: "#/components/schemas/RUMAggregateBucketValueSingleNumber" - - $ref: "#/components/schemas/RUMAggregateBucketValueTimeseries" - RUMAggregateBucketValueSingleNumber: - description: A single number value. - format: double - type: number - RUMAggregateBucketValueSingleString: - description: A single string value. - type: string - RUMAggregateBucketValueTimeseries: - description: A timeseries array. - items: - $ref: "#/components/schemas/RUMAggregateBucketValueTimeseriesPoint" - type: array - x-generate-alias-as-model: true - RUMAggregateBucketValueTimeseriesPoint: - description: A timeseries point. - properties: - time: - description: The time value for this point. - example: "2020-06-08T11:55:00.123Z" - format: date-time + title: + description: The title of the postmortem + example: Postmortem-IR-123 type: string - value: - description: The value for this point. - example: 19 - format: double - type: number type: object - RUMAggregateRequest: - description: The object sent with the request to retrieve aggregation buckets of RUM events from your organization. + PostmortemAttachmentRequestData: + description: Postmortem attachment data properties: - compute: - description: The list of metrics or timeseries to compute for the retrieved buckets. - items: - $ref: "#/components/schemas/RUMCompute" - type: array - filter: - $ref: "#/components/schemas/RUMQueryFilter" - group_by: - description: The rules for the group by. - items: - $ref: "#/components/schemas/RUMGroupBy" - type: array - options: - $ref: "#/components/schemas/RUMQueryOptions" - page: - $ref: "#/components/schemas/RUMQueryPageOptions" + attributes: + $ref: "#/components/schemas/PostmortemAttachmentRequestAttributes" + type: + $ref: "#/components/schemas/IncidentAttachmentType" + required: + - type + - attributes type: object - RUMAggregateSort: - description: A sort rule. - example: {"aggregation": "count", "order": "asc"} + PostmortemCell: + description: A cell in the postmortem properties: - aggregation: - $ref: "#/components/schemas/RUMAggregationFunction" - metric: - description: The metric to sort by (only used for `type=measure`). - example: "@duration" + attributes: + $ref: "#/components/schemas/PostmortemCellAttributes" + id: + description: The unique identifier of the cell + example: "cell-1" type: string - order: - $ref: "#/components/schemas/RUMSortOrder" type: - $ref: "#/components/schemas/RUMAggregateSortType" + $ref: "#/components/schemas/PostmortemCellType" type: object - RUMAggregateSortType: - default: "alphabetical" - description: The type of sorting algorithm. - enum: ["alphabetical", "measure"] - type: string - x-enum-varnames: ["ALPHABETICAL", "MEASURE"] - RUMAggregationBucketsResponse: - description: The query results. + PostmortemCellAttributes: + description: Attributes of a postmortem cell properties: - buckets: - description: The list of matching buckets, one item per bucket. - items: - $ref: "#/components/schemas/RUMBucketResponse" - type: array + definition: + $ref: "#/components/schemas/PostmortemCellDefinition" type: object - RUMAggregationFunction: - description: An aggregation function. - enum: ["count", "cardinality", "pc75", "pc90", "pc95", "pc98", "pc99", "sum", "min", "max", "avg", "median"] - example: "pc90" - type: string - x-enum-varnames: ["COUNT", "CARDINALITY", "PERCENTILE_75", "PERCENTILE_90", "PERCENTILE_95", "PERCENTILE_98", "PERCENTILE_99", "SUM", "MIN", "MAX", "AVG", "MEDIAN"] - RUMAnalyticsAggregateResponse: - description: The response object for the RUM events aggregate API endpoint. + PostmortemCellDefinition: + description: Definition of a postmortem cell properties: - data: - $ref: "#/components/schemas/RUMAggregationBucketsResponse" - links: - $ref: "#/components/schemas/RUMResponseLinks" - meta: - $ref: "#/components/schemas/RUMResponseMetadata" + content: + description: The content of the cell in markdown format + example: |- + ## Incident Summary + This incident was caused by... + type: string type: object - RUMApplication: - description: RUM application. + PostmortemCellType: + description: The postmortem cell resource type. + enum: + - markdown + example: markdown + type: string + x-enum-varnames: + - MARKDOWN + PostmortemTemplateAttributesRequest: + description: Attributes for creating or updating a postmortem template. properties: - attributes: - $ref: "#/components/schemas/RUMApplicationAttributes" - id: - description: RUM application ID. - example: abcd1234-0000-0000-abcd-1234abcd5678 + confluence_postmortem_settings: + $ref: "#/components/schemas/ConfluencePostmortemSettings" + content: + description: The templated content of the postmortem, supporting Markdown and incident template variables. + example: "# Overview\n\n# What Happened\n\n# Timeline\n\n# Action Items" + type: string + google_docs_postmortem_settings: + $ref: "#/components/schemas/GoogleDocsPostmortemSettings" + is_default: + description: When set, marks this template as a default. The effective default for an incident type is the template with the most recent `is_default` timestamp. Set to `null` to unset. + example: "2024-01-01T00:00:00+00:00" + format: date-time + nullable: true + type: string + location: + $ref: "#/components/schemas/PostmortemTemplateLocation" + name: + description: The name of the template. + example: "Standard Postmortem Template" type: string - type: - $ref: "#/components/schemas/RUMApplicationType" required: - - attributes - - id - - type + - name type: object - RUMApplicationAttributes: - description: RUM application attributes. + PostmortemTemplateAttributesResponse: + description: Attributes of a postmortem template returned in a response. properties: - api_key_id: - description: ID of the API key associated with the application. - example: 123456789 - format: int32 - maximum: 2147483647 - type: integer - application_id: - description: ID of the RUM application. - example: abcd1234-0000-0000-abcd-1234abcd5678 + confluence_postmortem_settings: + $ref: "#/components/schemas/ConfluencePostmortemSettings" + content: + description: The templated content of the postmortem, supporting Markdown and incident template variables. + example: "# Overview\n\n# What Happened\n\n# Timeline\n\n# Action Items" type: string - client_token: - description: Client token of the RUM application. - example: abcd1234efgh5678ijkl90abcd1234efgh0 + createdAt: + description: When the template was created. + example: "2026-01-13T17:15:53.208340Z" + format: date-time type: string - created_at: - description: Timestamp in ms of the creation date. - example: 1659479836169 - format: int64 - type: integer - created_by_handle: - description: Handle of the creator user. - example: john.doe + google_docs_postmortem_settings: + $ref: "#/components/schemas/GoogleDocsPostmortemSettings" + is_default: + description: When set, marks this template as a default. The effective default for an incident type is the template with the most recent `is_default` timestamp. + example: "2024-01-01T00:00:00+00:00" + format: date-time + nullable: true type: string - hash: - description: Hash of the RUM application. Optional. + location: + $ref: "#/components/schemas/PostmortemTemplateLocation" + modifiedAt: + description: When the template was last modified. + example: "2026-01-13T17:15:53.208340Z" + format: date-time type: string - is_active: - description: Indicates if the RUM application is active. - example: true - type: boolean name: - description: Name of the RUM application. - example: my_rum_application - type: string - org_id: - description: Org ID of the RUM application. - example: 999 - format: int32 - maximum: 2147483647 - type: integer - product_scales: - $ref: "#/components/schemas/RUMProductScales" - remote_config_id: - description: ID of the RUM SDK remote configuration for the application, if one exists. - example: abc12345-1234-5678-abcd-ef1234567890 - type: string - type: - description: "Type of the RUM application. Supported values are `browser`, `ios`, `android`, `react-native`, `flutter`, `roku`, `electron`, `unity`, `kotlin-multiplatform`." - example: browser - type: string - updated_at: - description: Timestamp in ms of the last update date. - example: 1659479836169 - format: int64 - type: integer - updated_by_handle: - description: Handle of the updater user. - example: jane.doe + description: The name of the template. + example: "Standard Postmortem Template" type: string required: - - application_id - - client_token - - created_at - - created_by_handle - name - - org_id - - type - - updated_at - - updated_by_handle + - content + - is_default + - location + - createdAt + - modifiedAt type: object - RUMApplicationCreate: - description: RUM application creation. + PostmortemTemplateCreateRelationships: + description: Relationships for a postmortem template. `incident_type` is required when creating a template and is immutable afterwards. + properties: + incident_type: + $ref: "#/components/schemas/PostmortemTemplateIncidentTypeRelationship" + type: object + PostmortemTemplateDataRequest: + description: Data object for creating or updating a postmortem template. properties: attributes: - $ref: "#/components/schemas/RUMApplicationCreateAttributes" + $ref: "#/components/schemas/PostmortemTemplateAttributesRequest" + id: + description: The ID of the template. Required when updating. + example: 00000000-0000-0000-0000-000000000000 + type: string + relationships: + $ref: "#/components/schemas/PostmortemTemplateCreateRelationships" type: - $ref: "#/components/schemas/RUMApplicationCreateType" + $ref: "#/components/schemas/PostmortemTemplateType" required: - - attributes - type + - attributes type: object - RUMApplicationCreateAttributes: - description: RUM application creation attributes. + PostmortemTemplateDataResponse: + description: Data object for a postmortem template returned in a response. properties: - name: - description: Name of the RUM application. - example: my_new_rum_application + attributes: + $ref: "#/components/schemas/PostmortemTemplateAttributesResponse" + id: + description: The ID of the template. + example: 00000000-0000-0000-0000-000000000000 type: string - product_analytics_retention_state: - $ref: "#/components/schemas/RUMProductAnalyticsRetentionState" - rum_event_processing_state: - $ref: "#/components/schemas/RUMEventProcessingState" + relationships: + $ref: "#/components/schemas/PostmortemTemplateResponseRelationships" type: - description: "Type of the RUM application. Supported values are `browser`, `ios`, `android`, `react-native`, `flutter`, `roku`, `electron`, `unity`, `kotlin-multiplatform`." - example: browser - type: string + $ref: "#/components/schemas/PostmortemTemplateType" required: - - name + - id + - type + - attributes type: object - RUMApplicationCreateRequest: - description: RUM application creation request attributes. + PostmortemTemplateIncidentTypeRelationship: + description: Relationship to the incident type this template belongs to. properties: data: - $ref: "#/components/schemas/RUMApplicationCreate" + $ref: "#/components/schemas/PostmortemTemplateIncidentTypeRelationshipData" required: - data type: object - RUMApplicationCreateType: - default: rum_application_create - description: RUM application creation type. - enum: - - rum_application_create - example: rum_application_create - type: string - x-enum-varnames: - - RUM_APPLICATION_CREATE - RUMApplicationList: - description: RUM application list. + PostmortemTemplateIncidentTypeRelationshipData: + description: Incident type relationship data. properties: - attributes: - $ref: "#/components/schemas/RUMApplicationListAttributes" id: - description: RUM application ID. - example: abcd1234-0000-0000-abcd-1234abcd5678 + description: The incident type identifier. + example: 00000000-0000-0000-0000-000000000009 + format: uuid type: string type: - $ref: "#/components/schemas/RUMApplicationListType" + description: The incident type resource type. + example: incident_types + type: string required: - - attributes + - id - type type: object - RUMApplicationListAttributes: - description: RUM application list attributes. + PostmortemTemplateLocation: + default: datadog_notebooks + description: The location where the postmortem is created and stored. + enum: + - datadog_notebooks + - confluence + - google_docs + example: datadog_notebooks + type: string + x-enum-varnames: + - DATADOG_NOTEBOOKS + - CONFLUENCE + - GOOGLE_DOCS + PostmortemTemplateRequest: + description: Request body for creating or updating a postmortem template. properties: - application_id: - description: ID of the RUM application. - example: abcd1234-0000-0000-abcd-1234abcd5678 - type: string - created_at: - description: Timestamp in ms of the creation date. - example: 1659479836169 - format: int64 - type: integer - created_by_handle: - description: Handle of the creator user. - example: john.doe - type: string - hash: - description: Hash of the RUM application. Optional. - type: string - is_active: - description: Indicates if the RUM application is active. - example: true - type: boolean - name: - description: Name of the RUM application. - example: my_rum_application - type: string - org_id: - description: Org ID of the RUM application. - example: 999 - format: int32 - maximum: 2147483647 - type: integer - product_scales: - $ref: "#/components/schemas/RUMProductScales" - type: - description: Type of the RUM application. Supported values are `browser`, `ios`, `android`, `react-native`, `flutter`, `roku`, `electron`, `unity`, `kotlin-multiplatform`. - example: browser - type: string - updated_at: - description: Timestamp in ms of the last update date. - example: 1659479836169 - format: int64 - type: integer - updated_by_handle: - description: Handle of the updater user. - example: jane.doe - type: string + data: + $ref: "#/components/schemas/PostmortemTemplateDataRequest" required: - - application_id - - created_at - - created_by_handle - - name - - org_id - - type - - updated_at - - updated_by_handle + - data type: object - RUMApplicationListType: - default: rum_application - description: RUM application list type. - enum: - - rum_application - example: rum_application - type: string - x-enum-varnames: - - RUM_APPLICATION - RUMApplicationResponse: - description: RUM application response. + PostmortemTemplateResponse: + description: Response containing a single postmortem template. properties: data: - $ref: "#/components/schemas/RUMApplication" + $ref: "#/components/schemas/PostmortemTemplateDataResponse" + required: + - data type: object - RUMApplicationType: - default: rum_application - description: RUM application response type. + PostmortemTemplateResponseRelationships: + description: Relationships of a postmortem template returned in a response. + properties: + incident_type: + $ref: "#/components/schemas/PostmortemTemplateIncidentTypeRelationship" + last_modified_by_user: + $ref: "#/components/schemas/PostmortemTemplateUserRelationship" + type: object + PostmortemTemplateType: + description: Postmortem template resource type. enum: - - rum_application - example: rum_application + - postmortem_templates + - postmortem_template + example: postmortem_templates type: string x-enum-varnames: - - RUM_APPLICATION - RUMApplicationUpdate: - description: RUM application update. + - POSTMORTEM_TEMPLATES + - POSTMORTEM_TEMPLATE + PostmortemTemplateUserRelationship: + description: Relationship to a user. properties: - attributes: - $ref: "#/components/schemas/RUMApplicationUpdateAttributes" - id: - description: RUM application ID. - example: abcd1234-0000-0000-abcd-1234abcd5678 - type: string - type: - $ref: "#/components/schemas/RUMApplicationUpdateType" + data: + $ref: "#/components/schemas/PostmortemTemplateUserRelationshipData" required: - - id - - type + - data type: object - RUMApplicationUpdateAttributes: - description: RUM application update attributes. + PostmortemTemplateUserRelationshipData: + description: User relationship data. properties: - name: - description: Name of the RUM application. - example: updated_name_for_my_existing_rum_application + id: + description: The user identifier. + example: 00000000-0000-0000-0000-000000000000 + format: uuid type: string - product_analytics_retention_state: - $ref: "#/components/schemas/RUMProductAnalyticsRetentionState" - rum_event_processing_state: - $ref: "#/components/schemas/RUMEventProcessingState" type: - description: "Type of the RUM application. Supported values are `browser`, `ios`, `android`, `react-native`, `flutter`, `roku`, `electron`, `unity`, `kotlin-multiplatform`." - example: browser + description: The user resource type. + example: users type: string - type: object - RUMApplicationUpdateRequest: - description: RUM application update request. - properties: - data: - $ref: "#/components/schemas/RUMApplicationUpdate" required: - - data + - id + - type type: object - RUMApplicationUpdateType: - default: rum_application_update - description: RUM application update type. - enum: - - rum_application_update - example: rum_application_update - type: string - x-enum-varnames: - - RUM_APPLICATION_UPDATE - RUMApplicationsResponse: - description: RUM applications response. + PostmortemTemplatesResponse: + description: Response containing a list of postmortem templates. properties: data: - description: RUM applications array response. + description: An array of postmortem template data objects. items: - $ref: "#/components/schemas/RUMApplicationList" + $ref: "#/components/schemas/PostmortemTemplateDataResponse" type: array - type: object - RUMBucketResponse: - description: Bucket values. - properties: - by: - additionalProperties: - description: The values for each group-by. - type: string - description: The key-value pairs for each group-by. - example: {"@session.type": "user", "@type": "view"} - type: object - computes: - additionalProperties: - $ref: "#/components/schemas/RUMAggregateBucketValue" - description: A map of the metric name to value for regular compute, or a list of values for a timeseries. - type: object - type: object - RUMCompute: - description: A compute rule to compute metrics or timeseries. - properties: - aggregation: - $ref: "#/components/schemas/RUMAggregationFunction" - interval: - description: |- - The time buckets' size (only used for type=timeseries) - Defaults to a resolution of 150 points. - example: "5m" - type: string - metric: - description: The metric to use. - example: "@duration" - type: string - type: - $ref: "#/components/schemas/RUMComputeType" required: - - aggregation + - data type: object - RUMComputeType: - default: "total" - description: The type of compute. - enum: ["timeseries", "total"] - type: string - x-enum-varnames: ["TIMESERIES", "TOTAL"] - RUMEvent: - description: Object description of a RUM event after being processed and stored by Datadog. + Powerpack: + description: |- + Powerpacks are templated groups of dashboard widgets you can save from an existing dashboard and turn into reusable packs in the widget tray. properties: - attributes: - $ref: "#/components/schemas/RUMEventAttributes" - id: - description: Unique ID of the event. - example: "AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA" - type: string - type: - $ref: "#/components/schemas/RUMEventType" + data: + $ref: "#/components/schemas/PowerpackData" type: object - RUMEventAttributes: - description: JSON object containing all event attributes and their associated values. + PowerpackAttributes: + description: Powerpack attribute object. properties: - attributes: - additionalProperties: {} - description: JSON object of attributes from RUM events. - example: {"customAttribute": 123, "duration": 2345} - type: object - service: - description: |- - The name of the application or service generating RUM events. - It is used to switch from RUM to APM, so make sure you define the same - value when you use both products. - example: "web-app" + description: + description: Description of this powerpack. + example: "Powerpack for ABC" + type: string + group_widget: + $ref: "#/components/schemas/PowerpackGroupWidget" + name: + description: Name of the powerpack. + example: "Sample Powerpack" type: string tags: - description: Array of tags associated with your event. - example: ["team:A"] + description: List of tags to identify this powerpack. + example: ["tag:foo1"] items: - description: Tag associated with your event. + description: A tag to identify this powerpack. + maxLength: 80 type: string + maxItems: 8 type: array - timestamp: - description: Timestamp of your event. - example: "2019-01-02T09:42:36.320Z" - format: date-time - type: string - type: object - RUMEventProcessingScale: - description: RUM event processing scale configuration. - properties: - last_modified_at: - description: Timestamp in milliseconds when this scale was last modified. - example: 1721897494108 - format: int64 - type: integer - state: - $ref: "#/components/schemas/RUMEventProcessingState" - type: object - RUMEventProcessingState: - description: Configures which RUM events are processed and stored for the application. - enum: - - ALL - - ERROR_FOCUSED_MODE - - NONE - example: ALL - type: string - x-enum-descriptions: - - Process and store all RUM events (sessions, views, actions, resources, errors) - - Process and store only error events and related critical events - - Disable RUM event processing—no events are stored - x-enum-varnames: - - ALL - - ERROR_FOCUSED_MODE - - NONE - RUMEventType: - default: rum - description: Type of the event. - enum: - - rum - example: "rum" - type: string - x-enum-varnames: - - RUM - RUMEventsResponse: - description: Response object with all events matching the request and pagination information. - properties: - data: - description: Array of events matching the request. + template_variables: + description: List of template variables for this powerpack. + example: [{"defaults": ["*"], "name": "test"}] items: - $ref: "#/components/schemas/RUMEvent" + $ref: "#/components/schemas/PowerpackTemplateVariable" type: array - links: - $ref: "#/components/schemas/RUMResponseLinks" - meta: - $ref: "#/components/schemas/RUMResponseMetadata" - type: object - RUMGroupBy: - description: A group-by rule. - properties: - facet: - description: The name of the facet to use (required). - example: "@view.time_spent" - type: string - histogram: - $ref: "#/components/schemas/RUMGroupByHistogram" - limit: - default: 10 - description: The maximum buckets to return for this group-by. - format: int64 - type: integer - missing: - $ref: "#/components/schemas/RUMGroupByMissing" - sort: - $ref: "#/components/schemas/RUMAggregateSort" - total: - $ref: "#/components/schemas/RUMGroupByTotal" required: - - facet + - group_widget + - name type: object - RUMGroupByHistogram: - description: |- - Used to perform a histogram computation (only for measure facets). - Note: At most 100 buckets are allowed, the number of buckets is (max - min)/interval. + PowerpackData: + description: Powerpack data object. properties: - interval: - description: The bin size of the histogram buckets. - example: 10 - format: double - type: number - max: - description: |- - The maximum value for the measure used in the histogram - (values greater than this one are filtered out). - example: 100 - format: double - type: number - min: - description: |- - The minimum value for the measure used in the histogram - (values smaller than this one are filtered out). - example: 50 - format: double - type: number - required: - - interval - - min - - max + attributes: + $ref: "#/components/schemas/PowerpackAttributes" + id: + description: ID of the powerpack. + type: string + relationships: + $ref: "#/components/schemas/PowerpackRelationships" + type: + description: Type of widget, must be powerpack. + example: "powerpack" + type: string type: object - RUMGroupByMissing: - description: The value to use for logs that don't have the facet used to group by. - oneOf: - - $ref: "#/components/schemas/RUMGroupByMissingString" - - $ref: "#/components/schemas/RUMGroupByMissingNumber" - RUMGroupByMissingNumber: - description: The missing value to use if there is a number valued facet. - format: double - type: number - RUMGroupByMissingString: - description: The missing value to use if there is string valued facet. - type: string - RUMGroupByTotal: - default: false - description: |- - A resulting object to put the given computes in over all the matching records. - oneOf: - - $ref: "#/components/schemas/RUMGroupByTotalBoolean" - - $ref: "#/components/schemas/RUMGroupByTotalString" - - $ref: "#/components/schemas/RUMGroupByTotalNumber" - RUMGroupByTotalBoolean: - description: If set to true, creates an additional bucket labeled "$facet_total". - type: boolean - RUMGroupByTotalNumber: - description: A number to use as the key value for the total bucket. - format: double - type: number - RUMGroupByTotalString: - description: A string to use as the key value for the total bucket. - type: string - RUMOperationCreateRequest: - description: The request body for creating a RUM operation. + PowerpackGroupWidget: + description: Powerpack group widget definition object. properties: - data: - $ref: "#/components/schemas/RUMOperationCreateRequestData" + definition: + $ref: "#/components/schemas/PowerpackGroupWidgetDefinition" + layout: + $ref: "#/components/schemas/PowerpackGroupWidgetLayout" + live_span: + $ref: "#/components/schemas/WidgetLiveSpan" required: - - data + - definition type: object - RUMOperationCreateRequestData: - description: The data object for creating a RUM operation. + PowerpackGroupWidgetDefinition: + description: Powerpack group widget object. properties: - attributes: - $ref: "#/components/schemas/RUMOperationRequestAttributes" + layout_type: + description: Layout type of widgets. + example: ordered + type: string + show_title: + description: Boolean indicating whether powerpack group title should be visible or not. + example: true + type: boolean + title: + description: Name for the group widget. + example: Sample Powerpack + type: string type: - $ref: "#/components/schemas/RUMOperationType" + description: Type of widget, must be group. + example: group + type: string + widgets: + description: Widgets inside the powerpack. + example: [{"definition": {"content": "example", "type": "note"}, "layout": {"height": 5, "width": 10, "x": 0, "y": 0}}] + items: + $ref: "#/components/schemas/PowerpackInnerWidgets" + type: array required: + - widgets + - layout_type - type - - attributes type: object - RUMOperationJourneyCompositeRule: - description: |- - A composite rule combining several predicates. Used as an alternative to `nodes` on a journey - step when several conditions must be matched together, in any order or in a specific order. + PowerpackGroupWidgetLayout: + description: Powerpack group widget layout. properties: - composite_rule_id: - description: The unique identifier of the composite rule. Generated by the server if omitted. - readOnly: true - type: string - config_version: - description: A hash of the composite rule's configuration, computed by the server. - readOnly: true - type: string - kind: - $ref: "#/components/schemas/RUMOperationJourneyCompositeRuleKind" - max_window_ms: - description: The maximum time window, in milliseconds, in which all predicates must match. - example: 30000 + height: + description: The height of the widget. Should be a non-negative integer. + example: 0 format: int64 + minimum: 0 + type: integer + width: + description: The width of the widget. Should be a non-negative integer. + example: 0 + format: int64 + minimum: 0 + type: integer + x: + description: The position of the widget on the x (horizontal) axis. Should be a non-negative integer. + example: 0 + format: int64 + minimum: 0 + type: integer + y: + description: The position of the widget on the y (vertical) axis. Should be a non-negative integer. + example: 0 + format: int64 + minimum: 0 type: integer - predicates: - description: The list of predicates that must be matched by RUM events. - items: - $ref: "#/components/schemas/RUMOperationJourneyPredicate" - type: array required: - - kind - - predicates + - x + - y + - width + - height type: object - RUMOperationJourneyCompositeRuleKind: - description: |- - The rule used to combine the composite rule's predicates. `all_of` requires every predicate - to match, in any order. `in_order` requires every predicate to match in the given order. - enum: - - all_of - - in_order - example: all_of - type: string - x-enum-varnames: - - ALL_OF - - IN_ORDER - RUMOperationJourneyNode: - description: A single node within a RUM operation journey step, matching RUM events with a query. + PowerpackInnerWidgetLayout: + description: Powerpack inner widget layout. properties: - id: - description: The unique identifier of the node. Generated by the server if omitted. - readOnly: true - type: string - query: - description: The RUM search query used to match events for this node. - example: "@type:action @action.type:click" - type: string + height: + description: The height of the widget. Should be a non-negative integer. + example: 0 + format: int64 + minimum: 0 + type: integer + width: + description: The width of the widget. Should be a non-negative integer. + example: 0 + format: int64 + minimum: 0 + type: integer + x: + description: The position of the widget on the x (horizontal) axis. Should be a non-negative integer. + example: 0 + format: int64 + minimum: 0 + type: integer + y: + description: The position of the widget on the y (vertical) axis. Should be a non-negative integer. + example: 0 + format: int64 + minimum: 0 + type: integer required: - - query + - x + - y + - width + - height type: object - RUMOperationJourneyPredicate: - description: A single predicate within a composite rule, matching RUM events with a query. + PowerpackInnerWidgets: + description: Powerpack group widget definition of individual widgets. properties: - query: - description: The RUM search query used to match events for this predicate. - example: "@type:action @action.type:click" - type: string + definition: + additionalProperties: {} + description: Information about widget. + example: {"definition": {"content": "example", "type": "note"}} + type: object + layout: + $ref: "#/components/schemas/PowerpackInnerWidgetLayout" required: - - query + - definition type: object - RUMOperationJourneyRum: - description: The definition of a RUM operation's journey, used to detect it from RUM events. + PowerpackRelationships: + description: Powerpack relationship object. properties: - rum_steps: - description: The ordered list of steps composing the RUM journey. - items: - $ref: "#/components/schemas/RUMOperationJourneyStep" - type: array - required: - - rum_steps + author: + $ref: "#/components/schemas/RelationshipToUser" type: object - RUMOperationJourneyStep: - description: |- - A single step of a RUM operation's journey. Matches RUM events either through a list of `nodes` - or through a `composite` rule; the two are mutually exclusive. + PowerpackResponse: + description: Response object which includes a single powerpack configuration. properties: - composite: - $ref: "#/components/schemas/RUMOperationJourneyCompositeRule" - nodes: - description: The list of nodes that can match this step. Mutually exclusive with `composite`. + data: + $ref: "#/components/schemas/PowerpackData" + included: + description: Array of objects related to the users. items: - $ref: "#/components/schemas/RUMOperationJourneyNode" + $ref: "#/components/schemas/User" type: array - type: - $ref: "#/components/schemas/RUMOperationJourneyStepType" - required: - - type + readOnly: true type: object - RUMOperationJourneyStepType: - description: The type of a step within a RUM operation's journey. - enum: - - start - - update - - stop - - error - - abandoned - example: start - type: string - x-enum-varnames: - - START - - UPDATE - - STOP - - ERROR - - ABANDONED - RUMOperationRequestAttributes: - description: Attributes for creating or updating a RUM operation. + PowerpackResponseLinks: + description: Links attributes. properties: - application_id: - description: The RUM application ID the operation belongs to. - example: "abc12345-1234-5678-abcd-ef1234567890" - format: uuid + first: + description: Link to last page. type: string - category: - description: The category of the RUM operation. + last: + description: Link to first page. + example: "https://app.datadoghq.com/api/v2/powerpacks?page[offset]=0&page[limit]=25" nullable: true type: string - description: - description: A description of the RUM operation. + next: + description: Link for the next set of results. + example: "https://app.datadoghq.com/api/v2/powerpacks?page[offset]=25&page[limit]=25" + type: string + prev: + description: Link for the previous set of results. nullable: true type: string - display_name: - description: A human-readable display name for the RUM operation. - example: Checkout completed + self: + description: Link to current page. + example: "https://app.datadoghq.com/api/v2/powerpacks" type: string - feature_ids: - description: The list of journey IDs associated with the RUM operation. + type: object + PowerpackTemplateVariable: + description: Powerpack template variables. + properties: + available_values: + description: The list of values that the template variable drop-down is limited to. + example: ["my-host", "host1", "host2"] items: + description: Template variable value. type: string + nullable: true type: array - journey_rum: - $ref: "#/components/schemas/RUMOperationJourneyRum" - name: - description: The unique name of the RUM operation. Must not contain spaces. - example: checkout_completed - type: string - tags: - description: A list of tags associated with the RUM operation. - example: - - "team:checkout" + defaults: + description: One or many template variable default values within the saved view, which are unioned together using `OR` if more than one is specified. items: + description: One or many default values of the template variable. + minLength: 1 type: string type: array + name: + description: The name of the variable. + example: datacenter + type: string + prefix: + description: The tag prefix associated with the variable. Only tags with this prefix appear in the variable drop-down. + example: host + nullable: true + type: string required: - name - - tags - - journey_rum type: object - RUMOperationResponse: - description: The response for a single RUM operation. + PowerpacksResponseMeta: + description: Powerpack response metadata. properties: - data: - $ref: "#/components/schemas/RUMOperationResponseData" - required: - - data + pagination: + $ref: "#/components/schemas/PowerpacksResponseMetaPagination" type: object - RUMOperationResponseAttributes: - description: Attributes of a RUM operation response. + PowerpacksResponseMetaPagination: + description: Powerpack response pagination metadata. properties: - application_id: - description: The RUM application ID the operation belongs to. - format: uuid - nullable: true - type: string - category: - description: The category of the RUM operation. - nullable: true - type: string - created_at: - description: The timestamp when the RUM operation was created. - format: date-time - readOnly: true - type: string - created_by: - $ref: "#/components/schemas/RUMOperationUser" - description: - description: A description of the RUM operation. - nullable: true - type: string - display_name: - description: A human-readable display name for the RUM operation. - example: Checkout completed - type: string - feature_ids: - description: The list of journey IDs associated with the RUM operation. - items: - type: string - type: array - journey_rum: - $ref: "#/components/schemas/RUMOperationJourneyRum" - name: - description: The unique name of the RUM operation. Must not contain spaces. - example: checkout_completed - type: string - org_id: - description: The ID of the organization the RUM operation belongs to. + first_offset: + description: The first offset. format: int64 - readOnly: true type: integer - tags: - description: A list of tags associated with the RUM operation. - example: - - "team:checkout" - items: - type: string - type: array - updated_at: - description: The timestamp when the RUM operation was last updated. - format: date-time + last_offset: + description: The last offset. + format: int64 nullable: true - readOnly: true + type: integer + limit: + description: Pagination limit. + format: int64 + type: integer + next_offset: + description: The next offset. + format: int64 + type: integer + offset: + description: The offset. + format: int64 + type: integer + prev_offset: + description: The previous offset. + format: int64 + type: integer + total: + description: Total results. + format: int64 + type: integer + type: + description: Offset type. type: string - updated_by: - $ref: "#/components/schemas/RUMOperationUser" - required: - - name - - tags - - journey_rum type: object - RUMOperationResponseData: - description: The data object in a RUM operation response. + PreviewEntityResponseData: + description: Entity data returned in a preview response, including attributes, relationships, and type. properties: attributes: - $ref: "#/components/schemas/RUMOperationResponseAttributes" + $ref: "#/components/schemas/EntityResponseDataAttributes" id: - description: The unique identifier of the RUM operation. - example: "abc12345-1234-5678-abcd-ef1234567890" - readOnly: true + description: Entity unique identifier. type: string + relationships: + $ref: "#/components/schemas/EntityResponseDataRelationships" type: - $ref: "#/components/schemas/RUMOperationType" + $ref: "#/components/schemas/EntityResponseDataType" required: - - id - type - - attributes type: object - RUMOperationStrongLinkCreateRequest: - description: The request body for creating a RUM operation link. + PrintReportRequest: + description: Request body for initiating a print-only report. properties: data: - $ref: "#/components/schemas/RUMOperationStrongLinkCreateRequestData" + $ref: "#/components/schemas/PrintReportRequestData" required: - data type: object - RUMOperationStrongLinkCreateRequestAttributes: - description: Attributes for creating a RUM operation link. + PrintReportRequestAttributes: + description: |- + The configuration for a print-only report. Specify exactly one of `timeframe` (for a + relative time window) or both `from_ts` and `to_ts` (for an absolute time range). properties: - application_id: - description: The RUM application ID used when creating a stub operation from `operation_name`. - format: uuid - type: string - description: - description: A description of the link. - nullable: true - type: string - feature_id: - description: The unique identifier of the journey to link. - example: "journey-123" - type: string - operation_id: - description: |- - The unique identifier of the RUM operation to link. Either `operation_id` or - `operation_name` is required. - example: "abc12345-1234-5678-abcd-ef1234567890" - type: string - operation_name: + from_ts: description: |- - The name of the RUM operation to link. Either `operation_id` or `operation_name` is - required. If no operation with this name exists, a stub operation is created. + The start of an absolute time range, as a Unix timestamp in milliseconds. + Required when `timeframe` is omitted. + example: 1780318800000 + format: int64 + type: integer + resource_id: + description: The identifier of the dashboard or integration dashboard to render. + example: "abc-def-ghi" type: string - status: - $ref: "#/components/schemas/RUMOperationStrongLinkStatus" - tags: - description: A list of tags associated with the link. + resource_type: + $ref: "#/components/schemas/ReportScheduleResourceType" + template_variables: + description: The dashboard template variables applied when rendering the report. items: - type: string + $ref: "#/components/schemas/ReportScheduleTemplateVariable" type: array + timeframe: + description: |- + A relative time window (for example `1w` or `calendar_month`). Mutually + exclusive with `from_ts` and `to_ts`. + example: "1w" + type: string + timezone: + description: The IANA time zone identifier used to evaluate the time window. + example: "America/New_York" + type: string + to_ts: + description: |- + The end of an absolute time range, as a Unix timestamp in milliseconds. + Required when `timeframe` is omitted. + example: 1780923600000 + format: int64 + type: integer required: - - feature_id + - resource_id + - resource_type + - timezone + - template_variables type: object - RUMOperationStrongLinkCreateRequestData: - description: The data object for creating a RUM operation link. + PrintReportRequestData: + description: The JSON:API data object for a print report request. properties: attributes: - $ref: "#/components/schemas/RUMOperationStrongLinkCreateRequestAttributes" + $ref: "#/components/schemas/PrintReportRequestAttributes" type: - $ref: "#/components/schemas/RUMOperationStrongLinkType" + $ref: "#/components/schemas/PrintReportType" required: - type - attributes type: object - RUMOperationStrongLinkResponse: - description: The response for a single RUM operation link. + PrintReportResponse: + description: Response containing the initiated print-only report. properties: data: - $ref: "#/components/schemas/RUMOperationStrongLinkResponseData" + $ref: "#/components/schemas/PrintReportResponseData" required: - data type: object - RUMOperationStrongLinkResponseAttributes: - description: Attributes of a RUM operation link response. + PrintReportResponseAttributes: + description: The configuration and download URL for the initiated print-only report. properties: - created_at: - description: The timestamp when the link was created. - format: date-time - readOnly: true - type: string - description: - description: A description of the link. - nullable: true - type: string - feature_id: - description: The unique identifier of the linked journey. - example: "journey-123" - readOnly: true + download_url: + description: The URL from which the rendered PDF report can be downloaded. + example: "https://app.datadoghq.com/..." type: string - operation_id: - description: The unique identifier of the linked RUM operation. - example: "abc12345-1234-5678-abcd-ef1234567890" - readOnly: true + from_ts: + description: The start of the rendered time range, as a Unix timestamp in milliseconds. + example: 1780318800000 + format: int64 + type: integer + resource_id: + description: The identifier of the dashboard or integration dashboard. + example: "abc-def-ghi" type: string - status: - $ref: "#/components/schemas/RUMOperationStrongLinkStatus" - tags: - description: A list of tags associated with the link. + resource_type: + $ref: "#/components/schemas/ReportScheduleResourceType" + template_variables: + description: The dashboard template variables applied when rendering the report. items: - type: string + $ref: "#/components/schemas/ReportScheduleTemplateVariable" type: array - updated_at: - description: The timestamp when the link was last updated. - format: date-time - nullable: true - readOnly: true + timeframe: + description: The relative time window used, if one was specified in the request. + example: "1w" + type: string + timezone: + description: The IANA time zone identifier used when rendering the report. + example: "America/New_York" type: string + to_ts: + description: The end of the rendered time range, as a Unix timestamp in milliseconds. + example: 1780923600000 + format: int64 + type: integer required: - - operation_id - - feature_id - - status + - resource_id + - resource_type + - timezone + - template_variables + - from_ts + - to_ts + - download_url type: object - RUMOperationStrongLinkResponseData: - description: The data object in a RUM operation link response. + PrintReportResponseData: + description: The JSON:API data object for a print-only report. properties: attributes: - $ref: "#/components/schemas/RUMOperationStrongLinkResponseAttributes" + $ref: "#/components/schemas/PrintReportResponseAttributes" id: - description: The unique identifier of the link, formatted as `:`. - example: "abc12345-1234-5678-abcd-ef1234567890:journey-123" - readOnly: true + description: The unique identifier of the report. + example: "11111111-2222-3333-4444-555555555555" + format: uuid type: string type: - $ref: "#/components/schemas/RUMOperationStrongLinkType" + $ref: "#/components/schemas/PrintReportType" required: - id - type - attributes type: object - RUMOperationStrongLinkStatus: - description: The status of a RUM operation link. + PrintReportType: + description: JSON:API resource type for a print-only report. enum: - - DRAFT - - CONFIRMED - - REJECTED - example: CONFIRMED + - report + example: report type: string x-enum-varnames: - - DRAFT - - CONFIRMED - - REJECTED - RUMOperationStrongLinkType: - description: The JSON:API type for RUM operation link resources. + - REPORT + ProcessDataSource: + default: process + description: A data source for process-level infrastructure metrics. enum: - - strong_links - example: strong_links + - process + example: process type: string x-enum-varnames: - - STRONG_LINKS - RUMOperationStrongLinkUpdateRequest: - description: The request body for updating a RUM operation link. + - PROCESS + ProcessScalarQuery: + description: A query for host-level process metrics such as CPU and memory usage. properties: - data: - $ref: "#/components/schemas/RUMOperationStrongLinkUpdateRequestData" + aggregator: + $ref: "#/components/schemas/MetricsAggregator" + cross_org_uuids: + $ref: "#/components/schemas/CrossOrgUuids" + data_source: + $ref: "#/components/schemas/ProcessDataSource" + is_normalized_cpu: + description: Whether CPU metrics should be normalized by core count. + type: boolean + limit: + description: Maximum number of results to return. + format: int64 + type: integer + metric: + description: The process metric to query. + example: process.stat.cpu.total_pct + type: string + name: + description: The variable name for use in formulas. + example: query1 + type: string + sort: + $ref: "#/components/schemas/QuerySortOrder" + tag_filters: + description: Tag filters to narrow down processes. + items: + description: A tag filter value. + example: "env:prod" + type: string + type: array + text_filter: + description: A full-text search filter to match process names or commands. + type: string required: - - data + - data_source + - name + - metric type: object - RUMOperationStrongLinkUpdateRequestAttributes: - description: Attributes for updating a RUM operation link. + ProcessSummariesMeta: + description: Response metadata object. properties: - status: - $ref: "#/components/schemas/RUMOperationStrongLinkUpdateStatus" - required: - - status + page: + $ref: "#/components/schemas/ProcessSummariesMetaPage" type: object - RUMOperationStrongLinkUpdateRequestData: - description: The data object for updating a RUM operation link. + ProcessSummariesMetaPage: + description: Paging attributes. + properties: + after: + description: |- + The cursor used to get the next results, if any. To make the next request, use the same + parameters with the addition of the `page[cursor]`. + example: 911abf1204838d9cdfcb9a96d0b6a1bd03e1b514074f1ce1737c4cbd + type: string + size: + description: Number of results returned. + format: int32 + maximum: 10000 + minimum: 0 + type: integer + type: object + ProcessSummariesResponse: + description: List of process summaries. + properties: + data: + description: Array of process summary objects. + items: + $ref: "#/components/schemas/ProcessSummary" + type: array + meta: + $ref: "#/components/schemas/ProcessSummariesMeta" + type: object + ProcessSummary: + description: Process summary object. properties: attributes: - $ref: "#/components/schemas/RUMOperationStrongLinkUpdateRequestAttributes" + $ref: "#/components/schemas/ProcessSummaryAttributes" + id: + description: Process ID. + type: string type: - $ref: "#/components/schemas/RUMOperationStrongLinkType" - required: - - type - - attributes + $ref: "#/components/schemas/ProcessSummaryType" type: object - RUMOperationStrongLinkUpdateStatus: - description: The status of a RUM operation link. Can only be set to `CONFIRMED` or `REJECTED`. + ProcessSummaryAttributes: + description: Attributes for a process summary. + properties: + cmdline: + description: Process command line. + type: string + host: + description: Host running the process. + type: string + pid: + description: Process ID. + format: int64 + type: integer + ppid: + description: Parent process ID. + format: int64 + type: integer + start: + description: Time the process was started. + type: string + tags: + description: List of tags associated with the process. + items: + description: A tag associated with the process. + type: string + type: array + timestamp: + description: Time the process was seen. + type: string + user: + description: Process owner. + type: string + type: object + ProcessSummaryType: + default: process + description: Type of process summary. enum: - - CONFIRMED - - REJECTED - example: CONFIRMED + - process + example: process type: string x-enum-varnames: - - CONFIRMED - - REJECTED - RUMOperationStrongLinksListResponse: - description: The response for a list of RUM operation links. + - PROCESS + ProcessTimeseriesQuery: + description: A query for host-level process metrics such as CPU and memory usage. properties: - data: + cross_org_uuids: + $ref: "#/components/schemas/CrossOrgUuids" + data_source: + $ref: "#/components/schemas/ProcessDataSource" + is_normalized_cpu: + description: Whether CPU metrics should be normalized by core count. + type: boolean + limit: + description: Maximum number of results to return. + format: int64 + type: integer + metric: + description: The process metric to query. + example: process.stat.cpu.total_pct + type: string + name: + description: The variable name for use in formulas. + example: query1 + type: string + sort: + $ref: "#/components/schemas/QuerySortOrder" + tag_filters: + description: Tag filters to narrow down processes. items: - $ref: "#/components/schemas/RUMOperationStrongLinkResponseData" + description: A tag filter value. + example: "env:prod" + type: string type: array - meta: - $ref: "#/components/schemas/RUMOperationStrongLinksListResponseMeta" + text_filter: + description: A full-text search filter to match process names or commands. + type: string required: - - data + - data_source + - name + - metric type: object - RUMOperationStrongLinksListResponseMeta: - description: Metadata for a list of RUM operation links. + ProductAnalyticsAnalyticsListQuery: + description: |- + The analytics list query definition. It selects the events to return with `query`, then + chooses the columns on each event row, the sort applied to those rows, and a row limit. + Unlike the scalar and timeseries queries, a list query returns raw event rows rather than + aggregates, so it takes no compute or group-by rule. properties: + audience_filters: + $ref: "#/components/schemas/ProductAnalyticsAudienceFilters" + columns: + description: Attribute columns to include in each event row. + items: + description: The name of an attribute to return as a column. + type: string + type: array limit: - description: The pagination limit. + description: Maximum number of event rows to return. + example: 100 format: int64 + maximum: 1000 + minimum: 1 type: integer - offset: - description: The current offset. + query: + $ref: "#/components/schemas/ProductAnalyticsBaseQuery" + sort: + $ref: "#/components/schemas/ProductAnalyticsAnalyticsListSort" + required: + - query + type: object + ProductAnalyticsAnalyticsListRecord: + additionalProperties: + description: The value of one column of the event row. + description: A single event row, keyed by column name. + type: object + ProductAnalyticsAnalyticsListRequest: + description: Request for listing the individual event records matching an analytics query. + example: + data: + attributes: + from: 1771232048460 + query: + columns: + - "@view.name" + limit: 100 + query: + data_source: product_analytics + search: + query: "@type:view" + to: 1771836848262 + type: formula_analytics_extended_list_request + properties: + data: + $ref: "#/components/schemas/ProductAnalyticsAnalyticsListRequestData" + required: + - data + type: object + ProductAnalyticsAnalyticsListRequestAttributes: + description: Attributes for an analytics list request. + properties: + from: + description: Start time in epoch milliseconds. Must be less than `to`. + example: 1771232048460 format: int64 type: integer - total: - description: The total number of links matching the request. + query: + $ref: "#/components/schemas/ProductAnalyticsAnalyticsListQuery" + to: + description: End time in epoch milliseconds. + example: 1771836848262 format: int64 type: integer + required: + - from + - to + - query type: object - RUMOperationType: - description: The JSON:API type for RUM operation resources. + ProductAnalyticsAnalyticsListRequestData: + description: Data object for an analytics list request. + properties: + attributes: + $ref: "#/components/schemas/ProductAnalyticsAnalyticsListRequestAttributes" + type: + $ref: "#/components/schemas/ProductAnalyticsAnalyticsListRequestType" + required: + - type + - attributes + type: object + ProductAnalyticsAnalyticsListRequestType: + description: The resource type for analytics list requests. enum: - - operations - example: operations + - formula_analytics_extended_list_request + example: formula_analytics_extended_list_request type: string x-enum-varnames: - - OPERATIONS - RUMOperationUpdateRequest: - description: The request body for updating a RUM operation. + - FORMULA_ANALYTICS_EXTENDED_LIST_REQUEST + ProductAnalyticsAnalyticsListResponse: + description: Response for an analytics list query, containing individual event records. properties: data: - $ref: "#/components/schemas/RUMOperationUpdateRequestData" + $ref: "#/components/schemas/ProductAnalyticsAnalyticsListResponseData" + meta: + $ref: "#/components/schemas/ProductAnalyticsResponseMeta" required: - data type: object - RUMOperationUpdateRequestData: - description: The data object for updating a RUM operation. + ProductAnalyticsAnalyticsListResponseAttributes: + description: Attributes of an analytics list response, containing the matching event rows. + properties: + records: + description: The event rows, each holding the values of the requested columns. + items: + $ref: "#/components/schemas/ProductAnalyticsAnalyticsListRecord" + type: array + total_count: + description: Total number of records matching the query, before the row limit is applied. + format: int64 + type: integer + type: object + ProductAnalyticsAnalyticsListResponseData: + description: Data object for an analytics list response. properties: attributes: - $ref: "#/components/schemas/RUMOperationRequestAttributes" + $ref: "#/components/schemas/ProductAnalyticsAnalyticsListResponseAttributes" id: - description: The unique identifier of the RUM operation. Must match the ID in the URL path. - example: "abc12345-1234-5678-abcd-ef1234567890" + description: Unique identifier for this response data object. + example: 00000000-0000-0000-0000-000000000000 type: string type: - $ref: "#/components/schemas/RUMOperationType" + $ref: "#/components/schemas/ProductAnalyticsAnalyticsListResponseType" required: - id - type - attributes type: object - RUMOperationUser: - description: A Datadog user referenced by a RUM operation. + ProductAnalyticsAnalyticsListResponseType: + description: The resource type identifier for an analytics list response. + enum: + - list_response + example: list_response + type: string + x-enum-varnames: + - LIST_RESPONSE + ProductAnalyticsAnalyticsListSort: + description: The sort applied to the returned event rows. properties: - email: - description: The email of the user. - readOnly: true - type: string - handle: - description: The handle of the user. - readOnly: true - type: string - name: - description: The name of the user. - readOnly: true - type: string - uuid: - description: The UUID of the user. - readOnly: true + facet: + description: Name of the facet to sort the rows by. type: string + order: + $ref: "#/components/schemas/ProductAnalyticsAnalyticsListSortOrder" type: object - RUMOperationsListResponse: - description: The response for a list of RUM operations. + ProductAnalyticsAnalyticsListSortOrder: + description: The direction rows are sorted in. + enum: + - asc + - desc + type: string + x-enum-varnames: + - ASC + - DESC + ProductAnalyticsAnalyticsQuery: + description: The analytics query definition containing a base query, compute rule, and optional grouping. properties: - data: + audience_filters: + $ref: "#/components/schemas/ProductAnalyticsAudienceFilters" + compute: + $ref: "#/components/schemas/ProductAnalyticsCompute" + group_by: + description: Group-by rules for segmenting results. items: - $ref: "#/components/schemas/RUMOperationResponseData" + $ref: "#/components/schemas/ProductAnalyticsGroupBy" type: array - meta: - $ref: "#/components/schemas/RUMOperationsListResponseMeta" + indexes: + deprecated: true + description: |- + Deprecated. Index selection is a rollout detail and will be removed. + Do not set this field. + items: + description: Index name to restrict the query to. + type: string + maxItems: 1 + type: array + query: + $ref: "#/components/schemas/ProductAnalyticsBaseQuery" required: - - data + - query + - compute type: object - RUMOperationsListResponseMeta: - description: Metadata for a list of RUM operations. + ProductAnalyticsAnalyticsRequest: + description: Request for computing analytics results (scalar or timeseries). + example: + data: + attributes: + from: 1771232048460 + query: + compute: + aggregation: count + query: + data_source: product_analytics + search: + query: "@type:view" + to: 1771836848262 + type: formula_analytics_extended_request properties: - page: - $ref: "#/components/schemas/RUMOperationsListResponseMetaPage" + data: + $ref: "#/components/schemas/ProductAnalyticsAnalyticsRequestData" + required: + - data type: object - RUMOperationsListResponseMetaPage: - description: Pagination metadata for a list of RUM operations. + ProductAnalyticsAnalyticsRequestAttributes: + description: Attributes for an analytics request. properties: - first_offset: - description: The offset of the first page. - format: int64 - type: integer - last_offset: - description: The offset of the last page. - format: int64 - type: integer - limit: - description: The pagination limit. - format: int64 - type: integer - next_offset: - description: The offset of the next page, if any. - format: int64 - nullable: true - type: integer - offset: - description: The current offset. - format: int64 - type: integer - prev_offset: - description: The offset of the previous page, if any. + enforced_execution_type: + $ref: "#/components/schemas/ProductAnalyticsExecutionType" + deprecated: true + description: |- + Deprecated. Selects the internal query execution infrastructure and will be removed. + Do not set this field. + from: + description: Start time in epoch milliseconds. Must be less than `to`. + example: 1771232048460 format: int64 - nullable: true type: integer - total: - description: The total number of RUM operations matching the search. + query: + $ref: "#/components/schemas/ProductAnalyticsAnalyticsQuery" + request_id: + description: Unique identifier of the query. + type: string + to: + description: End time in epoch milliseconds. + example: 1771836848262 format: int64 type: integer - type: - description: The type of pagination used. - example: offset - type: string + required: + - from + - to + - query type: object - RUMProductAnalyticsRetentionScale: - description: Product Analytics retention scale configuration. + ProductAnalyticsAnalyticsRequestData: + description: Data object for an analytics request. properties: - last_modified_at: - description: Timestamp in milliseconds when this scale was last modified. - example: 1747922145974 - format: int64 - type: integer - state: - $ref: "#/components/schemas/RUMProductAnalyticsRetentionState" + attributes: + $ref: "#/components/schemas/ProductAnalyticsAnalyticsRequestAttributes" + type: + $ref: "#/components/schemas/ProductAnalyticsAnalyticsRequestType" + required: + - type + - attributes type: object - RUMProductAnalyticsRetentionState: - description: Controls the retention policy for Product Analytics data derived from RUM events. + ProductAnalyticsAnalyticsRequestType: + description: The resource type for analytics requests. enum: - - MAX - - NONE - example: MAX + - formula_analytics_extended_request + example: formula_analytics_extended_request type: string - x-enum-descriptions: - - Store Product Analytics data for the maximum available retention period - - Do not store Product Analytics data x-enum-varnames: - - MAX - - NONE - RUMProductScales: - description: Product Scales configuration for the RUM application. - properties: - product_analytics_retention_scale: - $ref: "#/components/schemas/RUMProductAnalyticsRetentionScale" - rum_event_processing_scale: - $ref: "#/components/schemas/RUMEventProcessingScale" - type: object - RUMQueryFilter: - description: The search and filter query settings. + - FORMULA_ANALYTICS_EXTENDED_REQUEST + ProductAnalyticsAudienceAccountSubquery: + description: An account-based audience query. properties: - from: - default: "now-15m" - description: The minimum time for the requested events; supports date (in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format with full date, hours, minutes, and the `Z` UTC indicator - seconds and fractional seconds are optional), math, and regular timestamps (in milliseconds). - example: "now-15m" + name: + description: Name of this query, referenced in the formula. + example: "" type: string query: - default: "*" - description: The search query following the RUM search syntax. - example: "@type:session AND @session.type:user" - type: string - to: - default: "now" - description: The maximum time for the requested events; supports date (in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format with full date, hours, minutes, and the `Z` UTC indicator - seconds and fractional seconds are optional), math, and regular timestamps (in milliseconds). - example: "now" + description: Search query for filtering accounts. type: string + required: + - name type: object - RUMQueryOptions: - description: |- - Global query options that are used during the query. - Note: Only supply timezone or time offset, not both. Otherwise, the query fails. + ProductAnalyticsAudienceFilters: + description: Audience filter definitions for targeting specific user segments. properties: - time_offset: - description: The time offset (in seconds) to apply to the query. - format: int64 - type: integer - timezone: - default: "UTC" - description: |- - The timezone can be specified as GMT, UTC, an offset from UTC (like UTC+1), or as a Timezone Database identifier (like America/New_York). - example: "GMT" + accounts: + description: Account audience queries. + items: + $ref: "#/components/schemas/ProductAnalyticsAudienceAccountSubquery" + type: array + formula: + description: Boolean formula combining audience queries by name. + example: "u" type: string + segments: + description: Segment audience queries. + items: + $ref: "#/components/schemas/ProductAnalyticsAudienceSegmentSubquery" + type: array + users: + description: User audience queries. + items: + $ref: "#/components/schemas/ProductAnalyticsAudienceUserSubquery" + type: array type: object - RUMQueryPageOptions: - description: Paging attributes for listing events. + ProductAnalyticsAudienceSegmentSubquery: + description: A segment-based audience query. properties: - cursor: - description: |- - List following results with a cursor provided in the previous query. - example: "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" + name: + description: Name of this query, referenced in the formula. + example: "" type: string - limit: - default: 10 - description: Maximum number of events in the response. - example: 25 - format: int32 - maximum: 1000 - type: integer + segment_id: + description: UUID of the segment to filter by. + example: 00000000-0000-0000-0000-000000000000 + format: uuid + type: string + required: + - name + - segment_id type: object - RUMResponseLinks: - description: Links attributes. + ProductAnalyticsAudienceUserSubquery: + description: A user-based audience query. properties: - next: - description: |- - Link for the next set of results. Note that the request can also be made using the - POST endpoint. - example: "https://app.datadoghq.com/api/v2/rum/event?filter[query]=foo&page[cursor]=eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" + name: + description: Name of this query, referenced in the formula. + example: u + type: string + query: + description: Search query for filtering users. + example: "*" type: string + required: + - name type: object - RUMResponseMetadata: - description: The metadata associated with a request. + ProductAnalyticsBaseQuery: + description: |- + A query definition discriminated by the `data_source` field. + Use `product_analytics` for standard event queries, or + `product_analytics_occurrence` for occurrence-filtered queries. + oneOf: + - $ref: "#/components/schemas/ProductAnalyticsEventQuery" + - $ref: "#/components/schemas/ProductAnalyticsOccurrenceQuery" + ProductAnalyticsCalendarInterval: + description: A calendar-aligned bucket definition, such as "every 1 week starting on Monday". properties: - elapsed: - description: The time elapsed in milliseconds. - example: 132 + alignment: + description: |- + Where each bucket starts within the calendar unit. Use an hour for `day` (for example `1am` or `14`), + a day name for `week` (for example `monday`), or an ordinal for `month` (for example `1st`). + example: monday + type: string + quantity: + description: Number of calendar units per bucket. + example: 1 format: int64 + minimum: 1 type: integer - page: - $ref: "#/components/schemas/RUMResponsePage" - request_id: - description: The identifier of the request. - example: "MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR" + timezone: + description: Timezone used to align the buckets. + example: UTC type: string - status: - $ref: "#/components/schemas/RUMResponseStatus" - warnings: - description: |- - A list of warnings (non-fatal errors) encountered. Partial results may return if - warnings are present in the response. - items: - $ref: "#/components/schemas/RUMWarning" - type: array + type: + $ref: "#/components/schemas/ProductAnalyticsCalendarIntervalType" + required: + - type type: object - RUMResponsePage: - description: Paging attributes. + ProductAnalyticsCalendarIntervalType: + description: Calendar unit used to bucket cohorts. + enum: + - minute + - hour + - day + - week + - month + - quarter + - year + example: week + type: string + x-enum-varnames: + - MINUTE + - HOUR + - DAY + - WEEK + - MONTH + - QUARTER + - YEAR + ProductAnalyticsCompute: + description: A compute rule for aggregating data. properties: - after: + aggregation: + description: The aggregation function (count, cardinality, avg, sum, min, max, etc.). + example: count + type: string + interval: description: |- - The cursor to use to get the next results, if any. To make the next request, use the same parameters with the addition of `page[cursor]`. - example: "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" + Time bucket size in milliseconds. Required for timeseries queries; ignored by the + scalar endpoint, which returns a single value. + example: 3600000 + format: int64 + type: integer + metric: + description: The metric to aggregate on. Required for non-count aggregations. + example: "@session.time_spent" type: string + required: + - aggregation type: object - RUMResponseStatus: - description: The status of the response. - enum: ["done", "timeout"] - example: "done" - type: string - x-enum-varnames: ["DONE", "TIMEOUT"] - RUMSearchEventsRequest: - description: The request for a RUM events list. + ProductAnalyticsElapsedTime: + description: Elapsed time statistics (min/max/avg in milliseconds). properties: - filter: - $ref: "#/components/schemas/RUMQueryFilter" - options: - $ref: "#/components/schemas/RUMQueryOptions" - page: - $ref: "#/components/schemas/RUMQueryPageOptions" - sort: - $ref: "#/components/schemas/RUMSort" + avg: + description: Average elapsed time to reach the next step, in milliseconds. + example: 5100 + format: int64 + type: integer + max: + description: Maximum elapsed time to reach the next step, in milliseconds. + example: 42000 + format: int64 + type: integer + min: + description: Minimum elapsed time to reach the next step, in milliseconds. + example: 900 + format: int64 + type: integer + required: + - min + - max + - avg type: object - RUMSort: - description: Sort parameters when querying events. + ProductAnalyticsEventQuery: + description: A standard Product Analytics event query. + properties: + data_source: + $ref: "#/components/schemas/ProductAnalyticsEventQueryDataSource" + search: + $ref: "#/components/schemas/ProductAnalyticsEventSearch" + required: + - data_source + - search + type: object + ProductAnalyticsEventQueryDataSource: + description: The data source identifier. enum: - - timestamp - - -timestamp + - product_analytics + example: product_analytics type: string x-enum-varnames: - - TIMESTAMP_ASCENDING - - TIMESTAMP_DESCENDING - RUMSortOrder: - description: The order to use, ascending or descending. + - PRODUCT_ANALYTICS + ProductAnalyticsEventSearch: + description: Search parameters for an event query. + properties: + query: + description: The search query using Datadog search syntax. + example: "@type:view" + type: string + type: object + ProductAnalyticsExecutionType: + description: Override the query execution strategy. enum: - - "asc" - - "desc" - example: "asc" + - simple + - background + - trino-multistep + - materialized-view type: string x-enum-varnames: - - "ASCENDING" - - "DESCENDING" - RUMWarning: - description: A warning message indicating something that went wrong with the query. + - SIMPLE + - BACKGROUND + - TRINO_MULTISTEP + - MATERIALIZED_VIEW + ProductAnalyticsFormulaJourneyQuery: + description: Query definition for a journey timeseries request. properties: - code: - description: A unique code for this type of warning. - example: "unknown_index" - type: string - detail: - description: A detailed explanation of this specific warning. - example: "indexes: foo, bar" - type: string - title: - description: A short human-readable summary of the warning. - example: "One or several indexes are missing or invalid, results hold data from the other indexes" + compute: + $ref: "#/components/schemas/ProductAnalyticsGraphQueryCompute" + group_by: + description: Segments the results by the values of one or more facets. + items: + $ref: "#/components/schemas/ProductAnalyticsGraphQueryGroupBy" + type: array + query_id: + description: Caller-defined identifier echoed back in the results. type: string + search: + $ref: "#/components/schemas/ProductAnalyticsJourneySearch" + required: + - search + - compute type: object - RawErrorBudgetRemaining: - description: The raw error budget remaining for the SLO. + ProductAnalyticsFormulaJourneyRequest: + description: Request body for a journey timeseries query. properties: - unit: - description: The unit of the error budget (for example, `seconds`, `requests`). - example: seconds - type: string - value: - description: The numeric value of the remaining error budget. - example: 86400.5 - format: double - type: number + data: + $ref: "#/components/schemas/ProductAnalyticsFormulaJourneyRequestData" required: - - value - - unit + - data type: object - ReactNativeSourcemapAttributes: - description: Attributes of a React Native source map. + ProductAnalyticsFormulaJourneyRequestAttributes: + description: Attributes of a journey timeseries request. properties: - build_number: - description: The build number. - example: "100" - type: string - bundle_name: - description: The bundle name. - example: com.example.app - type: string - bundle_version: - description: The bundle version. - example: "1.0" - type: string - created_at: - description: The timestamp when the source map was created. - example: "2024-01-01T00:00:00Z" - format: date-time - type: string - debug_id: - description: The debug identifier (UUID format). - example: 550e8400-e29b-41d4-a716-446655440000 - type: string - mapkind: - description: The type of source map. - example: react - type: string - platform: - description: The platform the source map was built for (e.g., `ios`, `android`). - example: ios - type: string - service: - description: The service name associated with the source map. - example: my-react-native-app - type: string - size: - description: The size of the source map file in bytes. - example: 2048 + from: + description: Start of the query window, in epoch milliseconds. + example: 1756425600000 + format: int64 + type: integer + interval: + description: Time bucket interval in milliseconds. + format: int64 + type: integer + query: + $ref: "#/components/schemas/ProductAnalyticsFormulaJourneyQuery" + to: + description: End of the query window, in epoch milliseconds. + example: 1756857600000 format: int64 type: integer - version: - description: The version of the service associated with the source map. - example: 1.0.0 - type: string required: - - mapkind - - size - - created_at + - from + - to + - query type: object - ReactNativeSourcemapData: - description: React Native source map data object. + ProductAnalyticsFormulaJourneyRequestData: + description: |- + The single JSON:API resource carrying a journey timeseries query. Its attributes hold the time + window, the bucket interval that splits it, and the journey metric to compute per bucket. properties: attributes: - $ref: "#/components/schemas/ReactNativeSourcemapAttributes" - id: - description: The unique identifier of the source map. - example: "10" - type: string + $ref: "#/components/schemas/ProductAnalyticsFormulaJourneyRequestAttributes" type: - $ref: "#/components/schemas/SourcemapDataType" + $ref: "#/components/schemas/ProductAnalyticsFormulaJourneyRequestType" required: - - id - type - attributes type: object - ReadinessGate: - additionalProperties: false - description: Used to merge multiple branches into a single branch. - properties: - thresholdType: - $ref: "#/components/schemas/ReadinessGateThresholdType" - required: - - thresholdType - type: object - ReadinessGateThresholdType: - description: The definition of `ReadinessGateThresholdType` object. + ProductAnalyticsFormulaJourneyRequestType: + description: The resource type identifier for a journey timeseries or scalar request. enum: - - ANY - - ALL - example: ANY + - formula_journey_request + example: formula_journey_request type: string x-enum-varnames: - - ANY - - ALL - RecentlyUpdatedEntitiesResponse: - description: Response from the recently updated entities endpoint, containing the entities with the most recent updates in the requested time range, ordered from most to least recently updated. + - FORMULA_JOURNEY_REQUEST + ProductAnalyticsFormulaRetentionQuery: + description: Query definition for a retention scalar or retention timeseries request. properties: - data: - description: The list of entities with the most recent updates, ordered from most to least recently updated. + computation_scope: + $ref: "#/components/schemas/ProductAnalyticsRetentionScope" + compute: + $ref: "#/components/schemas/ProductAnalyticsRetentionCompute" + group_by: + description: Splits the results by the values of one or more facets. items: - $ref: "#/components/schemas/EntityContextEntity" + $ref: "#/components/schemas/ProductAnalyticsRetentionGroupBy" type: array + search: + $ref: "#/components/schemas/ProductAnalyticsRetentionSearch" + required: + - search + - compute + type: object + ProductAnalyticsFormulaRetentionRequest: + description: Request body for a retention scalar or retention timeseries query. + properties: + data: + $ref: "#/components/schemas/ProductAnalyticsFormulaRetentionRequestData" required: - data type: object - RecommendationAttributes: - description: Attributes of the SPA Recommendation resource. Contains recommendations for both driver and executor components. + ProductAnalyticsFormulaRetentionRequestAttributes: + description: Attributes of a retention scalar or retention timeseries request. properties: - confidence_level: - description: The confidence level of the recommendation, expressed as a value between 0.0 (low confidence) and 1.0 (high confidence). - format: double - type: number - driver: - $ref: "#/components/schemas/ComponentRecommendation" - executor: - $ref: "#/components/schemas/ComponentRecommendation" - required: [driver, executor] + exclude_anonymous_traffic: + default: false + description: Whether to exclude sessions that are not tied to an identified user. + type: boolean + from: + description: Start of the query window, in epoch milliseconds. + example: 1756425600000 + format: int64 + type: integer + query: + $ref: "#/components/schemas/ProductAnalyticsFormulaRetentionQuery" + to: + description: End of the query window, in epoch milliseconds. + example: 1756857600000 + format: int64 + type: integer + required: + - from + - to + - query type: object - RecommendationData: - description: JSON:API resource object for SPA Recommendation. Includes type, optional ID, and resource attributes with structured recommendations. + ProductAnalyticsFormulaRetentionRequestData: + description: |- + The single JSON:API resource carrying a retention scalar or timeseries query. Its attributes + hold the time window to query and the retention query definition to evaluate. properties: attributes: - $ref: "#/components/schemas/RecommendationAttributes" - id: - description: Resource identifier for the recommendation. Optional in responses. - type: string + $ref: "#/components/schemas/ProductAnalyticsFormulaRetentionRequestAttributes" type: - $ref: "#/components/schemas/RecommendationType" - required: [type, attributes] - type: object - RecommendationDocument: - description: JSON:API document containing a single Recommendation resource. Returned by SPA when the Spark Gateway requests recommendations. - properties: - data: - $ref: "#/components/schemas/RecommendationData" - required: [data] + $ref: "#/components/schemas/ProductAnalyticsFormulaRetentionRequestType" + required: + - type + - attributes type: object - RecommendationType: - default: recommendation - description: JSON:API resource type for Spark Pod Autosizing recommendations. Identifies the Recommendation resource returned by SPA. + ProductAnalyticsFormulaRetentionRequestType: + description: The resource type identifier for a retention scalar or retention timeseries request. enum: - - recommendation - example: recommendation + - formula_retention_request + example: formula_retention_request type: string x-enum-varnames: - - RECOMMENDATION - RecommendationV2RequestAttributes: - description: |- - Attributes for requesting SPA recommendations by forwarding a Spark job's raw arguments - instead of a precomputed shard. + - FORMULA_RETENTION_REQUEST + ProductAnalyticsGraphQueryCompute: + description: Defines the metric computed over the journey. properties: - arguments: + aggregation: description: |- - Raw, unfiltered Spark job arguments as submitted (for example, `--org_id=2`). - SPA determines which arguments are relevant for the given service. - example: - - "" + Aggregation function: `count`, `cardinality`, `avg`, `median`, `min`, `max`, `sum`, + or a percentile of the form `pc` such as `pc95`. Defaults to `cardinality`. + example: count + pattern: "^(count|cardinality|avg|median|min|max|sum|pc[0-9]{1,2})$" + type: string + interval: + description: Time bucket interval in milliseconds, used by timeseries queries. + format: int64 + type: integer + metric: + description: |- + Metric to aggregate on. Use a facet path such as `@view.time_spent`, or one of the + journey metrics `__dd.conversion`, `__dd.conversion_rate`, `__dd.time_to_convert`, + or `__dd.dropoff_rate`. Defaults to `__dd.conversion`. + type: string + target: + $ref: "#/components/schemas/ProductAnalyticsJourneyTarget" + required: + - aggregation + type: object + ProductAnalyticsGraphQueryGroupBy: + description: Segments journey results by the values of a facet. + properties: + facet: + description: Attribute path to group by. + example: "@geo.country" + type: string + limit: + description: Maximum number of groups to return. Omit it to let the service choose. + format: int64 + minimum: 1 + type: integer + should_exclude_missing: + default: false + description: Whether to exclude entities that have no value for this facet. + type: boolean + sort: + $ref: "#/components/schemas/ProductAnalyticsGroupBySort" + source: + $ref: "#/components/schemas/ProductAnalyticsGraphQueryGroupBySource" + target: + $ref: "#/components/schemas/ProductAnalyticsJourneyTarget" + value_filters: + description: Restricts the results to these facet values. items: + description: A facet value to keep. type: string type: array - required: [arguments] + required: + - facet type: object - RecommendationV2RequestBody: - description: |- - Request body for retrieving SPA recommendations by forwarding a Spark job's raw arguments - instead of a precomputed shard. - properties: - data: - $ref: "#/components/schemas/RecommendationV2RequestData" - required: [data] - type: object - RecommendationV2RequestData: - description: JSON:API resource object for the SPA v2 recommendation request. - properties: - attributes: - $ref: "#/components/schemas/RecommendationV2RequestAttributes" - type: - $ref: "#/components/schemas/RecommendationV2RequestType" - required: [type, attributes] - type: object - RecommendationV2RequestType: - default: recommendation_v2_request - description: JSON:API resource type for the SPA v2 recommendation request. + ProductAnalyticsGraphQueryGroupBySource: + description: Audience dimension to group by, instead of an event facet. enum: - - recommendation_v2_request - example: recommendation_v2_request + - product_analytics_audience_filters.users + - product_analytics_audience_filters.accounts + example: product_analytics_audience_filters.users type: string x-enum-varnames: - - RECOMMENDATION_V2_REQUEST - RecommendationsFilterRequest: - description: JSON:API request body for filtering cost recommendations. - example: - data: - attributes: - scope: ccm - sort: - - expression: "@potential_daily_savings" - order: DESC - id: "@resource_table:aws_ec2_instance" - type: recommendations_filter + - USERS + - ACCOUNTS + ProductAnalyticsGroupBy: + description: A group-by rule for segmenting results by facet values. properties: - data: - $ref: "#/components/schemas/RecommendationsFilterRequestData" + facet: + description: The facet to group by. + example: "@view.name" + type: string + limit: + description: Maximum number of groups to return. + example: 10 + format: int64 + type: integer + should_exclude_missing: + default: false + description: Exclude results with missing facet values. + type: boolean + sort: + $ref: "#/components/schemas/ProductAnalyticsGroupBySort" + source: + description: The source for audience-filter-based group-by. + type: string required: - - data + - facet type: object - RecommendationsFilterRequestData: - description: |- - JSON:API resource containing the cost recommendations filter. This legacy search contract - uses the resource ID for the filter expression rather than as a persistent resource identifier. + ProductAnalyticsGroupBySort: + description: Sort configuration for group-by results. properties: - attributes: - $ref: "#/components/schemas/RecommendationsFilterRequestDataAttributes" - id: - description: |- - Filter expression applied to the recommendations when `attributes.filter` is omitted. - When supplied, `attributes.filter` overrides this value, including when empty. If the - resulting filter is empty, it defaults to `*`. Scope, view, and pagination still apply. + aggregation: + description: The aggregation function to sort by. + example: count type: string + metric: + description: The metric to sort by. + type: string + order: + $ref: "#/components/schemas/QuerySortOrder" + type: object + ProductAnalyticsInterval: + description: An interval definition in a timeseries response. + properties: + milliseconds: + description: The duration of each time bucket in milliseconds. + format: int64 + type: integer + start_time: + description: The start of this interval as an epoch timestamp in milliseconds. + format: int64 + type: integer + times: + description: Epoch timestamps (in milliseconds) for each bucket in this interval. + items: + description: Epoch timestamp in milliseconds for a time bucket boundary. + format: int64 + type: integer + type: array type: - $ref: "#/components/schemas/RecommendationsFilterRequestDataType" - required: - - type + description: The interval type (e.g., fixed or auto-computed bucket size). + type: string type: object - RecommendationsFilterRequestDataAttributes: - description: Attributes used to filter and sort cost recommendations. + ProductAnalyticsJoinKeys: + description: Identity join keys used to stitch events belonging to the same user or session. properties: - filter: - description: |- - Filter expression applied to the recommendations. When supplied, this attribute overrides - `data.id`, including when empty. When omitted, `data.id` is used. If the resulting filter - is empty, it defaults to `*`. Scope, view, and pagination still apply. - example: "@resource_table:aws_ec2_instance" + primary: + description: Primary identity join key. Defaults to `@session.id`. + example: "@session.id" type: string - scope: - $ref: "#/components/schemas/RecommendationsFilterRequestScope" - sort: - description: Ordered list of sort clauses applied to the result set. + secondary: + description: Additional identity join keys. items: - $ref: "#/components/schemas/RecommendationsFilterRequestSortItems" + description: An identity join key facet. + type: string type: array - view: - description: Active view name (for example, `active`, `dismissed`, `open`, `in-progress`, or `completed`). - type: string type: object - RecommendationsFilterRequestDataType: - default: recommendations_filter - description: Legacy JSON:API resource type required by the cost recommendations search decoder. - enum: - - recommendations_filter - example: recommendations_filter - type: string - x-enum-varnames: - - RECOMMENDATIONS_FILTER - RecommendationsFilterRequestScope: - description: Recommendations scope. Defaults to `ccm`; use `experiment` for experimental recommendations or `*` for both. - enum: - - ccm - - experiment - - "*" - type: string - x-enum-varnames: - - CCM - - EXPERIMENT - - ALL - RecommendationsFilterRequestSortItems: - description: A single sort clause applied to the cost recommendations result set. + ProductAnalyticsJourneyAudienceAccountQuery: + description: A named sub-query selecting a set of accounts. properties: - expression: - description: Field to sort by (for example, `@potential_daily_savings`). + name: + description: Unique name for this sub-query, referenced from `formula`. + example: enterprise_accounts type: string - order: - description: Sort direction, either `ASC` or `DESC`. + query: + description: Search query selecting the accounts. type: string + required: + - name type: object - RecommendationsPageMeta: - description: Top-level JSON:API meta object for paginated cost recommendation responses. + ProductAnalyticsJourneyAudienceFilters: + description: |- + Restricts the journey to an audience built from named sub-queries. + Sub-query names must be unique across `users`, `segments`, and `accounts`. properties: - page: - $ref: "#/components/schemas/RecommendationsPageMetaPage" + accounts: + description: Named account sub-queries. + items: + $ref: "#/components/schemas/ProductAnalyticsJourneyAudienceAccountQuery" + type: array + formula: + description: |- + Boolean expression combining the sub-query names with `AND`, `OR`, and `NOT`. + When empty, all sub-queries are combined with `AND`. + example: power_users AND NOT trial_segment + type: string + segments: + description: Named segment sub-queries. + items: + $ref: "#/components/schemas/ProductAnalyticsJourneyAudienceSegmentQuery" + type: array + users: + description: Named user sub-queries. + items: + $ref: "#/components/schemas/ProductAnalyticsJourneyAudienceUserQuery" + type: array type: object - RecommendationsPageMetaPage: - description: Pagination metadata for a page of cost recommendations. + ProductAnalyticsJourneyAudienceSegmentQuery: + description: A named sub-query selecting a saved segment. properties: - filter: - description: The filter expression that was applied to produce this page. + name: + description: Unique name for this sub-query, referenced from `formula`. + example: trial_segment type: string - next_page_token: - description: Opaque token used to fetch the next page; absent on the last page. + segment_id: + description: Identifier of the saved segment. + example: 00000000-0000-0000-0000-000000000000 type: string - page_size: - description: Number of items returned in this page (1–10000). - format: int32 - maximum: 10000 - minimum: 1 - type: integer - page_token: - description: Pagination token echoed back from the request. + required: + - name + - segment_id + type: object + ProductAnalyticsJourneyAudienceUserQuery: + description: A named sub-query selecting a set of users. + properties: + name: + description: Unique name for this sub-query, referenced from `formula`. + example: power_users + type: string + query: + description: Search query selecting the users. type: string + required: + - name type: object - ReferenceTableCreateSourceType: - description: >- - The source type for creating reference table data. Only these source types can be created through this API. - enum: - - LOCAL_FILE - - S3 - - GCS - - AZURE - example: "LOCAL_FILE" - type: string - x-enum-varnames: - - LOCAL_FILE - - S3 - - GCS - - AZURE - ReferenceTableSchemaFieldType: - description: The field type for reference table schema fields. - enum: - - STRING - - INT32 - example: "STRING" - type: string - x-enum-varnames: - - STRING - - INT32 - ReferenceTableSortType: - default: "-updated_at" - description: >- - Sort field and direction for reference tables. Use field name for ascending, prefix with "-" for descending. + ProductAnalyticsJourneyComputedColumn: + description: |- + A computed column added to each row. Requesting `first_conversion_timestamps` adds one + `_timestamp` key per step. + properties: + name: + $ref: "#/components/schemas/ProductAnalyticsJourneyComputedColumnName" + required: + - name + type: object + ProductAnalyticsJourneyComputedColumnName: + description: Name of a computed column to add to each row. enum: - - updated_at - - table_name - - status - - "-updated_at" - - "-table_name" - - "-status" + - first_conversion_timestamps + example: first_conversion_timestamps type: string x-enum-varnames: - - UPDATED_AT - - TABLE_NAME - - STATUS - - MINUS_UPDATED_AT - - MINUS_TABLE_NAME - - MINUS_STATUS - ReferenceTableSourceType: - description: >- - The source type for reference table data. Includes all possible source types that can appear in responses. + - FIRST_CONVERSION_TIMESTAMPS + ProductAnalyticsJourneyConversionType: + description: Whether to return the entities that converted at the target step, or those that dropped off. enum: - - LOCAL_FILE - - S3 - - GCS - - AZURE - - SERVICENOW - - SALESFORCE - - DATABRICKS - - SNOWFLAKE - example: "LOCAL_FILE" + - conversion + - drop-off + example: conversion type: string x-enum-varnames: - - LOCAL_FILE - - S3 - - GCS - - AZURE - - SERVICENOW - - SALESFORCE - - DATABRICKS - - SNOWFLAKE - RegisterAppKeyResponse: - description: The response object after creating an app key registration. - properties: - data: - $ref: "#/components/schemas/AppKeyRegistrationData" - type: object - RelationAttributes: - description: Relation attributes. - properties: - from: - $ref: "#/components/schemas/RelationEntity" - to: - $ref: "#/components/schemas/RelationEntity" - type: - $ref: "#/components/schemas/RelationType" - type: object - RelationEntity: - description: Relation entity reference. - properties: - kind: - description: Entity kind. - type: string - name: - description: Entity name. - type: string - namespace: - description: Entity namespace. - type: string - type: object - RelationIncludeType: - description: Supported include types for relations. + - CONVERSION + - DROP_OFF + ProductAnalyticsJourneyEntity: + description: The kind of entity returned by a journey list query. enum: - - entity - - schema + - session + - user + - account + example: session type: string x-enum-varnames: - - ENTITY - - SCHEMA - RelationMeta: - description: Relation metadata. + - SESSION + - USER + - ACCOUNT + ProductAnalyticsJourneyFunnelCompute: + description: Defines the metric computed at each funnel step. properties: - createdAt: - description: Relation creation time. - format: date-time - type: string - definedBy: - description: Relation defined by. - type: string - modifiedAt: - description: Relation modification time. - format: date-time + aggregation: + description: |- + Aggregation function: `count`, `cardinality`, `avg`, `median`, `min`, `max`, `sum`, + or a percentile of the form `pc` such as `pc95`. Defaults to `cardinality`. + pattern: "^(count|cardinality|avg|median|min|max|sum|pc[0-9]{1,2})$" type: string - source: - description: Relation source. + metric: + description: Metric to aggregate on. Defaults to the identity join key. type: string type: object - RelationRelationships: - description: Relation relationships. + ProductAnalyticsJourneyFunnelQuery: + description: Query definition for a journey funnel request. properties: - fromEntity: - $ref: "#/components/schemas/RelationToEntity" - toEntity: - $ref: "#/components/schemas/RelationToEntity" + compute: + $ref: "#/components/schemas/ProductAnalyticsJourneyFunnelCompute" + group_by: + description: Segments the funnel by the values of one or more facets. + items: + $ref: "#/components/schemas/ProductAnalyticsGraphQueryGroupBy" + type: array + search: + $ref: "#/components/schemas/ProductAnalyticsJourneySearch" + required: + - search type: object - RelationResponse: - description: Relation response data. + ProductAnalyticsJourneyFunnelRequest: + description: Request body for a journey funnel analysis. properties: - attributes: - $ref: "#/components/schemas/RelationAttributes" - id: - description: Relation ID. - type: string - meta: - $ref: "#/components/schemas/RelationMeta" - relationships: - $ref: "#/components/schemas/RelationRelationships" - subtype: - description: Relation subtype. - type: string - type: - $ref: "#/components/schemas/RelationResponseType" + data: + $ref: "#/components/schemas/ProductAnalyticsJourneyFunnelRequestData" + required: + - data type: object - RelationResponseData: - description: Array of relation responses - items: - $ref: "#/components/schemas/RelationResponse" - type: array - RelationResponseMeta: - description: Relation response metadata. + ProductAnalyticsJourneyFunnelRequestAttributes: + description: Attributes of a journey funnel request. properties: - count: - description: Total relations count. + exclude_anonymous_traffic: + default: false + description: Whether to exclude sessions that are not tied to an identified user. + type: boolean + from: + description: Start of the query window, in epoch milliseconds. + example: 1756425600000 format: int64 type: integer - includeCount: - description: Total included data count. + query: + $ref: "#/components/schemas/ProductAnalyticsJourneyFunnelQuery" + to: + description: End of the query window, in epoch milliseconds. + example: 1756857600000 format: int64 type: integer - type: object - RelationResponseType: - description: Relation type. - enum: [relation] - type: string - x-enum-varnames: - - RELATION - RelationToEntity: - description: Relation to entity. - properties: - data: - $ref: "#/components/schemas/RelationshipItem" - meta: - $ref: "#/components/schemas/EntityMeta" - type: object - RelationType: - description: Supported relation types. - enum: - - RelationTypeOwns - - RelationTypeOwnedBy - - RelationTypeDependsOn - - RelationTypeDependencyOf - - RelationTypePartsOf - - RelationTypeHasPart - - RelationTypeOtherOwns - - RelationTypeOtherOwnedBy - - RelationTypeImplementedBy - - RelationTypeImplements - type: string - x-enum-varnames: - - RELATIONTYPEOWNS - - RELATIONTYPEOWNEDBY - - RELATIONTYPEDEPENDSON - - RELATIONTYPEDEPENDENCYOF - - RELATIONTYPEPARTSOF - - RELATIONTYPEHASPART - - RELATIONTYPEOTHEROWNS - - RELATIONTYPEOTHEROWNEDBY - - RELATIONTYPEIMPLEMENTEDBY - - RELATIONTYPEIMPLEMENTS - RelationshipArray: - description: Relationships. - items: - $ref: "#/components/schemas/RelationshipItem" - type: array - RelationshipItem: - description: Relationship entry. - properties: - id: - description: Associated data ID. - type: string - type: - description: Relationship type. - type: string - type: object - RelationshipToAccessTokenOwner: - description: Relationship to the access token's owner. - properties: - data: - $ref: "#/components/schemas/RelationshipToAccessTokenOwnerData" required: - - data + - from + - to + - query type: object - RelationshipToAccessTokenOwnerData: - description: Relationship to the access token's owner. + ProductAnalyticsJourneyFunnelRequestData: + description: |- + The single JSON:API resource carrying a funnel query. Its attributes hold the time window to + query and the journey whose step-to-step conversion should be measured. properties: - id: - description: A unique identifier that represents the owner. - example: "00000000-0000-0000-2345-000000000000" - type: string + attributes: + $ref: "#/components/schemas/ProductAnalyticsJourneyFunnelRequestAttributes" type: - $ref: "#/components/schemas/AccessTokenOwnerType" + $ref: "#/components/schemas/ProductAnalyticsJourneyRequestType" required: - - id - type + - attributes type: object - RelationshipToIncident: - description: Relationship to incident. + ProductAnalyticsJourneyFunnelResponse: + description: Response for a journey funnel analysis. properties: data: - $ref: "#/components/schemas/RelationshipToIncidentData" + $ref: "#/components/schemas/ProductAnalyticsJourneyFunnelResponseData" required: - data type: object - RelationshipToIncidentAttachment: - description: A relationship reference for attachments. + ProductAnalyticsJourneyFunnelResponseAttributes: + description: Attributes of a journey funnel response. properties: - data: - description: |- - An array of incident attachments. + end_to_end_conversion_rate: + description: Conversion rate from the first step to the last step. + example: 0.42 + format: double + type: number + end_to_end_elapsed_time: + $ref: "#/components/schemas/ProductAnalyticsElapsedTime" + funnel_steps: + description: The funnel steps, in the order given by the search expression. items: - $ref: "#/components/schemas/RelationshipToIncidentAttachmentData" + $ref: "#/components/schemas/ProductAnalyticsJourneyFunnelStep" type: array + initial_count: + description: Number of entities that entered the funnel. + example: 1200 + format: int64 + type: integer required: - - data + - initial_count + - end_to_end_conversion_rate + - end_to_end_elapsed_time + - funnel_steps type: object - RelationshipToIncidentAttachmentData: - description: The attachment relationship data. + ProductAnalyticsJourneyFunnelResponseData: + description: |- + The single JSON:API resource holding a computed funnel. Its attributes contain the number of + entities that entered, the end-to-end conversion, and one entry per funnel step. properties: + attributes: + $ref: "#/components/schemas/ProductAnalyticsJourneyFunnelResponseAttributes" id: - description: A unique identifier that represents the attachment. - example: "00000000-0000-abcd-1000-000000000000" + description: Identifier of this result. + example: 00000000-0000-0000-0000-000000000000 type: string type: - $ref: "#/components/schemas/IncidentAttachmentType" + $ref: "#/components/schemas/ProductAnalyticsJourneyFunnelResponseType" required: - id - type + - attributes type: object - RelationshipToIncidentData: - description: Relationship to incident object. + ProductAnalyticsJourneyFunnelResponseType: + description: The resource type identifier for a journey funnel response. + enum: + - funnel_response + example: funnel_response + type: string + x-enum-varnames: + - FUNNEL_RESPONSE + ProductAnalyticsJourneyFunnelStep: + description: A single step of the funnel with its conversion counts and timings. properties: - id: - description: A unique identifier that represents the incident. - example: "00000000-0000-0000-1234-000000000000" + elapsed_time_to_next_step: + $ref: "#/components/schemas/ProductAnalyticsElapsedTime" + groups: + description: Breakdown of this step by the requested group-by facets. + items: + $ref: "#/components/schemas/ProductAnalyticsJourneyFunnelStepGroup" + type: array + label: + description: Label of the step, derived from the node alias. + example: A type: string - type: - $ref: "#/components/schemas/IncidentType" - required: - - id - - type - type: object - RelationshipToIncidentImpactData: - description: Relationship to impact object. - properties: - id: - description: A unique identifier that represents the impact. - example: "00000000-0000-0000-2345-000000000000" + unit: + description: Unit of the elapsed time values. + example: millisecond type: string - type: - $ref: "#/components/schemas/IncidentImpactsType" + value: + description: Value of the computed metric at this step. + example: 1200 + format: double + type: number required: - - id - - type + - value + - label + - unit + - elapsed_time_to_next_step + - groups type: object - RelationshipToIncidentImpacts: - description: Relationship to impacts. + ProductAnalyticsJourneyFunnelStepGroup: + description: Breakdown of a funnel step for one combination of group-by values. properties: - data: - description: An array of incident impacts. + conversion_count: + description: Number of entities in this group that reached the next step. + example: 210 + format: int64 + type: integer + elapsed_time_to_next_step: + $ref: "#/components/schemas/ProductAnalyticsElapsedTime" + group_tags: + description: Group-by values identifying this cohort. + example: + - United States items: - $ref: "#/components/schemas/RelationshipToIncidentImpactData" + description: A group-by value. + type: string type: array + value: + description: Value of the computed metric for this group at this step. + example: 480 + format: double + type: number required: - - data + - group_tags + - value + - conversion_count + - elapsed_time_to_next_step type: object - RelationshipToIncidentIntegrationMetadataData: - description: A relationship reference for an integration metadata object. - example: {"id": "00000000-abcd-0002-0000-000000000000", "type": "incident_integrations"} + ProductAnalyticsJourneyListQuery: + description: Query definition for a journey list request. properties: - id: - description: A unique identifier that represents the integration metadata. - example: "00000000-abcd-0001-0000-000000000000" + computed_columns: + description: Computed columns to add to each row. + items: + $ref: "#/components/schemas/ProductAnalyticsJourneyComputedColumn" + type: array + conversion_type: + $ref: "#/components/schemas/ProductAnalyticsJourneyConversionType" + entity_columns: + description: Attribute columns to return for each row, in addition to the identity join key and `timestamp`. + items: + description: An attribute column to return. + type: string + type: array + entity_filters: + description: Additional search query applied to the returned rows. type: string - type: - $ref: "#/components/schemas/IncidentIntegrationMetadataType" + group_by: + description: Segments the results by the values of one or more facets. + items: + $ref: "#/components/schemas/ProductAnalyticsGraphQueryGroupBy" + type: array + limit: + description: Maximum number of rows to return. Omit it to let the service choose. + format: int64 + minimum: 1 + type: integer + search: + $ref: "#/components/schemas/ProductAnalyticsJourneySearch" + sort: + $ref: "#/components/schemas/ProductAnalyticsJourneyListSort" + target: + $ref: "#/components/schemas/ProductAnalyticsJourneyTarget" required: - - id - - type + - search type: object - RelationshipToIncidentIntegrationMetadatas: - description: A relationship reference for multiple integration metadata objects. - example: {"data": [{"id": "00000000-abcd-0005-0000-000000000000", "type": "incident_integrations"}, {"id": "00000000-abcd-0006-0000-000000000000", "type": "incident_integrations"}]} + ProductAnalyticsJourneyListRecord: + additionalProperties: {} + description: |- + A single row. Keys are the returned column names: the identity join key, `timestamp`, + each entry of `entity_columns`, and any computed columns. A value is null when the + column has no value for that row. + type: object + ProductAnalyticsJourneyListRequest: + description: Request body for a journey list query. properties: data: - description: Integration metadata relationship array - example: [{"id": "00000000-abcd-0003-0000-000000000000", "type": "incident_integrations"}, {"id": "00000000-abcd-0004-0000-000000000000", "type": "incident_integrations"}] - items: - $ref: "#/components/schemas/RelationshipToIncidentIntegrationMetadataData" - type: array + $ref: "#/components/schemas/ProductAnalyticsJourneyListRequestData" required: - data type: object - RelationshipToIncidentNotificationTemplate: - description: A relationship reference to a notification template. + ProductAnalyticsJourneyListRequestAttributes: + description: Attributes of a journey list request. properties: - data: - $ref: "#/components/schemas/RelationshipToIncidentNotificationTemplateData" + from: + description: Start of the query window, in epoch milliseconds. + example: 1756425600000 + format: int64 + type: integer + query: + $ref: "#/components/schemas/ProductAnalyticsJourneyListQuery" + to: + description: End of the query window, in epoch milliseconds. + example: 1756857600000 + format: int64 + type: integer required: - - data + - from + - to + - query type: object - RelationshipToIncidentNotificationTemplateData: - description: The notification template relationship data. + ProductAnalyticsJourneyListRequestData: + description: |- + The single JSON:API resource carrying a journey list query. Its attributes hold the time window + and the journey whose matching entities should be listed, one row each. properties: - id: - description: The unique identifier of the notification template. - example: "00000000-0000-0000-0000-000000000001" - format: uuid - type: string + attributes: + $ref: "#/components/schemas/ProductAnalyticsJourneyListRequestAttributes" type: - $ref: "#/components/schemas/IncidentNotificationTemplateType" + $ref: "#/components/schemas/ProductAnalyticsJourneyListRequestType" required: - - id - type + - attributes type: object - RelationshipToIncidentPostmortem: - description: A relationship reference for postmortems. - example: {"data": {"id": "00000000-0000-abcd-3000-000000000000", "type": "incident_postmortems"}} + ProductAnalyticsJourneyListRequestType: + description: The resource type identifier for a journey list request. + enum: + - journey_list_request + example: journey_list_request + type: string + x-enum-varnames: + - JOURNEY_LIST_REQUEST + ProductAnalyticsJourneyListResponse: + description: Response for a journey list query. properties: data: - $ref: "#/components/schemas/RelationshipToIncidentPostmortemData" + $ref: "#/components/schemas/ProductAnalyticsJourneyListResponseData" required: - data type: object - RelationshipToIncidentPostmortemData: - description: The postmortem relationship data. - example: {"id": "00000000-0000-abcd-2000-000000000000", "type": "incident_postmortems"} - properties: - id: - description: A unique identifier that represents the postmortem. - example: "00000000-0000-abcd-1000-000000000000" - type: string - type: - $ref: "#/components/schemas/IncidentPostmortemType" - required: - - id - - type - type: object - RelationshipToIncidentRequest: - description: Relationship to incident request + ProductAnalyticsJourneyListResponseAttributes: + description: Attributes of a journey list response. properties: - data: - $ref: "#/components/schemas/IncidentRelationshipData" + entity: + $ref: "#/components/schemas/ProductAnalyticsJourneyEntity" + records: + description: The returned rows. + items: + $ref: "#/components/schemas/ProductAnalyticsJourneyListRecord" + type: array + total_count: + description: Total number of rows matching the query, ignoring `limit`. + example: 231 + format: int64 + type: integer required: - - data + - entity + - total_count + - records type: object - RelationshipToIncidentResponderData: - description: Relationship to impact object. + ProductAnalyticsJourneyListResponseData: + description: |- + The single JSON:API resource holding the entities matching a journey. Its attributes contain + the returned rows and the total number of rows that matched, ignoring `limit`. properties: + attributes: + $ref: "#/components/schemas/ProductAnalyticsJourneyListResponseAttributes" id: - description: A unique identifier that represents the responder. - example: "00000000-0000-0000-2345-000000000000" + description: Identifier of this result. + example: 00000000-0000-0000-0000-000000000000 type: string type: - $ref: "#/components/schemas/IncidentRespondersType" + $ref: "#/components/schemas/ProductAnalyticsJourneyListResponseType" required: - id - type + - attributes type: object - RelationshipToIncidentResponders: - description: Relationship to incident responders. + ProductAnalyticsJourneyListResponseType: + description: The resource type identifier for a journey list response. + enum: + - journey_list_response + example: journey_list_response + type: string + x-enum-varnames: + - JOURNEY_LIST_RESPONSE + ProductAnalyticsJourneyListSort: + description: |- + Sort configuration for the returned rows. The sort is applied only when `facet` + is one of the returned columns; otherwise it is ignored. properties: - data: - description: An array of incident responders. - items: - $ref: "#/components/schemas/RelationshipToIncidentResponderData" - type: array - required: - - data + facet: + description: Column to sort on. + type: string + order: + $ref: "#/components/schemas/QuerySortOrder" type: object - RelationshipToIncidentType: - description: Relationship to an incident type. + ProductAnalyticsJourneyNodeTarget: + description: A reference to a single step of the journey. properties: - data: - $ref: "#/components/schemas/RelationshipToIncidentTypeData" + type: + $ref: "#/components/schemas/ProductAnalyticsJourneyNodeTargetType" + value: + description: Alias of the targeted node. + example: A + type: string required: - - data + - type + - value type: object - RelationshipToIncidentTypeData: - description: Relationship to incident type object. + ProductAnalyticsJourneyNodeTargetType: + description: The discriminator identifying a target that references a single step. + enum: + - node + example: node + type: string + x-enum-varnames: + - NODE + ProductAnalyticsJourneyPathTarget: + description: A reference to the range of steps between two nodes of the journey. properties: - id: - description: The incident type's ID. - example: "00000000-0000-0000-0000-000000000000" + end: + description: Alias of the node the path ends at. + example: B + type: string + start: + description: Alias of the node the path starts at. + example: A type: string type: - $ref: "#/components/schemas/IncidentTypeType" + $ref: "#/components/schemas/ProductAnalyticsJourneyPathTargetType" required: - - id - type + - start + - end type: object - RelationshipToIncidentUserDefinedFieldData: - description: Relationship to impact object. + ProductAnalyticsJourneyPathTargetType: + description: The discriminator identifying a target that references a range of steps. + enum: + - path + example: path + type: string + x-enum-varnames: + - PATH + ProductAnalyticsJourneyRequestType: + description: The resource type identifier for a journey funnel request. + enum: + - journey_request + example: journey_request + type: string + x-enum-varnames: + - JOURNEY_REQUEST + ProductAnalyticsJourneyScalarCompute: + description: Defines the metric computed over the journey for a scalar query. properties: - id: - description: A unique identifier that represents the responder. - example: "00000000-0000-0000-2345-000000000000" + aggregation: + description: |- + Aggregation function: `count`, `cardinality`, `avg`, `median`, `min`, `max`, `sum`, + or a percentile of the form `pc` such as `pc95`. Defaults to `cardinality`. + example: count + pattern: "^(count|cardinality|avg|median|min|max|sum|pc[0-9]{1,2})$" type: string - type: - $ref: "#/components/schemas/IncidentUserDefinedFieldType" + metric: + description: |- + Metric to aggregate on. Use a facet path such as `@view.time_spent`, or one of the + journey metrics `__dd.conversion`, `__dd.conversion_rate`, `__dd.time_to_convert`, + or `__dd.dropoff_rate`. Defaults to `__dd.conversion`. + type: string + target: + $ref: "#/components/schemas/ProductAnalyticsJourneyTarget" required: - - id - - type + - aggregation type: object - RelationshipToIncidentUserDefinedFields: - description: Relationship to incident user defined fields. + ProductAnalyticsJourneyScalarQuery: + description: Query definition for a journey scalar request. properties: - data: - description: An array of user defined fields. + compute: + $ref: "#/components/schemas/ProductAnalyticsJourneyScalarCompute" + group_by: + description: Segments the results by the values of one or more facets. items: - $ref: "#/components/schemas/RelationshipToIncidentUserDefinedFieldData" + $ref: "#/components/schemas/ProductAnalyticsGraphQueryGroupBy" type: array + query_id: + description: Caller-defined identifier echoed back in the results. + type: string + search: + $ref: "#/components/schemas/ProductAnalyticsJourneySearch" required: - - data + - search + - compute type: object - RelationshipToLeakedKey: - description: Relationship to the leak the access token was found in. `data` is null when the access token has not been detected as leaked. + ProductAnalyticsJourneyScalarRequest: + description: Request body for a journey scalar query. properties: data: - $ref: "#/components/schemas/RelationshipToLeakedKeyData" + $ref: "#/components/schemas/ProductAnalyticsJourneyScalarRequestData" required: - data type: object - RelationshipToLeakedKeyData: - description: Relationship to the leak the access token was found in. - nullable: true + ProductAnalyticsJourneyScalarRequestAttributes: + description: Attributes of a journey scalar request. properties: - id: - description: A unique identifier that represents the leak. - example: "00000000-0000-1234-0000-000000000000" - type: string + from: + description: Start of the query window, in epoch milliseconds. + example: 1756425600000 + format: int64 + type: integer + query: + $ref: "#/components/schemas/ProductAnalyticsJourneyScalarQuery" + to: + description: End of the query window, in epoch milliseconds. + example: 1756857600000 + format: int64 + type: integer + required: + - from + - to + - query + type: object + ProductAnalyticsJourneyScalarRequestData: + description: |- + The single JSON:API resource carrying a journey scalar query. Its attributes hold the time + window and the journey metric to reduce to one value over that window. + properties: + attributes: + $ref: "#/components/schemas/ProductAnalyticsJourneyScalarRequestAttributes" type: - $ref: "#/components/schemas/LeakedKeyType" + $ref: "#/components/schemas/ProductAnalyticsFormulaJourneyRequestType" required: - - id - type + - attributes type: object - RelationshipToOrganization: - description: Relationship to an organization. + ProductAnalyticsJourneyScalarResponse: + description: Response for a journey scalar query. properties: data: - $ref: "#/components/schemas/RelationshipToOrganizationData" + $ref: "#/components/schemas/ProductAnalyticsJourneyScalarResponseData" required: - data type: object - RelationshipToOrganizationData: - description: Relationship to organization object. + ProductAnalyticsJourneyScalarResponseData: + description: |- + The single JSON:API resource holding journey scalar results. Its attributes contain one value + per group, suitable for a query value or top list widget. properties: + attributes: + $ref: "#/components/schemas/ProductAnalyticsScalarResponseAttributes" id: - description: ID of the organization. - example: "00000000-0000-beef-0000-000000000000" + description: Identifier of this result. + example: 00000000-0000-0000-0000-000000000000 type: string type: - $ref: "#/components/schemas/OrganizationsType" + $ref: "#/components/schemas/ProductAnalyticsJourneyScalarResponseType" required: - id - type + - attributes type: object - RelationshipToOrganizations: - description: Relationship to organizations. - properties: - data: - description: Relationships to organization objects. - example: [] - items: - $ref: "#/components/schemas/RelationshipToOrganizationData" - type: array - required: - - data - type: object - RelationshipToOutcome: - description: The JSON:API relationship to a scorecard outcome. - properties: - data: - $ref: "#/components/schemas/RelationshipToOutcomeData" - type: object - RelationshipToOutcomeData: - description: The JSON:API relationship to an outcome, which returns the related rule id. - properties: - id: - $ref: "#/components/schemas/RuleId" - type: - $ref: "#/components/schemas/RuleType" - type: object - RelationshipToPermission: - description: Relationship to a permissions object. - properties: - data: - $ref: "#/components/schemas/RelationshipToPermissionData" - type: object - RelationshipToPermissionData: - description: Relationship to permission object. + ProductAnalyticsJourneyScalarResponseType: + description: The resource type identifier for a journey scalar response. + enum: + - journey_scalar_response + example: journey_scalar_response + type: string + x-enum-varnames: + - JOURNEY_SCALAR_RESPONSE + ProductAnalyticsJourneySearch: + description: Defines the steps of the journey and the filters applied to it. properties: - id: - description: ID of the permission. + expression: + description: Expression combining the node aliases in order, for example `A -> B -> C`. + example: A -> B type: string - type: - $ref: "#/components/schemas/PermissionsType" + filters: + $ref: "#/components/schemas/ProductAnalyticsJourneySearchFilters" + join_keys: + $ref: "#/components/schemas/ProductAnalyticsJoinKeys" + node_objects: + additionalProperties: + $ref: "#/components/schemas/ProductAnalyticsBaseQuery" + description: |- + Map of node alias to the query matching that step of the journey. + Every alias used in `expression` must have an entry here. + example: + A: + data_source: product_analytics + search: + query: "@type:view @view.name:Login" + B: + data_source: product_analytics + search: + query: "@type:action @action.target.name:Submit" + type: object + required: + - expression + - node_objects type: object - RelationshipToPermissions: - description: Relationship to multiple permissions objects. + ProductAnalyticsJourneySearchFilters: + description: Filters applied on top of the journey step expression. properties: - data: - description: Relationships to permission objects. + audience_filters: + $ref: "#/components/schemas/ProductAnalyticsJourneyAudienceFilters" + graph_filters: + description: Filters on journey-level metrics such as time to convert. items: - $ref: "#/components/schemas/RelationshipToPermissionData" + $ref: "#/components/schemas/ProductAnalyticsJourneySearchGraphFilter" type: array - type: object - RelationshipToRole: - description: Relationship to role. - properties: - data: - $ref: "#/components/schemas/RelationshipToRoleData" - type: object - RelationshipToRoleData: - description: Relationship to role object. - properties: - id: - description: The unique identifier of the role. - example: "3653d3c6-0c75-11ea-ad28-fb5701eabc7d" + string_filter: + description: Free-text search query applied to the whole journey. type: string - type: - $ref: "#/components/schemas/RolesType" - type: object - RelationshipToRoles: - description: Relationship to roles. - properties: - data: - description: An array containing type and the unique identifier of a role. - items: - $ref: "#/components/schemas/RelationshipToRoleData" - type: array - type: object - RelationshipToRule: - description: Scorecard create rule response relationship. - properties: - scorecard: - $ref: "#/components/schemas/RelationshipToRuleData" - type: object - RelationshipToRuleData: - description: Relationship data for a rule. - properties: - data: - $ref: "#/components/schemas/RelationshipToRuleDataObject" type: object - RelationshipToRuleDataObject: - description: Rule relationship data. + ProductAnalyticsJourneySearchGraphFilter: + description: A filter applied to a step, or a range of steps, of the journey graph. properties: - id: - description: The unique ID for a scorecard. - example: q8MQxk8TCqrHnWkp - type: string - type: - $ref: "#/components/schemas/ScorecardType" + name: + $ref: "#/components/schemas/ProductAnalyticsJourneySearchGraphFilterName" + operator: + $ref: "#/components/schemas/ProductAnalyticsJourneySearchGraphFilterOperator" + target: + $ref: "#/components/schemas/ProductAnalyticsJourneyTarget" + value: + description: Value compared against the metric. Durations are expressed in milliseconds. + example: 60000 + format: int64 + type: integer + required: + - name + - operator + - value type: object - RelationshipToSAMLAssertionAttribute: - description: AuthN Mapping relationship to SAML Assertion Attribute. + ProductAnalyticsJourneySearchGraphFilterName: + description: The journey-level metric the graph filter applies to. + enum: + - __dd.time_to_convert + - __dd.session + - __dd.dropoff_rate + example: __dd.time_to_convert + type: string + x-enum-varnames: + - TIME_TO_CONVERT + - SESSION + - DROPOFF_RATE + ProductAnalyticsJourneySearchGraphFilterOperator: + description: Comparison operator applied to the graph filter value. + enum: + - "=" + - "<" + - ">" + - "<=" + - ">=" + example: "<=" + type: string + x-enum-varnames: + - EQUAL + - LESS_THAN + - GREATER_THAN + - LESS_THAN_OR_EQUAL + - GREATER_THAN_OR_EQUAL + ProductAnalyticsJourneyTarget: + description: |- + A reference to a step, or a range of steps, in the journey. + Use a `node` target to name a single step, or a `path` target to name the range + between two steps. + oneOf: + - $ref: "#/components/schemas/ProductAnalyticsJourneyNodeTarget" + - $ref: "#/components/schemas/ProductAnalyticsJourneyPathTarget" + ProductAnalyticsJourneyTimeseriesResponse: + description: Response for a journey timeseries query. properties: data: - $ref: "#/components/schemas/RelationshipToSAMLAssertionAttributeData" + $ref: "#/components/schemas/ProductAnalyticsJourneyTimeseriesResponseData" required: - data type: object - RelationshipToSAMLAssertionAttributeData: - description: Data of AuthN Mapping relationship to SAML Assertion Attribute. + ProductAnalyticsJourneyTimeseriesResponseData: + description: |- + The single JSON:API resource holding journey timeseries results. Its attributes contain one + series per group along with the timestamps the points fall on. properties: + attributes: + $ref: "#/components/schemas/ProductAnalyticsTimeseriesResponseAttributes" id: - description: The ID of the SAML assertion attribute. - example: "0" + description: Identifier of this result. + example: 00000000-0000-0000-0000-000000000000 type: string type: - $ref: "#/components/schemas/SAMLAssertionAttributesType" + $ref: "#/components/schemas/ProductAnalyticsJourneyTimeseriesResponseType" required: - id - type + - attributes type: object - RelationshipToServiceAccount: - description: Relationship to service account. + ProductAnalyticsJourneyTimeseriesResponseType: + description: The resource type identifier for a journey timeseries response. + enum: + - journey_timeseries_response + example: journey_timeseries_response + type: string + x-enum-varnames: + - JOURNEY_TIMESERIES_RESPONSE + ProductAnalyticsOccurrenceFilter: + description: Filter for occurrence-based queries. properties: - data: - $ref: "#/components/schemas/RelationshipToServiceAccountData" + meta: + additionalProperties: + type: string + description: Additional metadata. + type: object + operator: + description: Comparison operator (=, >=, <=, >, <). + example: ">=" + type: string + value: + description: The occurrence count threshold as a string. + example: "1" + type: string required: - - data + - operator + - value type: object - RelationshipToServiceAccountData: - description: Relationship to service account object. + ProductAnalyticsOccurrenceQuery: + description: A Product Analytics occurrence-filtered query. properties: - id: - description: A unique identifier that represents the service account. - example: "00000000-0000-0000-2345-000000000000" - type: string - type: - $ref: "#/components/schemas/ServiceAccountType" + data_source: + $ref: "#/components/schemas/ProductAnalyticsOccurrenceQueryDataSource" + search: + $ref: "#/components/schemas/ProductAnalyticsOccurrenceSearch" required: - - id - - type + - data_source + - search type: object - RelationshipToTeam: - description: Relationship to team. + ProductAnalyticsOccurrenceQueryDataSource: + description: The data source identifier for occurrence queries. + enum: + - product_analytics_occurrence + example: product_analytics_occurrence + type: string + x-enum-varnames: + - PRODUCT_ANALYTICS_OCCURRENCE + ProductAnalyticsOccurrenceSearch: + description: Search parameters for an occurrence query. properties: - data: - $ref: "#/components/schemas/RelationshipToTeamData" + occurrences: + $ref: "#/components/schemas/ProductAnalyticsOccurrenceFilter" + query: + description: The search query using Datadog search syntax. + example: "@type:action" + type: string type: object - RelationshipToTeamData: - description: Relationship to Team object. + ProductAnalyticsResponseMeta: + description: Metadata for a Product Analytics query response. properties: - id: - description: The unique identifier of the team. - example: f9bb8444-af7f-11ec-ac2c-da7ad0900001 + request_id: + description: Unique identifier of the query. type: string - type: - $ref: "#/components/schemas/TeamType" + status: + $ref: "#/components/schemas/ProductAnalyticsResponseMetaStatus" type: object - RelationshipToTeamLinkData: - description: Relationship between a link and a team + ProductAnalyticsResponseMetaStatus: + description: The execution status of a Product Analytics query. + enum: + - done + - running + - timeout + type: string + x-enum-varnames: + - DONE + - RUNNING + - TIMEOUT + ProductAnalyticsRetentionAggregationTarget: + description: Selects the rolled-up row that aggregates every cohort, rather than a single cohort. properties: - id: - description: The team link's identifier - example: f9bb8444-af7f-11ec-ac2c-da7ad0900001 - type: string type: - $ref: "#/components/schemas/TeamLinkType" + $ref: "#/components/schemas/ProductAnalyticsRetentionAggregationTargetType" + value: + description: The aggregation that produced the rolled-up row. + example: weighted_avg + type: string required: - - id - type + - value type: object - RelationshipToTeamLinks: - description: Relationship between a team and a team link - properties: - data: - description: Related team links - items: - $ref: "#/components/schemas/RelationshipToTeamLinkData" - type: array - links: - $ref: "#/components/schemas/TeamRelationshipsLinks" - type: object - RelationshipToUser: - description: Relationship to user. - properties: - data: - $ref: "#/components/schemas/RelationshipToUserData" - required: - - data - type: object - RelationshipToUserData: - description: Relationship to user object. + ProductAnalyticsRetentionAggregationTargetType: + description: The discriminator identifying a target selected by aggregation. + enum: + - aggregation + example: aggregation + type: string + x-enum-varnames: + - AGGREGATION + ProductAnalyticsRetentionCalendarTimeInterval: + description: A retention interval aligned to calendar boundaries. properties: - id: - description: A unique identifier that represents the user. - example: "00000000-0000-0000-2345-000000000000" - type: string type: - $ref: "#/components/schemas/UsersType" + $ref: "#/components/schemas/ProductAnalyticsRetentionCalendarTimeIntervalType" + value: + $ref: "#/components/schemas/ProductAnalyticsCalendarInterval" required: - - id - type + - value type: object - RelationshipToUserTeamPermission: - description: Relationship between a user team permission and a team - properties: - data: - $ref: "#/components/schemas/RelationshipToUserTeamPermissionData" - links: - $ref: "#/components/schemas/TeamRelationshipsLinks" - type: object - RelationshipToUserTeamPermissionData: - description: Related user team permission data - nullable: true + ProductAnalyticsRetentionCalendarTimeIntervalType: + description: The discriminator identifying a calendar-aligned retention interval. + enum: + - calendar + example: calendar + type: string + x-enum-varnames: + - CALENDAR + ProductAnalyticsRetentionCellScope: + description: Narrows a retention query to a single cell, at the intersection of one cohort and one return period. properties: - id: - description: The ID of the user team permission - example: UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595 - type: string + cohort_target: + $ref: "#/components/schemas/ProductAnalyticsRetentionCohortTarget" + return_period_target: + $ref: "#/components/schemas/ProductAnalyticsRetentionIndexTarget" type: - $ref: "#/components/schemas/UserTeamPermissionType" + $ref: "#/components/schemas/ProductAnalyticsRetentionCellScopeType" required: - - id - type + - cohort_target + - return_period_target type: object - RelationshipToUserTeamTeam: - description: Relationship between team membership and team + ProductAnalyticsRetentionCellScopeType: + description: The discriminator identifying a scope narrowed to one grid cell. + enum: + - cell + example: cell + type: string + x-enum-varnames: + - CELL + ProductAnalyticsRetentionCohortCriteria: + description: Defines the event that places an entity into a cohort, and how cohorts are bucketed over time. properties: - data: - $ref: "#/components/schemas/RelationshipToUserTeamTeamData" + base_query: + $ref: "#/components/schemas/ProductAnalyticsBaseQuery" + time_interval: + $ref: "#/components/schemas/ProductAnalyticsRetentionTimeInterval" required: - - data + - base_query + - time_interval type: object - RelationshipToUserTeamTeamData: - description: The team associated with the membership + ProductAnalyticsRetentionCohortScope: + description: Narrows a retention query to a single cohort row. properties: - id: - description: The ID of the team associated with the membership - example: d7e15d9d-d346-43da-81d8-3d9e71d9a5e9 - type: string + target: + $ref: "#/components/schemas/ProductAnalyticsRetentionCohortTarget" type: - $ref: "#/components/schemas/UserTeamTeamType" + $ref: "#/components/schemas/ProductAnalyticsRetentionCohortScopeType" required: - - id - type + - target type: object - RelationshipToUserTeamUser: - description: Relationship between team membership and user + ProductAnalyticsRetentionCohortScopeType: + description: The discriminator identifying a scope narrowed to one cohort. + enum: + - cohort + example: cohort + type: string + x-enum-varnames: + - COHORT + ProductAnalyticsRetentionCohortTarget: + description: Selects a cohort, either by index or by the aggregation that rolls all cohorts together. + oneOf: + - $ref: "#/components/schemas/ProductAnalyticsRetentionIndexTarget" + - $ref: "#/components/schemas/ProductAnalyticsRetentionAggregationTarget" + ProductAnalyticsRetentionCompute: + description: The metric and aggregation applied to a retention query. properties: - data: - $ref: "#/components/schemas/RelationshipToUserTeamUserData" + aggregation: + description: The aggregation function applied to the metric, such as `count` or `avg`. + example: count + type: string + metric: + $ref: "#/components/schemas/ProductAnalyticsRetentionComputeMetric" required: - - data + - metric + - aggregation type: object - RelationshipToUserTeamUserData: - description: A user's relationship with a team + ProductAnalyticsRetentionComputeMetric: + description: The retention metric to compute, either an absolute count or a rate. + enum: + - "__dd.retention" + - "__dd.retention_rate" + example: "__dd.retention_rate" + type: string + x-enum-varnames: + - RETENTION + - RETENTION_RATE + ProductAnalyticsRetentionEntity: + description: The entity whose retention is measured. + enum: + - "@usr.id" + - "@account.id" + example: "@usr.id" + type: string + x-enum-varnames: + - USER_ID + - ACCOUNT_ID + ProductAnalyticsRetentionFilters: + description: Filters narrowing the events considered by a retention query. properties: - id: - description: The ID of the user associated with the team - example: b8626d7e-cedd-11eb-abf5-da7ad0900001 + audience_filters: + $ref: "#/components/schemas/ProductAnalyticsAudienceFilters" + string_filter: + description: Free-text search query applied to the events. type: string - type: - $ref: "#/components/schemas/UserTeamUserType" - required: - - id - - type type: object - RelationshipToUsers: - description: Relationship to users. + ProductAnalyticsRetentionFixedTimeInterval: + description: A retention interval of fixed length, such as "7 days". properties: - data: - description: Relationships to user objects. - example: [] - items: - $ref: "#/components/schemas/RelationshipToUserData" - type: array + type: + $ref: "#/components/schemas/ProductAnalyticsRetentionFixedTimeIntervalType" + unit: + $ref: "#/components/schemas/ProductAnalyticsRetentionFixedTimeIntervalUnit" + value: + description: Length of the interval, expressed in `unit`. + example: 7 + exclusiveMinimum: true + format: double + minimum: 0 + type: number required: - - data + - type + - value + - unit type: object - Remediation: - description: Vulnerability remediation. + ProductAnalyticsRetentionFixedTimeIntervalType: + description: The discriminator identifying a fixed-length retention interval. + enum: + - fixed + example: fixed + type: string + x-enum-varnames: + - FIXED + ProductAnalyticsRetentionFixedTimeIntervalUnit: + description: Time unit for a fixed-length retention interval. + enum: + - day + - week + - month + example: day + type: string + x-enum-varnames: + - DAY + - WEEK + - MONTH + ProductAnalyticsRetentionGridCohort: + description: One row of the retention grid, holding the results for a single cohort. properties: - auto_solvable: - description: Whether the vulnerability can be resolved when recompiling the package or not. - example: false - type: boolean - avoided_advisories: - description: Avoided advisories. + cells: + description: The cells of the row, one per return period. items: - $ref: "#/components/schemas/Advisory" + $ref: "#/components/schemas/ProductAnalyticsRetentionGridCohortCell" type: array - fixed_advisories: - description: Remediation fixed advisories. + cohort_end_time: + description: End of the cohort window, in epoch milliseconds. + format: int64 + type: integer + cohort_index: + description: Zero-based index of the cohort in the grid. + format: int64 + type: integer + cohort_size: + description: Number of entities in the cohort. + format: int64 + type: integer + cohort_start_time: + description: Start of the cohort window, in epoch milliseconds. + format: int64 + type: integer + group_tags: + description: The group-by facet values that identify this row. items: - $ref: "#/components/schemas/Advisory" + description: A tag value for a group-by facet. + type: string type: array - library_name: - description: Library name remediating the vulnerability. - example: stdlib - type: string - library_version: - description: Library version remediating the vulnerability. - example: Upgrade to a version >= 1.20.0 + name: + description: Label identifying the cohort, such as the week it started. type: string - new_advisories: - description: New advisories. - items: - $ref: "#/components/schemas/Advisory" - type: array - remaining_advisories: - description: Remaining advisories. + type: + $ref: "#/components/schemas/ProductAnalyticsRetentionGridCohortType" + unit: + description: Unit definitions for the cell values. items: - $ref: "#/components/schemas/Advisory" + $ref: "#/components/schemas/ProductAnalyticsUnit" type: array + type: object + ProductAnalyticsRetentionGridCohortCell: + description: |- + One cell of the retention grid, holding the result for a single cohort over a single return period. + Aggregated rows omit the time and count fields. + properties: + cell_count: + description: Number of entities that returned during the period. + format: int64 + type: integer + cell_rate: + description: Fraction of the cohort that returned, between `0` and `1`. + format: double + type: number + cell_relative_value_change: + description: Change in the metric relative to the cohort baseline. + format: double + nullable: true + type: number + cell_value: + description: Value of the computed metric, when a metric other than the retention rate is requested. + format: double + nullable: true + type: number + is_partial_data: + description: Whether the return period is still open, so the numbers are not yet final. + type: boolean + return_period_end_time: + description: End of the return period, in epoch milliseconds. + format: int64 + type: integer + return_period_index: + description: Zero-based index of the return period this cell belongs to. + format: int64 + type: integer + return_period_start_time: + description: Start of the return period, in epoch milliseconds. + format: int64 + type: integer type: - description: Remediation type. - example: text - type: string - required: - - type - - library_name - - library_version - - auto_solvable - - fixed_advisories - - remaining_advisories - - new_advisories - - avoided_advisories + $ref: "#/components/schemas/ProductAnalyticsRetentionGridCohortType" type: object - ReorderRetentionFiltersRequest: - description: A list of retention filters to reorder. + ProductAnalyticsRetentionGridCohortType: + description: |- + Whether the row holds one cohort's own numbers, or the weighted roll-up across every cohort. + enum: + - raw + - aggregated + example: raw + type: string + x-enum-varnames: + - RAW + - AGGREGATED + ProductAnalyticsRetentionGridQuery: + description: Query definition for a retention grid or retention metadata request. properties: - data: - description: A list of retention filters objects. + computation_scope: + $ref: "#/components/schemas/ProductAnalyticsRetentionScope" + compute: + $ref: "#/components/schemas/ProductAnalyticsRetentionCompute" + group_by: + description: Splits the results by the values of one or more facets. items: - $ref: "#/components/schemas/RetentionFilterWithoutAttributes" + $ref: "#/components/schemas/ProductAnalyticsRetentionGroupBy" type: array + search: + $ref: "#/components/schemas/ProductAnalyticsRetentionSearch" required: - - data + - search + - compute type: object - ReorderRuleResourceArray: - description: The definition of `ReorderRuleResourceArray` object. - example: - data: - - id: "456" - type: arbitrary_rule - - id: "123" - type: arbitrary_rule - - id: "789" - type: arbitrary_rule + ProductAnalyticsRetentionGridRequest: + description: Request body for a retention grid query. properties: data: - description: The `ReorderRuleResourceArray` `data`. - items: - $ref: "#/components/schemas/ReorderRuleResourceData" - type: array + $ref: "#/components/schemas/ProductAnalyticsRetentionGridRequestData" required: - data type: object - ReorderRuleResourceData: - description: The definition of `ReorderRuleResourceData` object. + ProductAnalyticsRetentionGridRequestAttributes: + description: Attributes of a retention grid request. properties: - id: - description: The `ReorderRuleResourceData` `id`. - type: string + exclude_anonymous_traffic: + default: false + description: Whether to exclude sessions that are not tied to an identified user. + type: boolean + from: + description: Start of the query window, in epoch milliseconds. + example: 1756425600000 + format: int64 + type: integer + query: + $ref: "#/components/schemas/ProductAnalyticsRetentionGridQuery" + to: + description: End of the query window, in epoch milliseconds. + example: 1756857600000 + format: int64 + type: integer + required: + - from + - to + - query + type: object + ProductAnalyticsRetentionGridRequestData: + description: |- + The single JSON:API resource carrying a retention grid query. Its attributes hold the time + window to query and the cohort and return criteria that define the grid. + properties: + attributes: + $ref: "#/components/schemas/ProductAnalyticsRetentionGridRequestAttributes" type: - $ref: "#/components/schemas/ReorderRuleResourceDataType" + $ref: "#/components/schemas/ProductAnalyticsRetentionGridRequestType" required: - type + - attributes type: object - ReorderRuleResourceDataType: - default: arbitrary_rule - description: Arbitrary rule resource type. + ProductAnalyticsRetentionGridRequestType: + description: The resource type identifier for a retention grid request. enum: - - arbitrary_rule - example: arbitrary_rule + - retention_grid_request + example: retention_grid_request type: string x-enum-varnames: - - ARBITRARY_RULE - ReorderRulesetResourceArray: - description: The definition of `ReorderRulesetResourceArray` object. - example: - data: - - id: "55ef2385-9ae1-4410-90c4-5ac1b60fec10" - type: ruleset - - id: "a7b8c9d0-1234-5678-9abc-def012345678" - type: ruleset - - id: "f1e2d3c4-b5a6-9780-1234-567890abcdef" - type: ruleset + - RETENTION_GRID_REQUEST + ProductAnalyticsRetentionGridResponse: + description: Response for a retention grid query. properties: data: - description: The `ReorderRulesetResourceArray` `data`. - items: - $ref: "#/components/schemas/ReorderRulesetResourceData" - type: array + $ref: "#/components/schemas/ProductAnalyticsRetentionGridResponseData" required: - data type: object - ReorderRulesetResourceData: - description: The definition of `ReorderRulesetResourceData` object. + ProductAnalyticsRetentionGridResponseAttributes: + description: Attributes of a retention grid response, containing the cohort rows and the period columns. + properties: + cohorts: + description: The cohorts forming the rows of the grid. + items: + $ref: "#/components/schemas/ProductAnalyticsRetentionGridCohort" + type: array + retention_entity: + description: The entity whose retention was measured. + type: string + retention_periods: + description: The return periods forming the columns of the grid. + items: + $ref: "#/components/schemas/ProductAnalyticsRetentionPeriod" + type: array + unit: + description: Unit definitions for the grid values. + items: + $ref: "#/components/schemas/ProductAnalyticsUnit" + type: array + type: object + ProductAnalyticsRetentionGridResponseData: + description: |- + The single JSON:API resource holding a computed retention grid. Its attributes contain the + return periods forming the columns and the cohorts forming the rows. properties: + attributes: + $ref: "#/components/schemas/ProductAnalyticsRetentionGridResponseAttributes" id: - description: The `ReorderRulesetResourceData` `id`. + description: Unique identifier for this response data object. + example: 00000000-0000-0000-0000-000000000000 type: string type: - $ref: "#/components/schemas/ReorderRulesetResourceDataType" + $ref: "#/components/schemas/ProductAnalyticsRetentionGridResponseType" required: + - id - type + - attributes type: object - ReorderRulesetResourceDataType: - default: ruleset - description: Ruleset resource type. + ProductAnalyticsRetentionGridResponseType: + description: The resource type identifier for a retention grid response. enum: - - ruleset - example: ruleset + - retention_grid_response + example: retention_grid_response type: string x-enum-varnames: - - RULESET - ReportScheduleAuthor: - description: A user included as a related JSON:API resource. + - RETENTION_GRID_RESPONSE + ProductAnalyticsRetentionGroupBy: + description: Splits retention results by the values of a facet. properties: - attributes: - $ref: "#/components/schemas/ReportScheduleAuthorAttributes" - id: - description: The user UUID. - example: "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" + facet: + description: The attribute path to group by. + example: "@geo.country" + type: string + limit: + description: Maximum number of groups to return. Omit it to let the service choose. + example: 10 + format: int64 + minimum: 1 + type: integer + should_exclude_missing: + default: false + description: Whether to drop entities that have no value for the facet. + type: boolean + sort: + $ref: "#/components/schemas/ProductAnalyticsGroupBySort" + source: + description: Audience source backing the group-by, when grouping by an audience rather than a facet. type: string + target: + $ref: "#/components/schemas/ProductAnalyticsRetentionGroupByTarget" + required: + - target + - facet + type: object + ProductAnalyticsRetentionGroupByTarget: + description: Which axis of the retention grid a group-by applies to. + enum: + - cohort + - return_period + example: cohort + type: string + x-enum-varnames: + - COHORT + - RETURN_PERIOD + ProductAnalyticsRetentionIndexTarget: + description: Selects a cohort or return period by its zero-based position in the grid. + properties: type: - $ref: "#/components/schemas/ReportScheduleAuthorType" + $ref: "#/components/schemas/ProductAnalyticsRetentionIndexTargetType" + value: + description: Zero-based index of the targeted cohort or return period. + example: 0 + format: int64 + minimum: 0 + type: integer required: - type - - id - - attributes + - value type: object - ReportScheduleAuthorAttributes: - description: Attributes of the report author. + ProductAnalyticsRetentionIndexTargetType: + description: The discriminator identifying a target selected by index. + enum: + - index + example: index + type: string + x-enum-varnames: + - INDEX + ProductAnalyticsRetentionListColumn: + description: A column to include in each returned entity row. properties: - email: - description: The email address of the report author, or `null` if unavailable. - example: "user@example.com" - nullable: true - type: string - name: - description: The display name of the report author, or `null` if unavailable. - example: "Example User" - nullable: true + field: + $ref: "#/components/schemas/ProductAnalyticsRetentionListColumnField" + type: object + ProductAnalyticsRetentionListColumnField: + description: The attribute selected for a column. + properties: + path: + description: Attribute path of the column. + example: "@usr.email" type: string + type: object + ProductAnalyticsRetentionListQuery: + description: Query definition for a retention list request. + properties: + columns: + description: The attribute columns to include in each returned row. + items: + $ref: "#/components/schemas/ProductAnalyticsRetentionListColumn" + type: array + computation_scope: + $ref: "#/components/schemas/ProductAnalyticsRetentionCellScope" + limit: + description: Maximum number of rows to return. Use `0` for no limit. + example: 100 + format: int64 + minimum: 0 + type: integer + search: + $ref: "#/components/schemas/ProductAnalyticsRetentionSearch" required: - - name - - email + - search + - computation_scope type: object - ReportScheduleAuthorRelationship: - description: Relationship to the author of the report schedule. + ProductAnalyticsRetentionListRecord: + additionalProperties: {} + description: A single entity row, keyed by the requested column paths. + type: object + ProductAnalyticsRetentionListRequest: + description: Request body listing the individual entities behind one cell of the retention grid. properties: data: - $ref: "#/components/schemas/ReportScheduleAuthorRelationshipData" + $ref: "#/components/schemas/ProductAnalyticsRetentionListRequestData" required: - data type: object - ReportScheduleAuthorRelationshipData: - description: Relationship data for the author of the report schedule. + ProductAnalyticsRetentionListRequestAttributes: + description: Attributes of a retention list request. properties: - id: - description: The user UUID of the report schedule author. - example: "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" - type: string + from: + description: Start of the query window, in epoch milliseconds. + example: 1756425600000 + format: int64 + type: integer + query: + $ref: "#/components/schemas/ProductAnalyticsRetentionListQuery" + to: + description: End of the query window, in epoch milliseconds. + example: 1756857600000 + format: int64 + type: integer + required: + - from + - to + - query + type: object + ProductAnalyticsRetentionListRequestData: + description: |- + The single JSON:API resource carrying a retention list query. Its attributes hold the time + window, the cell to list, and the columns to return for each entity. + properties: + attributes: + $ref: "#/components/schemas/ProductAnalyticsRetentionListRequestAttributes" type: - $ref: "#/components/schemas/ReportScheduleAuthorType" + $ref: "#/components/schemas/ProductAnalyticsRetentionListRequestType" required: - - id - type + - attributes type: object - ReportScheduleAuthorType: - description: JSON:API resource type for the included report author. + ProductAnalyticsRetentionListRequestType: + description: The resource type identifier for a retention list request. enum: - - users - example: users + - retention_list_request + example: retention_list_request type: string x-enum-varnames: - - USERS - ReportScheduleCreateRequest: - description: Request body for creating a report schedule. + - RETENTION_LIST_REQUEST + ProductAnalyticsRetentionListResponse: + description: Response for a retention list query. properties: data: - $ref: "#/components/schemas/ReportScheduleCreateRequestData" + $ref: "#/components/schemas/ProductAnalyticsRetentionListResponseData" required: - data type: object - ReportScheduleCreateRequestAttributes: - description: The configuration of the report schedule to create. + ProductAnalyticsRetentionListResponseAttributes: + description: Attributes of a retention list response, containing the matching entity rows. properties: - delivery_format: - $ref: "#/components/schemas/ReportScheduleDeliveryFormat" - description: - description: A description of the report, up to 4096 characters. - example: "Weekly summary of infrastructure health." - maxLength: 4096 - type: string - recipients: - description: |- - The recipients of the report. Each entry is an email address, a Slack channel - reference in the form `slack:{team_id}.{channel_id}.{channel_name}`, or a Microsoft - Teams channel reference in the form `teams:{tenant_id}|{team_id}|{channel_id}`. - example: - - "user@example.com" - - "slack:T01234567.C01234567.alerts" - - "teams:11111111-1111-1111-1111-111111111111|22222222-2222-2222-2222-222222222222|19:exampleChannelId@thread.tacv2" + records: + description: The matching entity rows. items: - description: A single recipient (email address, Slack channel reference, or Microsoft Teams channel reference). - type: string + $ref: "#/components/schemas/ProductAnalyticsRetentionListRecord" type: array - resource_id: - description: The identifier of the dashboard or integration dashboard to render in the report. - example: "abc-def-ghi" + retention_entity: + description: The entity whose retention was measured. type: string - resource_type: - $ref: "#/components/schemas/ReportScheduleResourceType" - rrule: - description: The recurrence rule for the schedule, expressed as an iCalendar `RRULE` string. - example: "DTSTART;TZID=America/New_York:20260601T090000\nRRULE:FREQ=WEEKLY;BYDAY=MO;BYHOUR=9;BYMINUTE=0" + type: object + ProductAnalyticsRetentionListResponseData: + description: |- + The single JSON:API resource holding the entities behind one retention cell. Its attributes + contain the entity whose retention was measured and one row per matching entity. + properties: + attributes: + $ref: "#/components/schemas/ProductAnalyticsRetentionListResponseAttributes" + id: + description: Unique identifier for this response data object. + example: 00000000-0000-0000-0000-000000000000 type: string - tab_id: - description: The identifier of the dashboard tab to render, when the dashboard has tabs. - example: "66666666-7777-8888-9999-000000000000" - format: uuid - type: string - template_variables: - description: The dashboard template variables applied when rendering the report. - items: - $ref: "#/components/schemas/ReportScheduleTemplateVariable" - type: array - timeframe: - description: The relative timeframe of data to include in the report. - example: "1w" - type: string - timezone: - description: The IANA time zone identifier the recurrence rule is evaluated in. - example: "America/New_York" - type: string - title: - description: The title of the report, between 1 and 78 characters. - example: "Weekly Infrastructure Report" - maxLength: 78 - minLength: 1 - type: string - required: - - resource_id - - resource_type - - recipients - - rrule - - timezone - - template_variables - - timeframe - - title - - description - type: object - ReportScheduleCreateRequestData: - description: The JSON:API data object for a report schedule creation request. - properties: - attributes: - $ref: "#/components/schemas/ReportScheduleCreateRequestAttributes" type: - $ref: "#/components/schemas/ReportScheduleType" + $ref: "#/components/schemas/ProductAnalyticsRetentionListResponseType" required: + - id - type - attributes type: object - ReportScheduleDeliveryFormat: - description: |- - How a PDF-export report is delivered. `pdf` attaches a PDF file, `png` embeds - an inline PNG image, and `pdf_and_png` delivers both. - enum: - - pdf - - png - - pdf_and_png - example: pdf - type: string - x-enum-varnames: - - PDF - - PNG - - PDF_AND_PNG - ReportScheduleIncludedResource: - description: A related resource included with a report schedule. - oneOf: - - $ref: "#/components/schemas/ReportScheduleAuthor" - - $ref: "#/components/schemas/ReportScheduleResource" - ReportScheduleIncludedResourceType: - description: JSON:API resource type for an included report resource. + ProductAnalyticsRetentionListResponseType: + description: The resource type identifier for a retention list response. enum: - - resource - example: resource + - retention_list_response + example: retention_list_response type: string x-enum-varnames: - - RESOURCE - ReportScheduleIndexTemplateVariable: - description: Template variable metadata from a dashboard index. + - RETENTION_LIST_RESPONSE + ProductAnalyticsRetentionPeriod: + description: A return period definition, such as "1 week". properties: - available_values: - description: Available values for the template variable. - example: - - prod - - staging - items: - type: string - nullable: true - type: array - defaults: - description: Default values for the template variable. - example: - - prod - items: - type: string - nullable: true - type: array - name: - description: The template variable name. - example: env - nullable: true - type: string - prefix: - description: The tag prefix for the template variable, when available. - example: env - nullable: true + unit: + description: Time unit of the period, such as `day`, `week`, `month`, or `year`. + example: week type: string + value: + description: Length of the period, expressed in `unit`. + example: 1 + format: int64 + type: integer type: object - ReportScheduleListResourceRelationship: - description: Relationship to the report target resource. + ProductAnalyticsRetentionReturnCondition: + description: |- + When an entity counts as having returned. Use `conversion_on` to count only entities that + returned during the period itself, or `conversion_on_or_after` to also count later returns. + enum: + - conversion_on + - conversion_on_or_after + example: conversion_on_or_after + type: string + x-enum-varnames: + - CONVERSION_ON + - CONVERSION_ON_OR_AFTER + ProductAnalyticsRetentionReturnCriteria: + description: Defines the event that counts as a return, and the window in which it must occur. properties: - data: - $ref: "#/components/schemas/ReportScheduleListResourceRelationshipData" + base_query: + $ref: "#/components/schemas/ProductAnalyticsBaseQuery" + time_interval: + $ref: "#/components/schemas/ProductAnalyticsRetentionTimeInterval" required: - - data + - base_query type: object - ReportScheduleListResourceRelationshipData: - description: Relationship data for the report target resource. + ProductAnalyticsRetentionReturnPeriodScope: + description: Narrows a retention query to a single return-period column. properties: - id: - description: The resource identifier. - example: "abc-def-ghi" - type: string + target: + $ref: "#/components/schemas/ProductAnalyticsRetentionIndexTarget" type: - $ref: "#/components/schemas/ReportScheduleIncludedResourceType" + $ref: "#/components/schemas/ProductAnalyticsRetentionReturnPeriodScopeType" required: - - id - type + - target type: object - ReportScheduleListResponse: - description: Response containing a list of report schedules. + ProductAnalyticsRetentionReturnPeriodScopeType: + description: The discriminator identifying a scope narrowed to one return period. + enum: + - return_period + example: return_period + type: string + x-enum-varnames: + - RETURN_PERIOD + ProductAnalyticsRetentionScope: + description: |- + Restricts a retention query to part of the grid, so that results can be examined in detail. + Omit it to compute the whole grid. + oneOf: + - $ref: "#/components/schemas/ProductAnalyticsRetentionCohortScope" + - $ref: "#/components/schemas/ProductAnalyticsRetentionReturnPeriodScope" + - $ref: "#/components/schemas/ProductAnalyticsRetentionCellScope" + ProductAnalyticsRetentionSearch: + description: Defines the cohort and return criteria that make up a retention query. properties: - data: - description: The list of report schedules. - items: - $ref: "#/components/schemas/ReportScheduleListResponseData" - type: array - included: - description: Related resources included with the report schedules, such as authors and rendered resources. - items: - $ref: "#/components/schemas/ReportScheduleIncludedResource" - type: array - links: - $ref: "#/components/schemas/ReportScheduleListResponseLinks" - meta: - $ref: "#/components/schemas/ReportScheduleListResponseMeta" + cohort_criteria: + $ref: "#/components/schemas/ProductAnalyticsRetentionCohortCriteria" + filters: + $ref: "#/components/schemas/ProductAnalyticsRetentionFilters" + retention_entity: + $ref: "#/components/schemas/ProductAnalyticsRetentionEntity" + return_condition: + $ref: "#/components/schemas/ProductAnalyticsRetentionReturnCondition" + return_criteria: + $ref: "#/components/schemas/ProductAnalyticsRetentionReturnCriteria" required: - - data + - cohort_criteria + - retention_entity + - return_condition type: object - ReportScheduleListResponseAttributes: - description: The configuration and derived state of a report schedule in a list response. + ProductAnalyticsRetentionTimeInterval: + description: |- + A retention interval, either aligned to calendar boundaries or of a fixed length. + Cohort criteria use calendar intervals; return criteria use fixed intervals. + oneOf: + - $ref: "#/components/schemas/ProductAnalyticsRetentionCalendarTimeInterval" + - $ref: "#/components/schemas/ProductAnalyticsRetentionFixedTimeInterval" + ProductAnalyticsSankeyAggregatedNode: + description: One of the nodes rolled up into an aggregated node, retained so the roll-up can be broken down. properties: - delivery_format: - $ref: "#/components/schemas/ReportScheduleResponseAttributesDeliveryFormat" - description: - description: The description of the report. - example: "Weekly summary of infrastructure health." + id: + description: Unique identifier for the node. type: string - next_recurrence: - description: The Unix timestamp, in milliseconds, of the next scheduled delivery, or `null` if none is scheduled. - example: 1780923600000 + incoming_value: + description: Number of sessions entering the node. format: int64 - nullable: true type: integer - recipients: - description: The recipients of the report (email addresses, Slack channel references, or Microsoft Teams channel references). - example: - - "user@example.com" - - "slack:T01234567.C01234567.alerts" - - "teams:11111111-1111-1111-1111-111111111111|22222222-2222-2222-2222-222222222222|19:exampleChannelId@thread.tacv2" - items: - description: A single recipient (email address, Slack channel reference, or Microsoft Teams channel reference). - type: string - type: array - resource_id: - description: The identifier of the resource rendered in the report. - example: "abc-def-ghi" - type: string - resource_type: - $ref: "#/components/schemas/ReportScheduleResourceType" - rrule: - description: The recurrence rule for the schedule, expressed as an iCalendar `RRULE` string. - example: "DTSTART;TZID=America/New_York:20260601T090000\nRRULE:FREQ=WEEKLY;BYDAY=MO;BYHOUR=9;BYMINUTE=0" - type: string - status: - $ref: "#/components/schemas/ReportScheduleStatus" - template_variables: - description: The dashboard template variables applied when rendering the report. - items: - $ref: "#/components/schemas/ReportScheduleTemplateVariable" - type: array - timeframe: - description: The relative timeframe of data included in the report, or `null` if not set. - example: "1w" - nullable: true - type: string - timezone: - description: The IANA time zone identifier the recurrence rule is evaluated in. - example: "America/New_York" - type: string - title: - description: The title of the report. - example: "Weekly Infrastructure Report" - type: string - required: - - status - - resource_id - - resource_type - - recipients - - rrule - - timezone - - template_variables - - title - - description - - timeframe - - next_recurrence - type: object - ReportScheduleListResponseData: - description: The JSON:API data object representing a report schedule in a list response. - properties: - attributes: - $ref: "#/components/schemas/ReportScheduleListResponseAttributes" - id: - description: The unique identifier of the report schedule. - example: "11111111-2222-3333-4444-555555555555" + name: + description: The facet value the node represents. type: string - relationships: - $ref: "#/components/schemas/ReportScheduleListResponseRelationships" + outgoing_value: + description: Number of sessions leaving the node. + format: int64 + type: integer type: - $ref: "#/components/schemas/ReportScheduleType" - required: - - id - - type - - attributes - - relationships + $ref: "#/components/schemas/ProductAnalyticsSankeyAggregatedNodeType" + value: + description: Number of sessions passing through the node. + format: int64 + type: integer type: object - ReportScheduleListResponseLinks: - description: Pagination links for navigating a report schedule list response. + ProductAnalyticsSankeyAggregatedNodeType: + description: The resource type identifier for a node rolled up into an aggregated node. + enum: + - aggregated + type: string + x-enum-varnames: + - AGGREGATED + ProductAnalyticsSankeyDefinition: + description: The shape of the Sankey diagram, expressed as the facets to flow between and how many steps to show. properties: - first: - description: Link to the first page. - example: "https://api.datadoghq.com/api/v2/reporting/schedule/list?page[offset]=0&page[limit]=25" - nullable: true - type: string - last: - description: Link to the last page, or `null` if it is unavailable. - example: "https://api.datadoghq.com/api/v2/reporting/schedule/list?page[offset]=0&page[limit]=25" - nullable: true - type: string - next: - description: Link to the next page, or `null` if it is unavailable. - example: "https://api.datadoghq.com/api/v2/reporting/schedule/list?page[offset]=25&page[limit]=25" - nullable: true - type: string - prev: - description: Link to the previous page, or `null` if it is unavailable. - example: "https://api.datadoghq.com/api/v2/reporting/schedule/list?page[offset]=0&page[limit]=25" - nullable: true + entries_per_step: + description: |- + Maximum number of nodes to keep in each column. Remaining values are rolled up into an + aggregated node. Omit it, or send `0`, to use the default of `5`. + example: 10 + format: int64 + maximum: 10 + minimum: 0 + type: integer + number_of_steps: + description: |- + Number of intermediate columns between the source and the target. + Omit it, or send `0`, to use the default of `5`. + example: 3 + format: int64 + maximum: 10 + minimum: 0 + type: integer + source: + description: Facet forming the first column of the diagram. + example: "@view.name" type: string - self: - description: Link to the current page. - example: "https://api.datadoghq.com/api/v2/reporting/schedule/list?page[limit]=25" - nullable: true + target: + description: Facet forming the last column of the diagram. + example: "@view.name" type: string + required: + - source + - target type: object - ReportScheduleListResponseMeta: - description: Metadata for a paginated report schedule list response. - properties: - pagination: - $ref: "#/components/schemas/ReportScheduleListResponsePagination" - type: object - ReportScheduleListResponsePagination: - description: Offset and limit pagination metadata for a report schedule list response. + ProductAnalyticsSankeyLink: + description: A link of the Sankey diagram, representing the sessions flowing between two nodes. properties: - first_offset: - description: The first offset. - example: 0 + column: + description: Zero-based index of the column the link starts from. format: int64 type: integer - last_offset: - description: The last offset when the total count is known, or `null` if it is unavailable. - example: 0 + id: + description: Unique identifier for the link. + type: string + source: + description: Identifier of the node the link starts at. + type: string + target: + description: Identifier of the node the link ends at. + type: string + value: + description: Number of sessions flowing along the link. format: int64 - nullable: true type: integer - limit: - description: The maximum number of schedules returned. - example: 25 + type: object + ProductAnalyticsSankeyNode: + description: A node of the Sankey diagram, representing one facet value in one column. + properties: + aggregated_nodes: + description: The nodes rolled up into this one, when the node is an aggregate. + items: + $ref: "#/components/schemas/ProductAnalyticsSankeyAggregatedNode" + type: array + column: + description: Zero-based index of the column the node sits in. format: int64 type: integer - next_offset: - description: The next offset. - example: 25 + dropoff_value: + description: Number of sessions that ended at the node. format: int64 type: integer - offset: - description: The current offset. - example: 0 + id: + description: Unique identifier for the node. + type: string + incoming_value: + description: Number of sessions entering the node. format: int64 type: integer - prev_offset: - description: The previous offset. - example: 0 + name: + description: The facet value the node represents. + type: string + outgoing_value: + description: Number of sessions leaving the node. format: int64 type: integer - total: - description: The total number of matching schedules. - example: 1 + type: + $ref: "#/components/schemas/ProductAnalyticsSankeyNodeType" + value: + description: Number of sessions passing through the node. format: int64 type: integer - type: - $ref: "#/components/schemas/ReportScheduleListResponsePaginationType" type: object - ReportScheduleListResponsePaginationType: - description: The pagination type. + ProductAnalyticsSankeyNodeType: + description: |- + The kind of node. `regular` is a single facet value, `other` rolls up the values that did not + fit within `entries_per_step`, and `dropoff` collects the sessions that ended at this column. enum: - - offset_limit - example: offset_limit + - regular + - other + - dropoff type: string x-enum-varnames: - - OFFSET_LIMIT - ReportScheduleListResponseRelationships: - description: Relationships for a report schedule in a list response. - properties: - author: - $ref: "#/components/schemas/ReportScheduleAuthorRelationship" - resource: - $ref: "#/components/schemas/ReportScheduleListResourceRelationship" - required: - - author - type: object - ReportSchedulePatchRequest: - description: Request body for updating a report schedule. + - REGULAR + - OTHER + - DROPOFF + ProductAnalyticsSankeyRequest: + description: Request body for a Sankey diagram query. properties: data: - $ref: "#/components/schemas/ReportSchedulePatchRequestData" + $ref: "#/components/schemas/ProductAnalyticsSankeyRequestData" required: - data type: object - ReportSchedulePatchRequestAttributes: - description: |- - The updated configuration of the report schedule. These values replace the existing - ones; the targeted resource (`resource_id` and `resource_type`) cannot be changed. - properties: - delivery_format: - $ref: "#/components/schemas/ReportScheduleDeliveryFormat" - description: - description: A description of the report, up to 4096 characters. - example: "Updated weekly summary of infrastructure health." - maxLength: 4096 - type: string - recipients: - description: |- - The recipients of the report. Each entry is an email address, a Slack channel - reference in the form `slack:{team_id}.{channel_id}.{channel_name}`, or a Microsoft - Teams channel reference in the form `teams:{tenant_id}|{team_id}|{channel_id}`. - example: - - "user@example.com" - - "slack:T01234567.C01234567.alerts" - - "teams:11111111-1111-1111-1111-111111111111|22222222-2222-2222-2222-222222222222|19:exampleChannelId@thread.tacv2" - items: - description: A single recipient (email address, Slack channel reference, or Microsoft Teams channel reference). - type: string - type: array - rrule: - description: The recurrence rule for the schedule, expressed as an iCalendar `RRULE` string. - example: "DTSTART;TZID=America/New_York:20260601T090000\nRRULE:FREQ=WEEKLY;BYDAY=MO;BYHOUR=9;BYMINUTE=0" - type: string - tab_id: - description: The identifier of the dashboard tab to render, when the dashboard has tabs. - example: "66666666-7777-8888-9999-000000000000" - format: uuid - type: string - template_variables: - description: The dashboard template variables applied when rendering the report. - items: - $ref: "#/components/schemas/ReportScheduleTemplateVariable" - type: array - timeframe: - description: The relative timeframe of data to include in the report. - example: "1w" - type: string - timezone: - description: The IANA time zone identifier the recurrence rule is evaluated in. - example: "America/New_York" - type: string - title: - description: The title of the report, between 1 and 78 characters. - example: "Weekly Infrastructure Report" - maxLength: 78 - minLength: 1 - type: string - required: - - recipients - - rrule - - timezone - - template_variables - - timeframe - - title - - description - type: object - ReportSchedulePatchRequestData: - description: The JSON:API data object for a report schedule update request. + ProductAnalyticsSankeyRequestAttributes: + description: Attributes of a Sankey request. properties: - attributes: - $ref: "#/components/schemas/ReportSchedulePatchRequestAttributes" - type: - $ref: "#/components/schemas/ReportScheduleType" + definition: + $ref: "#/components/schemas/ProductAnalyticsSankeyDefinition" + search: + $ref: "#/components/schemas/ProductAnalyticsSankeySearch" + time: + $ref: "#/components/schemas/ProductAnalyticsSankeyTime" required: - - type - - attributes + - time + - search + - definition type: object - ReportScheduleResource: - description: A report target resource included as a related JSON:API resource. + ProductAnalyticsSankeyRequestData: + description: |- + The single JSON:API resource carrying a Sankey query. Its attributes hold the time window to + query, the search that selects the sessions, and the definition of the diagram to build. properties: attributes: - $ref: "#/components/schemas/ReportScheduleResourceAttributes" - id: - description: The resource identifier. - example: "abc-def-ghi" - type: string + $ref: "#/components/schemas/ProductAnalyticsSankeyRequestAttributes" type: - $ref: "#/components/schemas/ReportScheduleIncludedResourceType" + $ref: "#/components/schemas/ProductAnalyticsSankeyRequestType" required: - type - - id - attributes type: object - ReportScheduleResourceAttributes: - description: Attributes of an included report target resource. - properties: - resource_type: - $ref: "#/components/schemas/ReportScheduleResourceType" - template_variables: - description: Template variable metadata from the dashboard resource, when available. - items: - $ref: "#/components/schemas/ReportScheduleIndexTemplateVariable" - nullable: true - type: array - title: - description: The title of the dashboard or integration dashboard resource, when available. - example: "Infrastructure Overview" - nullable: true - type: string - required: - - resource_type - type: object - ReportScheduleResourceType: - description: The type of dashboard resource the report schedule targets. + ProductAnalyticsSankeyRequestType: + description: The resource type identifier for a Sankey request. enum: - - dashboard - - integration_dashboard - example: dashboard + - sankey_request + example: sankey_request type: string x-enum-varnames: - - DASHBOARD - - INTEGRATION_DASHBOARD - ReportScheduleResponse: - description: Response containing a single report schedule. + - SANKEY_REQUEST + ProductAnalyticsSankeyResponse: + description: Response for a Sankey diagram query. properties: data: - $ref: "#/components/schemas/ReportScheduleResponseData" - included: - description: Related resources included with the report schedule, such as the author. - items: - $ref: "#/components/schemas/ReportScheduleIncludedResource" - type: array + $ref: "#/components/schemas/ProductAnalyticsSankeyResponseData" required: - data type: object - ReportScheduleResponseAttributes: - description: The configuration and derived state of a report schedule. + ProductAnalyticsSankeyResponseAttributes: + description: Attributes of a Sankey response, containing the nodes and the links between them. properties: - delivery_format: - $ref: "#/components/schemas/ReportScheduleResponseAttributesDeliveryFormat" - description: - description: The description of the report. - example: "Weekly summary of infrastructure health." - type: string - next_recurrence: - description: The Unix timestamp, in milliseconds, of the next scheduled delivery, or `null` if none is scheduled. - example: 1780923600000 - format: int64 - nullable: true - type: integer - recipients: - description: The recipients of the report (email addresses, Slack channel references, or Microsoft Teams channel references). - example: - - "user@example.com" - - "slack:T01234567.C01234567.alerts" - - "teams:11111111-1111-1111-1111-111111111111|22222222-2222-2222-2222-222222222222|19:exampleChannelId@thread.tacv2" + links: + description: The links of the diagram, one per pair of connected nodes. items: - description: A single recipient (email address, Slack channel reference, or Microsoft Teams channel reference). - type: string + $ref: "#/components/schemas/ProductAnalyticsSankeyLink" type: array - resource_id: - description: The identifier of the resource rendered in the report. - example: "abc-def-ghi" - type: string - resource_type: - $ref: "#/components/schemas/ReportScheduleResourceType" - rrule: - description: The recurrence rule for the schedule, expressed as an iCalendar `RRULE` string. - example: "DTSTART;TZID=America/New_York:20260601T090000\nRRULE:FREQ=WEEKLY;BYDAY=MO;BYHOUR=9;BYMINUTE=0" - type: string - status: - $ref: "#/components/schemas/ReportScheduleStatus" - tab_id: - description: The identifier of the dashboard tab rendered in the report, or `null` if not set. - example: "66666666-7777-8888-9999-000000000000" - nullable: true - type: string - template_variables: - description: The dashboard template variables applied when rendering the report. + nodes: + description: The nodes of the diagram, one per facet value and column. items: - $ref: "#/components/schemas/ReportScheduleTemplateVariable" + $ref: "#/components/schemas/ProductAnalyticsSankeyNode" type: array - timeframe: - description: The relative timeframe of data included in the report, or `null` if not set. - example: "1w" - nullable: true - type: string - timezone: - description: The IANA time zone identifier the recurrence rule is evaluated in. - example: "America/New_York" - type: string - title: - description: The title of the report. - example: "Weekly Infrastructure Report" - type: string - required: - - status - - resource_id - - resource_type - - recipients - - rrule - - timezone - - template_variables - - title - - description - - timeframe - - next_recurrence - - tab_id type: object - ReportScheduleResponseAttributesDeliveryFormat: - description: The delivery format for dashboard report schedules, or `null` if not set. - enum: - - pdf - - png - - pdf_and_png - example: pdf - nullable: true - type: string - x-enum-varnames: - - PDF - - PNG - - PDF_AND_PNG - ReportScheduleResponseData: - description: The JSON:API data object representing a report schedule. + ProductAnalyticsSankeyResponseData: + description: |- + The single JSON:API resource holding a computed Sankey diagram. Its attributes contain the + nodes of every column and the links that carry sessions between them. properties: attributes: - $ref: "#/components/schemas/ReportScheduleResponseAttributes" + $ref: "#/components/schemas/ProductAnalyticsSankeyResponseAttributes" id: - description: The unique identifier of the report schedule. - example: "11111111-2222-3333-4444-555555555555" + description: Unique identifier for this response data object. + example: 00000000-0000-0000-0000-000000000000 type: string - relationships: - $ref: "#/components/schemas/ReportScheduleResponseRelationships" type: - $ref: "#/components/schemas/ReportScheduleType" + $ref: "#/components/schemas/ProductAnalyticsSankeyResponseType" required: - id - type - attributes - - relationships - type: object - ReportScheduleResponseRelationships: - description: Relationships for the report schedule. - properties: - author: - $ref: "#/components/schemas/ReportScheduleAuthorRelationship" - required: - - author type: object - ReportScheduleStatus: - description: Whether the schedule is currently delivering reports (`active`) or paused (`inactive`). + ProductAnalyticsSankeyResponseType: + description: The resource type identifier for a Sankey response. enum: - - active - - inactive - example: active + - sankey_response + example: sankey_response type: string x-enum-varnames: - - ACTIVE - - INACTIVE - ReportScheduleTemplateVariable: - description: A dashboard template variable applied when rendering the report. + - SANKEY_RESPONSE + ProductAnalyticsSankeySearch: + description: Selects the sessions a Sankey diagram is built from. properties: - name: - description: The name of the template variable. - example: env + audience_filters: + $ref: "#/components/schemas/ProductAnalyticsAudienceFilters" + join_keys: + $ref: "#/components/schemas/ProductAnalyticsJoinKeys" + query: + description: Datadog search query restricting the events considered. + example: "@type:view" type: string - values: - description: The selected values for the template variable. - example: - - "prod" - items: - description: A single selected template variable value. - type: string - type: array - required: - - name - - values - type: object - ReportScheduleToggleRequest: - description: Request body for toggling a report schedule. - properties: - data: - $ref: "#/components/schemas/ReportScheduleToggleRequestData" - required: - - data - type: object - ReportScheduleToggleRequestAttributes: - description: The status to set on the report schedule. - properties: - status: - $ref: "#/components/schemas/ReportScheduleStatus" - required: - - status type: object - ReportScheduleToggleRequestData: - description: The JSON:API data object for a report schedule toggle request. + ProductAnalyticsSankeyTime: + description: The time window a Sankey query covers. properties: - attributes: - $ref: "#/components/schemas/ReportScheduleToggleRequestAttributes" - type: - $ref: "#/components/schemas/ReportScheduleType" + from: + description: Start of the query window, in epoch milliseconds. + example: 1756425600000 + format: int64 + type: integer + to: + description: End of the query window, in epoch milliseconds. + example: 1756857600000 + format: int64 + type: integer required: - - type - - attributes - type: object - ReportScheduleType: - description: JSON:API resource type for report schedules. - enum: - - schedule - example: schedule - type: string - x-enum-varnames: - - SCHEDULE - ResolveVulnerableSymbolsRequest: - description: The top-level request object for resolving vulnerable symbols in a set of packages. - properties: - data: - $ref: "#/components/schemas/ResolveVulnerableSymbolsRequestData" + - from + - to type: object - ResolveVulnerableSymbolsRequestData: - description: >- - The data object in a request to resolve vulnerable symbols, containing the package PURLs and request type. + ProductAnalyticsScalarColumn: + description: A column in a scalar response. properties: - attributes: - $ref: "#/components/schemas/ResolveVulnerableSymbolsRequestDataAttributes" - id: - description: An optional identifier for this request data object. + meta: + $ref: "#/components/schemas/ProductAnalyticsScalarColumnMeta" + name: + description: Column name (facet name for group-by, or "query"). type: string type: - $ref: "#/components/schemas/ResolveVulnerableSymbolsRequestDataType" - required: - - type + $ref: "#/components/schemas/ProductAnalyticsScalarColumnType" + values: + description: Column values. + items: + description: A single cell value within the column (string for group-by columns, number for metric columns). + type: array type: object - ResolveVulnerableSymbolsRequestDataAttributes: - description: >- - The attributes of a request to resolve vulnerable symbols, containing the list of package PURLs to check. + ProductAnalyticsScalarColumnMeta: + description: Metadata associated with a scalar response column, including optional unit information. properties: - purls: - description: The list of Package URLs (PURLs) for which to resolve vulnerable symbols. + unit: + description: Unit definitions for the column values, if applicable. items: - description: A Package URL (PURL) identifying a specific package and version. - type: string + $ref: "#/components/schemas/ProductAnalyticsUnit" + nullable: true type: array type: object - ResolveVulnerableSymbolsRequestDataType: - default: resolve-vulnerable-symbols-request - description: The type identifier for requests to resolve vulnerable symbols. + ProductAnalyticsScalarColumnType: + description: Column type. enum: - - resolve-vulnerable-symbols-request - example: resolve-vulnerable-symbols-request + - number + - group type: string x-enum-varnames: - - RESOLVE_VULNERABLE_SYMBOLS_REQUEST - ResolveVulnerableSymbolsResponse: - description: The top-level response object returned when resolving vulnerable symbols for a set of packages. + - NUMBER + - GROUP + ProductAnalyticsScalarResponse: + description: Response for a scalar analytics query. properties: data: - $ref: "#/components/schemas/ResolveVulnerableSymbolsResponseData" + $ref: "#/components/schemas/ProductAnalyticsScalarResponseData" + meta: + $ref: "#/components/schemas/ProductAnalyticsResponseMeta" type: object - ResolveVulnerableSymbolsResponseData: - description: >- - The data object in a response for resolving vulnerable symbols, containing the result attributes and response type. + ProductAnalyticsScalarResponseAttributes: + description: Attributes of a scalar analytics response, containing the result columns. + properties: + columns: + description: The list of result columns, each containing values and metadata. + items: + $ref: "#/components/schemas/ProductAnalyticsScalarColumn" + type: array + type: object + ProductAnalyticsScalarResponseData: + description: Data object for a scalar response. properties: attributes: - $ref: "#/components/schemas/ResolveVulnerableSymbolsResponseDataAttributes" + $ref: "#/components/schemas/ProductAnalyticsScalarResponseAttributes" id: - description: The unique identifier for this response data object. + description: Unique identifier for this response data object. type: string type: - $ref: "#/components/schemas/ResolveVulnerableSymbolsResponseDataType" - required: - - type - type: object - ResolveVulnerableSymbolsResponseDataAttributes: - description: The attributes of a response containing resolved vulnerable symbols, organized by package. - properties: - results: - description: The list of resolved vulnerable symbol results, one entry per queried package. - items: - $ref: "#/components/schemas/ResolveVulnerableSymbolsResponseResults" - type: array + $ref: "#/components/schemas/ProductAnalyticsScalarResponseType" type: object - ResolveVulnerableSymbolsResponseDataType: - default: resolve-vulnerable-symbols-response - description: The type identifier for responses containing resolved vulnerable symbols. + ProductAnalyticsScalarResponseType: + description: The resource type identifier for a scalar analytics response. enum: - - resolve-vulnerable-symbols-response - example: resolve-vulnerable-symbols-response + - scalar_response type: string x-enum-varnames: - - RESOLVE_VULNERABLE_SYMBOLS_RESPONSE - ResolveVulnerableSymbolsResponseResults: - description: The result of resolving vulnerable symbols for a specific package, identified by its PURL. + - SCALAR_RESPONSE + ProductAnalyticsSerie: + description: A series in a timeseries response. properties: - purl: - description: >- - The Package URL (PURL) uniquely identifying the package for which vulnerable symbols are resolved. - type: string - vulnerable_symbols: - description: The list of vulnerable symbol groups found in this package, organized by advisory. + group_tags: + description: The group-by tag values that identify this series. items: - $ref: "#/components/schemas/ResolveVulnerableSymbolsResponseResultsVulnerableSymbols" + description: A tag value for a group-by facet. + type: string type: array - type: object - ResolveVulnerableSymbolsResponseResultsVulnerableSymbols: - description: A collection of vulnerable symbols associated with a specific security advisory. - properties: - advisory_id: - description: The identifier of the security advisory that describes the vulnerability. - type: string - symbols: - description: The list of symbols that are vulnerable according to this advisory. + query_index: + description: The index of the query that produced this series. + format: int64 + type: integer + unit: + description: Unit definitions for the series values. items: - $ref: "#/components/schemas/ResolveVulnerableSymbolsResponseResultsVulnerableSymbolsSymbols" + $ref: "#/components/schemas/ProductAnalyticsUnit" type: array type: object - ResolveVulnerableSymbolsResponseResultsVulnerableSymbolsSymbols: - description: A symbol identified as vulnerable within a dependency, including its name, type, and value. + ProductAnalyticsServerSideEventError: + description: Error details. properties: - name: - description: The name of the vulnerable symbol. - type: string - type: - description: The type classification of the vulnerable symbol (e.g., function, class, variable). + detail: + description: Error message. + example: "Malformed payload" type: string - value: - description: The value or identifier associated with the vulnerable symbol. + status: + description: Error code. + example: "400" type: string - type: object - ResourceFilterAttributes: - description: Attributes of a resource filter. - example: - aws: - "123456789": - - environment:production - - team:devops - azure: - sub-001: - - app:frontend - gcp: - project-abc: - - region:us-central1 - properties: - cloud_provider: - additionalProperties: - additionalProperties: - items: - description: Tag filter in format "key:value" - example: environment:production - type: string - type: array - type: object - description: A map of cloud provider names (e.g., "aws", "gcp", "azure") to a map of account/resource IDs and their associated tag filters. - type: object - uuid: - description: The UUID of the resource filter. + title: + description: Error title. + example: "Bad Request" type: string - required: - - cloud_provider type: object - ResourceFilterRequestType: - description: Constant string to identify the request type. - enum: - - csm_resource_filter - example: csm_resource_filter - type: string - x-enum-varnames: - - CSM_RESOURCE_FILTER - ResponseMetaAttributes: - description: Object describing meta attributes of response. + ProductAnalyticsServerSideEventErrors: + description: Error response. properties: - page: - $ref: "#/components/schemas/Pagination" + errors: + description: Structured errors. + items: + $ref: "#/components/schemas/ProductAnalyticsServerSideEventError" + type: array type: object - RestrictionPolicy: - description: Restriction policy object. + ProductAnalyticsServerSideEventItem: + description: A Product Analytics server-side event. properties: - attributes: - $ref: "#/components/schemas/RestrictionPolicyAttributes" - id: - description: The identifier, always equivalent to the value specified in the `resource_id` path parameter. - example: "dashboard:abc-def-ghi" - type: string + account: + $ref: "#/components/schemas/ProductAnalyticsServerSideEventItemAccount" + application: + $ref: "#/components/schemas/ProductAnalyticsServerSideEventItemApplication" + event: + $ref: "#/components/schemas/ProductAnalyticsServerSideEventItemEvent" + session: + $ref: "#/components/schemas/ProductAnalyticsServerSideEventItemSession" type: - $ref: "#/components/schemas/RestrictionPolicyType" + $ref: "#/components/schemas/ProductAnalyticsServerSideEventItemType" + usr: + $ref: "#/components/schemas/ProductAnalyticsServerSideEventItemUsr" required: + - application + - event - type + type: object + ProductAnalyticsServerSideEventItemAccount: + description: The account linked to your event. + properties: + id: + description: The account ID used in Datadog. + example: "account-67890" + type: string + required: - id - - attributes type: object - RestrictionPolicyAttributes: - description: Restriction policy attributes. - example: {"bindings": []} + ProductAnalyticsServerSideEventItemApplication: + description: The application in which you want to send your events. properties: - bindings: - description: An array of bindings. - items: - $ref: "#/components/schemas/RestrictionPolicyBinding" - type: array + id: + description: |- + The application ID of your application. It can be found in your + [application management page](https://app.datadoghq.com/rum/list). + example: "123abcde-123a-123b-1234-123456789abc" + type: string required: - - bindings + - id type: object - RestrictionPolicyBinding: - description: Specifies which principals are associated with a relation. + ProductAnalyticsServerSideEventItemEvent: + description: Fields used for the event. properties: - principals: + name: description: |- - An array of principals. A principal is a subject or group of subjects. - Each principal is formatted as `type:id`. Supported types: `role`, `team`, `user`, and `org`. - The org ID can be obtained through the api/v2/current_user API. - The user principal type accepts service account IDs. - example: ["role:00000000-0000-1111-0000-000000000000"] - items: - description: |- - Subject or group of subjects. Each principal is formatted as `type:id`. - Supported types: `role`, `team`, `user`, and `org`. - The org ID can be obtained through the api/v2/current_user API. - The user principal type accepts service account IDs. - type: string - type: array - relation: - description: The role/level of access. - example: editor + The name of your event, which is used for search in the same way as view or action names. + example: "payment.processed" type: string required: - - relation - - principals + - name type: object - RestrictionPolicyResponse: - description: Response containing information about a single restriction policy. + ProductAnalyticsServerSideEventItemSession: + description: The session linked to your event. properties: - data: - $ref: "#/components/schemas/RestrictionPolicy" + id: + description: The session ID captured by the SDK. + example: "session-abcdef" + type: string required: - - data + - id type: object - RestrictionPolicyType: - default: restriction_policy - description: Restriction policy type. + ProductAnalyticsServerSideEventItemType: + description: The type of Product Analytics event. Must be `server` for server-side events. enum: - - restriction_policy - example: restriction_policy + - server + example: server type: string x-enum-varnames: - - RESTRICTION_POLICY - RestrictionPolicyUpdateRequest: - description: Update request for a restriction policy. - properties: - data: - $ref: "#/components/schemas/RestrictionPolicy" - required: - - data - type: object - RestrictionQueryAttributes: - description: Attributes of the restriction query. - properties: - created_at: - description: Creation time of the restriction query. - example: "2020-03-17T21:06:44.000Z" - format: date-time - readOnly: true - type: string - last_modifier_email: - description: Email of the user who last modified this restriction query. - example: "user@example.com" - readOnly: true - type: string - last_modifier_name: - description: Name of the user who last modified this restriction query. - example: "John Doe" - readOnly: true - type: string - modified_at: - description: Time of last restriction query modification. - example: "2020-03-17T21:15:15.000Z" - format: date-time - readOnly: true - type: string - restriction_query: - description: The query that defines the restriction. Only the content matching the query can be returned. - example: "env:sandbox" - type: string - role_count: - description: Number of roles associated with this restriction query. - example: 3 - format: int64 - readOnly: true - type: integer - user_count: - description: Number of users associated with this restriction query. - example: 5 - format: int64 - readOnly: true - type: integer - type: object - RestrictionQueryCreateAttributes: - description: Attributes of the created restriction query. + - SERVER + ProductAnalyticsServerSideEventItemUsr: + description: The user linked to your event. properties: - restriction_query: - description: The restriction query. - example: "env:sandbox" + id: + description: The user ID used in Datadog. + example: "user-12345" type: string required: - - restriction_query - type: object - RestrictionQueryCreateData: - description: Data related to the creation of a restriction query. - properties: - attributes: - $ref: "#/components/schemas/RestrictionQueryCreateAttributes" - type: - $ref: "#/components/schemas/LogsRestrictionQueriesType" + - id type: object - RestrictionQueryCreatePayload: - description: Create a restriction query. + ProductAnalyticsTimeseriesResponse: + description: Response for a timeseries analytics query. properties: data: - $ref: "#/components/schemas/RestrictionQueryCreateData" + $ref: "#/components/schemas/ProductAnalyticsTimeseriesResponseData" + meta: + $ref: "#/components/schemas/ProductAnalyticsResponseMeta" type: object - RestrictionQueryListResponse: - description: Response containing information about multiple restriction queries. + ProductAnalyticsTimeseriesResponseAttributes: + description: |- + Attributes of a timeseries analytics response, containing series data, timestamps, and + interval definitions. properties: - data: - description: Array of returned restriction queries. + intervals: + description: Interval definitions describing the time buckets used in the response. items: - $ref: "#/components/schemas/RestrictionQueryWithoutRelationships" + $ref: "#/components/schemas/ProductAnalyticsInterval" + type: array + series: + description: The list of series, each corresponding to a query or group-by combination. + items: + $ref: "#/components/schemas/ProductAnalyticsSerie" + type: array + times: + description: Timestamps for each data point (epoch milliseconds). + items: + description: Epoch timestamp in milliseconds. + format: int64 + type: integer + type: array + values: + description: Values for each series at each time point. + items: + description: Array of numeric values for a single series across all time points. + items: + description: Numeric value at a time point, or null if no data is available. + format: double + nullable: true + type: number + type: array type: array type: object - RestrictionQueryResponseIncludedItem: - description: An object related to a restriction query. - oneOf: - - $ref: "#/components/schemas/RestrictionQueryRole" - RestrictionQueryRole: - description: Partial role object. + ProductAnalyticsTimeseriesResponseData: + description: Data object for a timeseries analytics response. properties: attributes: - $ref: "#/components/schemas/RestrictionQueryRoleAttribute" + $ref: "#/components/schemas/ProductAnalyticsTimeseriesResponseAttributes" id: - description: ID of the role. - example: "" + description: Unique identifier for this response data object. type: string type: - $ref: "#/components/schemas/RolesType" - required: - - type - - id - - attributes + $ref: "#/components/schemas/ProductAnalyticsTimeseriesResponseType" type: object - RestrictionQueryRoleAttribute: - description: Attributes of the role for a restriction query. + ProductAnalyticsTimeseriesResponseType: + description: The resource type identifier for a timeseries analytics response. + enum: + - timeseries_response + type: string + x-enum-varnames: + - TIMESERIES_RESPONSE + ProductAnalyticsUnit: + description: A unit definition for metric values. properties: + family: + description: The unit family (e.g., time, bytes). + example: time + type: string + id: + description: Numeric identifier for the unit. + format: int64 + type: integer name: - description: The role name. - example: "Datadog Admin Role" + description: The full name of the unit (e.g., nanosecond). + example: nanosecond type: string - type: object - RestrictionQueryRolesResponse: - description: Response containing information about roles attached to a restriction query. - properties: - data: - description: Array of roles. - items: - $ref: "#/components/schemas/RestrictionQueryRole" - type: array - type: object - RestrictionQueryUpdateAttributes: - description: Attributes of the edited restriction query. - properties: - restriction_query: - description: The restriction query. - example: "env:sandbox" + plural: + description: Plural form of the unit name (e.g., nanoseconds). + type: string + scale_factor: + description: Conversion factor relative to the base unit of the family. + format: double + type: number + short_name: + description: Abbreviated unit name (e.g., ns). type: string - required: - - restriction_query - type: object - RestrictionQueryUpdateData: - description: Data related to the update of a restriction query. - properties: - attributes: - $ref: "#/components/schemas/RestrictionQueryUpdateAttributes" - type: - $ref: "#/components/schemas/LogsRestrictionQueriesType" - type: object - RestrictionQueryUpdatePayload: - description: Update a restriction query. - properties: - data: - $ref: "#/components/schemas/RestrictionQueryUpdateData" type: object - RestrictionQueryWithRelationships: - description: Restriction query object returned by the API. + ProductCatalogSKUAllotment: + description: |- + A quantity of one SKU that is included with, and consumed before, the billable usage of + another SKU. properties: - attributes: - $ref: "#/components/schemas/RestrictionQueryAttributes" - id: - description: ID of the restriction query. - example: "79a0e60a-644a-11ea-ad29-43329f7f58b5" + child_sku_code: + description: The code of the SKU that receives the allotment. + example: CUSTOM-EVENTS type: string - relationships: - $ref: "#/components/schemas/UserRelationships" - type: - $ref: "#/components/schemas/LogsRestrictionQueriesType" + hourly_quantity: + description: |- + The quantity allotted per hour. Fractional for some allotments, and equal to + `monthly_quantity` for others, depending on how the child SKU meters usage. + example: 0.684932 + format: double + type: number + monthly_quantity: + description: The quantity allotted per month. + example: 500 + format: int64 + type: integer + parent_sku_code: + description: |- + The code of the SKU that provides the allotment. Always the code of the SKU the + allotment is returned under. + example: HOSTS-PRO + type: string + required: + - parent_sku_code + - child_sku_code + - monthly_quantity + - hourly_quantity type: object - RestrictionQueryWithRelationshipsResponse: - description: Response containing information about a single restriction query. + ProductCatalogSKUDataAttributesResponse: + description: The pricing and allotment metadata of a SKU. properties: - data: - $ref: "#/components/schemas/RestrictionQueryWithRelationships" - included: - description: Array of objects related to the restriction query. + allotments: + description: |- + The allotments the SKU provides to other SKUs. Every entry carries the code of this + SKU as its `parent_sku_code`. Empty when the SKU provides no allotments. items: - $ref: "#/components/schemas/RestrictionQueryResponseIncludedItem" + $ref: "#/components/schemas/ProductCatalogSKUAllotment" type: array - type: object - RestrictionQueryWithoutRelationships: - description: Restriction query object returned by the API. - properties: - attributes: - $ref: "#/components/schemas/RestrictionQueryAttributes" - id: - description: ID of the restriction query. - example: "79a0e60a-644a-11ea-ad29-43329f7f58b5" + billing_dimension: + description: |- + The identifier of the billing dimension the SKU is billed on, as used by the usage + metering endpoints. Several SKUs can share one billing dimension, so this value does + not identify a SKU. + example: infra_host type: string - type: - default: logs_restriction_queries - description: Restriction queries type. - example: "logs_restriction_queries" - readOnly: true + billing_units: + description: |- + The billable usage unit the SKU is priced per. `null` for SKUs that are not priced + per unit of usage, such as those whose `pricing_type` is `percent`. + example: hosts + nullable: true type: string - type: object - RestrictionQueryWithoutRelationshipsResponse: - description: Response containing information about a single restriction query. - properties: - data: - $ref: "#/components/schemas/RestrictionQueryWithoutRelationships" - type: object - RetentionFilter: - description: The definition of the retention filter. - properties: - attributes: - $ref: "#/components/schemas/RetentionFilterAttributes" - id: - description: The ID of the retention filter. - example: "7RBOb7dLSYWI01yc3pIH8w" + currency: + description: The ISO-4217 code of the currency the prices are expressed in. + example: USD + type: string + default_on_demand_option: + $ref: "#/components/schemas/ProductCatalogSKUOnDemandOption" + number_of_units_included_in_price: + description: |- + The number of billable usage units that one unit of price covers. Divide measured + usage by this value before multiplying by the price. For example, a SKU priced at `18.00` with + `number_of_units_included_in_price` of `1` costs `18.00` per host, while a SKU priced + at `12.00` with `number_of_units_included_in_price` of `10000` costs `12.00` per + 10,000 requests. It is a scaling factor on the price, not a free allotment; included + quantities are in `allotments`. The same factor applies to the price of a tier in + `on_demand_tiered` whose `pricing_unit_type` is `unit`. It does not apply to a tier + whose `pricing_unit_type` is `block`: that tier's `price` is charged for the whole + block bounded by `min_usage_quantity` and `max_usage_quantity`, however much of the + block is used. `0` for SKUs that are not priced per unit of usage, such as those + whose `pricing_type` is `percent`. + example: 1 + format: int64 + type: integer + on_demand_list_price: + description: |- + The public list price of on-demand usage of the SKU, as a decimal string. The number + of decimal places is not normalized, so values such as `0`, `0.9`, and `30000.00` + all occur. `null` when the SKU is priced with tiers, in which case the prices are in + `on_demand_tiered`. + example: "18.00" + nullable: true + type: string + on_demand_tiered: + $ref: "#/components/schemas/ProductCatalogSKUTieredPricing" + pricing_type: + $ref: "#/components/schemas/ProductCatalogSKUPricingType" + sku_name: + description: The human-readable name of the SKU. + example: Infra Host (Pro) type: string - type: - $ref: "#/components/schemas/ApmRetentionFilterType" required: - - id - - type - - attributes + - billing_dimension + - sku_name + - billing_units + - default_on_demand_option + - number_of_units_included_in_price + - on_demand_list_price + - pricing_type + - currency + - allotments + - on_demand_tiered type: object - RetentionFilterAll: - description: The definition of the retention filter. + ProductCatalogSKUDataResponse: + description: A SKU and the pricing metadata that applies to it. properties: attributes: - $ref: "#/components/schemas/RetentionFilterAllAttributes" + $ref: "#/components/schemas/ProductCatalogSKUDataAttributesResponse" id: - description: The ID of the retention filter. - example: "7RBOb7dLSYWI01yc3pIH8w" + description: The code that identifies the SKU. + example: HOSTS-PRO type: string type: - $ref: "#/components/schemas/ApmRetentionFilterType" + $ref: "#/components/schemas/ProductCatalogSKUType" required: - id - type - attributes type: object - RetentionFilterAllAttributes: - description: The attributes of the retention filter. + ProductCatalogSKUOnDemandOption: + description: The billing frequency applied to on-demand usage of the SKU by default. + enum: + - hourly + - monthly + example: monthly + type: string + x-enum-varnames: + - HOURLY + - MONTHLY + ProductCatalogSKUPricingTier: + description: A usage range and the price that applies to usage falling inside it. properties: - created_at: - description: The creation timestamp of the retention filter. - format: int64 - type: integer - created_by: - description: The creator of the retention filter. - type: string - editable: - description: Shows whether the filter can be edited. - example: true - type: boolean - enabled: - description: The status of the retention filter (Enabled/Disabled). - example: true - type: boolean - execution_order: - description: The execution order of the retention filter. + max_usage_quantity: + description: |- + The exclusive upper bound of the usage range the tier prices. `null` on the final + tier, which is unbounded. + example: 100000 format: int64 + nullable: true type: integer - filter: - $ref: "#/components/schemas/SpansFilter" - filter_type: - $ref: "#/components/schemas/RetentionFilterAllType" - modified_at: - description: The modification timestamp of the retention filter. + min_usage_quantity: + description: The inclusive lower bound of the usage range the tier prices. + example: 1 format: int64 type: integer - modified_by: - description: The modifier of the retention filter. - type: string - name: - description: The name of the retention filter. - example: my retention filter - type: string - rate: - description: |- - Sample rate to apply to spans going through this retention filter. - A value of 1.0 keeps all spans matching the query. - example: 1.0 - format: double - type: number - trace_rate: + price: description: |- - Sample rate to apply to traces containing spans going through this retention filter. - A value of 1.0 keeps all traces with spans matching the query. - example: 1.0 - format: double - type: number + The price applied to usage in the tier, as a decimal string. The number of decimal + places is not normalized, so free tiers appear as either `0` or `0.00`. + example: "120.00" + type: string + pricing_unit_type: + $ref: "#/components/schemas/ProductCatalogSKUPricingUnitType" + required: + - min_usage_quantity + - max_usage_quantity + - price + - pricing_unit_type type: object - RetentionFilterAllType: - default: spans-sampling-processor - description: The type of retention filter. + ProductCatalogSKUPricingType: + description: |- + How the SKU is priced. `usage` prices each billable usage unit, and `percent` prices a + percentage; percent-priced SKUs have no `billing_units`. enum: - - spans-sampling-processor - - spans-errors-sampling-processor - - spans-appsec-sampling-processor - example: spans-sampling-processor + - usage + - percent + example: usage type: string x-enum-varnames: - - SPANS_SAMPLING_PROCESSOR - - SPANS_ERRORS_SAMPLING_PROCESSOR - - SPANS_APPSEC_SAMPLING_PROCESSOR - RetentionFilterAttributes: - description: The attributes of the retention filter. + - USAGE + - PERCENT + ProductCatalogSKUPricingUnitType: + description: |- + Whether the tier's price applies per unit of usage or to a block of usage. + enum: + - block + - unit + example: unit + type: string + x-enum-varnames: + - BLOCK + - UNIT + ProductCatalogSKUTieredPricing: + description: |- + The tiered pricing applied to on-demand usage of the SKU. `null` when the SKU is priced + with a single list price instead. + nullable: true properties: - created_at: - description: The creation timestamp of the retention filter. - format: int64 - type: integer - created_by: - description: The creator of the retention filter. - type: string - editable: - description: Shows whether the filter can be edited. - example: true - type: boolean - enabled: - description: The status of the retention filter (Enabled/Disabled). - example: true - type: boolean - execution_order: - description: The execution order of the retention filter. - format: int64 - type: integer - filter: - $ref: "#/components/schemas/SpansFilter" - filter_type: - $ref: "#/components/schemas/RetentionFilterType" - modified_at: - description: The modification timestamp of the retention filter. - format: int64 - type: integer - modified_by: - description: The modifier of the retention filter. - type: string - name: - description: The name of the retention filter. - example: my retention filter - type: string - rate: - description: |- - Sample rate to apply to spans going through this retention filter. - A value of 1.0 keeps all spans matching the query. - example: 1.0 - format: double - type: number - trace_rate: - description: |- - Sample rate to apply to traces containing spans going through this retention filter. - A value of 1.0 keeps all traces with spans matching the query. - example: 1.0 - format: double - type: number + tiers: + description: The pricing tiers, ordered by ascending usage quantity. + items: + $ref: "#/components/schemas/ProductCatalogSKUPricingTier" + type: array + required: + - tiers type: object - RetentionFilterCreateAttributes: - description: The object describing the configuration of the retention filter to create/update. + ProductCatalogSKUType: + description: The SKU resource type. + enum: + - Sku + example: Sku + type: string + x-enum-varnames: + - SKU + ProductCatalogSKUsAPIVersion: + description: The version of the product catalog contract to return. + enum: + - v1 + example: v1 + type: string + x-enum-varnames: + - V1 + ProductCatalogSKUsResponse: + description: Response containing the generally available SKUs and their pricing metadata. properties: - enabled: - description: Enable/Disable the retention filter. - example: true - type: boolean - filter: - $ref: "#/components/schemas/SpansFilterCreate" - filter_type: - $ref: "#/components/schemas/RetentionFilterType" - name: - description: The name of the retention filter. - example: my retention filter - type: string - rate: - description: |- - Sample rate to apply to spans going through this retention filter. - A value of 1.0 keeps all spans matching the query. - example: 1.0 - format: double - type: number - trace_rate: - description: |- - Sample rate to apply to traces containing spans going through this retention filter. - A value of 1.0 keeps all traces with spans matching the query. - example: 1.0 - format: double - type: number + data: + description: The generally available SKUs, sorted by SKU code in ascending order. + items: + $ref: "#/components/schemas/ProductCatalogSKUDataResponse" + type: array required: - - name - - filter - - enabled - - filter_type - - rate + - data type: object - RetentionFilterCreateData: - description: The body of the retention filter to be created. + Project: + description: A Project. properties: attributes: - $ref: "#/components/schemas/RetentionFilterCreateAttributes" + $ref: "#/components/schemas/ProjectAttributes" + id: + description: The Project's identifier. + example: aeadc05e-98a8-11ec-ac2c-da7ad0900001 + type: string + relationships: + $ref: "#/components/schemas/ProjectRelationships" type: - $ref: "#/components/schemas/ApmRetentionFilterType" + $ref: "#/components/schemas/ProjectResourceType" required: - - attributes + - id - type + - attributes type: object - RetentionFilterCreateRequest: - description: The body of the retention filter to be created. + ProjectAttributes: + description: Project attributes. properties: - data: - $ref: "#/components/schemas/RetentionFilterCreateData" - required: - - data + columns_config: + $ref: "#/components/schemas/ProjectColumnsConfig" + enabled_custom_case_types: + description: List of enabled custom case type IDs. + items: + description: A custom case type identifier. + type: string + type: array + key: + description: The project's key. + example: CASEM + type: string + name: + description: Project's name. + example: "Security Investigation" + type: string + restricted: + description: Whether the project is restricted. + type: boolean + settings: + $ref: "#/components/schemas/ProjectSettings" type: object - RetentionFilterCreateResponse: - description: The retention filters definition. + ProjectColumnsConfig: + description: Project columns configuration. properties: - data: - $ref: "#/components/schemas/RetentionFilter" + columns: + description: List of column configurations for the project board view. + items: + $ref: "#/components/schemas/ProjectColumnsConfigColumnsItems" + type: array type: object - RetentionFilterResponse: - description: The retention filters definition. + ProjectColumnsConfigColumnsItems: + description: Configuration for a single column in a project board view. properties: - data: - $ref: "#/components/schemas/RetentionFilterAll" + sort: + $ref: "#/components/schemas/ProjectColumnsConfigColumnsItemsSort" + sort_field: + description: The field used to sort items in this column. + type: string + type: + description: The type of column. + type: string type: object - RetentionFilterType: - default: spans-sampling-processor - description: The type of retention filter. The value should always be spans-sampling-processor. - enum: - - spans-sampling-processor - example: spans-sampling-processor - type: string - x-enum-varnames: - - SPANS_SAMPLING_PROCESSOR - RetentionFilterUpdateAttributes: - description: The object describing the configuration of the retention filter to create/update. + ProjectColumnsConfigColumnsItemsSort: + description: Sort configuration for a project board column. properties: - enabled: - description: Enable/Disable the retention filter. - example: true + ascending: + description: Whether to sort in ascending order. type: boolean - filter: - $ref: "#/components/schemas/SpansFilterCreate" - filter_type: - $ref: "#/components/schemas/RetentionFilterAllType" - name: - description: The name of the retention filter. - example: my retention filter - type: string - rate: - description: |- - Sample rate to apply to spans going through this retention filter. - A value of 1.0 keeps all spans matching the query. - example: 1.0 - format: double - type: number - trace_rate: - description: |- - Sample rate to apply to traces containing spans going through this retention filter. - A value of 1.0 keeps all traces with spans matching the query. - example: 1.0 - format: double - type: number - required: - - name - - filter - - enabled - - filter_type - - rate + priority: + description: The sort priority order for this column. + format: int64 + type: integer type: object - RetentionFilterUpdateData: - description: The body of the retention filter to be updated. + ProjectCreate: + description: Project create. properties: attributes: - $ref: "#/components/schemas/RetentionFilterUpdateAttributes" - id: - description: The ID of the retention filter. - example: "retention-filter-id" - type: string + $ref: "#/components/schemas/ProjectCreateAttributes" type: - $ref: "#/components/schemas/ApmRetentionFilterType" + $ref: "#/components/schemas/ProjectResourceType" required: - - id - attributes - type type: object - RetentionFilterUpdateRequest: - description: The body of the retention filter to be updated. + ProjectCreateAttributes: + description: Project creation attributes. + properties: + enabled_custom_case_types: + description: List of enabled custom case type IDs. + items: + description: A custom case type identifier. + type: string + type: array + key: + description: Project's key. Cannot be "CASE". + example: "SEC" + type: string + name: + description: Project name. + example: "Security Investigation" + type: string + team_uuid: + description: Team UUID to associate with the project. + type: string + required: + - name + - key + type: object + ProjectCreateRequest: + description: Project create request. properties: data: - $ref: "#/components/schemas/RetentionFilterUpdateData" + $ref: "#/components/schemas/ProjectCreate" required: - data type: object - RetentionFilterWithoutAttributes: - description: The retention filter object . + ProjectFavorite: + description: Represents a case project that the current user has bookmarked for quick access. Favorited projects appear prominently in the Case Management UI. properties: id: - description: The ID of the retention filter. - example: "7RBOb7dLSYWI01yc3pIH8w" + description: The UUID of the favorited project. + example: "e555e290-ed65-49bd-ae18-8acbfcf18db7" type: string type: - $ref: "#/components/schemas/ApmRetentionFilterType" + $ref: "#/components/schemas/ProjectFavoriteResourceType" required: - id - type type: object - RetentionFiltersResponse: - description: An ordered list of retention filters. + ProjectFavoriteResourceType: + default: project_favorite + description: "JSON:API resource type for project favorites." + enum: + - project_favorite + example: project_favorite + type: string + x-enum-varnames: + - PROJECT_FAVORITE + ProjectFavoritesResponse: + description: Response containing the list of projects the current user has favorited. properties: data: - description: A list of retention filters objects. + description: List of project favorites. items: - $ref: "#/components/schemas/RetentionFilterAll" + $ref: "#/components/schemas/ProjectFavorite" type: array required: - data type: object - RetryStrategy: - additionalProperties: false - description: The definition of `RetryStrategy` object. + ProjectNotificationSettings: + description: Project notification settings. properties: - kind: - $ref: "#/components/schemas/RetryStrategyKind" - linear: - $ref: "#/components/schemas/RetryStrategyLinear" + destinations: + description: Notification destinations (1=email, 2=slack, 3=in-app). + items: + description: Notification channel identifier (1=email, 2=slack, 3=in-app). + format: int64 + type: integer + type: array + enabled: + description: Whether notifications are enabled. + type: boolean + notify_on_case_assignment: + description: Whether to send a notification when a case is assigned. + type: boolean + notify_on_case_closed: + description: Whether to send a notification when a case is closed. + type: boolean + notify_on_case_comment: + description: Whether to send a notification when a comment is added to a case. + type: boolean + notify_on_case_comment_mention: + description: Whether to send a notification when a user is mentioned in a case comment. + type: boolean + notify_on_case_priority_change: + description: Whether to send a notification when a case's priority changes. + type: boolean + notify_on_case_status_change: + description: Whether to send a notification when a case's status changes. + type: boolean + notify_on_case_unassignment: + description: Whether to send a notification when a case is unassigned. + type: boolean + type: object + ProjectRelationship: + description: Relationship to project. + properties: + data: + $ref: "#/components/schemas/ProjectRelationshipData" required: - - kind - - linear + - data type: object - RetryStrategyKind: - description: The definition of `RetryStrategyKind` object. - enum: - - RETRY_STRATEGY_LINEAR - example: RETRY_STRATEGY_LINEAR - type: string - x-enum-varnames: - - RETRY_STRATEGY_LINEAR - RetryStrategyLinear: - additionalProperties: false - description: The definition of `RetryStrategyLinear` object. + ProjectRelationshipData: + description: Relationship to project object. properties: - interval: - description: The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s - example: "" - pattern: ^[1-9][0-9]*s$ + id: + description: A unique identifier that represents the project. + example: "e555e290-ed65-49bd-ae18-8acbfcf18db7" type: string - maxRetries: - description: The `RetryStrategyLinear` `maxRetries`. - example: 0 - format: int32 - maximum: 2147483647 - minimum: 0 - type: integer + type: + $ref: "#/components/schemas/ProjectResourceType" required: - - interval - - maxRetries + - id + - type type: object - RevertCustomRuleRevisionDataType: - description: Request type - enum: [revert_custom_rule_revision_request] + ProjectRelationships: + description: Project relationships. + properties: + member_team: + $ref: "#/components/schemas/RelationshipToTeamLinks" + member_user: + $ref: "#/components/schemas/UsersRelationship" + type: object + ProjectResourceType: + default: project + description: Project resource type. + enum: + - project + example: project type: string x-enum-varnames: - - REVERT_CUSTOM_RULE_REVISION_REQUEST - RevertCustomRuleRevisionRequest: - description: Request body for reverting a custom rule to a previous revision. + - PROJECT + ProjectResponse: + description: Project response. properties: data: - $ref: "#/components/schemas/RevertCustomRuleRevisionRequestData" - type: object - RevertCustomRuleRevisionRequestData: - description: Data object for a request to revert a custom rule to a previous revision. - properties: - attributes: - $ref: "#/components/schemas/RevertCustomRuleRevisionRequestDataAttributes" - id: - description: Request identifier - type: string - type: - $ref: "#/components/schemas/RevertCustomRuleRevisionDataType" + $ref: "#/components/schemas/Project" type: object - RevertCustomRuleRevisionRequestDataAttributes: - description: Attributes specifying the current and target revision IDs for a revert operation. + ProjectSettings: + description: Project settings. properties: - currentRevision: - description: Current revision ID - type: string - revertToRevision: - description: Target revision ID to revert to - type: string + auto_close_inactive_cases: + $ref: "#/components/schemas/AutoCloseInactiveCases" + auto_transition_assigned_cases: + $ref: "#/components/schemas/AutoTransitionAssignedCases" + integration_incident: + $ref: "#/components/schemas/IntegrationIncident" + integration_jira: + $ref: "#/components/schemas/IntegrationJira" + integration_monitor: + $ref: "#/components/schemas/IntegrationMonitor" + integration_on_call: + $ref: "#/components/schemas/IntegrationOnCall" + integration_service_now: + $ref: "#/components/schemas/IntegrationServiceNow" + notification: + $ref: "#/components/schemas/ProjectNotificationSettings" type: object - Role: - description: Role object returned by the API. + ProjectUpdate: + description: Project update. properties: attributes: - $ref: "#/components/schemas/RoleAttributes" - id: - description: The unique identifier of the role. - type: string - relationships: - $ref: "#/components/schemas/RoleResponseRelationships" + $ref: "#/components/schemas/ProjectUpdateAttributes" type: - $ref: "#/components/schemas/RolesType" + $ref: "#/components/schemas/ProjectResourceType" required: - type type: object - RoleAttributes: - additionalProperties: {} - description: Attributes of the role. + ProjectUpdateAttributes: + description: Project update attributes. properties: - created_at: - description: Creation time of the role. - format: date-time - readOnly: true - type: string - modified_at: - description: Time of last role modification. - format: date-time - readOnly: true - type: string - name: - description: The name of the role. The name is neither unique nor a stable identifier of the role. - type: string - receives_permissions_from: - description: |- - The managed role from which this role automatically inherits new permissions. - Specify one of the following: "Datadog Admin Role", "Datadog Standard Role", or "Datadog Read Only Role". - If empty or not specified, the role does not automatically inherit permissions from any managed role. + columns_config: + $ref: "#/components/schemas/ProjectColumnsConfig" + enabled_custom_case_types: + description: List of enabled custom case type IDs. items: - description: Name of a managed role to inherit permissions from. + description: A custom case type identifier. type: string type: array - user_count: - description: Number of users with that role. - format: int64 - readOnly: true - type: integer + name: + description: Project name. + type: string + settings: + $ref: "#/components/schemas/ProjectSettings" + team_uuid: + description: Team UUID to associate with the project. + type: string type: object - RoleClone: - description: Data for the clone role request. + ProjectUpdateRequest: + description: Project update request. + properties: + data: + $ref: "#/components/schemas/ProjectUpdate" + required: + - data + type: object + ProjectedCost: + description: Projected Cost data. properties: attributes: - $ref: "#/components/schemas/RoleCloneAttributes" + $ref: "#/components/schemas/ProjectedCostAttributes" + id: + description: Unique ID of the response. + type: string type: - $ref: "#/components/schemas/RolesType" - required: - - type - - attributes + $ref: "#/components/schemas/ProjectedCostType" type: object - RoleCloneAttributes: - description: Attributes required to create a new role by cloning an existing one. + ProjectedCostAttributes: + description: Projected Cost attributes data. properties: - name: - description: Name of the new role that is cloned. - example: "cloned-role" + account_name: + description: The account name. type: string - receives_permissions_from: - description: |- - The managed role from which this role automatically inherits new permissions. - Specify one of the following: "Datadog Admin Role", "Datadog Standard Role", or "Datadog Read Only Role". - If empty or not specified, the role does not automatically inherit permissions from any managed role. + account_public_id: + description: The account public ID. + type: string + charges: + description: List of charges data reported for the requested month. items: - description: Name of a managed role to inherit permissions from. - type: string + $ref: "#/components/schemas/ChargebackBreakdown" type: array - required: - - name + date: + description: The month requested. + format: date-time + type: string + org_name: + description: The organization name. + type: string + projected_total_cost: + description: The total projected cost of products for the month. + format: double + type: number + public_id: + description: The organization public ID. + type: string + region: + description: The region of the Datadog instance that the organization belongs to. + type: string type: object - RoleCloneRequest: - description: Request to create a role by cloning an existing role. + ProjectedCostResponse: + description: Projected Cost response. properties: data: - $ref: "#/components/schemas/RoleClone" - required: - - data + description: Response containing Projected Cost. + items: + $ref: "#/components/schemas/ProjectedCost" + type: array type: object - RoleCreateAttributes: - description: Attributes of the created role. + ProjectedCostType: + default: projected_cost + description: Type of cost data. + enum: + - projected_cost + example: projected_cost + type: string + x-enum-varnames: + - PROJECt_COST + ProjectsResponse: + description: Response with projects. properties: - created_at: - description: Creation time of the role. - format: date-time - readOnly: true - type: string - default_permissions_opt_out: - description: |- - Whether to exclude restricted default permissions from this role. - Restricted default permissions are automatically assigned to every role by default. Set this field to `true` to exclude them. - Some of these permissions can only be excluded after Minimal Access Roles is enabled for the organization. - type: boolean - modified_at: - description: Time of last role modification. - format: date-time - readOnly: true - type: string - name: - description: Name of the role. - example: developers - type: string - receives_permissions_from: - description: |- - The managed role from which this role automatically inherits new permissions. - Specify one of the following: "Datadog Admin Role", "Datadog Standard Role", or "Datadog Read Only Role". - If empty or not specified, the role does not automatically inherit permissions from any managed role. + data: + description: Projects response data. items: - description: Name of a managed role to inherit permissions from. - type: string + $ref: "#/components/schemas/Project" type: array + type: object + PrunedTraceAttributes: + description: The attributes of a pruned trace returned by the Get pruned trace by ID endpoint. + properties: + is_truncated: + description: |- + Indicates whether the underlying trace was truncated because its size + exceeded the maximum that can be retrieved from storage. + example: false + type: boolean + size_bytes: + description: The size, in bytes, of the original (non-pruned) trace before summarization. + example: 12345 + format: int32 + maximum: 2147483647 + type: integer + summarized_trace: + $ref: "#/components/schemas/SummarizedTrace" required: - - name + - summarized_trace + - is_truncated + - size_bytes type: object - RoleCreateData: - description: Data related to the creation of a role. + PrunedTraceData: + description: A pruned trace resource document. properties: attributes: - $ref: "#/components/schemas/RoleCreateAttributes" - relationships: - $ref: "#/components/schemas/RoleRelationships" + $ref: "#/components/schemas/PrunedTraceAttributes" + id: + description: The full 128-bit trace ID, encoded as a 32-character hexadecimal string. + example: "0000000000000000abc1230000000000" + type: string type: - $ref: "#/components/schemas/RolesType" + $ref: "#/components/schemas/PrunedTraceType" required: + - id + - type - attributes type: object - RoleCreateRequest: - description: Create a role. + PrunedTraceResponse: + description: Response containing a single pruned trace. properties: data: - $ref: "#/components/schemas/RoleCreateData" + $ref: "#/components/schemas/PrunedTraceData" required: - data type: object - RoleCreateResponse: - description: Response containing information about a created role. + PrunedTraceType: + description: The type of the pruned trace resource. The value is always `pruned_trace`. + enum: + - pruned_trace + example: pruned_trace + type: string + x-enum-varnames: + - PRUNED_TRACE + PublishAppResponse: + description: The response object after an app is successfully published. properties: data: - $ref: "#/components/schemas/RoleCreateResponseData" + $ref: "#/components/schemas/Deployment" type: object - RoleCreateResponseData: - description: Role object returned by the API. + PublishFormData: + description: The data for publishing a form version. properties: attributes: - $ref: "#/components/schemas/RoleCreateAttributes" - id: - description: The unique identifier of the role. - type: string - relationships: - $ref: "#/components/schemas/RoleResponseRelationships" + $ref: "#/components/schemas/PublishFormDataAttributes" type: - $ref: "#/components/schemas/RolesType" + $ref: "#/components/schemas/FormPublicationType" required: - type + - attributes type: object - RoleRelationships: - description: Relationships of the role object. + PublishFormDataAttributes: + description: The attributes for publishing a form version. properties: - permissions: - $ref: "#/components/schemas/RelationshipToPermissions" + version: + description: The version number to publish. + example: 1 + format: int64 + type: integer + required: + - version type: object - RoleResponse: - description: Response containing information about a single role. + PublishFormRequest: + description: A request to publish a form version. properties: data: - $ref: "#/components/schemas/Role" - type: object - RoleResponseRelationships: - description: Relationships of the role object returned by the API. - properties: - permissions: - $ref: "#/components/schemas/RelationshipToPermissions" + $ref: "#/components/schemas/PublishFormData" + required: + - data type: object - RoleTemplateArray: - description: The definition of `RoleTemplateArray` object. + PublishRequestType: + default: publishRequest + description: The publish-request resource type. + enum: + - publishRequest + example: publishRequest + type: string + x-enum-varnames: + - PUBLISHREQUEST + PutAppsDatastoreItemResponseArray: + description: Response after successfully inserting multiple items into a datastore, containing the identifiers of the created items. properties: data: - description: The `RoleTemplateArray` `data`. + description: An array of data objects containing the identifiers of the successfully inserted items. items: - $ref: "#/components/schemas/RoleTemplateData" + $ref: "#/components/schemas/PutAppsDatastoreItemResponseData" + maxItems: 100 type: array required: - data type: object - RoleTemplateData: - description: The definition of `RoleTemplateData` object. + PutAppsDatastoreItemResponseData: + description: Data containing the identifier of a single item that was successfully inserted into the datastore. + properties: + id: + description: The unique identifier assigned to the inserted item. + type: string + type: + $ref: "#/components/schemas/DatastoreItemsDataType" + required: + - type + type: object + PutIncidentNotificationRuleRequest: + description: Put request for a notification rule. + properties: + data: + $ref: "#/components/schemas/IncidentNotificationRuleUpdateData" + required: + - data + type: object + Query: + description: A data query used by an app. This can take the form of an external action, a data transformation, or a state variable. + oneOf: + - $ref: "#/components/schemas/ActionQuery" + - $ref: "#/components/schemas/DataTransform" + - $ref: "#/components/schemas/StateVariable" + QueryAccountRequest: + description: Request body for querying accounts with optional filtering, column selection, and sorting. + example: + data: + attributes: + limit: 20 + query: plan_type:enterprise AND user_count:>100 AND subscription_status:active + select_columns: + - account_id + - account_name + - user_count + - plan_type + - subscription_status + - created_at + - mrr + - industry + sort: + field: user_count + order: DESC + wildcard_search_term: tech + id: query_account_request + type: query_account_request + properties: + data: + $ref: "#/components/schemas/QueryAccountRequestData" + type: object + QueryAccountRequestData: + description: The data object containing the resource type and attributes for querying accounts. properties: attributes: - $ref: "#/components/schemas/RoleTemplateDataAttributes" + $ref: "#/components/schemas/QueryAccountRequestDataAttributes" id: - description: The `RoleTemplateData` `id`. + description: Unique identifier for the query account request resource. type: string type: - $ref: "#/components/schemas/RoleTemplateDataType" + $ref: "#/components/schemas/QueryAccountRequestDataType" required: - type type: object - RoleTemplateDataAttributes: - description: The definition of `RoleTemplateDataAttributes` object. + QueryAccountRequestDataAttributes: + description: Attributes for filtering and shaping the account query results. properties: - description: - description: The `attributes` `description`. + limit: + description: Maximum number of account records to return in the response. + format: int64 + type: integer + query: + description: Filter expression using account attribute conditions to narrow results. type: string - name: - description: The `attributes` `name`. + select_columns: + description: List of account attribute column names to include in the response. + items: + description: Name of an account attribute column to include in the response. + type: string + type: array + sort: + $ref: "#/components/schemas/QueryAccountRequestDataAttributesSort" + wildcard_search_term: + description: Free-text term used for wildcard search across account attribute values. type: string type: object - RoleTemplateDataType: - default: roles - description: Roles resource type. + QueryAccountRequestDataAttributesSort: + description: Sorting configuration specifying the field and direction for ordering query results. + properties: + field: + description: The attribute field name to sort results by. + type: string + order: + description: The sort direction, either ascending or descending. + type: string + type: object + QueryAccountRequestDataType: + default: query_account_request + description: Query account request resource type. enum: - - roles - example: roles + - query_account_request + example: query_account_request type: string x-enum-varnames: - - ROLES - RoleUpdateAttributes: - description: Attributes of the role. + - QUERY_ACCOUNT_REQUEST + QueryEventFilteredUsersRequest: + description: Request body for querying users filtered by user properties combined with event platform activity. + example: + data: + attributes: + event_query: + query: "@type:view AND @view.loading_time:>3000 AND @application.name:ecommerce-platform" + time_frame: + end: 1761309676 + start: 1760100076 + include_row_count: true + limit: 25 + query: user_org_id:5001 AND first_country_code:US AND first_browser_name:Chrome + select_columns: + - user_id + - user_email + - first_country_code + - first_browser_name + - events_count + - session_count + - error_count + - avg_loading_time + id: query_event_filtered_users_request + type: query_event_filtered_users_request properties: - created_at: - description: Creation time of the role. - format: date-time - readOnly: true + data: + $ref: "#/components/schemas/QueryEventFilteredUsersRequestData" + type: object + QueryEventFilteredUsersRequestData: + description: The data object containing the resource type and attributes for querying event-filtered users. + properties: + attributes: + $ref: "#/components/schemas/QueryEventFilteredUsersRequestDataAttributes" + id: + description: Unique identifier for the query event filtered users request resource. type: string - default_permissions_opt_out: - description: |- - Whether to exclude restricted default permissions from this role. - Restricted default permissions are automatically assigned to every role by default. Set this field to `true` to exclude them. - Some of these permissions can only be excluded after Minimal Access Roles is enabled for the organization. + type: + $ref: "#/components/schemas/QueryEventFilteredUsersRequestDataType" + required: + - type + type: object + QueryEventFilteredUsersRequestDataAttributes: + description: Attributes for filtering users by both user properties and event platform activity. + properties: + event_query: + $ref: "#/components/schemas/QueryEventFilteredUsersRequestDataAttributesEventQuery" + include_row_count: + description: Whether to include the total count of matching users in the response. type: boolean - modified_at: - description: Time of last role modification. - format: date-time - readOnly: true - type: string - name: - description: Name of the role. + limit: + description: Maximum number of user records to return in the response. + format: int64 + type: integer + query: + description: Filter expression using user attribute conditions to narrow results. type: string - receives_permissions_from: - description: |- - The managed role from which this role automatically inherits new permissions. - Specify one of the following: "Datadog Admin Role", "Datadog Standard Role", or "Datadog Read Only Role". - If empty or not specified, the role does not automatically inherit permissions from any managed role. + select_columns: + description: List of user attribute column names to include in the response. items: - description: Name of a managed role to inherit permissions from. + description: Name of a user attribute column to include in the response. type: string type: array - user_count: - description: The user count. - format: int32 - maximum: 2147483647 - type: integer type: object - RoleUpdateData: - description: Data related to the update of a role. + QueryEventFilteredUsersRequestDataAttributesEventQuery: + description: Event platform query used to filter users based on their event activity within a specified time window. properties: - attributes: - $ref: "#/components/schemas/RoleUpdateAttributes" - id: - description: The unique identifier of the role. - example: "00000000-0000-1111-0000-000000000000" + query: + description: The event platform query expression for filtering users by their event activity. type: string - relationships: - $ref: "#/components/schemas/RoleRelationships" - type: - $ref: "#/components/schemas/RolesType" - required: - - attributes - - type - - id + time_frame: + $ref: "#/components/schemas/QueryEventFilteredUsersRequestDataAttributesEventQueryTimeFrame" type: object - RoleUpdateRequest: - description: Update a role. + QueryEventFilteredUsersRequestDataAttributesEventQueryTimeFrame: + description: The time window defining the start and end of the event query period as Unix timestamps. properties: - data: - $ref: "#/components/schemas/RoleUpdateData" + end: + description: End of the time frame as a Unix timestamp in seconds. + format: int64 + type: integer + start: + description: Start of the time frame as a Unix timestamp in seconds. + format: int64 + type: integer + type: object + QueryEventFilteredUsersRequestDataType: + default: query_event_filtered_users_request + description: Query event filtered users request resource type. + enum: + - query_event_filtered_users_request + example: query_event_filtered_users_request + type: string + x-enum-varnames: + - QUERY_EVENT_FILTERED_USERS_REQUEST + QueryFormula: + description: A formula for calculation based on one or more queries. + properties: + formula: + description: Formula string, referencing one or more queries with their name property. + example: "a+b" + type: string + limit: + $ref: "#/components/schemas/FormulaLimit" required: - - data + - formula type: object - RoleUpdateResponse: - description: Response containing information about an updated role. + QueryResponse: + description: Response containing the query results with matched records and total count. + example: + data: + attributes: + hits: + - first_browser_name: Chrome + first_city: San Francisco + first_country_code: US + first_device_type: Desktop + last_seen: "2025-08-14T06:45:12.142Z" + session_count: 47 + user_created: "2024-12-15T08:42:33.287Z" + user_email: john.smith@techcorp.com + user_id: "150847" + user_name: John Smith + user_org_id: "5001" + - first_browser_name: Chrome + first_city: Austin + first_country_code: US + first_device_type: Desktop + last_seen: "2025-08-14T05:22:08.951Z" + session_count: 89 + user_created: "2024-11-28T14:17:45.634Z" + user_email: john.williams@techcorp.com + user_id: "150848" + user_name: John Williams + user_org_id: "5001" + - first_browser_name: Chrome + first_city: Seattle + first_country_code: US + first_device_type: Desktop + last_seen: "2025-08-14T04:18:34.726Z" + session_count: 23 + user_created: "2025-01-03T16:33:21.445Z" + user_email: john.jones@techcorp.com + user_id: "150849" + user_name: John Jones + user_org_id: "5001" + total: 147 + id: query_response + type: query_response properties: data: - $ref: "#/components/schemas/RoleUpdateResponseData" + $ref: "#/components/schemas/QueryResponseData" type: object - RoleUpdateResponseData: - description: Role object returned by the API. + QueryResponseData: + description: The data object containing the resource type and attributes of the query response. properties: attributes: - $ref: "#/components/schemas/RoleUpdateAttributes" + $ref: "#/components/schemas/QueryResponseDataAttributes" id: - description: The unique identifier of the role. + description: Unique identifier for the query response resource. type: string - relationships: - $ref: "#/components/schemas/RoleResponseRelationships" type: - $ref: "#/components/schemas/RolesType" + $ref: "#/components/schemas/QueryResponseDataType" required: - type type: object - RolesResponse: - description: Response containing information about multiple roles. + QueryResponseDataAttributes: + description: Attributes of the query response, containing the matched records and total count. properties: - data: - description: Array of returned roles. + hits: + description: The list of matching records returned by the query, each as a map of attribute names to values. items: - $ref: "#/components/schemas/Role" + additionalProperties: {} + description: A single matched record represented as a map of attribute names to their values. type: array - meta: - $ref: "#/components/schemas/ResponseMetaAttributes" + total: + description: Total number of records matching the query, regardless of the limit applied. + format: int64 + type: integer type: object - RolesSort: - default: name - description: Sorting options for roles. + QueryResponseDataType: + default: query_response + description: Query response resource type. enum: - - name - - -name - - modified_at - - -modified_at - - user_count - - -user_count + - query_response + example: query_response type: string x-enum-varnames: - - NAME_ASCENDING - - NAME_DESCENDING - - MODIFIED_AT_ASCENDING - - MODIFIED_AT_DESCENDING - - USER_COUNT_ASCENDING - - USER_COUNT_DESCENDING - RolesType: - default: roles - description: Roles type. + - QUERY_RESPONSE + QuerySortOrder: + default: desc + description: Direction of sort. enum: - - roles - example: roles + - asc + - desc type: string x-enum-varnames: - - ROLES - RolloutOptions: - description: Applied progression options for a progressive rollout. - properties: - autostart: - description: Whether the schedule starts automatically. - example: false - type: boolean - selection_interval_ms: - description: Interval in milliseconds for uniform interval strategies. - example: 3600000 - format: int64 - type: integer - strategy: - $ref: "#/components/schemas/RolloutStrategy" - required: - - strategy - - autostart - - selection_interval_ms - type: object - RolloutOptionsRequest: - description: Rollout options request payload. + - ASC + - DESC + QueryUsersRequest: + description: Request body for querying users with optional filtering, column selection, and sorting. + example: + data: + attributes: + limit: 25 + query: user_email:*@techcorp.com AND first_country_code:US AND first_browser_name:Chrome + select_columns: + - user_id + - user_email + - user_name + - user_org_id + - first_country_code + - first_browser_name + - first_device_type + - last_seen + sort: + field: first_seen + order: DESC + wildcard_search_term: john + id: query_users_request + type: query_users_request properties: - autostart: - description: Whether the schedule should begin automatically. - example: false - nullable: true - type: boolean - selection_interval_ms: - description: Interval in milliseconds for uniform interval strategies. - example: 3600000 - format: int64 - type: integer - strategy: - $ref: "#/components/schemas/RolloutStrategy" - required: - - strategy + data: + $ref: "#/components/schemas/QueryUsersRequestData" type: object - RolloutStrategy: - description: The progression strategy used by a progressive rollout. - enum: - - UNIFORM_INTERVALS - - NO_ROLLOUT - example: "UNIFORM_INTERVALS" - type: string - x-enum-varnames: - - UNIFORM_INTERVALS - - NO_ROLLOUT - RoutingRule: - description: Represents a routing rule, including its attributes, relationships, and unique identifier. + QueryUsersRequestData: + description: The data object containing the resource type and attributes for querying users. properties: attributes: - $ref: "#/components/schemas/RoutingRuleAttributes" + $ref: "#/components/schemas/QueryUsersRequestDataAttributes" id: - description: Specifies the unique identifier of this routing rule. + description: Unique identifier for the query users request resource. type: string - relationships: - $ref: "#/components/schemas/RoutingRuleRelationships" type: - $ref: "#/components/schemas/RoutingRuleType" + $ref: "#/components/schemas/QueryUsersRequestDataType" required: - type type: object - RoutingRuleAction: - description: "Defines an action that is executed when a routing rule matches certain criteria." - oneOf: - - $ref: "#/components/schemas/SendSlackMessageAction" - - $ref: "#/components/schemas/SendTeamsMessageAction" - - $ref: "#/components/schemas/TriggerWorkflowAutomationAction" - - $ref: "#/components/schemas/RoutingRuleEscalationPolicyAction" - RoutingRuleAttributes: - description: Defines the configurable attributes of a routing rule, such as actions, query, time restriction, and urgency. + QueryUsersRequestDataAttributes: + description: Attributes for filtering and shaping the user query results. properties: - actions: - description: Specifies the list of actions to perform when the routing rule matches. + limit: + description: Maximum number of user records to return in the response. + format: int64 + type: integer + query: + description: Filter expression using user attribute conditions to narrow results. + type: string + select_columns: + description: List of user attribute column names to include in the response. items: - $ref: "#/components/schemas/RoutingRuleAction" + description: Name of a user attribute column to include in the response. + type: string type: array - query: - description: Defines the query or condition that triggers this routing rule. + sort: + $ref: "#/components/schemas/QueryUsersRequestDataAttributesSort" + wildcard_search_term: + description: Free-text term used for wildcard search across user attribute values. type: string - time_restriction: - $ref: "#/components/schemas/TimeRestrictions" - nullable: true - urgency: - $ref: "#/components/schemas/Urgency" type: object - RoutingRuleEscalationPolicyAction: - description: "Triggers an escalation policy." + QueryUsersRequestDataAttributesSort: + description: Sorting configuration specifying the field and direction for ordering user query results. properties: - ack_timeout_minutes: - description: "The number of minutes before an acknowledged page is re-triggered." - example: 30 - format: int64 - type: integer - policy_id: - description: "The ID of the escalation policy to route to." - example: "00000000-0000-0000-0000-000000000000" + field: + description: The user attribute field name to sort results by. + type: string + order: + description: The sort direction, either ascending or descending. type: string - support_hours: - $ref: "#/components/schemas/RoutingRuleEscalationPolicyActionSupportHours" - type: - $ref: "#/components/schemas/RoutingRuleEscalationPolicyActionType" - urgency: - $ref: "#/components/schemas/Urgency" - required: - - type - - policy_id type: object - RoutingRuleEscalationPolicyActionSupportHours: - description: "Support hours during which the escalation policy will be executed. Outside of these hours, the escalation policy will be on hold and triggered once the next support hours window starts. This is mutually exclusive with the top-level `time_restriction` field on the routing rule." + QueryUsersRequestDataType: + default: query_users_request + description: Query users request resource type. + enum: + - query_users_request + example: query_users_request + type: string + x-enum-varnames: + - QUERY_USERS_REQUEST + RUMAggregateBucketValue: + description: A bucket value, can be either a timeseries or a single value. + oneOf: + - $ref: "#/components/schemas/RUMAggregateBucketValueSingleString" + - $ref: "#/components/schemas/RUMAggregateBucketValueSingleNumber" + - $ref: "#/components/schemas/RUMAggregateBucketValueTimeseries" + RUMAggregateBucketValueSingleNumber: + description: A single number value. + format: double + type: number + RUMAggregateBucketValueSingleString: + description: A single string value. + type: string + RUMAggregateBucketValueTimeseries: + description: A timeseries array. + items: + $ref: "#/components/schemas/RUMAggregateBucketValueTimeseriesPoint" + type: array + x-generate-alias-as-model: true + RUMAggregateBucketValueTimeseriesPoint: + description: A timeseries point. properties: - restrictions: - description: "The list of support hours time windows." + time: + description: The time value for this point. + example: "2020-06-08T11:55:00.123Z" + format: date-time + type: string + value: + description: The value for this point. + example: 19 + format: double + type: number + type: object + RUMAggregateRequest: + description: The object sent with the request to retrieve aggregation buckets of RUM events from your organization. + properties: + compute: + description: The list of metrics or timeseries to compute for the retrieved buckets. items: - $ref: "#/components/schemas/TimeRestriction" + $ref: "#/components/schemas/RUMCompute" type: array - time_zone: - description: "The time zone in which the support hours are expressed." - example: "" + filter: + $ref: "#/components/schemas/RUMQueryFilter" + group_by: + description: The rules for the group by. + items: + $ref: "#/components/schemas/RUMGroupBy" + type: array + options: + $ref: "#/components/schemas/RUMQueryOptions" + page: + $ref: "#/components/schemas/RUMQueryPageOptions" + type: object + RUMAggregateSort: + description: A sort rule. + example: {"aggregation": "count", "order": "asc"} + properties: + aggregation: + $ref: "#/components/schemas/RUMAggregationFunction" + metric: + description: The metric to sort by (only used for `type=measure`). + example: "@duration" type: string - required: - - time_zone + order: + $ref: "#/components/schemas/RUMSortOrder" + type: + $ref: "#/components/schemas/RUMAggregateSortType" type: object - RoutingRuleEscalationPolicyActionType: - default: escalation_policy - description: "Indicates that the action pages an escalation policy. This action can be set once per routing rule item, and is mutually exclusive with the top-level `policy_id` field on the routing rule." - enum: - - escalation_policy - example: escalation_policy + RUMAggregateSortType: + default: "alphabetical" + description: The type of sorting algorithm. + enum: ["alphabetical", "measure"] type: string - x-enum-varnames: - - ESCALATION_POLICY - RoutingRuleRelationships: - description: Specifies relationships for a routing rule, linking to associated policy resources. + x-enum-varnames: ["ALPHABETICAL", "MEASURE"] + RUMAggregationBucketsResponse: + description: The query results. properties: - policy: - $ref: "#/components/schemas/RoutingRuleRelationshipsPolicy" + buckets: + description: The list of matching buckets, one item per bucket. + items: + $ref: "#/components/schemas/RUMBucketResponse" + type: array type: object - RoutingRuleRelationshipsPolicy: - description: Defines the relationship that links a routing rule to a policy. + RUMAggregationFunction: + description: An aggregation function. + enum: ["count", "cardinality", "pc75", "pc90", "pc95", "pc98", "pc99", "sum", "min", "max", "avg", "median"] + example: "pc90" + type: string + x-enum-varnames: ["COUNT", "CARDINALITY", "PERCENTILE_75", "PERCENTILE_90", "PERCENTILE_95", "PERCENTILE_98", "PERCENTILE_99", "SUM", "MIN", "MAX", "AVG", "MEDIAN"] + RUMAnalyticsAggregateResponse: + description: The response object for the RUM events aggregate API endpoint. properties: data: - $ref: "#/components/schemas/RoutingRuleRelationshipsPolicyData" - nullable: true + $ref: "#/components/schemas/RUMAggregationBucketsResponse" + links: + $ref: "#/components/schemas/RUMResponseLinks" + meta: + $ref: "#/components/schemas/RUMResponseMetadata" type: object - RoutingRuleRelationshipsPolicyData: - description: Represents the policy data reference, containing the policy's ID and resource type. + RUMApplication: + description: RUM application. properties: + attributes: + $ref: "#/components/schemas/RUMApplicationAttributes" id: - description: Specifies the unique identifier of the policy. - example: "" + description: RUM application ID. + example: abcd1234-0000-0000-abcd-1234abcd5678 type: string type: - $ref: "#/components/schemas/RoutingRuleRelationshipsPolicyDataType" + $ref: "#/components/schemas/RUMApplicationType" required: - - type + - attributes - id + - type type: object - RoutingRuleRelationshipsPolicyDataType: - default: policies - description: "Indicates that the resource is of type 'policies'." - enum: - - policies - example: policies - type: string - x-enum-varnames: - - POLICIES - RoutingRuleType: - default: team_routing_rules - description: Team routing rules resource type. - enum: - - team_routing_rules - example: team_routing_rules - type: string - x-enum-varnames: - - TEAM_ROUTING_RULES - RuleAttributes: - description: Details of a rule. + RUMApplicationAttributes: + description: RUM application attributes. properties: - category: - deprecated: true - description: The scorecard name to which this rule must belong. + api_key_id: + description: ID of the API key associated with the application. + example: 123456789 + format: int32 + maximum: 2147483647 + type: integer + application_id: + description: ID of the RUM application. + example: abcd1234-0000-0000-abcd-1234abcd5678 + type: string + client_token: + description: Client token of the RUM application. + example: abcd1234efgh5678ijkl90abcd1234efgh0 type: string created_at: - description: Creation time of the rule outcome. - format: date-time + description: Timestamp in ms of the creation date. + example: 1659479836169 + format: int64 + type: integer + created_by_handle: + description: Handle of the creator user. + example: john.doe type: string - custom: - description: Defines if the rule is a custom rule. - type: boolean - description: - description: Explanation of the rule. + hash: + description: Hash of the RUM application. Optional. type: string - enabled: - description: If enabled, the rule is calculated as part of the score. + is_active: + description: Indicates if the RUM application is active. example: true type: boolean - level: - $ref: "#/components/schemas/RuleLevel" - modified_at: - description: Time of the last rule outcome modification. - format: date-time - type: string name: - description: Name of the rule. - example: Team Defined + description: Name of the RUM application. + example: my_rum_application type: string - owner: - description: Owner of the rule. + org_id: + description: Org ID of the RUM application. + example: 999 + format: int32 + maximum: 2147483647 + type: integer + product_scales: + $ref: "#/components/schemas/RUMProductScales" + remote_config_id: + description: ID of the RUM SDK remote configuration for the application, if one exists. + example: abc12345-1234-5678-abcd-ef1234567890 type: string - scope_query: - description: A query to filter which entities this rule applies to. - example: "kind:service" + type: + description: "Type of the RUM application. Supported values are `browser`, `ios`, `android`, `react-native`, `flutter`, `roku`, `electron`, `unity`, `kotlin-multiplatform`." + example: browser type: string - scorecard_name: - description: The scorecard name to which this rule must belong. - example: Deployments automated via Deployment Trains + updated_at: + description: Timestamp in ms of the last update date. + example: 1659479836169 + format: int64 + type: integer + updated_by_handle: + description: Handle of the updater user. + example: jane.doe type: string + required: + - application_id + - client_token + - created_at + - created_by_handle + - name + - org_id + - type + - updated_at + - updated_by_handle type: object - RuleAttributesRequest: - description: Attributes for creating or updating a rule. Server-managed fields (created_at, modified_at, custom) are excluded. + RUMApplicationCreate: + description: RUM application creation. properties: - description: - description: Explanation of the rule. - type: string - enabled: - description: If enabled, the rule is calculated as part of the score. - example: true - type: boolean - level: - $ref: "#/components/schemas/RuleLevel" - name: - description: Name of the rule. - example: Team Defined - type: string - owner: - description: Owner of the rule. - type: string - scope_query: - description: A query to filter which entities this rule applies to. - example: "kind:service" - type: string - scorecard_name: - description: The scorecard name to which this rule must belong. - example: Deployments automated via Deployment Trains - type: string - type: object - RuleBasedViewAttributes: - description: Attributes of the rule-based view. - properties: - count: - description: Total number of rules in the view. - example: 1 - format: int64 - type: integer - rules: - $ref: "#/components/schemas/RuleBasedViewRules" + attributes: + $ref: "#/components/schemas/RUMApplicationCreateAttributes" + type: + $ref: "#/components/schemas/RUMApplicationCreateType" required: - - count - - rules - type: object - RuleBasedViewComplianceFramework: - description: Compliance framework mapping for a rule. - properties: - control: - description: Identifier of the control inside the requirement. - example: 164.308-a-4-i - type: string - framework: - description: Handle of the compliance framework. - example: hipaa - type: string - is_default: - description: Whether the framework is a Datadog default framework. `true` indicates a Datadog framework and `false` indicates a custom framework. - example: true - type: boolean - message: - description: Optional message describing the framework mapping for the rule. - example: "" - type: string - requirement: - description: Name of the requirement that contains the control. - example: Information-Access-Management - type: string - version: - description: Version of the compliance framework. - example: "1" - type: string + - attributes + - type type: object - RuleBasedViewComplianceFrameworks: - description: List of compliance framework mappings associated with the rule. - items: - $ref: "#/components/schemas/RuleBasedViewComplianceFramework" - type: array - RuleBasedViewData: - description: Data envelope for the rule-based view response. + RUMApplicationCreateAttributes: + description: RUM application creation attributes. properties: - attributes: - $ref: "#/components/schemas/RuleBasedViewAttributes" - id: - description: Unique identifier of the rule-based view document. - example: JSONAPI_USELESS_ID + name: + description: Name of the RUM application. + example: my_new_rum_application type: string + product_analytics_retention_state: + $ref: "#/components/schemas/RUMProductAnalyticsRetentionState" + rum_event_processing_state: + $ref: "#/components/schemas/RUMEventProcessingState" type: - $ref: "#/components/schemas/RuleBasedViewType" + description: "Type of the RUM application. Supported values are `browser`, `ios`, `android`, `react-native`, `flutter`, `roku`, `electron`, `unity`, `kotlin-multiplatform`." + example: browser + type: string required: - - attributes - - id - - type + - name type: object - RuleBasedViewResourceAttributes: - description: List of resource attribute names exposed by the rule. - example: - - instance_id - items: - description: Name of a resource attribute exposed by the rule. - example: instance_id - type: string - type: array - RuleBasedViewResponse: - description: Response containing an aggregated view of compliance rules with their finding statistics. + RUMApplicationCreateRequest: + description: RUM application creation request attributes. properties: data: - $ref: "#/components/schemas/RuleBasedViewData" + $ref: "#/components/schemas/RUMApplicationCreate" required: - data type: object - RuleBasedViewRule: - description: A compliance rule along with its evaluation statistics and framework mappings. + RUMApplicationCreateType: + default: rum_application_create + description: RUM application creation type. + enum: + - rum_application_create + example: rum_application_create + type: string + x-enum-varnames: + - RUM_APPLICATION_CREATE + RUMApplicationList: + description: RUM application list. properties: - compliance_frameworks: - $ref: "#/components/schemas/RuleBasedViewComplianceFrameworks" - enabled: - description: Whether the rule is enabled. - example: true - type: boolean + attributes: + $ref: "#/components/schemas/RUMApplicationListAttributes" id: - description: Unique identifier of the rule. - example: qjx-udx-xo8 - type: string - name: - description: Human-readable name of the rule. - example: IAM roles should not allow untrusted GitHub Actions to assume them - type: string - resourceAttributes: - $ref: "#/components/schemas/RuleBasedViewResourceAttributes" - resourceCategory: - description: Resource category targeted by the rule. - example: identity - type: string - resourceType: - description: Resource type targeted by the rule. - example: aws_iam_role - type: string - stats: - $ref: "#/components/schemas/RuleBasedViewRuleStats" - status: - description: Severity associated with the rule (for example, `info`, `low`, `medium`, `high`, or `critical`). - example: critical + description: RUM application ID. + example: abcd1234-0000-0000-abcd-1234abcd5678 type: string - tags: - $ref: "#/components/schemas/RuleBasedViewRuleTags" type: - $ref: "#/components/schemas/RuleBasedViewRuleCategory" + $ref: "#/components/schemas/RUMApplicationListType" required: - - compliance_frameworks - - enabled - - id - - name - - resourceAttributes - - resourceCategory - - resourceType - - stats - - status - - tags + - attributes - type type: object - RuleBasedViewRuleCategory: - description: The category of the security rule. - enum: - - cloud_configuration - - infrastructure_configuration - - api_security - example: cloud_configuration - type: string - x-enum-varnames: - - CLOUD_CONFIGURATION - - INFRASTRUCTURE_CONFIGURATION - - API_SECURITY - RuleBasedViewRuleStats: - description: Counts of findings for the rule, grouped by their evaluation status. + RUMApplicationListAttributes: + description: RUM application list attributes. properties: - fail: - description: Number of findings that failed evaluation. - example: 0 + application_id: + description: ID of the RUM application. + example: abcd1234-0000-0000-abcd-1234abcd5678 + type: string + created_at: + description: Timestamp in ms of the creation date. + example: 1659479836169 format: int64 type: integer - muted: - description: Number of findings that have been muted. - example: 0 - format: int64 + created_by_handle: + description: Handle of the creator user. + example: john.doe + type: string + hash: + description: Hash of the RUM application. Optional. + type: string + is_active: + description: Indicates if the RUM application is active. + example: true + type: boolean + name: + description: Name of the RUM application. + example: my_rum_application + type: string + org_id: + description: Org ID of the RUM application. + example: 999 + format: int32 + maximum: 2147483647 type: integer - pass: - description: Number of findings that passed evaluation. - example: 3 + product_scales: + $ref: "#/components/schemas/RUMProductScales" + type: + description: Type of the RUM application. Supported values are `browser`, `ios`, `android`, `react-native`, `flutter`, `roku`, `electron`, `unity`, `kotlin-multiplatform`. + example: browser + type: string + updated_at: + description: Timestamp in ms of the last update date. + example: 1659479836169 format: int64 type: integer + updated_by_handle: + description: Handle of the updater user. + example: jane.doe + type: string required: - - fail - - pass - - muted + - application_id + - created_at + - created_by_handle + - name + - org_id + - type + - updated_at + - updated_by_handle type: object - RuleBasedViewRuleTags: - description: List of tags attached to the rule. - example: - - security:compliance - items: - description: A tag attached to the rule. - example: security:compliance - type: string - type: array - RuleBasedViewRules: - description: List of rules in the rule-based view. - items: - $ref: "#/components/schemas/RuleBasedViewRule" - type: array - RuleBasedViewType: - default: rule_based_view - description: The type of the resource. The value should always be `rule_based_view`. + RUMApplicationListType: + default: rum_application + description: RUM application list type. enum: - - rule_based_view - example: rule_based_view + - rum_application + example: rum_application type: string x-enum-varnames: - - RULE_BASED_VIEW - RuleId: - description: The unique ID for a scorecard rule. - example: q8MQxk8TCqrHnWkx - type: string - RuleLevel: - description: The maturity level of the rule (1, 2, or 3). - example: 2 - format: int32 - maximum: 3 - minimum: 1 - type: integer - RuleName: - description: Name of the notification rule. - example: Rule 1 - type: string - RuleOutcomeRelationships: - description: The JSON:API relationship to a scorecard rule. + - RUM_APPLICATION + RUMApplicationResponse: + description: RUM application response. properties: - rule: - $ref: "#/components/schemas/RelationshipToOutcome" + data: + $ref: "#/components/schemas/RUMApplication" type: object - RuleSeverity: - description: Severity of a security rule. - enum: - - critical - - high - - medium - - low - - unknown - - info - example: critical - type: string - x-enum-varnames: - - CRITICAL - - HIGH - - MEDIUM - - LOW - - UNKNOWN - - INFO - RuleType: - default: rule - description: The JSON:API type for scorecard rules. - enum: - - rule - example: rule - type: string - x-enum-varnames: - - RULE - RuleTypes: - description: Security rule types used as filters in security rules. - example: [misconfiguration, attack_path] - items: - $ref: "#/components/schemas/RuleTypesItems" - type: array - RuleTypesItems: - description: |- - Security rule type which can be used in security rules. - Signal-based notification rules can filter signals based on rule types application_security, log_detection, - workload_security, signal_correlation, cloud_configuration and infrastructure_configuration. - Vulnerability-based notification rules can filter vulnerabilities based on rule types application_code_vulnerability, - application_library_vulnerability, attack_path, container_image_vulnerability, identity_risk, misconfiguration, - api_security, host_vulnerability, iac_misconfiguration, sast_vulnerability, secret_vulnerability, workload_activity, - sensitive_data and serverless_function_code_vulnerability. + RUMApplicationType: + default: rum_application + description: RUM application response type. enum: - - application_security - - log_detection - - workload_security - - signal_correlation - - cloud_configuration - - infrastructure_configuration - - application_code_vulnerability - - application_library_vulnerability - - attack_path - - container_image_vulnerability - - identity_risk - - misconfiguration - - api_security - - host_vulnerability - - iac_misconfiguration - - sast_vulnerability - - secret_vulnerability - - workload_activity - - sensitive_data - - serverless_function_code_vulnerability - example: log_detection + - rum_application + example: rum_application type: string x-enum-varnames: - - APPLICATION_SECURITY - - LOG_DETECTION - - WORKLOAD_SECURITY - - SIGNAL_CORRELATION - - CLOUD_CONFIGURATION - - INFRASTRUCTURE_CONFIGURATION - - APPLICATION_CODE_VULNERABILITY - - APPLICATION_LIBRARY_VULNERABILITY - - ATTACK_PATH - - CONTAINER_IMAGE_VULNERABILITY - - IDENTITY_RISK - - MISCONFIGURATION - - API_SECURITY - - HOST_VULNERABILITY - - IAC_MISCONFIGURATION - - SAST_VULNERABILITY - - SECRET_VULNERABILITY - - WORKLOAD_ACTIVITY - - SENSITIVE_DATA - - SERVERLESS_FUNCTION_CODE_VULNERABILITY - RuleUser: - description: User creating or modifying a rule. + - RUM_APPLICATION + RUMApplicationUpdate: + description: RUM application update. properties: - handle: - description: The user handle. - example: john.doe@domain.com + attributes: + $ref: "#/components/schemas/RUMApplicationUpdateAttributes" + id: + description: RUM application ID. + example: abcd1234-0000-0000-abcd-1234abcd5678 type: string + type: + $ref: "#/components/schemas/RUMApplicationUpdateType" + required: + - id + - type + type: object + RUMApplicationUpdateAttributes: + description: RUM application update attributes. + properties: name: - description: The user name. - example: John Doe + description: Name of the RUM application. + example: updated_name_for_my_existing_rum_application + type: string + product_analytics_retention_state: + $ref: "#/components/schemas/RUMProductAnalyticsRetentionState" + rum_event_processing_state: + $ref: "#/components/schemas/RUMEventProcessingState" + type: + description: "Type of the RUM application. Supported values are `browser`, `ios`, `android`, `react-native`, `flutter`, `roku`, `electron`, `unity`, `kotlin-multiplatform`." + example: browser type: string type: object - RuleVersionHistory: - description: Response object containing the version history of a rule. + RUMApplicationUpdateRequest: + description: RUM application update request. properties: - count: - description: The number of rule versions. - format: int32 - maximum: 2147483647 - type: integer data: - additionalProperties: - $ref: "#/components/schemas/RuleVersions" - description: A rule version with a list of updates. - description: The `RuleVersionHistory` `data`. - type: object + $ref: "#/components/schemas/RUMApplicationUpdate" + required: + - data type: object - RuleVersions: - description: A rule version with a list of updates. + RUMApplicationUpdateType: + default: rum_application_update + description: RUM application update type. + enum: + - rum_application_update + example: rum_application_update + type: string + x-enum-varnames: + - RUM_APPLICATION_UPDATE + RUMApplicationsResponse: + description: RUM applications response. properties: - changes: - description: A list of changes. + data: + description: RUM applications array response. items: - $ref: "#/components/schemas/VersionHistoryUpdate" + $ref: "#/components/schemas/RUMApplicationList" type: array - rule: - $ref: "#/components/schemas/SecurityMonitoringRuleResponse" type: object - RulesValidateQueryRequest: - description: The definition of `RulesValidateQueryRequest` object. - example: - data: - attributes: - Query: example:query AND test:true - type: validate_query + RUMBucketResponse: + description: Bucket values. properties: - data: - $ref: "#/components/schemas/RulesValidateQueryRequestData" + by: + additionalProperties: + description: The values for each group-by. + type: string + description: The key-value pairs for each group-by. + example: {"@session.type": "user", "@type": "view"} + type: object + computes: + additionalProperties: + $ref: "#/components/schemas/RUMAggregateBucketValue" + description: A map of the metric name to value for regular compute, or a list of values for a timeseries. + type: object type: object - RulesValidateQueryRequestData: - description: The definition of `RulesValidateQueryRequestData` object. + RUMCompute: + description: A compute rule to compute metrics or timeseries. + properties: + aggregation: + $ref: "#/components/schemas/RUMAggregationFunction" + interval: + description: |- + The time buckets' size (only used for type=timeseries) + Defaults to a resolution of 150 points. + example: "5m" + type: string + metric: + description: The metric to use. + example: "@duration" + type: string + type: + $ref: "#/components/schemas/RUMComputeType" + required: + - aggregation + type: object + RUMComputeType: + default: "total" + description: The type of compute. + enum: ["timeseries", "total"] + type: string + x-enum-varnames: ["TIMESERIES", "TOTAL"] + RUMEvent: + description: Object description of a RUM event after being processed and stored by Datadog. properties: attributes: - $ref: "#/components/schemas/RulesValidateQueryRequestDataAttributes" + $ref: "#/components/schemas/RUMEventAttributes" id: - description: The `RulesValidateQueryRequestData` `id`. + description: Unique ID of the event. + example: "AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA" type: string type: - $ref: "#/components/schemas/RulesValidateQueryRequestDataType" - required: - - type + $ref: "#/components/schemas/RUMEventType" type: object - RulesValidateQueryRequestDataAttributes: - description: The definition of `RulesValidateQueryRequestDataAttributes` object. + RUMEventAttributes: + description: JSON object containing all event attributes and their associated values. properties: - Query: - description: The `attributes` `Query`. - example: "" + attributes: + additionalProperties: {} + description: JSON object of attributes from RUM events. + example: {"customAttribute": 123, "duration": 2345} + type: object + service: + description: |- + The name of the application or service generating RUM events. + It is used to switch from RUM to APM, so make sure you define the same + value when you use both products. + example: "web-app" + type: string + tags: + description: Array of tags associated with your event. + example: ["team:A"] + items: + description: Tag associated with your event. + type: string + type: array + timestamp: + description: Timestamp of your event. + example: "2019-01-02T09:42:36.320Z" + format: date-time type: string - required: - - Query type: object - RulesValidateQueryRequestDataType: - default: validate_query - description: Validate query resource type. + RUMEventProcessingScale: + description: RUM event processing scale configuration. + properties: + last_modified_at: + description: Timestamp in milliseconds when this scale was last modified. + example: 1721897494108 + format: int64 + type: integer + state: + $ref: "#/components/schemas/RUMEventProcessingState" + type: object + RUMEventProcessingState: + description: Configures which RUM events are processed and stored for the application. enum: - - validate_query - example: validate_query + - ALL + - ERROR_FOCUSED_MODE + - NONE + example: ALL type: string + x-enum-descriptions: + - Process and store all RUM events (sessions, views, actions, resources, errors) + - Process and store only error events and related critical events + - Disable RUM event processing—no events are stored x-enum-varnames: - - VALIDATE_QUERY - RulesValidateQueryResponse: - description: The definition of `RulesValidateQueryResponse` object. - example: - data: - attributes: - Canonical: canonical query representation - type: validate_response + - ALL + - ERROR_FOCUSED_MODE + - NONE + RUMEventType: + default: rum + description: Type of the event. + enum: + - rum + example: "rum" + type: string + x-enum-varnames: + - RUM + RUMEventsResponse: + description: Response object with all events matching the request and pagination information. properties: data: - $ref: "#/components/schemas/RulesValidateQueryResponseData" + description: Array of events matching the request. + items: + $ref: "#/components/schemas/RUMEvent" + type: array + links: + $ref: "#/components/schemas/RUMResponseLinks" + meta: + $ref: "#/components/schemas/RUMResponseMetadata" type: object - RulesValidateQueryResponseData: - description: The definition of `RulesValidateQueryResponseData` object. + RUMGroupBy: + description: A group-by rule. properties: - attributes: - $ref: "#/components/schemas/RulesValidateQueryResponseDataAttributes" - id: - description: The `RulesValidateQueryResponseData` `id`. + facet: + description: The name of the facet to use (required). + example: "@view.time_spent" type: string - type: - $ref: "#/components/schemas/RulesValidateQueryResponseDataType" + histogram: + $ref: "#/components/schemas/RUMGroupByHistogram" + limit: + default: 10 + description: The maximum buckets to return for this group-by. + format: int64 + type: integer + missing: + $ref: "#/components/schemas/RUMGroupByMissing" + sort: + $ref: "#/components/schemas/RUMAggregateSort" + total: + $ref: "#/components/schemas/RUMGroupByTotal" required: - - type + - facet type: object - RulesValidateQueryResponseDataAttributes: - description: The definition of `RulesValidateQueryResponseDataAttributes` object. + RUMGroupByHistogram: + description: |- + Used to perform a histogram computation (only for measure facets). + Note: At most 100 buckets are allowed, the number of buckets is (max - min)/interval. properties: - Canonical: - description: The `attributes` `Canonical`. - example: "" - type: string + interval: + description: The bin size of the histogram buckets. + example: 10 + format: double + type: number + max: + description: |- + The maximum value for the measure used in the histogram + (values greater than this one are filtered out). + example: 100 + format: double + type: number + min: + description: |- + The minimum value for the measure used in the histogram + (values smaller than this one are filtered out). + example: 50 + format: double + type: number required: - - Canonical + - interval + - min + - max type: object - RulesValidateQueryResponseDataType: - default: validate_response - description: Validate response resource type. - enum: - - validate_response - example: validate_response + RUMGroupByMissing: + description: The value to use for logs that don't have the facet used to group by. + oneOf: + - $ref: "#/components/schemas/RUMGroupByMissingString" + - $ref: "#/components/schemas/RUMGroupByMissingNumber" + RUMGroupByMissingNumber: + description: The missing value to use if there is a number valued facet. + format: double + type: number + RUMGroupByMissingString: + description: The missing value to use if there is string valued facet. type: string - x-enum-varnames: - - VALIDATE_RESPONSE - RulesetItemMetadata: - additionalProperties: - type: string - description: The `items` `metadata`. - nullable: true - type: object - RulesetResp: - description: The definition of `RulesetResp` object. - example: - data: - attributes: - created: - enabled: true - last_modified_user_uuid: "" - modified: - name: Example Ruleset - position: 0 - rules: - - enabled: false - mapping: - metadata: - name: RC test rule edited1 - query: - addition: - key: abc - value: ww - case_insensitivity: false - if_tag_exists: do_not_apply - query: billingcurrency:"USD" AND account_name:"SZA96462" AND billingcurrency:"USD" - reference_table: - - enabled: true - mapping: - destination_key: h - if_tag_exists: do_not_apply - source_keys: - - accountname - - accountownerid - metadata: - name: rule with empty source key - query: - reference_table: - - enabled: true - mapping: - metadata: - name: New table rule with new UI - query: - reference_table: - case_insensitivity: true - field_pairs: - - input_column: status_type - output_key: status - - input_column: status_description - output_key: dess - if_tag_exists: append - source_keys: - - http_status - - status_description - table_name: http_status_codes - version: 1 - id: "12345" - type: ruleset - properties: - data: - $ref: "#/components/schemas/RulesetRespData" - type: object - RulesetRespArray: - description: The definition of `RulesetRespArray` object. - example: - data: - - attributes: - created: - enabled: true - last_modified_user_uuid: "" - modified: - name: Production Cost Allocation Rules - position: 0 - rules: - - enabled: true - mapping: - metadata: - name: AWS Production Account Tagging - query: - addition: - key: environment - value: production - case_insensitivity: false - if_tag_exists: do_not_apply - query: billingcurrency:"USD" AND account_name:"prod-account" - reference_table: - - enabled: true - mapping: - destination_key: team_owner - if_tag_exists: do_not_apply - source_keys: - - account_name - - service - metadata: - name: Team Mapping Rule - query: - reference_table: - - enabled: true - mapping: - metadata: - name: New table rule with new UI - query: - reference_table: - case_insensitivity: true - field_pairs: - - input_column: status_type - output_key: status - - input_column: status_description - output_key: dess - if_tag_exists: append - source_keys: - - http_status - - status_description - table_name: http_status_codes - version: 2 - id: "55ef2385-9ae1-4410-90c4-5ac1b60fec10" - type: ruleset - - attributes: - created: - enabled: true - last_modified_user_uuid: "" - modified: - name: Development Environment Rules - position: 0 - rules: - - enabled: true - mapping: - metadata: - name: Dev Account Cost Center - query: - addition: - key: cost_center - value: engineering - case_insensitivity: true - if_tag_exists: do_not_apply - query: account_name:"dev-*" - reference_table: - version: 1 - id: "a7b8c9d0-1234-5678-9abc-def012345678" - type: ruleset + RUMGroupByTotal: + default: false + description: |- + A resulting object to put the given computes in over all the matching records. + oneOf: + - $ref: "#/components/schemas/RUMGroupByTotalBoolean" + - $ref: "#/components/schemas/RUMGroupByTotalString" + - $ref: "#/components/schemas/RUMGroupByTotalNumber" + RUMGroupByTotalBoolean: + description: If set to true, creates an additional bucket labeled "$facet_total". + type: boolean + RUMGroupByTotalNumber: + description: A number to use as the key value for the total bucket. + format: double + type: number + RUMGroupByTotalString: + description: A string to use as the key value for the total bucket. + type: string + RUMOperationCreateRequest: + description: The request body for creating a RUM operation. properties: data: - description: The `RulesetRespArray` `data`. - items: - $ref: "#/components/schemas/RulesetRespData" - type: array + $ref: "#/components/schemas/RUMOperationCreateRequestData" required: - data type: object - RulesetRespData: - description: The definition of `RulesetRespData` object. + RUMOperationCreateRequestData: + description: The data object for creating a RUM operation. properties: attributes: - $ref: "#/components/schemas/RulesetRespDataAttributes" - id: - description: The `RulesetRespData` `id`. - type: string + $ref: "#/components/schemas/RUMOperationRequestAttributes" type: - $ref: "#/components/schemas/RulesetRespDataType" + $ref: "#/components/schemas/RUMOperationType" required: - type + - attributes type: object - RulesetRespDataAttributes: - description: The definition of `RulesetRespDataAttributes` object. + RUMOperationJourneyCompositeRule: + description: |- + A composite rule combining several predicates. Used as an alternative to `nodes` on a journey + step when several conditions must be matched together, in any order or in a specific order. properties: - created: - $ref: "#/components/schemas/RulesetRespDataAttributesCreated" - enabled: - description: The `attributes` `enabled`. - example: false - type: boolean - last_modified_user_uuid: - description: The `attributes` `last_modified_user_uuid`. - example: "" + composite_rule_id: + description: The unique identifier of the composite rule. Generated by the server if omitted. + readOnly: true type: string - modified: - $ref: "#/components/schemas/RulesetRespDataAttributesModified" - name: - description: The `attributes` `name`. - example: "" + config_version: + description: A hash of the composite rule's configuration, computed by the server. + readOnly: true type: string - position: - description: The `attributes` `position`. - example: 0 - format: int32 - maximum: 2147483647 + kind: + $ref: "#/components/schemas/RUMOperationJourneyCompositeRuleKind" + max_window_ms: + description: The maximum time window, in milliseconds, in which all predicates must match. + example: 30000 + format: int64 type: integer - processing_status: - description: The `attributes` `processing_status`. - example: "" - type: string - rules: - description: The `attributes` `rules`. + predicates: + description: The list of predicates that must be matched by RUM events. items: - $ref: "#/components/schemas/RulesetRespDataAttributesRulesItems" + $ref: "#/components/schemas/RUMOperationJourneyPredicate" type: array - version: - description: The `attributes` `version`. - example: 0 - format: int64 - type: integer required: - - created - - enabled - - last_modified_user_uuid - - modified - - name - - position - - rules - - version - type: object - RulesetRespDataAttributesCreated: - description: The definition of `RulesetRespDataAttributesCreated` object. - properties: - nanos: - description: The `created` `nanos`. - format: int32 - maximum: 2147483647 - type: integer - seconds: - description: The `created` `seconds`. - format: int64 - type: integer - type: object - RulesetRespDataAttributesModified: - description: The definition of `RulesetRespDataAttributesModified` object. - properties: - nanos: - description: The `modified` `nanos`. - format: int32 - maximum: 2147483647 - type: integer - seconds: - description: The `modified` `seconds`. - format: int64 - type: integer + - kind + - predicates type: object - RulesetRespDataAttributesRulesItems: - description: The definition of `RulesetRespDataAttributesRulesItems` object. + RUMOperationJourneyCompositeRuleKind: + description: |- + The rule used to combine the composite rule's predicates. `all_of` requires every predicate + to match, in any order. `in_order` requires every predicate to match in the given order. + enum: + - all_of + - in_order + example: all_of + type: string + x-enum-varnames: + - ALL_OF + - IN_ORDER + RUMOperationJourneyNode: + description: A single node within a RUM operation journey step, matching RUM events with a query. properties: - enabled: - description: The `items` `enabled`. - example: false - type: boolean - mapping: - $ref: "#/components/schemas/DataAttributesRulesItemsMapping" - metadata: - $ref: "#/components/schemas/RulesetItemMetadata" - name: - description: The `items` `name`. - example: "" + id: + description: The unique identifier of the node. Generated by the server if omitted. + readOnly: true type: string query: - $ref: "#/components/schemas/RulesetRespDataAttributesRulesItemsQuery" - reference_table: - $ref: "#/components/schemas/RulesetRespDataAttributesRulesItemsReferenceTable" + description: The RUM search query used to match events for this node. + example: "@type:action @action.type:click" + type: string required: - - enabled - - name + - query type: object - RulesetRespDataAttributesRulesItemsQuery: - description: The definition of `RulesetRespDataAttributesRulesItemsQuery` object. - nullable: true + RUMOperationJourneyPredicate: + description: A single predicate within a composite rule, matching RUM events with a query. properties: - addition: - $ref: "#/components/schemas/RulesetRespDataAttributesRulesItemsQueryAddition" - case_insensitivity: - description: The `query` `case_insensitivity`. - type: boolean - if_not_exists: - deprecated: true - description: Deprecated. Use `if_tag_exists` instead. The `query` `if_not_exists`. - type: boolean - if_tag_exists: - $ref: "#/components/schemas/DataAttributesRulesItemsIfTagExists" query: - description: The `query` `query`. - example: "" + description: The RUM search query used to match events for this predicate. + example: "@type:action @action.type:click" type: string required: - - addition - query type: object - RulesetRespDataAttributesRulesItemsQueryAddition: - description: The definition of `RulesetRespDataAttributesRulesItemsQueryAddition` object. - nullable: true + RUMOperationJourneyRum: + description: The definition of a RUM operation's journey, used to detect it from RUM events. properties: - key: - description: The `addition` `key`. - example: "" - type: string - value: - description: The `addition` `value`. - example: "" - type: string - required: - - key - - value - type: object - RulesetRespDataAttributesRulesItemsReferenceTable: - description: The definition of `RulesetRespDataAttributesRulesItemsReferenceTable` object. - nullable: true - properties: - case_insensitivity: - description: The `reference_table` `case_insensitivity`. - type: boolean - field_pairs: - description: The `reference_table` `field_pairs`. - items: - $ref: "#/components/schemas/RulesetRespDataAttributesRulesItemsReferenceTableFieldPairsItems" - type: array - if_not_exists: - deprecated: true - description: Deprecated. Use `if_tag_exists` instead. The `reference_table` `if_not_exists`. - type: boolean - if_tag_exists: - $ref: "#/components/schemas/DataAttributesRulesItemsIfTagExists" - source_keys: - description: The `reference_table` `source_keys`. - example: - - "" + rum_steps: + description: The ordered list of steps composing the RUM journey. items: - description: A source key for the reference table lookup. - type: string + $ref: "#/components/schemas/RUMOperationJourneyStep" type: array - table_name: - description: The `reference_table` `table_name`. - example: "" - type: string required: - - field_pairs - - source_keys - - table_name + - rum_steps type: object - RulesetRespDataAttributesRulesItemsReferenceTableFieldPairsItems: - description: The definition of `RulesetRespDataAttributesRulesItemsReferenceTableFieldPairsItems` object. + RUMOperationJourneyStep: + description: |- + A single step of a RUM operation's journey. Matches RUM events either through a list of `nodes` + or through a `composite` rule; the two are mutually exclusive. properties: - input_column: - description: The `items` `input_column`. - example: "" - type: string - output_key: - description: The `items` `output_key`. - example: "" - type: string + composite: + $ref: "#/components/schemas/RUMOperationJourneyCompositeRule" + nodes: + description: The list of nodes that can match this step. Mutually exclusive with `composite`. + items: + $ref: "#/components/schemas/RUMOperationJourneyNode" + type: array + type: + $ref: "#/components/schemas/RUMOperationJourneyStepType" required: - - input_column - - output_key + - type type: object - RulesetRespDataType: - default: ruleset - description: Ruleset resource type. + RUMOperationJourneyStepType: + description: The type of a step within a RUM operation's journey. enum: - - ruleset - example: ruleset + - start + - update + - stop + - error + - abandoned + example: start type: string x-enum-varnames: - - RULESET - RulesetStatusRespArray: - description: Processing statuses for all tag pipeline rulesets in the specified organization. - example: - data: - - attributes: - processing_status: processing - id: 55ef2385-9ae1-4410-90c4-5ac1b60fec10 - type: ruleset_status - - attributes: - processing_status: done - id: a7b8c9d0-1234-5678-9abc-def012345678 - type: ruleset_status + - START + - UPDATE + - STOP + - ERROR + - ABANDONED + RUMOperationRequestAttributes: + description: Attributes for creating or updating a RUM operation. properties: - data: - description: Processing status for a tag pipeline ruleset. + application_id: + description: The RUM application ID the operation belongs to. + example: "abc12345-1234-5678-abcd-ef1234567890" + format: uuid + type: string + category: + description: The category of the RUM operation. + nullable: true + type: string + description: + description: A description of the RUM operation. + nullable: true + type: string + display_name: + description: A human-readable display name for the RUM operation. + example: Checkout completed + type: string + feature_ids: + description: The list of journey IDs associated with the RUM operation. items: - $ref: "#/components/schemas/RulesetStatusRespData" + type: string type: array - required: - - data - type: object - RulesetStatusRespData: - description: Processing status for a tag pipeline ruleset. - properties: - attributes: - $ref: "#/components/schemas/RulesetStatusRespDataAttributes" - id: - description: The unique identifier of the ruleset. - example: 55ef2385-9ae1-4410-90c4-5ac1b60fec10 + journey_rum: + $ref: "#/components/schemas/RUMOperationJourneyRum" + name: + description: The unique name of the RUM operation. Must not contain spaces. + example: checkout_completed type: string - type: - $ref: "#/components/schemas/RulesetStatusRespDataType" + tags: + description: A list of tags associated with the RUM operation. + example: + - "team:checkout" + items: + type: string + type: array required: - - id - - type - - attributes + - name + - tags + - journey_rum type: object - RulesetStatusRespDataAttributes: - description: Processing status for a tag pipeline ruleset. + RUMOperationResponse: + description: The response for a single RUM operation. properties: - processing_status: - description: The processing status of the ruleset. - example: processing - type: string + data: + $ref: "#/components/schemas/RUMOperationResponseData" required: - - processing_status + - data type: object - RulesetStatusRespDataType: - default: ruleset_status - description: Ruleset status resource type. - enum: - - ruleset_status - example: ruleset_status - type: string - x-enum-varnames: - - RULESET_STATUS - RumConfigAttributes: - description: Attributes of the RUM configuration. + RUMOperationResponseAttributes: + description: Attributes of a RUM operation response. properties: - disabled: - description: Whether the RUM configuration is disabled for the organization. - example: false - type: boolean - enforced_application_tags: - description: Whether application tags are enforced for the RUM applications in the organization. - example: true - type: boolean - enforced_application_tags_updated_at: - description: Timestamp of when the enforced application tags setting was last updated. - example: "2024-01-15T09:30:00.000Z" + application_id: + description: The RUM application ID the operation belongs to. + format: uuid + nullable: true + type: string + category: + description: The category of the RUM operation. + nullable: true + type: string + created_at: + description: The timestamp when the RUM operation was created. format: date-time + readOnly: true type: string - enforced_application_tags_updated_by: - description: Handle of the user who last updated the enforced application tags setting. - example: "user@example.com" + created_by: + $ref: "#/components/schemas/RUMOperationUser" + description: + description: A description of the RUM operation. + nullable: true type: string - ootb_metrics_version: - description: Version of the out-of-the-box metrics installed for the organization. - example: 5 + display_name: + description: A human-readable display name for the RUM operation. + example: Checkout completed + type: string + feature_ids: + description: The list of journey IDs associated with the RUM operation. + items: + type: string + type: array + journey_rum: + $ref: "#/components/schemas/RUMOperationJourneyRum" + name: + description: The unique name of the RUM operation. Must not contain spaces. + example: checkout_completed + type: string + org_id: + description: The ID of the organization the RUM operation belongs to. format: int64 + readOnly: true type: integer - ootb_metrics_version_installed_at: - description: Timestamp of when the out-of-the-box metrics version was installed. - example: "2024-01-15T09:30:00.000Z" - format: date-time - type: string - retention_filters_enabled: - description: Whether retention filters are enabled for the organization. - example: true - type: boolean - retention_filters_enabled_updated_at: - description: Timestamp of when the retention filters setting was last updated. - example: "2024-01-15T09:30:00.000Z" + tags: + description: A list of tags associated with the RUM operation. + example: + - "team:checkout" + items: + type: string + type: array + updated_at: + description: The timestamp when the RUM operation was last updated. format: date-time + nullable: true + readOnly: true type: string - retention_filters_enabled_updated_by: - description: Handle of the user or job who last updated the retention filters setting. - example: "contract-update-job" - type: string - required: - - enforced_application_tags - - retention_filters_enabled - type: object - RumConfigCreateAttributes: - description: Attributes of the RUM configuration to create. - properties: - enforced_application_tags: - description: Whether application tags are enforced for the RUM applications in the organization. - example: true - type: boolean - required: - - enforced_application_tags - type: object - RumConfigCreateData: - description: Object describing the RUM configuration to create. - properties: - attributes: - $ref: "#/components/schemas/RumConfigCreateAttributes" - type: - $ref: "#/components/schemas/RumConfigType" - required: - - type - - attributes - type: object - RumConfigCreateRequest: - description: Request body for creating the RUM configuration. - properties: - data: - $ref: "#/components/schemas/RumConfigCreateData" + updated_by: + $ref: "#/components/schemas/RUMOperationUser" required: - - data + - name + - tags + - journey_rum type: object - RumConfigData: - description: The RUM configuration data. + RUMOperationResponseData: + description: The data object in a RUM operation response. properties: attributes: - $ref: "#/components/schemas/RumConfigAttributes" + $ref: "#/components/schemas/RUMOperationResponseAttributes" id: - description: The organization ID associated with the RUM configuration. - example: "1234" + description: The unique identifier of the RUM operation. + example: "abc12345-1234-5678-abcd-ef1234567890" + readOnly: true type: string type: - $ref: "#/components/schemas/RumConfigType" + $ref: "#/components/schemas/RUMOperationType" required: - id - type - attributes type: object - RumConfigResponse: - description: The RUM configuration object. + RUMOperationStrongLinkCreateRequest: + description: The request body for creating a RUM operation link. properties: data: - $ref: "#/components/schemas/RumConfigData" + $ref: "#/components/schemas/RUMOperationStrongLinkCreateRequestData" required: - data type: object - RumConfigType: - default: rum_config - description: The type of the resource. The value should always be `rum_config`. - enum: - - rum_config - example: rum_config - type: string - x-enum-varnames: - - RUM_CONFIG - RumConfigUpdateAttributes: - description: Attributes of the RUM configuration to update. + RUMOperationStrongLinkCreateRequestAttributes: + description: Attributes for creating a RUM operation link. properties: - enforced_application_tags: - description: Whether application tags are enforced for the RUM applications in the organization. - example: true - type: boolean + application_id: + description: The RUM application ID used when creating a stub operation from `operation_name`. + format: uuid + type: string + description: + description: A description of the link. + nullable: true + type: string + feature_id: + description: The unique identifier of the journey to link. + example: "journey-123" + type: string + operation_id: + description: |- + The unique identifier of the RUM operation to link. Either `operation_id` or + `operation_name` is required. + example: "abc12345-1234-5678-abcd-ef1234567890" + type: string + operation_name: + description: |- + The name of the RUM operation to link. Either `operation_id` or `operation_name` is + required. If no operation with this name exists, a stub operation is created. + type: string + status: + $ref: "#/components/schemas/RUMOperationStrongLinkStatus" + tags: + description: A list of tags associated with the link. + items: + type: string + type: array required: - - enforced_application_tags + - feature_id type: object - RumConfigUpdateData: - description: Object describing the RUM configuration to update. + RUMOperationStrongLinkCreateRequestData: + description: The data object for creating a RUM operation link. properties: attributes: - $ref: "#/components/schemas/RumConfigUpdateAttributes" + $ref: "#/components/schemas/RUMOperationStrongLinkCreateRequestAttributes" type: - $ref: "#/components/schemas/RumConfigType" + $ref: "#/components/schemas/RUMOperationStrongLinkType" required: - type - attributes type: object - RumConfigUpdateRequest: - description: Request body for updating the RUM configuration. + RUMOperationStrongLinkResponse: + description: The response for a single RUM operation link. properties: data: - $ref: "#/components/schemas/RumConfigUpdateData" + $ref: "#/components/schemas/RUMOperationStrongLinkResponseData" required: - data type: object - RumCrossProductSampling: - description: The configuration for cross-product retention filters. - properties: - trace_enabled: - description: Whether the cross-product retention filter for APM traces is enabled. - example: true - type: boolean - trace_sample_rate: - description: The sample rate for the APM cross-product retention filter, between 0 and 100. Values returned by the API are rounded to two decimal places. - example: 25.0 - format: double - maximum: 100 - minimum: 0 - type: number - type: object - RumCrossProductSamplingCreate: - description: The configuration for cross-product retention filters. - properties: - trace_enabled: - description: Whether the cross-product retention filter for APM traces is enabled. - example: true - type: boolean - trace_sample_rate: - description: The sample rate for the APM cross-product retention filter, between 0 and 100. - example: 25.0 - format: double - maximum: 100 - minimum: 0 - type: number - required: - - trace_sample_rate - type: object - RumCrossProductSamplingUpdate: - description: The configuration for cross-product retention filters. All fields are optional for partial updates. - properties: - trace_enabled: - description: Whether the cross-product retention filter for APM traces is enabled. - example: true - type: boolean - trace_sample_rate: - description: The sample rate for the APM cross-product retention filter, between 0 and 100. - example: 25.0 - format: double - maximum: 100 - minimum: 0 - type: number - type: object - RumExclusionFilterAttributes: - description: The attributes of an exclusion filter. - properties: - enabled: - $ref: "#/components/schemas/RumExclusionFilterEnabled" - event_type: - $ref: "#/components/schemas/RumExclusionFilterEventType" - name: - $ref: "#/components/schemas/RumExclusionFilterName" - query: - $ref: "#/components/schemas/RumExclusionFilterQuery" - type: object - RumExclusionFilterCreateAttributes: - description: The attributes of an exclusion filter to create. + RUMOperationStrongLinkResponseAttributes: + description: Attributes of a RUM operation link response. properties: - enabled: - description: Whether the exclusion filter is active. Defaults to `true`. - example: true - type: boolean - event_type: - $ref: "#/components/schemas/RumExclusionFilterEventType" - name: - $ref: "#/components/schemas/RumExclusionFilterName" - query: - $ref: "#/components/schemas/RumExclusionFilterQuery" + created_at: + description: The timestamp when the link was created. + format: date-time + readOnly: true + type: string + description: + description: A description of the link. + nullable: true + type: string + feature_id: + description: The unique identifier of the linked journey. + example: "journey-123" + readOnly: true + type: string + operation_id: + description: The unique identifier of the linked RUM operation. + example: "abc12345-1234-5678-abcd-ef1234567890" + readOnly: true + type: string + status: + $ref: "#/components/schemas/RUMOperationStrongLinkStatus" + tags: + description: A list of tags associated with the link. + items: + type: string + type: array + updated_at: + description: The timestamp when the link was last updated. + format: date-time + nullable: true + readOnly: true + type: string required: - - name + - operation_id + - feature_id + - status type: object - RumExclusionFilterCreateData: - description: The new exclusion filter properties to create. + RUMOperationStrongLinkResponseData: + description: The data object in a RUM operation link response. properties: attributes: - $ref: "#/components/schemas/RumExclusionFilterCreateAttributes" + $ref: "#/components/schemas/RUMOperationStrongLinkResponseAttributes" + id: + description: The unique identifier of the link, formatted as `:`. + example: "abc12345-1234-5678-abcd-ef1234567890:journey-123" + readOnly: true + type: string type: - $ref: "#/components/schemas/RumExclusionFilterType" + $ref: "#/components/schemas/RUMOperationStrongLinkType" required: + - id - type - attributes type: object - RumExclusionFilterCreateRequest: - description: The exclusion filter body to create. + RUMOperationStrongLinkStatus: + description: The status of a RUM operation link. + enum: + - DRAFT + - CONFIRMED + - REJECTED + example: CONFIRMED + type: string + x-enum-varnames: + - DRAFT + - CONFIRMED + - REJECTED + RUMOperationStrongLinkType: + description: The JSON:API type for RUM operation link resources. + enum: + - strong_links + example: strong_links + type: string + x-enum-varnames: + - STRONG_LINKS + RUMOperationStrongLinkUpdateRequest: + description: The request body for updating a RUM operation link. properties: data: - $ref: "#/components/schemas/RumExclusionFilterCreateData" + $ref: "#/components/schemas/RUMOperationStrongLinkUpdateRequestData" required: - data type: object - RumExclusionFilterData: - description: An exclusion filter. + RUMOperationStrongLinkUpdateRequestAttributes: + description: Attributes for updating a RUM operation link. + properties: + status: + $ref: "#/components/schemas/RUMOperationStrongLinkUpdateStatus" + required: + - status + type: object + RUMOperationStrongLinkUpdateRequestData: + description: The data object for updating a RUM operation link. properties: attributes: - $ref: "#/components/schemas/RumExclusionFilterAttributes" - id: - description: The ID of the exclusion filter. - example: "051601eb-54a0-abc0-03f9-cc02efa18892" - type: string - meta: - $ref: "#/components/schemas/RumExclusionFilterMeta" + $ref: "#/components/schemas/RUMOperationStrongLinkUpdateRequestAttributes" type: - $ref: "#/components/schemas/RumExclusionFilterType" + $ref: "#/components/schemas/RUMOperationStrongLinkType" required: - - id - type + - attributes type: object - RumExclusionFilterEnabled: - description: Whether the exclusion filter is active. - example: true - type: boolean - RumExclusionFilterEventType: - description: The type of RUM events to filter on. + RUMOperationStrongLinkUpdateStatus: + description: The status of a RUM operation link. Can only be set to `CONFIRMED` or `REJECTED`. enum: - - session - - view - - action - - error - - resource - - long_task - - vital - example: error + - CONFIRMED + - REJECTED + example: CONFIRMED type: string x-enum-varnames: - - SESSION - - VIEW - - ACTION - - ERROR - - RESOURCE - - LONG_TASK - - VITAL - RumExclusionFilterMeta: - description: Metadata about the exclusion filter. + - CONFIRMED + - REJECTED + RUMOperationStrongLinksListResponse: + description: The response for a list of RUM operation links. properties: - enabled_at: - description: Unix epoch (in milliseconds) when the exclusion filter was last enabled. - example: 1735689600000 + data: + items: + $ref: "#/components/schemas/RUMOperationStrongLinkResponseData" + type: array + meta: + $ref: "#/components/schemas/RUMOperationStrongLinksListResponseMeta" + required: + - data + type: object + RUMOperationStrongLinksListResponseMeta: + description: Metadata for a list of RUM operation links. + properties: + limit: + description: The pagination limit. format: int64 type: integer - updated_at: - description: Unix epoch (in milliseconds) of the last update. - example: 1735689600000 + offset: + description: The current offset. + format: int64 + type: integer + total: + description: The total number of links matching the request. format: int64 type: integer - updated_by_handle: - description: Handle of the user who last updated the exclusion filter. - example: jane.doe@example.com - type: string - type: object - RumExclusionFilterName: - description: The name of the exclusion filter. - example: Exclude noisy browser extension errors - type: string - RumExclusionFilterQuery: - description: |- - Additional query used to further restrict which RUM events are excluded. - Combined with `event_type` when both are provided. - example: "@error.message:*extension*" - type: string - RumExclusionFilterResponse: - description: An exclusion filter response body. - properties: - data: - $ref: "#/components/schemas/RumExclusionFilterData" type: object - RumExclusionFilterType: - default: exclusion_filters - description: The resource type. The value must be `exclusion_filters`. + RUMOperationType: + description: The JSON:API type for RUM operation resources. enum: - - exclusion_filters - example: exclusion_filters + - operations + example: operations type: string x-enum-varnames: - - EXCLUSION_FILTERS - RumExclusionFilterUpdateAttributes: - description: |- - The attributes of an exclusion filter that can be updated. - For the built-in Error Tracking exclusion filter, only `enabled` can be set; - `name`, `event_type`, and `query` must be omitted. + - OPERATIONS + RUMOperationUpdateRequest: + description: The request body for updating a RUM operation. properties: - enabled: - $ref: "#/components/schemas/RumExclusionFilterEnabled" - event_type: - $ref: "#/components/schemas/RumExclusionFilterEventType" - name: - $ref: "#/components/schemas/RumExclusionFilterName" - query: - $ref: "#/components/schemas/RumExclusionFilterQuery" + data: + $ref: "#/components/schemas/RUMOperationUpdateRequestData" + required: + - data type: object - RumExclusionFilterUpdateData: - description: The exclusion filter properties to update. + RUMOperationUpdateRequestData: + description: The data object for updating a RUM operation. properties: attributes: - $ref: "#/components/schemas/RumExclusionFilterUpdateAttributes" + $ref: "#/components/schemas/RUMOperationRequestAttributes" id: - description: The ID of the exclusion filter. Must match the `ef_id` path parameter. - example: "051601eb-54a0-abc0-03f9-cc02efa18892" + description: The unique identifier of the RUM operation. Must match the ID in the URL path. + example: "abc12345-1234-5678-abcd-ef1234567890" type: string type: - $ref: "#/components/schemas/RumExclusionFilterType" + $ref: "#/components/schemas/RUMOperationType" required: - id - type - attributes type: object - RumExclusionFilterUpdateRequest: - description: The exclusion filter body to update. + RUMOperationUser: + description: A Datadog user referenced by a RUM operation. properties: - data: - $ref: "#/components/schemas/RumExclusionFilterUpdateData" - required: - - data + email: + description: The email of the user. + readOnly: true + type: string + handle: + description: The handle of the user. + readOnly: true + type: string + name: + description: The name of the user. + readOnly: true + type: string + uuid: + description: The UUID of the user. + readOnly: true + type: string type: object - RumExclusionFiltersResponse: - description: All exclusion filters for a RUM application. + RUMOperationsListResponse: + description: The response for a list of RUM operations. properties: data: - description: A list of exclusion filters. items: - $ref: "#/components/schemas/RumExclusionFilterData" + $ref: "#/components/schemas/RUMOperationResponseData" type: array - type: object - RumMetricCompute: - description: The compute rule to compute the RUM-based metric. - properties: - aggregation_type: - $ref: "#/components/schemas/RumMetricComputeAggregationType" - include_percentiles: - $ref: "#/components/schemas/RumMetricComputeIncludePercentiles" - path: - description: |- - The path to the value the RUM-based metric will aggregate on. - Only present when `aggregation_type` is `distribution`. - example: "@duration" - type: string + meta: + $ref: "#/components/schemas/RUMOperationsListResponseMeta" required: - - aggregation_type + - data type: object - RumMetricComputeAggregationType: - description: The type of aggregation to use. - enum: ["count", "distribution"] - example: "distribution" - type: string - x-enum-varnames: ["COUNT", "DISTRIBUTION"] - RumMetricComputeIncludePercentiles: - description: |- - Toggle to include or exclude percentile aggregations for distribution metrics. - Only present when `aggregation_type` is `distribution`. - example: true - type: boolean - RumMetricCreateAttributes: - description: The object describing the Datadog RUM-based metric to create. + RUMOperationsListResponseMeta: + description: Metadata for a list of RUM operations. properties: - compute: - $ref: "#/components/schemas/RumMetricCompute" - event_type: - $ref: "#/components/schemas/RumMetricEventType" - filter: - $ref: "#/components/schemas/RumMetricFilter" - group_by: - description: The rules for the group by. - items: - $ref: "#/components/schemas/RumMetricGroupBy" - type: array - uniqueness: - $ref: "#/components/schemas/RumMetricUniqueness" - required: - - event_type - - compute + page: + $ref: "#/components/schemas/RUMOperationsListResponseMetaPage" type: object - RumMetricCreateData: - description: The new RUM-based metric properties. + RUMOperationsListResponseMetaPage: + description: Pagination metadata for a list of RUM operations. properties: - attributes: - $ref: "#/components/schemas/RumMetricCreateAttributes" - id: - $ref: "#/components/schemas/RumMetricID" + first_offset: + description: The offset of the first page. + format: int64 + type: integer + last_offset: + description: The offset of the last page. + format: int64 + type: integer + limit: + description: The pagination limit. + format: int64 + type: integer + next_offset: + description: The offset of the next page, if any. + format: int64 + nullable: true + type: integer + offset: + description: The current offset. + format: int64 + type: integer + prev_offset: + description: The offset of the previous page, if any. + format: int64 + nullable: true + type: integer + total: + description: The total number of RUM operations matching the search. + format: int64 + type: integer type: - $ref: "#/components/schemas/RumMetricType" - required: - - id - - type - - attributes + description: The type of pagination used. + example: offset + type: string type: object - RumMetricCreateRequest: - description: The new RUM-based metric body. + RUMProductAnalyticsRetentionScale: + description: Product Analytics retention scale configuration. properties: - data: - $ref: "#/components/schemas/RumMetricCreateData" - required: - - data + last_modified_at: + description: Timestamp in milliseconds when this scale was last modified. + example: 1747922145974 + format: int64 + type: integer + state: + $ref: "#/components/schemas/RUMProductAnalyticsRetentionState" type: object - RumMetricEventType: - description: The type of RUM events to filter on. - enum: ["session", "view", "action", "error", "resource", "long_task", "vital"] - example: "session" + RUMProductAnalyticsRetentionState: + description: Controls the retention policy for Product Analytics data derived from RUM events. + enum: + - MAX + - NONE + example: MAX type: string - x-enum-varnames: ["SESSION", "VIEW", "ACTION", "ERROR", "RESOURCE", "LONG_TASK", "VITAL"] - RumMetricFilter: - description: The RUM-based metric filter. Events matching this filter will be aggregated in this metric. + x-enum-descriptions: + - Store Product Analytics data for the maximum available retention period + - Do not store Product Analytics data + x-enum-varnames: + - MAX + - NONE + RUMProductScales: + description: Product Scales configuration for the RUM application. + properties: + product_analytics_retention_scale: + $ref: "#/components/schemas/RUMProductAnalyticsRetentionScale" + rum_event_processing_scale: + $ref: "#/components/schemas/RUMEventProcessingScale" + type: object + RUMQueryFilter: + description: The search and filter query settings. properties: + from: + default: "now-15m" + description: The minimum time for the requested events; supports date (in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format with full date, hours, minutes, and the `Z` UTC indicator - seconds and fractional seconds are optional), math, and regular timestamps (in milliseconds). + example: "now-15m" + type: string query: default: "*" - description: The search query - following the RUM search syntax. - example: "@service:web-ui:" + description: The search query following the RUM search syntax. + example: "@type:session AND @session.type:user" + type: string + to: + default: "now" + description: The maximum time for the requested events; supports date (in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format with full date, hours, minutes, and the `Z` UTC indicator - seconds and fractional seconds are optional), math, and regular timestamps (in milliseconds). + example: "now" type: string - required: - - query type: object - RumMetricGroupBy: - description: A group by rule. + RUMQueryOptions: + description: |- + Global query options that are used during the query. + Note: Only supply timezone or time offset, not both. Otherwise, the query fails. properties: - path: - description: The path to the value the RUM-based metric will be aggregated over. - example: "@browser.name" + time_offset: + description: The time offset (in seconds) to apply to the query. + format: int64 + type: integer + timezone: + default: "UTC" + description: |- + The timezone can be specified as GMT, UTC, an offset from UTC (like UTC+1), or as a Timezone Database identifier (like America/New_York). + example: "GMT" type: string - tag_name: - description: Eventual name of the tag that gets created. By default, `path` is used as the tag name. - example: "browser_name" + type: object + RUMQueryPageOptions: + description: Paging attributes for listing events. + properties: + cursor: + description: |- + List following results with a cursor provided in the previous query. + example: "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" type: string - required: - - path + limit: + default: 10 + description: Maximum number of events in the response. + example: 25 + format: int32 + maximum: 1000 + type: integer type: object - RumMetricID: - description: The name of the RUM-based metric. - example: "rum.sessions.webui.count" - type: string - RumMetricResponse: - description: The RUM-based metric object. + RUMResponseLinks: + description: Links attributes. properties: - data: - $ref: "#/components/schemas/RumMetricResponseData" + next: + description: |- + Link for the next set of results. Note that the request can also be made using the + POST endpoint. + example: "https://app.datadoghq.com/api/v2/rum/event?filter[query]=foo&page[cursor]=eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" + type: string type: object - RumMetricResponseAttributes: - description: The object describing a Datadog RUM-based metric. + RUMResponseMetadata: + description: The metadata associated with a request. properties: - compute: - $ref: "#/components/schemas/RumMetricResponseCompute" - event_type: - $ref: "#/components/schemas/RumMetricEventType" - filter: - $ref: "#/components/schemas/RumMetricResponseFilter" - group_by: - description: The rules for the group by. + elapsed: + description: The time elapsed in milliseconds. + example: 132 + format: int64 + type: integer + page: + $ref: "#/components/schemas/RUMResponsePage" + request_id: + description: The identifier of the request. + example: "MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR" + type: string + status: + $ref: "#/components/schemas/RUMResponseStatus" + warnings: + description: |- + A list of warnings (non-fatal errors) encountered. Partial results may return if + warnings are present in the response. items: - $ref: "#/components/schemas/RumMetricResponseGroupBy" + $ref: "#/components/schemas/RUMWarning" type: array - uniqueness: - $ref: "#/components/schemas/RumMetricResponseUniqueness" type: object - RumMetricResponseCompute: - description: The compute rule to compute the RUM-based metric. + RUMResponsePage: + description: Paging attributes. properties: - aggregation_type: - $ref: "#/components/schemas/RumMetricComputeAggregationType" - include_percentiles: - $ref: "#/components/schemas/RumMetricComputeIncludePercentiles" - path: + after: description: |- - The path to the value the RUM-based metric will aggregate on. - Only present when `aggregation_type` is `distribution`. - example: "@duration" + The cursor to use to get the next results, if any. To make the next request, use the same parameters with the addition of `page[cursor]`. + example: "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" type: string type: object - RumMetricResponseData: - description: The RUM-based metric properties. + RUMResponseStatus: + description: The status of the response. + enum: ["done", "timeout"] + example: "done" + type: string + x-enum-varnames: ["DONE", "TIMEOUT"] + RUMSearchEventsRequest: + description: The request for a RUM events list. properties: - attributes: - $ref: "#/components/schemas/RumMetricResponseAttributes" - id: - $ref: "#/components/schemas/RumMetricID" - type: - $ref: "#/components/schemas/RumMetricType" + filter: + $ref: "#/components/schemas/RUMQueryFilter" + options: + $ref: "#/components/schemas/RUMQueryOptions" + page: + $ref: "#/components/schemas/RUMQueryPageOptions" + sort: + $ref: "#/components/schemas/RUMSort" type: object - RumMetricResponseFilter: - description: The RUM-based metric filter. RUM events matching this filter will be aggregated in this metric. + RUMSort: + description: Sort parameters when querying events. + enum: + - timestamp + - -timestamp + type: string + x-enum-varnames: + - TIMESTAMP_ASCENDING + - TIMESTAMP_DESCENDING + RUMSortOrder: + description: The order to use, ascending or descending. + enum: + - "asc" + - "desc" + example: "asc" + type: string + x-enum-varnames: + - "ASCENDING" + - "DESCENDING" + RUMWarning: + description: A warning message indicating something that went wrong with the query. properties: - query: - description: The search query - following the RUM search syntax. - example: "service:web* AND @http.status_code:[200 TO 299]" + code: + description: A unique code for this type of warning. + example: "unknown_index" type: string - type: object - RumMetricResponseGroupBy: - description: A group by rule. - properties: - path: - description: The path to the value the RUM-based metric will be aggregated over. - example: "@http.status_code" + detail: + description: A detailed explanation of this specific warning. + example: "indexes: foo, bar" type: string - tag_name: - description: Eventual name of the tag that gets created. By default, `path` is used as the tag name. - example: "status_code" + title: + description: A short human-readable summary of the warning. + example: "One or several indexes are missing or invalid, results hold data from the other indexes" type: string type: object - RumMetricResponseUniqueness: - description: The rule to count updatable events. Is only set if `event_type` is `session` or `view`. + RawErrorBudgetRemaining: + description: The raw error budget remaining for the SLO. properties: - when: - $ref: "#/components/schemas/RumMetricUniquenessWhen" + unit: + description: The unit of the error budget (for example, `seconds`, `requests`). + example: seconds + type: string + value: + description: The numeric value of the remaining error budget. + example: 86400.5 + format: double + type: number + required: + - value + - unit type: object - RumMetricType: - default: rum_metrics - description: The type of the resource. The value should always be rum_metrics. + ReactNativeSourcemapAttributes: + description: Attributes of a React Native source map. + properties: + build_number: + description: The build number. + example: "100" + type: string + bundle_name: + description: The bundle name. + example: com.example.app + type: string + bundle_version: + description: The bundle version. + example: "1.0" + type: string + created_at: + description: The timestamp when the source map was created. + example: "2024-01-01T00:00:00Z" + format: date-time + type: string + debug_id: + description: The debug identifier (UUID format). + example: 550e8400-e29b-41d4-a716-446655440000 + type: string + mapkind: + description: The type of source map. + example: react + type: string + platform: + description: The platform the source map was built for (e.g., `ios`, `android`). + example: ios + type: string + service: + description: The service name associated with the source map. + example: my-react-native-app + type: string + size: + description: The size of the source map file in bytes. + example: 2048 + format: int64 + type: integer + version: + description: The version of the service associated with the source map. + example: 1.0.0 + type: string + required: + - mapkind + - size + - created_at + type: object + ReactNativeSourcemapData: + description: React Native source map data object. + properties: + attributes: + $ref: "#/components/schemas/ReactNativeSourcemapAttributes" + id: + description: The unique identifier of the source map. + example: "10" + type: string + type: + $ref: "#/components/schemas/SourcemapDataType" + required: + - id + - type + - attributes + type: object + ReadinessGate: + additionalProperties: false + description: Used to merge multiple branches into a single branch. + properties: + thresholdType: + $ref: "#/components/schemas/ReadinessGateThresholdType" + required: + - thresholdType + type: object + ReadinessGateThresholdType: + description: The definition of `ReadinessGateThresholdType` object. enum: - - rum_metrics - example: rum_metrics + - ANY + - ALL + example: ANY type: string - x-enum-varnames: ["RUM_METRICS"] - RumMetricUniqueness: - description: The rule to count updatable events. Is only set if `event_type` is `sessions` or `views`. + x-enum-varnames: + - ANY + - ALL + RecentlyUpdatedEntitiesResponse: + description: Response from the recently updated entities endpoint, containing the entities with the most recent updates in the requested time range, ordered from most to least recently updated. properties: - when: - $ref: "#/components/schemas/RumMetricUniquenessWhen" + data: + description: The list of entities with the most recent updates, ordered from most to least recently updated. + items: + $ref: "#/components/schemas/EntityContextEntity" + type: array required: - - when + - data type: object - RumMetricUniquenessWhen: - description: When to count updatable events. `match` when the event is first seen, or `end` when the event is complete. - enum: ["match", "end"] - example: "match" + RecommendationAttributes: + description: Attributes of the SPA Recommendation resource. Contains recommendations for both driver and executor components. + properties: + confidence_level: + description: The confidence level of the recommendation, expressed as a value between 0.0 (low confidence) and 1.0 (high confidence). + format: double + type: number + driver: + $ref: "#/components/schemas/ComponentRecommendation" + executor: + $ref: "#/components/schemas/ComponentRecommendation" + required: [driver, executor] + type: object + RecommendationData: + description: JSON:API resource object for SPA Recommendation. Includes type, optional ID, and resource attributes with structured recommendations. + properties: + attributes: + $ref: "#/components/schemas/RecommendationAttributes" + id: + description: Resource identifier for the recommendation. Optional in responses. + type: string + type: + $ref: "#/components/schemas/RecommendationType" + required: [type, attributes] + type: object + RecommendationDocument: + description: JSON:API document containing a single Recommendation resource. Returned by SPA when the Spark Gateway requests recommendations. + properties: + data: + $ref: "#/components/schemas/RecommendationData" + required: [data] + type: object + RecommendationType: + default: recommendation + description: JSON:API resource type for Spark Pod Autosizing recommendations. Identifies the Recommendation resource returned by SPA. + enum: + - recommendation + example: recommendation type: string - x-enum-varnames: ["WHEN_MATCH", "WHEN_END"] - RumMetricUpdateAttributes: - description: The RUM-based metric properties that will be updated. + x-enum-varnames: + - RECOMMENDATION + RecommendationV2RequestAttributes: + description: |- + Attributes for requesting SPA recommendations by forwarding a Spark job's raw arguments + instead of a precomputed shard. properties: - compute: - $ref: "#/components/schemas/RumMetricUpdateCompute" - filter: - $ref: "#/components/schemas/RumMetricFilter" - group_by: - description: The rules for the group by. + arguments: + description: |- + Raw, unfiltered Spark job arguments as submitted (for example, `--org_id=2`). + SPA determines which arguments are relevant for the given service. + example: + - "" items: - $ref: "#/components/schemas/RumMetricGroupBy" + type: string type: array + required: [arguments] type: object - RumMetricUpdateCompute: - description: The compute rule to compute the RUM-based metric. + RecommendationV2RequestBody: + description: |- + Request body for retrieving SPA recommendations by forwarding a Spark job's raw arguments + instead of a precomputed shard. properties: - include_percentiles: - $ref: "#/components/schemas/RumMetricComputeIncludePercentiles" + data: + $ref: "#/components/schemas/RecommendationV2RequestData" + required: [data] type: object - RumMetricUpdateData: - description: The new RUM-based metric properties. + RecommendationV2RequestData: + description: JSON:API resource object for the SPA v2 recommendation request. properties: attributes: - $ref: "#/components/schemas/RumMetricUpdateAttributes" - id: - $ref: "#/components/schemas/RumMetricID" + $ref: "#/components/schemas/RecommendationV2RequestAttributes" type: - $ref: "#/components/schemas/RumMetricType" - required: - - type - - attributes + $ref: "#/components/schemas/RecommendationV2RequestType" + required: [type, attributes] type: object - RumMetricUpdateRequest: - description: The new RUM-based metric body. + RecommendationV2RequestType: + default: recommendation_v2_request + description: JSON:API resource type for the SPA v2 recommendation request. + enum: + - recommendation_v2_request + example: recommendation_v2_request + type: string + x-enum-varnames: + - RECOMMENDATION_V2_REQUEST + RecommendationsFilterRequest: + description: JSON:API request body for filtering cost recommendations. + example: + data: + attributes: + scope: ccm + sort: + - expression: "@potential_daily_savings" + order: DESC + id: "@resource_table:aws_ec2_instance" + type: recommendations_filter properties: data: - $ref: "#/components/schemas/RumMetricUpdateData" + $ref: "#/components/schemas/RecommendationsFilterRequestData" required: - data type: object - RumMetricsResponse: - description: All the available RUM-based metric objects. + RecommendationsFilterRequestData: + description: |- + JSON:API resource containing the cost recommendations filter. This legacy search contract + uses the resource ID for the filter expression rather than as a persistent resource identifier. properties: - data: - description: A list of RUM-based metric objects. + attributes: + $ref: "#/components/schemas/RecommendationsFilterRequestDataAttributes" + id: + description: |- + Filter expression applied to the recommendations when `attributes.filter` is omitted. + When supplied, `attributes.filter` overrides this value, including when empty. If the + resulting filter is empty, it defaults to `*`. Scope, view, and pagination still apply. + type: string + type: + $ref: "#/components/schemas/RecommendationsFilterRequestDataType" + required: + - type + type: object + RecommendationsFilterRequestDataAttributes: + description: Attributes used to filter and sort cost recommendations. + properties: + filter: + description: |- + Filter expression applied to the recommendations. When supplied, this attribute overrides + `data.id`, including when empty. When omitted, `data.id` is used. If the resulting filter + is empty, it defaults to `*`. Scope, view, and pagination still apply. + example: "@resource_table:aws_ec2_instance" + type: string + scope: + $ref: "#/components/schemas/RecommendationsFilterRequestScope" + sort: + description: Ordered list of sort clauses applied to the result set. items: - $ref: "#/components/schemas/RumMetricResponseData" + $ref: "#/components/schemas/RecommendationsFilterRequestSortItems" type: array + view: + description: Active view name (for example, `active`, `dismissed`, `open`, `in-progress`, or `completed`). + type: string type: object - RumPermanentRetentionFilterAttributes: - description: The attributes of a permanent RUM retention filter. + RecommendationsFilterRequestDataType: + default: recommendations_filter + description: Legacy JSON:API resource type required by the cost recommendations search decoder. + enum: + - recommendations_filter + example: recommendations_filter + type: string + x-enum-varnames: + - RECOMMENDATIONS_FILTER + RecommendationsFilterRequestScope: + description: Recommendations scope. Defaults to `ccm`; use `experiment` for experimental recommendations or `*` for both. + enum: + - ccm + - experiment + - "*" + type: string + x-enum-varnames: + - CCM + - EXPERIMENT + - ALL + RecommendationsFilterRequestSortItems: + description: A single sort clause applied to the cost recommendations result set. properties: - cross_product_sampling: - $ref: "#/components/schemas/RumCrossProductSampling" - description: - description: A description of what the filter retains. - example: "All sessions generated by Synthetics are retained at 100%." + expression: + description: Field to sort by (for example, `@potential_daily_savings`). + type: string + order: + description: Sort direction, either `ASC` or `DESC`. + type: string + type: object + RecommendationsPageMeta: + description: Top-level JSON:API meta object for paginated cost recommendation responses. + properties: + page: + $ref: "#/components/schemas/RecommendationsPageMetaPage" + type: object + RecommendationsPageMetaPage: + description: Pagination metadata for a page of cost recommendations. + properties: + filter: + description: The filter expression that was applied to produce this page. + type: string + next_page_token: + description: Opaque token used to fetch the next page; absent on the last page. + type: string + page_size: + description: Number of items returned in this page (1–10000). + format: int32 + maximum: 10000 + minimum: 1 + type: integer + page_token: + description: Pagination token echoed back from the request. + type: string + type: object + ReferenceTableCreateSourceType: + description: >- + The source type for creating reference table data. Only these source types can be created through this API. + enum: + - LOCAL_FILE + - S3 + - GCS + - AZURE + example: "LOCAL_FILE" + type: string + x-enum-varnames: + - LOCAL_FILE + - S3 + - GCS + - AZURE + ReferenceTableSchemaFieldType: + description: The field type for reference table schema fields. + enum: + - STRING + - INT32 + example: "STRING" + type: string + x-enum-varnames: + - STRING + - INT32 + ReferenceTableSortType: + default: "-updated_at" + description: >- + Sort field and direction for reference tables. Use field name for ascending, prefix with "-" for descending. + enum: + - updated_at + - table_name + - status + - "-updated_at" + - "-table_name" + - "-status" + type: string + x-enum-varnames: + - UPDATED_AT + - TABLE_NAME + - STATUS + - MINUS_UPDATED_AT + - MINUS_TABLE_NAME + - MINUS_STATUS + ReferenceTableSourceType: + description: >- + The source type for reference table data. Includes all possible source types that can appear in responses. + enum: + - LOCAL_FILE + - S3 + - GCS + - AZURE + - SERVICENOW + - SALESFORCE + - DATABRICKS + - SNOWFLAKE + example: "LOCAL_FILE" + type: string + x-enum-varnames: + - LOCAL_FILE + - S3 + - GCS + - AZURE + - SERVICENOW + - SALESFORCE + - DATABRICKS + - SNOWFLAKE + RegisterAppKeyResponse: + description: The response object after creating an app key registration. + properties: + data: + $ref: "#/components/schemas/AppKeyRegistrationData" + type: object + RelationAttributes: + description: Relation attributes. + properties: + from: + $ref: "#/components/schemas/RelationEntity" + to: + $ref: "#/components/schemas/RelationEntity" + type: + $ref: "#/components/schemas/RelationType" + type: object + RelationEntity: + description: Relation entity reference. + properties: + kind: + description: Entity kind. type: string - editability: - $ref: "#/components/schemas/RumPermanentRetentionFilterEditability" name: - description: The display name of the permanent retention filter. - example: "Synthetics Sessions" + description: Entity name. + type: string + namespace: + description: Entity namespace. type: string type: object - RumPermanentRetentionFilterData: - description: A permanent RUM retention filter. + RelationIncludeType: + description: Supported include types for relations. + enum: + - entity + - schema + type: string + x-enum-varnames: + - ENTITY + - SCHEMA + RelationMeta: + description: Relation metadata. + properties: + createdAt: + description: Relation creation time. + format: date-time + type: string + definedBy: + description: Relation defined by. + type: string + modifiedAt: + description: Relation modification time. + format: date-time + type: string + source: + description: Relation source. + type: string + type: object + RelationRelationships: + description: Relation relationships. + properties: + fromEntity: + $ref: "#/components/schemas/RelationToEntity" + toEntity: + $ref: "#/components/schemas/RelationToEntity" + type: object + RelationResponse: + description: Relation response data. properties: attributes: - $ref: "#/components/schemas/RumPermanentRetentionFilterAttributes" + $ref: "#/components/schemas/RelationAttributes" id: - $ref: "#/components/schemas/RumPermanentRetentionFilterID" + description: Relation ID. + type: string + meta: + $ref: "#/components/schemas/RelationMeta" + relationships: + $ref: "#/components/schemas/RelationRelationships" + subtype: + description: Relation subtype. + type: string type: - $ref: "#/components/schemas/RumPermanentRetentionFilterType" + $ref: "#/components/schemas/RelationResponseType" type: object - RumPermanentRetentionFilterEditability: - description: Indicates which cross-product fields of a permanent RUM retention filter can be updated. + RelationResponseData: + description: Array of relation responses + items: + $ref: "#/components/schemas/RelationResponse" + type: array + RelationResponseMeta: + description: Relation response metadata. properties: - trace_editable: - description: Whether the APM trace cross-product configuration of the filter can be updated. - example: true - type: boolean + count: + description: Total relations count. + format: int64 + type: integer + includeCount: + description: Total included data count. + format: int64 + type: integer type: object - RumPermanentRetentionFilterID: - description: The identifier of a permanent RUM retention filter. - enum: - - rum_apm_flat_sampling - - synthetics_sessions - - forced_replay_sessions - example: synthetics_sessions + RelationResponseType: + description: Relation type. + enum: [relation] type: string - x-enum-varnames: ["RUM_APM_FLAT_SAMPLING", "SYNTHETICS_SESSIONS", "FORCED_REPLAY_SESSIONS"] - RumPermanentRetentionFilterResponse: - description: A permanent RUM retention filter object. + x-enum-varnames: + - RELATION + RelationToEntity: + description: Relation to entity. properties: data: - $ref: "#/components/schemas/RumPermanentRetentionFilterData" + $ref: "#/components/schemas/RelationshipItem" + meta: + $ref: "#/components/schemas/EntityMeta" type: object - RumPermanentRetentionFilterType: - default: permanent_retention_filters - description: The type of the resource. The value should always be `permanent_retention_filters`. + RelationType: + description: Supported relation types. enum: - - permanent_retention_filters - example: permanent_retention_filters + - RelationTypeOwns + - RelationTypeOwnedBy + - RelationTypeDependsOn + - RelationTypeDependencyOf + - RelationTypePartsOf + - RelationTypeHasPart + - RelationTypeOtherOwns + - RelationTypeOtherOwnedBy + - RelationTypeImplementedBy + - RelationTypeImplements type: string - x-enum-varnames: ["PERMANENT_RETENTION_FILTERS"] - RumPermanentRetentionFilterUpdateAttributes: - description: The configuration to update on a permanent RUM retention filter. + x-enum-varnames: + - RELATIONTYPEOWNS + - RELATIONTYPEOWNEDBY + - RELATIONTYPEDEPENDSON + - RELATIONTYPEDEPENDENCYOF + - RELATIONTYPEPARTSOF + - RELATIONTYPEHASPART + - RELATIONTYPEOTHEROWNS + - RELATIONTYPEOTHEROWNEDBY + - RELATIONTYPEIMPLEMENTEDBY + - RELATIONTYPEIMPLEMENTS + RelationshipArray: + description: Relationships. + items: + $ref: "#/components/schemas/RelationshipItem" + type: array + RelationshipItem: + description: Relationship entry. properties: - cross_product_sampling: - $ref: "#/components/schemas/RumCrossProductSamplingUpdate" + id: + description: Associated data ID. + type: string + type: + description: Relationship type. + type: string type: object - RumPermanentRetentionFilterUpdateData: - description: The new permanent RUM retention filter configuration to update. + RelationshipToAccessTokenOwner: + description: Relationship to the access token's owner. + properties: + data: + $ref: "#/components/schemas/RelationshipToAccessTokenOwnerData" + required: + - data + type: object + RelationshipToAccessTokenOwnerData: + description: Relationship to the access token's owner. properties: - attributes: - $ref: "#/components/schemas/RumPermanentRetentionFilterUpdateAttributes" id: - $ref: "#/components/schemas/RumPermanentRetentionFilterID" + description: A unique identifier that represents the owner. + example: "00000000-0000-0000-2345-000000000000" + type: string type: - $ref: "#/components/schemas/RumPermanentRetentionFilterType" + $ref: "#/components/schemas/AccessTokenOwnerType" required: - id - type - - attributes type: object - RumPermanentRetentionFilterUpdateRequest: - description: The permanent RUM retention filter body to update. + RelationshipToIncident: + description: Relationship to incident. properties: data: - $ref: "#/components/schemas/RumPermanentRetentionFilterUpdateData" + $ref: "#/components/schemas/RelationshipToIncidentData" required: - data type: object - RumPermanentRetentionFiltersResponse: - description: All permanent RUM retention filters for a RUM application. + RelationshipToIncidentAttachment: + description: A relationship reference for attachments. properties: data: - description: A list of permanent RUM retention filters. + description: |- + An array of incident attachments. items: - $ref: "#/components/schemas/RumPermanentRetentionFilterData" + $ref: "#/components/schemas/RelationshipToIncidentAttachmentData" type: array + required: + - data type: object - RumRetentionFilterAttributes: - description: The object describing attributes of a RUM retention filter. + RelationshipToIncidentAttachmentData: + description: The attachment relationship data. properties: - cross_product_sampling: - $ref: "#/components/schemas/RumCrossProductSampling" - enabled: - $ref: "#/components/schemas/RumRetentionFilterEnabled" - event_type: - $ref: "#/components/schemas/RumRetentionFilterEventType" - name: - $ref: "#/components/schemas/RunRetentionFilterName" - query: - $ref: "#/components/schemas/RumRetentionFilterQuery" - sample_rate: - $ref: "#/components/schemas/RumRetentionFilterSampleRate" + id: + description: A unique identifier that represents the attachment. + example: "00000000-0000-abcd-1000-000000000000" + type: string + type: + $ref: "#/components/schemas/IncidentAttachmentType" + required: + - id + - type type: object - RumRetentionFilterCreateAttributes: - description: The object describing attributes of a RUM retention filter to create. + RelationshipToIncidentData: + description: Relationship to incident object. properties: - cross_product_sampling: - $ref: "#/components/schemas/RumCrossProductSamplingCreate" - enabled: - $ref: "#/components/schemas/RumRetentionFilterEnabled" - event_type: - $ref: "#/components/schemas/RumRetentionFilterEventType" - name: - $ref: "#/components/schemas/RunRetentionFilterName" - query: - $ref: "#/components/schemas/RumRetentionFilterQuery" - sample_rate: - $ref: "#/components/schemas/RumRetentionFilterSampleRate" + id: + description: A unique identifier that represents the incident. + example: "00000000-0000-0000-1234-000000000000" + type: string + type: + $ref: "#/components/schemas/IncidentType" required: - - event_type - - name - - sample_rate + - id + - type type: object - RumRetentionFilterCreateData: - description: The new RUM retention filter properties to create. + RelationshipToIncidentImpactData: + description: Relationship to impact object. properties: - attributes: - $ref: "#/components/schemas/RumRetentionFilterCreateAttributes" + id: + description: A unique identifier that represents the impact. + example: "00000000-0000-0000-2345-000000000000" + type: string type: - $ref: "#/components/schemas/RumRetentionFilterType" + $ref: "#/components/schemas/IncidentImpactsType" required: + - id - type - - attributes type: object - RumRetentionFilterCreateRequest: - description: The RUM retention filter body to create. + RelationshipToIncidentImpacts: + description: Relationship to impacts. properties: data: - $ref: "#/components/schemas/RumRetentionFilterCreateData" + description: An array of incident impacts. + items: + $ref: "#/components/schemas/RelationshipToIncidentImpactData" + type: array required: - data type: object - RumRetentionFilterData: - description: The RUM retention filter. + RelationshipToIncidentIntegrationMetadataData: + description: A relationship reference for an integration metadata object. + example: {"id": "00000000-abcd-0002-0000-000000000000", "type": "incident_integrations"} properties: - attributes: - $ref: "#/components/schemas/RumRetentionFilterAttributes" id: - $ref: "#/components/schemas/RumRetentionFilterID" + description: A unique identifier that represents the integration metadata. + example: "00000000-abcd-0001-0000-000000000000" + type: string type: - $ref: "#/components/schemas/RumRetentionFilterType" + $ref: "#/components/schemas/IncidentIntegrationMetadataType" + required: + - id + - type type: object - RumRetentionFilterEnabled: - description: Whether the retention filter is enabled. - example: true - type: boolean - RumRetentionFilterEventType: - description: The type of RUM events to filter on. - enum: ["session", "view", "action", "error", "resource", "long_task", "vital"] - example: "session" - type: string - x-enum-varnames: ["SESSION", "VIEW", "ACTION", "ERROR", "RESOURCE", "LONG_TASK", "VITAL"] - RumRetentionFilterID: - description: ID of retention filter in UUID. - example: "051601eb-54a0-abc0-03f9-cc02efa18892" - type: string - RumRetentionFilterQuery: - description: The query string for a RUM retention filter. - example: "@session.has_replay:true" - type: string - RumRetentionFilterResponse: - description: The RUM retention filter object. + RelationshipToIncidentIntegrationMetadatas: + description: A relationship reference for multiple integration metadata objects. + example: {"data": [{"id": "00000000-abcd-0005-0000-000000000000", "type": "incident_integrations"}, {"id": "00000000-abcd-0006-0000-000000000000", "type": "incident_integrations"}]} properties: data: - $ref: "#/components/schemas/RumRetentionFilterData" + description: Integration metadata relationship array + example: [{"id": "00000000-abcd-0003-0000-000000000000", "type": "incident_integrations"}, {"id": "00000000-abcd-0004-0000-000000000000", "type": "incident_integrations"}] + items: + $ref: "#/components/schemas/RelationshipToIncidentIntegrationMetadataData" + type: array + required: + - data type: object - RumRetentionFilterSampleRate: - description: The sample rate for a RUM retention filter, between 0.1 and 100. Values are truncated to one decimal place. - example: 50.5 - format: double - maximum: 100 - minimum: 0.1 - type: number - RumRetentionFilterType: - default: retention_filters - description: The type of the resource. The value should always be retention_filters. - enum: - - retention_filters - example: retention_filters - type: string - x-enum-varnames: ["RETENTION_FILTERS"] - RumRetentionFilterUpdateAttributes: - description: The object describing attributes of a RUM retention filter to update. + RelationshipToIncidentNotificationTemplate: + description: A relationship reference to a notification template. properties: - cross_product_sampling: - $ref: "#/components/schemas/RumCrossProductSamplingUpdate" - enabled: - $ref: "#/components/schemas/RumRetentionFilterEnabled" - event_type: - $ref: "#/components/schemas/RumRetentionFilterEventType" - name: - $ref: "#/components/schemas/RunRetentionFilterName" - query: - $ref: "#/components/schemas/RumRetentionFilterQuery" - sample_rate: - $ref: "#/components/schemas/RumRetentionFilterSampleRate" + data: + $ref: "#/components/schemas/RelationshipToIncidentNotificationTemplateData" + required: + - data type: object - RumRetentionFilterUpdateData: - description: The new RUM retention filter properties to update. + RelationshipToIncidentNotificationTemplateData: + description: The notification template relationship data. properties: - attributes: - $ref: "#/components/schemas/RumRetentionFilterUpdateAttributes" id: - $ref: "#/components/schemas/RumRetentionFilterID" + description: The unique identifier of the notification template. + example: "00000000-0000-0000-0000-000000000001" + format: uuid + type: string type: - $ref: "#/components/schemas/RumRetentionFilterType" + $ref: "#/components/schemas/IncidentNotificationTemplateType" required: - id - type - - attributes type: object - RumRetentionFilterUpdateRequest: - description: The RUM retention filter body to update. + RelationshipToIncidentPostmortem: + description: A relationship reference for postmortems. + example: {"data": {"id": "00000000-0000-abcd-3000-000000000000", "type": "incident_postmortems"}} properties: data: - $ref: "#/components/schemas/RumRetentionFilterUpdateData" + $ref: "#/components/schemas/RelationshipToIncidentPostmortemData" required: - data type: object - RumRetentionFiltersOrderData: - description: The RUM retention filter data for ordering. + RelationshipToIncidentPostmortemData: + description: The postmortem relationship data. + example: {"id": "00000000-0000-abcd-2000-000000000000", "type": "incident_postmortems"} properties: id: - $ref: "#/components/schemas/RumRetentionFilterID" + description: A unique identifier that represents the postmortem. + example: "00000000-0000-abcd-1000-000000000000" + type: string type: - $ref: "#/components/schemas/RumRetentionFilterType" + $ref: "#/components/schemas/IncidentPostmortemType" required: - id - type type: object - RumRetentionFiltersOrderRequest: - description: |- - The list of RUM retention filter IDs along with their corresponding type to reorder. - All retention filter IDs should be included in the list created for a RUM application. + RelationshipToIncidentRequest: + description: Relationship to incident request properties: data: - description: A list of RUM retention filter IDs along with type. - items: - $ref: "#/components/schemas/RumRetentionFiltersOrderData" - type: array + $ref: "#/components/schemas/IncidentRelationshipData" + required: + - data type: object - RumRetentionFiltersOrderResponse: - description: The list of RUM retention filter IDs along with type. + RelationshipToIncidentResponderData: + description: Relationship to impact object. + properties: + id: + description: A unique identifier that represents the responder. + example: "00000000-0000-0000-2345-000000000000" + type: string + type: + $ref: "#/components/schemas/IncidentRespondersType" + required: + - id + - type + type: object + RelationshipToIncidentResponders: + description: Relationship to incident responders. properties: data: - description: A list of RUM retention filter IDs along with type. + description: An array of incident responders. items: - $ref: "#/components/schemas/RumRetentionFiltersOrderData" + $ref: "#/components/schemas/RelationshipToIncidentResponderData" type: array + required: + - data type: object - RumRetentionFiltersResponse: - description: All RUM retention filters for a RUM application. + RelationshipToIncidentType: + description: Relationship to an incident type. properties: data: - description: A list of RUM retention filters. - items: - $ref: "#/components/schemas/RumRetentionFilterData" - type: array + $ref: "#/components/schemas/RelationshipToIncidentTypeData" + required: + - data type: object - RumRetentionQuotaConfigAttributes: - description: The RUM retention quota configuration properties. + RelationshipToIncidentTypeData: + description: Relationship to incident type object. properties: - custom: - $ref: "#/components/schemas/RumRetentionQuotaCustomConfig" - mode: - $ref: "#/components/schemas/RumRetentionQuotaMode" - org_id: - description: The ID of the organization the retention quota configuration belongs to. - example: 2 - format: int64 - type: integer - updated_at: - description: The date the retention quota configuration was last updated. - example: "2026-03-04T15:37:54.951447Z" - format: date-time - type: string - updated_by: - description: The handle of the user who last updated the retention quota configuration. - example: test@example.com + id: + description: The incident type's ID. + example: "00000000-0000-0000-0000-000000000000" type: string + type: + $ref: "#/components/schemas/IncidentTypeType" required: - - mode - - org_id + - id + - type type: object - RumRetentionQuotaConfigData: - description: The RUM retention quota configuration object. + RelationshipToIncidentUserDefinedFieldData: + description: Relationship to impact object. properties: - attributes: - $ref: "#/components/schemas/RumRetentionQuotaConfigAttributes" id: - description: The identifier of the scope the retention quota configuration applies to. - example: cd73a516-a481-4af5-8352-9b577465c77b + description: A unique identifier that represents the responder. + example: "00000000-0000-0000-2345-000000000000" type: string type: - $ref: "#/components/schemas/RumRetentionQuotaConfigType" + $ref: "#/components/schemas/IncidentUserDefinedFieldType" required: - id - type - - attributes type: object - RumRetentionQuotaConfigResponse: - description: The RUM retention quota configuration response. + RelationshipToIncidentUserDefinedFields: + description: Relationship to incident user defined fields. properties: data: - $ref: "#/components/schemas/RumRetentionQuotaConfigData" + description: An array of user defined fields. + items: + $ref: "#/components/schemas/RelationshipToIncidentUserDefinedFieldData" + type: array required: - data type: object - RumRetentionQuotaConfigType: - default: rum_quota_config - description: The type of the resource, always `rum_quota_config`. - enum: - - rum_quota_config - example: rum_quota_config - type: string - x-enum-varnames: ["RUM_QUOTA_CONFIG"] - RumRetentionQuotaConfigUpdateAttributes: - description: The RUM retention quota configuration properties to create or update. + RelationshipToLeakedKey: + description: Relationship to the leak the access token was found in. `data` is null when the access token has not been detected as leaked. properties: - custom: - $ref: "#/components/schemas/RumRetentionQuotaCustomConfig" - mode: - $ref: "#/components/schemas/RumRetentionQuotaMode" + data: + $ref: "#/components/schemas/RelationshipToLeakedKeyData" required: - - mode + - data type: object - RumRetentionQuotaConfigUpdateData: - description: The RUM retention quota configuration to create or update. + RelationshipToLeakedKeyData: + description: Relationship to the leak the access token was found in. + nullable: true properties: - attributes: - $ref: "#/components/schemas/RumRetentionQuotaConfigUpdateAttributes" id: - description: |- - The identifier of the scope the retention quota configuration applies to. - Must match `scope_id` in the path. - example: cd73a516-a481-4af5-8352-9b577465c77b + description: A unique identifier that represents the leak. + example: "00000000-0000-1234-0000-000000000000" type: string type: - $ref: "#/components/schemas/RumRetentionQuotaConfigType" + $ref: "#/components/schemas/LeakedKeyType" required: - id - type - - attributes type: object - RumRetentionQuotaConfigUpdateRequest: - description: The body of a request to create or update a RUM retention quota configuration. + RelationshipToOrganization: + description: Relationship to an organization. properties: data: - $ref: "#/components/schemas/RumRetentionQuotaConfigUpdateData" + $ref: "#/components/schemas/RelationshipToOrganizationData" required: - data type: object - RumRetentionQuotaCustomConfig: - description: The configuration used when `mode` is `custom`. + RelationshipToOrganizationData: + description: Relationship to organization object. properties: - daily_reset_time: - description: The time of day when the daily quota resets, in `HH:MM` 24-hour format. - example: "08:00" - pattern: "^([01]\\d|2[0-3]):[0-5]\\d$" - type: string - daily_reset_timezone: - description: The timezone offset used for the daily reset time, in `±HH:MM` format. - example: "+09:00" - pattern: "^[+-](0\\d|1[0-4]):[0-5]\\d$" + id: + description: ID of the organization. + example: "00000000-0000-beef-0000-000000000000" type: string - quota_reached_action: - $ref: "#/components/schemas/RumRetentionQuotaReachedAction" - session_limit: - description: The maximum number of sessions allowed within the window. Must be at least `1000`. - example: 1000000 - format: int64 - minimum: 1000 - type: integer - window_type: - $ref: "#/components/schemas/RumRetentionQuotaWindowType" + type: + $ref: "#/components/schemas/OrganizationsType" required: - - window_type - - session_limit - - daily_reset_time - - daily_reset_timezone - - quota_reached_action + - id + - type type: object - RumRetentionQuotaMode: - description: |- - The retention quota mode. `custom` enforces a fixed session limit. - `custom` is the only supported mode. - enum: - - custom - example: custom - type: string - x-enum-varnames: ["CUSTOM"] - RumRetentionQuotaReachedAction: - description: The action to take when the session quota is reached. - enum: - - stop - - slowdown - example: stop - type: string - x-enum-varnames: ["STOP", "SLOWDOWN"] - RumRetentionQuotaScopeType: - default: application - description: |- - The type of scope the retention quota configuration applies to. - `application` is the only supported scope type. - enum: - - application - example: application - type: string - x-enum-varnames: ["APPLICATION"] - RumRetentionQuotaWindowType: - description: The window type over which the session limit is enforced. - enum: - - daily - example: daily - type: string - x-enum-varnames: ["DAILY"] - RumSdkConfigAllowedTracingUrlList: - description: A list of URL configurations for distributed tracing. - items: - $ref: "#/components/schemas/RumSdkConfigTracingUrlConfig" - type: array - RumSdkConfigAllowedTrackingOriginList: - description: A list of origin patterns allowed for cross-origin session tracking. - items: - $ref: "#/components/schemas/RumSdkConfigMatchOption" - type: array - RumSdkConfigAttributes: - description: Attributes of the RUM SDK configuration. + RelationshipToOrganizations: + description: Relationship to organizations. properties: - rum: - $ref: "#/components/schemas/RumSdkConfigRumAttributes" + data: + description: Relationships to organization objects. + example: [] + items: + $ref: "#/components/schemas/RelationshipToOrganizationData" + type: array required: - - rum + - data type: object - RumSdkConfigData: - description: The RUM SDK configuration data object. + RelationshipToOutcome: + description: The JSON:API relationship to a scorecard outcome. + properties: + data: + $ref: "#/components/schemas/RelationshipToOutcomeData" + type: object + RelationshipToOutcomeData: + description: The JSON:API relationship to an outcome, which returns the related rule id. properties: - attributes: - $ref: "#/components/schemas/RumSdkConfigAttributes" id: - description: The unique identifier of the RUM SDK configuration. - example: "abc12345-1234-5678-abcd-ef1234567890" - type: string - meta: - $ref: "#/components/schemas/RumSdkConfigMeta" + $ref: "#/components/schemas/RuleId" type: - $ref: "#/components/schemas/RumSdkConfigType" - required: - - id - - type - - attributes + $ref: "#/components/schemas/RuleType" type: object - RumSdkConfigDynamicOption: - description: A dynamic configuration option that extracts a value at runtime using a specified strategy. + RelationshipToPermission: + description: Relationship to a permissions object. properties: - attribute: - description: The element attribute to read. Used when `strategy` is `dom`. - example: "data-version" - type: string - extractor: - $ref: "#/components/schemas/RumSdkConfigSerializedRegex" - key: - description: The `localStorage` key to read. Required when `strategy` is `localStorage`. - example: "app.version" - type: string - name: - description: The cookie name to read. Required when `strategy` is `cookie`. - example: "app_version" - type: string - path: - description: The JavaScript path used to extract the value. Required when `strategy` is `js`. - example: "application.version" - type: string - rc_serialized_type: - $ref: "#/components/schemas/RumSdkConfigDynamicOptionSerializedType" - selector: - description: The CSS selector to read from the page. Required when `strategy` is `dom`. - example: "#app-version" - type: string - strategy: - $ref: "#/components/schemas/RumSdkConfigDynamicOptionStrategy" - required: - - rc_serialized_type - - strategy + data: + $ref: "#/components/schemas/RelationshipToPermissionData" type: object - RumSdkConfigDynamicOptionPair: - description: A key-value pair where the value is a dynamic configuration option. + RelationshipToPermissionData: + description: Relationship to permission object. properties: - key: - description: The key name for this dynamic configuration pair. - example: "id" + id: + description: ID of the permission. type: string - value: - $ref: "#/components/schemas/RumSdkConfigDynamicOption" - required: - - key - - value + type: + $ref: "#/components/schemas/PermissionsType" type: object - RumSdkConfigDynamicOptionPairList: - description: A list of dynamic option key-value pairs. - items: - $ref: "#/components/schemas/RumSdkConfigDynamicOptionPair" - type: array - RumSdkConfigDynamicOptionSerializedType: - description: The type identifier for a dynamic option. Always `dynamic`. - enum: - - dynamic - example: dynamic - type: string - x-enum-varnames: - - DYNAMIC - RumSdkConfigDynamicOptionStrategy: - description: The strategy used to extract the dynamic value. - enum: - - js - - cookie - - dom - - localStorage - example: js - type: string - x-enum-varnames: - - JS - - COOKIE - - DOM - - LOCAL_STORAGE - RumSdkConfigMatchOption: - description: A match option used for URL or origin pattern matching. + RelationshipToPermissions: + description: Relationship to multiple permissions objects. properties: - rc_serialized_type: - $ref: "#/components/schemas/RumSdkConfigMatchOptionSerializedType" - value: - description: The value to match against. - example: "https://app.datadoghq.com" - type: string - required: - - rc_serialized_type - - value + data: + description: Relationships to permission objects. + items: + $ref: "#/components/schemas/RelationshipToPermissionData" + type: array type: object - RumSdkConfigMatchOptionSerializedType: - description: The type of match pattern, either a literal string or a regex. - enum: - - string - - regex - example: string - type: string - x-enum-varnames: - - STRING - - REGEX - RumSdkConfigMeta: - description: Metadata associated with a RUM SDK configuration. + RelationshipToRole: + description: Relationship to role. properties: - updated_at: - description: The timestamp of the last update to this configuration. - example: "2024-01-15T09:30:00.000Z" - format: date-time + data: + $ref: "#/components/schemas/RelationshipToRoleData" + type: object + RelationshipToRoleData: + description: Relationship to role object. + properties: + id: + description: The unique identifier of the role. + example: "3653d3c6-0c75-11ea-ad28-fb5701eabc7d" type: string - updated_by: - description: The handle of the user who last updated this configuration. - example: "user@datadoghq.com" + type: + $ref: "#/components/schemas/RolesType" + type: object + RelationshipToRoles: + description: Relationship to roles. + properties: + data: + description: An array containing type and the unique identifier of a role. + items: + $ref: "#/components/schemas/RelationshipToRoleData" + type: array + type: object + RelationshipToRule: + description: Scorecard create rule response relationship. + properties: + scorecard: + $ref: "#/components/schemas/RelationshipToRuleData" + type: object + RelationshipToRuleData: + description: Relationship data for a rule. + properties: + data: + $ref: "#/components/schemas/RelationshipToRuleDataObject" + type: object + RelationshipToRuleDataObject: + description: Rule relationship data. + properties: + id: + description: The unique ID for a scorecard. + example: q8MQxk8TCqrHnWkp type: string - required: - - updated_at - - updated_by + type: + $ref: "#/components/schemas/ScorecardType" type: object - RumSdkConfigResponse: - description: Response containing a RUM SDK configuration. + RelationshipToSAMLAssertionAttribute: + description: AuthN Mapping relationship to SAML Assertion Attribute. properties: data: - $ref: "#/components/schemas/RumSdkConfigData" + $ref: "#/components/schemas/RelationshipToSAMLAssertionAttributeData" required: - data type: object - RumSdkConfigRumAttributes: - description: The RUM SDK settings for a configuration. + RelationshipToSAMLAssertionAttributeData: + description: Data of AuthN Mapping relationship to SAML Assertion Attribute. properties: - allowed_tracing_urls: - $ref: "#/components/schemas/RumSdkConfigAllowedTracingUrlList" - allowed_tracking_origins: - $ref: "#/components/schemas/RumSdkConfigAllowedTrackingOriginList" - application_id: - description: The ID of the RUM application this configuration belongs to. - example: "f80e917c-3cd0-4048-ade7-1c4c207baa99" - type: string - context: - $ref: "#/components/schemas/RumSdkConfigDynamicOptionPairList" - default_privacy_level: - description: The default privacy masking level applied to all RUM data. - example: "mask-user-input" - type: string - enable_privacy_for_action_name: - description: Whether to mask user-interaction action names for privacy. - example: false - type: boolean - env: - description: The environment tag for the RUM application. - example: "production" - type: string - service: - description: The service name tag for the RUM application. - example: "my-service" + id: + description: The ID of the SAML assertion attribute. + example: "0" type: string - session_replay_sample_rate: - description: The percentage of collected sessions for which a replay is captured (0–100). - example: 10 - format: int64 - maximum: 100 - minimum: 0 - type: integer - session_sample_rate: - description: The percentage of user sessions to collect (0–100). - example: 50 - format: int64 - maximum: 100 - minimum: 0 - type: integer - trace_sample_rate: - description: The percentage of requests to forward as APM traces (0–100). - example: 100 - format: int64 - maximum: 100 - minimum: 0 - type: integer - track_session_across_subdomains: - description: Whether to share a session across subdomains of the same site. - example: false - type: boolean - user: - $ref: "#/components/schemas/RumSdkConfigDynamicOptionPairList" - version: - $ref: "#/components/schemas/RumSdkConfigDynamicOption" + type: + $ref: "#/components/schemas/SAMLAssertionAttributesType" required: - - application_id - - session_sample_rate - - session_replay_sample_rate - - default_privacy_level - - enable_privacy_for_action_name + - id + - type type: object - RumSdkConfigRumUpdateAttributes: - description: The RUM SDK settings to apply when updating a configuration. + RelationshipToServiceAccount: + description: Relationship to service account. properties: - allowed_tracing_urls: - $ref: "#/components/schemas/RumSdkConfigAllowedTracingUrlList" - allowed_tracking_origins: - $ref: "#/components/schemas/RumSdkConfigAllowedTrackingOriginList" - context: - $ref: "#/components/schemas/RumSdkConfigDynamicOptionPairList" - default_privacy_level: - description: The default privacy masking level applied to all RUM data. - example: "mask" - type: string - enable_privacy_for_action_name: - description: Whether to mask user-interaction action names for privacy. - example: true - type: boolean - env: - description: The environment tag for the RUM application. - example: "production" - type: string - service: - description: The service name tag for the RUM application. - example: "my-service" - type: string - session_replay_sample_rate: - description: The percentage of collected sessions for which a replay is captured (0–100). - example: 20 - format: int64 - maximum: 100 - minimum: 0 - type: integer - session_sample_rate: - description: The percentage of user sessions to collect (0–100). - example: 75 - format: int64 - maximum: 100 - minimum: 0 - type: integer - trace_sample_rate: - description: The percentage of requests to forward as APM traces (0–100). - example: 100 - format: int64 - maximum: 100 - minimum: 0 - type: integer - track_session_across_subdomains: - description: Whether to share a session across subdomains of the same site. - example: false - type: boolean - user: - $ref: "#/components/schemas/RumSdkConfigDynamicOptionPairList" - version: - $ref: "#/components/schemas/RumSdkConfigDynamicOption" + data: + $ref: "#/components/schemas/RelationshipToServiceAccountData" required: - - session_sample_rate - - session_replay_sample_rate - - default_privacy_level - - enable_privacy_for_action_name + - data type: object - RumSdkConfigSerializedRegex: - description: A serialized regex used as an extractor in dynamic options. + RelationshipToServiceAccountData: + description: Relationship to service account object. properties: - rc_serialized_type: - $ref: "#/components/schemas/RumSdkConfigSerializedRegexType" - value: - description: The regex pattern used for extraction. - example: "^https://app-.*.datadoghq.com" + id: + description: A unique identifier that represents the service account. + example: "00000000-0000-0000-2345-000000000000" type: string + type: + $ref: "#/components/schemas/ServiceAccountType" required: - - rc_serialized_type - - value + - id + - type type: object - RumSdkConfigSerializedRegexType: - description: The type identifier for a serialized regex. Always `regex`. - enum: - - regex - example: regex - type: string - x-enum-varnames: - - REGEX - RumSdkConfigTracingUrlConfig: - description: Configuration for a URL that should have distributed tracing enabled. + RelationshipToTeam: + description: Relationship to team. properties: - match: - $ref: "#/components/schemas/RumSdkConfigMatchOption" - propagator_types: - description: The list of trace propagator types to use for this URL. - example: - - datadog - - tracecontext - items: - $ref: "#/components/schemas/RumSdkConfigTracingUrlPropagatorType" - type: array - required: - - match - - propagator_types + data: + $ref: "#/components/schemas/RelationshipToTeamData" type: object - RumSdkConfigTracingUrlPropagatorType: - description: A trace propagator type. - enum: - - datadog - - b3 - - b3multi - - tracecontext - example: datadog - type: string - x-enum-varnames: - - DATADOG - - B3 - - B3MULTI - - TRACECONTEXT - RumSdkConfigType: - default: rum_sdk_config - description: The type of the resource. The value should always be `rum_sdk_config`. - enum: - - rum_sdk_config - example: rum_sdk_config - type: string - x-enum-varnames: - - RUM_SDK_CONFIG - RumSdkConfigUpdateAttributes: - description: Attributes of the RUM SDK configuration to update. + RelationshipToTeamData: + description: Relationship to Team object. properties: - rum: - $ref: "#/components/schemas/RumSdkConfigRumUpdateAttributes" - required: - - rum + id: + description: The unique identifier of the team. + example: f9bb8444-af7f-11ec-ac2c-da7ad0900001 + type: string + type: + $ref: "#/components/schemas/TeamType" type: object - RumSdkConfigUpdateData: - description: The data object for updating a RUM SDK configuration. + RelationshipToTeamLinkData: + description: Relationship between a link and a team properties: - attributes: - $ref: "#/components/schemas/RumSdkConfigUpdateAttributes" id: - description: The ID of the RUM SDK configuration to update. - example: "abc12345-1234-5678-abcd-ef1234567890" + description: The team link's identifier + example: f9bb8444-af7f-11ec-ac2c-da7ad0900001 type: string type: - $ref: "#/components/schemas/RumSdkConfigType" + $ref: "#/components/schemas/TeamLinkType" required: - id - type - - attributes type: object - RumSdkConfigUpdateRequest: - description: Request body for updating a RUM SDK configuration. + RelationshipToTeamLinks: + description: Relationship between a team and a team link properties: data: - $ref: "#/components/schemas/RumSdkConfigUpdateData" - required: - - data + description: Related team links + items: + $ref: "#/components/schemas/RelationshipToTeamLinkData" + type: array + links: + $ref: "#/components/schemas/TeamRelationshipsLinks" type: object - RunDataObservabilityMonitorResponse: - description: The response returned when a data observability monitor run is triggered. + RelationshipToUser: + description: Relationship to user. properties: data: - $ref: "#/components/schemas/RunDataObservabilityMonitorResponseData" + $ref: "#/components/schemas/RelationshipToUserData" required: - data type: object - RunDataObservabilityMonitorResponseData: - description: The data object returned when a data observability monitor run is triggered. + RelationshipToUserData: + description: Relationship to user object. properties: id: - description: The unique identifier of the monitor run. - example: "abc123def456" + description: A unique identifier that represents the user. + example: "00000000-0000-0000-2345-000000000000" type: string type: - $ref: "#/components/schemas/DataObservabilityMonitorRunType" + $ref: "#/components/schemas/UsersType" required: - id - type type: object - RunHistoricalJobRequest: - description: Run a historical job request. + RelationshipToUserTeamPermission: + description: Relationship between a user team permission and a team properties: data: - $ref: "#/components/schemas/RunHistoricalJobRequestData" + $ref: "#/components/schemas/RelationshipToUserTeamPermissionData" + links: + $ref: "#/components/schemas/TeamRelationshipsLinks" type: object - RunHistoricalJobRequestAttributes: - description: Run a historical job request. + RelationshipToUserTeamPermissionData: + description: Related user team permission data + nullable: true properties: - fromRule: - $ref: "#/components/schemas/JobDefinitionFromRule" - jobDefinition: - $ref: "#/components/schemas/JobDefinition" - signalOutput: - description: Whether the job outputs signals when results are converted. - type: boolean + id: + description: The ID of the user team permission + example: UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595 + type: string + type: + $ref: "#/components/schemas/UserTeamPermissionType" + required: + - id + - type type: object - RunHistoricalJobRequestData: - description: Data for running a historical job request. + RelationshipToUserTeamTeam: + description: Relationship between team membership and team properties: - attributes: - $ref: "#/components/schemas/RunHistoricalJobRequestAttributes" - type: - $ref: "#/components/schemas/RunHistoricalJobRequestDataType" + data: + $ref: "#/components/schemas/RelationshipToUserTeamTeamData" + required: + - data type: object - RunHistoricalJobRequestDataType: - description: Type of data. - enum: - - historicalDetectionsJobCreate - type: string - x-enum-varnames: - - HISTORICALDETECTIONSJOBCREATE - RunRetentionFilterName: - description: The name of a RUM retention filter. - example: "Retention filter for session" - type: string - SAMLAssertionAttribute: - description: SAML assertion attribute. + RelationshipToUserTeamTeamData: + description: The team associated with the membership properties: - attributes: - $ref: "#/components/schemas/SAMLAssertionAttributeAttributes" id: - description: The ID of the SAML assertion attribute. - example: "0" + description: The ID of the team associated with the membership + example: d7e15d9d-d346-43da-81d8-3d9e71d9a5e9 type: string type: - $ref: "#/components/schemas/SAMLAssertionAttributesType" + $ref: "#/components/schemas/UserTeamTeamType" required: - id - type type: object - SAMLAssertionAttributeAttributes: - description: Key/Value pair of attributes used in SAML assertion attributes. + RelationshipToUserTeamUser: + description: Relationship between team membership and user properties: - attribute_key: - description: Key portion of a key/value pair of the attribute sent from the Identity Provider. - example: member-of - type: string - attribute_value: - description: Value portion of a key/value pair of the attribute sent from the Identity Provider. - example: Development - type: string + data: + $ref: "#/components/schemas/RelationshipToUserTeamUserData" + required: + - data type: object - SAMLAssertionAttributesType: - default: saml_assertion_attributes - description: SAML assertion attributes resource type. - enum: - - saml_assertion_attributes - example: saml_assertion_attributes - type: string - x-enum-varnames: - - SAML_ASSERTION_ATTRIBUTES - SAMLConfiguration: - description: A SAML configuration object. + RelationshipToUserTeamUserData: + description: A user's relationship with a team properties: - attributes: - $ref: "#/components/schemas/SAMLConfigurationAttributes" id: - description: The UUID of the SAML configuration. - example: 3653d3c6-0c75-11ea-ad28-fb5701eabc7d + description: The ID of the user associated with the team + example: b8626d7e-cedd-11eb-abf5-da7ad0900001 type: string - relationships: - $ref: "#/components/schemas/SAMLConfigurationRelationships" type: - $ref: "#/components/schemas/SAMLConfigurationsType" + $ref: "#/components/schemas/UserTeamUserType" required: - id - type type: object - SAMLConfigurationAttributes: - description: Attributes of a SAML configuration. + RelationshipToUsers: + description: Relationship to users. properties: - assertion_consumer_service: - description: The assertion consumer service (ACS) URLs that the identity provider posts SAML responses to. - example: - - https://app.datadoghq.com/account/saml/assertion + data: + description: Relationships to user objects. + example: [] items: - description: An assertion consumer service URL. - example: https://app.datadoghq.com/account/saml/assertion - type: string + $ref: "#/components/schemas/RelationshipToUserData" type: array - created_at: - description: Creation time of the SAML configuration. - format: date-time - readOnly: true - type: string - entity_id: - description: The service provider entity ID Datadog presents to the identity provider. - example: https://app.datadoghq.com/account/saml/metadata.xml?id=00000000-0000-0000-0000-000000000000 - type: string - expires_at: - description: Expiration time of the uploaded identity provider metadata. - example: "2010-10-26T13:31:15+00:00" - format: date-time - nullable: true - type: string - idp_initiated: - description: Whether identity-provider-initiated login is enabled for the organization. - example: true + required: + - data + type: object + Remediation: + description: Vulnerability remediation. + properties: + auto_solvable: + description: Whether the vulnerability can be resolved when recompiling the package or not. + example: false type: boolean - jit_domains: - description: |- - Email domains for which users are automatically provisioned on first SAML login - (just-in-time provisioning). - example: - - example.com + avoided_advisories: + description: Avoided advisories. items: - description: An email domain for just-in-time user provisioning. - example: example.com - type: string + $ref: "#/components/schemas/Advisory" type: array - modified_at: - description: Time of the last SAML configuration modification. - format: date-time - readOnly: true + fixed_advisories: + description: Remediation fixed advisories. + items: + $ref: "#/components/schemas/Advisory" + type: array + library_name: + description: Library name remediating the vulnerability. + example: stdlib type: string - sso_url: - description: |- - The single sign-on URL users can visit to start a SAML login. - Returns `null` when the organization is identity-provider-initiated and has no subdomain. - example: https://app.datadoghq.com/account/login/id/00000000-0000-0000-0000-000000000000 - nullable: true + library_version: + description: Library version remediating the vulnerability. + example: Upgrade to a version >= 1.20.0 type: string + new_advisories: + description: New advisories. + items: + $ref: "#/components/schemas/Advisory" + type: array + remaining_advisories: + description: Remaining advisories. + items: + $ref: "#/components/schemas/Advisory" + type: array + type: + description: Remediation type. + example: text + type: string + required: + - type + - library_name + - library_version + - auto_solvable + - fixed_advisories + - remaining_advisories + - new_advisories + - avoided_advisories type: object - SAMLConfigurationRelationships: - description: Relationships of a SAML configuration. - properties: - default_roles: - $ref: "#/components/schemas/RelationshipToRoles" - type: object - SAMLConfigurationResponse: - description: Response containing a single SAML configuration. + ReorderRetentionFiltersRequest: + description: A list of retention filters to reorder. properties: data: - $ref: "#/components/schemas/SAMLConfiguration" - included: - description: Resources related to the SAML configuration, such as the default roles. + description: A list of retention filters objects. items: - $ref: "#/components/schemas/Role" + $ref: "#/components/schemas/RetentionFilterWithoutAttributes" type: array required: - data type: object - SAMLConfigurationUpdateAttributes: - description: Attributes for updating a SAML configuration. + ReorderRuleResourceArray: + description: The definition of `ReorderRuleResourceArray` object. + example: + data: + - id: "456" + type: arbitrary_rule + - id: "123" + type: arbitrary_rule + - id: "789" + type: arbitrary_rule properties: - idp_initiated: - description: Whether identity-provider-initiated login is enabled for the organization. - example: true - type: boolean - jit_domains: - description: |- - Email domains for which users are automatically provisioned on first SAML login - (just-in-time provisioning). A default role is required to enable just-in-time provisioning. - example: - - example.com + data: + description: The `ReorderRuleResourceArray` `data`. items: - description: An email domain for just-in-time user provisioning. - example: example.com - maxLength: 255 - minLength: 1 - type: string - maxItems: 50 - minItems: 0 + $ref: "#/components/schemas/ReorderRuleResourceData" type: array + required: + - data type: object - SAMLConfigurationUpdateData: - description: Data for updating a SAML configuration. + ReorderRuleResourceData: + description: The definition of `ReorderRuleResourceData` object. properties: - attributes: - $ref: "#/components/schemas/SAMLConfigurationUpdateAttributes" id: - description: The UUID of the SAML configuration to update. Must match the UUID in the URL path. - example: 3653d3c6-0c75-11ea-ad28-fb5701eabc7d - maxLength: 39 + description: The `ReorderRuleResourceData` `id`. type: string - relationships: - $ref: "#/components/schemas/SAMLConfigurationRelationships" type: - $ref: "#/components/schemas/SAMLConfigurationsType" + $ref: "#/components/schemas/ReorderRuleResourceDataType" required: - - id - type type: object - SAMLConfigurationUpdateRequest: - description: Request to update a SAML configuration. + ReorderRuleResourceDataType: + default: arbitrary_rule + description: Arbitrary rule resource type. + enum: + - arbitrary_rule + example: arbitrary_rule + type: string + x-enum-varnames: + - ARBITRARY_RULE + ReorderRulesetResourceArray: + description: The definition of `ReorderRulesetResourceArray` object. + example: + data: + - id: "55ef2385-9ae1-4410-90c4-5ac1b60fec10" + type: ruleset + - id: "a7b8c9d0-1234-5678-9abc-def012345678" + type: ruleset + - id: "f1e2d3c4-b5a6-9780-1234-567890abcdef" + type: ruleset properties: data: - $ref: "#/components/schemas/SAMLConfigurationUpdateData" + description: The `ReorderRulesetResourceArray` `data`. + items: + $ref: "#/components/schemas/ReorderRulesetResourceData" + type: array required: - data type: object - SAMLConfigurationsResponse: - description: Response containing a list of SAML configurations. + ReorderRulesetResourceData: + description: The definition of `ReorderRulesetResourceData` object. properties: - data: - description: Array of SAML configurations. An organization has at most one SAML configuration. - items: - $ref: "#/components/schemas/SAMLConfiguration" - type: array - included: - description: Resources related to the SAML configurations, such as the default roles. - items: - $ref: "#/components/schemas/Role" - type: array + id: + description: The `ReorderRulesetResourceData` `id`. + type: string + type: + $ref: "#/components/schemas/ReorderRulesetResourceDataType" + required: + - type type: object - SAMLConfigurationsType: - default: saml_configurations - description: SAML configurations resource type. + ReorderRulesetResourceDataType: + default: ruleset + description: Ruleset resource type. enum: - - saml_configurations - example: saml_configurations + - ruleset + example: ruleset type: string x-enum-varnames: - - SAML_CONFIGURATIONS - SBOM: - description: A single SBOM + - RULESET + ReportScheduleAuthor: + description: A user included as a related JSON:API resource. properties: attributes: - $ref: "#/components/schemas/SBOMAttributes" + $ref: "#/components/schemas/ReportScheduleAuthorAttributes" id: - description: The unique ID for this SBOM (it is equivalent to the `asset_name` or `asset_name@repo_digest` (Image) - example: "github.com/datadog/datadog-agent" + description: The user UUID. + example: "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" type: string type: - $ref: "#/components/schemas/SBOMType" - type: object - SBOMAttributes: - description: The JSON:API attributes of the SBOM. - properties: - bomFormat: - description: Specifies the format of the BOM. This helps to identify the file as CycloneDX since BOM do not have a filename convention nor does JSON schema support namespaces. This value MUST be `CycloneDX`. - example: CycloneDX - type: string - components: - description: A list of software and hardware components. - items: - $ref: "#/components/schemas/SBOMComponent" - type: array - dependencies: - description: List of dependencies between components of the SBOM. - items: - $ref: "#/components/schemas/SBOMComponentDependency" - type: array - metadata: - $ref: "#/components/schemas/SBOMMetadata" - serialNumber: - description: Every BOM generated has a unique serial number, even if the contents of the BOM have not changed overt time. The serial number follows [RFC-4122](https://datatracker.ietf.org/doc/html/rfc4122) - example: urn:uuid:f7119d2f-1vgh-24b5-91f0-12010db72da7 - type: string - specVersion: - $ref: "#/components/schemas/SpecVersion" - version: - description: It increments when a BOM is modified. The default value is 1. - example: 1 - format: int64 - type: integer + $ref: "#/components/schemas/ReportScheduleAuthorType" required: - - bomFormat - - specVersion - - components - - metadata - - serialNumber - - version - - dependencies + - type + - id + - attributes type: object - SBOMComponent: - description: Software or hardware component. + ReportScheduleAuthorAttributes: + description: Attributes of the report author. properties: - bom-ref: - description: An optional identifier that can be used to reference the component elsewhere in the BOM. - example: "pkg:golang/google.golang.org/grpc@1.68.1" + email: + description: The email address of the report author, or `null` if unavailable. + example: "user@example.com" + nullable: true type: string - licenses: - description: The software licenses of the SBOM component. - items: - $ref: "#/components/schemas/SBOMComponentLicense" - type: array name: - description: The name of the component. This will often be a shortened, single name of the component. - example: "google.golang.org/grpc" - type: string - properties: - description: The custom properties of the component of the SBOM. - items: - $ref: "#/components/schemas/SBOMComponentProperty" - type: array - purl: - description: Specifies the package-url (purl). The purl, if specified, MUST be valid and conform to the [specification](https://github.com/package-url/purl-spec). - example: "pkg:golang/google.golang.org/grpc@1.68.1" - type: string - supplier: - $ref: "#/components/schemas/SBOMComponentSupplier" - type: - $ref: "#/components/schemas/SBOMComponentType" - version: - description: The component version. - example: "1.68.1" + description: The display name of the report author, or `null` if unavailable. + example: "Example User" + nullable: true type: string required: - - type - name - - version - - supplier - type: object - SBOMComponentDependency: - description: The dependencies of a component of the SBOM. - properties: - dependsOn: - description: The components that are dependencies of the ref component. - items: - description: A package URL (purl) identifying a dependency of the component. - example: pkg:golang/google.golang.org/grpc@1.68.1 - type: string - required: - - ref - - dependsOn - type: array - ref: - description: The identifier for the related component. - example: Repository|github.com/datadog/datadog-agent - type: string + - email type: object - SBOMComponentLicense: - description: The software license of the component of the SBOM. + ReportScheduleAuthorRelationship: + description: Relationship to the author of the report schedule. properties: - license: - $ref: "#/components/schemas/SBOMComponentLicenseLicense" + data: + $ref: "#/components/schemas/ReportScheduleAuthorRelationshipData" required: - - license + - data type: object - SBOMComponentLicenseLicense: - description: The software license of the component of the SBOM. + ReportScheduleAuthorRelationshipData: + description: Relationship data for the author of the report schedule. properties: - name: - description: The name of the software license of the component of the SBOM. - example: MIT + id: + description: The user UUID of the report schedule author. + example: "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" type: string + type: + $ref: "#/components/schemas/ReportScheduleAuthorType" required: - - name + - id + - type type: object - SBOMComponentLicenseType: - description: The SBOM component license type. + ReportScheduleAuthorType: + description: JSON:API resource type for the included report author. enum: - - network_strong_copyleft - - non_standard_copyleft - - other_non_free - - other_non_standard - - permissive - - public_domain - - strong_copyleft - - weak_copyleft - example: application + - users + example: users type: string x-enum-varnames: - - NETWORK_STRONG_COPYLEFT - - NON_STANDARD_COPYLEFT - - OTHER_NON_FREE - - OTHER_NON_STANDARD - - PERMISSIVE - - PUBLIC_DOMAIN - - STRONG_COPYLEFT - - WEAK_COPYLEFT - SBOMComponentProperty: - description: The custom property of the component of the SBOM. + - USERS + ReportScheduleCreateRequest: + description: Request body for creating a report schedule. properties: - name: - description: The name of the custom property of the component of the SBOM. - example: license_type - type: string - value: - description: The value of the custom property of the component of the SBOM. - example: permissive - type: string + data: + $ref: "#/components/schemas/ReportScheduleCreateRequestData" required: - - name - - value + - data type: object - SBOMComponentSupplier: - description: The supplier of the component. + ReportScheduleCreateRequestAttributes: + description: The configuration of the report schedule to create. properties: - name: - description: Identifier of the supplier of the component. - example: https://go.dev + delivery_format: + $ref: "#/components/schemas/ReportScheduleDeliveryFormat" + description: + description: A description of the report, up to 4096 characters. + example: "Weekly summary of infrastructure health." + maxLength: 4096 + type: string + recipients: + description: |- + The recipients of the report. Each entry is an email address, a Slack channel + reference in the form `slack:{team_id}.{channel_id}.{channel_name}`, or a Microsoft + Teams channel reference in the form `teams:{tenant_id}|{team_id}|{channel_id}`. + example: + - "user@example.com" + - "slack:T01234567.C01234567.alerts" + - "teams:11111111-1111-1111-1111-111111111111|22222222-2222-2222-2222-222222222222|19:exampleChannelId@thread.tacv2" + items: + description: A single recipient (email address, Slack channel reference, or Microsoft Teams channel reference). + type: string + type: array + resource_id: + description: The identifier of the dashboard or integration dashboard to render in the report. + example: "abc-def-ghi" + type: string + resource_type: + $ref: "#/components/schemas/ReportScheduleResourceType" + rrule: + description: The recurrence rule for the schedule, expressed as an iCalendar `RRULE` string. + example: "DTSTART;TZID=America/New_York:20260601T090000\nRRULE:FREQ=WEEKLY;BYDAY=MO;BYHOUR=9;BYMINUTE=0" + type: string + tab_id: + description: The identifier of the dashboard tab to render, when the dashboard has tabs. + example: "66666666-7777-8888-9999-000000000000" + format: uuid + type: string + template_variables: + description: The dashboard template variables applied when rendering the report. + items: + $ref: "#/components/schemas/ReportScheduleTemplateVariable" + type: array + timeframe: + description: The relative timeframe of data to include in the report. + example: "1w" + type: string + timezone: + description: The IANA time zone identifier the recurrence rule is evaluated in. + example: "America/New_York" + type: string + title: + description: The title of the report, between 1 and 78 characters. + example: "Weekly Infrastructure Report" + maxLength: 78 + minLength: 1 type: string required: - - name - type: object - SBOMComponentType: - description: The SBOM component type + - resource_id + - resource_type + - recipients + - rrule + - timezone + - template_variables + - timeframe + - title + - description + type: object + ReportScheduleCreateRequestData: + description: The JSON:API data object for a report schedule creation request. + properties: + attributes: + $ref: "#/components/schemas/ReportScheduleCreateRequestAttributes" + type: + $ref: "#/components/schemas/ReportScheduleType" + required: + - type + - attributes + type: object + ReportScheduleDeliveryFormat: + description: |- + How a PDF-export report is delivered. `pdf` attaches a PDF file, `png` embeds + an inline PNG image, and `pdf_and_png` delivers both. enum: - - application - - container - - data - - device - - device-driver - - file - - firmware - - framework - - library - - machine-learning-model - - operating-system - - platform - example: application + - pdf + - png + - pdf_and_png + example: pdf type: string x-enum-varnames: - - APPLICATION - - CONTAINER - - DATA - - DEVICE - - DEVICE_DRIVER - - FILE - - FIRMWARE - - FRAMEWORK - - LIBRARY - - MACHINE_LEARNING_MODEL - - OPERATING_SYSTEM - - PLATFORM - SBOMFormat: - description: The SBOM standard + - PDF + - PNG + - PDF_AND_PNG + ReportScheduleIncludedResource: + description: A related resource included with a report schedule. + oneOf: + - $ref: "#/components/schemas/ReportScheduleAuthor" + - $ref: "#/components/schemas/ReportScheduleResource" + ReportScheduleIncludedResourceType: + description: JSON:API resource type for an included report resource. enum: - - CycloneDX - - SPDX - example: CycloneDX + - resource + example: resource type: string x-enum-varnames: - - CYCLONEDX - - SPDX - SBOMMetadata: - description: Provides additional information about a BOM. + - RESOURCE + ReportScheduleIndexTemplateVariable: + description: Template variable metadata from a dashboard index. properties: - authors: - description: List of authors of the SBOM. + available_values: + description: Available values for the template variable. + example: + - prod + - staging items: - $ref: "#/components/schemas/SBOMMetadataAuthor" + type: string + nullable: true + type: array + defaults: + description: Default values for the template variable. + example: + - prod + items: + type: string + nullable: true type: array - component: - $ref: "#/components/schemas/SBOMMetadataComponent" - timestamp: - description: The timestamp of the SBOM creation. - example: "2025-07-08T07:24:53Z" - type: string - type: object - SBOMMetadataAuthor: - description: Author of the SBOM. - properties: - name: - description: The identifier of the Author of the SBOM. - example: "Datadog, Inc." - type: string - type: object - SBOMMetadataComponent: - description: The component that the BOM describes. - properties: name: - description: The name of the component. This will often be a shortened, single name of the component. - example: "github.com/datadog/datadog-agent" + description: The template variable name. + example: env + nullable: true type: string - type: - description: Specifies the type of the component. - example: application + prefix: + description: The tag prefix for the template variable, when available. + example: env + nullable: true type: string type: object - SBOMType: - description: The JSON:API type. - enum: - - sboms - example: sboms - type: string - x-enum-varnames: - - SBOMS - SLOReportInterval: - description: |- - The frequency at which report data is to be generated. - enum: - - daily - - weekly - - monthly - example: weekly - type: string - x-enum-varnames: - - DAILY - - WEEKLY - - MONTHLY - SLOReportPostResponse: - description: The SLO report response. + ReportScheduleListResourceRelationship: + description: Relationship to the report target resource. properties: data: - $ref: "#/components/schemas/SLOReportPostResponseData" + $ref: "#/components/schemas/ReportScheduleListResourceRelationshipData" + required: + - data type: object - SLOReportPostResponseData: - description: The data portion of the SLO report response. + ReportScheduleListResourceRelationshipData: + description: Relationship data for the report target resource. properties: id: - description: The ID of the report job. - example: "dc8d92aa-e0af-11ee-af21-1feeaccaa3a3" + description: The resource identifier. + example: "abc-def-ghi" type: string type: - description: The type of ID. - example: "report_id" - type: string + $ref: "#/components/schemas/ReportScheduleIncludedResourceType" + required: + - id + - type type: object - SLOReportStatus: - description: The status of the SLO report job. - enum: - - in_progress - - completed - - completed_with_errors - - failed - example: "completed" - type: string - x-enum-varnames: - - IN_PROGRESS - - COMPLETED - - COMPLETED_WITH_ERRORS - - FAILED - SLOReportStatusGetResponse: - description: The SLO report status response. + ReportScheduleListResponse: + description: Response containing a list of report schedules. properties: data: - $ref: "#/components/schemas/SLOReportStatusGetResponseData" + description: The list of report schedules. + items: + $ref: "#/components/schemas/ReportScheduleListResponseData" + type: array + included: + description: Related resources included with the report schedules, such as authors and rendered resources. + items: + $ref: "#/components/schemas/ReportScheduleIncludedResource" + type: array + links: + $ref: "#/components/schemas/ReportScheduleListResponseLinks" + meta: + $ref: "#/components/schemas/ReportScheduleListResponseMeta" + required: + - data type: object - SLOReportStatusGetResponseAttributes: - description: The attributes portion of the SLO report status response. + ReportScheduleListResponseAttributes: + description: The configuration and derived state of a report schedule in a list response. properties: + delivery_format: + $ref: "#/components/schemas/ReportScheduleResponseAttributesDeliveryFormat" + description: + description: The description of the report. + example: "Weekly summary of infrastructure health." + type: string + next_recurrence: + description: The Unix timestamp, in milliseconds, of the next scheduled delivery, or `null` if none is scheduled. + example: 1780923600000 + format: int64 + nullable: true + type: integer + recipients: + description: The recipients of the report (email addresses, Slack channel references, or Microsoft Teams channel references). + example: + - "user@example.com" + - "slack:T01234567.C01234567.alerts" + - "teams:11111111-1111-1111-1111-111111111111|22222222-2222-2222-2222-222222222222|19:exampleChannelId@thread.tacv2" + items: + description: A single recipient (email address, Slack channel reference, or Microsoft Teams channel reference). + type: string + type: array + resource_id: + description: The identifier of the resource rendered in the report. + example: "abc-def-ghi" + type: string + resource_type: + $ref: "#/components/schemas/ReportScheduleResourceType" + rrule: + description: The recurrence rule for the schedule, expressed as an iCalendar `RRULE` string. + example: "DTSTART;TZID=America/New_York:20260601T090000\nRRULE:FREQ=WEEKLY;BYDAY=MO;BYHOUR=9;BYMINUTE=0" + type: string status: - $ref: "#/components/schemas/SLOReportStatus" - type: object - SLOReportStatusGetResponseData: - description: The data portion of the SLO report status response. - properties: - attributes: - $ref: "#/components/schemas/SLOReportStatusGetResponseAttributes" - id: - description: The ID of the report job. - example: "dc8d92aa-e0af-11ee-af21-1feeaccaa3a3" + $ref: "#/components/schemas/ReportScheduleStatus" + template_variables: + description: The dashboard template variables applied when rendering the report. + items: + $ref: "#/components/schemas/ReportScheduleTemplateVariable" + type: array + timeframe: + description: The relative timeframe of data included in the report, or `null` if not set. + example: "1w" + nullable: true type: string - type: - description: The type of ID. - example: "report_id" + timezone: + description: The IANA time zone identifier the recurrence rule is evaluated in. + example: "America/New_York" + type: string + title: + description: The title of the report. + example: "Weekly Infrastructure Report" type: string + required: + - status + - resource_id + - resource_type + - recipients + - rrule + - timezone + - template_variables + - title + - description + - timeframe + - next_recurrence type: object - STIXBundleRequest: - additionalProperties: {} - description: A STIX 2.1 bundle containing threat intelligence indicator objects. + ReportScheduleListResponseData: + description: The JSON:API data object representing a report schedule in a list response. properties: + attributes: + $ref: "#/components/schemas/ReportScheduleListResponseAttributes" id: - description: The STIX bundle identifier. - example: bundle--11111111-1111-4111-8111-111111111111 + description: The unique identifier of the report schedule. + example: "11111111-2222-3333-4444-555555555555" type: string - objects: - description: >- - The STIX objects included in the bundle. Indicator objects are processed and ingested; all other STIX object types are ignored and are not included in the response counters. - example: - - created: "2026-07-22T12:00:00Z" - id: indicator--22222222-2222-4222-8222-222222222222 - modified: "2026-07-22T12:00:00Z" - pattern: "[ipv4-addr:value = '198.51.100.42']" - pattern_type: stix - spec_version: "2.1" - type: indicator - valid_from: "2026-07-22T12:00:00Z" - items: - $ref: "#/components/schemas/STIXObject" - type: array - spec_version: - $ref: "#/components/schemas/STIXSpecVersion" + relationships: + $ref: "#/components/schemas/ReportScheduleListResponseRelationships" type: - $ref: "#/components/schemas/STIXBundleType" + $ref: "#/components/schemas/ReportScheduleType" required: - - type - id - - objects + - type + - attributes + - relationships type: object - STIXBundleType: - description: The STIX object type for a bundle. - enum: - - bundle - example: bundle - type: string - x-enum-varnames: - - BUNDLE - STIXContentEncoding: - description: The content encoding applied to the request body. - enum: - - gzip - example: gzip - type: string - x-enum-varnames: - - GZIP - STIXIngestResponse: - description: The response from a completed STIX ingestion request. + ReportScheduleListResponseLinks: + description: Pagination links for navigating a report schedule list response. properties: - data: - $ref: "#/components/schemas/STIXIngestResponseData" - required: - - data + first: + description: Link to the first page. + example: "https://api.datadoghq.com/api/v2/reporting/schedule/list?page[offset]=0&page[limit]=25" + nullable: true + type: string + last: + description: Link to the last page, or `null` if it is unavailable. + example: "https://api.datadoghq.com/api/v2/reporting/schedule/list?page[offset]=0&page[limit]=25" + nullable: true + type: string + next: + description: Link to the next page, or `null` if it is unavailable. + example: "https://api.datadoghq.com/api/v2/reporting/schedule/list?page[offset]=25&page[limit]=25" + nullable: true + type: string + prev: + description: Link to the previous page, or `null` if it is unavailable. + example: "https://api.datadoghq.com/api/v2/reporting/schedule/list?page[offset]=0&page[limit]=25" + nullable: true + type: string + self: + description: Link to the current page. + example: "https://api.datadoghq.com/api/v2/reporting/schedule/list?page[limit]=25" + nullable: true + type: string type: object - STIXIngestResponseAttributes: - description: Counters describing the result of the STIX ingestion request. + ReportScheduleListResponseMeta: + description: Metadata for a paginated report schedule list response. properties: - accepted: - description: The number of supported indicators accepted. - example: 1 + pagination: + $ref: "#/components/schemas/ReportScheduleListResponsePagination" + type: object + ReportScheduleListResponsePagination: + description: Offset and limit pagination metadata for a report schedule list response. + properties: + first_offset: + description: The first offset. + example: 0 format: int64 - minimum: 0 type: integer - invalid: - description: The number of indicators with patterns that could not be parsed. + last_offset: + description: The last offset when the total count is known, or `null` if it is unavailable. example: 0 format: int64 - minimum: 0 + nullable: true type: integer - unsupported: - description: >- - The number of indicator objects with an unsupported STIX version or a pattern that produced no supported observable values. + limit: + description: The maximum number of schedules returned. + example: 25 + format: int64 + type: integer + next_offset: + description: The next offset. + example: 25 + format: int64 + type: integer + offset: + description: The current offset. example: 0 format: int64 - minimum: 0 type: integer - required: - - accepted - - unsupported - - invalid - type: object - STIXIngestResponseData: - description: The JSON:API resource describing the completed STIX ingestion request. - properties: - attributes: - $ref: "#/components/schemas/STIXIngestResponseAttributes" - id: - description: The normalized vendor identifier. - example: acme - type: string + prev_offset: + description: The previous offset. + example: 0 + format: int64 + type: integer + total: + description: The total number of matching schedules. + example: 1 + format: int64 + type: integer type: - $ref: "#/components/schemas/STIXIngestResponseType" - required: - - type - - id - - attributes + $ref: "#/components/schemas/ReportScheduleListResponsePaginationType" type: object - STIXIngestResponseType: - description: The STIX ingestion resource type. + ReportScheduleListResponsePaginationType: + description: The pagination type. enum: - - threat-intel-stix-ingest - example: threat-intel-stix-ingest + - offset_limit + example: offset_limit type: string x-enum-varnames: - - THREAT_INTEL_STIX_INGEST - STIXMetadataObject: - additionalProperties: {} - description: An opaque STIX metadata object. + - OFFSET_LIMIT + ReportScheduleListResponseRelationships: + description: Relationships for a report schedule in a list response. + properties: + author: + $ref: "#/components/schemas/ReportScheduleAuthorRelationship" + resource: + $ref: "#/components/schemas/ReportScheduleListResourceRelationship" + required: + - author type: object - STIXObject: - additionalProperties: {} - description: >- - A STIX 2.1 object. Indicator objects are processed and ingested; all other STIX object types are ignored and are not included in the response counters. + ReportSchedulePatchRequest: + description: Request body for updating a report schedule. properties: - confidence: - description: The confidence in the correctness of the indicator, from 0 through 100. - example: 80 - format: int32 - maximum: 100 - minimum: 0 - type: integer - created: - description: The time when the object was created. - example: "2026-07-22T12:00:00Z" - format: date-time - type: string - external_references: - description: Optional external reference metadata preserved with the indicator but not interpreted during ingestion. - items: - $ref: "#/components/schemas/STIXMetadataObject" - type: array - id: - description: The STIX object identifier. - example: indicator--22222222-2222-4222-8222-222222222222 + data: + $ref: "#/components/schemas/ReportSchedulePatchRequestData" + required: + - data + type: object + ReportSchedulePatchRequestAttributes: + description: |- + The updated configuration of the report schedule. These values replace the existing + ones; the targeted resource (`resource_id` and `resource_type`) cannot be changed. + properties: + delivery_format: + $ref: "#/components/schemas/ReportScheduleDeliveryFormat" + description: + description: A description of the report, up to 4096 characters. + example: "Updated weekly summary of infrastructure health." + maxLength: 4096 type: string - indicator_types: - description: The open vocabulary terms that categorize the indicator. - example: - - malicious-activity - items: - type: string - type: array - kill_chain_phases: - description: Optional kill chain metadata preserved with the indicator but not interpreted during ingestion. - items: - $ref: "#/components/schemas/STIXMetadataObject" - type: array - labels: - description: Labels associated with the indicator. + recipients: + description: |- + The recipients of the report. Each entry is an email address, a Slack channel + reference in the form `slack:{team_id}.{channel_id}.{channel_name}`, or a Microsoft + Teams channel reference in the form `teams:{tenant_id}|{team_id}|{channel_id}`. example: - - synthetic + - "user@example.com" + - "slack:T01234567.C01234567.alerts" + - "teams:11111111-1111-1111-1111-111111111111|22222222-2222-2222-2222-222222222222|19:exampleChannelId@thread.tacv2" items: + description: A single recipient (email address, Slack channel reference, or Microsoft Teams channel reference). type: string type: array - modified: - description: The time when the object was last modified. - example: "2026-07-22T12:00:00Z" - format: date-time + rrule: + description: The recurrence rule for the schedule, expressed as an iCalendar `RRULE` string. + example: "DTSTART;TZID=America/New_York:20260601T090000\nRRULE:FREQ=WEEKLY;BYDAY=MO;BYHOUR=9;BYMINUTE=0" type: string - object_marking_refs: - description: References to marking definition objects that apply to the indicator. - example: - - marking-definition--33333333-3333-4333-8333-333333333333 + tab_id: + description: The identifier of the dashboard tab to render, when the dashboard has tabs. + example: "66666666-7777-8888-9999-000000000000" + format: uuid + type: string + template_variables: + description: The dashboard template variables applied when rendering the report. items: - type: string + $ref: "#/components/schemas/ReportScheduleTemplateVariable" type: array - pattern: - description: The STIX pattern that identifies the observable. Present on indicator objects. - example: "[ipv4-addr:value = '198.51.100.42']" - type: string - pattern_type: - $ref: "#/components/schemas/STIXPatternType" - revoked: - description: Whether the indicator has been revoked. - example: false - type: boolean - spec_version: - description: The STIX specification version declared on the object. Objects with an unsupported version are accepted and counted in the `unsupported` response counter. - example: "2.1" - type: string - type: - description: The STIX object type. - example: indicator + timeframe: + description: The relative timeframe of data to include in the report. + example: "1w" type: string - valid_from: - description: The time from which the indicator is considered valid. Present on indicator objects. - example: "2026-07-22T12:00:00Z" - format: date-time + timezone: + description: The IANA time zone identifier the recurrence rule is evaluated in. + example: "America/New_York" type: string - valid_until: - description: The time until which the indicator is considered valid. - example: "2027-07-22T12:00:00Z" - format: date-time + title: + description: The title of the report, between 1 and 78 characters. + example: "Weekly Infrastructure Report" + maxLength: 78 + minLength: 1 type: string required: - - type - - id + - recipients + - rrule + - timezone + - template_variables + - timeframe + - title + - description type: object - STIXPatternType: - description: The supported STIX pattern language. - enum: - - stix - example: stix - type: string - x-enum-varnames: - - STIX - STIXSpecVersion: - description: The supported STIX specification version. - enum: - - "2.1" - example: "2.1" - type: string - x-enum-varnames: - - VERSION_2_1 - SalesforceIncidentsOrganizationResponseAttributes: - description: Attributes of a Salesforce organization connected to the Datadog Salesforce integration. + ReportSchedulePatchRequestData: + description: The JSON:API data object for a report schedule update request. properties: - instance_url: - description: The Salesforce instance URL used to call this organization's APIs. - example: "https://acme.my.salesforce.com" - type: string - name: - description: Human-readable name of the Salesforce organization. - example: "Acme Production Org" - type: string - sfdc_org_id: - description: The Salesforce organization identifier (15- or 18-character Salesforce org ID). - example: "00D000000000000" - type: string - sfdc_org_type: - description: The Salesforce organization type (for example, `Production` or `Sandbox`). - example: "Production" - type: string + attributes: + $ref: "#/components/schemas/ReportSchedulePatchRequestAttributes" + type: + $ref: "#/components/schemas/ReportScheduleType" + required: + - type + - attributes type: object - SalesforceIncidentsOrganizationResponseData: - description: Salesforce organization data from a response. + ReportScheduleResource: + description: A report target resource included as a related JSON:API resource. properties: attributes: - $ref: "#/components/schemas/SalesforceIncidentsOrganizationResponseAttributes" + $ref: "#/components/schemas/ReportScheduleResourceAttributes" id: - description: The Datadog-assigned ID of the connected Salesforce organization. - example: "596da4af-0563-4097-90ff-07230c3f9db3" - maxLength: 100 - minLength: 1 + description: The resource identifier. + example: "abc-def-ghi" type: string type: - $ref: "#/components/schemas/SalesforceIncidentsOrganizationType" + $ref: "#/components/schemas/ReportScheduleIncludedResourceType" required: - - id - type + - id - attributes type: object - SalesforceIncidentsOrganizationType: - default: salesforce-incidents-org - description: Salesforce organization resource type. + ReportScheduleResourceAttributes: + description: Attributes of an included report target resource. + properties: + resource_type: + $ref: "#/components/schemas/ReportScheduleResourceType" + template_variables: + description: Template variable metadata from the dashboard resource, when available. + items: + $ref: "#/components/schemas/ReportScheduleIndexTemplateVariable" + nullable: true + type: array + title: + description: The title of the dashboard or integration dashboard resource, when available. + example: "Infrastructure Overview" + nullable: true + type: string + required: + - resource_type + type: object + ReportScheduleResourceType: + description: The type of dashboard resource the report schedule targets. enum: - - salesforce-incidents-org - example: salesforce-incidents-org + - dashboard + - integration_dashboard + example: dashboard type: string x-enum-varnames: - - SALESFORCE_INCIDENTS_ORG - SalesforceIncidentsOrganizationsResponse: - description: |- - Response containing a list of Salesforce organizations connected to the - Datadog Salesforce integration. + - DASHBOARD + - INTEGRATION_DASHBOARD + ReportScheduleResponse: + description: Response containing a single report schedule. properties: data: - description: An array of Salesforce organizations. + $ref: "#/components/schemas/ReportScheduleResponseData" + included: + description: Related resources included with the report schedule, such as the author. items: - $ref: "#/components/schemas/SalesforceIncidentsOrganizationResponseData" + $ref: "#/components/schemas/ReportScheduleIncludedResource" type: array required: - data type: object - SalesforceIncidentsTemplateCreateAttributes: - description: Salesforce incident template attributes for a create request. + ReportScheduleResponseAttributes: + description: The configuration and derived state of a report schedule. properties: + delivery_format: + $ref: "#/components/schemas/ReportScheduleResponseAttributesDeliveryFormat" description: - description: Long-form description body for Salesforce incidents created from this template. - example: "An incident was detected by Datadog monitors." - maxLength: 2048 - minLength: 1 + description: The description of the report. + example: "Weekly summary of infrastructure health." type: string - name: - description: Human-readable name for this incident template. Must be unique within your organization. - example: "production-outage" - maxLength: 100 - minLength: 1 + next_recurrence: + description: The Unix timestamp, in milliseconds, of the next scheduled delivery, or `null` if none is scheduled. + example: 1780923600000 + format: int64 + nullable: true + type: integer + recipients: + description: The recipients of the report (email addresses, Slack channel references, or Microsoft Teams channel references). + example: + - "user@example.com" + - "slack:T01234567.C01234567.alerts" + - "teams:11111111-1111-1111-1111-111111111111|22222222-2222-2222-2222-222222222222|19:exampleChannelId@thread.tacv2" + items: + description: A single recipient (email address, Slack channel reference, or Microsoft Teams channel reference). + type: string + type: array + resource_id: + description: The identifier of the resource rendered in the report. + example: "abc-def-ghi" type: string - owner_id: - description: The Salesforce user ID that owns incidents created from this template. - example: "005000000000000" - maxLength: 255 - minLength: 1 + resource_type: + $ref: "#/components/schemas/ReportScheduleResourceType" + rrule: + description: The recurrence rule for the schedule, expressed as an iCalendar `RRULE` string. + example: "DTSTART;TZID=America/New_York:20260601T090000\nRRULE:FREQ=WEEKLY;BYDAY=MO;BYHOUR=9;BYMINUTE=0" type: string - priority: - $ref: "#/components/schemas/SalesforceIncidentsTemplatePriority" - salesforce_org_id: - description: The Datadog-assigned ID of the Salesforce organization this template belongs to. - example: "596da4af-0563-4097-90ff-07230c3f9db3" - format: uuid + status: + $ref: "#/components/schemas/ReportScheduleStatus" + tab_id: + description: The identifier of the dashboard tab rendered in the report, or `null` if not set. + example: "66666666-7777-8888-9999-000000000000" + nullable: true type: string - subject: - description: Subject line for Salesforce incidents created from this template. - example: "Datadog Incident: Production Outage" - maxLength: 255 - minLength: 1 + template_variables: + description: The dashboard template variables applied when rendering the report. + items: + $ref: "#/components/schemas/ReportScheduleTemplateVariable" + type: array + timeframe: + description: The relative timeframe of data included in the report, or `null` if not set. + example: "1w" + nullable: true + type: string + timezone: + description: The IANA time zone identifier the recurrence rule is evaluated in. + example: "America/New_York" + type: string + title: + description: The title of the report. + example: "Weekly Infrastructure Report" type: string required: - - salesforce_org_id - - name - - subject + - status + - resource_id + - resource_type + - recipients + - rrule + - timezone + - template_variables + - title - description - - owner_id - - priority + - timeframe + - next_recurrence + - tab_id type: object - SalesforceIncidentsTemplateCreateData: - description: Salesforce incident template data for a create request. + ReportScheduleResponseAttributesDeliveryFormat: + description: The delivery format for dashboard report schedules, or `null` if not set. + enum: + - pdf + - png + - pdf_and_png + example: pdf + nullable: true + type: string + x-enum-varnames: + - PDF + - PNG + - PDF_AND_PNG + ReportScheduleResponseData: + description: The JSON:API data object representing a report schedule. properties: attributes: - $ref: "#/components/schemas/SalesforceIncidentsTemplateCreateAttributes" + $ref: "#/components/schemas/ReportScheduleResponseAttributes" + id: + description: The unique identifier of the report schedule. + example: "11111111-2222-3333-4444-555555555555" + type: string + relationships: + $ref: "#/components/schemas/ReportScheduleResponseRelationships" type: - $ref: "#/components/schemas/SalesforceIncidentsTemplateType" + $ref: "#/components/schemas/ReportScheduleType" required: + - id - type - attributes + - relationships type: object - SalesforceIncidentsTemplateCreateRequest: - description: Create request for a Salesforce incident template. + ReportScheduleResponseRelationships: + description: Relationships for the report schedule. properties: - data: - $ref: "#/components/schemas/SalesforceIncidentsTemplateCreateData" + author: + $ref: "#/components/schemas/ReportScheduleAuthorRelationship" required: - - data + - author type: object - SalesforceIncidentsTemplatePriority: - description: Priority of the Salesforce incident created from this template. + ReportScheduleStatus: + description: Whether the schedule is currently delivering reports (`active`) or paused (`inactive`). enum: - - Critical - - High - - Moderate - - Low - example: "High" + - active + - inactive + example: active type: string x-enum-varnames: - - CRITICAL - - HIGH - - MODERATE - - LOW - SalesforceIncidentsTemplateResponse: - description: Response containing a Salesforce incident template. + - ACTIVE + - INACTIVE + ReportScheduleTemplateVariable: + description: A dashboard template variable applied when rendering the report. + properties: + name: + description: The name of the template variable. + example: env + type: string + values: + description: The selected values for the template variable. + example: + - "prod" + items: + description: A single selected template variable value. + type: string + type: array + required: + - name + - values + type: object + ReportScheduleToggleRequest: + description: Request body for toggling a report schedule. properties: data: - $ref: "#/components/schemas/SalesforceIncidentsTemplateResponseData" + $ref: "#/components/schemas/ReportScheduleToggleRequestData" required: - data type: object - SalesforceIncidentsTemplateResponseAttributes: - description: Salesforce incident template attributes returned by the API. + ReportScheduleToggleRequestAttributes: + description: The status to set on the report schedule. properties: - description: - description: Long-form description body for Salesforce incidents created from this template. - example: "An incident was detected by Datadog monitors." - type: string - name: - description: Human-readable name for this incident template. - example: "production-outage" - type: string - owner_id: - description: The Salesforce user ID that owns incidents created from this template. - example: "005000000000000" - type: string - priority: - $ref: "#/components/schemas/SalesforceIncidentsTemplatePriority" - salesforce_org_id: - description: The Datadog-assigned ID of the Salesforce organization this template belongs to. - example: "596da4af-0563-4097-90ff-07230c3f9db3" - format: uuid - type: string - subject: - description: Subject line for Salesforce incidents created from this template. - example: "Datadog Incident: Production Outage" - type: string + status: + $ref: "#/components/schemas/ReportScheduleStatus" + required: + - status type: object - SalesforceIncidentsTemplateResponseData: - description: Salesforce incident template data from a response. + ReportScheduleToggleRequestData: + description: The JSON:API data object for a report schedule toggle request. properties: attributes: - $ref: "#/components/schemas/SalesforceIncidentsTemplateResponseAttributes" - id: - description: The ID of the Salesforce incident template. - example: "596da4af-0563-4097-90ff-07230c3f9db3" - maxLength: 100 - minLength: 1 - type: string + $ref: "#/components/schemas/ReportScheduleToggleRequestAttributes" type: - $ref: "#/components/schemas/SalesforceIncidentsTemplateType" + $ref: "#/components/schemas/ReportScheduleType" required: - - id - type - attributes type: object - SalesforceIncidentsTemplateType: - default: salesforce-incidents-incident-template - description: Salesforce incident template resource type. + ReportScheduleType: + description: JSON:API resource type for report schedules. enum: - - salesforce-incidents-incident-template - example: salesforce-incidents-incident-template + - schedule + example: schedule type: string x-enum-varnames: - - SALESFORCE_INCIDENTS_INCIDENT_TEMPLATE - SalesforceIncidentsTemplateUpdateAttributes: - description: Salesforce incident template attributes for an update request. + - SCHEDULE + ResolveVulnerableSymbolsRequest: + description: The top-level request object for resolving vulnerable symbols in a set of packages. properties: - description: - description: Long-form description body for Salesforce incidents created from this template. - example: "An incident was detected by Datadog monitors." - maxLength: 2048 - minLength: 1 - type: string - name: - description: Human-readable name for this incident template. - example: "production-outage" - maxLength: 100 - minLength: 1 - type: string - owner_id: - description: The Salesforce user ID that owns incidents created from this template. - example: "005000000000000" - maxLength: 255 - minLength: 1 - type: string - priority: - $ref: "#/components/schemas/SalesforceIncidentsTemplatePriority" - salesforce_org_id: - description: The Datadog-assigned ID of the Salesforce organization this template belongs to. - example: "596da4af-0563-4097-90ff-07230c3f9db3" - format: uuid - type: string - subject: - description: Subject line for Salesforce incidents created from this template. - example: "Datadog Incident: Production Outage" - maxLength: 255 - minLength: 1 - type: string + data: + $ref: "#/components/schemas/ResolveVulnerableSymbolsRequestData" type: object - SalesforceIncidentsTemplateUpdateData: - description: Salesforce incident template data for an update request. + ResolveVulnerableSymbolsRequestData: + description: >- + The data object in a request to resolve vulnerable symbols, containing the package PURLs and request type. properties: attributes: - $ref: "#/components/schemas/SalesforceIncidentsTemplateUpdateAttributes" + $ref: "#/components/schemas/ResolveVulnerableSymbolsRequestDataAttributes" id: - description: The ID of the Salesforce incident template being updated. Must match the path parameter. - example: "596da4af-0563-4097-90ff-07230c3f9db3" - maxLength: 100 - minLength: 1 + description: An optional identifier for this request data object. type: string type: - $ref: "#/components/schemas/SalesforceIncidentsTemplateType" + $ref: "#/components/schemas/ResolveVulnerableSymbolsRequestDataType" required: - - id - type - - attributes type: object - SalesforceIncidentsTemplateUpdateRequest: - description: Update request for a Salesforce incident template. + ResolveVulnerableSymbolsRequestDataAttributes: + description: >- + The attributes of a request to resolve vulnerable symbols, containing the list of package PURLs to check. properties: - data: - $ref: "#/components/schemas/SalesforceIncidentsTemplateUpdateData" - required: - - data + purls: + description: The list of Package URLs (PURLs) for which to resolve vulnerable symbols. + items: + description: A Package URL (PURL) identifying a specific package and version. + type: string + type: array type: object - SalesforceIncidentsTemplatesResponse: - description: Response containing a list of Salesforce incident templates. + ResolveVulnerableSymbolsRequestDataType: + default: resolve-vulnerable-symbols-request + description: The type identifier for requests to resolve vulnerable symbols. + enum: + - resolve-vulnerable-symbols-request + example: resolve-vulnerable-symbols-request + type: string + x-enum-varnames: + - RESOLVE_VULNERABLE_SYMBOLS_REQUEST + ResolveVulnerableSymbolsResponse: + description: The top-level response object returned when resolving vulnerable symbols for a set of packages. properties: data: - description: An array of Salesforce incident templates. - items: - $ref: "#/components/schemas/SalesforceIncidentsTemplateResponseData" - type: array - required: - - data + $ref: "#/components/schemas/ResolveVulnerableSymbolsResponseData" type: object - SampleLogGenerationBulkSubscriptionAttributes: - description: The attributes for creating sample log generation subscriptions for multiple content packs. - properties: - content_pack_ids: - description: The identifiers of the Cloud SIEM content packs to subscribe to. At most five content packs can be requested in a single call. - example: - - aws-cloudtrail - items: - description: A Cloud SIEM content pack identifier. - type: string - maxItems: 5 - type: array - duration: - $ref: "#/components/schemas/SampleLogGenerationDuration" - required: - - content_pack_ids - type: object - SampleLogGenerationBulkSubscriptionData: - description: The bulk subscription request body. + ResolveVulnerableSymbolsResponseData: + description: >- + The data object in a response for resolving vulnerable symbols, containing the result attributes and response type. properties: attributes: - $ref: "#/components/schemas/SampleLogGenerationBulkSubscriptionAttributes" + $ref: "#/components/schemas/ResolveVulnerableSymbolsResponseDataAttributes" + id: + description: The unique identifier for this response data object. + type: string type: - $ref: "#/components/schemas/SampleLogGenerationBulkSubscriptionRequestType" + $ref: "#/components/schemas/ResolveVulnerableSymbolsResponseDataType" required: - type - - attributes - type: object - SampleLogGenerationBulkSubscriptionItemMeta: - description: Per-item status returned for a bulk subscription request. - properties: - error: - description: A description of the error encountered for this content pack, if the subscription could not be created. - example: content pack does not exist - type: string - status: - description: The HTTP status code that resulted from creating the subscription for this content pack. - example: 200 - format: int32 - maximum: 599 - type: integer - required: - - status type: object - SampleLogGenerationBulkSubscriptionRequest: - description: Request body to create sample log generation subscriptions for multiple content packs at once. + ResolveVulnerableSymbolsResponseDataAttributes: + description: The attributes of a response containing resolved vulnerable symbols, organized by package. properties: - data: - $ref: "#/components/schemas/SampleLogGenerationBulkSubscriptionData" - required: - - data + results: + description: The list of resolved vulnerable symbol results, one entry per queried package. + items: + $ref: "#/components/schemas/ResolveVulnerableSymbolsResponseResults" + type: array type: object - SampleLogGenerationBulkSubscriptionRequestType: - default: bulk_subscription_requests - description: The type of the resource. The value should always be `bulk_subscription_requests`. + ResolveVulnerableSymbolsResponseDataType: + default: resolve-vulnerable-symbols-response + description: The type identifier for responses containing resolved vulnerable symbols. enum: - - bulk_subscription_requests - example: bulk_subscription_requests + - resolve-vulnerable-symbols-response + example: resolve-vulnerable-symbols-response type: string x-enum-varnames: - - BULK_SUBSCRIPTION_REQUESTS - SampleLogGenerationBulkSubscriptionResponse: - description: Response containing the per-content-pack results of a bulk subscription request. + - RESOLVE_VULNERABLE_SYMBOLS_RESPONSE + ResolveVulnerableSymbolsResponseResults: + description: The result of resolving vulnerable symbols for a specific package, identified by its PURL. properties: - data: - description: The list of bulk subscription results, one per requested content pack. + purl: + description: >- + The Package URL (PURL) uniquely identifying the package for which vulnerable symbols are resolved. + type: string + vulnerable_symbols: + description: The list of vulnerable symbol groups found in this package, organized by advisory. items: - $ref: "#/components/schemas/SampleLogGenerationBulkSubscriptionResultItem" + $ref: "#/components/schemas/ResolveVulnerableSymbolsResponseResultsVulnerableSymbols" type: array - required: - - data type: object - SampleLogGenerationBulkSubscriptionResultItem: - description: A single result entry returned by the bulk subscription endpoint. + ResolveVulnerableSymbolsResponseResultsVulnerableSymbols: + description: A collection of vulnerable symbols associated with a specific security advisory. properties: - attributes: - $ref: "#/components/schemas/SampleLogGenerationSubscriptionAttributes" - id: - description: The unique identifier of the subscription, when one was created. - example: "123" + advisory_id: + description: The identifier of the security advisory that describes the vulnerability. type: string - meta: - $ref: "#/components/schemas/SampleLogGenerationBulkSubscriptionItemMeta" - type: - $ref: "#/components/schemas/SampleLogGenerationSubscriptionResourceType" - required: - - id - - type - - attributes - - meta + symbols: + description: The list of symbols that are vulnerable according to this advisory. + items: + $ref: "#/components/schemas/ResolveVulnerableSymbolsResponseResultsVulnerableSymbolsSymbols" + type: array type: object - SampleLogGenerationDuration: - default: 3d - description: How long the subscription should remain active before expiring. - enum: - - 1h - - 1d - - 3d - - 7d - example: 3d - type: string - x-enum-varnames: - - ONE_HOUR - - ONE_DAY - - THREE_DAYS - - SEVEN_DAYS - SampleLogGenerationSubscriptionAttributes: - description: The attributes describing a sample log generation subscription. + ResolveVulnerableSymbolsResponseResultsVulnerableSymbolsSymbols: + description: A symbol identified as vulnerable within a dependency, including its name, type, and value. properties: - content_pack_id: - description: The identifier of the Cloud SIEM content pack the subscription targets. - example: aws-cloudtrail + name: + description: The name of the vulnerable symbol. type: string - created_at: - description: The time at which the subscription was created. - example: "2026-05-08T20:02:13.77481Z" - format: date-time + type: + description: The type classification of the vulnerable symbol (e.g., function, class, variable). type: string - expires_at: - description: The time at which the subscription expires and stops generating logs. - example: "2026-05-11T20:02:13.77481Z" - format: date-time + value: + description: The value or identifier associated with the vulnerable symbol. type: string - is_active: - description: Whether the subscription is currently active and generating logs. - example: true - type: boolean - status: - $ref: "#/components/schemas/SampleLogGenerationSubscriptionStatus" - required: - - content_pack_id - - status - - is_active - - created_at - - expires_at type: object - SampleLogGenerationSubscriptionCreateAttributes: - description: The attributes for creating a sample log generation subscription. + ResourceFilterAttributes: + description: Attributes of a resource filter. + example: + aws: + "123456789": + - environment:production + - team:devops + azure: + sub-001: + - app:frontend + gcp: + project-abc: + - region:us-central1 properties: - content_pack_id: - description: The identifier of the Cloud SIEM content pack to subscribe to. - example: aws-cloudtrail + cloud_provider: + additionalProperties: + additionalProperties: + items: + description: Tag filter in format "key:value" + example: environment:production + type: string + type: array + type: object + description: A map of cloud provider names (e.g., "aws", "gcp", "azure") to a map of account/resource IDs and their associated tag filters. + type: object + uuid: + description: The UUID of the resource filter. type: string - duration: - $ref: "#/components/schemas/SampleLogGenerationDuration" required: - - content_pack_id + - cloud_provider type: object - SampleLogGenerationSubscriptionCreateData: - description: The subscription request body. + ResourceFilterRequestType: + description: Constant string to identify the request type. + enum: + - csm_resource_filter + example: csm_resource_filter + type: string + x-enum-varnames: + - CSM_RESOURCE_FILTER + ResponseMetaAttributes: + description: Object describing meta attributes of response. + properties: + page: + $ref: "#/components/schemas/Pagination" + type: object + RestrictionPolicy: + description: Restriction policy object. properties: attributes: - $ref: "#/components/schemas/SampleLogGenerationSubscriptionCreateAttributes" + $ref: "#/components/schemas/RestrictionPolicyAttributes" + id: + description: The identifier, always equivalent to the value specified in the `resource_id` path parameter. + example: "dashboard:abc-def-ghi" + type: string type: - $ref: "#/components/schemas/SampleLogGenerationSubscriptionRequestType" + $ref: "#/components/schemas/RestrictionPolicyType" required: - type + - id - attributes type: object - SampleLogGenerationSubscriptionCreateRequest: - description: Request body to create a sample log generation subscription for a single content pack. + RestrictionPolicyAttributes: + description: Restriction policy attributes. + example: {"bindings": []} properties: - data: - $ref: "#/components/schemas/SampleLogGenerationSubscriptionCreateData" + bindings: + description: An array of bindings. + items: + $ref: "#/components/schemas/RestrictionPolicyBinding" + type: array required: - - data + - bindings type: object - SampleLogGenerationSubscriptionData: - description: A sample log generation subscription. + RestrictionPolicyBinding: + description: Specifies which principals are associated with a relation. properties: - attributes: - $ref: "#/components/schemas/SampleLogGenerationSubscriptionAttributes" - id: - description: The unique identifier of the subscription. - example: "789" + principals: + description: |- + An array of principals. A principal is a subject or group of subjects. + Each principal is formatted as `type:id`. Supported types: `role`, `team`, `user`, and `org`. + The org ID can be obtained through the api/v2/current_user API. + The user principal type accepts service account IDs. + example: ["role:00000000-0000-1111-0000-000000000000"] + items: + description: |- + Subject or group of subjects. Each principal is formatted as `type:id`. + Supported types: `role`, `team`, `user`, and `org`. + The org ID can be obtained through the api/v2/current_user API. + The user principal type accepts service account IDs. + type: string + type: array + relation: + description: The role/level of access. + example: editor type: string - type: - $ref: "#/components/schemas/SampleLogGenerationSubscriptionResourceType" required: - - id - - type - - attributes + - relation + - principals type: object - SampleLogGenerationSubscriptionRequestType: - default: subscription_requests - description: The type of the resource. The value should always be `subscription_requests`. - enum: - - subscription_requests - example: subscription_requests - type: string - x-enum-varnames: - - SUBSCRIPTION_REQUESTS - SampleLogGenerationSubscriptionResourceType: - default: subscriptions - description: The type of the resource. The value should always be `subscriptions`. - enum: - - subscriptions - example: subscriptions - type: string - x-enum-varnames: - - SUBSCRIPTIONS - SampleLogGenerationSubscriptionResponse: - description: Response containing a single sample log generation subscription. + RestrictionPolicyResponse: + description: Response containing information about a single restriction policy. properties: data: - $ref: "#/components/schemas/SampleLogGenerationSubscriptionData" + $ref: "#/components/schemas/RestrictionPolicy" required: - data type: object - SampleLogGenerationSubscriptionStatus: - description: The status of the subscription. + RestrictionPolicyType: + default: restriction_policy + description: Restriction policy type. enum: - - subscribed - - renewed - - unsubscribed - - no_active_subscription - - not_available - - active - - expired - example: subscribed + - restriction_policy + example: restriction_policy type: string x-enum-varnames: - - SUBSCRIBED - - RENEWED - - UNSUBSCRIBED - - NO_ACTIVE_SUBSCRIPTION - - NOT_AVAILABLE - - ACTIVE - - EXPIRED - SampleLogGenerationSubscriptionsResponse: - description: Response containing a list of sample log generation subscriptions. + - RESTRICTION_POLICY + RestrictionPolicyUpdateRequest: + description: Update request for a restriction policy. properties: data: - description: The list of sample log generation subscriptions. - items: - $ref: "#/components/schemas/SampleLogGenerationSubscriptionData" - type: array - meta: - $ref: "#/components/schemas/SampleLogGenerationSubscriptionsResponseMeta" + $ref: "#/components/schemas/RestrictionPolicy" required: - data - - meta type: object - SampleLogGenerationSubscriptionsResponseMeta: - description: Metadata returned alongside a list of sample log generation subscriptions. + RestrictionQueryAttributes: + description: Attributes of the restriction query. properties: - total_subscriptions: - description: The total number of subscriptions matching the request, irrespective of pagination. - example: 1 - format: int32 - maximum: 2147483647 + created_at: + description: Creation time of the restriction query. + example: "2020-03-17T21:06:44.000Z" + format: date-time + readOnly: true + type: string + last_modifier_email: + description: Email of the user who last modified this restriction query. + example: "user@example.com" + readOnly: true + type: string + last_modifier_name: + description: Name of the user who last modified this restriction query. + example: "John Doe" + readOnly: true + type: string + modified_at: + description: Time of last restriction query modification. + example: "2020-03-17T21:15:15.000Z" + format: date-time + readOnly: true + type: string + restriction_query: + description: The query that defines the restriction. Only the content matching the query can be returned. + example: "env:sandbox" + type: string + role_count: + description: Number of roles associated with this restriction query. + example: 3 + format: int64 + readOnly: true + type: integer + user_count: + description: Number of users associated with this restriction query. + example: 5 + format: int64 + readOnly: true type: integer + type: object + RestrictionQueryCreateAttributes: + description: Attributes of the created restriction query. + properties: + restriction_query: + description: The restriction query. + example: "env:sandbox" + type: string required: - - total_subscriptions + - restriction_query type: object - SampleLogGenerationSubscriptionsStatusFilter: - default: active - description: Filter that controls whether to return only active subscriptions or every subscription on record. - enum: - - active - - all - example: active - type: string - x-enum-varnames: - - ACTIVE - - ALL - SastRulesetData: - description: The primary data object representing a SAST ruleset. + RestrictionQueryCreateData: + description: Data related to the creation of a restriction query. properties: attributes: - $ref: "#/components/schemas/SastRulesetDataAttributes" + $ref: "#/components/schemas/RestrictionQueryCreateAttributes" + type: + $ref: "#/components/schemas/LogsRestrictionQueriesType" + type: object + RestrictionQueryCreatePayload: + description: Create a restriction query. + properties: + data: + $ref: "#/components/schemas/RestrictionQueryCreateData" + type: object + RestrictionQueryListResponse: + description: Response containing information about multiple restriction queries. + properties: + data: + description: Array of returned restriction queries. + items: + $ref: "#/components/schemas/RestrictionQueryWithoutRelationships" + type: array + type: object + RestrictionQueryResponseIncludedItem: + description: An object related to a restriction query. + oneOf: + - $ref: "#/components/schemas/RestrictionQueryRole" + RestrictionQueryRole: + description: Partial role object. + properties: + attributes: + $ref: "#/components/schemas/RestrictionQueryRoleAttribute" id: - description: The unique identifier of the ruleset resource. - example: python-best-practices + description: ID of the role. + example: "" type: string type: - $ref: "#/components/schemas/GetMultipleRulesetsResponseDataAttributesRulesetsItemsDataType" + $ref: "#/components/schemas/RolesType" required: - - id - type + - id - attributes type: object - SastRulesetDataAttributes: - description: The attributes of a SAST ruleset, including its name, description, and rules. + RestrictionQueryRoleAttribute: + description: Attributes of the role for a restriction query. properties: - description: - description: A detailed description of the ruleset's purpose and the types of issues it targets. - example: A collection of Python best practice rules. - type: string name: - description: The unique name of the ruleset. - example: python-best-practices + description: The role name. + example: "Datadog Admin Role" type: string - rules: - description: The list of static analysis rules included in this ruleset. + type: object + RestrictionQueryRolesResponse: + description: Response containing information about roles attached to a restriction query. + properties: + data: + description: Array of roles. items: - $ref: "#/components/schemas/GetMultipleRulesetsResponseDataAttributesRulesetsItemsRulesItems" + $ref: "#/components/schemas/RestrictionQueryRole" type: array - short_description: - description: A brief summary of the ruleset, suitable for display in listings. - example: Python best practices ruleset. + type: object + RestrictionQueryUpdateAttributes: + description: Attributes of the edited restriction query. + properties: + restriction_query: + description: The restriction query. + example: "env:sandbox" type: string required: - - name - - short_description - - description - - rules + - restriction_query type: object - SastRulesetResponse: - description: The response payload containing a single SAST ruleset and its rules. + RestrictionQueryUpdateData: + description: Data related to the update of a restriction query. + properties: + attributes: + $ref: "#/components/schemas/RestrictionQueryUpdateAttributes" + type: + $ref: "#/components/schemas/LogsRestrictionQueriesType" + type: object + RestrictionQueryUpdatePayload: + description: Update a restriction query. properties: data: - $ref: "#/components/schemas/SastRulesetData" - required: - - data + $ref: "#/components/schemas/RestrictionQueryUpdateData" type: object - SastRulesetsResponse: - description: The response payload containing a list of SAST rulesets and their rules. + RestrictionQueryWithRelationships: + description: Restriction query object returned by the API. + properties: + attributes: + $ref: "#/components/schemas/RestrictionQueryAttributes" + id: + description: ID of the restriction query. + example: "79a0e60a-644a-11ea-ad29-43329f7f58b5" + type: string + relationships: + $ref: "#/components/schemas/UserRelationships" + type: + $ref: "#/components/schemas/LogsRestrictionQueriesType" + type: object + RestrictionQueryWithRelationshipsResponse: + description: Response containing information about a single restriction query. properties: data: - description: The list of SAST rulesets returned in the response. + $ref: "#/components/schemas/RestrictionQueryWithRelationships" + included: + description: Array of objects related to the restriction query. items: - $ref: "#/components/schemas/SastRulesetData" + $ref: "#/components/schemas/RestrictionQueryResponseIncludedItem" type: array - required: - - data type: object - ScaRequest: - description: The top-level request object for submitting a Software Composition Analysis (SCA) scan result. + RestrictionQueryWithoutRelationships: + description: Restriction query object returned by the API. + properties: + attributes: + $ref: "#/components/schemas/RestrictionQueryAttributes" + id: + description: ID of the restriction query. + example: "79a0e60a-644a-11ea-ad29-43329f7f58b5" + type: string + type: + default: logs_restriction_queries + description: Restriction queries type. + example: "logs_restriction_queries" + readOnly: true + type: string + type: object + RestrictionQueryWithoutRelationshipsResponse: + description: Response containing information about a single restriction query. properties: data: - $ref: "#/components/schemas/ScaRequestData" + $ref: "#/components/schemas/RestrictionQueryWithoutRelationships" type: object - ScaRequestData: - description: The data object in an SCA request, containing the dependency graph attributes and request type. + RetentionFilter: + description: The definition of the retention filter. properties: attributes: - $ref: "#/components/schemas/ScaRequestDataAttributes" + $ref: "#/components/schemas/RetentionFilterAttributes" id: - description: An optional identifier for this SCA request data object. + description: The ID of the retention filter. + example: "7RBOb7dLSYWI01yc3pIH8w" type: string type: - $ref: "#/components/schemas/ScaRequestDataType" + $ref: "#/components/schemas/ApmRetentionFilterType" required: + - id - type + - attributes type: object - ScaRequestDataAttributes: - description: >- - The attributes of an SCA request, containing dependency graph data, vulnerability information, and repository context. + RetentionFilterAll: + description: The definition of the retention filter. properties: - commit: - $ref: "#/components/schemas/ScaRequestDataAttributesCommit" - dependencies: - description: The list of dependencies discovered in the repository. - items: - $ref: "#/components/schemas/ScaRequestDataAttributesDependenciesItems" - type: array - env: - description: The environment context in which the SCA scan was performed (e.g., production, staging). - type: string - files: - description: The list of dependency manifest files found in the repository. - items: - $ref: "#/components/schemas/ScaRequestDataAttributesFilesItems" - type: array - relations: - description: The dependency relations describing the inter-component dependency graph. - items: - $ref: "#/components/schemas/ScaRequestDataAttributesRelationsItems" - type: array - repository: - $ref: "#/components/schemas/ScaRequestDataAttributesRepository" - scan_start_timestamp: - $ref: "#/components/schemas/ScaRequestDataAttributesScanStartTimestamp" - service: - description: The name of the service or application being analyzed. + attributes: + $ref: "#/components/schemas/RetentionFilterAllAttributes" + id: + description: The ID of the retention filter. + example: "7RBOb7dLSYWI01yc3pIH8w" type: string - tags: - $ref: "#/components/schemas/ScaRequestDataAttributesTags" - vulnerabilities: - description: The list of vulnerabilities identified in the dependency graph. - items: - $ref: "#/components/schemas/ScaRequestDataAttributesVulnerabilitiesItems" - type: array + type: + $ref: "#/components/schemas/ApmRetentionFilterType" + required: + - id + - type + - attributes type: object - ScaRequestDataAttributesCommit: - description: >- - Metadata about the commit associated with the SCA scan, including author, committer, and branch information. + RetentionFilterAllAttributes: + description: The attributes of the retention filter. properties: - author_date: - description: The date when the commit was authored. - type: string - author_email: - description: The email address of the commit author. - type: string - author_name: - description: The full name of the commit author. - type: string - branch: - description: The branch name on which the commit was made. - type: string - committer_email: - description: The email address of the person who committed the change. + created_at: + description: The creation timestamp of the retention filter. + format: int64 + type: integer + created_by: + description: The creator of the retention filter. type: string - committer_name: - description: The full name of the person who committed the change. + editable: + description: Shows whether the filter can be edited. + example: true + type: boolean + enabled: + description: The status of the retention filter (Enabled/Disabled). + example: true + type: boolean + execution_order: + description: The execution order of the retention filter. + format: int64 + type: integer + filter: + $ref: "#/components/schemas/SpansFilter" + filter_type: + $ref: "#/components/schemas/RetentionFilterAllType" + modified_at: + description: The modification timestamp of the retention filter. + format: int64 + type: integer + modified_by: + description: The modifier of the retention filter. type: string - sha: - description: The SHA hash uniquely identifying the commit. + name: + description: The name of the retention filter. + example: my retention filter type: string + rate: + description: |- + Sample rate to apply to spans going through this retention filter. + A value of 1.0 keeps all spans matching the query. + example: 1.0 + format: double + type: number + trace_rate: + description: |- + Sample rate to apply to traces containing spans going through this retention filter. + A value of 1.0 keeps all traces with spans matching the query. + example: 1.0 + format: double + type: number type: object - ScaRequestDataAttributesDependenciesItems: - description: A dependency found in the repository, including its identity, location, and `reachability metadata`. + RetentionFilterAllType: + default: spans-sampling-processor + description: The type of retention filter. + enum: + - spans-sampling-processor + - spans-errors-sampling-processor + - spans-appsec-sampling-processor + example: spans-sampling-processor + type: string + x-enum-varnames: + - SPANS_SAMPLING_PROCESSOR + - SPANS_ERRORS_SAMPLING_PROCESSOR + - SPANS_APPSEC_SAMPLING_PROCESSOR + RetentionFilterAttributes: + description: The attributes of the retention filter. properties: - exclusions: - description: A list of patterns or identifiers that should be excluded from analysis for this dependency. - items: - description: An exclusion pattern or identifier. - type: string - type: array - group: - description: The group or organization namespace of the dependency (e.g., Maven group ID). - nullable: true + created_at: + description: The creation timestamp of the retention filter. + format: int64 + type: integer + created_by: + description: The creator of the retention filter. type: string - is_dev: - description: Indicates whether this is a development-only dependency not used in production. + editable: + description: Shows whether the filter can be edited. + example: true type: boolean - is_direct: - description: Indicates whether this is a direct dependency (as opposed to a transitive one). - nullable: true + enabled: + description: The status of the retention filter (Enabled/Disabled). + example: true type: boolean - language: - description: The programming language ecosystem of this dependency (e.g., java, python, javascript). + execution_order: + description: The execution order of the retention filter. + format: int64 + type: integer + filter: + $ref: "#/components/schemas/SpansFilter" + filter_type: + $ref: "#/components/schemas/RetentionFilterType" + modified_at: + description: The modification timestamp of the retention filter. + format: int64 + type: integer + modified_by: + description: The modifier of the retention filter. type: string - locations: - $ref: "#/components/schemas/ScaRequestDataAttributesDependenciesItemsLocations" name: - description: The name of the dependency package. - type: string - opaque: - description: Indicates whether dependency details are intentionally opaque. - type: boolean - package_manager: - description: The package manager responsible for this dependency (e.g., maven, pip, npm). - type: string - purl: - description: The Package URL (PURL) uniquely identifying this dependency. - type: string - reachable_symbol_properties: - description: Properties describing symbols from this dependency that are reachable in the application code. - items: - $ref: "#/components/schemas/ScaRequestDataAttributesDependenciesItemsReachableSymbolPropertiesItems" - type: array - requires_transitive_enrichment: - description: Indicates whether this dependency requires transitive dependency enrichment. - type: boolean - target_frameworks: - description: The target framework identifiers associated with this dependency. - items: - description: A target framework identifier. - type: string - type: array - version: - description: The version of the dependency. - nullable: true + description: The name of the retention filter. + example: my retention filter type: string - version_constraint: - description: Indicates whether the version value represents a version constraint. + rate: + description: |- + Sample rate to apply to spans going through this retention filter. + A value of 1.0 keeps all spans matching the query. + example: 1.0 + format: double + type: number + trace_rate: + description: |- + Sample rate to apply to traces containing spans going through this retention filter. + A value of 1.0 keeps all traces with spans matching the query. + example: 1.0 + format: double + type: number + type: object + RetentionFilterCreateAttributes: + description: The object describing the configuration of the retention filter to create/update. + properties: + enabled: + description: Enable/Disable the retention filter. + example: true type: boolean - version_range: - description: The version range associated with this dependency when a manifest declares a range. + filter: + $ref: "#/components/schemas/SpansFilterCreate" + filter_type: + $ref: "#/components/schemas/RetentionFilterType" + name: + description: The name of the retention filter. + example: my retention filter type: string + rate: + description: |- + Sample rate to apply to spans going through this retention filter. + A value of 1.0 keeps all spans matching the query. + example: 1.0 + format: double + type: number + trace_rate: + description: |- + Sample rate to apply to traces containing spans going through this retention filter. + A value of 1.0 keeps all traces with spans matching the query. + example: 1.0 + format: double + type: number + required: + - name + - filter + - enabled + - filter_type + - rate type: object - ScaRequestDataAttributesDependenciesItemsLocations: - description: The list of source file locations where this dependency is declared. - items: - $ref: "#/components/schemas/ScaRequestDataAttributesDependenciesItemsLocationsItems" - nullable: true - type: array - ScaRequestDataAttributesDependenciesItemsLocationsItems: - description: >- - The source code location where a dependency is declared, including block, name, namespace, and version positions within the file. + RetentionFilterCreateData: + description: The body of the retention filter to be created. properties: - block: - $ref: "#/components/schemas/ScaRequestDataAttributesDependenciesItemsLocationsItemsFilePosition" - name: - $ref: "#/components/schemas/ScaRequestDataAttributesDependenciesItemsLocationsItemsNullableFilePosition" - namespace: - $ref: "#/components/schemas/ScaRequestDataAttributesDependenciesItemsLocationsItemsNullableFilePosition" - version: - $ref: "#/components/schemas/ScaRequestDataAttributesDependenciesItemsLocationsItemsNullableFilePosition" + attributes: + $ref: "#/components/schemas/RetentionFilterCreateAttributes" + type: + $ref: "#/components/schemas/ApmRetentionFilterType" + required: + - attributes + - type type: object - ScaRequestDataAttributesDependenciesItemsLocationsItemsFilePosition: - description: A range within a file defined by a start and end position, along with the file name. + RetentionFilterCreateRequest: + description: The body of the retention filter to be created. properties: - end: - $ref: "#/components/schemas/ScaRequestDataAttributesDependenciesItemsLocationsItemsPosition" - file_name: - description: The name or path of the file containing this location. - type: string - role: - description: The semantic role associated with this file location. - type: string - start: - $ref: "#/components/schemas/ScaRequestDataAttributesDependenciesItemsLocationsItemsPosition" + data: + $ref: "#/components/schemas/RetentionFilterCreateData" + required: + - data type: object - ScaRequestDataAttributesDependenciesItemsLocationsItemsNullableFilePosition: - description: A nullable range within a file defined by a start and end position, along with the file name. - nullable: true + RetentionFilterCreateResponse: + description: The retention filters definition. properties: - end: - $ref: "#/components/schemas/ScaRequestDataAttributesDependenciesItemsLocationsItemsPosition" - file_name: - description: The name or path of the file containing this location. - type: string - role: - description: The semantic role associated with this file location. - type: string - start: - $ref: "#/components/schemas/ScaRequestDataAttributesDependenciesItemsLocationsItemsPosition" + data: + $ref: "#/components/schemas/RetentionFilter" type: object - ScaRequestDataAttributesDependenciesItemsLocationsItemsPosition: - description: A specific position (line and column) within a source file. + RetentionFilterResponse: + description: The retention filters definition. properties: - col: - description: The column number of the position within the line. - format: int32 - maximum: 2147483647 - type: integer - line: - description: The line number of the position within the file. - format: int32 - maximum: 2147483647 - type: integer + data: + $ref: "#/components/schemas/RetentionFilterAll" type: object - ScaRequestDataAttributesDependenciesItemsReachableSymbolPropertiesItems: - description: A key-value property describing a reachable symbol within a dependency. + RetentionFilterType: + default: spans-sampling-processor + description: The type of retention filter. The value should always be spans-sampling-processor. + enum: + - spans-sampling-processor + example: spans-sampling-processor + type: string + x-enum-varnames: + - SPANS_SAMPLING_PROCESSOR + RetentionFilterUpdateAttributes: + description: The object describing the configuration of the retention filter to create/update. properties: + enabled: + description: Enable/Disable the retention filter. + example: true + type: boolean + filter: + $ref: "#/components/schemas/SpansFilterCreate" + filter_type: + $ref: "#/components/schemas/RetentionFilterAllType" name: - description: The name of the reachable symbol property. - type: string - value: - description: The value of the reachable symbol property. + description: The name of the retention filter. + example: my retention filter type: string + rate: + description: |- + Sample rate to apply to spans going through this retention filter. + A value of 1.0 keeps all spans matching the query. + example: 1.0 + format: double + type: number + trace_rate: + description: |- + Sample rate to apply to traces containing spans going through this retention filter. + A value of 1.0 keeps all traces with spans matching the query. + example: 1.0 + format: double + type: number + required: + - name + - filter + - enabled + - filter_type + - rate type: object - ScaRequestDataAttributesFilesItems: - description: A file entry in the repository associated with a dependency manifest. + RetentionFilterUpdateData: + description: The body of the retention filter to be updated. properties: - name: - description: The name or path of the file within the repository. + attributes: + $ref: "#/components/schemas/RetentionFilterUpdateAttributes" + id: + description: The ID of the retention filter. + example: "retention-filter-id" type: string - purl: - description: The Package URL (PURL) associated with the dependency declared in this file. + type: + $ref: "#/components/schemas/ApmRetentionFilterType" + required: + - id + - attributes + - type + type: object + RetentionFilterUpdateRequest: + description: The body of the retention filter to be updated. + properties: + data: + $ref: "#/components/schemas/RetentionFilterUpdateData" + required: + - data + type: object + RetentionFilterWithoutAttributes: + description: The retention filter object . + properties: + id: + description: The ID of the retention filter. + example: "7RBOb7dLSYWI01yc3pIH8w" type: string + type: + $ref: "#/components/schemas/ApmRetentionFilterType" + required: + - id + - type type: object - ScaRequestDataAttributesRelationsItems: - description: A dependency relation describing which other components a given component depends on. + RetentionFiltersResponse: + description: An ordered list of retention filters. properties: - depends_on: - description: The list of BOM references that this component directly depends on. + data: + description: A list of retention filters objects. items: - description: A BOM reference of a dependency. - type: string + $ref: "#/components/schemas/RetentionFilterAll" type: array - ref: - description: The BOM reference of the component that has dependencies. - type: string + required: + - data type: object - ScaRequestDataAttributesRepository: - description: Information about the source code repository being analyzed. + RetryStrategy: + additionalProperties: false + description: The definition of `RetryStrategy` object. properties: - url: - description: The URL of the repository. - type: string + kind: + $ref: "#/components/schemas/RetryStrategyKind" + linear: + $ref: "#/components/schemas/RetryStrategyLinear" + required: + - kind + - linear type: object - ScaRequestDataAttributesScanStartTimestamp: + RetryStrategyKind: + description: The definition of `RetryStrategyKind` object. + enum: + - RETRY_STRATEGY_LINEAR + example: RETRY_STRATEGY_LINEAR + type: string + x-enum-varnames: + - RETRY_STRATEGY_LINEAR + RetryStrategyLinear: additionalProperties: false - description: The time when the SCA scan started. - nullable: true + description: The definition of `RetryStrategyLinear` object. properties: - nanos: - description: Non-negative fractions of a second at nanosecond resolution. + interval: + description: The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s + example: "" + pattern: ^[1-9][0-9]*s$ + type: string + maxRetries: + description: The `RetryStrategyLinear` `maxRetries`. + example: 0 format: int32 - maximum: 999999999 + maximum: 2147483647 minimum: 0 type: integer - seconds: - description: Seconds of UTC time since Unix epoch. - format: int64 - type: integer - type: object - ScaRequestDataAttributesTags: - additionalProperties: - type: string - description: A map of tags providing additional metadata for the SCA scan. - properties: - tool: - $ref: "#/components/schemas/ScaRequestDataAttributesTagsTool" + required: + - interval + - maxRetries type: object - ScaRequestDataAttributesTagsTool: - additionalProperties: false - description: Tool metadata included in SCA tags. + RevertCustomRuleRevisionDataType: + description: Request type + enum: [revert_custom_rule_revision_request] + type: string + x-enum-varnames: + - REVERT_CUSTOM_RULE_REVISION_REQUEST + RevertCustomRuleRevisionRequest: + description: Request body for reverting a custom rule to a previous revision. properties: - generator: - $ref: "#/components/schemas/ScaRequestDataAttributesTagsToolGenerator" + data: + $ref: "#/components/schemas/RevertCustomRuleRevisionRequestData" type: object - ScaRequestDataAttributesTagsToolGenerator: - additionalProperties: false - description: Metadata about the tool that generated the SCA tags. + RevertCustomRuleRevisionRequestData: + description: Data object for a request to revert a custom rule to a previous revision. properties: - name: - description: The name of the tag generator. - type: string - version: - description: The version of the tag generator. + attributes: + $ref: "#/components/schemas/RevertCustomRuleRevisionRequestDataAttributes" + id: + description: Request identifier type: string + type: + $ref: "#/components/schemas/RevertCustomRuleRevisionDataType" type: object - ScaRequestDataAttributesVulnerabilitiesItems: - description: >- - A vulnerability entry from the Software Bill of Materials (SBOM), describing a known security issue and the components it affects. + RevertCustomRuleRevisionRequestDataAttributes: + description: Attributes specifying the current and target revision IDs for a revert operation. properties: - affects: - description: The list of components affected by this vulnerability. - items: - $ref: "#/components/schemas/ScaRequestDataAttributesVulnerabilitiesItemsAffectsItems" - type: array - bom_ref: - description: The unique BOM reference identifier for this vulnerability entry. + currentRevision: + description: Current revision ID type: string - id: - description: The vulnerability identifier (e.g., CVE ID or similar). + revertToRevision: + description: Target revision ID to revert to type: string type: object - ScaRequestDataAttributesVulnerabilitiesItemsAffectsItems: - description: A reference to a component affected by a vulnerability. + Role: + description: Role object returned by the API. properties: - ref: - description: The BOM reference identifying the affected component. + attributes: + $ref: "#/components/schemas/RoleAttributes" + id: + description: The unique identifier of the role. type: string - type: object - ScaRequestDataType: - default: scarequests - description: The type identifier for SCA dependency analysis requests. - enum: - - scarequests - example: scarequests - type: string - x-enum-varnames: - - SCAREQUESTS - ScalarColumn: - description: A single column in a scalar query response. - oneOf: - - $ref: "#/components/schemas/GroupScalarColumn" - - $ref: "#/components/schemas/DataScalarColumn" - ScalarColumnTypeGroup: - default: group - description: The type of column present for groups. - enum: - - group - example: group - type: string - x-enum-varnames: - - GROUP - ScalarColumnTypeNumber: - default: number - description: The type of column present for numbers. - enum: - - number - example: number - type: string - x-enum-varnames: - - NUMBER - ScalarFormulaQueryRequest: - description: A wrapper request around one scalar query to be executed. - properties: - data: - $ref: "#/components/schemas/ScalarFormulaRequest" + relationships: + $ref: "#/components/schemas/RoleResponseRelationships" + type: + $ref: "#/components/schemas/RolesType" required: - - data + - type type: object - ScalarFormulaQueryResponse: - description: A message containing one or more responses to scalar queries. + RoleAttributes: + additionalProperties: {} + description: Attributes of the role. properties: - data: - $ref: "#/components/schemas/ScalarResponse" - errors: - description: An error generated when processing a request. + created_at: + description: Creation time of the role. + format: date-time + readOnly: true + type: string + modified_at: + description: Time of last role modification. + format: date-time + readOnly: true + type: string + name: + description: The name of the role. The name is neither unique nor a stable identifier of the role. type: string + receives_permissions_from: + description: |- + The managed role from which this role automatically inherits new permissions. + Specify one of the following: "Datadog Admin Role", "Datadog Standard Role", or "Datadog Read Only Role". + If empty or not specified, the role does not automatically inherit permissions from any managed role. + items: + description: Name of a managed role to inherit permissions from. + type: string + type: array + user_count: + description: Number of users with that role. + format: int64 + readOnly: true + type: integer type: object - ScalarFormulaRequest: - description: A single scalar query to be executed. + RoleClone: + description: Data for the clone role request. properties: attributes: - $ref: "#/components/schemas/ScalarFormulaRequestAttributes" + $ref: "#/components/schemas/RoleCloneAttributes" type: - $ref: "#/components/schemas/ScalarFormulaRequestType" + $ref: "#/components/schemas/RolesType" required: - type - attributes type: object - ScalarFormulaRequestAttributes: - description: The object describing a scalar formula request. + RoleCloneAttributes: + description: Attributes required to create a new role by cloning an existing one. properties: - formulas: - description: List of formulas to be calculated and returned as responses. + name: + description: Name of the new role that is cloned. + example: "cloned-role" + type: string + receives_permissions_from: + description: |- + The managed role from which this role automatically inherits new permissions. + Specify one of the following: "Datadog Admin Role", "Datadog Standard Role", or "Datadog Read Only Role". + If empty or not specified, the role does not automatically inherit permissions from any managed role. items: - $ref: "#/components/schemas/QueryFormula" + description: Name of a managed role to inherit permissions from. + type: string type: array - from: - description: Start date (inclusive) of the query in milliseconds since the Unix epoch. - example: 1568899800000 - format: int64 - type: integer - queries: - $ref: "#/components/schemas/ScalarFormulaRequestQueries" - to: - description: End date (exclusive) of the query in milliseconds since the Unix epoch. - example: 1568923200000 - format: int64 - type: integer required: - - to - - from - - queries + - name type: object - ScalarFormulaRequestQueries: - description: List of queries to be run and used as inputs to the formulas. - example: - - aggregator: avg - data_source: metrics - query: "avg:system.cpu.user{*} by {env}" - items: - $ref: "#/components/schemas/ScalarQuery" - type: array - ScalarFormulaRequestType: - default: "scalar_request" - description: The type of the resource. The value should always be scalar_request. - enum: ["scalar_request"] - example: "scalar_request" - type: string - x-enum-varnames: ["SCALAR_REQUEST"] - ScalarFormulaResponseAtrributes: - description: The object describing a scalar response. + RoleCloneRequest: + description: Request to create a role by cloning an existing role. properties: - columns: - description: List of response columns, each corresponding to an individual formula or query in the request and with values in parallel arrays matching the series list. - items: - $ref: "#/components/schemas/ScalarColumn" - type: array + data: + $ref: "#/components/schemas/RoleClone" + required: + - data type: object - ScalarFormulaResponseType: - default: "scalar_response" - description: The type of the resource. The value should always be scalar_response. - enum: ["scalar_response"] - example: "scalar_response" - type: string - x-enum-varnames: ["SCALAR_RESPONSE"] - ScalarMeta: - description: Metadata for the resulting numerical values. + RoleCreateAttributes: + description: Attributes of the created role. properties: - unit: + created_at: + description: Creation time of the role. + format: date-time + readOnly: true + type: string + default_permissions_opt_out: description: |- - Detailed information about the unit. - First element describes the "primary unit" (for example, `bytes` in `bytes per second`). - The second element describes the "per unit" (for example, `second` in `bytes per second`). - If the second element is not present, the API returns null. + Whether to exclude restricted default permissions from this role. + Restricted default permissions are automatically assigned to every role by default. Set this field to `true` to exclude them. + Some of these permissions can only be excluded after Minimal Access Roles is enabled for the organization. + type: boolean + modified_at: + description: Time of last role modification. + format: date-time + readOnly: true + type: string + name: + description: Name of the role. + example: developers + type: string + receives_permissions_from: + description: |- + The managed role from which this role automatically inherits new permissions. + Specify one of the following: "Datadog Admin Role", "Datadog Standard Role", or "Datadog Read Only Role". + If empty or not specified, the role does not automatically inherit permissions from any managed role. items: - $ref: "#/components/schemas/Unit" - nullable: true + description: Name of a managed role to inherit permissions from. + type: string type: array + required: + - name type: object - ScalarQuery: - description: An individual scalar query to one of the basic Datadog data sources. - example: - aggregator: avg - data_source: metrics - query: "avg:system.cpu.user{*} by {env}" - oneOf: - - $ref: "#/components/schemas/MetricsScalarQuery" - - $ref: "#/components/schemas/EventsScalarQuery" - - $ref: "#/components/schemas/ApmResourceStatsQuery" - - $ref: "#/components/schemas/ApmMetricsQuery" - - $ref: "#/components/schemas/ApmDependencyStatsQuery" - - $ref: "#/components/schemas/SloQuery" - - $ref: "#/components/schemas/ProcessScalarQuery" - - $ref: "#/components/schemas/ContainerScalarQuery" - ScalarResponse: - description: A message containing the response to a scalar query. + RoleCreateData: + description: Data related to the creation of a role. properties: attributes: - $ref: "#/components/schemas/ScalarFormulaResponseAtrributes" + $ref: "#/components/schemas/RoleCreateAttributes" + relationships: + $ref: "#/components/schemas/RoleRelationships" type: - $ref: "#/components/schemas/ScalarFormulaResponseType" + $ref: "#/components/schemas/RolesType" + required: + - attributes type: object - ScanResultResponse: - description: |- - The raw scan result document produced by the SCA processor. - The contents reflect the vulnerabilities and metadata produced for the libraries - submitted in the original scan request. - oneOf: - - $ref: "#/components/schemas/AnyValueObject" - ScannedAssetMetadata: - description: The metadata of a scanned asset. + RoleCreateRequest: + description: Create a role. properties: - attributes: - $ref: "#/components/schemas/ScannedAssetMetadataAttributes" - id: - description: The ID of the scanned asset metadata. - example: "Host|i-0fc7edef1ab26d7ef" - type: string - type: - $ref: "#/components/schemas/ScannedAssetMetadataType" + data: + $ref: "#/components/schemas/RoleCreateData" required: - - id - - type - - attributes + - data type: object - ScannedAssetMetadataAsset: - description: The asset of a scanned asset metadata. + RoleCreateResponse: + description: Response containing information about a created role. properties: - name: - description: The name of the asset. - example: "i-0fc7edef1ab26d7ef" + data: + $ref: "#/components/schemas/RoleCreateResponseData" + type: object + RoleCreateResponseData: + description: Role object returned by the API. + properties: + attributes: + $ref: "#/components/schemas/RoleCreateAttributes" + id: + description: The unique identifier of the role. type: string + relationships: + $ref: "#/components/schemas/RoleResponseRelationships" type: - $ref: "#/components/schemas/CloudAssetType" + $ref: "#/components/schemas/RolesType" required: - type - - name type: object - ScannedAssetMetadataAttributes: - description: The attributes of a scanned asset metadata. + RoleRelationships: + description: Relationships of the role object. properties: - asset: - $ref: "#/components/schemas/ScannedAssetMetadataAsset" - first_success_timestamp: - description: The timestamp when the scan of the asset was performed for the first time. - example: "2025-07-08T07:24:53Z" - type: string - last_success: - $ref: "#/components/schemas/ScannedAssetMetadataLastSuccess" - required: - - asset - - last_success - - first_success_timestamp + permissions: + $ref: "#/components/schemas/RelationshipToPermissions" type: object - ScannedAssetMetadataLastSuccess: - description: Metadata for the last successful scan of an asset. + RoleResponse: + description: Response containing information about a single role. properties: - env: - description: The environment of the last success scan of the asset. - example: "prod" - type: string - origin: - description: The list of origins of the last success scan of the asset. - example: - - production - items: - description: An origin identifier for the last successful scan of the asset. - example: production - type: string - type: array - timestamp: - description: The timestamp of the last success scan of the asset. - example: "2025-07-08T07:24:53Z" - type: string - required: - - timestamp + data: + $ref: "#/components/schemas/Role" type: object - ScannedAssetMetadataType: - description: The JSON:API type. - enum: - - scanned-assets-metadata - example: scanned-assets-metadata - type: string - x-enum-varnames: - - SCANNED_ASSETS_METADATA - ScannedAssetsMetadata: - description: The expected response schema when listing scanned assets metadata. + RoleResponseRelationships: + description: Relationships of the role object returned by the API. properties: - data: - description: List of scanned assets metadata. - items: - $ref: "#/components/schemas/ScannedAssetMetadata" - type: array - links: - $ref: "#/components/schemas/Links" - meta: - $ref: "#/components/schemas/Metadata" - required: - - data + permissions: + $ref: "#/components/schemas/RelationshipToPermissions" type: object - Schedule: - description: Top-level container for a schedule object, including both the `data` payload and any related `included` resources (such as teams, layers, or members). - example: - data: - attributes: - name: On-Call Schedule - time_zone: America/New_York - id: 3653d3c6-0c75-11ea-ad28-fb5701eabc7d - relationships: - layers: - data: - - id: 00000000-0000-0000-0000-000000000001 - type: layers - teams: - data: - - id: 00000000-da3a-0000-0000-000000000000 - type: teams - type: schedules - included: - - attributes: - avatar: "" - description: Team 1 description - handle: team1 - name: Team 1 - id: 00000000-da3a-0000-0000-000000000000 - type: teams - - attributes: - effective_date: "2025-02-03T05:00:00Z" - end_date: "2025-12-31T00:00:00Z" - interval: - days: 1 - name: Layer 1 - restrictions: - - end_day: friday - end_time: "17:00:00" - start_day: monday - start_time: "09:00:00" - rotation_start: "2025-02-01T00:00:00Z" - id: 00000000-0000-0000-0000-000000000001 - relationships: - members: - data: - - id: 00000000-0000-0000-0000-000000000002 - type: members - type: layers - - id: 00000000-0000-0000-0000-000000000002 - relationships: - user: - data: - id: 00000000-aba1-0000-0000-000000000000 - type: users - type: members - - attributes: - email: foo@bar.com - name: User 1 - id: 00000000-aba1-0000-0000-000000000000 - type: users + RoleTemplateArray: + description: The definition of `RoleTemplateArray` object. properties: data: - $ref: "#/components/schemas/ScheduleData" - included: - description: Any additional resources related to this schedule, such as teams and layers. + description: The `RoleTemplateArray` `data`. items: - $ref: "#/components/schemas/ScheduleDataIncludedItem" + $ref: "#/components/schemas/RoleTemplateData" type: array - type: object - ScheduleCreateRequest: - description: The top-level request body for schedule creation, wrapping a `data` object. - example: - data: - attributes: - layers: - - effective_date: "2025-02-03T05:00:00Z" - end_date: "2025-12-31T00:00:00Z" - interval: - days: 1 - members: - - user: - id: 00000000-aba1-0000-0000-000000000000 - name: Layer 1 - restrictions: - - end_day: friday - end_time: "17:00:00" - start_day: monday - start_time: "09:00:00" - rotation_start: "2025-02-01T00:00:00Z" - name: On-Call Schedule - time_zone: America/New_York - relationships: - teams: - data: - - id: 00000000-da3a-0000-0000-000000000000 - type: teams - type: schedules - properties: - data: - $ref: "#/components/schemas/ScheduleCreateRequestData" required: - data type: object - ScheduleCreateRequestData: - description: The core data wrapper for creating a schedule, encompassing attributes, relationships, and the resource type. + RoleTemplateData: + description: The definition of `RoleTemplateData` object. properties: attributes: - $ref: "#/components/schemas/ScheduleCreateRequestDataAttributes" - relationships: - $ref: "#/components/schemas/ScheduleCreateRequestDataRelationships" + $ref: "#/components/schemas/RoleTemplateDataAttributes" + id: + description: The `RoleTemplateData` `id`. + type: string type: - $ref: "#/components/schemas/ScheduleCreateRequestDataType" + $ref: "#/components/schemas/RoleTemplateDataType" required: - type - - attributes type: object - ScheduleCreateRequestDataAttributes: - description: Describes the main attributes for creating a new schedule, including name, layers, and time zone. + RoleTemplateDataAttributes: + description: The definition of `RoleTemplateDataAttributes` object. properties: - layers: - description: The layers of On-Call coverage that define rotation intervals and restrictions. - items: - $ref: "#/components/schemas/ScheduleCreateRequestDataAttributesLayersItems" - type: array - name: - description: A human-readable name for the new schedule. - example: Team A On-Call + description: + description: The `attributes` `description`. type: string - time_zone: - description: The time zone in which the schedule is defined. - example: America/New_York + name: + description: The `attributes` `name`. type: string - required: - - name - - time_zone - - layers type: object - ScheduleCreateRequestDataAttributesLayersItems: - description: |- - Describes a schedule layer, including rotation intervals, members, restrictions, and timeline settings. + RoleTemplateDataType: + default: roles + description: Roles resource type. + enum: + - roles + example: roles + type: string + x-enum-varnames: + - ROLES + RoleUpdateAttributes: + description: Attributes of the role. properties: - effective_date: - description: The date/time when this layer becomes active (in ISO 8601). - example: "2025-01-01T00:00:00Z" + created_at: + description: Creation time of the role. format: date-time + readOnly: true type: string - end_date: - description: The date/time after which this layer no longer applies (in ISO 8601). + default_permissions_opt_out: + description: |- + Whether to exclude restricted default permissions from this role. + Restricted default permissions are automatically assigned to every role by default. Set this field to `true` to exclude them. + Some of these permissions can only be excluded after Minimal Access Roles is enabled for the organization. + type: boolean + modified_at: + description: Time of last role modification. format: date-time + readOnly: true type: string - interval: - $ref: "#/components/schemas/LayerAttributesInterval" - members: - description: A list of members who participate in this layer's rotation. - items: - $ref: "#/components/schemas/ScheduleRequestDataAttributesLayersItemsMembersItems" - type: array name: - description: The name of this layer. - example: Primary On-Call Layer + description: Name of the role. type: string - restrictions: - description: Zero or more time-based restrictions (for example, only weekdays, during business hours). + receives_permissions_from: + description: |- + The managed role from which this role automatically inherits new permissions. + Specify one of the following: "Datadog Admin Role", "Datadog Standard Role", or "Datadog Read Only Role". + If empty or not specified, the role does not automatically inherit permissions from any managed role. items: - $ref: "#/components/schemas/TimeRestriction" + description: Name of a managed role to inherit permissions from. + type: string type: array - rotation_start: - description: The date/time when the rotation for this layer starts (in ISO 8601). - example: "2025-01-01T00:00:00Z" - format: date-time - type: string - time_zone: - description: The time zone for this layer. - example: "America/New_York" - type: string - required: - - name - - interval - - rotation_start - - effective_date - - members - type: object - ScheduleCreateRequestDataRelationships: - description: Gathers relationship objects for the schedule creation request, including the teams to associate. - properties: - teams: - $ref: "#/components/schemas/DataRelationshipsTeams" + user_count: + description: The user count. + format: int32 + maximum: 2147483647 + type: integer type: object - ScheduleCreateRequestDataType: - default: schedules - description: |- - Schedules resource type. - enum: - - schedules - example: schedules - type: string - x-enum-varnames: - - SCHEDULES - ScheduleData: - description: Represents the primary data object for a schedule, linking attributes and relationships. + RoleUpdateData: + description: Data related to the update of a role. properties: attributes: - $ref: "#/components/schemas/ScheduleDataAttributes" + $ref: "#/components/schemas/RoleUpdateAttributes" id: - description: The schedule's unique identifier. - example: "3653d3c6-0c75-11ea-ad28-fb5701eabc7d" + description: The unique identifier of the role. + example: "00000000-0000-1111-0000-000000000000" type: string relationships: - $ref: "#/components/schemas/ScheduleDataRelationships" + $ref: "#/components/schemas/RoleRelationships" type: - $ref: "#/components/schemas/ScheduleDataType" + $ref: "#/components/schemas/RolesType" required: + - attributes - type + - id type: object - ScheduleDataAttributes: - description: Provides core properties of a schedule object such as its name and time zone. - properties: - name: - description: A short name for the schedule. - example: Primary On-Call - type: string - tags: - description: A list of tags associated with the schedule. - items: - type: string - type: array - time_zone: - description: The time zone in which this schedule operates. - example: America/New_York - type: string - type: object - ScheduleDataIncludedItem: - description: Any additional resources related to this schedule, such as teams and layers. - oneOf: - - $ref: "#/components/schemas/TeamReference" - - $ref: "#/components/schemas/Layer" - - $ref: "#/components/schemas/ScheduleMember" - - $ref: "#/components/schemas/ScheduleUser" - ScheduleDataRelationships: - description: Groups the relationships for a schedule object, referencing layers and teams. + RoleUpdateRequest: + description: Update a role. properties: - layers: - $ref: "#/components/schemas/ScheduleDataRelationshipsLayers" - teams: - $ref: "#/components/schemas/DataRelationshipsTeams" + data: + $ref: "#/components/schemas/RoleUpdateData" + required: + - data type: object - ScheduleDataRelationshipsLayers: - description: Associates layers with this schedule in a data structure. + RoleUpdateResponse: + description: Response containing information about an updated role. properties: data: - description: An array of layer references for this schedule. - items: - $ref: "#/components/schemas/ScheduleDataRelationshipsLayersDataItems" - type: array + $ref: "#/components/schemas/RoleUpdateResponseData" type: object - ScheduleDataRelationshipsLayersDataItems: - description: |- - Relates a layer to this schedule, identified by `id` and `type` (must be `layers`). + RoleUpdateResponseData: + description: Role object returned by the API. properties: + attributes: + $ref: "#/components/schemas/RoleUpdateAttributes" id: - description: The unique identifier of the layer in this relationship. - example: "00000000-0000-0000-0000-000000000001" + description: The unique identifier of the role. type: string + relationships: + $ref: "#/components/schemas/RoleResponseRelationships" type: - $ref: "#/components/schemas/ScheduleDataRelationshipsLayersDataItemsType" + $ref: "#/components/schemas/RolesType" required: - type - - id type: object - ScheduleDataRelationshipsLayersDataItemsType: - default: layers - description: |- - Layers resource type. + RolesResponse: + description: Response containing information about multiple roles. + properties: + data: + description: Array of returned roles. + items: + $ref: "#/components/schemas/Role" + type: array + meta: + $ref: "#/components/schemas/ResponseMetaAttributes" + type: object + RolesSort: + default: name + description: Sorting options for roles. enum: - - layers - example: layers + - name + - -name + - modified_at + - -modified_at + - user_count + - -user_count type: string x-enum-varnames: - - LAYERS - ScheduleDataType: - default: schedules - description: |- - Schedules resource type. + - NAME_ASCENDING + - NAME_DESCENDING + - MODIFIED_AT_ASCENDING + - MODIFIED_AT_DESCENDING + - USER_COUNT_ASCENDING + - USER_COUNT_DESCENDING + RolesType: + default: roles + description: Roles type. enum: - - schedules - example: schedules + - roles + example: roles type: string x-enum-varnames: - - SCHEDULES - ScheduleListItem: - description: Represents a summary of a schedule, linking its core attributes and team relationships. + - ROLES + RolloutOptions: + description: Applied progression options for a progressive rollout. properties: - attributes: - $ref: "#/components/schemas/ScheduleDataAttributes" - id: - description: The schedule's unique identifier. - example: "3653d3c6-0c75-11ea-ad28-fb5701eabc7d" - type: string - relationships: - $ref: "#/components/schemas/ScheduleListItemRelationships" - type: - $ref: "#/components/schemas/ScheduleDataType" + autostart: + description: Whether the schedule starts automatically. + example: false + type: boolean + selection_interval_ms: + description: Interval in milliseconds for uniform interval strategies. + example: 3600000 + format: int64 + type: integer + strategy: + $ref: "#/components/schemas/RolloutStrategy" required: - - id - - type + - strategy + - autostart + - selection_interval_ms type: object - ScheduleListItemRelationships: - description: Groups the relationships for a schedule summary, referencing its teams. + RolloutOptionsRequest: + description: Rollout options request payload. properties: - teams: - $ref: "#/components/schemas/DataRelationshipsTeams" + autostart: + description: Whether the schedule should begin automatically. + example: false + nullable: true + type: boolean + selection_interval_ms: + description: Interval in milliseconds for uniform interval strategies. + example: 3600000 + format: int64 + type: integer + strategy: + $ref: "#/components/schemas/RolloutStrategy" + required: + - strategy type: object - ScheduleMember: - description: Represents a single member entry in a schedule, referencing a specific user. + RolloutStrategy: + description: The progression strategy used by a progressive rollout. + enum: + - UNIFORM_INTERVALS + - NO_ROLLOUT + example: "UNIFORM_INTERVALS" + type: string + x-enum-varnames: + - UNIFORM_INTERVALS + - NO_ROLLOUT + RoutingRule: + description: Represents a routing rule, including its attributes, relationships, and unique identifier. properties: + attributes: + $ref: "#/components/schemas/RoutingRuleAttributes" id: - description: The unique identifier for this schedule member. + description: Specifies the unique identifier of this routing rule. type: string relationships: - $ref: "#/components/schemas/ScheduleMemberRelationships" + $ref: "#/components/schemas/RoutingRuleRelationships" type: - $ref: "#/components/schemas/ScheduleMemberType" + $ref: "#/components/schemas/RoutingRuleType" required: - type type: object - ScheduleMemberRelationships: - description: Defines relationships for a schedule member, primarily referencing a single user. - properties: - user: - $ref: "#/components/schemas/ScheduleMemberRelationshipsUser" - type: object - ScheduleMemberRelationshipsUser: - description: Wraps the user data reference for a schedule member. + RoutingRuleAction: + description: "Defines an action that is executed when a routing rule matches certain criteria." + oneOf: + - $ref: "#/components/schemas/SendSlackMessageAction" + - $ref: "#/components/schemas/SendTeamsMessageAction" + - $ref: "#/components/schemas/TriggerWorkflowAutomationAction" + - $ref: "#/components/schemas/RoutingRuleEscalationPolicyAction" + RoutingRuleAttributes: + description: Defines the configurable attributes of a routing rule, such as actions, query, time restriction, and urgency. properties: - data: - $ref: "#/components/schemas/ScheduleMemberRelationshipsUserData" - required: - - data + actions: + description: Specifies the list of actions to perform when the routing rule matches. + items: + $ref: "#/components/schemas/RoutingRuleAction" + type: array + query: + description: Defines the query or condition that triggers this routing rule. + type: string + time_restriction: + $ref: "#/components/schemas/TimeRestrictions" + nullable: true + urgency: + $ref: "#/components/schemas/Urgency" type: object - ScheduleMemberRelationshipsUserData: - description: Points to the user data associated with this schedule member, including an ID and type. + RoutingRuleEscalationPolicyAction: + description: "Triggers an escalation policy." properties: - id: - description: The user's unique identifier. - example: "00000000-aba1-0000-0000-000000000000" + ack_timeout_minutes: + description: "The number of minutes before an acknowledged page is re-triggered." + example: 30 + format: int64 + type: integer + policy_id: + description: "The ID of the escalation policy to route to." + example: "00000000-0000-0000-0000-000000000000" type: string + support_hours: + $ref: "#/components/schemas/RoutingRuleEscalationPolicyActionSupportHours" type: - $ref: "#/components/schemas/ScheduleMemberRelationshipsUserDataType" + $ref: "#/components/schemas/RoutingRuleEscalationPolicyActionType" + urgency: + $ref: "#/components/schemas/Urgency" required: - type - - id + - policy_id type: object - ScheduleMemberRelationshipsUserDataType: - default: users - description: |- - Users resource type. - enum: - - users - example: users - type: string - x-enum-varnames: - - USERS - ScheduleMemberType: - default: members - description: |- - Schedule Members resource type. - enum: - - members - example: members - type: string - x-enum-varnames: - - MEMBERS - ScheduleOnCallResponderData: - description: Represents one position's (previous, current, or next) group of on-call responder shifts. Positions with no matching shift are omitted entirely from the response. + RoutingRuleEscalationPolicyActionSupportHours: + description: "Support hours during which the escalation policy will be executed. Outside of these hours, the escalation policy will be on hold and triggered once the next support hours window starts. This is mutually exclusive with the top-level `time_restriction` field on the routing rule." properties: - attributes: - $ref: "#/components/schemas/ScheduleOnCallResponderDataAttributes" - id: - description: Unique identifier of this responder group. + restrictions: + description: "The list of support hours time windows." + items: + $ref: "#/components/schemas/TimeRestriction" + type: array + time_zone: + description: "The time zone in which the support hours are expressed." + example: "" type: string - relationships: - $ref: "#/components/schemas/ScheduleOnCallResponderDataRelationships" - type: - $ref: "#/components/schemas/ScheduleOnCallResponderDataType" required: - - type - type: object - ScheduleOnCallResponderDataAttributes: - description: Attributes for one position's (previous, current, or next) group of on-call responder shifts. - properties: - position: - $ref: "#/components/schemas/ScheduleTargetPosition" + - time_zone type: object - ScheduleOnCallResponderDataRelationships: - description: Relationships for a single position's (previous, current, or next) responder group. + RoutingRuleEscalationPolicyActionType: + default: escalation_policy + description: "Indicates that the action pages an escalation policy. This action can be set once per routing rule item, and is mutually exclusive with the top-level `policy_id` field on the routing rule." + enum: + - escalation_policy + example: escalation_policy + type: string + x-enum-varnames: + - ESCALATION_POLICY + RoutingRuleRelationships: + description: Specifies relationships for a routing rule, linking to associated policy resources. properties: - shifts: - $ref: "#/components/schemas/ScheduleOnCallResponderDataRelationshipsShifts" + policy: + $ref: "#/components/schemas/RoutingRuleRelationshipsPolicy" type: object - ScheduleOnCallResponderDataRelationshipsShifts: - description: Defines the list of shifts satisfying this responder group's position. Multiple shifts occur when a schedule has multiple concurrent on-call responders at that position. + RoutingRuleRelationshipsPolicy: + description: Defines the relationship that links a routing rule to a policy. properties: data: - description: Array of references to the shifts included in the response. - items: - $ref: "#/components/schemas/ScheduleOnCallResponderDataRelationshipsShiftsDataItems" - type: array + $ref: "#/components/schemas/RoutingRuleRelationshipsPolicyData" + nullable: true type: object - ScheduleOnCallResponderDataRelationshipsShiftsDataItems: - description: Represents a reference to one of the shifts satisfying this responder group's position. + RoutingRuleRelationshipsPolicyData: + description: Represents the policy data reference, containing the policy's ID and resource type. properties: id: - description: Unique identifier of the shift. - example: "00000000-0000-0000-0000-000000000000" + description: Specifies the unique identifier of the policy. + example: "" type: string type: - $ref: "#/components/schemas/ScheduleOnCallResponderDataRelationshipsShiftsDataItemsType" + $ref: "#/components/schemas/RoutingRuleRelationshipsPolicyDataType" required: - type - id type: object - ScheduleOnCallResponderDataRelationshipsShiftsDataItemsType: - default: shifts - description: "Indicates that the related resource is of type `shifts`." + RoutingRuleRelationshipsPolicyDataType: + default: policies + description: "Indicates that the resource is of type 'policies'." enum: - - shifts - example: shifts + - policies + example: policies type: string x-enum-varnames: - - SHIFTS - ScheduleOnCallResponderDataType: - default: schedule_oncall_responder - description: Represents the resource type for a single position's (previous, current, or next) group of on-call responder shifts. + - POLICIES + RoutingRuleType: + default: team_routing_rules + description: Team routing rules resource type. enum: - - schedule_oncall_responder - example: schedule_oncall_responder + - team_routing_rules + example: team_routing_rules type: string x-enum-varnames: - - SCHEDULE_ONCALL_RESPONDER - ScheduleOnCallResponders: - description: Root object representing a schedule's on-call responders, grouped by position (previous, current, next), for a given point in time. - example: - data: - attributes: - scheduled_at: "2024-05-07T02:53:01.000000000Z" - id: "3653d3c6-0c75-11ea-ad28-fb5701eabc7d-1715054400" - relationships: - responders: - data: - - id: "3653d3c6-0c75-11ea-ad28-fb5701eabc7d-1715054400-current" - type: schedule_oncall_responder - schedule: - data: - id: 3653d3c6-0c75-11ea-ad28-fb5701eabc7d - type: schedules - type: schedule_oncall_responders - included: - - attributes: - position: current - id: "3653d3c6-0c75-11ea-ad28-fb5701eabc7d-1715054400-current" - relationships: - shifts: - data: - - id: 00000000-0000-0000-0000-000000000000 - type: shifts - type: schedule_oncall_responder - - attributes: - end: "2024-05-08T02:53:01.000000000Z" - start: "2024-05-07T02:53:01.000000000Z" - id: 00000000-0000-0000-0000-000000000000 - relationships: - user: - data: - id: 00000000-aba1-0000-0000-000000000000 - type: users - type: shifts - - attributes: - email: test@test.com - name: Test User - status: active - id: 00000000-aba1-0000-0000-000000000000 - type: users - properties: - data: - $ref: "#/components/schemas/ScheduleOnCallRespondersData" - included: - description: Related resources referenced in the responder groups' relationships, such as shifts, schedules, and users. - items: - $ref: "#/components/schemas/ScheduleOnCallRespondersIncluded" - type: array - type: object - ScheduleOnCallRespondersData: - description: The main data object representing a schedule's on-call responders lookup, including relationships and metadata. + - TEAM_ROUTING_RULES + RuleAttributes: + description: Details of a rule. properties: - attributes: - $ref: "#/components/schemas/ScheduleOnCallRespondersDataAttributes" - id: - description: Unique identifier of this on-call responders lookup. + category: + deprecated: true + description: The scorecard name to which this rule must belong. + type: string + created_at: + description: Creation time of the rule outcome. + format: date-time + type: string + custom: + description: Defines if the rule is a custom rule. + type: boolean + description: + description: Explanation of the rule. + type: string + enabled: + description: If enabled, the rule is calculated as part of the score. + example: true + type: boolean + level: + $ref: "#/components/schemas/RuleLevel" + modified_at: + description: Time of the last rule outcome modification. + format: date-time + type: string + name: + description: Name of the rule. + example: Team Defined + type: string + owner: + description: Owner of the rule. + type: string + scope_query: + description: A query to filter which entities this rule applies to. + example: "kind:service" + type: string + scorecard_name: + description: The scorecard name to which this rule must belong. + example: Deployments automated via Deployment Trains type: string - relationships: - $ref: "#/components/schemas/ScheduleOnCallRespondersDataRelationships" - type: - $ref: "#/components/schemas/ScheduleOnCallRespondersDataType" - required: - - type type: object - ScheduleOnCallRespondersDataAttributes: - description: Attributes for a schedule's on-call responders lookup. + RuleAttributesRequest: + description: Attributes for creating or updating a rule. Server-managed fields (created_at, modified_at, custom) are excluded. properties: - scheduled_at: - description: The timestamp the responders were resolved at. - format: date-time + description: + description: Explanation of the rule. + type: string + enabled: + description: If enabled, the rule is calculated as part of the score. + example: true + type: boolean + level: + $ref: "#/components/schemas/RuleLevel" + name: + description: Name of the rule. + example: Team Defined + type: string + owner: + description: Owner of the rule. + type: string + scope_query: + description: A query to filter which entities this rule applies to. + example: "kind:service" + type: string + scorecard_name: + description: The scorecard name to which this rule must belong. + example: Deployments automated via Deployment Trains type: string type: object - ScheduleOnCallRespondersDataRelationships: - description: Relationships for a schedule's on-call responders lookup, including the schedule and its responder groups. + RuleBasedViewAttributes: + description: Attributes of the rule-based view. properties: - responders: - $ref: "#/components/schemas/ScheduleOnCallRespondersDataRelationshipsResponders" - schedule: - $ref: "#/components/schemas/ScheduleOnCallRespondersDataRelationshipsSchedule" + count: + description: Total number of rules in the view. + example: 1 + format: int64 + type: integer + rules: + $ref: "#/components/schemas/RuleBasedViewRules" + required: + - count + - rules type: object - ScheduleOnCallRespondersDataRelationshipsResponders: - description: Defines the list of per-position (previous, current, next) responder groups for the schedule. + RuleBasedViewComplianceFramework: + description: Compliance framework mapping for a rule. properties: - data: - description: Array of references to the responder groups included in the response. - items: - $ref: "#/components/schemas/ScheduleOnCallRespondersDataRelationshipsRespondersDataItems" - type: array + control: + description: Identifier of the control inside the requirement. + example: 164.308-a-4-i + type: string + framework: + description: Handle of the compliance framework. + example: hipaa + type: string + is_default: + description: Whether the framework is a Datadog default framework. `true` indicates a Datadog framework and `false` indicates a custom framework. + example: true + type: boolean + message: + description: Optional message describing the framework mapping for the rule. + example: "" + type: string + requirement: + description: Name of the requirement that contains the control. + example: Information-Access-Management + type: string + version: + description: Version of the compliance framework. + example: "1" + type: string type: object - ScheduleOnCallRespondersDataRelationshipsRespondersDataItems: - description: Represents a reference to one position's (previous, current, or next) responder group. + RuleBasedViewComplianceFrameworks: + description: List of compliance framework mappings associated with the rule. + items: + $ref: "#/components/schemas/RuleBasedViewComplianceFramework" + type: array + RuleBasedViewData: + description: Data envelope for the rule-based view response. properties: + attributes: + $ref: "#/components/schemas/RuleBasedViewAttributes" id: - description: Unique identifier of the responder group. - example: "" + description: Unique identifier of the rule-based view document. + example: JSONAPI_USELESS_ID type: string type: - $ref: "#/components/schemas/ScheduleOnCallRespondersDataRelationshipsRespondersDataItemsType" + $ref: "#/components/schemas/RuleBasedViewType" required: - - type + - attributes - id + - type type: object - ScheduleOnCallRespondersDataRelationshipsRespondersDataItemsType: - default: schedule_oncall_responder - description: Identifies the resource type for a responder group linked to a schedule's on-call responders lookup. - enum: - - schedule_oncall_responder - example: schedule_oncall_responder - type: string - x-enum-varnames: - - SCHEDULE_ONCALL_RESPONDER - ScheduleOnCallRespondersDataRelationshipsSchedule: - description: Defines the relationship to the schedule this on-call responders lookup was performed for. + RuleBasedViewResourceAttributes: + description: List of resource attribute names exposed by the rule. + example: + - instance_id + items: + description: Name of a resource attribute exposed by the rule. + example: instance_id + type: string + type: array + RuleBasedViewResponse: + description: Response containing an aggregated view of compliance rules with their finding statistics. properties: data: - $ref: "#/components/schemas/ScheduleOnCallRespondersDataRelationshipsScheduleData" + $ref: "#/components/schemas/RuleBasedViewData" + required: + - data type: object - ScheduleOnCallRespondersDataRelationshipsScheduleData: - description: Represents a reference to the schedule this on-call responders lookup was performed for. + RuleBasedViewRule: + description: A compliance rule along with its evaluation statistics and framework mappings. properties: + compliance_frameworks: + $ref: "#/components/schemas/RuleBasedViewComplianceFrameworks" + enabled: + description: Whether the rule is enabled. + example: true + type: boolean id: - description: Unique identifier of the schedule. - example: "3653d3c6-0c75-11ea-ad28-fb5701eabc7d" + description: Unique identifier of the rule. + example: qjx-udx-xo8 + type: string + name: + description: Human-readable name of the rule. + example: IAM roles should not allow untrusted GitHub Actions to assume them + type: string + resourceAttributes: + $ref: "#/components/schemas/RuleBasedViewResourceAttributes" + resourceCategory: + description: Resource category targeted by the rule. + example: identity + type: string + resourceType: + description: Resource type targeted by the rule. + example: aws_iam_role + type: string + stats: + $ref: "#/components/schemas/RuleBasedViewRuleStats" + status: + description: Severity associated with the rule (for example, `info`, `low`, `medium`, `high`, or `critical`). + example: critical type: string + tags: + $ref: "#/components/schemas/RuleBasedViewRuleTags" type: - $ref: "#/components/schemas/ScheduleOnCallRespondersDataRelationshipsScheduleDataType" + $ref: "#/components/schemas/RuleBasedViewRuleCategory" required: - - type + - compliance_frameworks + - enabled - id + - name + - resourceAttributes + - resourceCategory + - resourceType + - stats + - status + - tags + - type type: object - ScheduleOnCallRespondersDataRelationshipsScheduleDataType: - default: schedules - description: Identifies the resource type for the schedule associated with this on-call responders lookup. + RuleBasedViewRuleCategory: + description: The category of the security rule. enum: - - schedules - example: schedules + - cloud_configuration + - infrastructure_configuration + - api_security + example: cloud_configuration type: string x-enum-varnames: - - SCHEDULES - ScheduleOnCallRespondersDataType: - default: schedule_oncall_responders - description: Represents the resource type for a schedule's grouped on-call responders across the previous, current, and next positions. + - CLOUD_CONFIGURATION + - INFRASTRUCTURE_CONFIGURATION + - API_SECURITY + RuleBasedViewRuleStats: + description: Counts of findings for the rule, grouped by their evaluation status. + properties: + fail: + description: Number of findings that failed evaluation. + example: 0 + format: int64 + type: integer + muted: + description: Number of findings that have been muted. + example: 0 + format: int64 + type: integer + pass: + description: Number of findings that passed evaluation. + example: 3 + format: int64 + type: integer + required: + - fail + - pass + - muted + type: object + RuleBasedViewRuleTags: + description: List of tags attached to the rule. + example: + - security:compliance + items: + description: A tag attached to the rule. + example: security:compliance + type: string + type: array + RuleBasedViewRules: + description: List of rules in the rule-based view. + items: + $ref: "#/components/schemas/RuleBasedViewRule" + type: array + RuleBasedViewType: + default: rule_based_view + description: The type of the resource. The value should always be `rule_based_view`. enum: - - schedule_oncall_responders - example: schedule_oncall_responders + - rule_based_view + example: rule_based_view type: string x-enum-varnames: - - SCHEDULE_ONCALL_RESPONDERS - ScheduleOnCallRespondersIncluded: - description: Represents a union of related resources included in the response, such as responder groups, shifts, schedules, and users. - oneOf: - - $ref: "#/components/schemas/ScheduleOnCallResponderData" - - $ref: "#/components/schemas/ShiftData" - - $ref: "#/components/schemas/ScheduleData" - - $ref: "#/components/schemas/User" - ScheduleRequestDataAttributesLayersItemsMembersItems: - description: |- - Defines a single member within a schedule layer, including the reference to the underlying user. - properties: - user: - $ref: "#/components/schemas/ScheduleRequestDataAttributesLayersItemsMembersItemsUser" - type: object - ScheduleRequestDataAttributesLayersItemsMembersItemsUser: - description: Identifies the user participating in this layer as a single object with an `id`. - properties: - id: - description: The user's ID. - example: "00000000-aba1-0000-0000-000000000000" - type: string - type: object - ScheduleTarget: - description: "Represents a schedule target for an escalation policy step, including its ID and resource type. This is a shortcut for a configured schedule target with position set to 'current'." + - RULE_BASED_VIEW + RuleId: + description: The unique ID for a scorecard rule. + example: q8MQxk8TCqrHnWkx + type: string + RuleLevel: + description: The maturity level of the rule (1, 2, or 3). + example: 2 + format: int32 + maximum: 3 + minimum: 1 + type: integer + RuleName: + description: Name of the notification rule. + example: Rule 1 + type: string + RuleOutcomeRelationships: + description: The JSON:API relationship to a scorecard rule. properties: - id: - description: "Specifies the unique identifier of the schedule resource." - example: "00000000-aba1-0000-0000-000000000000" - type: string - type: - $ref: "#/components/schemas/ScheduleTargetType" - required: - - type - - id + rule: + $ref: "#/components/schemas/RelationshipToOutcome" type: object - ScheduleTargetPosition: - description: "Specifies the position of a schedule target (example `previous`, `current`, or `next`)." + RuleSeverity: + description: Severity of a security rule. enum: - - previous - - current - - next - example: previous + - critical + - high + - medium + - low + - unknown + - info + example: critical type: string x-enum-varnames: - - PREVIOUS - - CURRENT - - NEXT - ScheduleTargetType: - default: schedules - description: "Indicates that the resource is of type `schedules`." + - CRITICAL + - HIGH + - MEDIUM + - LOW + - UNKNOWN + - INFO + RuleType: + default: rule + description: The JSON:API type for scorecard rules. enum: - - schedules - example: schedules + - rule + example: rule type: string x-enum-varnames: - - SCHEDULES - ScheduleTrigger: - description: "Trigger a workflow from a Schedule. The workflow must be published." - properties: - overlapBehavior: - $ref: "#/components/schemas/ScheduleTriggerOverlapBehavior" - rruleExpression: - description: "Recurrence rule expression for scheduling." - example: "" - type: string - required: - - rruleExpression - type: object - ScheduleTriggerOverlapBehavior: - default: EXCLUSIVE_RUN - description: Controls whether a scheduled workflow run may start while another instance is still running. + - RULE + RuleTypes: + description: Security rule types used as filters in security rules. + example: [misconfiguration, attack_path] + items: + $ref: "#/components/schemas/RuleTypesItems" + type: array + RuleTypesItems: + description: |- + Security rule type which can be used in security rules. + Signal-based notification rules can filter signals based on rule types application_security, log_detection, + workload_security, signal_correlation, cloud_configuration and infrastructure_configuration. + Vulnerability-based notification rules can filter vulnerabilities based on rule types application_code_vulnerability, + application_library_vulnerability, attack_path, container_image_vulnerability, identity_risk, misconfiguration, + api_security, host_vulnerability, iac_misconfiguration, sast_vulnerability, secret_vulnerability, workload_activity, + sensitive_data and serverless_function_code_vulnerability. enum: - - EXCLUSIVE_RUN - - OVERLAP_ALLOWED - example: EXCLUSIVE_RUN + - application_security + - log_detection + - workload_security + - signal_correlation + - cloud_configuration + - infrastructure_configuration + - application_code_vulnerability + - application_library_vulnerability + - attack_path + - container_image_vulnerability + - identity_risk + - misconfiguration + - api_security + - host_vulnerability + - iac_misconfiguration + - sast_vulnerability + - secret_vulnerability + - workload_activity + - sensitive_data + - serverless_function_code_vulnerability + example: log_detection type: string x-enum-varnames: - - EXCLUSIVE_RUN - - OVERLAP_ALLOWED - ScheduleTriggerWrapper: - description: "Schema for a Schedule-based trigger." + - APPLICATION_SECURITY + - LOG_DETECTION + - WORKLOAD_SECURITY + - SIGNAL_CORRELATION + - CLOUD_CONFIGURATION + - INFRASTRUCTURE_CONFIGURATION + - APPLICATION_CODE_VULNERABILITY + - APPLICATION_LIBRARY_VULNERABILITY + - ATTACK_PATH + - CONTAINER_IMAGE_VULNERABILITY + - IDENTITY_RISK + - MISCONFIGURATION + - API_SECURITY + - HOST_VULNERABILITY + - IAC_MISCONFIGURATION + - SAST_VULNERABILITY + - SECRET_VULNERABILITY + - WORKLOAD_ACTIVITY + - SENSITIVE_DATA + - SERVERLESS_FUNCTION_CODE_VULNERABILITY + RuleUser: + description: User creating or modifying a rule. properties: - scheduleTrigger: - $ref: "#/components/schemas/ScheduleTrigger" - startStepNames: - $ref: "#/components/schemas/StartStepNames" - required: - - scheduleTrigger + handle: + description: The user handle. + example: john.doe@domain.com + type: string + name: + description: The user name. + example: John Doe + type: string type: object - ScheduleUpdateRequest: - description: A top-level wrapper for a schedule update request, referring to the `data` object with the new details. + RuleVersionHistory: + description: Response object containing the version history of a rule. + properties: + count: + description: The number of rule versions. + format: int32 + maximum: 2147483647 + type: integer + data: + additionalProperties: + $ref: "#/components/schemas/RuleVersions" + description: A rule version with a list of updates. + description: The `RuleVersionHistory` `data`. + type: object + type: object + RuleVersions: + description: A rule version with a list of updates. + properties: + changes: + description: A list of changes. + items: + $ref: "#/components/schemas/VersionHistoryUpdate" + type: array + rule: + $ref: "#/components/schemas/SecurityMonitoringRuleResponse" + type: object + RulesValidateQueryRequest: + description: The definition of `RulesValidateQueryRequest` object. example: data: attributes: - layers: - - effective_date: "2025-02-03T05:00:00Z" - end_date: "2025-12-31T00:00:00Z" - interval: - seconds: 3600 - members: - - user: - id: 00000000-aba1-0000-0000-000000000000 - name: Layer 1 - restrictions: - - end_day: friday - end_time: "17:00:00" - start_day: monday - start_time: "09:00:00" - rotation_start: "2025-02-01T00:00:00Z" - name: On-Call Schedule Updated - time_zone: America/New_York - id: 3653d3c6-0c75-11ea-ad28-fb5701eabc7d - relationships: - teams: - data: - - id: 00000000-da3a-0000-0000-000000000000 - type: teams - type: schedules + Query: example:query AND test:true + type: validate_query properties: data: - $ref: "#/components/schemas/ScheduleUpdateRequestData" - required: - - data + $ref: "#/components/schemas/RulesValidateQueryRequestData" type: object - ScheduleUpdateRequestData: - description: Contains all data needed to update an existing schedule, including its attributes (such as name and time zone) and any relationships to teams. + RulesValidateQueryRequestData: + description: The definition of `RulesValidateQueryRequestData` object. properties: attributes: - $ref: "#/components/schemas/ScheduleUpdateRequestDataAttributes" + $ref: "#/components/schemas/RulesValidateQueryRequestDataAttributes" id: - description: The ID of the schedule to be updated. - example: "3653d3c6-0c75-11ea-ad28-fb5701eabc7d" + description: The `RulesValidateQueryRequestData` `id`. type: string - relationships: - $ref: "#/components/schemas/ScheduleUpdateRequestDataRelationships" type: - $ref: "#/components/schemas/ScheduleUpdateRequestDataType" + $ref: "#/components/schemas/RulesValidateQueryRequestDataType" required: - type - - id - - attributes - type: object - ScheduleUpdateRequestDataAttributes: - description: |- - Defines the updatable attributes for a schedule, such as name, time zone, and layers. - properties: - layers: - description: The updated list of layers (rotations) for this schedule. - items: - $ref: "#/components/schemas/ScheduleUpdateRequestDataAttributesLayersItems" - type: array - name: - description: A short name for the schedule. - example: Primary On-Call - type: string - time_zone: - description: The time zone used when interpreting rotation times. - example: America/New_York - type: string - required: - - name - - time_zone - - layers type: object - ScheduleUpdateRequestDataAttributesLayersItems: - description: |- - Represents a layer within a schedule update, including rotation details, members, - and optional restrictions. + RulesValidateQueryRequestDataAttributes: + description: The definition of `RulesValidateQueryRequestDataAttributes` object. properties: - effective_date: - description: When this updated layer takes effect (ISO 8601 format). - example: "2025-02-03T05:00:00Z" - format: date-time - type: string - end_date: - description: When this updated layer should stop being active (ISO 8601 format). - example: "2025-12-31T00:00:00Z" - format: date-time - type: string - id: - description: A unique identifier for the layer being updated. - example: "00000000-0000-0000-0000-000000000001" - type: string - interval: - $ref: "#/components/schemas/LayerAttributesInterval" - members: - description: The members assigned to this layer. - items: - $ref: "#/components/schemas/ScheduleRequestDataAttributesLayersItemsMembersItems" - type: array - name: - description: The name for this layer (for example, "Secondary Coverage"). - example: "Primary On-Call Layer" - type: string - restrictions: - description: Any time restrictions that define when this layer is active. - items: - $ref: "#/components/schemas/TimeRestriction" - type: array - rotation_start: - description: The date/time at which the rotation begins (ISO 8601 format). - example: "2025-02-01T00:00:00Z" - format: date-time - type: string - time_zone: - description: The time zone for this layer. - example: "America/New_York" + Query: + description: The `attributes` `Query`. + example: "" type: string required: - - effective_date - - interval - - members - - name - - rotation_start - type: object - ScheduleUpdateRequestDataRelationships: - description: |- - Houses relationships for the schedule update, typically referencing teams. - properties: - teams: - $ref: "#/components/schemas/DataRelationshipsTeams" + - Query type: object - ScheduleUpdateRequestDataType: - default: schedules - description: |- - Schedules resource type. + RulesValidateQueryRequestDataType: + default: validate_query + description: Validate query resource type. enum: - - schedules - example: schedules + - validate_query + example: validate_query type: string x-enum-varnames: - - SCHEDULES - ScheduleUser: - description: Represents a user object in the context of a schedule, including their `id`, type, and basic attributes. + - VALIDATE_QUERY + RulesValidateQueryResponse: + description: The definition of `RulesValidateQueryResponse` object. + example: + data: + attributes: + Canonical: canonical query representation + type: validate_response + properties: + data: + $ref: "#/components/schemas/RulesValidateQueryResponseData" + type: object + RulesValidateQueryResponseData: + description: The definition of `RulesValidateQueryResponseData` object. properties: attributes: - $ref: "#/components/schemas/ScheduleUserAttributes" + $ref: "#/components/schemas/RulesValidateQueryResponseDataAttributes" id: - description: The unique user identifier. + description: The `RulesValidateQueryResponseData` `id`. type: string type: - $ref: "#/components/schemas/ScheduleUserType" + $ref: "#/components/schemas/RulesValidateQueryResponseDataType" required: - type type: object - ScheduleUserAttributes: - description: Provides basic user information for a schedule, including a name and email address. + RulesValidateQueryResponseDataAttributes: + description: The definition of `RulesValidateQueryResponseDataAttributes` object. properties: - email: - description: The user's email address. - example: "jane.doe@example.com" - type: string - name: - description: The user's name. - example: "Jane Doe" + Canonical: + description: The `attributes` `Canonical`. + example: "" type: string - status: - $ref: "#/components/schemas/UserAttributesStatus" + required: + - Canonical type: object - ScheduleUserType: - default: users - description: |- - Users resource type. + RulesValidateQueryResponseDataType: + default: validate_response + description: Validate response resource type. enum: - - users - example: users + - validate_response + example: validate_response type: string x-enum-varnames: - - USERS - Schedules: - description: A list of schedules with pagination metadata and any related included resources (such as teams). + - VALIDATE_RESPONSE + RulesetItemMetadata: + additionalProperties: + type: string + description: The `items` `metadata`. + nullable: true + type: object + RulesetResp: + description: The definition of `RulesetResp` object. + example: + data: + attributes: + created: + enabled: true + last_modified_user_uuid: "" + modified: + name: Example Ruleset + position: 0 + rules: + - enabled: false + mapping: + metadata: + name: RC test rule edited1 + query: + addition: + key: abc + value: ww + case_insensitivity: false + if_tag_exists: do_not_apply + query: billingcurrency:"USD" AND account_name:"SZA96462" AND billingcurrency:"USD" + reference_table: + - enabled: true + mapping: + destination_key: h + if_tag_exists: do_not_apply + source_keys: + - accountname + - accountownerid + metadata: + name: rule with empty source key + query: + reference_table: + - enabled: true + mapping: + metadata: + name: New table rule with new UI + query: + reference_table: + case_insensitivity: true + field_pairs: + - input_column: status_type + output_key: status + - input_column: status_description + output_key: dess + if_tag_exists: append + source_keys: + - http_status + - status_description + table_name: http_status_codes + version: 1 + id: "12345" + type: ruleset + properties: + data: + $ref: "#/components/schemas/RulesetRespData" + type: object + RulesetRespArray: + description: The definition of `RulesetRespArray` object. example: data: - attributes: - name: Primary On-Call - tags: [] - time_zone: America/New_York - id: 3653d3c6-0c75-11ea-ad28-fb5701eabc7d - relationships: - teams: - data: - - id: 00000000-da3a-0000-0000-000000000000 - type: teams - type: schedules - meta: - page: - first_number: 0 - last_number: 0 - next_number: - number: 0 - prev_number: - size: 10 - total: 1 - type: number_size + created: + enabled: true + last_modified_user_uuid: "" + modified: + name: Production Cost Allocation Rules + position: 0 + rules: + - enabled: true + mapping: + metadata: + name: AWS Production Account Tagging + query: + addition: + key: environment + value: production + case_insensitivity: false + if_tag_exists: do_not_apply + query: billingcurrency:"USD" AND account_name:"prod-account" + reference_table: + - enabled: true + mapping: + destination_key: team_owner + if_tag_exists: do_not_apply + source_keys: + - account_name + - service + metadata: + name: Team Mapping Rule + query: + reference_table: + - enabled: true + mapping: + metadata: + name: New table rule with new UI + query: + reference_table: + case_insensitivity: true + field_pairs: + - input_column: status_type + output_key: status + - input_column: status_description + output_key: dess + if_tag_exists: append + source_keys: + - http_status + - status_description + table_name: http_status_codes + version: 2 + id: "55ef2385-9ae1-4410-90c4-5ac1b60fec10" + type: ruleset + - attributes: + created: + enabled: true + last_modified_user_uuid: "" + modified: + name: Development Environment Rules + position: 0 + rules: + - enabled: true + mapping: + metadata: + name: Dev Account Cost Center + query: + addition: + key: cost_center + value: engineering + case_insensitivity: true + if_tag_exists: do_not_apply + query: account_name:"dev-*" + reference_table: + version: 1 + id: "a7b8c9d0-1234-5678-9abc-def012345678" + type: ruleset properties: data: - description: A list of schedules. - items: - $ref: "#/components/schemas/ScheduleListItem" - type: array - included: - description: Any additional resources related to the schedules, such as teams. + description: The `RulesetRespArray` `data`. items: - $ref: "#/components/schemas/TeamReference" + $ref: "#/components/schemas/RulesetRespData" type: array - meta: - $ref: "#/components/schemas/SchedulesResponseMeta" + required: + - data type: object - SchedulesResponseMeta: - description: Metadata that is included in the response when listing schedules. + RulesetRespData: + description: The definition of `RulesetRespData` object. properties: - page: - $ref: "#/components/schemas/SchedulesResponseMetaPage" + attributes: + $ref: "#/components/schemas/RulesetRespDataAttributes" + id: + description: The `RulesetRespData` `id`. + type: string + type: + $ref: "#/components/schemas/RulesetRespDataType" + required: + - type type: object - SchedulesResponseMetaPage: - description: Metadata related to paging information that is included in the response when listing schedules. + RulesetRespDataAttributes: + description: The definition of `RulesetRespDataAttributes` object. properties: - first_number: - description: First page number. - format: int64 - type: integer - last_number: - description: Last page number. - format: int64 + created: + $ref: "#/components/schemas/RulesetRespDataAttributesCreated" + enabled: + description: The `attributes` `enabled`. + example: false + type: boolean + last_modified_user_uuid: + description: The `attributes` `last_modified_user_uuid`. + example: "" + type: string + modified: + $ref: "#/components/schemas/RulesetRespDataAttributesModified" + name: + description: The `attributes` `name`. + example: "" + type: string + position: + description: The `attributes` `position`. + example: 0 + format: int32 + maximum: 2147483647 type: integer - next_number: - description: Next page number. + processing_status: + description: The `attributes` `processing_status`. + example: "" + type: string + rules: + description: The `attributes` `rules`. + items: + $ref: "#/components/schemas/RulesetRespDataAttributesRulesItems" + type: array + version: + description: The `attributes` `version`. + example: 0 format: int64 - nullable: true type: integer - number: - description: Page number. - format: int64 + required: + - created + - enabled + - last_modified_user_uuid + - modified + - name + - position + - rules + - version + type: object + RulesetRespDataAttributesCreated: + description: The definition of `RulesetRespDataAttributesCreated` object. + properties: + nanos: + description: The `created` `nanos`. + format: int32 + maximum: 2147483647 type: integer - prev_number: - description: Previous page number. + seconds: + description: The `created` `seconds`. format: int64 - nullable: true type: integer - size: - description: Page size. - format: int64 + type: object + RulesetRespDataAttributesModified: + description: The definition of `RulesetRespDataAttributesModified` object. + properties: + nanos: + description: The `modified` `nanos`. + format: int32 + maximum: 2147483647 type: integer - total: - description: Total number of results. + seconds: + description: The `modified` `seconds`. format: int64 type: integer - type: - description: Pagination type. - example: "number_size" - type: string type: object - ScorecardListResponseAttributes: - description: Scorecard attributes. + RulesetRespDataAttributesRulesItems: + description: The definition of `RulesetRespDataAttributesRulesItems` object. properties: - created_at: - description: Creation time of the scorecard. - example: "2023-01-15T10:30:00Z" - format: date-time - type: string - description: - description: The description of the scorecard. - example: Best practices for observability. - type: string - modified_at: - description: Time of last scorecard modification. - example: "2024-01-05T14:20:00Z" - format: date-time - type: string + enabled: + description: The `items` `enabled`. + example: false + type: boolean + mapping: + $ref: "#/components/schemas/DataAttributesRulesItemsMapping" + metadata: + $ref: "#/components/schemas/RulesetItemMetadata" name: - description: The name of the scorecard. - example: Observability Best Practices + description: The `items` `name`. + example: "" type: string + query: + $ref: "#/components/schemas/RulesetRespDataAttributesRulesItemsQuery" + reference_table: + $ref: "#/components/schemas/RulesetRespDataAttributesRulesItemsReferenceTable" required: + - enabled - name - - created_at - - modified_at type: object - ScorecardListResponseData: - description: Scorecard data. + RulesetRespDataAttributesRulesItemsQuery: + description: The definition of `RulesetRespDataAttributesRulesItemsQuery` object. + nullable: true properties: - attributes: - $ref: "#/components/schemas/ScorecardListResponseAttributes" - id: - description: The unique ID of the scorecard. - example: q8MQxk8TCqrHnWkx + addition: + $ref: "#/components/schemas/RulesetRespDataAttributesRulesItemsQueryAddition" + case_insensitivity: + description: The `query` `case_insensitivity`. + type: boolean + if_not_exists: + deprecated: true + description: Deprecated. Use `if_tag_exists` instead. The `query` `if_not_exists`. + type: boolean + if_tag_exists: + $ref: "#/components/schemas/DataAttributesRulesItemsIfTagExists" + query: + description: The `query` `query`. + example: "" type: string - type: - $ref: "#/components/schemas/ScorecardListType" required: - - id - - type - - attributes + - addition + - query type: object - ScorecardListType: - description: The JSON:API type for scorecard list. - enum: - - scorecard - example: scorecard - type: string - x-enum-varnames: - - SCORECARD - ScorecardScoreAttributes: - description: Attributes of a scorecard score. + RulesetRespDataAttributesRulesItemsQueryAddition: + description: The definition of `RulesetRespDataAttributesRulesItemsQueryAddition` object. + nullable: true properties: - aggregation: - $ref: "#/components/schemas/ScorecardScoresAggregation" - denominator: - description: The denominator used to compute the score ratio. - format: int64 - type: integer - level: - description: The maturity level of the associated rule. - format: int64 - type: integer - numerator: - description: The numerator used to compute the score ratio. - format: int64 - type: integer - score: - description: The computed score ratio (numerator/denominator), from 0 to 1. - format: double - type: number - total_entities: - description: The total number of entities evaluated. - format: int64 - type: integer - total_fail: - description: The number of rules that failed. - format: int64 - type: integer - total_no_data: - description: The number of rules with no data. - format: int64 - type: integer - total_pass: - description: The number of rules that passed. - format: int64 - type: integer - total_skip: - description: The number of rules that were skipped. - format: int64 - type: integer + key: + description: The `addition` `key`. + example: "" + type: string + value: + description: The `addition` `value`. + example: "" + type: string + required: + - key + - value type: object - ScorecardScoreData: - description: A scorecard score object for a single entity, rule, scorecard, service, or team. + RulesetRespDataAttributesRulesItemsReferenceTable: + description: The definition of `RulesetRespDataAttributesRulesItemsReferenceTable` object. + nullable: true properties: - attributes: - $ref: "#/components/schemas/ScorecardScoreAttributes" - id: - description: The ID of the entity or resource being scored. + case_insensitivity: + description: The `reference_table` `case_insensitivity`. + type: boolean + field_pairs: + description: The `reference_table` `field_pairs`. + items: + $ref: "#/components/schemas/RulesetRespDataAttributesRulesItemsReferenceTableFieldPairsItems" + type: array + if_not_exists: + deprecated: true + description: Deprecated. Use `if_tag_exists` instead. The `reference_table` `if_not_exists`. + type: boolean + if_tag_exists: + $ref: "#/components/schemas/DataAttributesRulesItemsIfTagExists" + source_keys: + description: The `reference_table` `source_keys`. + example: + - "" + items: + description: A source key for the reference table lookup. + type: string + type: array + table_name: + description: The `reference_table` `table_name`. example: "" type: string - relationships: - $ref: "#/components/schemas/ScorecardScoreRelationships" - type: - $ref: "#/components/schemas/ScorecardScoreDataType" required: - - id - - type + - field_pairs + - source_keys + - table_name type: object - ScorecardScoreDataType: - default: score - description: The JSON:API resource type. - enum: [score] - example: score - type: string - x-enum-varnames: - - SCORE - ScorecardScoreRelationshipData: - description: A relationship data object for a score. + RulesetRespDataAttributesRulesItemsReferenceTableFieldPairsItems: + description: The definition of `RulesetRespDataAttributesRulesItemsReferenceTableFieldPairsItems` object. properties: - id: - description: The ID of the related resource. + input_column: + description: The `items` `input_column`. example: "" type: string - type: - description: The type of the related resource. + output_key: + description: The `items` `output_key`. example: "" type: string required: - - id - - type - type: object - ScorecardScoreRelationshipItem: - description: A relationship item for a score. - properties: - data: - $ref: "#/components/schemas/ScorecardScoreRelationshipData" - type: object - ScorecardScoreRelationships: - description: Relationships for a scorecard score, depending on the aggregation type. - properties: - entity: - $ref: "#/components/schemas/ScorecardScoreRelationshipItem" - rule: - $ref: "#/components/schemas/ScorecardScoreRelationshipItem" - scorecard: - $ref: "#/components/schemas/ScorecardScoreRelationshipItem" - service: - $ref: "#/components/schemas/ScorecardScoreRelationshipItem" - team: - $ref: "#/components/schemas/ScorecardScoreRelationshipItem" + - input_column + - output_key type: object - ScorecardScoresAggregation: - description: Dimension to group scores by. - enum: [by-entity, by-rule, by-scorecard, by-team, by-kind] - example: by-entity - type: string - x-enum-varnames: - - BY_ENTITY - - BY_RULE - - BY_SCORECARD - - BY_TEAM - - BY_KIND - ScorecardType: - default: scorecard - description: The JSON:API type for scorecard. - enum: - - scorecard - example: scorecard - type: string - x-enum-varnames: - - SCORECARD - SearchIssuesIncludeQueryParameterItem: - description: Relationship object that should be included in the search response. - enum: - - issue - - issue.assignee - - issue.case - - issue.team_owners - example: "issue.case" - type: string - x-enum-varnames: - - ISSUE - - ISSUE_ASSIGNEE - - ISSUE_CASE - - ISSUE_TEAM_OWNERS - SeatAssignmentsDataType: - default: seat-assignments - description: Seat assignments resource type. + RulesetRespDataType: + default: ruleset + description: Ruleset resource type. enum: - - seat-assignments - example: seat-assignments + - ruleset + example: ruleset type: string x-enum-varnames: - - SEAT_ASSIGNMENTS - SeatUserData: - description: A seat user resource object containing its ID, type, and associated attributes. - properties: - attributes: - $ref: "#/components/schemas/SeatUserDataAttributes" - description: The attributes of the seat user. - id: - description: The ID of the seat user. - example: "00000000-0000-0000-0000-000000000000" - nullable: true - type: string - type: - $ref: "#/components/schemas/SeatUserDataType" - type: object - SeatUserDataArray: - description: A paginated list of seat user resources with associated pagination metadata. + - RULESET + RulesetStatusRespArray: + description: Processing statuses for all tag pipeline rulesets in the specified organization. + example: + data: + - attributes: + processing_status: processing + id: 55ef2385-9ae1-4410-90c4-5ac1b60fec10 + type: ruleset_status + - attributes: + processing_status: done + id: a7b8c9d0-1234-5678-9abc-def012345678 + type: ruleset_status properties: data: - description: The list of seat users. + description: Processing status for a tag pipeline ruleset. items: - $ref: "#/components/schemas/SeatUserData" + $ref: "#/components/schemas/RulesetStatusRespData" type: array - meta: - $ref: "#/components/schemas/SeatUserMeta" - description: The metadata of the seat users. + required: + - data type: object - SeatUserDataAttributes: - description: Attributes of a user assigned to a seat, including their email, name, and assignment timestamp. + RulesetStatusRespData: + description: Processing status for a tag pipeline ruleset. properties: - assigned_at: - description: The date and time the seat was assigned. - example: "2021-01-01T00:00:00Z" - format: date-time - nullable: true - type: string - email: - description: The email of the user. - example: "user@example.com" - nullable: true + attributes: + $ref: "#/components/schemas/RulesetStatusRespDataAttributes" + id: + description: The unique identifier of the ruleset. + example: 55ef2385-9ae1-4410-90c4-5ac1b60fec10 type: string - name: - description: The name of the user. - example: "John Doe" - nullable: true + type: + $ref: "#/components/schemas/RulesetStatusRespDataType" + required: + - id + - type + - attributes + type: object + RulesetStatusRespDataAttributes: + description: Processing status for a tag pipeline ruleset. + properties: + processing_status: + description: The processing status of the ruleset. + example: processing type: string + required: + - processing_status type: object - SeatUserDataType: - default: seat-users - description: Seat users resource type. + RulesetStatusRespDataType: + default: ruleset_status + description: Ruleset status resource type. enum: - - seat-users - example: seat-users + - ruleset_status + example: ruleset_status type: string x-enum-varnames: - - SEAT_USERS - SeatUserMeta: - description: Pagination metadata for the seat users list response. + - RULESET_STATUS + RumConfigAttributes: + description: Attributes of the RUM configuration. properties: - cursor: - description: The cursor for the seat users. + disabled: + description: Whether the RUM configuration is disabled for the organization. + example: false + type: boolean + enforced_application_tags: + description: Whether application tags are enforced for the RUM applications in the organization. + example: true + type: boolean + enforced_application_tags_updated_at: + description: Timestamp of when the enforced application tags setting was last updated. + example: "2024-01-15T09:30:00.000Z" + format: date-time type: string - limit: - description: The limit for the seat users. + enforced_application_tags_updated_by: + description: Handle of the user who last updated the enforced application tags setting. + example: "user@example.com" + type: string + ootb_metrics_version: + description: Version of the out-of-the-box metrics installed for the organization. + example: 5 format: int64 type: integer - next_cursor: - description: The next cursor for the seat users. + ootb_metrics_version_installed_at: + description: Timestamp of when the out-of-the-box metrics version was installed. + example: "2024-01-15T09:30:00.000Z" + format: date-time + type: string + retention_filters_enabled: + description: Whether retention filters are enabled for the organization. + example: true + type: boolean + retention_filters_enabled_updated_at: + description: Timestamp of when the retention filters setting was last updated. + example: "2024-01-15T09:30:00.000Z" + format: date-time + type: string + retention_filters_enabled_updated_by: + description: Handle of the user or job who last updated the retention filters setting. + example: "contract-update-job" type: string + required: + - enforced_application_tags + - retention_filters_enabled type: object - SecretRuleArray: - description: A collection of secret detection rules returned by the list endpoint. + RumConfigCreateAttributes: + description: Attributes of the RUM configuration to create. properties: - data: - description: The list of secret detection rules. - items: - $ref: "#/components/schemas/SecretRuleData" - type: array + enforced_application_tags: + description: Whether application tags are enforced for the RUM applications in the organization. + example: true + type: boolean required: - - data + - enforced_application_tags type: object - SecretRuleData: - description: The data object representing a secret detection rule, including its attributes and resource type. + RumConfigCreateData: + description: Object describing the RUM configuration to create. properties: attributes: - $ref: "#/components/schemas/SecretRuleDataAttributes" - id: - description: The unique identifier of the secret rule resource. - type: string + $ref: "#/components/schemas/RumConfigCreateAttributes" type: - $ref: "#/components/schemas/SecretRuleDataType" + $ref: "#/components/schemas/RumConfigType" required: - type + - attributes type: object - SecretRuleDataAttributes: - description: The attributes of a secret detection rule, including its pattern, priority, and validation configuration. + RumConfigCreateRequest: + description: Request body for creating the RUM configuration. properties: - default_included_keywords: - description: A list of keywords that are included by default when scanning for secrets matching this rule. - items: - description: A keyword used to narrow down secret detection to relevant contexts. - type: string - type: array - description: - description: A detailed explanation of what type of secret this rule detects. - type: string - license: - description: The license under which this secret rule is distributed. - type: string - match_validation: - $ref: "#/components/schemas/SecretRuleDataAttributesMatchValidation" - name: - description: The unique name of the secret detection rule. - type: string - pattern: - description: The regular expression pattern used to identify potential secrets in source code or configuration. - type: string - priority: - description: The priority level of this rule, used to rank findings when multiple rules match. - type: string - sds_id: - description: The identifier of the corresponding Sensitive Data Scanner rule, if one exists. - type: string - validators: - description: A list of validator identifiers used to further confirm a detected secret is genuine. - items: - description: A validator identifier applied to refine secret detection accuracy. - type: string - type: array + data: + $ref: "#/components/schemas/RumConfigCreateData" + required: + - data type: object - SecretRuleDataAttributesMatchValidation: - description: Configuration for validating whether a detected secret is active by making an HTTP request and inspecting the response. + RumConfigData: + description: The RUM configuration data. properties: - endpoint: - description: The URL endpoint to call when validating a detected secret. - type: string - hosts: - description: The list of hostnames to include when performing secret match validation. - items: - description: A hostname used during match validation. - type: string - type: array - http_method: - description: The HTTP method (e.g., GET, POST) to use when making the validation request. + attributes: + $ref: "#/components/schemas/RumConfigAttributes" + id: + description: The organization ID associated with the RUM configuration. + example: "1234" type: string - invalid_http_status_code: - description: The HTTP status code ranges that indicate the detected secret is invalid or inactive. - items: - $ref: "#/components/schemas/SecretRuleDataAttributesMatchValidationInvalidHttpStatusCodeItems" - type: array - request_headers: - additionalProperties: - type: string - description: A map of HTTP header names to values to include in the validation request. - type: object - timeout_seconds: - description: The maximum number of seconds to wait for a response during validation before timing out. - format: int64 - maximum: 1.8446744073709551e+19 - minimum: 0 - type: integer type: - description: The type of match validation to perform (e.g., http). - type: string - valid_http_status_code: - description: The HTTP status code ranges that indicate the detected secret is valid and active. - items: - $ref: "#/components/schemas/SecretRuleDataAttributesMatchValidationValidHttpStatusCodeItems" - type: array - type: object - SecretRuleDataAttributesMatchValidationInvalidHttpStatusCodeItems: - description: An HTTP status code range that indicates an invalid (unsuccessful) secret match during validation. - properties: - end: - description: The inclusive upper bound of the HTTP status code range. - format: int64 - maximum: 1.8446744073709551e+19 - minimum: 0 - type: integer - start: - description: The inclusive lower bound of the HTTP status code range. - format: int64 - maximum: 1.8446744073709551e+19 - minimum: 0 - type: integer - type: object - SecretRuleDataAttributesMatchValidationValidHttpStatusCodeItems: - description: An HTTP status code range that indicates a valid (successful) secret match during validation. - properties: - end: - description: The inclusive upper bound of the HTTP status code range. - format: int64 - maximum: 1.8446744073709551e+19 - minimum: 0 - type: integer - start: - description: The inclusive lower bound of the HTTP status code range. - format: int64 - maximum: 1.8446744073709551e+19 - minimum: 0 - type: integer + $ref: "#/components/schemas/RumConfigType" + required: + - id + - type + - attributes type: object - SecretRuleDataType: - default: secret_rule - description: Secret rule resource type. - enum: - - secret_rule - example: secret_rule - type: string - x-enum-varnames: - - SECRET_RULE - SecureEmbedCreateRequest: - description: Request to create a secure embed shared dashboard. + RumConfigResponse: + description: The RUM configuration object. properties: data: - $ref: "#/components/schemas/SecureEmbedCreateRequestData" + $ref: "#/components/schemas/RumConfigData" required: - data type: object - SecureEmbedCreateRequestAttributes: - description: Attributes for creating a secure embed shared dashboard. + RumConfigType: + default: rum_config + description: The type of the resource. The value should always be `rum_config`. + enum: + - rum_config + example: rum_config + type: string + x-enum-varnames: + - RUM_CONFIG + RumConfigUpdateAttributes: + description: Attributes of the RUM configuration to update. properties: - global_time: - $ref: "#/components/schemas/SecureEmbedGlobalTime" - global_time_selectable: - description: Whether viewers can change the time range. + enforced_application_tags: + description: Whether application tags are enforced for the RUM applications in the organization. example: true type: boolean - selectable_template_vars: - description: Template variables viewers can modify. - items: - $ref: "#/components/schemas/SecureEmbedSelectableTemplateVariable" - type: array - status: - $ref: "#/components/schemas/SecureEmbedStatus" - title: - description: Display title for the shared dashboard. - example: "Q1 Metrics Dashboard" - type: string - viewing_preferences: - $ref: "#/components/schemas/SecureEmbedViewingPreferences" required: - - status - - title - - global_time_selectable - - selectable_template_vars - - viewing_preferences - - global_time + - enforced_application_tags type: object - SecureEmbedCreateRequestData: - description: Data object for creating a secure embed. + RumConfigUpdateData: + description: Object describing the RUM configuration to update. properties: attributes: - $ref: "#/components/schemas/SecureEmbedCreateRequestAttributes" + $ref: "#/components/schemas/RumConfigUpdateAttributes" type: - $ref: "#/components/schemas/SecureEmbedRequestType" + $ref: "#/components/schemas/RumConfigType" required: - type - attributes type: object - SecureEmbedCreateResponse: - description: Response for creating a secure embed shared dashboard. + RumConfigUpdateRequest: + description: Request body for updating the RUM configuration. properties: data: - $ref: "#/components/schemas/SecureEmbedCreateResponseData" + $ref: "#/components/schemas/RumConfigUpdateData" required: - data type: object - SecureEmbedCreateResponseAttributes: - description: Attributes of a newly created secure embed shared dashboard. + RumCrossProductSampling: + description: The configuration for cross-product retention filters. properties: - created_at: - description: Creation timestamp. - example: "2026-03-11T18:30:00.000000" - readOnly: true - type: string - credential: - description: >- - The secret credential used for HMAC signing. Returned only on creation. Store securely — it cannot be retrieved again. - example: "A1b2C3d4E5f6G7h8I9j0K1l2M3n4O5p6Q7r8S9t0U1v2" - readOnly: true - type: string - dashboard_id: - description: The source dashboard ID. - example: "abc-def-ghi" - readOnly: true - type: string - global_time: - $ref: "#/components/schemas/SecureEmbedGlobalTime" - global_time_selectable: - description: Whether time range is viewer-selectable. + trace_enabled: + description: Whether the cross-product retention filter for APM traces is enabled. example: true type: boolean - id: - description: Internal share ID. - example: "12345" - readOnly: true - type: string - selectable_template_vars: - description: Template variables with their configuration. - items: - $ref: "#/components/schemas/SecureEmbedSelectableTemplateVariable" - type: array - share_type: - $ref: "#/components/schemas/SecureEmbedShareType" - status: - $ref: "#/components/schemas/SecureEmbedStatus" - title: - description: Display title. - example: "Q1 Metrics Dashboard" - type: string - token: - description: Public share token. - example: "s3cur3t0k3n-abcdef123456" - readOnly: true - type: string - url: - description: CDN URL for the shared dashboard. - example: "https://p.datadoghq.com/sb/secure-embed/s3cur3t0k3n-abcdef123456" - readOnly: true - type: string - viewing_preferences: - $ref: "#/components/schemas/SecureEmbedViewingPreferences" + trace_sample_rate: + description: The sample rate for the APM cross-product retention filter, between 0 and 100. Values returned by the API are rounded to two decimal places. + example: 25.0 + format: double + maximum: 100 + minimum: 0 + type: number type: object - SecureEmbedCreateResponseData: - description: Data object for a secure embed create response. + RumCrossProductSamplingCreate: + description: The configuration for cross-product retention filters. + properties: + trace_enabled: + description: Whether the cross-product retention filter for APM traces is enabled. + example: true + type: boolean + trace_sample_rate: + description: The sample rate for the APM cross-product retention filter, between 0 and 100. + example: 25.0 + format: double + maximum: 100 + minimum: 0 + type: number + required: + - trace_sample_rate + type: object + RumCrossProductSamplingUpdate: + description: The configuration for cross-product retention filters. All fields are optional for partial updates. + properties: + trace_enabled: + description: Whether the cross-product retention filter for APM traces is enabled. + example: true + type: boolean + trace_sample_rate: + description: The sample rate for the APM cross-product retention filter, between 0 and 100. + example: 25.0 + format: double + maximum: 100 + minimum: 0 + type: number + type: object + RumExclusionFilterAttributes: + description: The attributes of an exclusion filter. + properties: + enabled: + $ref: "#/components/schemas/RumExclusionFilterEnabled" + event_type: + $ref: "#/components/schemas/RumExclusionFilterEventType" + name: + $ref: "#/components/schemas/RumExclusionFilterName" + query: + $ref: "#/components/schemas/RumExclusionFilterQuery" + type: object + RumExclusionFilterCreateAttributes: + description: The attributes of an exclusion filter to create. + properties: + enabled: + description: Whether the exclusion filter is active. Defaults to `true`. + example: true + type: boolean + event_type: + $ref: "#/components/schemas/RumExclusionFilterEventType" + name: + $ref: "#/components/schemas/RumExclusionFilterName" + query: + $ref: "#/components/schemas/RumExclusionFilterQuery" + required: + - name + type: object + RumExclusionFilterCreateData: + description: The new exclusion filter properties to create. properties: attributes: - $ref: "#/components/schemas/SecureEmbedCreateResponseAttributes" - id: - description: Internal share ID. - example: "12345" - type: string + $ref: "#/components/schemas/RumExclusionFilterCreateAttributes" type: - $ref: "#/components/schemas/SecureEmbedCreateResponseType" + $ref: "#/components/schemas/RumExclusionFilterType" required: - type - - id - attributes type: object - SecureEmbedCreateResponseType: - description: Resource type for secure embed create responses. - enum: - - secure_embed_create_response - example: "secure_embed_create_response" - type: string - x-enum-varnames: - - SECURE_EMBED_CREATE_RESPONSE - SecureEmbedGetResponse: - description: Response for getting a secure embed shared dashboard. + RumExclusionFilterCreateRequest: + description: The exclusion filter body to create. properties: data: - $ref: "#/components/schemas/SecureEmbedGetResponseData" + $ref: "#/components/schemas/RumExclusionFilterCreateData" required: - data type: object - SecureEmbedGetResponseAttributes: - description: Attributes of an existing secure embed shared dashboard. - properties: - created_at: - description: Creation timestamp. - example: "2026-03-11T18:30:00.000000" - readOnly: true - type: string - credential_suffix: - description: Last 4 characters of the credential. Defaults to `0000` if unavailable. - example: "ab3f" - readOnly: true - type: string - dashboard_id: - description: The source dashboard ID. - example: "abc-def-ghi" - readOnly: true - type: string - global_time: - $ref: "#/components/schemas/SecureEmbedGlobalTime" - global_time_selectable: - description: Whether time range is viewer-selectable. - example: true - type: boolean - id: - description: Internal share ID. - example: "12345" - readOnly: true - type: string - selectable_template_vars: - description: Template variables with their configuration. - items: - $ref: "#/components/schemas/SecureEmbedSelectableTemplateVariable" - type: array - share_type: - $ref: "#/components/schemas/SecureEmbedShareType" - status: - $ref: "#/components/schemas/SecureEmbedStatus" - title: - description: Display title. - example: "Q1 Metrics Dashboard" - type: string - token: - description: Public share token. - example: "s3cur3t0k3n-abcdef123456" - readOnly: true - type: string - url: - description: CDN URL for the shared dashboard. - example: "https://p.datadoghq.com/sb/secure-embed/s3cur3t0k3n-abcdef123456" - readOnly: true - type: string - viewing_preferences: - $ref: "#/components/schemas/SecureEmbedViewingPreferences" - type: object - SecureEmbedGetResponseData: - description: Data object for a secure embed get response. + RumExclusionFilterData: + description: An exclusion filter. properties: attributes: - $ref: "#/components/schemas/SecureEmbedGetResponseAttributes" + $ref: "#/components/schemas/RumExclusionFilterAttributes" id: - description: Internal share ID. - example: "12345" + description: The ID of the exclusion filter. + example: "051601eb-54a0-abc0-03f9-cc02efa18892" type: string + meta: + $ref: "#/components/schemas/RumExclusionFilterMeta" type: - $ref: "#/components/schemas/SecureEmbedGetResponseType" + $ref: "#/components/schemas/RumExclusionFilterType" required: - - type - id - - attributes + - type type: object - SecureEmbedGetResponseType: - description: Resource type for secure embed get responses. + RumExclusionFilterEnabled: + description: Whether the exclusion filter is active. + example: true + type: boolean + RumExclusionFilterEventType: + description: The type of RUM events to filter on. enum: - - secure_embed_get_response - example: "secure_embed_get_response" + - session + - view + - action + - error + - resource + - long_task + - vital + example: error type: string x-enum-varnames: - - SECURE_EMBED_GET_RESPONSE - SecureEmbedGlobalTime: - description: Default time range configuration for the secure embed. + - SESSION + - VIEW + - ACTION + - ERROR + - RESOURCE + - LONG_TASK + - VITAL + RumExclusionFilterMeta: + description: Metadata about the exclusion filter. properties: - live_span: - $ref: "#/components/schemas/SecureEmbedGlobalTimeLiveSpan" + enabled_at: + description: Unix epoch (in milliseconds) when the exclusion filter was last enabled. + example: 1735689600000 + format: int64 + type: integer + updated_at: + description: Unix epoch (in milliseconds) of the last update. + example: 1735689600000 + format: int64 + type: integer + updated_by_handle: + description: Handle of the user who last updated the exclusion filter. + example: jane.doe@example.com + type: string type: object - SecureEmbedGlobalTimeLiveSpan: - description: Dashboard global time live_span selection. - enum: - - 15m - - 1h - - 4h - - 1d - - 2d - - 1w - - 1mo - - 3mo - example: "1h" + RumExclusionFilterName: + description: The name of the exclusion filter. + example: Exclude noisy browser extension errors type: string - x-enum-varnames: - - PAST_FIFTEEN_MINUTES - - PAST_ONE_HOUR - - PAST_FOUR_HOURS - - PAST_ONE_DAY - - PAST_TWO_DAYS - - PAST_ONE_WEEK - - PAST_ONE_MONTH - - PAST_THREE_MONTHS - SecureEmbedRequestType: - description: Resource type for secure embed create requests. - enum: - - secure_embed_request - example: "secure_embed_request" + RumExclusionFilterQuery: + description: |- + Additional query used to further restrict which RUM events are excluded. + Combined with `event_type` when both are provided. + example: "@error.message:*extension*" type: string - x-enum-varnames: - - SECURE_EMBED_REQUEST - SecureEmbedSelectableTemplateVariable: - description: A template variable that viewers can modify on the secure embed shared dashboard. + RumExclusionFilterResponse: + description: An exclusion filter response body. properties: - default_values: - description: Default selected values for the variable. - example: ["1"] - items: - description: A default value for the template variable. - type: string - type: array - name: - description: Name of the template variable. Usually matches the prefix unless you want a different display name. - example: "org_id" - type: string - prefix: - description: Tag prefix for the variable (e.g., `environment`, `service`). - example: "org_id" - type: string - visible_tags: - description: Restrict which tag values are visible to the viewer. - example: ["1"] - items: - description: A visible tag value for the template variable. - type: string - type: array + data: + $ref: "#/components/schemas/RumExclusionFilterData" type: object - SecureEmbedShareType: - description: The type of share. Always `secure_embed`. - enum: - - secure_embed - example: "secure_embed" - type: string - x-enum-varnames: - - SECURE_EMBED - SecureEmbedStatus: - description: The status of the secure embed share. Active means the shared dashboard is available. Paused means it is not. + RumExclusionFilterType: + default: exclusion_filters + description: The resource type. The value must be `exclusion_filters`. enum: - - active - - paused - example: "active" + - exclusion_filters + example: exclusion_filters type: string x-enum-varnames: - - ACTIVE - - PAUSED - SecureEmbedUpdateRequest: - description: Request to update a secure embed shared dashboard. - properties: - data: - $ref: "#/components/schemas/SecureEmbedUpdateRequestData" - required: - - data - type: object - SecureEmbedUpdateRequestAttributes: - description: Attributes for updating a secure embed shared dashboard. All fields are optional. + - EXCLUSION_FILTERS + RumExclusionFilterUpdateAttributes: + description: |- + The attributes of an exclusion filter that can be updated. + For the built-in Error Tracking exclusion filter, only `enabled` can be set; + `name`, `event_type`, and `query` must be omitted. properties: - global_time: - $ref: "#/components/schemas/SecureEmbedGlobalTime" - global_time_selectable: - description: Updated time selectability. - example: true - type: boolean - selectable_template_vars: - description: Updated template variables. - items: - $ref: "#/components/schemas/SecureEmbedSelectableTemplateVariable" - type: array - status: - $ref: "#/components/schemas/SecureEmbedStatus" - title: - description: Updated title. - example: "Q1 Metrics Dashboard (Updated)" - type: string - viewing_preferences: - $ref: "#/components/schemas/SecureEmbedViewingPreferences" + enabled: + $ref: "#/components/schemas/RumExclusionFilterEnabled" + event_type: + $ref: "#/components/schemas/RumExclusionFilterEventType" + name: + $ref: "#/components/schemas/RumExclusionFilterName" + query: + $ref: "#/components/schemas/RumExclusionFilterQuery" type: object - SecureEmbedUpdateRequestData: - description: Data object for updating a secure embed. + RumExclusionFilterUpdateData: + description: The exclusion filter properties to update. properties: attributes: - $ref: "#/components/schemas/SecureEmbedUpdateRequestAttributes" + $ref: "#/components/schemas/RumExclusionFilterUpdateAttributes" + id: + description: The ID of the exclusion filter. Must match the `ef_id` path parameter. + example: "051601eb-54a0-abc0-03f9-cc02efa18892" + type: string type: - $ref: "#/components/schemas/SecureEmbedUpdateRequestType" + $ref: "#/components/schemas/RumExclusionFilterType" required: + - id - type - attributes type: object - SecureEmbedUpdateRequestType: - description: Resource type for secure embed update requests. - enum: - - secure_embed_update_request - example: "secure_embed_update_request" - type: string - x-enum-varnames: - - SECURE_EMBED_UPDATE_REQUEST - SecureEmbedUpdateResponse: - description: Response for updating a secure embed shared dashboard. + RumExclusionFilterUpdateRequest: + description: The exclusion filter body to update. properties: data: - $ref: "#/components/schemas/SecureEmbedUpdateResponseData" + $ref: "#/components/schemas/RumExclusionFilterUpdateData" required: - data type: object - SecureEmbedUpdateResponseAttributes: - description: Attributes of an updated secure embed shared dashboard. + RumExclusionFiltersResponse: + description: All exclusion filters for a RUM application. properties: - created_at: - description: Creation timestamp. - example: "2026-03-11T18:30:00.000000" - readOnly: true - type: string - credential_suffix: - description: Last 4 characters of the credential. Defaults to `0000` if unavailable. - example: "ab3f" - readOnly: true - type: string - dashboard_id: - description: The source dashboard ID. - example: "abc-def-ghi" - readOnly: true - type: string - global_time: - $ref: "#/components/schemas/SecureEmbedGlobalTime" - global_time_selectable: - description: Whether time range is viewer-selectable. - example: true - type: boolean - id: - description: Internal share ID. - example: "12345" - readOnly: true - type: string - selectable_template_vars: - description: Template variables with their configuration. + data: + description: A list of exclusion filters. items: - $ref: "#/components/schemas/SecureEmbedSelectableTemplateVariable" + $ref: "#/components/schemas/RumExclusionFilterData" type: array - share_type: - $ref: "#/components/schemas/SecureEmbedShareType" - status: - $ref: "#/components/schemas/SecureEmbedStatus" - title: - description: Display title. - example: "Q1 Metrics Dashboard (Updated)" - type: string - token: - description: Public share token. - example: "s3cur3t0k3n-abcdef123456" - readOnly: true - type: string - url: - description: CDN URL for the shared dashboard. - example: "https://p.datadoghq.com/sb/secure-embed/s3cur3t0k3n-abcdef123456" - readOnly: true + type: object + RumMetricCompute: + description: The compute rule to compute the RUM-based metric. + properties: + aggregation_type: + $ref: "#/components/schemas/RumMetricComputeAggregationType" + include_percentiles: + $ref: "#/components/schemas/RumMetricComputeIncludePercentiles" + path: + description: |- + The path to the value the RUM-based metric will aggregate on. + Only present when `aggregation_type` is `distribution`. + example: "@duration" type: string - viewing_preferences: - $ref: "#/components/schemas/SecureEmbedViewingPreferences" + required: + - aggregation_type type: object - SecureEmbedUpdateResponseData: - description: Data object for a secure embed update response. + RumMetricComputeAggregationType: + description: The type of aggregation to use. + enum: ["count", "distribution"] + example: "distribution" + type: string + x-enum-varnames: ["COUNT", "DISTRIBUTION"] + RumMetricComputeIncludePercentiles: + description: |- + Toggle to include or exclude percentile aggregations for distribution metrics. + Only present when `aggregation_type` is `distribution`. + example: true + type: boolean + RumMetricCreateAttributes: + description: The object describing the Datadog RUM-based metric to create. + properties: + compute: + $ref: "#/components/schemas/RumMetricCompute" + event_type: + $ref: "#/components/schemas/RumMetricEventType" + filter: + $ref: "#/components/schemas/RumMetricFilter" + group_by: + description: The rules for the group by. + items: + $ref: "#/components/schemas/RumMetricGroupBy" + type: array + uniqueness: + $ref: "#/components/schemas/RumMetricUniqueness" + required: + - event_type + - compute + type: object + RumMetricCreateData: + description: The new RUM-based metric properties. properties: attributes: - $ref: "#/components/schemas/SecureEmbedUpdateResponseAttributes" + $ref: "#/components/schemas/RumMetricCreateAttributes" id: - description: Internal share ID. - example: "12345" - type: string + $ref: "#/components/schemas/RumMetricID" type: - $ref: "#/components/schemas/SecureEmbedUpdateResponseType" + $ref: "#/components/schemas/RumMetricType" required: - - type - id + - type - attributes type: object - SecureEmbedUpdateResponseType: - description: Resource type for secure embed update responses. - enum: - - secure_embed_update_response - example: "secure_embed_update_response" - type: string - x-enum-varnames: - - SECURE_EMBED_UPDATE_RESPONSE - SecureEmbedViewingPreferences: - description: Display settings for the secure embed shared dashboard. + RumMetricCreateRequest: + description: The new RUM-based metric body. properties: - high_density: - description: Whether widgets are displayed in high density mode. - example: false - type: boolean - theme: - $ref: "#/components/schemas/SecureEmbedViewingPreferencesTheme" + data: + $ref: "#/components/schemas/RumMetricCreateData" + required: + - data type: object - SecureEmbedViewingPreferencesTheme: - description: The theme of the shared dashboard view. `system` follows the viewer's system default. - enum: - - system - - light - - dark - example: "system" + RumMetricEventType: + description: The type of RUM events to filter on. + enum: ["session", "view", "action", "error", "resource", "long_task", "vital"] + example: "session" type: string - x-enum-varnames: - - SYSTEM - - LIGHT - - DARK - SecurityAutomationRulesLinks: - description: Pagination links for the list of automation rules. + x-enum-varnames: ["SESSION", "VIEW", "ACTION", "ERROR", "RESOURCE", "LONG_TASK", "VITAL"] + RumMetricFilter: + description: The RUM-based metric filter. Events matching this filter will be aggregated in this metric. properties: - first: - description: Link to the first page of results. - example: "/api/v2/security/findings/automation/mute_rules?page[size]=10&page[number]=0" - type: string - last: - description: Link to the last page of results. - example: "/api/v2/security/findings/automation/mute_rules?page[size]=10&page[number]=5" + query: + default: "*" + description: The search query - following the RUM search syntax. + example: "@service:web-ui:" type: string - next: - description: Link to the next page of results. - example: "/api/v2/security/findings/automation/mute_rules?page[size]=10&page[number]=2" + required: + - query + type: object + RumMetricGroupBy: + description: A group by rule. + properties: + path: + description: The path to the value the RUM-based metric will be aggregated over. + example: "@browser.name" type: string - prev: - description: Link to the previous page of results. - example: "/api/v2/security/findings/automation/mute_rules?page[size]=10&page[number]=0" + tag_name: + description: Eventual name of the tag that gets created. By default, `path` is used as the tag name. + example: "browser_name" type: string required: - - first - - last + - path type: object - SecurityAutomationRulesMeta: - description: Metadata for the list of automation rules. + RumMetricID: + description: The name of the RUM-based metric. + example: "rum.sessions.webui.count" + type: string + RumMetricResponse: + description: The RUM-based metric object. properties: - page: - $ref: "#/components/schemas/SecurityAutomationRulesPageInfo" - required: - - page + data: + $ref: "#/components/schemas/RumMetricResponseData" type: object - SecurityAutomationRulesPageInfo: - description: Pagination information for the list of automation rules. + RumMetricResponseAttributes: + description: The object describing a Datadog RUM-based metric. properties: - total_filtered_count: - description: The total number of rules matching the current filter. - example: 42 - format: int64 - type: integer - required: - - total_filtered_count + compute: + $ref: "#/components/schemas/RumMetricResponseCompute" + event_type: + $ref: "#/components/schemas/RumMetricEventType" + filter: + $ref: "#/components/schemas/RumMetricResponseFilter" + group_by: + description: The rules for the group by. + items: + $ref: "#/components/schemas/RumMetricResponseGroupBy" + type: array + uniqueness: + $ref: "#/components/schemas/RumMetricResponseUniqueness" type: object - SecurityEntityConfigRisks: - description: Configuration risks associated with the entity + RumMetricResponseCompute: + description: The compute rule to compute the RUM-based metric. properties: - hasIdentityRisk: - description: Whether the entity has identity risks - example: false - type: boolean - hasMisconfiguration: - description: Whether the entity has misconfigurations - example: true - type: boolean - hasPrivilegedRole: - description: Whether the entity has privileged roles - example: true - type: boolean - isPrivileged: - description: Whether the entity has privileged access - example: false - type: boolean - isProduction: - description: Whether the entity is in a production environment - example: true - type: boolean - isPubliclyAccessible: - description: Whether the entity is publicly accessible - example: true - type: boolean - required: - - hasMisconfiguration - - hasIdentityRisk - - isPubliclyAccessible - - isProduction - - hasPrivilegedRole - - isPrivileged + aggregation_type: + $ref: "#/components/schemas/RumMetricComputeAggregationType" + include_percentiles: + $ref: "#/components/schemas/RumMetricComputeIncludePercentiles" + path: + description: |- + The path to the value the RUM-based metric will aggregate on. + Only present when `aggregation_type` is `distribution`. + example: "@duration" + type: string type: object - SecurityEntityMetadata: - description: Metadata about the entity from cloud providers + RumMetricResponseData: + description: The RUM-based metric properties. properties: - accountID: - description: Cloud account ID (AWS) - example: "123456789012" + attributes: + $ref: "#/components/schemas/RumMetricResponseAttributes" + id: + $ref: "#/components/schemas/RumMetricID" + type: + $ref: "#/components/schemas/RumMetricType" + type: object + RumMetricResponseFilter: + description: The RUM-based metric filter. RUM events matching this filter will be aggregated in this metric. + properties: + query: + description: The search query - following the RUM search syntax. + example: "service:web* AND @http.status_code:[200 TO 299]" type: string - environments: - description: Environment tags associated with the entity - example: ["production", "us-east-1"] - items: - description: An environment tag associated with the entity. - type: string - type: array - mitreTactics: - description: MITRE ATT&CK tactics detected - example: ["Credential Access", "Privilege Escalation"] - items: - description: Detected MITRE ATT&CK tactic - type: string - type: array - mitreTechniques: - description: MITRE ATT&CK techniques detected - example: ["T1078", "T1098"] - items: - description: Detected MITRE ATT&CK technique - type: string - type: array - projectID: - description: Cloud project ID (GCP) - example: "my-gcp-project" + type: object + RumMetricResponseGroupBy: + description: A group by rule. + properties: + path: + description: The path to the value the RUM-based metric will be aggregated over. + example: "@http.status_code" type: string - services: - description: Services associated with the entity - example: ["api-gateway", "lambda"] - items: - description: A service name associated with the entity. - type: string - type: array - sources: - description: Data sources that detected this entity - example: ["cloudtrail", "cloud-security-posture-management"] - items: - description: A data source identifier. - type: string - type: array - subscriptionID: - description: Cloud subscription ID (Azure) - example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + tag_name: + description: Eventual name of the tag that gets created. By default, `path` is used as the tag name. + example: "status_code" type: string + type: object + RumMetricResponseUniqueness: + description: The rule to count updatable events. Is only set if `event_type` is `session` or `view`. + properties: + when: + $ref: "#/components/schemas/RumMetricUniquenessWhen" + type: object + RumMetricType: + default: rum_metrics + description: The type of the resource. The value should always be rum_metrics. + enum: + - rum_metrics + example: rum_metrics + type: string + x-enum-varnames: ["RUM_METRICS"] + RumMetricUniqueness: + description: The rule to count updatable events. Is only set if `event_type` is `sessions` or `views`. + properties: + when: + $ref: "#/components/schemas/RumMetricUniquenessWhen" required: - - sources - - environments - - services - - mitreTactics - - mitreTechniques + - when type: object - SecurityEntityRiskScore: - description: An entity risk score containing security risk assessment information + RumMetricUniquenessWhen: + description: When to count updatable events. `match` when the event is first seen, or `end` when the event is complete. + enum: ["match", "end"] + example: "match" + type: string + x-enum-varnames: ["WHEN_MATCH", "WHEN_END"] + RumMetricUpdateAttributes: + description: The RUM-based metric properties that will be updated. + properties: + compute: + $ref: "#/components/schemas/RumMetricUpdateCompute" + filter: + $ref: "#/components/schemas/RumMetricFilter" + group_by: + description: The rules for the group by. + items: + $ref: "#/components/schemas/RumMetricGroupBy" + type: array + type: object + RumMetricUpdateCompute: + description: The compute rule to compute the RUM-based metric. + properties: + include_percentiles: + $ref: "#/components/schemas/RumMetricComputeIncludePercentiles" + type: object + RumMetricUpdateData: + description: The new RUM-based metric properties. properties: attributes: - $ref: "#/components/schemas/SecurityEntityRiskScoreAttributes" + $ref: "#/components/schemas/RumMetricUpdateAttributes" id: - description: Unique identifier for the entity - example: "arn:aws:iam::123456789012:user/john.doe" - type: string + $ref: "#/components/schemas/RumMetricID" type: - $ref: "#/components/schemas/SecurityEntityRiskScoreType" + $ref: "#/components/schemas/RumMetricType" required: - - id - type - attributes type: object - SecurityEntityRiskScoreAttributes: - description: Attributes of an entity risk score. + RumMetricUpdateRequest: + description: The new RUM-based metric body. properties: - accountIds: - description: Cloud account IDs associated with the entity. - example: ["222233334444", "3333333555555"] - items: - description: A cloud account ID. - type: string - type: array - configRisks: - $ref: "#/components/schemas/SecurityEntityConfigRisks" - entityMetadata: - $ref: "#/components/schemas/SecurityEntityMetadata" - entityName: - description: Human-readable name of the entity. - example: "john.doe" - type: string - entityProviders: - description: Cloud providers associated with the entity. - example: ["AWS"] - items: - description: A cloud provider name. - type: string - type: array - entityRoles: - description: Roles associated with the entity. - example: [] - items: - description: A role assigned to the entity. - type: string - type: array - entitySubTypes: - description: Sub-types associated with the entity. - example: ["Root"] + data: + $ref: "#/components/schemas/RumMetricUpdateData" + required: + - data + type: object + RumMetricsResponse: + description: All the available RUM-based metric objects. + properties: + data: + description: A list of RUM-based metric objects. items: - description: An entity sub-type label. - type: string + $ref: "#/components/schemas/RumMetricResponseData" type: array - entityType: - description: Type of the entity (for example, aws_iam_user, aws_ec2_instance). - example: "aws_iam_user" + type: object + RumPermanentRetentionFilterAttributes: + description: The attributes of a permanent RUM retention filter. + properties: + cross_product_sampling: + $ref: "#/components/schemas/RumCrossProductSampling" + description: + description: A description of what the filter retains. + example: "All sessions generated by Synthetics are retained at 100%." type: string - entityTypes: - description: All types associated with the entity. - example: ["Root", "User Name"] - items: - description: An entity type label. - type: string - type: array - firstDetected: - description: Timestamp when the entity was first detected (Unix milliseconds). - example: 1778876604661 - format: int64 - type: integer - lastActivityTitle: - description: Title of the most recent signal detected for this entity. - example: "Suspicious API call detected" + editability: + $ref: "#/components/schemas/RumPermanentRetentionFilterEditability" + name: + description: The display name of the permanent retention filter. + example: "Synthetics Sessions" type: string - lastDetected: - description: Timestamp when the entity was last detected (Unix milliseconds). - example: 1780064607093 - format: int64 - type: integer - riskScore: - description: Current risk score for the entity. - example: 85 - format: int64 - type: integer - riskScoreEvolution: - description: Change in risk score compared to previous period. - example: 12 - format: int64 - type: integer - severity: - $ref: "#/components/schemas/SecurityEntityRiskScoreAttributesSeverity" - signalsDetected: - description: Number of risk-contributing security signals detected for this entity. - example: 15 - format: int64 - type: integer - required: - - entityProviders - - entitySubTypes - - accountIds - - riskScore - - riskScoreEvolution - - severity - - firstDetected - - lastDetected - - lastActivityTitle - - signalsDetected - - configRisks - - entityMetadata type: object - SecurityEntityRiskScoreAttributesSeverity: - description: Severity level based on risk score + RumPermanentRetentionFilterData: + description: A permanent RUM retention filter. + properties: + attributes: + $ref: "#/components/schemas/RumPermanentRetentionFilterAttributes" + id: + $ref: "#/components/schemas/RumPermanentRetentionFilterID" + type: + $ref: "#/components/schemas/RumPermanentRetentionFilterType" + type: object + RumPermanentRetentionFilterEditability: + description: Indicates which cross-product fields of a permanent RUM retention filter can be updated. + properties: + trace_editable: + description: Whether the APM trace cross-product configuration of the filter can be updated. + example: true + type: boolean + type: object + RumPermanentRetentionFilterID: + description: The identifier of a permanent RUM retention filter. enum: - - critical - - high - - medium - - low - - info - example: "critical" + - rum_apm_flat_sampling + - synthetics_sessions + - forced_replay_sessions + example: synthetics_sessions type: string - x-enum-varnames: - - CRITICAL - - HIGH - - MEDIUM - - LOW - - INFO - SecurityEntityRiskScoreResponse: - description: Response containing a single entity risk score + x-enum-varnames: ["RUM_APM_FLAT_SAMPLING", "SYNTHETICS_SESSIONS", "FORCED_REPLAY_SESSIONS"] + RumPermanentRetentionFilterResponse: + description: A permanent RUM retention filter object. properties: data: - $ref: "#/components/schemas/SecurityEntityRiskScore" - required: - - data + $ref: "#/components/schemas/RumPermanentRetentionFilterData" type: object - SecurityEntityRiskScoreType: - description: Resource type. + RumPermanentRetentionFilterType: + default: permanent_retention_filters + description: The type of the resource. The value should always be `permanent_retention_filters`. enum: - - SecurityEntityRiskScore - example: SecurityEntityRiskScore + - permanent_retention_filters + example: permanent_retention_filters type: string - x-enum-varnames: - - SECURITY_ENTITY_RISK_SCORE - SecurityEntityRiskScoresMeta: - description: Metadata for pagination + x-enum-varnames: ["PERMANENT_RETENTION_FILTERS"] + RumPermanentRetentionFilterUpdateAttributes: + description: The configuration to update on a permanent RUM retention filter. properties: - pageNumber: - description: Current page number (1-indexed) - example: 1 - format: int64 - type: integer - pageSize: - description: Number of items per page - example: 10 - format: int64 - type: integer - queryId: - description: Query ID for pagination consistency - example: "abc123def456" - type: string - totalRowCount: - description: Total number of entities matching the query - example: 150 - format: int64 - type: integer + cross_product_sampling: + $ref: "#/components/schemas/RumCrossProductSamplingUpdate" + type: object + RumPermanentRetentionFilterUpdateData: + description: The new permanent RUM retention filter configuration to update. + properties: + attributes: + $ref: "#/components/schemas/RumPermanentRetentionFilterUpdateAttributes" + id: + $ref: "#/components/schemas/RumPermanentRetentionFilterID" + type: + $ref: "#/components/schemas/RumPermanentRetentionFilterType" required: - - queryId - - totalRowCount - - pageSize - - pageNumber + - id + - type + - attributes type: object - SecurityEntityRiskScoresResponse: - description: Response containing a list of entity risk scores + RumPermanentRetentionFilterUpdateRequest: + description: The permanent RUM retention filter body to update. properties: data: - description: Array of entity risk score objects. - items: - $ref: "#/components/schemas/SecurityEntityRiskScore" - type: array - meta: - $ref: "#/components/schemas/SecurityEntityRiskScoresMeta" + $ref: "#/components/schemas/RumPermanentRetentionFilterUpdateData" required: - data - - meta - type: object - SecurityFilter: - description: The security filter's properties. - properties: - attributes: - $ref: "#/components/schemas/SecurityFilterAttributes" - id: - $ref: "#/components/schemas/SecurityFilterID" - type: - $ref: "#/components/schemas/SecurityFilterType" type: object - SecurityFilterAttributes: - description: The object describing a security filter. + RumPermanentRetentionFiltersResponse: + description: All permanent RUM retention filters for a RUM application. properties: - exclusion_filters: - description: The list of exclusion filters applied in this security filter. + data: + description: A list of permanent RUM retention filters. items: - $ref: "#/components/schemas/SecurityFilterExclusionFilterResponse" + $ref: "#/components/schemas/RumPermanentRetentionFilterData" type: array - filtered_data_type: - $ref: "#/components/schemas/SecurityFilterFilteredDataType" - is_builtin: - description: Whether the security filter is the built-in filter. - example: false - type: boolean - is_enabled: - description: Whether the security filter is enabled. - example: false - type: boolean + type: object + RumRetentionFilterAttributes: + description: The object describing attributes of a RUM retention filter. + properties: + cross_product_sampling: + $ref: "#/components/schemas/RumCrossProductSampling" + enabled: + $ref: "#/components/schemas/RumRetentionFilterEnabled" + event_type: + $ref: "#/components/schemas/RumRetentionFilterEventType" name: - description: The security filter name. - example: Custom security filter - type: string + $ref: "#/components/schemas/RunRetentionFilterName" query: - description: The security filter query. Logs accepted by this query will be accepted by this filter. - example: service:api - type: string - version: - description: The version of the security filter. - example: 1 - format: int32 - maximum: 2147483647 - type: integer + $ref: "#/components/schemas/RumRetentionFilterQuery" + sample_rate: + $ref: "#/components/schemas/RumRetentionFilterSampleRate" type: object - SecurityFilterCreateAttributes: - description: Object containing the attributes of the security filter to be created. + RumRetentionFilterCreateAttributes: + description: The object describing attributes of a RUM retention filter to create. properties: - exclusion_filters: - description: Exclusion filters to exclude some logs from the security filter. - example: - - name: Exclude staging - query: source:staging - items: - $ref: "#/components/schemas/SecurityFilterExclusionFilter" - type: array - filtered_data_type: - $ref: "#/components/schemas/SecurityFilterFilteredDataType" - is_enabled: - description: Whether the security filter is enabled. - example: true - type: boolean + cross_product_sampling: + $ref: "#/components/schemas/RumCrossProductSamplingCreate" + enabled: + $ref: "#/components/schemas/RumRetentionFilterEnabled" + event_type: + $ref: "#/components/schemas/RumRetentionFilterEventType" name: - description: The name of the security filter. - example: Custom security filter - type: string + $ref: "#/components/schemas/RunRetentionFilterName" query: - description: The query of the security filter. - example: service:api - type: string + $ref: "#/components/schemas/RumRetentionFilterQuery" + sample_rate: + $ref: "#/components/schemas/RumRetentionFilterSampleRate" required: + - event_type - name - - query - - exclusion_filters - - filtered_data_type - - is_enabled + - sample_rate type: object - SecurityFilterCreateData: - description: Object for a single security filter. + RumRetentionFilterCreateData: + description: The new RUM retention filter properties to create. properties: attributes: - $ref: "#/components/schemas/SecurityFilterCreateAttributes" + $ref: "#/components/schemas/RumRetentionFilterCreateAttributes" type: - $ref: "#/components/schemas/SecurityFilterType" + $ref: "#/components/schemas/RumRetentionFilterType" required: - type - attributes type: object - SecurityFilterCreateRequest: - description: Request object that includes the security filter that you would like to create. + RumRetentionFilterCreateRequest: + description: The RUM retention filter body to create. properties: data: - $ref: "#/components/schemas/SecurityFilterCreateData" + $ref: "#/components/schemas/RumRetentionFilterCreateData" required: - data type: object - SecurityFilterExclusionFilter: - description: Exclusion filter for the security filter. - example: - name: Exclude staging - query: source:staging - properties: - name: - description: Exclusion filter name. - example: Exclude staging - type: string - query: - description: Exclusion filter query. Logs that match this query are excluded from the security filter. - example: source:staging - type: string - required: - - name - - query - type: object - SecurityFilterExclusionFilterResponse: - description: A single exclusion filter. + RumRetentionFilterData: + description: The RUM retention filter. properties: - name: - description: The exclusion filter name. - example: Exclude staging - type: string - query: - description: The exclusion filter query. - example: source:staging - type: string + attributes: + $ref: "#/components/schemas/RumRetentionFilterAttributes" + id: + $ref: "#/components/schemas/RumRetentionFilterID" + type: + $ref: "#/components/schemas/RumRetentionFilterType" type: object - SecurityFilterFilteredDataType: - description: The filtered data type. - enum: - - logs - example: logs + RumRetentionFilterEnabled: + description: Whether the retention filter is enabled. + example: true + type: boolean + RumRetentionFilterEventType: + description: The type of RUM events to filter on. + enum: ["session", "view", "action", "error", "resource", "long_task", "vital"] + example: "session" type: string - x-enum-varnames: - - LOGS - SecurityFilterID: - description: The ID of the security filter. - example: 3dd-0uc-h1s + x-enum-varnames: ["SESSION", "VIEW", "ACTION", "ERROR", "RESOURCE", "LONG_TASK", "VITAL"] + RumRetentionFilterID: + description: ID of retention filter in UUID. + example: "051601eb-54a0-abc0-03f9-cc02efa18892" type: string - SecurityFilterMeta: - description: Optional metadata associated to the response. - properties: - warning: - description: A warning message. - example: All the security filters are disabled. As a result, no logs are being analyzed. - type: string - type: object - SecurityFilterResponse: - description: Response object which includes a single security filter. + RumRetentionFilterQuery: + description: The query string for a RUM retention filter. + example: "@session.has_replay:true" + type: string + RumRetentionFilterResponse: + description: The RUM retention filter object. properties: data: - $ref: "#/components/schemas/SecurityFilter" - meta: - $ref: "#/components/schemas/SecurityFilterMeta" + $ref: "#/components/schemas/RumRetentionFilterData" type: object - SecurityFilterType: - default: security_filters - description: The type of the resource. The value should always be `security_filters`. + RumRetentionFilterSampleRate: + description: The sample rate for a RUM retention filter, between 0.1 and 100. Values are truncated to one decimal place. + example: 50.5 + format: double + maximum: 100 + minimum: 0.1 + type: number + RumRetentionFilterType: + default: retention_filters + description: The type of the resource. The value should always be retention_filters. enum: - - security_filters - example: security_filters + - retention_filters + example: retention_filters type: string - x-enum-varnames: - - SECURITY_FILTERS - SecurityFilterUpdateAttributes: - description: The security filters properties to be updated. + x-enum-varnames: ["RETENTION_FILTERS"] + RumRetentionFilterUpdateAttributes: + description: The object describing attributes of a RUM retention filter to update. properties: - exclusion_filters: - description: Exclusion filters to exclude some logs from the security filter. - example: [] - items: - $ref: "#/components/schemas/SecurityFilterExclusionFilter" - type: array - filtered_data_type: - $ref: "#/components/schemas/SecurityFilterFilteredDataType" - is_enabled: - description: Whether the security filter is enabled. - example: true - type: boolean + cross_product_sampling: + $ref: "#/components/schemas/RumCrossProductSamplingUpdate" + enabled: + $ref: "#/components/schemas/RumRetentionFilterEnabled" + event_type: + $ref: "#/components/schemas/RumRetentionFilterEventType" name: - description: The name of the security filter. - example: Custom security filter - type: string + $ref: "#/components/schemas/RunRetentionFilterName" query: - description: The query of the security filter. - example: service:api - type: string - version: - description: The version of the security filter to update. - example: 1 - format: int32 - maximum: 2147483647 - type: integer + $ref: "#/components/schemas/RumRetentionFilterQuery" + sample_rate: + $ref: "#/components/schemas/RumRetentionFilterSampleRate" type: object - SecurityFilterUpdateData: - description: The new security filter properties. + RumRetentionFilterUpdateData: + description: The new RUM retention filter properties to update. properties: attributes: - $ref: "#/components/schemas/SecurityFilterUpdateAttributes" + $ref: "#/components/schemas/RumRetentionFilterUpdateAttributes" + id: + $ref: "#/components/schemas/RumRetentionFilterID" type: - $ref: "#/components/schemas/SecurityFilterType" + $ref: "#/components/schemas/RumRetentionFilterType" required: + - id - type - attributes type: object - SecurityFilterUpdateRequest: - description: The new security filter body. + RumRetentionFilterUpdateRequest: + description: The RUM retention filter body to update. properties: data: - $ref: "#/components/schemas/SecurityFilterUpdateData" + $ref: "#/components/schemas/RumRetentionFilterUpdateData" required: - data type: object - SecurityFilterVersion: - description: A snapshot of all security filters at a specific configuration version. + RumRetentionFiltersOrderData: + description: The RUM retention filter data for ordering. properties: - attributes: - $ref: "#/components/schemas/SecurityFilterVersionAttributes" id: - description: The identifier of the configuration version. - example: "1" - type: string + $ref: "#/components/schemas/RumRetentionFilterID" type: - $ref: "#/components/schemas/SecurityFilterVersionType" + $ref: "#/components/schemas/RumRetentionFilterType" required: - id - type - - attributes type: object - SecurityFilterVersionAttributes: - description: The attributes describing a single security filter configuration version. + RumRetentionFiltersOrderRequest: + description: |- + The list of RUM retention filter IDs along with their corresponding type to reorder. + All retention filter IDs should be included in the list created for a RUM application. properties: - date: - description: The Unix timestamp in milliseconds at which this configuration version was applied. - example: 1758177253469 - format: int64 - type: integer - filters: - description: The set of security filters at this configuration version. + data: + description: A list of RUM retention filter IDs along with type. items: - $ref: "#/components/schemas/SecurityFilterVersionEntry" + $ref: "#/components/schemas/RumRetentionFiltersOrderData" type: array - version: - description: The configuration version number. - example: 1 - format: int32 - maximum: 2147483647 - type: integer - required: - - version - - date - - filters type: object - SecurityFilterVersionEntry: - description: A single security filter as it existed at a given configuration version. + RumRetentionFiltersOrderResponse: + description: The list of RUM retention filter IDs along with type. properties: - exclusion_filters: - description: The list of exclusion filters applied in this security filter. + data: + description: A list of RUM retention filter IDs along with type. items: - $ref: "#/components/schemas/SecurityFilterExclusionFilterResponse" + $ref: "#/components/schemas/RumRetentionFiltersOrderData" type: array - filtered_data_type: - $ref: "#/components/schemas/SecurityFilterFilteredDataType" - id: - description: The ID of the security filter. - example: "123" - type: string - is_builtin: - description: Whether the security filter is the built-in filter. - example: false - type: boolean - is_enabled: - description: Whether the security filter is enabled. - example: true - type: boolean - name: - description: The name of the security filter. - example: Test Security Filter - type: string - query: - description: The query of the security filter. - example: source:test - type: string - version: - description: The version of this security filter. - example: 1 - format: int32 - maximum: 2147483647 - type: integer - required: - - id - - name - - version - - query - - is_enabled - - exclusion_filters - - filtered_data_type - - is_builtin type: object - SecurityFilterVersionType: - default: security_filters_configuration - description: The type of the resource. The value should always be `security_filters_configuration`. - enum: - - security_filters_configuration - example: security_filters_configuration - type: string - x-enum-varnames: - - SECURITY_FILTERS_CONFIGURATION - SecurityFilterVersionsResponse: - description: Response containing the version history of security filters. + RumRetentionFiltersResponse: + description: All RUM retention filters for a RUM application. properties: data: - description: A list of historical security filter configurations, ordered from the most recent to the oldest. + description: A list of RUM retention filters. items: - $ref: "#/components/schemas/SecurityFilterVersion" + $ref: "#/components/schemas/RumRetentionFilterData" type: array - required: - - data type: object - SecurityFiltersResponse: - description: All the available security filters objects. + RumRetentionQuotaConfigAttributes: + description: The RUM retention quota configuration properties. properties: - data: - description: A list of security filters objects. - items: - $ref: "#/components/schemas/SecurityFilter" - type: array - meta: - $ref: "#/components/schemas/SecurityFilterMeta" + custom: + $ref: "#/components/schemas/RumRetentionQuotaCustomConfig" + mode: + $ref: "#/components/schemas/RumRetentionQuotaMode" + org_id: + description: The ID of the organization the retention quota configuration belongs to. + example: 2 + format: int64 + type: integer + updated_at: + description: The date the retention quota configuration was last updated. + example: "2026-03-04T15:37:54.951447Z" + format: date-time + type: string + updated_by: + description: The handle of the user who last updated the retention quota configuration. + example: test@example.com + type: string + required: + - mode + - org_id type: object - SecurityFindingType: - description: The type of security finding that the automation rule applies to. - enum: - - api_security - - attack_path - - host_and_container_vulnerability - - iac_misconfiguration - - identity_risk - - library_vulnerability - - misconfiguration - - runtime_code_vulnerability - - secret - - static_code_vulnerability - - workload_activity - example: misconfiguration - type: string - x-enum-varnames: - - API_SECURITY - - ATTACK_PATH - - HOST_AND_CONTAINER_VULNERABILITY - - IAC_MISCONFIGURATION - - IDENTITY_RISK - - LIBRARY_VULNERABILITY - - MISCONFIGURATION - - RUNTIME_CODE_VULNERABILITY - - SECRET - - STATIC_CODE_VULNERABILITY - - WORKLOAD_ACTIVITY - SecurityFindingTypes: - description: The list of security finding types that the automation rule applies to. - example: - - misconfiguration - items: - $ref: "#/components/schemas/SecurityFindingType" - minItems: 1 - type: array - SecurityFindingsAttributes: - description: The JSON object containing all attributes of the security finding. - properties: - attributes: - additionalProperties: {} - description: The custom attributes of the security finding. - example: {"severity": "high", "status": "open"} - type: object - tags: - description: List of tags associated with the security finding. - example: - - "team:platform" - - "env:prod" - items: - description: A tag associated with the security finding. - type: string - type: array - timestamp: - description: The Unix timestamp at which the detection changed for the resource. Same value as @detection_changed_at. - example: 1765901760 - format: int64 - type: integer - type: object - SecurityFindingsData: - description: A single security finding. + RumRetentionQuotaConfigData: + description: The RUM retention quota configuration object. properties: attributes: - $ref: "#/components/schemas/SecurityFindingsAttributes" + $ref: "#/components/schemas/RumRetentionQuotaConfigAttributes" id: - description: The unique ID of the security finding. - example: "ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw==" + description: The identifier of the scope the retention quota configuration applies to. + example: cd73a516-a481-4af5-8352-9b577465c77b type: string type: - $ref: "#/components/schemas/SecurityFindingsDataType" + $ref: "#/components/schemas/RumRetentionQuotaConfigType" + required: + - id + - type + - attributes type: object - SecurityFindingsDataType: - default: finding - description: The type of the security finding resource. + RumRetentionQuotaConfigResponse: + description: The RUM retention quota configuration response. + properties: + data: + $ref: "#/components/schemas/RumRetentionQuotaConfigData" + required: + - data + type: object + RumRetentionQuotaConfigType: + default: rum_quota_config + description: The type of the resource, always `rum_quota_config`. enum: - - finding - example: finding + - rum_quota_config + example: rum_quota_config type: string - x-enum-varnames: - - FINDING - SecurityFindingsLinks: - description: Links for pagination. + x-enum-varnames: ["RUM_QUOTA_CONFIG"] + RumRetentionQuotaConfigUpdateAttributes: + description: The RUM retention quota configuration properties to create or update. properties: - next: - description: Link for the next page of results. Note that paginated requests can also be made using the POST endpoint. - example: "https://app.datadoghq.com/api/v2/security/findings?page[cursor]=eyJhZnRlciI6IkF3QUFBWnPcm1pd0FBQUJbVlBQUKBa1pqRTVdZUzSTBNemN0YWiIsLTE3Mjk0MzYwMjFdfQ==&page[limit]=25" - type: string + custom: + $ref: "#/components/schemas/RumRetentionQuotaCustomConfig" + mode: + $ref: "#/components/schemas/RumRetentionQuotaMode" + required: + - mode type: object - SecurityFindingsMeta: - description: Metadata about the response. + RumRetentionQuotaConfigUpdateData: + description: The RUM retention quota configuration to create or update. properties: - elapsed: - description: The time elapsed in milliseconds. - example: 548 - format: int64 - type: integer - page: - $ref: "#/components/schemas/SecurityFindingsPage" - request_id: - description: The identifier of the request. - example: "pddv1ChZwVlMxMUdYRFRMQ1lyb3B4MGNYbFlnIi0KHQu35LDbucx" + attributes: + $ref: "#/components/schemas/RumRetentionQuotaConfigUpdateAttributes" + id: + description: |- + The identifier of the scope the retention quota configuration applies to. + Must match `scope_id` in the path. + example: cd73a516-a481-4af5-8352-9b577465c77b type: string - status: - $ref: "#/components/schemas/SecurityFindingsStatus" + type: + $ref: "#/components/schemas/RumRetentionQuotaConfigType" + required: + - id + - type + - attributes type: object - SecurityFindingsPage: - description: Pagination information. + RumRetentionQuotaConfigUpdateRequest: + description: The body of a request to create or update a RUM retention quota configuration. properties: - after: - description: The cursor used to get the next page of results. - example: "eyJhZnRlciI6IkFRQUFBWWJiaEJXQS1OY1dqUUFBQUFCQldXSmlhRUpYUVVGQlJFSktkbTlDTUdaWFRVbDNRVUUiLCJ2YWx1ZXMiOlsiY3JpdGljYWwiXX0=" + data: + $ref: "#/components/schemas/RumRetentionQuotaConfigUpdateData" + required: + - data + type: object + RumRetentionQuotaCustomConfig: + description: The configuration used when `mode` is `custom`. + properties: + daily_reset_time: + description: The time of day when the daily quota resets, in `HH:MM` 24-hour format. + example: "08:00" + pattern: "^([01]\\d|2[0-3]):[0-5]\\d$" + type: string + daily_reset_timezone: + description: The timezone offset used for the daily reset time, in `±HH:MM` format. + example: "+09:00" + pattern: "^[+-](0\\d|1[0-4]):[0-5]\\d$" type: string + quota_reached_action: + $ref: "#/components/schemas/RumRetentionQuotaReachedAction" + session_limit: + description: The maximum number of sessions allowed within the window. Must be at least `1000`. + example: 1000000 + format: int64 + minimum: 1000 + type: integer + window_type: + $ref: "#/components/schemas/RumRetentionQuotaWindowType" + required: + - window_type + - session_limit + - daily_reset_time + - daily_reset_timezone + - quota_reached_action type: object - SecurityFindingsSearchRequest: - description: The request body for searching security findings. + RumRetentionQuotaMode: + description: |- + The retention quota mode. `custom` enforces a fixed session limit. + `custom` is the only supported mode. + enum: + - custom + example: custom + type: string + x-enum-varnames: ["CUSTOM"] + RumRetentionQuotaReachedAction: + description: The action to take when the session quota is reached. + enum: + - stop + - slowdown + example: stop + type: string + x-enum-varnames: ["STOP", "SLOWDOWN"] + RumRetentionQuotaScopeType: + default: application + description: |- + The type of scope the retention quota configuration applies to. + `application` is the only supported scope type. + enum: + - application + example: application + type: string + x-enum-varnames: ["APPLICATION"] + RumRetentionQuotaWindowType: + description: The window type over which the session limit is enforced. + enum: + - daily + example: daily + type: string + x-enum-varnames: ["DAILY"] + RumSdkConfigAllowedTracingUrlList: + description: A list of URL configurations for distributed tracing. + items: + $ref: "#/components/schemas/RumSdkConfigTracingUrlConfig" + type: array + RumSdkConfigAllowedTrackingOriginList: + description: A list of origin patterns allowed for cross-origin session tracking. + items: + $ref: "#/components/schemas/RumSdkConfigMatchOption" + type: array + RumSdkConfigAttributes: + description: Attributes of the RUM SDK configuration. properties: - data: - $ref: "#/components/schemas/SecurityFindingsSearchRequestData" + rum: + $ref: "#/components/schemas/RumSdkConfigRumAttributes" + required: + - rum type: object - SecurityFindingsSearchRequestData: - description: Request data for searching security findings. + RumSdkConfigData: + description: The RUM SDK configuration data object. properties: attributes: - $ref: "#/components/schemas/SecurityFindingsSearchRequestDataAttributes" + $ref: "#/components/schemas/RumSdkConfigAttributes" + id: + description: The unique identifier of the RUM SDK configuration. + example: "abc12345-1234-5678-abcd-ef1234567890" + type: string + meta: + $ref: "#/components/schemas/RumSdkConfigMeta" + type: + $ref: "#/components/schemas/RumSdkConfigType" + required: + - id + - type + - attributes type: object - SecurityFindingsSearchRequestDataAttributes: - description: Request attributes for searching security findings. + RumSdkConfigDynamicOption: + description: A dynamic configuration option that extracts a value at runtime using a specified strategy. properties: - filter: - default: "*" - description: The search query following log search syntax. - example: "@severity:(critical OR high) @status:open team:platform" + attribute: + description: The element attribute to read. Used when `strategy` is `dom`. + example: "data-version" type: string - page: - $ref: "#/components/schemas/SecurityFindingsSearchRequestPage" - sort: - $ref: "#/components/schemas/SecurityFindingsSort" + extractor: + $ref: "#/components/schemas/RumSdkConfigSerializedRegex" + key: + description: The `localStorage` key to read. Required when `strategy` is `localStorage`. + example: "app.version" + type: string + name: + description: The cookie name to read. Required when `strategy` is `cookie`. + example: "app_version" + type: string + path: + description: The JavaScript path used to extract the value. Required when `strategy` is `js`. + example: "application.version" + type: string + rc_serialized_type: + $ref: "#/components/schemas/RumSdkConfigDynamicOptionSerializedType" + selector: + description: The CSS selector to read from the page. Required when `strategy` is `dom`. + example: "#app-version" + type: string + strategy: + $ref: "#/components/schemas/RumSdkConfigDynamicOptionStrategy" + required: + - rc_serialized_type + - strategy type: object - SecurityFindingsSearchRequestPage: - description: Pagination attributes for the search request. + RumSdkConfigDynamicOptionPair: + description: A key-value pair where the value is a dynamic configuration option. properties: - cursor: - description: Get the next page of results with a cursor provided in the previous query. - example: "eyJhZnRlciI6IkF3QUFBWnPcm1pd0FBQUJbVlBQUKBa1pqRTVdZUzSTBNemN0YWiIsLTE3Mjk0MzYwMjFdfQ==" + key: + description: The key name for this dynamic configuration pair. + example: "id" type: string - limit: - default: 10 - description: The maximum number of security findings in the response. - example: 25 - format: int64 - maximum: 150 - minimum: 1 - type: integer + value: + $ref: "#/components/schemas/RumSdkConfigDynamicOption" + required: + - key + - value type: object - SecurityFindingsSort: - default: "-@detection_changed_at" - description: The sort parameters when querying security findings. + RumSdkConfigDynamicOptionPairList: + description: A list of dynamic option key-value pairs. + items: + $ref: "#/components/schemas/RumSdkConfigDynamicOptionPair" + type: array + RumSdkConfigDynamicOptionSerializedType: + description: The type identifier for a dynamic option. Always `dynamic`. enum: - - "@detection_changed_at" - - "-@detection_changed_at" + - dynamic + example: dynamic type: string x-enum-varnames: - - DETECTION_CHANGED_AT_ASC - - DETECTION_CHANGED_AT_DESC - SecurityFindingsStatus: - description: The status of the response. + - DYNAMIC + RumSdkConfigDynamicOptionStrategy: + description: The strategy used to extract the dynamic value. enum: - - done - - timeout - example: done + - js + - cookie + - dom + - localStorage + example: js type: string x-enum-varnames: - - DONE - - TIMEOUT - SecurityMonitoringAzureAppRegistration: - description: An Azure App Registration discovered for the organization. + - JS + - COOKIE + - DOM + - LOCAL_STORAGE + RumSdkConfigMatchOption: + description: A match option used for URL or origin pattern matching. properties: - client_id: - description: The client ID of the App Registration. - example: 66666666-7777-8888-9999-000000000000 - type: string - error_count: - description: The number of errors encountered while crawling resources for this App Registration. - example: 0 - format: int64 - type: integer - resource_collection_enabled: - description: Whether resource collection is enabled for this App Registration. - example: true - type: boolean - subscription_count: - description: The number of Azure subscriptions associated with this App Registration. - example: 3 - format: int64 - type: integer - tenant_id: - description: The Azure tenant ID of the App Registration. - example: 11111111-2222-3333-4444-555555555555 + rc_serialized_type: + $ref: "#/components/schemas/RumSdkConfigMatchOptionSerializedType" + value: + description: The value to match against. + example: "https://app.datadoghq.com" type: string required: - - tenant_id - - client_id - - resource_collection_enabled - - subscription_count - - error_count + - rc_serialized_type + - value type: object - SecurityMonitoringContentPackActivation: - description: The activation status of a content pack. + RumSdkConfigMatchOptionSerializedType: + description: The type of match pattern, either a literal string or a regex. enum: - - never_activated - - activated - - deactivated - example: activated + - string + - regex + example: string type: string - x-enum-descriptions: - - Pack has never been activated for this organization. - - Pack is currently activated. - - Pack was previously activated but has since been deactivated. x-enum-varnames: - - NEVER_ACTIVATED - - ACTIVATED - - DEACTIVATED - SecurityMonitoringContentPackAppSecDetails: - description: Details for an Application Security content pack. + - STRING + - REGEX + RumSdkConfigMeta: + description: Metadata associated with a RUM SDK configuration. properties: - type: - $ref: "#/components/schemas/SecurityMonitoringContentPackAppSecDetailsType" + updated_at: + description: The timestamp of the last update to this configuration. + example: "2024-01-15T09:30:00.000Z" + format: date-time + type: string + updated_by: + description: The handle of the user who last updated this configuration. + example: "user@datadoghq.com" + type: string required: - - type + - updated_at + - updated_by type: object - SecurityMonitoringContentPackAppSecDetailsType: - description: Type for Application Security content pack details. - enum: - - appsec - example: appsec - type: string - x-enum-varnames: - - APPSEC - SecurityMonitoringContentPackAuditDetails: - description: Details for an audit trail content pack. + RumSdkConfigResponse: + description: Response containing a RUM SDK configuration. properties: - type: - $ref: "#/components/schemas/SecurityMonitoringContentPackAuditDetailsType" + data: + $ref: "#/components/schemas/RumSdkConfigData" required: - - type + - data type: object - SecurityMonitoringContentPackAuditDetailsType: - description: Type for audit trail content pack details. - enum: - - audit - example: audit - type: string - x-enum-varnames: - - AUDIT - SecurityMonitoringContentPackEntityDetails: - description: Details for an entity or identity content pack. + RumSdkConfigRumAttributes: + description: The RUM SDK settings for a configuration. properties: - cp_activation: - $ref: "#/components/schemas/SecurityMonitoringContentPackActivation" - type: - $ref: "#/components/schemas/SecurityMonitoringContentPackEntityDetailsType" + allowed_tracing_urls: + $ref: "#/components/schemas/RumSdkConfigAllowedTracingUrlList" + allowed_tracking_origins: + $ref: "#/components/schemas/RumSdkConfigAllowedTrackingOriginList" + application_id: + description: The ID of the RUM application this configuration belongs to. + example: "f80e917c-3cd0-4048-ade7-1c4c207baa99" + type: string + context: + $ref: "#/components/schemas/RumSdkConfigDynamicOptionPairList" + default_privacy_level: + description: The default privacy masking level applied to all RUM data. + example: "mask-user-input" + type: string + enable_privacy_for_action_name: + description: Whether to mask user-interaction action names for privacy. + example: false + type: boolean + env: + description: The environment tag for the RUM application. + example: "production" + type: string + service: + description: The service name tag for the RUM application. + example: "my-service" + type: string + session_replay_sample_rate: + description: The percentage of collected sessions for which a replay is captured (0–100). + example: 10 + format: int64 + maximum: 100 + minimum: 0 + type: integer + session_sample_rate: + description: The percentage of user sessions to collect (0–100). + example: 50 + format: int64 + maximum: 100 + minimum: 0 + type: integer + trace_sample_rate: + description: The percentage of requests to forward as APM traces (0–100). + example: 100 + format: int64 + maximum: 100 + minimum: 0 + type: integer + track_session_across_subdomains: + description: Whether to share a session across subdomains of the same site. + example: false + type: boolean + user: + $ref: "#/components/schemas/RumSdkConfigDynamicOptionPairList" + version: + $ref: "#/components/schemas/RumSdkConfigDynamicOption" required: - - type - - cp_activation + - application_id + - session_sample_rate + - session_replay_sample_rate + - default_privacy_level + - enable_privacy_for_action_name type: object - SecurityMonitoringContentPackEntityDetailsType: - description: Type for entity content pack details. - enum: - - entity - example: entity - type: string - x-enum-varnames: - - ENTITY - SecurityMonitoringContentPackIntegrationStatus: - description: The installation status of the related integration. - enum: - - installed - - available - - partially_installed - - detected - - error - example: installed - type: string - x-enum-descriptions: - - Integration is fully installed. - - Integration exists in the catalog but is not installed. - - Integration is only partially configured. - - Integration detected (for example, logs are flowing) but not explicitly installed. - - Integration is in an error state. - x-enum-varnames: - - INSTALLED - - AVAILABLE - - PARTIALLY_INSTALLED - - DETECTED - - ERROR - SecurityMonitoringContentPackLogsDetails: - description: Details for a logs-based content pack. + RumSdkConfigRumUpdateAttributes: + description: The RUM SDK settings to apply when updating a configuration. properties: - cp_activation: - $ref: "#/components/schemas/SecurityMonitoringContentPackActivation" - data_last_seen: - $ref: "#/components/schemas/SecurityMonitoringContentPackTimestampBucket" - filters_configured: - description: |- - Whether filters (Security Filters or Index Query depending on the pricing model) are - present and correctly configured to route logs into Cloud SIEM. - example: true - type: boolean - integration_installed_status: - $ref: "#/components/schemas/SecurityMonitoringContentPackIntegrationStatus" - logs_seen_from_any_index: - description: Whether logs for this content pack have been seen in any Datadog index in the last 72 hours. + allowed_tracing_urls: + $ref: "#/components/schemas/RumSdkConfigAllowedTracingUrlList" + allowed_tracking_origins: + $ref: "#/components/schemas/RumSdkConfigAllowedTrackingOriginList" + context: + $ref: "#/components/schemas/RumSdkConfigDynamicOptionPairList" + default_privacy_level: + description: The default privacy masking level applied to all RUM data. + example: "mask" + type: string + enable_privacy_for_action_name: + description: Whether to mask user-interaction action names for privacy. example: true type: boolean - siem_index_incorrect: - description: Whether the Cloud SIEM index configuration is incorrect (only applies to certain pricing models). + env: + description: The environment tag for the RUM application. + example: "production" + type: string + service: + description: The service name tag for the RUM application. + example: "my-service" + type: string + session_replay_sample_rate: + description: The percentage of collected sessions for which a replay is captured (0–100). + example: 20 + format: int64 + maximum: 100 + minimum: 0 + type: integer + session_sample_rate: + description: The percentage of user sessions to collect (0–100). + example: 75 + format: int64 + maximum: 100 + minimum: 0 + type: integer + trace_sample_rate: + description: The percentage of requests to forward as APM traces (0–100). + example: 100 + format: int64 + maximum: 100 + minimum: 0 + type: integer + track_session_across_subdomains: + description: Whether to share a session across subdomains of the same site. example: false type: boolean - type: - $ref: "#/components/schemas/SecurityFilterFilteredDataType" + user: + $ref: "#/components/schemas/RumSdkConfigDynamicOptionPairList" + version: + $ref: "#/components/schemas/RumSdkConfigDynamicOption" required: - - type - - cp_activation - - data_last_seen - - integration_installed_status - - filters_configured - - logs_seen_from_any_index - - siem_index_incorrect + - session_sample_rate + - session_replay_sample_rate + - default_privacy_level + - enable_privacy_for_action_name type: object - SecurityMonitoringContentPackOnboardingDetails: - description: |- - Content pack details returned when Cloud SIEM is inactive for the requesting organization. + RumSdkConfigSerializedRegex: + description: A serialized regex used as an extractor in dynamic options. properties: - integration_installed_status: - $ref: "#/components/schemas/SecurityMonitoringContentPackIntegrationStatus" - logs_seen_from_any_index: - description: Whether logs for this content pack have been seen in any Datadog index in the last 72 hours. - example: true - type: boolean - type: - $ref: "#/components/schemas/SecurityMonitoringContentPackOnboardingDetailsType" + rc_serialized_type: + $ref: "#/components/schemas/RumSdkConfigSerializedRegexType" + value: + description: The regex pattern used for extraction. + example: "^https://app-.*.datadoghq.com" + type: string required: - - type - - logs_seen_from_any_index + - rc_serialized_type + - value type: object - SecurityMonitoringContentPackOnboardingDetailsType: - description: Type for onboarding content pack details. + RumSdkConfigSerializedRegexType: + description: The type identifier for a serialized regex. Always `regex`. enum: - - onboarding - example: onboarding + - regex + example: regex type: string x-enum-varnames: - - ONBOARDING - SecurityMonitoringContentPackStateAttributes: - description: Attributes of a content pack state. + - REGEX + RumSdkConfigTracingUrlConfig: + description: Configuration for a URL that should have distributed tracing enabled. properties: - details: - $ref: "#/components/schemas/SecurityMonitoringContentPackStateDetails" - status: - $ref: "#/components/schemas/SecurityMonitoringContentPackStatus" + match: + $ref: "#/components/schemas/RumSdkConfigMatchOption" + propagator_types: + description: The list of trace propagator types to use for this URL. + example: + - datadog + - tracecontext + items: + $ref: "#/components/schemas/RumSdkConfigTracingUrlPropagatorType" + type: array required: - - status - - details + - match + - propagator_types type: object - SecurityMonitoringContentPackStateData: - description: Content pack state data. + RumSdkConfigTracingUrlPropagatorType: + description: A trace propagator type. + enum: + - datadog + - b3 + - b3multi + - tracecontext + example: datadog + type: string + x-enum-varnames: + - DATADOG + - B3 + - B3MULTI + - TRACECONTEXT + RumSdkConfigType: + default: rum_sdk_config + description: The type of the resource. The value should always be `rum_sdk_config`. + enum: + - rum_sdk_config + example: rum_sdk_config + type: string + x-enum-varnames: + - RUM_SDK_CONFIG + RumSdkConfigUpdateAttributes: + description: Attributes of the RUM SDK configuration to update. + properties: + rum: + $ref: "#/components/schemas/RumSdkConfigRumUpdateAttributes" + required: + - rum + type: object + RumSdkConfigUpdateData: + description: The data object for updating a RUM SDK configuration. properties: attributes: - $ref: "#/components/schemas/SecurityMonitoringContentPackStateAttributes" + $ref: "#/components/schemas/RumSdkConfigUpdateAttributes" id: - description: The content pack identifier. - example: aws-cloudtrail + description: The ID of the RUM SDK configuration to update. + example: "abc12345-1234-5678-abcd-ef1234567890" type: string type: - $ref: "#/components/schemas/SecurityMonitoringContentPackStateType" + $ref: "#/components/schemas/RumSdkConfigType" required: - id - type - attributes type: object - SecurityMonitoringContentPackStateDetails: - description: |- - Type-specific details for a content pack state. The set of fields present depends - on the content pack's `type`. When Cloud SIEM is inactive for the requesting organization, `onboarding` is returned instead of the content pack's usual type, such as `logs` or `vulnerability`.` - discriminator: - mapping: - appsec: "#/components/schemas/SecurityMonitoringContentPackAppSecDetails" - audit: "#/components/schemas/SecurityMonitoringContentPackAuditDetails" - entity: "#/components/schemas/SecurityMonitoringContentPackEntityDetails" - logs: "#/components/schemas/SecurityMonitoringContentPackLogsDetails" - onboarding: "#/components/schemas/SecurityMonitoringContentPackOnboardingDetails" - threat_intel: "#/components/schemas/SecurityMonitoringContentPackThreatIntelDetails" - vulnerability: "#/components/schemas/SecurityMonitoringContentPackVulnerabilityDetails" - propertyName: type - oneOf: - - $ref: "#/components/schemas/SecurityMonitoringContentPackLogsDetails" - - $ref: "#/components/schemas/SecurityMonitoringContentPackThreatIntelDetails" - - $ref: "#/components/schemas/SecurityMonitoringContentPackEntityDetails" - - $ref: "#/components/schemas/SecurityMonitoringContentPackAuditDetails" - - $ref: "#/components/schemas/SecurityMonitoringContentPackAppSecDetails" - - $ref: "#/components/schemas/SecurityMonitoringContentPackVulnerabilityDetails" - - $ref: "#/components/schemas/SecurityMonitoringContentPackOnboardingDetails" - SecurityMonitoringContentPackStateMeta: - description: Metadata for content pack states. + RumSdkConfigUpdateRequest: + description: Request body for updating a RUM SDK configuration. properties: - cloud_siem_index_incorrect: - description: Whether the Cloud SIEM index configuration is incorrect for the organization. - example: false - type: boolean - retention_months: - description: |- - The number of months that standard logs are retained for organizations on the standalone_indexed` pricing model. This field is omitted for other pricing models. - example: 15 - format: int32 - maximum: 60 - type: integer - sku: - $ref: "#/components/schemas/SecurityMonitoringSKU" + data: + $ref: "#/components/schemas/RumSdkConfigUpdateData" required: - - cloud_siem_index_incorrect - - sku + - data type: object - SecurityMonitoringContentPackStateType: - description: Type for content pack state object - enum: - - content_pack_state - example: content_pack_state - type: string - x-enum-varnames: - - CONTENT_PACK_STATE - SecurityMonitoringContentPackStatesResponse: - description: Response containing content pack states. + RunDataObservabilityMonitorResponse: + description: The response returned when a data observability monitor run is triggered. properties: data: - description: Array of content pack states. - items: - $ref: "#/components/schemas/SecurityMonitoringContentPackStateData" - type: array - meta: - $ref: "#/components/schemas/SecurityMonitoringContentPackStateMeta" + $ref: "#/components/schemas/RunDataObservabilityMonitorResponseData" required: - data - - meta type: object - SecurityMonitoringContentPackStatus: - description: The current operational status of a content pack. - enum: - - install - - activate - - initializing - - active - - warning - - broken - - not_configured - example: active - type: string - x-enum-descriptions: - - Not activated; no logs detected in the last 72 hours. - - Not activated; logs are flowing into a Datadog index but not yet routed through Cloud SIEM. - - Activated; awaiting first log ingestion. - - Activated; logs received within the last 24 hours. - - Activated; integration not installed or logs last seen 24 to 72 hours ago. - - Activated; no logs for over 72 hours, filter missing, or Cloud SIEM index incorrectly ordered. - - Activated, but no credentials are configured (entity content packs only). - x-enum-varnames: - - INSTALL - - ACTIVATE - - INITIALIZING - - ACTIVE - - WARNING - - BROKEN - - NOT_CONFIGURED - SecurityMonitoringContentPackThreatIntelDetails: - description: Details for a threat intelligence content pack. + RunDataObservabilityMonitorResponseData: + description: The data object returned when a data observability monitor run is triggered. properties: - cp_activation: - $ref: "#/components/schemas/SecurityMonitoringContentPackActivation" - data_last_seen: - $ref: "#/components/schemas/SecurityMonitoringContentPackTimestampBucket" - integration_installed_status: - $ref: "#/components/schemas/SecurityMonitoringContentPackIntegrationStatus" + id: + description: The unique identifier of the monitor run. + example: "abc123def456" + type: string type: - $ref: "#/components/schemas/SecurityMonitoringContentPackThreatIntelDetailsType" + $ref: "#/components/schemas/DataObservabilityMonitorRunType" required: + - id - type - - cp_activation - - data_last_seen - - integration_installed_status type: object - SecurityMonitoringContentPackThreatIntelDetailsType: - description: Type for threat intelligence content pack details. + RunHistoricalJobRequest: + description: Run a historical job request. + properties: + data: + $ref: "#/components/schemas/RunHistoricalJobRequestData" + type: object + RunHistoricalJobRequestAttributes: + description: Run a historical job request. + properties: + fromRule: + $ref: "#/components/schemas/JobDefinitionFromRule" + jobDefinition: + $ref: "#/components/schemas/JobDefinition" + signalOutput: + description: Whether the job outputs signals when results are converted. + type: boolean + type: object + RunHistoricalJobRequestData: + description: Data for running a historical job request. + properties: + attributes: + $ref: "#/components/schemas/RunHistoricalJobRequestAttributes" + type: + $ref: "#/components/schemas/RunHistoricalJobRequestDataType" + type: object + RunHistoricalJobRequestDataType: + description: Type of data. enum: - - threat_intel - example: threat_intel + - historicalDetectionsJobCreate type: string x-enum-varnames: - - THREAT_INTEL - SecurityMonitoringContentPackTimestampBucket: - description: Timestamp bucket indicating when logs were last collected. - enum: - - not_seen - - within_24_hours - - within_24_to_72_hours - - over_72h_to_30d - - over_30d - example: within_24_hours + - HISTORICALDETECTIONSJOBCREATE + RunRetentionFilterName: + description: The name of a RUM retention filter. + example: "Retention filter for session" type: string - x-enum-descriptions: - - No logs observed. - - Logs received within the last 24 hours. - - Logs last seen 24 to 72 hours ago. - - Logs last seen 3 to 30 days ago. - - Logs last seen more than 30 days ago. - x-enum-varnames: - - NOT_SEEN - - WITHIN_24_HOURS - - WITHIN_24_TO_72_HOURS - - OVER_72H_TO_30D - - OVER_30D - SecurityMonitoringContentPackVulnerabilityDetails: - description: Details for a vulnerability content pack. + SAMLAssertionAttribute: + description: SAML assertion attribute. properties: - cp_activation: - $ref: "#/components/schemas/SecurityMonitoringContentPackActivation" - data_last_seen: - $ref: "#/components/schemas/SecurityMonitoringContentPackTimestampBucket" - integration_installed_status: - $ref: "#/components/schemas/SecurityMonitoringContentPackIntegrationStatus" + attributes: + $ref: "#/components/schemas/SAMLAssertionAttributeAttributes" + id: + description: The ID of the SAML assertion attribute. + example: "0" + type: string type: - $ref: "#/components/schemas/SecurityMonitoringContentPackVulnerabilityDetailsType" + $ref: "#/components/schemas/SAMLAssertionAttributesType" required: + - id - type - - cp_activation - - data_last_seen - - integration_installed_status type: object - SecurityMonitoringContentPackVulnerabilityDetailsType: - description: Type for vulnerability content pack details. + SAMLAssertionAttributeAttributes: + description: Key/Value pair of attributes used in SAML assertion attributes. + properties: + attribute_key: + description: Key portion of a key/value pair of the attribute sent from the Identity Provider. + example: member-of + type: string + attribute_value: + description: Value portion of a key/value pair of the attribute sent from the Identity Provider. + example: Development + type: string + type: object + SAMLAssertionAttributesType: + default: saml_assertion_attributes + description: SAML assertion attributes resource type. enum: - - vulnerability - example: vulnerability + - saml_assertion_attributes + example: saml_assertion_attributes type: string x-enum-varnames: - - VULNERABILITY - SecurityMonitoringCriticalAsset: - description: The critical asset's properties. + - SAML_ASSERTION_ATTRIBUTES + SAMLConfiguration: + description: A SAML configuration object. properties: attributes: - $ref: "#/components/schemas/SecurityMonitoringCriticalAssetAttributes" + $ref: "#/components/schemas/SAMLConfigurationAttributes" id: - $ref: "#/components/schemas/SecurityMonitoringCriticalAssetID" + description: The UUID of the SAML configuration. + example: 3653d3c6-0c75-11ea-ad28-fb5701eabc7d + type: string + relationships: + $ref: "#/components/schemas/SAMLConfigurationRelationships" type: - $ref: "#/components/schemas/SecurityMonitoringCriticalAssetType" + $ref: "#/components/schemas/SAMLConfigurationsType" + required: + - id + - type type: object - SecurityMonitoringCriticalAssetAttributes: - description: The attributes of the critical asset. + SAMLConfigurationAttributes: + description: Attributes of a SAML configuration. properties: - creation_author_id: - description: ID of user who created the critical asset. - example: 367742 - format: int64 - type: integer - creation_date: - description: A Unix millisecond timestamp given the creation date of the critical asset. - format: int64 - type: integer - creator: - $ref: "#/components/schemas/SecurityMonitoringUser" - description: - description: A description of the critical asset. - example: Production database servers handling PII - type: string - editable: - description: Whether the critical asset is editable. - example: true - type: boolean - enabled: - description: Whether the critical asset is enabled. - example: true - type: boolean - query: - description: The query for the critical asset. It uses the same syntax as the queries to search signals in the Signals Explorer. - example: security:monitoring - type: string - rule_query: - description: The rule query of the critical asset, with the same syntax as the search bar for detection rules. This determines which rules this critical asset will apply to. - example: type:log_detection source:cloudtrail - type: string - severity: - $ref: "#/components/schemas/SecurityMonitoringCriticalAssetSeverity" - tags: - description: List of tags associated with the critical asset. + assertion_consumer_service: + description: The assertion consumer service (ACS) URLs that the identity provider posts SAML responses to. example: - - team:database - - source:cloudtrail + - https://app.datadoghq.com/account/saml/assertion items: - description: A tag string in `key:value` format. + description: An assertion consumer service URL. + example: https://app.datadoghq.com/account/saml/assertion type: string type: array - update_author_id: - description: ID of user who updated the critical asset. - example: 367743 - format: int64 - type: integer - update_date: - description: A Unix millisecond timestamp given the update date of the critical asset. - format: int64 - type: integer - updater: - $ref: "#/components/schemas/SecurityMonitoringUser" - version: - description: The version of the critical asset; it starts at 1, and is incremented at each update. - example: 2 - format: int32 - maximum: 2147483647 - type: integer - type: object - SecurityMonitoringCriticalAssetCreateAttributes: - description: Object containing the attributes of the critical asset to be created. - properties: - description: - description: A description of the critical asset. - example: Production database servers handling PII + created_at: + description: Creation time of the SAML configuration. + format: date-time + readOnly: true type: string - enabled: - default: true - description: Whether the critical asset is enabled. Defaults to `true` if not specified. - example: true - type: boolean - query: - description: The query for the critical asset. It uses the same syntax as the queries to search signals in the Signals Explorer. - example: security:monitoring + entity_id: + description: The service provider entity ID Datadog presents to the identity provider. + example: https://app.datadoghq.com/account/saml/metadata.xml?id=00000000-0000-0000-0000-000000000000 type: string - rule_query: - description: The rule query of the critical asset, with the same syntax as the search bar for detection rules. This determines which rules this critical asset will apply to. - example: type:(log_detection OR signal_correlation OR workload_security OR application_security) source:cloudtrail + expires_at: + description: Expiration time of the uploaded identity provider metadata. + example: "2010-10-26T13:31:15+00:00" + format: date-time + nullable: true type: string - severity: - $ref: "#/components/schemas/SecurityMonitoringCriticalAssetSeverity" - tags: - description: List of tags associated with the critical asset. + idp_initiated: + description: Whether identity-provider-initiated login is enabled for the organization. + example: true + type: boolean + jit_domains: + description: |- + Email domains for which users are automatically provisioned on first SAML login + (just-in-time provisioning). example: - - team:database - - source:cloudtrail + - example.com items: - description: A tag string in `key:value` format. + description: An email domain for just-in-time user provisioning. + example: example.com type: string type: array - required: - - query - - severity - - rule_query + modified_at: + description: Time of the last SAML configuration modification. + format: date-time + readOnly: true + type: string + sso_url: + description: |- + The single sign-on URL users can visit to start a SAML login. + Returns `null` when the organization is identity-provider-initiated and has no subdomain. + example: https://app.datadoghq.com/account/login/id/00000000-0000-0000-0000-000000000000 + nullable: true + type: string type: object - SecurityMonitoringCriticalAssetCreateData: - description: Object for a single critical asset. + SAMLConfigurationRelationships: + description: Relationships of a SAML configuration. properties: - attributes: - $ref: "#/components/schemas/SecurityMonitoringCriticalAssetCreateAttributes" - type: - $ref: "#/components/schemas/SecurityMonitoringCriticalAssetType" - required: - - type - - attributes + default_roles: + $ref: "#/components/schemas/RelationshipToRoles" type: object - SecurityMonitoringCriticalAssetCreateRequest: - description: Request object that includes the critical asset that you would like to create. + SAMLConfigurationResponse: + description: Response containing a single SAML configuration. properties: data: - $ref: "#/components/schemas/SecurityMonitoringCriticalAssetCreateData" + $ref: "#/components/schemas/SAMLConfiguration" + included: + description: Resources related to the SAML configuration, such as the default roles. + items: + $ref: "#/components/schemas/Role" + type: array required: - data type: object - SecurityMonitoringCriticalAssetID: - description: The ID of the critical asset. - example: 4e2435a5-6670-4b8f-baff-46083cd1c250 - type: string - SecurityMonitoringCriticalAssetResponse: - description: Response object containing a single critical asset. - properties: - data: - $ref: "#/components/schemas/SecurityMonitoringCriticalAsset" - type: object - SecurityMonitoringCriticalAssetSeverity: - description: Severity associated with this critical asset. Either an explicit severity can be set, or the severity can be increased or decreased, or the severity can be left unchanged (no-op). - enum: - - info - - low - - medium - - high - - critical - - increase - - decrease - - no-op - example: increase - type: string - x-enum-varnames: - - INFO - - LOW - - MEDIUM - - HIGH - - CRITICAL - - INCREASE - - DECREASE - - NO_OP - SecurityMonitoringCriticalAssetType: - default: critical_assets - description: The type of the resource. The value should always be `critical_assets`. - enum: - - critical_assets - example: critical_assets - type: string - x-enum-varnames: - - CRITICAL_ASSETS - SecurityMonitoringCriticalAssetUpdateAttributes: - description: The critical asset properties to be updated. + SAMLConfigurationUpdateAttributes: + description: Attributes for updating a SAML configuration. properties: - description: - description: A description of the critical asset. - example: Production database servers handling PII - type: string - enabled: - description: Whether the critical asset is enabled. + idp_initiated: + description: Whether identity-provider-initiated login is enabled for the organization. example: true type: boolean - query: - description: The query for the critical asset. It uses the same syntax as the queries to search signals in the Signals Explorer. - example: security:monitoring - type: string - rule_query: - description: The rule query of the critical asset, with the same syntax as the search bar for detection rules. This determines which rules this critical asset will apply to. - example: type:log_detection source:cloudtrail - type: string - severity: - $ref: "#/components/schemas/SecurityMonitoringCriticalAssetSeverity" - tags: - description: List of tags associated with the critical asset. + jit_domains: + description: |- + Email domains for which users are automatically provisioned on first SAML login + (just-in-time provisioning). A default role is required to enable just-in-time provisioning. example: - - technique:T1110-brute-force - - source:cloudtrail + - example.com items: - description: A tag string in `key:value` format. + description: An email domain for just-in-time user provisioning. + example: example.com + maxLength: 255 + minLength: 1 type: string + maxItems: 50 + minItems: 0 type: array - version: - description: The version of the critical asset being updated. Used for optimistic locking to prevent concurrent modifications. - example: 1 - format: int32 - maximum: 2147483647 - type: integer type: object - SecurityMonitoringCriticalAssetUpdateData: - description: The new critical asset properties; partial updates are supported. + SAMLConfigurationUpdateData: + description: Data for updating a SAML configuration. properties: attributes: - $ref: "#/components/schemas/SecurityMonitoringCriticalAssetUpdateAttributes" + $ref: "#/components/schemas/SAMLConfigurationUpdateAttributes" + id: + description: The UUID of the SAML configuration to update. Must match the UUID in the URL path. + example: 3653d3c6-0c75-11ea-ad28-fb5701eabc7d + maxLength: 39 + type: string + relationships: + $ref: "#/components/schemas/SAMLConfigurationRelationships" type: - $ref: "#/components/schemas/SecurityMonitoringCriticalAssetType" + $ref: "#/components/schemas/SAMLConfigurationsType" required: + - id - type - - attributes type: object - SecurityMonitoringCriticalAssetUpdateRequest: - description: Request object containing the fields to update on the critical asset. + SAMLConfigurationUpdateRequest: + description: Request to update a SAML configuration. properties: data: - $ref: "#/components/schemas/SecurityMonitoringCriticalAssetUpdateData" + $ref: "#/components/schemas/SAMLConfigurationUpdateData" required: - data type: object - SecurityMonitoringCriticalAssetsResponse: - description: Response object containing the available critical assets. + SAMLConfigurationsResponse: + description: Response containing a list of SAML configurations. properties: data: - description: A list of critical assets objects. + description: Array of SAML configurations. An organization has at most one SAML configuration. items: - $ref: "#/components/schemas/SecurityMonitoringCriticalAsset" + $ref: "#/components/schemas/SAMLConfiguration" + type: array + included: + description: Resources related to the SAML configurations, such as the default roles. + items: + $ref: "#/components/schemas/Role" type: array type: object - SecurityMonitoringCrowdStrikeIntegrationConfigCreateAttributes: - description: The attributes of a CrowdStrike entity context sync configuration to create. - properties: - domain: - description: The domain associated with the external entity source. - example: api.crowdstrike.com - type: string - integration_type: - $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeCrowdStrike" - name: - description: The display name for the entity context sync configuration. - example: My CrowdStrike Integration - type: string - secrets: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigCrowdStrikeSecrets" - settings: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" - required: - - integration_type - - domain - - name - - secrets - type: object - SecurityMonitoringCrowdStrikeIntegrationConfigUpdateAttributes: - description: Fields to update on a CrowdStrike entity context sync configuration. + SAMLConfigurationsType: + default: saml_configurations + description: SAML configurations resource type. + enum: + - saml_configurations + example: saml_configurations + type: string + x-enum-varnames: + - SAML_CONFIGURATIONS + SBOM: + description: A single SBOM properties: - domain: - description: The new domain associated with the external entity source. - example: api.crowdstrike.com - type: string - enabled: - description: Whether the entity context sync should be enabled. - example: true - type: boolean - integration_type: - $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeCrowdStrike" - name: - description: The new display name for the entity context sync configuration. - example: My CrowdStrike Integration (renamed) + attributes: + $ref: "#/components/schemas/SBOMAttributes" + id: + description: The unique ID for this SBOM (it is equivalent to the `asset_name` or `asset_name@repo_digest` (Image) + example: "github.com/datadog/datadog-agent" type: string - secrets: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigCrowdStrikeSecrets" - settings: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" - required: - - integration_type + type: + $ref: "#/components/schemas/SBOMType" type: object - SecurityMonitoringCrowdStrikeIntegrationCredentialsValidateAttributes: - description: The CrowdStrike credentials to validate against the external entity source. + SBOMAttributes: + description: The JSON:API attributes of the SBOM. properties: - domain: - description: The domain associated with the external entity source. - example: api.crowdstrike.com + bomFormat: + description: Specifies the format of the BOM. This helps to identify the file as CycloneDX since BOM do not have a filename convention nor does JSON schema support namespaces. This value MUST be `CycloneDX`. + example: CycloneDX type: string - integration_type: - $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeCrowdStrike" - secrets: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigCrowdStrikeSecrets" - required: - - integration_type - - domain - - secrets - type: object - SecurityMonitoringDatasetAttributesRequest: - description: The attributes of a dataset create or update request. - properties: - definition: - $ref: "#/components/schemas/SecurityMonitoringDatasetDefinition" - description: - description: The description of the dataset. Maximum 255 characters. - example: A sample dataset used for detection rules. + components: + description: A list of software and hardware components. + items: + $ref: "#/components/schemas/SBOMComponent" + type: array + dependencies: + description: List of dependencies between components of the SBOM. + items: + $ref: "#/components/schemas/SBOMComponentDependency" + type: array + metadata: + $ref: "#/components/schemas/SBOMMetadata" + serialNumber: + description: Every BOM generated has a unique serial number, even if the contents of the BOM have not changed overt time. The serial number follows [RFC-4122](https://datatracker.ietf.org/doc/html/rfc4122) + example: urn:uuid:f7119d2f-1vgh-24b5-91f0-12010db72da7 type: string + specVersion: + $ref: "#/components/schemas/SpecVersion" version: - description: |- - The expected current version of the dataset for optimistic concurrency control on updates. - If the dataset's current version does not match, the request is rejected with a 409 Conflict. + description: It increments when a BOM is modified. The default value is 1. example: 1 format: int64 type: integer required: - - definition + - bomFormat + - specVersion + - components + - metadata + - serialNumber + - version + - dependencies type: object - SecurityMonitoringDatasetAttributesResponse: - description: The attributes of a Cloud SIEM dataset. + SBOMComponent: + description: Software or hardware component. properties: - createdAt: - description: The creation timestamp of the dataset, in ISO 8601 format. - example: "2025-03-20T10:00:00Z" - type: string - createdByHandle: - description: The Datadog handle of the user who created the dataset. - example: bruce.lee - type: string - createdByName: - description: The display name of the user who created the dataset. - example: Bruce Lee - type: string - definition: - $ref: "#/components/schemas/SecurityMonitoringDatasetDefinition" - description: - description: The description of the dataset. - example: A sample dataset used for detection rules. - type: string - id: - description: The UUID of the dataset. - example: 123e4567-e89b-12d3-a456-426614174000 - type: string - isDefault: - description: Whether the dataset is an out-of-the-box dataset provided by Datadog. - example: false - type: boolean - isDeprecated: - description: Whether the dataset is marked as deprecated. - example: false - type: boolean - modifiedAt: - description: The timestamp of the last modification of the dataset, in ISO 8601 format. - example: "2025-03-20T10:00:00Z" + bom-ref: + description: An optional identifier that can be used to reference the component elsewhere in the BOM. + example: "pkg:golang/google.golang.org/grpc@1.68.1" type: string + licenses: + description: The software licenses of the SBOM component. + items: + $ref: "#/components/schemas/SBOMComponentLicense" + type: array name: - description: The unique name of the dataset. - example: sample_dataset - type: string - updatedByHandle: - description: The Datadog handle of the user who last updated the dataset. - example: bruce.lee - nullable: true + description: The name of the component. This will often be a shortened, single name of the component. + example: "google.golang.org/grpc" type: string - updatedByName: - description: The display name of the user who last updated the dataset. - example: Bruce Lee - nullable: true + properties: + description: The custom properties of the component of the SBOM. + items: + $ref: "#/components/schemas/SBOMComponentProperty" + type: array + purl: + description: Specifies the package-url (purl). The purl, if specified, MUST be valid and conform to the [specification](https://github.com/package-url/purl-spec). + example: "pkg:golang/google.golang.org/grpc@1.68.1" type: string + supplier: + $ref: "#/components/schemas/SBOMComponentSupplier" + type: + $ref: "#/components/schemas/SBOMComponentType" version: - description: The current version of the dataset. - example: 1 - format: int64 - type: integer + description: The component version. + example: "1.68.1" + type: string required: - - id + - type - name - - description - version - - definition - - createdAt - - createdByHandle - - createdByName - - modifiedAt - - updatedByHandle - - updatedByName - - isDefault - - isDeprecated + - supplier type: object - SecurityMonitoringDatasetColumn: - description: A column exposed by an event platform dataset. + SBOMComponentDependency: + description: The dependencies of a component of the SBOM. properties: - column: - description: The name of the column. - example: message - type: string - type: - description: The type of the column value. - example: string + dependsOn: + description: The components that are dependencies of the ref component. + items: + description: A package URL (purl) identifying a dependency of the component. + example: pkg:golang/google.golang.org/grpc@1.68.1 + type: string + required: + - ref + - dependsOn + type: array + ref: + description: The identifier for the related component. + example: Repository|github.com/datadog/datadog-agent type: string - required: - - column - - type - type: object - SecurityMonitoringDatasetCreateData: - description: The data wrapper of a dataset create request. - properties: - attributes: - $ref: "#/components/schemas/SecurityMonitoringDatasetAttributesRequest" - type: - $ref: "#/components/schemas/SecurityMonitoringDatasetCreateType" - required: - - type - - attributes - type: object - SecurityMonitoringDatasetCreateRequest: - description: Request body for creating a Cloud SIEM dataset. - properties: - data: - $ref: "#/components/schemas/SecurityMonitoringDatasetCreateData" - required: - - data type: object - SecurityMonitoringDatasetCreateResponse: - description: Response returned after creating a dataset. + SBOMComponentLicense: + description: The software license of the component of the SBOM. properties: - data: - $ref: "#/components/schemas/SecurityMonitoringDatasetCreateResponseData" + license: + $ref: "#/components/schemas/SBOMComponentLicenseLicense" required: - - data + - license type: object - SecurityMonitoringDatasetCreateResponseData: - description: The data wrapper of a dataset create response. + SBOMComponentLicenseLicense: + description: The software license of the component of the SBOM. properties: - id: - description: The UUID of the newly created dataset. - example: 123e4567-e89b-12d3-a456-426614174000 + name: + description: The name of the software license of the component of the SBOM. + example: MIT type: string - type: - $ref: "#/components/schemas/SecurityMonitoringDatasetType" required: - - id - - type + - name type: object - SecurityMonitoringDatasetCreateType: - description: The type of resource for a dataset create request. + SBOMComponentLicenseType: + description: The SBOM component license type. enum: - - datasetCreate - example: datasetCreate + - network_strong_copyleft + - non_standard_copyleft + - other_non_free + - other_non_standard + - permissive + - public_domain + - strong_copyleft + - weak_copyleft + example: application type: string x-enum-varnames: - - DATASET_CREATE - SecurityMonitoringDatasetData: - description: The data wrapper of a dataset response. + - NETWORK_STRONG_COPYLEFT + - NON_STANDARD_COPYLEFT + - OTHER_NON_FREE + - OTHER_NON_STANDARD + - PERMISSIVE + - PUBLIC_DOMAIN + - STRONG_COPYLEFT + - WEAK_COPYLEFT + SBOMComponentProperty: + description: The custom property of the component of the SBOM. properties: - attributes: - $ref: "#/components/schemas/SecurityMonitoringDatasetAttributesResponse" - id: - description: The UUID of the dataset. - example: 123e4567-e89b-12d3-a456-426614174000 + name: + description: The name of the custom property of the component of the SBOM. + example: license_type + type: string + value: + description: The value of the custom property of the component of the SBOM. + example: permissive type: string - type: - $ref: "#/components/schemas/SecurityMonitoringDatasetType" required: - - id - - type - - attributes + - name + - value type: object - SecurityMonitoringDatasetDefinition: - description: |- - The definition of the dataset. The shape depends on the value of `data_source`. - Use `reference_table` or `managed_resource` for a referential dataset, or one of the - event platform sources (for example `logs`, `audit`, `events`, `spans`, `rum`) for - an event platform dataset. + SBOMComponentSupplier: + description: The supplier of the component. properties: - columns: - description: For event platform datasets, the list of columns exposed by the dataset. - items: - $ref: "#/components/schemas/SecurityMonitoringDatasetColumn" - type: array - data_source: - description: The data source backing this dataset definition. - example: logs - type: string - indexes: - description: For event platform datasets, the list of indexes to query. - items: - type: string - type: array name: - description: The unique name of the dataset. Must start with a lowercase letter and contain only lowercase letters, digits, and underscores (max 255 characters). - example: sample_dataset - type: string - query_filter: - description: For referential datasets, an optional filter expression applied to the table. - example: status = 'active' - type: string - search: - $ref: "#/components/schemas/SecurityMonitoringDatasetSearch" - storage: - description: Storage tier the dataset reads from. Applies to event platform datasets. - example: hot - type: string - table_name: - description: For referential datasets, the name of the underlying table. - example: my_reference_table + description: Identifier of the supplier of the component. + example: https://go.dev type: string - time_window: - $ref: "#/components/schemas/SecurityMonitoringDatasetTimeWindow" required: - - data_source - name type: object - SecurityMonitoringDatasetDependenciesRequest: - description: Request body for retrieving dependencies of a batch of datasets. - properties: - data: - $ref: "#/components/schemas/SecurityMonitoringDatasetDependenciesRequestData" - required: + SBOMComponentType: + description: The SBOM component type + enum: + - application + - container - data - type: object - SecurityMonitoringDatasetDependenciesRequestAttributes: - description: The attributes of a dataset dependencies request. + - device + - device-driver + - file + - firmware + - framework + - library + - machine-learning-model + - operating-system + - platform + example: application + type: string + x-enum-varnames: + - APPLICATION + - CONTAINER + - DATA + - DEVICE + - DEVICE_DRIVER + - FILE + - FIRMWARE + - FRAMEWORK + - LIBRARY + - MACHINE_LEARNING_MODEL + - OPERATING_SYSTEM + - PLATFORM + SBOMFormat: + description: The SBOM standard + enum: + - CycloneDX + - SPDX + example: CycloneDX + type: string + x-enum-varnames: + - CYCLONEDX + - SPDX + SBOMMetadata: + description: Provides additional information about a BOM. properties: - datasetIds: - description: The list of dataset UUIDs to query dependencies for. Must contain between 1 and 100 items. - example: - - 123e4567-e89b-12d3-a456-426614174000 + authors: + description: List of authors of the SBOM. items: - type: string + $ref: "#/components/schemas/SBOMMetadataAuthor" type: array - required: - - datasetIds - type: object - SecurityMonitoringDatasetDependenciesRequestData: - description: The data wrapper of a dataset dependencies request. - properties: - attributes: - $ref: "#/components/schemas/SecurityMonitoringDatasetDependenciesRequestAttributes" - required: - - attributes - type: object - SecurityMonitoringDatasetDependenciesResponse: - description: Response listing the dependents of each requested dataset. - properties: - data: - $ref: "#/components/schemas/SecurityMonitoringDatasetDependenciesResponseData" - required: - - data + component: + $ref: "#/components/schemas/SBOMMetadataComponent" + timestamp: + description: The timestamp of the SBOM creation. + example: "2025-07-08T07:24:53Z" + type: string type: object - SecurityMonitoringDatasetDependenciesResponseData: - description: The list of dataset dependents entries. - items: - $ref: "#/components/schemas/SecurityMonitoringDatasetDependentsData" - type: array - SecurityMonitoringDatasetDependentsAttributes: - description: The attributes of a dataset dependents entry. + SBOMMetadataAuthor: + description: Author of the SBOM. properties: - count: - description: The number of resources that depend on the dataset. - example: 0 - format: int64 - type: integer - datasetId: - description: The UUID of the dataset whose dependencies are being reported. - example: 123e4567-e89b-12d3-a456-426614174000 - type: string - ids: - $ref: "#/components/schemas/SecurityMonitoringDatasetDependentsIds" - resource_type: - description: The type of resource that depends on the dataset. - example: security_detection_rule + name: + description: The identifier of the Author of the SBOM. + example: "Datadog, Inc." type: string - required: - - datasetId - - resource_type - - ids - - count type: object - SecurityMonitoringDatasetDependentsData: - description: A single entry describing the dependents of one dataset. + SBOMMetadataComponent: + description: The component that the BOM describes. properties: - attributes: - $ref: "#/components/schemas/SecurityMonitoringDatasetDependentsAttributes" - id: - description: The UUID of the dataset. - example: 123e4567-e89b-12d3-a456-426614174000 + name: + description: The name of the component. This will often be a shortened, single name of the component. + example: "github.com/datadog/datadog-agent" type: string type: - $ref: "#/components/schemas/SecurityMonitoringDatasetDependentsType" - required: - - id - - type - - attributes + description: Specifies the type of the component. + example: application + type: string type: object - SecurityMonitoringDatasetDependentsIds: - description: The list of resource IDs that depend on the dataset. - example: [] - items: - type: string - type: array - SecurityMonitoringDatasetDependentsType: - description: The type of resource for a dataset dependents entry. + SBOMType: + description: The JSON:API type. enum: - - datasetDependents - example: datasetDependents + - sboms + example: sboms type: string x-enum-varnames: - - DATASET_DEPENDENTS - SecurityMonitoringDatasetResponse: - description: Response containing a single Cloud SIEM dataset. + - SBOMS + SLOReportInterval: + description: |- + The frequency at which report data is to be generated. + enum: + - daily + - weekly + - monthly + example: weekly + type: string + x-enum-varnames: + - DAILY + - WEEKLY + - MONTHLY + SLOReportPostResponse: + description: The SLO report response. properties: data: - $ref: "#/components/schemas/SecurityMonitoringDatasetData" - required: - - data + $ref: "#/components/schemas/SLOReportPostResponseData" type: object - SecurityMonitoringDatasetSearch: - description: The search clause applied to an event platform dataset. + SLOReportPostResponseData: + description: The data portion of the SLO report response. properties: - query: - description: The search query expression. - example: "*" + id: + description: The ID of the report job. + example: "dc8d92aa-e0af-11ee-af21-1feeaccaa3a3" + type: string + type: + description: The type of ID. + example: "report_id" type: string - required: - - query - type: object - SecurityMonitoringDatasetTimeWindow: - description: An optional time window that overrides the default query time range. - properties: - from: - description: Inclusive start of the time window, in milliseconds since the Unix epoch. - example: 1700000000000 - format: int64 - type: integer - to: - description: Exclusive end of the time window, in milliseconds since the Unix epoch. - example: 1700003600000 - format: int64 - type: integer type: object - SecurityMonitoringDatasetType: - description: The type of resource for a dataset response. + SLOReportStatus: + description: The status of the SLO report job. enum: - - dataset - example: dataset + - in_progress + - completed + - completed_with_errors + - failed + example: "completed" type: string x-enum-varnames: - - DATASET - SecurityMonitoringDatasetUpdateData: - description: The data wrapper of a dataset update request. + - IN_PROGRESS + - COMPLETED + - COMPLETED_WITH_ERRORS + - FAILED + SLOReportStatusGetResponse: + description: The SLO report status response. + properties: + data: + $ref: "#/components/schemas/SLOReportStatusGetResponseData" + type: object + SLOReportStatusGetResponseAttributes: + description: The attributes portion of the SLO report status response. + properties: + status: + $ref: "#/components/schemas/SLOReportStatus" + type: object + SLOReportStatusGetResponseData: + description: The data portion of the SLO report status response. properties: attributes: - $ref: "#/components/schemas/SecurityMonitoringDatasetAttributesRequest" + $ref: "#/components/schemas/SLOReportStatusGetResponseAttributes" + id: + description: The ID of the report job. + example: "dc8d92aa-e0af-11ee-af21-1feeaccaa3a3" + type: string type: - $ref: "#/components/schemas/SecurityMonitoringDatasetUpdateType" - required: - - type - - attributes + description: The type of ID. + example: "report_id" + type: string type: object - SecurityMonitoringDatasetUpdateRequest: - description: Request body for updating a Cloud SIEM dataset. + STIXBundleRequest: + additionalProperties: {} + description: A STIX 2.1 bundle containing threat intelligence indicator objects. properties: - data: - $ref: "#/components/schemas/SecurityMonitoringDatasetUpdateData" + id: + description: The STIX bundle identifier. + example: bundle--11111111-1111-4111-8111-111111111111 + type: string + objects: + description: >- + The STIX objects included in the bundle. Indicator objects are processed and ingested; all other STIX object types are ignored and are not included in the response counters. + example: + - created: "2026-07-22T12:00:00Z" + id: indicator--22222222-2222-4222-8222-222222222222 + modified: "2026-07-22T12:00:00Z" + pattern: "[ipv4-addr:value = '198.51.100.42']" + pattern_type: stix + spec_version: "2.1" + type: indicator + valid_from: "2026-07-22T12:00:00Z" + items: + $ref: "#/components/schemas/STIXObject" + type: array + spec_version: + $ref: "#/components/schemas/STIXSpecVersion" + type: + $ref: "#/components/schemas/STIXBundleType" required: - - data + - type + - id + - objects type: object - SecurityMonitoringDatasetUpdateType: - description: The type of resource for a dataset update request. + STIXBundleType: + description: The STIX object type for a bundle. enum: - - datasetUpdate - example: datasetUpdate + - bundle + example: bundle type: string x-enum-varnames: - - DATASET_UPDATE - SecurityMonitoringDatasetVersionChanges: - description: The list of field changes between this version of the dataset and the previous one. - items: - $ref: "#/components/schemas/SecurityMonitoringDatasetVersionFieldChange" - type: array - SecurityMonitoringDatasetVersionEntry: - description: A single entry in the version history of a dataset. - properties: - changes: - $ref: "#/components/schemas/SecurityMonitoringDatasetVersionChanges" - dataset: - $ref: "#/components/schemas/SecurityMonitoringDatasetAttributesResponse" - required: - - dataset - - changes - type: object - SecurityMonitoringDatasetVersionFieldChange: - description: A single field change between two versions of a dataset. + - BUNDLE + STIXContentEncoding: + description: The content encoding applied to the request body. + enum: + - gzip + example: gzip + type: string + x-enum-varnames: + - GZIP + STIXIngestResponse: + description: The response from a completed STIX ingestion request. properties: - current: - description: The current value of the field, serialized as a JSON value. - example: New description. - field: - description: The name of the field that changed. - example: description - type: string - previous: - description: The previous value of the field, serialized as a JSON value. - example: Old description. + data: + $ref: "#/components/schemas/STIXIngestResponseData" required: - - field - - previous - - current + - data type: object - SecurityMonitoringDatasetVersionHistoryAttributes: - description: The attributes of a dataset version history response. + STIXIngestResponseAttributes: + description: Counters describing the result of the STIX ingestion request. properties: - count: - description: The total number of versions available for this dataset. + accepted: + description: The number of supported indicators accepted. example: 1 format: int64 + minimum: 0 + type: integer + invalid: + description: The number of indicators with patterns that could not be parsed. + example: 0 + format: int64 + minimum: 0 + type: integer + unsupported: + description: >- + The number of indicator objects with an unsupported STIX version or a pattern that produced no supported observable values. + example: 0 + format: int64 + minimum: 0 type: integer - data: - $ref: "#/components/schemas/SecurityMonitoringDatasetVersionHistoryEntries" required: - - data - - count + - accepted + - unsupported + - invalid type: object - SecurityMonitoringDatasetVersionHistoryData: - description: The data wrapper of a dataset version history response. + STIXIngestResponseData: + description: The JSON:API resource describing the completed STIX ingestion request. properties: attributes: - $ref: "#/components/schemas/SecurityMonitoringDatasetVersionHistoryAttributes" + $ref: "#/components/schemas/STIXIngestResponseAttributes" id: - description: The UUID of the dataset. - example: 123e4567-e89b-12d3-a456-426614174000 + description: The normalized vendor identifier. + example: acme type: string type: - $ref: "#/components/schemas/SecurityMonitoringDatasetVersionHistoryType" + $ref: "#/components/schemas/STIXIngestResponseType" required: - - id - type + - id - attributes type: object - SecurityMonitoringDatasetVersionHistoryEntries: - additionalProperties: - $ref: "#/components/schemas/SecurityMonitoringDatasetVersionEntry" - description: A map from version number (as a string) to the dataset state at that version. - type: object - SecurityMonitoringDatasetVersionHistoryResponse: - description: Response containing the version history of a Cloud SIEM dataset. - properties: - data: - $ref: "#/components/schemas/SecurityMonitoringDatasetVersionHistoryData" - required: - - data - type: object - SecurityMonitoringDatasetVersionHistoryType: - description: The type of resource for a dataset version history response. + STIXIngestResponseType: + description: The STIX ingestion resource type. enum: - - dataset_version_history - example: dataset_version_history + - threat-intel-stix-ingest + example: threat-intel-stix-ingest type: string x-enum-varnames: - - DATASET_VERSION_HISTORY - SecurityMonitoringDatasetsListData: - description: A list of dataset data items. - items: - $ref: "#/components/schemas/SecurityMonitoringDatasetData" - type: array - SecurityMonitoringDatasetsListMeta: - description: Metadata returned with a list of datasets. - properties: - totalCount: - description: The total number of datasets matching the request, across all pages. - example: 1 - format: int64 - type: integer - required: - - totalCount - type: object - SecurityMonitoringDatasetsListResponse: - description: Response containing a paginated list of Cloud SIEM datasets. - properties: - data: - $ref: "#/components/schemas/SecurityMonitoringDatasetsListData" - meta: - $ref: "#/components/schemas/SecurityMonitoringDatasetsListMeta" - required: - - data - - meta + - THREAT_INTEL_STIX_INGEST + STIXMetadataObject: + additionalProperties: {} + description: An opaque STIX metadata object. type: object - SecurityMonitoringEntityContextEntityType: - default: entity - description: |- - The type of the entity. Reflects the underlying entity kind from the entity context store - (for example, `siem_entity_identity` for identities). Defaults to `entity` when the kind is unknown. - example: siem_entity_identity - type: string - SecurityMonitoringEntraIdAzureAppRegistrationsAttributes: - description: The attributes of the Entra ID Azure App Registration prerequisites. + STIXObject: + additionalProperties: {} + description: >- + A STIX 2.1 object. Indicator objects are processed and ingested; all other STIX object types are ignored and are not included in the response counters. properties: - azure_app_registrations: - description: The Azure App Registrations discovered for the organization. - items: - $ref: "#/components/schemas/SecurityMonitoringAzureAppRegistration" - type: array - has_valid_prerequisite: - description: Whether at least one Azure App Registration has resource collection enabled. - example: true - type: boolean - integration_id: - description: The ID of the Entra ID integration configuration, if one exists. - example: 11111111-2222-3333-4444-555555555555 + confidence: + description: The confidence in the correctness of the indicator, from 0 through 100. + example: 80 + format: int32 + maximum: 100 + minimum: 0 + type: integer + created: + description: The time when the object was created. + example: "2026-07-22T12:00:00Z" + format: date-time type: string - is_enabled: - description: Whether the Entra ID integration configuration is enabled, if one exists. - example: true + external_references: + description: Optional external reference metadata preserved with the indicator but not interpreted during ingestion. + items: + $ref: "#/components/schemas/STIXMetadataObject" + type: array + id: + description: The STIX object identifier. + example: indicator--22222222-2222-4222-8222-222222222222 + type: string + indicator_types: + description: The open vocabulary terms that categorize the indicator. + example: + - malicious-activity + items: + type: string + type: array + kill_chain_phases: + description: Optional kill chain metadata preserved with the indicator but not interpreted during ingestion. + items: + $ref: "#/components/schemas/STIXMetadataObject" + type: array + labels: + description: Labels associated with the indicator. + example: + - synthetic + items: + type: string + type: array + modified: + description: The time when the object was last modified. + example: "2026-07-22T12:00:00Z" + format: date-time + type: string + object_marking_refs: + description: References to marking definition objects that apply to the indicator. + example: + - marking-definition--33333333-3333-4333-8333-333333333333 + items: + type: string + type: array + pattern: + description: The STIX pattern that identifies the observable. Present on indicator objects. + example: "[ipv4-addr:value = '198.51.100.42']" + type: string + pattern_type: + $ref: "#/components/schemas/STIXPatternType" + revoked: + description: Whether the indicator has been revoked. + example: false type: boolean - subscribed_at: - description: The time at which the Entra ID integration configuration was created, if one exists. - example: "2026-05-01T12:00:00Z" + spec_version: + description: The STIX specification version declared on the object. Objects with an unsupported version are accepted and counted in the `unsupported` response counter. + example: "2.1" + type: string + type: + description: The STIX object type. + example: indicator + type: string + valid_from: + description: The time from which the indicator is considered valid. Present on indicator objects. + example: "2026-07-22T12:00:00Z" + format: date-time + type: string + valid_until: + description: The time until which the indicator is considered valid. + example: "2027-07-22T12:00:00Z" format: date-time type: string required: - - azure_app_registrations - - has_valid_prerequisite + - type + - id type: object - SecurityMonitoringEntraIdAzureAppRegistrationsData: - description: The Azure App Registration prerequisites for the Entra ID integration. + STIXPatternType: + description: The supported STIX pattern language. + enum: + - stix + example: stix + type: string + x-enum-varnames: + - STIX + STIXSpecVersion: + description: The supported STIX specification version. + enum: + - "2.1" + example: "2.1" + type: string + x-enum-varnames: + - VERSION_2_1 + SalesforceIncidentsOrganizationResponseAttributes: + description: Attributes of a Salesforce organization connected to the Datadog Salesforce integration. + properties: + instance_url: + description: The Salesforce instance URL used to call this organization's APIs. + example: "https://acme.my.salesforce.com" + type: string + name: + description: Human-readable name of the Salesforce organization. + example: "Acme Production Org" + type: string + sfdc_org_id: + description: The Salesforce organization identifier (15- or 18-character Salesforce org ID). + example: "00D000000000000" + type: string + sfdc_org_type: + description: The Salesforce organization type (for example, `Production` or `Sandbox`). + example: "Production" + type: string + type: object + SalesforceIncidentsOrganizationResponseData: + description: Salesforce organization data from a response. properties: attributes: - $ref: "#/components/schemas/SecurityMonitoringEntraIdAzureAppRegistrationsAttributes" + $ref: "#/components/schemas/SalesforceIncidentsOrganizationResponseAttributes" id: - description: The ID of the organization the Azure App Registrations belong to. - example: "123456" + description: The Datadog-assigned ID of the connected Salesforce organization. + example: "596da4af-0563-4097-90ff-07230c3f9db3" + maxLength: 100 + minLength: 1 type: string type: - $ref: "#/components/schemas/SecurityMonitoringEntraIdAzureAppRegistrationsResourceType" + $ref: "#/components/schemas/SalesforceIncidentsOrganizationType" required: - id - type - attributes type: object - SecurityMonitoringEntraIdAzureAppRegistrationsResourceType: - default: entra_id_azure_app_registrations - description: The type of the resource. The value should always be `entra_id_azure_app_registrations`. + SalesforceIncidentsOrganizationType: + default: salesforce-incidents-org + description: Salesforce organization resource type. enum: - - entra_id_azure_app_registrations - example: entra_id_azure_app_registrations + - salesforce-incidents-org + example: salesforce-incidents-org type: string x-enum-varnames: - - ENTRA_ID_AZURE_APP_REGISTRATIONS - SecurityMonitoringEntraIdAzureAppRegistrationsResponse: - description: Response containing the Azure App Registration prerequisites for the Entra ID integration. + - SALESFORCE_INCIDENTS_ORG + SalesforceIncidentsOrganizationsResponse: + description: |- + Response containing a list of Salesforce organizations connected to the + Datadog Salesforce integration. properties: data: - $ref: "#/components/schemas/SecurityMonitoringEntraIdAzureAppRegistrationsData" + description: An array of Salesforce organizations. + items: + $ref: "#/components/schemas/SalesforceIncidentsOrganizationResponseData" + type: array required: - data type: object - SecurityMonitoringEntraIdIntegrationConfigCreateAttributes: - description: The attributes of an Entra ID entity context sync configuration to create. + SalesforceIncidentsTemplateCreateAttributes: + description: Salesforce incident template attributes for a create request. properties: - domain: - description: The domain associated with the external entity source. - example: siem-test.com + description: + description: Long-form description body for Salesforce incidents created from this template. + example: "An incident was detected by Datadog monitors." + maxLength: 2048 + minLength: 1 type: string - integration_type: - $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeEntraId" name: - description: The display name for the entity context sync configuration. - example: My Entra ID Integration + description: Human-readable name for this incident template. Must be unique within your organization. + example: "production-outage" + maxLength: 100 + minLength: 1 type: string - settings: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" - required: - - integration_type - - domain - - name - type: object - SecurityMonitoringEntraIdIntegrationConfigUpdateAttributes: - description: Fields to update on an Entra ID entity context sync configuration. - properties: - domain: - description: The new domain associated with the external entity source. - example: siem-test.com + owner_id: + description: The Salesforce user ID that owns incidents created from this template. + example: "005000000000000" + maxLength: 255 + minLength: 1 type: string - enabled: - description: Whether the entity context sync should be enabled. - example: true - type: boolean - integration_type: - $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeEntraId" - name: - description: The new display name for the entity context sync configuration. - example: My Entra ID Integration (renamed) + priority: + $ref: "#/components/schemas/SalesforceIncidentsTemplatePriority" + salesforce_org_id: + description: The Datadog-assigned ID of the Salesforce organization this template belongs to. + example: "596da4af-0563-4097-90ff-07230c3f9db3" + format: uuid + type: string + subject: + description: Subject line for Salesforce incidents created from this template. + example: "Datadog Incident: Production Outage" + maxLength: 255 + minLength: 1 type: string - settings: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" required: - - integration_type + - salesforce_org_id + - name + - subject + - description + - owner_id + - priority type: object - SecurityMonitoringEntraIdIntegrationCredentialsValidateAttributes: - description: The Entra ID credentials to validate against the external entity source. + SalesforceIncidentsTemplateCreateData: + description: Salesforce incident template data for a create request. properties: - domain: - description: The domain associated with the external entity source. - example: siem-test.com - type: string - integration_type: - $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeEntraId" + attributes: + $ref: "#/components/schemas/SalesforceIncidentsTemplateCreateAttributes" + type: + $ref: "#/components/schemas/SalesforceIncidentsTemplateType" required: - - integration_type - - domain + - type + - attributes type: object - SecurityMonitoringFilter: - description: The rule's suppression filter. + SalesforceIncidentsTemplateCreateRequest: + description: Create request for a Salesforce incident template. properties: - action: - $ref: "#/components/schemas/SecurityMonitoringFilterAction" - query: - description: Query for selecting logs to apply the filtering action. - type: string + data: + $ref: "#/components/schemas/SalesforceIncidentsTemplateCreateData" + required: + - data type: object - SecurityMonitoringFilterAction: - description: The type of filtering action. + SalesforceIncidentsTemplatePriority: + description: Priority of the Salesforce incident created from this template. enum: - - require - - suppress + - Critical + - High + - Moderate + - Low + example: "High" type: string x-enum-varnames: - - REQUIRE - - SUPPRESS - SecurityMonitoringGoogleWorkspaceIntegrationConfigCreateAttributes: - description: The attributes of a Google Workspace entity context sync configuration to create. + - CRITICAL + - HIGH + - MODERATE + - LOW + SalesforceIncidentsTemplateResponse: + description: Response containing a Salesforce incident template. properties: - domain: - description: The domain associated with the external entity source. - example: siem-test.com - type: string - integration_type: - $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeGoogleWorkspace" - name: - description: The display name for the entity context sync configuration. - example: My GWS Integration - type: string - secrets: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets" - settings: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" + data: + $ref: "#/components/schemas/SalesforceIncidentsTemplateResponseData" required: - - integration_type - - domain - - name - - secrets + - data type: object - SecurityMonitoringGoogleWorkspaceIntegrationConfigUpdateAttributes: - description: Fields to update on a Google Workspace entity context sync configuration. + SalesforceIncidentsTemplateResponseAttributes: + description: Salesforce incident template attributes returned by the API. properties: - domain: - description: The new domain associated with the external entity source. - example: siem-test.com + description: + description: Long-form description body for Salesforce incidents created from this template. + example: "An incident was detected by Datadog monitors." type: string - enabled: - description: Whether the entity context sync should be enabled. - example: true - type: boolean - integration_type: - $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeGoogleWorkspace" name: - description: The new display name for the entity context sync configuration. - example: My GWS Integration (renamed) + description: Human-readable name for this incident template. + example: "production-outage" type: string - secrets: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets" - settings: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" - required: - - integration_type - type: object - SecurityMonitoringGoogleWorkspaceIntegrationCredentialsValidateAttributes: - description: The Google Workspace credentials to validate against the external entity source. - properties: - domain: - description: The domain associated with the external entity source. - example: siem-test.com + owner_id: + description: The Salesforce user ID that owns incidents created from this template. + example: "005000000000000" type: string - integration_type: - $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeGoogleWorkspace" - secrets: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets" - required: - - integration_type - - domain - - secrets - type: object - SecurityMonitoringIntegrationActivateAttributes: - description: Overrides applied when activating the integration. All fields are optional. - properties: - domain: - description: The domain associated with the external entity source. - example: default + priority: + $ref: "#/components/schemas/SalesforceIncidentsTemplatePriority" + salesforce_org_id: + description: The Datadog-assigned ID of the Salesforce organization this template belongs to. + example: "596da4af-0563-4097-90ff-07230c3f9db3" + format: uuid type: string - name: - description: The display name for the entity context sync configuration. - example: My Entra ID Integration + subject: + description: Subject line for Salesforce incidents created from this template. + example: "Datadog Incident: Production Outage" type: string - settings: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" type: object - SecurityMonitoringIntegrationActivateData: - description: The configuration overrides for the integration to activate. + SalesforceIncidentsTemplateResponseData: + description: Salesforce incident template data from a response. properties: attributes: - $ref: "#/components/schemas/SecurityMonitoringIntegrationActivateAttributes" + $ref: "#/components/schemas/SalesforceIncidentsTemplateResponseAttributes" + id: + description: The ID of the Salesforce incident template. + example: "596da4af-0563-4097-90ff-07230c3f9db3" + maxLength: 100 + minLength: 1 + type: string type: - $ref: "#/components/schemas/SecurityMonitoringIntegrationActivateResourceType" - type: object - SecurityMonitoringIntegrationActivateRequest: - description: Request body to activate an entity context sync integration for a source type that does not require secrets. - properties: - data: - $ref: "#/components/schemas/SecurityMonitoringIntegrationActivateData" + $ref: "#/components/schemas/SalesforceIncidentsTemplateType" + required: + - id + - type + - attributes type: object - SecurityMonitoringIntegrationActivateResourceType: - default: activate_entra_id_request - description: The type of the resource. The value should always be `activate_entra_id_request`. + SalesforceIncidentsTemplateType: + default: salesforce-incidents-incident-template + description: Salesforce incident template resource type. enum: - - activate_entra_id_request - example: activate_entra_id_request + - salesforce-incidents-incident-template + example: salesforce-incidents-incident-template type: string x-enum-varnames: - - ACTIVATE_ENTRA_ID_REQUEST - SecurityMonitoringIntegrationConfigAttributes: - description: The attributes of an entity context sync configuration as returned by the API. + - SALESFORCE_INCIDENTS_INCIDENT_TEMPLATE + SalesforceIncidentsTemplateUpdateAttributes: + description: Salesforce incident template attributes for an update request. properties: - created_at: - description: The time at which the entity context sync configuration was created. - example: "2026-05-01T12:00:00Z" - format: date-time + description: + description: Long-form description body for Salesforce incidents created from this template. + example: "An incident was detected by Datadog monitors." + maxLength: 2048 + minLength: 1 type: string - domain: - description: The domain associated with the external entity source (for example, the customer's identity provider domain). - example: siem-test.com + name: + description: Human-readable name for this incident template. + example: "production-outage" + maxLength: 100 + minLength: 1 type: string - enabled: - description: Whether the sync is enabled and actively ingesting entities into Cloud SIEM. - example: true - type: boolean - integration_type: - $ref: "#/components/schemas/SecurityMonitoringIntegrationType" - modified_at: - description: The time at which the entity context sync configuration was last modified. - example: "2026-05-01T12:00:00Z" - format: date-time + owner_id: + description: The Salesforce user ID that owns incidents created from this template. + example: "005000000000000" + maxLength: 255 + minLength: 1 type: string - name: - description: The display name of the entity context sync configuration. - example: My GWS Integration + priority: + $ref: "#/components/schemas/SalesforceIncidentsTemplatePriority" + salesforce_org_id: + description: The Datadog-assigned ID of the Salesforce organization this template belongs to. + example: "596da4af-0563-4097-90ff-07230c3f9db3" + format: uuid + type: string + subject: + description: Subject line for Salesforce incidents created from this template. + example: "Datadog Incident: Production Outage" + maxLength: 255 + minLength: 1 type: string - settings: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" - state: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigState" - required: - - enabled - - domain - - integration_type type: object - SecurityMonitoringIntegrationConfigCreateAttributes: - description: The attributes of the entity context sync configuration to create. - discriminator: - mapping: - CROWDSTRIKE: "#/components/schemas/SecurityMonitoringCrowdStrikeIntegrationConfigCreateAttributes" - ENTRA_ID: "#/components/schemas/SecurityMonitoringEntraIdIntegrationConfigCreateAttributes" - GOOGLE_WORKSPACE: "#/components/schemas/SecurityMonitoringGoogleWorkspaceIntegrationConfigCreateAttributes" - OKTA: "#/components/schemas/SecurityMonitoringOktaIntegrationConfigCreateAttributes" - SENTINELONE: "#/components/schemas/SecurityMonitoringSentinelOneIntegrationConfigCreateAttributes" - propertyName: integration_type - oneOf: - - $ref: "#/components/schemas/SecurityMonitoringGoogleWorkspaceIntegrationConfigCreateAttributes" - - $ref: "#/components/schemas/SecurityMonitoringOktaIntegrationConfigCreateAttributes" - - $ref: "#/components/schemas/SecurityMonitoringEntraIdIntegrationConfigCreateAttributes" - - $ref: "#/components/schemas/SecurityMonitoringCrowdStrikeIntegrationConfigCreateAttributes" - - $ref: "#/components/schemas/SecurityMonitoringSentinelOneIntegrationConfigCreateAttributes" - SecurityMonitoringIntegrationConfigCreateData: - description: The entity context sync configuration to create. + SalesforceIncidentsTemplateUpdateData: + description: Salesforce incident template data for an update request. properties: attributes: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigCreateAttributes" + $ref: "#/components/schemas/SalesforceIncidentsTemplateUpdateAttributes" + id: + description: The ID of the Salesforce incident template being updated. Must match the path parameter. + example: "596da4af-0563-4097-90ff-07230c3f9db3" + maxLength: 100 + minLength: 1 + type: string type: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigResourceType" + $ref: "#/components/schemas/SalesforceIncidentsTemplateType" required: + - id - type - attributes type: object - SecurityMonitoringIntegrationConfigCreateRequest: - description: Request body to create an entity context sync configuration. + SalesforceIncidentsTemplateUpdateRequest: + description: Update request for a Salesforce incident template. properties: data: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigCreateData" + $ref: "#/components/schemas/SalesforceIncidentsTemplateUpdateData" required: - data type: object - SecurityMonitoringIntegrationConfigCrowdStrikeSecrets: - description: Credentials for a CrowdStrike entity context sync. + SalesforceIncidentsTemplatesResponse: + description: Response containing a list of Salesforce incident templates. properties: - client_id: - description: The CrowdStrike API client ID. - example: abcdef0123456789abcdef0123456789 - type: string - client_secret: - description: The CrowdStrike API client secret. - example: aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789ABCDEF - type: string + data: + description: An array of Salesforce incident templates. + items: + $ref: "#/components/schemas/SalesforceIncidentsTemplateResponseData" + type: array required: - - client_id - - client_secret + - data type: object - SecurityMonitoringIntegrationConfigData: - description: An entity context sync configuration. + SampleLogGenerationBulkSubscriptionAttributes: + description: The attributes for creating sample log generation subscriptions for multiple content packs. + properties: + content_pack_ids: + description: The identifiers of the Cloud SIEM content packs to subscribe to. At most five content packs can be requested in a single call. + example: + - aws-cloudtrail + items: + description: A Cloud SIEM content pack identifier. + type: string + maxItems: 5 + type: array + duration: + $ref: "#/components/schemas/SampleLogGenerationDuration" + required: + - content_pack_ids + type: object + SampleLogGenerationBulkSubscriptionData: + description: The bulk subscription request body. properties: attributes: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigAttributes" - id: - description: The unique identifier of the integration configuration. - example: 11111111-2222-3333-4444-555555555555 - type: string + $ref: "#/components/schemas/SampleLogGenerationBulkSubscriptionAttributes" type: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigResourceType" + $ref: "#/components/schemas/SampleLogGenerationBulkSubscriptionRequestType" required: - - id - type - attributes type: object - SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets: - description: Credentials for a Google Workspace entity context sync. - properties: - admin_email: - description: The admin email to impersonate for domain-wide delegation. - example: admin@example.com - type: string - service_account_json: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigGoogleWorkspaceServiceAccount" - required: - - service_account_json - type: object - SecurityMonitoringIntegrationConfigGoogleWorkspaceServiceAccount: - additionalProperties: {} - description: The Google Cloud service account JSON used to authenticate against the Google Workspace Admin SDK. Additional keys beyond those documented are preserved. + SampleLogGenerationBulkSubscriptionItemMeta: + description: Per-item status returned for a bulk subscription request. properties: - client_email: - description: The service account client email. - example: svc@my-project.iam.gserviceaccount.com - type: string - private_key: - description: The service account private key. - example: "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----" - type: string - project_id: - description: The Google Cloud project ID that owns the service account. - example: my-project - type: string - type: - description: The service account type. Must be `service_account`. - example: service_account + error: + description: A description of the error encountered for this content pack, if the subscription could not be created. + example: content pack does not exist type: string + status: + description: The HTTP status code that resulted from creating the subscription for this content pack. + example: 200 + format: int32 + maximum: 599 + type: integer required: - - type - - project_id - - private_key - - client_email + - status type: object - SecurityMonitoringIntegrationConfigOktaSecrets: - description: Credentials for an Okta entity context sync. + SampleLogGenerationBulkSubscriptionRequest: + description: Request body to create sample log generation subscriptions for multiple content packs at once. properties: - api_token: - description: The Okta API token used to authenticate against the Okta API. - example: 00aBcDeFgHiJkLmNoPqRsTuVwXyZ - type: string + data: + $ref: "#/components/schemas/SampleLogGenerationBulkSubscriptionData" required: - - api_token + - data type: object - SecurityMonitoringIntegrationConfigResourceType: - default: integration_config - description: The type of the resource. The value should always be `integration_config`. + SampleLogGenerationBulkSubscriptionRequestType: + default: bulk_subscription_requests + description: The type of the resource. The value should always be `bulk_subscription_requests`. enum: - - integration_config - example: integration_config + - bulk_subscription_requests + example: bulk_subscription_requests type: string x-enum-varnames: - - INTEGRATION_CONFIG - SecurityMonitoringIntegrationConfigResponse: - description: Response containing a single entity context sync configuration. + - BULK_SUBSCRIPTION_REQUESTS + SampleLogGenerationBulkSubscriptionResponse: + description: Response containing the per-content-pack results of a bulk subscription request. properties: data: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigData" + description: The list of bulk subscription results, one per requested content pack. + items: + $ref: "#/components/schemas/SampleLogGenerationBulkSubscriptionResultItem" + type: array required: - data type: object - SecurityMonitoringIntegrationConfigSentinelOneSecrets: - description: Credentials for a SentinelOne entity context sync. + SampleLogGenerationBulkSubscriptionResultItem: + description: A single result entry returned by the bulk subscription endpoint. properties: - api_token: - description: The SentinelOne API token. - example: aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789 + attributes: + $ref: "#/components/schemas/SampleLogGenerationSubscriptionAttributes" + id: + description: The unique identifier of the subscription, when one was created. + example: "123" type: string + meta: + $ref: "#/components/schemas/SampleLogGenerationBulkSubscriptionItemMeta" + type: + $ref: "#/components/schemas/SampleLogGenerationSubscriptionResourceType" required: - - api_token - type: object - SecurityMonitoringIntegrationConfigSettings: - additionalProperties: {} - description: Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the source type. - example: - setting1: value1 + - id + - type + - attributes + - meta type: object - SecurityMonitoringIntegrationConfigState: - description: The state of the credentials configured on the entity context sync. + SampleLogGenerationDuration: + default: 3d + description: How long the subscription should remain active before expiring. enum: - - valid - - invalid - - initializing - example: valid + - 1h + - 1d + - 3d + - 7d + example: 3d type: string x-enum-varnames: - - VALID - - INVALID - - INITIALIZING - SecurityMonitoringIntegrationConfigUpdateAttributes: - description: Fields to update on the entity context sync configuration. All fields other than the integration type are optional. - discriminator: - mapping: - CROWDSTRIKE: "#/components/schemas/SecurityMonitoringCrowdStrikeIntegrationConfigUpdateAttributes" - ENTRA_ID: "#/components/schemas/SecurityMonitoringEntraIdIntegrationConfigUpdateAttributes" - GOOGLE_WORKSPACE: "#/components/schemas/SecurityMonitoringGoogleWorkspaceIntegrationConfigUpdateAttributes" - OKTA: "#/components/schemas/SecurityMonitoringOktaIntegrationConfigUpdateAttributes" - SENTINELONE: "#/components/schemas/SecurityMonitoringSentinelOneIntegrationConfigUpdateAttributes" - propertyName: integration_type - oneOf: - - $ref: "#/components/schemas/SecurityMonitoringGoogleWorkspaceIntegrationConfigUpdateAttributes" - - $ref: "#/components/schemas/SecurityMonitoringOktaIntegrationConfigUpdateAttributes" - - $ref: "#/components/schemas/SecurityMonitoringEntraIdIntegrationConfigUpdateAttributes" - - $ref: "#/components/schemas/SecurityMonitoringCrowdStrikeIntegrationConfigUpdateAttributes" - - $ref: "#/components/schemas/SecurityMonitoringSentinelOneIntegrationConfigUpdateAttributes" - SecurityMonitoringIntegrationConfigUpdateData: - description: The entity context sync configuration fields to update. + - ONE_HOUR + - ONE_DAY + - THREE_DAYS + - SEVEN_DAYS + SampleLogGenerationSubscriptionAttributes: + description: The attributes describing a sample log generation subscription. + properties: + content_pack_id: + description: The identifier of the Cloud SIEM content pack the subscription targets. + example: aws-cloudtrail + type: string + created_at: + description: The time at which the subscription was created. + example: "2026-05-08T20:02:13.77481Z" + format: date-time + type: string + expires_at: + description: The time at which the subscription expires and stops generating logs. + example: "2026-05-11T20:02:13.77481Z" + format: date-time + type: string + is_active: + description: Whether the subscription is currently active and generating logs. + example: true + type: boolean + status: + $ref: "#/components/schemas/SampleLogGenerationSubscriptionStatus" + required: + - content_pack_id + - status + - is_active + - created_at + - expires_at + type: object + SampleLogGenerationSubscriptionCreateAttributes: + description: The attributes for creating a sample log generation subscription. + properties: + content_pack_id: + description: The identifier of the Cloud SIEM content pack to subscribe to. + example: aws-cloudtrail + type: string + duration: + $ref: "#/components/schemas/SampleLogGenerationDuration" + required: + - content_pack_id + type: object + SampleLogGenerationSubscriptionCreateData: + description: The subscription request body. properties: attributes: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigUpdateAttributes" + $ref: "#/components/schemas/SampleLogGenerationSubscriptionCreateAttributes" type: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigResourceType" + $ref: "#/components/schemas/SampleLogGenerationSubscriptionRequestType" required: - type - attributes type: object - SecurityMonitoringIntegrationConfigUpdateRequest: - description: Request body to update an entity context sync configuration. Supports partial updates. - properties: - data: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigUpdateData" - required: - - data - type: object - SecurityMonitoringIntegrationConfigsResponse: - description: Response containing a list of entity context sync configurations. + SampleLogGenerationSubscriptionCreateRequest: + description: Request body to create a sample log generation subscription for a single content pack. properties: data: - description: The list of integration configurations. - items: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigData" - type: array + $ref: "#/components/schemas/SampleLogGenerationSubscriptionCreateData" required: - data type: object - SecurityMonitoringIntegrationCredentialsValidateAttributes: - description: The credentials to validate against the external entity source. - discriminator: - mapping: - CROWDSTRIKE: "#/components/schemas/SecurityMonitoringCrowdStrikeIntegrationCredentialsValidateAttributes" - ENTRA_ID: "#/components/schemas/SecurityMonitoringEntraIdIntegrationCredentialsValidateAttributes" - GOOGLE_WORKSPACE: "#/components/schemas/SecurityMonitoringGoogleWorkspaceIntegrationCredentialsValidateAttributes" - OKTA: "#/components/schemas/SecurityMonitoringOktaIntegrationCredentialsValidateAttributes" - SENTINELONE: "#/components/schemas/SecurityMonitoringSentinelOneIntegrationCredentialsValidateAttributes" - propertyName: integration_type - oneOf: - - $ref: "#/components/schemas/SecurityMonitoringGoogleWorkspaceIntegrationCredentialsValidateAttributes" - - $ref: "#/components/schemas/SecurityMonitoringOktaIntegrationCredentialsValidateAttributes" - - $ref: "#/components/schemas/SecurityMonitoringEntraIdIntegrationCredentialsValidateAttributes" - - $ref: "#/components/schemas/SecurityMonitoringCrowdStrikeIntegrationCredentialsValidateAttributes" - - $ref: "#/components/schemas/SecurityMonitoringSentinelOneIntegrationCredentialsValidateAttributes" - SecurityMonitoringIntegrationCredentialsValidateData: - description: The credentials to validate. + SampleLogGenerationSubscriptionData: + description: A sample log generation subscription. properties: attributes: - $ref: "#/components/schemas/SecurityMonitoringIntegrationCredentialsValidateAttributes" + $ref: "#/components/schemas/SampleLogGenerationSubscriptionAttributes" + id: + description: The unique identifier of the subscription. + example: "789" + type: string type: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigResourceType" + $ref: "#/components/schemas/SampleLogGenerationSubscriptionResourceType" required: + - id - type - attributes type: object - SecurityMonitoringIntegrationCredentialsValidateRequest: - description: Request body to validate credentials against an external entity source before creating a sync configuration. - properties: - data: - $ref: "#/components/schemas/SecurityMonitoringIntegrationCredentialsValidateData" - required: - - data - type: object - SecurityMonitoringIntegrationType: - description: The type of external source that provides entities to Cloud SIEM. - enum: - - GOOGLE_WORKSPACE - - OKTA - - ENTRA_ID - - CROWDSTRIKE - - SENTINELONE - example: GOOGLE_WORKSPACE - type: string - x-enum-varnames: - - GOOGLE_WORKSPACE - - OKTA - - ENTRA_ID - - CROWDSTRIKE - - SENTINELONE - SecurityMonitoringIntegrationTypeCrowdStrike: - description: The source type for a CrowdStrike entity context sync. - enum: - - CROWDSTRIKE - example: CROWDSTRIKE - type: string - x-enum-varnames: - - CROWDSTRIKE - SecurityMonitoringIntegrationTypeEntraId: - description: The source type for an Entra ID entity context sync. - enum: - - ENTRA_ID - example: ENTRA_ID - type: string - x-enum-varnames: - - ENTRA_ID - SecurityMonitoringIntegrationTypeGoogleWorkspace: - description: The source type for a Google Workspace entity context sync. + SampleLogGenerationSubscriptionRequestType: + default: subscription_requests + description: The type of the resource. The value should always be `subscription_requests`. enum: - - GOOGLE_WORKSPACE - example: GOOGLE_WORKSPACE + - subscription_requests + example: subscription_requests type: string x-enum-varnames: - - GOOGLE_WORKSPACE - SecurityMonitoringIntegrationTypeOkta: - description: The source type for an Okta entity context sync. + - SUBSCRIPTION_REQUESTS + SampleLogGenerationSubscriptionResourceType: + default: subscriptions + description: The type of the resource. The value should always be `subscriptions`. enum: - - OKTA - example: OKTA + - subscriptions + example: subscriptions type: string x-enum-varnames: - - OKTA - SecurityMonitoringIntegrationTypeSentinelOne: - description: The source type for a SentinelOne entity context sync. + - SUBSCRIPTIONS + SampleLogGenerationSubscriptionResponse: + description: Response containing a single sample log generation subscription. + properties: + data: + $ref: "#/components/schemas/SampleLogGenerationSubscriptionData" + required: + - data + type: object + SampleLogGenerationSubscriptionStatus: + description: The status of the subscription. enum: - - SENTINELONE - example: SENTINELONE + - subscribed + - renewed + - unsubscribed + - no_active_subscription + - not_available + - active + - expired + example: subscribed type: string x-enum-varnames: - - SENTINELONE - SecurityMonitoringListRulesResponse: - description: List of rules. + - SUBSCRIBED + - RENEWED + - UNSUBSCRIBED + - NO_ACTIVE_SUBSCRIPTION + - NOT_AVAILABLE + - ACTIVE + - EXPIRED + SampleLogGenerationSubscriptionsResponse: + description: Response containing a list of sample log generation subscriptions. properties: data: - description: Array containing the list of rules. + description: The list of sample log generation subscriptions. items: - $ref: "#/components/schemas/SecurityMonitoringRuleResponse" + $ref: "#/components/schemas/SampleLogGenerationSubscriptionData" type: array meta: - $ref: "#/components/schemas/ResponseMetaAttributes" + $ref: "#/components/schemas/SampleLogGenerationSubscriptionsResponseMeta" + required: + - data + - meta type: object - SecurityMonitoringOktaIntegrationConfigCreateAttributes: - description: The attributes of an Okta entity context sync configuration to create. + SampleLogGenerationSubscriptionsResponseMeta: + description: Metadata returned alongside a list of sample log generation subscriptions. properties: - domain: - description: The domain associated with the external entity source. - example: siem-test.com - type: string - integration_type: - $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeOkta" - name: - description: The display name for the entity context sync configuration. - example: My Okta Integration + total_subscriptions: + description: The total number of subscriptions matching the request, irrespective of pagination. + example: 1 + format: int32 + maximum: 2147483647 + type: integer + required: + - total_subscriptions + type: object + SampleLogGenerationSubscriptionsStatusFilter: + default: active + description: Filter that controls whether to return only active subscriptions or every subscription on record. + enum: + - active + - all + example: active + type: string + x-enum-varnames: + - ACTIVE + - ALL + SastRulesetData: + description: The primary data object representing a SAST ruleset. + properties: + attributes: + $ref: "#/components/schemas/SastRulesetDataAttributes" + id: + description: The unique identifier of the ruleset resource. + example: python-best-practices type: string - secrets: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigOktaSecrets" - settings: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" + type: + $ref: "#/components/schemas/GetMultipleRulesetsResponseDataAttributesRulesetsItemsDataType" required: - - integration_type - - domain - - name - - secrets + - id + - type + - attributes type: object - SecurityMonitoringOktaIntegrationConfigUpdateAttributes: - description: Fields to update on an Okta entity context sync configuration. + SastRulesetDataAttributes: + description: The attributes of a SAST ruleset, including its name, description, and rules. properties: - domain: - description: The new domain associated with the external entity source. - example: siem-test.com + description: + description: A detailed description of the ruleset's purpose and the types of issues it targets. + example: A collection of Python best practice rules. type: string - enabled: - description: Whether the entity context sync should be enabled. - example: true - type: boolean - integration_type: - $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeOkta" name: - description: The new display name for the entity context sync configuration. - example: My Okta Integration (renamed) + description: The unique name of the ruleset. + example: python-best-practices + type: string + rules: + description: The list of static analysis rules included in this ruleset. + items: + $ref: "#/components/schemas/GetMultipleRulesetsResponseDataAttributesRulesetsItemsRulesItems" + type: array + short_description: + description: A brief summary of the ruleset, suitable for display in listings. + example: Python best practices ruleset. type: string - secrets: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigOktaSecrets" - settings: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" required: - - integration_type + - name + - short_description + - description + - rules type: object - SecurityMonitoringOktaIntegrationCredentialsValidateAttributes: - description: The Okta credentials to validate against the external entity source. + SastRulesetResponse: + description: The response payload containing a single SAST ruleset and its rules. properties: - domain: - description: The domain associated with the external entity source. - example: siem-test.com - type: string - integration_type: - $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeOkta" - secrets: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigOktaSecrets" + data: + $ref: "#/components/schemas/SastRulesetData" required: - - integration_type - - domain - - secrets + - data type: object - SecurityMonitoringPaginatedSuppressionsResponse: - description: Response object containing the available suppression rules with pagination metadata. + SastRulesetsResponse: + description: The response payload containing a list of SAST rulesets and their rules. properties: data: - description: A list of suppressions objects. + description: The list of SAST rulesets returned in the response. items: - $ref: "#/components/schemas/SecurityMonitoringSuppression" + $ref: "#/components/schemas/SastRulesetData" type: array - meta: - $ref: "#/components/schemas/SecurityMonitoringSuppressionsMeta" + required: + - data type: object - SecurityMonitoringReferenceTable: - description: Reference tables used in the queries. + ScaRequest: + description: The top-level request object for submitting a Software Composition Analysis (SCA) scan result. properties: - checkPresence: - description: Whether to include or exclude the matched values. - type: boolean - columnName: - description: The name of the column in the reference table. + data: + $ref: "#/components/schemas/ScaRequestData" + type: object + ScaRequestData: + description: The data object in an SCA request, containing the dependency graph attributes and request type. + properties: + attributes: + $ref: "#/components/schemas/ScaRequestDataAttributes" + id: + description: An optional identifier for this SCA request data object. type: string - logFieldPath: - description: The field in the log to match against the reference table. + type: + $ref: "#/components/schemas/ScaRequestDataType" + required: + - type + type: object + ScaRequestDataAttributes: + description: >- + The attributes of an SCA request, containing dependency graph data, vulnerability information, and repository context. + properties: + commit: + $ref: "#/components/schemas/ScaRequestDataAttributesCommit" + dependencies: + description: The list of dependencies discovered in the repository. + items: + $ref: "#/components/schemas/ScaRequestDataAttributesDependenciesItems" + type: array + env: + description: The environment context in which the SCA scan was performed (e.g., production, staging). type: string - ruleQueryName: - description: The name of the query to apply the reference table to. + files: + description: The list of dependency manifest files found in the repository. + items: + $ref: "#/components/schemas/ScaRequestDataAttributesFilesItems" + type: array + relations: + description: The dependency relations describing the inter-component dependency graph. + items: + $ref: "#/components/schemas/ScaRequestDataAttributesRelationsItems" + type: array + repository: + $ref: "#/components/schemas/ScaRequestDataAttributesRepository" + scan_start_timestamp: + $ref: "#/components/schemas/ScaRequestDataAttributesScanStartTimestamp" + service: + description: The name of the service or application being analyzed. type: string - tableName: - description: The name of the reference table. + tags: + $ref: "#/components/schemas/ScaRequestDataAttributesTags" + vulnerabilities: + description: The list of vulnerabilities identified in the dependency graph. + items: + $ref: "#/components/schemas/ScaRequestDataAttributesVulnerabilitiesItems" + type: array + type: object + ScaRequestDataAttributesCommit: + description: >- + Metadata about the commit associated with the SCA scan, including author, committer, and branch information. + properties: + author_date: + description: The date when the commit was authored. + type: string + author_email: + description: The email address of the commit author. + type: string + author_name: + description: The full name of the commit author. + type: string + branch: + description: The branch name on which the commit was made. + type: string + committer_email: + description: The email address of the person who committed the change. + type: string + committer_name: + description: The full name of the person who committed the change. + type: string + sha: + description: The SHA hash uniquely identifying the commit. type: string type: object - SecurityMonitoringRuleAnomalyDetectionOptions: - additionalProperties: {} - description: Options on anomaly detection method. + ScaRequestDataAttributesDependenciesItems: + description: A dependency found in the repository, including its identity, location, and `reachability metadata`. properties: - bucketDuration: - $ref: "#/components/schemas/SecurityMonitoringRuleAnomalyDetectionOptionsBucketDuration" - detectionTolerance: - $ref: "#/components/schemas/SecurityMonitoringRuleAnomalyDetectionOptionsDetectionTolerance" - instantaneousBaseline: - $ref: "#/components/schemas/SecurityMonitoringRuleInstantaneousBaseline" - learningDuration: - $ref: "#/components/schemas/SecurityMonitoringRuleAnomalyDetectionOptionsLearningDuration" - learningPeriodBaseline: - description: An optional override baseline to apply while the rule is in the learning period. Must be greater than or equal to 0. - format: int64 + exclusions: + description: A list of patterns or identifiers that should be excluded from analysis for this dependency. + items: + description: An exclusion pattern or identifier. + type: string + type: array + group: + description: The group or organization namespace of the dependency (e.g., Maven group ID). + nullable: true + type: string + is_dev: + description: Indicates whether this is a development-only dependency not used in production. + type: boolean + is_direct: + description: Indicates whether this is a direct dependency (as opposed to a transitive one). + nullable: true + type: boolean + language: + description: The programming language ecosystem of this dependency (e.g., java, python, javascript). + type: string + locations: + $ref: "#/components/schemas/ScaRequestDataAttributesDependenciesItemsLocations" + name: + description: The name of the dependency package. + type: string + opaque: + description: Indicates whether dependency details are intentionally opaque. + type: boolean + package_manager: + description: The package manager responsible for this dependency (e.g., maven, pip, npm). + type: string + purl: + description: The Package URL (PURL) uniquely identifying this dependency. + type: string + reachable_symbol_properties: + description: Properties describing symbols from this dependency that are reachable in the application code. + items: + $ref: "#/components/schemas/ScaRequestDataAttributesDependenciesItemsReachableSymbolPropertiesItems" + type: array + requires_transitive_enrichment: + description: Indicates whether this dependency requires transitive dependency enrichment. + type: boolean + target_frameworks: + description: The target framework identifiers associated with this dependency. + items: + description: A target framework identifier. + type: string + type: array + version: + description: The version of the dependency. + nullable: true + type: string + version_constraint: + description: Indicates whether the version value represents a version constraint. + type: boolean + version_range: + description: The version range associated with this dependency when a manifest declares a range. + type: string + type: object + ScaRequestDataAttributesDependenciesItemsLocations: + description: The list of source file locations where this dependency is declared. + items: + $ref: "#/components/schemas/ScaRequestDataAttributesDependenciesItemsLocationsItems" + nullable: true + type: array + ScaRequestDataAttributesDependenciesItemsLocationsItems: + description: >- + The source code location where a dependency is declared, including block, name, namespace, and version positions within the file. + properties: + block: + $ref: "#/components/schemas/ScaRequestDataAttributesDependenciesItemsLocationsItemsFilePosition" + name: + $ref: "#/components/schemas/ScaRequestDataAttributesDependenciesItemsLocationsItemsNullableFilePosition" + namespace: + $ref: "#/components/schemas/ScaRequestDataAttributesDependenciesItemsLocationsItemsNullableFilePosition" + version: + $ref: "#/components/schemas/ScaRequestDataAttributesDependenciesItemsLocationsItemsNullableFilePosition" + type: object + ScaRequestDataAttributesDependenciesItemsLocationsItemsFilePosition: + description: A range within a file defined by a start and end position, along with the file name. + properties: + end: + $ref: "#/components/schemas/ScaRequestDataAttributesDependenciesItemsLocationsItemsPosition" + file_name: + description: The name or path of the file containing this location. + type: string + role: + description: The semantic role associated with this file location. + type: string + start: + $ref: "#/components/schemas/ScaRequestDataAttributesDependenciesItemsLocationsItemsPosition" + type: object + ScaRequestDataAttributesDependenciesItemsLocationsItemsNullableFilePosition: + description: A nullable range within a file defined by a start and end position, along with the file name. + nullable: true + properties: + end: + $ref: "#/components/schemas/ScaRequestDataAttributesDependenciesItemsLocationsItemsPosition" + file_name: + description: The name or path of the file containing this location. + type: string + role: + description: The semantic role associated with this file location. + type: string + start: + $ref: "#/components/schemas/ScaRequestDataAttributesDependenciesItemsLocationsItemsPosition" + type: object + ScaRequestDataAttributesDependenciesItemsLocationsItemsPosition: + description: A specific position (line and column) within a source file. + properties: + col: + description: The column number of the position within the line. + format: int32 + maximum: 2147483647 + type: integer + line: + description: The line number of the position within the file. + format: int32 + maximum: 2147483647 + type: integer + type: object + ScaRequestDataAttributesDependenciesItemsReachableSymbolPropertiesItems: + description: A key-value property describing a reachable symbol within a dependency. + properties: + name: + description: The name of the reachable symbol property. + type: string + value: + description: The value of the reachable symbol property. + type: string + type: object + ScaRequestDataAttributesFilesItems: + description: A file entry in the repository associated with a dependency manifest. + properties: + name: + description: The name or path of the file within the repository. + type: string + purl: + description: The Package URL (PURL) associated with the dependency declared in this file. + type: string + type: object + ScaRequestDataAttributesRelationsItems: + description: A dependency relation describing which other components a given component depends on. + properties: + depends_on: + description: The list of BOM references that this component directly depends on. + items: + description: A BOM reference of a dependency. + type: string + type: array + ref: + description: The BOM reference of the component that has dependencies. + type: string + type: object + ScaRequestDataAttributesRepository: + description: Information about the source code repository being analyzed. + properties: + url: + description: The URL of the repository. + type: string + type: object + ScaRequestDataAttributesScanStartTimestamp: + additionalProperties: false + description: The time when the SCA scan started. + nullable: true + properties: + nanos: + description: Non-negative fractions of a second at nanosecond resolution. + format: int32 + maximum: 999999999 minimum: 0 type: integer + seconds: + description: Seconds of UTC time since Unix epoch. + format: int64 + type: integer type: object - SecurityMonitoringRuleAnomalyDetectionOptionsBucketDuration: - description: "Duration in seconds of the time buckets used to aggregate events matched by the rule.\nMust be greater than or equal to 300." + ScaRequestDataAttributesTags: + additionalProperties: + type: string + description: A map of tags providing additional metadata for the SCA scan. + properties: + tool: + $ref: "#/components/schemas/ScaRequestDataAttributesTagsTool" + type: object + ScaRequestDataAttributesTagsTool: + additionalProperties: false + description: Tool metadata included in SCA tags. + properties: + generator: + $ref: "#/components/schemas/ScaRequestDataAttributesTagsToolGenerator" + type: object + ScaRequestDataAttributesTagsToolGenerator: + additionalProperties: false + description: Metadata about the tool that generated the SCA tags. + properties: + name: + description: The name of the tag generator. + type: string + version: + description: The version of the tag generator. + type: string + type: object + ScaRequestDataAttributesVulnerabilitiesItems: + description: >- + A vulnerability entry from the Software Bill of Materials (SBOM), describing a known security issue and the components it affects. + properties: + affects: + description: The list of components affected by this vulnerability. + items: + $ref: "#/components/schemas/ScaRequestDataAttributesVulnerabilitiesItemsAffectsItems" + type: array + bom_ref: + description: The unique BOM reference identifier for this vulnerability entry. + type: string + id: + description: The vulnerability identifier (e.g., CVE ID or similar). + type: string + type: object + ScaRequestDataAttributesVulnerabilitiesItemsAffectsItems: + description: A reference to a component affected by a vulnerability. + properties: + ref: + description: The BOM reference identifying the affected component. + type: string + type: object + ScaRequestDataType: + default: scarequests + description: The type identifier for SCA dependency analysis requests. enum: - - 300 - - 600 - - 900 - - 1800 - - 3600 - - 10800 - example: 300 - format: int32 - type: integer + - scarequests + example: scarequests + type: string x-enum-varnames: - - FIVE_MINUTES - - TEN_MINUTES - - FIFTEEN_MINUTES - - THIRTY_MINUTES - - ONE_HOUR - - THREE_HOURS - SecurityMonitoringRuleAnomalyDetectionOptionsDetectionTolerance: - description: "An optional parameter that sets how permissive anomaly detection is.\nHigher values require higher deviations before triggering a signal." + - SCAREQUESTS + ScalarColumn: + description: A single column in a scalar query response. + oneOf: + - $ref: "#/components/schemas/GroupScalarColumn" + - $ref: "#/components/schemas/DataScalarColumn" + ScalarColumnTypeGroup: + default: group + description: The type of column present for groups. enum: - - 1 - - 2 - - 3 - - 4 - - 5 - example: 5 - format: int32 - type: integer + - group + example: group + type: string x-enum-varnames: - - ONE - - TWO - - THREE - - FOUR - - FIVE - SecurityMonitoringRuleAnomalyDetectionOptionsLearningDuration: - description: Learning duration in hours. Anomaly detection waits for at least this amount of historical data before it starts evaluating. + - GROUP + ScalarColumnTypeNumber: + default: number + description: The type of column present for numbers. enum: - - 1 - - 6 - - 12 - - 24 - - 48 - - 168 - - 336 - format: int32 - type: integer + - number + example: number + type: string x-enum-varnames: - - ONE_HOUR - - SIX_HOURS - - TWELVE_HOURS - - ONE_DAY - - TWO_DAYS - - ONE_WEEK - - TWO_WEEKS - SecurityMonitoringRuleBulkDeleteAttributes: - description: Attributes for bulk deleting security monitoring rules. + - NUMBER + ScalarFormulaQueryRequest: + description: A wrapper request around one scalar query to be executed. properties: - ruleIds: - description: List of rule IDs to delete. - example: - - abc-000-u7q - - abc-000-7dd - items: - description: A rule ID to delete. - type: string - minItems: 1 - type: array + data: + $ref: "#/components/schemas/ScalarFormulaRequest" required: - - ruleIds + - data type: object - SecurityMonitoringRuleBulkDeleteData: - description: Data for bulk deleting security monitoring rules. + ScalarFormulaQueryResponse: + description: A message containing one or more responses to scalar queries. properties: - attributes: - $ref: "#/components/schemas/SecurityMonitoringRuleBulkDeleteAttributes" - id: - description: Request ID. This value is echoed back as the response's resource ID. - example: bulk_delete + data: + $ref: "#/components/schemas/ScalarResponse" + errors: + description: An error generated when processing a request. type: string + type: object + ScalarFormulaRequest: + description: A single scalar query to be executed. + properties: + attributes: + $ref: "#/components/schemas/ScalarFormulaRequestAttributes" type: - $ref: "#/components/schemas/SecurityMonitoringRuleBulkDeleteRequestDataType" + $ref: "#/components/schemas/ScalarFormulaRequestType" required: - - attributes - type + - attributes type: object - SecurityMonitoringRuleBulkDeletePayload: - description: Payload for bulk deleting security monitoring rules. + ScalarFormulaRequestAttributes: + description: The object describing a scalar formula request. properties: - data: - $ref: "#/components/schemas/SecurityMonitoringRuleBulkDeleteData" + formulas: + description: List of formulas to be calculated and returned as responses. + items: + $ref: "#/components/schemas/QueryFormula" + type: array + from: + description: Start date (inclusive) of the query in milliseconds since the Unix epoch. + example: 1568899800000 + format: int64 + type: integer + queries: + $ref: "#/components/schemas/ScalarFormulaRequestQueries" + to: + description: End date (exclusive) of the query in milliseconds since the Unix epoch. + example: 1568923200000 + format: int64 + type: integer required: - - data + - to + - from + - queries type: object - SecurityMonitoringRuleBulkDeleteRequestDataType: - description: The resource type for a bulk delete request. - enum: - - bulk_delete_rules - example: bulk_delete_rules + ScalarFormulaRequestQueries: + description: List of queries to be run and used as inputs to the formulas. + example: + - aggregator: avg + data_source: metrics + query: "avg:system.cpu.user{*} by {env}" + items: + $ref: "#/components/schemas/ScalarQuery" + type: array + ScalarFormulaRequestType: + default: "scalar_request" + description: The type of the resource. The value should always be scalar_request. + enum: ["scalar_request"] + example: "scalar_request" type: string - x-enum-varnames: - - BULK_DELETE_RULES - SecurityMonitoringRuleBulkDeleteResponse: - description: Response for bulk deleting security monitoring rules. - properties: - data: - $ref: "#/components/schemas/SecurityMonitoringRuleBulkDeleteResponseData" - type: object - SecurityMonitoringRuleBulkDeleteResponseAttributes: - description: Attributes for the bulk delete response. + x-enum-varnames: ["SCALAR_REQUEST"] + ScalarFormulaResponseAtrributes: + description: The object describing a scalar response. properties: - deletedRules: - description: List of successfully deleted rule IDs. + columns: + description: List of response columns, each corresponding to an individual formula or query in the request and with values in parallel arrays matching the series list. items: - type: string + $ref: "#/components/schemas/ScalarColumn" type: array - failedRules: - description: List of rule IDs that could not be deleted. + type: object + ScalarFormulaResponseType: + default: "scalar_response" + description: The type of the resource. The value should always be scalar_response. + enum: ["scalar_response"] + example: "scalar_response" + type: string + x-enum-varnames: ["SCALAR_RESPONSE"] + ScalarMeta: + description: Metadata for the resulting numerical values. + properties: + unit: + description: |- + Detailed information about the unit. + First element describes the "primary unit" (for example, `bytes` in `bytes per second`). + The second element describes the "per unit" (for example, `second` in `bytes per second`). + If the second element is not present, the API returns null. items: - type: string + $ref: "#/components/schemas/Unit" + nullable: true type: array type: object - SecurityMonitoringRuleBulkDeleteResponseData: - description: Data for the bulk delete response. + ScalarQuery: + description: An individual scalar query to one of the basic Datadog data sources. + example: + aggregator: avg + data_source: metrics + query: "avg:system.cpu.user{*} by {env}" + oneOf: + - $ref: "#/components/schemas/MetricsScalarQuery" + - $ref: "#/components/schemas/EventsScalarQuery" + - $ref: "#/components/schemas/ApmResourceStatsQuery" + - $ref: "#/components/schemas/ApmMetricsQuery" + - $ref: "#/components/schemas/ApmDependencyStatsQuery" + - $ref: "#/components/schemas/SloQuery" + - $ref: "#/components/schemas/ProcessScalarQuery" + - $ref: "#/components/schemas/ContainerScalarQuery" + ScalarResponse: + description: A message containing the response to a scalar query. properties: attributes: - $ref: "#/components/schemas/SecurityMonitoringRuleBulkDeleteResponseAttributes" + $ref: "#/components/schemas/ScalarFormulaResponseAtrributes" + type: + $ref: "#/components/schemas/ScalarFormulaResponseType" + type: object + ScanResultResponse: + description: |- + The raw scan result document produced by the SCA processor. + The contents reflect the vulnerabilities and metadata produced for the libraries + submitted in the original scan request. + oneOf: + - $ref: "#/components/schemas/AnyValueObject" + ScannedAssetMetadata: + description: The metadata of a scanned asset. + properties: + attributes: + $ref: "#/components/schemas/ScannedAssetMetadataAttributes" id: - description: The identifier of the bulk delete response. + description: The ID of the scanned asset metadata. + example: "Host|i-0fc7edef1ab26d7ef" type: string type: - $ref: "#/components/schemas/SecurityMonitoringRuleBulkDeleteResponseDataType" + $ref: "#/components/schemas/ScannedAssetMetadataType" + required: + - id + - type + - attributes type: object - SecurityMonitoringRuleBulkDeleteResponseDataType: - description: The resource type for a bulk delete response. - enum: - - bulk_delete_response - example: bulk_delete_response - type: string - x-enum-varnames: - - BULK_DELETE_RESPONSE - SecurityMonitoringRuleBulkExportAttributes: - description: Attributes for bulk exporting security monitoring rules. + ScannedAssetMetadataAsset: + description: The asset of a scanned asset metadata. properties: - ruleIds: - description: "List of rule IDs to export. Each rule will be included in the resulting ZIP file\nas a separate JSON file." + name: + description: The name of the asset. + example: "i-0fc7edef1ab26d7ef" + type: string + type: + $ref: "#/components/schemas/CloudAssetType" + required: + - type + - name + type: object + ScannedAssetMetadataAttributes: + description: The attributes of a scanned asset metadata. + properties: + asset: + $ref: "#/components/schemas/ScannedAssetMetadataAsset" + first_success_timestamp: + description: The timestamp when the scan of the asset was performed for the first time. + example: "2025-07-08T07:24:53Z" + type: string + last_success: + $ref: "#/components/schemas/ScannedAssetMetadataLastSuccess" + required: + - asset + - last_success + - first_success_timestamp + type: object + ScannedAssetMetadataLastSuccess: + description: Metadata for the last successful scan of an asset. + properties: + env: + description: The environment of the last success scan of the asset. + example: "prod" + type: string + origin: + description: The list of origins of the last success scan of the asset. example: - - def-000-u7q - - def-000-7dd + - production items: - description: A rule ID to include in the bulk export. + description: An origin identifier for the last successful scan of the asset. + example: production type: string - minItems: 1 type: array - required: - - ruleIds - type: object - SecurityMonitoringRuleBulkExportData: - description: Data for bulk exporting security monitoring rules. - properties: - attributes: - $ref: "#/components/schemas/SecurityMonitoringRuleBulkExportAttributes" - id: - description: Request ID. - example: bulk_export + timestamp: + description: The timestamp of the last success scan of the asset. + example: "2025-07-08T07:24:53Z" type: string - type: - $ref: "#/components/schemas/SecurityMonitoringRuleBulkExportDataType" required: - - attributes - - type + - timestamp type: object - SecurityMonitoringRuleBulkExportDataType: - description: The type of the resource. + ScannedAssetMetadataType: + description: The JSON:API type. enum: - - security_monitoring_rules_bulk_export - example: security_monitoring_rules_bulk_export + - scanned-assets-metadata + example: scanned-assets-metadata type: string x-enum-varnames: - - SECURITY_MONITORING_RULES_BULK_EXPORT - SecurityMonitoringRuleBulkExportPayload: - description: Payload for bulk exporting security monitoring rules. + - SCANNED_ASSETS_METADATA + ScannedAssetsMetadata: + description: The expected response schema when listing scanned assets metadata. properties: data: - $ref: "#/components/schemas/SecurityMonitoringRuleBulkExportData" + description: List of scanned assets metadata. + items: + $ref: "#/components/schemas/ScannedAssetMetadata" + type: array + links: + $ref: "#/components/schemas/Links" + meta: + $ref: "#/components/schemas/Metadata" required: - data type: object - SecurityMonitoringRuleCase: - description: Case when signal is generated. + Schedule: + description: Top-level container for a schedule object, including both the `data` payload and any related `included` resources (such as teams, layers, or members). + example: + data: + attributes: + name: On-Call Schedule + time_zone: America/New_York + id: 3653d3c6-0c75-11ea-ad28-fb5701eabc7d + relationships: + layers: + data: + - id: 00000000-0000-0000-0000-000000000001 + type: layers + teams: + data: + - id: 00000000-da3a-0000-0000-000000000000 + type: teams + type: schedules + included: + - attributes: + avatar: "" + description: Team 1 description + handle: team1 + name: Team 1 + id: 00000000-da3a-0000-0000-000000000000 + type: teams + - attributes: + effective_date: "2025-02-03T05:00:00Z" + end_date: "2025-12-31T00:00:00Z" + interval: + days: 1 + name: Layer 1 + restrictions: + - end_day: friday + end_time: "17:00:00" + start_day: monday + start_time: "09:00:00" + rotation_start: "2025-02-01T00:00:00Z" + id: 00000000-0000-0000-0000-000000000001 + relationships: + members: + data: + - id: 00000000-0000-0000-0000-000000000002 + type: members + type: layers + - id: 00000000-0000-0000-0000-000000000002 + relationships: + user: + data: + id: 00000000-aba1-0000-0000-000000000000 + type: users + type: members + - attributes: + email: foo@bar.com + name: User 1 + id: 00000000-aba1-0000-0000-000000000000 + type: users properties: - actions: - description: Action to perform for each rule case. + data: + $ref: "#/components/schemas/ScheduleData" + included: + description: Any additional resources related to this schedule, such as teams and layers. items: - $ref: "#/components/schemas/SecurityMonitoringRuleCaseAction" + $ref: "#/components/schemas/ScheduleDataIncludedItem" type: array - condition: - description: "A rule case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries." + type: object + ScheduleCreateRequest: + description: The top-level request body for schedule creation, wrapping a `data` object. + example: + data: + attributes: + layers: + - effective_date: "2025-02-03T05:00:00Z" + end_date: "2025-12-31T00:00:00Z" + interval: + days: 1 + members: + - user: + id: 00000000-aba1-0000-0000-000000000000 + name: Layer 1 + restrictions: + - end_day: friday + end_time: "17:00:00" + start_day: monday + start_time: "09:00:00" + rotation_start: "2025-02-01T00:00:00Z" + name: On-Call Schedule + time_zone: America/New_York + relationships: + teams: + data: + - id: 00000000-da3a-0000-0000-000000000000 + type: teams + type: schedules + properties: + data: + $ref: "#/components/schemas/ScheduleCreateRequestData" + required: + - data + type: object + ScheduleCreateRequestData: + description: The core data wrapper for creating a schedule, encompassing attributes, relationships, and the resource type. + properties: + attributes: + $ref: "#/components/schemas/ScheduleCreateRequestDataAttributes" + relationships: + $ref: "#/components/schemas/ScheduleCreateRequestDataRelationships" + type: + $ref: "#/components/schemas/ScheduleCreateRequestDataType" + required: + - type + - attributes + type: object + ScheduleCreateRequestDataAttributes: + description: Describes the main attributes for creating a new schedule, including name, layers, and time zone. + properties: + layers: + description: The layers of On-Call coverage that define rotation intervals and restrictions. + items: + $ref: "#/components/schemas/ScheduleCreateRequestDataAttributesLayersItems" + type: array + name: + description: A human-readable name for the new schedule. + example: Team A On-Call type: string - customStatus: - $ref: "#/components/schemas/SecurityMonitoringRuleSeverity" + time_zone: + description: The time zone in which the schedule is defined. + example: America/New_York + type: string + required: + - name + - time_zone + - layers + type: object + ScheduleCreateRequestDataAttributesLayersItems: + description: |- + Describes a schedule layer, including rotation intervals, members, restrictions, and timeline settings. + properties: + effective_date: + description: The date/time when this layer becomes active (in ISO 8601). + example: "2025-01-01T00:00:00Z" + format: date-time + type: string + end_date: + description: The date/time after which this layer no longer applies (in ISO 8601). + format: date-time + type: string + interval: + $ref: "#/components/schemas/LayerAttributesInterval" + members: + description: A list of members who participate in this layer's rotation. + items: + $ref: "#/components/schemas/ScheduleRequestDataAttributesLayersItemsMembersItems" + type: array name: - description: Name of the case. + description: The name of this layer. + example: Primary On-Call Layer type: string - notifications: - description: Notification targets for each rule case. + restrictions: + description: Zero or more time-based restrictions (for example, only weekdays, during business hours). items: - description: Notification. - type: string + $ref: "#/components/schemas/TimeRestriction" type: array - status: - $ref: "#/components/schemas/SecurityMonitoringRuleSeverity" - type: object - SecurityMonitoringRuleCaseAction: - description: Action to perform when a signal is triggered. Only available for Application Security rule type. - properties: - options: - $ref: "#/components/schemas/SecurityMonitoringRuleCaseActionOptions" - type: - $ref: "#/components/schemas/SecurityMonitoringRuleCaseActionType" + rotation_start: + description: The date/time when the rotation for this layer starts (in ISO 8601). + example: "2025-01-01T00:00:00Z" + format: date-time + type: string + time_zone: + description: The time zone for this layer. + example: "America/New_York" + type: string + required: + - name + - interval + - rotation_start + - effective_date + - members type: object - SecurityMonitoringRuleCaseActionOptions: - additionalProperties: {} - description: Options for the rule action + ScheduleCreateRequestDataRelationships: + description: Gathers relationship objects for the schedule creation request, including the teams to associate. properties: - duration: - description: Duration of the action in seconds. 0 indicates no expiration. - example: 0 - format: int64 - minimum: 0 - type: integer - flaggedIPType: - $ref: "#/components/schemas/SecurityMonitoringRuleCaseActionOptionsFlaggedIPType" - userBehaviorName: - $ref: "#/components/schemas/SecurityMonitoringRuleCaseActionOptionsUserBehaviorName" + teams: + $ref: "#/components/schemas/DataRelationshipsTeams" type: object - SecurityMonitoringRuleCaseActionOptionsFlaggedIPType: - description: Used with the case action of type 'flag_ip'. The value specified in this field is applied as a flag to the IP addresses. - enum: - - SUSPICIOUS - - FLAGGED - example: FLAGGED - type: string - x-enum-varnames: - - SUSPICIOUS - - FLAGGED - SecurityMonitoringRuleCaseActionOptionsUserBehaviorName: - description: Used with the case action of type 'user_behavior'. The value specified in this field is applied as a risk tag to all users affected by the rule. - type: string - SecurityMonitoringRuleCaseActionType: - description: The action type. + ScheduleCreateRequestDataType: + default: schedules + description: |- + Schedules resource type. enum: - - block_ip - - block_user - - user_behavior - - flag_ip + - schedules + example: schedules type: string x-enum-varnames: - - BLOCK_IP - - BLOCK_USER - - USER_BEHAVIOR - - FLAG_IP - SecurityMonitoringRuleCaseCreate: - description: Case when signal is generated. + - SCHEDULES + ScheduleData: + description: Represents the primary data object for a schedule, linking attributes and relationships. properties: - actions: - description: Action to perform for each rule case. - items: - $ref: "#/components/schemas/SecurityMonitoringRuleCaseAction" - type: array - condition: - description: "A case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries." + attributes: + $ref: "#/components/schemas/ScheduleDataAttributes" + id: + description: The schedule's unique identifier. + example: "3653d3c6-0c75-11ea-ad28-fb5701eabc7d" type: string + relationships: + $ref: "#/components/schemas/ScheduleDataRelationships" + type: + $ref: "#/components/schemas/ScheduleDataType" + required: + - type + type: object + ScheduleDataAttributes: + description: Provides core properties of a schedule object such as its name and time zone. + properties: name: - description: Name of the case. + description: A short name for the schedule. + example: Primary On-Call type: string - notifications: - description: Notification targets. + tags: + description: A list of tags associated with the schedule. items: - description: Notification. type: string type: array - status: - $ref: "#/components/schemas/SecurityMonitoringRuleSeverity" - required: - - status + time_zone: + description: The time zone in which this schedule operates. + example: America/New_York + type: string type: object - SecurityMonitoringRuleConvertBulkAttributes: - description: Attributes for bulk converting security monitoring rules to Terraform. + ScheduleDataIncludedItem: + description: Any additional resources related to this schedule, such as teams and layers. + oneOf: + - $ref: "#/components/schemas/TeamReference" + - $ref: "#/components/schemas/Layer" + - $ref: "#/components/schemas/ScheduleMember" + - $ref: "#/components/schemas/ScheduleUser" + ScheduleDataRelationships: + description: Groups the relationships for a schedule object, referencing layers and teams. properties: - ruleIds: - description: "List of rule IDs to convert. Each rule will be included in the resulting ZIP file\nas a separate Terraform file." - example: - - def-000-u7q - - def-000-7dd + layers: + $ref: "#/components/schemas/ScheduleDataRelationshipsLayers" + teams: + $ref: "#/components/schemas/DataRelationshipsTeams" + type: object + ScheduleDataRelationshipsLayers: + description: Associates layers with this schedule in a data structure. + properties: + data: + description: An array of layer references for this schedule. items: - description: A rule ID to include in the bulk convert. - type: string - minItems: 1 + $ref: "#/components/schemas/ScheduleDataRelationshipsLayersDataItems" type: array - required: - - ruleIds type: object - SecurityMonitoringRuleConvertBulkData: - description: Data for bulk converting security monitoring rules to Terraform. + ScheduleDataRelationshipsLayersDataItems: + description: |- + Relates a layer to this schedule, identified by `id` and `type` (must be `layers`). properties: - attributes: - $ref: "#/components/schemas/SecurityMonitoringRuleConvertBulkAttributes" id: - description: Request ID. - example: convert_bulk + description: The unique identifier of the layer in this relationship. + example: "00000000-0000-0000-0000-000000000001" type: string type: - $ref: "#/components/schemas/SecurityMonitoringRuleConvertBulkDataType" + $ref: "#/components/schemas/ScheduleDataRelationshipsLayersDataItemsType" required: - - attributes - type + - id type: object - SecurityMonitoringRuleConvertBulkDataType: - description: The type of the resource. + ScheduleDataRelationshipsLayersDataItemsType: + default: layers + description: |- + Layers resource type. enum: - - security_monitoring_rules_convert_bulk - example: security_monitoring_rules_convert_bulk + - layers + example: layers type: string x-enum-varnames: - - SECURITY_MONITORING_RULES_CONVERT_BULK - SecurityMonitoringRuleConvertBulkPayload: - description: Payload for bulk converting security monitoring rules to Terraform. - properties: - data: - $ref: "#/components/schemas/SecurityMonitoringRuleConvertBulkData" - required: - - data - type: object - SecurityMonitoringRuleConvertPayload: - description: Convert a rule from JSON to Terraform. - oneOf: - - $ref: "#/components/schemas/SecurityMonitoringStandardRulePayload" - - $ref: "#/components/schemas/SecurityMonitoringSignalRulePayload" - SecurityMonitoringRuleConvertResponse: - description: Result of the convert rule request containing Terraform content. - properties: - ruleId: - description: the ID of the rule. - type: string - terraformContent: - description: Terraform string as a result of converting the rule from JSON. - type: string - type: object - SecurityMonitoringRuleCreatePayload: - description: Create a new rule. - oneOf: - - $ref: "#/components/schemas/SecurityMonitoringStandardRuleCreatePayload" - - $ref: "#/components/schemas/SecurityMonitoringSignalRuleCreatePayload" - - $ref: "#/components/schemas/CloudConfigurationRuleCreatePayload" - SecurityMonitoringRuleDecreaseCriticalityBasedOnEnv: - description: "If true, signals in non-production environments have a lower severity than what is defined by the rule case, which can reduce signal noise.\nThe severity is decreased by one level: `CRITICAL` in production becomes `HIGH` in non-production, `HIGH` becomes `MEDIUM` and so on. `INFO` remains `INFO`.\nThe decrement is applied when the environment tag of the signal starts with `staging`, `test` or `dev`." - example: false - type: boolean - SecurityMonitoringRuleDetectionMethod: - description: The detection method. - enum: - - threshold - - new_value - - anomaly_detection - - impossible_travel - - hardcoded - - third_party - - anomaly_threshold - - sequence_detection - type: string - x-enum-varnames: - - THRESHOLD - - NEW_VALUE - - ANOMALY_DETECTION - - IMPOSSIBLE_TRAVEL - - HARDCODED - - THIRD_PARTY - - ANOMALY_THRESHOLD - - SEQUENCE_DETECTION - SecurityMonitoringRuleEvaluationWindow: - description: "A time window is specified to match when at least one of the cases matches true. This is a sliding window\nand evaluates in real time. For third party detection method, this field is not used." - enum: - - 0 - - 60 - - 300 - - 600 - - 900 - - 1800 - - 3600 - - 7200 - - 10800 - - 21600 - - 43200 - - 86400 - format: int32 - type: integer - x-enum-varnames: - - ZERO_MINUTES - - ONE_MINUTE - - FIVE_MINUTES - - TEN_MINUTES - - FIFTEEN_MINUTES - - THIRTY_MINUTES - - ONE_HOUR - - TWO_HOURS - - THREE_HOURS - - SIX_HOURS - - TWELVE_HOURS - - ONE_DAY - SecurityMonitoringRuleHardcodedEvaluatorType: - description: Hardcoded evaluator type. - enum: - - log4shell - type: string - x-enum-varnames: - - LOG4SHELL - SecurityMonitoringRuleImpossibleTravelOptions: - description: Options on impossible travel detection method. - properties: - baselineUserLocations: - $ref: "#/components/schemas/SecurityMonitoringRuleImpossibleTravelOptionsBaselineUserLocations" - baselineUserLocationsDuration: - $ref: "#/components/schemas/SecurityMonitoringRuleImpossibleTravelOptionsBaselineUserLocationsDuration" - type: object - SecurityMonitoringRuleImpossibleTravelOptionsBaselineUserLocations: - description: "If true, signals are suppressed for the first 24 hours. In that time, Datadog learns the user's regular\naccess locations. This can be helpful to reduce noise and infer VPN usage or credentialed API access." - example: true - type: boolean - SecurityMonitoringRuleImpossibleTravelOptionsBaselineUserLocationsDuration: - description: The duration in days during which Datadog learns the user's regular access locations. After this period, signals are generated for accesses from unknown locations. - format: int32 - maximum: 30 - minimum: 1 - nullable: true - type: integer - SecurityMonitoringRuleInstantaneousBaseline: - description: When set to true, Datadog uses previous values that fall within the defined learning window to construct the baseline, enabling the system to establish an accurate baseline more rapidly rather than relying solely on gradual learning over time. - example: false - type: boolean - SecurityMonitoringRuleKeepAlive: - description: 'Once a signal is generated, the signal will remain "open" if a case is matched at least once within - - this keep alive window. For third party detection method, this field is not used.' - enum: - - 0 - - 60 - - 300 - - 600 - - 900 - - 1800 - - 3600 - - 7200 - - 10800 - - 21600 - - 43200 - - 86400 - format: int32 - type: integer - x-enum-varnames: - - ZERO_MINUTES - - ONE_MINUTE - - FIVE_MINUTES - - TEN_MINUTES - - FIFTEEN_MINUTES - - THIRTY_MINUTES - - ONE_HOUR - - TWO_HOURS - - THREE_HOURS - - SIX_HOURS - - TWELVE_HOURS - - ONE_DAY - SecurityMonitoringRuleMaxSignalDuration: - description: 'A signal will "close" regardless of the query being matched once the time exceeds the maximum duration. - - This time is calculated from the first seen timestamp.' - enum: - - 0 - - 60 - - 300 - - 600 - - 900 - - 1800 - - 3600 - - 7200 - - 10800 - - 21600 - - 43200 - - 86400 - format: int32 - type: integer - x-enum-varnames: - - ZERO_MINUTES - - ONE_MINUTE - - FIVE_MINUTES - - TEN_MINUTES - - FIFTEEN_MINUTES - - THIRTY_MINUTES - - ONE_HOUR - - TWO_HOURS - - THREE_HOURS - - SIX_HOURS - - TWELVE_HOURS - - ONE_DAY - SecurityMonitoringRuleNewValueOptions: - description: Options on new value detection method. - properties: - forgetAfter: - $ref: "#/components/schemas/SecurityMonitoringRuleNewValueOptionsForgetAfter" - instantaneousBaseline: - $ref: "#/components/schemas/SecurityMonitoringRuleInstantaneousBaseline" - learningDuration: - $ref: "#/components/schemas/SecurityMonitoringRuleNewValueOptionsLearningDuration" - learningMethod: - $ref: "#/components/schemas/SecurityMonitoringRuleNewValueOptionsLearningMethod" - learningThreshold: - $ref: "#/components/schemas/SecurityMonitoringRuleNewValueOptionsLearningThreshold" - type: object - SecurityMonitoringRuleNewValueOptionsForgetAfter: - description: The duration in days after which a learned value is forgotten. - format: int32 - maximum: 30 - minimum: 1 - type: integer - SecurityMonitoringRuleNewValueOptionsLearningDuration: - default: 0 - description: "The duration in days during which values are learned, and after which signals will be generated for values that\nweren't learned. If set to 0, a signal will be generated for all new values after the first value is learned." - format: int32 - maximum: 30 - minimum: 0 - type: integer - SecurityMonitoringRuleNewValueOptionsLearningMethod: - default: duration - description: The learning method used to determine when signals should be generated for values that weren't learned. + - LAYERS + ScheduleDataType: + default: schedules + description: |- + Schedules resource type. enum: - - duration - - threshold + - schedules + example: schedules type: string x-enum-varnames: - - DURATION - - THRESHOLD - SecurityMonitoringRuleNewValueOptionsLearningThreshold: - default: 0 - description: A number of occurrences after which signals will be generated for values that weren't learned. - enum: - - 0 - - 1 - format: int32 - type: integer - x-enum-varnames: - - ZERO_OCCURRENCES - - ONE_OCCURRENCE - SecurityMonitoringRuleOptions: - description: Options. + - SCHEDULES + ScheduleListItem: + description: Represents a summary of a schedule, linking its core attributes and team relationships. properties: - anomalyDetectionOptions: - $ref: "#/components/schemas/SecurityMonitoringRuleAnomalyDetectionOptions" - complianceRuleOptions: - $ref: "#/components/schemas/CloudConfigurationComplianceRuleOptions" - decreaseCriticalityBasedOnEnv: - $ref: "#/components/schemas/SecurityMonitoringRuleDecreaseCriticalityBasedOnEnv" - detectionMethod: - $ref: "#/components/schemas/SecurityMonitoringRuleDetectionMethod" - evaluationWindow: - $ref: "#/components/schemas/SecurityMonitoringRuleEvaluationWindow" - hardcodedEvaluatorType: - $ref: "#/components/schemas/SecurityMonitoringRuleHardcodedEvaluatorType" - impossibleTravelOptions: - $ref: "#/components/schemas/SecurityMonitoringRuleImpossibleTravelOptions" - keepAlive: - $ref: "#/components/schemas/SecurityMonitoringRuleKeepAlive" - maxSignalDuration: - $ref: "#/components/schemas/SecurityMonitoringRuleMaxSignalDuration" - newValueOptions: - $ref: "#/components/schemas/SecurityMonitoringRuleNewValueOptions" - sequenceDetectionOptions: - $ref: "#/components/schemas/SecurityMonitoringRuleSequenceDetectionOptions" - thirdPartyRuleOptions: - $ref: "#/components/schemas/SecurityMonitoringRuleThirdPartyOptions" + attributes: + $ref: "#/components/schemas/ScheduleDataAttributes" + id: + description: The schedule's unique identifier. + example: "3653d3c6-0c75-11ea-ad28-fb5701eabc7d" + type: string + relationships: + $ref: "#/components/schemas/ScheduleListItemRelationships" + type: + $ref: "#/components/schemas/ScheduleDataType" + required: + - id + - type type: object - SecurityMonitoringRuleQuery: - description: Query for matching rule. - oneOf: - - $ref: "#/components/schemas/SecurityMonitoringStandardRuleQuery" - - $ref: "#/components/schemas/SecurityMonitoringSignalRuleQuery" - SecurityMonitoringRuleQueryAggregation: - description: The aggregation type. - enum: - - count - - cardinality - - sum - - max - - new_value - - geo_data - - event_count - - none - type: string - x-enum-varnames: - - COUNT - - CARDINALITY - - SUM - - MAX - - NEW_VALUE - - GEO_DATA - - EVENT_COUNT - - NONE - SecurityMonitoringRuleQueryPayload: - description: Payload to test a rule query with the expected result. + ScheduleListItemRelationships: + description: Groups the relationships for a schedule summary, referencing its teams. properties: - expectedResult: - description: Expected result of the test. - example: true - type: boolean - index: - description: Index of the query under test. - example: 0 - format: int64 - minimum: 0 - type: integer - payload: - $ref: "#/components/schemas/SecurityMonitoringRuleQueryPayloadData" + teams: + $ref: "#/components/schemas/DataRelationshipsTeams" type: object - SecurityMonitoringRuleQueryPayloadData: - additionalProperties: {} - description: Payload used to test the rule query. + ScheduleMember: + description: Represents a single member entry in a schedule, referencing a specific user. properties: - ddsource: - description: Source of the payload. - example: nginx - type: string - ddtags: - description: Tags associated with your data. - example: env:staging,version:5.1 - type: string - hostname: - description: The name of the originating host of the log. - example: i-012345678 - type: string - message: - description: The message of the payload. - example: 2019-11-19T14:37:58,995 INFO [process.name][20081] Hello World - type: string - service: - description: The name of the application or service generating the data. - example: payment + id: + description: The unique identifier for this schedule member. type: string + relationships: + $ref: "#/components/schemas/ScheduleMemberRelationships" + type: + $ref: "#/components/schemas/ScheduleMemberType" + required: + - type type: object - SecurityMonitoringRuleResponse: - description: Create a new rule. - oneOf: - - $ref: "#/components/schemas/SecurityMonitoringStandardRuleResponse" - - $ref: "#/components/schemas/SecurityMonitoringSignalRuleResponse" - SecurityMonitoringRuleSequenceDetectionOptions: - description: Options on sequence detection method. + ScheduleMemberRelationships: + description: Defines relationships for a schedule member, primarily referencing a single user. properties: - stepTransitions: - description: Transitions defining the allowed order of steps and their evaluation windows. - items: - $ref: "#/components/schemas/SecurityMonitoringRuleSequenceDetectionStepTransition" - type: array - steps: - description: Steps that define the conditions to be matched in sequence. - items: - $ref: "#/components/schemas/SecurityMonitoringRuleSequenceDetectionStep" - type: array + user: + $ref: "#/components/schemas/ScheduleMemberRelationshipsUser" type: object - SecurityMonitoringRuleSequenceDetectionStep: - description: Step definition for sequence detection containing the step name, condition, and evaluation window. + ScheduleMemberRelationshipsUser: + description: Wraps the user data reference for a schedule member. properties: - condition: - description: Condition referencing rule queries (e.g., `a > 0`). - type: string - evaluationWindow: - $ref: "#/components/schemas/SecurityMonitoringRuleEvaluationWindow" - name: - description: Unique name identifying the step. - type: string + data: + $ref: "#/components/schemas/ScheduleMemberRelationshipsUserData" + required: + - data type: object - SecurityMonitoringRuleSequenceDetectionStepTransition: - description: Transition from a parent step to a child step within a sequence detection rule. + ScheduleMemberRelationshipsUserData: + description: Points to the user data associated with this schedule member, including an ID and type. properties: - child: - description: Name of the child step. - type: string - evaluationWindow: - $ref: "#/components/schemas/SecurityMonitoringRuleEvaluationWindow" - parent: - description: Name of the parent step. + id: + description: The user's unique identifier. + example: "00000000-aba1-0000-0000-000000000000" type: string + type: + $ref: "#/components/schemas/ScheduleMemberRelationshipsUserDataType" + required: + - type + - id type: object - SecurityMonitoringRuleSeverity: - description: Severity of the Security Signal. + ScheduleMemberRelationshipsUserDataType: + default: users + description: |- + Users resource type. enum: - - info - - low - - medium - - high - - critical - example: critical + - users + example: users type: string x-enum-varnames: - - INFO - - LOW - - MEDIUM - - HIGH - - CRITICAL - SecurityMonitoringRuleSort: - description: The sort parameters used for querying security monitoring rules. + - USERS + ScheduleMemberType: + default: members + description: |- + Schedule Members resource type. enum: - - name - - creation_date - - update_date - - enabled - - type - - highest_severity - - source - - -name - - -creation_date - - -update_date - - -enabled - - -type - - -highest_severity - - -source + - members + example: members type: string x-enum-varnames: - - NAME - - CREATION_DATE - - UPDATE_DATE - - ENABLED - - TYPE - - HIGHEST_SEVERITY - - SOURCE - - NAME_DESCENDING - - CREATION_DATE_DESCENDING - - UPDATE_DATE_DESCENDING - - ENABLED_DESCENDING - - TYPE_DESCENDING - - HIGHEST_SEVERITY_DESCENDING - - SOURCE_DESCENDING - SecurityMonitoringRuleTestPayload: - description: Test a rule. - oneOf: - - $ref: "#/components/schemas/SecurityMonitoringStandardRuleTestPayload" - SecurityMonitoringRuleTestRequest: - description: Test the rule queries of a rule (rule property is ignored when applied to an existing rule) + - MEMBERS + ScheduleOnCallResponderData: + description: Represents one position's (previous, current, or next) group of on-call responder shifts. Positions with no matching shift are omitted entirely from the response. properties: - rule: - $ref: "#/components/schemas/SecurityMonitoringRuleTestPayload" - ruleQueryPayloads: - description: Data payloads used to test rules query with the expected result. - items: - $ref: "#/components/schemas/SecurityMonitoringRuleQueryPayload" - type: array + attributes: + $ref: "#/components/schemas/ScheduleOnCallResponderDataAttributes" + id: + description: Unique identifier of this responder group. + type: string + relationships: + $ref: "#/components/schemas/ScheduleOnCallResponderDataRelationships" + type: + $ref: "#/components/schemas/ScheduleOnCallResponderDataType" + required: + - type type: object - SecurityMonitoringRuleTestResponse: - description: Result of the test of the rule queries. + ScheduleOnCallResponderDataAttributes: + description: Attributes for one position's (previous, current, or next) group of on-call responder shifts. properties: - results: - description: "Assert results are returned in the same order as the rule query payloads.\nFor each payload, it returns True if the result matched the expected result,\nFalse otherwise." - items: - description: Whether the rule query result matched the expected result. - type: boolean - type: array + position: + $ref: "#/components/schemas/ScheduleTargetPosition" type: object - SecurityMonitoringRuleThirdPartyOptions: - description: Options on third party detection method. + ScheduleOnCallResponderDataRelationships: + description: Relationships for a single position's (previous, current, or next) responder group. properties: - defaultNotifications: - description: Notification targets for the logs that do not correspond to any of the cases. - items: - description: Notification. - type: string - type: array - defaultStatus: - $ref: "#/components/schemas/SecurityMonitoringRuleSeverity" - rootQueries: - description: Queries to be combined with third party case queries. Each of them can have different group by fields, to aggregate differently based on the type of alert. + shifts: + $ref: "#/components/schemas/ScheduleOnCallResponderDataRelationshipsShifts" + type: object + ScheduleOnCallResponderDataRelationshipsShifts: + description: Defines the list of shifts satisfying this responder group's position. Multiple shifts occur when a schedule has multiple concurrent on-call responders at that position. + properties: + data: + description: Array of references to the shifts included in the response. items: - $ref: "#/components/schemas/SecurityMonitoringThirdPartyRootQuery" + $ref: "#/components/schemas/ScheduleOnCallResponderDataRelationshipsShiftsDataItems" type: array - signalTitleTemplate: - description: A template for the signal title; if omitted, the title is generated based on the case name. + type: object + ScheduleOnCallResponderDataRelationshipsShiftsDataItems: + description: Represents a reference to one of the shifts satisfying this responder group's position. + properties: + id: + description: Unique identifier of the shift. + example: "00000000-0000-0000-0000-000000000000" type: string + type: + $ref: "#/components/schemas/ScheduleOnCallResponderDataRelationshipsShiftsDataItemsType" + required: + - type + - id type: object - SecurityMonitoringRuleTypeCreate: - description: The rule type. - enum: - - api_security - - application_security - - log_detection - - workload_activity - - workload_security - type: string - x-enum-varnames: - - API_SECURITY - - APPLICATION_SECURITY - - LOG_DETECTION - - WORKLOAD_ACTIVITY - - WORKLOAD_SECURITY - SecurityMonitoringRuleTypeRead: - description: The rule type. + ScheduleOnCallResponderDataRelationshipsShiftsDataItemsType: + default: shifts + description: "Indicates that the related resource is of type `shifts`." enum: - - log_detection - - infrastructure_configuration - - workload_security - - cloud_configuration - - application_security - - api_security - - workload_activity + - shifts + example: shifts type: string x-enum-varnames: - - LOG_DETECTION - - INFRASTRUCTURE_CONFIGURATION - - WORKLOAD_SECURITY - - CLOUD_CONFIGURATION - - APPLICATION_SECURITY - - API_SECURITY - - WORKLOAD_ACTIVITY - SecurityMonitoringRuleTypeTest: - description: The rule type. + - SHIFTS + ScheduleOnCallResponderDataType: + default: schedule_oncall_responder + description: Represents the resource type for a single position's (previous, current, or next) group of on-call responder shifts. enum: - - log_detection + - schedule_oncall_responder + example: schedule_oncall_responder type: string x-enum-varnames: - - LOG_DETECTION - SecurityMonitoringRuleUpdatePayload: - description: Update an existing rule. + - SCHEDULE_ONCALL_RESPONDER + ScheduleOnCallResponders: + description: Root object representing a schedule's on-call responders, grouped by position (previous, current, next), for a given point in time. + example: + data: + attributes: + scheduled_at: "2024-05-07T02:53:01.000000000Z" + id: "3653d3c6-0c75-11ea-ad28-fb5701eabc7d-1715054400" + relationships: + responders: + data: + - id: "3653d3c6-0c75-11ea-ad28-fb5701eabc7d-1715054400-current" + type: schedule_oncall_responder + schedule: + data: + id: 3653d3c6-0c75-11ea-ad28-fb5701eabc7d + type: schedules + type: schedule_oncall_responders + included: + - attributes: + position: current + id: "3653d3c6-0c75-11ea-ad28-fb5701eabc7d-1715054400-current" + relationships: + shifts: + data: + - id: 00000000-0000-0000-0000-000000000000 + type: shifts + type: schedule_oncall_responder + - attributes: + end: "2024-05-08T02:53:01.000000000Z" + start: "2024-05-07T02:53:01.000000000Z" + id: 00000000-0000-0000-0000-000000000000 + relationships: + user: + data: + id: 00000000-aba1-0000-0000-000000000000 + type: users + type: shifts + - attributes: + email: test@test.com + name: Test User + status: active + id: 00000000-aba1-0000-0000-000000000000 + type: users properties: - calculatedFields: - description: Calculated fields. Only allowed for scheduled rules - in other words, when schedulingOptions is also defined. - items: - $ref: "#/components/schemas/CalculatedField" - type: array - cases: - description: Cases for generating signals. + data: + $ref: "#/components/schemas/ScheduleOnCallRespondersData" + included: + description: Related resources referenced in the responder groups' relationships, such as shifts, schedules, and users. items: - $ref: "#/components/schemas/SecurityMonitoringRuleCase" + $ref: "#/components/schemas/ScheduleOnCallRespondersIncluded" type: array - complianceSignalOptions: - $ref: "#/components/schemas/CloudConfigurationRuleComplianceSignalOptions" - customMessage: - description: Custom/Overridden Message for generated signals (used in case of Default rule update). + type: object + ScheduleOnCallRespondersData: + description: The main data object representing a schedule's on-call responders lookup, including relationships and metadata. + properties: + attributes: + $ref: "#/components/schemas/ScheduleOnCallRespondersDataAttributes" + id: + description: Unique identifier of this on-call responders lookup. type: string - customName: - description: Custom/Overridden name (used in case of Default rule update). + relationships: + $ref: "#/components/schemas/ScheduleOnCallRespondersDataRelationships" + type: + $ref: "#/components/schemas/ScheduleOnCallRespondersDataType" + required: + - type + type: object + ScheduleOnCallRespondersDataAttributes: + description: Attributes for a schedule's on-call responders lookup. + properties: + scheduled_at: + description: The timestamp the responders were resolved at. + format: date-time type: string - filters: - description: Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules. - items: - $ref: "#/components/schemas/SecurityMonitoringFilter" - type: array - groupSignalsBy: - description: Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups. - example: - - service + type: object + ScheduleOnCallRespondersDataRelationships: + description: Relationships for a schedule's on-call responders lookup, including the schedule and its responder groups. + properties: + responders: + $ref: "#/components/schemas/ScheduleOnCallRespondersDataRelationshipsResponders" + schedule: + $ref: "#/components/schemas/ScheduleOnCallRespondersDataRelationshipsSchedule" + type: object + ScheduleOnCallRespondersDataRelationshipsResponders: + description: Defines the list of per-position (previous, current, next) responder groups for the schedule. + properties: + data: + description: Array of references to the responder groups included in the response. items: - description: Field to group by. - type: string + $ref: "#/components/schemas/ScheduleOnCallRespondersDataRelationshipsRespondersDataItems" type: array - hasExtendedTitle: - description: Whether the notifications include the triggering group-by values in their title. - example: true - type: boolean - isEnabled: - description: Whether the rule is enabled. - type: boolean - message: - description: Message for generated signals. - type: string - name: - description: Name of the rule. + type: object + ScheduleOnCallRespondersDataRelationshipsRespondersDataItems: + description: Represents a reference to one position's (previous, current, or next) responder group. + properties: + id: + description: Unique identifier of the responder group. + example: "" type: string - options: - $ref: "#/components/schemas/SecurityMonitoringRuleOptions" - queries: - description: Queries for selecting logs which are part of the rule. - items: - $ref: "#/components/schemas/SecurityMonitoringRuleQuery" - type: array - referenceTables: - description: Reference tables for the rule. - items: - $ref: "#/components/schemas/SecurityMonitoringReferenceTable" - type: array - schedulingOptions: - $ref: "#/components/schemas/SecurityMonitoringSchedulingOptions" - tags: - description: Tags for generated signals. - items: - description: Tag. - type: string - type: array - thirdPartyCases: - description: Cases for generating signals from third-party rules. Only available for third-party rules. - example: [] - items: - $ref: "#/components/schemas/SecurityMonitoringThirdPartyRuleCase" - type: array - version: - description: The version of the rule being updated. - example: 1 - format: int32 - maximum: 2147483647 - type: integer + type: + $ref: "#/components/schemas/ScheduleOnCallRespondersDataRelationshipsRespondersDataItemsType" + required: + - type + - id type: object - SecurityMonitoringRuleValidatePayload: - description: Validate a rule. - oneOf: - - $ref: "#/components/schemas/SecurityMonitoringStandardRulePayload" - - $ref: "#/components/schemas/SecurityMonitoringSignalRulePayload" - - $ref: "#/components/schemas/CloudConfigurationRulePayload" - SecurityMonitoringSKU: - description: The Cloud SIEM pricing model (SKU) for the organization. + ScheduleOnCallRespondersDataRelationshipsRespondersDataItemsType: + default: schedule_oncall_responder + description: Identifies the resource type for a responder group linked to a schedule's on-call responders lookup. enum: - - per_gb_analyzed - - per_event_in_siem_index_2023 - - add_on_2024 - - standalone_indexed - - unknown - example: add_on_2024 + - schedule_oncall_responder + example: schedule_oncall_responder type: string x-enum-varnames: - - PER_GB_ANALYZED - - PER_EVENT_IN_SIEM_INDEX_2023 - - ADD_ON_2024 - - STANDALONE_INDEXED - - UNKNOWN - SecurityMonitoringSchedulingOptions: - description: Options for scheduled rules. When this field is present, the rule runs based on the schedule. When absent, it runs real-time on ingested logs. - nullable: true + - SCHEDULE_ONCALL_RESPONDER + ScheduleOnCallRespondersDataRelationshipsSchedule: + description: Defines the relationship to the schedule this on-call responders lookup was performed for. properties: - rrule: - description: Schedule for the rule queries, written in RRULE syntax. See [RFC](https://icalendar.org/iCalendar-RFC-5545/3-8-5-3-recurrence-rule.html) for syntax reference. - example: FREQ=HOURLY;INTERVAL=1; - type: string - start: - description: Start date for the schedule, in ISO 8601 format without timezone. - example: "2025-07-14T12:00:00" - type: string - timezone: - description: Time zone of the start date, in the [tz database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) format. - example: America/New_York - type: string + data: + $ref: "#/components/schemas/ScheduleOnCallRespondersDataRelationshipsScheduleData" type: object - SecurityMonitoringSentinelOneIntegrationConfigCreateAttributes: - description: The attributes of a SentinelOne entity context sync configuration to create. + ScheduleOnCallRespondersDataRelationshipsScheduleData: + description: Represents a reference to the schedule this on-call responders lookup was performed for. properties: - domain: - description: The domain associated with the external entity source. - example: acme.sentinelone.net - type: string - integration_type: - $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeSentinelOne" - name: - description: The display name for the entity context sync configuration. - example: My SentinelOne Integration + id: + description: Unique identifier of the schedule. + example: "3653d3c6-0c75-11ea-ad28-fb5701eabc7d" type: string - secrets: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSentinelOneSecrets" - settings: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" + type: + $ref: "#/components/schemas/ScheduleOnCallRespondersDataRelationshipsScheduleDataType" required: - - integration_type - - domain - - name - - secrets + - type + - id type: object - SecurityMonitoringSentinelOneIntegrationConfigUpdateAttributes: - description: Fields to update on a SentinelOne entity context sync configuration. + ScheduleOnCallRespondersDataRelationshipsScheduleDataType: + default: schedules + description: Identifies the resource type for the schedule associated with this on-call responders lookup. + enum: + - schedules + example: schedules + type: string + x-enum-varnames: + - SCHEDULES + ScheduleOnCallRespondersDataType: + default: schedule_oncall_responders + description: Represents the resource type for a schedule's grouped on-call responders across the previous, current, and next positions. + enum: + - schedule_oncall_responders + example: schedule_oncall_responders + type: string + x-enum-varnames: + - SCHEDULE_ONCALL_RESPONDERS + ScheduleOnCallRespondersIncluded: + description: Represents a union of related resources included in the response, such as responder groups, shifts, schedules, and users. + oneOf: + - $ref: "#/components/schemas/ScheduleOnCallResponderData" + - $ref: "#/components/schemas/ShiftData" + - $ref: "#/components/schemas/ScheduleData" + - $ref: "#/components/schemas/User" + ScheduleRequestDataAttributesLayersItemsMembersItems: + description: |- + Defines a single member within a schedule layer, including the reference to the underlying user. properties: - domain: - description: The new domain associated with the external entity source. - example: acme.sentinelone.net - type: string - enabled: - description: Whether the entity context sync should be enabled. - example: true - type: boolean - integration_type: - $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeSentinelOne" - name: - description: The new display name for the entity context sync configuration. - example: My SentinelOne Integration (renamed) - type: string - secrets: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSentinelOneSecrets" - settings: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" - required: - - integration_type + user: + $ref: "#/components/schemas/ScheduleRequestDataAttributesLayersItemsMembersItemsUser" type: object - SecurityMonitoringSentinelOneIntegrationCredentialsValidateAttributes: - description: The SentinelOne credentials to validate against the external entity source. + ScheduleRequestDataAttributesLayersItemsMembersItemsUser: + description: Identifies the user participating in this layer as a single object with an `id`. properties: - domain: - description: The domain associated with the external entity source. - example: acme.sentinelone.net + id: + description: The user's ID. + example: "00000000-aba1-0000-0000-000000000000" type: string - integration_type: - $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeSentinelOne" - secrets: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSentinelOneSecrets" - required: - - integration_type - - domain - - secrets type: object - SecurityMonitoringSignal: - description: Object description of a security signal. + ScheduleTarget: + description: "Represents a schedule target for an escalation policy step, including its ID and resource type. This is a shortcut for a configured schedule target with position set to 'current'." properties: - attributes: - $ref: "#/components/schemas/SecurityMonitoringSignalAttributes" id: - description: The unique ID of the security signal. - example: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA + description: "Specifies the unique identifier of the schedule resource." + example: "00000000-aba1-0000-0000-000000000000" type: string type: - $ref: "#/components/schemas/SecurityMonitoringSignalType" + $ref: "#/components/schemas/ScheduleTargetType" + required: + - type + - id type: object - SecurityMonitoringSignalArchiveComment: - description: Optional comment to display on archived signals. + ScheduleTargetPosition: + description: "Specifies the position of a schedule target (example `previous`, `current`, or `next`)." + enum: + - previous + - current + - next + example: previous type: string - SecurityMonitoringSignalArchiveReason: - description: Reason a signal is archived. + x-enum-varnames: + - PREVIOUS + - CURRENT + - NEXT + ScheduleTargetType: + default: schedules + description: "Indicates that the resource is of type `schedules`." enum: - - none - - false_positive - - testing_or_maintenance - - remediated - - investigated_case_opened - - true_positive_benign - - true_positive_malicious - - other + - schedules + example: schedules type: string x-enum-varnames: - - NONE - - FALSE_POSITIVE - - TESTING_OR_MAINTENANCE - - REMEDIATED - - INVESTIGATED_CASE_OPENED - - TRUE_POSITIVE_BENIGN - - TRUE_POSITIVE_MALICIOUS - - OTHER - SecurityMonitoringSignalAssigneeUpdateAttributes: - description: Attributes describing the new assignee of a security signal. + - SCHEDULES + ScheduleTrigger: + description: "Trigger a workflow from a Schedule. The workflow must be published." properties: - assignee: - $ref: "#/components/schemas/SecurityMonitoringTriageUser" - version: - $ref: "#/components/schemas/SecurityMonitoringSignalVersion" + overlapBehavior: + $ref: "#/components/schemas/ScheduleTriggerOverlapBehavior" + rruleExpression: + description: "Recurrence rule expression for scheduling." + example: "" + type: string required: - - assignee + - rruleExpression type: object - SecurityMonitoringSignalAssigneeUpdateData: - description: Data containing the patch for changing the assignee of a signal. + ScheduleTriggerOverlapBehavior: + default: EXCLUSIVE_RUN + description: Controls whether a scheduled workflow run may start while another instance is still running. + enum: + - EXCLUSIVE_RUN + - OVERLAP_ALLOWED + example: EXCLUSIVE_RUN + type: string + x-enum-varnames: + - EXCLUSIVE_RUN + - OVERLAP_ALLOWED + ScheduleTriggerWrapper: + description: "Schema for a Schedule-based trigger." properties: - attributes: - $ref: "#/components/schemas/SecurityMonitoringSignalAssigneeUpdateAttributes" + scheduleTrigger: + $ref: "#/components/schemas/ScheduleTrigger" + startStepNames: + $ref: "#/components/schemas/StartStepNames" required: - - attributes + - scheduleTrigger type: object - SecurityMonitoringSignalAssigneeUpdateRequest: - description: Request body for changing the assignee of a given security monitoring signal. + ScheduleUpdateRequest: + description: A top-level wrapper for a schedule update request, referring to the `data` object with the new details. + example: + data: + attributes: + layers: + - effective_date: "2025-02-03T05:00:00Z" + end_date: "2025-12-31T00:00:00Z" + interval: + seconds: 3600 + members: + - user: + id: 00000000-aba1-0000-0000-000000000000 + name: Layer 1 + restrictions: + - end_day: friday + end_time: "17:00:00" + start_day: monday + start_time: "09:00:00" + rotation_start: "2025-02-01T00:00:00Z" + name: On-Call Schedule Updated + time_zone: America/New_York + id: 3653d3c6-0c75-11ea-ad28-fb5701eabc7d + relationships: + teams: + data: + - id: 00000000-da3a-0000-0000-000000000000 + type: teams + type: schedules properties: data: - $ref: "#/components/schemas/SecurityMonitoringSignalAssigneeUpdateData" + $ref: "#/components/schemas/ScheduleUpdateRequestData" required: - data type: object - SecurityMonitoringSignalAttributes: - additionalProperties: {} - description: "The object containing all signal attributes and their\nassociated values." + ScheduleUpdateRequestData: + description: Contains all data needed to update an existing schedule, including its attributes (such as name and time zone) and any relationships to teams. properties: attributes: - additionalProperties: {} - description: A JSON object of attributes in the security signal, returned when listing or searching signals. - example: - workflow: - first_seen: "2020-06-23T14:46:01.000Z" - last_seen: "2020-06-23T14:46:49.000Z" - rule: - id: 0f5-e0c-805 - name: "Brute Force Attack Grouped By User" - version: 12 - type: object - custom: - additionalProperties: {} - description: A JSON object of attributes in the security signal, returned when retrieving a single signal. - example: - workflow: - first_seen: "2020-06-23T14:46:01.000Z" - last_seen: "2020-06-23T14:46:49.000Z" - rule: - id: 0f5-e0c-805 - name: "Brute Force Attack Grouped By User" - version: 12 - type: object - message: - description: The message in the security signal defined by the rule that generated the signal. - example: Detect Account Take Over (ATO) through brute force attempts - type: string - tags: - description: An array of tags associated with the security signal. - example: - - security:attack - - technique:T1110-brute-force - items: - description: The tag associated with the security signal. - type: string - type: array - timestamp: - description: The timestamp of the security signal. - example: "2019-01-02T09:42:36.320Z" - format: date-time + $ref: "#/components/schemas/ScheduleUpdateRequestDataAttributes" + id: + description: The ID of the schedule to be updated. + example: "3653d3c6-0c75-11ea-ad28-fb5701eabc7d" type: string - type: object - SecurityMonitoringSignalIncidentIds: - description: Array of incidents that are associated with this signal. - example: - - 2066 - items: - description: Public ID attribute of the incident that is associated with the signal. - example: 2066 - format: int64 - type: integer - type: array - SecurityMonitoringSignalIncidentsUpdateAttributes: - description: Attributes describing the new list of related signals for a security signal. - properties: - incident_ids: - $ref: "#/components/schemas/SecurityMonitoringSignalIncidentIds" - version: - $ref: "#/components/schemas/SecurityMonitoringSignalVersion" - required: - - incident_ids - type: object - SecurityMonitoringSignalIncidentsUpdateData: - description: Data containing the patch for changing the related incidents of a signal. - properties: - attributes: - $ref: "#/components/schemas/SecurityMonitoringSignalIncidentsUpdateAttributes" + relationships: + $ref: "#/components/schemas/ScheduleUpdateRequestDataRelationships" + type: + $ref: "#/components/schemas/ScheduleUpdateRequestDataType" required: + - type + - id - attributes type: object - SecurityMonitoringSignalIncidentsUpdateRequest: - description: Request body for changing the related incidents of a given security monitoring signal. + ScheduleUpdateRequestDataAttributes: + description: |- + Defines the updatable attributes for a schedule, such as name, time zone, and layers. properties: - data: - $ref: "#/components/schemas/SecurityMonitoringSignalIncidentsUpdateData" - required: - - data - type: object - SecurityMonitoringSignalInvestigationQueryTemplateVariables: - additionalProperties: - items: - description: A value for this template variable extracted from the signal. + layers: + description: The updated list of layers (rotations) for this schedule. + items: + $ref: "#/components/schemas/ScheduleUpdateRequestDataAttributesLayersItems" + type: array + name: + description: A short name for the schedule. + example: Primary On-Call type: string - type: array - description: Template variables applied to the investigation log query, mapping attribute paths to values extracted from the signal. - example: - "@userIdentity.arn": - - foo - type: object - SecurityMonitoringSignalListRequest: - description: The request for a security signal list. - properties: - filter: - $ref: "#/components/schemas/SecurityMonitoringSignalListRequestFilter" - page: - $ref: "#/components/schemas/SecurityMonitoringSignalListRequestPage" - sort: - $ref: "#/components/schemas/SecurityMonitoringSignalsSort" + time_zone: + description: The time zone used when interpreting rotation times. + example: America/New_York + type: string + required: + - name + - time_zone + - layers type: object - SecurityMonitoringSignalListRequestFilter: - description: Search filters for listing security signals. + ScheduleUpdateRequestDataAttributesLayersItems: + description: |- + Represents a layer within a schedule update, including rotation details, members, + and optional restrictions. properties: - from: - description: The minimum timestamp for requested security signals. - example: "2019-01-02T09:42:36.320Z" + effective_date: + description: When this updated layer takes effect (ISO 8601 format). + example: "2025-02-03T05:00:00Z" format: date-time type: string - query: - description: Search query for listing security signals. - example: security:attack status:high + end_date: + description: When this updated layer should stop being active (ISO 8601 format). + example: "2025-12-31T00:00:00Z" + format: date-time type: string - to: - description: The maximum timestamp for requested security signals. - example: "2019-01-03T09:42:36.320Z" + id: + description: A unique identifier for the layer being updated. + example: "00000000-0000-0000-0000-000000000001" + type: string + interval: + $ref: "#/components/schemas/LayerAttributesInterval" + members: + description: The members assigned to this layer. + items: + $ref: "#/components/schemas/ScheduleRequestDataAttributesLayersItemsMembersItems" + type: array + name: + description: The name for this layer (for example, "Secondary Coverage"). + example: "Primary On-Call Layer" + type: string + restrictions: + description: Any time restrictions that define when this layer is active. + items: + $ref: "#/components/schemas/TimeRestriction" + type: array + rotation_start: + description: The date/time at which the rotation begins (ISO 8601 format). + example: "2025-02-01T00:00:00Z" format: date-time type: string + time_zone: + description: The time zone for this layer. + example: "America/New_York" + type: string + required: + - effective_date + - interval + - members + - name + - rotation_start type: object - SecurityMonitoringSignalListRequestPage: - description: The paging attributes for listing security signals. + ScheduleUpdateRequestDataRelationships: + description: |- + Houses relationships for the schedule update, typically referencing teams. properties: - cursor: - description: A list of results using the cursor provided in the previous query. - example: eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ== - type: string - limit: - default: 10 - description: The maximum number of security signals in the response. - example: 25 - format: int32 - maximum: 1000 - type: integer + teams: + $ref: "#/components/schemas/DataRelationshipsTeams" type: object - SecurityMonitoringSignalMetadataType: - default: signal_metadata - description: The type of event. + ScheduleUpdateRequestDataType: + default: schedules + description: |- + Schedules resource type. enum: - - signal_metadata - example: signal_metadata + - schedules + example: schedules type: string x-enum-varnames: - - SIGNAL_METADATA - SecurityMonitoringSignalResponse: - description: Security Signal response data object. - properties: - data: - $ref: "#/components/schemas/SecurityMonitoringSignal" - type: object - SecurityMonitoringSignalRuleCreatePayload: - description: Create a new signal correlation rule. + - SCHEDULES + ScheduleUser: + description: Represents a user object in the context of a schedule, including their `id`, type, and basic attributes. properties: - cases: - description: Cases for generating signals. - example: [] - items: - $ref: "#/components/schemas/SecurityMonitoringRuleCaseCreate" - type: array - filters: - description: Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules. - items: - $ref: "#/components/schemas/SecurityMonitoringFilter" - type: array - hasExtendedTitle: - description: Whether the notifications include the triggering group-by values in their title. - example: true - type: boolean - isEnabled: - description: Whether the rule is enabled. - example: true - type: boolean - message: - description: Message for generated signals. - example: "" - type: string - name: - description: The name of the rule. - example: My security monitoring rule. + attributes: + $ref: "#/components/schemas/ScheduleUserAttributes" + id: + description: The unique user identifier. type: string - options: - $ref: "#/components/schemas/SecurityMonitoringRuleOptions" - queries: - description: Queries for selecting signals which are part of the rule. - example: [] - items: - $ref: "#/components/schemas/SecurityMonitoringSignalRuleQuery" - type: array - tags: - description: Tags for generated signals. - example: - - env:prod - - team:security - items: - description: Tag. - type: string - type: array type: - $ref: "#/components/schemas/SecurityMonitoringSignalRuleType" + $ref: "#/components/schemas/ScheduleUserType" required: - - name - - isEnabled - - queries - - options - - cases - - message + - type type: object - SecurityMonitoringSignalRulePayload: - description: The payload of a signal correlation rule. + ScheduleUserAttributes: + description: Provides basic user information for a schedule, including a name and email address. properties: - cases: - description: Cases for generating signals. - example: [] - items: - $ref: "#/components/schemas/SecurityMonitoringRuleCaseCreate" - type: array - customMessage: - description: Custom/Overridden message for generated signals (used in case of Default rule update). - type: string - customName: - description: Custom/Overridden name of the rule (used in case of Default rule update). - type: string - filters: - description: Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules. - items: - $ref: "#/components/schemas/SecurityMonitoringFilter" - type: array - hasExtendedTitle: - description: Whether the notifications include the triggering group-by values in their title. - example: true - type: boolean - isEnabled: - description: Whether the rule is enabled. - example: true - type: boolean - message: - description: Message for generated signals. - example: "" + email: + description: The user's email address. + example: "jane.doe@example.com" type: string name: - description: The name of the rule. - example: My security monitoring rule. + description: The user's name. + example: "Jane Doe" type: string - options: - $ref: "#/components/schemas/SecurityMonitoringRuleOptions" - queries: - description: Queries for selecting signals which are part of the rule. - example: [] - items: - $ref: "#/components/schemas/SecurityMonitoringSignalRuleQuery" - type: array - tags: - description: Tags for generated signals. - example: - - env:prod - - team:security - items: - description: Tag. - type: string - type: array - type: - $ref: "#/components/schemas/SecurityMonitoringSignalRuleType" - required: - - name - - isEnabled - - queries - - options - - cases - - message + status: + $ref: "#/components/schemas/UserAttributesStatus" type: object - SecurityMonitoringSignalRuleQuery: - description: Query for matching rule on signals. + ScheduleUserType: + default: users + description: |- + Users resource type. + enum: + - users + example: users + type: string + x-enum-varnames: + - USERS + Schedules: + description: A list of schedules with pagination metadata and any related included resources (such as teams). + example: + data: + - attributes: + name: Primary On-Call + tags: [] + time_zone: America/New_York + id: 3653d3c6-0c75-11ea-ad28-fb5701eabc7d + relationships: + teams: + data: + - id: 00000000-da3a-0000-0000-000000000000 + type: teams + type: schedules + meta: + page: + first_number: 0 + last_number: 0 + next_number: + number: 0 + prev_number: + size: 10 + total: 1 + type: number_size properties: - aggregation: - $ref: "#/components/schemas/SecurityMonitoringRuleQueryAggregation" - correlatedByFields: - description: Fields to group by. + data: + description: A list of schedules. items: - description: Field. - type: string + $ref: "#/components/schemas/ScheduleListItem" type: array - correlatedQueryIndex: - description: Index of the rule query used to retrieve the correlated field. - format: int32 - maximum: 9 - type: integer - metrics: - description: Group of target fields to aggregate over. + included: + description: Any additional resources related to the schedules, such as teams. items: - description: Field. - type: string + $ref: "#/components/schemas/TeamReference" type: array - name: - description: Name of the query. - type: string - ruleId: - description: Rule ID to match on signals. - example: org-ru1-e1d - type: string - required: - - ruleId + meta: + $ref: "#/components/schemas/SchedulesResponseMeta" type: object - SecurityMonitoringSignalRuleResponse: - description: Rule. + SchedulesResponseMeta: + description: Metadata that is included in the response when listing schedules. properties: - cases: - description: Cases for generating signals. - items: - $ref: "#/components/schemas/SecurityMonitoringRuleCase" - type: array - compatibleVersion: - description: The version of the rule at which its detection logic last changed. Updates that only change the name, message, tags, or notifications do not change this value. - example: 1 + page: + $ref: "#/components/schemas/SchedulesResponseMetaPage" + type: object + SchedulesResponseMetaPage: + description: Metadata related to paging information that is included in the response when listing schedules. + properties: + first_number: + description: First page number. format: int64 type: integer - createdAt: - description: When the rule was created, timestamp in milliseconds. + last_number: + description: Last page number. format: int64 type: integer - creationAuthorId: - description: User ID of the user who created the rule. + next_number: + description: Next page number. format: int64 + nullable: true type: integer - customMessage: - description: Custom/Overridden message for generated signals (used in case of Default rule update). - type: string - customName: - description: Custom/Overridden name of the rule (used in case of Default rule update). - type: string - deprecationDate: - description: When the rule will be deprecated, timestamp in milliseconds. + number: + description: Page number. format: int64 type: integer - filters: - description: Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules. - items: - $ref: "#/components/schemas/SecurityMonitoringFilter" - type: array - hasExtendedTitle: - description: Whether the notifications include the triggering group-by values in their title. - type: boolean - id: - description: The ID of the rule. - type: string - isDefault: - description: Whether the rule is included by default. - type: boolean - isDeleted: - description: Whether the rule has been deleted. - type: boolean - isEnabled: - description: Whether the rule is enabled. - type: boolean - message: - description: Message for generated signals. - type: string - name: - description: The name of the rule. - type: string - options: - $ref: "#/components/schemas/SecurityMonitoringRuleOptions" - queries: - description: Queries for selecting logs which are part of the rule. - items: - $ref: "#/components/schemas/SecurityMonitoringSignalRuleResponseQuery" - type: array - tags: - description: Tags for generated signals. - items: - description: Tag. - type: string - type: array - type: - $ref: "#/components/schemas/SecurityMonitoringSignalRuleType" - updateAuthorId: - description: User ID of the user who updated the rule. + prev_number: + description: Previous page number. format: int64 + nullable: true type: integer - version: - description: The version of the rule. + size: + description: Page size. + format: int64 + type: integer + total: + description: Total number of results. format: int64 type: integer + type: + description: Pagination type. + example: "number_size" + type: string type: object - SecurityMonitoringSignalRuleResponseQuery: - description: Query for matching rule on signals. + ScorecardListResponseAttributes: + description: Scorecard attributes. properties: - aggregation: - $ref: "#/components/schemas/SecurityMonitoringRuleQueryAggregation" - correlatedByFields: - description: Fields to correlate by. - items: - description: Field. - type: string - type: array - correlatedQueryIndex: - description: Index of the rule query used to retrieve the correlated field. - format: int32 - maximum: 9 - type: integer - defaultRuleId: - description: Default Rule ID to match on signals. - example: d3f-ru1-e1d + created_at: + description: Creation time of the scorecard. + example: "2023-01-15T10:30:00Z" + format: date-time type: string - distinctFields: - description: Field for which the cardinality is measured. Sent as an array. - items: - description: Field. - type: string - type: array - groupByFields: - description: Fields to group by. - items: - description: Field. - type: string - type: array - metrics: - description: Group of target fields to aggregate over. - items: - description: Field. - type: string - type: array - name: - description: Name of the query. + description: + description: The description of the scorecard. + example: Best practices for observability. type: string - ruleId: - description: Rule ID to match on signals. - example: org-ru1-e1d + modified_at: + description: Time of last scorecard modification. + example: "2024-01-05T14:20:00Z" + format: date-time + type: string + name: + description: The name of the scorecard. + example: Observability Best Practices type: string - type: object - SecurityMonitoringSignalRuleType: - description: The rule type. - enum: - - signal_correlation - type: string - x-enum-varnames: - - SIGNAL_CORRELATION - SecurityMonitoringSignalState: - description: The new triage state of the signal. - enum: - - open - - archived - - under_review - example: open - type: string - x-enum-varnames: - - OPEN - - ARCHIVED - - UNDER_REVIEW - SecurityMonitoringSignalStateUpdateAttributes: - description: Attributes describing the change of state of a security signal. - properties: - archive_comment: - $ref: "#/components/schemas/SecurityMonitoringSignalArchiveComment" - archive_reason: - $ref: "#/components/schemas/SecurityMonitoringSignalArchiveReason" - state: - $ref: "#/components/schemas/SecurityMonitoringSignalState" - version: - $ref: "#/components/schemas/SecurityMonitoringSignalVersion" - required: - - state - type: object - SecurityMonitoringSignalStateUpdateData: - description: Data containing the patch for changing the state of a signal. - properties: - attributes: - $ref: "#/components/schemas/SecurityMonitoringSignalStateUpdateAttributes" - id: - description: The unique ID of the security signal. - type: - $ref: "#/components/schemas/SecurityMonitoringSignalMetadataType" - required: - - attributes - type: object - SecurityMonitoringSignalStateUpdateRequest: - description: Request body for changing the state of a given security monitoring signal. - properties: - data: - $ref: "#/components/schemas/SecurityMonitoringSignalStateUpdateData" required: - - data + - name + - created_at + - modified_at type: object - SecurityMonitoringSignalSuggestedAction: - description: A suggested action for a security signal. + ScorecardListResponseData: + description: Scorecard data. properties: attributes: - $ref: "#/components/schemas/SecurityMonitoringSignalSuggestedActionAttributes" + $ref: "#/components/schemas/ScorecardListResponseAttributes" id: - description: The unique ID of the suggested action. - example: w00-t10-992 + description: The unique ID of the scorecard. + example: q8MQxk8TCqrHnWkx type: string type: - $ref: "#/components/schemas/SecurityMonitoringSignalSuggestedActionType" + $ref: "#/components/schemas/ScorecardListType" required: - id - type - attributes type: object - SecurityMonitoringSignalSuggestedActionAttributes: - description: Attributes of a suggested action for a security signal. The available fields depend on the action type. - properties: - name: - description: The name of the investigation log query. - example: Cloudtrail events for user ARN - type: string - query_filter: - description: The log query filter for the investigation. - example: 'source:cloudtrail @userIdentity.arn:"foo"' - type: string - template_variables: - $ref: "#/components/schemas/SecurityMonitoringSignalInvestigationQueryTemplateVariables" - title: - description: The title of the recommended blog post. - example: Monitor Okta logs to track system access and unusual activity - type: string - url: - description: The URL of the suggested action. - example: /logs?query=source%3Acloudtrail+%40userIdentity.arn%3A%22foo%22 - type: string - type: object - SecurityMonitoringSignalSuggestedActionList: - description: List of suggested actions for a security signal. - example: - - attributes: - name: Cloudtrail events for user ARN - query_filter: 'source:cloudtrail @userIdentity.arn:"foo"' - template_variables: - "@userIdentity.arn": - - foo - url: /logs?query=source%3Acloudtrail+%40userIdentity.arn%3A%22foo%22 - id: w00-t10-992 - type: investigation_log_queries - - attributes: - title: Monitor Okta logs to track system access and unusual activity - url: https://www.datadoghq.com/blog/monitor-activity-with-okta/ - id: bxy-o8v-i1a - type: recommended_blog_posts - items: - $ref: "#/components/schemas/SecurityMonitoringSignalSuggestedAction" - type: array - SecurityMonitoringSignalSuggestedActionType: - description: The type of the suggested action resource. + ScorecardListType: + description: The JSON:API type for scorecard list. enum: - - investigation_log_queries - - recommended_blog_posts - example: investigation_log_queries + - scorecard + example: scorecard type: string x-enum-varnames: - - INVESTIGATION_LOG_QUERIES - - RECOMMENDED_BLOG_POSTS - SecurityMonitoringSignalSuggestedActionsResponse: - description: Response with suggested actions for a security signal. - properties: - data: - $ref: "#/components/schemas/SecurityMonitoringSignalSuggestedActionList" - required: - - data - type: object - SecurityMonitoringSignalTriageAttributes: - description: Attributes describing a triage state update operation over a security signal. + - SCORECARD + ScorecardScoreAttributes: + description: Attributes of a scorecard score. properties: - archive_comment: - $ref: "#/components/schemas/SecurityMonitoringSignalArchiveComment" - archive_comment_timestamp: - description: Timestamp of the last edit to the comment. + aggregation: + $ref: "#/components/schemas/ScorecardScoresAggregation" + denominator: + description: The denominator used to compute the score ratio. format: int64 - minimum: 0 type: integer - archive_comment_user: - $ref: "#/components/schemas/SecurityMonitoringTriageUser" - archive_reason: - $ref: "#/components/schemas/SecurityMonitoringSignalArchiveReason" - assignee: - $ref: "#/components/schemas/SecurityMonitoringTriageUser" - incident_ids: - $ref: "#/components/schemas/SecurityMonitoringSignalIncidentIds" - state: - $ref: "#/components/schemas/SecurityMonitoringSignalState" - state_update_timestamp: - description: Timestamp of the last update to the signal state. + level: + description: The maturity level of the associated rule. + format: int64 + type: integer + numerator: + description: The numerator used to compute the score ratio. + format: int64 + type: integer + score: + description: The computed score ratio (numerator/denominator), from 0 to 1. + format: double + type: number + total_entities: + description: The total number of entities evaluated. + format: int64 + type: integer + total_fail: + description: The number of rules that failed. + format: int64 + type: integer + total_no_data: + description: The number of rules with no data. + format: int64 + type: integer + total_pass: + description: The number of rules that passed. + format: int64 + type: integer + total_skip: + description: The number of rules that were skipped. format: int64 - minimum: 0 type: integer - state_update_user: - $ref: "#/components/schemas/SecurityMonitoringTriageUser" - required: - - assignee - - state - - incident_ids type: object - SecurityMonitoringSignalTriageUpdateData: - description: Data containing the updated triage attributes of the signal. + ScorecardScoreData: + description: A scorecard score object for a single entity, rule, scorecard, service, or team. properties: attributes: - $ref: "#/components/schemas/SecurityMonitoringSignalTriageAttributes" + $ref: "#/components/schemas/ScorecardScoreAttributes" id: - description: The unique ID of the security signal. + description: The ID of the entity or resource being scored. + example: "" type: string + relationships: + $ref: "#/components/schemas/ScorecardScoreRelationships" type: - $ref: "#/components/schemas/SecurityMonitoringSignalMetadataType" - type: object - SecurityMonitoringSignalTriageUpdateResponse: - description: The response returned after all triage operations, containing the updated signal triage data. - properties: - data: - $ref: "#/components/schemas/SecurityMonitoringSignalTriageUpdateData" + $ref: "#/components/schemas/ScorecardScoreDataType" required: - - data + - id + - type type: object - SecurityMonitoringSignalType: - default: signal - description: The type of event. - enum: - - signal - example: signal + ScorecardScoreDataType: + default: score + description: The JSON:API resource type. + enum: [score] + example: score type: string x-enum-varnames: - - SIGNAL - SecurityMonitoringSignalUpdateAttributes: - description: Attributes for updating the triage state or assignee of a security signal. - properties: - archive_comment: - $ref: "#/components/schemas/SecurityMonitoringSignalArchiveComment" - archive_reason: - $ref: "#/components/schemas/SecurityMonitoringSignalArchiveReason" - assignee: - $ref: "#/components/schemas/SecurityMonitoringTriageUser" - state: - $ref: "#/components/schemas/SecurityMonitoringSignalState" - version: - $ref: "#/components/schemas/SecurityMonitoringSignalVersion" - type: object - SecurityMonitoringSignalUpdateData: - description: Data containing the triage state or assignee update for a security signal. + - SCORE + ScorecardScoreRelationshipData: + description: A relationship data object for a score. properties: - attributes: - $ref: "#/components/schemas/SecurityMonitoringSignalUpdateAttributes" + id: + description: The ID of the related resource. + example: "" + type: string type: - $ref: "#/components/schemas/SecurityMonitoringSignalMetadataType" + description: The type of the related resource. + example: "" + type: string required: - - attributes + - id + - type type: object - SecurityMonitoringSignalUpdateRequest: - description: Request body for updating the triage state or assignee of a security signal. + ScorecardScoreRelationshipItem: + description: A relationship item for a score. properties: data: - $ref: "#/components/schemas/SecurityMonitoringSignalUpdateData" - required: - - data + $ref: "#/components/schemas/ScorecardScoreRelationshipData" type: object - SecurityMonitoringSignalVersion: - description: Version of the updated signal. If server side version is higher, update will be rejected. - format: int64 - type: integer - SecurityMonitoringSignalsBulkAssigneeUpdateAttributes: - description: Attributes describing the new assignees for a bulk signal update. + ScorecardScoreRelationships: + description: Relationships for a scorecard score, depending on the aggregation type. properties: - assignee: - description: UUID of the user to assign to the signal. Use an empty string to unassign. - example: 773b045d-ccf8-4808-bd3b-955ef6a8c940 - type: string - version: - $ref: "#/components/schemas/SecurityMonitoringSignalVersion" - required: - - assignee + entity: + $ref: "#/components/schemas/ScorecardScoreRelationshipItem" + rule: + $ref: "#/components/schemas/ScorecardScoreRelationshipItem" + scorecard: + $ref: "#/components/schemas/ScorecardScoreRelationshipItem" + service: + $ref: "#/components/schemas/ScorecardScoreRelationshipItem" + team: + $ref: "#/components/schemas/ScorecardScoreRelationshipItem" type: object - SecurityMonitoringSignalsBulkAssigneeUpdateData: - description: Data for updating the assignees for multiple security signals. + ScorecardScoresAggregation: + description: Dimension to group scores by. + enum: [by-entity, by-rule, by-scorecard, by-team, by-kind] + example: by-entity + type: string + x-enum-varnames: + - BY_ENTITY + - BY_RULE + - BY_SCORECARD + - BY_TEAM + - BY_KIND + ScorecardType: + default: scorecard + description: The JSON:API type for scorecard. + enum: + - scorecard + example: scorecard + type: string + x-enum-varnames: + - SCORECARD + SearchIssuesIncludeQueryParameterItem: + description: Relationship object that should be included in the search response. + enum: + - issue + - issue.assignee + - issue.case + - issue.team_owners + example: "issue.case" + type: string + x-enum-varnames: + - ISSUE + - ISSUE_ASSIGNEE + - ISSUE_CASE + - ISSUE_TEAM_OWNERS + SeatAssignmentsDataType: + default: seat-assignments + description: Seat assignments resource type. + enum: + - seat-assignments + example: seat-assignments + type: string + x-enum-varnames: + - SEAT_ASSIGNMENTS + SeatUserData: + description: A seat user resource object containing its ID, type, and associated attributes. properties: attributes: - $ref: "#/components/schemas/SecurityMonitoringSignalsBulkAssigneeUpdateAttributes" + $ref: "#/components/schemas/SeatUserDataAttributes" + description: The attributes of the seat user. id: - description: The unique ID of the security signal. - example: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA + description: The ID of the seat user. + example: "00000000-0000-0000-0000-000000000000" + nullable: true type: string type: - $ref: "#/components/schemas/SecurityMonitoringSignalType" - required: - - id - - attributes + $ref: "#/components/schemas/SeatUserDataType" type: object - SecurityMonitoringSignalsBulkAssigneeUpdateRequest: - description: Request body for updating the assignee of multiple security signals. + SeatUserDataArray: + description: A paginated list of seat user resources with associated pagination metadata. properties: data: - description: An array of signal assignee updates. + description: The list of seat users. items: - $ref: "#/components/schemas/SecurityMonitoringSignalsBulkAssigneeUpdateData" - maxItems: 199 + $ref: "#/components/schemas/SeatUserData" type: array - required: - - data + meta: + $ref: "#/components/schemas/SeatUserMeta" + description: The metadata of the seat users. type: object - SecurityMonitoringSignalsBulkStateUpdateData: - description: Data for updating the state for multiple security signals. + SeatUserDataAttributes: + description: Attributes of a user assigned to a seat, including their email, name, and assignment timestamp. properties: - attributes: - $ref: "#/components/schemas/SecurityMonitoringSignalStateUpdateAttributes" - id: - description: The unique ID of the security signal. - example: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA + assigned_at: + description: The date and time the seat was assigned. + example: "2021-01-01T00:00:00Z" + format: date-time + nullable: true + type: string + email: + description: The email of the user. + example: "user@example.com" + nullable: true + type: string + name: + description: The name of the user. + example: "John Doe" + nullable: true type: string - type: - $ref: "#/components/schemas/SecurityMonitoringSignalType" - required: - - id - - attributes type: object - SecurityMonitoringSignalsBulkStateUpdateRequest: - description: Request body for updating the triage states of multiple security signals. + SeatUserDataType: + default: seat-users + description: Seat users resource type. + enum: + - seat-users + example: seat-users + type: string + x-enum-varnames: + - SEAT_USERS + SeatUserMeta: + description: Pagination metadata for the seat users list response. + properties: + cursor: + description: The cursor for the seat users. + type: string + limit: + description: The limit for the seat users. + format: int64 + type: integer + next_cursor: + description: The next cursor for the seat users. + type: string + type: object + SecretRuleArray: + description: A collection of secret detection rules returned by the list endpoint. properties: data: - description: An array of signal state updates. + description: The list of secret detection rules. items: - $ref: "#/components/schemas/SecurityMonitoringSignalsBulkStateUpdateData" - maxItems: 199 + $ref: "#/components/schemas/SecretRuleData" type: array required: - data type: object - SecurityMonitoringSignalsBulkTriageEvent: - description: A single signal event entry in a bulk triage update response. + SecretRuleData: + description: The data object representing a secret detection rule, including its attributes and resource type. properties: - event: - $ref: "#/components/schemas/SecurityMonitoringSignalsBulkTriageEventAttributes" + attributes: + $ref: "#/components/schemas/SecretRuleDataAttributes" id: - description: The unique ID of the security signal. - example: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA + description: The unique identifier of the secret rule resource. type: string + type: + $ref: "#/components/schemas/SecretRuleDataType" required: - - id - - event + - type type: object - SecurityMonitoringSignalsBulkTriageEventAttributes: - description: Triage attributes of a security signal returned in a bulk update response. + SecretRuleDataAttributes: + description: The attributes of a secret detection rule, including its pattern, priority, and validation configuration. properties: - archive_comment: - $ref: "#/components/schemas/SecurityMonitoringSignalArchiveComment" - archive_comment_timestamp: - description: Timestamp of the last edit to the archive comment. - format: int64 - type: integer - archive_comment_user: - $ref: "#/components/schemas/SecurityMonitoringTriageUser" - archive_reason: - $ref: "#/components/schemas/SecurityMonitoringSignalArchiveReason" - assignee: - $ref: "#/components/schemas/SecurityMonitoringTriageUser" - id: - description: The unique ID of the security signal. - example: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA + default_included_keywords: + description: A list of keywords that are included by default when scanning for secrets matching this rule. + items: + description: A keyword used to narrow down secret detection to relevant contexts. + type: string + type: array + description: + description: A detailed explanation of what type of secret this rule detects. type: string - incident_ids: - $ref: "#/components/schemas/SecurityMonitoringSignalIncidentIds" - state: - $ref: "#/components/schemas/SecurityMonitoringSignalState" - state_update_timestamp: - description: Timestamp of the last state update. - format: int64 - type: integer - state_update_user: - $ref: "#/components/schemas/SecurityMonitoringTriageUser" - required: - - id - - state - - assignee - - incident_ids + license: + description: The license under which this secret rule is distributed. + type: string + match_validation: + $ref: "#/components/schemas/SecretRuleDataAttributesMatchValidation" + name: + description: The unique name of the secret detection rule. + type: string + pattern: + description: The regular expression pattern used to identify potential secrets in source code or configuration. + type: string + priority: + description: The priority level of this rule, used to rank findings when multiple rules match. + type: string + sds_id: + description: The identifier of the corresponding Sensitive Data Scanner rule, if one exists. + type: string + validators: + description: A list of validator identifiers used to further confirm a detected secret is genuine. + items: + description: A validator identifier applied to refine secret detection accuracy. + type: string + type: array type: object - SecurityMonitoringSignalsBulkTriageUpdateResponse: - description: Response for a bulk triage update of security signals. + SecretRuleDataAttributesMatchValidation: + description: Configuration for validating whether a detected secret is active by making an HTTP request and inspecting the response. properties: - result: - $ref: "#/components/schemas/SecurityMonitoringSignalsBulkTriageUpdateResult" - status: - description: The status of the bulk operation. - example: done + endpoint: + description: The URL endpoint to call when validating a detected secret. + type: string + hosts: + description: The list of hostnames to include when performing secret match validation. + items: + description: A hostname used during match validation. + type: string + type: array + http_method: + description: The HTTP method (e.g., GET, POST) to use when making the validation request. type: string + invalid_http_status_code: + description: The HTTP status code ranges that indicate the detected secret is invalid or inactive. + items: + $ref: "#/components/schemas/SecretRuleDataAttributesMatchValidationInvalidHttpStatusCodeItems" + type: array + request_headers: + additionalProperties: + type: string + description: A map of HTTP header names to values to include in the validation request. + type: object + timeout_seconds: + description: The maximum number of seconds to wait for a response during validation before timing out. + format: int64 + maximum: 1.8446744073709551e+19 + minimum: 0 + type: integer type: - description: The type of the response. - example: status + description: The type of match validation to perform (e.g., http). type: string - required: - - type - - status - - result + valid_http_status_code: + description: The HTTP status code ranges that indicate the detected secret is valid and active. + items: + $ref: "#/components/schemas/SecretRuleDataAttributesMatchValidationValidHttpStatusCodeItems" + type: array type: object - SecurityMonitoringSignalsBulkTriageUpdateResult: - description: The result payload of a bulk signal triage update. + SecretRuleDataAttributesMatchValidationInvalidHttpStatusCodeItems: + description: An HTTP status code range that indicates an invalid (unsuccessful) secret match during validation. properties: - count: - description: The number of signals updated. - example: 2 + end: + description: The inclusive upper bound of the HTTP status code range. format: int64 + maximum: 1.8446744073709551e+19 + minimum: 0 type: integer - events: - description: The list of updated signals. + start: + description: The inclusive lower bound of the HTTP status code range. + format: int64 + maximum: 1.8446744073709551e+19 + minimum: 0 + type: integer + type: object + SecretRuleDataAttributesMatchValidationValidHttpStatusCodeItems: + description: An HTTP status code range that indicates a valid (successful) secret match during validation. + properties: + end: + description: The inclusive upper bound of the HTTP status code range. + format: int64 + maximum: 1.8446744073709551e+19 + minimum: 0 + type: integer + start: + description: The inclusive lower bound of the HTTP status code range. + format: int64 + maximum: 1.8446744073709551e+19 + minimum: 0 + type: integer + type: object + SecretRuleDataType: + default: secret_rule + description: Secret rule resource type. + enum: + - secret_rule + example: secret_rule + type: string + x-enum-varnames: + - SECRET_RULE + SecureEmbedCreateRequest: + description: Request to create a secure embed shared dashboard. + properties: + data: + $ref: "#/components/schemas/SecureEmbedCreateRequestData" + required: + - data + type: object + SecureEmbedCreateRequestAttributes: + description: Attributes for creating a secure embed shared dashboard. + properties: + global_time: + $ref: "#/components/schemas/SecureEmbedGlobalTime" + global_time_selectable: + description: Whether viewers can change the time range. + example: true + type: boolean + selectable_template_vars: + description: Template variables viewers can modify. items: - $ref: "#/components/schemas/SecurityMonitoringSignalsBulkTriageEvent" + $ref: "#/components/schemas/SecureEmbedSelectableTemplateVariable" type: array + status: + $ref: "#/components/schemas/SecureEmbedStatus" + title: + description: Display title for the shared dashboard. + example: "Q1 Metrics Dashboard" + type: string + viewing_preferences: + $ref: "#/components/schemas/SecureEmbedViewingPreferences" required: - - count - - events + - status + - title + - global_time_selectable + - selectable_template_vars + - viewing_preferences + - global_time type: object - SecurityMonitoringSignalsBulkUpdateData: - description: Data for updating a single security signal in a bulk update operation. + SecureEmbedCreateRequestData: + description: Data object for creating a secure embed. properties: attributes: - $ref: "#/components/schemas/SecurityMonitoringSignalUpdateAttributes" - id: - description: The unique ID of the security signal. - example: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA - type: string + $ref: "#/components/schemas/SecureEmbedCreateRequestAttributes" type: - $ref: "#/components/schemas/SecurityMonitoringSignalType" + $ref: "#/components/schemas/SecureEmbedRequestType" required: - - id + - type - attributes type: object - SecurityMonitoringSignalsBulkUpdateRequest: - description: Request body for updating multiple attributes of multiple security signals. + SecureEmbedCreateResponse: + description: Response for creating a secure embed shared dashboard. properties: data: - description: An array of signal updates. - items: - $ref: "#/components/schemas/SecurityMonitoringSignalsBulkUpdateData" - maxItems: 199 - type: array + $ref: "#/components/schemas/SecureEmbedCreateResponseData" required: - data type: object - SecurityMonitoringSignalsListResponse: - description: "The response object with all security signals matching the request\nand pagination information." + SecureEmbedCreateResponseAttributes: + description: Attributes of a newly created secure embed shared dashboard. properties: - data: - description: An array of security signals matching the request. + created_at: + description: Creation timestamp. + example: "2026-03-11T18:30:00.000000" + readOnly: true + type: string + credential: + description: >- + The secret credential used for HMAC signing. Returned only on creation. Store securely — it cannot be retrieved again. + example: "A1b2C3d4E5f6G7h8I9j0K1l2M3n4O5p6Q7r8S9t0U1v2" + readOnly: true + type: string + dashboard_id: + description: The source dashboard ID. + example: "abc-def-ghi" + readOnly: true + type: string + global_time: + $ref: "#/components/schemas/SecureEmbedGlobalTime" + global_time_selectable: + description: Whether time range is viewer-selectable. + example: true + type: boolean + id: + description: Internal share ID. + example: "12345" + readOnly: true + type: string + selectable_template_vars: + description: Template variables with their configuration. items: - $ref: "#/components/schemas/SecurityMonitoringSignal" + $ref: "#/components/schemas/SecureEmbedSelectableTemplateVariable" type: array - links: - $ref: "#/components/schemas/SecurityMonitoringSignalsListResponseLinks" - meta: - $ref: "#/components/schemas/SecurityMonitoringSignalsListResponseMeta" + share_type: + $ref: "#/components/schemas/SecureEmbedShareType" + status: + $ref: "#/components/schemas/SecureEmbedStatus" + title: + description: Display title. + example: "Q1 Metrics Dashboard" + type: string + token: + description: Public share token. + example: "s3cur3t0k3n-abcdef123456" + readOnly: true + type: string + url: + description: CDN URL for the shared dashboard. + example: "https://p.datadoghq.com/sb/secure-embed/s3cur3t0k3n-abcdef123456" + readOnly: true + type: string + viewing_preferences: + $ref: "#/components/schemas/SecureEmbedViewingPreferences" type: object - SecurityMonitoringSignalsListResponseLinks: - description: Links attributes. + SecureEmbedCreateResponseData: + description: Data object for a secure embed create response. properties: - next: - description: "The link for the next set of results. **Note**: The request can also be made using the\nPOST endpoint." - example: https://app.datadoghq.com/api/v2/security_monitoring/signals?filter[query]=foo&page[cursor]=eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ== + attributes: + $ref: "#/components/schemas/SecureEmbedCreateResponseAttributes" + id: + description: Internal share ID. + example: "12345" type: string + type: + $ref: "#/components/schemas/SecureEmbedCreateResponseType" + required: + - type + - id + - attributes type: object - SecurityMonitoringSignalsListResponseMeta: - description: Meta attributes. + SecureEmbedCreateResponseType: + description: Resource type for secure embed create responses. + enum: + - secure_embed_create_response + example: "secure_embed_create_response" + type: string + x-enum-varnames: + - SECURE_EMBED_CREATE_RESPONSE + SecureEmbedGetResponse: + description: Response for getting a secure embed shared dashboard. properties: - elapsed: - description: The time elapsed in milliseconds. - example: 132 - format: int64 - type: integer - page: - $ref: "#/components/schemas/SecurityMonitoringSignalsListResponseMetaPage" - request_id: - description: The unique identifier of the request. - example: example-request-id + data: + $ref: "#/components/schemas/SecureEmbedGetResponseData" + required: + - data + type: object + SecureEmbedGetResponseAttributes: + description: Attributes of an existing secure embed shared dashboard. + properties: + created_at: + description: Creation timestamp. + example: "2026-03-11T18:30:00.000000" + readOnly: true + type: string + credential_suffix: + description: Last 4 characters of the credential. Defaults to `0000` if unavailable. + example: "ab3f" + readOnly: true + type: string + dashboard_id: + description: The source dashboard ID. + example: "abc-def-ghi" + readOnly: true + type: string + global_time: + $ref: "#/components/schemas/SecureEmbedGlobalTime" + global_time_selectable: + description: Whether time range is viewer-selectable. + example: true + type: boolean + id: + description: Internal share ID. + example: "12345" + readOnly: true type: string + selectable_template_vars: + description: Template variables with their configuration. + items: + $ref: "#/components/schemas/SecureEmbedSelectableTemplateVariable" + type: array + share_type: + $ref: "#/components/schemas/SecureEmbedShareType" status: - description: The status of the response. - example: done + $ref: "#/components/schemas/SecureEmbedStatus" + title: + description: Display title. + example: "Q1 Metrics Dashboard" + type: string + token: + description: Public share token. + example: "s3cur3t0k3n-abcdef123456" + readOnly: true + type: string + url: + description: CDN URL for the shared dashboard. + example: "https://p.datadoghq.com/sb/secure-embed/s3cur3t0k3n-abcdef123456" + readOnly: true type: string + viewing_preferences: + $ref: "#/components/schemas/SecureEmbedViewingPreferences" type: object - SecurityMonitoringSignalsListResponseMetaPage: - description: Paging attributes. + SecureEmbedGetResponseData: + description: Data object for a secure embed get response. properties: - after: - description: "The cursor used to get the next results, if any. To make the next request, use the same\nparameters with the addition of the `page[cursor]`." - example: eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ== + attributes: + $ref: "#/components/schemas/SecureEmbedGetResponseAttributes" + id: + description: Internal share ID. + example: "12345" type: string + type: + $ref: "#/components/schemas/SecureEmbedGetResponseType" + required: + - type + - id + - attributes type: object - SecurityMonitoringSignalsSort: - description: The sort parameters used for querying security signals. + SecureEmbedGetResponseType: + description: Resource type for secure embed get responses. enum: - - timestamp - - -timestamp + - secure_embed_get_response + example: "secure_embed_get_response" type: string x-enum-varnames: - - TIMESTAMP_ASCENDING - - TIMESTAMP_DESCENDING - SecurityMonitoringStandardDataSource: - default: logs - description: Source of events, either logs, audit trail, security signals, or Datadog events. `app_sec_spans` is deprecated in favor of `spans`. + - SECURE_EMBED_GET_RESPONSE + SecureEmbedGlobalTime: + description: Default time range configuration for the secure embed. + properties: + live_span: + $ref: "#/components/schemas/SecureEmbedGlobalTimeLiveSpan" + type: object + SecureEmbedGlobalTimeLiveSpan: + description: Dashboard global time live_span selection. enum: - - logs - - audit - - app_sec_spans - - spans - - security_runtime - - network - - events - - security_signals - example: logs + - 15m + - 1h + - 4h + - 1d + - 2d + - 1w + - 1mo + - 3mo + example: "1h" type: string x-enum-varnames: - - LOGS - - AUDIT - - APP_SEC_SPANS - - SPANS - - SECURITY_RUNTIME - - NETWORK - - EVENTS - - SECURITY_SIGNALS - SecurityMonitoringStandardRuleCreatePayload: - description: Create a new rule. + - PAST_FIFTEEN_MINUTES + - PAST_ONE_HOUR + - PAST_FOUR_HOURS + - PAST_ONE_DAY + - PAST_TWO_DAYS + - PAST_ONE_WEEK + - PAST_ONE_MONTH + - PAST_THREE_MONTHS + SecureEmbedRequestType: + description: Resource type for secure embed create requests. + enum: + - secure_embed_request + example: "secure_embed_request" + type: string + x-enum-varnames: + - SECURE_EMBED_REQUEST + SecureEmbedSelectableTemplateVariable: + description: A template variable that viewers can modify on the secure embed shared dashboard. properties: - calculatedFields: - description: Calculated fields. Only allowed for scheduled rules - in other words, when schedulingOptions is also defined. - items: - $ref: "#/components/schemas/CalculatedField" - type: array - cases: - description: Cases for generating signals. - example: [] - items: - $ref: "#/components/schemas/SecurityMonitoringRuleCaseCreate" - type: array - filters: - description: Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules. - items: - $ref: "#/components/schemas/SecurityMonitoringFilter" - type: array - groupSignalsBy: - description: Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups. - example: - - service + default_values: + description: Default selected values for the variable. + example: ["1"] items: - description: Field to group by. + description: A default value for the template variable. type: string type: array - hasExtendedTitle: - description: Whether the notifications include the triggering group-by values in their title. - example: true - type: boolean - isEnabled: - description: Whether the rule is enabled. - example: true - type: boolean - message: - description: Message for generated signals. - example: "" - type: string name: - description: The name of the rule. - example: My security monitoring rule. + description: Name of the template variable. Usually matches the prefix unless you want a different display name. + example: "org_id" type: string - options: - $ref: "#/components/schemas/SecurityMonitoringRuleOptions" - queries: - description: Queries for selecting logs which are part of the rule. - example: [] - items: - $ref: "#/components/schemas/SecurityMonitoringStandardRuleQuery" - type: array - referenceTables: - description: Reference tables for the rule. - items: - $ref: "#/components/schemas/SecurityMonitoringReferenceTable" - type: array - schedulingOptions: - $ref: "#/components/schemas/SecurityMonitoringSchedulingOptions" - tags: - description: Tags for generated signals. - example: - - env:prod - - team:security + prefix: + description: Tag prefix for the variable (e.g., `environment`, `service`). + example: "org_id" + type: string + visible_tags: + description: Restrict which tag values are visible to the viewer. + example: ["1"] items: - description: Tag. + description: A visible tag value for the template variable. type: string type: array - thirdPartyCases: - description: Cases for generating signals from third-party rules. Only available for third-party rules. - example: [] + type: object + SecureEmbedShareType: + description: The type of share. Always `secure_embed`. + enum: + - secure_embed + example: "secure_embed" + type: string + x-enum-varnames: + - SECURE_EMBED + SecureEmbedStatus: + description: The status of the secure embed share. Active means the shared dashboard is available. Paused means it is not. + enum: + - active + - paused + example: "active" + type: string + x-enum-varnames: + - ACTIVE + - PAUSED + SecureEmbedUpdateRequest: + description: Request to update a secure embed shared dashboard. + properties: + data: + $ref: "#/components/schemas/SecureEmbedUpdateRequestData" + required: + - data + type: object + SecureEmbedUpdateRequestAttributes: + description: Attributes for updating a secure embed shared dashboard. All fields are optional. + properties: + global_time: + $ref: "#/components/schemas/SecureEmbedGlobalTime" + global_time_selectable: + description: Updated time selectability. + example: true + type: boolean + selectable_template_vars: + description: Updated template variables. items: - $ref: "#/components/schemas/SecurityMonitoringThirdPartyRuleCaseCreate" + $ref: "#/components/schemas/SecureEmbedSelectableTemplateVariable" type: array + status: + $ref: "#/components/schemas/SecureEmbedStatus" + title: + description: Updated title. + example: "Q1 Metrics Dashboard (Updated)" + type: string + viewing_preferences: + $ref: "#/components/schemas/SecureEmbedViewingPreferences" + type: object + SecureEmbedUpdateRequestData: + description: Data object for updating a secure embed. + properties: + attributes: + $ref: "#/components/schemas/SecureEmbedUpdateRequestAttributes" type: - $ref: "#/components/schemas/SecurityMonitoringRuleTypeCreate" + $ref: "#/components/schemas/SecureEmbedUpdateRequestType" required: - - name - - isEnabled - - queries - - options - - cases - - message + - type + - attributes type: object - SecurityMonitoringStandardRulePayload: - description: The payload of a rule. + SecureEmbedUpdateRequestType: + description: Resource type for secure embed update requests. + enum: + - secure_embed_update_request + example: "secure_embed_update_request" + type: string + x-enum-varnames: + - SECURE_EMBED_UPDATE_REQUEST + SecureEmbedUpdateResponse: + description: Response for updating a secure embed shared dashboard. properties: - calculatedFields: - description: Calculated fields. Only allowed for scheduled rules - in other words, when schedulingOptions is also defined. - items: - $ref: "#/components/schemas/CalculatedField" - type: array - cases: - description: Cases for generating signals. - example: [] - items: - $ref: "#/components/schemas/SecurityMonitoringRuleCaseCreate" - type: array - customMessage: - description: Custom/Overridden message for generated signals (used in case of Default rule update). + data: + $ref: "#/components/schemas/SecureEmbedUpdateResponseData" + required: + - data + type: object + SecureEmbedUpdateResponseAttributes: + description: Attributes of an updated secure embed shared dashboard. + properties: + created_at: + description: Creation timestamp. + example: "2026-03-11T18:30:00.000000" + readOnly: true type: string - customName: - description: Custom/Overridden name of the rule (used in case of Default rule update). + credential_suffix: + description: Last 4 characters of the credential. Defaults to `0000` if unavailable. + example: "ab3f" + readOnly: true type: string - filters: - description: Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules. - items: - $ref: "#/components/schemas/SecurityMonitoringFilter" - type: array - groupSignalsBy: - description: Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups. - example: - - service + dashboard_id: + description: The source dashboard ID. + example: "abc-def-ghi" + readOnly: true + type: string + global_time: + $ref: "#/components/schemas/SecureEmbedGlobalTime" + global_time_selectable: + description: Whether time range is viewer-selectable. + example: true + type: boolean + id: + description: Internal share ID. + example: "12345" + readOnly: true + type: string + selectable_template_vars: + description: Template variables with their configuration. items: - description: Field to group by. - type: string + $ref: "#/components/schemas/SecureEmbedSelectableTemplateVariable" type: array - hasExtendedTitle: - description: Whether the notifications include the triggering group-by values in their title. + share_type: + $ref: "#/components/schemas/SecureEmbedShareType" + status: + $ref: "#/components/schemas/SecureEmbedStatus" + title: + description: Display title. + example: "Q1 Metrics Dashboard (Updated)" + type: string + token: + description: Public share token. + example: "s3cur3t0k3n-abcdef123456" + readOnly: true + type: string + url: + description: CDN URL for the shared dashboard. + example: "https://p.datadoghq.com/sb/secure-embed/s3cur3t0k3n-abcdef123456" + readOnly: true + type: string + viewing_preferences: + $ref: "#/components/schemas/SecureEmbedViewingPreferences" + type: object + SecureEmbedUpdateResponseData: + description: Data object for a secure embed update response. + properties: + attributes: + $ref: "#/components/schemas/SecureEmbedUpdateResponseAttributes" + id: + description: Internal share ID. + example: "12345" + type: string + type: + $ref: "#/components/schemas/SecureEmbedUpdateResponseType" + required: + - type + - id + - attributes + type: object + SecureEmbedUpdateResponseType: + description: Resource type for secure embed update responses. + enum: + - secure_embed_update_response + example: "secure_embed_update_response" + type: string + x-enum-varnames: + - SECURE_EMBED_UPDATE_RESPONSE + SecureEmbedViewingPreferences: + description: Display settings for the secure embed shared dashboard. + properties: + high_density: + description: Whether widgets are displayed in high density mode. + example: false + type: boolean + theme: + $ref: "#/components/schemas/SecureEmbedViewingPreferencesTheme" + type: object + SecureEmbedViewingPreferencesTheme: + description: The theme of the shared dashboard view. `system` follows the viewer's system default. + enum: + - system + - light + - dark + example: "system" + type: string + x-enum-varnames: + - SYSTEM + - LIGHT + - DARK + SecurityAutomationRulesLinks: + description: Pagination links for the list of automation rules. + properties: + first: + description: Link to the first page of results. + example: "/api/v2/security/findings/automation/mute_rules?page[size]=10&page[number]=0" + type: string + last: + description: Link to the last page of results. + example: "/api/v2/security/findings/automation/mute_rules?page[size]=10&page[number]=5" + type: string + next: + description: Link to the next page of results. + example: "/api/v2/security/findings/automation/mute_rules?page[size]=10&page[number]=2" + type: string + prev: + description: Link to the previous page of results. + example: "/api/v2/security/findings/automation/mute_rules?page[size]=10&page[number]=0" + type: string + required: + - first + - last + type: object + SecurityAutomationRulesMeta: + description: Metadata for the list of automation rules. + properties: + page: + $ref: "#/components/schemas/SecurityAutomationRulesPageInfo" + required: + - page + type: object + SecurityAutomationRulesPageInfo: + description: Pagination information for the list of automation rules. + properties: + total_filtered_count: + description: The total number of rules matching the current filter. + example: 42 + format: int64 + type: integer + required: + - total_filtered_count + type: object + SecurityEntityConfigRisks: + description: Configuration risks associated with the entity + properties: + hasIdentityRisk: + description: Whether the entity has identity risks + example: false + type: boolean + hasMisconfiguration: + description: Whether the entity has misconfigurations example: true type: boolean - isEnabled: - description: Whether the rule is enabled. + hasPrivilegedRole: + description: Whether the entity has privileged roles example: true type: boolean - message: - description: Message for generated signals. - example: "" - type: string - name: - description: The name of the rule. - example: My security monitoring rule. + isPrivileged: + description: Whether the entity has privileged access + example: false + type: boolean + isProduction: + description: Whether the entity is in a production environment + example: true + type: boolean + isPubliclyAccessible: + description: Whether the entity is publicly accessible + example: true + type: boolean + required: + - hasMisconfiguration + - hasIdentityRisk + - isPubliclyAccessible + - isProduction + - hasPrivilegedRole + - isPrivileged + type: object + SecurityEntityMetadata: + description: Metadata about the entity from cloud providers + properties: + accountID: + description: Cloud account ID (AWS) + example: "123456789012" type: string - options: - $ref: "#/components/schemas/SecurityMonitoringRuleOptions" - queries: - description: Queries for selecting logs which are part of the rule. - example: [] + environments: + description: Environment tags associated with the entity + example: ["production", "us-east-1"] items: - $ref: "#/components/schemas/SecurityMonitoringStandardRuleQuery" + description: An environment tag associated with the entity. + type: string type: array - referenceTables: - description: Reference tables for the rule. + mitreTactics: + description: MITRE ATT&CK tactics detected + example: ["Credential Access", "Privilege Escalation"] items: - $ref: "#/components/schemas/SecurityMonitoringReferenceTable" + description: Detected MITRE ATT&CK tactic + type: string type: array - schedulingOptions: - $ref: "#/components/schemas/SecurityMonitoringSchedulingOptions" - tags: - description: Tags for generated signals. - example: - - env:prod - - team:security + mitreTechniques: + description: MITRE ATT&CK techniques detected + example: ["T1078", "T1098"] items: - description: Tag. + description: Detected MITRE ATT&CK technique type: string type: array - thirdPartyCases: - description: Cases for generating signals from third-party rules. Only available for third-party rules. - example: [] + projectID: + description: Cloud project ID (GCP) + example: "my-gcp-project" + type: string + services: + description: Services associated with the entity + example: ["api-gateway", "lambda"] items: - $ref: "#/components/schemas/SecurityMonitoringThirdPartyRuleCaseCreate" + description: A service name associated with the entity. + type: string type: array - type: - $ref: "#/components/schemas/SecurityMonitoringRuleTypeCreate" + sources: + description: Data sources that detected this entity + example: ["cloudtrail", "cloud-security-posture-management"] + items: + description: A data source identifier. + type: string + type: array + subscriptionID: + description: Cloud subscription ID (Azure) + example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + type: string required: - - name - - isEnabled - - queries - - options - - cases - - message + - sources + - environments + - services + - mitreTactics + - mitreTechniques type: object - SecurityMonitoringStandardRuleQuery: - description: Query for matching rule. + SecurityEntityRiskScore: + description: An entity risk score containing security risk assessment information properties: - aggregation: - $ref: "#/components/schemas/SecurityMonitoringRuleQueryAggregation" - customQueryExtension: - description: Query extension to append to the logs query. - example: a > 3 + attributes: + $ref: "#/components/schemas/SecurityEntityRiskScoreAttributes" + id: + description: Unique identifier for the entity + example: "arn:aws:iam::123456789012:user/john.doe" type: string - dataSource: - $ref: "#/components/schemas/SecurityMonitoringStandardDataSource" - distinctFields: - description: Field for which the cardinality is measured. Sent as an array. + type: + $ref: "#/components/schemas/SecurityEntityRiskScoreType" + required: + - id + - type + - attributes + type: object + SecurityEntityRiskScoreAttributes: + description: Attributes of an entity risk score. + properties: + accountIds: + description: Cloud account IDs associated with the entity. + example: ["222233334444", "3333333555555"] items: - description: Field. + description: A cloud account ID. type: string type: array - groupByFields: - description: Fields to group by. + configRisks: + $ref: "#/components/schemas/SecurityEntityConfigRisks" + entityMetadata: + $ref: "#/components/schemas/SecurityEntityMetadata" + entityName: + description: Human-readable name of the entity. + example: "john.doe" + type: string + entityProviders: + description: Cloud providers associated with the entity. + example: ["AWS"] items: - description: Field. + description: A cloud provider name. type: string type: array - hasOptionalGroupByFields: - default: false - description: When false, events without a group-by value are ignored by the rule. When true, events with missing group-by fields are processed with `N/A`, replacing the missing values. - example: false - type: boolean - index: - description: "**This field is currently unstable and might be removed in a minor version upgrade.**\nThe index to run the query on, if the `dataSource` is `logs`. Only used for scheduled rules - in other words, when the `schedulingOptions` field is present in the rule payload." - type: string - indexes: - description: List of indexes to query when the `dataSource` is `logs`. Only used for scheduled rules, such as when the `schedulingOptions` field is present in the rule payload. + entityRoles: + description: Roles associated with the entity. + example: [] items: - description: Index. + description: A role assigned to the entity. type: string type: array - metric: - deprecated: true - description: "(Deprecated) The target field to aggregate over when using the sum or max\naggregations. `metrics` field should be used instead." - type: string - metrics: - description: Group of target fields to aggregate over when using the sum, max, geo data, or new value aggregations. The sum, max, and geo data aggregations only accept one value in this list, whereas the new value aggregation accepts up to five values. + entitySubTypes: + description: Sub-types associated with the entity. + example: ["Root"] items: - description: Field. + description: An entity sub-type label. type: string type: array - name: - description: Name of the query. - type: string - query: - description: Query to run on logs. - example: a > 3 + entityType: + description: Type of the entity (for example, aws_iam_user, aws_ec2_instance). + example: "aws_iam_user" type: string - type: object - SecurityMonitoringStandardRuleResponse: - description: Rule. - properties: - calculatedFields: - description: Calculated fields. Only allowed for scheduled rules - in other words, when schedulingOptions is also defined. - items: - $ref: "#/components/schemas/CalculatedField" - type: array - cases: - description: Cases for generating signals. + entityTypes: + description: All types associated with the entity. + example: ["Root", "User Name"] items: - $ref: "#/components/schemas/SecurityMonitoringRuleCase" + description: An entity type label. + type: string type: array - compatibleVersion: - description: The version of the rule at which its detection logic last changed. Updates that only change the name, message, tags, or notifications do not change this value. - example: 1 + firstDetected: + description: Timestamp when the entity was first detected (Unix milliseconds). + example: 1778876604661 format: int64 type: integer - complianceSignalOptions: - $ref: "#/components/schemas/CloudConfigurationRuleComplianceSignalOptions" - createdAt: - description: When the rule was created, timestamp in milliseconds. + lastActivityTitle: + description: Title of the most recent signal detected for this entity. + example: "Suspicious API call detected" + type: string + lastDetected: + description: Timestamp when the entity was last detected (Unix milliseconds). + example: 1780064607093 format: int64 type: integer - creationAuthorId: - description: User ID of the user who created the rule. + riskScore: + description: Current risk score for the entity. + example: 85 format: int64 type: integer - customMessage: - description: Custom/Overridden message for generated signals (used in case of Default rule update). - type: string - customName: - description: Custom/Overridden name of the rule (used in case of Default rule update). - type: string - defaultTags: - description: Default Tags for default rules (included in tags) - example: - - security:attacks - items: - description: Default Tag. - type: string - type: array - deprecationDate: - description: When the rule will be deprecated, timestamp in milliseconds. + riskScoreEvolution: + description: Change in risk score compared to previous period. + example: 12 format: int64 type: integer - filters: - description: Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules. - items: - $ref: "#/components/schemas/SecurityMonitoringFilter" - type: array - groupSignalsBy: - description: Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups. - example: - - service - items: - description: Field to group by. - type: string - type: array - hasExtendedTitle: - description: Whether the notifications include the triggering group-by values in their title. - type: boolean - id: - description: The ID of the rule. - type: string - isDefault: - description: Whether the rule is included by default. - type: boolean - isDeleted: - description: Whether the rule has been deleted. - type: boolean - isEnabled: - description: Whether the rule is enabled. - type: boolean - message: - description: Message for generated signals. - type: string - name: - description: The name of the rule. - type: string - options: - $ref: "#/components/schemas/SecurityMonitoringRuleOptions" - queries: - description: Queries for selecting logs which are part of the rule. - items: - $ref: "#/components/schemas/SecurityMonitoringStandardRuleQuery" - type: array - referenceTables: - description: Reference tables for the rule. - items: - $ref: "#/components/schemas/SecurityMonitoringReferenceTable" - type: array - schedulingOptions: - $ref: "#/components/schemas/SecurityMonitoringSchedulingOptions" - tags: - description: Tags for generated signals. - items: - description: Tag. - type: string - type: array - thirdPartyCases: - description: Cases for generating signals from third-party rules. Only available for third-party rules. - example: [] - items: - $ref: "#/components/schemas/SecurityMonitoringThirdPartyRuleCase" - type: array - type: - $ref: "#/components/schemas/SecurityMonitoringRuleTypeRead" - updateAuthorId: - description: User ID of the user who updated the rule. + severity: + $ref: "#/components/schemas/SecurityEntityRiskScoreAttributesSeverity" + signalsDetected: + description: Number of risk-contributing security signals detected for this entity. + example: 15 format: int64 type: integer - updatedAt: - description: The date the rule was last updated, in milliseconds. + required: + - entityProviders + - entitySubTypes + - accountIds + - riskScore + - riskScoreEvolution + - severity + - firstDetected + - lastDetected + - lastActivityTitle + - signalsDetected + - configRisks + - entityMetadata + type: object + SecurityEntityRiskScoreAttributesSeverity: + description: Severity level based on risk score + enum: + - critical + - high + - medium + - low + - info + example: "critical" + type: string + x-enum-varnames: + - CRITICAL + - HIGH + - MEDIUM + - LOW + - INFO + SecurityEntityRiskScoreResponse: + description: Response containing a single entity risk score + properties: + data: + $ref: "#/components/schemas/SecurityEntityRiskScore" + required: + - data + type: object + SecurityEntityRiskScoreType: + description: Resource type. + enum: + - SecurityEntityRiskScore + example: SecurityEntityRiskScore + type: string + x-enum-varnames: + - SECURITY_ENTITY_RISK_SCORE + SecurityEntityRiskScoresMeta: + description: Metadata for pagination + properties: + pageNumber: + description: Current page number (1-indexed) + example: 1 format: int64 type: integer - version: - description: The version of the rule. + pageSize: + description: Number of items per page + example: 10 + format: int64 + type: integer + queryId: + description: Query ID for pagination consistency + example: "abc123def456" + type: string + totalRowCount: + description: Total number of entities matching the query + example: 150 format: int64 type: integer + required: + - queryId + - totalRowCount + - pageSize + - pageNumber type: object - SecurityMonitoringStandardRuleTestPayload: - description: The payload of a rule to test + SecurityEntityRiskScoresResponse: + description: Response containing a list of entity risk scores properties: - calculatedFields: - description: Calculated fields. Only allowed for scheduled rules - in other words, when schedulingOptions is also defined. - items: - $ref: "#/components/schemas/CalculatedField" - type: array - cases: - description: Cases for generating signals. - example: [] - items: - $ref: "#/components/schemas/SecurityMonitoringRuleCaseCreate" - type: array - filters: - description: Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules. - items: - $ref: "#/components/schemas/SecurityMonitoringFilter" - type: array - groupSignalsBy: - description: Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups. - example: - - service - items: - description: Field to group by. - type: string - type: array - hasExtendedTitle: - description: Whether the notifications include the triggering group-by values in their title. - example: true - type: boolean - isEnabled: - description: Whether the rule is enabled. - example: true - type: boolean - message: - description: Message for generated signals. - example: "" - type: string - name: - description: The name of the rule. - example: My security monitoring rule. - type: string - options: - $ref: "#/components/schemas/SecurityMonitoringRuleOptions" - queries: - description: Queries for selecting logs which are part of the rule. - example: [] - items: - $ref: "#/components/schemas/SecurityMonitoringStandardRuleQuery" - type: array - referenceTables: - description: Reference tables for the rule. - items: - $ref: "#/components/schemas/SecurityMonitoringReferenceTable" - type: array - schedulingOptions: - $ref: "#/components/schemas/SecurityMonitoringSchedulingOptions" - tags: - description: Tags for generated signals. - example: - - env:prod - - team:security - items: - description: Tag. - type: string - type: array - thirdPartyCases: - description: Cases for generating signals from third-party rules. Only available for third-party rules. - example: [] + data: + description: Array of entity risk score objects. items: - $ref: "#/components/schemas/SecurityMonitoringThirdPartyRuleCaseCreate" + $ref: "#/components/schemas/SecurityEntityRiskScore" type: array - type: - $ref: "#/components/schemas/SecurityMonitoringRuleTypeTest" + meta: + $ref: "#/components/schemas/SecurityEntityRiskScoresMeta" required: - - name - - isEnabled - - queries - - options - - cases - - message + - data + - meta type: object - SecurityMonitoringSuppression: - description: The suppression rule's properties. + SecurityFilter: + description: The security filter's properties. properties: attributes: - $ref: "#/components/schemas/SecurityMonitoringSuppressionAttributes" + $ref: "#/components/schemas/SecurityFilterAttributes" id: - $ref: "#/components/schemas/SecurityMonitoringSuppressionID" + $ref: "#/components/schemas/SecurityFilterID" type: - $ref: "#/components/schemas/SecurityMonitoringSuppressionType" + $ref: "#/components/schemas/SecurityFilterType" type: object - SecurityMonitoringSuppressionAttributes: - description: The attributes of the suppression rule. + SecurityFilterAttributes: + description: The object describing a security filter. properties: - creation_date: - description: A Unix millisecond timestamp given the creation date of the suppression rule. - format: int64 - type: integer - creator: - $ref: "#/components/schemas/SecurityMonitoringUser" - data_exclusion_query: - description: An exclusion query on the input data of the security rules, which could be logs, Agent events, or other types of data based on the security rule. Events matching this query are ignored by any detection rules referenced in the suppression rule. - example: source:cloudtrail account_id:12345 - type: string - description: - description: A description for the suppression rule. - example: This rule suppresses low-severity signals in staging environments. - type: string - editable: - description: Whether the suppression rule is editable. - example: true + exclusion_filters: + description: The list of exclusion filters applied in this security filter. + items: + $ref: "#/components/schemas/SecurityFilterExclusionFilterResponse" + type: array + filtered_data_type: + $ref: "#/components/schemas/SecurityFilterFilteredDataType" + is_builtin: + description: Whether the security filter is the built-in filter. + example: false type: boolean - enabled: - description: Whether the suppression rule is enabled. - example: true + is_enabled: + description: Whether the security filter is enabled. + example: false type: boolean - expiration_date: - description: A Unix millisecond timestamp giving an expiration date for the suppression rule. After this date, it won't suppress signals anymore. - example: 1703187336000 - format: int64 - type: integer name: - description: The name of the suppression rule. - example: Custom suppression - type: string - rule_query: - description: The rule query of the suppression rule, with the same syntax as the search bar for detection rules. - example: type:log_detection source:cloudtrail + description: The security filter name. + example: Custom security filter type: string - start_date: - description: A Unix millisecond timestamp giving the start date for the suppression rule. After this date, it starts suppressing signals. - example: 1703187336000 - format: int64 - type: integer - suppression_query: - description: The suppression query of the suppression rule. If a signal matches this query, it is suppressed and not triggered. Same syntax as the queries to search signals in the signal explorer. - example: env:staging status:low + query: + description: The security filter query. Logs accepted by this query will be accepted by this filter. + example: service:api type: string - tags: - description: List of tags associated with the suppression rule. - example: - - technique:T1110-brute-force - - source:cloudtrail - items: - description: A tag string in `key:value` format. - type: string - type: array - update_date: - description: A Unix millisecond timestamp given the update date of the suppression rule. - format: int64 - type: integer - updater: - $ref: "#/components/schemas/SecurityMonitoringUser" version: - description: The version of the suppression rule; it starts at 1, and is incremented at each update. - example: 42 + description: The version of the security filter. + example: 1 format: int32 maximum: 2147483647 type: integer type: object - SecurityMonitoringSuppressionCreateAttributes: - description: Object containing the attributes of the suppression rule to be created. + SecurityFilterCreateAttributes: + description: Object containing the attributes of the security filter to be created. properties: - data_exclusion_query: - description: An exclusion query on the input data of the security rules, which could be logs, Agent events, or other types of data based on the security rule. Events matching this query are ignored by any detection rules referenced in the suppression rule. - example: source:cloudtrail account_id:12345 - type: string - description: - description: A description for the suppression rule. - example: This rule suppresses low-severity signals in staging environments. - type: string - enabled: - description: Whether the suppression rule is enabled. + exclusion_filters: + description: Exclusion filters to exclude some logs from the security filter. + example: + - name: Exclude staging + query: source:staging + items: + $ref: "#/components/schemas/SecurityFilterExclusionFilter" + type: array + filtered_data_type: + $ref: "#/components/schemas/SecurityFilterFilteredDataType" + is_enabled: + description: Whether the security filter is enabled. example: true type: boolean - expiration_date: - description: A Unix millisecond timestamp giving an expiration date for the suppression rule. After this date, it won't suppress signals anymore. - example: 1703187336000 - format: int64 - type: integer name: - description: The name of the suppression rule. - example: Custom suppression - type: string - rule_query: - description: The rule query of the suppression rule, with the same syntax as the search bar for detection rules. - example: type:log_detection source:cloudtrail + description: The name of the security filter. + example: Custom security filter type: string - start_date: - description: A Unix millisecond timestamp giving the start date for the suppression rule. After this date, it starts suppressing signals. - example: 1703187336000 - format: int64 - type: integer - suppression_query: - description: The suppression query of the suppression rule. If a signal matches this query, it is suppressed and is not triggered. It uses the same syntax as the queries to search signals in the Signals Explorer. - example: env:staging status:low + query: + description: The query of the security filter. + example: service:api type: string - tags: - description: List of tags associated with the suppression rule. - example: - - technique:T1110-brute-force - - source:cloudtrail - items: - description: A tag string in `key:value` format. - type: string - type: array required: - name - - enabled - - rule_query + - query + - exclusion_filters + - filtered_data_type + - is_enabled type: object - SecurityMonitoringSuppressionCreateData: - description: Object for a single suppression rule. + SecurityFilterCreateData: + description: Object for a single security filter. properties: attributes: - $ref: "#/components/schemas/SecurityMonitoringSuppressionCreateAttributes" + $ref: "#/components/schemas/SecurityFilterCreateAttributes" type: - $ref: "#/components/schemas/SecurityMonitoringSuppressionType" + $ref: "#/components/schemas/SecurityFilterType" required: - type - attributes type: object - SecurityMonitoringSuppressionCreateRequest: - description: Request object that includes the suppression rule that you would like to create. + SecurityFilterCreateRequest: + description: Request object that includes the security filter that you would like to create. properties: data: - $ref: "#/components/schemas/SecurityMonitoringSuppressionCreateData" + $ref: "#/components/schemas/SecurityFilterCreateData" required: - data type: object - SecurityMonitoringSuppressionID: - description: The ID of the suppression rule. - example: 3dd-0uc-h1s - type: string - SecurityMonitoringSuppressionResponse: - description: Response object containing a single suppression rule. + SecurityFilterExclusionFilter: + description: Exclusion filter for the security filter. + example: + name: Exclude staging + query: source:staging properties: - data: - $ref: "#/components/schemas/SecurityMonitoringSuppression" + name: + description: Exclusion filter name. + example: Exclude staging + type: string + query: + description: Exclusion filter query. Logs that match this query are excluded from the security filter. + example: source:staging + type: string + required: + - name + - query type: object - SecurityMonitoringSuppressionSort: - description: The sort parameters used for querying suppression rules. + SecurityFilterExclusionFilterResponse: + description: A single exclusion filter. + properties: + name: + description: The exclusion filter name. + example: Exclude staging + type: string + query: + description: The exclusion filter query. + example: source:staging + type: string + type: object + SecurityFilterFilteredDataType: + description: The filtered data type. enum: - - name - - start_date - - expiration_date - - update_date - - enabled - - -name - - -start_date - - -expiration_date - - -update_date - - -creation_date - - -enabled + - logs + example: logs type: string x-enum-varnames: - - NAME - - START_DATE - - EXPIRATION_DATE - - UPDATE_DATE - - ENABLED - - NAME_DESCENDING - - START_DATE_DESCENDING - - EXPIRATION_DATE_DESCENDING - - UPDATE_DATE_DESCENDING - - CREATION_DATE_DESCENDING - - ENABLED_DESCENDING - SecurityMonitoringSuppressionType: - default: suppressions - description: The type of the resource. The value should always be `suppressions`. + - LOGS + SecurityFilterID: + description: The ID of the security filter. + example: 3dd-0uc-h1s + type: string + SecurityFilterMeta: + description: Optional metadata associated to the response. + properties: + warning: + description: A warning message. + example: All the security filters are disabled. As a result, no logs are being analyzed. + type: string + type: object + SecurityFilterResponse: + description: Response object which includes a single security filter. + properties: + data: + $ref: "#/components/schemas/SecurityFilter" + meta: + $ref: "#/components/schemas/SecurityFilterMeta" + type: object + SecurityFilterType: + default: security_filters + description: The type of the resource. The value should always be `security_filters`. enum: - - suppressions - example: suppressions + - security_filters + example: security_filters type: string x-enum-varnames: - - SUPPRESSIONS - SecurityMonitoringSuppressionUpdateAttributes: - description: The suppression rule properties to be updated. + - SECURITY_FILTERS + SecurityFilterUpdateAttributes: + description: The security filters properties to be updated. properties: - data_exclusion_query: - description: An exclusion query on the input data of the security rules, which could be logs, Agent events, or other types of data based on the security rule. Events matching this query are ignored by any detection rules referenced in the suppression rule. - example: source:cloudtrail account_id:12345 - type: string - description: - description: A description for the suppression rule. - example: This rule suppresses low-severity signals in staging environments. - type: string - enabled: - description: Whether the suppression rule is enabled. + exclusion_filters: + description: Exclusion filters to exclude some logs from the security filter. + example: [] + items: + $ref: "#/components/schemas/SecurityFilterExclusionFilter" + type: array + filtered_data_type: + $ref: "#/components/schemas/SecurityFilterFilteredDataType" + is_enabled: + description: Whether the security filter is enabled. example: true type: boolean - expiration_date: - description: A Unix millisecond timestamp giving an expiration date for the suppression rule. After this date, it won't suppress signals anymore. If unset, the expiration date of the suppression rule is left untouched. If set to `null`, the expiration date is removed. - example: 1703187336000 - format: int64 - nullable: true - type: integer name: - description: The name of the suppression rule. - example: Custom suppression - type: string - rule_query: - description: The rule query of the suppression rule, with the same syntax as the search bar for detection rules. - example: type:log_detection source:cloudtrail + description: The name of the security filter. + example: Custom security filter type: string - start_date: - description: A Unix millisecond timestamp giving the start date for the suppression rule. After this date, it starts suppressing signals. If unset, the start date of the suppression rule is left untouched. If set to `null`, the start date is removed. - example: 1703187336000 - format: int64 - nullable: true - type: integer - suppression_query: - description: The suppression query of the suppression rule. If a signal matches this query, it is suppressed and not triggered. Same syntax as the queries to search signals in the signal explorer. - example: env:staging status:low + query: + description: The query of the security filter. + example: service:api type: string - tags: - description: List of tags associated with the suppression rule. - example: - - technique:T1110-brute-force - - source:cloudtrail - items: - description: A tag string in `key:value` format. - type: string - type: array version: - description: The current version of the suppression. This is optional, but it can help prevent concurrent modifications. + description: The version of the security filter to update. + example: 1 format: int32 maximum: 2147483647 type: integer type: object - SecurityMonitoringSuppressionUpdateData: - description: The new suppression properties; partial updates are supported. + SecurityFilterUpdateData: + description: The new security filter properties. properties: attributes: - $ref: "#/components/schemas/SecurityMonitoringSuppressionUpdateAttributes" + $ref: "#/components/schemas/SecurityFilterUpdateAttributes" type: - $ref: "#/components/schemas/SecurityMonitoringSuppressionType" + $ref: "#/components/schemas/SecurityFilterType" required: - type - attributes type: object - SecurityMonitoringSuppressionUpdateRequest: - description: Request object containing the fields to update on the suppression rule. + SecurityFilterUpdateRequest: + description: The new security filter body. properties: data: - $ref: "#/components/schemas/SecurityMonitoringSuppressionUpdateData" + $ref: "#/components/schemas/SecurityFilterUpdateData" required: - data type: object - SecurityMonitoringSuppressionsMeta: - description: Metadata for the suppression list response. - properties: - page: - $ref: "#/components/schemas/SecurityMonitoringSuppressionsPageMeta" - type: object - SecurityMonitoringSuppressionsPageMeta: - description: Pagination metadata. - properties: - pageNumber: - description: Current page number. - example: 0 - format: int64 - type: integer - pageSize: - description: Current page size. - example: 2 - format: int64 - type: integer - totalCount: - description: Total count of suppressions. - example: 2 - format: int64 - type: integer - type: object - SecurityMonitoringSuppressionsResponse: - description: Response object containing the available suppression rules. - properties: - data: - description: A list of suppressions objects. - items: - $ref: "#/components/schemas/SecurityMonitoringSuppression" - type: array - type: object - SecurityMonitoringTerraformBulkExportAttributes: - description: Attributes for the bulk export request. - properties: - resource_ids: - description: The list of resource IDs to export. Maximum 1000 items. - example: - - "" - items: - description: The ID of the resource to export. - type: string - maxItems: 1000 - type: array - required: - - resource_ids - type: object - SecurityMonitoringTerraformBulkExportData: - description: The bulk export request data object. + SecurityFilterVersion: + description: A snapshot of all security filters at a specific configuration version. properties: attributes: - $ref: "#/components/schemas/SecurityMonitoringTerraformBulkExportAttributes" - type: - description: The JSON:API type. Always `bulk_export_resources`. - example: bulk_export_resources + $ref: "#/components/schemas/SecurityFilterVersionAttributes" + id: + description: The identifier of the configuration version. + example: "1" type: string + type: + $ref: "#/components/schemas/SecurityFilterVersionType" required: + - id - type - attributes type: object - SecurityMonitoringTerraformBulkExportRequest: - description: Request body for bulk exporting security monitoring resources to Terraform. - properties: - data: - $ref: "#/components/schemas/SecurityMonitoringTerraformBulkExportData" - required: - - data - type: object - SecurityMonitoringTerraformConvertAttributes: - description: Attributes for the convert request. + SecurityFilterVersionAttributes: + description: The attributes describing a single security filter configuration version. properties: - resource_json: - additionalProperties: {} - description: The resource attributes as a JSON object, matching the structure returned by the corresponding Datadog API (for example, the attributes of a suppression rule). - example: - enabled: true - name: Custom suppression - rule_query: type:log_detection source:cloudtrail - suppression_query: env:staging status:low - type: object + date: + description: The Unix timestamp in milliseconds at which this configuration version was applied. + example: 1758177253469 + format: int64 + type: integer + filters: + description: The set of security filters at this configuration version. + items: + $ref: "#/components/schemas/SecurityFilterVersionEntry" + type: array + version: + description: The configuration version number. + example: 1 + format: int32 + maximum: 2147483647 + type: integer required: - - resource_json + - version + - date + - filters type: object - SecurityMonitoringTerraformConvertData: - description: The convert request data object. + SecurityFilterVersionEntry: + description: A single security filter as it existed at a given configuration version. properties: - attributes: - $ref: "#/components/schemas/SecurityMonitoringTerraformConvertAttributes" + exclusion_filters: + description: The list of exclusion filters applied in this security filter. + items: + $ref: "#/components/schemas/SecurityFilterExclusionFilterResponse" + type: array + filtered_data_type: + $ref: "#/components/schemas/SecurityFilterFilteredDataType" id: - description: The ID of the resource being converted. - example: abc-123 + description: The ID of the security filter. + example: "123" type: string - type: - description: The JSON:API type. Always `convert_resource`. - example: convert_resource + is_builtin: + description: Whether the security filter is the built-in filter. + example: false + type: boolean + is_enabled: + description: Whether the security filter is enabled. + example: true + type: boolean + name: + description: The name of the security filter. + example: Test Security Filter + type: string + query: + description: The query of the security filter. + example: source:test type: string + version: + description: The version of this security filter. + example: 1 + format: int32 + maximum: 2147483647 + type: integer required: - - type - id - - attributes + - name + - version + - query + - is_enabled + - exclusion_filters + - filtered_data_type + - is_builtin type: object - SecurityMonitoringTerraformConvertRequest: - description: Request body for converting a security monitoring resource JSON to Terraform. + SecurityFilterVersionType: + default: security_filters_configuration + description: The type of the resource. The value should always be `security_filters_configuration`. + enum: + - security_filters_configuration + example: security_filters_configuration + type: string + x-enum-varnames: + - SECURITY_FILTERS_CONFIGURATION + SecurityFilterVersionsResponse: + description: Response containing the version history of security filters. properties: data: - $ref: "#/components/schemas/SecurityMonitoringTerraformConvertData" + description: A list of historical security filter configurations, ordered from the most recent to the oldest. + items: + $ref: "#/components/schemas/SecurityFilterVersion" + type: array required: - data type: object - SecurityMonitoringTerraformExportAttributes: - description: Attributes of the Terraform export response. - properties: - output: - description: The Terraform configuration for the resource. - type: string - resource_id: - description: The ID of the exported resource. - example: abc-123 - type: string - type_name: - description: The Terraform resource type name. - example: datadog_security_monitoring_suppression - type: string - required: - - type_name - - resource_id - type: object - SecurityMonitoringTerraformExportData: - description: The Terraform export data object. - properties: - attributes: - $ref: "#/components/schemas/SecurityMonitoringTerraformExportAttributes" - id: - description: The resource identifier composed of the Terraform type name and the resource ID separated by `|`. - example: datadog_security_monitoring_suppression|abc-123 - type: string - type: - description: The JSON:API type. Always `format_resource`. - example: format_resource - type: string - required: - - type - - id - - attributes - type: object - SecurityMonitoringTerraformExportResponse: - description: Response containing the Terraform configuration for a security monitoring resource. + SecurityFiltersResponse: + description: All the available security filters objects. properties: data: - $ref: "#/components/schemas/SecurityMonitoringTerraformExportData" + description: A list of security filters objects. + items: + $ref: "#/components/schemas/SecurityFilter" + type: array + meta: + $ref: "#/components/schemas/SecurityFilterMeta" type: object - SecurityMonitoringTerraformResourceType: - description: The type of security monitoring resource to export to Terraform. + SecurityFindingType: + description: The type of security finding that the automation rule applies to. enum: - - suppressions - - critical_assets - - security_filters - - rules + - api_security + - attack_path + - host_and_container_vulnerability + - iac_misconfiguration + - identity_risk + - library_vulnerability + - misconfiguration + - runtime_code_vulnerability + - secret + - static_code_vulnerability + - workload_activity + example: misconfiguration type: string x-enum-varnames: - - SUPPRESSIONS - - CRITICAL_ASSETS - - SECURITY_FILTERS - - RULES - SecurityMonitoringThirdPartyRootQuery: - description: A query to be combined with the third party case query. + - API_SECURITY + - ATTACK_PATH + - HOST_AND_CONTAINER_VULNERABILITY + - IAC_MISCONFIGURATION + - IDENTITY_RISK + - LIBRARY_VULNERABILITY + - MISCONFIGURATION + - RUNTIME_CODE_VULNERABILITY + - SECRET + - STATIC_CODE_VULNERABILITY + - WORKLOAD_ACTIVITY + SecurityFindingTypes: + description: The list of security finding types that the automation rule applies to. + example: + - misconfiguration + items: + $ref: "#/components/schemas/SecurityFindingType" + minItems: 1 + type: array + SecurityFindingsAttributes: + description: The JSON object containing all attributes of the security finding. properties: - groupByFields: - description: Fields to group by. + attributes: + additionalProperties: {} + description: The custom attributes of the security finding. + example: {"severity": "high", "status": "open"} + type: object + tags: + description: List of tags associated with the security finding. + example: + - "team:platform" + - "env:prod" items: - description: Field. + description: A tag associated with the security finding. type: string type: array - query: - description: Query to run on logs. - example: source:cloudtrail - type: string + timestamp: + description: The Unix timestamp at which the detection changed for the resource. Same value as @detection_changed_at. + example: 1765901760 + format: int64 + type: integer type: object - SecurityMonitoringThirdPartyRuleCase: - description: Case when signal is generated by a third party rule. + SecurityFindingsData: + description: A single security finding. properties: - customStatus: - $ref: "#/components/schemas/SecurityMonitoringRuleSeverity" - name: - description: Name of the case. - type: string - notifications: - description: Notification targets for each rule case. - items: - description: Notification. - type: string - type: array - query: - description: A query to map a third party event to this case. + attributes: + $ref: "#/components/schemas/SecurityFindingsAttributes" + id: + description: The unique ID of the security finding. + example: "ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw==" type: string - status: - $ref: "#/components/schemas/SecurityMonitoringRuleSeverity" + type: + $ref: "#/components/schemas/SecurityFindingsDataType" type: object - SecurityMonitoringThirdPartyRuleCaseCreate: - description: Case when a signal is generated by a third party rule. + SecurityFindingsDataType: + default: finding + description: The type of the security finding resource. + enum: + - finding + example: finding + type: string + x-enum-varnames: + - FINDING + SecurityFindingsLinks: + description: Links for pagination. properties: - name: - description: Name of the case. - type: string - notifications: - description: Notification targets for each case. - items: - description: Notification. - type: string - type: array - query: - description: A query to map a third party event to this case. + next: + description: Link for the next page of results. Note that paginated requests can also be made using the POST endpoint. + example: "https://app.datadoghq.com/api/v2/security/findings?page[cursor]=eyJhZnRlciI6IkF3QUFBWnPcm1pd0FBQUJbVlBQUKBa1pqRTVdZUzSTBNemN0YWiIsLTE3Mjk0MzYwMjFdfQ==&page[limit]=25" type: string - status: - $ref: "#/components/schemas/SecurityMonitoringRuleSeverity" - required: - - status type: object - SecurityMonitoringTriageUser: - description: Object representing a given user entity. + SecurityFindingsMeta: + description: Metadata about the response. properties: - handle: - description: The handle for this user account. - type: string - icon: - description: Gravatar icon associated to the user. - example: /path/to/matching/gravatar/icon - readOnly: true - type: string - id: - description: Numerical ID assigned by Datadog to this user account. + elapsed: + description: The time elapsed in milliseconds. + example: 548 format: int64 type: integer - name: - description: The name for this user account. - nullable: true - type: string - uuid: - description: UUID assigned by Datadog to this user account. - example: 773b045d-ccf8-4808-bd3b-955ef6a8c940 + page: + $ref: "#/components/schemas/SecurityFindingsPage" + request_id: + description: The identifier of the request. + example: "pddv1ChZwVlMxMUdYRFRMQ1lyb3B4MGNYbFlnIi0KHQu35LDbucx" type: string - required: - - uuid + status: + $ref: "#/components/schemas/SecurityFindingsStatus" type: object - SecurityMonitoringUser: - description: A user. + SecurityFindingsPage: + description: Pagination information. properties: - handle: - description: The handle of the user. - example: john.doe@datadoghq.com - type: string - name: - description: The name of the user. - example: John Doe - nullable: true + after: + description: The cursor used to get the next page of results. + example: "eyJhZnRlciI6IkFRQUFBWWJiaEJXQS1OY1dqUUFBQUFCQldXSmlhRUpYUVVGQlJFSktkbTlDTUdaWFRVbDNRVUUiLCJ2YWx1ZXMiOlsiY3JpdGljYWwiXX0=" type: string type: object - SecurityTrigger: - description: "Trigger a workflow from a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published." - properties: - rateLimit: - $ref: "#/components/schemas/TriggerRateLimit" - type: object - SecurityTriggerWrapper: - description: "Schema for a Security-based trigger." + SecurityFindingsSearchRequest: + description: The request body for searching security findings. properties: - securityTrigger: - $ref: "#/components/schemas/SecurityTrigger" - startStepNames: - $ref: "#/components/schemas/StartStepNames" - required: - - securityTrigger + data: + $ref: "#/components/schemas/SecurityFindingsSearchRequestData" type: object - Selectors: - description: |- - Selectors are used to filter security issues for which notifications should be generated. - Users can specify rule severities, rule types, a query to filter security issues on tags and attributes, and the trigger source. - Only the trigger_source field is required. + SecurityFindingsSearchRequestData: + description: Request data for searching security findings. properties: - query: - $ref: "#/components/schemas/NotificationRuleQuery" - rule_types: - $ref: "#/components/schemas/RuleTypes" - severities: - description: The security rules severities to consider. - items: - $ref: "#/components/schemas/RuleSeverity" - type: array - trigger_source: - $ref: "#/components/schemas/TriggerSource" - required: - - trigger_source + attributes: + $ref: "#/components/schemas/SecurityFindingsSearchRequestDataAttributes" type: object - SelfServiceTriggerWrapper: - description: "Schema for a Self Service-based trigger." + SecurityFindingsSearchRequestDataAttributes: + description: Request attributes for searching security findings. properties: - selfServiceTrigger: - description: "Trigger a workflow from Self Service." - type: object - startStepNames: - $ref: "#/components/schemas/StartStepNames" - required: - - selfServiceTrigger + filter: + default: "*" + description: The search query following log search syntax. + example: "@severity:(critical OR high) @status:open team:platform" + type: string + page: + $ref: "#/components/schemas/SecurityFindingsSearchRequestPage" + sort: + $ref: "#/components/schemas/SecurityFindingsSort" type: object - SendSlackMessageAction: - description: "Sends a message to a Slack channel." + SecurityFindingsSearchRequestPage: + description: Pagination attributes for the search request. properties: - channel: - description: "The channel ID." - example: CHANNEL + cursor: + description: Get the next page of results with a cursor provided in the previous query. + example: "eyJhZnRlciI6IkF3QUFBWnPcm1pd0FBQUJbVlBQUKBa1pqRTVdZUzSTBNemN0YWiIsLTE3Mjk0MzYwMjFdfQ==" type: string - type: - $ref: "#/components/schemas/SendSlackMessageActionType" - workspace: - description: "The workspace ID." - example: WORKSPACE - type: string - required: - - type - - channel - - workspace + limit: + default: 10 + description: The maximum number of security findings in the response. + example: 25 + format: int64 + maximum: 150 + minimum: 1 + type: integer type: object - SendSlackMessageActionType: - default: send_slack_message - description: "Indicates that the action is a send Slack message action." + SecurityFindingsSort: + default: "-@detection_changed_at" + description: The sort parameters when querying security findings. enum: - - send_slack_message - example: send_slack_message + - "@detection_changed_at" + - "-@detection_changed_at" type: string x-enum-varnames: - - SEND_SLACK_MESSAGE - SendTeamsMessageAction: - description: "Sends a message to a Microsoft Teams channel." + - DETECTION_CHANGED_AT_ASC + - DETECTION_CHANGED_AT_DESC + SecurityFindingsStatus: + description: The status of the response. + enum: + - done + - timeout + example: done + type: string + x-enum-varnames: + - DONE + - TIMEOUT + SecurityMonitoringAzureAppRegistration: + description: An Azure App Registration discovered for the organization. properties: - channel: - description: The channel ID. - example: CHANNEL - type: string - team: - description: The team ID. - example: TEAM + client_id: + description: The client ID of the App Registration. + example: 66666666-7777-8888-9999-000000000000 type: string - tenant: - description: The tenant ID. - example: TENANT + error_count: + description: The number of errors encountered while crawling resources for this App Registration. + example: 0 + format: int64 + type: integer + resource_collection_enabled: + description: Whether resource collection is enabled for this App Registration. + example: true + type: boolean + subscription_count: + description: The number of Azure subscriptions associated with this App Registration. + example: 3 + format: int64 + type: integer + tenant_id: + description: The Azure tenant ID of the App Registration. + example: 11111111-2222-3333-4444-555555555555 type: string - type: - $ref: "#/components/schemas/SendTeamsMessageActionType" required: - - type - - channel - - tenant - - team + - tenant_id + - client_id + - resource_collection_enabled + - subscription_count + - error_count type: object - SendTeamsMessageActionType: - default: send_teams_message - description: "Indicates that the action is a send Microsoft Teams message action." + SecurityMonitoringContentPackActivation: + description: The activation status of a content pack. enum: - - send_teams_message - example: send_teams_message + - never_activated + - activated + - deactivated + example: activated type: string + x-enum-descriptions: + - Pack has never been activated for this organization. + - Pack is currently activated. + - Pack was previously activated but has since been deactivated. x-enum-varnames: - - SEND_TEAMS_MESSAGE - SensitiveDataScannerConfigRequest: - description: Group reorder request. + - NEVER_ACTIVATED + - ACTIVATED + - DEACTIVATED + SecurityMonitoringContentPackAppSecDetails: + description: Details for an Application Security content pack. properties: - data: - $ref: "#/components/schemas/SensitiveDataScannerReorderConfig" - meta: - $ref: "#/components/schemas/SensitiveDataScannerMetaVersionOnly" + type: + $ref: "#/components/schemas/SecurityMonitoringContentPackAppSecDetailsType" required: - - data - - meta + - type type: object - SensitiveDataScannerConfiguration: - description: A Sensitive Data Scanner configuration. + SecurityMonitoringContentPackAppSecDetailsType: + description: Type for Application Security content pack details. + enum: + - appsec + example: appsec + type: string + x-enum-varnames: + - APPSEC + SecurityMonitoringContentPackAuditDetails: + description: Details for an audit trail content pack. properties: - id: - description: ID of the configuration. - type: string type: - $ref: "#/components/schemas/SensitiveDataScannerConfigurationType" - type: object - SensitiveDataScannerConfigurationData: - description: A Sensitive Data Scanner configuration data. - properties: - data: - $ref: "#/components/schemas/SensitiveDataScannerConfiguration" - type: object - SensitiveDataScannerConfigurationRelationships: - description: Relationships of the configuration. - properties: - groups: - $ref: "#/components/schemas/SensitiveDataScannerGroupList" + $ref: "#/components/schemas/SecurityMonitoringContentPackAuditDetailsType" + required: + - type type: object - SensitiveDataScannerConfigurationType: - default: sensitive_data_scanner_configuration - description: Sensitive Data Scanner configuration type. + SecurityMonitoringContentPackAuditDetailsType: + description: Type for audit trail content pack details. enum: - - sensitive_data_scanner_configuration - example: sensitive_data_scanner_configuration + - audit + example: audit type: string x-enum-varnames: - - SENSITIVE_DATA_SCANNER_CONFIGURATIONS - SensitiveDataScannerCreateGroupResponse: - description: Create group response. - properties: - data: - $ref: "#/components/schemas/SensitiveDataScannerGroupResponse" - meta: - $ref: "#/components/schemas/SensitiveDataScannerMetaVersionOnly" - type: object - SensitiveDataScannerCreateRuleResponse: - description: Create rule response. - properties: - data: - $ref: "#/components/schemas/SensitiveDataScannerRuleResponse" - meta: - $ref: "#/components/schemas/SensitiveDataScannerMetaVersionOnly" - type: object - SensitiveDataScannerFilter: - description: Filter for the Scanning Group. - properties: - query: - description: Query to filter the events. - type: string - type: object - SensitiveDataScannerGetConfigIncludedArray: - description: Included objects from relationships. - items: - $ref: "#/components/schemas/SensitiveDataScannerGetConfigIncludedItem" - type: array - SensitiveDataScannerGetConfigIncludedItem: - description: An object related to the configuration. - oneOf: - - $ref: "#/components/schemas/SensitiveDataScannerRuleIncludedItem" - - $ref: "#/components/schemas/SensitiveDataScannerGroupIncludedItem" - SensitiveDataScannerGetConfigResponse: - description: Get all groups response. - properties: - data: - $ref: "#/components/schemas/SensitiveDataScannerGetConfigResponseData" - included: - $ref: "#/components/schemas/SensitiveDataScannerGetConfigIncludedArray" - meta: - $ref: "#/components/schemas/SensitiveDataScannerMeta" - type: object - SensitiveDataScannerGetConfigResponseData: - description: Response data related to the scanning groups. + - AUDIT + SecurityMonitoringContentPackEntityDetails: + description: Details for an entity or identity content pack. properties: - attributes: - additionalProperties: {} - description: Attributes of the Sensitive Data configuration. - type: object - id: - description: ID of the configuration. - type: string - relationships: - $ref: "#/components/schemas/SensitiveDataScannerConfigurationRelationships" + cp_activation: + $ref: "#/components/schemas/SecurityMonitoringContentPackActivation" type: - $ref: "#/components/schemas/SensitiveDataScannerConfigurationType" + $ref: "#/components/schemas/SecurityMonitoringContentPackEntityDetailsType" + required: + - type + - cp_activation type: object - SensitiveDataScannerGroup: - description: A scanning group. + SecurityMonitoringContentPackEntityDetailsType: + description: Type for entity content pack details. + enum: + - entity + example: entity + type: string + x-enum-varnames: + - ENTITY + SecurityMonitoringContentPackIntegrationStatus: + description: The installation status of the related integration. + enum: + - installed + - available + - partially_installed + - detected + - error + example: installed + type: string + x-enum-descriptions: + - Integration is fully installed. + - Integration exists in the catalog but is not installed. + - Integration is only partially configured. + - Integration detected (for example, logs are flowing) but not explicitly installed. + - Integration is in an error state. + x-enum-varnames: + - INSTALLED + - AVAILABLE + - PARTIALLY_INSTALLED + - DETECTED + - ERROR + SecurityMonitoringContentPackLogsDetails: + description: Details for a logs-based content pack. properties: - id: - description: ID of the group. - type: string + cp_activation: + $ref: "#/components/schemas/SecurityMonitoringContentPackActivation" + data_last_seen: + $ref: "#/components/schemas/SecurityMonitoringContentPackTimestampBucket" + filters_configured: + description: |- + Whether filters (Security Filters or Index Query depending on the pricing model) are + present and correctly configured to route logs into Cloud SIEM. + example: true + type: boolean + integration_installed_status: + $ref: "#/components/schemas/SecurityMonitoringContentPackIntegrationStatus" + logs_seen_from_any_index: + description: Whether logs for this content pack have been seen in any Datadog index in the last 72 hours. + example: true + type: boolean + siem_index_incorrect: + description: Whether the Cloud SIEM index configuration is incorrect (only applies to certain pricing models). + example: false + type: boolean type: - $ref: "#/components/schemas/SensitiveDataScannerGroupType" + $ref: "#/components/schemas/SecurityFilterFilteredDataType" + required: + - type + - cp_activation + - data_last_seen + - integration_installed_status + - filters_configured + - logs_seen_from_any_index + - siem_index_incorrect type: object - SensitiveDataScannerGroupAttributes: - description: Attributes of the Sensitive Data Scanner group. + SecurityMonitoringContentPackOnboardingDetails: + description: |- + Content pack details returned when Cloud SIEM is inactive for the requesting organization. properties: - description: - description: Description of the group. - type: string - filter: - $ref: "#/components/schemas/SensitiveDataScannerFilter" - is_enabled: - description: Whether or not the group is enabled. + integration_installed_status: + $ref: "#/components/schemas/SecurityMonitoringContentPackIntegrationStatus" + logs_seen_from_any_index: + description: Whether logs for this content pack have been seen in any Datadog index in the last 72 hours. + example: true type: boolean - name: - description: Name of the group. - type: string - product_list: - description: List of products the scanning group applies. - items: - $ref: "#/components/schemas/SensitiveDataScannerProduct" - type: array - samplings: - description: List of sampling rates per product type. - items: - $ref: "#/components/schemas/SensitiveDataScannerSamplings" - type: array - type: object - SensitiveDataScannerGroupCreate: - description: Data related to the creation of a group. - properties: - attributes: - $ref: "#/components/schemas/SensitiveDataScannerGroupAttributes" - relationships: - $ref: "#/components/schemas/SensitiveDataScannerGroupRelationships" type: - $ref: "#/components/schemas/SensitiveDataScannerGroupType" + $ref: "#/components/schemas/SecurityMonitoringContentPackOnboardingDetailsType" required: - type - - attributes - type: object - SensitiveDataScannerGroupCreateRequest: - description: Create group request. - properties: - data: - $ref: "#/components/schemas/SensitiveDataScannerGroupCreate" - meta: - $ref: "#/components/schemas/SensitiveDataScannerMetaVersionOnly" - type: object - SensitiveDataScannerGroupData: - description: A scanning group data. - properties: - data: - $ref: "#/components/schemas/SensitiveDataScannerGroup" + - logs_seen_from_any_index type: object - SensitiveDataScannerGroupDeleteRequest: - description: Delete group request. + SecurityMonitoringContentPackOnboardingDetailsType: + description: Type for onboarding content pack details. + enum: + - onboarding + example: onboarding + type: string + x-enum-varnames: + - ONBOARDING + SecurityMonitoringContentPackStateAttributes: + description: Attributes of a content pack state. properties: - meta: - $ref: "#/components/schemas/SensitiveDataScannerMetaVersionOnly" + details: + $ref: "#/components/schemas/SecurityMonitoringContentPackStateDetails" + status: + $ref: "#/components/schemas/SecurityMonitoringContentPackStatus" required: - - meta - type: object - SensitiveDataScannerGroupDeleteResponse: - description: Delete group response. - properties: - meta: - $ref: "#/components/schemas/SensitiveDataScannerMetaVersionOnly" + - status + - details type: object - SensitiveDataScannerGroupIncludedItem: - description: A Scanning Group included item. + SecurityMonitoringContentPackStateData: + description: Content pack state data. properties: attributes: - $ref: "#/components/schemas/SensitiveDataScannerGroupAttributes" + $ref: "#/components/schemas/SecurityMonitoringContentPackStateAttributes" id: - description: ID of the group. + description: The content pack identifier. + example: aws-cloudtrail type: string - relationships: - $ref: "#/components/schemas/SensitiveDataScannerGroupRelationships" type: - $ref: "#/components/schemas/SensitiveDataScannerGroupType" + $ref: "#/components/schemas/SecurityMonitoringContentPackStateType" + required: + - id + - type + - attributes type: object - SensitiveDataScannerGroupItem: - description: Data related to a Sensitive Data Scanner Group. + SecurityMonitoringContentPackStateDetails: + description: |- + Type-specific details for a content pack state. The set of fields present depends + on the content pack's `type`. When Cloud SIEM is inactive for the requesting organization, `onboarding` is returned instead of the content pack's usual type, such as `logs` or `vulnerability`.` + discriminator: + mapping: + appsec: "#/components/schemas/SecurityMonitoringContentPackAppSecDetails" + audit: "#/components/schemas/SecurityMonitoringContentPackAuditDetails" + entity: "#/components/schemas/SecurityMonitoringContentPackEntityDetails" + logs: "#/components/schemas/SecurityMonitoringContentPackLogsDetails" + onboarding: "#/components/schemas/SecurityMonitoringContentPackOnboardingDetails" + threat_intel: "#/components/schemas/SecurityMonitoringContentPackThreatIntelDetails" + vulnerability: "#/components/schemas/SecurityMonitoringContentPackVulnerabilityDetails" + propertyName: type + oneOf: + - $ref: "#/components/schemas/SecurityMonitoringContentPackLogsDetails" + - $ref: "#/components/schemas/SecurityMonitoringContentPackThreatIntelDetails" + - $ref: "#/components/schemas/SecurityMonitoringContentPackEntityDetails" + - $ref: "#/components/schemas/SecurityMonitoringContentPackAuditDetails" + - $ref: "#/components/schemas/SecurityMonitoringContentPackAppSecDetails" + - $ref: "#/components/schemas/SecurityMonitoringContentPackVulnerabilityDetails" + - $ref: "#/components/schemas/SecurityMonitoringContentPackOnboardingDetails" + SecurityMonitoringContentPackStateMeta: + description: Metadata for content pack states. properties: - id: - description: ID of the group. - type: string - type: - $ref: "#/components/schemas/SensitiveDataScannerGroupType" + cloud_siem_index_incorrect: + description: Whether the Cloud SIEM index configuration is incorrect for the organization. + example: false + type: boolean + retention_months: + description: |- + The number of months that standard logs are retained for organizations on the standalone_indexed` pricing model. This field is omitted for other pricing models. + example: 15 + format: int32 + maximum: 60 + type: integer + sku: + $ref: "#/components/schemas/SecurityMonitoringSKU" + required: + - cloud_siem_index_incorrect + - sku type: object - SensitiveDataScannerGroupList: - description: List of groups, ordered. + SecurityMonitoringContentPackStateType: + description: Type for content pack state object + enum: + - content_pack_state + example: content_pack_state + type: string + x-enum-varnames: + - CONTENT_PACK_STATE + SecurityMonitoringContentPackStatesResponse: + description: Response containing content pack states. properties: data: - description: List of groups. The order is important. + description: Array of content pack states. items: - $ref: "#/components/schemas/SensitiveDataScannerGroupItem" + $ref: "#/components/schemas/SecurityMonitoringContentPackStateData" type: array + meta: + $ref: "#/components/schemas/SecurityMonitoringContentPackStateMeta" + required: + - data + - meta type: object - SensitiveDataScannerGroupRelationships: - description: Relationships of the group. + SecurityMonitoringContentPackStatus: + description: The current operational status of a content pack. + enum: + - install + - activate + - initializing + - active + - warning + - broken + - not_configured + example: active + type: string + x-enum-descriptions: + - Not activated; no logs detected in the last 72 hours. + - Not activated; logs are flowing into a Datadog index but not yet routed through Cloud SIEM. + - Activated; awaiting first log ingestion. + - Activated; logs received within the last 24 hours. + - Activated; integration not installed or logs last seen 24 to 72 hours ago. + - Activated; no logs for over 72 hours, filter missing, or Cloud SIEM index incorrectly ordered. + - Activated, but no credentials are configured (entity content packs only). + x-enum-varnames: + - INSTALL + - ACTIVATE + - INITIALIZING + - ACTIVE + - WARNING + - BROKEN + - NOT_CONFIGURED + SecurityMonitoringContentPackThreatIntelDetails: + description: Details for a threat intelligence content pack. properties: - configuration: - $ref: "#/components/schemas/SensitiveDataScannerConfigurationData" - rules: - $ref: "#/components/schemas/SensitiveDataScannerRuleData" + cp_activation: + $ref: "#/components/schemas/SecurityMonitoringContentPackActivation" + data_last_seen: + $ref: "#/components/schemas/SecurityMonitoringContentPackTimestampBucket" + integration_installed_status: + $ref: "#/components/schemas/SecurityMonitoringContentPackIntegrationStatus" + type: + $ref: "#/components/schemas/SecurityMonitoringContentPackThreatIntelDetailsType" + required: + - type + - cp_activation + - data_last_seen + - integration_installed_status type: object - SensitiveDataScannerGroupResponse: - description: Response data related to the creation of a group. + SecurityMonitoringContentPackThreatIntelDetailsType: + description: Type for threat intelligence content pack details. + enum: + - threat_intel + example: threat_intel + type: string + x-enum-varnames: + - THREAT_INTEL + SecurityMonitoringContentPackTimestampBucket: + description: Timestamp bucket indicating when logs were last collected. + enum: + - not_seen + - within_24_hours + - within_24_to_72_hours + - over_72h_to_30d + - over_30d + example: within_24_hours + type: string + x-enum-descriptions: + - No logs observed. + - Logs received within the last 24 hours. + - Logs last seen 24 to 72 hours ago. + - Logs last seen 3 to 30 days ago. + - Logs last seen more than 30 days ago. + x-enum-varnames: + - NOT_SEEN + - WITHIN_24_HOURS + - WITHIN_24_TO_72_HOURS + - OVER_72H_TO_30D + - OVER_30D + SecurityMonitoringContentPackVulnerabilityDetails: + description: Details for a vulnerability content pack. properties: - attributes: - $ref: "#/components/schemas/SensitiveDataScannerGroupAttributes" - id: - description: ID of the group. - type: string - relationships: - $ref: "#/components/schemas/SensitiveDataScannerGroupRelationships" + cp_activation: + $ref: "#/components/schemas/SecurityMonitoringContentPackActivation" + data_last_seen: + $ref: "#/components/schemas/SecurityMonitoringContentPackTimestampBucket" + integration_installed_status: + $ref: "#/components/schemas/SecurityMonitoringContentPackIntegrationStatus" type: - $ref: "#/components/schemas/SensitiveDataScannerGroupType" + $ref: "#/components/schemas/SecurityMonitoringContentPackVulnerabilityDetailsType" + required: + - type + - cp_activation + - data_last_seen + - integration_installed_status type: object - SensitiveDataScannerGroupType: - default: sensitive_data_scanner_group - description: Sensitive Data Scanner group type. + SecurityMonitoringContentPackVulnerabilityDetailsType: + description: Type for vulnerability content pack details. enum: - - sensitive_data_scanner_group - example: sensitive_data_scanner_group + - vulnerability + example: vulnerability type: string x-enum-varnames: - - SENSITIVE_DATA_SCANNER_GROUP - SensitiveDataScannerGroupUpdate: - description: Data related to the update of a group. + - VULNERABILITY + SecurityMonitoringCriticalAsset: + description: The critical asset's properties. properties: attributes: - $ref: "#/components/schemas/SensitiveDataScannerGroupAttributes" + $ref: "#/components/schemas/SecurityMonitoringCriticalAssetAttributes" id: - description: ID of the group. - type: string - relationships: - $ref: "#/components/schemas/SensitiveDataScannerGroupRelationships" + $ref: "#/components/schemas/SecurityMonitoringCriticalAssetID" type: - $ref: "#/components/schemas/SensitiveDataScannerGroupType" - type: object - SensitiveDataScannerGroupUpdateRequest: - description: Update group request. - properties: - data: - $ref: "#/components/schemas/SensitiveDataScannerGroupUpdate" - meta: - $ref: "#/components/schemas/SensitiveDataScannerMetaVersionOnly" - required: - - data - - meta - type: object - SensitiveDataScannerGroupUpdateResponse: - description: Update group response. - properties: - meta: - $ref: "#/components/schemas/SensitiveDataScannerMetaVersionOnly" + $ref: "#/components/schemas/SecurityMonitoringCriticalAssetType" type: object - SensitiveDataScannerIncludedKeywordConfiguration: - description: |- - Object defining a set of keywords and a number of characters that help reduce noise. - You can provide a list of keywords you would like to check within a defined proximity of the matching pattern. - If any of the keywords are found within the proximity check, the match is kept. - If none are found, the match is discarded. + SecurityMonitoringCriticalAssetAttributes: + description: The attributes of the critical asset. properties: - character_count: - description: |- - The number of characters behind a match detected by Sensitive Data Scanner to look for the keywords defined. - `character_count` should be greater than the maximum length of a keyword defined for a rule. - example: 30 + creation_author_id: + description: ID of user who created the critical asset. + example: 367742 format: int64 - maximum: 50 - minimum: 1 type: integer - keywords: - description: |- - Keyword list that will be checked during scanning in order to validate a match. - The number of keywords in the list must be less than or equal to 30. - example: ["email", "address", "login"] + creation_date: + description: A Unix millisecond timestamp given the creation date of the critical asset. + format: int64 + type: integer + creator: + $ref: "#/components/schemas/SecurityMonitoringUser" + description: + description: A description of the critical asset. + example: Production database servers handling PII + type: string + editable: + description: Whether the critical asset is editable. + example: true + type: boolean + enabled: + description: Whether the critical asset is enabled. + example: true + type: boolean + query: + description: The query for the critical asset. It uses the same syntax as the queries to search signals in the Signals Explorer. + example: security:monitoring + type: string + rule_query: + description: The rule query of the critical asset, with the same syntax as the search bar for detection rules. This determines which rules this critical asset will apply to. + example: type:log_detection source:cloudtrail + type: string + severity: + $ref: "#/components/schemas/SecurityMonitoringCriticalAssetSeverity" + tags: + description: List of tags associated with the critical asset. + example: + - team:database + - source:cloudtrail items: - description: A keyword to match within the defined proximity of the detected pattern. + description: A tag string in `key:value` format. type: string type: array - use_recommended_keywords: - description: |- - Should the rule use the underlying standard pattern keyword configuration. If set to `true`, the rule must be tied - to a standard pattern. If set to `false`, the specified keywords and `character_count` are applied. - type: boolean - required: - - keywords - - character_count - type: object - SensitiveDataScannerMeta: - additionalProperties: {} - description: Meta response containing information about the API. - properties: - count_limit: - description: Maximum number of scanning rules allowed for the org. + update_author_id: + description: ID of user who updated the critical asset. + example: 367743 format: int64 type: integer - group_count_limit: - description: Maximum number of scanning groups allowed for the org. + update_date: + description: A Unix millisecond timestamp given the update date of the critical asset. format: int64 type: integer - has_highlight_enabled: - default: true - deprecated: true - description: (Deprecated) Whether or not scanned events are highlighted in Logs or RUM for the org. - type: boolean - has_multi_pass_enabled: - deprecated: true - description: (Deprecated) Whether or not scanned events have multi-pass enabled. - type: boolean - is_pci_compliant: - description: Whether or not the org is compliant to the payment card industry standard. - type: boolean + updater: + $ref: "#/components/schemas/SecurityMonitoringUser" version: - description: Version of the API. - example: 0 - format: int64 - minimum: 0 + description: The version of the critical asset; it starts at 1, and is incremented at each update. + example: 2 + format: int32 + maximum: 2147483647 type: integer type: object - SensitiveDataScannerMetaVersionOnly: - description: Meta payload containing information about the API. + SecurityMonitoringCriticalAssetCreateAttributes: + description: Object containing the attributes of the critical asset to be created. properties: - version: - description: Version of the API (optional). - example: 0 - format: int64 - minimum: 0 - type: integer + description: + description: A description of the critical asset. + example: Production database servers handling PII + type: string + enabled: + default: true + description: Whether the critical asset is enabled. Defaults to `true` if not specified. + example: true + type: boolean + query: + description: The query for the critical asset. It uses the same syntax as the queries to search signals in the Signals Explorer. + example: security:monitoring + type: string + rule_query: + description: The rule query of the critical asset, with the same syntax as the search bar for detection rules. This determines which rules this critical asset will apply to. + example: type:(log_detection OR signal_correlation OR workload_security OR application_security) source:cloudtrail + type: string + severity: + $ref: "#/components/schemas/SecurityMonitoringCriticalAssetSeverity" + tags: + description: List of tags associated with the critical asset. + example: + - team:database + - source:cloudtrail + items: + description: A tag string in `key:value` format. + type: string + type: array + required: + - query + - severity + - rule_query type: object - SensitiveDataScannerProduct: - default: logs - description: Datadog product onto which Sensitive Data Scanner can be activated. - enum: - - logs - - rum - - events - - apm - type: string - x-enum-varnames: - - LOGS - - RUM - - EVENTS - - APM - SensitiveDataScannerReorderConfig: - description: Data related to the reordering of scanning groups. + SecurityMonitoringCriticalAssetCreateData: + description: Object for a single critical asset. properties: - id: - description: ID of the configuration. - type: string - relationships: - $ref: "#/components/schemas/SensitiveDataScannerConfigurationRelationships" + attributes: + $ref: "#/components/schemas/SecurityMonitoringCriticalAssetCreateAttributes" type: - $ref: "#/components/schemas/SensitiveDataScannerConfigurationType" + $ref: "#/components/schemas/SecurityMonitoringCriticalAssetType" + required: + - type + - attributes type: object - SensitiveDataScannerReorderGroupsResponse: - description: Group reorder response. + SecurityMonitoringCriticalAssetCreateRequest: + description: Request object that includes the critical asset that you would like to create. properties: - meta: - $ref: "#/components/schemas/SensitiveDataScannerMeta" + data: + $ref: "#/components/schemas/SecurityMonitoringCriticalAssetCreateData" + required: + - data type: object - SensitiveDataScannerRule: - description: Rule item included in the group. + SecurityMonitoringCriticalAssetID: + description: The ID of the critical asset. + example: 4e2435a5-6670-4b8f-baff-46083cd1c250 + type: string + SecurityMonitoringCriticalAssetResponse: + description: Response object containing a single critical asset. properties: - id: - description: ID of the rule. - type: string - type: - $ref: "#/components/schemas/SensitiveDataScannerRuleType" + data: + $ref: "#/components/schemas/SecurityMonitoringCriticalAsset" type: object - SensitiveDataScannerRuleAttributes: - description: Attributes of the Sensitive Data Scanner rule. + SecurityMonitoringCriticalAssetSeverity: + description: Severity associated with this critical asset. Either an explicit severity can be set, or the severity can be increased or decreased, or the severity can be left unchanged (no-op). + enum: + - info + - low + - medium + - high + - critical + - increase + - decrease + - no-op + example: increase + type: string + x-enum-varnames: + - INFO + - LOW + - MEDIUM + - HIGH + - CRITICAL + - INCREASE + - DECREASE + - NO_OP + SecurityMonitoringCriticalAssetType: + default: critical_assets + description: The type of the resource. The value should always be `critical_assets`. + enum: + - critical_assets + example: critical_assets + type: string + x-enum-varnames: + - CRITICAL_ASSETS + SecurityMonitoringCriticalAssetUpdateAttributes: + description: The critical asset properties to be updated. properties: description: - description: Description of the rule. + description: A description of the critical asset. + example: Production database servers handling PII type: string - excluded_namespaces: - description: Attributes excluded from the scan. If namespaces is provided, it has to be a sub-path of the namespaces array. - example: ["admin.name"] - items: - description: An attribute path to exclude from the scan. - type: string - type: array - included_keyword_configuration: - $ref: "#/components/schemas/SensitiveDataScannerIncludedKeywordConfiguration" - is_enabled: - description: Whether or not the rule is enabled. + enabled: + description: Whether the critical asset is enabled. + example: true type: boolean - name: - description: Name of the rule. + query: + description: The query for the critical asset. It uses the same syntax as the queries to search signals in the Signals Explorer. + example: security:monitoring type: string - namespaces: - description: |- - Attributes included in the scan. If namespaces is empty or missing, all attributes except excluded_namespaces are scanned. - If both are missing the whole event is scanned. - example: ["admin"] - items: - description: An attribute path to include in the scan. - type: string - type: array - pattern: - description: Not included if there is a relationship to a standard pattern. + rule_query: + description: The rule query of the critical asset, with the same syntax as the search bar for detection rules. This determines which rules this critical asset will apply to. + example: type:log_detection source:cloudtrail type: string - priority: - description: Integer from 1 (high) to 5 (low) indicating rule issue severity. - format: int64 - maximum: 5 - minimum: 1 - type: integer - suppressions: - $ref: "#/components/schemas/SensitiveDataScannerSuppressions" + severity: + $ref: "#/components/schemas/SecurityMonitoringCriticalAssetSeverity" tags: - description: List of tags. + description: List of tags associated with the critical asset. + example: + - technique:T1110-brute-force + - source:cloudtrail items: - description: A tag associated with the rule. + description: A tag string in `key:value` format. type: string type: array - text_replacement: - $ref: "#/components/schemas/SensitiveDataScannerTextReplacement" + version: + description: The version of the critical asset being updated. Used for optimistic locking to prevent concurrent modifications. + example: 1 + format: int32 + maximum: 2147483647 + type: integer type: object - SensitiveDataScannerRuleCreate: - description: Data related to the creation of a rule. + SecurityMonitoringCriticalAssetUpdateData: + description: The new critical asset properties; partial updates are supported. properties: attributes: - $ref: "#/components/schemas/SensitiveDataScannerRuleAttributes" - relationships: - $ref: "#/components/schemas/SensitiveDataScannerRuleRelationships" + $ref: "#/components/schemas/SecurityMonitoringCriticalAssetUpdateAttributes" type: - $ref: "#/components/schemas/SensitiveDataScannerRuleType" + $ref: "#/components/schemas/SecurityMonitoringCriticalAssetType" required: - type - attributes - - relationships type: object - SensitiveDataScannerRuleCreateRequest: - description: Create rule request. + SecurityMonitoringCriticalAssetUpdateRequest: + description: Request object containing the fields to update on the critical asset. properties: data: - $ref: "#/components/schemas/SensitiveDataScannerRuleCreate" - meta: - $ref: "#/components/schemas/SensitiveDataScannerMetaVersionOnly" + $ref: "#/components/schemas/SecurityMonitoringCriticalAssetUpdateData" required: - data - - meta type: object - SensitiveDataScannerRuleData: - description: Rules included in the group. + SecurityMonitoringCriticalAssetsResponse: + description: Response object containing the available critical assets. properties: data: - description: Rules included in the group. The order is important. + description: A list of critical assets objects. items: - $ref: "#/components/schemas/SensitiveDataScannerRule" + $ref: "#/components/schemas/SecurityMonitoringCriticalAsset" type: array type: object - SensitiveDataScannerRuleDeleteRequest: - description: Delete rule request. + SecurityMonitoringCrowdStrikeIntegrationConfigCreateAttributes: + description: The attributes of a CrowdStrike entity context sync configuration to create. properties: - meta: - $ref: "#/components/schemas/SensitiveDataScannerMetaVersionOnly" + domain: + description: The domain associated with the external entity source. + example: api.crowdstrike.com + type: string + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeCrowdStrike" + name: + description: The display name for the entity context sync configuration. + example: My CrowdStrike Integration + type: string + secrets: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigCrowdStrikeSecrets" + settings: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" required: - - meta + - integration_type + - domain + - name + - secrets type: object - SensitiveDataScannerRuleDeleteResponse: - description: Delete rule response. + SecurityMonitoringCrowdStrikeIntegrationConfigUpdateAttributes: + description: Fields to update on a CrowdStrike entity context sync configuration. properties: - meta: - $ref: "#/components/schemas/SensitiveDataScannerMetaVersionOnly" + domain: + description: The new domain associated with the external entity source. + example: api.crowdstrike.com + type: string + enabled: + description: Whether the entity context sync should be enabled. + example: true + type: boolean + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeCrowdStrike" + name: + description: The new display name for the entity context sync configuration. + example: My CrowdStrike Integration (renamed) + type: string + secrets: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigCrowdStrikeSecrets" + settings: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" + required: + - integration_type type: object - SensitiveDataScannerRuleIncludedItem: - description: A Scanning Rule included item. + SecurityMonitoringCrowdStrikeIntegrationCredentialsValidateAttributes: + description: The CrowdStrike credentials to validate against the external entity source. properties: - attributes: - $ref: "#/components/schemas/SensitiveDataScannerRuleAttributes" - id: - description: ID of the rule. + domain: + description: The domain associated with the external entity source. + example: api.crowdstrike.com type: string - relationships: - $ref: "#/components/schemas/SensitiveDataScannerRuleRelationships" - type: - $ref: "#/components/schemas/SensitiveDataScannerRuleType" + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeCrowdStrike" + secrets: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigCrowdStrikeSecrets" + required: + - integration_type + - domain + - secrets type: object - SensitiveDataScannerRuleRelationships: - description: Relationships of a scanning rule. + SecurityMonitoringDatasetAttributesRequest: + description: The attributes of a dataset create or update request. properties: - group: - $ref: "#/components/schemas/SensitiveDataScannerGroupData" - standard_pattern: - $ref: "#/components/schemas/SensitiveDataScannerStandardPatternData" + definition: + $ref: "#/components/schemas/SecurityMonitoringDatasetDefinition" + description: + description: The description of the dataset. Maximum 255 characters. + example: A sample dataset used for detection rules. + type: string + version: + description: |- + The expected current version of the dataset for optimistic concurrency control on updates. + If the dataset's current version does not match, the request is rejected with a 409 Conflict. + example: 1 + format: int64 + type: integer + required: + - definition type: object - SensitiveDataScannerRuleResponse: - description: Response data related to the creation of a rule. + SecurityMonitoringDatasetAttributesResponse: + description: The attributes of a Cloud SIEM dataset. properties: - attributes: - $ref: "#/components/schemas/SensitiveDataScannerRuleAttributes" - id: - description: ID of the rule. + createdAt: + description: The creation timestamp of the dataset, in ISO 8601 format. + example: "2025-03-20T10:00:00Z" + type: string + createdByHandle: + description: The Datadog handle of the user who created the dataset. + example: bruce.lee + type: string + createdByName: + description: The display name of the user who created the dataset. + example: Bruce Lee + type: string + definition: + $ref: "#/components/schemas/SecurityMonitoringDatasetDefinition" + description: + description: The description of the dataset. + example: A sample dataset used for detection rules. + type: string + id: + description: The UUID of the dataset. + example: 123e4567-e89b-12d3-a456-426614174000 + type: string + isDefault: + description: Whether the dataset is an out-of-the-box dataset provided by Datadog. + example: false + type: boolean + isDeprecated: + description: Whether the dataset is marked as deprecated. + example: false + type: boolean + modifiedAt: + description: The timestamp of the last modification of the dataset, in ISO 8601 format. + example: "2025-03-20T10:00:00Z" + type: string + name: + description: The unique name of the dataset. + example: sample_dataset + type: string + updatedByHandle: + description: The Datadog handle of the user who last updated the dataset. + example: bruce.lee + nullable: true + type: string + updatedByName: + description: The display name of the user who last updated the dataset. + example: Bruce Lee + nullable: true + type: string + version: + description: The current version of the dataset. + example: 1 + format: int64 + type: integer + required: + - id + - name + - description + - version + - definition + - createdAt + - createdByHandle + - createdByName + - modifiedAt + - updatedByHandle + - updatedByName + - isDefault + - isDeprecated + type: object + SecurityMonitoringDatasetColumn: + description: A column exposed by an event platform dataset. + properties: + column: + description: The name of the column. + example: message type: string - relationships: - $ref: "#/components/schemas/SensitiveDataScannerRuleRelationships" type: - $ref: "#/components/schemas/SensitiveDataScannerRuleType" + description: The type of the column value. + example: string + type: string + required: + - column + - type type: object - SensitiveDataScannerRuleType: - default: sensitive_data_scanner_rule - description: Sensitive Data Scanner rule type. - enum: - - sensitive_data_scanner_rule - example: sensitive_data_scanner_rule - type: string - x-enum-varnames: - - SENSITIVE_DATA_SCANNER_RULE - SensitiveDataScannerRuleUpdate: - description: Data related to the update of a rule. + SecurityMonitoringDatasetCreateData: + description: The data wrapper of a dataset create request. properties: attributes: - $ref: "#/components/schemas/SensitiveDataScannerRuleAttributes" - id: - description: ID of the rule. - type: string - relationships: - $ref: "#/components/schemas/SensitiveDataScannerRuleRelationships" + $ref: "#/components/schemas/SecurityMonitoringDatasetAttributesRequest" type: - $ref: "#/components/schemas/SensitiveDataScannerRuleType" + $ref: "#/components/schemas/SecurityMonitoringDatasetCreateType" + required: + - type + - attributes type: object - SensitiveDataScannerRuleUpdateRequest: - description: Update rule request. + SecurityMonitoringDatasetCreateRequest: + description: Request body for creating a Cloud SIEM dataset. properties: data: - $ref: "#/components/schemas/SensitiveDataScannerRuleUpdate" - meta: - $ref: "#/components/schemas/SensitiveDataScannerMetaVersionOnly" + $ref: "#/components/schemas/SecurityMonitoringDatasetCreateData" required: - data - - meta - type: object - SensitiveDataScannerRuleUpdateResponse: - description: Update rule response. - properties: - meta: - $ref: "#/components/schemas/SensitiveDataScannerMetaVersionOnly" type: object - SensitiveDataScannerSamplings: - description: Sampling configurations for the Scanning Group. + SecurityMonitoringDatasetCreateResponse: + description: Response returned after creating a dataset. properties: - product: - $ref: "#/components/schemas/SensitiveDataScannerProduct" - rate: - description: Rate at which data in product type will be scanned, as a percentage. - example: 100.0 - format: double - maximum: 100.0 - minimum: 0.0 - type: number + data: + $ref: "#/components/schemas/SecurityMonitoringDatasetCreateResponseData" + required: + - data type: object - SensitiveDataScannerStandardPattern: - description: Data containing the standard pattern id. + SecurityMonitoringDatasetCreateResponseData: + description: The data wrapper of a dataset create response. properties: id: - description: ID of the standard pattern. + description: The UUID of the newly created dataset. + example: 123e4567-e89b-12d3-a456-426614174000 type: string type: - $ref: "#/components/schemas/SensitiveDataScannerStandardPatternType" - type: object - SensitiveDataScannerStandardPatternAttributes: - description: Attributes of the Sensitive Data Scanner standard pattern. - properties: - description: - description: Description of the standard pattern. - type: string - included_keywords: - description: List of included keywords. - items: - description: A keyword used to increase match precision for the standard pattern. - type: string - type: array - name: - description: Name of the standard pattern. - type: string - pattern: - deprecated: true - description: (Deprecated) Regex to match, optionally documented for older standard rules. Refer to the `description` field to understand what the rule does. - type: string - priority: - description: Integer from 1 (high) to 5 (low) indicating standard pattern issue severity. - format: int64 - maximum: 5 - minimum: 1 - type: integer - tags: - description: List of tags. - items: - description: A tag associated with the standard pattern. - type: string - type: array - type: object - SensitiveDataScannerStandardPatternData: - description: A standard pattern. - properties: - data: - $ref: "#/components/schemas/SensitiveDataScannerStandardPattern" + $ref: "#/components/schemas/SecurityMonitoringDatasetType" + required: + - id + - type type: object - SensitiveDataScannerStandardPatternType: - default: sensitive_data_scanner_standard_pattern - description: Sensitive Data Scanner standard pattern type. + SecurityMonitoringDatasetCreateType: + description: The type of resource for a dataset create request. enum: - - sensitive_data_scanner_standard_pattern - example: sensitive_data_scanner_standard_pattern + - datasetCreate + example: datasetCreate type: string x-enum-varnames: - - SENSITIVE_DATA_SCANNER_STANDARD_PATTERN - SensitiveDataScannerStandardPatternsResponse: - description: List Standard patterns response. - items: - $ref: "#/components/schemas/SensitiveDataScannerStandardPatternsResponseItem" - type: array - SensitiveDataScannerStandardPatternsResponseData: - description: List Standard patterns response data. - properties: - data: - $ref: "#/components/schemas/SensitiveDataScannerStandardPatternsResponse" - type: object - SensitiveDataScannerStandardPatternsResponseItem: - description: Standard pattern item. + - DATASET_CREATE + SecurityMonitoringDatasetData: + description: The data wrapper of a dataset response. properties: attributes: - $ref: "#/components/schemas/SensitiveDataScannerStandardPatternAttributes" + $ref: "#/components/schemas/SecurityMonitoringDatasetAttributesResponse" id: - description: ID of the standard pattern. + description: The UUID of the dataset. + example: 123e4567-e89b-12d3-a456-426614174000 type: string type: - $ref: "#/components/schemas/SensitiveDataScannerStandardPatternType" + $ref: "#/components/schemas/SecurityMonitoringDatasetType" + required: + - id + - type + - attributes type: object - SensitiveDataScannerSuppressions: + SecurityMonitoringDatasetDefinition: description: |- - Object describing the suppressions for a rule. There are three types of suppressions, `starts_with`, `ends_with`, and `exact_match`. - Suppressed matches are not obfuscated, counted in metrics, or displayed in the Findings page. + The definition of the dataset. The shape depends on the value of `data_source`. + Use `reference_table` or `managed_resource` for a referential dataset, or one of the + event platform sources (for example `logs`, `audit`, `events`, `spans`, `rum`) for + an event platform dataset. properties: - ends_with: - description: List of strings to use for suppression of matches ending with these strings. - example: ["@example.com", "another.example.com"] - items: - description: A string suffix; matches ending with this value are suppressed. - type: string - type: array - exact_match: - description: List of strings to use for suppression of matches exactly matching these strings. - example: ["admin@example.com", "user@example.com"] + columns: + description: For event platform datasets, the list of columns exposed by the dataset. items: - description: A string value; matches exactly equal to this value are suppressed. - type: string + $ref: "#/components/schemas/SecurityMonitoringDatasetColumn" type: array - starts_with: - description: List of strings to use for suppression of matches starting with these strings. - example: ["admin", "user"] + data_source: + description: The data source backing this dataset definition. + example: logs + type: string + indexes: + description: For event platform datasets, the list of indexes to query. items: - description: A string prefix; matches starting with this value are suppressed. type: string type: array - type: object - SensitiveDataScannerTextReplacement: - description: Object describing how the scanned event will be replaced. - properties: - number_of_chars: - description: |- - Required if type == 'partial_replacement_from_beginning' - or 'partial_replacement_from_end'. It must be > 0. - format: int64 - minimum: 0 - type: integer - replacement_string: - description: Required if type == 'replacement_string'. - type: string - should_save_match: - description: Only valid when type == `replacement_string`. When enabled, matches can be unmasked in logs by users with ‘Data Scanner Unmask’ permission. As a security best practice, avoid masking for highly-sensitive, long-lived data. - type: boolean - type: - $ref: "#/components/schemas/SensitiveDataScannerTextReplacementType" - type: object - SensitiveDataScannerTextReplacementType: - default: none - description: |- - Type of the replacement text. None means no replacement. - hash means the data will be stubbed. replacement_string means that - one can chose a text to replace the data. partial_replacement_from_beginning - allows a user to partially replace the data from the beginning, and - partial_replacement_from_end on the other hand, allows to replace data from - the end. - enum: - - none - - hash - - replacement_string - - partial_replacement_from_beginning - - partial_replacement_from_end - type: string - x-enum-varnames: - - NONE - - HASH - - REPLACEMENT_STRING - - PARTIAL_REPLACEMENT_FROM_BEGINNING - - PARTIAL_REPLACEMENT_FROM_END - SerialExecution: - description: "Whether to execute the workflow serially for an incident." - properties: - enabled: - description: "Whether serial execution is enabled." - example: false - type: boolean - required: - - enabled - type: object - ServiceAccessToken: - description: Datadog access token. - properties: - attributes: - $ref: "#/components/schemas/ServiceAccessTokenAttributes" - id: - description: ID of the access token. - type: string - relationships: - $ref: "#/components/schemas/ServiceAccessTokenRelationships" - type: - $ref: "#/components/schemas/ServiceAccessTokensType" - type: object - ServiceAccessTokenAttributes: - description: Attributes of an access token. - properties: - created_at: - description: Creation date of the access token. - example: "2024-01-01T00:00:00+00:00" - format: date-time - readOnly: true - type: string - expires_at: - description: Expiration date of the access token. - example: "2025-12-31T23:59:59+00:00" - format: date-time - nullable: true - readOnly: true - type: string - last_used_at: - description: Date the access token was last used. - example: "2025-06-15T12:30:00+00:00" - format: date-time - nullable: true - readOnly: true + name: + description: The unique name of the dataset. Must start with a lowercase letter and contain only lowercase letters, digits, and underscores (max 255 characters). + example: sample_dataset type: string - modified_at: - description: Date of last modification of the access token. - example: "2024-06-01T00:00:00+00:00" - format: date-time - nullable: true - readOnly: true + query_filter: + description: For referential datasets, an optional filter expression applied to the table. + example: status = 'active' type: string - name: - description: Name of the access token. - example: "My Access Token" + search: + $ref: "#/components/schemas/SecurityMonitoringDatasetSearch" + storage: + description: Storage tier the dataset reads from. Applies to event platform datasets. + example: hot type: string - public_portion: - description: The public portion of the access token. - example: "ddsat_abc123" - readOnly: true + table_name: + description: For referential datasets, the name of the underlying table. + example: my_reference_table type: string - scopes: - description: Array of scopes granted to the access token. - example: - - "dashboards_read" - - "dashboards_write" - items: - description: Name of scope. - type: string - type: array - type: object - ServiceAccessTokenCreateResponse: - description: Response for creating an access token. Includes the token key. - properties: - data: - $ref: "#/components/schemas/FullServiceAccessToken" - type: object - ServiceAccessTokenRelationships: - description: Resources related to the access token. - properties: - leak_information: - $ref: "#/components/schemas/RelationshipToLeakedKey" - owned_by: - $ref: "#/components/schemas/RelationshipToServiceAccount" + time_window: + $ref: "#/components/schemas/SecurityMonitoringDatasetTimeWindow" + required: + - data_source + - name type: object - ServiceAccessTokenResponse: - description: Response for retrieving an access token. + SecurityMonitoringDatasetDependenciesRequest: + description: Request body for retrieving dependencies of a batch of datasets. properties: data: - $ref: "#/components/schemas/ServiceAccessToken" - included: - $ref: "#/components/schemas/AccessTokenResponseIncludedArray" - type: object - ServiceAccessTokenResponseMeta: - description: Additional information related to the access token response. - properties: - page: - $ref: "#/components/schemas/ServiceAccessTokenResponseMetaPage" - type: object - ServiceAccessTokenResponseMetaPage: - description: Pagination information. - properties: - total_filtered_count: - description: Total filtered access token count. - format: int64 - type: integer + $ref: "#/components/schemas/SecurityMonitoringDatasetDependenciesRequestData" + required: + - data type: object - ServiceAccessTokensType: - default: service_access_tokens - description: Service access tokens resource type. - enum: - - service_access_tokens - example: service_access_tokens - type: string - x-enum-varnames: - - SERVICE_ACCESS_TOKENS - ServiceAccountAccessTokenCreateAttributes: - description: Attributes used to create a service account access token. + SecurityMonitoringDatasetDependenciesRequestAttributes: + description: The attributes of a dataset dependencies request. properties: - expires_at: - description: Expiration date of the access token. Optional for service account tokens. - example: "2025-12-31T23:59:59+00:00" - format: date-time - type: string - name: - description: Name of the access token. - example: "Service Account Access Token" - type: string - scopes: - description: Array of scopes to grant the access token. + datasetIds: + description: The list of dataset UUIDs to query dependencies for. Must contain between 1 and 100 items. example: - - "dashboards_read" - - "dashboards_write" + - 123e4567-e89b-12d3-a456-426614174000 items: - description: Name of scope. type: string type: array required: - - name - - scopes + - datasetIds type: object - ServiceAccountAccessTokenCreateData: - description: Object used to create a service account access token. + SecurityMonitoringDatasetDependenciesRequestData: + description: The data wrapper of a dataset dependencies request. properties: attributes: - $ref: "#/components/schemas/ServiceAccountAccessTokenCreateAttributes" - type: - $ref: "#/components/schemas/ServiceAccessTokensType" + $ref: "#/components/schemas/SecurityMonitoringDatasetDependenciesRequestAttributes" required: - attributes - - type type: object - ServiceAccountAccessTokenCreateRequest: - description: Request used to create a service account access token. + SecurityMonitoringDatasetDependenciesResponse: + description: Response listing the dependents of each requested dataset. properties: data: - $ref: "#/components/schemas/ServiceAccountAccessTokenCreateData" + $ref: "#/components/schemas/SecurityMonitoringDatasetDependenciesResponseData" required: - data type: object - ServiceAccountAccessTokenUpdateAttributes: - description: Attributes used to update a service account access token. + SecurityMonitoringDatasetDependenciesResponseData: + description: The list of dataset dependents entries. + items: + $ref: "#/components/schemas/SecurityMonitoringDatasetDependentsData" + type: array + SecurityMonitoringDatasetDependentsAttributes: + description: The attributes of a dataset dependents entry. properties: - name: - description: Name of the access token. - example: "Updated Service Access Token" + count: + description: The number of resources that depend on the dataset. + example: 0 + format: int64 + type: integer + datasetId: + description: The UUID of the dataset whose dependencies are being reported. + example: 123e4567-e89b-12d3-a456-426614174000 type: string - scopes: - description: Array of scopes to grant the access token. - example: - - "dashboards_read" - - "dashboards_write" - items: - description: Name of scope. - type: string - type: array + ids: + $ref: "#/components/schemas/SecurityMonitoringDatasetDependentsIds" + resource_type: + description: The type of resource that depends on the dataset. + example: security_detection_rule + type: string + required: + - datasetId + - resource_type + - ids + - count type: object - ServiceAccountAccessTokenUpdateData: - description: Object used to update a service account access token. + SecurityMonitoringDatasetDependentsData: + description: A single entry describing the dependents of one dataset. properties: attributes: - $ref: "#/components/schemas/ServiceAccountAccessTokenUpdateAttributes" + $ref: "#/components/schemas/SecurityMonitoringDatasetDependentsAttributes" id: - description: ID of the access token. - example: "00112233-4455-6677-8899-aabbccddeeff" + description: The UUID of the dataset. + example: 123e4567-e89b-12d3-a456-426614174000 type: string type: - $ref: "#/components/schemas/ServiceAccessTokensType" + $ref: "#/components/schemas/SecurityMonitoringDatasetDependentsType" required: - - attributes - id - type + - attributes type: object - ServiceAccountAccessTokenUpdateRequest: - description: Request used to update a service account access token. + SecurityMonitoringDatasetDependentsIds: + description: The list of resource IDs that depend on the dataset. + example: [] + items: + type: string + type: array + SecurityMonitoringDatasetDependentsType: + description: The type of resource for a dataset dependents entry. + enum: + - datasetDependents + example: datasetDependents + type: string + x-enum-varnames: + - DATASET_DEPENDENTS + SecurityMonitoringDatasetResponse: + description: Response containing a single Cloud SIEM dataset. properties: data: - $ref: "#/components/schemas/ServiceAccountAccessTokenUpdateData" + $ref: "#/components/schemas/SecurityMonitoringDatasetData" required: - data type: object - ServiceAccountCreateAttributes: - description: Attributes of the created user. + SecurityMonitoringDatasetSearch: + description: The search clause applied to an event platform dataset. properties: - email: - description: The email of the user. - example: "jane.doe@example.com" - type: string - name: - description: The name of the user. - type: string - service_account: - description: Whether the user is a service account. Must be true. - example: true - type: boolean - title: - description: The title of the user. + query: + description: The search query expression. + example: "*" type: string required: - - email - - service_account + - query type: object - ServiceAccountCreateData: - description: Object to create a service account User. + SecurityMonitoringDatasetTimeWindow: + description: An optional time window that overrides the default query time range. + properties: + from: + description: Inclusive start of the time window, in milliseconds since the Unix epoch. + example: 1700000000000 + format: int64 + type: integer + to: + description: Exclusive end of the time window, in milliseconds since the Unix epoch. + example: 1700003600000 + format: int64 + type: integer + type: object + SecurityMonitoringDatasetType: + description: The type of resource for a dataset response. + enum: + - dataset + example: dataset + type: string + x-enum-varnames: + - DATASET + SecurityMonitoringDatasetUpdateData: + description: The data wrapper of a dataset update request. properties: attributes: - $ref: "#/components/schemas/ServiceAccountCreateAttributes" - relationships: - $ref: "#/components/schemas/UserRelationships" + $ref: "#/components/schemas/SecurityMonitoringDatasetAttributesRequest" type: - $ref: "#/components/schemas/UsersType" + $ref: "#/components/schemas/SecurityMonitoringDatasetUpdateType" required: - - attributes - type + - attributes type: object - ServiceAccountCreateRequest: - description: Create a service account. + SecurityMonitoringDatasetUpdateRequest: + description: Request body for updating a Cloud SIEM dataset. properties: data: - $ref: "#/components/schemas/ServiceAccountCreateData" + $ref: "#/components/schemas/SecurityMonitoringDatasetUpdateData" required: - data type: object - ServiceAccountType: - description: Service account resource type. + SecurityMonitoringDatasetUpdateType: + description: The type of resource for a dataset update request. enum: - - service_account - example: service_account + - datasetUpdate + example: datasetUpdate type: string x-enum-varnames: - - SERVICE_ACCOUNT - ServiceDefinitionCreateResponse: - description: Create service definitions response. + - DATASET_UPDATE + SecurityMonitoringDatasetVersionChanges: + description: The list of field changes between this version of the dataset and the previous one. + items: + $ref: "#/components/schemas/SecurityMonitoringDatasetVersionFieldChange" + type: array + SecurityMonitoringDatasetVersionEntry: + description: A single entry in the version history of a dataset. + properties: + changes: + $ref: "#/components/schemas/SecurityMonitoringDatasetVersionChanges" + dataset: + $ref: "#/components/schemas/SecurityMonitoringDatasetAttributesResponse" + required: + - dataset + - changes + type: object + SecurityMonitoringDatasetVersionFieldChange: + description: A single field change between two versions of a dataset. + properties: + current: + description: The current value of the field, serialized as a JSON value. + example: New description. + field: + description: The name of the field that changed. + example: description + type: string + previous: + description: The previous value of the field, serialized as a JSON value. + example: Old description. + required: + - field + - previous + - current + type: object + SecurityMonitoringDatasetVersionHistoryAttributes: + description: The attributes of a dataset version history response. properties: + count: + description: The total number of versions available for this dataset. + example: 1 + format: int64 + type: integer data: - description: Create service definitions response payload. - items: - $ref: "#/components/schemas/ServiceDefinitionData" - type: array + $ref: "#/components/schemas/SecurityMonitoringDatasetVersionHistoryEntries" + required: + - data + - count type: object - ServiceDefinitionData: - description: Service definition data. + SecurityMonitoringDatasetVersionHistoryData: + description: The data wrapper of a dataset version history response. properties: attributes: - $ref: "#/components/schemas/ServiceDefinitionDataAttributes" + $ref: "#/components/schemas/SecurityMonitoringDatasetVersionHistoryAttributes" id: - description: Service definition id. + description: The UUID of the dataset. + example: 123e4567-e89b-12d3-a456-426614174000 type: string type: - description: Service definition type. - type: string + $ref: "#/components/schemas/SecurityMonitoringDatasetVersionHistoryType" + required: + - id + - type + - attributes type: object - ServiceDefinitionDataAttributes: - description: Service definition attributes. + SecurityMonitoringDatasetVersionHistoryEntries: + additionalProperties: + $ref: "#/components/schemas/SecurityMonitoringDatasetVersionEntry" + description: A map from version number (as a string) to the dataset state at that version. + type: object + SecurityMonitoringDatasetVersionHistoryResponse: + description: Response containing the version history of a Cloud SIEM dataset. properties: - meta: - $ref: "#/components/schemas/ServiceDefinitionMeta" - schema: - $ref: "#/components/schemas/ServiceDefinitionSchema" + data: + $ref: "#/components/schemas/SecurityMonitoringDatasetVersionHistoryData" + required: + - data type: object - ServiceDefinitionGetResponse: - description: Get service definition response. + SecurityMonitoringDatasetVersionHistoryType: + description: The type of resource for a dataset version history response. + enum: + - dataset_version_history + example: dataset_version_history + type: string + x-enum-varnames: + - DATASET_VERSION_HISTORY + SecurityMonitoringDatasetsListData: + description: A list of dataset data items. + items: + $ref: "#/components/schemas/SecurityMonitoringDatasetData" + type: array + SecurityMonitoringDatasetsListMeta: + description: Metadata returned with a list of datasets. + properties: + totalCount: + description: The total number of datasets matching the request, across all pages. + example: 1 + format: int64 + type: integer + required: + - totalCount + type: object + SecurityMonitoringDatasetsListResponse: + description: Response containing a paginated list of Cloud SIEM datasets. properties: data: - $ref: "#/components/schemas/ServiceDefinitionData" + $ref: "#/components/schemas/SecurityMonitoringDatasetsListData" + meta: + $ref: "#/components/schemas/SecurityMonitoringDatasetsListMeta" + required: + - data + - meta type: object - ServiceDefinitionMeta: - description: Metadata about a service definition. + SecurityMonitoringEntityContextEntityType: + default: entity + description: |- + The type of the entity. Reflects the underlying entity kind from the entity context store + (for example, `siem_entity_identity` for identities). Defaults to `entity` when the kind is unknown. + example: siem_entity_identity + type: string + SecurityMonitoringEntraIdAzureAppRegistrationsAttributes: + description: The attributes of the Entra ID Azure App Registration prerequisites. properties: - github-html-url: - description: GitHub HTML URL. - type: string - ingested-schema-version: - description: Ingestion schema version. - type: string - ingestion-source: - description: Ingestion source of the service definition. - type: string - last-modified-time: - description: Last modified time of the service definition. - type: string - origin: - description: User defined origin of the service definition. - type: string - origin-detail: - description: User defined origin's detail of the service definition. - type: string - warnings: - description: A list of schema validation warnings. + azure_app_registrations: + description: The Azure App Registrations discovered for the organization. items: - $ref: "#/components/schemas/ServiceDefinitionMetaWarnings" + $ref: "#/components/schemas/SecurityMonitoringAzureAppRegistration" type: array - type: object - ServiceDefinitionMetaWarnings: - description: Schema validation warnings. - properties: - instance-location: - description: The warning instance location. + has_valid_prerequisite: + description: Whether at least one Azure App Registration has resource collection enabled. + example: true + type: boolean + integration_id: + description: The ID of the Entra ID integration configuration, if one exists. + example: 11111111-2222-3333-4444-555555555555 type: string - keyword-location: - description: The warning keyword location. + is_enabled: + description: Whether the Entra ID integration configuration is enabled, if one exists. + example: true + type: boolean + subscribed_at: + description: The time at which the Entra ID integration configuration was created, if one exists. + example: "2026-05-01T12:00:00Z" + format: date-time type: string - message: - description: The warning message. + required: + - azure_app_registrations + - has_valid_prerequisite + type: object + SecurityMonitoringEntraIdAzureAppRegistrationsData: + description: The Azure App Registration prerequisites for the Entra ID integration. + properties: + attributes: + $ref: "#/components/schemas/SecurityMonitoringEntraIdAzureAppRegistrationsAttributes" + id: + description: The ID of the organization the Azure App Registrations belong to. + example: "123456" type: string + type: + $ref: "#/components/schemas/SecurityMonitoringEntraIdAzureAppRegistrationsResourceType" + required: + - id + - type + - attributes type: object - ServiceDefinitionRaw: - description: Service Definition in raw JSON/YAML representation. - example: |- - --- - schema-version: v2 - dd-service: my-service - type: string - ServiceDefinitionSchema: - description: Service definition schema. - oneOf: - - $ref: "#/components/schemas/ServiceDefinitionV1" - - $ref: "#/components/schemas/ServiceDefinitionV2" - - $ref: "#/components/schemas/ServiceDefinitionV2Dot1" - - $ref: "#/components/schemas/ServiceDefinitionV2Dot2" - ServiceDefinitionSchemaVersions: - description: Schema versions + SecurityMonitoringEntraIdAzureAppRegistrationsResourceType: + default: entra_id_azure_app_registrations + description: The type of the resource. The value should always be `entra_id_azure_app_registrations`. enum: - - v1 - - v2 - - v2.1 - - v2.2 + - entra_id_azure_app_registrations + example: entra_id_azure_app_registrations type: string x-enum-varnames: - - V1 - - V2 - - V2_1 - - V2_2 - ServiceDefinitionV1: - deprecated: true - description: Deprecated - Service definition V1 for providing additional service metadata and integrations. + - ENTRA_ID_AZURE_APP_REGISTRATIONS + SecurityMonitoringEntraIdAzureAppRegistrationsResponse: + description: Response containing the Azure App Registration prerequisites for the Entra ID integration. properties: - contact: - $ref: "#/components/schemas/ServiceDefinitionV1Contact" - extensions: - additionalProperties: {} - description: Extensions to V1 schema. - example: {"myorg/extension": "extensionValue"} - type: object - external-resources: - description: A list of external links related to the services. - items: - $ref: "#/components/schemas/ServiceDefinitionV1Resource" - type: array - info: - $ref: "#/components/schemas/ServiceDefinitionV1Info" - integrations: - $ref: "#/components/schemas/ServiceDefinitionV1Integrations" - org: - $ref: "#/components/schemas/ServiceDefinitionV1Org" - schema-version: - $ref: "#/components/schemas/ServiceDefinitionV1Version" - tags: - description: A set of custom tags. - example: ["my:tag", "service:tag"] - items: - description: A custom tag string in `key:value` format. - type: string - type: array + data: + $ref: "#/components/schemas/SecurityMonitoringEntraIdAzureAppRegistrationsData" required: - - schema-version - - info + - data type: object - ServiceDefinitionV1Contact: - description: Contact information about the service. + SecurityMonitoringEntraIdIntegrationConfigCreateAttributes: + description: The attributes of an Entra ID entity context sync configuration to create. properties: - email: - description: Service owner’s email. - example: contact@datadoghq.com + domain: + description: The domain associated with the external entity source. + example: siem-test.com type: string - slack: - description: Service owner’s Slack channel. - example: https://yourcompany.slack.com/archives/channel123 + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeEntraId" + name: + description: The display name for the entity context sync configuration. + example: My Entra ID Integration type: string + settings: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" + required: + - integration_type + - domain + - name type: object - ServiceDefinitionV1Info: - description: Basic information about a service. + SecurityMonitoringEntraIdIntegrationConfigUpdateAttributes: + description: Fields to update on an Entra ID entity context sync configuration. properties: - dd-service: - description: Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog. - example: myservice - type: string - description: - description: A short description of the service. - example: A shopping cart service - type: string - display-name: - description: A friendly name of the service. - example: My Service + domain: + description: The new domain associated with the external entity source. + example: siem-test.com type: string - service-tier: - description: Service tier. - example: Tier 1 + enabled: + description: Whether the entity context sync should be enabled. + example: true + type: boolean + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeEntraId" + name: + description: The new display name for the entity context sync configuration. + example: My Entra ID Integration (renamed) type: string - required: [dd-service] + settings: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" + required: + - integration_type type: object - ServiceDefinitionV1Integrations: - description: Third party integrations that Datadog supports. + SecurityMonitoringEntraIdIntegrationCredentialsValidateAttributes: + description: The Entra ID credentials to validate against the external entity source. properties: - pagerduty: - $ref: "#/components/schemas/ServiceDefinitionV1Pagerduty" + domain: + description: The domain associated with the external entity source. + example: siem-test.com + type: string + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeEntraId" + required: + - integration_type + - domain type: object - ServiceDefinitionV1Org: - description: Org related information about the service. + SecurityMonitoringFilter: + description: The rule's suppression filter. properties: - application: - description: App feature this service supports. - example: E-Commerce - type: string - team: - description: Team that owns the service. - example: my-team + action: + $ref: "#/components/schemas/SecurityMonitoringFilterAction" + query: + description: Query for selecting logs to apply the filtering action. type: string type: object - ServiceDefinitionV1Pagerduty: - description: PagerDuty service URL for the service. - example: https://my-org.pagerduty.com/service-directory/PMyService + SecurityMonitoringFilterAction: + description: The type of filtering action. + enum: + - require + - suppress type: string - ServiceDefinitionV1Resource: - description: Service's external links. + x-enum-varnames: + - REQUIRE + - SUPPRESS + SecurityMonitoringGoogleWorkspaceIntegrationConfigCreateAttributes: + description: The attributes of a Google Workspace entity context sync configuration to create. properties: - name: - description: Link name. - example: Runbook + domain: + description: The domain associated with the external entity source. + example: siem-test.com type: string - type: - $ref: "#/components/schemas/ServiceDefinitionV1ResourceType" - url: - description: Link URL. - example: https://my-runbook + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeGoogleWorkspace" + name: + description: The display name for the entity context sync configuration. + example: My GWS Integration type: string + secrets: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets" + settings: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" required: + - integration_type + - domain - name - - type - - url + - secrets type: object - ServiceDefinitionV1ResourceType: - description: Link type. - enum: - - doc - - wiki - - runbook - - url - - repo - - dashboard - - oncall - - code - - link - example: runbook - type: string - x-enum-varnames: - - DOC - - WIKI - - RUNBOOK - - URL - - REPO - - DASHBOARD - - ONCALL - - CODE - - LINK - ServiceDefinitionV1Version: - default: v1 - description: Schema version being used. - enum: - - v1 - example: v1 - type: string - x-enum-varnames: - - V1 - ServiceDefinitionV2: - description: Service definition V2 for providing service metadata and integrations. + SecurityMonitoringGoogleWorkspaceIntegrationConfigUpdateAttributes: + description: Fields to update on a Google Workspace entity context sync configuration. properties: - contacts: - description: A list of contacts related to the services. - items: - $ref: "#/components/schemas/ServiceDefinitionV2Contact" - type: array - dd-service: - description: Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog. - example: my-service - type: string - dd-team: - description: Experimental feature. A Team handle that matches a Team in the Datadog Teams product. - example: my-team - type: string - docs: - description: A list of documentation related to the services. - items: - $ref: "#/components/schemas/ServiceDefinitionV2Doc" - type: array - extensions: - additionalProperties: {} - description: Extensions to V2 schema. - example: {"myorg/extension": "extensionValue"} - type: object - integrations: - $ref: "#/components/schemas/ServiceDefinitionV2Integrations" - links: - description: A list of links related to the services. - items: - $ref: "#/components/schemas/ServiceDefinitionV2Link" - type: array - repos: - description: A list of code repositories related to the services. - items: - $ref: "#/components/schemas/ServiceDefinitionV2Repo" - type: array - schema-version: - $ref: "#/components/schemas/ServiceDefinitionV2Version" - tags: - description: A set of custom tags. - example: ["my:tag", "service:tag"] - items: - description: A custom tag string in `key:value` format. - type: string - type: array - team: - description: Team that owns the service. - example: my-team + domain: + description: The new domain associated with the external entity source. + example: siem-test.com type: string - required: - - schema-version - - dd-service - type: object - ServiceDefinitionV2Contact: - description: Service owner's contacts information. - oneOf: - - $ref: "#/components/schemas/ServiceDefinitionV2Email" - - $ref: "#/components/schemas/ServiceDefinitionV2Slack" - - $ref: "#/components/schemas/ServiceDefinitionV2MSTeams" - ServiceDefinitionV2Doc: - description: Service documents. - properties: + enabled: + description: Whether the entity context sync should be enabled. + example: true + type: boolean + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeGoogleWorkspace" name: - description: Document name. - example: Architecture - type: string - provider: - description: Document provider. - example: google drive - type: string - url: - description: Document URL. - example: "https://gdrive/mydoc" + description: The new display name for the entity context sync configuration. + example: My GWS Integration (renamed) type: string + secrets: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets" + settings: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" required: - - name - - url + - integration_type type: object - ServiceDefinitionV2Dot1: - description: Service definition v2.1 for providing service metadata and integrations. + SecurityMonitoringGoogleWorkspaceIntegrationCredentialsValidateAttributes: + description: The Google Workspace credentials to validate against the external entity source. properties: - application: - description: Identifier for a group of related services serving a product feature, which the service is a part of. - example: my-app - type: string - contacts: - description: A list of contacts related to the services. - items: - $ref: "#/components/schemas/ServiceDefinitionV2Dot1Contact" - type: array - dd-service: - description: Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog. - example: my-service - type: string - description: - description: A short description of the service. - example: My service description - type: string - extensions: - additionalProperties: {} - description: Extensions to v2.1 schema. - example: {"myorg/extension": "extensionValue"} - type: object - integrations: - $ref: "#/components/schemas/ServiceDefinitionV2Dot1Integrations" - lifecycle: - description: The current life cycle phase of the service. - example: sandbox - type: string - links: - description: A list of links related to the services. - items: - $ref: "#/components/schemas/ServiceDefinitionV2Dot1Link" - type: array - schema-version: - $ref: "#/components/schemas/ServiceDefinitionV2Dot1Version" - tags: - description: A set of custom tags. - example: ["my:tag", "service:tag"] - items: - description: A custom tag string in `key:value` format. - type: string - type: array - team: - description: Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists. - example: my-team - type: string - tier: - description: Importance of the service. - example: High + domain: + description: The domain associated with the external entity source. + example: siem-test.com type: string + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeGoogleWorkspace" + secrets: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets" required: - - schema-version - - dd-service + - integration_type + - domain + - secrets type: object - ServiceDefinitionV2Dot1Contact: - description: Service owner's contacts information. - oneOf: - - $ref: "#/components/schemas/ServiceDefinitionV2Dot1Email" - - $ref: "#/components/schemas/ServiceDefinitionV2Dot1Slack" - - $ref: "#/components/schemas/ServiceDefinitionV2Dot1MSTeams" - ServiceDefinitionV2Dot1Email: - description: Service owner's email. + SecurityMonitoringIntegrationActivateAttributes: + description: Overrides applied when activating the integration. All fields are optional. properties: - contact: - description: Contact value. - example: contact@datadoghq.com + domain: + description: The domain associated with the external entity source. + example: default type: string name: - description: Contact email. - example: Team Email + description: The display name for the entity context sync configuration. + example: My Entra ID Integration type: string - type: - $ref: "#/components/schemas/ServiceDefinitionV2Dot1EmailType" - required: - - type - - contact - type: object - ServiceDefinitionV2Dot1EmailType: - description: Contact type. - enum: - - email - example: email - type: string - x-enum-varnames: - - EMAIL - ServiceDefinitionV2Dot1Integrations: - description: Third party integrations that Datadog supports. - properties: - opsgenie: - $ref: "#/components/schemas/ServiceDefinitionV2Dot1Opsgenie" - pagerduty: - $ref: "#/components/schemas/ServiceDefinitionV2Dot1Pagerduty" + settings: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" type: object - ServiceDefinitionV2Dot1Link: - description: Service's external links. + SecurityMonitoringIntegrationActivateData: + description: The configuration overrides for the integration to activate. properties: - name: - description: Link name. - example: Runbook - type: string - provider: - description: Link provider. - example: Github - type: string + attributes: + $ref: "#/components/schemas/SecurityMonitoringIntegrationActivateAttributes" type: - $ref: "#/components/schemas/ServiceDefinitionV2Dot1LinkType" - url: - description: Link URL. - example: https://my-runbook - type: string - required: - - name - - type - - url + $ref: "#/components/schemas/SecurityMonitoringIntegrationActivateResourceType" type: object - ServiceDefinitionV2Dot1LinkType: - description: Link type. - enum: - - doc - - repo - - runbook - - dashboard - - other - example: runbook - type: string - x-enum-varnames: - - DOC - - REPO - - RUNBOOK - - DASHBOARD - - OTHER - ServiceDefinitionV2Dot1MSTeams: - description: Service owner's Microsoft Teams. + SecurityMonitoringIntegrationActivateRequest: + description: Request body to activate an entity context sync integration for a source type that does not require secrets. properties: - contact: - description: Contact value. - example: https://teams.microsoft.com/myteam - type: string - name: - description: Contact Microsoft Teams. - example: My team channel - type: string - type: - $ref: "#/components/schemas/ServiceDefinitionV2Dot1MSTeamsType" - required: - - type - - contact + data: + $ref: "#/components/schemas/SecurityMonitoringIntegrationActivateData" type: object - ServiceDefinitionV2Dot1MSTeamsType: - description: Contact type. + SecurityMonitoringIntegrationActivateResourceType: + default: activate_entra_id_request + description: The type of the resource. The value should always be `activate_entra_id_request`. enum: - - microsoft-teams - example: microsoft-teams + - activate_entra_id_request + example: activate_entra_id_request type: string x-enum-varnames: - - MICROSOFT_TEAMS - ServiceDefinitionV2Dot1Opsgenie: - description: Opsgenie integration for the service. + - ACTIVATE_ENTRA_ID_REQUEST + SecurityMonitoringIntegrationConfigAttributes: + description: The attributes of an entity context sync configuration as returned by the API. properties: - region: - $ref: "#/components/schemas/ServiceDefinitionV2Dot1OpsgenieRegion" - service-url: - description: Opsgenie service url. - example: "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000" + created_at: + description: The time at which the entity context sync configuration was created. + example: "2026-05-01T12:00:00Z" + format: date-time type: string - required: [service-url] - type: object - ServiceDefinitionV2Dot1OpsgenieRegion: - description: Opsgenie instance region. - enum: [US, EU] - example: US - type: string - x-enum-varnames: [US, EU] - ServiceDefinitionV2Dot1Pagerduty: - description: PagerDuty integration for the service. - properties: - service-url: - description: PagerDuty service url. - example: "https://my-org.pagerduty.com/service-directory/PMyService" + domain: + description: The domain associated with the external entity source (for example, the customer's identity provider domain). + example: siem-test.com type: string - type: object - ServiceDefinitionV2Dot1Slack: - description: Service owner's Slack channel. - properties: - contact: - description: Slack Channel. - example: https://yourcompany.slack.com/archives/channel123 + enabled: + description: Whether the sync is enabled and actively ingesting entities into Cloud SIEM. + example: true + type: boolean + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationType" + modified_at: + description: The time at which the entity context sync configuration was last modified. + example: "2026-05-01T12:00:00Z" + format: date-time type: string name: - description: Contact Slack. - example: Team Slack + description: The display name of the entity context sync configuration. + example: My GWS Integration type: string + settings: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" + state: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigState" + required: + - enabled + - domain + - integration_type + type: object + SecurityMonitoringIntegrationConfigCreateAttributes: + description: The attributes of the entity context sync configuration to create. + discriminator: + mapping: + CROWDSTRIKE: "#/components/schemas/SecurityMonitoringCrowdStrikeIntegrationConfigCreateAttributes" + ENTRA_ID: "#/components/schemas/SecurityMonitoringEntraIdIntegrationConfigCreateAttributes" + GOOGLE_WORKSPACE: "#/components/schemas/SecurityMonitoringGoogleWorkspaceIntegrationConfigCreateAttributes" + OKTA: "#/components/schemas/SecurityMonitoringOktaIntegrationConfigCreateAttributes" + SENTINELONE: "#/components/schemas/SecurityMonitoringSentinelOneIntegrationConfigCreateAttributes" + propertyName: integration_type + oneOf: + - $ref: "#/components/schemas/SecurityMonitoringGoogleWorkspaceIntegrationConfigCreateAttributes" + - $ref: "#/components/schemas/SecurityMonitoringOktaIntegrationConfigCreateAttributes" + - $ref: "#/components/schemas/SecurityMonitoringEntraIdIntegrationConfigCreateAttributes" + - $ref: "#/components/schemas/SecurityMonitoringCrowdStrikeIntegrationConfigCreateAttributes" + - $ref: "#/components/schemas/SecurityMonitoringSentinelOneIntegrationConfigCreateAttributes" + SecurityMonitoringIntegrationConfigCreateData: + description: The entity context sync configuration to create. + properties: + attributes: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigCreateAttributes" type: - $ref: "#/components/schemas/ServiceDefinitionV2Dot1SlackType" + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigResourceType" required: - type - - contact + - attributes type: object - ServiceDefinitionV2Dot1SlackType: - description: Contact type. - enum: - - slack - example: slack - type: string - x-enum-varnames: - - SLACK - ServiceDefinitionV2Dot1Version: - default: v2.1 - description: Schema version being used. - enum: - - v2.1 - example: v2.1 - type: string - x-enum-varnames: - - V2_1 - ServiceDefinitionV2Dot2: - description: Service definition v2.2 for providing service metadata and integrations. + SecurityMonitoringIntegrationConfigCreateRequest: + description: Request body to create an entity context sync configuration. properties: - application: - description: Identifier for a group of related services serving a product feature, which the service is a part of. - example: my-app - type: string - ci-pipeline-fingerprints: - description: A set of CI fingerprints. - example: ["j88xdEy0J5lc", "eZ7LMljCk8vo"] - items: - description: A CI pipeline fingerprint string. - type: string - type: array - contacts: - description: A list of contacts related to the services. - items: - $ref: "#/components/schemas/ServiceDefinitionV2Dot2Contact" - type: array - dd-service: - description: Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog. - example: my-service - type: string - description: - description: A short description of the service. - example: My service description - type: string - extensions: - additionalProperties: {} - description: Extensions to v2.2 schema. - example: {"myorg/extension": "extensionValue"} - type: object - integrations: - $ref: "#/components/schemas/ServiceDefinitionV2Dot2Integrations" - languages: - description: "The service's programming language. Datadog recognizes the following languages: `dotnet`, `go`, `java`, `js`, `php`, `python`, `ruby`, and `c++`." - example: ["dotnet", "go", "java", "js", "php", "python", "ruby", "c++"] - items: - description: A programming language identifier. - type: string - type: array - lifecycle: - description: The current life cycle phase of the service. - example: sandbox - type: string - links: - description: A list of links related to the services. - items: - $ref: "#/components/schemas/ServiceDefinitionV2Dot2Link" - type: array - schema-version: - $ref: "#/components/schemas/ServiceDefinitionV2Dot2Version" - tags: - description: A set of custom tags. - example: ["my:tag", "service:tag"] - items: - description: A custom tag string in `key:value` format. - type: string - type: array - team: - description: Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists. - example: my-team - type: string - tier: - description: Importance of the service. - example: High - type: string - type: - $ref: "#/components/schemas/ServiceDefinitionV2Dot2Type" + data: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigCreateData" required: - - schema-version - - dd-service + - data type: object - ServiceDefinitionV2Dot2Contact: - description: Service owner's contacts information. + SecurityMonitoringIntegrationConfigCrowdStrikeSecrets: + description: Credentials for a CrowdStrike entity context sync. properties: - contact: - description: Contact value. - example: https://teams.microsoft.com/myteam - type: string - name: - description: Contact Name. - example: My team channel + client_id: + description: The CrowdStrike API client ID. + example: abcdef0123456789abcdef0123456789 type: string - type: - description: "Contact type. Datadog recognizes the following types: `email`, `slack`, and `microsoft-teams`." - example: slack + client_secret: + description: The CrowdStrike API client secret. + example: aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789ABCDEF type: string required: - - type - - contact - type: object - ServiceDefinitionV2Dot2Integrations: - description: Third party integrations that Datadog supports. - properties: - opsgenie: - $ref: "#/components/schemas/ServiceDefinitionV2Dot2Opsgenie" - pagerduty: - $ref: "#/components/schemas/ServiceDefinitionV2Dot2Pagerduty" + - client_id + - client_secret type: object - ServiceDefinitionV2Dot2Link: - description: Service's external links. + SecurityMonitoringIntegrationConfigData: + description: An entity context sync configuration. properties: - name: - description: Link name. - example: Runbook - type: string - provider: - description: Link provider. - example: Github + attributes: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigAttributes" + id: + description: The unique identifier of the integration configuration. + example: 11111111-2222-3333-4444-555555555555 type: string type: - description: "Link type. Datadog recognizes the following types: `runbook`, `doc`, `repo`, `dashboard`, and `other`." - example: runbook - type: string - url: - description: Link URL. - example: https://my-runbook - type: string + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigResourceType" required: - - name + - id - type - - url + - attributes type: object - ServiceDefinitionV2Dot2Opsgenie: - description: Opsgenie integration for the service. + SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets: + description: Credentials for a Google Workspace entity context sync. properties: - region: - $ref: "#/components/schemas/ServiceDefinitionV2Dot2OpsgenieRegion" - service-url: - description: Opsgenie service url. - example: "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000" + admin_email: + description: The admin email to impersonate for domain-wide delegation. + example: admin@example.com type: string - required: [service-url] + service_account_json: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigGoogleWorkspaceServiceAccount" + required: + - service_account_json type: object - ServiceDefinitionV2Dot2OpsgenieRegion: - description: Opsgenie instance region. - enum: [US, EU] - example: US - type: string - x-enum-varnames: [US, EU] - ServiceDefinitionV2Dot2Pagerduty: - description: PagerDuty integration for the service. + SecurityMonitoringIntegrationConfigGoogleWorkspaceServiceAccount: + additionalProperties: {} + description: The Google Cloud service account JSON used to authenticate against the Google Workspace Admin SDK. Additional keys beyond those documented are preserved. properties: - service-url: - description: PagerDuty service url. - example: "https://my-org.pagerduty.com/service-directory/PMyService" + client_email: + description: The service account client email. + example: svc@my-project.iam.gserviceaccount.com type: string - type: object - ServiceDefinitionV2Dot2Type: - description: "The type of service." - example: web - type: string - ServiceDefinitionV2Dot2Version: - default: v2.2 - description: Schema version being used. - enum: - - v2.2 - example: v2.2 - type: string - x-enum-varnames: - - V2_2 - ServiceDefinitionV2Email: - description: Service owner's email. - properties: - contact: - description: Contact value. - example: contact@datadoghq.com + private_key: + description: The service account private key. + example: "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----" type: string - name: - description: Contact email. - example: Team Email + project_id: + description: The Google Cloud project ID that owns the service account. + example: my-project type: string type: - $ref: "#/components/schemas/ServiceDefinitionV2EmailType" + description: The service account type. Must be `service_account`. + example: service_account + type: string required: - type - - contact + - project_id + - private_key + - client_email type: object - ServiceDefinitionV2EmailType: - description: Contact type. + SecurityMonitoringIntegrationConfigOktaSecrets: + description: Credentials for an Okta entity context sync. + properties: + api_token: + description: The Okta API token used to authenticate against the Okta API. + example: 00aBcDeFgHiJkLmNoPqRsTuVwXyZ + type: string + required: + - api_token + type: object + SecurityMonitoringIntegrationConfigResourceType: + default: integration_config + description: The type of the resource. The value should always be `integration_config`. enum: - - email - example: email + - integration_config + example: integration_config type: string x-enum-varnames: - - EMAIL - ServiceDefinitionV2Integrations: - description: Third party integrations that Datadog supports. + - INTEGRATION_CONFIG + SecurityMonitoringIntegrationConfigResponse: + description: Response containing a single entity context sync configuration. properties: - opsgenie: - $ref: "#/components/schemas/ServiceDefinitionV2Opsgenie" - pagerduty: - $ref: "#/components/schemas/ServiceDefinitionV2Pagerduty" + data: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigData" + required: + - data type: object - ServiceDefinitionV2Link: - description: Service's external links. + SecurityMonitoringIntegrationConfigSentinelOneSecrets: + description: Credentials for a SentinelOne entity context sync. properties: - name: - description: Link name. - example: Runbook - type: string - type: - $ref: "#/components/schemas/ServiceDefinitionV2LinkType" - url: - description: Link URL. - example: https://my-runbook + api_token: + description: The SentinelOne API token. + example: aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789 type: string required: - - name - - type - - url + - api_token type: object - ServiceDefinitionV2LinkType: - description: Link type. + SecurityMonitoringIntegrationConfigSettings: + additionalProperties: {} + description: Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the source type. + example: + setting1: value1 + type: object + SecurityMonitoringIntegrationConfigState: + description: The state of the credentials configured on the entity context sync. enum: - - doc - - wiki - - runbook - - url - - repo - - dashboard - - oncall - - code - - link - example: runbook + - valid + - invalid + - initializing + example: valid type: string x-enum-varnames: - - DOC - - WIKI - - RUNBOOK - - URL - - REPO - - DASHBOARD - - ONCALL - - CODE - - LINK - ServiceDefinitionV2MSTeams: - description: Service owner's Microsoft Teams. + - VALID + - INVALID + - INITIALIZING + SecurityMonitoringIntegrationConfigUpdateAttributes: + description: Fields to update on the entity context sync configuration. All fields other than the integration type are optional. + discriminator: + mapping: + CROWDSTRIKE: "#/components/schemas/SecurityMonitoringCrowdStrikeIntegrationConfigUpdateAttributes" + ENTRA_ID: "#/components/schemas/SecurityMonitoringEntraIdIntegrationConfigUpdateAttributes" + GOOGLE_WORKSPACE: "#/components/schemas/SecurityMonitoringGoogleWorkspaceIntegrationConfigUpdateAttributes" + OKTA: "#/components/schemas/SecurityMonitoringOktaIntegrationConfigUpdateAttributes" + SENTINELONE: "#/components/schemas/SecurityMonitoringSentinelOneIntegrationConfigUpdateAttributes" + propertyName: integration_type + oneOf: + - $ref: "#/components/schemas/SecurityMonitoringGoogleWorkspaceIntegrationConfigUpdateAttributes" + - $ref: "#/components/schemas/SecurityMonitoringOktaIntegrationConfigUpdateAttributes" + - $ref: "#/components/schemas/SecurityMonitoringEntraIdIntegrationConfigUpdateAttributes" + - $ref: "#/components/schemas/SecurityMonitoringCrowdStrikeIntegrationConfigUpdateAttributes" + - $ref: "#/components/schemas/SecurityMonitoringSentinelOneIntegrationConfigUpdateAttributes" + SecurityMonitoringIntegrationConfigUpdateData: + description: The entity context sync configuration fields to update. properties: - contact: - description: Contact value. - example: https://teams.microsoft.com/myteam - type: string - name: - description: Contact Microsoft Teams. - example: My team channel - type: string + attributes: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigUpdateAttributes" type: - $ref: "#/components/schemas/ServiceDefinitionV2MSTeamsType" + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigResourceType" required: - type - - contact + - attributes type: object - ServiceDefinitionV2MSTeamsType: - description: Contact type. - enum: - - microsoft-teams - example: microsoft-teams - type: string - x-enum-varnames: - - MICROSOFT_TEAMS - ServiceDefinitionV2Opsgenie: - description: Opsgenie integration for the service. + SecurityMonitoringIntegrationConfigUpdateRequest: + description: Request body to update an entity context sync configuration. Supports partial updates. properties: - region: - $ref: "#/components/schemas/ServiceDefinitionV2OpsgenieRegion" - service-url: - description: Opsgenie service url. - example: "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000" - type: string - required: [service-url] + data: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigUpdateData" + required: + - data type: object - ServiceDefinitionV2OpsgenieRegion: - description: Opsgenie instance region. - enum: [US, EU] - example: US - type: string - x-enum-varnames: [US, EU] - ServiceDefinitionV2Pagerduty: - description: PagerDuty service URL for the service. - example: https://my-org.pagerduty.com/service-directory/PMyService - type: string - ServiceDefinitionV2Repo: - description: Service code repositories. + SecurityMonitoringIntegrationConfigsResponse: + description: Response containing a list of entity context sync configurations. properties: - name: - description: Repository name. - example: Source Code - type: string - provider: - description: Repository provider. - example: GitHub - type: string - url: - description: Repository URL. - example: "https://github.com/DataDog/schema" - type: string + data: + description: The list of integration configurations. + items: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigData" + type: array required: - - name - - url + - data type: object - ServiceDefinitionV2Slack: - description: Service owner's Slack channel. + SecurityMonitoringIntegrationCredentialsValidateAttributes: + description: The credentials to validate against the external entity source. + discriminator: + mapping: + CROWDSTRIKE: "#/components/schemas/SecurityMonitoringCrowdStrikeIntegrationCredentialsValidateAttributes" + ENTRA_ID: "#/components/schemas/SecurityMonitoringEntraIdIntegrationCredentialsValidateAttributes" + GOOGLE_WORKSPACE: "#/components/schemas/SecurityMonitoringGoogleWorkspaceIntegrationCredentialsValidateAttributes" + OKTA: "#/components/schemas/SecurityMonitoringOktaIntegrationCredentialsValidateAttributes" + SENTINELONE: "#/components/schemas/SecurityMonitoringSentinelOneIntegrationCredentialsValidateAttributes" + propertyName: integration_type + oneOf: + - $ref: "#/components/schemas/SecurityMonitoringGoogleWorkspaceIntegrationCredentialsValidateAttributes" + - $ref: "#/components/schemas/SecurityMonitoringOktaIntegrationCredentialsValidateAttributes" + - $ref: "#/components/schemas/SecurityMonitoringEntraIdIntegrationCredentialsValidateAttributes" + - $ref: "#/components/schemas/SecurityMonitoringCrowdStrikeIntegrationCredentialsValidateAttributes" + - $ref: "#/components/schemas/SecurityMonitoringSentinelOneIntegrationCredentialsValidateAttributes" + SecurityMonitoringIntegrationCredentialsValidateData: + description: The credentials to validate. properties: - contact: - description: Slack Channel. - example: https://yourcompany.slack.com/archives/channel123 - type: string - name: - description: Contact Slack. - example: Team Slack - type: string + attributes: + $ref: "#/components/schemas/SecurityMonitoringIntegrationCredentialsValidateAttributes" type: - $ref: "#/components/schemas/ServiceDefinitionV2SlackType" + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigResourceType" required: - type - - contact + - attributes type: object - ServiceDefinitionV2SlackType: - description: Contact type. + SecurityMonitoringIntegrationCredentialsValidateRequest: + description: Request body to validate credentials against an external entity source before creating a sync configuration. + properties: + data: + $ref: "#/components/schemas/SecurityMonitoringIntegrationCredentialsValidateData" + required: + - data + type: object + SecurityMonitoringIntegrationType: + description: The type of external source that provides entities to Cloud SIEM. enum: - - slack - example: slack + - GOOGLE_WORKSPACE + - OKTA + - ENTRA_ID + - CROWDSTRIKE + - SENTINELONE + example: GOOGLE_WORKSPACE type: string x-enum-varnames: - - SLACK - ServiceDefinitionV2Version: - default: v2 - description: Schema version being used. + - GOOGLE_WORKSPACE + - OKTA + - ENTRA_ID + - CROWDSTRIKE + - SENTINELONE + SecurityMonitoringIntegrationTypeCrowdStrike: + description: The source type for a CrowdStrike entity context sync. enum: - - v2 - example: v2 + - CROWDSTRIKE + example: CROWDSTRIKE type: string x-enum-varnames: - - V2 - ServiceDefinitionsCreateRequest: - description: Create service definitions request. - oneOf: - - $ref: "#/components/schemas/ServiceDefinitionV2Dot2" - - $ref: "#/components/schemas/ServiceDefinitionV2Dot1" - - $ref: "#/components/schemas/ServiceDefinitionV2" - - $ref: "#/components/schemas/ServiceDefinitionRaw" - ServiceDefinitionsListResponse: - description: Create service definitions response. + - CROWDSTRIKE + SecurityMonitoringIntegrationTypeEntraId: + description: The source type for an Entra ID entity context sync. + enum: + - ENTRA_ID + example: ENTRA_ID + type: string + x-enum-varnames: + - ENTRA_ID + SecurityMonitoringIntegrationTypeGoogleWorkspace: + description: The source type for a Google Workspace entity context sync. + enum: + - GOOGLE_WORKSPACE + example: GOOGLE_WORKSPACE + type: string + x-enum-varnames: + - GOOGLE_WORKSPACE + SecurityMonitoringIntegrationTypeOkta: + description: The source type for an Okta entity context sync. + enum: + - OKTA + example: OKTA + type: string + x-enum-varnames: + - OKTA + SecurityMonitoringIntegrationTypeSentinelOne: + description: The source type for a SentinelOne entity context sync. + enum: + - SENTINELONE + example: SENTINELONE + type: string + x-enum-varnames: + - SENTINELONE + SecurityMonitoringListRulesResponse: + description: List of rules. properties: data: - description: Data representing service definitions. + description: Array containing the list of rules. items: - $ref: "#/components/schemas/ServiceDefinitionData" + $ref: "#/components/schemas/SecurityMonitoringRuleResponse" type: array + meta: + $ref: "#/components/schemas/ResponseMetaAttributes" type: object - ServiceList: - description: The response body for the service list endpoint. + SecurityMonitoringOktaIntegrationConfigCreateAttributes: + description: The attributes of an Okta entity context sync configuration to create. properties: - data: - $ref: "#/components/schemas/ServiceListData" + domain: + description: The domain associated with the external entity source. + example: siem-test.com + type: string + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeOkta" + name: + description: The display name for the entity context sync configuration. + example: My Okta Integration + type: string + secrets: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigOktaSecrets" + settings: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" + required: + - integration_type + - domain + - name + - secrets type: object - ServiceListData: - description: A single data item in the service list response. + SecurityMonitoringOktaIntegrationConfigUpdateAttributes: + description: Fields to update on an Okta entity context sync configuration. properties: - attributes: - $ref: "#/components/schemas/ServiceListDataAttributes" - id: - description: The unique identifier of the service. + domain: + description: The new domain associated with the external entity source. + example: siem-test.com type: string - type: - $ref: "#/components/schemas/ServiceListDataType" + enabled: + description: Whether the entity context sync should be enabled. + example: true + type: boolean + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeOkta" + name: + description: The new display name for the entity context sync configuration. + example: My Okta Integration (renamed) + type: string + secrets: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigOktaSecrets" + settings: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" required: - - type + - integration_type type: object - ServiceListDataAttributes: - description: Attributes of a service list entry, containing metadata and a list of service names. + SecurityMonitoringOktaIntegrationCredentialsValidateAttributes: + description: The Okta credentials to validate against the external entity source. properties: - metadata: - description: A list of metadata items associated with the service. - items: - $ref: "#/components/schemas/ServiceListDataAttributesMetadataItems" - type: array - services: - description: A list of service names. + domain: + description: The domain associated with the external entity source. + example: siem-test.com + type: string + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeOkta" + secrets: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigOktaSecrets" + required: + - integration_type + - domain + - secrets + type: object + SecurityMonitoringPaginatedSuppressionsResponse: + description: Response object containing the available suppression rules with pagination metadata. + properties: + data: + description: A list of suppressions objects. items: - description: A single service name. - type: string + $ref: "#/components/schemas/SecurityMonitoringSuppression" type: array + meta: + $ref: "#/components/schemas/SecurityMonitoringSuppressionsMeta" type: object - ServiceListDataAttributesMetadataItems: - description: An object containing metadata flags for a service, indicating whether it is traced by APM or monitored through Universal Service Monitoring. + SecurityMonitoringReferenceTable: + description: Reference tables used in the queries. properties: - isTraced: - description: Indicates whether the service is traced by APM. - type: boolean - isUsm: - description: Indicates whether the service uses Universal Service Monitoring. + checkPresence: + description: Whether to include or exclude the matched values. type: boolean - type: object - ServiceListDataType: - default: services_list - description: Services list resource type. - enum: - - services_list - example: services_list - type: string - x-enum-varnames: - - SERVICES_LIST - ServiceNowAssignmentGroupAttributes: - description: Attributes of a ServiceNow assignment group - properties: - assignment_group_name: - description: The name of the assignment group - example: "Network Team" + columnName: + description: The name of the column in the reference table. type: string - assignment_group_sys_id: - description: The system ID of the assignment group in ServiceNow - example: "abc123def456" + logFieldPath: + description: The field in the log to match against the reference table. type: string - instance_id: - description: The ID of the ServiceNow instance - example: "65b3341b-0680-47f9-a6d4-134db45c603e" - format: uuid + ruleQueryName: + description: The name of the query to apply the reference table to. + type: string + tableName: + description: The name of the reference table. type: string - required: - - instance_id - - assignment_group_name - - assignment_group_sys_id type: object - ServiceNowAssignmentGroupData: - description: Data object for a ServiceNow assignment group + SecurityMonitoringRuleAnomalyDetectionOptions: + additionalProperties: {} + description: Options on anomaly detection method. properties: - attributes: - $ref: "#/components/schemas/ServiceNowAssignmentGroupAttributes" - id: - description: Unique identifier for the ServiceNow assignment group - example: "65b3341b-0680-47f9-a6d4-134db45c603e" - format: uuid - type: string - type: - $ref: "#/components/schemas/ServiceNowAssignmentGroupType" - required: - - id - - type - - attributes + bucketDuration: + $ref: "#/components/schemas/SecurityMonitoringRuleAnomalyDetectionOptionsBucketDuration" + detectionTolerance: + $ref: "#/components/schemas/SecurityMonitoringRuleAnomalyDetectionOptionsDetectionTolerance" + instantaneousBaseline: + $ref: "#/components/schemas/SecurityMonitoringRuleInstantaneousBaseline" + learningDuration: + $ref: "#/components/schemas/SecurityMonitoringRuleAnomalyDetectionOptionsLearningDuration" + learningPeriodBaseline: + description: An optional override baseline to apply while the rule is in the learning period. Must be greater than or equal to 0. + format: int64 + minimum: 0 + type: integer type: object - ServiceNowAssignmentGroupType: - description: Type identifier for ServiceNow assignment group resources + SecurityMonitoringRuleAnomalyDetectionOptionsBucketDuration: + description: "Duration in seconds of the time buckets used to aggregate events matched by the rule.\nMust be greater than or equal to 300." enum: - - assignment_groups - example: assignment_groups - type: string + - 300 + - 600 + - 900 + - 1800 + - 3600 + - 10800 + example: 300 + format: int32 + type: integer x-enum-varnames: - - ASSIGNMENT_GROUPS - ServiceNowAssignmentGroupsData: - description: Array of ServiceNow assignment group data objects - items: - $ref: "#/components/schemas/ServiceNowAssignmentGroupData" - type: array - ServiceNowAssignmentGroupsResponse: - description: Response containing ServiceNow assignment groups - properties: - data: - $ref: "#/components/schemas/ServiceNowAssignmentGroupsData" - example: - - attributes: - group_name: "IT Operations" - group_sys_id: "abc123def456" - instance_id: "65b3341b-0680-47f9-a6d4-134db45c603e" - id: "65b3341b-0680-47f9-a6d4-134db45c603e" - type: assignment_groups - required: - - data - type: object - ServiceNowBasicAuth: - description: The definition of the `ServiceNowBasicAuth` object. - properties: - instance: - description: The `ServiceNowBasicAuth` `instance`. - example: "" - type: string - password: - description: The `ServiceNowBasicAuth` `password`. - example: "" - type: string - type: - $ref: "#/components/schemas/ServiceNowBasicAuthType" - username: - description: The `ServiceNowBasicAuth` `username`. - example: "" - type: string - required: - - type - - instance - - username - - password - type: object - ServiceNowBasicAuthType: - description: The definition of the `ServiceNowBasicAuth` object. + - FIVE_MINUTES + - TEN_MINUTES + - FIFTEEN_MINUTES + - THIRTY_MINUTES + - ONE_HOUR + - THREE_HOURS + SecurityMonitoringRuleAnomalyDetectionOptionsDetectionTolerance: + description: "An optional parameter that sets how permissive anomaly detection is.\nHigher values require higher deviations before triggering a signal." enum: - - ServiceNowBasicAuth - example: ServiceNowBasicAuth - type: string + - 1 + - 2 + - 3 + - 4 + - 5 + example: 5 + format: int32 + type: integer x-enum-varnames: - - SERVICENOWBASICAUTH - ServiceNowBasicAuthUpdate: - description: The definition of the `ServiceNowBasicAuth` object. - properties: - instance: - description: The `ServiceNowBasicAuthUpdate` `instance`. - type: string - password: - description: The `ServiceNowBasicAuthUpdate` `password`. - type: string - type: - $ref: "#/components/schemas/ServiceNowBasicAuthType" - username: - description: The `ServiceNowBasicAuthUpdate` `username`. - type: string - required: - - type - type: object - ServiceNowBusinessServiceAttributes: - description: Attributes of a ServiceNow business service - properties: - instance_id: - description: The ID of the ServiceNow instance - example: "65b3341b-0680-47f9-a6d4-134db45c603e" - format: uuid - type: string - service_name: - description: The name of the business service - example: "IT Support" - type: string - service_sys_id: - description: The system ID of the business service in ServiceNow - example: "abc123def456" - type: string - required: - - instance_id - - service_name - - service_sys_id - type: object - ServiceNowBusinessServiceData: - description: Data object for a ServiceNow business service - properties: - attributes: - $ref: "#/components/schemas/ServiceNowBusinessServiceAttributes" - id: - description: Unique identifier for the ServiceNow business service - example: "65b3341b-0680-47f9-a6d4-134db45c603e" - format: uuid - type: string - type: - $ref: "#/components/schemas/ServiceNowBusinessServiceType" - required: - - id - - type - - attributes - type: object - ServiceNowBusinessServiceType: - description: Type identifier for ServiceNow business service resources + - ONE + - TWO + - THREE + - FOUR + - FIVE + SecurityMonitoringRuleAnomalyDetectionOptionsLearningDuration: + description: Learning duration in hours. Anomaly detection waits for at least this amount of historical data before it starts evaluating. enum: - - business_services - example: business_services - type: string + - 1 + - 6 + - 12 + - 24 + - 48 + - 168 + - 336 + format: int32 + type: integer x-enum-varnames: - - BUSINESS_SERVICES - ServiceNowBusinessServicesData: - description: Array of ServiceNow business service data objects - items: - $ref: "#/components/schemas/ServiceNowBusinessServiceData" - type: array - ServiceNowBusinessServicesResponse: - description: Response containing ServiceNow business services + - ONE_HOUR + - SIX_HOURS + - TWELVE_HOURS + - ONE_DAY + - TWO_DAYS + - ONE_WEEK + - TWO_WEEKS + SecurityMonitoringRuleBulkDeleteAttributes: + description: Attributes for bulk deleting security monitoring rules. properties: - data: - $ref: "#/components/schemas/ServiceNowBusinessServicesData" + ruleIds: + description: List of rule IDs to delete. example: - - attributes: - instance_id: "65b3341b-0680-47f9-a6d4-134db45c603e" - service_name: "IT Support" - service_sys_id: "abc123def456" - id: "65b3341b-0680-47f9-a6d4-134db45c603e" - type: business_services - required: - - data - type: object - ServiceNowCredentials: - description: The definition of the `ServiceNowCredentials` object. - oneOf: - - $ref: "#/components/schemas/ServiceNowBasicAuth" - ServiceNowCredentialsUpdate: - description: The definition of the `ServiceNowCredentialsUpdate` object. - oneOf: - - $ref: "#/components/schemas/ServiceNowBasicAuthUpdate" - ServiceNowInstanceAttributes: - description: Attributes of a ServiceNow instance - properties: - instance_name: - description: The name of the ServiceNow instance - example: "my-servicenow-instance" - type: string + - abc-000-u7q + - abc-000-7dd + items: + description: A rule ID to delete. + type: string + minItems: 1 + type: array required: - - instance_name + - ruleIds type: object - ServiceNowInstanceData: - description: Data object for a ServiceNow instance + SecurityMonitoringRuleBulkDeleteData: + description: Data for bulk deleting security monitoring rules. properties: attributes: - $ref: "#/components/schemas/ServiceNowInstanceAttributes" + $ref: "#/components/schemas/SecurityMonitoringRuleBulkDeleteAttributes" id: - description: Unique identifier for the ServiceNow instance - example: "65b3341b-0680-47f9-a6d4-134db45c603e" - format: uuid + description: Request ID. This value is echoed back as the response's resource ID. + example: bulk_delete type: string type: - $ref: "#/components/schemas/ServiceNowInstanceType" + $ref: "#/components/schemas/SecurityMonitoringRuleBulkDeleteRequestDataType" required: - - id - - type - attributes + - type type: object - ServiceNowInstanceType: - description: Type identifier for ServiceNow instance resources - enum: - - instance - example: instance - type: string - x-enum-varnames: - - INSTANCE - ServiceNowInstancesData: - description: Array of ServiceNow instance data objects - items: - $ref: "#/components/schemas/ServiceNowInstanceData" - type: array - ServiceNowInstancesResponse: - description: Response containing ServiceNow instances + SecurityMonitoringRuleBulkDeletePayload: + description: Payload for bulk deleting security monitoring rules. properties: data: - $ref: "#/components/schemas/ServiceNowInstancesData" - example: - - attributes: - instance_name: "my-servicenow-instance" - id: "65b3341b-0680-47f9-a6d4-134db45c603e" - type: instance + $ref: "#/components/schemas/SecurityMonitoringRuleBulkDeleteData" required: - data type: object - ServiceNowIntegration: - description: The definition of the `ServiceNowIntegration` object. - properties: - credentials: - $ref: "#/components/schemas/ServiceNowCredentials" - type: - $ref: "#/components/schemas/ServiceNowIntegrationType" - required: - - type - - credentials - type: object - ServiceNowIntegrationType: - description: The definition of the `ServiceNowIntegrationType` object. + SecurityMonitoringRuleBulkDeleteRequestDataType: + description: The resource type for a bulk delete request. enum: - - ServiceNow - example: ServiceNow + - bulk_delete_rules + example: bulk_delete_rules type: string x-enum-varnames: - - SERVICENOW - ServiceNowIntegrationUpdate: - description: The definition of the `ServiceNowIntegrationUpdate` object. - properties: - credentials: - $ref: "#/components/schemas/ServiceNowCredentialsUpdate" - type: - $ref: "#/components/schemas/ServiceNowIntegrationType" - required: - - type - type: object - ServiceNowTemplateAttributes: - description: Attributes of a ServiceNow template - properties: - assignment_group_id: - description: The ID of the assignment group - example: "65b3341b-0680-47f9-a6d4-134db45c603e" - format: uuid - type: string - business_service_id: - description: The ID of the business service - example: "65b3341b-0680-47f9-a6d4-134db45c603e" - format: uuid - type: string - fields_mapping: - additionalProperties: - type: string - description: Custom field mappings for the template - example: - category: "software" - priority: "1" - type: object - handle_name: - description: The handle name of the template - example: "incident-template" - type: string - instance_id: - description: The ID of the ServiceNow instance - example: "65b3341b-0680-47f9-a6d4-134db45c603e" - format: uuid - type: string - servicenow_tablename: - description: The name of the destination ServiceNow table - example: "incident" - type: string - user_id: - description: The ID of the user - example: "65b3341b-0680-47f9-a6d4-134db45c603e" - format: uuid - type: string - required: - - instance_id - - handle_name - - servicenow_tablename - type: object - ServiceNowTemplateCreateRequest: - description: Request to create a ServiceNow template + - BULK_DELETE_RULES + SecurityMonitoringRuleBulkDeleteResponse: + description: Response for bulk deleting security monitoring rules. properties: data: - $ref: "#/components/schemas/ServiceNowTemplateCreateRequestData" - required: - - data + $ref: "#/components/schemas/SecurityMonitoringRuleBulkDeleteResponseData" type: object - ServiceNowTemplateCreateRequestAttributes: - description: Attributes for creating a ServiceNow template + SecurityMonitoringRuleBulkDeleteResponseAttributes: + description: Attributes for the bulk delete response. properties: - assignment_group_id: - description: The ID of the assignment group - example: "65b3341b-0680-47f9-a6d4-134db45c603e" - format: uuid - type: string - business_service_id: - description: The ID of the business service - example: "65b3341b-0680-47f9-a6d4-134db45c603e" - format: uuid - type: string - fields_mapping: - additionalProperties: + deletedRules: + description: List of successfully deleted rule IDs. + items: type: string - description: Custom field mappings for the template - example: - category: "software" - priority: "1" - type: object - handle_name: - description: The handle name of the template - example: "incident-template" - type: string - instance_id: - description: The ID of the ServiceNow instance - example: "65b3341b-0680-47f9-a6d4-134db45c603e" - format: uuid - type: string - servicenow_tablename: - description: The name of the destination ServiceNow table - example: "incident" - type: string - user_id: - description: The ID of the user - example: "65b3341b-0680-47f9-a6d4-134db45c603e" - format: uuid - type: string - required: - - instance_id - - handle_name - - servicenow_tablename - type: object - ServiceNowTemplateCreateRequestData: - description: Data object for creating a ServiceNow template - properties: - attributes: - $ref: "#/components/schemas/ServiceNowTemplateCreateRequestAttributes" - type: - $ref: "#/components/schemas/ServiceNowTemplateType" - required: - - type - - attributes + type: array + failedRules: + description: List of rule IDs that could not be deleted. + items: + type: string + type: array type: object - ServiceNowTemplateData: - description: Data object for a ServiceNow template + SecurityMonitoringRuleBulkDeleteResponseData: + description: Data for the bulk delete response. properties: attributes: - $ref: "#/components/schemas/ServiceNowTemplateAttributes" + $ref: "#/components/schemas/SecurityMonitoringRuleBulkDeleteResponseAttributes" id: - description: Unique identifier for the ServiceNow template - example: "65b3341b-0680-47f9-a6d4-134db45c603e" - format: uuid + description: The identifier of the bulk delete response. type: string type: - $ref: "#/components/schemas/ServiceNowTemplateType" - required: - - id - - type - - attributes - type: object - ServiceNowTemplateResponse: - description: Response containing a single ServiceNow template - properties: - data: - $ref: "#/components/schemas/ServiceNowTemplateData" - required: - - data + $ref: "#/components/schemas/SecurityMonitoringRuleBulkDeleteResponseDataType" type: object - ServiceNowTemplateType: - description: Type identifier for ServiceNow template resources + SecurityMonitoringRuleBulkDeleteResponseDataType: + description: The resource type for a bulk delete response. enum: - - servicenow_templates - example: servicenow_templates + - bulk_delete_response + example: bulk_delete_response type: string x-enum-varnames: - - SERVICENOW_TEMPLATES - ServiceNowTemplateUpdateRequest: - description: Request to update a ServiceNow template - properties: - data: - $ref: "#/components/schemas/ServiceNowTemplateUpdateRequestData" - required: - - data - type: object - ServiceNowTemplateUpdateRequestAttributes: - description: Attributes for updating a ServiceNow template + - BULK_DELETE_RESPONSE + SecurityMonitoringRuleBulkExportAttributes: + description: Attributes for bulk exporting security monitoring rules. properties: - assignment_group_id: - description: The ID of the assignment group - example: "65b3341b-0680-47f9-a6d4-134db45c603e" - format: uuid - type: string - business_service_id: - description: The ID of the business service - example: "65b3341b-0680-47f9-a6d4-134db45c603e" - format: uuid - type: string - fields_mapping: - additionalProperties: - type: string - description: Custom field mappings for the template + ruleIds: + description: "List of rule IDs to export. Each rule will be included in the resulting ZIP file\nas a separate JSON file." example: - category: "hardware" - priority: "2" - type: object - handle_name: - description: The handle name of the template - example: "incident-template-updated" - type: string - instance_id: - description: The ID of the ServiceNow instance - example: "65b3341b-0680-47f9-a6d4-134db45c603e" - format: uuid - type: string - servicenow_tablename: - description: The name of the destination ServiceNow table - example: "incident" - type: string - user_id: - description: The ID of the user - example: "65b3341b-0680-47f9-a6d4-134db45c603e" - format: uuid - type: string + - def-000-u7q + - def-000-7dd + items: + description: A rule ID to include in the bulk export. + type: string + minItems: 1 + type: array required: - - instance_id - - handle_name - - servicenow_tablename + - ruleIds type: object - ServiceNowTemplateUpdateRequestData: - description: Data object for updating a ServiceNow template + SecurityMonitoringRuleBulkExportData: + description: Data for bulk exporting security monitoring rules. properties: attributes: - $ref: "#/components/schemas/ServiceNowTemplateUpdateRequestAttributes" + $ref: "#/components/schemas/SecurityMonitoringRuleBulkExportAttributes" + id: + description: Request ID. + example: bulk_export + type: string type: - $ref: "#/components/schemas/ServiceNowTemplateType" + $ref: "#/components/schemas/SecurityMonitoringRuleBulkExportDataType" required: - - type - attributes + - type type: object - ServiceNowTemplatesData: - description: Array of ServiceNow template data objects - items: - $ref: "#/components/schemas/ServiceNowTemplateData" - type: array - ServiceNowTemplatesResponse: - description: Response containing ServiceNow templates + SecurityMonitoringRuleBulkExportDataType: + description: The type of the resource. + enum: + - security_monitoring_rules_bulk_export + example: security_monitoring_rules_bulk_export + type: string + x-enum-varnames: + - SECURITY_MONITORING_RULES_BULK_EXPORT + SecurityMonitoringRuleBulkExportPayload: + description: Payload for bulk exporting security monitoring rules. properties: data: - $ref: "#/components/schemas/ServiceNowTemplatesData" - example: - - attributes: - handle_name: "incident-template" - instance_id: "65b3341b-0680-47f9-a6d4-134db45c603e" - servicenow_tablename: "incident" - id: "65b3341b-0680-47f9-a6d4-134db45c603e" - type: servicenow_templates + $ref: "#/components/schemas/SecurityMonitoringRuleBulkExportData" required: - data type: object - ServiceNowTicket: - description: ServiceNow ticket attached to case - nullable: true - properties: - result: - $ref: "#/components/schemas/ServiceNowTicketResult" - status: - $ref: "#/components/schemas/Case3rdPartyTicketStatus" - readOnly: true - type: object - ServiceNowTicketCreateAttributes: - description: ServiceNow ticket creation attributes + SecurityMonitoringRuleCase: + description: Case when signal is generated. properties: - assignment_group: - description: ServiceNow assignment group - example: "IT Support" + actions: + description: Action to perform for each rule case. + items: + $ref: "#/components/schemas/SecurityMonitoringRuleCaseAction" + type: array + condition: + description: "A rule case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries." type: string - instance_name: - description: ServiceNow instance name - example: "my-instance" + customStatus: + $ref: "#/components/schemas/SecurityMonitoringRuleSeverity" + name: + description: Name of the case. type: string - required: - - instance_name + notifications: + description: Notification targets for each rule case. + items: + description: Notification. + type: string + type: array + status: + $ref: "#/components/schemas/SecurityMonitoringRuleSeverity" type: object - ServiceNowTicketCreateData: - description: ServiceNow ticket creation data + SecurityMonitoringRuleCaseAction: + description: Action to perform when a signal is triggered. Only available for Application Security rule type. properties: - attributes: - $ref: "#/components/schemas/ServiceNowTicketCreateAttributes" + options: + $ref: "#/components/schemas/SecurityMonitoringRuleCaseActionOptions" type: - $ref: "#/components/schemas/ServiceNowTicketResourceType" - required: - - type - - attributes - type: object - ServiceNowTicketCreateRequest: - description: ServiceNow ticket creation request - properties: - data: - $ref: "#/components/schemas/ServiceNowTicketCreateData" - required: - - data + $ref: "#/components/schemas/SecurityMonitoringRuleCaseActionType" type: object - ServiceNowTicketResourceType: - description: ServiceNow ticket resource type - enum: - - tickets - example: tickets - type: string - x-enum-varnames: - - TICKETS - ServiceNowTicketResult: - description: ServiceNow ticket information + SecurityMonitoringRuleCaseActionOptions: + additionalProperties: {} + description: Options for the rule action properties: - sys_target_link: - description: Link to the Incident created on ServiceNow - type: string + duration: + description: Duration of the action in seconds. 0 indicates no expiration. + example: 0 + format: int64 + minimum: 0 + type: integer + flaggedIPType: + $ref: "#/components/schemas/SecurityMonitoringRuleCaseActionOptionsFlaggedIPType" + userBehaviorName: + $ref: "#/components/schemas/SecurityMonitoringRuleCaseActionOptionsUserBehaviorName" type: object - ServiceNowTicketsDataType: - default: servicenow_tickets - description: ServiceNow tickets resource type. + SecurityMonitoringRuleCaseActionOptionsFlaggedIPType: + description: Used with the case action of type 'flag_ip'. The value specified in this field is applied as a flag to the IP addresses. enum: - - servicenow_tickets - example: servicenow_tickets + - SUSPICIOUS + - FLAGGED + example: FLAGGED type: string x-enum-varnames: - - SERVICENOW_TICKETS - ServiceNowUserAttributes: - description: Attributes of a ServiceNow user - properties: - email: - description: The email address of the user - example: "john.doe@example.com" - type: string - full_name: - description: The full name of the user - example: "John Doe" - type: string - instance_id: - description: The ID of the ServiceNow instance - example: "65b3341b-0680-47f9-a6d4-134db45c603e" - format: uuid - type: string - user_name: - description: The username of the ServiceNow user - example: "john.doe" - type: string - user_sys_id: - description: The system ID of the user in ServiceNow - example: "abc123def456" - type: string - required: - - instance_id - - user_name - - user_sys_id - - email - type: object - ServiceNowUserData: - description: Data object for a ServiceNow user - properties: - attributes: - $ref: "#/components/schemas/ServiceNowUserAttributes" - id: - description: Unique identifier for the ServiceNow user - example: "65b3341b-0680-47f9-a6d4-134db45c603e" - format: uuid - type: string - type: - $ref: "#/components/schemas/ServiceNowUserType" - required: - - id - - type - - attributes - type: object - ServiceNowUserType: - description: Type identifier for ServiceNow user resources - enum: - - users - example: users + - SUSPICIOUS + - FLAGGED + SecurityMonitoringRuleCaseActionOptionsUserBehaviorName: + description: Used with the case action of type 'user_behavior'. The value specified in this field is applied as a risk tag to all users affected by the rule. type: string - x-enum-varnames: - - USERS - ServiceNowUsersData: - description: Array of ServiceNow user data objects - items: - $ref: "#/components/schemas/ServiceNowUserData" - type: array - ServiceNowUsersResponse: - description: Response containing ServiceNow users - properties: - data: - $ref: "#/components/schemas/ServiceNowUsersData" - example: - - attributes: - email: "john.doe@example.com" - instance_id: "65b3341b-0680-47f9-a6d4-134db45c603e" - user_name: "john.doe" - user_sys_id: "abc123def456" - id: "65b3341b-0680-47f9-a6d4-134db45c603e" - type: users - required: - - data - type: object - ServiceRepositoryInfoDataType: - description: The resource type for service repository info objects. + SecurityMonitoringRuleCaseActionType: + description: The action type. enum: - - service_repository_info - example: service_repository_info + - block_ip + - block_user + - user_behavior + - flag_ip type: string x-enum-varnames: - - SERVICE_REPOSITORY_INFO - ServiceRepositoryInfoRequest: - description: Request body for retrieving service repository information. - properties: - data: - $ref: "#/components/schemas/ServiceRepositoryInfoRequestData" - required: - - data - type: object - ServiceRepositoryInfoRequestAttributes: - description: Attributes for the service repository info request. + - BLOCK_IP + - BLOCK_USER + - USER_BEHAVIOR + - FLAG_IP + SecurityMonitoringRuleCaseCreate: + description: Case when signal is generated. properties: - service: - description: The name of the service. - example: my-web-service + actions: + description: Action to perform for each rule case. + items: + $ref: "#/components/schemas/SecurityMonitoringRuleCaseAction" + type: array + condition: + description: "A case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries." type: string - version: - description: The version of the service. - example: 1.0.0 + name: + description: Name of the case. type: string + notifications: + description: Notification targets. + items: + description: Notification. + type: string + type: array + status: + $ref: "#/components/schemas/SecurityMonitoringRuleSeverity" required: - - service - - version - type: object - ServiceRepositoryInfoRequestData: - description: Data object for the service repository info request. - properties: - attributes: - $ref: "#/components/schemas/ServiceRepositoryInfoRequestAttributes" - type: - $ref: "#/components/schemas/ServiceRepositoryInfoDataType" - required: - - type - - attributes - type: object - ServiceRepositoryInfoResponse: - description: Response containing service repository information. - properties: - data: - $ref: "#/components/schemas/ServiceRepositoryInfoResponseData" - required: - - data + - status type: object - ServiceRepositoryInfoResponseAttributes: - description: Attributes of the service repository information. + SecurityMonitoringRuleConvertBulkAttributes: + description: Attributes for bulk converting security monitoring rules to Terraform. properties: - commit_sha: - description: The SHA of the commit associated with the service version. - example: abc123def456789 - type: string - repository_url: - description: The URL of the source code repository. - example: https://github.com/my-org/my-repo - type: string - status: - $ref: "#/components/schemas/ServiceRepositoryInfoStatus" + ruleIds: + description: "List of rule IDs to convert. Each rule will be included in the resulting ZIP file\nas a separate Terraform file." + example: + - def-000-u7q + - def-000-7dd + items: + description: A rule ID to include in the bulk convert. + type: string + minItems: 1 + type: array required: - - status + - ruleIds type: object - ServiceRepositoryInfoResponseData: - description: Data object for the service repository info response. + SecurityMonitoringRuleConvertBulkData: + description: Data for bulk converting security monitoring rules to Terraform. properties: attributes: - $ref: "#/components/schemas/ServiceRepositoryInfoResponseAttributes" + $ref: "#/components/schemas/SecurityMonitoringRuleConvertBulkAttributes" id: - description: The identifier composed of the service name and version. - example: my-web-service:1.0.0 + description: Request ID. + example: convert_bulk type: string type: - $ref: "#/components/schemas/ServiceRepositoryInfoDataType" + $ref: "#/components/schemas/SecurityMonitoringRuleConvertBulkDataType" required: - - id - - type - attributes + - type type: object - ServiceRepositoryInfoStatus: - description: The status of the service repository info lookup. + SecurityMonitoringRuleConvertBulkDataType: + description: The type of the resource. enum: - - success - - not_found - - no_repository - - internal_error - - unknown - example: success + - security_monitoring_rules_convert_bulk + example: security_monitoring_rules_convert_bulk type: string x-enum-varnames: - - SUCCESS - - NOT_FOUND - - NO_REPOSITORY - - INTERNAL_ERROR - - UNKNOWN - SessionIdArray: - description: A collection of session identifiers used for bulk add or remove operations on a playlist. + - SECURITY_MONITORING_RULES_CONVERT_BULK + SecurityMonitoringRuleConvertBulkPayload: + description: Payload for bulk converting security monitoring rules to Terraform. properties: data: - description: Array of session identifier data objects. - items: - $ref: "#/components/schemas/SessionIdData" - type: array + $ref: "#/components/schemas/SecurityMonitoringRuleConvertBulkData" required: - data type: object - SessionIdData: - description: A session identifier data object used for bulk playlist operations. + SecurityMonitoringRuleConvertPayload: + description: Convert a rule from JSON to Terraform. + oneOf: + - $ref: "#/components/schemas/SecurityMonitoringStandardRulePayload" + - $ref: "#/components/schemas/SecurityMonitoringSignalRulePayload" + SecurityMonitoringRuleConvertResponse: + description: Result of the convert rule request containing Terraform content. properties: - id: - description: Unique identifier of the RUM replay session. - example: 00000000-0000-0000-0000-000000000001 + ruleId: + description: the ID of the rule. + type: string + terraformContent: + description: Terraform string as a result of converting the rule from JSON. type: string - type: - $ref: "#/components/schemas/ViewershipHistorySessionDataType" - required: - - type type: object - SeverityModifierRuleAction: - description: |- - The action to take when a severity modifier rule matches a finding. This is a discriminated union on `type`: `set` assigns a fixed severity, while `shift` moves the severity up or down by one rank. - - A severity modifier rule's `rule.query` must not filter on `@severity` or on the `@severity_details.user_adjusted.*` namespace. - - Use `@severity_details.adjusted.value` instead, which reflects the severity before user-defined adjustments. + SecurityMonitoringRuleCreatePayload: + description: Create a new rule. oneOf: - - $ref: "#/components/schemas/SeverityModifierRuleSetAction" - - $ref: "#/components/schemas/SeverityModifierRuleShiftAction" - SeverityModifierRuleAttributesCreate: - description: Attributes for creating or updating a severity modifier rule. + - $ref: "#/components/schemas/SecurityMonitoringStandardRuleCreatePayload" + - $ref: "#/components/schemas/SecurityMonitoringSignalRuleCreatePayload" + - $ref: "#/components/schemas/CloudConfigurationRuleCreatePayload" + SecurityMonitoringRuleDecreaseCriticalityBasedOnEnv: + description: "If true, signals in non-production environments have a lower severity than what is defined by the rule case, which can reduce signal noise.\nThe severity is decreased by one level: `CRITICAL` in production becomes `HIGH` in non-production, `HIGH` becomes `MEDIUM` and so on. `INFO` remains `INFO`.\nThe decrement is applied when the environment tag of the signal starts with `staging`, `test` or `dev`." + example: false + type: boolean + SecurityMonitoringRuleDetectionMethod: + description: The detection method. + enum: + - threshold + - new_value + - anomaly_detection + - impossible_travel + - hardcoded + - third_party + - anomaly_threshold + - sequence_detection + type: string + x-enum-varnames: + - THRESHOLD + - NEW_VALUE + - ANOMALY_DETECTION + - IMPOSSIBLE_TRAVEL + - HARDCODED + - THIRD_PARTY + - ANOMALY_THRESHOLD + - SEQUENCE_DETECTION + SecurityMonitoringRuleEvaluationWindow: + description: "A time window is specified to match when at least one of the cases matches true. This is a sliding window\nand evaluates in real time. For third party detection method, this field is not used." + enum: + - 0 + - 60 + - 300 + - 600 + - 900 + - 1800 + - 3600 + - 7200 + - 10800 + - 21600 + - 43200 + - 86400 + format: int32 + type: integer + x-enum-varnames: + - ZERO_MINUTES + - ONE_MINUTE + - FIVE_MINUTES + - TEN_MINUTES + - FIFTEEN_MINUTES + - THIRTY_MINUTES + - ONE_HOUR + - TWO_HOURS + - THREE_HOURS + - SIX_HOURS + - TWELVE_HOURS + - ONE_DAY + SecurityMonitoringRuleHardcodedEvaluatorType: + description: Hardcoded evaluator type. + enum: + - log4shell + type: string + x-enum-varnames: + - LOG4SHELL + SecurityMonitoringRuleImpossibleTravelOptions: + description: Options on impossible travel detection method. properties: - action: - $ref: "#/components/schemas/SeverityModifierRuleAction" - enabled: - description: Whether the severity modifier rule is enabled. - example: true - type: boolean - name: - description: The name of the severity modifier rule. - example: "Downgrade misconfigurations in dev" - maxLength: 255 - minLength: 1 - type: string - rule: - $ref: "#/components/schemas/AutomationRuleScope" - required: - - name - - rule - - action + baselineUserLocations: + $ref: "#/components/schemas/SecurityMonitoringRuleImpossibleTravelOptionsBaselineUserLocations" + baselineUserLocationsDuration: + $ref: "#/components/schemas/SecurityMonitoringRuleImpossibleTravelOptionsBaselineUserLocationsDuration" type: object - SeverityModifierRuleAttributesResponse: - description: Attributes of a severity modifier rule as returned by the API. - properties: - action: - $ref: "#/components/schemas/SeverityModifierRuleAction" - created_at: - description: The Unix timestamp in milliseconds when the rule was created. - example: 1722439510282 - format: int64 - type: integer - created_by: - $ref: "#/components/schemas/AutomationRuleCreatedBy" - enabled: - description: Whether the severity modifier rule is enabled. - example: true - type: boolean - modified_at: - description: The Unix timestamp in milliseconds when the rule was last modified. - example: 1722439510282 - format: int64 - type: integer - modified_by: - $ref: "#/components/schemas/AutomationRuleModifiedBy" - name: - description: The name of the severity modifier rule. - example: "Downgrade misconfigurations in dev" - maxLength: 255 - minLength: 1 - type: string - rule: - $ref: "#/components/schemas/AutomationRuleScope" - required: - - name - - enabled - - rule - - action - - created_at - - created_by - - modified_at - - modified_by - type: object - SeverityModifierRuleCreateRequest: - description: The body of a severity modifier rule create request. + SecurityMonitoringRuleImpossibleTravelOptionsBaselineUserLocations: + description: "If true, signals are suppressed for the first 24 hours. In that time, Datadog learns the user's regular\naccess locations. This can be helpful to reduce noise and infer VPN usage or credentialed API access." + example: true + type: boolean + SecurityMonitoringRuleImpossibleTravelOptionsBaselineUserLocationsDuration: + description: The duration in days during which Datadog learns the user's regular access locations. After this period, signals are generated for accesses from unknown locations. + format: int32 + maximum: 30 + minimum: 1 + nullable: true + type: integer + SecurityMonitoringRuleInstantaneousBaseline: + description: When set to true, Datadog uses previous values that fall within the defined learning window to construct the baseline, enabling the system to establish an accurate baseline more rapidly rather than relying solely on gradual learning over time. + example: false + type: boolean + SecurityMonitoringRuleKeepAlive: + description: 'Once a signal is generated, the signal will remain "open" if a case is matched at least once within + + this keep alive window. For third party detection method, this field is not used.' + enum: + - 0 + - 60 + - 300 + - 600 + - 900 + - 1800 + - 3600 + - 7200 + - 10800 + - 21600 + - 43200 + - 86400 + format: int32 + type: integer + x-enum-varnames: + - ZERO_MINUTES + - ONE_MINUTE + - FIVE_MINUTES + - TEN_MINUTES + - FIFTEEN_MINUTES + - THIRTY_MINUTES + - ONE_HOUR + - TWO_HOURS + - THREE_HOURS + - SIX_HOURS + - TWELVE_HOURS + - ONE_DAY + SecurityMonitoringRuleMaxSignalDuration: + description: 'A signal will "close" regardless of the query being matched once the time exceeds the maximum duration. + + This time is calculated from the first seen timestamp.' + enum: + - 0 + - 60 + - 300 + - 600 + - 900 + - 1800 + - 3600 + - 7200 + - 10800 + - 21600 + - 43200 + - 86400 + format: int32 + type: integer + x-enum-varnames: + - ZERO_MINUTES + - ONE_MINUTE + - FIVE_MINUTES + - TEN_MINUTES + - FIFTEEN_MINUTES + - THIRTY_MINUTES + - ONE_HOUR + - TWO_HOURS + - THREE_HOURS + - SIX_HOURS + - TWELVE_HOURS + - ONE_DAY + SecurityMonitoringRuleNewValueOptions: + description: Options on new value detection method. properties: - data: - $ref: "#/components/schemas/SeverityModifierRuleDataCreate" - required: - - data + forgetAfter: + $ref: "#/components/schemas/SecurityMonitoringRuleNewValueOptionsForgetAfter" + instantaneousBaseline: + $ref: "#/components/schemas/SecurityMonitoringRuleInstantaneousBaseline" + learningDuration: + $ref: "#/components/schemas/SecurityMonitoringRuleNewValueOptionsLearningDuration" + learningMethod: + $ref: "#/components/schemas/SecurityMonitoringRuleNewValueOptionsLearningMethod" + learningThreshold: + $ref: "#/components/schemas/SecurityMonitoringRuleNewValueOptionsLearningThreshold" type: object - SeverityModifierRuleDataCreate: - description: The data object for a severity modifier rule create request. + SecurityMonitoringRuleNewValueOptionsForgetAfter: + description: The duration in days after which a learned value is forgotten. + format: int32 + maximum: 30 + minimum: 1 + type: integer + SecurityMonitoringRuleNewValueOptionsLearningDuration: + default: 0 + description: "The duration in days during which values are learned, and after which signals will be generated for values that\nweren't learned. If set to 0, a signal will be generated for all new values after the first value is learned." + format: int32 + maximum: 30 + minimum: 0 + type: integer + SecurityMonitoringRuleNewValueOptionsLearningMethod: + default: duration + description: The learning method used to determine when signals should be generated for values that weren't learned. + enum: + - duration + - threshold + type: string + x-enum-varnames: + - DURATION + - THRESHOLD + SecurityMonitoringRuleNewValueOptionsLearningThreshold: + default: 0 + description: A number of occurrences after which signals will be generated for values that weren't learned. + enum: + - 0 + - 1 + format: int32 + type: integer + x-enum-varnames: + - ZERO_OCCURRENCES + - ONE_OCCURRENCE + SecurityMonitoringRuleOptions: + description: Options. properties: - attributes: - $ref: "#/components/schemas/SeverityModifierRuleAttributesCreate" - type: - $ref: "#/components/schemas/SeverityModifierRuleType" - required: - - type - - attributes + anomalyDetectionOptions: + $ref: "#/components/schemas/SecurityMonitoringRuleAnomalyDetectionOptions" + complianceRuleOptions: + $ref: "#/components/schemas/CloudConfigurationComplianceRuleOptions" + decreaseCriticalityBasedOnEnv: + $ref: "#/components/schemas/SecurityMonitoringRuleDecreaseCriticalityBasedOnEnv" + detectionMethod: + $ref: "#/components/schemas/SecurityMonitoringRuleDetectionMethod" + evaluationWindow: + $ref: "#/components/schemas/SecurityMonitoringRuleEvaluationWindow" + hardcodedEvaluatorType: + $ref: "#/components/schemas/SecurityMonitoringRuleHardcodedEvaluatorType" + impossibleTravelOptions: + $ref: "#/components/schemas/SecurityMonitoringRuleImpossibleTravelOptions" + keepAlive: + $ref: "#/components/schemas/SecurityMonitoringRuleKeepAlive" + maxSignalDuration: + $ref: "#/components/schemas/SecurityMonitoringRuleMaxSignalDuration" + newValueOptions: + $ref: "#/components/schemas/SecurityMonitoringRuleNewValueOptions" + sequenceDetectionOptions: + $ref: "#/components/schemas/SecurityMonitoringRuleSequenceDetectionOptions" + thirdPartyRuleOptions: + $ref: "#/components/schemas/SecurityMonitoringRuleThirdPartyOptions" type: object - SeverityModifierRuleDataResponse: - description: The data object for a severity modifier rule as returned by the API. + SecurityMonitoringRuleQuery: + description: Query for matching rule. + oneOf: + - $ref: "#/components/schemas/SecurityMonitoringStandardRuleQuery" + - $ref: "#/components/schemas/SecurityMonitoringSignalRuleQuery" + SecurityMonitoringRuleQueryAggregation: + description: The aggregation type. + enum: + - count + - cardinality + - sum + - max + - new_value + - geo_data + - event_count + - none + type: string + x-enum-varnames: + - COUNT + - CARDINALITY + - SUM + - MAX + - NEW_VALUE + - GEO_DATA + - EVENT_COUNT + - NONE + SecurityMonitoringRuleQueryPayload: + description: Payload to test a rule query with the expected result. properties: - attributes: - $ref: "#/components/schemas/SeverityModifierRuleAttributesResponse" - id: - description: The ID of the severity modifier rule. - example: "00000000-0000-0000-0000-000000000000" - format: uuid - type: string - type: - $ref: "#/components/schemas/SeverityModifierRuleType" - required: - - id - - type - - attributes + expectedResult: + description: Expected result of the test. + example: true + type: boolean + index: + description: Index of the query under test. + example: 0 + format: int64 + minimum: 0 + type: integer + payload: + $ref: "#/components/schemas/SecurityMonitoringRuleQueryPayloadData" type: object - SeverityModifierRuleDataUpdate: - description: The data object for a severity modifier rule update request. The `id` must match the `rule_id` path parameter. + SecurityMonitoringRuleQueryPayloadData: + additionalProperties: {} + description: Payload used to test the rule query. properties: - attributes: - $ref: "#/components/schemas/SeverityModifierRuleAttributesCreate" - id: - description: The ID of the severity modifier rule to update. - example: "00000000-0000-0000-0000-000000000000" - format: uuid + ddsource: + description: Source of the payload. + example: nginx type: string - type: - $ref: "#/components/schemas/SeverityModifierRuleType" - required: - - id - - type - - attributes - type: object - SeverityModifierRuleReorderData: - description: The ordered list of all severity modifier rules. Every rule must be included. - items: - $ref: "#/components/schemas/SeverityModifierRuleReorderItem" - type: array - SeverityModifierRuleReorderItem: - description: A reference to a severity modifier rule used for reordering. - properties: - id: - description: The ID of the severity modifier rule. - example: "00000000-0000-0000-0000-000000000000" - format: uuid + ddtags: + description: Tags associated with your data. + example: env:staging,version:5.1 + type: string + hostname: + description: The name of the originating host of the log. + example: i-012345678 + type: string + message: + description: The message of the payload. + example: 2019-11-19T14:37:58,995 INFO [process.name][20081] Hello World + type: string + service: + description: The name of the application or service generating the data. + example: payment type: string - type: - $ref: "#/components/schemas/SeverityModifierRuleType" - required: - - type - - id - type: object - SeverityModifierRuleReorderRequest: - description: The body of a severity modifier rule reorder request. - properties: - data: - $ref: "#/components/schemas/SeverityModifierRuleReorderData" - required: - - data - type: object - SeverityModifierRuleReorderResponse: - description: The response of a severity modifier rule reorder request. - properties: - data: - $ref: "#/components/schemas/SeverityModifierRuleReorderData" - required: - - data type: object - SeverityModifierRuleResponse: - description: A single severity modifier rule response. + SecurityMonitoringRuleResponse: + description: Create a new rule. + oneOf: + - $ref: "#/components/schemas/SecurityMonitoringStandardRuleResponse" + - $ref: "#/components/schemas/SecurityMonitoringSignalRuleResponse" + SecurityMonitoringRuleSequenceDetectionOptions: + description: Options on sequence detection method. properties: - data: - $ref: "#/components/schemas/SeverityModifierRuleDataResponse" - required: - - data + stepTransitions: + description: Transitions defining the allowed order of steps and their evaluation windows. + items: + $ref: "#/components/schemas/SecurityMonitoringRuleSequenceDetectionStepTransition" + type: array + steps: + description: Steps that define the conditions to be matched in sequence. + items: + $ref: "#/components/schemas/SecurityMonitoringRuleSequenceDetectionStep" + type: array type: object - SeverityModifierRuleSetAction: - description: Sets matched findings to a fixed severity. + SecurityMonitoringRuleSequenceDetectionStep: + description: Step definition for sequence detection containing the step name, condition, and evaluation window. properties: - description: - description: An optional free-form explanation for the severity change. - example: "Lower severity for dev environment noise" - maxLength: 20000 + condition: + description: Condition referencing rule queries (e.g., `a > 0`). type: string - severity: - $ref: "#/components/schemas/SeverityModifierSeverity" - type: - $ref: "#/components/schemas/SeverityModifierRuleSetActionType" - required: - - type - - severity - type: object - SeverityModifierRuleSetActionType: - description: The type of a severity modifier rule action that sets a fixed severity. - enum: - - set - example: set - type: string - x-enum-varnames: - - SET - SeverityModifierRuleShiftAction: - description: Shifts matched findings up or down by one severity rank. - properties: - description: - description: An optional free-form explanation for the severity change. - example: "Lower severity for dev environment noise" - maxLength: 20000 + evaluationWindow: + $ref: "#/components/schemas/SecurityMonitoringRuleEvaluationWindow" + name: + description: Unique name identifying the step. type: string - severity_delta: - $ref: "#/components/schemas/SeverityModifierSeverityDelta" - type: - $ref: "#/components/schemas/SeverityModifierRuleShiftActionType" - required: - - type - - severity_delta - type: object - SeverityModifierRuleShiftActionType: - description: The type of a severity modifier rule action that shifts the severity by one rank. - enum: - - shift - example: shift - type: string - x-enum-varnames: - - SHIFT - SeverityModifierRuleType: - description: The JSON:API type for severity modifier rules. - enum: - - severity_modifier_rules - example: severity_modifier_rules - type: string - x-enum-varnames: - - SEVERITY_MODIFIER_RULES - SeverityModifierRuleUpdateRequest: - description: The body of a severity modifier rule update request. - properties: - data: - $ref: "#/components/schemas/SeverityModifierRuleDataUpdate" - required: - - data type: object - SeverityModifierRulesDataList: - description: A list of severity modifier rule data objects. - items: - $ref: "#/components/schemas/SeverityModifierRuleDataResponse" - type: array - SeverityModifierRulesResponse: - description: A list of severity modifier rules with pagination metadata. + SecurityMonitoringRuleSequenceDetectionStepTransition: + description: Transition from a parent step to a child step within a sequence detection rule. properties: - data: - $ref: "#/components/schemas/SeverityModifierRulesDataList" - links: - $ref: "#/components/schemas/SecurityAutomationRulesLinks" - meta: - $ref: "#/components/schemas/SecurityAutomationRulesMeta" - required: - - data - - meta - - links + child: + description: Name of the child step. + type: string + evaluationWindow: + $ref: "#/components/schemas/SecurityMonitoringRuleEvaluationWindow" + parent: + description: Name of the parent step. + type: string type: object - SeverityModifierSeverity: - description: The severity to assign to matched findings. `info_none` is not supported for the `iac_misconfiguration`, `runtime_code_vulnerability`, `secret`, or `static_code_vulnerability` finding types. + SecurityMonitoringRuleSeverity: + description: Severity of the Security Signal. enum: - - info_none + - info - low - medium - high - critical - example: low + example: critical type: string x-enum-varnames: - - INFO_NONE + - INFO - LOW - MEDIUM - HIGH - CRITICAL - SeverityModifierSeverityDelta: - description: The direction in which to shift the severity of matched findings by one rank. + SecurityMonitoringRuleSort: + description: The sort parameters used for querying security monitoring rules. enum: - - up_one - - down_one - example: up_one + - name + - creation_date + - update_date + - enabled + - type + - highest_severity + - source + - -name + - -creation_date + - -update_date + - -enabled + - -type + - -highest_severity + - -source type: string x-enum-varnames: - - UP_ONE - - DOWN_ONE - SharedDashboardGlobalTime: - additionalProperties: {} - description: Default time range configuration for the shared dashboard. - example: - live_span: 1h - nullable: true - type: object - SharedDashboardIncluded: - description: Resource included with a shared dashboard. + - NAME + - CREATION_DATE + - UPDATE_DATE + - ENABLED + - TYPE + - HIGHEST_SEVERITY + - SOURCE + - NAME_DESCENDING + - CREATION_DATE_DESCENDING + - UPDATE_DATE_DESCENDING + - ENABLED_DESCENDING + - TYPE_DESCENDING + - HIGHEST_SEVERITY_DESCENDING + - SOURCE_DESCENDING + SecurityMonitoringRuleTestPayload: + description: Test a rule. oneOf: - - $ref: "#/components/schemas/SharedDashboardIncludedDashboard" - - $ref: "#/components/schemas/SharedDashboardIncludedUser" - SharedDashboardIncludedDashboard: - description: Included dashboard resource. + - $ref: "#/components/schemas/SecurityMonitoringStandardRuleTestPayload" + SecurityMonitoringRuleTestRequest: + description: Test the rule queries of a rule (rule property is ignored when applied to an existing rule) properties: - attributes: - $ref: "#/components/schemas/SharedDashboardIncludedDashboardAttributes" - id: - description: ID of the dashboard. - example: abc-def-ghi + rule: + $ref: "#/components/schemas/SecurityMonitoringRuleTestPayload" + ruleQueryPayloads: + description: Data payloads used to test rules query with the expected result. + items: + $ref: "#/components/schemas/SecurityMonitoringRuleQueryPayload" + type: array + type: object + SecurityMonitoringRuleTestResponse: + description: Result of the test of the rule queries. + properties: + results: + description: "Assert results are returned in the same order as the rule query payloads.\nFor each payload, it returns True if the result matched the expected result,\nFalse otherwise." + items: + description: Whether the rule query result matched the expected result. + type: boolean + type: array + type: object + SecurityMonitoringRuleThirdPartyOptions: + description: Options on third party detection method. + properties: + defaultNotifications: + description: Notification targets for the logs that do not correspond to any of the cases. + items: + description: Notification. + type: string + type: array + defaultStatus: + $ref: "#/components/schemas/SecurityMonitoringRuleSeverity" + rootQueries: + description: Queries to be combined with third party case queries. Each of them can have different group by fields, to aggregate differently based on the type of alert. + items: + $ref: "#/components/schemas/SecurityMonitoringThirdPartyRootQuery" + type: array + signalTitleTemplate: + description: A template for the signal title; if omitted, the title is generated based on the case name. type: string - type: - $ref: "#/components/schemas/SharedDashboardIncludedDashboardType" - required: - - id - - type - - attributes type: object - SharedDashboardIncludedDashboardAttributes: - description: Attributes of the included dashboard. + SecurityMonitoringRuleTypeCreate: + description: The rule type. + enum: + - api_security + - application_security + - log_detection + - workload_activity + - workload_security + type: string + x-enum-varnames: + - API_SECURITY + - APPLICATION_SECURITY + - LOG_DETECTION + - WORKLOAD_ACTIVITY + - WORKLOAD_SECURITY + SecurityMonitoringRuleTypeRead: + description: The rule type. + enum: + - log_detection + - infrastructure_configuration + - workload_security + - cloud_configuration + - application_security + - api_security + - workload_activity + type: string + x-enum-varnames: + - LOG_DETECTION + - INFRASTRUCTURE_CONFIGURATION + - WORKLOAD_SECURITY + - CLOUD_CONFIGURATION + - APPLICATION_SECURITY + - API_SECURITY + - WORKLOAD_ACTIVITY + SecurityMonitoringRuleTypeTest: + description: The rule type. + enum: + - log_detection + type: string + x-enum-varnames: + - LOG_DETECTION + SecurityMonitoringRuleUpdatePayload: + description: Update an existing rule. properties: - title: - description: Dashboard title. - example: Q1 Metrics Dashboard + calculatedFields: + description: Calculated fields. Only allowed for scheduled rules - in other words, when schedulingOptions is also defined. + items: + $ref: "#/components/schemas/CalculatedField" + type: array + cases: + description: Cases for generating signals. + items: + $ref: "#/components/schemas/SecurityMonitoringRuleCase" + type: array + complianceSignalOptions: + $ref: "#/components/schemas/CloudConfigurationRuleComplianceSignalOptions" + customMessage: + description: Custom/Overridden Message for generated signals (used in case of Default rule update). type: string - required: - - title + customName: + description: Custom/Overridden name (used in case of Default rule update). + type: string + filters: + description: Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules. + items: + $ref: "#/components/schemas/SecurityMonitoringFilter" + type: array + groupSignalsBy: + description: Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups. + example: + - service + items: + description: Field to group by. + type: string + type: array + hasExtendedTitle: + description: Whether the notifications include the triggering group-by values in their title. + example: true + type: boolean + isEnabled: + description: Whether the rule is enabled. + type: boolean + message: + description: Message for generated signals. + type: string + name: + description: Name of the rule. + type: string + options: + $ref: "#/components/schemas/SecurityMonitoringRuleOptions" + queries: + description: Queries for selecting logs which are part of the rule. + items: + $ref: "#/components/schemas/SecurityMonitoringRuleQuery" + type: array + referenceTables: + description: Reference tables for the rule. + items: + $ref: "#/components/schemas/SecurityMonitoringReferenceTable" + type: array + schedulingOptions: + $ref: "#/components/schemas/SecurityMonitoringSchedulingOptions" + tags: + description: Tags for generated signals. + items: + description: Tag. + type: string + type: array + thirdPartyCases: + description: Cases for generating signals from third-party rules. Only available for third-party rules. + example: [] + items: + $ref: "#/components/schemas/SecurityMonitoringThirdPartyRuleCase" + type: array + version: + description: The version of the rule being updated. + example: 1 + format: int32 + maximum: 2147483647 + type: integer type: object - SharedDashboardIncludedDashboardType: - default: dashboard - description: Included dashboard resource type. + SecurityMonitoringRuleValidatePayload: + description: Validate a rule. + oneOf: + - $ref: "#/components/schemas/SecurityMonitoringStandardRulePayload" + - $ref: "#/components/schemas/SecurityMonitoringSignalRulePayload" + - $ref: "#/components/schemas/CloudConfigurationRulePayload" + SecurityMonitoringSKU: + description: The Cloud SIEM pricing model (SKU) for the organization. enum: - - dashboard - example: dashboard + - per_gb_analyzed + - per_event_in_siem_index_2023 + - add_on_2024 + - standalone_indexed + - unknown + example: add_on_2024 type: string x-enum-varnames: - - DASHBOARD - SharedDashboardIncludedUser: - description: Included user resource. + - PER_GB_ANALYZED + - PER_EVENT_IN_SIEM_INDEX_2023 + - ADD_ON_2024 + - STANDALONE_INDEXED + - UNKNOWN + SecurityMonitoringSchedulingOptions: + description: Options for scheduled rules. When this field is present, the rule runs based on the schedule. When absent, it runs real-time on ingested logs. + nullable: true properties: - attributes: - $ref: "#/components/schemas/SharedDashboardIncludedUserAttributes" - id: - description: ID of the user. - example: 00000000-0000-0000-0000-000000000000 + rrule: + description: Schedule for the rule queries, written in RRULE syntax. See [RFC](https://icalendar.org/iCalendar-RFC-5545/3-8-5-3-recurrence-rule.html) for syntax reference. + example: FREQ=HOURLY;INTERVAL=1; + type: string + start: + description: Start date for the schedule, in ISO 8601 format without timezone. + example: "2025-07-14T12:00:00" + type: string + timezone: + description: Time zone of the start date, in the [tz database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) format. + example: America/New_York type: string - type: - $ref: "#/components/schemas/UserResourceType" - required: - - id - - type - - attributes type: object - SharedDashboardIncludedUserAttributes: - description: Attributes of the included user. + SecurityMonitoringSentinelOneIntegrationConfigCreateAttributes: + description: The attributes of a SentinelOne entity context sync configuration to create. properties: - handle: - description: User handle. - example: jane.doe@example.com + domain: + description: The domain associated with the external entity source. + example: acme.sentinelone.net type: string + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeSentinelOne" name: - description: User display name. - example: Jane Doe + description: The display name for the entity context sync configuration. + example: My SentinelOne Integration type: string + secrets: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSentinelOneSecrets" + settings: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" required: - - handle + - integration_type + - domain - name + - secrets type: object - SharedDashboardInvitee: - description: Invitee that can access an invite-only shared dashboard. + SecurityMonitoringSentinelOneIntegrationConfigUpdateAttributes: + description: Fields to update on a SentinelOne entity context sync configuration. properties: - access_expiration: - description: Time when the invitee's access expires. - example: "2026-01-15T09:30:00.000Z" - format: date-time - nullable: true - type: string - created_at: - description: Time when the invitee was added. - example: "2026-01-01T00:00:00.000Z" - format: date-time + domain: + description: The new domain associated with the external entity source. + example: acme.sentinelone.net type: string - email: - description: Email address of the invitee. - example: jane.doe@example.com + enabled: + description: Whether the entity context sync should be enabled. + example: true + type: boolean + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeSentinelOne" + name: + description: The new display name for the entity context sync configuration. + example: My SentinelOne Integration (renamed) type: string + secrets: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSentinelOneSecrets" + settings: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" required: - - email - - access_expiration - - created_at + - integration_type type: object - SharedDashboardRelationshipDashboard: - description: Dashboard associated with the shared dashboard. + SecurityMonitoringSentinelOneIntegrationCredentialsValidateAttributes: + description: The SentinelOne credentials to validate against the external entity source. properties: - data: - $ref: "#/components/schemas/SharedDashboardRelationshipDashboardData" + domain: + description: The domain associated with the external entity source. + example: acme.sentinelone.net + type: string + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeSentinelOne" + secrets: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSentinelOneSecrets" required: - - data + - integration_type + - domain + - secrets type: object - SharedDashboardRelationshipDashboardData: - description: Dashboard relationship data. + SecurityMonitoringSignal: + description: Object description of a security signal. properties: + attributes: + $ref: "#/components/schemas/SecurityMonitoringSignalAttributes" id: - description: ID of the dashboard. - example: abc-def-ghi + description: The unique ID of the security signal. + example: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA type: string type: - $ref: "#/components/schemas/SharedDashboardIncludedDashboardType" + $ref: "#/components/schemas/SecurityMonitoringSignalType" + type: object + SecurityMonitoringSignalArchiveComment: + description: Optional comment to display on archived signals. + type: string + SecurityMonitoringSignalArchiveReason: + description: Reason a signal is archived. + enum: + - none + - false_positive + - testing_or_maintenance + - remediated + - investigated_case_opened + - true_positive_benign + - true_positive_malicious + - other + type: string + x-enum-varnames: + - NONE + - FALSE_POSITIVE + - TESTING_OR_MAINTENANCE + - REMEDIATED + - INVESTIGATED_CASE_OPENED + - TRUE_POSITIVE_BENIGN + - TRUE_POSITIVE_MALICIOUS + - OTHER + SecurityMonitoringSignalAssigneeUpdateAttributes: + description: Attributes describing the new assignee of a security signal. + properties: + assignee: + $ref: "#/components/schemas/SecurityMonitoringTriageUser" + version: + $ref: "#/components/schemas/SecurityMonitoringSignalVersion" required: - - id - - type + - assignee type: object - SharedDashboardRelationshipSharer: - description: User who shared the dashboard. + SecurityMonitoringSignalAssigneeUpdateData: + description: Data containing the patch for changing the assignee of a signal. + properties: + attributes: + $ref: "#/components/schemas/SecurityMonitoringSignalAssigneeUpdateAttributes" + required: + - attributes + type: object + SecurityMonitoringSignalAssigneeUpdateRequest: + description: Request body for changing the assignee of a given security monitoring signal. properties: data: - $ref: "#/components/schemas/UserRelationshipData" + $ref: "#/components/schemas/SecurityMonitoringSignalAssigneeUpdateData" required: - data type: object - SharedDashboardRelationships: - description: Relationships of a shared dashboard. + SecurityMonitoringSignalAttributes: + additionalProperties: {} + description: "The object containing all signal attributes and their\nassociated values." properties: - dashboard: - $ref: "#/components/schemas/SharedDashboardRelationshipDashboard" - sharer: - $ref: "#/components/schemas/SharedDashboardRelationshipSharer" + attributes: + additionalProperties: {} + description: A JSON object of attributes in the security signal, returned when listing or searching signals. + example: + workflow: + first_seen: "2020-06-23T14:46:01.000Z" + last_seen: "2020-06-23T14:46:49.000Z" + rule: + id: 0f5-e0c-805 + name: "Brute Force Attack Grouped By User" + version: 12 + type: object + custom: + additionalProperties: {} + description: A JSON object of attributes in the security signal, returned when retrieving a single signal. + example: + workflow: + first_seen: "2020-06-23T14:46:01.000Z" + last_seen: "2020-06-23T14:46:49.000Z" + rule: + id: 0f5-e0c-805 + name: "Brute Force Attack Grouped By User" + version: 12 + type: object + message: + description: The message in the security signal defined by the rule that generated the signal. + example: Detect Account Take Over (ATO) through brute force attempts + type: string + tags: + description: An array of tags associated with the security signal. + example: + - security:attack + - technique:T1110-brute-force + items: + description: The tag associated with the security signal. + type: string + type: array + timestamp: + description: The timestamp of the security signal. + example: "2019-01-02T09:42:36.320Z" + format: date-time + type: string + type: object + SecurityMonitoringSignalIncidentIds: + description: Array of incidents that are associated with this signal. + example: + - 2066 + items: + description: Public ID attribute of the incident that is associated with the signal. + example: 2066 + format: int64 + type: integer + type: array + SecurityMonitoringSignalIncidentsUpdateAttributes: + description: Attributes describing the new list of related signals for a security signal. + properties: + incident_ids: + $ref: "#/components/schemas/SecurityMonitoringSignalIncidentIds" + version: + $ref: "#/components/schemas/SecurityMonitoringSignalVersion" required: - - dashboard - - sharer + - incident_ids type: object - SharedDashboardResponse: - description: A shared dashboard response resource. + SecurityMonitoringSignalIncidentsUpdateData: + description: Data containing the patch for changing the related incidents of a signal. properties: attributes: - $ref: "#/components/schemas/SharedDashboardResponseAttributes" - id: - description: ID of the shared dashboard. - example: "12345" - type: string - relationships: - $ref: "#/components/schemas/SharedDashboardRelationships" - type: - $ref: "#/components/schemas/SharedDashboardType" + $ref: "#/components/schemas/SecurityMonitoringSignalIncidentsUpdateAttributes" required: - - id - - type - attributes - - relationships type: object - SharedDashboardResponseAttributes: - description: Attributes of a shared dashboard response. + SecurityMonitoringSignalIncidentsUpdateRequest: + description: Request body for changing the related incidents of a given security monitoring signal. properties: - created_at: - description: Time when the shared dashboard was created. - example: "2026-01-01T00:00:00.000Z" + data: + $ref: "#/components/schemas/SecurityMonitoringSignalIncidentsUpdateData" + required: + - data + type: object + SecurityMonitoringSignalInvestigationQueryTemplateVariables: + additionalProperties: + items: + description: A value for this template variable extracted from the signal. + type: string + type: array + description: Template variables applied to the investigation log query, mapping attribute paths to values extracted from the signal. + example: + "@userIdentity.arn": + - foo + type: object + SecurityMonitoringSignalListRequest: + description: The request for a security signal list. + properties: + filter: + $ref: "#/components/schemas/SecurityMonitoringSignalListRequestFilter" + page: + $ref: "#/components/schemas/SecurityMonitoringSignalListRequestPage" + sort: + $ref: "#/components/schemas/SecurityMonitoringSignalsSort" + type: object + SecurityMonitoringSignalListRequestFilter: + description: Search filters for listing security signals. + properties: + from: + description: The minimum timestamp for requested security signals. + example: "2019-01-02T09:42:36.320Z" format: date-time type: string - embeddable_domains: - description: Domains where embed-type shared dashboards can be embedded. - example: ["https://example.com"] - items: - description: An embeddable domain. - type: string - type: array - expiration: - description: Time when the shared dashboard expires. - example: "2026-02-01T00:00:00.000Z" + query: + description: Search query for listing security signals. + example: security:attack status:high + type: string + to: + description: The maximum timestamp for requested security signals. + example: "2019-01-03T09:42:36.320Z" format: date-time - nullable: true type: string - global_time: - $ref: "#/components/schemas/SharedDashboardGlobalTime" - global_time_selectable: - description: Whether viewers can select a different global time setting. - example: false - type: boolean - invitees: - description: Invitees for invite-only shared dashboards. + type: object + SecurityMonitoringSignalListRequestPage: + description: The paging attributes for listing security signals. + properties: + cursor: + description: A list of results using the cursor provided in the previous query. + example: eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ== + type: string + limit: + default: 10 + description: The maximum number of security signals in the response. + example: 25 + format: int32 + maximum: 1000 + type: integer + type: object + SecurityMonitoringSignalMetadataType: + default: signal_metadata + description: The type of event. + enum: + - signal_metadata + example: signal_metadata + type: string + x-enum-varnames: + - SIGNAL_METADATA + SecurityMonitoringSignalResponse: + description: Security Signal response data object. + properties: + data: + $ref: "#/components/schemas/SecurityMonitoringSignal" + type: object + SecurityMonitoringSignalRuleCreatePayload: + description: Create a new signal correlation rule. + properties: + cases: + description: Cases for generating signals. + example: [] items: - $ref: "#/components/schemas/SharedDashboardInvitee" + $ref: "#/components/schemas/SecurityMonitoringRuleCaseCreate" type: array - last_accessed: - description: Time when the shared dashboard was last accessed. - example: "2026-01-15T09:30:00.000Z" - format: date-time - nullable: true - type: string - selectable_template_vars: - description: Template variables that viewers can modify. + filters: + description: Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules. items: - $ref: "#/components/schemas/SharedDashboardSelectableTemplateVariable" + $ref: "#/components/schemas/SecurityMonitoringFilter" type: array - share_type: - $ref: "#/components/schemas/SharedDashboardShareType" - sharer_disabled: - description: Whether the user who shared the dashboard is disabled. - example: false + hasExtendedTitle: + description: Whether the notifications include the triggering group-by values in their title. + example: true type: boolean - status: - $ref: "#/components/schemas/SharedDashboardStatus" - title: - description: Display title for the shared dashboard. - example: Q1 Metrics Dashboard - type: string - token: - description: Token assigned to the shared dashboard. - example: abc-123-token + isEnabled: + description: Whether the rule is enabled. + example: true + type: boolean + message: + description: Message for generated signals. + example: "" type: string - url: - description: URL for the shared dashboard. - example: https://p.datadoghq.com/sb/abc-123-token + name: + description: The name of the rule. + example: My security monitoring rule. type: string - viewing_preferences: - $ref: "#/components/schemas/SharedDashboardViewingPreferences" + options: + $ref: "#/components/schemas/SecurityMonitoringRuleOptions" + queries: + description: Queries for selecting signals which are part of the rule. + example: [] + items: + $ref: "#/components/schemas/SecurityMonitoringSignalRuleQuery" + type: array + tags: + description: Tags for generated signals. + example: + - env:prod + - team:security + items: + description: Tag. + type: string + type: array + type: + $ref: "#/components/schemas/SecurityMonitoringSignalRuleType" required: - - token - - title - - url - - viewing_preferences - - global_time_selectable - - global_time - - selectable_template_vars - - created_at - - last_accessed - - status - - share_type - - invitees - - embeddable_domains - - expiration - - sharer_disabled + - name + - isEnabled + - queries + - options + - cases + - message type: object - SharedDashboardSelectableTemplateVariable: - description: A template variable that viewers can modify on the shared dashboard. + SecurityMonitoringSignalRulePayload: + description: The payload of a signal correlation rule. properties: - allow_any_value: - description: Whether viewers can see all tag values for the template variable and specify any value. - example: false + cases: + description: Cases for generating signals. + example: [] + items: + $ref: "#/components/schemas/SecurityMonitoringRuleCaseCreate" + type: array + customMessage: + description: Custom/Overridden message for generated signals (used in case of Default rule update). + type: string + customName: + description: Custom/Overridden name of the rule (used in case of Default rule update). + type: string + filters: + description: Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules. + items: + $ref: "#/components/schemas/SecurityMonitoringFilter" + type: array + hasExtendedTitle: + description: Whether the notifications include the triggering group-by values in their title. + example: true type: boolean - default_values: - description: Default selected values for the variable. - example: ["prod"] + isEnabled: + description: Whether the rule is enabled. + example: true + type: boolean + message: + description: Message for generated signals. + example: "" + type: string + name: + description: The name of the rule. + example: My security monitoring rule. + type: string + options: + $ref: "#/components/schemas/SecurityMonitoringRuleOptions" + queries: + description: Queries for selecting signals which are part of the rule. + example: [] items: - description: A default value for the template variable. + $ref: "#/components/schemas/SecurityMonitoringSignalRuleQuery" + type: array + tags: + description: Tags for generated signals. + example: + - env:prod + - team:security + items: + description: Tag. + type: string + type: array + type: + $ref: "#/components/schemas/SecurityMonitoringSignalRuleType" + required: + - name + - isEnabled + - queries + - options + - cases + - message + type: object + SecurityMonitoringSignalRuleQuery: + description: Query for matching rule on signals. + properties: + aggregation: + $ref: "#/components/schemas/SecurityMonitoringRuleQueryAggregation" + correlatedByFields: + description: Fields to group by. + items: + description: Field. + type: string + type: array + correlatedQueryIndex: + description: Index of the rule query used to retrieve the correlated field. + format: int32 + maximum: 9 + type: integer + metrics: + description: Group of target fields to aggregate over. + items: + description: Field. type: string type: array name: - description: Name of the template variable. - example: environment + description: Name of the query. type: string - prefix: - description: Tag prefix for the variable. - example: env + ruleId: + description: Rule ID to match on signals. + example: org-ru1-e1d + type: string + required: + - ruleId + type: object + SecurityMonitoringSignalRuleResponse: + description: Rule. + properties: + cases: + description: Cases for generating signals. + items: + $ref: "#/components/schemas/SecurityMonitoringRuleCase" + type: array + compatibleVersion: + description: The version of the rule at which its detection logic last changed. Updates that only change the name, message, tags, or notifications do not change this value. + example: 1 + format: int64 + type: integer + createdAt: + description: When the rule was created, timestamp in milliseconds. + format: int64 + type: integer + creationAuthorId: + description: User ID of the user who created the rule. + format: int64 + type: integer + customMessage: + description: Custom/Overridden message for generated signals (used in case of Default rule update). + type: string + customName: + description: Custom/Overridden name of the rule (used in case of Default rule update). + type: string + deprecationDate: + description: When the rule will be deprecated, timestamp in milliseconds. + format: int64 + type: integer + filters: + description: Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules. + items: + $ref: "#/components/schemas/SecurityMonitoringFilter" + type: array + hasExtendedTitle: + description: Whether the notifications include the triggering group-by values in their title. + type: boolean + id: + description: The ID of the rule. + type: string + isDefault: + description: Whether the rule is included by default. + type: boolean + isDeleted: + description: Whether the rule has been deleted. + type: boolean + isEnabled: + description: Whether the rule is enabled. + type: boolean + message: + description: Message for generated signals. + type: string + name: + description: The name of the rule. type: string + options: + $ref: "#/components/schemas/SecurityMonitoringRuleOptions" + queries: + description: Queries for selecting logs which are part of the rule. + items: + $ref: "#/components/schemas/SecurityMonitoringSignalRuleResponseQuery" + type: array + tags: + description: Tags for generated signals. + items: + description: Tag. + type: string + type: array type: - description: Type of the template variable. - example: group + $ref: "#/components/schemas/SecurityMonitoringSignalRuleType" + updateAuthorId: + description: User ID of the user who updated the rule. + format: int64 + type: integer + version: + description: The version of the rule. + format: int64 + type: integer + type: object + SecurityMonitoringSignalRuleResponseQuery: + description: Query for matching rule on signals. + properties: + aggregation: + $ref: "#/components/schemas/SecurityMonitoringRuleQueryAggregation" + correlatedByFields: + description: Fields to correlate by. + items: + description: Field. + type: string + type: array + correlatedQueryIndex: + description: Index of the rule query used to retrieve the correlated field. + format: int32 + maximum: 9 + type: integer + defaultRuleId: + description: Default Rule ID to match on signals. + example: d3f-ru1-e1d type: string - visible_tags: - description: Restricts which tag values are visible to the viewer. - example: ["prod"] + distinctFields: + description: Field for which the cardinality is measured. Sent as an array. items: - description: A visible tag value for the template variable. + description: Field. type: string type: array - required: - - name - - prefix - - type - - allow_any_value - - default_values - - visible_tags + groupByFields: + description: Fields to group by. + items: + description: Field. + type: string + type: array + metrics: + description: Group of target fields to aggregate over. + items: + description: Field. + type: string + type: array + name: + description: Name of the query. + type: string + ruleId: + description: Rule ID to match on signals. + example: org-ru1-e1d + type: string type: object - SharedDashboardShareType: - description: Type of dashboard sharing. - enum: - - open - - invite - - embed - - secure-embed - example: invite - type: string - x-enum-varnames: - - OPEN - - INVITE - - EMBED - - SECURE_EMBED - SharedDashboardStatus: - description: Status of the shared dashboard. + SecurityMonitoringSignalRuleType: + description: The rule type. enum: - - active - - paused - example: active + - signal_correlation type: string x-enum-varnames: - - ACTIVE - - PAUSED - SharedDashboardType: - default: shared_dashboard - description: Shared dashboard resource type. + - SIGNAL_CORRELATION + SecurityMonitoringSignalState: + description: The new triage state of the signal. enum: - - shared_dashboard - example: shared_dashboard + - open + - archived + - under_review + example: open type: string x-enum-varnames: - - SHARED_DASHBOARD - SharedDashboardViewingPreferences: - description: Display settings for the shared dashboard. + - OPEN + - ARCHIVED + - UNDER_REVIEW + SecurityMonitoringSignalStateUpdateAttributes: + description: Attributes describing the change of state of a security signal. properties: - high_density: - description: Whether widgets are displayed in high-density mode. - example: false - type: boolean - theme: - $ref: "#/components/schemas/SharedDashboardViewingPreferencesTheme" + archive_comment: + $ref: "#/components/schemas/SecurityMonitoringSignalArchiveComment" + archive_reason: + $ref: "#/components/schemas/SecurityMonitoringSignalArchiveReason" + state: + $ref: "#/components/schemas/SecurityMonitoringSignalState" + version: + $ref: "#/components/schemas/SecurityMonitoringSignalVersion" required: - - high_density - - theme + - state type: object - SharedDashboardViewingPreferencesTheme: - description: The theme of the shared dashboard view. `system` follows the viewer's system default. - enum: - - system - - light - - dark - example: system - type: string - x-enum-varnames: - - SYSTEM - - LIGHT - - DARK - Shift: - description: An on-call shift with its associated data and relationships. - example: - data: - attributes: - end: "2025-05-07T03:53:01.206662873Z" - start: "2025-05-07T02:53:01.206662814Z" - id: 00000000-0000-0000-0000-000000000000 - relationships: - user: - data: - id: 00000000-aba1-0000-0000-000000000000 - type: users - type: shifts - included: - - attributes: - email: foo@bar.com - name: User 1 - status: "" - id: 00000000-aba1-0000-0000-000000000000 - type: users + SecurityMonitoringSignalStateUpdateData: + description: Data containing the patch for changing the state of a signal. + properties: + attributes: + $ref: "#/components/schemas/SecurityMonitoringSignalStateUpdateAttributes" + id: + description: The unique ID of the security signal. + type: + $ref: "#/components/schemas/SecurityMonitoringSignalMetadataType" + required: + - attributes + type: object + SecurityMonitoringSignalStateUpdateRequest: + description: Request body for changing the state of a given security monitoring signal. properties: data: - $ref: "#/components/schemas/ShiftData" - nullable: true - included: - description: The `Shift` `included`. - items: - $ref: "#/components/schemas/ShiftIncluded" - type: array + $ref: "#/components/schemas/SecurityMonitoringSignalStateUpdateData" + required: + - data type: object - ShiftData: - description: Data for an on-call shift. + SecurityMonitoringSignalSuggestedAction: + description: A suggested action for a security signal. properties: attributes: - $ref: "#/components/schemas/ShiftDataAttributes" + $ref: "#/components/schemas/SecurityMonitoringSignalSuggestedActionAttributes" id: - description: The `ShiftData` `id`. + description: The unique ID of the suggested action. + example: w00-t10-992 type: string - relationships: - $ref: "#/components/schemas/ShiftDataRelationships" type: - $ref: "#/components/schemas/ShiftDataType" + $ref: "#/components/schemas/SecurityMonitoringSignalSuggestedActionType" required: + - id - type + - attributes type: object - ShiftDataAttributes: - description: Attributes for an on-call shift. + SecurityMonitoringSignalSuggestedActionAttributes: + description: Attributes of a suggested action for a security signal. The available fields depend on the action type. properties: - end: - description: The end time of the shift. - format: date-time + name: + description: The name of the investigation log query. + example: Cloudtrail events for user ARN type: string - start: - description: The start time of the shift. - format: date-time + query_filter: + description: The log query filter for the investigation. + example: 'source:cloudtrail @userIdentity.arn:"foo"' + type: string + template_variables: + $ref: "#/components/schemas/SecurityMonitoringSignalInvestigationQueryTemplateVariables" + title: + description: The title of the recommended blog post. + example: Monitor Okta logs to track system access and unusual activity + type: string + url: + description: The URL of the suggested action. + example: /logs?query=source%3Acloudtrail+%40userIdentity.arn%3A%22foo%22 type: string type: object - ShiftDataRelationships: - description: Relationships for an on-call shift. - properties: - user: - $ref: "#/components/schemas/ShiftDataRelationshipsUser" - type: object - ShiftDataRelationshipsUser: - description: "Defines the relationship between a shift and the user who is working that shift." + SecurityMonitoringSignalSuggestedActionList: + description: List of suggested actions for a security signal. + example: + - attributes: + name: Cloudtrail events for user ARN + query_filter: 'source:cloudtrail @userIdentity.arn:"foo"' + template_variables: + "@userIdentity.arn": + - foo + url: /logs?query=source%3Acloudtrail+%40userIdentity.arn%3A%22foo%22 + id: w00-t10-992 + type: investigation_log_queries + - attributes: + title: Monitor Okta logs to track system access and unusual activity + url: https://www.datadoghq.com/blog/monitor-activity-with-okta/ + id: bxy-o8v-i1a + type: recommended_blog_posts + items: + $ref: "#/components/schemas/SecurityMonitoringSignalSuggestedAction" + type: array + SecurityMonitoringSignalSuggestedActionType: + description: The type of the suggested action resource. + enum: + - investigation_log_queries + - recommended_blog_posts + example: investigation_log_queries + type: string + x-enum-varnames: + - INVESTIGATION_LOG_QUERIES + - RECOMMENDED_BLOG_POSTS + SecurityMonitoringSignalSuggestedActionsResponse: + description: Response with suggested actions for a security signal. properties: data: - $ref: "#/components/schemas/ShiftDataRelationshipsUserData" + $ref: "#/components/schemas/SecurityMonitoringSignalSuggestedActionList" required: - data type: object - ShiftDataRelationshipsUserData: - description: "Represents a reference to the user assigned to this shift, containing the user's ID and resource type." + SecurityMonitoringSignalTriageAttributes: + description: Attributes describing a triage state update operation over a security signal. + properties: + archive_comment: + $ref: "#/components/schemas/SecurityMonitoringSignalArchiveComment" + archive_comment_timestamp: + description: Timestamp of the last edit to the comment. + format: int64 + minimum: 0 + type: integer + archive_comment_user: + $ref: "#/components/schemas/SecurityMonitoringTriageUser" + archive_reason: + $ref: "#/components/schemas/SecurityMonitoringSignalArchiveReason" + assignee: + $ref: "#/components/schemas/SecurityMonitoringTriageUser" + incident_ids: + $ref: "#/components/schemas/SecurityMonitoringSignalIncidentIds" + state: + $ref: "#/components/schemas/SecurityMonitoringSignalState" + state_update_timestamp: + description: Timestamp of the last update to the signal state. + format: int64 + minimum: 0 + type: integer + state_update_user: + $ref: "#/components/schemas/SecurityMonitoringTriageUser" + required: + - assignee + - state + - incident_ids + type: object + SecurityMonitoringSignalTriageUpdateData: + description: Data containing the updated triage attributes of the signal. properties: + attributes: + $ref: "#/components/schemas/SecurityMonitoringSignalTriageAttributes" id: - description: "Specifies the unique identifier of the user." - example: "00000000-0000-0000-0000-000000000000" + description: The unique ID of the security signal. type: string type: - $ref: "#/components/schemas/ShiftDataRelationshipsUserDataType" + $ref: "#/components/schemas/SecurityMonitoringSignalMetadataType" + type: object + SecurityMonitoringSignalTriageUpdateResponse: + description: The response returned after all triage operations, containing the updated signal triage data. + properties: + data: + $ref: "#/components/schemas/SecurityMonitoringSignalTriageUpdateData" required: - - type - - id + - data type: object - ShiftDataRelationshipsUserDataType: - default: users - description: "Indicates that the related resource is of type 'users'." - enum: - - users - example: users - type: string - x-enum-varnames: - - USERS - ShiftDataType: - default: shifts - description: "Indicates that the resource is of type 'shifts'." + SecurityMonitoringSignalType: + default: signal + description: The type of event. enum: - - shifts - example: shifts + - signal + example: signal type: string x-enum-varnames: - - SHIFTS - ShiftIncluded: - description: Included data for shift operations. - oneOf: - - $ref: "#/components/schemas/ScheduleUser" - SignalEntitiesAttributes: - description: Attributes containing the entities related to the signal. + - SIGNAL + SecurityMonitoringSignalUpdateAttributes: + description: Attributes for updating the triage state or assignee of a security signal. properties: - identities: - description: The identity entities related to the signal. Each item is a free-form object describing an identity (for example, a user or principal). - example: - - display_name: Test User - principal_id: user@example.com - items: - $ref: "#/components/schemas/SignalEntityIdentity" - type: array + archive_comment: + $ref: "#/components/schemas/SecurityMonitoringSignalArchiveComment" + archive_reason: + $ref: "#/components/schemas/SecurityMonitoringSignalArchiveReason" + assignee: + $ref: "#/components/schemas/SecurityMonitoringTriageUser" + state: + $ref: "#/components/schemas/SecurityMonitoringSignalState" + version: + $ref: "#/components/schemas/SecurityMonitoringSignalVersion" + type: object + SecurityMonitoringSignalUpdateData: + description: Data containing the triage state or assignee update for a security signal. + properties: + attributes: + $ref: "#/components/schemas/SecurityMonitoringSignalUpdateAttributes" + type: + $ref: "#/components/schemas/SecurityMonitoringSignalMetadataType" required: - - identities + - attributes type: object - SignalEntitiesData: - description: Entities related to a security signal. + SecurityMonitoringSignalUpdateRequest: + description: Request body for updating the triage state or assignee of a security signal. + properties: + data: + $ref: "#/components/schemas/SecurityMonitoringSignalUpdateData" + required: + - data + type: object + SecurityMonitoringSignalVersion: + description: Version of the updated signal. If server side version is higher, update will be rejected. + format: int64 + type: integer + SecurityMonitoringSignalsBulkAssigneeUpdateAttributes: + description: Attributes describing the new assignees for a bulk signal update. + properties: + assignee: + description: UUID of the user to assign to the signal. Use an empty string to unassign. + example: 773b045d-ccf8-4808-bd3b-955ef6a8c940 + type: string + version: + $ref: "#/components/schemas/SecurityMonitoringSignalVersion" + required: + - assignee + type: object + SecurityMonitoringSignalsBulkAssigneeUpdateData: + description: Data for updating the assignees for multiple security signals. properties: attributes: - $ref: "#/components/schemas/SignalEntitiesAttributes" + $ref: "#/components/schemas/SecurityMonitoringSignalsBulkAssigneeUpdateAttributes" id: - description: The signal ID the entities are associated with. + description: The unique ID of the security signal. example: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA type: string type: - $ref: "#/components/schemas/SignalEntitiesType" + $ref: "#/components/schemas/SecurityMonitoringSignalType" required: - id - - type - attributes type: object - SignalEntitiesResponse: - description: Response containing entities related to a security signal. + SecurityMonitoringSignalsBulkAssigneeUpdateRequest: + description: Request body for updating the assignee of multiple security signals. properties: data: - $ref: "#/components/schemas/SignalEntitiesData" + description: An array of signal assignee updates. + items: + $ref: "#/components/schemas/SecurityMonitoringSignalsBulkAssigneeUpdateData" + maxItems: 199 + type: array required: - data type: object - SignalEntitiesType: - default: entities - description: The type of the resource. The value should always be `entities`. - enum: - - entities - example: entities - type: string - x-enum-varnames: - - ENTITIES - SignalEntityIdentity: - additionalProperties: {} - description: An identity entity related to a signal. The set of attributes is dynamic and depends on the source providing the identity. - example: - display_name: Test User - principal_id: user@example.com - type: object - SimpleMonitorUserTemplate: - description: A simplified version of a monitor user template. + SecurityMonitoringSignalsBulkStateUpdateData: + description: Data for updating the state for multiple security signals. properties: - created: - $ref: "#/components/schemas/MonitorUserTemplateCreated" - description: - $ref: "#/components/schemas/MonitorUserTemplateDescription" + attributes: + $ref: "#/components/schemas/SecurityMonitoringSignalStateUpdateAttributes" id: - description: The unique identifier. The initial version will match the template ID. - example: "00000000-0000-1234-0000-000000000000" + description: The unique ID of the security signal. + example: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA type: string - monitor_definition: - additionalProperties: {} - description: A valid monitor definition in the same format as the [V1 Monitor API](https://docs.datadoghq.com/api/latest/monitors/#create-a-monitor). - example: {"message": "You may need to add web hosts if this is consistently high.", "name": "Bytes received on host0", "query": "avg(last_5m):sum:system.net.bytes_rcvd{host:host0} > 100", "type": "query alert"} - type: object - tags: - $ref: "#/components/schemas/MonitorUserTemplateTags" - template_variables: - $ref: "#/components/schemas/MonitorUserTemplateTemplateVariables" - title: - $ref: "#/components/schemas/MonitorUserTemplateTitle" - version: - $ref: "#/components/schemas/MonitorUserTemplateVersion" + type: + $ref: "#/components/schemas/SecurityMonitoringSignalType" + required: + - id + - attributes type: object - SingleAggregatedConnectionResponseArray: - description: List of aggregated connections. - example: - data: - - attributes: - bytes_sent_by_client: 100 - bytes_sent_by_server: 200 - group_bys: - client_team: - - networks - server_service: - - hucklebuck - packets_sent_by_client: 10 - packets_sent_by_server: 20 - rtt_micro_seconds: 800 - tcp_closed_connections: 30 - tcp_delivered_ce: 12 - tcp_established_connections: 40 - tcp_probe0_count: 2 - tcp_rcv_ooo_pack: 15 - tcp_recovery_count: 8 - tcp_refusals: 7 - tcp_reord_seen: 4 - tcp_resets: 5 - tcp_retransmits: 30 - tcp_rto_count: 3 - tcp_timeouts: 6 - id: client_team:networks, server_service:hucklebuck - type: aggregated_connection + SecurityMonitoringSignalsBulkStateUpdateRequest: + description: Request body for updating the triage states of multiple security signals. properties: data: - description: Array of aggregated connection objects. + description: An array of signal state updates. items: - $ref: "#/components/schemas/SingleAggregatedConnectionResponseData" + $ref: "#/components/schemas/SecurityMonitoringSignalsBulkStateUpdateData" + maxItems: 199 type: array + required: + - data type: object - SingleAggregatedConnectionResponseData: - description: Object describing an aggregated connection. + SecurityMonitoringSignalsBulkTriageEvent: + description: A single signal event entry in a bulk triage update response. properties: - attributes: - $ref: "#/components/schemas/SingleAggregatedConnectionResponseDataAttributes" + event: + $ref: "#/components/schemas/SecurityMonitoringSignalsBulkTriageEventAttributes" id: - description: A unique identifier for the aggregated connection based on the group by values. + description: The unique ID of the security signal. + example: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA type: string - type: - $ref: "#/components/schemas/SingleAggregatedConnectionResponseDataType" + required: + - id + - event type: object - SingleAggregatedConnectionResponseDataAttributes: - description: Attributes for an aggregated connection. + SecurityMonitoringSignalsBulkTriageEventAttributes: + description: Triage attributes of a security signal returned in a bulk update response. properties: - bytes_sent_by_client: - description: The total number of bytes sent by the client over the given period. - format: int64 - type: integer - bytes_sent_by_server: - description: The total number of bytes sent by the server over the given period. - format: int64 - type: integer - group_bys: - additionalProperties: - description: The values for each group by. - items: - description: A group-by value. - type: string - type: array - description: The key, value pairs for each group by. - type: object - packets_sent_by_client: - description: The total number of packets sent by the client over the given period. - format: int64 - type: integer - packets_sent_by_server: - description: The total number of packets sent by the server over the given period. - format: int64 - type: integer - rtt_micro_seconds: - description: Measured as TCP smoothed round trip time in microseconds (the time between a TCP frame being sent and acknowledged). - format: int64 - type: integer - tcp_closed_connections: - description: The number of TCP connections in a closed state. Measured in connections per second from the client. - format: int64 - type: integer - tcp_delivered_ce: - description: The number of TCP segments acknowledged with the ECN Congestion Experienced (CE) mark, indicating that an upstream router marked packets as experiencing congestion. - format: int64 - type: integer - tcp_established_connections: - description: The number of TCP connections in an established state. Measured in connections per second from the client. - format: int64 - type: integer - tcp_probe0_count: - description: The number of TCP zero-window probes sent. These probes are sent when the receiver advertises a zero receive window, indicating it cannot accept more data. - format: int64 - type: integer - tcp_rcv_ooo_pack: - description: The number of TCP packets received out of order. This indicates network-level packet reordering, which can degrade TCP performance by triggering spurious retransmissions and reducing throughput. - format: int64 - type: integer - tcp_recovery_count: - description: The number of TCP fast recovery events. Fast recovery retransmits lost segments detected through duplicate ACKs or selective acknowledgment (SACK) without waiting for a retransmission timeout. - format: int64 - type: integer - tcp_refusals: - description: The number of TCP connections that were refused by the server. Typically this indicates an attempt to connect to an IP/port that is not receiving connections, or a firewall/security misconfiguration. - format: int64 - type: integer - tcp_reord_seen: - description: The number of times reordering of sent packets was detected. Reordering detection adjusts the duplicate ACK threshold, preventing spurious retransmissions caused by out-of-order delivery. - format: int64 - type: integer - tcp_resets: - description: The number of TCP connections that were reset by the server. - format: int64 - type: integer - tcp_retransmits: - description: TCP Retransmits represent detected failures that are retransmitted to ensure delivery. Measured in count of retransmits from the client. - format: int64 - type: integer - tcp_rto_count: - description: The number of TCP retransmission timeouts (RTOs). An RTO occurs when an ACK is not received within the estimated round-trip time, forcing the sender to retransmit and halve its congestion window. + archive_comment: + $ref: "#/components/schemas/SecurityMonitoringSignalArchiveComment" + archive_comment_timestamp: + description: Timestamp of the last edit to the archive comment. format: int64 type: integer - tcp_timeouts: - description: The number of TCP connections that timed out from the perspective of the operating system. This can indicate general connectivity and latency issues. + archive_comment_user: + $ref: "#/components/schemas/SecurityMonitoringTriageUser" + archive_reason: + $ref: "#/components/schemas/SecurityMonitoringSignalArchiveReason" + assignee: + $ref: "#/components/schemas/SecurityMonitoringTriageUser" + id: + description: The unique ID of the security signal. + example: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA + type: string + incident_ids: + $ref: "#/components/schemas/SecurityMonitoringSignalIncidentIds" + state: + $ref: "#/components/schemas/SecurityMonitoringSignalState" + state_update_timestamp: + description: Timestamp of the last state update. format: int64 type: integer + state_update_user: + $ref: "#/components/schemas/SecurityMonitoringTriageUser" + required: + - id + - state + - assignee + - incident_ids type: object - SingleAggregatedConnectionResponseDataType: - default: aggregated_connection - description: |- - Aggregated connection resource type. - enum: - - aggregated_connection - type: string - x-enum-varnames: - - AGGREGATED_CONNECTION - SingleAggregatedDnsResponseArray: - description: List of aggregated DNS flows. - example: - data: - - attributes: - group_bys: - - key: client_service - value: example-service - - key: network.dns_query - value: example.com - metrics: - - key: dns_total_requests - value: 100 - - key: dns_failures - value: 7 - - key: dns_successful_responses - value: 93 - - key: dns_failed_responses - value: 5 - - key: dns_timeouts - value: 2 - - key: dns_responses.nxdomain - value: 1 - - key: dns_responses.servfail - value: 1 - - key: dns_responses.other - value: 3 - - key: dns_success_latency_percentile - value: 50 - - key: dns_failure_latency_percentile - value: 75 - id: client_service:example-service,network.dns_query:example.com - type: aggregated_dns + SecurityMonitoringSignalsBulkTriageUpdateResponse: + description: Response for a bulk triage update of security signals. properties: - data: - description: Array of aggregated DNS objects. + result: + $ref: "#/components/schemas/SecurityMonitoringSignalsBulkTriageUpdateResult" + status: + description: The status of the bulk operation. + example: done + type: string + type: + description: The type of the response. + example: status + type: string + required: + - type + - status + - result + type: object + SecurityMonitoringSignalsBulkTriageUpdateResult: + description: The result payload of a bulk signal triage update. + properties: + count: + description: The number of signals updated. + example: 2 + format: int64 + type: integer + events: + description: The list of updated signals. items: - $ref: "#/components/schemas/SingleAggregatedDnsResponseData" + $ref: "#/components/schemas/SecurityMonitoringSignalsBulkTriageEvent" type: array + required: + - count + - events type: object - SingleAggregatedDnsResponseData: - description: Object describing an aggregated DNS flow. + SecurityMonitoringSignalsBulkUpdateData: + description: Data for updating a single security signal in a bulk update operation. properties: attributes: - $ref: "#/components/schemas/SingleAggregatedDnsResponseDataAttributes" + $ref: "#/components/schemas/SecurityMonitoringSignalUpdateAttributes" id: - description: A unique identifier for the aggregated DNS traffic based on the group by values. + description: The unique ID of the security signal. + example: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA type: string type: - $ref: "#/components/schemas/SingleAggregatedDnsResponseDataType" + $ref: "#/components/schemas/SecurityMonitoringSignalType" + required: + - id + - attributes type: object - SingleAggregatedDnsResponseDataAttributes: - description: Attributes for an aggregated DNS flow. + SecurityMonitoringSignalsBulkUpdateRequest: + description: Request body for updating multiple attributes of multiple security signals. properties: - group_bys: - description: The key, value pairs for each group by. + data: + description: An array of signal updates. items: - $ref: "#/components/schemas/SingleAggregatedDnsResponseDataAttributesGroupByItems" + $ref: "#/components/schemas/SecurityMonitoringSignalsBulkUpdateData" + maxItems: 199 type: array - metrics: - description: Metrics associated with an aggregated DNS flow. - items: - $ref: "#/components/schemas/SingleAggregatedDnsResponseDataAttributesMetricsItems" + required: + - data + type: object + SecurityMonitoringSignalsListResponse: + description: "The response object with all security signals matching the request\nand pagination information." + properties: + data: + description: An array of security signals matching the request. + items: + $ref: "#/components/schemas/SecurityMonitoringSignal" type: array + links: + $ref: "#/components/schemas/SecurityMonitoringSignalsListResponseLinks" + meta: + $ref: "#/components/schemas/SecurityMonitoringSignalsListResponseMeta" type: object - SingleAggregatedDnsResponseDataAttributesGroupByItems: - description: Attributes associated with a group by + SecurityMonitoringSignalsListResponseLinks: + description: Links attributes. properties: - key: - description: The group by key. - type: string - value: - description: The group by value. + next: + description: "The link for the next set of results. **Note**: The request can also be made using the\nPOST endpoint." + example: https://app.datadoghq.com/api/v2/security_monitoring/signals?filter[query]=foo&page[cursor]=eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ== type: string type: object - SingleAggregatedDnsResponseDataAttributesMetricsItems: - description: Metrics associated with an aggregated DNS flow. + SecurityMonitoringSignalsListResponseMeta: + description: Meta attributes. properties: - key: - $ref: "#/components/schemas/DnsMetricKey" - value: - description: The metric value. + elapsed: + description: The time elapsed in milliseconds. + example: 132 format: int64 type: integer + page: + $ref: "#/components/schemas/SecurityMonitoringSignalsListResponseMetaPage" + request_id: + description: The unique identifier of the request. + example: example-request-id + type: string + status: + description: The status of the response. + example: done + type: string type: object - SingleAggregatedDnsResponseDataType: - default: aggregated_dns - description: |- - Aggregated DNS resource type. + SecurityMonitoringSignalsListResponseMetaPage: + description: Paging attributes. + properties: + after: + description: "The cursor used to get the next results, if any. To make the next request, use the same\nparameters with the addition of the `page[cursor]`." + example: eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ== + type: string + type: object + SecurityMonitoringSignalsSort: + description: The sort parameters used for querying security signals. enum: - - aggregated_dns + - timestamp + - -timestamp type: string x-enum-varnames: - - AGGREGATED_DNS - SingleEntityContextResponse: - description: Response from the single entity context endpoint, containing the matching entity. - properties: - data: - $ref: "#/components/schemas/EntityContextEntity" - required: - - data - type: object - SlackIntegrationMetadata: - description: Incident integration metadata for the Slack integration. + - TIMESTAMP_ASCENDING + - TIMESTAMP_DESCENDING + SecurityMonitoringStandardDataSource: + default: logs + description: Source of events, either logs, audit trail, security signals, or Datadog events. `app_sec_spans` is deprecated in favor of `spans`. + enum: + - logs + - audit + - app_sec_spans + - spans + - security_runtime + - network + - events + - security_signals + example: logs + type: string + x-enum-varnames: + - LOGS + - AUDIT + - APP_SEC_SPANS + - SPANS + - SECURITY_RUNTIME + - NETWORK + - EVENTS + - SECURITY_SIGNALS + SecurityMonitoringStandardRuleCreatePayload: + description: Create a new rule. properties: - channels: - description: Array of Slack channels in this integration metadata. + calculatedFields: + description: Calculated fields. Only allowed for scheduled rules - in other words, when schedulingOptions is also defined. + items: + $ref: "#/components/schemas/CalculatedField" + type: array + cases: + description: Cases for generating signals. example: [] items: - $ref: "#/components/schemas/SlackIntegrationMetadataChannelItem" + $ref: "#/components/schemas/SecurityMonitoringRuleCaseCreate" + type: array + filters: + description: Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules. + items: + $ref: "#/components/schemas/SecurityMonitoringFilter" + type: array + groupSignalsBy: + description: Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups. + example: + - service + items: + description: Field to group by. + type: string + type: array + hasExtendedTitle: + description: Whether the notifications include the triggering group-by values in their title. + example: true + type: boolean + isEnabled: + description: Whether the rule is enabled. + example: true + type: boolean + message: + description: Message for generated signals. + example: "" + type: string + name: + description: The name of the rule. + example: My security monitoring rule. + type: string + options: + $ref: "#/components/schemas/SecurityMonitoringRuleOptions" + queries: + description: Queries for selecting logs which are part of the rule. + example: [] + items: + $ref: "#/components/schemas/SecurityMonitoringStandardRuleQuery" + type: array + referenceTables: + description: Reference tables for the rule. + items: + $ref: "#/components/schemas/SecurityMonitoringReferenceTable" + type: array + schedulingOptions: + $ref: "#/components/schemas/SecurityMonitoringSchedulingOptions" + tags: + description: Tags for generated signals. + example: + - env:prod + - team:security + items: + description: Tag. + type: string + type: array + thirdPartyCases: + description: Cases for generating signals from third-party rules. Only available for third-party rules. + example: [] + items: + $ref: "#/components/schemas/SecurityMonitoringThirdPartyRuleCaseCreate" type: array + type: + $ref: "#/components/schemas/SecurityMonitoringRuleTypeCreate" required: - - channels + - name + - isEnabled + - queries + - options + - cases + - message type: object - SlackIntegrationMetadataChannelItem: - description: Item in the Slack integration metadata channel array. + SecurityMonitoringStandardRulePayload: + description: The payload of a rule. properties: - channel_id: - description: Slack channel ID. - example: C0123456789 + calculatedFields: + description: Calculated fields. Only allowed for scheduled rules - in other words, when schedulingOptions is also defined. + items: + $ref: "#/components/schemas/CalculatedField" + type: array + cases: + description: Cases for generating signals. + example: [] + items: + $ref: "#/components/schemas/SecurityMonitoringRuleCaseCreate" + type: array + customMessage: + description: Custom/Overridden message for generated signals (used in case of Default rule update). type: string - channel_name: - description: Name of the Slack channel. - example: "#example-channel-name" + customName: + description: Custom/Overridden name of the rule (used in case of Default rule update). type: string - redirect_url: - description: URL redirecting to the Slack channel. - example: https://slack.com/app_redirect?channel=C0123456789&team=T01234567 + filters: + description: Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules. + items: + $ref: "#/components/schemas/SecurityMonitoringFilter" + type: array + groupSignalsBy: + description: Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups. + example: + - service + items: + description: Field to group by. + type: string + type: array + hasExtendedTitle: + description: Whether the notifications include the triggering group-by values in their title. + example: true + type: boolean + isEnabled: + description: Whether the rule is enabled. + example: true + type: boolean + message: + description: Message for generated signals. + example: "" type: string - team_id: - description: Slack team ID. - example: T01234567 + name: + description: The name of the rule. + example: My security monitoring rule. type: string + options: + $ref: "#/components/schemas/SecurityMonitoringRuleOptions" + queries: + description: Queries for selecting logs which are part of the rule. + example: [] + items: + $ref: "#/components/schemas/SecurityMonitoringStandardRuleQuery" + type: array + referenceTables: + description: Reference tables for the rule. + items: + $ref: "#/components/schemas/SecurityMonitoringReferenceTable" + type: array + schedulingOptions: + $ref: "#/components/schemas/SecurityMonitoringSchedulingOptions" + tags: + description: Tags for generated signals. + example: + - env:prod + - team:security + items: + description: Tag. + type: string + type: array + thirdPartyCases: + description: Cases for generating signals from third-party rules. Only available for third-party rules. + example: [] + items: + $ref: "#/components/schemas/SecurityMonitoringThirdPartyRuleCaseCreate" + type: array + type: + $ref: "#/components/schemas/SecurityMonitoringRuleTypeCreate" required: - - channel_id - - channel_name - - redirect_url + - name + - isEnabled + - queries + - options + - cases + - message type: object - SlackReactionConfig: - description: "Configuration for a Slack emoji reaction trigger." + SecurityMonitoringStandardRuleQuery: + description: Query for matching rule. properties: - reactionEmoji: - description: "The Slack emoji reaction name." - example: L - minLength: 1 + aggregation: + $ref: "#/components/schemas/SecurityMonitoringRuleQueryAggregation" + customQueryExtension: + description: Query extension to append to the logs query. + example: a > 3 type: string - teamId: - description: "The Slack workspace ID." - example: L - minLength: 1 + dataSource: + $ref: "#/components/schemas/SecurityMonitoringStandardDataSource" + distinctFields: + description: Field for which the cardinality is measured. Sent as an array. + items: + description: Field. + type: string + type: array + groupByFields: + description: Fields to group by. + items: + description: Field. + type: string + type: array + hasOptionalGroupByFields: + default: false + description: When false, events without a group-by value are ignored by the rule. When true, events with missing group-by fields are processed with `N/A`, replacing the missing values. + example: false + type: boolean + index: + description: "**This field is currently unstable and might be removed in a minor version upgrade.**\nThe index to run the query on, if the `dataSource` is `logs`. Only used for scheduled rules - in other words, when the `schedulingOptions` field is present in the rule payload." type: string - required: - - teamId - - reactionEmoji - type: object - SlackTrigger: - description: "Trigger a workflow from Slack. The workflow must be published." - properties: - reactionTriggers: - description: "Slack emoji reactions that trigger the workflow." + indexes: + description: List of indexes to query when the `dataSource` is `logs`. Only used for scheduled rules, such as when the `schedulingOptions` field is present in the rule payload. items: - $ref: "#/components/schemas/SlackReactionConfig" + description: Index. + type: string type: array - uniqueItems: true - type: object - SlackTriggerWrapper: - description: "Schema for a Slack-based trigger." - properties: - slackTrigger: - $ref: "#/components/schemas/SlackTrigger" - startStepNames: - $ref: "#/components/schemas/StartStepNames" - required: - - slackTrigger + metric: + deprecated: true + description: "(Deprecated) The target field to aggregate over when using the sum or max\naggregations. `metrics` field should be used instead." + type: string + metrics: + description: Group of target fields to aggregate over when using the sum, max, geo data, or new value aggregations. The sum, max, and geo data aggregations only accept one value in this list, whereas the new value aggregation accepts up to five values. + items: + description: Field. + type: string + type: array + name: + description: Name of the query. + type: string + query: + description: Query to run on logs. + example: a > 3 + type: string type: object - SlackUserBindingData: - description: Slack team ID data from a response. + SecurityMonitoringStandardRuleResponse: + description: Rule. properties: + calculatedFields: + description: Calculated fields. Only allowed for scheduled rules - in other words, when schedulingOptions is also defined. + items: + $ref: "#/components/schemas/CalculatedField" + type: array + cases: + description: Cases for generating signals. + items: + $ref: "#/components/schemas/SecurityMonitoringRuleCase" + type: array + compatibleVersion: + description: The version of the rule at which its detection logic last changed. Updates that only change the name, message, tags, or notifications do not change this value. + example: 1 + format: int64 + type: integer + complianceSignalOptions: + $ref: "#/components/schemas/CloudConfigurationRuleComplianceSignalOptions" + createdAt: + description: When the rule was created, timestamp in milliseconds. + format: int64 + type: integer + creationAuthorId: + description: User ID of the user who created the rule. + format: int64 + type: integer + customMessage: + description: Custom/Overridden message for generated signals (used in case of Default rule update). + type: string + customName: + description: Custom/Overridden name of the rule (used in case of Default rule update). + type: string + defaultTags: + description: Default Tags for default rules (included in tags) + example: + - security:attacks + items: + description: Default Tag. + type: string + type: array + deprecationDate: + description: When the rule will be deprecated, timestamp in milliseconds. + format: int64 + type: integer + filters: + description: Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules. + items: + $ref: "#/components/schemas/SecurityMonitoringFilter" + type: array + groupSignalsBy: + description: Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups. + example: + - service + items: + description: Field to group by. + type: string + type: array + hasExtendedTitle: + description: Whether the notifications include the triggering group-by values in their title. + type: boolean id: - description: The Slack team ID. - example: "T01234567" + description: The ID of the rule. + type: string + isDefault: + description: Whether the rule is included by default. + type: boolean + isDeleted: + description: Whether the rule has been deleted. + type: boolean + isEnabled: + description: Whether the rule is enabled. + type: boolean + message: + description: Message for generated signals. + type: string + name: + description: The name of the rule. type: string + options: + $ref: "#/components/schemas/SecurityMonitoringRuleOptions" + queries: + description: Queries for selecting logs which are part of the rule. + items: + $ref: "#/components/schemas/SecurityMonitoringStandardRuleQuery" + type: array + referenceTables: + description: Reference tables for the rule. + items: + $ref: "#/components/schemas/SecurityMonitoringReferenceTable" + type: array + schedulingOptions: + $ref: "#/components/schemas/SecurityMonitoringSchedulingOptions" + tags: + description: Tags for generated signals. + items: + description: Tag. + type: string + type: array + thirdPartyCases: + description: Cases for generating signals from third-party rules. Only available for third-party rules. + example: [] + items: + $ref: "#/components/schemas/SecurityMonitoringThirdPartyRuleCase" + type: array type: - $ref: "#/components/schemas/SlackUserBindingType" + $ref: "#/components/schemas/SecurityMonitoringRuleTypeRead" + updateAuthorId: + description: User ID of the user who updated the rule. + format: int64 + type: integer + updatedAt: + description: The date the rule was last updated, in milliseconds. + format: int64 + type: integer + version: + description: The version of the rule. + format: int64 + type: integer type: object - SlackUserBindingType: - default: team_id - description: Slack user binding resource type. - enum: - - team_id - example: team_id - type: string - x-enum-varnames: - - TEAM_ID - SlackUserBindingsResponse: - description: Response with a list of Slack user bindings. + SecurityMonitoringStandardRuleTestPayload: + description: The payload of a rule to test properties: - data: - description: An array of Slack user bindings. - example: [{"id": "T01234567", "type": "team_id"}, {"id": "T09876543", "type": "team_id"}] + calculatedFields: + description: Calculated fields. Only allowed for scheduled rules - in other words, when schedulingOptions is also defined. items: - $ref: "#/components/schemas/SlackUserBindingData" + $ref: "#/components/schemas/CalculatedField" type: array - required: - - data - type: object - SloDataSource: - default: slo - description: A data source for SLO queries. - enum: - - slo - example: slo - type: string - x-enum-varnames: - - SLO - SloQuery: - description: A query for SLO status, error budget, and burn rate metrics. - example: - additional_query_filters: "*" - data_source: "slo" - group_mode: "overall" - measure: "good_events" - name: "my_slo" - slo_id: "12345678910" - slo_query_type: "metric" - properties: - additional_query_filters: - description: Additional filters applied to the SLO query. - example: "host:host_a,env:prod" + cases: + description: Cases for generating signals. + example: [] + items: + $ref: "#/components/schemas/SecurityMonitoringRuleCaseCreate" + type: array + filters: + description: Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules. + items: + $ref: "#/components/schemas/SecurityMonitoringFilter" + type: array + groupSignalsBy: + description: Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups. + example: + - service + items: + description: Field to group by. + type: string + type: array + hasExtendedTitle: + description: Whether the notifications include the triggering group-by values in their title. + example: true + type: boolean + isEnabled: + description: Whether the rule is enabled. + example: true + type: boolean + message: + description: Message for generated signals. + example: "" type: string - cross_org_uuids: - $ref: "#/components/schemas/CrossOrgUuids" - data_source: - $ref: "#/components/schemas/SloDataSource" - group_mode: - $ref: "#/components/schemas/SlosGroupMode" - measure: - $ref: "#/components/schemas/SlosMeasure" name: - description: The variable name for use in formulas. - example: query1 - type: string - slo_id: - description: The unique identifier of the SLO to query. - example: "a]b123c45de6f78g90h" + description: The name of the rule. + example: My security monitoring rule. type: string - slo_query_type: - $ref: "#/components/schemas/SlosQueryType" + options: + $ref: "#/components/schemas/SecurityMonitoringRuleOptions" + queries: + description: Queries for selecting logs which are part of the rule. + example: [] + items: + $ref: "#/components/schemas/SecurityMonitoringStandardRuleQuery" + type: array + referenceTables: + description: Reference tables for the rule. + items: + $ref: "#/components/schemas/SecurityMonitoringReferenceTable" + type: array + schedulingOptions: + $ref: "#/components/schemas/SecurityMonitoringSchedulingOptions" + tags: + description: Tags for generated signals. + example: + - env:prod + - team:security + items: + description: Tag. + type: string + type: array + thirdPartyCases: + description: Cases for generating signals from third-party rules. Only available for third-party rules. + example: [] + items: + $ref: "#/components/schemas/SecurityMonitoringThirdPartyRuleCaseCreate" + type: array + type: + $ref: "#/components/schemas/SecurityMonitoringRuleTypeTest" required: - - data_source - - slo_id - - measure + - name + - isEnabled + - queries + - options + - cases + - message type: object - SloReportCreateRequest: - description: The SLO report request body. + SecurityMonitoringSuppression: + description: The suppression rule's properties. properties: - data: - $ref: "#/components/schemas/SloReportCreateRequestData" - required: - - data + attributes: + $ref: "#/components/schemas/SecurityMonitoringSuppressionAttributes" + id: + $ref: "#/components/schemas/SecurityMonitoringSuppressionID" + type: + $ref: "#/components/schemas/SecurityMonitoringSuppressionType" type: object - SloReportCreateRequestAttributes: - description: The attributes portion of the SLO report request. + SecurityMonitoringSuppressionAttributes: + description: The attributes of the suppression rule. properties: - from_ts: - description: The `from` timestamp for the report in epoch seconds. - example: 1690901870 + creation_date: + description: A Unix millisecond timestamp given the creation date of the suppression rule. format: int64 type: integer - interval: - $ref: "#/components/schemas/SLOReportInterval" - query: - description: The query string used to filter SLO results. Some examples of queries include `service:` and `slo-name`. - example: "slo_type:metric" + creator: + $ref: "#/components/schemas/SecurityMonitoringUser" + data_exclusion_query: + description: An exclusion query on the input data of the security rules, which could be logs, Agent events, or other types of data based on the security rule. Events matching this query are ignored by any detection rules referenced in the suppression rule. + example: source:cloudtrail account_id:12345 type: string - timezone: - description: The timezone used to determine the start and end of each interval. For example, weekly intervals start at 12am on Sunday in the specified timezone. - example: America/New_York + description: + description: A description for the suppression rule. + example: This rule suppresses low-severity signals in staging environments. type: string - to_ts: - description: The `to` timestamp for the report in epoch seconds. - example: 1706803070 + editable: + description: Whether the suppression rule is editable. + example: true + type: boolean + enabled: + description: Whether the suppression rule is enabled. + example: true + type: boolean + expiration_date: + description: A Unix millisecond timestamp giving an expiration date for the suppression rule. After this date, it won't suppress signals anymore. + example: 1703187336000 format: int64 type: integer - required: - - query - - from_ts - - to_ts + name: + description: The name of the suppression rule. + example: Custom suppression + type: string + rule_query: + description: The rule query of the suppression rule, with the same syntax as the search bar for detection rules. + example: type:log_detection source:cloudtrail + type: string + start_date: + description: A Unix millisecond timestamp giving the start date for the suppression rule. After this date, it starts suppressing signals. + example: 1703187336000 + format: int64 + type: integer + suppression_query: + description: The suppression query of the suppression rule. If a signal matches this query, it is suppressed and not triggered. Same syntax as the queries to search signals in the signal explorer. + example: env:staging status:low + type: string + tags: + description: List of tags associated with the suppression rule. + example: + - technique:T1110-brute-force + - source:cloudtrail + items: + description: A tag string in `key:value` format. + type: string + type: array + update_date: + description: A Unix millisecond timestamp given the update date of the suppression rule. + format: int64 + type: integer + updater: + $ref: "#/components/schemas/SecurityMonitoringUser" + version: + description: The version of the suppression rule; it starts at 1, and is incremented at each update. + example: 42 + format: int32 + maximum: 2147483647 + type: integer type: object - SloReportCreateRequestData: - description: The data portion of the SLO report request. + SecurityMonitoringSuppressionCreateAttributes: + description: Object containing the attributes of the suppression rule to be created. properties: - attributes: - $ref: "#/components/schemas/SloReportCreateRequestAttributes" + data_exclusion_query: + description: An exclusion query on the input data of the security rules, which could be logs, Agent events, or other types of data based on the security rule. Events matching this query are ignored by any detection rules referenced in the suppression rule. + example: source:cloudtrail account_id:12345 + type: string + description: + description: A description for the suppression rule. + example: This rule suppresses low-severity signals in staging environments. + type: string + enabled: + description: Whether the suppression rule is enabled. + example: true + type: boolean + expiration_date: + description: A Unix millisecond timestamp giving an expiration date for the suppression rule. After this date, it won't suppress signals anymore. + example: 1703187336000 + format: int64 + type: integer + name: + description: The name of the suppression rule. + example: Custom suppression + type: string + rule_query: + description: The rule query of the suppression rule, with the same syntax as the search bar for detection rules. + example: type:log_detection source:cloudtrail + type: string + start_date: + description: A Unix millisecond timestamp giving the start date for the suppression rule. After this date, it starts suppressing signals. + example: 1703187336000 + format: int64 + type: integer + suppression_query: + description: The suppression query of the suppression rule. If a signal matches this query, it is suppressed and is not triggered. It uses the same syntax as the queries to search signals in the Signals Explorer. + example: env:staging status:low + type: string + tags: + description: List of tags associated with the suppression rule. + example: + - technique:T1110-brute-force + - source:cloudtrail + items: + description: A tag string in `key:value` format. + type: string + type: array required: - - attributes + - name + - enabled + - rule_query type: object - SloStatusData: - description: The data portion of the SLO status response. + SecurityMonitoringSuppressionCreateData: + description: Object for a single suppression rule. properties: attributes: - $ref: "#/components/schemas/SloStatusDataAttributes" - id: - description: The ID of the SLO. - example: "00000000-0000-0000-0000-000000000000" - type: string + $ref: "#/components/schemas/SecurityMonitoringSuppressionCreateAttributes" type: - $ref: "#/components/schemas/SloStatusType" + $ref: "#/components/schemas/SecurityMonitoringSuppressionType" required: - - id - type - attributes type: object - SloStatusDataAttributes: - description: The attributes of the SLO status. - properties: - error_budget_remaining: - description: The percentage of error budget remaining. - example: 99.5 - format: double - type: number - raw_error_budget_remaining: - $ref: "#/components/schemas/RawErrorBudgetRemaining" - sli: - description: The current Service Level Indicator (SLI) value as a percentage. - example: 99.95 - format: double - type: number - span_precision: - description: The precision of the time span in seconds. - example: 2 - format: int64 - type: integer - state: - description: The current state of the SLO (for example, `breached`, `warning`, `ok`). - example: ok - type: string - required: - - sli - - error_budget_remaining - - raw_error_budget_remaining - - state - - span_precision - type: object - SloStatusResponse: - description: The SLO status response. + SecurityMonitoringSuppressionCreateRequest: + description: Request object that includes the suppression rule that you would like to create. properties: data: - $ref: "#/components/schemas/SloStatusData" + $ref: "#/components/schemas/SecurityMonitoringSuppressionCreateData" required: - data type: object - SloStatusType: - description: The type of the SLO status resource. - enum: - - slo_status - example: slo_status - type: string - x-enum-varnames: - - SLO_STATUS - SlosGroupMode: - description: How SLO results are grouped in the response. - enum: - - overall - - components - example: overall + SecurityMonitoringSuppressionID: + description: The ID of the suppression rule. + example: 3dd-0uc-h1s type: string - x-enum-varnames: - - OVERALL - - COMPONENTS - SlosMeasure: - description: The SLO measurement to retrieve. + SecurityMonitoringSuppressionResponse: + description: Response object containing a single suppression rule. + properties: + data: + $ref: "#/components/schemas/SecurityMonitoringSuppression" + type: object + SecurityMonitoringSuppressionSort: + description: The sort parameters used for querying suppression rules. enum: - - good_events - - bad_events - - slo_status - - error_budget_remaining - - error_budget_remaining_history - - error_budget_burndown - - burn_rate - - slo_status_history - - good_minutes - - bad_minutes - example: slo_status + - name + - start_date + - expiration_date + - update_date + - enabled + - -name + - -start_date + - -expiration_date + - -update_date + - -creation_date + - -enabled type: string x-enum-varnames: - - GOOD_EVENTS - - BAD_EVENTS - - SLO_STATUS - - ERROR_BUDGET_REMAINING - - ERROR_BUDGET_REMAINING_HISTORY - - ERROR_BUDGET_BURNDOWN - - BURN_RATE - - SLO_STATUS_HISTORY - - GOOD_MINUTES - - BAD_MINUTES - SlosQueryType: - description: The type of SLO definition being queried. + - NAME + - START_DATE + - EXPIRATION_DATE + - UPDATE_DATE + - ENABLED + - NAME_DESCENDING + - START_DATE_DESCENDING + - EXPIRATION_DATE_DESCENDING + - UPDATE_DATE_DESCENDING + - CREATION_DATE_DESCENDING + - ENABLED_DESCENDING + SecurityMonitoringSuppressionType: + default: suppressions + description: The type of the resource. The value should always be `suppressions`. enum: - - metric - - time_slice - - monitor - example: metric + - suppressions + example: suppressions type: string x-enum-varnames: - - METRIC - - TIME_SLICE - - MONITOR - Snapshot: - description: A single heatmap snapshot resource returned by create or update operations. - properties: - data: - $ref: "#/components/schemas/SnapshotData" - type: object - SnapshotArray: - description: A list of heatmap snapshots returned by a list operation. + - SUPPRESSIONS + SecurityMonitoringSuppressionUpdateAttributes: + description: The suppression rule properties to be updated. properties: - data: - description: Array of heatmap snapshot data objects. + data_exclusion_query: + description: An exclusion query on the input data of the security rules, which could be logs, Agent events, or other types of data based on the security rule. Events matching this query are ignored by any detection rules referenced in the suppression rule. + example: source:cloudtrail account_id:12345 + type: string + description: + description: A description for the suppression rule. + example: This rule suppresses low-severity signals in staging environments. + type: string + enabled: + description: Whether the suppression rule is enabled. + example: true + type: boolean + expiration_date: + description: A Unix millisecond timestamp giving an expiration date for the suppression rule. After this date, it won't suppress signals anymore. If unset, the expiration date of the suppression rule is left untouched. If set to `null`, the expiration date is removed. + example: 1703187336000 + format: int64 + nullable: true + type: integer + name: + description: The name of the suppression rule. + example: Custom suppression + type: string + rule_query: + description: The rule query of the suppression rule, with the same syntax as the search bar for detection rules. + example: type:log_detection source:cloudtrail + type: string + start_date: + description: A Unix millisecond timestamp giving the start date for the suppression rule. After this date, it starts suppressing signals. If unset, the start date of the suppression rule is left untouched. If set to `null`, the start date is removed. + example: 1703187336000 + format: int64 + nullable: true + type: integer + suppression_query: + description: The suppression query of the suppression rule. If a signal matches this query, it is suppressed and not triggered. Same syntax as the queries to search signals in the signal explorer. + example: env:staging status:low + type: string + tags: + description: List of tags associated with the suppression rule. + example: + - technique:T1110-brute-force + - source:cloudtrail items: - $ref: "#/components/schemas/SnapshotData" + description: A tag string in `key:value` format. + type: string type: array + version: + description: The current version of the suppression. This is optional, but it can help prevent concurrent modifications. + format: int32 + maximum: 2147483647 + type: integer + type: object + SecurityMonitoringSuppressionUpdateData: + description: The new suppression properties; partial updates are supported. + properties: + attributes: + $ref: "#/components/schemas/SecurityMonitoringSuppressionUpdateAttributes" + type: + $ref: "#/components/schemas/SecurityMonitoringSuppressionType" required: - - data + - type + - attributes type: object - SnapshotCreateRequest: - description: Request body for creating a heatmap snapshot. + SecurityMonitoringSuppressionUpdateRequest: + description: Request object containing the fields to update on the suppression rule. properties: data: - $ref: "#/components/schemas/SnapshotCreateRequestData" + $ref: "#/components/schemas/SecurityMonitoringSuppressionUpdateData" required: - data type: object - SnapshotCreateRequestData: - description: Data object for a heatmap snapshot creation request, containing the resource type and attributes. + SecurityMonitoringSuppressionsMeta: + description: Metadata for the suppression list response. properties: - attributes: - $ref: "#/components/schemas/SnapshotCreateRequestDataAttributes" - type: - $ref: "#/components/schemas/SnapshotUpdateRequestDataType" - required: - - type + page: + $ref: "#/components/schemas/SecurityMonitoringSuppressionsPageMeta" type: object - SnapshotCreateRequestDataAttributes: - description: Attributes for creating a heatmap snapshot, including the view, session, event, and device context. + SecurityMonitoringSuppressionsPageMeta: + description: Pagination metadata. properties: - application_id: - description: Unique identifier of the RUM application. - example: aaaaaaaa-1111-2222-3333-bbbbbbbbbbbb - type: string - device_type: - description: Device type used when capturing the snapshot (e.g., desktop, mobile, tablet). - example: desktop - type: string - event_id: - description: Unique identifier of the RUM event associated with the snapshot. - example: 11111111-2222-3333-4444-555555555555 - type: string - is_device_type_selected_by_user: - description: Indicates whether the device type was explicitly selected by the user rather than auto-detected. - example: false - type: boolean - session_id: - description: Unique identifier of the RUM session associated with the snapshot. - type: string - snapshot_name: - description: Human-readable name for the snapshot. - example: My Snapshot - type: string - start: - description: Offset in milliseconds from the start of the session at which the snapshot was captured. + pageNumber: + description: Current page number. example: 0 format: int64 type: integer - view_id: - description: Unique identifier of the RUM view associated with the snapshot. + pageSize: + description: Current page size. + example: 2 + format: int64 + type: integer + totalCount: + description: Total count of suppressions. + example: 2 + format: int64 + type: integer + type: object + SecurityMonitoringSuppressionsResponse: + description: Response object containing the available suppression rules. + properties: + data: + description: A list of suppressions objects. + items: + $ref: "#/components/schemas/SecurityMonitoringSuppression" + type: array + type: object + SecurityMonitoringTerraformBulkExportAttributes: + description: Attributes for the bulk export request. + properties: + resource_ids: + description: The list of resource IDs to export. Maximum 1000 items. + example: + - "" + items: + description: The ID of the resource to export. + type: string + maxItems: 1000 + type: array + required: + - resource_ids + type: object + SecurityMonitoringTerraformBulkExportData: + description: The bulk export request data object. + properties: + attributes: + $ref: "#/components/schemas/SecurityMonitoringTerraformBulkExportAttributes" + type: + description: The JSON:API type. Always `bulk_export_resources`. + example: bulk_export_resources type: string - view_name: - description: URL path or name of the view where the snapshot was captured. - example: /home + required: + - type + - attributes + type: object + SecurityMonitoringTerraformBulkExportRequest: + description: Request body for bulk exporting security monitoring resources to Terraform. + properties: + data: + $ref: "#/components/schemas/SecurityMonitoringTerraformBulkExportData" + required: + - data + type: object + SecurityMonitoringTerraformConvertAttributes: + description: Attributes for the convert request. + properties: + resource_json: + additionalProperties: {} + description: The resource attributes as a JSON object, matching the structure returned by the corresponding Datadog API (for example, the attributes of a suppression rule). + example: + enabled: true + name: Custom suppression + rule_query: type:log_detection source:cloudtrail + suppression_query: env:staging status:low + type: object + required: + - resource_json + type: object + SecurityMonitoringTerraformConvertData: + description: The convert request data object. + properties: + attributes: + $ref: "#/components/schemas/SecurityMonitoringTerraformConvertAttributes" + id: + description: The ID of the resource being converted. + example: abc-123 + type: string + type: + description: The JSON:API type. Always `convert_resource`. + example: convert_resource type: string required: - - view_name - - device_type - - application_id - - snapshot_name - - event_id - - start - - is_device_type_selected_by_user + - type + - id + - attributes type: object - SnapshotData: - description: Data object representing a heatmap snapshot, including its identifier, type, and attributes. + SecurityMonitoringTerraformConvertRequest: + description: Request body for converting a security monitoring resource JSON to Terraform. + properties: + data: + $ref: "#/components/schemas/SecurityMonitoringTerraformConvertData" + required: + - data + type: object + SecurityMonitoringTerraformExportAttributes: + description: Attributes of the Terraform export response. + properties: + output: + description: The Terraform configuration for the resource. + type: string + resource_id: + description: The ID of the exported resource. + example: abc-123 + type: string + type_name: + description: The Terraform resource type name. + example: datadog_security_monitoring_suppression + type: string + required: + - type_name + - resource_id + type: object + SecurityMonitoringTerraformExportData: + description: The Terraform export data object. properties: attributes: - $ref: "#/components/schemas/SnapshotDataAttributes" + $ref: "#/components/schemas/SecurityMonitoringTerraformExportAttributes" id: - description: Unique identifier of the heatmap snapshot. - readOnly: true + description: The resource identifier composed of the Terraform type name and the resource ID separated by `|`. + example: datadog_security_monitoring_suppression|abc-123 type: string type: - $ref: "#/components/schemas/SnapshotUpdateRequestDataType" + description: The JSON:API type. Always `format_resource`. + example: format_resource + type: string required: - type + - id + - attributes type: object - SnapshotDataAttributes: - description: Attributes of a heatmap snapshot, including view context, device information, and audit metadata. + SecurityMonitoringTerraformExportResponse: + description: Response containing the Terraform configuration for a security monitoring resource. properties: - application_id: - description: Unique identifier of the RUM application. + data: + $ref: "#/components/schemas/SecurityMonitoringTerraformExportData" + type: object + SecurityMonitoringTerraformResourceType: + description: The type of security monitoring resource to export to Terraform. + enum: + - suppressions + - critical_assets + - security_filters + - rules + type: string + x-enum-varnames: + - SUPPRESSIONS + - CRITICAL_ASSETS + - SECURITY_FILTERS + - RULES + SecurityMonitoringThirdPartyRootQuery: + description: A query to be combined with the third party case query. + properties: + groupByFields: + description: Fields to group by. + items: + description: Field. + type: string + type: array + query: + description: Query to run on logs. + example: source:cloudtrail type: string - created_at: - description: Timestamp when the snapshot was created. - format: date-time - readOnly: true + type: object + SecurityMonitoringThirdPartyRuleCase: + description: Case when signal is generated by a third party rule. + properties: + customStatus: + $ref: "#/components/schemas/SecurityMonitoringRuleSeverity" + name: + description: Name of the case. type: string - created_by: - description: Display name of the user who created the snapshot. - readOnly: true + notifications: + description: Notification targets for each rule case. + items: + description: Notification. + type: string + type: array + query: + description: A query to map a third party event to this case. type: string - created_by_handle: - description: Email handle of the user who created the snapshot. - readOnly: true + status: + $ref: "#/components/schemas/SecurityMonitoringRuleSeverity" + type: object + SecurityMonitoringThirdPartyRuleCaseCreate: + description: Case when a signal is generated by a third party rule. + properties: + name: + description: Name of the case. type: string - created_by_user_id: - description: Numeric identifier of the user who created the snapshot. - format: int64 - readOnly: true - type: integer - device_type: - description: Device type used when capturing the snapshot (e.g., desktop, mobile, tablet). + notifications: + description: Notification targets for each case. + items: + description: Notification. + type: string + type: array + query: + description: A query to map a third party event to this case. type: string - event_id: - description: Unique identifier of the RUM event associated with the snapshot. + status: + $ref: "#/components/schemas/SecurityMonitoringRuleSeverity" + required: + - status + type: object + SecurityMonitoringTriageUser: + description: Object representing a given user entity. + properties: + handle: + description: The handle for this user account. type: string - is_device_type_selected_by_user: - description: Indicates whether the device type was explicitly selected by the user rather than auto-detected. - type: boolean - modified_at: - description: Timestamp when the snapshot was last modified. - format: date-time + icon: + description: Gravatar icon associated to the user. + example: /path/to/matching/gravatar/icon readOnly: true type: string - org_id: - description: Numeric identifier of the organization that owns the snapshot. + id: + description: Numerical ID assigned by Datadog to this user account. format: int64 - readOnly: true type: integer - session_id: - description: Unique identifier of the RUM session associated with the snapshot. + name: + description: The name for this user account. + nullable: true type: string - snapshot_name: - description: Human-readable name for the snapshot. + uuid: + description: UUID assigned by Datadog to this user account. + example: 773b045d-ccf8-4808-bd3b-955ef6a8c940 type: string - start: - description: Offset in milliseconds from the start of the session at which the snapshot was captured. - format: int64 - type: integer - view_id: - description: Unique identifier of the RUM view associated with the snapshot. + required: + - uuid + type: object + SecurityMonitoringUser: + description: A user. + properties: + handle: + description: The handle of the user. + example: john.doe@datadoghq.com type: string - view_name: - description: URL path or name of the view where the snapshot was captured. + name: + description: The name of the user. + example: John Doe + nullable: true type: string type: object - SnapshotUpdateRequest: - description: Request body for updating a heatmap snapshot. + SecurityTrigger: + description: "Trigger a workflow from a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published." properties: - data: - $ref: "#/components/schemas/SnapshotUpdateRequestData" + rateLimit: + $ref: "#/components/schemas/TriggerRateLimit" + type: object + SecurityTriggerWrapper: + description: "Schema for a Security-based trigger." + properties: + securityTrigger: + $ref: "#/components/schemas/SecurityTrigger" + startStepNames: + $ref: "#/components/schemas/StartStepNames" required: - - data + - securityTrigger type: object - SnapshotUpdateRequestData: - description: Data object for a heatmap snapshot update request, containing the resource identifier, type, and attributes. + Selectors: + description: |- + Selectors are used to filter security issues for which notifications should be generated. + Users can specify rule severities, rule types, a query to filter security issues on tags and attributes, and the trigger source. + Only the trigger_source field is required. properties: - attributes: - $ref: "#/components/schemas/SnapshotUpdateRequestDataAttributes" - id: - description: Unique identifier of the heatmap snapshot to update. - example: 00000000-0000-0000-0000-000000000001 + query: + $ref: "#/components/schemas/NotificationRuleQuery" + rule_types: + $ref: "#/components/schemas/RuleTypes" + severities: + description: The security rules severities to consider. + items: + $ref: "#/components/schemas/RuleSeverity" + type: array + trigger_source: + $ref: "#/components/schemas/TriggerSource" + required: + - trigger_source + type: object + SelfServiceTriggerWrapper: + description: "Schema for a Self Service-based trigger." + properties: + selfServiceTrigger: + description: "Trigger a workflow from Self Service." + type: object + startStepNames: + $ref: "#/components/schemas/StartStepNames" + required: + - selfServiceTrigger + type: object + SendSlackMessageAction: + description: "Sends a message to a Slack channel." + properties: + channel: + description: "The channel ID." + example: CHANNEL type: string type: - $ref: "#/components/schemas/SnapshotUpdateRequestDataType" + $ref: "#/components/schemas/SendSlackMessageActionType" + workspace: + description: "The workspace ID." + example: WORKSPACE + type: string required: - type + - channel + - workspace type: object - SnapshotUpdateRequestDataAttributes: - description: Attributes for updating a heatmap snapshot, including event, session, and view context. + SendSlackMessageActionType: + default: send_slack_message + description: "Indicates that the action is a send Slack message action." + enum: + - send_slack_message + example: send_slack_message + type: string + x-enum-varnames: + - SEND_SLACK_MESSAGE + SendTeamsMessageAction: + description: "Sends a message to a Microsoft Teams channel." properties: - event_id: - description: Unique identifier of the RUM event associated with the snapshot. - example: 11111111-2222-3333-4444-555555555555 + channel: + description: The channel ID. + example: CHANNEL type: string - is_device_type_selected_by_user: - description: Indicates whether the device type was explicitly selected by the user rather than auto-detected. - example: false - type: boolean - session_id: - description: Unique identifier of the RUM session associated with the snapshot. + team: + description: The team ID. + example: TEAM type: string - start: - description: Offset in milliseconds from the start of the session at which the snapshot was captured. - example: 0 - format: int64 - type: integer - view_id: - description: Unique identifier of the RUM view associated with the snapshot. + tenant: + description: The tenant ID. + example: TENANT type: string + type: + $ref: "#/components/schemas/SendTeamsMessageActionType" required: - - event_id - - start - - is_device_type_selected_by_user + - type + - channel + - tenant + - team type: object - SnapshotUpdateRequestDataType: - default: snapshots - description: Snapshots resource type. + SendTeamsMessageActionType: + default: send_teams_message + description: "Indicates that the action is a send Microsoft Teams message action." enum: - - snapshots - example: snapshots + - send_teams_message + example: send_teams_message type: string x-enum-varnames: - - SNAPSHOTS - SnowflakeAccountUsageMetricsIntegrationDataflowRequest: - additionalProperties: false - description: >- - Account-level usage metrics read from the Snowflake `ACCOUNT_USAGE` schema, covering storage usage, credit consumption, and query activity. - properties: - enabled: - description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. - example: true - type: boolean - settings: - $ref: "#/components/schemas/SnowflakeAccountUsageMetricsIntegrationDataflowSettingsRequest" - type: object - SnowflakeAccountUsageMetricsIntegrationDataflowResponse: - description: >- - Account-level usage metrics read from the Snowflake `ACCOUNT_USAGE` schema, covering storage usage, credit consumption, and query activity. + - SEND_TEAMS_MESSAGE + SensitiveDataScannerConfigRequest: + description: Group reorder request. properties: - enabled: - description: Whether Datadog collects this data. - example: true - type: boolean - settings: - $ref: "#/components/schemas/SnowflakeAccountUsageMetricsIntegrationDataflowSettingsResponse" + data: + $ref: "#/components/schemas/SensitiveDataScannerReorderConfig" + meta: + $ref: "#/components/schemas/SensitiveDataScannerMetaVersionOnly" + required: + - data + - meta type: object - SnowflakeAccountUsageMetricsIntegrationDataflowSettingsRequest: - additionalProperties: false - description: Settings of the account usage metrics dataflow. Only the fields provided are changed. + SensitiveDataScannerConfiguration: + description: A Sensitive Data Scanner configuration. properties: - account_usage_metrics_aggregate_last_24h: - description: >- - The period each metric aggregates over. Set to `true` to aggregate the past 24 hours on a rolling basis, or `false` to aggregate the current day so far. Defaults to `false`. - example: false - type: boolean + id: + description: ID of the configuration. + type: string + type: + $ref: "#/components/schemas/SensitiveDataScannerConfigurationType" type: object - SnowflakeAccountUsageMetricsIntegrationDataflowSettingsResponse: - description: Settings of the account usage metrics dataflow. + SensitiveDataScannerConfigurationData: + description: A Sensitive Data Scanner configuration data. properties: - account_usage_metrics_aggregate_last_24h: - description: >- - The period each metric aggregates over. When `true`, metrics aggregate the past 24 hours on a rolling basis; when `false`, they aggregate the current day so far. - example: false - type: boolean + data: + $ref: "#/components/schemas/SensitiveDataScannerConfiguration" type: object - SnowflakeCloudCostMetricsIntegrationDataflowRequest: - additionalProperties: false - description: >- - Cost data aggregated from the Snowflake `ORGANIZATION_USAGE` schema. [Cloud Cost Management](https://docs.datadoghq.com/cloud_cost_management/) must be enabled for your organization while this dataflow is enabled. Any request that enables this dataflow without Cloud Cost Management is rejected with a `422` response. The Snowflake role also needs the ORGANIZATION_BILLING_VIEWER database role to read the underlying cost views; without that role this dataflow collects no data. + SensitiveDataScannerConfigurationRelationships: + description: Relationships of the configuration. properties: - enabled: - description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. - example: true - type: boolean - settings: - $ref: "#/components/schemas/SnowflakeCloudCostMetricsIntegrationDataflowSettingsRequest" + groups: + $ref: "#/components/schemas/SensitiveDataScannerGroupList" type: object - SnowflakeCloudCostMetricsIntegrationDataflowResponse: - description: >- - Cost data aggregated from the Snowflake `ORGANIZATION_USAGE` schema. Requires [Cloud Cost Management](https://docs.datadoghq.com/cloud_cost_management/) to be set up for your organization, and the ORGANIZATION_BILLING_VIEWER database role on the Snowflake role; without both this dataflow collects no data. + SensitiveDataScannerConfigurationType: + default: sensitive_data_scanner_configuration + description: Sensitive Data Scanner configuration type. + enum: + - sensitive_data_scanner_configuration + example: sensitive_data_scanner_configuration + type: string + x-enum-varnames: + - SENSITIVE_DATA_SCANNER_CONFIGURATIONS + SensitiveDataScannerCreateGroupResponse: + description: Create group response. properties: - enabled: - description: Whether Datadog collects this data. - example: true - type: boolean - settings: - $ref: "#/components/schemas/SnowflakeCloudCostMetricsIntegrationDataflowSettingsResponse" + data: + $ref: "#/components/schemas/SensitiveDataScannerGroupResponse" + meta: + $ref: "#/components/schemas/SensitiveDataScannerMetaVersionOnly" type: object - SnowflakeCloudCostMetricsIntegrationDataflowSettingsRequest: - additionalProperties: false - description: Settings of the Cloud Cost Management dataflow. Only the fields provided are changed. + SensitiveDataScannerCreateRuleResponse: + description: Create rule response. properties: - query_tags: - description: >- - Snowflake query tags to ingest, so that cost data can be broken down by them in Cloud Cost Management. Provide the tag names as a comma-separated list without spaces, using only letters, digits, underscores, dots, and hyphens. Datadog does not collect query tags by default. - example: env,team,cost_center - pattern: "^([a-zA-Z0-9_.-]+(,[a-zA-Z0-9_.-]+)*)?$" - type: string + data: + $ref: "#/components/schemas/SensitiveDataScannerRuleResponse" + meta: + $ref: "#/components/schemas/SensitiveDataScannerMetaVersionOnly" type: object - SnowflakeCloudCostMetricsIntegrationDataflowSettingsResponse: - description: Settings of the Cloud Cost Management dataflow. + SensitiveDataScannerFilter: + description: Filter for the Scanning Group. properties: - query_tags: - description: >- - Snowflake query tags ingested as a comma-separated list of tag names, so that cost data can be broken down by them in Cloud Cost Management. - example: env,team,cost_center + query: + description: Query to filter the events. type: string type: object - SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowRequest: - additionalProperties: false - description: >- - Data Observability, which collects lineage and data quality information from your Snowflake databases so you can explore how data flows and detect and resolve quality issues. - properties: - enabled: - description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. - example: true - type: boolean - settings: - $ref: "#/components/schemas/SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsRequest" - type: object - SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowResponse: - description: >- - Data Observability, which collects lineage and data quality information from your Snowflake databases so you can explore how data flows and detect and resolve quality issues. + SensitiveDataScannerGetConfigIncludedArray: + description: Included objects from relationships. + items: + $ref: "#/components/schemas/SensitiveDataScannerGetConfigIncludedItem" + type: array + SensitiveDataScannerGetConfigIncludedItem: + description: An object related to the configuration. + oneOf: + - $ref: "#/components/schemas/SensitiveDataScannerRuleIncludedItem" + - $ref: "#/components/schemas/SensitiveDataScannerGroupIncludedItem" + SensitiveDataScannerGetConfigResponse: + description: Get all groups response. properties: - enabled: - description: Whether Datadog collects this data. - example: true - type: boolean - settings: - $ref: "#/components/schemas/SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsResponse" + data: + $ref: "#/components/schemas/SensitiveDataScannerGetConfigResponseData" + included: + $ref: "#/components/schemas/SensitiveDataScannerGetConfigIncludedArray" + meta: + $ref: "#/components/schemas/SensitiveDataScannerMeta" type: object - SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsRequest: - additionalProperties: false - description: Settings of the Data Observability dataflow. Only the fields provided are changed. + SensitiveDataScannerGetConfigResponseData: + description: Response data related to the scanning groups. properties: - do_table_crawler_cron: - description: >- - Cron expression setting how often Datadog crawls your Snowflake table metadata. It takes the five standard fields, with the restriction that the month must be `*` and that the day of the month and the day of the week cannot both be constrained. Common values are hourly (`0 * * * *`) and daily (`0 0 * * *`). Defaults to hourly (`0 * * * *`). - example: "0 */6 * * *" + attributes: + additionalProperties: {} + description: Attributes of the Sensitive Data configuration. + type: object + id: + description: ID of the configuration. type: string - sync_snowflake_system_database: - description: >- - Whether metadata from the Snowflake `SNOWFLAKE` system database is included in Data Observability alongside your own databases. Defaults to `true`. - example: true - type: boolean + relationships: + $ref: "#/components/schemas/SensitiveDataScannerConfigurationRelationships" + type: + $ref: "#/components/schemas/SensitiveDataScannerConfigurationType" type: object - SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsResponse: - description: Settings of the Data Observability dataflow. + SensitiveDataScannerGroup: + description: A scanning group. properties: - do_table_crawler_cron: - description: Cron expression setting how often Datadog crawls your Snowflake table metadata. - example: "0 */6 * * *" + id: + description: ID of the group. type: string - sync_snowflake_system_database: - description: >- - Whether metadata from the Snowflake `SNOWFLAKE` system database is included in Data Observability alongside your own databases. - example: true - type: boolean - type: object - SnowflakeEventTableLogsIntegrationDataflowRequest: - additionalProperties: false - description: >- - Records from your Snowflake event tables, used to monitor application behavior and identify issues. `enabled` turns the dataflow on and off as a whole, and the per-record-type toggles in `settings` select which kinds of record it collects while it is on. The Snowflake role needs usage granted on the database, the schema, and the event table itself; without those grants this dataflow collects no data. - properties: - enabled: - description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. - example: true - type: boolean - settings: - $ref: "#/components/schemas/SnowflakeEventTableLogsIntegrationDataflowSettingsRequest" - type: object - SnowflakeEventTableLogsIntegrationDataflowResponse: - description: >- - Records from your Snowflake event tables, used to monitor application behavior and identify issues. `enabled` turns the dataflow on and off as a whole, and the per-record-type toggles in `settings` select which kinds of record it collects while it is on. The Snowflake role needs usage granted on the database, the schema, and the event table itself; without those grants this dataflow collects no data. - properties: - enabled: - description: Whether Datadog collects this data. - example: true - type: boolean - settings: - $ref: "#/components/schemas/SnowflakeEventTableLogsIntegrationDataflowSettingsResponse" - type: object - SnowflakeEventTableLogsIntegrationDataflowSettingsRequest: - additionalProperties: false - description: >- - Settings of the event table dataflow. Each record type is collected independently so that you can control ingestion costs, and every record type is ingested into Datadog as logs tagged with its `record_type`. Only the fields provided are changed. - properties: - event_table_events_enabled: - description: >- - Whether records with a `record_type` of `event` are collected. Defaults to `false`. - example: true - type: boolean - event_table_logs_enabled: - description: >- - Whether records with a `record_type` of `log` are collected. Defaults to `false`. - example: true - type: boolean - event_table_logs_interval_min: - description: >- - How often event table records are collected, in minutes. One of `5`, `15`, `30`, `60`, or `1440`. Defaults to `5`. - example: 15 - format: int64 - type: integer - event_table_span_events_enabled: - description: >- - Whether records with a `record_type` of `span_event` are collected. Defaults to `false`. - example: false - type: boolean - event_table_spans_enabled: - description: >- - Whether records with a `record_type` of `span` are collected. Defaults to `false`. - example: false - type: boolean + type: + $ref: "#/components/schemas/SensitiveDataScannerGroupType" type: object - SnowflakeEventTableLogsIntegrationDataflowSettingsResponse: - description: >- - Settings of the event table dataflow. Each record type is collected independently so that you can control ingestion costs, and every record type is ingested into Datadog as logs tagged with its `record_type`. + SensitiveDataScannerGroupAttributes: + description: Attributes of the Sensitive Data Scanner group. properties: - event_table_events_enabled: - description: Whether records with a `record_type` of `event` are collected. - example: true - type: boolean - event_table_logs_enabled: - description: Whether records with a `record_type` of `log` are collected. - example: true - type: boolean - event_table_logs_interval_min: - description: How often event table records are collected, in minutes. - example: 15 - format: int64 - type: integer - event_table_span_events_enabled: - description: Whether records with a `record_type` of `span_event` are collected. - example: false - type: boolean - event_table_spans_enabled: - description: Whether records with a `record_type` of `span` are collected. - example: false + description: + description: Description of the group. + type: string + filter: + $ref: "#/components/schemas/SensitiveDataScannerFilter" + is_enabled: + description: Whether or not the group is enabled. type: boolean - type: object - SnowflakeIntegrationAccountAuthenticationRequest: - description: Authentication for creating the Snowflake integration account. Exactly one method is set. - oneOf: - - $ref: "#/components/schemas/SnowflakeIntegrationAccountPrivateKeyAuthRequest" - SnowflakeIntegrationAccountAuthenticationResponse: - description: Authentication configured on the Snowflake integration account. - oneOf: - - $ref: "#/components/schemas/SnowflakeIntegrationAccountPrivateKeyAuthResponse" - SnowflakeIntegrationAccountAuthenticationUpdate: - description: Authentication for updating the Snowflake integration account. Exactly one method is set. - oneOf: - - $ref: "#/components/schemas/SnowflakeIntegrationAccountPrivateKeyAuthUpdate" - SnowflakeIntegrationAccountCreateAttributes: - description: Writable attributes used to create a Snowflake integration account. - properties: - authentication: - $ref: "#/components/schemas/SnowflakeIntegrationAccountAuthenticationRequest" - dataflows: - $ref: "#/components/schemas/SnowflakeIntegrationDataflowsRequest" name: - description: |- - Human-readable name of the Snowflake integration account. Must be - unique within your Datadog organization. - example: prod-snowflake + description: Name of the group. type: string - settings: - $ref: "#/components/schemas/SnowflakeIntegrationAccountSettingsRequest" - required: - - name - - authentication - - settings + product_list: + description: List of products the scanning group applies. + items: + $ref: "#/components/schemas/SensitiveDataScannerProduct" + type: array + samplings: + description: List of sampling rates per product type. + items: + $ref: "#/components/schemas/SensitiveDataScannerSamplings" + type: array type: object - SnowflakeIntegrationAccountCreateData: - description: Data envelope for creating a Snowflake integration account. + SensitiveDataScannerGroupCreate: + description: Data related to the creation of a group. properties: attributes: - $ref: "#/components/schemas/SnowflakeIntegrationAccountCreateAttributes" + $ref: "#/components/schemas/SensitiveDataScannerGroupAttributes" + relationships: + $ref: "#/components/schemas/SensitiveDataScannerGroupRelationships" type: - $ref: "#/components/schemas/IntegrationAccountType" + $ref: "#/components/schemas/SensitiveDataScannerGroupType" required: - type - attributes type: object - SnowflakeIntegrationAccountCreateRequest: - description: Request payload to create a Snowflake integration account. + SensitiveDataScannerGroupCreateRequest: + description: Create group request. properties: data: - $ref: "#/components/schemas/SnowflakeIntegrationAccountCreateData" - required: - - data - type: object - SnowflakeIntegrationAccountPrivateKeyAuthRequest: - additionalProperties: false - description: >- - RSA key pair authentication, the only method Snowflake integration accounts support. Generate an RSA key pair and assign the public key to the Snowflake user named in `settings.username`. - properties: - auth_type: - $ref: "#/components/schemas/SnowflakeIntegrationAccountPrivateKeyAuthType" - private_key: - description: The private key, in PEM format. - example: "-----BEGIN PRIVATE KEY-----\nMIIE...\n-----END PRIVATE KEY-----" - type: string - writeOnly: true - private_key_name: - description: Name that distinguishes this private key from other keys in Datadog. - example: my-rsa-key - type: string - private_key_passphrase: - description: >- - Passphrase that decrypts the private key. Provide it only when the key is encrypted. - example: your-private-key-passphrase - type: string - writeOnly: true - required: - - auth_type - - private_key_name - - private_key - type: object - SnowflakeIntegrationAccountPrivateKeyAuthResponse: - description: The RSA key pair authentication method configured on the account. - properties: - auth_type: - $ref: "#/components/schemas/SnowflakeIntegrationAccountPrivateKeyAuthType" - private_key_name: - description: Name that distinguishes this private key from other keys in Datadog. - example: my-rsa-key - type: string - required: - - auth_type - - private_key_name + $ref: "#/components/schemas/SensitiveDataScannerGroupCreate" + meta: + $ref: "#/components/schemas/SensitiveDataScannerMetaVersionOnly" type: object - SnowflakeIntegrationAccountPrivateKeyAuthType: - default: snowflake_private_key - description: The authentication method type. - enum: - - snowflake_private_key - example: snowflake_private_key - type: string - x-enum-varnames: - - SNOWFLAKE_PRIVATE_KEY - SnowflakeIntegrationAccountPrivateKeyAuthUpdate: - additionalProperties: false - description: >- - RSA key pair authentication, the only method Snowflake integration accounts support. Only the fields provided are changed; omit `private_key` to keep the stored one. + SensitiveDataScannerGroupData: + description: A scanning group data. properties: - auth_type: - $ref: "#/components/schemas/SnowflakeIntegrationAccountPrivateKeyAuthType" - private_key: - description: The private key, in PEM format. - example: "-----BEGIN PRIVATE KEY-----\nMIIE...\n-----END PRIVATE KEY-----" - type: string - writeOnly: true - private_key_name: - description: Name that distinguishes this private key from other keys in Datadog. - example: my-rsa-key - type: string - private_key_passphrase: - description: >- - Passphrase that decrypts the private key. Provide it only when the key is encrypted. Omit it to keep the stored passphrase, send `null` or an empty string to remove it, or send a value to replace it. - example: your-private-key-passphrase - nullable: true - type: string - writeOnly: true - required: - - auth_type + data: + $ref: "#/components/schemas/SensitiveDataScannerGroup" type: object - SnowflakeIntegrationAccountResponse: - description: Response payload for a single Snowflake integration account. + SensitiveDataScannerGroupDeleteRequest: + description: Delete group request. properties: - data: - $ref: "#/components/schemas/SnowflakeIntegrationAccountResponseData" + meta: + $ref: "#/components/schemas/SensitiveDataScannerMetaVersionOnly" required: - - data + - meta type: object - SnowflakeIntegrationAccountResponseAttributes: - description: Attributes of a Snowflake integration account returned in responses. + SensitiveDataScannerGroupDeleteResponse: + description: Delete group response. properties: - authentication: - $ref: "#/components/schemas/SnowflakeIntegrationAccountAuthenticationResponse" - dataflows: - $ref: "#/components/schemas/SnowflakeIntegrationDataflowsResponse" - name: - description: Human-readable name of the Snowflake integration account. - example: prod-snowflake - type: string - settings: - $ref: "#/components/schemas/SnowflakeIntegrationAccountSettingsResponse" - required: - - name - - settings + meta: + $ref: "#/components/schemas/SensitiveDataScannerMetaVersionOnly" type: object - SnowflakeIntegrationAccountResponseData: - description: Data envelope of a Snowflake integration account, including server-assigned identity. + SensitiveDataScannerGroupIncludedItem: + description: A Scanning Group included item. properties: attributes: - $ref: "#/components/schemas/SnowflakeIntegrationAccountResponseAttributes" + $ref: "#/components/schemas/SensitiveDataScannerGroupAttributes" id: - description: Server-generated unique identifier of the Snowflake integration account. - example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 - readOnly: true + description: ID of the group. type: string + relationships: + $ref: "#/components/schemas/SensitiveDataScannerGroupRelationships" type: - $ref: "#/components/schemas/IntegrationAccountType" - required: - - id - - attributes - - type + $ref: "#/components/schemas/SensitiveDataScannerGroupType" type: object - SnowflakeIntegrationAccountSettingsRequest: - additionalProperties: false - description: Settings for creating the Snowflake integration account. + SensitiveDataScannerGroupItem: + description: Data related to a Sensitive Data Scanner Group. properties: - snowflake_account_identifier: - description: >- - Identifier of the Snowflake account to monitor, either as `organization-account` or as the legacy `account_name.region_id.cloud_provider` account locator. An account identifier can be configured once per Datadog organization; reusing one is rejected with a `422` response. Accounts reached through AWS PrivateLink are not supported. - example: myorg-myaccount - type: string - username: - description: >- - Snowflake user Datadog authenticates as. Create a dedicated user for Datadog and grant it a role with access to the data you want to collect. - example: datadog_user + id: + description: ID of the group. type: string - required: - - snowflake_account_identifier - - username + type: + $ref: "#/components/schemas/SensitiveDataScannerGroupType" type: object - SnowflakeIntegrationAccountSettingsResponse: - description: Settings configured on the Snowflake integration account. + SensitiveDataScannerGroupList: + description: List of groups, ordered. properties: - snowflake_account_identifier: - description: Identifier of the Snowflake account being monitored. - example: myorg-myaccount - type: string - username: - description: Snowflake user Datadog authenticates as. - example: datadog_user - type: string - required: - - snowflake_account_identifier - - username + data: + description: List of groups. The order is important. + items: + $ref: "#/components/schemas/SensitiveDataScannerGroupItem" + type: array type: object - SnowflakeIntegrationAccountSettingsUpdate: - additionalProperties: false - description: Settings for updating the Snowflake integration account. Only the fields provided are changed. + SensitiveDataScannerGroupRelationships: + description: Relationships of the group. properties: - snowflake_account_identifier: - description: >- - Identifier of the Snowflake account to monitor, either as `organization-account` or as the legacy `account_name.region_id.cloud_provider` account locator. An account identifier can be configured once per Datadog organization; reusing one is rejected with a `422` response. Accounts reached through AWS PrivateLink are not supported. - example: myorg-myaccount - type: string - username: - description: >- - Snowflake user Datadog authenticates as. Create a dedicated user for Datadog and grant it a role with access to the data you want to collect. - example: datadog_user - type: string + configuration: + $ref: "#/components/schemas/SensitiveDataScannerConfigurationData" + rules: + $ref: "#/components/schemas/SensitiveDataScannerRuleData" type: object - SnowflakeIntegrationAccountUpdateAttributes: - description: >- - Writable attributes used to update a Snowflake integration account. Every field is optional; only the fields provided are changed. When `dataflows` is provided, only the dataflow ids included in the request are modified; dataflows omitted from the map keep their current configuration, as do the settings of an included dataflow that provides only `enabled`. + SensitiveDataScannerGroupResponse: + description: Response data related to the creation of a group. properties: - authentication: - $ref: "#/components/schemas/SnowflakeIntegrationAccountAuthenticationUpdate" - dataflows: - $ref: "#/components/schemas/SnowflakeIntegrationDataflowsRequest" - name: - description: |- - Human-readable name of the Snowflake integration account. Must be - unique within your Datadog organization. - example: prod-snowflake + attributes: + $ref: "#/components/schemas/SensitiveDataScannerGroupAttributes" + id: + description: ID of the group. type: string - settings: - $ref: "#/components/schemas/SnowflakeIntegrationAccountSettingsUpdate" + relationships: + $ref: "#/components/schemas/SensitiveDataScannerGroupRelationships" + type: + $ref: "#/components/schemas/SensitiveDataScannerGroupType" type: object - SnowflakeIntegrationAccountUpdateData: - description: Data envelope for updating a Snowflake integration account. + SensitiveDataScannerGroupType: + default: sensitive_data_scanner_group + description: Sensitive Data Scanner group type. + enum: + - sensitive_data_scanner_group + example: sensitive_data_scanner_group + type: string + x-enum-varnames: + - SENSITIVE_DATA_SCANNER_GROUP + SensitiveDataScannerGroupUpdate: + description: Data related to the update of a group. properties: attributes: - $ref: "#/components/schemas/SnowflakeIntegrationAccountUpdateAttributes" + $ref: "#/components/schemas/SensitiveDataScannerGroupAttributes" id: - description: Unique identifier of the Snowflake integration account to update. - example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 + description: ID of the group. type: string + relationships: + $ref: "#/components/schemas/SensitiveDataScannerGroupRelationships" type: - $ref: "#/components/schemas/IntegrationAccountType" - required: - - id - - type - - attributes + $ref: "#/components/schemas/SensitiveDataScannerGroupType" type: object - SnowflakeIntegrationAccountUpdateRequest: - description: Request payload to update a Snowflake integration account. + SensitiveDataScannerGroupUpdateRequest: + description: Update group request. properties: data: - $ref: "#/components/schemas/SnowflakeIntegrationAccountUpdateData" + $ref: "#/components/schemas/SensitiveDataScannerGroupUpdate" + meta: + $ref: "#/components/schemas/SensitiveDataScannerMetaVersionOnly" required: - data + - meta type: object - SnowflakeIntegrationAccountsResponse: - description: Response payload for a list of Snowflake integration accounts. + SensitiveDataScannerGroupUpdateResponse: + description: Update group response. properties: - data: - description: List of Snowflake integration accounts. - items: - $ref: "#/components/schemas/SnowflakeIntegrationAccountResponseData" - type: array - required: - - data + meta: + $ref: "#/components/schemas/SensitiveDataScannerMetaVersionOnly" type: object - SnowflakeIntegrationDataflowsRequest: - additionalProperties: false - description: >- - Data Datadog collects from Snowflake, keyed by dataflow id. Each dataflow turns on a distinct kind of collection: set `enabled` to start or stop it, and use `settings` to configure what it collects. Defaults listed on each dataflow apply when the account is created; on update, omitted fields keep their current values. Every dataflow reads from Snowflake as the user in `settings.username`, so that user's role must be granted access to the underlying views; a dataflow enabled without those grants is stored but collects no data. + SensitiveDataScannerIncludedKeywordConfiguration: + description: |- + Object defining a set of keywords and a number of characters that help reduce noise. + You can provide a list of keywords you would like to check within a defined proximity of the matching pattern. + If any of the keywords are found within the proximity check, the match is kept. + If none are found, the match is discarded. properties: - snowflake-account-usage-metrics: - $ref: "#/components/schemas/SnowflakeAccountUsageMetricsIntegrationDataflowRequest" - snowflake-cloud-cost-metrics: - $ref: "#/components/schemas/SnowflakeCloudCostMetricsIntegrationDataflowRequest" - snowflake-data-observability-quality-monitoring: - $ref: "#/components/schemas/SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowRequest" - snowflake-event-table-logs: - $ref: "#/components/schemas/SnowflakeEventTableLogsIntegrationDataflowRequest" - snowflake-organization-usage-metrics: - $ref: "#/components/schemas/SnowflakeOrganizationUsageMetricsIntegrationDataflowRequest" - snowflake-query-history-logs: - $ref: "#/components/schemas/SnowflakeQueryHistoryLogsIntegrationDataflowRequest" - snowflake-security-logs: - $ref: "#/components/schemas/SnowflakeSecurityLogsIntegrationDataflowRequest" - snowflake-task-history-logs: - $ref: "#/components/schemas/SnowflakeTaskHistoryLogsIntegrationDataflowRequest" - type: object - SnowflakeIntegrationDataflowsResponse: - description: Data Datadog collects from Snowflake, keyed by dataflow id. - properties: - snowflake-account-usage-metrics: - $ref: "#/components/schemas/SnowflakeAccountUsageMetricsIntegrationDataflowResponse" - snowflake-cloud-cost-metrics: - $ref: "#/components/schemas/SnowflakeCloudCostMetricsIntegrationDataflowResponse" - snowflake-data-observability-quality-monitoring: - $ref: "#/components/schemas/SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowResponse" - snowflake-event-table-logs: - $ref: "#/components/schemas/SnowflakeEventTableLogsIntegrationDataflowResponse" - snowflake-organization-usage-metrics: - $ref: "#/components/schemas/SnowflakeOrganizationUsageMetricsIntegrationDataflowResponse" - snowflake-query-history-logs: - $ref: "#/components/schemas/SnowflakeQueryHistoryLogsIntegrationDataflowResponse" - snowflake-security-logs: - $ref: "#/components/schemas/SnowflakeSecurityLogsIntegrationDataflowResponse" - snowflake-task-history-logs: - $ref: "#/components/schemas/SnowflakeTaskHistoryLogsIntegrationDataflowResponse" - type: object - SnowflakeOrganizationUsageMetricsIntegrationDataflowRequest: - additionalProperties: false - description: >- - Organization-level usage metrics read from the Snowflake `ORGANIZATION_USAGE` schema, covering the credit consumption of every account in the organization and the history of data transferred out of Snowflake. Reading that schema requires the ORGADMIN role; without it this dataflow collects no data. - properties: - enabled: - description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. - example: true - type: boolean - settings: - $ref: "#/components/schemas/SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsRequest" - type: object - SnowflakeOrganizationUsageMetricsIntegrationDataflowResponse: - description: >- - Organization-level usage metrics read from the Snowflake `ORGANIZATION_USAGE` schema, covering the credit consumption of every account in the organization and the history of data transferred out of Snowflake. Reading that schema requires the ORGADMIN role; without it this dataflow collects no data. - properties: - enabled: - description: Whether Datadog collects this data. - example: true - type: boolean - settings: - $ref: "#/components/schemas/SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsResponse" - type: object - SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsRequest: - additionalProperties: false - description: Settings of the organization usage metrics dataflow. Only the fields provided are changed. - properties: - organization_usage_metrics_aggregate_last_24h: - description: >- - The period each metric aggregates over. Set to `true` to aggregate the past 24 hours on a rolling basis, or `false` to aggregate the current day so far. Defaults to `false`. - example: false - type: boolean - type: object - SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsResponse: - description: Settings of the organization usage metrics dataflow. - properties: - organization_usage_metrics_aggregate_last_24h: - description: >- - The period each metric aggregates over. When `true`, metrics aggregate the past 24 hours on a rolling basis; when `false`, they aggregate the current day so far. - example: false - type: boolean - type: object - SnowflakeQueryHistoryLogsIntegrationDataflowRequest: - additionalProperties: false - description: >- - Per-query logs that let you identify long-running, poorly performing, and expensive queries. - properties: - enabled: - description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. - example: true - type: boolean - settings: - $ref: "#/components/schemas/SnowflakeQueryHistoryLogsIntegrationDataflowSettingsRequest" - type: object - SnowflakeQueryHistoryLogsIntegrationDataflowResponse: - description: >- - Per-query logs that let you identify long-running, poorly performing, and expensive queries. - properties: - enabled: - description: Whether Datadog collects this data. - example: true - type: boolean - settings: - $ref: "#/components/schemas/SnowflakeQueryHistoryLogsIntegrationDataflowSettingsResponse" - type: object - SnowflakeQueryHistoryLogsIntegrationDataflowSettingsRequest: - additionalProperties: false - description: Settings of the query history logs dataflow. Only the fields provided are changed. - properties: - join_query_history_with_access_history_enabled: - description: >- - Whether query logs are joined with Snowflake access history, which adds the objects each query read and wrote so you can follow how data is used and where it came from. Defaults to `false`. - example: true - type: boolean - query_history_logs_interval_min: - description: >- - How often query history logs are collected, in minutes. One of `5`, `15`, `30`, `60`, `720`, or `1440`. Defaults to `5`. - example: 15 - format: int64 - type: integer - type: object - SnowflakeQueryHistoryLogsIntegrationDataflowSettingsResponse: - description: Settings of the query history logs dataflow. - properties: - join_query_history_with_access_history_enabled: - description: >- - Whether query logs are joined with Snowflake access history, which adds the objects each query read and wrote so you can follow how data is used and where it came from. - example: true - type: boolean - query_history_logs_interval_min: - description: How often query history logs are collected, in minutes. - example: 15 + character_count: + description: |- + The number of characters behind a match detected by Sensitive Data Scanner to look for the keywords defined. + `character_count` should be greater than the maximum length of a keyword defined for a rule. + example: 30 format: int64 + maximum: 50 + minimum: 1 type: integer - type: object - SnowflakeSecurityLogsIntegrationDataflowRequest: - additionalProperties: false - description: >- - Security logs from the Snowflake `ACCOUNT_USAGE` schema, for analyzing the security of your Snowflake account and running threat detection with [Cloud SIEM](https://docs.datadoghq.com/security/cloud_siem/). - properties: - enabled: - description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. - example: true - type: boolean - settings: - $ref: "#/components/schemas/SnowflakeSecurityLogsIntegrationDataflowSettingsRequest" - type: object - SnowflakeSecurityLogsIntegrationDataflowResponse: - description: >- - Security logs from the Snowflake `ACCOUNT_USAGE` schema, for analyzing the security of your Snowflake account and running threat detection with [Cloud SIEM](https://docs.datadoghq.com/security/cloud_siem/). - properties: - enabled: - description: Whether Datadog collects this data. - example: true + keywords: + description: |- + Keyword list that will be checked during scanning in order to validate a match. + The number of keywords in the list must be less than or equal to 30. + example: ["email", "address", "login"] + items: + description: A keyword to match within the defined proximity of the detected pattern. + type: string + type: array + use_recommended_keywords: + description: |- + Should the rule use the underlying standard pattern keyword configuration. If set to `true`, the rule must be tied + to a standard pattern. If set to `false`, the specified keywords and `character_count` are applied. type: boolean - settings: - $ref: "#/components/schemas/SnowflakeSecurityLogsIntegrationDataflowSettingsResponse" + required: + - keywords + - character_count type: object - SnowflakeSecurityLogsIntegrationDataflowSettingsRequest: - additionalProperties: false - description: Settings of the security logs dataflow. Only the fields provided are changed. + SensitiveDataScannerMeta: + additionalProperties: {} + description: Meta response containing information about the API. properties: - security_logs_interval_min: - description: >- - How often security logs are collected, in minutes. One of `5`, `15`, `30`, `60`, `360`, `720`, or `1440`. Defaults to `5`. - example: 60 + count_limit: + description: Maximum number of scanning rules allowed for the org. format: int64 type: integer - type: object - SnowflakeSecurityLogsIntegrationDataflowSettingsResponse: - description: Settings of the security logs dataflow. - properties: - security_logs_interval_min: - description: How often security logs are collected, in minutes. - example: 60 + group_count_limit: + description: Maximum number of scanning groups allowed for the org. format: int64 type: integer - type: object - SnowflakeTaskHistoryLogsIntegrationDataflowRequest: - additionalProperties: false - description: >- - Execution logs for your scheduled Snowflake tasks, covering start time, end time, status, and any error message. - properties: - enabled: - description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. - example: true + has_highlight_enabled: + default: true + deprecated: true + description: (Deprecated) Whether or not scanned events are highlighted in Logs or RUM for the org. type: boolean - settings: - $ref: "#/components/schemas/SnowflakeTaskHistoryLogsIntegrationDataflowSettingsRequest" - type: object - SnowflakeTaskHistoryLogsIntegrationDataflowResponse: - description: >- - Execution logs for your scheduled Snowflake tasks, covering start time, end time, status, and any error message. - properties: - enabled: - description: Whether Datadog collects this data. - example: true + has_multi_pass_enabled: + deprecated: true + description: (Deprecated) Whether or not scanned events have multi-pass enabled. type: boolean - settings: - $ref: "#/components/schemas/SnowflakeTaskHistoryLogsIntegrationDataflowSettingsResponse" - type: object - SnowflakeTaskHistoryLogsIntegrationDataflowSettingsRequest: - additionalProperties: false - description: Settings of the task history logs dataflow. Only the fields provided are changed. - properties: - task_history_logs_interval_min: - description: >- - How often task history logs are collected, in minutes. One of `5`, `15`, `30`, `60`, or `1440`. Defaults to `5`. - example: 30 + is_pci_compliant: + description: Whether or not the org is compliant to the payment card industry standard. + type: boolean + version: + description: Version of the API. + example: 0 format: int64 + minimum: 0 type: integer type: object - SnowflakeTaskHistoryLogsIntegrationDataflowSettingsResponse: - description: Settings of the task history logs dataflow. + SensitiveDataScannerMetaVersionOnly: + description: Meta payload containing information about the API. properties: - task_history_logs_interval_min: - description: How often task history logs are collected, in minutes. - example: 30 + version: + description: Version of the API (optional). + example: 0 format: int64 + minimum: 0 type: integer type: object - SoftwareCatalogTriggerWrapper: - description: "Schema for a Software Catalog-based trigger." - properties: - softwareCatalogTrigger: - description: "Trigger a workflow from Software Catalog." - type: object - startStepNames: - $ref: "#/components/schemas/StartStepNames" - required: - - softwareCatalogTrigger - type: object - SortDirection: - default: desc - description: The direction to sort by. - enum: - - desc - - asc - type: string - x-enum-varnames: - - DESC - - ASC - SourcemapDataType: - description: The resource type for source map objects. + SensitiveDataScannerProduct: + default: logs + description: Datadog product onto which Sensitive Data Scanner can be activated. enum: - - sourcemaps - example: sourcemaps + - logs + - rum + - events + - apm type: string x-enum-varnames: - - SOURCEMAPS - SourcemapFileAttributes: - description: Attributes of a JavaScript source map file. + - LOGS + - RUM + - EVENTS + - APM + SensitiveDataScannerReorderConfig: + description: Data related to the reordering of scanning groups. properties: - file: - description: The name of the minified JavaScript file. - example: bundle.js + id: + description: ID of the configuration. type: string - mappings: - description: |- - The Base64 VLQ encoded string that maps positions in the minified - file to positions in the original source files. - example: AAAA,OAAO,CAAC,GAAG + relationships: + $ref: "#/components/schemas/SensitiveDataScannerConfigurationRelationships" + type: + $ref: "#/components/schemas/SensitiveDataScannerConfigurationType" + type: object + SensitiveDataScannerReorderGroupsResponse: + description: Group reorder response. + properties: + meta: + $ref: "#/components/schemas/SensitiveDataScannerMeta" + type: object + SensitiveDataScannerRule: + description: Rule item included in the group. + properties: + id: + description: ID of the rule. type: string - minifiedLineLengths: - description: List of character counts for each line in the minified file. - example: - - 50 - - 30 - items: - format: int64 - type: integer - type: array - names: - description: List of symbol names referenced in the mappings. - example: - - console - - log - items: {} - type: array - sourceRoot: - description: The root path prepended to source file paths. - example: / + type: + $ref: "#/components/schemas/SensitiveDataScannerRuleType" + type: object + SensitiveDataScannerRuleAttributes: + description: Attributes of the Sensitive Data Scanner rule. + properties: + description: + description: Description of the rule. type: string - sources: - description: List of original source file paths. - example: - - src/index.js - - src/utils.js + excluded_namespaces: + description: Attributes excluded from the scan. If namespaces is provided, it has to be a sub-path of the namespaces array. + example: ["admin.name"] items: + description: An attribute path to exclude from the scan. type: string type: array - sourcesContent: - description: List of original source file contents corresponding to the paths in `sources`. - example: - - "console.log('index');" - - "export function util() {}" + included_keyword_configuration: + $ref: "#/components/schemas/SensitiveDataScannerIncludedKeywordConfiguration" + is_enabled: + description: Whether or not the rule is enabled. + type: boolean + name: + description: Name of the rule. + type: string + namespaces: + description: |- + Attributes included in the scan. If namespaces is empty or missing, all attributes except excluded_namespaces are scanned. + If both are missing the whole event is scanned. + example: ["admin"] items: + description: An attribute path to include in the scan. type: string type: array - version: - description: The version of the source map format (typically 3). - example: 3 + pattern: + description: Not included if there is a relationship to a standard pattern. + type: string + priority: + description: Integer from 1 (high) to 5 (low) indicating rule issue severity. format: int64 + maximum: 5 + minimum: 1 type: integer - required: - - file - - version - - sourceRoot - - sources - - sourcesContent - - names - - mappings - - minifiedLineLengths + suppressions: + $ref: "#/components/schemas/SensitiveDataScannerSuppressions" + tags: + description: List of tags. + items: + description: A tag associated with the rule. + type: string + type: array + text_replacement: + $ref: "#/components/schemas/SensitiveDataScannerTextReplacement" type: object - SourcemapFileData: - description: JavaScript source map file data object. + SensitiveDataScannerRuleCreate: + description: Data related to the creation of a rule. properties: attributes: - $ref: "#/components/schemas/SourcemapFileAttributes" - id: - description: The unique identifier of the source map file, typically the path to the file. - example: path/to/sourcemap.js.map - type: string + $ref: "#/components/schemas/SensitiveDataScannerRuleAttributes" + relationships: + $ref: "#/components/schemas/SensitiveDataScannerRuleRelationships" type: - $ref: "#/components/schemas/SourcemapFileDataType" + $ref: "#/components/schemas/SensitiveDataScannerRuleType" required: - - id - type - attributes + - relationships type: object - SourcemapFileDataType: - description: The resource type for source map file objects. - enum: - - sourcemap_files - example: sourcemap_files - type: string - x-enum-varnames: - - SOURCEMAP_FILES - SourcemapFileResponse: - description: Response containing a JavaScript source map file. + SensitiveDataScannerRuleCreateRequest: + description: Create rule request. properties: data: - $ref: "#/components/schemas/SourcemapFileData" + $ref: "#/components/schemas/SensitiveDataScannerRuleCreate" + meta: + $ref: "#/components/schemas/SensitiveDataScannerMetaVersionOnly" required: - data + - meta type: object - SourcemapItem: - description: A source map data object representing one of the supported map kinds. - oneOf: - - $ref: "#/components/schemas/JSSourcemapData" - - $ref: "#/components/schemas/ReactNativeSourcemapData" - - $ref: "#/components/schemas/IOSSourcemapData" - - $ref: "#/components/schemas/JVMSourcemapData" - - $ref: "#/components/schemas/FlutterSourcemapData" - - $ref: "#/components/schemas/ELFSourcemapData" - - $ref: "#/components/schemas/NDKSourcemapData" - - $ref: "#/components/schemas/IL2CPPSourcemapData" - SourcemapMapKind: - description: The type of source map. - enum: - - js - - jvm - - ios - - react - - flutter - - elf - - ndk - - il2cpp - example: js - type: string - x-enum-varnames: - - JS - - JVM - - IOS - - REACT - - FLUTTER - - ELF - - NDK - - IL2CPP - SourcemapsData: - description: List of source map data objects. - items: - $ref: "#/components/schemas/SourcemapItem" - type: array - SourcemapsListMeta: - description: Pagination metadata for the source maps list response. + SensitiveDataScannerRuleData: + description: Rules included in the group. properties: - page: - $ref: "#/components/schemas/SourcemapsListMetaPage" - required: - - page + data: + description: Rules included in the group. The order is important. + items: + $ref: "#/components/schemas/SensitiveDataScannerRule" + type: array type: object - SourcemapsListMetaPage: - description: Page information for the source maps list response. + SensitiveDataScannerRuleDeleteRequest: + description: Delete rule request. properties: - has_more_results: - description: Whether there are more results available beyond the current page. - example: false - type: boolean - total_filtered_count: - description: Total number of source maps matching the filter criteria. - example: 100 - format: int64 - type: integer + meta: + $ref: "#/components/schemas/SensitiveDataScannerMetaVersionOnly" required: - - total_filtered_count - - has_more_results + - meta type: object - SourcemapsResponse: - description: Response containing a list of affected source maps. + SensitiveDataScannerRuleDeleteResponse: + description: Delete rule response. properties: - data: - $ref: "#/components/schemas/SourcemapsData" - required: - - data + meta: + $ref: "#/components/schemas/SensitiveDataScannerMetaVersionOnly" type: object - Span: - description: Object description of a spans after being processed and stored by Datadog. + SensitiveDataScannerRuleIncludedItem: + description: A Scanning Rule included item. properties: attributes: - $ref: "#/components/schemas/SpansAttributes" + $ref: "#/components/schemas/SensitiveDataScannerRuleAttributes" id: - description: Unique ID of the Span. - example: "AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA" + description: ID of the rule. type: string + relationships: + $ref: "#/components/schemas/SensitiveDataScannerRuleRelationships" type: - $ref: "#/components/schemas/SpansType" + $ref: "#/components/schemas/SensitiveDataScannerRuleType" type: object - SpansAggregateBucket: - description: Spans aggregate. + SensitiveDataScannerRuleRelationships: + description: Relationships of a scanning rule. + properties: + group: + $ref: "#/components/schemas/SensitiveDataScannerGroupData" + standard_pattern: + $ref: "#/components/schemas/SensitiveDataScannerStandardPatternData" + type: object + SensitiveDataScannerRuleResponse: + description: Response data related to the creation of a rule. properties: attributes: - $ref: "#/components/schemas/SpansAggregateBucketAttributes" + $ref: "#/components/schemas/SensitiveDataScannerRuleAttributes" id: - description: ID of the spans aggregate. + description: ID of the rule. type: string + relationships: + $ref: "#/components/schemas/SensitiveDataScannerRuleRelationships" type: - $ref: "#/components/schemas/SpansAggregateBucketType" - type: object - SpansAggregateBucketAttributes: - description: A bucket values. - properties: - by: - additionalProperties: - description: The values for each group by. - description: The key, value pairs for each group by. - example: {"@state": "success", "@version": "abc"} - type: object - compute: - description: The compute data. - type: object - computes: - additionalProperties: - $ref: "#/components/schemas/SpansAggregateBucketValue" - description: A map of the metric name -> value for regular compute or list of values for a timeseries. - type: object + $ref: "#/components/schemas/SensitiveDataScannerRuleType" type: object - SpansAggregateBucketType: - description: The spans aggregate bucket type. - enum: ["bucket"] - example: "bucket" - type: string - x-enum-varnames: ["BUCKET"] - SpansAggregateBucketValue: - description: A bucket value, can be either a timeseries or a single value. - oneOf: - - $ref: "#/components/schemas/SpansAggregateBucketValueSingleString" - - $ref: "#/components/schemas/SpansAggregateBucketValueSingleNumber" - - $ref: "#/components/schemas/SpansAggregateBucketValueTimeseries" - SpansAggregateBucketValueSingleNumber: - description: A single number value. - format: double - type: number - SpansAggregateBucketValueSingleString: - description: A single string value. + SensitiveDataScannerRuleType: + default: sensitive_data_scanner_rule + description: Sensitive Data Scanner rule type. + enum: + - sensitive_data_scanner_rule + example: sensitive_data_scanner_rule type: string - SpansAggregateBucketValueTimeseries: - description: A timeseries array. - items: - $ref: "#/components/schemas/SpansAggregateBucketValueTimeseriesPoint" - type: array - x-generate-alias-as-model: true - SpansAggregateBucketValueTimeseriesPoint: - description: A timeseries point. + x-enum-varnames: + - SENSITIVE_DATA_SCANNER_RULE + SensitiveDataScannerRuleUpdate: + description: Data related to the update of a rule. properties: - time: - description: The time value for this point. - example: "2023-06-08T11:55:00Z" + attributes: + $ref: "#/components/schemas/SensitiveDataScannerRuleAttributes" + id: + description: ID of the rule. type: string - value: - description: The value for this point. - example: 19 + relationships: + $ref: "#/components/schemas/SensitiveDataScannerRuleRelationships" + type: + $ref: "#/components/schemas/SensitiveDataScannerRuleType" + type: object + SensitiveDataScannerRuleUpdateRequest: + description: Update rule request. + properties: + data: + $ref: "#/components/schemas/SensitiveDataScannerRuleUpdate" + meta: + $ref: "#/components/schemas/SensitiveDataScannerMetaVersionOnly" + required: + - data + - meta + type: object + SensitiveDataScannerRuleUpdateResponse: + description: Update rule response. + properties: + meta: + $ref: "#/components/schemas/SensitiveDataScannerMetaVersionOnly" + type: object + SensitiveDataScannerSamplings: + description: Sampling configurations for the Scanning Group. + properties: + product: + $ref: "#/components/schemas/SensitiveDataScannerProduct" + rate: + description: Rate at which data in product type will be scanned, as a percentage. + example: 100.0 format: double + maximum: 100.0 + minimum: 0.0 type: number type: object - SpansAggregateData: - description: The object containing the query content. + SensitiveDataScannerStandardPattern: + description: Data containing the standard pattern id. properties: - attributes: - $ref: "#/components/schemas/SpansAggregateRequestAttributes" + id: + description: ID of the standard pattern. + type: string type: - $ref: "#/components/schemas/SpansAggregateRequestType" - type: object - SpansAggregateRequest: - description: The object sent with the request to retrieve a list of aggregated spans from your organization. - properties: - data: - $ref: "#/components/schemas/SpansAggregateData" + $ref: "#/components/schemas/SensitiveDataScannerStandardPatternType" type: object - SpansAggregateRequestAttributes: - description: The object containing all the query parameters. + SensitiveDataScannerStandardPatternAttributes: + description: Attributes of the Sensitive Data Scanner standard pattern. properties: - compute: - description: The list of metrics or timeseries to compute for the retrieved buckets. + description: + description: Description of the standard pattern. + type: string + included_keywords: + description: List of included keywords. items: - $ref: "#/components/schemas/SpansCompute" + description: A keyword used to increase match precision for the standard pattern. + type: string type: array - filter: - $ref: "#/components/schemas/SpansQueryFilter" - group_by: - description: The rules for the group by. + name: + description: Name of the standard pattern. + type: string + pattern: + deprecated: true + description: (Deprecated) Regex to match, optionally documented for older standard rules. Refer to the `description` field to understand what the rule does. + type: string + priority: + description: Integer from 1 (high) to 5 (low) indicating standard pattern issue severity. + format: int64 + maximum: 5 + minimum: 1 + type: integer + tags: + description: List of tags. items: - $ref: "#/components/schemas/SpansGroupBy" + description: A tag associated with the standard pattern. + type: string type: array - options: - $ref: "#/components/schemas/SpansQueryOptions" type: object - SpansAggregateRequestType: - default: aggregate_request - description: The type of resource. The value should always be aggregate_request. + SensitiveDataScannerStandardPatternData: + description: A standard pattern. + properties: + data: + $ref: "#/components/schemas/SensitiveDataScannerStandardPattern" + type: object + SensitiveDataScannerStandardPatternType: + default: sensitive_data_scanner_standard_pattern + description: Sensitive Data Scanner standard pattern type. enum: - - aggregate_request - example: aggregate_request + - sensitive_data_scanner_standard_pattern + example: sensitive_data_scanner_standard_pattern type: string - x-enum-varnames: ["AGGREGATE_REQUEST"] - SpansAggregateResponse: - description: The response object for the spans aggregate API endpoint. + x-enum-varnames: + - SENSITIVE_DATA_SCANNER_STANDARD_PATTERN + SensitiveDataScannerStandardPatternsResponse: + description: List Standard patterns response. + items: + $ref: "#/components/schemas/SensitiveDataScannerStandardPatternsResponseItem" + type: array + SensitiveDataScannerStandardPatternsResponseData: + description: List Standard patterns response data. properties: data: - description: The list of matching buckets, one item per bucket. + $ref: "#/components/schemas/SensitiveDataScannerStandardPatternsResponse" + type: object + SensitiveDataScannerStandardPatternsResponseItem: + description: Standard pattern item. + properties: + attributes: + $ref: "#/components/schemas/SensitiveDataScannerStandardPatternAttributes" + id: + description: ID of the standard pattern. + type: string + type: + $ref: "#/components/schemas/SensitiveDataScannerStandardPatternType" + type: object + SensitiveDataScannerSuppressions: + description: |- + Object describing the suppressions for a rule. There are three types of suppressions, `starts_with`, `ends_with`, and `exact_match`. + Suppressed matches are not obfuscated, counted in metrics, or displayed in the Findings page. + properties: + ends_with: + description: List of strings to use for suppression of matches ending with these strings. + example: ["@example.com", "another.example.com"] items: - $ref: "#/components/schemas/SpansAggregateBucket" + description: A string suffix; matches ending with this value are suppressed. + type: string + type: array + exact_match: + description: List of strings to use for suppression of matches exactly matching these strings. + example: ["admin@example.com", "user@example.com"] + items: + description: A string value; matches exactly equal to this value are suppressed. + type: string + type: array + starts_with: + description: List of strings to use for suppression of matches starting with these strings. + example: ["admin", "user"] + items: + description: A string prefix; matches starting with this value are suppressed. + type: string type: array - meta: - $ref: "#/components/schemas/SpansAggregateResponseMetadata" type: object - SpansAggregateResponseMetadata: - description: The metadata associated with a request. + SensitiveDataScannerTextReplacement: + description: Object describing how the scanned event will be replaced. properties: - elapsed: - description: The time elapsed in milliseconds. - example: 132 + number_of_chars: + description: |- + Required if type == 'partial_replacement_from_beginning' + or 'partial_replacement_from_end'. It must be > 0. format: int64 + minimum: 0 type: integer - request_id: - description: The identifier of the request. - example: "MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR" + replacement_string: + description: Required if type == 'replacement_string'. type: string - status: - $ref: "#/components/schemas/SpansAggregateResponseStatus" - warnings: - description: |- - A list of warnings (non fatal errors) encountered, partial results might be returned if - warnings are present in the response. - items: - $ref: "#/components/schemas/SpansWarning" - type: array + should_save_match: + description: Only valid when type == `replacement_string`. When enabled, matches can be unmasked in logs by users with ‘Data Scanner Unmask’ permission. As a security best practice, avoid masking for highly-sensitive, long-lived data. + type: boolean + type: + $ref: "#/components/schemas/SensitiveDataScannerTextReplacementType" type: object - SpansAggregateResponseStatus: - description: The status of the response. - enum: ["done", "timeout"] - example: "done" + SensitiveDataScannerTextReplacementType: + default: none + description: |- + Type of the replacement text. None means no replacement. + hash means the data will be stubbed. replacement_string means that + one can chose a text to replace the data. partial_replacement_from_beginning + allows a user to partially replace the data from the beginning, and + partial_replacement_from_end on the other hand, allows to replace data from + the end. + enum: + - none + - hash + - replacement_string + - partial_replacement_from_beginning + - partial_replacement_from_end type: string - x-enum-varnames: ["DONE", "TIMEOUT"] - SpansAggregateSort: - description: A sort rule. - example: {"aggregation": "count", "order": "asc"} + x-enum-varnames: + - NONE + - HASH + - REPLACEMENT_STRING + - PARTIAL_REPLACEMENT_FROM_BEGINNING + - PARTIAL_REPLACEMENT_FROM_END + SerialExecution: + description: "Whether to execute the workflow serially for an incident." properties: - aggregation: - $ref: "#/components/schemas/SpansAggregationFunction" - metric: - description: The metric to sort by (only used for `type=measure`). - example: "@duration" + enabled: + description: "Whether serial execution is enabled." + example: false + type: boolean + required: + - enabled + type: object + ServiceAccessToken: + description: Datadog access token. + properties: + attributes: + $ref: "#/components/schemas/ServiceAccessTokenAttributes" + id: + description: ID of the access token. type: string - order: - $ref: "#/components/schemas/SpansSortOrder" + relationships: + $ref: "#/components/schemas/ServiceAccessTokenRelationships" type: - $ref: "#/components/schemas/SpansAggregateSortType" + $ref: "#/components/schemas/ServiceAccessTokensType" type: object - SpansAggregateSortType: - default: "alphabetical" - description: The type of sorting algorithm. - enum: ["alphabetical", "measure"] - type: string - x-enum-varnames: ["ALPHABETICAL", "MEASURE"] - SpansAggregationFunction: - description: An aggregation function. - enum: ["count", "cardinality", "pc75", "pc90", "pc95", "pc98", "pc99", "sum", "min", "max", "avg", "median"] - example: "pc90" - type: string - x-enum-varnames: ["COUNT", "CARDINALITY", "PERCENTILE_75", "PERCENTILE_90", "PERCENTILE_95", "PERCENTILE_98", "PERCENTILE_99", "SUM", "MIN", "MAX", "AVG", "MEDIAN"] - SpansAttributes: - description: JSON object containing all span attributes and their associated values. + ServiceAccessTokenAttributes: + description: Attributes of an access token. properties: - attributes: - additionalProperties: {} - description: JSON object of attributes from your span. - example: {"customAttribute": 123, "duration": 2345} - type: object - custom: - additionalProperties: {} - description: JSON object of custom spans data. - type: object - end_timestamp: - description: End timestamp of your span. - example: "2023-01-02T09:42:36.420Z" + created_at: + description: Creation date of the access token. + example: "2024-01-01T00:00:00+00:00" format: date-time + readOnly: true type: string - env: - description: |- - Name of the environment from where the spans are being sent. - example: "prod" - type: string - host: - description: |- - Name of the machine from where the spans are being sent. - example: "i-0123" - type: string - ingestion_reason: - description: The reason why the span was ingested. - example: "rule" - type: string - parent_id: - description: Id of the span that's parent of this span. - example: "0" - type: string - resource_hash: - description: Unique identifier of the resource. - example: "a12345678b91c23d" - type: string - resource_name: - description: The name of the resource. - example: "agent" + expires_at: + description: Expiration date of the access token. + example: "2025-12-31T23:59:59+00:00" + format: date-time + nullable: true + readOnly: true type: string - retained_by: - description: The reason why the span was indexed. - example: "retention_filter" + last_used_at: + description: Date the access token was last used. + example: "2025-06-15T12:30:00+00:00" + format: date-time + nullable: true + readOnly: true type: string - service: - description: |- - The name of the application or service generating the span events. - It is used to switch from APM to Logs, so make sure you define the same - value when you use both products. - example: "agent" + modified_at: + description: Date of last modification of the access token. + example: "2024-06-01T00:00:00+00:00" + format: date-time + nullable: true + readOnly: true type: string - single_span: - description: |- - Whether or not the span was collected as a stand-alone span. Always associated to "single_span" ingestion_reason if true. - example: true - type: boolean - span_id: - description: Id of the span. - example: "1234567890987654321" + name: + description: Name of the access token. + example: "My Access Token" type: string - start_timestamp: - description: Start timestamp of your span. - example: "2023-01-02T09:42:36.320Z" - format: date-time + public_portion: + description: The public portion of the access token. + example: "ddsat_abc123" + readOnly: true type: string - tags: - description: Array of tags associated with your span. - example: ["team:A"] + scopes: + description: Array of scopes granted to the access token. + example: + - "dashboards_read" + - "dashboards_write" items: - description: Tag associated with your span. + description: Name of scope. type: string type: array - trace_id: - description: Id of the trace to which the span belongs. - example: "1234567890987654321" - type: string - type: - description: The type of the span. - example: "web" - type: string type: object - SpansCompute: - description: A compute rule to compute metrics or timeseries. + ServiceAccessTokenCreateResponse: + description: Response for creating an access token. Includes the token key. properties: - aggregation: - $ref: "#/components/schemas/SpansAggregationFunction" - interval: - description: |- - The time buckets' size (only used for type=timeseries) - Defaults to a resolution of 150 points. - example: "5m" - type: string - metric: - description: The metric to use. - example: "@duration" - type: string - type: - $ref: "#/components/schemas/SpansComputeType" - required: - - aggregation + data: + $ref: "#/components/schemas/FullServiceAccessToken" type: object - SpansComputeType: - default: "total" - description: The type of compute. - enum: ["timeseries", "total"] - type: string - x-enum-varnames: ["TIMESERIES", "TOTAL"] - SpansFilter: - description: The spans filter used to index spans. + ServiceAccessTokenRelationships: + description: Resources related to the access token. properties: - query: - description: The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/). - example: "@http.status_code:200 service:my-service" - type: string + leak_information: + $ref: "#/components/schemas/RelationshipToLeakedKey" + owned_by: + $ref: "#/components/schemas/RelationshipToServiceAccount" type: object - SpansFilterCreate: - description: The spans filter. Spans matching this filter will be indexed and stored. + ServiceAccessTokenResponse: + description: Response for retrieving an access token. properties: - query: - description: The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/). - example: "@http.status_code:200 service:my-service" - type: string - required: - - query + data: + $ref: "#/components/schemas/ServiceAccessToken" + included: + $ref: "#/components/schemas/AccessTokenResponseIncludedArray" type: object - SpansGroupBy: - description: A group by rule. - properties: - facet: - description: The name of the facet to use (required). - example: "host" - type: string - histogram: - $ref: "#/components/schemas/SpansGroupByHistogram" - limit: - default: 10 - description: The maximum buckets to return for this group by. - format: int64 - type: integer - missing: - $ref: "#/components/schemas/SpansGroupByMissing" - sort: - $ref: "#/components/schemas/SpansAggregateSort" - total: - $ref: "#/components/schemas/SpansGroupByTotal" - required: - - facet - type: object - SpansGroupByHistogram: - description: |- - Used to perform a histogram computation (only for measure facets). - Note: At most 100 buckets are allowed, the number of buckets is (max - min)/interval. - properties: - interval: - description: The bin size of the histogram buckets. - example: 10 - format: double - type: number - max: - description: |- - The maximum value for the measure used in the histogram - (values greater than this one are filtered out). - example: 100 - format: double - type: number - min: - description: |- - The minimum value for the measure used in the histogram - (values smaller than this one are filtered out). - example: 50 - format: double - type: number - required: - - interval - - min - - max - type: object - SpansGroupByMissing: - description: The value to use for spans that don't have the facet used to group by. - oneOf: - - $ref: "#/components/schemas/SpansGroupByMissingString" - - $ref: "#/components/schemas/SpansGroupByMissingNumber" - SpansGroupByMissingNumber: - description: The missing value to use if there is a number valued facet. - format: double - type: number - SpansGroupByMissingString: - description: The missing value to use if there is string valued facet. - type: string - SpansGroupByTotal: - default: false - description: |- - A resulting object to put the given computes in over all the matching records. - oneOf: - - $ref: "#/components/schemas/SpansGroupByTotalBoolean" - - $ref: "#/components/schemas/SpansGroupByTotalString" - - $ref: "#/components/schemas/SpansGroupByTotalNumber" - SpansGroupByTotalBoolean: - description: If set to true, creates an additional bucket labeled "$facet_total". - type: boolean - SpansGroupByTotalNumber: - description: A number to use as the key value for the total bucket. - format: double - type: number - SpansGroupByTotalString: - description: A string to use as the key value for the total bucket. - type: string - SpansListRequest: - description: The request for a spans list. - properties: - data: - $ref: "#/components/schemas/SpansListRequestData" - type: object - SpansListRequestAttributes: - description: The object containing all the query parameters. + ServiceAccessTokenResponseMeta: + description: Additional information related to the access token response. properties: - filter: - $ref: "#/components/schemas/SpansQueryFilter" - options: - $ref: "#/components/schemas/SpansQueryOptions" page: - $ref: "#/components/schemas/SpansListRequestPage" - sort: - $ref: "#/components/schemas/SpansSort" - type: object - SpansListRequestData: - description: The object containing the query content. - properties: - attributes: - $ref: "#/components/schemas/SpansListRequestAttributes" - type: - $ref: "#/components/schemas/SpansListRequestType" + $ref: "#/components/schemas/ServiceAccessTokenResponseMetaPage" type: object - SpansListRequestPage: - description: Paging attributes for listing spans. + ServiceAccessTokenResponseMetaPage: + description: Pagination information. properties: - cursor: - description: |- - List following results with a cursor provided in the previous query. - example: "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" - type: string - limit: - default: 10 - description: Maximum number of spans in the response. - example: 25 - format: int32 - maximum: 1000 + total_filtered_count: + description: Total filtered access token count. + format: int64 type: integer type: object - SpansListRequestType: - default: search_request - description: The type of resource. The value should always be search_request. + ServiceAccessTokensType: + default: service_access_tokens + description: Service access tokens resource type. enum: - - search_request - example: search_request + - service_access_tokens + example: service_access_tokens type: string - x-enum-varnames: ["SEARCH_REQUEST"] - SpansListResponse: - description: Response object with all spans matching the request and pagination information. - properties: - data: - description: Array of spans matching the request. - items: - $ref: "#/components/schemas/Span" - type: array - links: - $ref: "#/components/schemas/SpansListResponseLinks" - meta: - $ref: "#/components/schemas/SpansListResponseMetadata" - type: object - SpansListResponseLinks: - description: Links attributes. + x-enum-varnames: + - SERVICE_ACCESS_TOKENS + ServiceAccountAccessTokenCreateAttributes: + description: Attributes used to create a service account access token. properties: - next: - description: |- - Link for the next set of results. Note that the request can also be made using the - POST endpoint. - example: "https://app.datadoghq.com/api/v2/spans/event?filter[query]=foo&page[cursor]=eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" + expires_at: + description: Expiration date of the access token. Optional for service account tokens. + example: "2025-12-31T23:59:59+00:00" + format: date-time type: string - type: object - SpansListResponseMetadata: - description: The metadata associated with a request. - properties: - elapsed: - description: The time elapsed in milliseconds. - example: 132 - format: int64 - type: integer - page: - $ref: "#/components/schemas/SpansResponseMetadataPage" - request_id: - description: The identifier of the request. - example: "MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR" + name: + description: Name of the access token. + example: "Service Account Access Token" type: string - status: - $ref: "#/components/schemas/SpansAggregateResponseStatus" - warnings: - description: |- - A list of warnings (non fatal errors) encountered, partial results might be returned if - warnings are present in the response. + scopes: + description: Array of scopes to grant the access token. + example: + - "dashboards_read" + - "dashboards_write" items: - $ref: "#/components/schemas/SpansWarning" + description: Name of scope. + type: string type: array + required: + - name + - scopes type: object - SpansMetricCompute: - description: The compute rule to compute the span-based metric. + ServiceAccountAccessTokenCreateData: + description: Object used to create a service account access token. properties: - aggregation_type: - $ref: "#/components/schemas/SpansMetricComputeAggregationType" - include_percentiles: - $ref: "#/components/schemas/SpansMetricComputeIncludePercentiles" - path: - description: The path to the value the span-based metric will aggregate on (only used if the aggregation type is a "distribution"). - example: "@duration" - type: string + attributes: + $ref: "#/components/schemas/ServiceAccountAccessTokenCreateAttributes" + type: + $ref: "#/components/schemas/ServiceAccessTokensType" required: - - aggregation_type + - attributes + - type type: object - SpansMetricComputeAggregationType: - description: The type of aggregation to use. - enum: ["count", "distribution"] - example: "distribution" - type: string - x-enum-varnames: ["COUNT", "DISTRIBUTION"] - SpansMetricComputeIncludePercentiles: - description: |- - Toggle to include or exclude percentile aggregations for distribution metrics. - Only present when the `aggregation_type` is `distribution`. - example: false - type: boolean - SpansMetricCreateAttributes: - description: The object describing the Datadog span-based metric to create. + ServiceAccountAccessTokenCreateRequest: + description: Request used to create a service account access token. properties: - compute: - $ref: "#/components/schemas/SpansMetricCompute" - filter: - $ref: "#/components/schemas/SpansMetricFilter" - group_by: - description: The rules for the group by. + data: + $ref: "#/components/schemas/ServiceAccountAccessTokenCreateData" + required: + - data + type: object + ServiceAccountAccessTokenUpdateAttributes: + description: Attributes used to update a service account access token. + properties: + name: + description: Name of the access token. + example: "Updated Service Access Token" + type: string + scopes: + description: Array of scopes to grant the access token. + example: + - "dashboards_read" + - "dashboards_write" items: - $ref: "#/components/schemas/SpansMetricGroupBy" + description: Name of scope. + type: string type: array - required: - - compute type: object - SpansMetricCreateData: - description: The new span-based metric properties. + ServiceAccountAccessTokenUpdateData: + description: Object used to update a service account access token. properties: attributes: - $ref: "#/components/schemas/SpansMetricCreateAttributes" + $ref: "#/components/schemas/ServiceAccountAccessTokenUpdateAttributes" id: - $ref: "#/components/schemas/SpansMetricID" + description: ID of the access token. + example: "00112233-4455-6677-8899-aabbccddeeff" + type: string type: - $ref: "#/components/schemas/SpansMetricType" + $ref: "#/components/schemas/ServiceAccessTokensType" required: + - attributes - id - type - - attributes type: object - SpansMetricCreateRequest: - description: The new span-based metric body. + ServiceAccountAccessTokenUpdateRequest: + description: Request used to update a service account access token. properties: data: - $ref: "#/components/schemas/SpansMetricCreateData" + $ref: "#/components/schemas/ServiceAccountAccessTokenUpdateData" required: - data type: object - SpansMetricFilter: - description: The span-based metric filter. Spans matching this filter will be aggregated in this metric. + ServiceAccountCreateAttributes: + description: Attributes of the created user. properties: - query: - default: "*" - description: The search query - following the span search syntax. - example: "@http.status_code:200 service:my-service" + email: + description: The email of the user. + example: "jane.doe@example.com" type: string - type: object - SpansMetricGroupBy: - description: A group by rule. - properties: - path: - description: The path to the value the span-based metric will be aggregated over. - example: "resource_name" + name: + description: The name of the user. type: string - tag_name: - description: Eventual name of the tag that gets created. By default, the path attribute is used as the tag name. - example: "resource_name" + service_account: + description: Whether the user is a service account. Must be true. + example: true + type: boolean + title: + description: The title of the user. type: string required: - - path + - email + - service_account type: object - SpansMetricID: - description: The name of the span-based metric. - example: "my.metric" - type: string - SpansMetricResponse: - description: The span-based metric object. + ServiceAccountCreateData: + description: Object to create a service account User. + properties: + attributes: + $ref: "#/components/schemas/ServiceAccountCreateAttributes" + relationships: + $ref: "#/components/schemas/UserRelationships" + type: + $ref: "#/components/schemas/UsersType" + required: + - attributes + - type + type: object + ServiceAccountCreateRequest: + description: Create a service account. properties: data: - $ref: "#/components/schemas/SpansMetricResponseData" + $ref: "#/components/schemas/ServiceAccountCreateData" + required: + - data type: object - SpansMetricResponseAttributes: - description: The object describing a Datadog span-based metric. + ServiceAccountType: + description: Service account resource type. + enum: + - service_account + example: service_account + type: string + x-enum-varnames: + - SERVICE_ACCOUNT + ServiceDefinitionCreateResponse: + description: Create service definitions response. properties: - compute: - $ref: "#/components/schemas/SpansMetricResponseCompute" - filter: - $ref: "#/components/schemas/SpansMetricResponseFilter" - group_by: - description: The rules for the group by. + data: + description: Create service definitions response payload. items: - $ref: "#/components/schemas/SpansMetricResponseGroupBy" + $ref: "#/components/schemas/ServiceDefinitionData" type: array type: object - SpansMetricResponseCompute: - description: The compute rule to compute the span-based metric. - properties: - aggregation_type: - $ref: "#/components/schemas/SpansMetricComputeAggregationType" - include_percentiles: - $ref: "#/components/schemas/SpansMetricComputeIncludePercentiles" - path: - description: The path to the value the span-based metric will aggregate on (only used if the aggregation type is a "distribution"). - example: "@duration" - type: string - type: object - SpansMetricResponseData: - description: The span-based metric properties. + ServiceDefinitionData: + description: Service definition data. properties: attributes: - $ref: "#/components/schemas/SpansMetricResponseAttributes" + $ref: "#/components/schemas/ServiceDefinitionDataAttributes" id: - $ref: "#/components/schemas/SpansMetricID" + description: Service definition id. + type: string type: - $ref: "#/components/schemas/SpansMetricType" + description: Service definition type. + type: string type: object - SpansMetricResponseFilter: - description: The span-based metric filter. Spans matching this filter will be aggregated in this metric. + ServiceDefinitionDataAttributes: + description: Service definition attributes. properties: - query: - description: The search query - following the span search syntax. - example: "@http.status_code:200 service:my-service" + meta: + $ref: "#/components/schemas/ServiceDefinitionMeta" + schema: + $ref: "#/components/schemas/ServiceDefinitionSchema" + type: object + ServiceDefinitionGetResponse: + description: Get service definition response. + properties: + data: + $ref: "#/components/schemas/ServiceDefinitionData" + type: object + ServiceDefinitionMeta: + description: Metadata about a service definition. + properties: + github-html-url: + description: GitHub HTML URL. + type: string + ingested-schema-version: + description: Ingestion schema version. + type: string + ingestion-source: + description: Ingestion source of the service definition. + type: string + last-modified-time: + description: Last modified time of the service definition. type: string + origin: + description: User defined origin of the service definition. + type: string + origin-detail: + description: User defined origin's detail of the service definition. + type: string + warnings: + description: A list of schema validation warnings. + items: + $ref: "#/components/schemas/ServiceDefinitionMetaWarnings" + type: array type: object - SpansMetricResponseGroupBy: - description: A group by rule. + ServiceDefinitionMetaWarnings: + description: Schema validation warnings. properties: - path: - description: The path to the value the span-based metric will be aggregated over. - example: "resource_name" + instance-location: + description: The warning instance location. type: string - tag_name: - description: Eventual name of the tag that gets created. By default, the path attribute is used as the tag name. - example: "resource_name" + keyword-location: + description: The warning keyword location. + type: string + message: + description: The warning message. type: string type: object - SpansMetricType: - default: spans_metrics - description: The type of resource. The value should always be spans_metrics. + ServiceDefinitionRaw: + description: Service Definition in raw JSON/YAML representation. + example: |- + --- + schema-version: v2 + dd-service: my-service + type: string + ServiceDefinitionSchema: + description: Service definition schema. + oneOf: + - $ref: "#/components/schemas/ServiceDefinitionV1" + - $ref: "#/components/schemas/ServiceDefinitionV2" + - $ref: "#/components/schemas/ServiceDefinitionV2Dot1" + - $ref: "#/components/schemas/ServiceDefinitionV2Dot2" + ServiceDefinitionSchemaVersions: + description: Schema versions enum: - - spans_metrics - example: spans_metrics + - v1 + - v2 + - v2.1 + - v2.2 type: string - x-enum-varnames: ["SPANS_METRICS"] - SpansMetricUpdateAttributes: - description: The span-based metric properties that will be updated. + x-enum-varnames: + - V1 + - V2 + - V2_1 + - V2_2 + ServiceDefinitionV1: + deprecated: true + description: Deprecated - Service definition V1 for providing additional service metadata and integrations. properties: - compute: - $ref: "#/components/schemas/SpansMetricUpdateCompute" - filter: - $ref: "#/components/schemas/SpansMetricFilter" - group_by: - description: The rules for the group by. + contact: + $ref: "#/components/schemas/ServiceDefinitionV1Contact" + extensions: + additionalProperties: {} + description: Extensions to V1 schema. + example: {"myorg/extension": "extensionValue"} + type: object + external-resources: + description: A list of external links related to the services. items: - $ref: "#/components/schemas/SpansMetricGroupBy" + $ref: "#/components/schemas/ServiceDefinitionV1Resource" + type: array + info: + $ref: "#/components/schemas/ServiceDefinitionV1Info" + integrations: + $ref: "#/components/schemas/ServiceDefinitionV1Integrations" + org: + $ref: "#/components/schemas/ServiceDefinitionV1Org" + schema-version: + $ref: "#/components/schemas/ServiceDefinitionV1Version" + tags: + description: A set of custom tags. + example: ["my:tag", "service:tag"] + items: + description: A custom tag string in `key:value` format. + type: string type: array - type: object - SpansMetricUpdateCompute: - description: The compute rule to compute the span-based metric. - properties: - include_percentiles: - $ref: "#/components/schemas/SpansMetricComputeIncludePercentiles" - type: object - SpansMetricUpdateData: - description: The new span-based metric properties. - properties: - attributes: - $ref: "#/components/schemas/SpansMetricUpdateAttributes" - type: - $ref: "#/components/schemas/SpansMetricType" - required: - - type - - attributes - type: object - SpansMetricUpdateRequest: - description: The new span-based metric body. - properties: - data: - $ref: "#/components/schemas/SpansMetricUpdateData" required: - - data + - schema-version + - info type: object - SpansMetricsResponse: - description: All the available span-based metric objects. + ServiceDefinitionV1Contact: + description: Contact information about the service. properties: - data: - description: A list of span-based metric objects. - items: - $ref: "#/components/schemas/SpansMetricResponseData" - type: array + email: + description: Service owner’s email. + example: contact@datadoghq.com + type: string + slack: + description: Service owner’s Slack channel. + example: https://yourcompany.slack.com/archives/channel123 + type: string type: object - SpansQueryFilter: - description: The search and filter query settings. + ServiceDefinitionV1Info: + description: Basic information about a service. properties: - from: - default: "now-15m" - description: The minimum time for the requested spans, supports date-time ISO8601, date math, and regular timestamps (milliseconds). - example: "now-15m" + dd-service: + description: Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog. + example: myservice type: string - query: - default: "*" - description: The search query - following the span search syntax. - example: "service:web* AND @http.status_code:[200 TO 299]" + description: + description: A short description of the service. + example: A shopping cart service type: string - to: - default: "now" - description: The maximum time for the requested spans, supports date-time ISO8601, date math, and regular timestamps (milliseconds). - example: "now" + display-name: + description: A friendly name of the service. + example: My Service + type: string + service-tier: + description: Service tier. + example: Tier 1 type: string + required: [dd-service] type: object - SpansQueryOptions: - description: |- - Global query options that are used during the query. - Note: You should only supply timezone or time offset but not both otherwise the query will fail. + ServiceDefinitionV1Integrations: + description: Third party integrations that Datadog supports. properties: - timeOffset: - description: The time offset (in seconds) to apply to the query. - format: int64 - type: integer - timezone: - default: "UTC" - description: |- - The timezone can be specified as GMT, UTC, an offset from UTC (like UTC+1), or as a Timezone Database identifier (like America/New_York). - example: "GMT" - type: string + pagerduty: + $ref: "#/components/schemas/ServiceDefinitionV1Pagerduty" type: object - SpansResponseMetadataPage: - description: Paging attributes. + ServiceDefinitionV1Org: + description: Org related information about the service. properties: - after: - description: |- - The cursor to use to get the next results, if any. To make the next request, use the same - parameters with the addition of the `page[cursor]`. - example: "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" + application: + description: App feature this service supports. + example: E-Commerce + type: string + team: + description: Team that owns the service. + example: my-team type: string type: object - SpansSort: - description: Sort parameters when querying spans. - enum: - - timestamp - - -timestamp + ServiceDefinitionV1Pagerduty: + description: PagerDuty service URL for the service. + example: https://my-org.pagerduty.com/service-directory/PMyService type: string - x-enum-varnames: - - TIMESTAMP_ASCENDING - - TIMESTAMP_DESCENDING - SpansSortOrder: - description: The order to use, ascending or descending. + ServiceDefinitionV1Resource: + description: Service's external links. + properties: + name: + description: Link name. + example: Runbook + type: string + type: + $ref: "#/components/schemas/ServiceDefinitionV1ResourceType" + url: + description: Link URL. + example: https://my-runbook + type: string + required: + - name + - type + - url + type: object + ServiceDefinitionV1ResourceType: + description: Link type. enum: - - "asc" - - "desc" - example: "asc" + - doc + - wiki + - runbook + - url + - repo + - dashboard + - oncall + - code + - link + example: runbook type: string x-enum-varnames: - - "ASCENDING" - - "DESCENDING" - SpansType: - default: spans - description: Type of the span. + - DOC + - WIKI + - RUNBOOK + - URL + - REPO + - DASHBOARD + - ONCALL + - CODE + - LINK + ServiceDefinitionV1Version: + default: v1 + description: Schema version being used. enum: - - spans - example: "spans" + - v1 + example: v1 type: string x-enum-varnames: - - SPANS - SpansWarning: - description: A warning message indicating something that went wrong with the query. + - V1 + ServiceDefinitionV2: + description: Service definition V2 for providing service metadata and integrations. properties: - code: - description: A unique code for this type of warning. - example: "unknown_index" - type: string - detail: - description: A detailed explanation of this specific warning. - example: "indexes: foo, bar" + contacts: + description: A list of contacts related to the services. + items: + $ref: "#/components/schemas/ServiceDefinitionV2Contact" + type: array + dd-service: + description: Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog. + example: my-service type: string - title: - description: A short human-readable summary of the warning. - example: "One or several indexes are missing or invalid, results hold data from the other indexes" + dd-team: + description: Experimental feature. A Team handle that matches a Team in the Datadog Teams product. + example: my-team type: string - type: object - Spec: - description: A complete Workflow Automation definition, including its triggers, steps, and connections. - properties: - annotations: - description: Up to 100 text annotations displayed on the workflow canvas. + docs: + description: A list of documentation related to the services. items: - $ref: "#/components/schemas/Annotation" - maxItems: 100 + $ref: "#/components/schemas/ServiceDefinitionV2Doc" type: array - connectionEnvs: - description: A list of connections or connection groups used in the workflow. + extensions: + additionalProperties: {} + description: Extensions to V2 schema. + example: {"myorg/extension": "extensionValue"} + type: object + integrations: + $ref: "#/components/schemas/ServiceDefinitionV2Integrations" + links: + description: A list of links related to the services. items: - $ref: "#/components/schemas/ConnectionEnv" + $ref: "#/components/schemas/ServiceDefinitionV2Link" type: array - handle: - description: Unique identifier used to trigger workflows automatically in Datadog. - type: string - inputSchema: - $ref: "#/components/schemas/InputSchema" - outputSchema: - $ref: "#/components/schemas/OutputSchema" - steps: - description: A `Step` is a sub-component of a workflow. Each `Step` performs an action. + repos: + description: A list of code repositories related to the services. items: - $ref: "#/components/schemas/Step" + $ref: "#/components/schemas/ServiceDefinitionV2Repo" type: array - triggers: - description: The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once. + schema-version: + $ref: "#/components/schemas/ServiceDefinitionV2Version" + tags: + description: A set of custom tags. + example: ["my:tag", "service:tag"] items: - $ref: "#/components/schemas/Trigger" + description: A custom tag string in `key:value` format. + type: string type: array + team: + description: Team that owns the service. + example: my-team + type: string + required: + - schema-version + - dd-service type: object - SpecVersion: - description: The version of the CycloneDX specification a BOM conforms to. - enum: - - "1.0" - - "1.1" - - "1.2" - - "1.3" - - "1.4" - - "1.5" - - "1.6" - example: "1.6" - type: string - x-enum-varnames: - - ONE_ZERO - - ONE_ONE - - ONE_TWO - - ONE_THREE - - ONE_FOUR - - ONE_FIVE - - ONE_SIX - SplitAPIKey: - description: The definition of the `SplitAPIKey` object. + ServiceDefinitionV2Contact: + description: Service owner's contacts information. + oneOf: + - $ref: "#/components/schemas/ServiceDefinitionV2Email" + - $ref: "#/components/schemas/ServiceDefinitionV2Slack" + - $ref: "#/components/schemas/ServiceDefinitionV2MSTeams" + ServiceDefinitionV2Doc: + description: Service documents. properties: - api_key: - description: The `SplitAPIKey` `api_key`. - example: "" + name: + description: Document name. + example: Architecture + type: string + provider: + description: Document provider. + example: google drive + type: string + url: + description: Document URL. + example: "https://gdrive/mydoc" type: string - type: - $ref: "#/components/schemas/SplitAPIKeyType" required: - - type - - api_key + - name + - url type: object - SplitAPIKeyType: - description: The definition of the `SplitAPIKey` object. - enum: - - SplitAPIKey - example: SplitAPIKey - type: string - x-enum-varnames: - - SPLITAPIKEY - SplitAPIKeyUpdate: - description: The definition of the `SplitAPIKey` object. + ServiceDefinitionV2Dot1: + description: Service definition v2.1 for providing service metadata and integrations. properties: - api_key: - description: The `SplitAPIKeyUpdate` `api_key`. + application: + description: Identifier for a group of related services serving a product feature, which the service is a part of. + example: my-app + type: string + contacts: + description: A list of contacts related to the services. + items: + $ref: "#/components/schemas/ServiceDefinitionV2Dot1Contact" + type: array + dd-service: + description: Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog. + example: my-service + type: string + description: + description: A short description of the service. + example: My service description + type: string + extensions: + additionalProperties: {} + description: Extensions to v2.1 schema. + example: {"myorg/extension": "extensionValue"} + type: object + integrations: + $ref: "#/components/schemas/ServiceDefinitionV2Dot1Integrations" + lifecycle: + description: The current life cycle phase of the service. + example: sandbox + type: string + links: + description: A list of links related to the services. + items: + $ref: "#/components/schemas/ServiceDefinitionV2Dot1Link" + type: array + schema-version: + $ref: "#/components/schemas/ServiceDefinitionV2Dot1Version" + tags: + description: A set of custom tags. + example: ["my:tag", "service:tag"] + items: + description: A custom tag string in `key:value` format. + type: string + type: array + team: + description: Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists. + example: my-team + type: string + tier: + description: Importance of the service. + example: High type: string - type: - $ref: "#/components/schemas/SplitAPIKeyType" required: - - type + - schema-version + - dd-service type: object - SplitCredentials: - description: The definition of the `SplitCredentials` object. - oneOf: - - $ref: "#/components/schemas/SplitAPIKey" - SplitCredentialsUpdate: - description: The definition of the `SplitCredentialsUpdate` object. + ServiceDefinitionV2Dot1Contact: + description: Service owner's contacts information. oneOf: - - $ref: "#/components/schemas/SplitAPIKeyUpdate" - SplitIntegration: - description: The definition of the `SplitIntegration` object. + - $ref: "#/components/schemas/ServiceDefinitionV2Dot1Email" + - $ref: "#/components/schemas/ServiceDefinitionV2Dot1Slack" + - $ref: "#/components/schemas/ServiceDefinitionV2Dot1MSTeams" + ServiceDefinitionV2Dot1Email: + description: Service owner's email. properties: - credentials: - $ref: "#/components/schemas/SplitCredentials" + contact: + description: Contact value. + example: contact@datadoghq.com + type: string + name: + description: Contact email. + example: Team Email + type: string type: - $ref: "#/components/schemas/SplitIntegrationType" + $ref: "#/components/schemas/ServiceDefinitionV2Dot1EmailType" required: - type - - credentials + - contact type: object - SplitIntegrationType: - description: The definition of the `SplitIntegrationType` object. + ServiceDefinitionV2Dot1EmailType: + description: Contact type. enum: - - Split - example: Split + - email + example: email type: string x-enum-varnames: - - SPLIT - SplitIntegrationUpdate: - description: The definition of the `SplitIntegrationUpdate` object. + - EMAIL + ServiceDefinitionV2Dot1Integrations: + description: Third party integrations that Datadog supports. properties: - credentials: - $ref: "#/components/schemas/SplitCredentialsUpdate" - type: - $ref: "#/components/schemas/SplitIntegrationType" - required: - - type + opsgenie: + $ref: "#/components/schemas/ServiceDefinitionV2Dot1Opsgenie" + pagerduty: + $ref: "#/components/schemas/ServiceDefinitionV2Dot1Pagerduty" type: object - StartStepNames: - description: "Names of existing workflow steps that run first after a trigger fires." - example: - - "" - items: - description: The `StartStepNames` `items`. - minLength: 1 - type: string - type: array - State: - description: The state of the rule evaluation. - enum: [pass, fail, skip] - example: pass - type: string - x-enum-varnames: [PASS, FAIL, SKIP] - StateVariable: - description: A variable, which can be set and read by other components in the app. + ServiceDefinitionV2Dot1Link: + description: Service's external links. properties: - id: - description: The ID of the state variable. - example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 - format: uuid - type: string name: - description: A unique identifier for this state variable. This name is also used to access the variable's value throughout the app. - example: "ordersToSubmit" + description: Link name. + example: Runbook + type: string + provider: + description: Link provider. + example: Github type: string - properties: - $ref: "#/components/schemas/StateVariableProperties" type: - $ref: "#/components/schemas/StateVariableType" + $ref: "#/components/schemas/ServiceDefinitionV2Dot1LinkType" + url: + description: Link URL. + example: https://my-runbook + type: string required: - - id - name - type - - properties - type: object - StateVariableProperties: - description: The properties of the state variable. - properties: - defaultValue: - description: The default value of the state variable. - example: "${['order_3145', 'order_4920']}" + - url type: object - StateVariableType: - default: stateVariable - description: The state variable type. + ServiceDefinitionV2Dot1LinkType: + description: Link type. enum: - - stateVariable - example: stateVariable + - doc + - repo + - runbook + - dashboard + - other + example: runbook type: string x-enum-varnames: - - STATEVARIABLE - StatsigAPIKey: - description: The definition of the `StatsigAPIKey` object. + - DOC + - REPO + - RUNBOOK + - DASHBOARD + - OTHER + ServiceDefinitionV2Dot1MSTeams: + description: Service owner's Microsoft Teams. properties: - api_key: - description: The `StatsigAPIKey` `api_key`. - example: "" + contact: + description: Contact value. + example: https://teams.microsoft.com/myteam + type: string + name: + description: Contact Microsoft Teams. + example: My team channel type: string type: - $ref: "#/components/schemas/StatsigAPIKeyType" + $ref: "#/components/schemas/ServiceDefinitionV2Dot1MSTeamsType" required: - type - - api_key + - contact type: object - StatsigAPIKeyType: - description: The definition of the `StatsigAPIKey` object. + ServiceDefinitionV2Dot1MSTeamsType: + description: Contact type. enum: - - StatsigAPIKey - example: StatsigAPIKey + - microsoft-teams + example: microsoft-teams type: string x-enum-varnames: - - STATSIGAPIKEY - StatsigAPIKeyUpdate: - description: The definition of the `StatsigAPIKey` object. + - MICROSOFT_TEAMS + ServiceDefinitionV2Dot1Opsgenie: + description: Opsgenie integration for the service. properties: - api_key: - description: The `StatsigAPIKeyUpdate` `api_key`. + region: + $ref: "#/components/schemas/ServiceDefinitionV2Dot1OpsgenieRegion" + service-url: + description: Opsgenie service url. + example: "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000" type: string - type: - $ref: "#/components/schemas/StatsigAPIKeyType" - required: - - type + required: [service-url] type: object - StatsigCredentials: - description: The definition of the `StatsigCredentials` object. - oneOf: - - $ref: "#/components/schemas/StatsigAPIKey" - StatsigCredentialsUpdate: - description: The definition of the `StatsigCredentialsUpdate` object. - oneOf: - - $ref: "#/components/schemas/StatsigAPIKeyUpdate" - StatsigIntegration: - description: The definition of the `StatsigIntegration` object. + ServiceDefinitionV2Dot1OpsgenieRegion: + description: Opsgenie instance region. + enum: [US, EU] + example: US + type: string + x-enum-varnames: [US, EU] + ServiceDefinitionV2Dot1Pagerduty: + description: PagerDuty integration for the service. properties: - credentials: - $ref: "#/components/schemas/StatsigCredentials" + service-url: + description: PagerDuty service url. + example: "https://my-org.pagerduty.com/service-directory/PMyService" + type: string + type: object + ServiceDefinitionV2Dot1Slack: + description: Service owner's Slack channel. + properties: + contact: + description: Slack Channel. + example: https://yourcompany.slack.com/archives/channel123 + type: string + name: + description: Contact Slack. + example: Team Slack + type: string type: - $ref: "#/components/schemas/StatsigIntegrationType" + $ref: "#/components/schemas/ServiceDefinitionV2Dot1SlackType" required: - type - - credentials + - contact type: object - StatsigIntegrationType: - description: The definition of the `StatsigIntegrationType` object. + ServiceDefinitionV2Dot1SlackType: + description: Contact type. enum: - - Statsig - example: Statsig + - slack + example: slack type: string x-enum-varnames: - - STATSIG - StatsigIntegrationUpdate: - description: The definition of the `StatsigIntegrationUpdate` object. - properties: - credentials: - $ref: "#/components/schemas/StatsigCredentialsUpdate" - type: - $ref: "#/components/schemas/StatsigIntegrationType" - required: - - type - type: object - StatusPage: - description: Response object for a single status page. - properties: - data: - $ref: "#/components/schemas/StatusPageData" - included: - description: The included related resources of a status page. Client must explicitly request these resources by name in the `include` query parameter. - items: - $ref: "#/components/schemas/StatusPageArrayIncluded" - type: array - type: object - StatusPageArray: - description: Response object for a list of status pages. + - SLACK + ServiceDefinitionV2Dot1Version: + default: v2.1 + description: Schema version being used. + enum: + - v2.1 + example: v2.1 + type: string + x-enum-varnames: + - V2_1 + ServiceDefinitionV2Dot2: + description: Service definition v2.2 for providing service metadata and integrations. properties: - data: - description: A list of status page data objects. + application: + description: Identifier for a group of related services serving a product feature, which the service is a part of. + example: my-app + type: string + ci-pipeline-fingerprints: + description: A set of CI fingerprints. + example: ["j88xdEy0J5lc", "eZ7LMljCk8vo"] items: - $ref: "#/components/schemas/StatusPageData" + description: A CI pipeline fingerprint string. + type: string type: array - included: - description: The included related resources of a status page. Client must explicitly request these resources by name in the `include` query parameter. + contacts: + description: A list of contacts related to the services. items: - $ref: "#/components/schemas/StatusPageArrayIncluded" + $ref: "#/components/schemas/ServiceDefinitionV2Dot2Contact" type: array - meta: - $ref: "#/components/schemas/PaginationMeta" - required: - - data - type: object - StatusPageArrayIncluded: - description: An included resource related to a status page. - oneOf: - - $ref: "#/components/schemas/StatusPagesUser" - StatusPageAsIncluded: - description: The included status page resource. - properties: - attributes: - $ref: "#/components/schemas/StatusPageAsIncludedAttributes" - id: - description: The ID of the status page. - format: uuid + dd-service: + description: Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog. + example: my-service type: string - relationships: - $ref: "#/components/schemas/StatusPageAsIncludedRelationships" - type: - $ref: "#/components/schemas/StatusPageDataType" - required: - - type - type: object - StatusPageAsIncludedAttributes: - description: The attributes of a status page. - properties: - company_logo: - description: The base64-encoded image data displayed in the company logo. + description: + description: A short description of the service. + example: My service description type: string - components: - description: Components displayed on the status page. + extensions: + additionalProperties: {} + description: Extensions to v2.2 schema. + example: {"myorg/extension": "extensionValue"} + type: object + integrations: + $ref: "#/components/schemas/ServiceDefinitionV2Dot2Integrations" + languages: + description: "The service's programming language. Datadog recognizes the following languages: `dotnet`, `go`, `java`, `js`, `php`, `python`, `ruby`, and `c++`." + example: ["dotnet", "go", "java", "js", "php", "python", "ruby", "c++"] items: - $ref: "#/components/schemas/StatusPageAsIncludedAttributesComponentsItems" + description: A programming language identifier. + type: string type: array - created_at: - description: Timestamp of when the status page was created. - format: date-time - type: string - custom_domain: - description: If configured, the url that the status page is accessible at. - type: string - custom_domain_enabled: - description: Whether the custom domain is configured. - type: boolean - domain_prefix: - description: The subdomain of the status page's url taking the form `https://{domain_prefix}.statuspage.datadoghq.com`. Globally unique across Datadog Status Pages. - type: string - email_header_image: - description: Base64-encoded image data included in email notifications sent to status page subscribers. - type: string - enabled: - description: Whether the status page is enabled. - type: boolean - favicon: - description: Base64-encoded image data displayed in the browser tab. - type: string - modified_at: - description: Timestamp of when the status page was last modified. - format: date-time - type: string - name: - description: The name of the status page. - type: string - page_url: - description: The url that the status page is accessible at. - type: string - slack_app_icon: - description: The Slack app icon URL for the status page. + lifecycle: + description: The current life cycle phase of the service. + example: sandbox type: string - slack_subscriptions_enabled: - description: Whether Slack subscriptions are enabled for the status page. - type: boolean - subscriptions_enabled: - description: Whether users can subscribe to the status page. - type: boolean - type: - $ref: "#/components/schemas/CreateStatusPageRequestDataAttributesType" - visualization_type: - $ref: "#/components/schemas/CreateStatusPageRequestDataAttributesVisualizationType" - type: object - StatusPageAsIncludedAttributesComponentsItems: - description: A component displayed on an included status page. - properties: - components: - description: If the component is of type `group`, the components within the group. + links: + description: A list of links related to the services. items: - $ref: "#/components/schemas/StatusPageAsIncludedAttributesComponentsItemsComponentsItems" + $ref: "#/components/schemas/ServiceDefinitionV2Dot2Link" type: array - id: - description: The ID of the component. - format: uuid - readOnly: true + schema-version: + $ref: "#/components/schemas/ServiceDefinitionV2Dot2Version" + tags: + description: A set of custom tags. + example: ["my:tag", "service:tag"] + items: + description: A custom tag string in `key:value` format. + type: string + type: array + team: + description: Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists. + example: my-team type: string - name: - description: The name of the component. + tier: + description: Importance of the service. + example: High type: string - position: - description: The zero-indexed position of the component. - format: int64 - type: integer - status: - $ref: "#/components/schemas/StatusPagesComponentGroupAttributesComponentsItemsStatus" type: - $ref: "#/components/schemas/CreateComponentRequestDataAttributesType" + $ref: "#/components/schemas/ServiceDefinitionV2Dot2Type" + required: + - schema-version + - dd-service type: object - StatusPageAsIncludedAttributesComponentsItemsComponentsItems: - description: A grouped component within a status page component group. + ServiceDefinitionV2Dot2Contact: + description: Service owner's contacts information. properties: - id: - description: The ID of the grouped component. - format: uuid - readOnly: true + contact: + description: Contact value. + example: https://teams.microsoft.com/myteam type: string name: - description: The name of the grouped component. + description: Contact Name. + example: My team channel type: string - position: - description: The zero-indexed position of the grouped component. Relative to the other components in the group. - format: int64 - type: integer - status: - $ref: "#/components/schemas/StatusPagesComponentGroupAttributesComponentsItemsStatus" type: - $ref: "#/components/schemas/StatusPagesComponentGroupAttributesComponentsItemsType" - type: object - StatusPageAsIncludedRelationships: - description: The relationships of a status page. - properties: - created_by_user: - $ref: "#/components/schemas/StatusPageAsIncludedRelationshipsCreatedByUser" - description: The Datadog user who created the status page. - last_modified_by_user: - $ref: "#/components/schemas/StatusPageAsIncludedRelationshipsLastModifiedByUser" - description: The Datadog user who last modified the status page. - type: object - StatusPageAsIncludedRelationshipsCreatedByUser: - description: The Datadog user who created the status page. - properties: - data: - $ref: "#/components/schemas/StatusPageAsIncludedRelationshipsCreatedByUserData" - required: - - data - type: object - StatusPageAsIncludedRelationshipsCreatedByUserData: - description: The data object identifying the Datadog user who created the status page. - properties: - id: - description: The ID of the Datadog user who created the status page. - example: "" + description: "Contact type. Datadog recognizes the following types: `email`, `slack`, and `microsoft-teams`." + example: slack type: string - type: - $ref: "#/components/schemas/StatusPagesUserType" required: - type - - id + - contact type: object - StatusPageAsIncludedRelationshipsLastModifiedByUser: - description: The Datadog user who last modified the status page. + ServiceDefinitionV2Dot2Integrations: + description: Third party integrations that Datadog supports. properties: - data: - $ref: "#/components/schemas/StatusPageAsIncludedRelationshipsLastModifiedByUserData" - required: - - data + opsgenie: + $ref: "#/components/schemas/ServiceDefinitionV2Dot2Opsgenie" + pagerduty: + $ref: "#/components/schemas/ServiceDefinitionV2Dot2Pagerduty" type: object - StatusPageAsIncludedRelationshipsLastModifiedByUserData: - description: The data object identifying the Datadog user who last modified the status page. + ServiceDefinitionV2Dot2Link: + description: Service's external links. properties: - id: - description: The ID of the Datadog user who last modified the status page. - example: "" + name: + description: Link name. + example: Runbook + type: string + provider: + description: Link provider. + example: Github type: string type: - $ref: "#/components/schemas/StatusPagesUserType" + description: "Link type. Datadog recognizes the following types: `runbook`, `doc`, `repo`, `dashboard`, and `other`." + example: runbook + type: string + url: + description: Link URL. + example: https://my-runbook + type: string required: + - name - type - - id + - url type: object - StatusPageData: - description: The data object for a status page. + ServiceDefinitionV2Dot2Opsgenie: + description: Opsgenie integration for the service. properties: - attributes: - $ref: "#/components/schemas/StatusPageDataAttributes" - id: - description: The ID of the status page. - format: uuid + region: + $ref: "#/components/schemas/ServiceDefinitionV2Dot2OpsgenieRegion" + service-url: + description: Opsgenie service url. + example: "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000" type: string - relationships: - $ref: "#/components/schemas/StatusPageDataRelationships" - type: - $ref: "#/components/schemas/StatusPageDataType" - required: - - type + required: [service-url] type: object - StatusPageDataAttributes: - description: The attributes of a status page. + ServiceDefinitionV2Dot2OpsgenieRegion: + description: Opsgenie instance region. + enum: [US, EU] + example: US + type: string + x-enum-varnames: [US, EU] + ServiceDefinitionV2Dot2Pagerduty: + description: PagerDuty integration for the service. properties: - company_logo: - description: Base64-encoded image data displayed on the status page. - nullable: true - type: string - components: - description: Components displayed on the status page. - items: - $ref: "#/components/schemas/StatusPageDataAttributesComponentsItems" - type: array - created_at: - description: Timestamp of when the status page was created. - format: date-time - type: string - custom_domain: - description: If configured, the url that the status page is accessible at. - nullable: true - type: string - custom_domain_enabled: - description: Whether the custom domain is configured. - type: boolean - domain_prefix: - description: The subdomain of the status page's url taking the form `https://{domain_prefix}.statuspage.datadoghq.com`. Globally unique across Datadog Status Pages. - type: string - email_header_image: - description: Base64-encoded image data included in email notifications sent to status page subscribers. - nullable: true - type: string - enabled: - description: Whether the status page is enabled. - type: boolean - favicon: - description: Base64-encoded image data displayed in the browser tab. - nullable: true + service-url: + description: PagerDuty service url. + example: "https://my-org.pagerduty.com/service-directory/PMyService" type: string - modified_at: - description: Timestamp of when the status page was last modified. - format: date-time + type: object + ServiceDefinitionV2Dot2Type: + description: "The type of service." + example: web + type: string + ServiceDefinitionV2Dot2Version: + default: v2.2 + description: Schema version being used. + enum: + - v2.2 + example: v2.2 + type: string + x-enum-varnames: + - V2_2 + ServiceDefinitionV2Email: + description: Service owner's email. + properties: + contact: + description: Contact value. + example: contact@datadoghq.com type: string name: - description: The name of the status page. - type: string - page_url: - description: The url that the status page is accessible at. - type: string - slack_app_icon: - description: The Slack app icon URL for the status page. + description: Contact email. + example: Team Email type: string - slack_subscriptions_enabled: - description: Whether Slack subscriptions are enabled for the status page. - type: boolean - subscriptions_enabled: - description: Whether users can subscribe to the status page. - type: boolean type: - $ref: "#/components/schemas/CreateStatusPageRequestDataAttributesType" - visualization_type: - $ref: "#/components/schemas/CreateStatusPageRequestDataAttributesVisualizationType" + $ref: "#/components/schemas/ServiceDefinitionV2EmailType" + required: + - type + - contact type: object - StatusPageDataAttributesComponentsItems: - description: A component displayed on a status page. + ServiceDefinitionV2EmailType: + description: Contact type. + enum: + - email + example: email + type: string + x-enum-varnames: + - EMAIL + ServiceDefinitionV2Integrations: + description: Third party integrations that Datadog supports. + properties: + opsgenie: + $ref: "#/components/schemas/ServiceDefinitionV2Opsgenie" + pagerduty: + $ref: "#/components/schemas/ServiceDefinitionV2Pagerduty" + type: object + ServiceDefinitionV2Link: + description: Service's external links. properties: - components: - description: If the component is of type `group`, the components within the group. - items: - $ref: "#/components/schemas/StatusPageDataAttributesComponentsItemsComponentsItems" - type: array - id: - description: The ID of the component. - format: uuid - type: string name: - description: The name of the component. + description: Link name. + example: Runbook type: string - position: - description: The zero-indexed position of the component. - format: int64 - type: integer - status: - $ref: "#/components/schemas/StatusPagesComponentGroupAttributesComponentsItemsStatus" type: - $ref: "#/components/schemas/CreateComponentRequestDataAttributesType" + $ref: "#/components/schemas/ServiceDefinitionV2LinkType" + url: + description: Link URL. + example: https://my-runbook + type: string + required: + - name + - type + - url type: object - StatusPageDataAttributesComponentsItemsComponentsItems: - description: A grouped component within a status page component group. + ServiceDefinitionV2LinkType: + description: Link type. + enum: + - doc + - wiki + - runbook + - url + - repo + - dashboard + - oncall + - code + - link + example: runbook + type: string + x-enum-varnames: + - DOC + - WIKI + - RUNBOOK + - URL + - REPO + - DASHBOARD + - ONCALL + - CODE + - LINK + ServiceDefinitionV2MSTeams: + description: Service owner's Microsoft Teams. properties: - id: - description: The ID of the component. - format: uuid + contact: + description: Contact value. + example: https://teams.microsoft.com/myteam type: string name: - description: The name of the component. + description: Contact Microsoft Teams. + example: My team channel type: string - position: - description: The zero-indexed position of the component. Relative to the other components in the group. - format: int64 - type: integer - status: - $ref: "#/components/schemas/StatusPagesComponentGroupAttributesComponentsItemsStatus" type: - $ref: "#/components/schemas/StatusPagesComponentGroupAttributesComponentsItemsType" - type: object - StatusPageDataRelationships: - description: The relationships of a status page. - properties: - created_by_user: - $ref: "#/components/schemas/StatusPageDataRelationshipsCreatedByUser" - description: The Datadog user who created the status page. - last_modified_by_user: - $ref: "#/components/schemas/StatusPageDataRelationshipsLastModifiedByUser" - description: The Datadog user who last modified the status page. - type: object - StatusPageDataRelationshipsCreatedByUser: - description: The Datadog user who created the status page. - properties: - data: - $ref: "#/components/schemas/StatusPageDataRelationshipsCreatedByUserData" + $ref: "#/components/schemas/ServiceDefinitionV2MSTeamsType" required: - - data + - type + - contact type: object - StatusPageDataRelationshipsCreatedByUserData: - description: The data object identifying the Datadog user who created the status page. + ServiceDefinitionV2MSTeamsType: + description: Contact type. + enum: + - microsoft-teams + example: microsoft-teams + type: string + x-enum-varnames: + - MICROSOFT_TEAMS + ServiceDefinitionV2Opsgenie: + description: Opsgenie integration for the service. properties: - id: - description: The ID of the Datadog user who created the status page. - example: "" + region: + $ref: "#/components/schemas/ServiceDefinitionV2OpsgenieRegion" + service-url: + description: Opsgenie service url. + example: "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000" type: string - type: - $ref: "#/components/schemas/StatusPagesUserType" - required: - - type - - id + required: [service-url] type: object - StatusPageDataRelationshipsLastModifiedByUser: - description: The Datadog user who last modified the status page. + ServiceDefinitionV2OpsgenieRegion: + description: Opsgenie instance region. + enum: [US, EU] + example: US + type: string + x-enum-varnames: [US, EU] + ServiceDefinitionV2Pagerduty: + description: PagerDuty service URL for the service. + example: https://my-org.pagerduty.com/service-directory/PMyService + type: string + ServiceDefinitionV2Repo: + description: Service code repositories. properties: - data: - $ref: "#/components/schemas/StatusPageDataRelationshipsLastModifiedByUserData" + name: + description: Repository name. + example: Source Code + type: string + provider: + description: Repository provider. + example: GitHub + type: string + url: + description: Repository URL. + example: "https://github.com/DataDog/schema" + type: string required: - - data + - name + - url type: object - StatusPageDataRelationshipsLastModifiedByUserData: - description: The data object identifying the Datadog user who last modified the status page. + ServiceDefinitionV2Slack: + description: Service owner's Slack channel. properties: - id: - description: The ID of the Datadog user who last modified the status page. - example: "" + contact: + description: Slack Channel. + example: https://yourcompany.slack.com/archives/channel123 + type: string + name: + description: Contact Slack. + example: Team Slack type: string type: - $ref: "#/components/schemas/StatusPagesUserType" + $ref: "#/components/schemas/ServiceDefinitionV2SlackType" required: - type - - id + - contact type: object - StatusPageDataType: - default: status_pages - description: Status pages resource type. + ServiceDefinitionV2SlackType: + description: Contact type. enum: - - status_pages - example: status_pages + - slack + example: slack type: string x-enum-varnames: - - STATUS_PAGES - StatusPagesComponent: - description: Response object for a single component. + - SLACK + ServiceDefinitionV2Version: + default: v2 + description: Schema version being used. + enum: + - v2 + example: v2 + type: string + x-enum-varnames: + - V2 + ServiceDefinitionsCreateRequest: + description: Create service definitions request. + oneOf: + - $ref: "#/components/schemas/ServiceDefinitionV2Dot2" + - $ref: "#/components/schemas/ServiceDefinitionV2Dot1" + - $ref: "#/components/schemas/ServiceDefinitionV2" + - $ref: "#/components/schemas/ServiceDefinitionRaw" + ServiceDefinitionsListResponse: + description: Create service definitions response. properties: data: - $ref: "#/components/schemas/StatusPagesComponentData" - included: - description: The included related resources of a component. Client must explicitly request these resources by name in the `include` query parameter. + description: Data representing service definitions. items: - $ref: "#/components/schemas/StatusPagesComponentArrayIncluded" + $ref: "#/components/schemas/ServiceDefinitionData" type: array type: object - StatusPagesComponentArray: - description: Response object for a list of components. + ServiceList: + description: The response body for the service list endpoint. properties: data: - description: A list of component data objects. - items: - $ref: "#/components/schemas/StatusPagesComponentData" - type: array - included: - description: The included related resources of a component. Client must explicitly request these resources by name in the `include` query parameter. - items: - $ref: "#/components/schemas/StatusPagesComponentArrayIncluded" - type: array - required: - - data + $ref: "#/components/schemas/ServiceListData" type: object - StatusPagesComponentArrayIncluded: - description: An included resource related to a component. - oneOf: - - $ref: "#/components/schemas/StatusPagesUser" - - $ref: "#/components/schemas/StatusPageAsIncluded" - - $ref: "#/components/schemas/StatusPagesComponentGroup" - StatusPagesComponentData: - description: The data object for a component. + ServiceListData: + description: A single data item in the service list response. properties: attributes: - $ref: "#/components/schemas/StatusPagesComponentDataAttributes" + $ref: "#/components/schemas/ServiceListDataAttributes" id: - description: The ID of the component. - format: uuid + description: The unique identifier of the service. type: string - relationships: - $ref: "#/components/schemas/StatusPagesComponentDataRelationships" type: - $ref: "#/components/schemas/StatusPagesComponentGroupType" + $ref: "#/components/schemas/ServiceListDataType" required: - type type: object - StatusPagesComponentDataAttributes: - description: The attributes of a component. + ServiceListDataAttributes: + description: Attributes of a service list entry, containing metadata and a list of service names. properties: - components: - description: If the component is of type `group`, the components within the group. + metadata: + description: A list of metadata items associated with the service. items: - $ref: "#/components/schemas/StatusPagesComponentDataAttributesComponentsItems" + $ref: "#/components/schemas/ServiceListDataAttributesMetadataItems" type: array - created_at: - description: Timestamp of when the component was created. - format: date-time + services: + description: A list of service names. + items: + description: A single service name. + type: string + type: array + type: object + ServiceListDataAttributesMetadataItems: + description: An object containing metadata flags for a service, indicating whether it is traced by APM or monitored through Universal Service Monitoring. + properties: + isTraced: + description: Indicates whether the service is traced by APM. + type: boolean + isUsm: + description: Indicates whether the service uses Universal Service Monitoring. + type: boolean + type: object + ServiceListDataType: + default: services_list + description: Services list resource type. + enum: + - services_list + example: services_list + type: string + x-enum-varnames: + - SERVICES_LIST + ServiceNowAssignmentGroupAttributes: + description: Attributes of a ServiceNow assignment group + properties: + assignment_group_name: + description: The name of the assignment group + example: "Network Team" type: string - modified_at: - description: Timestamp of when the component was last modified. - format: date-time + assignment_group_sys_id: + description: The system ID of the assignment group in ServiceNow + example: "abc123def456" type: string - name: - description: The name of the component. + instance_id: + description: The ID of the ServiceNow instance + example: "65b3341b-0680-47f9-a6d4-134db45c603e" + format: uuid type: string - position: - description: The zero-indexed position of the component. - format: int64 - type: integer - status: - $ref: "#/components/schemas/StatusPagesComponentDataAttributesStatus" - type: - $ref: "#/components/schemas/CreateComponentRequestDataAttributesType" required: - - type + - instance_id + - assignment_group_name + - assignment_group_sys_id type: object - StatusPagesComponentDataAttributesComponentsItems: - description: A component within a component group. + ServiceNowAssignmentGroupData: + description: Data object for a ServiceNow assignment group properties: + attributes: + $ref: "#/components/schemas/ServiceNowAssignmentGroupAttributes" id: - description: The ID of the component within the group. + description: Unique identifier for the ServiceNow assignment group + example: "65b3341b-0680-47f9-a6d4-134db45c603e" format: uuid - readOnly: true type: string - name: - description: The name of the component within the group. - type: string - position: - description: The zero-indexed position of the component within the group. - format: int64 - type: integer - status: - $ref: "#/components/schemas/StatusPagesComponentGroupAttributesComponentsItemsStatus" type: - $ref: "#/components/schemas/StatusPagesComponentGroupAttributesComponentsItemsType" + $ref: "#/components/schemas/ServiceNowAssignmentGroupType" + required: + - id + - type + - attributes type: object - StatusPagesComponentDataAttributesStatus: - description: The status of the component. + ServiceNowAssignmentGroupType: + description: Type identifier for ServiceNow assignment group resources enum: - - operational - - degraded - - partial_outage - - major_outage - - maintenance - example: operational + - assignment_groups + example: assignment_groups type: string x-enum-varnames: - - OPERATIONAL - - DEGRADED - - PARTIAL_OUTAGE - - MAJOR_OUTAGE - - MAINTENANCE - StatusPagesComponentDataRelationships: - description: The relationships of a component. - properties: - created_by_user: - $ref: "#/components/schemas/StatusPagesComponentDataRelationshipsCreatedByUser" - description: The Datadog user who created the component. - group: - $ref: "#/components/schemas/StatusPagesComponentDataRelationshipsGroup" - description: The group the component belongs to. - last_modified_by_user: - $ref: "#/components/schemas/StatusPagesComponentDataRelationshipsLastModifiedByUser" - description: The Datadog user who last modified the component. - status_page: - $ref: "#/components/schemas/StatusPagesComponentDataRelationshipsStatusPage" - description: The status page the component belongs to. - type: object - StatusPagesComponentDataRelationshipsCreatedByUser: - description: The Datadog user who created the component. + - ASSIGNMENT_GROUPS + ServiceNowAssignmentGroupsData: + description: Array of ServiceNow assignment group data objects + items: + $ref: "#/components/schemas/ServiceNowAssignmentGroupData" + type: array + ServiceNowAssignmentGroupsResponse: + description: Response containing ServiceNow assignment groups properties: data: - $ref: "#/components/schemas/StatusPagesComponentDataRelationshipsCreatedByUserData" + $ref: "#/components/schemas/ServiceNowAssignmentGroupsData" + example: + - attributes: + group_name: "IT Operations" + group_sys_id: "abc123def456" + instance_id: "65b3341b-0680-47f9-a6d4-134db45c603e" + id: "65b3341b-0680-47f9-a6d4-134db45c603e" + type: assignment_groups required: - data type: object - StatusPagesComponentDataRelationshipsCreatedByUserData: - description: The data object identifying the Datadog user who created the component. + ServiceNowBasicAuth: + description: The definition of the `ServiceNowBasicAuth` object. properties: - id: - description: The ID of the Datadog user who created the component. + instance: + description: The `ServiceNowBasicAuth` `instance`. + example: "" + type: string + password: + description: The `ServiceNowBasicAuth` `password`. example: "" type: string type: - $ref: "#/components/schemas/StatusPagesUserType" + $ref: "#/components/schemas/ServiceNowBasicAuthType" + username: + description: The `ServiceNowBasicAuth` `username`. + example: "" + type: string required: - type - - id - type: object - StatusPagesComponentDataRelationshipsGroup: - description: The group the component belongs to. - properties: - data: - $ref: "#/components/schemas/StatusPagesComponentDataRelationshipsGroupData" - required: - - data + - instance + - username + - password type: object - StatusPagesComponentDataRelationshipsGroupData: - description: The data object identifying the group the component belongs to. - nullable: true + ServiceNowBasicAuthType: + description: The definition of the `ServiceNowBasicAuth` object. + enum: + - ServiceNowBasicAuth + example: ServiceNowBasicAuth + type: string + x-enum-varnames: + - SERVICENOWBASICAUTH + ServiceNowBasicAuthUpdate: + description: The definition of the `ServiceNowBasicAuth` object. properties: - id: - description: The ID of the group the component belongs to. - example: "1234abcd-12ab-34cd-56ef-123456abcdef" - format: uuid + instance: + description: The `ServiceNowBasicAuthUpdate` `instance`. + type: string + password: + description: The `ServiceNowBasicAuthUpdate` `password`. type: string type: - $ref: "#/components/schemas/StatusPagesComponentGroupType" + $ref: "#/components/schemas/ServiceNowBasicAuthType" + username: + description: The `ServiceNowBasicAuthUpdate` `username`. + type: string required: - type - - id type: object - StatusPagesComponentDataRelationshipsLastModifiedByUser: - description: The Datadog user who last modified the component. + ServiceNowBusinessServiceAttributes: + description: Attributes of a ServiceNow business service properties: - data: - $ref: "#/components/schemas/StatusPagesComponentDataRelationshipsLastModifiedByUserData" + instance_id: + description: The ID of the ServiceNow instance + example: "65b3341b-0680-47f9-a6d4-134db45c603e" + format: uuid + type: string + service_name: + description: The name of the business service + example: "IT Support" + type: string + service_sys_id: + description: The system ID of the business service in ServiceNow + example: "abc123def456" + type: string required: - - data + - instance_id + - service_name + - service_sys_id type: object - StatusPagesComponentDataRelationshipsLastModifiedByUserData: - description: The data object identifying the Datadog user who last modified the component. + ServiceNowBusinessServiceData: + description: Data object for a ServiceNow business service properties: + attributes: + $ref: "#/components/schemas/ServiceNowBusinessServiceAttributes" id: - description: The ID of the Datadog user who last modified the component. - example: "" + description: Unique identifier for the ServiceNow business service + example: "65b3341b-0680-47f9-a6d4-134db45c603e" + format: uuid type: string type: - $ref: "#/components/schemas/StatusPagesUserType" + $ref: "#/components/schemas/ServiceNowBusinessServiceType" required: - - type - id + - type + - attributes type: object - StatusPagesComponentDataRelationshipsStatusPage: - description: The status page the component belongs to. + ServiceNowBusinessServiceType: + description: Type identifier for ServiceNow business service resources + enum: + - business_services + example: business_services + type: string + x-enum-varnames: + - BUSINESS_SERVICES + ServiceNowBusinessServicesData: + description: Array of ServiceNow business service data objects + items: + $ref: "#/components/schemas/ServiceNowBusinessServiceData" + type: array + ServiceNowBusinessServicesResponse: + description: Response containing ServiceNow business services properties: data: - $ref: "#/components/schemas/StatusPagesComponentDataRelationshipsStatusPageData" + $ref: "#/components/schemas/ServiceNowBusinessServicesData" + example: + - attributes: + instance_id: "65b3341b-0680-47f9-a6d4-134db45c603e" + service_name: "IT Support" + service_sys_id: "abc123def456" + id: "65b3341b-0680-47f9-a6d4-134db45c603e" + type: business_services required: - data type: object - StatusPagesComponentDataRelationshipsStatusPageData: - description: The data object identifying the status page the component belongs to. + ServiceNowCredentials: + description: The definition of the `ServiceNowCredentials` object. + oneOf: + - $ref: "#/components/schemas/ServiceNowBasicAuth" + ServiceNowCredentialsUpdate: + description: The definition of the `ServiceNowCredentialsUpdate` object. + oneOf: + - $ref: "#/components/schemas/ServiceNowBasicAuthUpdate" + ServiceNowInstanceAttributes: + description: Attributes of a ServiceNow instance properties: - id: - description: The ID of the status page the component belongs to. - example: "1234abcd-12ab-34cd-56ef-123456abcdef" - format: uuid + instance_name: + description: The name of the ServiceNow instance + example: "my-servicenow-instance" type: string - type: - $ref: "#/components/schemas/StatusPageDataType" required: - - type - - id + - instance_name type: object - StatusPagesComponentGroup: - description: The included component group resource. + ServiceNowInstanceData: + description: Data object for a ServiceNow instance properties: attributes: - $ref: "#/components/schemas/StatusPagesComponentGroupAttributes" + $ref: "#/components/schemas/ServiceNowInstanceAttributes" id: - description: The ID of the component. + description: Unique identifier for the ServiceNow instance + example: "65b3341b-0680-47f9-a6d4-134db45c603e" format: uuid type: string - relationships: - $ref: "#/components/schemas/StatusPagesComponentGroupRelationships" - type: - $ref: "#/components/schemas/StatusPagesComponentGroupType" - required: - - type - type: object - StatusPagesComponentGroupAttributes: - description: The attributes of a component group. - properties: - components: - description: If the component is of type `group`, the components within the group. - items: - $ref: "#/components/schemas/StatusPagesComponentGroupAttributesComponentsItems" - type: array - created_at: - description: Timestamp of when the component was created. - format: date-time - type: string - modified_at: - description: Timestamp of when the component was last modified. - format: date-time - type: string - name: - description: The name of the component. - type: string - position: - description: The zero-indexed position of the component. - format: int64 - type: integer - status: - $ref: "#/components/schemas/StatusPagesComponentDataAttributesStatus" type: - $ref: "#/components/schemas/CreateComponentRequestDataAttributesType" + $ref: "#/components/schemas/ServiceNowInstanceType" required: + - id - type + - attributes type: object - StatusPagesComponentGroupAttributesComponentsItems: - description: A component within a component group. - properties: - id: - description: The ID of the grouped component. - format: uuid - readOnly: true - type: string - name: - description: The name of the grouped component. - type: string - position: - description: The zero-indexed position of the grouped component. Relative to the other components in the group. - format: int64 - type: integer - status: - $ref: "#/components/schemas/StatusPagesComponentGroupAttributesComponentsItemsStatus" - type: - $ref: "#/components/schemas/StatusPagesComponentGroupAttributesComponentsItemsType" - type: object - StatusPagesComponentGroupAttributesComponentsItemsStatus: - description: The status of the component. - enum: - - operational - - degraded - - partial_outage - - major_outage - - maintenance - readOnly: true - type: string - x-enum-varnames: - - OPERATIONAL - - DEGRADED - - PARTIAL_OUTAGE - - MAJOR_OUTAGE - - MAINTENANCE - StatusPagesComponentGroupAttributesComponentsItemsType: - description: The type of the component. + ServiceNowInstanceType: + description: Type identifier for ServiceNow instance resources enum: - - component - example: component + - instance + example: instance type: string x-enum-varnames: - - COMPONENT - StatusPagesComponentGroupRelationships: - description: The relationships of a component group. - properties: - created_by_user: - $ref: "#/components/schemas/StatusPagesComponentGroupRelationshipsCreatedByUser" - group: - $ref: "#/components/schemas/StatusPagesComponentGroupRelationshipsGroup" - last_modified_by_user: - $ref: "#/components/schemas/StatusPagesComponentGroupRelationshipsLastModifiedByUser" - status_page: - $ref: "#/components/schemas/StatusPagesComponentGroupRelationshipsStatusPage" - type: object - StatusPagesComponentGroupRelationshipsCreatedByUser: - description: The Datadog user who created the component group. + - INSTANCE + ServiceNowInstancesData: + description: Array of ServiceNow instance data objects + items: + $ref: "#/components/schemas/ServiceNowInstanceData" + type: array + ServiceNowInstancesResponse: + description: Response containing ServiceNow instances properties: data: - $ref: "#/components/schemas/StatusPagesComponentGroupRelationshipsCreatedByUserData" + $ref: "#/components/schemas/ServiceNowInstancesData" + example: + - attributes: + instance_name: "my-servicenow-instance" + id: "65b3341b-0680-47f9-a6d4-134db45c603e" + type: instance required: - data type: object - StatusPagesComponentGroupRelationshipsCreatedByUserData: - description: The data object identifying the Datadog user who created the component group. + ServiceNowIntegration: + description: The definition of the `ServiceNowIntegration` object. properties: - id: - description: The ID of the Datadog user who created the component group. - example: "" - type: string + credentials: + $ref: "#/components/schemas/ServiceNowCredentials" type: - $ref: "#/components/schemas/StatusPagesUserType" + $ref: "#/components/schemas/ServiceNowIntegrationType" required: - type - - id + - credentials type: object - StatusPagesComponentGroupRelationshipsGroup: - description: The group the component group belongs to. + ServiceNowIntegrationType: + description: The definition of the `ServiceNowIntegrationType` object. + enum: + - ServiceNow + example: ServiceNow + type: string + x-enum-varnames: + - SERVICENOW + ServiceNowIntegrationUpdate: + description: The definition of the `ServiceNowIntegrationUpdate` object. properties: - data: - $ref: "#/components/schemas/StatusPagesComponentGroupRelationshipsGroupData" + credentials: + $ref: "#/components/schemas/ServiceNowCredentialsUpdate" + type: + $ref: "#/components/schemas/ServiceNowIntegrationType" required: - - data + - type type: object - StatusPagesComponentGroupRelationshipsGroupData: - description: The data object identifying the parent group of a component group. - nullable: true + ServiceNowTemplateAttributes: + description: Attributes of a ServiceNow template properties: - id: - description: The ID of the parent group. - example: "1234abcd-12ab-34cd-56ef-123456abcdef" + assignment_group_id: + description: The ID of the assignment group + example: "65b3341b-0680-47f9-a6d4-134db45c603e" + format: uuid + type: string + business_service_id: + description: The ID of the business service + example: "65b3341b-0680-47f9-a6d4-134db45c603e" + format: uuid + type: string + fields_mapping: + additionalProperties: + type: string + description: Custom field mappings for the template + example: + category: "software" + priority: "1" + type: object + handle_name: + description: The handle name of the template + example: "incident-template" + type: string + instance_id: + description: The ID of the ServiceNow instance + example: "65b3341b-0680-47f9-a6d4-134db45c603e" + format: uuid + type: string + servicenow_tablename: + description: The name of the destination ServiceNow table + example: "incident" + type: string + user_id: + description: The ID of the user + example: "65b3341b-0680-47f9-a6d4-134db45c603e" format: uuid type: string - type: - $ref: "#/components/schemas/StatusPagesComponentGroupType" required: - - type - - id + - instance_id + - handle_name + - servicenow_tablename type: object - StatusPagesComponentGroupRelationshipsLastModifiedByUser: - description: The Datadog user who last modified the component group. + ServiceNowTemplateCreateRequest: + description: Request to create a ServiceNow template properties: data: - $ref: "#/components/schemas/StatusPagesComponentGroupRelationshipsLastModifiedByUserData" + $ref: "#/components/schemas/ServiceNowTemplateCreateRequestData" required: - data type: object - StatusPagesComponentGroupRelationshipsLastModifiedByUserData: - description: The data object identifying the Datadog user who last modified the component group. + ServiceNowTemplateCreateRequestAttributes: + description: Attributes for creating a ServiceNow template properties: - id: - description: The ID of the Datadog user who last modified the component group. - example: "" + assignment_group_id: + description: The ID of the assignment group + example: "65b3341b-0680-47f9-a6d4-134db45c603e" + format: uuid + type: string + business_service_id: + description: The ID of the business service + example: "65b3341b-0680-47f9-a6d4-134db45c603e" + format: uuid + type: string + fields_mapping: + additionalProperties: + type: string + description: Custom field mappings for the template + example: + category: "software" + priority: "1" + type: object + handle_name: + description: The handle name of the template + example: "incident-template" + type: string + instance_id: + description: The ID of the ServiceNow instance + example: "65b3341b-0680-47f9-a6d4-134db45c603e" + format: uuid + type: string + servicenow_tablename: + description: The name of the destination ServiceNow table + example: "incident" + type: string + user_id: + description: The ID of the user + example: "65b3341b-0680-47f9-a6d4-134db45c603e" + format: uuid type: string - type: - $ref: "#/components/schemas/StatusPagesUserType" required: - - type - - id + - instance_id + - handle_name + - servicenow_tablename type: object - StatusPagesComponentGroupRelationshipsStatusPage: - description: The status page the component group belongs to. + ServiceNowTemplateCreateRequestData: + description: Data object for creating a ServiceNow template properties: - data: - $ref: "#/components/schemas/StatusPagesComponentGroupRelationshipsStatusPageData" + attributes: + $ref: "#/components/schemas/ServiceNowTemplateCreateRequestAttributes" + type: + $ref: "#/components/schemas/ServiceNowTemplateType" required: - - data + - type + - attributes type: object - StatusPagesComponentGroupRelationshipsStatusPageData: - description: The data object identifying the status page the component group belongs to. + ServiceNowTemplateData: + description: Data object for a ServiceNow template properties: + attributes: + $ref: "#/components/schemas/ServiceNowTemplateAttributes" id: - description: The ID of the status page. - example: "1234abcd-12ab-34cd-56ef-123456abcdef" + description: Unique identifier for the ServiceNow template + example: "65b3341b-0680-47f9-a6d4-134db45c603e" format: uuid type: string type: - $ref: "#/components/schemas/StatusPageDataType" + $ref: "#/components/schemas/ServiceNowTemplateType" required: - - type - id + - type + - attributes type: object - StatusPagesComponentGroupType: - default: components - description: Components resource type. + ServiceNowTemplateResponse: + description: Response containing a single ServiceNow template + properties: + data: + $ref: "#/components/schemas/ServiceNowTemplateData" + required: + - data + type: object + ServiceNowTemplateType: + description: Type identifier for ServiceNow template resources enum: - - components - example: components + - servicenow_templates + example: servicenow_templates type: string x-enum-varnames: - - COMPONENTS - StatusPagesUser: - description: The included Datadog user resource. + - SERVICENOW_TEMPLATES + ServiceNowTemplateUpdateRequest: + description: Request to update a ServiceNow template properties: - attributes: - $ref: "#/components/schemas/StatusPagesUserAttributes" - id: - description: The ID of the Datadog user. - format: uuid - type: string - type: - $ref: "#/components/schemas/StatusPagesUserType" + data: + $ref: "#/components/schemas/ServiceNowTemplateUpdateRequestData" required: - - type + - data type: object - StatusPagesUserAttributes: - description: Attributes of the Datadog user. + ServiceNowTemplateUpdateRequestAttributes: + description: Attributes for updating a ServiceNow template properties: - email: - description: The email of the Datadog user. + assignment_group_id: + description: The ID of the assignment group + example: "65b3341b-0680-47f9-a6d4-134db45c603e" + format: uuid type: string - handle: - description: The handle of the Datadog user. + business_service_id: + description: The ID of the business service + example: "65b3341b-0680-47f9-a6d4-134db45c603e" + format: uuid type: string - icon: - description: The icon of the Datadog user. + fields_mapping: + additionalProperties: + type: string + description: Custom field mappings for the template + example: + category: "hardware" + priority: "2" + type: object + handle_name: + description: The handle name of the template + example: "incident-template-updated" type: string - name: - description: The name of the Datadog user. + instance_id: + description: The ID of the ServiceNow instance + example: "65b3341b-0680-47f9-a6d4-134db45c603e" + format: uuid type: string - uuid: - description: The UUID of the Datadog user. + servicenow_tablename: + description: The name of the destination ServiceNow table + example: "incident" type: string - type: object - StatusPagesUserType: - default: users - description: Users resource type. - enum: - - users - example: users - type: string - x-enum-varnames: - - USERS - StatuspageAccountCreateAttributes: - description: The Statuspage account attributes for a create request. - properties: - api_key: - description: The Statuspage API key for your Statuspage account. - example: "00000000-0000-0000-0000-000000000000" - minLength: 1 + user_id: + description: The ID of the user + example: "65b3341b-0680-47f9-a6d4-134db45c603e" + format: uuid type: string required: - - api_key + - instance_id + - handle_name + - servicenow_tablename type: object - StatuspageAccountCreateData: - description: Statuspage account data for a create request. + ServiceNowTemplateUpdateRequestData: + description: Data object for updating a ServiceNow template properties: attributes: - $ref: "#/components/schemas/StatuspageAccountCreateAttributes" + $ref: "#/components/schemas/ServiceNowTemplateUpdateRequestAttributes" type: - $ref: "#/components/schemas/StatuspageAccountType" + $ref: "#/components/schemas/ServiceNowTemplateType" required: - type - attributes type: object - StatuspageAccountCreateRequest: - description: Create request for a Statuspage account. + ServiceNowTemplatesData: + description: Array of ServiceNow template data objects + items: + $ref: "#/components/schemas/ServiceNowTemplateData" + type: array + ServiceNowTemplatesResponse: + description: Response containing ServiceNow templates properties: data: - $ref: "#/components/schemas/StatuspageAccountCreateData" + $ref: "#/components/schemas/ServiceNowTemplatesData" + example: + - attributes: + handle_name: "incident-template" + instance_id: "65b3341b-0680-47f9-a6d4-134db45c603e" + servicenow_tablename: "incident" + id: "65b3341b-0680-47f9-a6d4-134db45c603e" + type: servicenow_templates required: - data type: object - StatuspageAccountResponse: - description: Response containing a Statuspage account. + ServiceNowTicket: + description: ServiceNow ticket attached to case + nullable: true properties: - data: - $ref: "#/components/schemas/StatuspageAccountResponseData" - required: - - data + result: + $ref: "#/components/schemas/ServiceNowTicketResult" + status: + $ref: "#/components/schemas/Case3rdPartyTicketStatus" + readOnly: true type: object - StatuspageAccountResponseAttributes: - description: The attributes from a Statuspage account response. + ServiceNowTicketCreateAttributes: + description: ServiceNow ticket creation attributes properties: - api_key: - description: The Statuspage API key for your Statuspage account. The value is always returned masked. - example: "*****" + assignment_group: + description: ServiceNow assignment group + example: "IT Support" + type: string + instance_name: + description: ServiceNow instance name + example: "my-instance" type: string + required: + - instance_name type: object - StatuspageAccountResponseData: - description: Statuspage account data from a response. + ServiceNowTicketCreateData: + description: ServiceNow ticket creation data properties: attributes: - $ref: "#/components/schemas/StatuspageAccountResponseAttributes" + $ref: "#/components/schemas/ServiceNowTicketCreateAttributes" type: - $ref: "#/components/schemas/StatuspageAccountType" + $ref: "#/components/schemas/ServiceNowTicketResourceType" required: - type - attributes type: object - StatuspageAccountType: - default: statuspage-account - description: Statuspage account resource type. + ServiceNowTicketCreateRequest: + description: ServiceNow ticket creation request + properties: + data: + $ref: "#/components/schemas/ServiceNowTicketCreateData" + required: + - data + type: object + ServiceNowTicketResourceType: + description: ServiceNow ticket resource type enum: - - statuspage-account - example: statuspage-account + - tickets + example: tickets type: string x-enum-varnames: - - STATUSPAGE_ACCOUNT - StatuspageAccountUpdateAttributes: - description: The Statuspage account attributes for an update request. + - TICKETS + ServiceNowTicketResult: + description: ServiceNow ticket information properties: - api_key: - description: The Statuspage API key for your Statuspage account. - example: "00000000-0000-0000-0000-000000000000" - minLength: 1 + sys_target_link: + description: Link to the Incident created on ServiceNow type: string type: object - StatuspageAccountUpdateData: - description: Statuspage account data for an update request. + ServiceNowTicketsDataType: + default: servicenow_tickets + description: ServiceNow tickets resource type. + enum: + - servicenow_tickets + example: servicenow_tickets + type: string + x-enum-varnames: + - SERVICENOW_TICKETS + ServiceNowUserAttributes: + description: Attributes of a ServiceNow user + properties: + email: + description: The email address of the user + example: "john.doe@example.com" + type: string + full_name: + description: The full name of the user + example: "John Doe" + type: string + instance_id: + description: The ID of the ServiceNow instance + example: "65b3341b-0680-47f9-a6d4-134db45c603e" + format: uuid + type: string + user_name: + description: The username of the ServiceNow user + example: "john.doe" + type: string + user_sys_id: + description: The system ID of the user in ServiceNow + example: "abc123def456" + type: string + required: + - instance_id + - user_name + - user_sys_id + - email + type: object + ServiceNowUserData: + description: Data object for a ServiceNow user properties: attributes: - $ref: "#/components/schemas/StatuspageAccountUpdateAttributes" + $ref: "#/components/schemas/ServiceNowUserAttributes" + id: + description: Unique identifier for the ServiceNow user + example: "65b3341b-0680-47f9-a6d4-134db45c603e" + format: uuid + type: string type: - $ref: "#/components/schemas/StatuspageAccountType" + $ref: "#/components/schemas/ServiceNowUserType" required: + - id - type - attributes type: object - StatuspageAccountUpdateRequest: - description: Update request for a Statuspage account. + ServiceNowUserType: + description: Type identifier for ServiceNow user resources + enum: + - users + example: users + type: string + x-enum-varnames: + - USERS + ServiceNowUsersData: + description: Array of ServiceNow user data objects + items: + $ref: "#/components/schemas/ServiceNowUserData" + type: array + ServiceNowUsersResponse: + description: Response containing ServiceNow users properties: data: - $ref: "#/components/schemas/StatuspageAccountUpdateData" + $ref: "#/components/schemas/ServiceNowUsersData" + example: + - attributes: + email: "john.doe@example.com" + instance_id: "65b3341b-0680-47f9-a6d4-134db45c603e" + user_name: "john.doe" + user_sys_id: "abc123def456" + id: "65b3341b-0680-47f9-a6d4-134db45c603e" + type: users required: - data type: object - StatuspageUrlSettingCreateAttributes: - description: The Statuspage URL setting attributes for a create request. + ServiceRepositoryInfoDataType: + description: The resource type for service repository info objects. + enum: + - service_repository_info + example: service_repository_info + type: string + x-enum-varnames: + - SERVICE_REPOSITORY_INFO + ServiceRepositoryInfoRequest: + description: Request body for retrieving service repository information. properties: - custom_tags: - description: Comma-separated list of custom tags to apply to events generated from this Statuspage URL. - example: "team:collaboration-integrations,env:prod" - minLength: 1 + data: + $ref: "#/components/schemas/ServiceRepositoryInfoRequestData" + required: + - data + type: object + ServiceRepositoryInfoRequestAttributes: + description: Attributes for the service repository info request. + properties: + service: + description: The name of the service. + example: my-web-service type: string - url: - description: The Statuspage URL to monitor. Must be a `status.io` or `statuspage.com` URL. - example: "https://example.statuspage.io" - minLength: 1 + version: + description: The version of the service. + example: 1.0.0 type: string required: - - url - - custom_tags + - service + - version type: object - StatuspageUrlSettingCreateData: - description: Statuspage URL setting data for a create request. + ServiceRepositoryInfoRequestData: + description: Data object for the service repository info request. properties: attributes: - $ref: "#/components/schemas/StatuspageUrlSettingCreateAttributes" + $ref: "#/components/schemas/ServiceRepositoryInfoRequestAttributes" type: - $ref: "#/components/schemas/StatuspageUrlSettingType" + $ref: "#/components/schemas/ServiceRepositoryInfoDataType" required: - type - attributes type: object - StatuspageUrlSettingCreateRequest: - description: Create request for a Statuspage URL setting. - properties: - data: - $ref: "#/components/schemas/StatuspageUrlSettingCreateData" - required: - - data - type: object - StatuspageUrlSettingResponse: - description: Response containing a Statuspage URL setting. + ServiceRepositoryInfoResponse: + description: Response containing service repository information. properties: data: - $ref: "#/components/schemas/StatuspageUrlSettingResponseData" + $ref: "#/components/schemas/ServiceRepositoryInfoResponseData" required: - data type: object - StatuspageUrlSettingResponseAttributes: - description: The attributes from a Statuspage URL setting response. + ServiceRepositoryInfoResponseAttributes: + description: Attributes of the service repository information. properties: - custom_tags: - description: Comma-separated list of custom tags applied to events generated from this Statuspage URL. - example: "team:collaboration-integrations,env:prod" + commit_sha: + description: The SHA of the commit associated with the service version. + example: abc123def456789 type: string - url: - description: The Statuspage URL being monitored. - example: "https://example.statuspage.io" + repository_url: + description: The URL of the source code repository. + example: https://github.com/my-org/my-repo type: string + status: + $ref: "#/components/schemas/ServiceRepositoryInfoStatus" + required: + - status type: object - StatuspageUrlSettingResponseData: - description: Statuspage URL setting data from a response. + ServiceRepositoryInfoResponseData: + description: Data object for the service repository info response. properties: attributes: - $ref: "#/components/schemas/StatuspageUrlSettingResponseAttributes" + $ref: "#/components/schemas/ServiceRepositoryInfoResponseAttributes" id: - description: The ID of the Statuspage URL setting. - example: "596da4af-0563-4097-90ff-07230c3f9db3" - maxLength: 100 - minLength: 1 + description: The identifier composed of the service name and version. + example: my-web-service:1.0.0 type: string type: - $ref: "#/components/schemas/StatuspageUrlSettingType" + $ref: "#/components/schemas/ServiceRepositoryInfoDataType" required: - id - type - attributes type: object - StatuspageUrlSettingType: - default: statuspage-url-setting - description: Statuspage URL setting resource type. + ServiceRepositoryInfoStatus: + description: The status of the service repository info lookup. enum: - - statuspage-url-setting - example: statuspage-url-setting + - success + - not_found + - no_repository + - internal_error + - unknown + example: success type: string x-enum-varnames: - - STATUSPAGE_URL_SETTING - StatuspageUrlSettingUpdateAttributes: - description: The Statuspage URL setting attributes for an update request. + - SUCCESS + - NOT_FOUND + - NO_REPOSITORY + - INTERNAL_ERROR + - UNKNOWN + SessionIdArray: + description: A collection of session identifiers used for bulk add or remove operations on a playlist. properties: - custom_tags: - description: Comma-separated list of custom tags to apply to events generated from this Statuspage URL. - example: "team:collaboration-integrations,env:prod" - minLength: 1 - type: string - url: - description: The Statuspage URL to monitor. - example: "https://example.statuspage.io" - minLength: 1 - type: string + data: + description: Array of session identifier data objects. + items: + $ref: "#/components/schemas/SessionIdData" + type: array + required: + - data type: object - StatuspageUrlSettingUpdateData: - description: Statuspage URL setting data for an update request. + SessionIdData: + description: A session identifier data object used for bulk playlist operations. properties: - attributes: - $ref: "#/components/schemas/StatuspageUrlSettingUpdateAttributes" id: - description: The ID of the Statuspage URL setting. - example: "596da4af-0563-4097-90ff-07230c3f9db3" - maxLength: 100 - minLength: 1 + description: Unique identifier of the RUM replay session. + example: 00000000-0000-0000-0000-000000000001 type: string type: - $ref: "#/components/schemas/StatuspageUrlSettingType" + $ref: "#/components/schemas/ViewershipHistorySessionDataType" required: - - id - type - - attributes - type: object - StatuspageUrlSettingUpdateRequest: - description: Update request for a Statuspage URL setting. - properties: - data: - $ref: "#/components/schemas/StatuspageUrlSettingUpdateData" - required: - - data type: object - StatuspageUrlSettingsResponse: - description: Response with a list of Statuspage URL settings. + SeverityModifierRuleAction: + description: |- + The action to take when a severity modifier rule matches a finding. This is a discriminated union on `type`: `set` assigns a fixed severity, while `shift` moves the severity up or down by one rank. + + A severity modifier rule's `rule.query` must not filter on `@severity` or on the `@severity_details.user_adjusted.*` namespace. + + Use `@severity_details.adjusted.value` instead, which reflects the severity before user-defined adjustments. + oneOf: + - $ref: "#/components/schemas/SeverityModifierRuleSetAction" + - $ref: "#/components/schemas/SeverityModifierRuleShiftAction" + SeverityModifierRuleAttributesCreate: + description: Attributes for creating or updating a severity modifier rule. properties: - data: - description: An array of Statuspage URL settings. - example: [{"attributes": {"custom_tags": "team:collaboration-integrations", "url": "https://example.statuspage.io"}, "id": "596da4af-0563-4097-90ff-07230c3f9db3", "type": "statuspage-url-setting"}] - items: - $ref: "#/components/schemas/StatuspageUrlSettingResponseData" - type: array + action: + $ref: "#/components/schemas/SeverityModifierRuleAction" + enabled: + description: Whether the severity modifier rule is enabled. + example: true + type: boolean + name: + description: The name of the severity modifier rule. + example: "Downgrade misconfigurations in dev" + maxLength: 255 + minLength: 1 + type: string + rule: + $ref: "#/components/schemas/AutomationRuleScope" required: - - data + - name + - rule + - action type: object - StegadographyGetWidgetsRequest: - description: Multipart form data containing the PNG image to scan for watermarks. + SeverityModifierRuleAttributesResponse: + description: Attributes of a severity modifier rule as returned by the API. properties: - image: - description: PNG image file to scan for embedded watermarks. - example: "screenshot.png" - format: binary + action: + $ref: "#/components/schemas/SeverityModifierRuleAction" + created_at: + description: The Unix timestamp in milliseconds when the rule was created. + example: 1722439510282 + format: int64 + type: integer + created_by: + $ref: "#/components/schemas/AutomationRuleCreatedBy" + enabled: + description: Whether the severity modifier rule is enabled. + example: true + type: boolean + modified_at: + description: The Unix timestamp in milliseconds when the rule was last modified. + example: 1722439510282 + format: int64 + type: integer + modified_by: + $ref: "#/components/schemas/AutomationRuleModifiedBy" + name: + description: The name of the severity modifier rule. + example: "Downgrade misconfigurations in dev" + maxLength: 255 + minLength: 1 type: string + rule: + $ref: "#/components/schemas/AutomationRuleScope" required: - - image + - name + - enabled + - rule + - action + - created_at + - created_by + - modified_at + - modified_by type: object - StegadographyGetWidgetsResponse: - description: Response containing watermarked widgets recovered from an image. + SeverityModifierRuleCreateRequest: + description: The body of a severity modifier rule create request. properties: data: - $ref: "#/components/schemas/StegadographyWidgetItems" + $ref: "#/components/schemas/SeverityModifierRuleDataCreate" required: - data type: object - StegadographyWidget: - description: A single watermarked widget resource recovered from an image. + SeverityModifierRuleDataCreate: + description: The data object for a severity modifier rule create request. properties: attributes: - $ref: "#/components/schemas/StegadographyWidgetAttributes" + $ref: "#/components/schemas/SeverityModifierRuleAttributesCreate" + type: + $ref: "#/components/schemas/SeverityModifierRuleType" + required: + - type + - attributes + type: object + SeverityModifierRuleDataResponse: + description: The data object for a severity modifier rule as returned by the API. + properties: + attributes: + $ref: "#/components/schemas/SeverityModifierRuleAttributesResponse" id: - description: Composite identifier formed from the organization ID and watermark, separated by a colon. - example: "abc123:0123456789abcdef" + description: The ID of the severity modifier rule. + example: "00000000-0000-0000-0000-000000000000" + format: uuid type: string type: - $ref: "#/components/schemas/StegadographyWidgetType" + $ref: "#/components/schemas/SeverityModifierRuleType" required: - id - type - attributes type: object - StegadographyWidgetAttributes: - description: Attributes of a watermarked widget recovered from an image. + SeverityModifierRuleDataUpdate: + description: The data object for a severity modifier rule update request. The `id` must match the `rule_id` path parameter. properties: - locationx: - description: Horizontal pixel coordinate where the watermark was found in the image. - example: 100 - format: int64 - type: integer - locationy: - description: Vertical pixel coordinate where the watermark was found in the image. - example: 200 - format: int64 - type: integer - rawData: - description: JSON-encoded string representing the widget state. - example: '{"widgetType":"timeseries","requests":[]}' - type: string - watermark: - description: Hex-encoded watermark string identifying the widget. - example: "0123456789abcdef" + attributes: + $ref: "#/components/schemas/SeverityModifierRuleAttributesCreate" + id: + description: The ID of the severity modifier rule to update. + example: "00000000-0000-0000-0000-000000000000" + format: uuid type: string + type: + $ref: "#/components/schemas/SeverityModifierRuleType" required: - - rawData - - watermark - - locationx - - locationy + - id + - type + - attributes type: object - StegadographyWidgetItems: - description: List of watermarked widget resources recovered from an image. - example: - - attributes: - locationx: 100 - locationy: 200 - rawData: '{"widgetType":"timeseries","requests":[]}' - watermark: "0123456789abcdef" - id: "abc123:0123456789abcdef" - type: widget + SeverityModifierRuleReorderData: + description: The ordered list of all severity modifier rules. Every rule must be included. items: - $ref: "#/components/schemas/StegadographyWidget" + $ref: "#/components/schemas/SeverityModifierRuleReorderItem" type: array - StegadographyWidgetType: - description: Stegadography widget resource type. - enum: - - widget - example: widget - type: string - x-enum-varnames: - - WIDGET - Step: - description: A Step is a sub-component of a workflow. Each Step performs an action. + SeverityModifierRuleReorderItem: + description: A reference to a severity modifier rule used for reordering. properties: - actionId: - description: The unique identifier of an action. - example: "" - minLength: 1 - type: string - completionGate: - $ref: "#/components/schemas/CompletionGate" - connectionLabel: - description: The unique identifier of a connection defined in the spec. - type: string - display: - $ref: "#/components/schemas/StepDisplay" - errorHandlers: - description: The `Step` `errorHandlers`. - items: - $ref: "#/components/schemas/ErrorHandler" - type: array - name: - description: Name of the step. - example: "" - minLength: 1 + id: + description: The ID of the severity modifier rule. + example: "00000000-0000-0000-0000-000000000000" + format: uuid type: string - outboundEdges: - description: A list of subsequent actions to run. This list is empty for a terminal step. - items: - $ref: "#/components/schemas/OutboundEdge" - type: array - parameters: - description: A list of inputs for an action. - items: - $ref: "#/components/schemas/Parameter" - type: array - readinessGate: - $ref: "#/components/schemas/ReadinessGate" - required: - - name - - actionId - type: object - StepDisplay: - description: |- - The position of a step on the workflow canvas. Omit `display` from every step to use - automatic layout, or provide it for every step to preserve a manual layout. - properties: - bounds: - $ref: "#/components/schemas/StepDisplayBounds" - type: object - StepDisplayBounds: - description: The definition of `StepDisplayBounds` object. - properties: - x: - description: The `bounds` `x`. - format: double - type: number - y: - description: The `bounds` `y`. - format: double - type: number - type: object - SuiteCreateEdit: - description: Data object for creating or editing a Synthetic test suite. - properties: - attributes: - $ref: "#/components/schemas/SyntheticsSuite" type: - $ref: "#/components/schemas/SyntheticsSuiteTypes" + $ref: "#/components/schemas/SeverityModifierRuleType" required: - - attributes - type + - id type: object - SuiteCreateEditRequest: - description: Request body for creating or editing a Synthetic test suite. + SeverityModifierRuleReorderRequest: + description: The body of a severity modifier rule reorder request. properties: data: - $ref: "#/components/schemas/SuiteCreateEdit" + $ref: "#/components/schemas/SeverityModifierRuleReorderData" required: - data type: object - SuiteJsonPatchRequest: - description: JSON Patch request for a Synthetic test suite. + SeverityModifierRuleReorderResponse: + description: The response of a severity modifier rule reorder request. properties: data: - $ref: "#/components/schemas/SuiteJsonPatchRequestData" + $ref: "#/components/schemas/SeverityModifierRuleReorderData" required: - data type: object - SuiteJsonPatchRequestData: - description: Data object for a JSON Patch request on a Synthetic test suite. + SeverityModifierRuleResponse: + description: A single severity modifier rule response. properties: - attributes: - $ref: "#/components/schemas/SuiteJsonPatchRequestDataAttributes" - type: - $ref: "#/components/schemas/SuiteJsonPatchType" + data: + $ref: "#/components/schemas/SeverityModifierRuleDataResponse" + required: + - data type: object - SuiteJsonPatchRequestDataAttributes: - description: Attributes for a JSON Patch request on a Synthetic test suite. + SeverityModifierRuleSetAction: + description: Sets matched findings to a fixed severity. properties: - json_patch: - description: JSON Patch operations following RFC 6902. - items: - $ref: "#/components/schemas/JsonPatchOperation" - type: array + description: + description: An optional free-form explanation for the severity change. + example: "Lower severity for dev environment noise" + maxLength: 20000 + type: string + severity: + $ref: "#/components/schemas/SeverityModifierSeverity" + type: + $ref: "#/components/schemas/SeverityModifierRuleSetActionType" + required: + - type + - severity type: object - SuiteJsonPatchType: - default: suites_json_patch - description: Type for a JSON Patch request on a Synthetic test suite, `suites_json_patch`. - enum: - - suites_json_patch - example: suites_json_patch - type: string - x-enum-varnames: - - SUITES_JSON_PATCH - SuiteSearchResponseType: - default: suites_search - description: Type for the Synthetics suites search response, `suites_search`. + SeverityModifierRuleSetActionType: + description: The type of a severity modifier rule action that sets a fixed severity. enum: - - suites_search - example: suites_search + - set + example: set type: string x-enum-varnames: - - SUITES_SEARCH - SummarizedSpan: - description: A node in the pruned trace tree. + - SET + SeverityModifierRuleShiftAction: + description: Shifts matched findings up or down by one severity rank. properties: - children: - description: The child spans of this node in the pruned tree. - example: [] - items: - $ref: "#/components/schemas/SummarizedSpan" - type: array - durationSeconds: - description: The duration of the span, in seconds. - example: 0.5 - format: double - type: number - endTime: - description: The end time of the span, in RFC3339 format. - example: "2026-05-27T12:00:00.5Z" - format: date-time - type: string - error: - $ref: "#/components/schemas/APMSpanErrorFlag" - hidden_child_spans_count: - description: The number of child spans that were pruned from this node when summarizing the trace. - example: 0 - format: int32 - maximum: 2147483647 - type: integer - meta: - additionalProperties: - type: string - description: String-valued tags attached to the span. - example: - env: production - type: object - metrics: - additionalProperties: - format: double - type: number - description: Numeric metrics attached to the span. - example: - http.status_code: 200 - type: object - name: - description: The operation name of the span. - example: web.request - type: string - parentID: - description: The ID of the parent span, or `0` when the span is the trace root. - example: 0 - format: int64 - type: integer - resource: - description: The resource that the span describes. - example: GET /products - type: string - service: - description: The name of the service that emitted the span. - example: web-store - type: string - spanID: - description: The span ID, as an unsigned 64-bit integer. - example: 9876543210987654321 - format: int64 - type: integer - span_kind: - description: |- - The OpenTelemetry span kind, for example `INTERNAL`, `SERVER`, `CLIENT`, - `PRODUCER`, or `CONSUMER`. - example: SERVER - type: string - startTime: - description: The start time of the span, in RFC3339 format. - example: "2026-05-27T12:00:00Z" - format: date-time + description: + description: An optional free-form explanation for the severity change. + example: "Lower severity for dev environment noise" + maxLength: 20000 type: string + severity_delta: + $ref: "#/components/schemas/SeverityModifierSeverityDelta" + type: + $ref: "#/components/schemas/SeverityModifierRuleShiftActionType" required: - - service - - name - - resource - - parentID - - spanID - - startTime - - endTime - - durationSeconds - - error - - meta - - metrics - - span_kind - - hidden_child_spans_count - - children + - type + - severity_delta type: object - SummarizedTrace: - description: A summarized, hierarchical view of a trace. + SeverityModifierRuleShiftActionType: + description: The type of a severity modifier rule action that shifts the severity by one rank. + enum: + - shift + example: shift + type: string + x-enum-varnames: + - SHIFT + SeverityModifierRuleType: + description: The JSON:API type for severity modifier rules. + enum: + - severity_modifier_rules + example: severity_modifier_rules + type: string + x-enum-varnames: + - SEVERITY_MODIFIER_RULES + SeverityModifierRuleUpdateRequest: + description: The body of a severity modifier rule update request. properties: - root: - $ref: "#/components/schemas/SummarizedSpan" - traceId: - description: The full 128-bit trace ID, encoded as a 32-character hexadecimal string. - example: "0000000000000000abc1230000000000" - type: string + data: + $ref: "#/components/schemas/SeverityModifierRuleDataUpdate" required: - - traceId - - root + - data type: object - SuppressionVersionHistory: - description: Response object containing the version history of a suppression. + SeverityModifierRulesDataList: + description: A list of severity modifier rule data objects. + items: + $ref: "#/components/schemas/SeverityModifierRuleDataResponse" + type: array + SeverityModifierRulesResponse: + description: A list of severity modifier rules with pagination metadata. properties: - count: - description: The number of suppression versions. - format: int32 - maximum: 2147483647 - type: integer data: - additionalProperties: - $ref: "#/components/schemas/SuppressionVersions" - description: A suppression version with a list of updates. - description: The version history of a suppression. - type: object - type: object - SuppressionVersions: - description: A suppression version with a list of updates. - properties: - changes: - description: A list of changes. - items: - $ref: "#/components/schemas/VersionHistoryUpdate" - type: array - suppression: - $ref: "#/components/schemas/SecurityMonitoringSuppressionAttributes" + $ref: "#/components/schemas/SeverityModifierRulesDataList" + links: + $ref: "#/components/schemas/SecurityAutomationRulesLinks" + meta: + $ref: "#/components/schemas/SecurityAutomationRulesMeta" + required: + - data + - meta + - links type: object - SyncProperty: - description: Sync property configuration. - properties: - sync_type: - description: The direction and type of synchronization for this property. - type: string + SeverityModifierSeverity: + description: The severity to assign to matched findings. `info_none` is not supported for the `iac_misconfiguration`, `runtime_code_vulnerability`, `secret`, or `static_code_vulnerability` finding types. + enum: + - info_none + - low + - medium + - high + - critical + example: low + type: string + x-enum-varnames: + - INFO_NONE + - LOW + - MEDIUM + - HIGH + - CRITICAL + SeverityModifierSeverityDelta: + description: The direction in which to shift the severity of matched findings by one rank. + enum: + - up_one + - down_one + example: up_one + type: string + x-enum-varnames: + - UP_ONE + - DOWN_ONE + SharedDashboardGlobalTime: + additionalProperties: {} + description: Default time range configuration for the shared dashboard. + example: + live_span: 1h + nullable: true type: object - SyncPropertyWithMapping: - description: Sync property with mapping configuration. + SharedDashboardIncluded: + description: Resource included with a shared dashboard. + oneOf: + - $ref: "#/components/schemas/SharedDashboardIncludedDashboard" + - $ref: "#/components/schemas/SharedDashboardIncludedUser" + SharedDashboardIncludedDashboard: + description: Included dashboard resource. properties: - mapping: - additionalProperties: - type: string - description: Map of source values to destination values for synchronization. - type: object - name_mapping: - additionalProperties: - type: string - description: Map of source names to display names used during synchronization. - type: object - sync_type: - description: The direction and type of synchronization for this property. + attributes: + $ref: "#/components/schemas/SharedDashboardIncludedDashboardAttributes" + id: + description: ID of the dashboard. + example: abc-def-ghi type: string + type: + $ref: "#/components/schemas/SharedDashboardIncludedDashboardType" + required: + - id + - type + - attributes type: object - SyntheticsApiMultistepParentTestAttributes: - description: Attributes of a parent API multistep test. + SharedDashboardIncludedDashboardAttributes: + description: Attributes of the included dashboard. properties: - child_name: - description: The name of the child subtest. - example: My API Subtest - type: string - child_public_id: - description: The public ID of the child subtest. - example: xyz-uvw-789 - type: string - monitor_id: - description: The associated monitor ID. - example: 12345678 - format: int64 - type: integer - name: - description: Name of the parent test. - example: My Multistep Test - type: string - overall_state: - description: The overall state of the parent test. - example: 0 - format: int64 - type: integer - overall_state_modified: - description: Timestamp of when the overall state was last modified. - example: "2024-01-01T00:00:00+00:00" - type: string - public_id: - description: The public ID of the parent test. - example: abc-def-123 + title: + description: Dashboard title. + example: Q1 Metrics Dashboard type: string + required: + - title type: object - SyntheticsApiMultistepParentTestData: - description: Data object for a parent API multistep test. + SharedDashboardIncludedDashboardType: + default: dashboard + description: Included dashboard resource type. + enum: + - dashboard + example: dashboard + type: string + x-enum-varnames: + - DASHBOARD + SharedDashboardIncludedUser: + description: Included user resource. properties: attributes: - $ref: "#/components/schemas/SyntheticsApiMultistepParentTestAttributes" + $ref: "#/components/schemas/SharedDashboardIncludedUserAttributes" id: - description: The public ID of the parent test. - example: abc-def-123 + description: ID of the user. + example: 00000000-0000-0000-0000-000000000000 type: string type: - $ref: "#/components/schemas/SyntheticsApiMultistepParentTestType" + $ref: "#/components/schemas/UserResourceType" + required: + - id + - type + - attributes type: object - SyntheticsApiMultistepParentTestType: - default: parent_test - description: Type of the parent test resource. - enum: - - parent_test - example: parent_test - type: string - x-enum-varnames: - - PARENT_TEST - SyntheticsApiMultistepParentTestsResponse: - description: |- - Response containing the list of parent tests for an API multistep subtest. + SharedDashboardIncludedUserAttributes: + description: Attributes of the included user. properties: - data: - description: List of parent tests that include this subtest. - items: - $ref: "#/components/schemas/SyntheticsApiMultistepParentTestData" - type: array + handle: + description: User handle. + example: jane.doe@example.com + type: string + name: + description: User display name. + example: Jane Doe + type: string + required: + - handle + - name type: object - SyntheticsApiMultistepSubtestAttributes: - description: Attributes of a Synthetic API multistep subtest. + SharedDashboardInvitee: + description: Invitee that can access an invite-only shared dashboard. properties: - name: - description: Name of the subtest. - example: My API Test + access_expiration: + description: Time when the invitee's access expires. + example: "2026-01-15T09:30:00.000Z" + format: date-time + nullable: true type: string - public_id: - description: The public ID of the subtest. - example: abc-def-123 + created_at: + description: Time when the invitee was added. + example: "2026-01-01T00:00:00.000Z" + format: date-time + type: string + email: + description: Email address of the invitee. + example: jane.doe@example.com type: string + required: + - email + - access_expiration + - created_at type: object - SyntheticsApiMultistepSubtestData: - description: Data object for a Synthetic API multistep subtest. + SharedDashboardRelationshipDashboard: + description: Dashboard associated with the shared dashboard. + properties: + data: + $ref: "#/components/schemas/SharedDashboardRelationshipDashboardData" + required: + - data + type: object + SharedDashboardRelationshipDashboardData: + description: Dashboard relationship data. properties: - attributes: - $ref: "#/components/schemas/SyntheticsApiMultistepSubtestAttributes" id: - description: The public ID of the subtest. - example: abc-def-123 + description: ID of the dashboard. + example: abc-def-ghi type: string type: - $ref: "#/components/schemas/SyntheticsApiMultistepSubtestType" + $ref: "#/components/schemas/SharedDashboardIncludedDashboardType" + required: + - id + - type type: object - SyntheticsApiMultistepSubtestType: - default: subtest - description: Type of the subtest resource. - enum: - - subtest - example: subtest - type: string - x-enum-varnames: - - SUBTEST - SyntheticsApiMultistepSubtestsResponse: - description: |- - Response containing the list of available subtests for an API multistep test. + SharedDashboardRelationshipSharer: + description: User who shared the dashboard. properties: data: - description: List of API tests that can be added as subtests. - items: - $ref: "#/components/schemas/SyntheticsApiMultistepSubtestData" - type: array + $ref: "#/components/schemas/UserRelationshipData" + required: + - data type: object - SyntheticsDowntimeData: - description: A Synthetics downtime object. + SharedDashboardRelationships: + description: Relationships of a shared dashboard. + properties: + dashboard: + $ref: "#/components/schemas/SharedDashboardRelationshipDashboard" + sharer: + $ref: "#/components/schemas/SharedDashboardRelationshipSharer" + required: + - dashboard + - sharer + type: object + SharedDashboardResponse: + description: A shared dashboard response resource. properties: attributes: - $ref: "#/components/schemas/SyntheticsDowntimeDataAttributesResponse" + $ref: "#/components/schemas/SharedDashboardResponseAttributes" id: - description: The unique identifier of the downtime. - example: "00000000-0000-0000-0000-000000000001" + description: ID of the shared dashboard. + example: "12345" type: string + relationships: + $ref: "#/components/schemas/SharedDashboardRelationships" type: - $ref: "#/components/schemas/SyntheticsDowntimeResourceType" + $ref: "#/components/schemas/SharedDashboardType" required: - id - type - attributes + - relationships type: object - SyntheticsDowntimeDataAttributesRequest: - description: Attributes for creating or updating a Synthetics downtime. + SharedDashboardResponseAttributes: + description: Attributes of a shared dashboard response. properties: - description: - description: An optional description of the downtime. - example: Scheduled weekly maintenance window. + created_at: + description: Time when the shared dashboard was created. + example: "2026-01-01T00:00:00.000Z" + format: date-time type: string - isEnabled: - description: Whether the downtime is enabled. - example: true - type: boolean - name: - description: The name of the downtime. - example: Weekly maintenance + embeddable_domains: + description: Domains where embed-type shared dashboards can be embedded. + example: ["https://example.com"] + items: + description: An embeddable domain. + type: string + type: array + expiration: + description: Time when the shared dashboard expires. + example: "2026-02-01T00:00:00.000Z" + format: date-time + nullable: true type: string - tags: - $ref: "#/components/schemas/SyntheticsDowntimeTags" - testIds: - $ref: "#/components/schemas/SyntheticsDowntimeTestIds" - timeSlots: - $ref: "#/components/schemas/SyntheticsDowntimeTimeSlotRequests" - required: - - name - - isEnabled - - timeSlots - - testIds - type: object - SyntheticsDowntimeDataAttributesResponse: - description: Attributes of a Synthetics downtime response object. - properties: - createdAt: - description: The timestamp when the downtime was created. - example: "2024-01-15T10:30:00Z" + global_time: + $ref: "#/components/schemas/SharedDashboardGlobalTime" + global_time_selectable: + description: Whether viewers can select a different global time setting. + example: false + type: boolean + invitees: + description: Invitees for invite-only shared dashboards. + items: + $ref: "#/components/schemas/SharedDashboardInvitee" + type: array + last_accessed: + description: Time when the shared dashboard was last accessed. + example: "2026-01-15T09:30:00.000Z" format: date-time + nullable: true type: string - createdBy: - description: The UUID of the user who created the downtime. - example: "00000000-0000-0000-0000-000000000003" + selectable_template_vars: + description: Template variables that viewers can modify. + items: + $ref: "#/components/schemas/SharedDashboardSelectableTemplateVariable" + type: array + share_type: + $ref: "#/components/schemas/SharedDashboardShareType" + sharer_disabled: + description: Whether the user who shared the dashboard is disabled. + example: false + type: boolean + status: + $ref: "#/components/schemas/SharedDashboardStatus" + title: + description: Display title for the shared dashboard. + example: Q1 Metrics Dashboard type: string - createdByName: - description: The display name of the user who created the downtime. - example: Jane Doe + token: + description: Token assigned to the shared dashboard. + example: abc-123-token type: string - description: - description: The description of the downtime. - example: Scheduled weekly maintenance window. + url: + description: URL for the shared dashboard. + example: https://p.datadoghq.com/sb/abc-123-token type: string - isEnabled: - description: Whether the downtime is enabled. - example: true + viewing_preferences: + $ref: "#/components/schemas/SharedDashboardViewingPreferences" + required: + - token + - title + - url + - viewing_preferences + - global_time_selectable + - global_time + - selectable_template_vars + - created_at + - last_accessed + - status + - share_type + - invitees + - embeddable_domains + - expiration + - sharer_disabled + type: object + SharedDashboardSelectableTemplateVariable: + description: A template variable that viewers can modify on the shared dashboard. + properties: + allow_any_value: + description: Whether viewers can see all tag values for the template variable and specify any value. + example: false type: boolean + default_values: + description: Default selected values for the variable. + example: ["prod"] + items: + description: A default value for the template variable. + type: string + type: array name: - description: The name of the downtime. - example: Weekly maintenance - type: string - tags: - $ref: "#/components/schemas/SyntheticsDowntimeTags" - testIds: - $ref: "#/components/schemas/SyntheticsDowntimeTestIds" - timeSlots: - $ref: "#/components/schemas/SyntheticsDowntimeTimeSlotResponses" - updatedAt: - description: The timestamp when the downtime was last updated. - example: "2024-01-15T10:30:00Z" - format: date-time + description: Name of the template variable. + example: environment type: string - updatedBy: - description: The UUID of the user who last updated the downtime. - example: "00000000-0000-0000-0000-000000000003" + prefix: + description: Tag prefix for the variable. + example: env type: string - updatedByName: - description: The display name of the user who last updated the downtime. - example: Jane Doe + type: + description: Type of the template variable. + example: group type: string + visible_tags: + description: Restricts which tag values are visible to the viewer. + example: ["prod"] + items: + description: A visible tag value for the template variable. + type: string + type: array required: - name - - description - - isEnabled - - createdBy - - createdByName - - createdAt - - updatedBy - - updatedByName - - updatedAt - - timeSlots - - testIds - - tags - type: object - SyntheticsDowntimeDataList: - description: List of Synthetics downtime objects. - example: - - attributes: - createdAt: "2024-01-15T10:30:00Z" - createdBy: "00000000-0000-0000-0000-000000000003" - createdByName: Jane Doe - description: Scheduled weekly maintenance window. - isEnabled: true - name: Weekly maintenance - tags: [] - testIds: - - abc-def-123 - timeSlots: - - duration: 3600 - id: "00000000-0000-0000-0000-000000000002" - start: - day: 15 - hour: 10 - minute: 30 - month: 1 - year: 2024 - timezone: Europe/Paris - updatedAt: "2024-01-15T10:30:00Z" - updatedBy: "00000000-0000-0000-0000-000000000003" - updatedByName: Jane Doe - id: "00000000-0000-0000-0000-000000000001" - type: downtime - items: - $ref: "#/components/schemas/SyntheticsDowntimeData" - type: array - SyntheticsDowntimeDataRequest: - description: The data object for a Synthetics downtime create or update request. - example: - attributes: - isEnabled: true - name: Weekly maintenance - testIds: - - abc-def-123 - timeSlots: - - duration: 3600 - start: - day: 15 - hour: 10 - minute: 30 - month: 1 - year: 2024 - timezone: Europe/Paris - type: downtime - properties: - attributes: - $ref: "#/components/schemas/SyntheticsDowntimeDataAttributesRequest" - type: - $ref: "#/components/schemas/SyntheticsDowntimeResourceType" - required: + - prefix - type - - attributes + - allow_any_value + - default_values + - visible_tags type: object - SyntheticsDowntimeFrequency: - description: The recurrence frequency of a Synthetics downtime time slot. + SharedDashboardShareType: + description: Type of dashboard sharing. enum: - - DAILY - - WEEKLY - - MONTHLY - - YEARLY - example: WEEKLY + - open + - invite + - embed + - secure-embed + example: invite type: string x-enum-varnames: - - DAILY - - WEEKLY - - MONTHLY - - YEARLY - SyntheticsDowntimeRequest: - description: Request body for creating or updating a Synthetics downtime. + - OPEN + - INVITE + - EMBED + - SECURE_EMBED + SharedDashboardStatus: + description: Status of the shared dashboard. + enum: + - active + - paused + example: active + type: string + x-enum-varnames: + - ACTIVE + - PAUSED + SharedDashboardType: + default: shared_dashboard + description: Shared dashboard resource type. + enum: + - shared_dashboard + example: shared_dashboard + type: string + x-enum-varnames: + - SHARED_DASHBOARD + SharedDashboardViewingPreferences: + description: Display settings for the shared dashboard. properties: - data: - $ref: "#/components/schemas/SyntheticsDowntimeDataRequest" + high_density: + description: Whether widgets are displayed in high-density mode. + example: false + type: boolean + theme: + $ref: "#/components/schemas/SharedDashboardViewingPreferencesTheme" required: - - data + - high_density + - theme type: object - SyntheticsDowntimeResourceType: - description: The resource type for a Synthetics downtime. + SharedDashboardViewingPreferencesTheme: + description: The theme of the shared dashboard view. `system` follows the viewer's system default. enum: - - downtime - example: downtime + - system + - light + - dark + example: system type: string x-enum-varnames: - - DOWNTIME - SyntheticsDowntimeResponse: - description: Response containing a single Synthetics downtime. + - SYSTEM + - LIGHT + - DARK + Shift: + description: An on-call shift with its associated data and relationships. + example: + data: + attributes: + end: "2025-05-07T03:53:01.206662873Z" + start: "2025-05-07T02:53:01.206662814Z" + id: 00000000-0000-0000-0000-000000000000 + relationships: + user: + data: + id: 00000000-aba1-0000-0000-000000000000 + type: users + type: shifts + included: + - attributes: + email: foo@bar.com + name: User 1 + status: "" + id: 00000000-aba1-0000-0000-000000000000 + type: users properties: data: - $ref: "#/components/schemas/SyntheticsDowntimeData" - required: - - data + $ref: "#/components/schemas/ShiftData" + nullable: true + included: + description: The `Shift` `included`. + items: + $ref: "#/components/schemas/ShiftIncluded" + type: array type: object - SyntheticsDowntimeTags: - description: List of tags associated with a Synthetics downtime. - example: - - "team:backend" - - "env:prod" - items: - description: A tag. - type: string - type: array - SyntheticsDowntimeTestIds: - description: List of Synthetics test public IDs associated with a downtime. - example: - - abc-def-123 - - xyz-uvw-456 - items: - description: A Synthetics test public ID. - type: string - type: array - SyntheticsDowntimeTimeSlotDate: - description: A specific date and time used to define the start or end of a Synthetics downtime time slot. + ShiftData: + description: Data for an on-call shift. properties: - day: - description: The day component of the date (1-31). - example: 15 - format: int64 - type: integer - hour: - description: The hour component of the time (0-23). - example: 10 - format: int64 - type: integer - minute: - description: The minute component of the time (0-59). - example: 30 - format: int64 - type: integer - month: - description: The month component of the date (1-12). - example: 1 - format: int64 - type: integer - year: - description: The year component of the date. - example: 2024 - format: int64 - type: integer + attributes: + $ref: "#/components/schemas/ShiftDataAttributes" + id: + description: The `ShiftData` `id`. + type: string + relationships: + $ref: "#/components/schemas/ShiftDataRelationships" + type: + $ref: "#/components/schemas/ShiftDataType" required: - - year - - month - - day - - hour - - minute + - type type: object - SyntheticsDowntimeTimeSlotRecurrenceRequest: - description: Recurrence settings for a Synthetics downtime time slot. + ShiftDataAttributes: + description: Attributes for an on-call shift. properties: end: - $ref: "#/components/schemas/SyntheticsDowntimeTimeSlotDate" - frequency: - $ref: "#/components/schemas/SyntheticsDowntimeFrequency" - interval: - description: The interval between recurrences, relative to the frequency. - example: 1 - format: int64 - type: integer - weekdayPositions: - $ref: "#/components/schemas/SyntheticsDowntimeWeekdayPositions" - weekdays: - $ref: "#/components/schemas/SyntheticsDowntimeWeekdays" - required: - - frequency + description: The end time of the shift. + format: date-time + type: string + start: + description: The start time of the shift. + format: date-time + type: string type: object - SyntheticsDowntimeTimeSlotRecurrenceResponse: - description: Recurrence settings returned in a Synthetics downtime time slot response. + ShiftDataRelationships: + description: Relationships for an on-call shift. properties: - frequency: - $ref: "#/components/schemas/SyntheticsDowntimeFrequency" - interval: - description: The interval between recurrences, relative to the frequency. - example: 1 - format: int64 - type: integer - until: - $ref: "#/components/schemas/SyntheticsDowntimeTimeSlotDate" - weekdayPositions: - $ref: "#/components/schemas/SyntheticsDowntimeWeekdayPositions" - weekdays: - $ref: "#/components/schemas/SyntheticsDowntimeWeekdays" - required: - - frequency - - interval - - weekdays + user: + $ref: "#/components/schemas/ShiftDataRelationshipsUser" type: object - SyntheticsDowntimeTimeSlotRequest: - description: A time slot for a Synthetics downtime create or update request. + ShiftDataRelationshipsUser: + description: "Defines the relationship between a shift and the user who is working that shift." properties: - duration: - description: The duration of the time slot in seconds, between 60 and 604800. - example: 3600 - format: int64 - type: integer - name: - description: An optional label for the time slot. - example: Weekly maintenance window - type: string - recurrence: - $ref: "#/components/schemas/SyntheticsDowntimeTimeSlotRecurrenceRequest" - start: - $ref: "#/components/schemas/SyntheticsDowntimeTimeSlotDate" - timezone: - description: The IANA timezone name for the time slot. - example: Europe/Paris - type: string + data: + $ref: "#/components/schemas/ShiftDataRelationshipsUserData" required: - - start - - timezone - - duration + - data type: object - SyntheticsDowntimeTimeSlotRequests: - description: List of time slots for a Synthetics downtime create or update request. - example: - - duration: 3600 - start: - day: 15 - hour: 10 - minute: 30 - month: 1 - year: 2024 - timezone: Europe/Paris - items: - $ref: "#/components/schemas/SyntheticsDowntimeTimeSlotRequest" - type: array - SyntheticsDowntimeTimeSlotResponse: - description: A time slot returned in a Synthetics downtime response. + ShiftDataRelationshipsUserData: + description: "Represents a reference to the user assigned to this shift, containing the user's ID and resource type." properties: - duration: - description: The duration of the time slot in seconds. - example: 3600 - format: int64 - type: integer id: - description: The unique identifier of the time slot. - example: "00000000-0000-0000-0000-000000000002" - type: string - name: - description: The label for the time slot. - example: Weekly maintenance window - type: string - recurrence: - $ref: "#/components/schemas/SyntheticsDowntimeTimeSlotRecurrenceResponse" - start: - $ref: "#/components/schemas/SyntheticsDowntimeTimeSlotDate" - timezone: - description: The IANA timezone name for the time slot. - example: Europe/Paris + description: "Specifies the unique identifier of the user." + example: "00000000-0000-0000-0000-000000000000" type: string + type: + $ref: "#/components/schemas/ShiftDataRelationshipsUserDataType" required: + - type - id - - start - - timezone - - duration type: object - SyntheticsDowntimeTimeSlotResponses: - description: List of time slots in a Synthetics downtime response. - example: - - duration: 3600 - id: "00000000-0000-0000-0000-000000000002" - start: - day: 15 - hour: 10 - minute: 30 - month: 1 - year: 2024 - timezone: Europe/Paris - items: - $ref: "#/components/schemas/SyntheticsDowntimeTimeSlotResponse" - type: array - SyntheticsDowntimeWeekday: - description: A day of the week for a Synthetics downtime recurrence. + ShiftDataRelationshipsUserDataType: + default: users + description: "Indicates that the related resource is of type 'users'." enum: - - MO - - TU - - WE - - TH - - FR - - SA - - SU - example: MO + - users + example: users type: string x-enum-varnames: - - MONDAY - - TUESDAY - - WEDNESDAY - - THURSDAY - - FRIDAY - - SATURDAY - - SUNDAY - SyntheticsDowntimeWeekdayPosition: - description: >- - The position of a weekday within a month for a monthly Synthetics downtime recurrence. `1` through `4` select the first through fourth occurrence of the weekday in the month, and `-1` selects the last occurrence. + - USERS + ShiftDataType: + default: shifts + description: "Indicates that the resource is of type 'shifts'." enum: - - 1 - - 2 - - 3 - - 4 - - -1 - example: 1 - format: int64 - type: integer + - shifts + example: shifts + type: string x-enum-varnames: - - FIRST - - SECOND - - THIRD - - FOURTH - - LAST - SyntheticsDowntimeWeekdayPositions: - description: >- - Positions of the weekdays within a month for a monthly Synthetics downtime recurrence. Used in combination with `weekdays` to schedule occurrences such as "the first Monday of the month". - example: - - 1 - items: - $ref: "#/components/schemas/SyntheticsDowntimeWeekdayPosition" - type: array - SyntheticsDowntimeWeekdays: - description: Days of the week for a Synthetics downtime recurrence schedule. - example: - - MO - - WE - - FR - items: - $ref: "#/components/schemas/SyntheticsDowntimeWeekday" - type: array - SyntheticsDowntimesResponse: - description: Response containing a list of Synthetics downtimes. + - SHIFTS + ShiftIncluded: + description: Included data for shift operations. + oneOf: + - $ref: "#/components/schemas/ScheduleUser" + SignalEntitiesAttributes: + description: Attributes containing the entities related to the signal. + properties: + identities: + description: The identity entities related to the signal. Each item is a free-form object describing an identity (for example, a user or principal). + example: + - display_name: Test User + principal_id: user@example.com + items: + $ref: "#/components/schemas/SignalEntityIdentity" + type: array + required: + - identities + type: object + SignalEntitiesData: + description: Entities related to a security signal. + properties: + attributes: + $ref: "#/components/schemas/SignalEntitiesAttributes" + id: + description: The signal ID the entities are associated with. + example: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA + type: string + type: + $ref: "#/components/schemas/SignalEntitiesType" + required: + - id + - type + - attributes + type: object + SignalEntitiesResponse: + description: Response containing entities related to a security signal. properties: data: - $ref: "#/components/schemas/SyntheticsDowntimeDataList" + $ref: "#/components/schemas/SignalEntitiesData" required: - data type: object - SyntheticsFastTestResult: - description: |- - Fast test result response. Returns `null` if the result is not yet available - (the test is still running or timed out before completing). - nullable: true + SignalEntitiesType: + default: entities + description: The type of the resource. The value should always be `entities`. + enum: + - entities + example: entities + type: string + x-enum-varnames: + - ENTITIES + SignalEntityIdentity: + additionalProperties: {} + description: An identity entity related to a signal. The set of attributes is dynamic and depends on the source providing the identity. + example: + display_name: Test User + principal_id: user@example.com + type: object + SimpleMonitorUserTemplate: + description: A simplified version of a monitor user template. properties: - data: - $ref: "#/components/schemas/SyntheticsFastTestResultData" + created: + $ref: "#/components/schemas/MonitorUserTemplateCreated" + description: + $ref: "#/components/schemas/MonitorUserTemplateDescription" + id: + description: The unique identifier. The initial version will match the template ID. + example: "00000000-0000-1234-0000-000000000000" + type: string + monitor_definition: + additionalProperties: {} + description: A valid monitor definition in the same format as the [V1 Monitor API](https://docs.datadoghq.com/api/latest/monitors/#create-a-monitor). + example: {"message": "You may need to add web hosts if this is consistently high.", "name": "Bytes received on host0", "query": "avg(last_5m):sum:system.net.bytes_rcvd{host:host0} > 100", "type": "query alert"} + type: object + tags: + $ref: "#/components/schemas/MonitorUserTemplateTags" + template_variables: + $ref: "#/components/schemas/MonitorUserTemplateTemplateVariables" + title: + $ref: "#/components/schemas/MonitorUserTemplateTitle" + version: + $ref: "#/components/schemas/MonitorUserTemplateVersion" type: object - SyntheticsFastTestResultAttributes: - description: Attributes of the fast test result. + SingleAggregatedConnectionResponseArray: + description: List of aggregated connections. + example: + data: + - attributes: + bytes_sent_by_client: 100 + bytes_sent_by_server: 200 + group_bys: + client_team: + - networks + server_service: + - hucklebuck + packets_sent_by_client: 10 + packets_sent_by_server: 20 + rtt_micro_seconds: 800 + tcp_closed_connections: 30 + tcp_delivered_ce: 12 + tcp_established_connections: 40 + tcp_probe0_count: 2 + tcp_rcv_ooo_pack: 15 + tcp_recovery_count: 8 + tcp_refusals: 7 + tcp_reord_seen: 4 + tcp_resets: 5 + tcp_retransmits: 30 + tcp_rto_count: 3 + tcp_timeouts: 6 + id: client_team:networks, server_service:hucklebuck + type: aggregated_connection properties: - device: - $ref: "#/components/schemas/SyntheticsTestResultDevice" - location: - $ref: "#/components/schemas/SyntheticsTestResultLocation" - result: - $ref: "#/components/schemas/SyntheticsFastTestResultDetail" - test_sub_type: - $ref: "#/components/schemas/SyntheticsFastTestSubType" - test_type: - $ref: "#/components/schemas/SyntheticsFastTestType" - test_version: - description: Version of the test at the time the fast test was triggered. - example: 1 - format: int64 - type: integer + data: + description: Array of aggregated connection objects. + items: + $ref: "#/components/schemas/SingleAggregatedConnectionResponseData" + type: array type: object - SyntheticsFastTestResultData: - description: Fast test result data object (JSON:API format). + SingleAggregatedConnectionResponseData: + description: Object describing an aggregated connection. properties: attributes: - $ref: "#/components/schemas/SyntheticsFastTestResultAttributes" + $ref: "#/components/schemas/SingleAggregatedConnectionResponseDataAttributes" id: - description: The UUID of the fast test, used as the result identifier. - example: abc12345-1234-1234-1234-abc123456789 + description: A unique identifier for the aggregated connection based on the group by values. type: string type: - $ref: "#/components/schemas/SyntheticsFastTestResultType" + $ref: "#/components/schemas/SingleAggregatedConnectionResponseDataType" type: object - SyntheticsFastTestResultDetail: - description: |- - Detailed result data for the fast test run. The exact shape of nested fields - (`request`, `response`, `assertions`, etc.) depends on the test subtype. + SingleAggregatedConnectionResponseDataAttributes: + description: Attributes for an aggregated connection. properties: - assertions: - description: Results of each assertion evaluated during the test. - items: - $ref: "#/components/schemas/SyntheticsTestResultAssertionResult" - type: array - call_type: - description: gRPC call type (for example, `unary`, `healthCheck`, or `reflection`). - example: unary - type: string - cert: - $ref: "#/components/schemas/SyntheticsTestResultCertificate" - duration: - description: Total duration of the test in milliseconds. - example: 150.5 - format: double - type: number - failure: - $ref: "#/components/schemas/SyntheticsTestResultFailure" - finished_at: - description: Unix timestamp (ms) of when the test finished. - example: 1679328001000 + bytes_sent_by_client: + description: The total number of bytes sent by the client over the given period. format: int64 type: integer - id: - description: The result ID. Set to the fast test UUID because no persistent result ID exists for fast tests. - example: abc12345-1234-1234-1234-abc123456789 - type: string - is_fast_retry: - description: Whether this result is from an automatic fast retry. - example: false - type: boolean - request: - $ref: "#/components/schemas/SyntheticsTestResultRequestInfo" - resolved_ip: - description: IP address resolved for the target host. - example: "1.2.3.4" - type: string - response: - $ref: "#/components/schemas/SyntheticsTestResultResponseInfo" - run_type: - $ref: "#/components/schemas/SyntheticsTestResultRunType" - started_at: - description: Unix timestamp (ms) of when the test started. - example: 1679328000000 + bytes_sent_by_server: + description: The total number of bytes sent by the server over the given period. format: int64 type: integer - status: - description: Status of the test result (`passed` or `failed`). - example: passed + group_bys: + additionalProperties: + description: The values for each group by. + items: + description: A group-by value. + type: string + type: array + description: The key, value pairs for each group by. + type: object + packets_sent_by_client: + description: The total number of packets sent by the client over the given period. + format: int64 + type: integer + packets_sent_by_server: + description: The total number of packets sent by the server over the given period. + format: int64 + type: integer + rtt_micro_seconds: + description: Measured as TCP smoothed round trip time in microseconds (the time between a TCP frame being sent and acknowledged). + format: int64 + type: integer + tcp_closed_connections: + description: The number of TCP connections in a closed state. Measured in connections per second from the client. + format: int64 + type: integer + tcp_delivered_ce: + description: The number of TCP segments acknowledged with the ECN Congestion Experienced (CE) mark, indicating that an upstream router marked packets as experiencing congestion. + format: int64 + type: integer + tcp_established_connections: + description: The number of TCP connections in an established state. Measured in connections per second from the client. + format: int64 + type: integer + tcp_probe0_count: + description: The number of TCP zero-window probes sent. These probes are sent when the receiver advertises a zero receive window, indicating it cannot accept more data. + format: int64 + type: integer + tcp_rcv_ooo_pack: + description: The number of TCP packets received out of order. This indicates network-level packet reordering, which can degrade TCP performance by triggering spurious retransmissions and reducing throughput. + format: int64 + type: integer + tcp_recovery_count: + description: The number of TCP fast recovery events. Fast recovery retransmits lost segments detected through duplicate ACKs or selective acknowledgment (SACK) without waiting for a retransmission timeout. + format: int64 + type: integer + tcp_refusals: + description: The number of TCP connections that were refused by the server. Typically this indicates an attempt to connect to an IP/port that is not receiving connections, or a firewall/security misconfiguration. + format: int64 + type: integer + tcp_reord_seen: + description: The number of times reordering of sent packets was detected. Reordering detection adjusts the duplicate ACK threshold, preventing spurious retransmissions caused by out-of-order delivery. + format: int64 + type: integer + tcp_resets: + description: The number of TCP connections that were reset by the server. + format: int64 + type: integer + tcp_retransmits: + description: TCP Retransmits represent detected failures that are retransmitted to ensure delivery. Measured in count of retransmits from the client. + format: int64 + type: integer + tcp_rto_count: + description: The number of TCP retransmission timeouts (RTOs). An RTO occurs when an ACK is not received within the estimated round-trip time, forcing the sender to retransmit and halve its congestion window. + format: int64 + type: integer + tcp_timeouts: + description: The number of TCP connections that timed out from the perspective of the operating system. This can indicate general connectivity and latency issues. + format: int64 + type: integer + type: object + SingleAggregatedConnectionResponseDataType: + default: aggregated_connection + description: |- + Aggregated connection resource type. + enum: + - aggregated_connection + type: string + x-enum-varnames: + - AGGREGATED_CONNECTION + SingleAggregatedDnsResponseArray: + description: List of aggregated DNS flows. + example: + data: + - attributes: + group_bys: + - key: client_service + value: example-service + - key: network.dns_query + value: example.com + metrics: + - key: dns_total_requests + value: 100 + - key: dns_failures + value: 7 + - key: dns_successful_responses + value: 93 + - key: dns_failed_responses + value: 5 + - key: dns_timeouts + value: 2 + - key: dns_responses.nxdomain + value: 1 + - key: dns_responses.servfail + value: 1 + - key: dns_responses.other + value: 3 + - key: dns_success_latency_percentile + value: 50 + - key: dns_failure_latency_percentile + value: 75 + id: client_service:example-service,network.dns_query:example.com + type: aggregated_dns + properties: + data: + description: Array of aggregated DNS objects. + items: + $ref: "#/components/schemas/SingleAggregatedDnsResponseData" + type: array + type: object + SingleAggregatedDnsResponseData: + description: Object describing an aggregated DNS flow. + properties: + attributes: + $ref: "#/components/schemas/SingleAggregatedDnsResponseDataAttributes" + id: + description: A unique identifier for the aggregated DNS traffic based on the group by values. type: string - steps: - description: Step results for multistep API tests. + type: + $ref: "#/components/schemas/SingleAggregatedDnsResponseDataType" + type: object + SingleAggregatedDnsResponseDataAttributes: + description: Attributes for an aggregated DNS flow. + properties: + group_bys: + description: The key, value pairs for each group by. items: - $ref: "#/components/schemas/SyntheticsTestResultStep" + $ref: "#/components/schemas/SingleAggregatedDnsResponseDataAttributesGroupByItems" type: array - timings: - additionalProperties: {} - description: Timing breakdown of the test request phases (for example, DNS, TCP, TLS, first byte). - example: - dns: 2.9 - download: 2.1 - firstByte: 95.2 - ssl: 187.9 - tcp: 92.6 - total: 380.7 - type: object - traceroute: - description: Traceroute hop results, present for ICMP and TCP tests. + metrics: + description: Metrics associated with an aggregated DNS flow. items: - $ref: "#/components/schemas/SyntheticsTestResultTracerouteHop" + $ref: "#/components/schemas/SingleAggregatedDnsResponseDataAttributesMetricsItems" type: array - triggered_at: - description: Unix timestamp (ms) of when the test was triggered. - example: 1679327999000 + type: object + SingleAggregatedDnsResponseDataAttributesGroupByItems: + description: Attributes associated with a group by + properties: + key: + description: The group by key. + type: string + value: + description: The group by value. + type: string + type: object + SingleAggregatedDnsResponseDataAttributesMetricsItems: + description: Metrics associated with an aggregated DNS flow. + properties: + key: + $ref: "#/components/schemas/DnsMetricKey" + value: + description: The metric value. format: int64 type: integer - tunnel: - description: Whether the test was run through a Synthetics tunnel. - example: false - type: boolean type: object - SyntheticsFastTestResultType: - default: result - description: JSON:API type for a fast test result. - enum: - - result - example: result - type: string - x-enum-varnames: - - RESULT - SyntheticsFastTestSubType: - description: Subtype of the Synthetic test that produced this result. - enum: - - dns - - grpc - - http - - icmp - - mcp - - multi - - ssl - - tcp - - udp - - websocket - example: http - type: string - x-enum-varnames: - - DNS - - GRPC - - HTTP - - ICMP - - MCP - - MULTI - - SSL - - TCP - - UDP - - WEBSOCKET - SyntheticsFastTestType: - description: Type of the Synthetic fast test that produced this result. + SingleAggregatedDnsResponseDataType: + default: aggregated_dns + description: |- + Aggregated DNS resource type. enum: - - fast-api - - fast-browser - example: fast-api + - aggregated_dns type: string x-enum-varnames: - - FAST_API - - FAST_BROWSER - SyntheticsGlobalVariable: - description: Synthetic global variable. + - AGGREGATED_DNS + SingleEntityContextResponse: + description: Response from the single entity context endpoint, containing the matching entity. properties: - attributes: - $ref: "#/components/schemas/SyntheticsGlobalVariableAttributes" - description: - description: Description of the global variable. - example: "Example description" + data: + $ref: "#/components/schemas/EntityContextEntity" + required: + - data + type: object + SlackIntegrationMetadata: + description: Incident integration metadata for the Slack integration. + properties: + channels: + description: Array of Slack channels in this integration metadata. + example: [] + items: + $ref: "#/components/schemas/SlackIntegrationMetadataChannelItem" + type: array + required: + - channels + type: object + SlackIntegrationMetadataChannelItem: + description: Item in the Slack integration metadata channel array. + properties: + channel_id: + description: Slack channel ID. + example: C0123456789 type: string - id: - description: Unique identifier of the global variable. - readOnly: true + channel_name: + description: Name of the Slack channel. + example: "#example-channel-name" type: string - is_fido: - description: Determines if the global variable is a FIDO variable. - type: boolean - is_totp: - description: Determines if the global variable is a TOTP/MFA variable. - type: boolean - name: - description: Name of the global variable. Unique across Synthetic global variables. - example: "MY_VARIABLE" + redirect_url: + description: URL redirecting to the Slack channel. + example: https://slack.com/app_redirect?channel=C0123456789&team=T01234567 type: string - parse_test_options: - $ref: "#/components/schemas/SyntheticsGlobalVariableParseTestOptions" - parse_test_public_id: - description: A Synthetic test ID to use as a test to generate the variable value. - example: "abc-def-123" + team_id: + description: Slack team ID. + example: T01234567 type: string - tags: - description: Tags of the global variable. - example: ["team:front", "test:workflow-1"] - items: - description: Tag name. - type: string - type: array - value: - $ref: "#/components/schemas/SyntheticsGlobalVariableValue" required: - - description - - name - - tags - - value + - channel_id + - channel_name + - redirect_url type: object - SyntheticsGlobalVariableAttributes: - description: Attributes of the global variable. + SlackReactionConfig: + description: "Configuration for a Slack emoji reaction trigger." properties: - restricted_roles: - $ref: "#/components/schemas/SyntheticsRestrictedRoles" + reactionEmoji: + description: "The Slack emoji reaction name." + example: L + minLength: 1 + type: string + teamId: + description: "The Slack workspace ID." + example: L + minLength: 1 + type: string + required: + - teamId + - reactionEmoji type: object - SyntheticsGlobalVariableOptions: - description: Options for the Global Variable for MFA. + SlackTrigger: + description: "Trigger a workflow from Slack. The workflow must be published." properties: - totp_parameters: - $ref: "#/components/schemas/SyntheticsGlobalVariableTOTPParameters" + reactionTriggers: + description: "Slack emoji reactions that trigger the workflow." + items: + $ref: "#/components/schemas/SlackReactionConfig" + type: array + uniqueItems: true type: object - SyntheticsGlobalVariableParseTestOptions: - description: Parser options to use for retrieving a Synthetic global variable from a Synthetic test. Used in conjunction with `parse_test_public_id`. + SlackTriggerWrapper: + description: "Schema for a Slack-based trigger." properties: - field: - description: When type is `http_header`, name of the header to use to extract the value. - example: "content-type" - type: string - localVariableName: - description: When type is `local_variable`, name of the local variable to use to extract the value. - example: "LOCAL_VARIABLE" + slackTrigger: + $ref: "#/components/schemas/SlackTrigger" + startStepNames: + $ref: "#/components/schemas/StartStepNames" + required: + - slackTrigger + type: object + SlackUserBindingData: + description: Slack team ID data from a response. + properties: + id: + description: The Slack team ID. + example: "T01234567" type: string - parser: - $ref: "#/components/schemas/SyntheticsVariableParser" type: - $ref: "#/components/schemas/SyntheticsGlobalVariableParseTestOptionsType" - required: - - type + $ref: "#/components/schemas/SlackUserBindingType" type: object - SyntheticsGlobalVariableParseTestOptionsType: - description: Type of value to extract from a test for a Synthetic global variable. + SlackUserBindingType: + default: team_id + description: Slack user binding resource type. enum: - - http_body - - http_header - - http_status_code - - local_variable - example: http_body + - team_id + example: team_id type: string x-enum-varnames: - - HTTP_BODY - - HTTP_HEADER - - HTTP_STATUS_CODE - - LOCAL_VARIABLE - SyntheticsGlobalVariableParserType: - description: Type of parser for a Synthetic global variable from a synthetics test. + - TEAM_ID + SlackUserBindingsResponse: + description: Response with a list of Slack user bindings. + properties: + data: + description: An array of Slack user bindings. + example: [{"id": "T01234567", "type": "team_id"}, {"id": "T09876543", "type": "team_id"}] + items: + $ref: "#/components/schemas/SlackUserBindingData" + type: array + required: + - data + type: object + SloDataSource: + default: slo + description: A data source for SLO queries. enum: - - raw - - json_path - - regex - - x_path - example: raw + - slo + example: slo type: string x-enum-varnames: - - RAW - - JSON_PATH - - REGEX - - X_PATH - SyntheticsGlobalVariableTOTPParameters: - description: "Parameters for the TOTP/MFA variable" + - SLO + SloQuery: + description: A query for SLO status, error budget, and burn rate metrics. + example: + additional_query_filters: "*" + data_source: "slo" + group_mode: "overall" + measure: "good_events" + name: "my_slo" + slo_id: "12345678910" + slo_query_type: "metric" properties: - digits: - description: Number of digits for the OTP code. - example: 6 - format: int32 - maximum: 10 - minimum: 4 + additional_query_filters: + description: Additional filters applied to the SLO query. + example: "host:host_a,env:prod" + type: string + cross_org_uuids: + $ref: "#/components/schemas/CrossOrgUuids" + data_source: + $ref: "#/components/schemas/SloDataSource" + group_mode: + $ref: "#/components/schemas/SlosGroupMode" + measure: + $ref: "#/components/schemas/SlosMeasure" + name: + description: The variable name for use in formulas. + example: query1 + type: string + slo_id: + description: The unique identifier of the SLO to query. + example: "a]b123c45de6f78g90h" + type: string + slo_query_type: + $ref: "#/components/schemas/SlosQueryType" + required: + - data_source + - slo_id + - measure + type: object + SloReportCreateRequest: + description: The SLO report request body. + properties: + data: + $ref: "#/components/schemas/SloReportCreateRequestData" + required: + - data + type: object + SloReportCreateRequestAttributes: + description: The attributes portion of the SLO report request. + properties: + from_ts: + description: The `from` timestamp for the report in epoch seconds. + example: 1690901870 + format: int64 type: integer - refresh_interval: - description: Interval for which to refresh the token (in seconds). - example: 30 - format: int32 - maximum: 999 - minimum: 0 + interval: + $ref: "#/components/schemas/SLOReportInterval" + query: + description: The query string used to filter SLO results. Some examples of queries include `service:` and `slo-name`. + example: "slo_type:metric" + type: string + timezone: + description: The timezone used to determine the start and end of each interval. For example, weekly intervals start at 12am on Sunday in the specified timezone. + example: America/New_York + type: string + to_ts: + description: The `to` timestamp for the report in epoch seconds. + example: 1706803070 + format: int64 type: integer + required: + - query + - from_ts + - to_ts type: object - SyntheticsGlobalVariableValue: - description: Value of the global variable. - example: - secure: true - value: value + SloReportCreateRequestData: + description: The data portion of the SLO report request. properties: - options: - $ref: "#/components/schemas/SyntheticsGlobalVariableOptions" - secure: - description: Determines if the value of the variable is hidden. - type: boolean - value: - description: |- - Value of the global variable. When reading a global variable, - the value will not be present if the variable is hidden with the `secure` property. - example: "example-value" - type: string + attributes: + $ref: "#/components/schemas/SloReportCreateRequestAttributes" + required: + - attributes type: object - SyntheticsNetworkAssertion: - description: Object describing an assertion for a Network Path test. - oneOf: - - $ref: "#/components/schemas/SyntheticsNetworkAssertionLatency" - - $ref: "#/components/schemas/SyntheticsNetworkAssertionMultiNetworkHop" - - $ref: "#/components/schemas/SyntheticsNetworkAssertionPacketLossPercentage" - - $ref: "#/components/schemas/SyntheticsNetworkAssertionJitter" - SyntheticsNetworkAssertionJitter: - description: Jitter assertion for a Network Path test. + SloStatusData: + description: The data portion of the SLO status response. properties: - operator: - $ref: "#/components/schemas/SyntheticsNetworkAssertionOperator" - target: - description: Target value in milliseconds. - example: 5 - format: double - type: number + attributes: + $ref: "#/components/schemas/SloStatusDataAttributes" + id: + description: The ID of the SLO. + example: "00000000-0000-0000-0000-000000000000" + type: string type: - $ref: "#/components/schemas/SyntheticsNetworkAssertionJitterType" + $ref: "#/components/schemas/SloStatusType" required: - - operator - - target + - id - type + - attributes type: object - SyntheticsNetworkAssertionJitterType: - default: jitter - description: Type of the jitter assertion. - enum: - - jitter - example: jitter - type: string - x-enum-varnames: - - JITTER - SyntheticsNetworkAssertionLatency: - description: Network latency assertion for a Network Path test. + SloStatusDataAttributes: + description: The attributes of the SLO status. properties: - operator: - $ref: "#/components/schemas/SyntheticsNetworkAssertionOperator" - property: - $ref: "#/components/schemas/SyntheticsNetworkAssertionProperty" - target: - description: Target value in milliseconds. - example: 500 + error_budget_remaining: + description: The percentage of error budget remaining. + example: 99.5 format: double type: number - type: - $ref: "#/components/schemas/SyntheticsNetworkAssertionLatencyType" + raw_error_budget_remaining: + $ref: "#/components/schemas/RawErrorBudgetRemaining" + sli: + description: The current Service Level Indicator (SLI) value as a percentage. + example: 99.95 + format: double + type: number + span_precision: + description: The precision of the time span in seconds. + example: 2 + format: int64 + type: integer + state: + description: The current state of the SLO (for example, `breached`, `warning`, `ok`). + example: ok + type: string required: - - operator - - property - - target - - type + - sli + - error_budget_remaining + - raw_error_budget_remaining + - state + - span_precision type: object - SyntheticsNetworkAssertionLatencyType: - default: latency - description: Type of the latency assertion. - enum: - - latency - example: latency - type: string - x-enum-varnames: - - LATENCY - SyntheticsNetworkAssertionMultiNetworkHop: - description: Multi-network hop assertion for a Network Path test. + SloStatusResponse: + description: The SLO status response. properties: - operator: - $ref: "#/components/schemas/SyntheticsNetworkAssertionOperator" - property: - $ref: "#/components/schemas/SyntheticsNetworkAssertionProperty" - target: - description: Target value in number of hops. - example: 3 - format: double - type: number - type: - $ref: "#/components/schemas/SyntheticsNetworkAssertionMultiNetworkHopType" + data: + $ref: "#/components/schemas/SloStatusData" required: - - operator - - property - - target - - type + - data type: object - SyntheticsNetworkAssertionMultiNetworkHopType: - default: multiNetworkHop - description: Type of the multi-network hop assertion. + SloStatusType: + description: The type of the SLO status resource. enum: - - multiNetworkHop - example: multiNetworkHop + - slo_status + example: slo_status type: string x-enum-varnames: - - MULTI_NETWORK_HOP - SyntheticsNetworkAssertionOperator: - description: Assertion operator to apply. + - SLO_STATUS + SlosGroupMode: + description: How SLO results are grouped in the response. enum: - - is - - isNot - - lessThan - - lessThanOrEqual - - moreThan - - moreThanOrEqual - example: lessThan + - overall + - components + example: overall type: string x-enum-varnames: - - IS - - IS_NOT - - LESS_THAN - - LESS_THAN_OR_EQUAL - - MORE_THAN - - MORE_THAN_OR_EQUAL - SyntheticsNetworkAssertionPacketLossPercentage: - description: Packet loss percentage assertion for a Network Path test. - properties: - operator: - $ref: "#/components/schemas/SyntheticsNetworkAssertionOperator" - target: - description: Target value as a percentage (0 to 1). - example: 0.05 - format: double - maximum: 1 - minimum: 0 - type: number - type: - $ref: "#/components/schemas/SyntheticsNetworkAssertionPacketLossPercentageType" - required: - - operator - - target - - type - type: object - SyntheticsNetworkAssertionPacketLossPercentageType: - default: packetLossPercentage - description: Type of the packet loss percentage assertion. + - OVERALL + - COMPONENTS + SlosMeasure: + description: The SLO measurement to retrieve. enum: - - packetLossPercentage - example: packetLossPercentage + - good_events + - bad_events + - slo_status + - error_budget_remaining + - error_budget_remaining_history + - error_budget_burndown + - burn_rate + - slo_status_history + - good_minutes + - bad_minutes + example: slo_status type: string x-enum-varnames: - - PACKET_LOSS_PERCENTAGE - SyntheticsNetworkAssertionProperty: - description: The associated assertion property. + - GOOD_EVENTS + - BAD_EVENTS + - SLO_STATUS + - ERROR_BUDGET_REMAINING + - ERROR_BUDGET_REMAINING_HISTORY + - ERROR_BUDGET_BURNDOWN + - BURN_RATE + - SLO_STATUS_HISTORY + - GOOD_MINUTES + - BAD_MINUTES + SlosQueryType: + description: The type of SLO definition being queried. enum: - - avg - - max - - min - example: avg + - metric + - time_slice + - monitor + example: metric type: string x-enum-varnames: - - AVG - - MAX - - MIN - SyntheticsNetworkTest: - description: Object containing details about a Network Path test. + - METRIC + - TIME_SLICE + - MONITOR + Snapshot: + description: A single heatmap snapshot resource returned by create or update operations. properties: - config: - $ref: "#/components/schemas/SyntheticsNetworkTestConfig" - locations: - description: |- - Array of locations used to run the test. Network Path tests can be run from managed locations to test public endpoints, - or from a [Datadog Agent](https://docs.datadoghq.com/synthetics/network_path_tests/#agent-configuration) to test private environments. - example: ["aws:us-east-1", "agent:my-agent-name"] - items: - description: A location to run the test from. - type: string - type: array - message: - description: Notification message associated with the test. - example: "Network Path test notification" - type: string - monitor_id: - description: The associated monitor ID. - example: 12345678 - format: int64 - readOnly: true - type: integer - name: - description: Name of the test. - example: "Example Network Path test" - type: string - options: - $ref: "#/components/schemas/SyntheticsTestOptions" - public_id: - description: The public ID for the test. - example: abc-def-123 - readOnly: true - type: string - status: - $ref: "#/components/schemas/SyntheticsTestPauseStatus" - subtype: - $ref: "#/components/schemas/SyntheticsNetworkTestSubType" - tags: - description: Array of tags attached to the test. - example: ["env:production"] + data: + $ref: "#/components/schemas/SnapshotData" + type: object + SnapshotArray: + description: A list of heatmap snapshots returned by a list operation. + properties: + data: + description: Array of heatmap snapshot data objects. items: - description: A tag attached to the test. - type: string + $ref: "#/components/schemas/SnapshotData" type: array - type: - $ref: "#/components/schemas/SyntheticsNetworkTestType" required: - - name - - config - - locations - - options - - type - - message + - data type: object - SyntheticsNetworkTestConfig: - description: Configuration object for a Network Path test. + SnapshotCreateRequest: + description: Request body for creating a heatmap snapshot. properties: - assertions: - default: [] - description: Array of assertions used for the test. - example: [{"operator": "lessThan", "property": "avg", "target": 500, "type": "latency"}] - items: - $ref: "#/components/schemas/SyntheticsNetworkAssertion" - type: array - request: - $ref: "#/components/schemas/SyntheticsNetworkTestRequest" + data: + $ref: "#/components/schemas/SnapshotCreateRequestData" + required: + - data type: object - SyntheticsNetworkTestEdit: - description: Data object for creating or editing a Network Path test. + SnapshotCreateRequestData: + description: Data object for a heatmap snapshot creation request, containing the resource type and attributes. properties: attributes: - $ref: "#/components/schemas/SyntheticsNetworkTest" + $ref: "#/components/schemas/SnapshotCreateRequestDataAttributes" type: - $ref: "#/components/schemas/SyntheticsNetworkTestType" + $ref: "#/components/schemas/SnapshotUpdateRequestDataType" required: - - attributes - type type: object - SyntheticsNetworkTestEditRequest: - description: Network Path test request. + SnapshotCreateRequestDataAttributes: + description: Attributes for creating a heatmap snapshot, including the view, session, event, and device context. properties: - data: - $ref: "#/components/schemas/SyntheticsNetworkTestEdit" + application_id: + description: Unique identifier of the RUM application. + example: aaaaaaaa-1111-2222-3333-bbbbbbbbbbbb + type: string + device_type: + description: Device type used when capturing the snapshot (e.g., desktop, mobile, tablet). + example: desktop + type: string + event_id: + description: Unique identifier of the RUM event associated with the snapshot. + example: 11111111-2222-3333-4444-555555555555 + type: string + is_device_type_selected_by_user: + description: Indicates whether the device type was explicitly selected by the user rather than auto-detected. + example: false + type: boolean + session_id: + description: Unique identifier of the RUM session associated with the snapshot. + type: string + snapshot_name: + description: Human-readable name for the snapshot. + example: My Snapshot + type: string + start: + description: Offset in milliseconds from the start of the session at which the snapshot was captured. + example: 0 + format: int64 + type: integer + view_id: + description: Unique identifier of the RUM view associated with the snapshot. + type: string + view_name: + description: URL path or name of the view where the snapshot was captured. + example: /home + type: string required: - - data + - view_name + - device_type + - application_id + - snapshot_name + - event_id + - start + - is_device_type_selected_by_user type: object - SyntheticsNetworkTestRequest: - description: Object describing the request for a Network Path test. + SnapshotData: + description: Data object representing a heatmap snapshot, including its identifier, type, and attributes. properties: - destination_service: - description: An optional label displayed for the destination host in the Network Path visualization. + attributes: + $ref: "#/components/schemas/SnapshotDataAttributes" + id: + description: Unique identifier of the heatmap snapshot. + readOnly: true type: string - e2e_queries: - description: The number of packets sent to probe the destination to measure packet loss, latency and jitter. - example: 50 - format: int64 - type: integer - host: - description: Host name to query. - example: "" + type: + $ref: "#/components/schemas/SnapshotUpdateRequestDataType" + required: + - type + type: object + SnapshotDataAttributes: + description: Attributes of a heatmap snapshot, including view context, device information, and audit metadata. + properties: + application_id: + description: Unique identifier of the RUM application. type: string - max_ttl: - description: The maximum time-to-live (max number of hops) used in outgoing probe packets. - example: 30 - format: int64 - type: integer - port: - description: |- - For TCP or UDP tests, the port to use when performing the test. - If not set on a UDP test, a random port is assigned, which may affect the results. - example: 443 + created_at: + description: Timestamp when the snapshot was created. + format: date-time + readOnly: true + type: string + created_by: + description: Display name of the user who created the snapshot. + readOnly: true + type: string + created_by_handle: + description: Email handle of the user who created the snapshot. + readOnly: true + type: string + created_by_user_id: + description: Numeric identifier of the user who created the snapshot. format: int64 + readOnly: true type: integer - source_service: - description: An optional label displayed for the source host in the Network Path visualization. + device_type: + description: Device type used when capturing the snapshot (e.g., desktop, mobile, tablet). type: string - tcp_method: - $ref: "#/components/schemas/SyntheticsNetworkTestRequestTCPMethod" - timeout: - description: Timeout in seconds. + event_id: + description: Unique identifier of the RUM event associated with the snapshot. + type: string + is_device_type_selected_by_user: + description: Indicates whether the device type was explicitly selected by the user rather than auto-detected. + type: boolean + modified_at: + description: Timestamp when the snapshot was last modified. + format: date-time + readOnly: true + type: string + org_id: + description: Numeric identifier of the organization that owns the snapshot. format: int64 + readOnly: true type: integer - traceroute_queries: - description: The number of traceroute path tracings. - example: 3 + session_id: + description: Unique identifier of the RUM session associated with the snapshot. + type: string + snapshot_name: + description: Human-readable name for the snapshot. + type: string + start: + description: Offset in milliseconds from the start of the session at which the snapshot was captured. format: int64 type: integer - required: - - host - - max_ttl - - e2e_queries - - traceroute_queries + view_id: + description: Unique identifier of the RUM view associated with the snapshot. + type: string + view_name: + description: URL path or name of the view where the snapshot was captured. + type: string type: object - SyntheticsNetworkTestRequestTCPMethod: - description: For TCP tests, the TCP traceroute strategy. - enum: - - prefer_sack - - syn - - sack - example: prefer_sack - type: string - x-enum-varnames: - - PREFER_SACK - - SYN - - SACK - SyntheticsNetworkTestResponse: - description: Network Path test response. + SnapshotUpdateRequest: + description: Request body for updating a heatmap snapshot. properties: data: - $ref: "#/components/schemas/SyntheticsNetworkTestResponseData" + $ref: "#/components/schemas/SnapshotUpdateRequestData" + required: + - data type: object - SyntheticsNetworkTestResponseData: - description: Network Path test response data. + SnapshotUpdateRequestData: + description: Data object for a heatmap snapshot update request, containing the resource identifier, type, and attributes. properties: attributes: - $ref: "#/components/schemas/SyntheticsNetworkTest" + $ref: "#/components/schemas/SnapshotUpdateRequestDataAttributes" id: - description: The public ID of the Network Path test. - example: abc-def-123 - readOnly: true + description: Unique identifier of the heatmap snapshot to update. + example: 00000000-0000-0000-0000-000000000001 type: string type: - $ref: "#/components/schemas/SyntheticsNetworkTestResponseType" - type: object - SyntheticsNetworkTestResponseType: - default: "network_test" - description: Type of response, `network_test`. - enum: - - network_test - example: network_test - type: string - x-enum-varnames: - - NETWORK_TEST - SyntheticsNetworkTestSubType: - description: |- - Subtype of the Synthetic Network Path test: `tcp`, `udp`, or `icmp`. - enum: - - tcp - - udp - - icmp - example: tcp - type: string - x-enum-varnames: - - TCP - - UDP - - ICMP - SyntheticsNetworkTestType: - default: "network" - description: Type of the Synthetic test, `network`. - enum: - - network - example: network - type: string - x-enum-varnames: - - NETWORK - SyntheticsPollTestResultsResponse: - description: Response object for polling Synthetic test results. - properties: - data: - description: Array of Synthetic test results. - items: - $ref: "#/components/schemas/SyntheticsTestResultData" - type: array - included: - description: Array of included related resources, such as the test definition. - items: - $ref: "#/components/schemas/SyntheticsTestResultIncludedItem" - type: array + $ref: "#/components/schemas/SnapshotUpdateRequestDataType" + required: + - type type: object - SyntheticsRestrictedRoles: - deprecated: true - description: A list of role identifiers that can be pulled from the Roles API, for restricting read and write access. This field is deprecated. Use the restriction policies API to manage permissions. - example: ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"] - items: - description: UUID for a role. - example: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx - type: string - type: array - SyntheticsSuite: - description: Object containing details about a Synthetic suite. + SnapshotUpdateRequestDataAttributes: + description: Attributes for updating a heatmap snapshot, including event, session, and view context. properties: - message: - description: Notification message associated with the suite. - example: Notification message + event_id: + description: Unique identifier of the RUM event associated with the snapshot. + example: 11111111-2222-3333-4444-555555555555 type: string - monitor_id: - description: The associated monitor ID. - example: 12345678 + is_device_type_selected_by_user: + description: Indicates whether the device type was explicitly selected by the user rather than auto-detected. + example: false + type: boolean + session_id: + description: Unique identifier of the RUM session associated with the snapshot. + type: string + start: + description: Offset in milliseconds from the start of the session at which the snapshot was captured. + example: 0 format: int64 - readOnly: true type: integer - name: - description: Name of the suite. - example: "Example suite name" - type: string - options: - $ref: "#/components/schemas/SyntheticsSuiteOptions" - public_id: - description: The public ID for the test. - example: 123-abc-456 - readOnly: true + view_id: + description: Unique identifier of the RUM view associated with the snapshot. type: string - tags: - description: Array of tags attached to the suite. - example: ["env:production"] - items: - description: A tag attached to the suite. - type: string - type: array - tests: - description: Array of Synthetic tests included in the suite. - items: - $ref: "#/components/schemas/SyntheticsSuiteTest" - type: array - type: - $ref: "#/components/schemas/SyntheticsSuiteType" required: - - name - - type - - tests - - options + - event_id + - start + - is_device_type_selected_by_user type: object - SyntheticsSuiteOptions: - description: Object describing the extra options for a Synthetic suite. + SnapshotUpdateRequestDataType: + default: snapshots + description: Snapshots resource type. + enum: + - snapshots + example: snapshots + type: string + x-enum-varnames: + - SNAPSHOTS + SnowflakeAccountUsageMetricsIntegrationDataflowRequest: + additionalProperties: false + description: >- + Account-level usage metrics read from the Snowflake `ACCOUNT_USAGE` schema, covering storage usage, credit consumption, and query activity. properties: - alerting_threshold: - description: Percentage of critical tests failure needed for a suite to fail. - format: double - maximum: 1 - minimum: 0 - type: number + enabled: + description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeAccountUsageMetricsIntegrationDataflowSettingsRequest" type: object - SyntheticsSuiteResponse: - description: Synthetics suite response + SnowflakeAccountUsageMetricsIntegrationDataflowResponse: + description: >- + Account-level usage metrics read from the Snowflake `ACCOUNT_USAGE` schema, covering storage usage, credit consumption, and query activity. properties: - data: - $ref: "#/components/schemas/SyntheticsSuiteResponseData" + enabled: + description: Whether Datadog collects this data. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeAccountUsageMetricsIntegrationDataflowSettingsResponse" type: object - SyntheticsSuiteResponseData: - description: Synthetics suite response data + SnowflakeAccountUsageMetricsIntegrationDataflowSettingsRequest: + additionalProperties: false + description: Settings of the account usage metrics dataflow. Only the fields provided are changed. properties: - attributes: - $ref: "#/components/schemas/SyntheticsSuite" - id: - description: The public ID for the suite. - example: 123-abc-456 - readOnly: true - type: string - type: - $ref: "#/components/schemas/SyntheticsSuiteTypes" + account_usage_metrics_aggregate_last_24h: + description: >- + The period each metric aggregates over. Set to `true` to aggregate the past 24 hours on a rolling basis, or `false` to aggregate the current day so far. Defaults to `false`. + example: false + type: boolean type: object - SyntheticsSuiteSearchResponse: - description: Synthetics suite search response + SnowflakeAccountUsageMetricsIntegrationDataflowSettingsResponse: + description: Settings of the account usage metrics dataflow. properties: - data: - $ref: "#/components/schemas/SyntheticsSuiteSearchResponseData" + account_usage_metrics_aggregate_last_24h: + description: >- + The period each metric aggregates over. When `true`, metrics aggregate the past 24 hours on a rolling basis; when `false`, they aggregate the current day so far. + example: false + type: boolean type: object - SyntheticsSuiteSearchResponseData: - description: Synthetics suite search response data + SnowflakeCloudCostMetricsIntegrationDataflowRequest: + additionalProperties: false + description: >- + Cost data aggregated from the Snowflake `ORGANIZATION_USAGE` schema. [Cloud Cost Management](https://docs.datadoghq.com/cloud_cost_management/) must be enabled for your organization while this dataflow is enabled. Any request that enables this dataflow without Cloud Cost Management is rejected with a `422` response. The Snowflake role also needs the ORGANIZATION_BILLING_VIEWER database role to read the underlying cost views; without that role this dataflow collects no data. properties: - attributes: - $ref: "#/components/schemas/SyntheticsSuiteSearchResponseDataAttributes" - id: - description: The unique identifier of the suite search response data. - format: uuid - type: string - type: - $ref: "#/components/schemas/SuiteSearchResponseType" + enabled: + description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeCloudCostMetricsIntegrationDataflowSettingsRequest" type: object - SyntheticsSuiteSearchResponseDataAttributes: - description: Synthetics suite search response data attributes + SnowflakeCloudCostMetricsIntegrationDataflowResponse: + description: >- + Cost data aggregated from the Snowflake `ORGANIZATION_USAGE` schema. Requires [Cloud Cost Management](https://docs.datadoghq.com/cloud_cost_management/) to be set up for your organization, and the ORGANIZATION_BILLING_VIEWER database role on the Snowflake role; without both this dataflow collects no data. properties: - suites: - description: List of Synthetic suites matching the search query. - items: - $ref: "#/components/schemas/SyntheticsSuite" - type: array - total: - description: Total number of Synthetic suites matching the search query. - format: int32 - maximum: 2147483647 - type: integer + enabled: + description: Whether Datadog collects this data. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeCloudCostMetricsIntegrationDataflowSettingsResponse" type: object - SyntheticsSuiteTest: - description: Object containing details about a Synthetic test included in a Synthetic suite. + SnowflakeCloudCostMetricsIntegrationDataflowSettingsRequest: + additionalProperties: false + description: Settings of the Cloud Cost Management dataflow. Only the fields provided are changed. properties: - alerting_criticality: - $ref: "#/components/schemas/SyntheticsSuiteTestAlertingCriticality" - public_id: - description: The public ID of the Synthetic test included in the suite. - example: "" + query_tags: + description: >- + Snowflake query tags to ingest, so that cost data can be broken down by them in Cloud Cost Management. Provide the tag names as a comma-separated list without spaces, using only letters, digits, underscores, dots, and hyphens. Datadog does not collect query tags by default. + example: env,team,cost_center + pattern: "^([a-zA-Z0-9_.-]+(,[a-zA-Z0-9_.-]+)*)?$" type: string - required: - - public_id type: object - SyntheticsSuiteTestAlertingCriticality: - description: Alerting criticality for each the test. - enum: - - ignore - - critical - example: critical - type: string - x-enum-varnames: - - IGNORE - - CRITICAL - SyntheticsSuiteType: - default: "suite" - description: Type of the Synthetic suite, `suite`. - enum: - - suite - example: suite - type: string - x-enum-varnames: - - SUITE - SyntheticsSuiteTypes: - default: "suites" - description: Type for the Synthetics suites responses, `suites`. - enum: - - suites - example: suites - type: string - x-enum-varnames: - - SUITES - SyntheticsTestFileAbortMultipartUploadRequest: - description: Request body for aborting a multipart file upload. + SnowflakeCloudCostMetricsIntegrationDataflowSettingsResponse: + description: Settings of the Cloud Cost Management dataflow. properties: - key: - description: The full storage path of the file whose upload should be aborted. - example: "org-123/api-upload-file/abc-def-123/2024-01-01T00:00:00_uuid.json" + query_tags: + description: >- + Snowflake query tags ingested as a comma-separated list of tag names, so that cost data can be broken down by them in Cloud Cost Management. + example: env,team,cost_center type: string - uploadId: - description: The upload ID of the multipart upload to abort. - example: "upload-id-abc123" + type: object + SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowRequest: + additionalProperties: false + description: >- + Data Observability, which collects lineage and data quality information from your Snowflake databases so you can explore how data flows and detect and resolve quality issues. + properties: + enabled: + description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsRequest" + type: object + SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowResponse: + description: >- + Data Observability, which collects lineage and data quality information from your Snowflake databases so you can explore how data flows and detect and resolve quality issues. + properties: + enabled: + description: Whether Datadog collects this data. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsResponse" + type: object + SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsRequest: + additionalProperties: false + description: Settings of the Data Observability dataflow. Only the fields provided are changed. + properties: + do_table_crawler_cron: + description: >- + Cron expression setting how often Datadog crawls your Snowflake table metadata. It takes the five standard fields, with the restriction that the month must be `*` and that the day of the month and the day of the week cannot both be constrained. Common values are hourly (`0 * * * *`) and daily (`0 0 * * *`). Defaults to hourly (`0 * * * *`). + example: "0 */6 * * *" type: string - required: - - uploadId - - key + sync_snowflake_system_database: + description: >- + Whether metadata from the Snowflake `SNOWFLAKE` system database is included in Data Observability alongside your own databases. Defaults to `true`. + example: true + type: boolean type: object - SyntheticsTestFileCompleteMultipartUploadPart: - description: A completed part of a multipart upload. + SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsResponse: + description: Settings of the Data Observability dataflow. properties: - ETag: - description: The ETag returned by the storage provider after uploading the part. - example: '"d41d8cd98f00b204e9800998ecf8427e"' + do_table_crawler_cron: + description: Cron expression setting how often Datadog crawls your Snowflake table metadata. + example: "0 */6 * * *" type: string - PartNumber: - description: The 1-indexed part number for the multipart upload. - example: 1 + sync_snowflake_system_database: + description: >- + Whether metadata from the Snowflake `SNOWFLAKE` system database is included in Data Observability alongside your own databases. + example: true + type: boolean + type: object + SnowflakeEventTableLogsIntegrationDataflowRequest: + additionalProperties: false + description: >- + Records from your Snowflake event tables, used to monitor application behavior and identify issues. `enabled` turns the dataflow on and off as a whole, and the per-record-type toggles in `settings` select which kinds of record it collects while it is on. The Snowflake role needs usage granted on the database, the schema, and the event table itself; without those grants this dataflow collects no data. + properties: + enabled: + description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeEventTableLogsIntegrationDataflowSettingsRequest" + type: object + SnowflakeEventTableLogsIntegrationDataflowResponse: + description: >- + Records from your Snowflake event tables, used to monitor application behavior and identify issues. `enabled` turns the dataflow on and off as a whole, and the per-record-type toggles in `settings` select which kinds of record it collects while it is on. The Snowflake role needs usage granted on the database, the schema, and the event table itself; without those grants this dataflow collects no data. + properties: + enabled: + description: Whether Datadog collects this data. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeEventTableLogsIntegrationDataflowSettingsResponse" + type: object + SnowflakeEventTableLogsIntegrationDataflowSettingsRequest: + additionalProperties: false + description: >- + Settings of the event table dataflow. Each record type is collected independently so that you can control ingestion costs, and every record type is ingested into Datadog as logs tagged with its `record_type`. Only the fields provided are changed. + properties: + event_table_events_enabled: + description: >- + Whether records with a `record_type` of `event` are collected. Defaults to `false`. + example: true + type: boolean + event_table_logs_enabled: + description: >- + Whether records with a `record_type` of `log` are collected. Defaults to `false`. + example: true + type: boolean + event_table_logs_interval_min: + description: >- + How often event table records are collected, in minutes. One of `5`, `15`, `30`, `60`, or `1440`. Defaults to `5`. + example: 15 format: int64 type: integer - required: - - ETag - - PartNumber + event_table_span_events_enabled: + description: >- + Whether records with a `record_type` of `span_event` are collected. Defaults to `false`. + example: false + type: boolean + event_table_spans_enabled: + description: >- + Whether records with a `record_type` of `span` are collected. Defaults to `false`. + example: false + type: boolean type: object - SyntheticsTestFileCompleteMultipartUploadRequest: - description: Request body for completing a multipart file upload. + SnowflakeEventTableLogsIntegrationDataflowSettingsResponse: + description: >- + Settings of the event table dataflow. Each record type is collected independently so that you can control ingestion costs, and every record type is ingested into Datadog as logs tagged with its `record_type`. properties: - key: - description: The full storage path for the uploaded file. - example: "org-123/api-upload-file/abc-def-123/2024-01-01T00:00:00_uuid.json" - type: string - parts: - description: Array of completed parts with their ETags. - items: - $ref: "#/components/schemas/SyntheticsTestFileCompleteMultipartUploadPart" - type: array - uploadId: - description: The upload ID returned when the multipart upload was initiated. - example: "upload-id-abc123" + event_table_events_enabled: + description: Whether records with a `record_type` of `event` are collected. + example: true + type: boolean + event_table_logs_enabled: + description: Whether records with a `record_type` of `log` are collected. + example: true + type: boolean + event_table_logs_interval_min: + description: How often event table records are collected, in minutes. + example: 15 + format: int64 + type: integer + event_table_span_events_enabled: + description: Whether records with a `record_type` of `span_event` are collected. + example: false + type: boolean + event_table_spans_enabled: + description: Whether records with a `record_type` of `span` are collected. + example: false + type: boolean + type: object + SnowflakeIntegrationAccountAuthenticationRequest: + description: Authentication for creating the Snowflake integration account. Exactly one method is set. + oneOf: + - $ref: "#/components/schemas/SnowflakeIntegrationAccountPrivateKeyAuthRequest" + SnowflakeIntegrationAccountAuthenticationResponse: + description: Authentication configured on the Snowflake integration account. + oneOf: + - $ref: "#/components/schemas/SnowflakeIntegrationAccountPrivateKeyAuthResponse" + SnowflakeIntegrationAccountAuthenticationUpdate: + description: Authentication for updating the Snowflake integration account. Exactly one method is set. + oneOf: + - $ref: "#/components/schemas/SnowflakeIntegrationAccountPrivateKeyAuthUpdate" + SnowflakeIntegrationAccountCreateAttributes: + description: Writable attributes used to create a Snowflake integration account. + properties: + authentication: + $ref: "#/components/schemas/SnowflakeIntegrationAccountAuthenticationRequest" + dataflows: + $ref: "#/components/schemas/SnowflakeIntegrationDataflowsRequest" + name: + description: |- + Human-readable name of the Snowflake integration account. Must be + unique within your Datadog organization. + example: prod-snowflake type: string + settings: + $ref: "#/components/schemas/SnowflakeIntegrationAccountSettingsRequest" required: - - uploadId - - key - - parts + - name + - authentication + - settings type: object - SyntheticsTestFileDownloadRequest: - description: Request body for getting a presigned download URL for a test file. + SnowflakeIntegrationAccountCreateData: + description: Data envelope for creating a Snowflake integration account. properties: - bucketKey: - description: The bucket key referencing the file to download. - example: "api-upload-file/abc-def-123/2024-01-01T00:00:00_uuid.json" - minLength: 1 - type: string + attributes: + $ref: "#/components/schemas/SnowflakeIntegrationAccountCreateAttributes" + type: + $ref: "#/components/schemas/IntegrationAccountType" required: - - bucketKey + - type + - attributes type: object - SyntheticsTestFileDownloadResponse: - description: Response containing a presigned URL for downloading a test file. + SnowflakeIntegrationAccountCreateRequest: + description: Request payload to create a Snowflake integration account. properties: - url: - description: A presigned URL to download the file. The URL expires after a short period. - example: "https://storage.example.com/presigned-download-url" - type: string + data: + $ref: "#/components/schemas/SnowflakeIntegrationAccountCreateData" + required: + - data type: object - SyntheticsTestFileMultipartPresignedUrlsParams: - description: Presigned URL parameters returned for a multipart upload. + SnowflakeIntegrationAccountPrivateKeyAuthRequest: + additionalProperties: false + description: >- + RSA key pair authentication, the only method Snowflake integration accounts support. Generate an RSA key pair and assign the public key to the Snowflake user named in `settings.username`. properties: - key: - description: The full storage path for the file being uploaded. - example: "org-123/api-upload-file/abc-def-123/2024-01-01T00:00:00_uuid.json" + auth_type: + $ref: "#/components/schemas/SnowflakeIntegrationAccountPrivateKeyAuthType" + private_key: + description: The private key, in PEM format. + example: "-----BEGIN PRIVATE KEY-----\nMIIE...\n-----END PRIVATE KEY-----" type: string - upload_id: - description: The upload ID assigned by the storage provider for this multipart upload. - example: "upload-id-abc123" + writeOnly: true + private_key_name: + description: Name that distinguishes this private key from other keys in Datadog. + example: my-rsa-key type: string - urls: - additionalProperties: - type: string - description: A map of part numbers to presigned upload URLs. - example: - "1": "https://storage.example.com/presigned-upload-url-part-1" - "2": "https://storage.example.com/presigned-upload-url-part-2" - type: object - type: object - SyntheticsTestFileMultipartPresignedUrlsPart: - description: A part descriptor for initiating a multipart upload. - properties: - md5: - description: Base64-encoded MD5 digest of the part content. - example: "1B2M2Y8AsgTpgAmY7PhCfg==" - maxLength: 24 - minLength: 22 + private_key_passphrase: + description: >- + Passphrase that decrypts the private key. Provide it only when the key is encrypted. + example: your-private-key-passphrase type: string - partNumber: - description: The 1-indexed part number for the multipart upload. - example: 1 - format: int64 - type: integer + writeOnly: true required: - - md5 - - partNumber + - auth_type + - private_key_name + - private_key type: object - SyntheticsTestFileMultipartPresignedUrlsRequest: - description: Request body for getting presigned URLs for a multipart file upload. + SnowflakeIntegrationAccountPrivateKeyAuthResponse: + description: The RSA key pair authentication method configured on the account. properties: - bucketKeyPrefix: - $ref: "#/components/schemas/SyntheticsTestFileMultipartPresignedUrlsRequestBucketKeyPrefix" - parts: - description: Array of part descriptors for the multipart upload. - items: - $ref: "#/components/schemas/SyntheticsTestFileMultipartPresignedUrlsPart" - type: array + auth_type: + $ref: "#/components/schemas/SnowflakeIntegrationAccountPrivateKeyAuthType" + private_key_name: + description: Name that distinguishes this private key from other keys in Datadog. + example: my-rsa-key + type: string required: - - bucketKeyPrefix - - parts + - auth_type + - private_key_name type: object - SyntheticsTestFileMultipartPresignedUrlsRequestBucketKeyPrefix: - description: The bucket key prefix indicating the type of file upload. + SnowflakeIntegrationAccountPrivateKeyAuthType: + default: snowflake_private_key + description: The authentication method type. enum: - - api-upload-file - - browser-upload-file-step - example: "api-upload-file" + - snowflake_private_key + example: snowflake_private_key type: string x-enum-varnames: - - API_UPLOAD_FILE - - BROWSER_UPLOAD_FILE_STEP - SyntheticsTestFileMultipartPresignedUrlsResponse: - description: Response containing presigned URLs for multipart file upload and the bucket key. + - SNOWFLAKE_PRIVATE_KEY + SnowflakeIntegrationAccountPrivateKeyAuthUpdate: + additionalProperties: false + description: >- + RSA key pair authentication, the only method Snowflake integration accounts support. Only the fields provided are changed; omit `private_key` to keep the stored one. properties: - bucketKey: - description: The bucket key that references the uploaded file after completion. - example: "api-upload-file/abc-def-123/2024-01-01T00:00:00_uuid.json" + auth_type: + $ref: "#/components/schemas/SnowflakeIntegrationAccountPrivateKeyAuthType" + private_key: + description: The private key, in PEM format. + example: "-----BEGIN PRIVATE KEY-----\nMIIE...\n-----END PRIVATE KEY-----" type: string - multipart_presigned_urls_params: - $ref: "#/components/schemas/SyntheticsTestFileMultipartPresignedUrlsParams" + writeOnly: true + private_key_name: + description: Name that distinguishes this private key from other keys in Datadog. + example: my-rsa-key + type: string + private_key_passphrase: + description: >- + Passphrase that decrypts the private key. Provide it only when the key is encrypted. Omit it to keep the stored passphrase, send `null` or an empty string to remove it, or send a value to replace it. + example: your-private-key-passphrase + nullable: true + type: string + writeOnly: true + required: + - auth_type type: object - SyntheticsTestLatestResultsResponse: - description: Response object for a Synthetic test's latest result summaries. + SnowflakeIntegrationAccountResponse: + description: Response payload for a single Snowflake integration account. properties: data: - description: Array of Synthetic test result summaries. - items: - $ref: "#/components/schemas/SyntheticsTestResultSummaryData" - type: array - included: - description: Array of included related resources, such as the test definition. - items: - $ref: "#/components/schemas/SyntheticsTestResultIncludedItem" - type: array + $ref: "#/components/schemas/SnowflakeIntegrationAccountResponseData" + required: + - data type: object - SyntheticsTestOptions: - description: Object describing the extra options for a Synthetic test. + SnowflakeIntegrationAccountResponseAttributes: + description: Attributes of a Snowflake integration account returned in responses. properties: - min_failure_duration: - description: Minimum amount of time in failure required to trigger an alert. - format: int64 - type: integer - min_location_failed: - description: |- - Minimum number of locations in failure required to trigger - an alert. - format: int64 - type: integer - monitor_name: - description: The monitor name is used for the alert title as well as for all monitor dashboard widgets and SLOs. + authentication: + $ref: "#/components/schemas/SnowflakeIntegrationAccountAuthenticationResponse" + dataflows: + $ref: "#/components/schemas/SnowflakeIntegrationDataflowsResponse" + name: + description: Human-readable name of the Snowflake integration account. + example: prod-snowflake type: string - monitor_options: - $ref: "#/components/schemas/SyntheticsTestOptionsMonitorOptions" - monitor_priority: - description: Integer from 1 (high) to 5 (low) indicating alert severity. - format: int32 - maximum: 5 - minimum: 1 - type: integer - restricted_roles: - $ref: "#/components/schemas/SyntheticsRestrictedRoles" - retry: - $ref: "#/components/schemas/SyntheticsTestOptionsRetry" - scheduling: - $ref: "#/components/schemas/SyntheticsTestOptionsScheduling" - tick_every: - description: The frequency at which to run the Synthetic test (in seconds). - format: int64 - maximum: 604800 - minimum: 30 - type: integer + settings: + $ref: "#/components/schemas/SnowflakeIntegrationAccountSettingsResponse" + required: + - name + - settings type: object - SyntheticsTestOptionsMonitorOptions: - description: |- - Object containing the options for a Synthetic test as a monitor - (for example, renotification). + SnowflakeIntegrationAccountResponseData: + description: Data envelope of a Snowflake integration account, including server-assigned identity. properties: - escalation_message: - description: Message to include in the escalation notification. + attributes: + $ref: "#/components/schemas/SnowflakeIntegrationAccountResponseAttributes" + id: + description: Server-generated unique identifier of the Snowflake integration account. + example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 + readOnly: true type: string - notification_preset_name: - $ref: "#/components/schemas/SyntheticsTestOptionsMonitorOptionsNotificationPresetName" - renotify_interval: - description: |- - Time interval before renotifying if the test is still failing - (in minutes). - format: int64 - minimum: 0 - type: integer - renotify_occurrences: - description: The number of times to renotify if the test is still failing. - format: int64 - type: integer - type: object - SyntheticsTestOptionsMonitorOptionsNotificationPresetName: - description: The name of the preset for the notification for the monitor. - enum: - - show_all - - hide_all - - hide_query - - hide_handles - - hide_query_and_handles - - show_only_snapshot - - hide_handles_and_footer - type: string - x-enum-varnames: - - SHOW_ALL - - HIDE_ALL - - HIDE_QUERY - - HIDE_HANDLES - - HIDE_QUERY_AND_HANDLES - - SHOW_ONLY_SNAPSHOT - - HIDE_HANDLES_AND_FOOTER - SyntheticsTestOptionsRetry: - description: Object describing the retry strategy to apply to a Synthetic test. - properties: - count: - description: |- - Number of times a test needs to be retried before marking a - location as failed. Defaults to 0. - format: int64 - type: integer - interval: - description: |- - Time interval between retries (in milliseconds). Defaults to - 300ms. - format: double - type: number + type: + $ref: "#/components/schemas/IntegrationAccountType" + required: + - id + - attributes + - type type: object - SyntheticsTestOptionsScheduling: - description: Object containing timeframes and timezone used for advanced scheduling. + SnowflakeIntegrationAccountSettingsRequest: + additionalProperties: false + description: Settings for creating the Snowflake integration account. properties: - timeframes: - description: Array containing objects describing the scheduling pattern to apply to each day. - example: [{"day": 1, "from": "07:00", "to": "16:00"}, {"day": 3, "from": "07:00", "to": "16:00"}] - items: - $ref: "#/components/schemas/SyntheticsTestOptionsSchedulingTimeframe" - type: array - timezone: - description: Timezone in which the timeframe is based. - example: "America/New_York" + snowflake_account_identifier: + description: >- + Identifier of the Snowflake account to monitor, either as `organization-account` or as the legacy `account_name.region_id.cloud_provider` account locator. An account identifier can be configured once per Datadog organization; reusing one is rejected with a `422` response. Accounts reached through AWS PrivateLink are not supported. + example: myorg-myaccount + type: string + username: + description: >- + Snowflake user Datadog authenticates as. Create a dedicated user for Datadog and grant it a role with access to the data you want to collect. + example: datadog_user type: string required: - - timeframes - - timezone + - snowflake_account_identifier + - username type: object - SyntheticsTestOptionsSchedulingTimeframe: - description: Object describing a timeframe. + SnowflakeIntegrationAccountSettingsResponse: + description: Settings configured on the Snowflake integration account. properties: - day: - description: Number representing the day of the week. - example: 1 - format: int32 - maximum: 7 - minimum: 1 - type: integer - from: - description: The hour of the day on which scheduling starts. - example: "07:00" + snowflake_account_identifier: + description: Identifier of the Snowflake account being monitored. + example: myorg-myaccount type: string - to: - description: The hour of the day on which scheduling ends. - example: "16:00" + username: + description: Snowflake user Datadog authenticates as. + example: datadog_user type: string required: - - day - - from - - to + - snowflake_account_identifier + - username type: object - SyntheticsTestParentSuiteAttributes: - description: Object containing details about a parent suite of a Synthetic test. + SnowflakeIntegrationAccountSettingsUpdate: + additionalProperties: false + description: Settings for updating the Snowflake integration account. Only the fields provided are changed. properties: - child_name: - description: The name of the child test within the suite. - example: My API Test - type: string - child_public_id: - description: The public ID of the child test within the suite. - example: xyz-uvw-789 - type: string - monitor_id: - description: The associated monitor ID. - example: 12345678 - format: int64 - type: integer - name: - description: Name of the parent suite. - example: My Suite - type: string - overall_state: - description: The overall state of the parent suite. - example: 0 - format: int64 - type: integer - overall_state_modified: - description: Timestamp of when the overall state was last modified. - example: "2024-01-01T00:00:00+00:00" + snowflake_account_identifier: + description: >- + Identifier of the Snowflake account to monitor, either as `organization-account` or as the legacy `account_name.region_id.cloud_provider` account locator. An account identifier can be configured once per Datadog organization; reusing one is rejected with a `422` response. Accounts reached through AWS PrivateLink are not supported. + example: myorg-myaccount type: string - public_id: - description: The public ID of the parent suite. - example: abc-def-123 + username: + description: >- + Snowflake user Datadog authenticates as. Create a dedicated user for Datadog and grant it a role with access to the data you want to collect. + example: datadog_user type: string type: object - SyntheticsTestParentSuiteData: - description: Data object for a parent suite. + SnowflakeIntegrationAccountUpdateAttributes: + description: >- + Writable attributes used to update a Snowflake integration account. Every field is optional; only the fields provided are changed. When `dataflows` is provided, only the dataflow ids included in the request are modified; dataflows omitted from the map keep their current configuration, as do the settings of an included dataflow that provides only `enabled`. properties: - attributes: - $ref: "#/components/schemas/SyntheticsTestParentSuiteAttributes" + authentication: + $ref: "#/components/schemas/SnowflakeIntegrationAccountAuthenticationUpdate" + dataflows: + $ref: "#/components/schemas/SnowflakeIntegrationDataflowsRequest" + name: + description: |- + Human-readable name of the Snowflake integration account. Must be + unique within your Datadog organization. + example: prod-snowflake + type: string + settings: + $ref: "#/components/schemas/SnowflakeIntegrationAccountSettingsUpdate" + type: object + SnowflakeIntegrationAccountUpdateData: + description: Data envelope for updating a Snowflake integration account. + properties: + attributes: + $ref: "#/components/schemas/SnowflakeIntegrationAccountUpdateAttributes" id: - description: The public ID of the parent suite. - example: abc-def-123 + description: Unique identifier of the Snowflake integration account to update. + example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 type: string type: - $ref: "#/components/schemas/SyntheticsTestParentSuiteType" + $ref: "#/components/schemas/IntegrationAccountType" + required: + - id + - type + - attributes type: object - SyntheticsTestParentSuiteType: - default: parent_suite - description: Type of the parent suite resource. - enum: - - parent_suite - example: parent_suite - type: string - x-enum-varnames: - - PARENT_SUITE - SyntheticsTestParentSuitesResponse: - description: Response containing the list of parent suites for a Synthetic test. + SnowflakeIntegrationAccountUpdateRequest: + description: Request payload to update a Snowflake integration account. properties: data: - description: List of parent suites for the given test. + $ref: "#/components/schemas/SnowflakeIntegrationAccountUpdateData" + required: + - data + type: object + SnowflakeIntegrationAccountsResponse: + description: Response payload for a list of Snowflake integration accounts. + properties: + data: + description: List of Snowflake integration accounts. items: - $ref: "#/components/schemas/SyntheticsTestParentSuiteData" + $ref: "#/components/schemas/SnowflakeIntegrationAccountResponseData" type: array + required: + - data type: object - SyntheticsTestPauseStatus: - description: |- - Define whether you want to start (`live`) or pause (`paused`) a - Synthetic test. - enum: - - live - - paused - example: live - type: string - x-enum-varnames: - - LIVE - - PAUSED - SyntheticsTestResultAssertionResult: - description: An individual assertion result from a Synthetic test. + SnowflakeIntegrationDataflowsRequest: + additionalProperties: false + description: >- + Data Datadog collects from Snowflake, keyed by dataflow id. Each dataflow turns on a distinct kind of collection: set `enabled` to start or stop it, and use `settings` to configure what it collects. Defaults listed on each dataflow apply when the account is created; on update, omitted fields keep their current values. Every dataflow reads from Snowflake as the user in `settings.username`, so that user's role must be granted access to the underlying views; a dataflow enabled without those grants is stored but collects no data. properties: - actual: - description: Actual value observed during the test. Its type depends on the assertion type. - example: 200 - error_message: - description: Error message if the assertion failed. - example: "Assertion failed: expected 200 but got 500" - type: string - expected: - description: Expected value for the assertion. Its type depends on the assertion type. - example: "200" - operator: - description: Operator used for the assertion (for example, `is`, `contains`). - example: is - type: string - property: - description: Property targeted by the assertion, when applicable. - example: content-type - type: string - target: - description: Target value for the assertion. Its type depends on the assertion type. - example: 200 - target_path: - description: JSON path or XPath evaluated for the assertion. - example: $.url - type: string - target_path_operator: - description: Operator used for the target path assertion. - example: contains - type: string - type: - description: Type of the assertion (for example, `responseTime`, `statusCode`, `body`). - example: statusCode - type: string - valid: - description: Whether the assertion passed. + snowflake-account-usage-metrics: + $ref: "#/components/schemas/SnowflakeAccountUsageMetricsIntegrationDataflowRequest" + snowflake-cloud-cost-metrics: + $ref: "#/components/schemas/SnowflakeCloudCostMetricsIntegrationDataflowRequest" + snowflake-data-observability-quality-monitoring: + $ref: "#/components/schemas/SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowRequest" + snowflake-event-table-logs: + $ref: "#/components/schemas/SnowflakeEventTableLogsIntegrationDataflowRequest" + snowflake-organization-usage-metrics: + $ref: "#/components/schemas/SnowflakeOrganizationUsageMetricsIntegrationDataflowRequest" + snowflake-query-history-logs: + $ref: "#/components/schemas/SnowflakeQueryHistoryLogsIntegrationDataflowRequest" + snowflake-security-logs: + $ref: "#/components/schemas/SnowflakeSecurityLogsIntegrationDataflowRequest" + snowflake-task-history-logs: + $ref: "#/components/schemas/SnowflakeTaskHistoryLogsIntegrationDataflowRequest" + type: object + SnowflakeIntegrationDataflowsResponse: + description: Data Datadog collects from Snowflake, keyed by dataflow id. + properties: + snowflake-account-usage-metrics: + $ref: "#/components/schemas/SnowflakeAccountUsageMetricsIntegrationDataflowResponse" + snowflake-cloud-cost-metrics: + $ref: "#/components/schemas/SnowflakeCloudCostMetricsIntegrationDataflowResponse" + snowflake-data-observability-quality-monitoring: + $ref: "#/components/schemas/SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowResponse" + snowflake-event-table-logs: + $ref: "#/components/schemas/SnowflakeEventTableLogsIntegrationDataflowResponse" + snowflake-organization-usage-metrics: + $ref: "#/components/schemas/SnowflakeOrganizationUsageMetricsIntegrationDataflowResponse" + snowflake-query-history-logs: + $ref: "#/components/schemas/SnowflakeQueryHistoryLogsIntegrationDataflowResponse" + snowflake-security-logs: + $ref: "#/components/schemas/SnowflakeSecurityLogsIntegrationDataflowResponse" + snowflake-task-history-logs: + $ref: "#/components/schemas/SnowflakeTaskHistoryLogsIntegrationDataflowResponse" + type: object + SnowflakeOrganizationUsageMetricsIntegrationDataflowRequest: + additionalProperties: false + description: >- + Organization-level usage metrics read from the Snowflake `ORGANIZATION_USAGE` schema, covering the credit consumption of every account in the organization and the history of data transferred out of Snowflake. Reading that schema requires the ORGADMIN role; without it this dataflow collects no data. + properties: + enabled: + description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. example: true type: boolean + settings: + $ref: "#/components/schemas/SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsRequest" type: object - SyntheticsTestResultAttributes: - description: Attributes of a Synthetic test result. + SnowflakeOrganizationUsageMetricsIntegrationDataflowResponse: + description: >- + Organization-level usage metrics read from the Snowflake `ORGANIZATION_USAGE` schema, covering the credit consumption of every account in the organization and the history of data transferred out of Snowflake. Reading that schema requires the ORGADMIN role; without it this dataflow collects no data. properties: - batch: - $ref: "#/components/schemas/SyntheticsTestResultBatch" - ci: - $ref: "#/components/schemas/SyntheticsTestResultCI" - device: - $ref: "#/components/schemas/SyntheticsTestResultDevice" - git: - $ref: "#/components/schemas/SyntheticsTestResultGit" - location: - $ref: "#/components/schemas/SyntheticsTestResultLocation" - result: - $ref: "#/components/schemas/SyntheticsTestResultDetail" - test_sub_type: - $ref: "#/components/schemas/SyntheticsTestSubType" - test_type: - $ref: "#/components/schemas/SyntheticsTestType" + enabled: + description: Whether Datadog collects this data. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsResponse" type: object - SyntheticsTestResultBatch: - description: Batch information for the test result. + SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsRequest: + additionalProperties: false + description: Settings of the organization usage metrics dataflow. Only the fields provided are changed. properties: - id: - description: Batch identifier. - example: batch-abc-123 - type: string + organization_usage_metrics_aggregate_last_24h: + description: >- + The period each metric aggregates over. Set to `true` to aggregate the past 24 hours on a rolling basis, or `false` to aggregate the current day so far. Defaults to `false`. + example: false + type: boolean type: object - SyntheticsTestResultBounds: - description: Bounding box of an element on the page. + SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsResponse: + description: Settings of the organization usage metrics dataflow. properties: - height: - description: Height in pixels. - example: 37 - format: int64 - type: integer - width: - description: Width in pixels. - example: 343 - format: int64 - type: integer - x: - description: Horizontal position in pixels. - example: 16 - format: int64 - type: integer - y: - description: Vertical position in pixels. - example: 140 + organization_usage_metrics_aggregate_last_24h: + description: >- + The period each metric aggregates over. When `true`, metrics aggregate the past 24 hours on a rolling basis; when `false`, they aggregate the current day so far. + example: false + type: boolean + type: object + SnowflakeQueryHistoryLogsIntegrationDataflowRequest: + additionalProperties: false + description: >- + Per-query logs that let you identify long-running, poorly performing, and expensive queries. + properties: + enabled: + description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeQueryHistoryLogsIntegrationDataflowSettingsRequest" + type: object + SnowflakeQueryHistoryLogsIntegrationDataflowResponse: + description: >- + Per-query logs that let you identify long-running, poorly performing, and expensive queries. + properties: + enabled: + description: Whether Datadog collects this data. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeQueryHistoryLogsIntegrationDataflowSettingsResponse" + type: object + SnowflakeQueryHistoryLogsIntegrationDataflowSettingsRequest: + additionalProperties: false + description: Settings of the query history logs dataflow. Only the fields provided are changed. + properties: + join_query_history_with_access_history_enabled: + description: >- + Whether query logs are joined with Snowflake access history, which adds the objects each query read and wrote so you can follow how data is used and where it came from. Defaults to `false`. + example: true + type: boolean + query_history_logs_interval_min: + description: >- + How often query history logs are collected, in minutes. One of `5`, `15`, `30`, `60`, `720`, or `1440`. Defaults to `5`. + example: 15 format: int64 type: integer type: object - SyntheticsTestResultBrowserError: - description: A browser error captured during a browser test step. + SnowflakeQueryHistoryLogsIntegrationDataflowSettingsResponse: + description: Settings of the query history logs dataflow. properties: - description: - description: Error description. - example: Failed to fetch resource - type: string - method: - description: HTTP method associated with the error (for network errors). - example: GET - type: string - name: - description: Error name. - example: NetworkError - type: string - status: - description: HTTP status code associated with the error (for network errors). - example: 500 + join_query_history_with_access_history_enabled: + description: >- + Whether query logs are joined with Snowflake access history, which adds the objects each query read and wrote so you can follow how data is used and where it came from. + example: true + type: boolean + query_history_logs_interval_min: + description: How often query history logs are collected, in minutes. + example: 15 format: int64 type: integer - type: - description: Type of the browser error. - example: network - type: string - url: - additionalProperties: {} - description: URL associated with the error. - type: object type: object - SyntheticsTestResultBucketKeys: - description: Storage bucket keys for artifacts produced during a step or test. + SnowflakeSecurityLogsIntegrationDataflowRequest: + additionalProperties: false + description: >- + Security logs from the Snowflake `ACCOUNT_USAGE` schema, for analyzing the security of your Snowflake account and running threat detection with [Cloud SIEM](https://docs.datadoghq.com/security/cloud_siem/). properties: - after_step_screenshot: - description: Key for the screenshot captured after the step (goal-based tests). - example: screenshots/after-step-1-1.png - type: string - after_turn_screenshot: - description: Key for the screenshot captured after the turn (goal-based tests). - example: screenshots/after-turn-1.png - type: string - artifacts: - description: Key for miscellaneous artifacts. - example: 2/e2e-tests/equ-jku-twc/results/6989498452827932222/edge.laptop_large/artifacts__1724521416257.json - type: string - before_step_screenshot: - description: Key for the screenshot captured before the step (goal-based tests). - example: screenshots/before-step-1-1.png - type: string - before_turn_screenshot: - description: Key for the screenshot captured before the turn (goal-based tests). - example: screenshots/before-turn-1.png - type: string - crash_report: - description: Key for a captured crash report. - example: 2/e2e-tests/d2z-32s-iax/results/1340718101990858549/synthetics:mobile:device:iphone_se_2020_ios_14/crash_report.log - type: string - device_logs: - description: Key for captured device logs. - example: 2/e2e-tests/d2z-32s-iax/results/1340718101990858549/synthetics:mobile:device:iphone_se_2020_ios_14/d2z-32s-iax_1340718101990858549_device_logs.log - type: string - email_messages: - description: Keys for email message payloads captured by the step. - items: - description: Storage bucket key for a captured email message. - type: string - type: array - screenshot: - description: Key for the captured screenshot. - example: 2/e2e-tests/equ-jku-twc/results/6989498452827932222/edge.laptop_large/step-0__1724521416269.jpeg - type: string - snapshot: - description: Key for the captured DOM snapshot. - example: 2/e2e-tests/equ-jku-twc/results/6989498452827932222/edge.laptop_large/snapshot.html - type: string - source: - description: Key for the page source or element source. - example: 2/e2e-tests/d2z-32s-iax/results/1340718101990858549/synthetics:mobile:device:iphone_se_2020_ios_14/step-0__1724445301832.xml - type: string + enabled: + description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeSecurityLogsIntegrationDataflowSettingsRequest" type: object - SyntheticsTestResultCI: - description: CI information associated with the test result. + SnowflakeSecurityLogsIntegrationDataflowResponse: + description: >- + Security logs from the Snowflake `ACCOUNT_USAGE` schema, for analyzing the security of your Snowflake account and running threat detection with [Cloud SIEM](https://docs.datadoghq.com/security/cloud_siem/). properties: - pipeline: - $ref: "#/components/schemas/SyntheticsTestResultCIPipeline" - provider: - $ref: "#/components/schemas/SyntheticsTestResultCIProvider" - stage: - $ref: "#/components/schemas/SyntheticsTestResultCIStage" - workspace_path: - description: Path of the workspace that ran the CI job. - example: /home/runner/work/example - type: string + enabled: + description: Whether Datadog collects this data. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeSecurityLogsIntegrationDataflowSettingsResponse" type: object - SyntheticsTestResultCIPipeline: - description: Details of the CI pipeline. + SnowflakeSecurityLogsIntegrationDataflowSettingsRequest: + additionalProperties: false + description: Settings of the security logs dataflow. Only the fields provided are changed. properties: - id: - description: Pipeline identifier. - example: pipeline-abc-123 - type: string - name: - description: Pipeline name. - example: build-and-test - type: string - number: - description: Pipeline number. - example: 42 + security_logs_interval_min: + description: >- + How often security logs are collected, in minutes. One of `5`, `15`, `30`, `60`, `360`, `720`, or `1440`. Defaults to `5`. + example: 60 format: int64 type: integer - url: - description: Pipeline URL. - example: https://github.com/DataDog/example/actions/runs/42 - type: string type: object - SyntheticsTestResultCIProvider: - description: Details of the CI provider. + SnowflakeSecurityLogsIntegrationDataflowSettingsResponse: + description: Settings of the security logs dataflow. properties: - name: - description: Provider name. - example: github - type: string + security_logs_interval_min: + description: How often security logs are collected, in minutes. + example: 60 + format: int64 + type: integer type: object - SyntheticsTestResultCIStage: - description: Details of the CI stage. + SnowflakeTaskHistoryLogsIntegrationDataflowRequest: + additionalProperties: false + description: >- + Execution logs for your scheduled Snowflake tasks, covering start time, end time, status, and any error message. properties: - name: - description: Stage name. - example: test - type: string + enabled: + description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeTaskHistoryLogsIntegrationDataflowSettingsRequest" type: object - SyntheticsTestResultCdnCacheStatus: - description: Cache status reported by the CDN for the response. + SnowflakeTaskHistoryLogsIntegrationDataflowResponse: + description: >- + Execution logs for your scheduled Snowflake tasks, covering start time, end time, status, and any error message. properties: - cached: - description: Whether the response was served from the CDN cache. + enabled: + description: Whether Datadog collects this data. example: true type: boolean - status: - description: Raw cache status string reported by the CDN. - example: HIT - type: string + settings: + $ref: "#/components/schemas/SnowflakeTaskHistoryLogsIntegrationDataflowSettingsResponse" type: object - SyntheticsTestResultCdnProviderInfo: - description: CDN provider details inferred from response headers. + SnowflakeTaskHistoryLogsIntegrationDataflowSettingsRequest: + additionalProperties: false + description: Settings of the task history logs dataflow. Only the fields provided are changed. properties: - cache: - $ref: "#/components/schemas/SyntheticsTestResultCdnCacheStatus" - provider: - description: Name of the CDN provider. - example: google_cloud - type: string + task_history_logs_interval_min: + description: >- + How often task history logs are collected, in minutes. One of `5`, `15`, `30`, `60`, or `1440`. Defaults to `5`. + example: 30 + format: int64 + type: integer type: object - SyntheticsTestResultCdnResource: - description: A CDN resource encountered while executing a browser step. + SnowflakeTaskHistoryLogsIntegrationDataflowSettingsResponse: + description: Settings of the task history logs dataflow. properties: - cdn: - $ref: "#/components/schemas/SyntheticsTestResultCdnProviderInfo" - resolved_ip: - description: Resolved IP address for the CDN resource. - example: 34.95.79.70 - type: string - timestamp: - description: Unix timestamp (ms) of when the resource was fetched. - example: 1724521406576 + task_history_logs_interval_min: + description: How often task history logs are collected, in minutes. + example: 30 format: int64 type: integer - timings: - additionalProperties: {} - description: Timing breakdown for fetching the CDN resource. - example: - firstByte: 99.7 - tcp: 0.9 + type: object + SoftwareCatalogTriggerWrapper: + description: "Schema for a Software Catalog-based trigger." + properties: + softwareCatalogTrigger: + description: "Trigger a workflow from Software Catalog." type: object + startStepNames: + $ref: "#/components/schemas/StartStepNames" + required: + - softwareCatalogTrigger type: object - SyntheticsTestResultCertificate: - description: SSL/TLS certificate information returned from an SSL test. + SortDirection: + default: desc + description: The direction to sort by. + enum: + - desc + - asc + type: string + x-enum-varnames: + - DESC + - ASC + SourcemapDataType: + description: The resource type for source map objects. + enum: + - sourcemaps + example: sourcemaps + type: string + x-enum-varnames: + - SOURCEMAPS + SourcemapFileAttributes: + description: Attributes of a JavaScript source map file. properties: - cipher: - description: Cipher used for the TLS connection. - example: TLS_AES_256_GCM_SHA384 + file: + description: The name of the minified JavaScript file. + example: bundle.js type: string - exponent: - description: RSA exponent of the certificate. - example: 65537 - format: int64 - type: integer - ext_key_usage: - description: Extended key usage extensions for the certificate. + mappings: + description: |- + The Base64 VLQ encoded string that maps positions in the minified + file to positions in the original source files. + example: AAAA,OAAO,CAAC,GAAG + type: string + minifiedLineLengths: + description: List of character counts for each line in the minified file. example: - - 1.3.6.1.5.5.7.3.1 + - 50 + - 30 items: - description: Extended key usage value. - type: string + format: int64 + type: integer type: array - fingerprint: - description: SHA-1 fingerprint of the certificate. - example: D6:03:5A:9F:93:E1:B7:28:EC:90:C5:9F:72:30:55:7C:74:5F:53:92 - type: string - fingerprint256: - description: SHA-256 fingerprint of the certificate. - example: 04:45:93:A9:4C:14:70:47:DB:3C:FC:05:F9:5A:50:4E:DA:DB:A1:C6:37:3D:15:C0:B2:7E:5D:93:5F:A2:02:C7 - type: string - issuer: - additionalProperties: - type: string - description: Certificate issuer details. + names: + description: List of symbol names referenced in the mappings. example: - C: US - CN: WE2 - O: Google Trust Services - type: object - modulus: - description: RSA modulus of the certificate. - example: C0FCE9F9... - type: string - protocol: - description: TLS protocol used (for example, `TLSv1.2`). - example: TLSv1.3 - type: string - serial_number: - description: Serial number of the certificate. - example: 7B584A1A6670A1EB0941A9A121569D60 + - console + - log + items: {} + type: array + sourceRoot: + description: The root path prepended to source file paths. + example: / type: string - subject: - additionalProperties: + sources: + description: List of original source file paths. + example: + - src/index.js + - src/utils.js + items: type: string - description: Certificate subject details. + type: array + sourcesContent: + description: List of original source file contents corresponding to the paths in `sources`. example: - CN: "*.google.fr" - altName: "DNS:*.google.fr, DNS:google.fr" - type: object - tls_version: - description: TLS protocol version. - example: 1.3 - format: double - type: number - valid: - $ref: "#/components/schemas/SyntheticsTestResultCertificateValidity" - type: object - SyntheticsTestResultCertificateValidity: - description: Validity window of a certificate. - properties: - from: - description: Unix timestamp (ms) of when the certificate became valid. - example: 1742469686000 - format: int64 - type: integer - to: - description: Unix timestamp (ms) of when the certificate expires. - example: 1749727285000 + - "console.log('index');" + - "export function util() {}" + items: + type: string + type: array + version: + description: The version of the source map format (typically 3). + example: 3 format: int64 type: integer + required: + - file + - version + - sourceRoot + - sources + - sourcesContent + - names + - mappings + - minifiedLineLengths type: object - SyntheticsTestResultData: - description: Wrapper object for a Synthetic test result. + SourcemapFileData: + description: JavaScript source map file data object. properties: attributes: - $ref: "#/components/schemas/SyntheticsTestResultAttributes" + $ref: "#/components/schemas/SourcemapFileAttributes" id: - description: The result ID. - example: "5158904793181869365" + description: The unique identifier of the source map file, typically the path to the file. + example: path/to/sourcemap.js.map type: string - relationships: - $ref: "#/components/schemas/SyntheticsTestResultRelationships" type: - $ref: "#/components/schemas/SyntheticsTestResultType" + $ref: "#/components/schemas/SourcemapFileDataType" + required: + - id + - type + - attributes type: object - SyntheticsTestResultDetail: - description: Full result details for a Synthetic test execution. + SourcemapFileDataType: + description: The resource type for source map file objects. + enum: + - sourcemap_files + example: sourcemap_files + type: string + x-enum-varnames: + - SOURCEMAP_FILES + SourcemapFileResponse: + description: Response containing a JavaScript source map file. properties: - assertions: - description: Assertion results produced by the test. - items: - $ref: "#/components/schemas/SyntheticsTestResultAssertionResult" - type: array - bucket_keys: - $ref: "#/components/schemas/SyntheticsTestResultBucketKeys" - call_type: - description: gRPC call type (for example, `unary`, `healthCheck`, or `reflection`). - example: unary - type: string - cert: - $ref: "#/components/schemas/SyntheticsTestResultCertificate" - compressed_json_descriptor: - description: Compressed JSON descriptor for the test (internal format). - example: compressedJsonDescriptorValue - type: string - compressed_steps: - description: Compressed representation of the test steps (internal format). - example: eJzLSM3JyQcABiwCFQ== - type: string - connection_outcome: - description: Outcome of the connection attempt (for example, `established`, `refused`). - example: established - type: string - dns_resolution: - $ref: "#/components/schemas/SyntheticsTestResultDnsResolution" - duration: - description: Duration of the test execution (in milliseconds). - example: 380.7 - format: double - type: number - exited_on_step_success: - description: Whether the test exited early because a step marked with `exitIfSucceed` passed. + data: + $ref: "#/components/schemas/SourcemapFileData" + required: + - data + type: object + SourcemapItem: + description: A source map data object representing one of the supported map kinds. + oneOf: + - $ref: "#/components/schemas/JSSourcemapData" + - $ref: "#/components/schemas/ReactNativeSourcemapData" + - $ref: "#/components/schemas/IOSSourcemapData" + - $ref: "#/components/schemas/JVMSourcemapData" + - $ref: "#/components/schemas/FlutterSourcemapData" + - $ref: "#/components/schemas/ELFSourcemapData" + - $ref: "#/components/schemas/NDKSourcemapData" + - $ref: "#/components/schemas/IL2CPPSourcemapData" + SourcemapMapKind: + description: The type of source map. + enum: + - js + - jvm + - ios + - react + - flutter + - elf + - ndk + - il2cpp + example: js + type: string + x-enum-varnames: + - JS + - JVM + - IOS + - REACT + - FLUTTER + - ELF + - NDK + - IL2CPP + SourcemapsData: + description: List of source map data objects. + items: + $ref: "#/components/schemas/SourcemapItem" + type: array + SourcemapsListMeta: + description: Pagination metadata for the source maps list response. + properties: + page: + $ref: "#/components/schemas/SourcemapsListMetaPage" + required: + - page + type: object + SourcemapsListMetaPage: + description: Page information for the source maps list response. + properties: + has_more_results: + description: Whether there are more results available beyond the current page. example: false type: boolean - failure: - $ref: "#/components/schemas/SyntheticsTestResultFailure" - finished_at: - description: Timestamp of when the test finished (in milliseconds). - example: 1723782422760 - format: int64 - type: integer - handshake: - $ref: "#/components/schemas/SyntheticsTestResultHandshake" - id: - description: The unique identifier for this result. - example: "5158904793181869365" - type: string - initial_id: - description: The initial result ID before any retries. - example: "5158904793181869365" - type: string - is_fast_retry: - description: Whether this result is from a fast retry. - example: true - type: boolean - is_last_retry: - description: Whether this result is from the last retry. - example: true - type: boolean - netpath: - $ref: "#/components/schemas/SyntheticsTestResultNetpath" - netstats: - $ref: "#/components/schemas/SyntheticsTestResultNetstats" - ocsp: - $ref: "#/components/schemas/SyntheticsTestResultOCSPResponse" - ping: - $ref: "#/components/schemas/SyntheticsTestResultTracerouteHop" - received_email_count: - description: Number of emails received during the test (email tests). - example: 1 - format: int64 - type: integer - received_message: - description: Message received from the target (for WebSocket/TCP/UDP tests). - example: "UDP echo: b'Test message'" - type: string - request: - $ref: "#/components/schemas/SyntheticsTestResultRequestInfo" - resolved_ip: - description: IP address resolved for the target host. - example: "54.243.255.141" - type: string - response: - $ref: "#/components/schemas/SyntheticsTestResultResponseInfo" - run_type: - $ref: "#/components/schemas/SyntheticsTestResultRunType" - sent_message: - description: Message sent to the target (for WebSocket/TCP/UDP tests). - example: udp mess - type: string - start_url: - description: Start URL for the test (browser tests). - example: http://34.95.79.70/prototype - type: string - started_at: - description: Timestamp of when the test started (in milliseconds). - example: 1723782422750 - format: int64 - type: integer - status: - $ref: "#/components/schemas/SyntheticsTestResultStatus" - steps: - description: Step results (for browser, mobile, and multistep API tests). - items: - $ref: "#/components/schemas/SyntheticsTestResultStep" - type: array - time_to_interactive: - description: Time to interactive in milliseconds (browser tests). - example: 183 - format: int64 - type: integer - timings: - additionalProperties: {} - description: Timing breakdown of the test request phases (for example, DNS, TCP, TLS, first byte). - example: - dns: 2.9 - download: 2.1 - firstByte: 95.2 - ssl: 187.9 - tcp: 92.6 - total: 380.7 - type: object - trace: - $ref: "#/components/schemas/SyntheticsTestResultTrace" - traceroute: - description: Traceroute hop results (for network tests). - items: - $ref: "#/components/schemas/SyntheticsTestResultTracerouteHop" - type: array - triggered_at: - description: Timestamp of when the test was triggered (in milliseconds). - example: 1723782422715 + total_filtered_count: + description: Total number of source maps matching the filter criteria. + example: 100 format: int64 type: integer - tunnel: - description: Whether the test was executed through a tunnel. - example: false - type: boolean - turns: - description: Turns executed by a goal-based browser test. - items: - $ref: "#/components/schemas/SyntheticsTestResultTurn" - type: array - unhealthy: - description: Whether the test runner was unhealthy at the time of execution. - example: false - type: boolean - variables: - $ref: "#/components/schemas/SyntheticsTestResultVariables" + required: + - total_filtered_count + - has_more_results type: object - SyntheticsTestResultDevice: - description: Device information for the test result (browser and mobile tests). + SourcemapsResponse: + description: Response containing a list of affected source maps. properties: - browser: - $ref: "#/components/schemas/SyntheticsTestResultDeviceBrowser" + data: + $ref: "#/components/schemas/SourcemapsData" + required: + - data + type: object + Span: + description: Object description of a spans after being processed and stored by Datadog. + properties: + attributes: + $ref: "#/components/schemas/SpansAttributes" id: - description: Device identifier. - example: chrome.laptop_large - type: string - name: - description: Device name. - example: "Chrome - Laptop Large" + description: Unique ID of the Span. + example: "AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA" type: string - platform: - $ref: "#/components/schemas/SyntheticsTestResultDevicePlatform" - resolution: - $ref: "#/components/schemas/SyntheticsTestResultDeviceResolution" type: - description: Device type. - example: browser - type: string + $ref: "#/components/schemas/SpansType" type: object - SyntheticsTestResultDeviceBrowser: - description: Browser information for the device used to run the test. + SpansAggregateBucket: + description: Spans aggregate. properties: - type: - description: Browser type (for example, `chrome`, `firefox`). - example: edge - type: string - user_agent: - description: User agent string reported by the browser. - example: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/127.0.2651.105 DatadogSynthetics - type: string - version: - description: Browser version. - example: 127.0.2651.105 + attributes: + $ref: "#/components/schemas/SpansAggregateBucketAttributes" + id: + description: ID of the spans aggregate. type: string + type: + $ref: "#/components/schemas/SpansAggregateBucketType" type: object - SyntheticsTestResultDevicePlatform: - description: Platform information for the device used to run the test. + SpansAggregateBucketAttributes: + description: A bucket values. properties: - name: - description: Platform name (for example, `linux`, `macos`). - example: ios - type: string - version: - description: Platform version. - example: "14.8" - type: string + by: + additionalProperties: + description: The values for each group by. + description: The key, value pairs for each group by. + example: {"@state": "success", "@version": "abc"} + type: object + compute: + description: The compute data. + type: object + computes: + additionalProperties: + $ref: "#/components/schemas/SpansAggregateBucketValue" + description: A map of the metric name -> value for regular compute or list of values for a timeseries. + type: object type: object - SyntheticsTestResultDeviceResolution: - description: Screen resolution of the device used to run the test. + SpansAggregateBucketType: + description: The spans aggregate bucket type. + enum: ["bucket"] + example: "bucket" + type: string + x-enum-varnames: ["BUCKET"] + SpansAggregateBucketValue: + description: A bucket value, can be either a timeseries or a single value. + oneOf: + - $ref: "#/components/schemas/SpansAggregateBucketValueSingleString" + - $ref: "#/components/schemas/SpansAggregateBucketValueSingleNumber" + - $ref: "#/components/schemas/SpansAggregateBucketValueTimeseries" + SpansAggregateBucketValueSingleNumber: + description: A single number value. + format: double + type: number + SpansAggregateBucketValueSingleString: + description: A single string value. + type: string + SpansAggregateBucketValueTimeseries: + description: A timeseries array. + items: + $ref: "#/components/schemas/SpansAggregateBucketValueTimeseriesPoint" + type: array + x-generate-alias-as-model: true + SpansAggregateBucketValueTimeseriesPoint: + description: A timeseries point. properties: - height: - description: Viewport height in pixels. - example: 1100 - format: int64 - type: integer - pixel_ratio: - description: Device pixel ratio. - example: 2 + time: + description: The time value for this point. + example: "2023-06-08T11:55:00Z" + type: string + value: + description: The value for this point. + example: 19 format: double type: number - width: - description: Viewport width in pixels. - example: 1440 - format: int64 - type: integer type: object - SyntheticsTestResultDnsRecord: - description: A DNS record returned in a DNS test response. + SpansAggregateData: + description: The object containing the query content. properties: + attributes: + $ref: "#/components/schemas/SpansAggregateRequestAttributes" type: - description: DNS record type (for example, `A`, `AAAA`, `CNAME`). - example: A - type: string - values: - description: Values associated with the DNS record. - example: - - 213.186.33.19 - items: - description: DNS record value. - type: string - type: array + $ref: "#/components/schemas/SpansAggregateRequestType" type: object - SyntheticsTestResultDnsResolution: - description: DNS resolution details recorded during the test execution. + SpansAggregateRequest: + description: The object sent with the request to retrieve a list of aggregated spans from your organization. properties: - attempts: - description: DNS resolution attempts made during the test. - items: - $ref: "#/components/schemas/SyntheticsTestResultDnsResolutionAttempt" - type: array - resolved_ip: - description: Resolved IP address for the target host. - example: 54.243.255.141 - type: string - resolved_port: - description: Resolved port for the target service. - example: "443" - type: string - server: - description: DNS server used for the resolution. - example: 8.8.4.4 - type: string - type: object - SyntheticsTestResultDnsResolutionAttempt: - additionalProperties: - type: string - description: A single DNS resolution attempt. Keys are provider-specific attempt fields. - type: object - SyntheticsTestResultDuration: - description: Total duration of a Synthetic test execution. - properties: - has_duration: - description: Whether a duration was recorded for this execution. - example: true - type: boolean - value: - description: Duration value in milliseconds. - example: 380 - format: int64 - type: integer + data: + $ref: "#/components/schemas/SpansAggregateData" type: object - SyntheticsTestResultExecutionInfo: - description: Execution details for a Synthetic test result. + SpansAggregateRequestAttributes: + description: The object containing all the query parameters. properties: - duration: - $ref: "#/components/schemas/SyntheticsTestResultDuration" - error_message: - description: Error message if the execution encountered an issue. - example: Connection timed out - type: string - is_fast_retry: - description: Whether this result is from a fast retry. - example: true - type: boolean - timings: - additionalProperties: {} - description: Timing breakdown of the test execution in milliseconds. - example: - dns: 2.9 - download: 2.1 - firstByte: 95.2 - ssl: 187.9 - tcp: 92.6 - total: 380.7 - type: object - tunnel: - description: Whether the test was executed through a tunnel. - example: false - type: boolean - unhealthy: - description: Whether the location was unhealthy during execution. - example: false - type: boolean + compute: + description: The list of metrics or timeseries to compute for the retrieved buckets. + items: + $ref: "#/components/schemas/SpansCompute" + type: array + filter: + $ref: "#/components/schemas/SpansQueryFilter" + group_by: + description: The rules for the group by. + items: + $ref: "#/components/schemas/SpansGroupBy" + type: array + options: + $ref: "#/components/schemas/SpansQueryOptions" type: object - SyntheticsTestResultFailure: - description: Details about the failure of a Synthetic test. + SpansAggregateRequestType: + default: aggregate_request + description: The type of resource. The value should always be aggregate_request. + enum: + - aggregate_request + example: aggregate_request + type: string + x-enum-varnames: ["AGGREGATE_REQUEST"] + SpansAggregateResponse: + description: The response object for the spans aggregate API endpoint. properties: - code: - description: Error code for the failure. - example: TIMEOUT - type: string - internal_code: - description: Internal error code used for debugging. - example: INCORRECT_ASSERTION - type: string - internal_message: - description: Internal error message used for debugging. - example: Assertion failed on step 2 - type: string - message: - description: Error message for the failure. - example: Connection timed out - type: string + data: + description: The list of matching buckets, one item per bucket. + items: + $ref: "#/components/schemas/SpansAggregateBucket" + type: array + meta: + $ref: "#/components/schemas/SpansAggregateResponseMetadata" type: object - SyntheticsTestResultFileRef: - description: Reference to a file attached to a Synthetic test request. + SpansAggregateResponseMetadata: + description: The metadata associated with a request. properties: - bucket_key: - description: Storage bucket key where the file is stored. - example: api-upload-file/s3v-msw-tp3/2024-08-20T12:18:27.628081_f433c953-a58a-4296-834b-0669e32ba55f.json - type: string - encoding: - description: Encoding of the file contents. - example: base64 - type: string - name: - description: File name. - example: dd_logo_h_rgb.jpg - type: string - size: - description: File size in bytes. - example: 30294 + elapsed: + description: The time elapsed in milliseconds. + example: 132 format: int64 type: integer - type: - description: File MIME type. - example: image/jpeg - type: string - type: object - SyntheticsTestResultGit: - description: Git information associated with the test result. - properties: - branch: - description: Git branch name. - example: main - type: string - commit: - $ref: "#/components/schemas/SyntheticsTestResultGitCommit" - repository_url: - description: Git repository URL. - example: https://github.com/DataDog/example - type: string - type: object - SyntheticsTestResultGitCommit: - description: Details of the Git commit associated with the test result. - properties: - author: - $ref: "#/components/schemas/SyntheticsTestResultGitUser" - committer: - $ref: "#/components/schemas/SyntheticsTestResultGitUser" - message: - description: Commit message. - example: Fix bug in login flow - type: string - sha: - description: Commit SHA. - example: 9e107d9d372bb6826bd81d3542a419d6f0e1de56 - type: string - url: - description: URL of the commit. - example: https://github.com/DataDog/example/commit/9e107d9d372bb6826bd81d3542a419d6f0e1de56 + request_id: + description: The identifier of the request. + example: "MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR" type: string + status: + $ref: "#/components/schemas/SpansAggregateResponseStatus" + warnings: + description: |- + A list of warnings (non fatal errors) encountered, partial results might be returned if + warnings are present in the response. + items: + $ref: "#/components/schemas/SpansWarning" + type: array type: object - SyntheticsTestResultGitUser: - description: A Git user (author or committer). + SpansAggregateResponseStatus: + description: The status of the response. + enum: ["done", "timeout"] + example: "done" + type: string + x-enum-varnames: ["DONE", "TIMEOUT"] + SpansAggregateSort: + description: A sort rule. + example: {"aggregation": "count", "order": "asc"} properties: - date: - description: Timestamp of the commit action for this user. - example: "2024-08-15T14:23:00Z" - type: string - email: - description: Email address of the Git user. - example: jane.doe@example.com - type: string - name: - description: Name of the Git user. - example: Jane Doe + aggregation: + $ref: "#/components/schemas/SpansAggregationFunction" + metric: + description: The metric to sort by (only used for `type=measure`). + example: "@duration" type: string + order: + $ref: "#/components/schemas/SpansSortOrder" + type: + $ref: "#/components/schemas/SpansAggregateSortType" type: object - SyntheticsTestResultHandshake: - description: Handshake request and response for protocol-level tests. - properties: - request: - $ref: "#/components/schemas/SyntheticsTestResultRequestInfo" - response: - $ref: "#/components/schemas/SyntheticsTestResultResponseInfo" - type: object - SyntheticsTestResultHealthCheck: - description: Health check information returned from a gRPC health check call. - properties: - message: - additionalProperties: - type: string - description: Raw health check message payload. - type: object - status: - description: Health check status code. - example: 1 - format: int64 - type: integer - type: object - SyntheticsTestResultIncludedItem: - description: An included related resource. + SpansAggregateSortType: + default: "alphabetical" + description: The type of sorting algorithm. + enum: ["alphabetical", "measure"] + type: string + x-enum-varnames: ["ALPHABETICAL", "MEASURE"] + SpansAggregationFunction: + description: An aggregation function. + enum: ["count", "cardinality", "pc75", "pc90", "pc95", "pc98", "pc99", "sum", "min", "max", "avg", "median"] + example: "pc90" + type: string + x-enum-varnames: ["COUNT", "CARDINALITY", "PERCENTILE_75", "PERCENTILE_90", "PERCENTILE_95", "PERCENTILE_98", "PERCENTILE_99", "SUM", "MIN", "MAX", "AVG", "MEDIAN"] + SpansAttributes: + description: JSON object containing all span attributes and their associated values. properties: attributes: additionalProperties: {} - description: Attributes of the included resource. + description: JSON object of attributes from your span. + example: {"customAttribute": 123, "duration": 2345} type: object - id: - description: ID of the included resource. - example: abc-def-123 + custom: + additionalProperties: {} + description: JSON object of custom spans data. + type: object + end_timestamp: + description: End timestamp of your span. + example: "2023-01-02T09:42:36.420Z" + format: date-time type: string - type: - description: Type of the included resource. - example: test + env: + description: |- + Name of the environment from where the spans are being sent. + example: "prod" type: string - type: object - SyntheticsTestResultLocation: - description: Location information for a Synthetic test result. - properties: - id: - description: Identifier of the location. - example: aws:us-east-1 + host: + description: |- + Name of the machine from where the spans are being sent. + example: "i-0123" type: string - name: - description: Human-readable name of the location. - example: "N. Virginia (AWS)" + ingestion_reason: + description: The reason why the span was ingested. + example: "rule" type: string - version: - description: Version of the worker that ran the test. - example: 1.0.0 + parent_id: + description: Id of the span that's parent of this span. + example: "0" type: string - worker_id: - description: Identifier of the specific worker that ran the test. - example: worker-abc-123 + resource_hash: + description: Unique identifier of the resource. + example: "a12345678b91c23d" type: string - type: object - SyntheticsTestResultNetpath: - description: Network Path test result capturing the path between source and destination. - properties: - destination: - $ref: "#/components/schemas/SyntheticsTestResultNetpathDestination" - hops: - description: Hops along the network path. - items: - $ref: "#/components/schemas/SyntheticsTestResultNetpathHop" - type: array - origin: - description: Origin of the network path (for example, probe source). - example: synthetics + resource_name: + description: The name of the resource. + example: "agent" type: string - pathtrace_id: - description: Identifier of the path trace. - example: 5d3cb978-533b-41ce-85a4-3661c8dd6a0b + retained_by: + description: The reason why the span was indexed. + example: "retention_filter" type: string - protocol: - description: Protocol used for the path trace (for example, `tcp`, `udp`, `icmp`). - example: TCP + service: + description: |- + The name of the application or service generating the span events. + It is used to switch from APM to Logs, so make sure you define the same + value when you use both products. + example: "agent" + type: string + single_span: + description: |- + Whether or not the span was collected as a stand-alone span. Always associated to "single_span" ingestion_reason if true. + example: true + type: boolean + span_id: + description: Id of the span. + example: "1234567890987654321" + type: string + start_timestamp: + description: Start timestamp of your span. + example: "2023-01-02T09:42:36.320Z" + format: date-time type: string - source: - $ref: "#/components/schemas/SyntheticsTestResultNetpathEndpoint" tags: - description: Tags associated with the network path measurement. - example: - - synthetics.test_id:nja-epx-mg8 + description: Array of tags associated with your span. + example: ["team:A"] items: - description: Tag associated with the network path measurement. + description: Tag associated with your span. type: string type: array - timestamp: - description: Unix timestamp (ms) of the network path measurement. - example: 1744117822266 - format: int64 - type: integer - type: object - SyntheticsTestResultNetpathDestination: - description: Destination endpoint of a network path measurement. - properties: - hostname: - description: Hostname of the destination. - example: 34.95.79.70 + trace_id: + description: Id of the trace to which the span belongs. + example: "1234567890987654321" type: string - ip_address: - description: IP address of the destination. - example: 34.95.79.70 + type: + description: The type of the span. + example: "web" type: string - port: - description: Port of the destination service. - example: 80 - format: int64 - type: integer type: object - SyntheticsTestResultNetpathEndpoint: - description: Source endpoint of a network path measurement. + SpansCompute: + description: A compute rule to compute metrics or timeseries. properties: - hostname: - description: Hostname of the endpoint. - example: edge-eu1.staging.dog + aggregation: + $ref: "#/components/schemas/SpansAggregationFunction" + interval: + description: |- + The time buckets' size (only used for type=timeseries) + Defaults to a resolution of 150 points. + example: "5m" + type: string + metric: + description: The metric to use. + example: "@duration" type: string + type: + $ref: "#/components/schemas/SpansComputeType" + required: + - aggregation type: object - SyntheticsTestResultNetpathHop: - description: A single hop along a network path. + SpansComputeType: + default: "total" + description: The type of compute. + enum: ["timeseries", "total"] + type: string + x-enum-varnames: ["TIMESERIES", "TOTAL"] + SpansFilter: + description: The spans filter used to index spans. properties: - hostname: - description: Resolved hostname of the hop. - example: 70.79.95.34.bc.googleusercontent.com - type: string - ip_address: - description: IP address of the hop. - example: 10.240.134.15 + query: + description: The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/). + example: "@http.status_code:200 service:my-service" type: string - reachable: - description: Whether this hop was reachable. - example: true - type: boolean - rtt: - description: Round-trip time to this hop in milliseconds. - example: 0.000346599 - format: double - type: number - ttl: - description: Time-to-live value of the probe packet at this hop. - example: 2 - format: int64 - type: integer type: object - SyntheticsTestResultNetstats: - description: Aggregated network statistics from the test execution. + SpansFilterCreate: + description: The spans filter. Spans matching this filter will be indexed and stored. properties: - hops: - $ref: "#/components/schemas/SyntheticsTestResultNetstatsHops" - jitter: - description: Network jitter in milliseconds. - example: 0.08 - format: double - type: number - latency: - $ref: "#/components/schemas/SyntheticsTestResultNetworkLatency" - packet_loss_percentage: - description: Percentage of probe packets lost. - example: 0.0 - format: double - type: number - packets_received: - description: Number of probe packets received. - example: 4 - format: int64 - type: integer - packets_sent: - description: Number of probe packets sent. - example: 4 - format: int64 - type: integer + query: + description: The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/). + example: "@http.status_code:200 service:my-service" + type: string + required: + - query type: object - SyntheticsTestResultNetstatsHops: - description: Statistics about the number of hops for a network test. + SpansGroupBy: + description: A group by rule. properties: - avg: - description: Average number of hops. - example: 11.0 - format: double - type: number - max: - description: Maximum number of hops. - example: 11 - format: int64 - type: integer - min: - description: Minimum number of hops. - example: 11 + facet: + description: The name of the facet to use (required). + example: "host" + type: string + histogram: + $ref: "#/components/schemas/SpansGroupByHistogram" + limit: + default: 10 + description: The maximum buckets to return for this group by. format: int64 type: integer + missing: + $ref: "#/components/schemas/SpansGroupByMissing" + sort: + $ref: "#/components/schemas/SpansAggregateSort" + total: + $ref: "#/components/schemas/SpansGroupByTotal" + required: + - facet type: object - SyntheticsTestResultNetworkLatency: - description: Latency statistics for a network probe. + SpansGroupByHistogram: + description: |- + Used to perform a histogram computation (only for measure facets). + Note: At most 100 buckets are allowed, the number of buckets is (max - min)/interval. properties: - avg: - description: Average latency in milliseconds. - example: 1.8805 + interval: + description: The bin size of the histogram buckets. + example: 10 format: double type: number max: - description: Maximum latency in milliseconds. - example: 1.97 + description: |- + The maximum value for the measure used in the histogram + (values greater than this one are filtered out). + example: 100 format: double type: number min: - description: Minimum latency in milliseconds. - example: 1.76 + description: |- + The minimum value for the measure used in the histogram + (values smaller than this one are filtered out). + example: 50 format: double type: number + required: + - interval + - min + - max type: object - SyntheticsTestResultOCSPCertificate: - description: Certificate details returned in an OCSP response. + SpansGroupByMissing: + description: The value to use for spans that don't have the facet used to group by. + oneOf: + - $ref: "#/components/schemas/SpansGroupByMissingString" + - $ref: "#/components/schemas/SpansGroupByMissingNumber" + SpansGroupByMissingNumber: + description: The missing value to use if there is a number valued facet. + format: double + type: number + SpansGroupByMissingString: + description: The missing value to use if there is string valued facet. + type: string + SpansGroupByTotal: + default: false + description: |- + A resulting object to put the given computes in over all the matching records. + oneOf: + - $ref: "#/components/schemas/SpansGroupByTotalBoolean" + - $ref: "#/components/schemas/SpansGroupByTotalString" + - $ref: "#/components/schemas/SpansGroupByTotalNumber" + SpansGroupByTotalBoolean: + description: If set to true, creates an additional bucket labeled "$facet_total". + type: boolean + SpansGroupByTotalNumber: + description: A number to use as the key value for the total bucket. + format: double + type: number + SpansGroupByTotalString: + description: A string to use as the key value for the total bucket. + type: string + SpansListRequest: + description: The request for a spans list. properties: - revocation_reason: - description: Reason code for the revocation, when applicable. - example: unspecified + data: + $ref: "#/components/schemas/SpansListRequestData" + type: object + SpansListRequestAttributes: + description: The object containing all the query parameters. + properties: + filter: + $ref: "#/components/schemas/SpansQueryFilter" + options: + $ref: "#/components/schemas/SpansQueryOptions" + page: + $ref: "#/components/schemas/SpansListRequestPage" + sort: + $ref: "#/components/schemas/SpansSort" + type: object + SpansListRequestData: + description: The object containing the query content. + properties: + attributes: + $ref: "#/components/schemas/SpansListRequestAttributes" + type: + $ref: "#/components/schemas/SpansListRequestType" + type: object + SpansListRequestPage: + description: Paging attributes for listing spans. + properties: + cursor: + description: |- + List following results with a cursor provided in the previous query. + example: "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" type: string - revocation_time: - description: Unix timestamp (ms) of the revocation. - example: 1749727285000 - format: int64 + limit: + default: 10 + description: Maximum number of spans in the response. + example: 25 + format: int32 + maximum: 1000 type: integer - serial_number: - description: Serial number of the certificate. - example: 7B584A1A6670A1EB0941A9A121569D60 - type: string type: object - SyntheticsTestResultOCSPResponse: - description: OCSP response received while validating a certificate. + SpansListRequestType: + default: search_request + description: The type of resource. The value should always be search_request. + enum: + - search_request + example: search_request + type: string + x-enum-varnames: ["SEARCH_REQUEST"] + SpansListResponse: + description: Response object with all spans matching the request and pagination information. properties: - certificate: - $ref: "#/components/schemas/SyntheticsTestResultOCSPCertificate" - status: - description: OCSP response status (for example, `good`, `revoked`, `unknown`). - example: good + data: + description: Array of spans matching the request. + items: + $ref: "#/components/schemas/Span" + type: array + links: + $ref: "#/components/schemas/SpansListResponseLinks" + meta: + $ref: "#/components/schemas/SpansListResponseMetadata" + type: object + SpansListResponseLinks: + description: Links attributes. + properties: + next: + description: |- + Link for the next set of results. Note that the request can also be made using the + POST endpoint. + example: "https://app.datadoghq.com/api/v2/spans/event?filter[query]=foo&page[cursor]=eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" type: string - updates: - $ref: "#/components/schemas/SyntheticsTestResultOCSPUpdates" type: object - SyntheticsTestResultOCSPUpdates: - description: OCSP response update timestamps. + SpansListResponseMetadata: + description: The metadata associated with a request. properties: - next_update: - description: Unix timestamp (ms) of the next expected OCSP update. - example: 1743074486000 - format: int64 - type: integer - produced_at: - description: Unix timestamp (ms) of when the OCSP response was produced. - example: 1742469686000 - format: int64 - type: integer - this_update: - description: Unix timestamp (ms) of this OCSP update. - example: 1742469686000 + elapsed: + description: The time elapsed in milliseconds. + example: 132 format: int64 type: integer + page: + $ref: "#/components/schemas/SpansResponseMetadataPage" + request_id: + description: The identifier of the request. + example: "MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR" + type: string + status: + $ref: "#/components/schemas/SpansAggregateResponseStatus" + warnings: + description: |- + A list of warnings (non fatal errors) encountered, partial results might be returned if + warnings are present in the response. + items: + $ref: "#/components/schemas/SpansWarning" + type: array type: object - SyntheticsTestResultParentStep: - description: Reference to the parent step of a sub-step. + SpansMetricCompute: + description: The compute rule to compute the span-based metric. properties: - id: - description: Identifier of the parent step. - example: fkk-j2a-gmw + aggregation_type: + $ref: "#/components/schemas/SpansMetricComputeAggregationType" + include_percentiles: + $ref: "#/components/schemas/SpansMetricComputeIncludePercentiles" + path: + description: The path to the value the span-based metric will aggregate on (only used if the aggregation type is a "distribution"). + example: "@duration" type: string + required: + - aggregation_type type: object - SyntheticsTestResultParentTest: - description: Reference to the parent test of a sub-step. + SpansMetricComputeAggregationType: + description: The type of aggregation to use. + enum: ["count", "distribution"] + example: "distribution" + type: string + x-enum-varnames: ["COUNT", "DISTRIBUTION"] + SpansMetricComputeIncludePercentiles: + description: |- + Toggle to include or exclude percentile aggregations for distribution metrics. + Only present when the `aggregation_type` is `distribution`. + example: false + type: boolean + SpansMetricCreateAttributes: + description: The object describing the Datadog span-based metric to create. + properties: + compute: + $ref: "#/components/schemas/SpansMetricCompute" + filter: + $ref: "#/components/schemas/SpansMetricFilter" + group_by: + description: The rules for the group by. + items: + $ref: "#/components/schemas/SpansMetricGroupBy" + type: array + required: + - compute + type: object + SpansMetricCreateData: + description: The new span-based metric properties. properties: + attributes: + $ref: "#/components/schemas/SpansMetricCreateAttributes" id: - description: Identifier of the parent test. - example: abc-def-123 + $ref: "#/components/schemas/SpansMetricID" + type: + $ref: "#/components/schemas/SpansMetricType" + required: + - id + - type + - attributes + type: object + SpansMetricCreateRequest: + description: The new span-based metric body. + properties: + data: + $ref: "#/components/schemas/SpansMetricCreateData" + required: + - data + type: object + SpansMetricFilter: + description: The span-based metric filter. Spans matching this filter will be aggregated in this metric. + properties: + query: + default: "*" + description: The search query - following the span search syntax. + example: "@http.status_code:200 service:my-service" type: string type: object - SyntheticsTestResultRedirect: - description: A redirect hop encountered while performing the request. + SpansMetricGroupBy: + description: A group by rule. properties: - location: - description: Target location of the redirect. - example: https://example.com/new-location + path: + description: The path to the value the span-based metric will be aggregated over. + example: "resource_name" type: string - status_code: - description: HTTP status code of the redirect response. - example: 301 - format: int64 - type: integer + tag_name: + description: Eventual name of the tag that gets created. By default, the path attribute is used as the tag name. + example: "resource_name" + type: string + required: + - path type: object - SyntheticsTestResultRelationshipTest: - description: Relationship to the Synthetic test. + SpansMetricID: + description: The name of the span-based metric. + example: "my.metric" + type: string + SpansMetricResponse: + description: The span-based metric object. properties: data: - $ref: "#/components/schemas/SyntheticsTestResultRelationshipTestData" + $ref: "#/components/schemas/SpansMetricResponseData" type: object - SyntheticsTestResultRelationshipTestData: - description: Data for the test relationship. + SpansMetricResponseAttributes: + description: The object describing a Datadog span-based metric. properties: - id: - description: The public ID of the test. - example: abc-def-123 - type: string - type: - description: Type of the related resource. - example: test + compute: + $ref: "#/components/schemas/SpansMetricResponseCompute" + filter: + $ref: "#/components/schemas/SpansMetricResponseFilter" + group_by: + description: The rules for the group by. + items: + $ref: "#/components/schemas/SpansMetricResponseGroupBy" + type: array + type: object + SpansMetricResponseCompute: + description: The compute rule to compute the span-based metric. + properties: + aggregation_type: + $ref: "#/components/schemas/SpansMetricComputeAggregationType" + include_percentiles: + $ref: "#/components/schemas/SpansMetricComputeIncludePercentiles" + path: + description: The path to the value the span-based metric will aggregate on (only used if the aggregation type is a "distribution"). + example: "@duration" type: string type: object - SyntheticsTestResultRelationships: - description: Relationships for a Synthetic test result. + SpansMetricResponseData: + description: The span-based metric properties. properties: - test: - $ref: "#/components/schemas/SyntheticsTestResultRelationshipTest" + attributes: + $ref: "#/components/schemas/SpansMetricResponseAttributes" + id: + $ref: "#/components/schemas/SpansMetricID" + type: + $ref: "#/components/schemas/SpansMetricType" type: object - SyntheticsTestResultRequestInfo: - description: Details of the outgoing request made during the test execution. + SpansMetricResponseFilter: + description: The span-based metric filter. Spans matching this filter will be aggregated in this metric. properties: - allow_insecure: - description: Whether insecure certificates are allowed for this request. - example: false - type: boolean - body: - description: Body sent with the request. - example: '{"key":"value"}' - type: string - call_type: - description: gRPC call type (for example, `unary`, `healthCheck`, or `reflection`). - example: unary + query: + description: The search query - following the span search syntax. + example: "@http.status_code:200 service:my-service" type: string - destination_service: - description: Destination service for a Network Path test. - example: my-service + type: object + SpansMetricResponseGroupBy: + description: A group by rule. + properties: + path: + description: The path to the value the span-based metric will be aggregated over. + example: "resource_name" type: string - dns_server: - description: DNS server used to resolve the target host. - example: 8.8.8.8 + tag_name: + description: Eventual name of the tag that gets created. By default, the path attribute is used as the tag name. + example: "resource_name" type: string - dns_server_port: - description: Port of the DNS server used for resolution. - example: 53 - format: int64 - type: integer - e2e_queries: - description: Number of end-to-end probe queries issued. - example: 4 - format: int64 - type: integer - files: - description: Files attached to the request. + type: object + SpansMetricType: + default: spans_metrics + description: The type of resource. The value should always be spans_metrics. + enum: + - spans_metrics + example: spans_metrics + type: string + x-enum-varnames: ["SPANS_METRICS"] + SpansMetricUpdateAttributes: + description: The span-based metric properties that will be updated. + properties: + compute: + $ref: "#/components/schemas/SpansMetricUpdateCompute" + filter: + $ref: "#/components/schemas/SpansMetricFilter" + group_by: + description: The rules for the group by. items: - $ref: "#/components/schemas/SyntheticsTestResultFileRef" + $ref: "#/components/schemas/SpansMetricGroupBy" type: array - headers: - additionalProperties: {} - description: Headers sent with the request. - example: - content-type: application/json - type: object - host: - description: Host targeted by the request. - example: grpcbin.test.k6.io - type: string - max_ttl: - description: Maximum TTL for network probe packets. - example: 64 - format: int64 - type: integer - message: - description: Message sent with the request (for WebSocket/TCP/UDP tests). - example: My message - type: string - method: - description: HTTP method used for the request. - example: GET - type: string - no_saving_response_body: - description: Whether the response body was not saved. - example: true - type: boolean - port: - description: Port targeted by the request. Can be a number or a string variable reference. - example: 9000 - service: - description: Service name targeted by the request (for gRPC tests). - example: addsvc.Add - type: string - source_service: - description: Source service for a Network Path test. - example: synthetics - type: string - timeout: - description: Request timeout in milliseconds. - example: 60 - format: int64 - type: integer - tool_name: - description: Name of the MCP tool called (MCP tests only). - example: search - type: string - traceroute_queries: - description: Number of traceroute probe queries issued. - example: 2 - format: int64 - type: integer - url: - description: URL targeted by the request. - example: https://httpbin.org/anything/lol valuehugo - type: string type: object - SyntheticsTestResultResponse: - description: Response object for a Synthetic test result. + SpansMetricUpdateCompute: + description: The compute rule to compute the span-based metric. + properties: + include_percentiles: + $ref: "#/components/schemas/SpansMetricComputeIncludePercentiles" + type: object + SpansMetricUpdateData: + description: The new span-based metric properties. + properties: + attributes: + $ref: "#/components/schemas/SpansMetricUpdateAttributes" + type: + $ref: "#/components/schemas/SpansMetricType" + required: + - type + - attributes + type: object + SpansMetricUpdateRequest: + description: The new span-based metric body. properties: data: - $ref: "#/components/schemas/SyntheticsTestResultData" - included: - description: Array of included related resources, such as the test definition. + $ref: "#/components/schemas/SpansMetricUpdateData" + required: + - data + type: object + SpansMetricsResponse: + description: All the available span-based metric objects. + properties: + data: + description: A list of span-based metric objects. items: - $ref: "#/components/schemas/SyntheticsTestResultIncludedItem" + $ref: "#/components/schemas/SpansMetricResponseData" type: array type: object - SyntheticsTestResultResponseInfo: - description: Details of the response received during the test execution. + SpansQueryFilter: + description: The search and filter query settings. properties: - body: - description: Body of the response. - example: '{"status":"ok"}' + from: + default: "now-15m" + description: The minimum time for the requested spans, supports date-time ISO8601, date math, and regular timestamps (milliseconds). + example: "now-15m" type: string - body_compressed: - description: Compressed representation of the response body. - example: eJzLSM3JyQcABiwCFQ== + query: + default: "*" + description: The search query - following the span search syntax. + example: "service:web* AND @http.status_code:[200 TO 299]" type: string - body_hashes: - description: Hashes computed over the response body. - example: 9e107d9d372bb6826bd81d3542a419d6 + to: + default: "now" + description: The maximum time for the requested spans, supports date-time ISO8601, date math, and regular timestamps (milliseconds). + example: "now" type: string - body_size: - description: Size of the response body in bytes. - example: 793 - format: int64 - type: integer - cache_headers: - additionalProperties: - type: string - description: Cache-related response headers. - example: - server: gunicorn/19.9.0 - type: object - cdn: - $ref: "#/components/schemas/SyntheticsTestResultCdnProviderInfo" - close: - $ref: "#/components/schemas/SyntheticsTestResultWebSocketClose" - compressed_message: - description: Compressed representation of the response message. - example: eJzLSM3JyQcABiwCFQ== + type: object + SpansQueryOptions: + description: |- + Global query options that are used during the query. + Note: You should only supply timezone or time offset but not both otherwise the query will fail. + properties: + timeOffset: + description: The time offset (in seconds) to apply to the query. + format: int64 + type: integer + timezone: + default: "UTC" + description: |- + The timezone can be specified as GMT, UTC, an offset from UTC (like UTC+1), or as a Timezone Database identifier (like America/New_York). + example: "GMT" type: string - headers: - additionalProperties: {} - description: Response headers. - example: - content-type: application/json - type: object - healthcheck: - $ref: "#/components/schemas/SyntheticsTestResultHealthCheck" - http_version: - description: HTTP version of the response. - example: "2.0" + type: object + SpansResponseMetadataPage: + description: Paging attributes. + properties: + after: + description: |- + The cursor to use to get the next results, if any. To make the next request, use the same + parameters with the addition of the `page[cursor]`. + example: "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" type: string - is_body_truncated: - description: Whether the response body was truncated. - example: false - type: boolean - is_message_truncated: - description: Whether the response message was truncated. - example: false - type: boolean - message: - description: Message received in the response (for WebSocket/TCP/UDP tests). - example: '{"f_string":"concat-STATIC_HIDDEN_VALUE"}' + type: object + SpansSort: + description: Sort parameters when querying spans. + enum: + - timestamp + - -timestamp + type: string + x-enum-varnames: + - TIMESTAMP_ASCENDING + - TIMESTAMP_DESCENDING + SpansSortOrder: + description: The order to use, ascending or descending. + enum: + - "asc" + - "desc" + example: "asc" + type: string + x-enum-varnames: + - "ASCENDING" + - "DESCENDING" + SpansType: + default: spans + description: Type of the span. + enum: + - spans + example: "spans" + type: string + x-enum-varnames: + - SPANS + SpansWarning: + description: A warning message indicating something that went wrong with the query. + properties: + code: + description: A unique code for this type of warning. + example: "unknown_index" type: string - metadata: - additionalProperties: - type: string - description: Additional metadata returned with the response. - type: object - records: - description: DNS records returned in the response (DNS tests only). + detail: + description: A detailed explanation of this specific warning. + example: "indexes: foo, bar" + type: string + title: + description: A short human-readable summary of the warning. + example: "One or several indexes are missing or invalid, results hold data from the other indexes" + type: string + type: object + Spec: + description: A complete Workflow Automation definition, including its triggers, steps, and connections. + properties: + annotations: + description: Up to 100 text annotations displayed on the workflow canvas. items: - $ref: "#/components/schemas/SyntheticsTestResultDnsRecord" + $ref: "#/components/schemas/Annotation" + maxItems: 100 type: array - redirects: - description: Redirect hops encountered while performing the request. + connectionEnvs: + description: A list of connections or connection groups used in the workflow. items: - $ref: "#/components/schemas/SyntheticsTestResultRedirect" + $ref: "#/components/schemas/ConnectionEnv" + type: array + handle: + description: Unique identifier used to trigger workflows automatically in Datadog. + type: string + inputSchema: + $ref: "#/components/schemas/InputSchema" + outputSchema: + $ref: "#/components/schemas/OutputSchema" + steps: + description: A `Step` is a sub-component of a workflow. Each `Step` performs an action. + items: + $ref: "#/components/schemas/Step" + type: array + triggers: + description: The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once. + items: + $ref: "#/components/schemas/Trigger" type: array - status_code: - description: HTTP status code of the response. - example: 200 - format: int64 - type: integer type: object - SyntheticsTestResultRouter: - description: A router along the traceroute path. + SpecVersion: + description: The version of the CycloneDX specification a BOM conforms to. + enum: + - "1.0" + - "1.1" + - "1.2" + - "1.3" + - "1.4" + - "1.5" + - "1.6" + example: "1.6" + type: string + x-enum-varnames: + - ONE_ZERO + - ONE_ONE + - ONE_TWO + - ONE_THREE + - ONE_FOUR + - ONE_FIVE + - ONE_SIX + SplitAPIKey: + description: The definition of the `SplitAPIKey` object. properties: - ip: - description: IP address of the router. - example: 34.95.79.70 + api_key: + description: The `SplitAPIKey` `api_key`. + example: "" type: string - resolved_host: - description: Resolved hostname of the router. - example: 70.79.95.34.bc.googleusercontent.com + type: + $ref: "#/components/schemas/SplitAPIKeyType" + required: + - type + - api_key + type: object + SplitAPIKeyType: + description: The definition of the `SplitAPIKey` object. + enum: + - SplitAPIKey + example: SplitAPIKey + type: string + x-enum-varnames: + - SPLITAPIKEY + SplitAPIKeyUpdate: + description: The definition of the `SplitAPIKey` object. + properties: + api_key: + description: The `SplitAPIKeyUpdate` `api_key`. type: string + type: + $ref: "#/components/schemas/SplitAPIKeyType" + required: + - type type: object - SyntheticsTestResultRumContext: - description: RUM application context associated with a step or sub-test. + SplitCredentials: + description: The definition of the `SplitCredentials` object. + oneOf: + - $ref: "#/components/schemas/SplitAPIKey" + SplitCredentialsUpdate: + description: The definition of the `SplitCredentialsUpdate` object. + oneOf: + - $ref: "#/components/schemas/SplitAPIKeyUpdate" + SplitIntegration: + description: The definition of the `SplitIntegration` object. properties: - application_id: - description: RUM application identifier. - example: 00000000-0000-0000-0000-000000000000 + credentials: + $ref: "#/components/schemas/SplitCredentials" + type: + $ref: "#/components/schemas/SplitIntegrationType" + required: + - type + - credentials + type: object + SplitIntegrationType: + description: The definition of the `SplitIntegrationType` object. + enum: + - Split + example: Split + type: string + x-enum-varnames: + - SPLIT + SplitIntegrationUpdate: + description: The definition of the `SplitIntegrationUpdate` object. + properties: + credentials: + $ref: "#/components/schemas/SplitCredentialsUpdate" + type: + $ref: "#/components/schemas/SplitIntegrationType" + required: + - type + type: object + StartStepNames: + description: "Names of existing workflow steps that run first after a trigger fires." + example: + - "" + items: + description: The `StartStepNames` `items`. + minLength: 1 + type: string + type: array + State: + description: The state of the rule evaluation. + enum: [pass, fail, skip] + example: pass + type: string + x-enum-varnames: [PASS, FAIL, SKIP] + StateVariable: + description: A variable, which can be set and read by other components in the app. + properties: + id: + description: The ID of the state variable. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + format: uuid type: string - session_id: - description: RUM session identifier. - example: 11111111-1111-1111-1111-111111111111 + name: + description: A unique identifier for this state variable. This name is also used to access the variable's value throughout the app. + example: "ordersToSubmit" type: string - view_id: - description: RUM view identifier. - example: 22222222-2222-2222-2222-222222222222 + properties: + $ref: "#/components/schemas/StateVariableProperties" + type: + $ref: "#/components/schemas/StateVariableType" + required: + - id + - name + - type + - properties + type: object + StateVariableProperties: + description: The properties of the state variable. + properties: + defaultValue: + description: The default value of the state variable. + example: "${['order_3145', 'order_4920']}" + type: object + StateVariableType: + default: stateVariable + description: The state variable type. + enum: + - stateVariable + example: stateVariable + type: string + x-enum-varnames: + - STATEVARIABLE + StatsigAPIKey: + description: The definition of the `StatsigAPIKey` object. + properties: + api_key: + description: The `StatsigAPIKey` `api_key`. + example: "" type: string + type: + $ref: "#/components/schemas/StatsigAPIKeyType" + required: + - type + - api_key type: object - SyntheticsTestResultRunType: - description: The type of run for a Synthetic test result. + StatsigAPIKeyType: + description: The definition of the `StatsigAPIKey` object. enum: - - scheduled - - fast - - ci - - triggered - example: scheduled + - StatsigAPIKey + example: StatsigAPIKey type: string x-enum-varnames: - - SCHEDULED - - FAST - - CI - - TRIGGERED - SyntheticsTestResultStatus: - description: Status of a Synthetic test result. + - STATSIGAPIKEY + StatsigAPIKeyUpdate: + description: The definition of the `StatsigAPIKey` object. + properties: + api_key: + description: The `StatsigAPIKeyUpdate` `api_key`. + type: string + type: + $ref: "#/components/schemas/StatsigAPIKeyType" + required: + - type + type: object + StatsigCredentials: + description: The definition of the `StatsigCredentials` object. + oneOf: + - $ref: "#/components/schemas/StatsigAPIKey" + StatsigCredentialsUpdate: + description: The definition of the `StatsigCredentialsUpdate` object. + oneOf: + - $ref: "#/components/schemas/StatsigAPIKeyUpdate" + StatsigIntegration: + description: The definition of the `StatsigIntegration` object. + properties: + credentials: + $ref: "#/components/schemas/StatsigCredentials" + type: + $ref: "#/components/schemas/StatsigIntegrationType" + required: + - type + - credentials + type: object + StatsigIntegrationType: + description: The definition of the `StatsigIntegrationType` object. enum: - - passed - - failed - - no_data - example: passed + - Statsig + example: Statsig type: string x-enum-varnames: - - PASSED - - FAILED - - NO_DATA - SyntheticsTestResultStep: - description: A step result from a browser, mobile, or multistep API test. + - STATSIG + StatsigIntegrationUpdate: + description: The definition of the `StatsigIntegrationUpdate` object. properties: - allow_failure: - description: Whether the test continues when this step fails. - example: false - type: boolean - api_test: - additionalProperties: {} - description: Inner API test definition for browser `runApiTest` steps. - type: object - assertion_result: - $ref: "#/components/schemas/SyntheticsTestResultStepAssertionResult" - assertions: - description: Assertion results produced by the step. + credentials: + $ref: "#/components/schemas/StatsigCredentialsUpdate" + type: + $ref: "#/components/schemas/StatsigIntegrationType" + required: + - type + type: object + StatusPage: + description: Response object for a single status page. + properties: + data: + $ref: "#/components/schemas/StatusPageData" + included: + description: The included related resources of a status page. Client must explicitly request these resources by name in the `include` query parameter. items: - $ref: "#/components/schemas/SyntheticsTestResultAssertionResult" + $ref: "#/components/schemas/StatusPageArrayIncluded" type: array - blocked_requests_urls: - description: URLs of requests blocked during the step. + type: object + StatusPageArray: + description: Response object for a list of status pages. + properties: + data: + description: A list of status page data objects. items: - description: Blocked request URL. - type: string + $ref: "#/components/schemas/StatusPageData" type: array - bounds: - $ref: "#/components/schemas/SyntheticsTestResultBounds" - browser_errors: - description: Browser errors captured during the step. + included: + description: The included related resources of a status page. Client must explicitly request these resources by name in the `include` query parameter. items: - $ref: "#/components/schemas/SyntheticsTestResultBrowserError" + $ref: "#/components/schemas/StatusPageArrayIncluded" type: array - bucket_keys: - $ref: "#/components/schemas/SyntheticsTestResultBucketKeys" - cdn_resources: - description: CDN resources encountered during the step. + meta: + $ref: "#/components/schemas/PaginationMeta" + required: + - data + type: object + StatusPageArrayIncluded: + description: An included resource related to a status page. + oneOf: + - $ref: "#/components/schemas/StatusPagesUser" + StatusPageAsIncluded: + description: The included status page resource. + properties: + attributes: + $ref: "#/components/schemas/StatusPageAsIncludedAttributes" + id: + description: The ID of the status page. + format: uuid + type: string + relationships: + $ref: "#/components/schemas/StatusPageAsIncludedRelationships" + type: + $ref: "#/components/schemas/StatusPageDataType" + required: + - type + type: object + StatusPageAsIncludedAttributes: + description: The attributes of a status page. + properties: + company_logo: + description: The base64-encoded image data displayed in the company logo. + type: string + components: + description: Components displayed on the status page. items: - $ref: "#/components/schemas/SyntheticsTestResultCdnResource" + $ref: "#/components/schemas/StatusPageAsIncludedAttributesComponentsItems" type: array - click_type: - description: Click type performed in a browser step. - example: primary + created_at: + description: Timestamp of when the status page was created. + format: date-time type: string - compressed_json_descriptor: - description: Compressed JSON descriptor for the step (internal format). - example: compressedJsonDescriptorValue + custom_domain: + description: If configured, the url that the status page is accessible at. type: string - config: - additionalProperties: {} - description: Request configuration executed by this step (API test steps). - type: object - description: - description: Human-readable description of the step. - example: Navigate to start URL + custom_domain_enabled: + description: Whether the custom domain is configured. + type: boolean + domain_prefix: + description: The subdomain of the status page's url taking the form `https://{domain_prefix}.statuspage.datadoghq.com`. Globally unique across Datadog Status Pages. type: string - duration: - description: Duration of the step in milliseconds. - example: 1015.0 - format: double - type: number - element_description: - description: Description of the element interacted with by the step. - example: '' + email_header_image: + description: Base64-encoded image data included in email notifications sent to status page subscribers. type: string - element_updates: - $ref: "#/components/schemas/SyntheticsTestResultStepElementUpdates" - extracted_value: - $ref: "#/components/schemas/SyntheticsTestResultVariable" - failure: - $ref: "#/components/schemas/SyntheticsTestResultFailure" - http_results: - description: HTTP results produced by an MCP step. + enabled: + description: Whether the status page is enabled. + type: boolean + favicon: + description: Base64-encoded image data displayed in the browser tab. + type: string + modified_at: + description: Timestamp of when the status page was last modified. + format: date-time + type: string + name: + description: The name of the status page. + type: string + page_url: + description: The url that the status page is accessible at. + type: string + slack_app_icon: + description: The Slack app icon URL for the status page. + type: string + slack_subscriptions_enabled: + description: Whether Slack subscriptions are enabled for the status page. + type: boolean + subscriptions_enabled: + description: Whether users can subscribe to the status page. + type: boolean + type: + $ref: "#/components/schemas/CreateStatusPageRequestDataAttributesType" + visualization_type: + $ref: "#/components/schemas/CreateStatusPageRequestDataAttributesVisualizationType" + type: object + StatusPageAsIncludedAttributesComponentsItems: + description: A component displayed on an included status page. + properties: + components: + description: If the component is of type `group`, the components within the group. items: - $ref: "#/components/schemas/SyntheticsTestResultAssertionResult" + $ref: "#/components/schemas/StatusPageAsIncludedAttributesComponentsItemsComponentsItems" type: array id: - description: Identifier of the step. - example: fkk-j2a-gmw + description: The ID of the component. + format: uuid + readOnly: true type: string - is_critical: - description: Whether this step is critical for the test outcome. - example: true - type: boolean - javascript_custom_assertion_code: - description: Whether the step uses a custom JavaScript assertion. - example: false - type: boolean - locate_element_duration: - description: Time taken to locate the element in milliseconds. - example: 845.0 - format: double - type: number name: - description: Name of the step. - example: Extract variable from body + description: The name of the component. type: string - request: - $ref: "#/components/schemas/SyntheticsTestResultRequestInfo" - response: - $ref: "#/components/schemas/SyntheticsTestResultResponseInfo" - retries: - description: Retry results for the step. - items: - $ref: "#/components/schemas/SyntheticsTestResultStep" - type: array - retry_count: - description: Number of times this step was retried. - example: 0 - format: int64 - type: integer - rum_context: - $ref: "#/components/schemas/SyntheticsTestResultRumContext" - started_at: - description: Unix timestamp (ms) of when the step started. - example: 1724445283308 + position: + description: The zero-indexed position of the component. format: int64 type: integer status: - description: Status of the step (for example, `passed`, `failed`). - example: passed - type: string - sub_step: - $ref: "#/components/schemas/SyntheticsTestResultSubStep" - sub_test: - $ref: "#/components/schemas/SyntheticsTestResultSubTest" - subtype: - description: Subtype of the step. - example: http - type: string - tabs: - description: Browser tabs involved in the step. - items: - $ref: "#/components/schemas/SyntheticsTestResultTab" - type: array - timings: - additionalProperties: {} - description: Timing breakdown of the step execution. - type: object - tunnel: - description: Whether the step was executed through a Synthetics tunnel. - example: false - type: boolean + $ref: "#/components/schemas/StatusPagesComponentGroupAttributesComponentsItemsStatus" type: - description: Type of the step (for example, `click`, `assertElementContent`, `runApiTest`). - example: click - type: string - url: - description: URL associated with the step (for navigation steps). - example: http://34.95.79.70/prototype - type: string - value: - description: Step value. Its type depends on the step type. - example: http://34.95.79.70/prototype - variables: - $ref: "#/components/schemas/SyntheticsTestResultVariables" - vitals_metrics: - description: Web vitals metrics captured during the step. - items: - $ref: "#/components/schemas/SyntheticsTestResultVitalsMetrics" - type: array - warnings: - description: Warnings emitted during the step. - items: - $ref: "#/components/schemas/SyntheticsTestResultWarning" - type: array + $ref: "#/components/schemas/CreateComponentRequestDataAttributesType" type: object - SyntheticsTestResultStepAssertionResult: - description: Assertion result for a browser or mobile step. + StatusPageAsIncludedAttributesComponentsItemsComponentsItems: + description: A grouped component within a status page component group. properties: - actual: - description: Actual value observed during the step assertion. Its type depends on the check type. - example: "True\ngood\ngood\ngood\ngood\nTrue" - check_type: - description: Type of the step assertion check. - example: contains + id: + description: The ID of the grouped component. + format: uuid + readOnly: true type: string - expected: - description: Expected value for the step assertion. Its type depends on the check type. - example: True good good good good True - has_secure_variables: - description: Whether the assertion involves secure variables. - example: false - type: boolean - type: object - SyntheticsTestResultStepElementUpdates: - description: Element locator updates produced during a step. - properties: - multi_locator: - additionalProperties: - type: string - description: Updated multi-locator definition. - type: object - target_outer_html: - description: Updated outer HTML of the targeted element. - example:

My website - v4

+ name: + description: The name of the grouped component. type: string - version: - description: Version of the element locator definition. - example: 3 + position: + description: The zero-indexed position of the grouped component. Relative to the other components in the group. format: int64 type: integer + status: + $ref: "#/components/schemas/StatusPagesComponentGroupAttributesComponentsItemsStatus" + type: + $ref: "#/components/schemas/StatusPagesComponentGroupAttributesComponentsItemsType" type: object - SyntheticsTestResultStepsInfo: - description: Step execution summary for a Synthetic test result. + StatusPageAsIncludedRelationships: + description: The relationships of a status page. properties: - completed: - description: Number of completed steps. - example: 6 - format: int64 - type: integer - errors: - description: Number of steps with errors. - example: 0 - format: int64 - type: integer - total: - description: Total number of steps. - example: 6 - format: int64 - type: integer + created_by_user: + $ref: "#/components/schemas/StatusPageAsIncludedRelationshipsCreatedByUser" + description: The Datadog user who created the status page. + last_modified_by_user: + $ref: "#/components/schemas/StatusPageAsIncludedRelationshipsLastModifiedByUser" + description: The Datadog user who last modified the status page. type: object - SyntheticsTestResultSubStep: - description: Information about a sub-step in a nested test execution. + StatusPageAsIncludedRelationshipsCreatedByUser: + description: The Datadog user who created the status page. properties: - level: - description: Depth of the sub-step in the execution tree. - example: 1 - format: int64 - type: integer - parent_step: - $ref: "#/components/schemas/SyntheticsTestResultParentStep" - parent_test: - $ref: "#/components/schemas/SyntheticsTestResultParentTest" + data: + $ref: "#/components/schemas/StatusPageAsIncludedRelationshipsCreatedByUserData" + required: + - data type: object - SyntheticsTestResultSubTest: - description: Information about a sub-test played from a parent browser test. + StatusPageAsIncludedRelationshipsCreatedByUserData: + description: The data object identifying the Datadog user who created the status page. properties: id: - description: Identifier of the sub-test. - example: abc-def-123 + description: The ID of the Datadog user who created the status page. + example: "" type: string - playing_tab: - description: Index of the browser tab playing the sub-test. - example: 0 - format: int64 - type: integer - rum_context: - $ref: "#/components/schemas/SyntheticsTestResultRumContext" + type: + $ref: "#/components/schemas/StatusPagesUserType" + required: + - type + - id type: object - SyntheticsTestResultSummaryAttributes: - description: Attributes of a Synthetic test result summary. + StatusPageAsIncludedRelationshipsLastModifiedByUser: + description: The Datadog user who last modified the status page. properties: - device: - $ref: "#/components/schemas/SyntheticsTestResultDevice" - execution_info: - $ref: "#/components/schemas/SyntheticsTestResultExecutionInfo" - finished_at: - description: Timestamp of when the test finished (in milliseconds). - format: int64 - type: integer - location: - $ref: "#/components/schemas/SyntheticsTestResultLocation" - run_type: - $ref: "#/components/schemas/SyntheticsTestResultRunType" - started_at: - description: Timestamp of when the test started (in milliseconds). - format: int64 - type: integer - status: - $ref: "#/components/schemas/SyntheticsTestResultStatus" - steps_info: - $ref: "#/components/schemas/SyntheticsTestResultStepsInfo" - test_sub_type: - $ref: "#/components/schemas/SyntheticsTestSubType" - test_type: - $ref: "#/components/schemas/SyntheticsTestType" + data: + $ref: "#/components/schemas/StatusPageAsIncludedRelationshipsLastModifiedByUserData" + required: + - data type: object - SyntheticsTestResultSummaryData: - description: Wrapper object for a Synthetic test result summary. + StatusPageAsIncludedRelationshipsLastModifiedByUserData: + description: The data object identifying the Datadog user who last modified the status page. + properties: + id: + description: The ID of the Datadog user who last modified the status page. + example: "" + type: string + type: + $ref: "#/components/schemas/StatusPagesUserType" + required: + - type + - id + type: object + StatusPageData: + description: The data object for a status page. properties: attributes: - $ref: "#/components/schemas/SyntheticsTestResultSummaryAttributes" + $ref: "#/components/schemas/StatusPageDataAttributes" id: - description: The result ID. - example: "5158904793181869365" + description: The ID of the status page. + format: uuid type: string relationships: - $ref: "#/components/schemas/SyntheticsTestResultRelationships" + $ref: "#/components/schemas/StatusPageDataRelationships" type: - $ref: "#/components/schemas/SyntheticsTestResultSummaryType" + $ref: "#/components/schemas/StatusPageDataType" + required: + - type type: object - SyntheticsTestResultSummaryType: - default: "result_summary" - description: Type of the Synthetic test result summary resource, `result_summary`. - enum: - - result_summary - example: result_summary - type: string - x-enum-varnames: - - RESULT_SUMMARY - SyntheticsTestResultTab: - description: Information about a browser tab involved in a step. + StatusPageDataAttributes: + description: The attributes of a status page. properties: - focused: - description: Whether the tab was focused during the step. - example: true - type: boolean - title: - description: Title of the tab. - example: Team Browser mini-websites + company_logo: + description: Base64-encoded image data displayed on the status page. + nullable: true type: string - url: - description: URL loaded in the tab. - example: http://34.95.79.70/prototype + components: + description: Components displayed on the status page. + items: + $ref: "#/components/schemas/StatusPageDataAttributesComponentsItems" + type: array + created_at: + description: Timestamp of when the status page was created. + format: date-time type: string - type: object - SyntheticsTestResultTrace: - description: Trace identifiers associated with a Synthetic test result. - properties: - id: - description: Datadog APM trace identifier. - example: "5513046492231128177" + custom_domain: + description: If configured, the url that the status page is accessible at. + nullable: true type: string - otel_id: - description: OpenTelemetry trace identifier. - example: d8ba00eb1507bdba8643ba8e7a1c022c + custom_domain_enabled: + description: Whether the custom domain is configured. + type: boolean + domain_prefix: + description: The subdomain of the status page's url taking the form `https://{domain_prefix}.statuspage.datadoghq.com`. Globally unique across Datadog Status Pages. type: string - type: object - SyntheticsTestResultTracerouteHop: - description: A network probe result, used for traceroute hops and ping summaries. - properties: - host: - description: Target hostname. - example: 34.95.79.70 + email_header_image: + description: Base64-encoded image data included in email notifications sent to status page subscribers. + nullable: true type: string - latency: - $ref: "#/components/schemas/SyntheticsTestResultNetworkLatency" - packet_loss_percentage: - description: Percentage of probe packets lost. - example: 0.0 - format: double - type: number - packet_size: - description: Size of each probe packet in bytes. - example: 56 - format: int64 - type: integer - packets_received: - description: Number of probe packets received. - example: 4 - format: int64 - type: integer - packets_sent: - description: Number of probe packets sent. - example: 4 - format: int64 - type: integer - resolved_ip: - description: Resolved IP address for the target. - example: 34.95.79.70 + enabled: + description: Whether the status page is enabled. + type: boolean + favicon: + description: Base64-encoded image data displayed in the browser tab. + nullable: true + type: string + modified_at: + description: Timestamp of when the status page was last modified. + format: date-time type: string - routers: - description: List of intermediate routers for the traceroute. - items: - $ref: "#/components/schemas/SyntheticsTestResultRouter" - type: array - type: object - SyntheticsTestResultTurn: - description: A turn in a goal-based browser test, grouping steps and reasoning. - properties: - bucket_keys: - $ref: "#/components/schemas/SyntheticsTestResultBucketKeys" name: - description: Name of the turn. - example: Turn 1 + description: The name of the status page. type: string - reasoning: - description: Agent reasoning produced for this turn. - example: I need to navigate to the chairs section + page_url: + description: The url that the status page is accessible at. type: string - status: - description: Status of the turn (for example, `passed`, `failed`). - example: passed + slack_app_icon: + description: The Slack app icon URL for the status page. type: string - steps: - description: Steps executed during the turn. + slack_subscriptions_enabled: + description: Whether Slack subscriptions are enabled for the status page. + type: boolean + subscriptions_enabled: + description: Whether users can subscribe to the status page. + type: boolean + type: + $ref: "#/components/schemas/CreateStatusPageRequestDataAttributesType" + visualization_type: + $ref: "#/components/schemas/CreateStatusPageRequestDataAttributesVisualizationType" + type: object + StatusPageDataAttributesComponentsItems: + description: A component displayed on a status page. + properties: + components: + description: If the component is of type `group`, the components within the group. items: - $ref: "#/components/schemas/SyntheticsTestResultTurnStep" + $ref: "#/components/schemas/StatusPageDataAttributesComponentsItemsComponentsItems" type: array - turn_finished_at: - description: Unix timestamp (ms) of when the turn finished. - example: 1724521438800 - format: int64 - type: integer - turn_started_at: - description: Unix timestamp (ms) of when the turn started. - example: 1724521436800 + id: + description: The ID of the component. + format: uuid + type: string + name: + description: The name of the component. + type: string + position: + description: The zero-indexed position of the component. format: int64 type: integer + status: + $ref: "#/components/schemas/StatusPagesComponentGroupAttributesComponentsItemsStatus" + type: + $ref: "#/components/schemas/CreateComponentRequestDataAttributesType" type: object - SyntheticsTestResultTurnStep: - description: A step executed during a goal-based browser test turn. - properties: - bucket_keys: - $ref: "#/components/schemas/SyntheticsTestResultBucketKeys" - config: - additionalProperties: {} - description: Browser step configuration for this turn step. - example: - id: step-1 - name: Click on div "Chairs" - type: click - type: object - type: object - SyntheticsTestResultType: - default: "result" - description: Type of the Synthetic test result resource, `result`. - enum: - - result - example: result - type: string - x-enum-varnames: - - RESULT - SyntheticsTestResultVariable: - description: A variable used or extracted during a test. + StatusPageDataAttributesComponentsItemsComponentsItems: + description: A grouped component within a status page component group. properties: - err: - description: Error encountered when evaluating the variable. - example: LOCAL_VARIABLE_UNKNOWN - type: string - error_message: - description: Human-readable error message for variable evaluation. - example: Unknown variable name undefined. - type: string - example: - description: Example value for the variable. - example: lol value - type: string id: - description: Variable identifier. - example: c896702c-1e34-4e62-a67b-432e8092d062 + description: The ID of the component. + format: uuid type: string name: - description: Variable name. - example: HEADER_VALUE - type: string - pattern: - description: Pattern used to extract the variable. - example: lol value + description: The name of the component. type: string - secure: - description: Whether the variable holds a secure value. - example: false - type: boolean + position: + description: The zero-indexed position of the component. Relative to the other components in the group. + format: int64 + type: integer + status: + $ref: "#/components/schemas/StatusPagesComponentGroupAttributesComponentsItemsStatus" type: - description: Variable type. - example: text - type: string - val: - description: Evaluated value of the variable. - example: value-to-extract - type: string - value: - description: Current value of the variable. - example: lol value - type: string + $ref: "#/components/schemas/StatusPagesComponentGroupAttributesComponentsItemsType" type: object - SyntheticsTestResultVariables: - description: Variables captured during a test step. + StatusPageDataRelationships: + description: The relationships of a status page. properties: - config: - description: Variables defined in the test configuration. - items: - $ref: "#/components/schemas/SyntheticsTestResultVariable" - type: array - extracted: - description: Variables extracted during the test execution. - items: - $ref: "#/components/schemas/SyntheticsTestResultVariable" - type: array + created_by_user: + $ref: "#/components/schemas/StatusPageDataRelationshipsCreatedByUser" + description: The Datadog user who created the status page. + last_modified_by_user: + $ref: "#/components/schemas/StatusPageDataRelationshipsLastModifiedByUser" + description: The Datadog user who last modified the status page. type: object - SyntheticsTestResultVitalsMetrics: - description: Web vitals metrics captured during a browser test step. + StatusPageDataRelationshipsCreatedByUser: + description: The Datadog user who created the status page. properties: - cls: - description: Cumulative Layout Shift score. - example: 0.0 - format: double - type: number - fcp: - description: First Contentful Paint in milliseconds. - example: 120.3 - format: double - type: number - inp: - description: Interaction to Next Paint in milliseconds. - example: 85.0 - format: double - type: number - lcp: - description: Largest Contentful Paint in milliseconds. - example: 210.5 - format: double - type: number - ttfb: - description: Time To First Byte in milliseconds. - example: 95.2 - format: double - type: number - url: - description: URL that produced the metrics. - example: http://34.95.79.70/prototype - type: string + data: + $ref: "#/components/schemas/StatusPageDataRelationshipsCreatedByUserData" + required: + - data type: object - SyntheticsTestResultWarning: - description: A warning captured during a browser test step. + StatusPageDataRelationshipsCreatedByUserData: + description: The data object identifying the Datadog user who created the status page. properties: - element_bounds: - description: Bounds of elements related to the warning. - items: - $ref: "#/components/schemas/SyntheticsTestResultBounds" - type: array - message: - description: Warning message. - example: Element is not visible in the viewport + id: + description: The ID of the Datadog user who created the status page. + example: "" type: string type: - description: Type of the warning. - example: visibility - type: string + $ref: "#/components/schemas/StatusPagesUserType" + required: + - type + - id type: object - SyntheticsTestResultWebSocketClose: - description: WebSocket close frame information for WebSocket test responses. + StatusPageDataRelationshipsLastModifiedByUser: + description: The Datadog user who last modified the status page. properties: - reason: - description: Reason string received in the close frame. - example: Normal closure + data: + $ref: "#/components/schemas/StatusPageDataRelationshipsLastModifiedByUserData" + required: + - data + type: object + StatusPageDataRelationshipsLastModifiedByUserData: + description: The data object identifying the Datadog user who last modified the status page. + properties: + id: + description: The ID of the Datadog user who last modified the status page. + example: "" type: string - status_code: - description: Status code received in the close frame. - example: 1000 - format: int64 - type: integer + type: + $ref: "#/components/schemas/StatusPagesUserType" + required: + - type + - id type: object - SyntheticsTestSubType: - description: Subtype of the Synthetic test that produced this result. - enum: - - dns - - grpc - - http - - icmp - - mcp - - multi - - ssl - - tcp - - udp - - websocket - example: http - type: string - x-enum-varnames: - - DNS - - GRPC - - HTTP - - ICMP - - MCP - - MULTI - - SSL - - TCP - - UDP - - WEBSOCKET - SyntheticsTestType: - description: Type of the Synthetic test that produced this result. + StatusPageDataType: + default: status_pages + description: Status pages resource type. enum: - - api - - browser - - mobile - - network - example: api + - status_pages + example: status_pages type: string x-enum-varnames: - - API - - BROWSER - - MOBILE - - NETWORK - SyntheticsTestVersionActionMetadata: - description: Object containing metadata about a change action. + - STATUS_PAGES + StatusPagesComponent: + description: Response object for a single component. properties: - after_value: - description: The value of the property after the change. - before_value: - description: The value of the property before the change. - diff_patches: - description: List of diff patches for text changes. + data: + $ref: "#/components/schemas/StatusPagesComponentData" + included: + description: The included related resources of a component. Client must explicitly request these resources by name in the `include` query parameter. items: - $ref: "#/components/schemas/SyntheticsTestVersionDiffPatches" - nullable: true + $ref: "#/components/schemas/StatusPagesComponentArrayIncluded" type: array - property_path: - description: The dot-separated path of the property that was changed. - type: string type: object - SyntheticsTestVersionAttributes: - description: Attributes of a specific Synthetic test version. + StatusPagesComponentArray: + description: Response object for a list of components. properties: - author: - $ref: "#/components/schemas/SyntheticsTestVersionAuthor" - change_metadata: - description: |- - List of metadata describing individual changes in this version. - Only returned when the `include_change_metadata` query parameter is `true`. + data: + description: A list of component data objects. items: - $ref: "#/components/schemas/SyntheticsTestVersionChangeMetadataItem" + $ref: "#/components/schemas/StatusPagesComponentData" type: array - payload: - additionalProperties: {} - description: The full test configuration at this version. - type: object - version_payload_created_at: - description: Timestamp of when this version was created. - example: "2024-01-01T00:00:00+00:00" - format: date-time - type: string + included: + description: The included related resources of a component. Client must explicitly request these resources by name in the `include` query parameter. + items: + $ref: "#/components/schemas/StatusPagesComponentArrayIncluded" + type: array + required: + - data type: object - SyntheticsTestVersionAuthor: - description: Object describing the author of a test version. + StatusPagesComponentArrayIncluded: + description: An included resource related to a component. + oneOf: + - $ref: "#/components/schemas/StatusPagesUser" + - $ref: "#/components/schemas/StatusPageAsIncluded" + - $ref: "#/components/schemas/StatusPagesComponentGroup" + StatusPagesComponentData: + description: The data object for a component. properties: - email: - description: Email address of the author. - example: john.doe@example.com - type: string - handle: - description: The author's Datadog handle (login username). - example: john.doe - type: string + attributes: + $ref: "#/components/schemas/StatusPagesComponentDataAttributes" id: - description: UUID of the author. - example: "00000000-0000-0000-0000-000000000000" - type: string - name: - description: Display name of the author. - example: John Doe + description: The ID of the component. + format: uuid type: string + relationships: + $ref: "#/components/schemas/StatusPagesComponentDataRelationships" + type: + $ref: "#/components/schemas/StatusPagesComponentGroupType" + required: + - type type: object - SyntheticsTestVersionChangeAttributes: - description: Attributes of a version change record. + StatusPagesComponentDataAttributes: + description: The attributes of a component. properties: - author_uuid: - description: UUID of the user who created this version. - example: "00000000-0000-0000-0000-000000000000" - type: string - change_metadata: - description: List of metadata describing individual changes in this version. + components: + description: If the component is of type `group`, the components within the group. items: - $ref: "#/components/schemas/SyntheticsTestVersionChangeMetadataItem" + $ref: "#/components/schemas/StatusPagesComponentDataAttributesComponentsItems" type: array - version_number: - description: The sequential version number. - example: 5 - format: int64 - type: integer - version_payload_created_at: - description: Timestamp of when this version was created. - example: "2024-01-01T00:00:00+00:00" + created_at: + description: Timestamp of when the component was created. format: date-time type: string - type: object - SyntheticsTestVersionChangeData: - description: Data object for a version change record. - properties: - attributes: - $ref: "#/components/schemas/SyntheticsTestVersionChangeAttributes" - id: - description: UUID of the version change record. - example: "00000000-0000-0000-0000-000000000000" + modified_at: + description: Timestamp of when the component was last modified. + format: date-time + type: string + name: + description: The name of the component. type: string + position: + description: The zero-indexed position of the component. + format: int64 + type: integer + status: + $ref: "#/components/schemas/StatusPagesComponentDataAttributesStatus" type: - $ref: "#/components/schemas/SyntheticsTestVersionChangeType" + $ref: "#/components/schemas/CreateComponentRequestDataAttributesType" + required: + - type type: object - SyntheticsTestVersionChangeMetadataItem: - description: Object describing a single change within a version. + StatusPagesComponentDataAttributesComponentsItems: + description: A component within a component group. properties: - action: - description: The action that was performed (for example, `updated` or `created`). + id: + description: The ID of the component within the group. + format: uuid + readOnly: true type: string - action_metadata: - $ref: "#/components/schemas/SyntheticsTestVersionActionMetadata" + name: + description: The name of the component within the group. + type: string + position: + description: The zero-indexed position of the component within the group. + format: int64 + type: integer + status: + $ref: "#/components/schemas/StatusPagesComponentGroupAttributesComponentsItemsStatus" + type: + $ref: "#/components/schemas/StatusPagesComponentGroupAttributesComponentsItemsType" type: object - SyntheticsTestVersionChangeType: - default: version_metadata - description: Type of the version metadata resource. + StatusPagesComponentDataAttributesStatus: + description: The status of the component. enum: - - version_metadata - example: version_metadata + - operational + - degraded + - partial_outage + - major_outage + - maintenance + example: operational type: string x-enum-varnames: - - VERSION_METADATA - SyntheticsTestVersionData: - description: Data object for a specific Synthetic test version. + - OPERATIONAL + - DEGRADED + - PARTIAL_OUTAGE + - MAJOR_OUTAGE + - MAINTENANCE + StatusPagesComponentDataRelationships: + description: The relationships of a component. properties: - attributes: - $ref: "#/components/schemas/SyntheticsTestVersionAttributes" - id: - description: UUID of the version record. - example: "00000000-0000-0000-0000-000000000000" - type: string - type: - $ref: "#/components/schemas/SyntheticsTestVersionType" + created_by_user: + $ref: "#/components/schemas/StatusPagesComponentDataRelationshipsCreatedByUser" + description: The Datadog user who created the component. + group: + $ref: "#/components/schemas/StatusPagesComponentDataRelationshipsGroup" + description: The group the component belongs to. + last_modified_by_user: + $ref: "#/components/schemas/StatusPagesComponentDataRelationshipsLastModifiedByUser" + description: The Datadog user who last modified the component. + status_page: + $ref: "#/components/schemas/StatusPagesComponentDataRelationshipsStatusPage" + description: The status page the component belongs to. type: object - SyntheticsTestVersionDiffPatchDiff: - description: Object describing a single text diff operation. + StatusPagesComponentDataRelationshipsCreatedByUser: + description: The Datadog user who created the component. properties: - change_text: - description: The text that was changed. - type: string - operation: - description: The diff operation applied. - type: string + data: + $ref: "#/components/schemas/StatusPagesComponentDataRelationshipsCreatedByUserData" + required: + - data type: object - SyntheticsTestVersionDiffPatches: - description: Object describing a patch in the diff. + StatusPagesComponentDataRelationshipsCreatedByUserData: + description: The data object identifying the Datadog user who created the component. properties: - diffs: - description: List of individual diff operations. - items: - $ref: "#/components/schemas/SyntheticsTestVersionDiffPatchDiff" - type: array - length1: - description: Length of the original text segment. - format: int64 - type: integer - length2: - description: Length of the modified text segment. - format: int64 - type: integer - start1: - description: Start position in the original text. - format: int64 - type: integer - start2: - description: Start position in the modified text. - format: int64 - type: integer + id: + description: The ID of the Datadog user who created the component. + example: "" + type: string + type: + $ref: "#/components/schemas/StatusPagesUserType" + required: + - type + - id type: object - SyntheticsTestVersionHistoryMeta: - description: Pagination metadata for a version history response. + StatusPagesComponentDataRelationshipsGroup: + description: The group the component belongs to. properties: - next_last_version_number: - description: |- - The version number to use as the `last_version_number` query parameter - to fetch the next page. `null` indicates there are no more pages. - example: 3 - format: int64 - nullable: true - type: integer - retention_period_in_days: - description: The number of days that version history is retained. - example: 30 - format: int64 - type: integer + data: + $ref: "#/components/schemas/StatusPagesComponentDataRelationshipsGroupData" + required: + - data type: object - SyntheticsTestVersionHistoryResponse: - description: Response containing the paginated version history for a Synthetic test. + StatusPagesComponentDataRelationshipsGroupData: + description: The data object identifying the group the component belongs to. + nullable: true properties: - data: - description: List of version change records. - items: - $ref: "#/components/schemas/SyntheticsTestVersionChangeData" - type: array - meta: - $ref: "#/components/schemas/SyntheticsTestVersionHistoryMeta" + id: + description: The ID of the group the component belongs to. + example: "1234abcd-12ab-34cd-56ef-123456abcdef" + format: uuid + type: string + type: + $ref: "#/components/schemas/StatusPagesComponentGroupType" + required: + - type + - id type: object - SyntheticsTestVersionResponse: - description: Response containing a specific version of a Synthetic test. + StatusPagesComponentDataRelationshipsLastModifiedByUser: + description: The Datadog user who last modified the component. properties: data: - $ref: "#/components/schemas/SyntheticsTestVersionData" + $ref: "#/components/schemas/StatusPagesComponentDataRelationshipsLastModifiedByUserData" + required: + - data type: object - SyntheticsTestVersionType: - default: version - description: Type of the version resource. - enum: - - version - example: version - type: string - x-enum-varnames: - - VERSION - SyntheticsVariableParser: - description: Details of the parser to use for the global variable. - example: - type: regex - value: .* + StatusPagesComponentDataRelationshipsLastModifiedByUserData: + description: The data object identifying the Datadog user who last modified the component. properties: - type: - $ref: "#/components/schemas/SyntheticsGlobalVariableParserType" - value: - description: Regex or JSON path used for the parser. Not used with type `raw`. + id: + description: The ID of the Datadog user who last modified the component. + example: "" type: string + type: + $ref: "#/components/schemas/StatusPagesUserType" required: - type + - id type: object - TableResultV2: - description: A reference table resource containing its full configuration and state. - example: - data: - attributes: - created_by: 00000000-0000-0000-0000-000000000000 - description: example description - file_metadata: - access_details: - aws_detail: - aws_account_id: "123456789000" - aws_bucket_name: "my-bucket" - file_path: "path/to/file.csv" - sync_enabled: true - last_updated_by: 00000000-0000-0000-0000-000000000000 - row_count: 5 - schema: - fields: - - name: id - type: INT32 - - name: name - type: STRING - primary_keys: - - id - source: S3 - status: DONE - table_name: test_reference_table - tags: - - tag1 - - tag2 - updated_at: "2000-01-01T01:00:00+00:00" - id: 00000000-0000-0000-0000-000000000000 - type: reference_table + StatusPagesComponentDataRelationshipsStatusPage: + description: The status page the component belongs to. properties: data: - $ref: "#/components/schemas/TableResultV2Data" + $ref: "#/components/schemas/StatusPagesComponentDataRelationshipsStatusPageData" + required: + - data type: object - TableResultV2Array: - description: List of reference tables. - example: - data: - - attributes: - created_by: 00000000-0000-0000-0000-000000000000 - description: example description - file_metadata: - access_details: {} - error_message: "" - error_row_count: 0 - upload_id: 00000000-0000-0000-0000-000000000000 - last_updated_by: "" - row_count: 5 - schema: - fields: - - name: id - type: INT32 - - name: name - type: STRING - primary_keys: - - id - source: LOCAL_FILE - status: DONE - table_name: test_reference_table - tags: - - tag1 - - tag2 - updated_at: "2000-01-01T01:00:00+00:00" - id: 00000000-0000-0000-0000-000000000000 - type: reference_table - - attributes: - created_by: 00000000-0000-0000-0000-000000000000 - description: example description - file_metadata: - access_details: - aws_detail: - aws_account_id: test-account-id - aws_bucket_name: test-bucket - file_path: test_rt.csv - error_message: "" - error_row_count: 0 - sync_enabled: true - last_updated_by: 00000000-0000-0000-0000-000000000000 - row_count: 5 - schema: - fields: - - name: location - type: STRING - - name: file_name - type: STRING - primary_keys: - - location - source: S3 - status: DONE - table_name: test_reference_table_2 - tags: - - test_tag1 - - tag2 - - "3" - updated_at: "2000-01-01T01:00:00+00:00" - id: 00000000-0000-0000-0000-000000000000 - type: reference_table + StatusPagesComponentDataRelationshipsStatusPageData: + description: The data object identifying the status page the component belongs to. properties: - data: - description: The reference tables. - items: - $ref: "#/components/schemas/TableResultV2Data" - type: array + id: + description: The ID of the status page the component belongs to. + example: "1234abcd-12ab-34cd-56ef-123456abcdef" + format: uuid + type: string + type: + $ref: "#/components/schemas/StatusPageDataType" required: - - data + - type + - id type: object - TableResultV2Data: - additionalProperties: false - description: The data object containing the reference table configuration and state. + StatusPagesComponentGroup: + description: The included component group resource. properties: attributes: - $ref: "#/components/schemas/TableResultV2DataAttributes" + $ref: "#/components/schemas/StatusPagesComponentGroupAttributes" id: - description: Unique identifier for the reference table. + description: The ID of the component. + format: uuid type: string + relationships: + $ref: "#/components/schemas/StatusPagesComponentGroupRelationships" type: - $ref: "#/components/schemas/TableResultV2DataType" + $ref: "#/components/schemas/StatusPagesComponentGroupType" required: - type type: object - TableResultV2DataAttributes: - description: Attributes that define the reference table's configuration and properties. + StatusPagesComponentGroupAttributes: + description: The attributes of a component group. properties: - created_by: - description: UUID of the user who created the reference table. - example: "00000000-0000-0000-0000-000000000000" + components: + description: If the component is of type `group`, the components within the group. + items: + $ref: "#/components/schemas/StatusPagesComponentGroupAttributesComponentsItems" + type: array + created_at: + description: Timestamp of when the component was created. + format: date-time type: string - description: - description: Optional text describing the purpose or contents of this reference table. - example: "example description" + modified_at: + description: Timestamp of when the component was last modified. + format: date-time type: string - file_metadata: - $ref: "#/components/schemas/TableResultV2DataAttributesFileMetadata" - last_updated_by: - description: UUID of the user who last updated the reference table. - example: "00000000-0000-0000-0000-000000000000" + name: + description: The name of the component. type: string - row_count: - description: The number of successfully processed rows in the reference table. - example: 5 + position: + description: The zero-indexed position of the component. format: int64 type: integer - schema: - $ref: "#/components/schemas/TableResultV2DataAttributesSchema" - source: - $ref: "#/components/schemas/ReferenceTableSourceType" status: - description: The processing status of the table. - example: "DONE" - type: string - table_name: - description: Unique name to identify this reference table. Used in enrichment processors and API calls. - example: "table_1" - type: string - tags: - description: Tags for organizing and filtering reference tables. - example: - - "tag_1" - - "tag_2" - items: - description: A tag associated with the reference table. - type: string - type: array - updated_at: - description: When the reference table was last updated, in ISO 8601 format. - example: "2000-01-01T01:00:00+00:00" - type: string + $ref: "#/components/schemas/StatusPagesComponentDataAttributesStatus" + type: + $ref: "#/components/schemas/CreateComponentRequestDataAttributesType" + required: + - type type: object - TableResultV2DataAttributesFileMetadata: - additionalProperties: false - description: |- - Metadata specifying where and how to access the reference table's data file. - - For cloud storage tables (S3/GCS/Azure): - - sync_enabled and access_details will always be present - - error fields (error_message, error_row_count, error_type) are present only when errors occur - - For local file tables: - - error fields (error_message, error_row_count) are present only when errors occur - - sync_enabled, access_details are never present + StatusPagesComponentGroupAttributesComponentsItems: + description: A component within a component group. properties: - access_details: - $ref: "#/components/schemas/TableResultV2DataAttributesFileMetadataOneOfAccessDetails" - description: Cloud storage access configuration. Only present for cloud storage sources (S3, GCS, Azure). - error_message: - description: >- - The error message returned from the last operation (sync for cloud storage, upload for local file). + id: + description: The ID of the grouped component. + format: uuid + readOnly: true type: string - error_row_count: - description: The number of rows that failed to process. + name: + description: The name of the grouped component. + type: string + position: + description: The zero-indexed position of the grouped component. Relative to the other components in the group. format: int64 type: integer - error_type: - $ref: "#/components/schemas/TableResultV2DataAttributesFileMetadataCloudStorageErrorType" - description: >- - The type of error that occurred during file processing. Only applicable for cloud storage sources. - sync_enabled: - description: >- - Whether this table is synced automatically from cloud storage. Only applicable for cloud storage sources. - type: boolean - title: FileMetadataV2 + status: + $ref: "#/components/schemas/StatusPagesComponentGroupAttributesComponentsItemsStatus" + type: + $ref: "#/components/schemas/StatusPagesComponentGroupAttributesComponentsItemsType" type: object - TableResultV2DataAttributesFileMetadataCloudStorageErrorType: - description: >- - The type of error that occurred during file processing. This field provides high-level error categories for easier troubleshooting and is only present when there are errors. + StatusPagesComponentGroupAttributesComponentsItemsStatus: + description: The status of the component. enum: - - TABLE_SCHEMA_ERROR - - FILE_FORMAT_ERROR - - CONFIGURATION_ERROR - - QUOTA_EXCEEDED - - CONFLICT_ERROR - - VALIDATION_ERROR - - STATE_ERROR - - OPERATION_ERROR - - SYSTEM_ERROR + - operational + - degraded + - partial_outage + - major_outage + - maintenance + readOnly: true type: string x-enum-varnames: - - TABLE_SCHEMA_ERROR - - FILE_FORMAT_ERROR - - CONFIGURATION_ERROR - - QUOTA_EXCEEDED - - CONFLICT_ERROR - - VALIDATION_ERROR - - STATE_ERROR - - OPERATION_ERROR - - SYSTEM_ERROR - TableResultV2DataAttributesFileMetadataOneOfAccessDetails: - description: Cloud storage access configuration for the reference table data file. - properties: - aws_detail: - $ref: "#/components/schemas/TableResultV2DataAttributesFileMetadataOneOfAccessDetailsAwsDetail" - azure_detail: - $ref: "#/components/schemas/TableResultV2DataAttributesFileMetadataOneOfAccessDetailsAzureDetail" - gcp_detail: - $ref: "#/components/schemas/TableResultV2DataAttributesFileMetadataOneOfAccessDetailsGcpDetail" - type: object - TableResultV2DataAttributesFileMetadataOneOfAccessDetailsAwsDetail: - description: Amazon Web Services S3 storage access configuration. + - OPERATIONAL + - DEGRADED + - PARTIAL_OUTAGE + - MAJOR_OUTAGE + - MAINTENANCE + StatusPagesComponentGroupAttributesComponentsItemsType: + description: The type of the component. + enum: + - component + example: component + type: string + x-enum-varnames: + - COMPONENT + StatusPagesComponentGroupRelationships: + description: The relationships of a component group. properties: - aws_account_id: - description: AWS account ID where the S3 bucket is located. - example: "123456789000" - type: string - aws_bucket_name: - description: S3 bucket containing the CSV file. - example: "example-data-bucket" - type: string - file_path: - description: The relative file path from the S3 bucket root to the CSV file. - example: "reference-tables/users.csv" - type: string + created_by_user: + $ref: "#/components/schemas/StatusPagesComponentGroupRelationshipsCreatedByUser" + group: + $ref: "#/components/schemas/StatusPagesComponentGroupRelationshipsGroup" + last_modified_by_user: + $ref: "#/components/schemas/StatusPagesComponentGroupRelationshipsLastModifiedByUser" + status_page: + $ref: "#/components/schemas/StatusPagesComponentGroupRelationshipsStatusPage" type: object - x-oneOf-parent: - - AwsDetail - TableResultV2DataAttributesFileMetadataOneOfAccessDetailsAzureDetail: - description: Azure Blob Storage access configuration. + StatusPagesComponentGroupRelationshipsCreatedByUser: + description: The Datadog user who created the component group. properties: - azure_client_id: - description: Azure service principal (application) client ID with permissions to read from the container. - example: "aaaaaaaa-1111-2222-3333-bbbbbbbbbbbb" - type: string - azure_container_name: - description: Azure Blob Storage container containing the CSV file. - example: "reference-data" - type: string - azure_storage_account_name: - description: Azure storage account where the container is located. - example: "examplestorageaccount" - type: string - azure_tenant_id: - description: Azure Active Directory tenant ID. - example: "cccccccc-4444-5555-6666-dddddddddddd" - type: string - file_path: - description: The relative file path from the Azure container root to the CSV file. - example: "tables/users.csv" - type: string + data: + $ref: "#/components/schemas/StatusPagesComponentGroupRelationshipsCreatedByUserData" + required: + - data type: object - x-oneOf-parent: - - AzureDetail - TableResultV2DataAttributesFileMetadataOneOfAccessDetailsGcpDetail: - description: Google Cloud Platform storage access configuration. + StatusPagesComponentGroupRelationshipsCreatedByUserData: + description: The data object identifying the Datadog user who created the component group. properties: - file_path: - description: The relative file path from the GCS bucket root to the CSV file. - example: "data/reference_tables/users.csv" - type: string - gcp_bucket_name: - description: GCP bucket containing the CSV file. - example: "example-data-bucket" - type: string - gcp_project_id: - description: GCP project ID where the bucket is located. - example: "example-gcp-project-12345" - type: string - gcp_service_account_email: - description: Service account email with read permissions for the GCS bucket. - example: "example-service@example-gcp-project-12345.iam.gserviceaccount.com" + id: + description: The ID of the Datadog user who created the component group. + example: "" type: string + type: + $ref: "#/components/schemas/StatusPagesUserType" + required: + - type + - id type: object - x-oneOf-parent: - - GcpDetail - TableResultV2DataAttributesSchema: - description: Schema defining the structure and columns of the reference table. + StatusPagesComponentGroupRelationshipsGroup: + description: The group the component group belongs to. properties: - fields: - description: The schema fields. Maximum of 200 columns. - items: - $ref: "#/components/schemas/TableResultV2DataAttributesSchemaFieldsItems" - maxItems: 200 - minItems: 1 - type: array - primary_keys: - description: >- - List of field names that serve as primary keys for the table. Only one primary key is supported, and it is used as an ID to retrieve rows. - example: - - "field_1" - items: - description: A field name used as a primary key. - type: string - type: array + data: + $ref: "#/components/schemas/StatusPagesComponentGroupRelationshipsGroupData" required: - - fields - - primary_keys + - data type: object - TableResultV2DataAttributesSchemaFieldsItems: - description: A single field (column) in the reference table schema to be returned. + StatusPagesComponentGroupRelationshipsGroupData: + description: The data object identifying the parent group of a component group. + nullable: true properties: - name: - description: The field name. - example: "field_1" + id: + description: The ID of the parent group. + example: "1234abcd-12ab-34cd-56ef-123456abcdef" + format: uuid type: string type: - $ref: "#/components/schemas/ReferenceTableSchemaFieldType" + $ref: "#/components/schemas/StatusPagesComponentGroupType" required: - - name - type + - id type: object - TableResultV2DataType: - default: reference_table - description: Reference table resource type. - enum: - - reference_table - example: reference_table - type: string - x-enum-varnames: - - REFERENCE_TABLE - TableRowResourceArray: - description: List of rows from a reference table query, along with metadata about rows that were requested but not found. + StatusPagesComponentGroupRelationshipsLastModifiedByUser: + description: The Datadog user who last modified the component group. properties: data: - description: The rows. - items: - $ref: "#/components/schemas/TableRowResourceData" - type: array - meta: - $ref: "#/components/schemas/TableRowResourceArrayMeta" + $ref: "#/components/schemas/StatusPagesComponentGroupRelationshipsLastModifiedByUserData" required: - data type: object - TableRowResourceArrayMeta: - description: Metadata about the rows requested, including which ones were not found. - properties: - found_count: - description: Number of requested rows that were found and returned in `data`. - example: 1 - format: int64 - type: integer - not_found: - description: Row IDs from the request that do not exist in the reference table. Empty when every requested row was found. - example: - - row_id_2 - items: - description: Row identifier, corresponding to the primary key value. - type: string - type: array - requested_count: - description: Number of row IDs supplied in the `row_id` query parameter. - example: 2 - format: int64 - type: integer - required: - - requested_count - - found_count - - not_found - type: object - TableRowResourceData: - additionalProperties: false - description: The data object containing the row column names and values. + StatusPagesComponentGroupRelationshipsLastModifiedByUserData: + description: The data object identifying the Datadog user who last modified the component group. properties: - attributes: - $ref: "#/components/schemas/TableRowResourceDataAttributes" id: - description: Row identifier, corresponding to the primary key value. + description: The ID of the Datadog user who last modified the component group. + example: "" type: string type: - $ref: "#/components/schemas/TableRowResourceDataType" + $ref: "#/components/schemas/StatusPagesUserType" required: - type + - id type: object - TableRowResourceDataAttributes: - additionalProperties: false - description: Column values for this row in the reference table. + StatusPagesComponentGroupRelationshipsStatusPage: + description: The status page the component group belongs to. properties: - values: - description: Key-value pairs representing the row data, where keys are field names from the schema. - type: object + data: + $ref: "#/components/schemas/StatusPagesComponentGroupRelationshipsStatusPageData" + required: + - data type: object - TableRowResourceDataType: - default: row - description: Row resource type. - enum: - - row - example: row - type: string - x-enum-varnames: - - ROW - TableRowResourceIdentifier: - description: Row resource containing a single row identifier. + StatusPagesComponentGroupRelationshipsStatusPageData: + description: The data object identifying the status page the component group belongs to. properties: id: - description: The primary key value that uniquely identifies the row to delete. - example: "primary_key_value" + description: The ID of the status page. + example: "1234abcd-12ab-34cd-56ef-123456abcdef" + format: uuid type: string type: - $ref: "#/components/schemas/TableRowResourceDataType" + $ref: "#/components/schemas/StatusPageDataType" required: - type - id type: object - TagData: - description: A tag resource associated with an app. + StatusPagesComponentGroupType: + default: components + description: Components resource type. + enum: + - components + example: components + type: string + x-enum-varnames: + - COMPONENTS + StatusPagesUser: + description: The included Datadog user resource. properties: + attributes: + $ref: "#/components/schemas/StatusPagesUserAttributes" id: - description: The name of the tag. - example: production + description: The ID of the Datadog user. + format: uuid type: string type: - $ref: "#/components/schemas/TagDataType" + $ref: "#/components/schemas/StatusPagesUserType" required: - - id - type type: object - TagDataType: - description: The resource type for a tag. - enum: - - tag - example: tag - minLength: 3 - type: string - x-enum-varnames: - - TAG - TagIndexingRuleAttributes: - description: Attributes of a tag indexing rule. + StatusPagesUserAttributes: + description: Attributes of the Datadog user. properties: - created_at: - description: Timestamp when the rule was created. - example: "2024-01-15T12:00:00.000Z" - format: date-time - readOnly: true - type: string - created_by_handle: - description: Handle of the user who created the rule. - example: user@datadoghq.com - readOnly: true + email: + description: The email of the Datadog user. type: string - exclude_tags_mode: - description: >- - When true, the rule excludes the listed tags and indexes all others. When false (default), the rule includes only the listed tags. - example: false - type: boolean - ignored_metric_name_matches: - description: Metric name prefixes excluded from the rule's scope. - example: - - "dd.test.excluded.*" - items: - type: string - type: array - metric_name_matches: - description: Metric name prefixes (glob patterns) this rule applies to. - example: - - "dd.test.*" - items: - type: string - type: array - modified_at: - description: Timestamp when the rule was last modified. - example: "2024-01-15T12:00:00.000Z" - format: date-time - readOnly: true + handle: + description: The handle of the Datadog user. type: string - modified_by_handle: - description: Handle of the user who last modified the rule. - example: user@datadoghq.com - readOnly: true + icon: + description: The icon of the Datadog user. type: string name: - description: Human-readable name for the rule. - example: my-indexing-rule + description: The name of the Datadog user. + type: string + uuid: + description: The UUID of the Datadog user. type: string - options: - $ref: "#/components/schemas/TagIndexingRuleOptions" - rule_order: - description: >- - Evaluation order within the org. Lower values are evaluated first. Assigned server-side on create (max+1); pass on update to change the rule's position. - example: 1 - format: int64 - readOnly: true - type: integer - tags: - description: Tag keys managed by this rule. - example: - - env - - service - items: - type: string - type: array type: object - TagIndexingRuleCreateAttributes: - description: Attributes for creating a tag indexing rule. + StatusPagesUserType: + default: users + description: Users resource type. + enum: + - users + example: users + type: string + x-enum-varnames: + - USERS + StatuspageAccountCreateAttributes: + description: The Statuspage account attributes for a create request. properties: - exclude_tags_mode: - description: >- - When true, the rule excludes the listed tags and indexes all others. When false (default), the rule includes only the listed tags. - example: false - type: boolean - ignored_metric_name_matches: - description: Metric name prefixes excluded from the rule's scope. - items: - type: string - type: array - metric_name_matches: - description: Metric name prefixes (glob patterns) this rule applies to. - example: - - "dd.test.*" - items: - type: string - type: array - name: - description: Human-readable name for the rule. - example: my-indexing-rule + api_key: + description: The Statuspage API key for your Statuspage account. + example: "00000000-0000-0000-0000-000000000000" + minLength: 1 type: string - options: - $ref: "#/components/schemas/TagIndexingRuleOptions" - tags: - description: Tag keys managed by this rule. - example: - - env - - service - items: - type: string - type: array required: - - name - - metric_name_matches + - api_key type: object - TagIndexingRuleCreateData: - description: Data object for creating a tag indexing rule. + StatuspageAccountCreateData: + description: Statuspage account data for a create request. properties: attributes: - $ref: "#/components/schemas/TagIndexingRuleCreateAttributes" + $ref: "#/components/schemas/StatuspageAccountCreateAttributes" type: - $ref: "#/components/schemas/TagIndexingRuleType" + $ref: "#/components/schemas/StatuspageAccountType" required: - type - attributes type: object - TagIndexingRuleCreateRequest: - description: Request body for creating a tag indexing rule. + StatuspageAccountCreateRequest: + description: Create request for a Statuspage account. properties: data: - $ref: "#/components/schemas/TagIndexingRuleCreateData" + $ref: "#/components/schemas/StatuspageAccountCreateData" required: - data type: object - TagIndexingRuleData: - description: A tag indexing rule resource object. - properties: - attributes: - $ref: "#/components/schemas/TagIndexingRuleAttributes" - id: - description: The unique identifier (UUID) of the tag indexing rule. - example: "00000000-0000-0000-0000-000000000001" - type: string - type: - $ref: "#/components/schemas/TagIndexingRuleType" - type: object - TagIndexingRuleDynamicTags: - description: |- - Options for dynamic tag indexing applied per metric, such as tags filtered by query usage. - - Before a tag key is dropped by this rule, two grace period conditions must be met: - - 1. The metric must be submitted for at least as long as the selected window. - 2. A tag key must have been submitted for at least 15 days. - - Any metric or tag key that does not meet these conditions are excluded from this - indexing rule. The `exclude_not_*` fields require `exclude_tags_mode` to be set to `true`. - properties: - exclude_not_queried_window_seconds: - description: >- - Tags that have not been queried within this window are excluded from indexing. Maximum of `7776000` (90 days). - example: 3600 - format: int64 - maximum: 7776000 - type: integer - exclude_not_used_in_assets: - description: >- - Tags not used in any dashboards, monitors, notebooks, or SLOs are excluded from indexing. - example: false - type: boolean - type: object - TagIndexingRuleExemptionAttributes: - description: Attributes of a tag indexing rule exemption. + StatuspageAccountResponse: + description: Response containing a Statuspage account. properties: - created_at: - description: Timestamp when the exemption was created. - example: "2024-01-15T12:00:00.000Z" - format: date-time - readOnly: true - type: string - created_by_handle: - description: Handle of the user who created the exemption. - example: user@datadoghq.com - readOnly: true - type: string - kind: - description: >- - Discriminates between an explicit exemption (`exemption`) and a pre-existing legacy tag configuration acting as an implicit exclusion (`legacy_tag_configuration`). - example: exemption - type: string - reason: - description: The reason the metric is exempt from tag indexing rules. - example: This metric has a pre-existing tag configuration. - type: string + data: + $ref: "#/components/schemas/StatuspageAccountResponseData" + required: + - data type: object - TagIndexingRuleExemptionCreateAttributes: - description: Attributes for creating a tag indexing rule exemption. + StatuspageAccountResponseAttributes: + description: The attributes from a Statuspage account response. properties: - reason: - description: The reason the metric is exempt from tag indexing rules. - example: This metric has a pre-existing tag configuration. + api_key: + description: The Statuspage API key for your Statuspage account. The value is always returned masked. + example: "*****" type: string - required: - - reason type: object - TagIndexingRuleExemptionCreateData: - description: Data object for creating a tag indexing rule exemption. + StatuspageAccountResponseData: + description: Statuspage account data from a response. properties: attributes: - $ref: "#/components/schemas/TagIndexingRuleExemptionCreateAttributes" + $ref: "#/components/schemas/StatuspageAccountResponseAttributes" type: - $ref: "#/components/schemas/TagIndexingRuleExemptionType" + $ref: "#/components/schemas/StatuspageAccountType" required: - type - attributes type: object - TagIndexingRuleExemptionCreateRequest: - description: Request body for creating a tag indexing rule exemption. - properties: - data: - $ref: "#/components/schemas/TagIndexingRuleExemptionCreateData" - required: - - data - type: object - TagIndexingRuleExemptionData: - description: A tag indexing rule exemption resource object. - properties: - attributes: - $ref: "#/components/schemas/TagIndexingRuleExemptionAttributes" - id: - description: The metric name, used as the resource ID. - example: dd.test.metric - type: string - type: - $ref: "#/components/schemas/TagIndexingRuleExemptionType" - type: object - TagIndexingRuleExemptionResponse: - description: Response containing a tag indexing rule exemption. - properties: - data: - $ref: "#/components/schemas/TagIndexingRuleExemptionData" - readOnly: true - type: object - TagIndexingRuleExemptionType: - default: tag_indexing_rule_exemptions - description: The tag indexing rule exemption resource type. + StatuspageAccountType: + default: statuspage-account + description: Statuspage account resource type. enum: - - tag_indexing_rule_exemptions - example: tag_indexing_rule_exemptions + - statuspage-account + example: statuspage-account type: string x-enum-varnames: - - TAG_INDEXING_RULE_EXEMPTIONS - TagIndexingRuleMetricMatch: - description: Criteria for matching metrics based on query state. - properties: - is_queried: - description: Match metrics that are being queried. - type: boolean - not_queried: - description: Match metrics that are not being queried. - type: boolean - not_used_in_assets: - description: Match metrics not used in any dashboards or monitors. - type: boolean - queried_window_seconds: - description: Window in seconds for evaluating query state. - example: 3600 - format: int64 - type: integer - used_in_assets: - description: Match metrics used in dashboards or monitors. - type: boolean - type: object - TagIndexingRuleOptions: - description: Versioned configuration options for a tag indexing rule. - properties: - data: - $ref: "#/components/schemas/TagIndexingRuleOptionsData" - version: - description: Options schema version. Only `1` is supported. - example: 1 - format: int64 - type: integer - type: object - TagIndexingRuleOptionsData: - description: Data payload for tag indexing rule options. - properties: - dynamic_tags: - $ref: "#/components/schemas/TagIndexingRuleDynamicTags" - manage_preexisting_metrics: - description: >- - When true, the rule applies to metrics that were ingested before the rule was created. - example: true - type: boolean - metric_match: - $ref: "#/components/schemas/TagIndexingRuleMetricMatch" - override_previous_rules: - description: >- - When true, this rule's tag list overrides tags configured by earlier rules for the same metric. When false (default), tags from all matching rules are combined. - example: false - type: boolean - type: object - TagIndexingRuleOrderAttributes: - description: Attributes for the reorder operation. + - STATUSPAGE_ACCOUNT + StatuspageAccountUpdateAttributes: + description: The Statuspage account attributes for an update request. properties: - rule_ids: - description: >- - Ordered list of tag indexing rule UUIDs. The server assigns rule_order 1, 2, … matching position in this list. - example: - - "00000000-0000-0000-0000-000000000001" - - "00000000-0000-0000-0000-000000000002" - items: - type: string - type: array + api_key: + description: The Statuspage API key for your Statuspage account. + example: "00000000-0000-0000-0000-000000000000" + minLength: 1 + type: string type: object - TagIndexingRuleOrderData: - description: Data object for the reorder operation. + StatuspageAccountUpdateData: + description: Statuspage account data for an update request. properties: attributes: - $ref: "#/components/schemas/TagIndexingRuleOrderAttributes" + $ref: "#/components/schemas/StatuspageAccountUpdateAttributes" type: - $ref: "#/components/schemas/TagIndexingRuleType" + $ref: "#/components/schemas/StatuspageAccountType" required: - type - attributes type: object - TagIndexingRuleOrderRequest: - description: Request body for reordering tag indexing rules. + StatuspageAccountUpdateRequest: + description: Update request for a Statuspage account. properties: data: - $ref: "#/components/schemas/TagIndexingRuleOrderData" + $ref: "#/components/schemas/StatuspageAccountUpdateData" required: - data type: object - TagIndexingRuleResponse: - description: Response containing a single tag indexing rule. - properties: - data: - $ref: "#/components/schemas/TagIndexingRuleData" - readOnly: true - type: object - TagIndexingRuleType: - default: tag_indexing_rules - description: The tag indexing rule resource type. - enum: - - tag_indexing_rules - example: tag_indexing_rules - type: string - x-enum-varnames: - - TAG_INDEXING_RULES - TagIndexingRuleUpdateAttributes: - description: Attributes for updating a tag indexing rule. All fields are optional; omitted fields are unchanged. + StatuspageUrlSettingCreateAttributes: + description: The Statuspage URL setting attributes for a create request. properties: - exclude_tags_mode: - description: >- - When true, the rule excludes the listed tags and indexes all others. - type: boolean - ignored_metric_name_matches: - description: Metric name prefixes excluded from the rule's scope. - items: - type: string - type: array - metric_name_matches: - description: Metric name prefixes (glob patterns) this rule applies to. - example: - - "dd.test.*" - items: - type: string - type: array - name: - description: Human-readable name for the rule. - example: my-indexing-rule + custom_tags: + description: Comma-separated list of custom tags to apply to events generated from this Statuspage URL. + example: "team:collaboration-integrations,env:prod" + minLength: 1 type: string - options: - $ref: "#/components/schemas/TagIndexingRuleOptions" - rule_order: - description: >- - Desired evaluation order. Returns 409 if the value conflicts with another rule; use POST /api/v2/metrics/tag-indexing-rules/order for atomic re-sequencing. - example: 2 - format: int64 - type: integer - tags: - description: Tag keys managed by this rule. - example: - - env - - service - items: - type: string - type: array + url: + description: The Statuspage URL to monitor. Must be a `status.io` or `statuspage.com` URL. + example: "https://example.statuspage.io" + minLength: 1 + type: string + required: + - url + - custom_tags type: object - TagIndexingRuleUpdateData: - description: Data object for updating a tag indexing rule. + StatuspageUrlSettingCreateData: + description: Statuspage URL setting data for a create request. properties: attributes: - $ref: "#/components/schemas/TagIndexingRuleUpdateAttributes" + $ref: "#/components/schemas/StatuspageUrlSettingCreateAttributes" type: - $ref: "#/components/schemas/TagIndexingRuleType" + $ref: "#/components/schemas/StatuspageUrlSettingType" required: - type + - attributes type: object - TagIndexingRuleUpdateRequest: - description: Request body for updating a tag indexing rule. + StatuspageUrlSettingCreateRequest: + description: Create request for a Statuspage URL setting. properties: data: - $ref: "#/components/schemas/TagIndexingRuleUpdateData" + $ref: "#/components/schemas/StatuspageUrlSettingCreateData" required: - data type: object - TagIndexingRulesResponse: - description: Response containing a page of tag indexing rules. + StatuspageUrlSettingResponse: + description: Response containing a Statuspage URL setting. properties: data: - description: Array of tag indexing rule objects. - items: - $ref: "#/components/schemas/TagIndexingRuleData" - type: array - links: - $ref: "#/components/schemas/MetricsListResponseLinks" - meta: - $ref: "#/components/schemas/TagIndexingRulesResponseMeta" - readOnly: true - type: object - TagIndexingRulesResponseMeta: - description: Pagination metadata for a list of tag indexing rules. - properties: - total: - description: Total number of tag indexing rules in the org. - example: 5 - format: int64 - type: integer - type: object - TagRuleAttributes: - description: The attributes of a tag rule resource. - properties: - created_at: - description: The RFC 3339 timestamp at which the rule was created. - example: "2026-05-21T22:11:06.108696Z" - format: date-time - type: string - created_by: - description: The identifier of the user who created the rule. - example: "test-user" - type: string - deleted_at: - description: The RFC 3339 timestamp at which the rule was soft-deleted. `null` if the rule has not been deleted. Only present when `include_deleted=true` is requested. - format: date-time - nullable: true - type: string - deleted_by: - description: The identifier of the user who soft-deleted the rule. `null` if the rule has not been deleted. - nullable: true - type: string - enabled: - description: Whether the rule is currently enforced. - example: true - type: boolean - modified_at: - description: The RFC 3339 timestamp at which the rule was last modified. - example: "2026-05-21T22:11:06.108696Z" - format: date-time - type: string - modified_by: - description: The identifier of the user who last modified the rule. - example: "test-user" - type: string - name: - description: Human-readable name for the tag rule. - example: "Service tag must be one of api or web" - type: string - negated: - description: When `true`, the rule matches tag values that do NOT match any of the supplied patterns. - example: false - type: boolean - required: - description: When `true`, telemetry without this tag is treated as a violation. - example: true - type: boolean - rule_type: - $ref: "#/components/schemas/TagRuleType" - scope: - description: The scope the rule applies within. - example: "env" - type: string - source: - $ref: "#/components/schemas/TagRuleSource" - tag_key: - description: The tag key that the rule governs. - example: "service" - type: string - tag_value_patterns: - description: The patterns that valid values for the tag key must match. - example: - - "api" - - "web" - items: - description: A pattern that valid tag values must match. - type: string - type: array - version: - description: A monotonically increasing version counter that is incremented on each update. - example: 1 - format: int64 - type: integer + $ref: "#/components/schemas/StatuspageUrlSettingResponseData" required: - - name - - source - - scope - - tag_key - - tag_value_patterns - - negated - - required - - enabled - - rule_type - - version - - created_at - - created_by - - modified_at - - modified_by + - data type: object - TagRuleCreateAttributes: - description: Attributes that can be supplied when creating a tag rule. + StatuspageUrlSettingResponseAttributes: + description: The attributes from a Statuspage URL setting response. properties: - enabled: - description: Whether the rule is currently enforced. Defaults to `true` for newly created rules. - example: true - type: boolean - name: - description: Human-readable name for the tag rule. - example: "Service tag must be one of api or web" - type: string - negated: - description: When `true`, the rule matches tag values that do NOT match any of the supplied patterns. Defaults to `false`. - example: false - type: boolean - required: - description: When `true`, telemetry without this tag is treated as a violation. Defaults to `false`. - example: true - type: boolean - rule_type: - $ref: "#/components/schemas/TagRuleCreateType" - scope: - description: |- - The scope the rule applies within. Typically an environment, team, or - organization-level identifier used to limit where the rule is enforced. - example: "env" + custom_tags: + description: Comma-separated list of custom tags applied to events generated from this Statuspage URL. + example: "team:collaboration-integrations,env:prod" type: string - source: - $ref: "#/components/schemas/TagRuleSource" - tag_key: - description: The tag key that the rule governs (for example, `service`). - example: "service" + url: + description: The Statuspage URL being monitored. + example: "https://example.statuspage.io" type: string - tag_value_patterns: - description: |- - One or more patterns that valid values for the tag key must match. At least one - pattern is required. - example: - - "api" - - "web" - items: - description: A pattern that valid tag values must match. - type: string - minItems: 1 - type: array - required: - - name - - source - - scope - - tag_key - - tag_value_patterns - - rule_type type: object - TagRuleCreateData: - description: Data object for creating a tag rule. + StatuspageUrlSettingResponseData: + description: Statuspage URL setting data from a response. properties: attributes: - $ref: "#/components/schemas/TagRuleCreateAttributes" + $ref: "#/components/schemas/StatuspageUrlSettingResponseAttributes" + id: + description: The ID of the Statuspage URL setting. + example: "596da4af-0563-4097-90ff-07230c3f9db3" + maxLength: 100 + minLength: 1 + type: string type: - $ref: "#/components/schemas/TagRuleResourceType" + $ref: "#/components/schemas/StatuspageUrlSettingType" required: + - id - type - attributes type: object - TagRuleCreateRequest: - description: Payload for creating a new tag rule. - properties: - data: - $ref: "#/components/schemas/TagRuleCreateData" - required: - - data - type: object - TagRuleCreateType: - description: |- - The rule type allowed when creating a tag rule. Only `surfacing` is accepted at - creation time. + StatuspageUrlSettingType: + default: statuspage-url-setting + description: Statuspage URL setting resource type. enum: - - surfacing - example: "surfacing" + - statuspage-url-setting + example: statuspage-url-setting type: string x-enum-varnames: - - SURFACING - TagRuleData: - description: A tag rule resource. + - STATUSPAGE_URL_SETTING + StatuspageUrlSettingUpdateAttributes: + description: The Statuspage URL setting attributes for an update request. + properties: + custom_tags: + description: Comma-separated list of custom tags to apply to events generated from this Statuspage URL. + example: "team:collaboration-integrations,env:prod" + minLength: 1 + type: string + url: + description: The Statuspage URL to monitor. + example: "https://example.statuspage.io" + minLength: 1 + type: string + type: object + StatuspageUrlSettingUpdateData: + description: Statuspage URL setting data for an update request. properties: attributes: - $ref: "#/components/schemas/TagRuleAttributes" + $ref: "#/components/schemas/StatuspageUrlSettingUpdateAttributes" id: - description: The unique identifier of the tag rule. - example: "123" + description: The ID of the Statuspage URL setting. + example: "596da4af-0563-4097-90ff-07230c3f9db3" + maxLength: 100 + minLength: 1 type: string - relationships: - $ref: "#/components/schemas/TagRuleRelationships" type: - $ref: "#/components/schemas/TagRuleResourceType" + $ref: "#/components/schemas/StatuspageUrlSettingType" required: - - type - id + - type - attributes type: object - TagRuleDataArray: - description: An array of tag rule data objects. - items: - $ref: "#/components/schemas/TagRuleData" - type: array - TagRuleInclude: - description: A related resource to include alongside a tag rule in the response. Currently the only supported value is `score`. - enum: - - score - example: "score" - type: string - x-enum-varnames: - - SCORE - TagRuleIncludedResources: - description: Related resources fetched alongside the primary tag rules. Populated when an `include` query parameter is supplied. - items: - $ref: "#/components/schemas/TagRuleScoreData" - type: array - TagRuleRelationships: - description: Related resources for a tag rule. Only present when the corresponding `include` query parameter is supplied. - properties: - score: - $ref: "#/components/schemas/TagRuleScoreRelationship" - type: object - TagRuleResourceType: - description: JSON:API resource type for a tag rule. - enum: - - tag_rule - example: "tag_rule" - type: string - x-enum-varnames: - - TAG_RULE - TagRuleResponse: - description: A single tag rule. + StatuspageUrlSettingUpdateRequest: + description: Update request for a Statuspage URL setting. properties: data: - $ref: "#/components/schemas/TagRuleData" - included: - $ref: "#/components/schemas/TagRuleIncludedResources" + $ref: "#/components/schemas/StatuspageUrlSettingUpdateData" required: - data type: object - TagRuleScoreAttributes: - description: Attributes of a tag rule compliance score. + StatuspageUrlSettingsResponse: + description: Response with a list of Statuspage URL settings. properties: - score: - description: |- - The compliance score for the rule over the requested time window, as a percentage - between 0 and 100. `null` indicates that no relevant telemetry was found. - example: 80 - format: double - nullable: true - type: number - ts_end: - description: End of the time window the score was computed over, as a Unix timestamp in milliseconds. - example: 1779401466097 - format: int64 - type: integer - ts_start: - description: Start of the time window the score was computed over, as a Unix timestamp in milliseconds. - example: 1779315066097 - format: int64 - type: integer - version: - description: The version of the tag rule that the score was computed against. - example: 1 - format: int64 - type: integer + data: + description: An array of Statuspage URL settings. + example: [{"attributes": {"custom_tags": "team:collaboration-integrations", "url": "https://example.statuspage.io"}, "id": "596da4af-0563-4097-90ff-07230c3f9db3", "type": "statuspage-url-setting"}] + items: + $ref: "#/components/schemas/StatuspageUrlSettingResponseData" + type: array required: - - score - - ts_start - - ts_end - - version + - data type: object - TagRuleScoreData: - description: A compliance score resource for a tag rule. + StegadographyGetWidgetsRequest: + description: Multipart form data containing the PNG image to scan for watermarks. properties: - attributes: - $ref: "#/components/schemas/TagRuleScoreAttributes" - id: - description: The unique identifier of the compliance score resource. - example: "123-v1-1779315066097-1779401466097" + image: + description: PNG image file to scan for embedded watermarks. + example: "screenshot.png" + format: binary type: string - type: - $ref: "#/components/schemas/TagRuleScoreResourceType" required: - - type - - id - - attributes + - image type: object - TagRuleScoreRelationship: - description: A relationship to the compliance score resource for this rule. + StegadographyGetWidgetsResponse: + description: Response containing watermarked widgets recovered from an image. properties: data: - $ref: "#/components/schemas/TagRuleScoreRelationshipData" + $ref: "#/components/schemas/StegadographyWidgetItems" required: - data type: object - TagRuleScoreRelationshipData: - description: Identifier of the related compliance score resource. + StegadographyWidget: + description: A single watermarked widget resource recovered from an image. properties: + attributes: + $ref: "#/components/schemas/StegadographyWidgetAttributes" id: - description: The unique identifier of the related compliance score resource. - example: "123-v1-1779315066097-1779401466097" + description: Composite identifier formed from the organization ID and watermark, separated by a colon. + example: "abc123:0123456789abcdef" type: string type: - $ref: "#/components/schemas/TagRuleScoreResourceType" + $ref: "#/components/schemas/StegadographyWidgetType" required: - - type - id + - type + - attributes type: object - TagRuleScoreResourceType: - description: JSON:API resource type for a tag rule compliance score. - enum: - - tag_rule_score - example: "tag_rule_score" - type: string - x-enum-varnames: - - TAG_RULE_SCORE - TagRuleScoreResponse: - description: A tag rule compliance score. + StegadographyWidgetAttributes: + description: Attributes of a watermarked widget recovered from an image. properties: - data: - $ref: "#/components/schemas/TagRuleScoreData" + locationx: + description: Horizontal pixel coordinate where the watermark was found in the image. + example: 100 + format: int64 + type: integer + locationy: + description: Vertical pixel coordinate where the watermark was found in the image. + example: 200 + format: int64 + type: integer + rawData: + description: JSON-encoded string representing the widget state. + example: '{"widgetType":"timeseries","requests":[]}' + type: string + watermark: + description: Hex-encoded watermark string identifying the widget. + example: "0123456789abcdef" + type: string required: - - data + - rawData + - watermark + - locationx + - locationy type: object - TagRuleSource: - description: The telemetry source that a tag rule applies to. - enum: - - logs - - spans - - metrics - - rum - - feed - example: "logs" - type: string - x-enum-varnames: - - LOGS - - SPANS - - METRICS - - RUM - - FEED - TagRuleType: - description: |- - How the rule is enforced. `blocking` rejects telemetry that violates the rule. - `surfacing` only highlights non-compliant telemetry without blocking it. + StegadographyWidgetItems: + description: List of watermarked widget resources recovered from an image. + example: + - attributes: + locationx: 100 + locationy: 200 + rawData: '{"widgetType":"timeseries","requests":[]}' + watermark: "0123456789abcdef" + id: "abc123:0123456789abcdef" + type: widget + items: + $ref: "#/components/schemas/StegadographyWidget" + type: array + StegadographyWidgetType: + description: Stegadography widget resource type. enum: - - blocking - - surfacing - example: "surfacing" + - widget + example: widget type: string x-enum-varnames: - - BLOCKING - - SURFACING - TagRuleUpdateAttributes: - description: |- - Mutable attributes of a tag rule. Each field is optional; omitting a field leaves its - current value unchanged. The `source` of a rule cannot be changed. + - WIDGET + Step: + description: A Step is a sub-component of a workflow. Each Step performs an action. properties: - enabled: - description: Whether the rule is currently enforced. - type: boolean - name: - description: Human-readable name for the tag rule. + actionId: + description: The unique identifier of an action. + example: "" + minLength: 1 type: string - negated: - description: When `true`, the rule matches tag values that do NOT match any of the supplied patterns. - type: boolean - required: - description: When `true`, telemetry without this tag is treated as a violation. - type: boolean - rule_type: - $ref: "#/components/schemas/TagRuleType" - scope: - description: The scope the rule applies within. + completionGate: + $ref: "#/components/schemas/CompletionGate" + connectionLabel: + description: The unique identifier of a connection defined in the spec. type: string - tag_key: - description: The tag key that the rule governs. + display: + $ref: "#/components/schemas/StepDisplay" + errorHandlers: + description: The `Step` `errorHandlers`. + items: + $ref: "#/components/schemas/ErrorHandler" + type: array + name: + description: Name of the step. + example: "" + minLength: 1 type: string - tag_value_patterns: - description: One or more patterns that valid values for the tag key must match. + outboundEdges: + description: A list of subsequent actions to run. This list is empty for a terminal step. items: - description: A pattern that valid tag values must match. - type: string + $ref: "#/components/schemas/OutboundEdge" + type: array + parameters: + description: A list of inputs for an action. + items: + $ref: "#/components/schemas/Parameter" type: array + readinessGate: + $ref: "#/components/schemas/ReadinessGate" + required: + - name + - actionId type: object - TagRuleUpdateData: - description: Data object for updating a tag rule. + StepDisplay: + description: |- + The position of a step on the workflow canvas. Omit `display` from every step to use + automatic layout, or provide it for every step to preserve a manual layout. + properties: + bounds: + $ref: "#/components/schemas/StepDisplayBounds" + type: object + StepDisplayBounds: + description: The definition of `StepDisplayBounds` object. + properties: + x: + description: The `bounds` `x`. + format: double + type: number + y: + description: The `bounds` `y`. + format: double + type: number + type: object + SuiteCreateEdit: + description: Data object for creating or editing a Synthetic test suite. properties: attributes: - $ref: "#/components/schemas/TagRuleUpdateAttributes" - id: - description: The unique identifier of the tag rule being updated. - example: "123" - type: string + $ref: "#/components/schemas/SyntheticsSuite" type: - $ref: "#/components/schemas/TagRuleResourceType" + $ref: "#/components/schemas/SyntheticsSuiteTypes" required: + - attributes - type - - id type: object - TagRuleUpdateRequest: - description: Payload for updating an existing tag rule. Only the supplied fields are modified. + SuiteCreateEditRequest: + description: Request body for creating or editing a Synthetic test suite. properties: data: - $ref: "#/components/schemas/TagRuleUpdateData" + $ref: "#/components/schemas/SuiteCreateEdit" required: - data type: object - TagRulesListResponse: - description: A page of tag rules. + SuiteJsonPatchRequest: + description: JSON Patch request for a Synthetic test suite. properties: data: - $ref: "#/components/schemas/TagRuleDataArray" - included: - $ref: "#/components/schemas/TagRuleIncludedResources" + $ref: "#/components/schemas/SuiteJsonPatchRequestData" required: - data type: object - TagsEventAttribute: - description: Array of tags associated with your event. - example: ["team:A"] - items: - description: Tag associated with your event. - type: string - type: array - TargetingRule: - description: Targeting rule details. + SuiteJsonPatchRequestData: + description: Data object for a JSON Patch request on a Synthetic test suite. properties: - conditions: - description: Conditions evaluated by this targeting rule. - items: - $ref: "#/components/schemas/Condition" - type: array - created_at: - description: The timestamp when the targeting rule was created. - example: "2024-01-01T12:00:00Z" - format: date-time - type: string - id: - description: The unique identifier of the targeting rule. - example: "550e8400-e29b-41d4-a716-446655440060" - format: uuid - type: string - updated_at: - description: The timestamp when the targeting rule was last updated. - example: "2024-01-01T12:00:00Z" - format: date-time - type: string - required: - - id - - conditions - - created_at - - updated_at + attributes: + $ref: "#/components/schemas/SuiteJsonPatchRequestDataAttributes" + type: + $ref: "#/components/schemas/SuiteJsonPatchType" type: object - TargetingRuleRequest: - description: Targeting rule request payload. + SuiteJsonPatchRequestDataAttributes: + description: Attributes for a JSON Patch request on a Synthetic test suite. properties: - conditions: - description: Conditions that must match for this rule. + json_patch: + description: JSON Patch operations following RFC 6902. items: - $ref: "#/components/schemas/ConditionRequest" - minItems: 1 + $ref: "#/components/schemas/JsonPatchOperation" type: array - required: - - conditions type: object - Targets: - description: |- - List of recipients to notify when a notification rule is triggered. Many different target types are supported, - such as email addresses, Slack channels, and PagerDuty services. - The appropriate integrations need to be properly configured to send notifications to the specified targets. - example: ["@john.doe@email.com"] - items: - description: Recipients to notify. - type: string - type: array - Team: - description: A team - properties: - attributes: - $ref: "#/components/schemas/TeamAttributes" - id: - description: The team's identifier - example: aeadc05e-98a8-11ec-ac2c-da7ad0900001 - type: string - relationships: - $ref: "#/components/schemas/TeamRelationships" - type: - $ref: "#/components/schemas/TeamType" - required: - - attributes - - id - - type - type: object - TeamAttributes: - description: Team attributes + SuiteJsonPatchType: + default: suites_json_patch + description: Type for a JSON Patch request on a Synthetic test suite, `suites_json_patch`. + enum: + - suites_json_patch + example: suites_json_patch + type: string + x-enum-varnames: + - SUITES_JSON_PATCH + SuiteSearchResponseType: + default: suites_search + description: Type for the Synthetics suites search response, `suites_search`. + enum: + - suites_search + example: suites_search + type: string + x-enum-varnames: + - SUITES_SEARCH + SummarizedSpan: + description: A node in the pruned trace tree. properties: - avatar: - description: Unicode representation of the avatar for the team, limited to a single grapheme - example: "🥑" - nullable: true + children: + description: The child spans of this node in the pruned tree. + example: [] + items: + $ref: "#/components/schemas/SummarizedSpan" + type: array + durationSeconds: + description: The duration of the span, in seconds. + example: 0.5 + format: double + type: number + endTime: + description: The end time of the span, in RFC3339 format. + example: "2026-05-27T12:00:00.5Z" + format: date-time type: string - banner: - description: Banner selection for the team - format: int64 - nullable: true + error: + $ref: "#/components/schemas/APMSpanErrorFlag" + hidden_child_spans_count: + description: The number of child spans that were pruned from this node when summarizing the trace. + example: 0 + format: int32 + maximum: 2147483647 type: integer - created_at: - description: Creation date of the team - format: date-time + meta: + additionalProperties: + type: string + description: String-valued tags attached to the span. + example: + env: production + type: object + metrics: + additionalProperties: + format: double + type: number + description: Numeric metrics attached to the span. + example: + http.status_code: 200 + type: object + name: + description: The operation name of the span. + example: web.request type: string - description: - description: Free-form markdown description/content for the team's homepage - nullable: true + parentID: + description: The ID of the parent span, or `0` when the span is the trace root. + example: 0 + format: int64 + type: integer + resource: + description: The resource that the span describes. + example: GET /products type: string - handle: - description: The team's identifier - example: example-team - maxLength: 195 + service: + description: The name of the service that emitted the span. + example: web-store type: string - hidden_modules: - description: Collection of hidden modules for the team - items: - description: String identifier of the module - type: string - nullable: true - type: array - is_managed: - description: Whether the team is managed from an external source - type: boolean - link_count: - description: The number of links belonging to the team - format: int32 - maximum: 2147483647 - readOnly: true + spanID: + description: The span ID, as an unsigned 64-bit integer. + example: 9876543210987654321 + format: int64 type: integer - modified_at: - description: Modification date of the team - format: date-time + span_kind: + description: |- + The OpenTelemetry span kind, for example `INTERNAL`, `SERVER`, `CLIENT`, + `PRODUCER`, or `CONSUMER`. + example: SERVER type: string - name: - description: The name of the team - example: Example Team - maxLength: 200 + startTime: + description: The start time of the span, in RFC3339 format. + example: "2026-05-27T12:00:00Z" + format: date-time type: string - summary: - description: A brief summary of the team, derived from the `description` - maxLength: 120 - nullable: true + required: + - service + - name + - resource + - parentID + - spanID + - startTime + - endTime + - durationSeconds + - error + - meta + - metrics + - span_kind + - hidden_child_spans_count + - children + type: object + SummarizedTrace: + description: A summarized, hierarchical view of a trace. + properties: + root: + $ref: "#/components/schemas/SummarizedSpan" + traceId: + description: The full 128-bit trace ID, encoded as a 32-character hexadecimal string. + example: "0000000000000000abc1230000000000" type: string - user_count: - description: The number of users belonging to the team + required: + - traceId + - root + type: object + SuppressionVersionHistory: + description: Response object containing the version history of a suppression. + properties: + count: + description: The number of suppression versions. format: int32 maximum: 2147483647 - readOnly: true type: integer - visible_modules: - description: Collection of visible modules for the team + data: + additionalProperties: + $ref: "#/components/schemas/SuppressionVersions" + description: A suppression version with a list of updates. + description: The version history of a suppression. + type: object + type: object + SuppressionVersions: + description: A suppression version with a list of updates. + properties: + changes: + description: A list of changes. items: - description: String identifier of the module - type: string - nullable: true + $ref: "#/components/schemas/VersionHistoryUpdate" type: array - required: - - handle - - name + suppression: + $ref: "#/components/schemas/SecurityMonitoringSuppressionAttributes" type: object - TeamConnection: - description: A relationship between a Datadog team and a team from another external system. + SyncProperty: + description: Sync property configuration. properties: - attributes: - $ref: "#/components/schemas/TeamConnectionAttributes" - id: - description: The unique identifier of the team connection. - example: "12345678-1234-5678-9abc-123456789012" + sync_type: + description: The direction and type of synchronization for this property. type: string - relationships: - $ref: "#/components/schemas/TeamConnectionRelationships" - type: - $ref: "#/components/schemas/TeamConnectionType" - required: - - id - - type type: object - TeamConnectionAttributes: - description: Attributes of the team connection. + SyncPropertyWithMapping: + description: Sync property with mapping configuration. properties: - managed_by: - description: The entity that manages this team connection. - example: "github_sync" + mapping: + additionalProperties: + type: string + description: Map of source values to destination values for synchronization. + type: object + name_mapping: + additionalProperties: + type: string + description: Map of source names to display names used during synchronization. + type: object + sync_type: + description: The direction and type of synchronization for this property. type: string - source: - description: The name of the external source. - example: "github" + type: object + SyntheticsApiMultistepParentTestAttributes: + description: Attributes of a parent API multistep test. + properties: + child_name: + description: The name of the child subtest. + example: My API Subtest + type: string + child_public_id: + description: The public ID of the child subtest. + example: xyz-uvw-789 + type: string + monitor_id: + description: The associated monitor ID. + example: 12345678 + format: int64 + type: integer + name: + description: Name of the parent test. + example: My Multistep Test + type: string + overall_state: + description: The overall state of the parent test. + example: 0 + format: int64 + type: integer + overall_state_modified: + description: Timestamp of when the overall state was last modified. + example: "2024-01-01T00:00:00+00:00" + type: string + public_id: + description: The public ID of the parent test. + example: abc-def-123 type: string type: object - TeamConnectionCreateData: - description: Data for creating a team connection. + SyntheticsApiMultistepParentTestData: + description: Data object for a parent API multistep test. properties: attributes: - $ref: "#/components/schemas/TeamConnectionAttributes" - relationships: - $ref: "#/components/schemas/TeamConnectionRelationships" + $ref: "#/components/schemas/SyntheticsApiMultistepParentTestAttributes" + id: + description: The public ID of the parent test. + example: abc-def-123 + type: string type: - $ref: "#/components/schemas/TeamConnectionType" - required: - - type + $ref: "#/components/schemas/SyntheticsApiMultistepParentTestType" type: object - TeamConnectionCreateRequest: - description: Request for creating team connections. + SyntheticsApiMultistepParentTestType: + default: parent_test + description: Type of the parent test resource. + enum: + - parent_test + example: parent_test + type: string + x-enum-varnames: + - PARENT_TEST + SyntheticsApiMultistepParentTestsResponse: + description: |- + Response containing the list of parent tests for an API multistep subtest. properties: data: - description: Array of team connections to create. + description: List of parent tests that include this subtest. items: - $ref: "#/components/schemas/TeamConnectionCreateData" + $ref: "#/components/schemas/SyntheticsApiMultistepParentTestData" type: array - required: - - data type: object - TeamConnectionDeleteRequest: - description: Request for deleting team connections. + SyntheticsApiMultistepSubtestAttributes: + description: Attributes of a Synthetic API multistep subtest. properties: - data: - description: Array of team connection IDs to delete. - items: - $ref: "#/components/schemas/TeamConnectionDeleteRequestDataItem" - type: array - required: - - data + name: + description: Name of the subtest. + example: My API Test + type: string + public_id: + description: The public ID of the subtest. + example: abc-def-123 + type: string type: object - TeamConnectionDeleteRequestDataItem: - description: A collection of connection ids to delete. + SyntheticsApiMultistepSubtestData: + description: Data object for a Synthetic API multistep subtest. properties: + attributes: + $ref: "#/components/schemas/SyntheticsApiMultistepSubtestAttributes" id: - description: The unique identifier of the team connection to delete. - example: "12345678-1234-5678-9abc-123456789012" + description: The public ID of the subtest. + example: abc-def-123 type: string type: - $ref: "#/components/schemas/TeamConnectionType" - required: - - id - - type - type: object - TeamConnectionRelationships: - description: Relationships of the team connection. - properties: - connected_team: - $ref: "#/components/schemas/ConnectedTeamRef" - team: - $ref: "#/components/schemas/TeamRef" + $ref: "#/components/schemas/SyntheticsApiMultistepSubtestType" type: object - TeamConnectionType: - default: "team_connection" - description: Team connection resource type. + SyntheticsApiMultistepSubtestType: + default: subtest + description: Type of the subtest resource. enum: - - team_connection - example: "team_connection" + - subtest + example: subtest type: string x-enum-varnames: - - TEAM_CONNECTION - TeamConnectionsResponse: - description: Response containing information about multiple team connections. + - SUBTEST + SyntheticsApiMultistepSubtestsResponse: + description: |- + Response containing the list of available subtests for an API multistep test. properties: data: - description: Array of team connections. + description: List of API tests that can be added as subtests. items: - $ref: "#/components/schemas/TeamConnection" + $ref: "#/components/schemas/SyntheticsApiMultistepSubtestData" type: array - meta: - $ref: "#/components/schemas/ConnectionsResponseMeta" type: object - TeamCreate: - description: Team create + SyntheticsDowntimeData: + description: A Synthetics downtime object. properties: attributes: - $ref: "#/components/schemas/TeamCreateAttributes" - relationships: - $ref: "#/components/schemas/TeamCreateRelationships" + $ref: "#/components/schemas/SyntheticsDowntimeDataAttributesResponse" + id: + description: The unique identifier of the downtime. + example: "00000000-0000-0000-0000-000000000001" + type: string type: - $ref: "#/components/schemas/TeamType" + $ref: "#/components/schemas/SyntheticsDowntimeResourceType" required: - - attributes + - id - type + - attributes type: object - TeamCreateAttributes: - description: Team creation attributes + SyntheticsDowntimeDataAttributesRequest: + description: Attributes for creating or updating a Synthetics downtime. properties: - avatar: - description: Unicode representation of the avatar for the team, limited to a single grapheme - example: "🥑" - nullable: true - type: string - banner: - description: Banner selection for the team - format: int64 - nullable: true - type: integer description: - description: Free-form markdown description/content for the team's homepage - type: string - handle: - description: The team's identifier - example: example-team - maxLength: 195 + description: An optional description of the downtime. + example: Scheduled weekly maintenance window. type: string - hidden_modules: - description: Collection of hidden modules for the team - items: - description: String identifier of the module - type: string - type: array + isEnabled: + description: Whether the downtime is enabled. + example: true + type: boolean name: - description: The name of the team - example: Example Team - maxLength: 200 + description: The name of the downtime. + example: Weekly maintenance type: string - visible_modules: - description: Collection of visible modules for the team - items: - description: String identifier of the module - type: string - type: array + tags: + $ref: "#/components/schemas/SyntheticsDowntimeTags" + testIds: + $ref: "#/components/schemas/SyntheticsDowntimeTestIds" + timeSlots: + $ref: "#/components/schemas/SyntheticsDowntimeTimeSlotRequests" required: - - handle - name + - isEnabled + - timeSlots + - testIds type: object - TeamCreateRelationships: - description: Relationships formed with the team on creation - properties: - users: - $ref: "#/components/schemas/RelationshipToUsers" - type: object - TeamCreateRequest: - description: Request to create a team - properties: - data: - $ref: "#/components/schemas/TeamCreate" - required: - - data - type: object - TeamHierarchyLink: - description: Team hierarchy link + SyntheticsDowntimeDataAttributesResponse: + description: Attributes of a Synthetics downtime response object. properties: - attributes: - $ref: "#/components/schemas/TeamHierarchyLinkAttributes" - id: - description: The team hierarchy link's identifier - example: b8626d7e-cedd-11eb-abf5-da7ad0900001 + createdAt: + description: The timestamp when the downtime was created. + example: "2024-01-15T10:30:00Z" + format: date-time type: string - relationships: - $ref: "#/components/schemas/TeamHierarchyLinkRelationships" - type: - $ref: "#/components/schemas/TeamHierarchyLinkType" - required: - - attributes - - id - - type - type: object - TeamHierarchyLinkAttributes: - description: Team hierarchy link attributes - properties: - created_at: - description: Timestamp when the team hierarchy link was created - example: "" + createdBy: + description: The UUID of the user who created the downtime. + example: "00000000-0000-0000-0000-000000000003" + type: string + createdByName: + description: The display name of the user who created the downtime. + example: Jane Doe + type: string + description: + description: The description of the downtime. + example: Scheduled weekly maintenance window. + type: string + isEnabled: + description: Whether the downtime is enabled. + example: true + type: boolean + name: + description: The name of the downtime. + example: Weekly maintenance + type: string + tags: + $ref: "#/components/schemas/SyntheticsDowntimeTags" + testIds: + $ref: "#/components/schemas/SyntheticsDowntimeTestIds" + timeSlots: + $ref: "#/components/schemas/SyntheticsDowntimeTimeSlotResponses" + updatedAt: + description: The timestamp when the downtime was last updated. + example: "2024-01-15T10:30:00Z" format: date-time type: string - provisioned_by: - description: The provisioner of the team hierarchy link - example: "system" + updatedBy: + description: The UUID of the user who last updated the downtime. + example: "00000000-0000-0000-0000-000000000003" + type: string + updatedByName: + description: The display name of the user who last updated the downtime. + example: Jane Doe type: string required: - - provisioned_by - - created_at + - name + - description + - isEnabled + - createdBy + - createdByName + - createdAt + - updatedBy + - updatedByName + - updatedAt + - timeSlots + - testIds + - tags type: object - TeamHierarchyLinkCreate: - description: Data provided when creating a team hierarchy link + SyntheticsDowntimeDataList: + description: List of Synthetics downtime objects. + example: + - attributes: + createdAt: "2024-01-15T10:30:00Z" + createdBy: "00000000-0000-0000-0000-000000000003" + createdByName: Jane Doe + description: Scheduled weekly maintenance window. + isEnabled: true + name: Weekly maintenance + tags: [] + testIds: + - abc-def-123 + timeSlots: + - duration: 3600 + id: "00000000-0000-0000-0000-000000000002" + start: + day: 15 + hour: 10 + minute: 30 + month: 1 + year: 2024 + timezone: Europe/Paris + updatedAt: "2024-01-15T10:30:00Z" + updatedBy: "00000000-0000-0000-0000-000000000003" + updatedByName: Jane Doe + id: "00000000-0000-0000-0000-000000000001" + type: downtime + items: + $ref: "#/components/schemas/SyntheticsDowntimeData" + type: array + SyntheticsDowntimeDataRequest: + description: The data object for a Synthetics downtime create or update request. + example: + attributes: + isEnabled: true + name: Weekly maintenance + testIds: + - abc-def-123 + timeSlots: + - duration: 3600 + start: + day: 15 + hour: 10 + minute: 30 + month: 1 + year: 2024 + timezone: Europe/Paris + type: downtime properties: - relationships: - $ref: "#/components/schemas/TeamHierarchyLinkCreateRelationships" + attributes: + $ref: "#/components/schemas/SyntheticsDowntimeDataAttributesRequest" type: - $ref: "#/components/schemas/TeamHierarchyLinkType" + $ref: "#/components/schemas/SyntheticsDowntimeResourceType" required: - - relationships - type + - attributes type: object - TeamHierarchyLinkCreateRelationships: - description: The related teams that will be connected by the team hierarchy link + SyntheticsDowntimeFrequency: + description: The recurrence frequency of a Synthetics downtime time slot. + enum: + - DAILY + - WEEKLY + - MONTHLY + - YEARLY + example: WEEKLY + type: string + x-enum-varnames: + - DAILY + - WEEKLY + - MONTHLY + - YEARLY + SyntheticsDowntimeRequest: + description: Request body for creating or updating a Synthetics downtime. properties: - parent_team: - $ref: "#/components/schemas/TeamHierarchyLinkCreateTeamRelationship" - sub_team: - $ref: "#/components/schemas/TeamHierarchyLinkCreateTeamRelationship" + data: + $ref: "#/components/schemas/SyntheticsDowntimeDataRequest" required: - - parent_team - - sub_team + - data type: object - TeamHierarchyLinkCreateRequest: - description: Request to create a team hierarchy link + SyntheticsDowntimeResourceType: + description: The resource type for a Synthetics downtime. + enum: + - downtime + example: downtime + type: string + x-enum-varnames: + - DOWNTIME + SyntheticsDowntimeResponse: + description: Response containing a single Synthetics downtime. properties: data: - $ref: "#/components/schemas/TeamHierarchyLinkCreate" + $ref: "#/components/schemas/SyntheticsDowntimeData" required: - data type: object - TeamHierarchyLinkCreateTeam: - description: This schema defines the attributes about each team that has to be provided when creating a team hierarchy link + SyntheticsDowntimeTags: + description: List of tags associated with a Synthetics downtime. + example: + - "team:backend" + - "env:prod" + items: + description: A tag. + type: string + type: array + SyntheticsDowntimeTestIds: + description: List of Synthetics test public IDs associated with a downtime. + example: + - abc-def-123 + - xyz-uvw-456 + items: + description: A Synthetics test public ID. + type: string + type: array + SyntheticsDowntimeTimeSlotDate: + description: A specific date and time used to define the start or end of a Synthetics downtime time slot. properties: - id: - description: The team's identifier - example: 692e8073-12c4-4c71-8408-5090bd44c9c8 - type: string - type: - $ref: "#/components/schemas/TeamType" + day: + description: The day component of the date (1-31). + example: 15 + format: int64 + type: integer + hour: + description: The hour component of the time (0-23). + example: 10 + format: int64 + type: integer + minute: + description: The minute component of the time (0-59). + example: 30 + format: int64 + type: integer + month: + description: The month component of the date (1-12). + example: 1 + format: int64 + type: integer + year: + description: The year component of the date. + example: 2024 + format: int64 + type: integer required: - - id - - type + - year + - month + - day + - hour + - minute type: object - TeamHierarchyLinkCreateTeamRelationship: - description: Data about each team that will be connected by the team hierarchy link + SyntheticsDowntimeTimeSlotRecurrenceRequest: + description: Recurrence settings for a Synthetics downtime time slot. properties: - data: - $ref: "#/components/schemas/TeamHierarchyLinkCreateTeam" + end: + $ref: "#/components/schemas/SyntheticsDowntimeTimeSlotDate" + frequency: + $ref: "#/components/schemas/SyntheticsDowntimeFrequency" + interval: + description: The interval between recurrences, relative to the frequency. + example: 1 + format: int64 + type: integer + weekdayPositions: + $ref: "#/components/schemas/SyntheticsDowntimeWeekdayPositions" + weekdays: + $ref: "#/components/schemas/SyntheticsDowntimeWeekdays" required: - - data + - frequency type: object - TeamHierarchyLinkRelationships: - description: Team hierarchy link relationships + SyntheticsDowntimeTimeSlotRecurrenceResponse: + description: Recurrence settings returned in a Synthetics downtime time slot response. properties: - parent_team: - $ref: "#/components/schemas/TeamHierarchyLinkTeamRelationship" - sub_team: - $ref: "#/components/schemas/TeamHierarchyLinkTeamRelationship" + frequency: + $ref: "#/components/schemas/SyntheticsDowntimeFrequency" + interval: + description: The interval between recurrences, relative to the frequency. + example: 1 + format: int64 + type: integer + until: + $ref: "#/components/schemas/SyntheticsDowntimeTimeSlotDate" + weekdayPositions: + $ref: "#/components/schemas/SyntheticsDowntimeWeekdayPositions" + weekdays: + $ref: "#/components/schemas/SyntheticsDowntimeWeekdays" required: - - parent_team - - sub_team - type: object - TeamHierarchyLinkResponse: - description: Team hierarchy link response - properties: - data: - $ref: "#/components/schemas/TeamHierarchyLink" - included: - description: Included teams - items: - $ref: "#/components/schemas/TeamHierarchyLinkTeam" - type: array - links: - $ref: "#/components/schemas/TeamsHierarchyLinksResponseLinks" + - frequency + - interval + - weekdays type: object - TeamHierarchyLinkTeam: - description: Team hierarchy links connect different teams. This represents team objects that are connected by the team hierarchy link. + SyntheticsDowntimeTimeSlotRequest: + description: A time slot for a Synthetics downtime create or update request. properties: - attributes: - $ref: "#/components/schemas/TeamHierarchyLinkTeamAttributes" - id: - description: The team's identifier - example: 692e8073-12c4-4c71-8408-5090bd44c9c8 + duration: + description: The duration of the time slot in seconds, between 60 and 604800. + example: 3600 + format: int64 + type: integer + name: + description: An optional label for the time slot. + example: Weekly maintenance window + type: string + recurrence: + $ref: "#/components/schemas/SyntheticsDowntimeTimeSlotRecurrenceRequest" + start: + $ref: "#/components/schemas/SyntheticsDowntimeTimeSlotDate" + timezone: + description: The IANA timezone name for the time slot. + example: Europe/Paris type: string - type: - $ref: "#/components/schemas/TeamType" required: - - id - - type + - start + - timezone + - duration type: object - TeamHierarchyLinkTeamAttributes: - description: Team hierarchy links connect different teams. This represents attributes from teams that are connected by the team hierarchy link. + SyntheticsDowntimeTimeSlotRequests: + description: List of time slots for a Synthetics downtime create or update request. + example: + - duration: 3600 + start: + day: 15 + hour: 10 + minute: 30 + month: 1 + year: 2024 + timezone: Europe/Paris + items: + $ref: "#/components/schemas/SyntheticsDowntimeTimeSlotRequest" + type: array + SyntheticsDowntimeTimeSlotResponse: + description: A time slot returned in a Synthetics downtime response. properties: - avatar: - description: The team's avatar - nullable: true - type: string - banner: - description: The team's banner + duration: + description: The duration of the time slot in seconds. + example: 3600 format: int64 type: integer - handle: - description: The team's handle - example: team-handle + id: + description: The unique identifier of the time slot. + example: "00000000-0000-0000-0000-000000000002" type: string - is_managed: - description: Whether the team is managed - type: boolean - is_open_membership: - description: Whether the team has open membership - type: boolean - link_count: - description: The number of links for the team - format: int64 - type: integer name: - description: The team's name - example: Team Name + description: The label for the time slot. + example: Weekly maintenance window type: string - summary: - description: The team's summary - nullable: true + recurrence: + $ref: "#/components/schemas/SyntheticsDowntimeTimeSlotRecurrenceResponse" + start: + $ref: "#/components/schemas/SyntheticsDowntimeTimeSlotDate" + timezone: + description: The IANA timezone name for the time slot. + example: Europe/Paris type: string - user_count: - description: The number of users in the team - format: int64 - type: integer required: - - handle - - name + - id + - start + - timezone + - duration type: object - TeamHierarchyLinkTeamRelationship: - description: Team hierarchy link team relationship + SyntheticsDowntimeTimeSlotResponses: + description: List of time slots in a Synthetics downtime response. + example: + - duration: 3600 + id: "00000000-0000-0000-0000-000000000002" + start: + day: 15 + hour: 10 + minute: 30 + month: 1 + year: 2024 + timezone: Europe/Paris + items: + $ref: "#/components/schemas/SyntheticsDowntimeTimeSlotResponse" + type: array + SyntheticsDowntimeWeekday: + description: A day of the week for a Synthetics downtime recurrence. + enum: + - MO + - TU + - WE + - TH + - FR + - SA + - SU + example: MO + type: string + x-enum-varnames: + - MONDAY + - TUESDAY + - WEDNESDAY + - THURSDAY + - FRIDAY + - SATURDAY + - SUNDAY + SyntheticsDowntimeWeekdayPosition: + description: >- + The position of a weekday within a month for a monthly Synthetics downtime recurrence. `1` through `4` select the first through fourth occurrence of the weekday in the month, and `-1` selects the last occurrence. + enum: + - 1 + - 2 + - 3 + - 4 + - -1 + example: 1 + format: int64 + type: integer + x-enum-varnames: + - FIRST + - SECOND + - THIRD + - FOURTH + - LAST + SyntheticsDowntimeWeekdayPositions: + description: >- + Positions of the weekdays within a month for a monthly Synthetics downtime recurrence. Used in combination with `weekdays` to schedule occurrences such as "the first Monday of the month". + example: + - 1 + items: + $ref: "#/components/schemas/SyntheticsDowntimeWeekdayPosition" + type: array + SyntheticsDowntimeWeekdays: + description: Days of the week for a Synthetics downtime recurrence schedule. + example: + - MO + - WE + - FR + items: + $ref: "#/components/schemas/SyntheticsDowntimeWeekday" + type: array + SyntheticsDowntimesResponse: + description: Response containing a list of Synthetics downtimes. properties: data: - $ref: "#/components/schemas/TeamHierarchyLinkTeam" + $ref: "#/components/schemas/SyntheticsDowntimeDataList" required: - data type: object - TeamHierarchyLinkType: - default: team_hierarchy_links - description: Team hierarchy link type - enum: - - team_hierarchy_links - example: team_hierarchy_links - type: string - x-enum-varnames: - - TEAM_HIERARCHY_LINKS - TeamHierarchyLinksResponse: - description: Team hierarchy links response + SyntheticsFastTestResult: + description: |- + Fast test result response. Returns `null` if the result is not yet available + (the test is still running or timed out before completing). + nullable: true properties: data: - description: Team hierarchy links response data - items: - $ref: "#/components/schemas/TeamHierarchyLink" - type: array - included: - description: Included teams - items: - $ref: "#/components/schemas/TeamHierarchyLinkTeam" - type: array - links: - $ref: "#/components/schemas/TeamsHierarchyLinksResponseLinks" - meta: - $ref: "#/components/schemas/TeamsHierarchyLinksResponseMeta" + $ref: "#/components/schemas/SyntheticsFastTestResultData" type: object - TeamIncluded: - description: Included resources related to the team - oneOf: - - $ref: "#/components/schemas/User" - - $ref: "#/components/schemas/TeamLink" - - $ref: "#/components/schemas/UserTeamPermission" - TeamLink: - description: Team link + SyntheticsFastTestResultAttributes: + description: Attributes of the fast test result. + properties: + device: + $ref: "#/components/schemas/SyntheticsTestResultDevice" + location: + $ref: "#/components/schemas/SyntheticsTestResultLocation" + result: + $ref: "#/components/schemas/SyntheticsFastTestResultDetail" + test_sub_type: + $ref: "#/components/schemas/SyntheticsFastTestSubType" + test_type: + $ref: "#/components/schemas/SyntheticsFastTestType" + test_version: + description: Version of the test at the time the fast test was triggered. + example: 1 + format: int64 + type: integer + type: object + SyntheticsFastTestResultData: + description: Fast test result data object (JSON:API format). properties: attributes: - $ref: "#/components/schemas/TeamLinkAttributes" + $ref: "#/components/schemas/SyntheticsFastTestResultAttributes" id: - description: The team link's identifier - example: b8626d7e-cedd-11eb-abf5-da7ad0900001 + description: The UUID of the fast test, used as the result identifier. + example: abc12345-1234-1234-1234-abc123456789 type: string type: - $ref: "#/components/schemas/TeamLinkType" - required: - - attributes - - id - - type + $ref: "#/components/schemas/SyntheticsFastTestResultType" type: object - TeamLinkAttributes: - description: Team link attributes + SyntheticsFastTestResultDetail: + description: |- + Detailed result data for the fast test run. The exact shape of nested fields + (`request`, `response`, `assertions`, etc.) depends on the test subtype. properties: - label: - description: The link's label - example: Link label - maxLength: 256 - type: string - position: - description: The link's position, used to sort links for the team - format: int32 - maximum: 2147483647 + assertions: + description: Results of each assertion evaluated during the test. + items: + $ref: "#/components/schemas/SyntheticsTestResultAssertionResult" + type: array + call_type: + description: gRPC call type (for example, `unary`, `healthCheck`, or `reflection`). + example: unary + type: string + cert: + $ref: "#/components/schemas/SyntheticsTestResultCertificate" + duration: + description: Total duration of the test in milliseconds. + example: 150.5 + format: double + type: number + failure: + $ref: "#/components/schemas/SyntheticsTestResultFailure" + finished_at: + description: Unix timestamp (ms) of when the test finished. + example: 1679328001000 + format: int64 type: integer - team_id: - description: ID of the team the link is associated with - readOnly: true + id: + description: The result ID. Set to the fast test UUID because no persistent result ID exists for fast tests. + example: abc12345-1234-1234-1234-abc123456789 type: string - url: - description: The URL for the link - example: "https://example.com" + is_fast_retry: + description: Whether this result is from an automatic fast retry. + example: false + type: boolean + request: + $ref: "#/components/schemas/SyntheticsTestResultRequestInfo" + resolved_ip: + description: IP address resolved for the target host. + example: "1.2.3.4" type: string - required: - - label - - url - type: object - TeamLinkCreate: - description: Team link create - properties: - attributes: - $ref: "#/components/schemas/TeamLinkAttributes" - type: - $ref: "#/components/schemas/TeamLinkType" - required: - - attributes - - type - type: object - TeamLinkCreateRequest: - description: Team link create request - properties: - data: - $ref: "#/components/schemas/TeamLinkCreate" - required: - - data - type: object - TeamLinkResponse: - description: Team link response - properties: - data: - $ref: "#/components/schemas/TeamLink" + response: + $ref: "#/components/schemas/SyntheticsTestResultResponseInfo" + run_type: + $ref: "#/components/schemas/SyntheticsTestResultRunType" + started_at: + description: Unix timestamp (ms) of when the test started. + example: 1679328000000 + format: int64 + type: integer + status: + description: Status of the test result (`passed` or `failed`). + example: passed + type: string + steps: + description: Step results for multistep API tests. + items: + $ref: "#/components/schemas/SyntheticsTestResultStep" + type: array + timings: + additionalProperties: {} + description: Timing breakdown of the test request phases (for example, DNS, TCP, TLS, first byte). + example: + dns: 2.9 + download: 2.1 + firstByte: 95.2 + ssl: 187.9 + tcp: 92.6 + total: 380.7 + type: object + traceroute: + description: Traceroute hop results, present for ICMP and TCP tests. + items: + $ref: "#/components/schemas/SyntheticsTestResultTracerouteHop" + type: array + triggered_at: + description: Unix timestamp (ms) of when the test was triggered. + example: 1679327999000 + format: int64 + type: integer + tunnel: + description: Whether the test was run through a Synthetics tunnel. + example: false + type: boolean type: object - TeamLinkType: - default: team_links - description: Team link type + SyntheticsFastTestResultType: + default: result + description: JSON:API type for a fast test result. enum: - - team_links - example: team_links + - result + example: result type: string x-enum-varnames: - - TEAM_LINKS - TeamLinksResponse: - description: Team links response - properties: - data: - description: Team links response data - items: - $ref: "#/components/schemas/TeamLink" - type: array - type: object - TeamNotificationRule: - description: Team notification rule + - RESULT + SyntheticsFastTestSubType: + description: Subtype of the Synthetic test that produced this result. + enum: + - dns + - grpc + - http + - icmp + - mcp + - multi + - ssl + - tcp + - udp + - websocket + example: http + type: string + x-enum-varnames: + - DNS + - GRPC + - HTTP + - ICMP + - MCP + - MULTI + - SSL + - TCP + - UDP + - WEBSOCKET + SyntheticsFastTestType: + description: Type of the Synthetic fast test that produced this result. + enum: + - fast-api + - fast-browser + example: fast-api + type: string + x-enum-varnames: + - FAST_API + - FAST_BROWSER + SyntheticsGlobalVariable: + description: Synthetic global variable. properties: attributes: - $ref: "#/components/schemas/TeamNotificationRuleAttributes" + $ref: "#/components/schemas/SyntheticsGlobalVariableAttributes" + description: + description: Description of the global variable. + example: "Example description" + type: string id: - description: The identifier of the team notification rule - example: b8626d7e-cedd-11eb-abf5-da7ad0900001 + description: Unique identifier of the global variable. + readOnly: true type: string - type: - $ref: "#/components/schemas/TeamNotificationRuleType" - required: - - attributes - - type - type: object - TeamNotificationRuleAttributes: - description: Team notification rule attributes - properties: - email: - $ref: "#/components/schemas/TeamNotificationRuleAttributesEmail" - ms_teams: - $ref: "#/components/schemas/TeamNotificationRuleAttributesMsTeams" - pagerduty: - $ref: "#/components/schemas/TeamNotificationRuleAttributesPagerduty" - servicenow: - $ref: "#/components/schemas/TeamNotificationRuleAttributesServiceNow" - slack: - $ref: "#/components/schemas/TeamNotificationRuleAttributesSlack" - type: object - TeamNotificationRuleAttributesEmail: - description: Email notification settings for the team - properties: - enabled: - description: Flag indicating email notification + is_fido: + description: Determines if the global variable is a FIDO variable. type: boolean - recipient_email: - description: >- - Email address to notify. When omitted and email notifications are enabled, notifications are sent to all team members. - type: string - type: object - TeamNotificationRuleAttributesMsTeams: - description: MS Teams notification settings for the team - properties: - connector_name: - description: Handle for MS Teams + is_totp: + description: Determines if the global variable is a TOTP/MFA variable. + type: boolean + name: + description: Name of the global variable. Unique across Synthetic global variables. + example: "MY_VARIABLE" type: string - type: object - TeamNotificationRuleAttributesPagerduty: - description: PagerDuty notification settings for the team - properties: - service_name: - description: Service name for PagerDuty + parse_test_options: + $ref: "#/components/schemas/SyntheticsGlobalVariableParseTestOptions" + parse_test_public_id: + description: A Synthetic test ID to use as a test to generate the variable value. + example: "abc-def-123" type: string - type: object - TeamNotificationRuleAttributesServiceNow: - description: ServiceNow notification settings for the team. - properties: - templates: - description: ServiceNow template handle names to use for notifications. + tags: + description: Tags of the global variable. + example: ["team:front", "test:workflow-1"] items: + description: Tag name. type: string type: array + value: + $ref: "#/components/schemas/SyntheticsGlobalVariableValue" + required: + - description + - name + - tags + - value type: object - TeamNotificationRuleAttributesSlack: - description: Slack notification settings for the team + SyntheticsGlobalVariableAttributes: + description: Attributes of the global variable. properties: - channel: - description: Channel for Slack notification - type: string - workspace: - description: Workspace for Slack notification - type: string + restricted_roles: + $ref: "#/components/schemas/SyntheticsRestrictedRoles" type: object - TeamNotificationRuleRequest: - description: Request to create or update a team notification rule + SyntheticsGlobalVariableOptions: + description: Options for the Global Variable for MFA. properties: - data: - $ref: "#/components/schemas/TeamNotificationRule" - required: - - data + totp_parameters: + $ref: "#/components/schemas/SyntheticsGlobalVariableTOTPParameters" type: object - TeamNotificationRuleResponse: - description: Team notification rule response + SyntheticsGlobalVariableParseTestOptions: + description: Parser options to use for retrieving a Synthetic global variable from a Synthetic test. Used in conjunction with `parse_test_public_id`. properties: - data: - $ref: "#/components/schemas/TeamNotificationRule" + field: + description: When type is `http_header`, name of the header to use to extract the value. + example: "content-type" + type: string + localVariableName: + description: When type is `local_variable`, name of the local variable to use to extract the value. + example: "LOCAL_VARIABLE" + type: string + parser: + $ref: "#/components/schemas/SyntheticsVariableParser" + type: + $ref: "#/components/schemas/SyntheticsGlobalVariableParseTestOptionsType" + required: + - type type: object - TeamNotificationRuleType: - default: team_notification_rules - description: Team notification rule type + SyntheticsGlobalVariableParseTestOptionsType: + description: Type of value to extract from a test for a Synthetic global variable. enum: - - team_notification_rules - example: team_notification_rules + - http_body + - http_header + - http_status_code + - local_variable + example: http_body type: string x-enum-varnames: - - TEAM_NOTIFICATION_RULES - TeamNotificationRulesResponse: - description: Team notification rules response - properties: - data: - description: Team notification rules response data - items: - $ref: "#/components/schemas/TeamNotificationRule" - type: array - meta: - $ref: "#/components/schemas/TeamNotificationRulesResponseMeta" - type: object - TeamNotificationRulesResponseMeta: - description: Metadata that is included in the response when querying the team notification rules - properties: - page: - $ref: "#/components/schemas/TeamNotificationRulesResponseMetaPage" - type: object - TeamNotificationRulesResponseMetaPage: - description: |- - Metadata related to paging information that is included in the response when querying the team notification rules + - HTTP_BODY + - HTTP_HEADER + - HTTP_STATUS_CODE + - LOCAL_VARIABLE + SyntheticsGlobalVariableParserType: + description: Type of parser for a Synthetic global variable from a synthetics test. + enum: + - raw + - json_path + - regex + - x_path + example: raw + type: string + x-enum-varnames: + - RAW + - JSON_PATH + - REGEX + - X_PATH + SyntheticsGlobalVariableTOTPParameters: + description: "Parameters for the TOTP/MFA variable" properties: - first_offset: - description: The first offset. - format: int64 - type: integer - last_offset: - description: The last offset. - format: int64 - type: integer - limit: - description: Pagination limit. - format: int64 - type: integer - next_offset: - description: The next offset. - format: int64 - nullable: true - type: integer - offset: - description: The offset. - format: int64 - type: integer - prev_offset: - description: The previous offset. - format: int64 - nullable: true + digits: + description: Number of digits for the OTP code. + example: 6 + format: int32 + maximum: 10 + minimum: 4 type: integer - total: - description: Total results. - format: int64 + refresh_interval: + description: Interval for which to refresh the token (in seconds). + example: 30 + format: int32 + maximum: 999 + minimum: 0 type: integer - type: - description: Offset type. - type: string type: object - TeamOnCallResponders: - description: Root object representing a team's on-call responder configuration. + SyntheticsGlobalVariableValue: + description: Value of the global variable. example: - data: - id: "111ee23r-aaaaa-aaaa-aaww-1234wertsd23" - relationships: - escalations: - data: - - id: "111ee23r-aaaaa-aaaa-aaww-1234wertsd23" - type: escalation_policy_steps - responders: - data: - - id: "111ee23r-aaaaa-aaaa-aaww-1234wertsd23" - type: users - type: team_oncall_responders - included: - - attributes: - email: test@test.com - name: Test User - status: active - id: "111ee23r-aaaaa-aaaa-aaww-1234wertsd23" - type: users - - id: "111ee23r-aaaaa-aaaa-aaww-1234wertsd23" - relationships: - responders: - data: - - id: "111ee23r-aaaaa-aaaa-aaww-1234wertsd23" - type: users - type: escalation_policy_steps + secure: true + value: value properties: - data: - $ref: "#/components/schemas/TeamOnCallRespondersData" - included: - description: The `TeamOnCallResponders` `included`. - items: - $ref: "#/components/schemas/TeamOnCallRespondersIncluded" - type: array + options: + $ref: "#/components/schemas/SyntheticsGlobalVariableOptions" + secure: + description: Determines if the value of the variable is hidden. + type: boolean + value: + description: |- + Value of the global variable. When reading a global variable, + the value will not be present if the variable is hidden with the `secure` property. + example: "example-value" + type: string type: object - TeamOnCallRespondersData: - description: Defines the main on-call responder object for a team, including relationships and metadata. + SyntheticsNetworkAssertion: + description: Object describing an assertion for a Network Path test. + oneOf: + - $ref: "#/components/schemas/SyntheticsNetworkAssertionLatency" + - $ref: "#/components/schemas/SyntheticsNetworkAssertionMultiNetworkHop" + - $ref: "#/components/schemas/SyntheticsNetworkAssertionPacketLossPercentage" + - $ref: "#/components/schemas/SyntheticsNetworkAssertionJitter" + SyntheticsNetworkAssertionJitter: + description: Jitter assertion for a Network Path test. properties: - id: - description: Unique identifier of the on-call responder configuration. - type: string - relationships: - $ref: "#/components/schemas/TeamOnCallRespondersDataRelationships" + operator: + $ref: "#/components/schemas/SyntheticsNetworkAssertionOperator" + target: + description: Target value in milliseconds. + example: 5 + format: double + type: number type: - $ref: "#/components/schemas/TeamOnCallRespondersDataType" + $ref: "#/components/schemas/SyntheticsNetworkAssertionJitterType" required: + - operator + - target - type type: object - TeamOnCallRespondersDataRelationships: - description: Relationship objects linked to a team's on-call responder configuration, including escalations and responders. - properties: - escalations: - $ref: "#/components/schemas/TeamOnCallRespondersDataRelationshipsEscalations" - responders: - $ref: "#/components/schemas/TeamOnCallRespondersDataRelationshipsResponders" - type: object - TeamOnCallRespondersDataRelationshipsEscalations: - description: Defines the escalation policy steps linked to the team's on-call configuration. - properties: - data: - description: Array of escalation step references. - items: - $ref: "#/components/schemas/TeamOnCallRespondersDataRelationshipsEscalationsDataItems" - type: array - type: object - TeamOnCallRespondersDataRelationshipsEscalationsDataItems: - description: Represents a link to a specific escalation policy step associated with the on-call team. + SyntheticsNetworkAssertionJitterType: + default: jitter + description: Type of the jitter assertion. + enum: + - jitter + example: jitter + type: string + x-enum-varnames: + - JITTER + SyntheticsNetworkAssertionLatency: + description: Network latency assertion for a Network Path test. properties: - id: - description: Unique identifier of the escalation step. - example: "" - type: string + operator: + $ref: "#/components/schemas/SyntheticsNetworkAssertionOperator" + property: + $ref: "#/components/schemas/SyntheticsNetworkAssertionProperty" + target: + description: Target value in milliseconds. + example: 500 + format: double + type: number type: - $ref: "#/components/schemas/TeamOnCallRespondersDataRelationshipsEscalationsDataItemsType" + $ref: "#/components/schemas/SyntheticsNetworkAssertionLatencyType" required: + - operator + - property + - target - type - - id type: object - TeamOnCallRespondersDataRelationshipsEscalationsDataItemsType: - default: escalation_policy_steps - description: Identifies the resource type for escalation policy steps linked to a team's on-call configuration. + SyntheticsNetworkAssertionLatencyType: + default: latency + description: Type of the latency assertion. enum: - - escalation_policy_steps - example: escalation_policy_steps + - latency + example: latency type: string x-enum-varnames: - - ESCALATION_POLICY_STEPS - TeamOnCallRespondersDataRelationshipsResponders: - description: Defines the list of users assigned as on-call responders for the team. - properties: - data: - description: Array of user references associated as responders. - items: - $ref: "#/components/schemas/TeamOnCallRespondersDataRelationshipsRespondersDataItems" - type: array - type: object - TeamOnCallRespondersDataRelationshipsRespondersDataItems: - description: Represents a user responder associated with the on-call team. + - LATENCY + SyntheticsNetworkAssertionMultiNetworkHop: + description: Multi-network hop assertion for a Network Path test. properties: - id: - description: Unique identifier of the responder. - example: "" - type: string + operator: + $ref: "#/components/schemas/SyntheticsNetworkAssertionOperator" + property: + $ref: "#/components/schemas/SyntheticsNetworkAssertionProperty" + target: + description: Target value in number of hops. + example: 3 + format: double + type: number type: - $ref: "#/components/schemas/TeamOnCallRespondersDataRelationshipsRespondersDataItemsType" + $ref: "#/components/schemas/SyntheticsNetworkAssertionMultiNetworkHopType" required: + - operator + - property + - target - type - - id type: object - TeamOnCallRespondersDataRelationshipsRespondersDataItemsType: - default: users - description: Identifies the resource type for individual user entities associated with on-call response. + SyntheticsNetworkAssertionMultiNetworkHopType: + default: multiNetworkHop + description: Type of the multi-network hop assertion. enum: - - users - example: users + - multiNetworkHop + example: multiNetworkHop type: string x-enum-varnames: - - USERS - TeamOnCallRespondersDataType: - default: team_oncall_responders - description: Represents the resource type for a group of users assigned to handle on-call duties within a team. + - MULTI_NETWORK_HOP + SyntheticsNetworkAssertionOperator: + description: Assertion operator to apply. enum: - - team_oncall_responders - example: team_oncall_responders + - is + - isNot + - lessThan + - lessThanOrEqual + - moreThan + - moreThanOrEqual + example: lessThan type: string x-enum-varnames: - - TEAM_ONCALL_RESPONDERS - TeamOnCallRespondersIncluded: - description: Represents an union of related resources included in the response, such as users and escalation steps. - oneOf: - - $ref: "#/components/schemas/User" - - $ref: "#/components/schemas/Escalation" - TeamPermissionSetting: - description: Team permission setting + - IS + - IS_NOT + - LESS_THAN + - LESS_THAN_OR_EQUAL + - MORE_THAN + - MORE_THAN_OR_EQUAL + SyntheticsNetworkAssertionPacketLossPercentage: + description: Packet loss percentage assertion for a Network Path test. properties: - attributes: - $ref: "#/components/schemas/TeamPermissionSettingAttributes" - id: - description: The team permission setting's identifier - example: TeamPermission-aeadc05e-98a8-11ec-ac2c-da7ad0900001-edit - type: string + operator: + $ref: "#/components/schemas/SyntheticsNetworkAssertionOperator" + target: + description: Target value as a percentage (0 to 1). + example: 0.05 + format: double + maximum: 1 + minimum: 0 + type: number type: - $ref: "#/components/schemas/TeamPermissionSettingType" + $ref: "#/components/schemas/SyntheticsNetworkAssertionPacketLossPercentageType" required: - - id + - operator + - target - type type: object - TeamPermissionSettingAttributes: - description: Team permission setting attributes + SyntheticsNetworkAssertionPacketLossPercentageType: + default: packetLossPercentage + description: Type of the packet loss percentage assertion. + enum: + - packetLossPercentage + example: packetLossPercentage + type: string + x-enum-varnames: + - PACKET_LOSS_PERCENTAGE + SyntheticsNetworkAssertionProperty: + description: The associated assertion property. + enum: + - avg + - max + - min + example: avg + type: string + x-enum-varnames: + - AVG + - MAX + - MIN + SyntheticsNetworkTest: + description: Object containing details about a Network Path test. properties: - action: - $ref: "#/components/schemas/TeamPermissionSettingSerializerAction" - editable: - description: Whether or not the permission setting is editable by the current user + config: + $ref: "#/components/schemas/SyntheticsNetworkTestConfig" + locations: + description: |- + Array of locations used to run the test. Network Path tests can be run from managed locations to test public endpoints, + or from a [Datadog Agent](https://docs.datadoghq.com/synthetics/network_path_tests/#agent-configuration) to test private environments. + example: ["aws:us-east-1", "agent:my-agent-name"] + items: + description: A location to run the test from. + type: string + type: array + message: + description: Notification message associated with the test. + example: "Network Path test notification" + type: string + monitor_id: + description: The associated monitor ID. + example: 12345678 + format: int64 readOnly: true - type: boolean + type: integer + name: + description: Name of the test. + example: "Example Network Path test" + type: string options: - $ref: "#/components/schemas/TeamPermissionSettingValues" - title: - description: The team permission name + $ref: "#/components/schemas/SyntheticsTestOptions" + public_id: + description: The public ID for the test. + example: abc-def-123 readOnly: true type: string - value: - $ref: "#/components/schemas/TeamPermissionSettingValue" + status: + $ref: "#/components/schemas/SyntheticsTestPauseStatus" + subtype: + $ref: "#/components/schemas/SyntheticsNetworkTestSubType" + tags: + description: Array of tags attached to the test. + example: ["env:production"] + items: + description: A tag attached to the test. + type: string + type: array + type: + $ref: "#/components/schemas/SyntheticsNetworkTestType" + required: + - name + - config + - locations + - options + - type + - message type: object - TeamPermissionSettingResponse: - description: Team permission setting response + SyntheticsNetworkTestConfig: + description: Configuration object for a Network Path test. properties: - data: - $ref: "#/components/schemas/TeamPermissionSetting" + assertions: + default: [] + description: Array of assertions used for the test. + example: [{"operator": "lessThan", "property": "avg", "target": 500, "type": "latency"}] + items: + $ref: "#/components/schemas/SyntheticsNetworkAssertion" + type: array + request: + $ref: "#/components/schemas/SyntheticsNetworkTestRequest" type: object - TeamPermissionSettingSerializerAction: - description: The identifier for the action - enum: - - manage_membership - - edit - readOnly: true - type: string - x-enum-varnames: - - MANAGE_MEMBERSHIP - - EDIT - TeamPermissionSettingType: - default: team_permission_settings - description: Team permission setting type - enum: - - team_permission_settings - example: team_permission_settings - type: string - x-enum-varnames: - - TEAM_PERMISSION_SETTINGS - TeamPermissionSettingUpdate: - description: Team permission setting update + SyntheticsNetworkTestEdit: + description: Data object for creating or editing a Network Path test. properties: attributes: - $ref: "#/components/schemas/TeamPermissionSettingUpdateAttributes" + $ref: "#/components/schemas/SyntheticsNetworkTest" type: - $ref: "#/components/schemas/TeamPermissionSettingType" + $ref: "#/components/schemas/SyntheticsNetworkTestType" required: + - attributes - type type: object - TeamPermissionSettingUpdateAttributes: - description: Team permission setting update attributes - properties: - value: - $ref: "#/components/schemas/TeamPermissionSettingValue" - type: object - TeamPermissionSettingUpdateRequest: - description: Team permission setting update request + SyntheticsNetworkTestEditRequest: + description: Network Path test request. properties: data: - $ref: "#/components/schemas/TeamPermissionSettingUpdate" + $ref: "#/components/schemas/SyntheticsNetworkTestEdit" required: - data type: object - TeamPermissionSettingValue: - description: What type of user is allowed to perform the specified action + SyntheticsNetworkTestRequest: + description: Object describing the request for a Network Path test. + properties: + destination_service: + description: An optional label displayed for the destination host in the Network Path visualization. + type: string + e2e_queries: + description: The number of packets sent to probe the destination to measure packet loss, latency and jitter. + example: 50 + format: int64 + type: integer + host: + description: Host name to query. + example: "" + type: string + max_ttl: + description: The maximum time-to-live (max number of hops) used in outgoing probe packets. + example: 30 + format: int64 + type: integer + port: + description: |- + For TCP or UDP tests, the port to use when performing the test. + If not set on a UDP test, a random port is assigned, which may affect the results. + example: 443 + format: int64 + type: integer + source_service: + description: An optional label displayed for the source host in the Network Path visualization. + type: string + tcp_method: + $ref: "#/components/schemas/SyntheticsNetworkTestRequestTCPMethod" + timeout: + description: Timeout in seconds. + format: int64 + type: integer + traceroute_queries: + description: The number of traceroute path tracings. + example: 3 + format: int64 + type: integer + required: + - host + - max_ttl + - e2e_queries + - traceroute_queries + type: object + SyntheticsNetworkTestRequestTCPMethod: + description: For TCP tests, the TCP traceroute strategy. enum: - - admins - - members - - organization - - user_access_manage - - teams_manage + - prefer_sack + - syn + - sack + example: prefer_sack type: string x-enum-varnames: - - ADMINS - - MEMBERS - - ORGANIZATION - - USER_ACCESS_MANAGE - - TEAMS_MANAGE - TeamPermissionSettingValues: - description: Possible values for action - items: - $ref: "#/components/schemas/TeamPermissionSettingValue" - readOnly: true - type: array - TeamPermissionSettingsResponse: - description: Team permission settings response - properties: - data: - description: Team permission settings response data - items: - $ref: "#/components/schemas/TeamPermissionSetting" - type: array - type: object - TeamRef: - description: Reference to a Datadog team. + - PREFER_SACK + - SYN + - SACK + SyntheticsNetworkTestResponse: + description: Network Path test response. properties: data: - $ref: "#/components/schemas/TeamRefData" + $ref: "#/components/schemas/SyntheticsNetworkTestResponseData" type: object - TeamRefData: - description: Reference to a Datadog team. + SyntheticsNetworkTestResponseData: + description: Network Path test response data. properties: + attributes: + $ref: "#/components/schemas/SyntheticsNetworkTest" id: - description: The Datadog team ID. - example: "87654321-4321-8765-dcba-210987654321" + description: The public ID of the Network Path test. + example: abc-def-123 + readOnly: true type: string type: - $ref: "#/components/schemas/TeamRefDataType" - required: - - id - - type + $ref: "#/components/schemas/SyntheticsNetworkTestResponseType" type: object - TeamRefDataType: - default: "team" - description: Datadog team resource type. + SyntheticsNetworkTestResponseType: + default: "network_test" + description: Type of response, `network_test`. enum: - - team - example: "team" + - network_test + example: network_test type: string x-enum-varnames: - - TEAM - TeamReference: - description: Provides a reference to a team, including ID, type, and basic attributes/relationships. - properties: - attributes: - $ref: "#/components/schemas/TeamReferenceAttributes" - id: - description: The team's unique identifier. - type: string - type: - $ref: "#/components/schemas/TeamReferenceType" - required: - - type - type: object - TeamReferenceAttributes: - description: Encapsulates the basic attributes of a Team reference, such as name, handle, and an optional avatar or description. - properties: - avatar: - description: URL or reference for the team's avatar (if available). - type: string - description: - description: A short text describing the team. - type: string - handle: - description: A unique handle/slug for the team. - type: string - name: - description: The full, human-readable name of the team. - type: string - type: object - TeamReferenceType: - default: teams + - NETWORK_TEST + SyntheticsNetworkTestSubType: description: |- - Teams resource type. + Subtype of the Synthetic Network Path test: `tcp`, `udp`, or `icmp`. enum: - - teams - example: teams + - tcp + - udp + - icmp + example: tcp type: string x-enum-varnames: - - TEAMS - TeamRelationships: - description: Resources related to a team - properties: - team_links: - $ref: "#/components/schemas/RelationshipToTeamLinks" - user_team_permissions: - $ref: "#/components/schemas/RelationshipToUserTeamPermission" - type: object - TeamRelationshipsLinks: - description: Links attributes. - properties: - related: - description: Related link. - example: "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links" - type: string - type: object - TeamResponse: - description: Response with a team - properties: - data: - $ref: "#/components/schemas/Team" - type: object - TeamRoutingRules: - description: Represents a complete set of team routing rules, including data and optionally included related resources. - example: - data: - id: 27590dae-47be-4a7d-9abf-8f4e45124020 - relationships: - rules: - data: - - id: 03aff2d6-6cbf-496c-997f-a857bbe9a94a - type: team_routing_rules - - id: 03aff2d6-6cbf-496c-997f-a857bbe9a94a - type: team_routing_rules - type: team_routing_rules - included: - - attributes: - actions: - query: tags.service:test - time_restriction: - restrictions: - - end_day: monday - end_time: "17:00:00" - start_day: monday - start_time: "09:00:00" - - end_day: tuesday - end_time: "17:00:00" - start_day: tuesday - start_time: "09:00:00" - time_zone: "" - urgency: high - id: 03aff2d6-6cbf-496c-997f-a857bbe9a94a - relationships: - policy: - data: - type: team_routing_rules + - TCP + - UDP + - ICMP + SyntheticsNetworkTestType: + default: "network" + description: Type of the Synthetic test, `network`. + enum: + - network + example: network + type: string + x-enum-varnames: + - NETWORK + SyntheticsPollTestResultsResponse: + description: Response object for polling Synthetic test results. properties: data: - $ref: "#/components/schemas/TeamRoutingRulesData" + description: Array of Synthetic test results. + items: + $ref: "#/components/schemas/SyntheticsTestResultData" + type: array included: - description: Provides related routing rules or other included resources. + description: Array of included related resources, such as the test definition. items: - $ref: "#/components/schemas/TeamRoutingRulesIncluded" + $ref: "#/components/schemas/SyntheticsTestResultIncludedItem" type: array type: object - TeamRoutingRulesData: - description: Represents the top-level data object for team routing rules, containing the ID, relationships, and resource type. + SyntheticsRestrictedRoles: + deprecated: true + description: A list of role identifiers that can be pulled from the Roles API, for restricting read and write access. This field is deprecated. Use the restriction policies API to manage permissions. + example: ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"] + items: + description: UUID for a role. + example: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + type: string + type: array + SyntheticsSuite: + description: Object containing details about a Synthetic suite. properties: - id: - description: Specifies the unique identifier of this team routing rules record. + message: + description: Notification message associated with the suite. + example: Notification message type: string - relationships: - $ref: "#/components/schemas/TeamRoutingRulesDataRelationships" - type: - $ref: "#/components/schemas/TeamRoutingRulesDataType" - required: - - type - type: object - TeamRoutingRulesDataRelationships: - description: Specifies relationships for team routing rules, including rule references. + monitor_id: + description: The associated monitor ID. + example: 12345678 + format: int64 + readOnly: true + type: integer + name: + description: Name of the suite. + example: "Example suite name" + type: string + options: + $ref: "#/components/schemas/SyntheticsSuiteOptions" + public_id: + description: The public ID for the test. + example: 123-abc-456 + readOnly: true + type: string + tags: + description: Array of tags attached to the suite. + example: ["env:production"] + items: + description: A tag attached to the suite. + type: string + type: array + tests: + description: Array of Synthetic tests included in the suite. + items: + $ref: "#/components/schemas/SyntheticsSuiteTest" + type: array + type: + $ref: "#/components/schemas/SyntheticsSuiteType" + required: + - name + - type + - tests + - options + type: object + SyntheticsSuiteOptions: + description: Object describing the extra options for a Synthetic suite. properties: - rules: - $ref: "#/components/schemas/TeamRoutingRulesDataRelationshipsRules" + alerting_threshold: + description: Percentage of critical tests failure needed for a suite to fail. + format: double + maximum: 1 + minimum: 0 + type: number type: object - TeamRoutingRulesDataRelationshipsRules: - description: Holds references to a set of routing rules in a relationship. + SyntheticsSuiteResponse: + description: Synthetics suite response properties: data: - description: An array of references to the routing rules associated with this team. - items: - $ref: "#/components/schemas/TeamRoutingRulesDataRelationshipsRulesDataItems" - type: array + $ref: "#/components/schemas/SyntheticsSuiteResponseData" type: object - TeamRoutingRulesDataRelationshipsRulesDataItems: - description: "Defines a relationship item to link a routing rule by its ID and type." + SyntheticsSuiteResponseData: + description: Synthetics suite response data properties: + attributes: + $ref: "#/components/schemas/SyntheticsSuite" id: - description: Specifies the unique identifier for the related routing rule. - example: "" + description: The public ID for the suite. + example: 123-abc-456 + readOnly: true type: string type: - $ref: "#/components/schemas/TeamRoutingRulesDataRelationshipsRulesDataItemsType" - required: - - type - - id + $ref: "#/components/schemas/SyntheticsSuiteTypes" type: object - TeamRoutingRulesDataRelationshipsRulesDataItemsType: - default: team_routing_rules - description: "Indicates that the resource is of type 'team_routing_rules'." - enum: - - team_routing_rules - example: team_routing_rules - type: string - x-enum-varnames: - - TEAM_ROUTING_RULES - TeamRoutingRulesDataType: - default: team_routing_rules - description: Team routing rules resource type. - enum: - - team_routing_rules - example: team_routing_rules - type: string - x-enum-varnames: - - TEAM_ROUTING_RULES - TeamRoutingRulesIncluded: - description: Represents additional included resources for team routing rules, such as associated routing rules. - oneOf: - - $ref: "#/components/schemas/RoutingRule" - TeamRoutingRulesRequest: - description: Represents a request to create or update team routing rules, including the data payload. - example: - data: - attributes: - rules: - - actions: - policy_id: "" - query: tags.service:test - time_restriction: - restrictions: - - end_day: monday - end_time: "17:00:00" - start_day: monday - start_time: "09:00:00" - - end_day: tuesday - end_time: "17:00:00" - start_day: tuesday - start_time: "09:00:00" - time_zone: "" - urgency: high - - actions: - - channel: channel - type: send_slack_message - workspace: workspace - policy_id: fad4eee1-13f5-40d8-886b-4e56d8d5d1c6 - query: "" - time_restriction: - urgency: low - id: 27590dae-47be-4a7d-9abf-8f4e45124020 - type: team_routing_rules + SyntheticsSuiteSearchResponse: + description: Synthetics suite search response properties: data: - $ref: "#/components/schemas/TeamRoutingRulesRequestData" + $ref: "#/components/schemas/SyntheticsSuiteSearchResponseData" type: object - TeamRoutingRulesRequestData: - description: Holds the data necessary to create or update team routing rules, including attributes, ID, and resource type. + SyntheticsSuiteSearchResponseData: + description: Synthetics suite search response data properties: attributes: - $ref: "#/components/schemas/TeamRoutingRulesRequestDataAttributes" + $ref: "#/components/schemas/SyntheticsSuiteSearchResponseDataAttributes" id: - description: Specifies the unique identifier for this set of team routing rules. + description: The unique identifier of the suite search response data. + format: uuid type: string type: - $ref: "#/components/schemas/TeamRoutingRulesRequestDataType" - required: - - type + $ref: "#/components/schemas/SuiteSearchResponseType" type: object - TeamRoutingRulesRequestDataAttributes: - description: Represents the attributes of a request to update or create team routing rules. + SyntheticsSuiteSearchResponseDataAttributes: + description: Synthetics suite search response data attributes properties: - rules: - description: A list of routing rule items that define how incoming pages should be handled. + suites: + description: List of Synthetic suites matching the search query. items: - $ref: "#/components/schemas/TeamRoutingRulesRequestRule" + $ref: "#/components/schemas/SyntheticsSuite" type: array + total: + description: Total number of Synthetic suites matching the search query. + format: int32 + maximum: 2147483647 + type: integer type: object - TeamRoutingRulesRequestDataType: - default: team_routing_rules - description: Team routing rules resource type. - enum: - - team_routing_rules - example: team_routing_rules - type: string - x-enum-varnames: - - TEAM_ROUTING_RULES - TeamRoutingRulesRequestRule: - description: Defines an individual routing rule item that contains the rule data for the request. + SyntheticsSuiteTest: + description: Object containing details about a Synthetic test included in a Synthetic suite. properties: - actions: - description: Specifies the list of actions to perform when the routing rule is matched. - items: - $ref: "#/components/schemas/RoutingRuleAction" - type: array - id: - description: |- - Specifies the unique identifier of an existing routing rule to update. - If omitted, a new routing rule is created. - type: string - policy_id: - description: Identifies the policy to be applied when this routing rule matches. - type: string - query: - description: Defines the query or condition that triggers this routing rule. + alerting_criticality: + $ref: "#/components/schemas/SyntheticsSuiteTestAlertingCriticality" + public_id: + description: The public ID of the Synthetic test included in the suite. + example: "" type: string - time_restriction: - $ref: "#/components/schemas/TimeRestrictions" - urgency: - $ref: "#/components/schemas/Urgency" - type: object - TeamSyncAttributes: - description: Team sync attributes. - properties: - frequency: - $ref: "#/components/schemas/TeamSyncAttributesFrequency" - selection_state: - $ref: "#/components/schemas/TeamSyncAttributesSelectionState" - source: - $ref: "#/components/schemas/TeamSyncAttributesSource" - sync_membership: - $ref: "#/components/schemas/TeamSyncAttributesSyncMembership" - type: - $ref: "#/components/schemas/TeamSyncAttributesType" required: - - source - - type + - public_id type: object - TeamSyncAttributesFrequency: - description: How often the sync process should be run. Defaults to `once` when not provided. - enum: - - once - - continuously - - paused - example: once - type: string - x-enum-varnames: - - ONCE - - CONTINUOUSLY - - PAUSED - TeamSyncAttributesSelectionState: - description: |- - Specifies which teams or organizations to sync. When - provided, synchronization is limited to the specified - items and their subtrees. - items: - $ref: "#/components/schemas/TeamSyncSelectionStateItem" - type: array - TeamSyncAttributesSource: - description: The external source platform for team synchronization. Only "github" is supported. + SyntheticsSuiteTestAlertingCriticality: + description: Alerting criticality for each the test. enum: - - github - example: github + - ignore + - critical + example: critical type: string x-enum-varnames: - - GITHUB - TeamSyncAttributesSyncMembership: - default: false - description: Whether to sync members from the external team to the Datadog team. Defaults to `false` when not provided. - example: true - type: boolean - TeamSyncAttributesType: - description: The type of synchronization operation. "link" connects teams by matching names. "provision" creates new teams when no match is found. + - IGNORE + - CRITICAL + SyntheticsSuiteType: + default: "suite" + description: Type of the Synthetic suite, `suite`. enum: - - link - - provision - example: link + - suite + example: suite type: string x-enum-varnames: - - LINK - - PROVISION - TeamSyncBulkType: - description: Team sync bulk type. + - SUITE + SyntheticsSuiteTypes: + default: "suites" + description: Type for the Synthetics suites responses, `suites`. enum: - - team_sync_bulk - example: team_sync_bulk + - suites + example: suites type: string x-enum-varnames: - - TEAM_SYNC_BULK - TeamSyncData: - description: A configuration governing syncing between Datadog teams and teams from an external system. + - SUITES + SyntheticsTestFileAbortMultipartUploadRequest: + description: Request body for aborting a multipart file upload. properties: - attributes: - $ref: "#/components/schemas/TeamSyncAttributes" - id: - description: The sync's identifier - example: aeadc05e-98a8-11ec-ac2c-da7ad0900001 + key: + description: The full storage path of the file whose upload should be aborted. + example: "org-123/api-upload-file/abc-def-123/2024-01-01T00:00:00_uuid.json" + type: string + uploadId: + description: The upload ID of the multipart upload to abort. + example: "upload-id-abc123" type: string - type: - $ref: "#/components/schemas/TeamSyncBulkType" required: - - attributes - - type + - uploadId + - key type: object - TeamSyncRequest: - description: Team sync request. - example: - data: - attributes: - source: github - type: link - type: team_sync_bulk + SyntheticsTestFileCompleteMultipartUploadPart: + description: A completed part of a multipart upload. properties: - data: - $ref: "#/components/schemas/TeamSyncData" + ETag: + description: The ETag returned by the storage provider after uploading the part. + example: '"d41d8cd98f00b204e9800998ecf8427e"' + type: string + PartNumber: + description: The 1-indexed part number for the multipart upload. + example: 1 + format: int64 + type: integer required: - - data + - ETag + - PartNumber type: object - TeamSyncResponse: - description: Team sync configurations response. + SyntheticsTestFileCompleteMultipartUploadRequest: + description: Request body for completing a multipart file upload. properties: - data: - description: List of team sync configurations + key: + description: The full storage path for the uploaded file. + example: "org-123/api-upload-file/abc-def-123/2024-01-01T00:00:00_uuid.json" + type: string + parts: + description: Array of completed parts with their ETags. items: - $ref: "#/components/schemas/TeamSyncData" + $ref: "#/components/schemas/SyntheticsTestFileCompleteMultipartUploadPart" type: array - type: object - TeamSyncSelectionStateExternalId: - description: The external identifier for a team or organization in the source platform. - properties: - type: - $ref: "#/components/schemas/TeamSyncSelectionStateExternalIdType" - value: - $ref: "#/components/schemas/TeamSyncSelectionStateExternalIdValue" + uploadId: + description: The upload ID returned when the multipart upload was initiated. + example: "upload-id-abc123" + type: string required: - - type - - value + - uploadId + - key + - parts type: object - TeamSyncSelectionStateExternalIdType: - description: |- - The type of external identifier for the selection state item. - For GitHub synchronization, the allowed values are `team` and - `organization`. - enum: - - team - - organization - example: team - type: string - x-enum-varnames: - - TEAM - - ORGANIZATION - TeamSyncSelectionStateExternalIdValue: - description: |- - The external identifier value from the source - platform. For GitHub, this is the string - representation of a GitHub organization ID or team - ID. - example: "1" - type: string - TeamSyncSelectionStateItem: - description: Identifies a team or organization hierarchy to include in synchronization. + SyntheticsTestFileDownloadRequest: + description: Request body for getting a presigned download URL for a test file. properties: - external_id: - $ref: "#/components/schemas/TeamSyncSelectionStateExternalId" - operation: - $ref: "#/components/schemas/TeamSyncSelectionStateOperation" - scope: - $ref: "#/components/schemas/TeamSyncSelectionStateScope" + bucketKey: + description: The bucket key referencing the file to download. + example: "api-upload-file/abc-def-123/2024-01-01T00:00:00_uuid.json" + minLength: 1 + type: string required: - - external_id + - bucketKey type: object - TeamSyncSelectionStateOperation: - description: |- - The operation to perform on the selected hierarchy. - When set to `include`, synchronization covers the - referenced teams or organizations. - enum: - - include - example: include - type: string - x-enum-varnames: - - INCLUDE - TeamSyncSelectionStateScope: - description: |- - The scope of the selection. When set to `subtree`, - synchronization includes the referenced team or - organization and everything nested under it. - enum: - - subtree - example: subtree - type: string - x-enum-varnames: - - SUBTREE - TeamTarget: - description: "Represents a team target for an escalation policy step, including the team's ID and resource type." + SyntheticsTestFileDownloadResponse: + description: Response containing a presigned URL for downloading a test file. properties: - id: - description: "Specifies the unique identifier of the team resource." - example: "00000000-aba1-0000-0000-000000000000" + url: + description: A presigned URL to download the file. The URL expires after a short period. + example: "https://storage.example.com/presigned-download-url" type: string - type: - $ref: "#/components/schemas/TeamTargetType" - required: - - type - - id type: object - TeamTargetType: - default: teams - description: "Indicates that the resource is of type `teams`." - enum: - - teams - example: teams - type: string - x-enum-varnames: - - TEAMS - TeamType: - default: team - description: Team type - enum: - - team - example: team - type: string - x-enum-varnames: - - TEAM - TeamUpdate: - description: Team update request + SyntheticsTestFileMultipartPresignedUrlsParams: + description: Presigned URL parameters returned for a multipart upload. properties: - attributes: - $ref: "#/components/schemas/TeamUpdateAttributes" - relationships: - $ref: "#/components/schemas/TeamUpdateRelationships" - type: - $ref: "#/components/schemas/TeamType" - required: - - attributes - - type + key: + description: The full storage path for the file being uploaded. + example: "org-123/api-upload-file/abc-def-123/2024-01-01T00:00:00_uuid.json" + type: string + upload_id: + description: The upload ID assigned by the storage provider for this multipart upload. + example: "upload-id-abc123" + type: string + urls: + additionalProperties: + type: string + description: A map of part numbers to presigned upload URLs. + example: + "1": "https://storage.example.com/presigned-upload-url-part-1" + "2": "https://storage.example.com/presigned-upload-url-part-2" + type: object type: object - TeamUpdateAttributes: - description: Team update attributes + SyntheticsTestFileMultipartPresignedUrlsPart: + description: A part descriptor for initiating a multipart upload. properties: - avatar: - description: Unicode representation of the avatar for the team, limited to a single grapheme - example: "🥑" - nullable: true + md5: + description: Base64-encoded MD5 digest of the part content. + example: "1B2M2Y8AsgTpgAmY7PhCfg==" + maxLength: 24 + minLength: 22 type: string - banner: - description: Banner selection for the team + partNumber: + description: The 1-indexed part number for the multipart upload. + example: 1 format: int64 - nullable: true type: integer - description: - description: Free-form markdown description/content for the team's homepage - type: string - handle: - description: The team's identifier - example: example-team - maxLength: 195 - type: string - hidden_modules: - description: Collection of hidden modules for the team - items: - description: String identifier of the module - type: string - type: array - name: - description: The name of the team - example: Example Team - maxLength: 200 - type: string - visible_modules: - description: Collection of visible modules for the team - items: - description: String identifier of the module - type: string - type: array required: - - handle - - name - type: object - TeamUpdateRelationships: - description: Team update relationships - properties: - team_links: - $ref: "#/components/schemas/RelationshipToTeamLinks" + - md5 + - partNumber type: object - TeamUpdateRequest: - description: Team update request + SyntheticsTestFileMultipartPresignedUrlsRequest: + description: Request body for getting presigned URLs for a multipart file upload. properties: - data: - $ref: "#/components/schemas/TeamUpdate" + bucketKeyPrefix: + $ref: "#/components/schemas/SyntheticsTestFileMultipartPresignedUrlsRequestBucketKeyPrefix" + parts: + description: Array of part descriptors for the multipart upload. + items: + $ref: "#/components/schemas/SyntheticsTestFileMultipartPresignedUrlsPart" + type: array required: - - data + - bucketKeyPrefix + - parts type: object - TeamsField: - description: Supported teams field. + SyntheticsTestFileMultipartPresignedUrlsRequestBucketKeyPrefix: + description: The bucket key prefix indicating the type of file upload. enum: - - id - - name - - handle - - summary - - description - - avatar - - banner - - visible_modules - - hidden_modules - - created_at - - modified_at - - user_count - - link_count - - team_links - - user_team_permissions + - api-upload-file + - browser-upload-file-step + example: "api-upload-file" type: string x-enum-varnames: - - ID - - NAME - - HANDLE - - SUMMARY - - DESCRIPTION - - AVATAR - - BANNER - - VISIBLE_MODULES - - HIDDEN_MODULES - - CREATED_AT - - MODIFIED_AT - - USER_COUNT - - LINK_COUNT - - TEAM_LINKS - - USER_TEAM_PERMISSIONS - TeamsHierarchyLinksResponseLinks: - description: When querying team hierarchy links, a set of links for navigation between different pages is included + - API_UPLOAD_FILE + - BROWSER_UPLOAD_FILE_STEP + SyntheticsTestFileMultipartPresignedUrlsResponse: + description: Response containing presigned URLs for multipart file upload and the bucket key. properties: - first: - description: Link to the first page. - nullable: true - type: string - last: - description: Link to the last page. - nullable: true - type: string - next: - description: Link to the next page. - nullable: true - type: string - prev: - description: Link to the previous page. - nullable: true - type: string - self: - description: Link to the current object. + bucketKey: + description: The bucket key that references the uploaded file after completion. + example: "api-upload-file/abc-def-123/2024-01-01T00:00:00_uuid.json" type: string + multipart_presigned_urls_params: + $ref: "#/components/schemas/SyntheticsTestFileMultipartPresignedUrlsParams" type: object - TeamsHierarchyLinksResponseMeta: - description: Metadata that is included in the response when querying the team hierarchy links + SyntheticsTestLatestResultsResponse: + description: Response object for a Synthetic test's latest result summaries. properties: - page: - $ref: "#/components/schemas/TeamsHierarchyLinksResponseMetaPage" + data: + description: Array of Synthetic test result summaries. + items: + $ref: "#/components/schemas/SyntheticsTestResultSummaryData" + type: array + included: + description: Array of included related resources, such as the test definition. + items: + $ref: "#/components/schemas/SyntheticsTestResultIncludedItem" + type: array type: object - TeamsHierarchyLinksResponseMetaPage: - description: Metadata related to paging information that is included in the response when querying the team hierarchy links + SyntheticsTestOptions: + description: Object describing the extra options for a Synthetic test. properties: - first_number: - description: First page number. + min_failure_duration: + description: Minimum amount of time in failure required to trigger an alert. format: int64 type: integer - last_number: - description: Last page number. + min_location_failed: + description: |- + Minimum number of locations in failure required to trigger + an alert. format: int64 type: integer - next_number: - description: Next page number. - format: int64 - nullable: true + monitor_name: + description: The monitor name is used for the alert title as well as for all monitor dashboard widgets and SLOs. + type: string + monitor_options: + $ref: "#/components/schemas/SyntheticsTestOptionsMonitorOptions" + monitor_priority: + description: Integer from 1 (high) to 5 (low) indicating alert severity. + format: int32 + maximum: 5 + minimum: 1 type: integer - number: - description: Page number. + restricted_roles: + $ref: "#/components/schemas/SyntheticsRestrictedRoles" + retry: + $ref: "#/components/schemas/SyntheticsTestOptionsRetry" + scheduling: + $ref: "#/components/schemas/SyntheticsTestOptionsScheduling" + tick_every: + description: The frequency at which to run the Synthetic test (in seconds). format: int64 + maximum: 604800 + minimum: 30 type: integer - prev_number: - description: Previous page number. + type: object + SyntheticsTestOptionsMonitorOptions: + description: |- + Object containing the options for a Synthetic test as a monitor + (for example, renotification). + properties: + escalation_message: + description: Message to include in the escalation notification. + type: string + notification_preset_name: + $ref: "#/components/schemas/SyntheticsTestOptionsMonitorOptionsNotificationPresetName" + renotify_interval: + description: |- + Time interval before renotifying if the test is still failing + (in minutes). format: int64 - nullable: true + minimum: 0 type: integer - size: - description: Page size. + renotify_occurrences: + description: The number of times to renotify if the test is still failing. format: int64 type: integer - total: - description: Total number of results. + type: object + SyntheticsTestOptionsMonitorOptionsNotificationPresetName: + description: The name of the preset for the notification for the monitor. + enum: + - show_all + - hide_all + - hide_query + - hide_handles + - hide_query_and_handles + - show_only_snapshot + - hide_handles_and_footer + type: string + x-enum-varnames: + - SHOW_ALL + - HIDE_ALL + - HIDE_QUERY + - HIDE_HANDLES + - HIDE_QUERY_AND_HANDLES + - SHOW_ONLY_SNAPSHOT + - HIDE_HANDLES_AND_FOOTER + SyntheticsTestOptionsRetry: + description: Object describing the retry strategy to apply to a Synthetic test. + properties: + count: + description: |- + Number of times a test needs to be retried before marking a + location as failed. Defaults to 0. format: int64 type: integer - type: - description: Pagination type. - example: "number_size" - type: string + interval: + description: |- + Time interval between retries (in milliseconds). Defaults to + 300ms. + format: double + type: number type: object - TeamsOwnershipMappingBatchError: - description: An error encountered while validating or applying an operation. + SyntheticsTestOptionsScheduling: + description: Object containing timeframes and timezone used for advanced scheduling. properties: - detail: - description: A human-readable explanation specific to this error. - example: "prefix match_type is not enabled for this org" - type: string - status: - description: The HTTP status code applicable to this error. - example: "400" - type: string - title: - description: A short, human-readable summary of the error. - example: "Bad Request" + timeframes: + description: Array containing objects describing the scheduling pattern to apply to each day. + example: [{"day": 1, "from": "07:00", "to": "16:00"}, {"day": 3, "from": "07:00", "to": "16:00"}] + items: + $ref: "#/components/schemas/SyntheticsTestOptionsSchedulingTimeframe" + type: array + timezone: + description: Timezone in which the timeframe is based. + example: "America/New_York" type: string required: - - status - - title - type: object - TeamsOwnershipMappingBatchOperation: - description: A single add or remove operation, applied atomically with every other operation in the request. - properties: - data: - $ref: "#/components/schemas/TeamsOwnershipMappingBatchOperationData" - op: - $ref: "#/components/schemas/TeamsOwnershipMappingBatchOperationOp" - ref: - $ref: "#/components/schemas/TeamsOwnershipMappingBatchOperationRef" - required: - - op + - timeframes + - timezone type: object - TeamsOwnershipMappingBatchOperationData: - description: The mapping to add. Required when `op` is `add`. + SyntheticsTestOptionsSchedulingTimeframe: + description: Object describing a timeframe. properties: - attributes: - $ref: "#/components/schemas/TeamsOwnershipMappingBatchOperationDataAttributes" - type: - $ref: "#/components/schemas/TeamsOwnershipMappingType" + day: + description: Number representing the day of the week. + example: 1 + format: int32 + maximum: 7 + minimum: 1 + type: integer + from: + description: The hour of the day on which scheduling starts. + example: "07:00" + type: string + to: + description: The hour of the day on which scheduling ends. + example: "16:00" + type: string required: - - type - - attributes + - day + - from + - to type: object - TeamsOwnershipMappingBatchOperationDataAttributes: - description: |- - The attributes of the mapping to add. `team_handle` and `view_name` are required - when `op` is `add`. At least one of `service` or `application_id` must be provided. + SyntheticsTestParentSuiteAttributes: + description: Object containing details about a parent suite of a Synthetic test. properties: - application_id: - description: |- - The ID of the RUM application this mapping applies to. - For browser applications, provide the real application UUID — the team is applied to the view regardless of service. - For mobile applications, omit this field (or set it to the nil UUID `00000000-0000-0000-0000-000000000000`) — the team is applied to the view and service combination across all applications. - example: "11111111-2222-3333-4444-555555555555" - format: uuid + child_name: + description: The name of the child test within the suite. + example: My API Test type: string - match_type: - $ref: "#/components/schemas/TeamsOwnershipMatchType" - service: - description: The RUM application's service name. For browser applications, this is optional. For mobile applications, this is required and scopes the ownership to a specific service. - example: "web-checkout" + child_public_id: + description: The public ID of the child test within the suite. + example: xyz-uvw-789 type: string - team_handle: - description: The handle of the team that owns the matched RUM views. - example: "team-rum" + monitor_id: + description: The associated monitor ID. + example: 12345678 + format: int64 + type: integer + name: + description: Name of the parent suite. + example: My Suite type: string - view_name: - description: The RUM view name to match, or its prefix when `match_type` is `prefix`. - example: "/checkout" + overall_state: + description: The overall state of the parent suite. + example: 0 + format: int64 + type: integer + overall_state_modified: + description: Timestamp of when the overall state was last modified. + example: "2024-01-01T00:00:00+00:00" + type: string + public_id: + description: The public ID of the parent suite. + example: abc-def-123 type: string type: object - TeamsOwnershipMappingBatchOperationOp: - description: Whether this operation adds a new mapping or removes an existing one. - enum: - - add - - remove - example: add - type: string - x-enum-varnames: ["ADD", "REMOVE"] - TeamsOwnershipMappingBatchOperationRef: - description: Identifies an existing mapping to remove. Required when `op` is `remove`. + SyntheticsTestParentSuiteData: + description: Data object for a parent suite. properties: + attributes: + $ref: "#/components/schemas/SyntheticsTestParentSuiteAttributes" id: - description: The ID of the mapping to remove. - example: "456" + description: The public ID of the parent suite. + example: abc-def-123 type: string type: - $ref: "#/components/schemas/TeamsOwnershipMappingType" - required: - - type - - id + $ref: "#/components/schemas/SyntheticsTestParentSuiteType" type: object - TeamsOwnershipMappingBatchRequest: - description: The request body for bulk-creating and bulk-removing teams ownership mappings. + SyntheticsTestParentSuiteType: + default: parent_suite + description: Type of the parent suite resource. + enum: + - parent_suite + example: parent_suite + type: string + x-enum-varnames: + - PARENT_SUITE + SyntheticsTestParentSuitesResponse: + description: Response containing the list of parent suites for a Synthetic test. properties: - atomic:operations: - description: The list of add and remove operations to apply atomically. + data: + description: List of parent suites for the given test. items: - $ref: "#/components/schemas/TeamsOwnershipMappingBatchOperation" + $ref: "#/components/schemas/SyntheticsTestParentSuiteData" type: array - required: - - atomic:operations type: object - TeamsOwnershipMappingBatchResponse: + SyntheticsTestPauseStatus: description: |- - The response body for the bulk create and remove operation. On success, `atomic:results` - contains one entry per operation. Add results appear before remove results and may not match - request order. Correlate add results by their `type` and `id` rather than by array position. - On failure, no operations were applied and `errors` describes what went wrong. + Define whether you want to start (`live`) or pause (`paused`) a + Synthetic test. + enum: + - live + - paused + example: live + type: string + x-enum-varnames: + - LIVE + - PAUSED + SyntheticsTestResultAssertionResult: + description: An individual assertion result from a Synthetic test. properties: - atomic:results: - description: |- - The result of each operation. - Add operations are processed first, then remove operations, so results may not appear - in the same order as the request. Present only on success. - items: - $ref: "#/components/schemas/TeamsOwnershipMappingBatchResult" - type: array - errors: - description: The validation or processing errors encountered. Present only when the request could not be completed. - items: - $ref: "#/components/schemas/TeamsOwnershipMappingBatchError" - type: array + actual: + description: Actual value observed during the test. Its type depends on the assertion type. + example: 200 + error_message: + description: Error message if the assertion failed. + example: "Assertion failed: expected 200 but got 500" + type: string + expected: + description: Expected value for the assertion. Its type depends on the assertion type. + example: "200" + operator: + description: Operator used for the assertion (for example, `is`, `contains`). + example: is + type: string + property: + description: Property targeted by the assertion, when applicable. + example: content-type + type: string + target: + description: Target value for the assertion. Its type depends on the assertion type. + example: 200 + target_path: + description: JSON path or XPath evaluated for the assertion. + example: $.url + type: string + target_path_operator: + description: Operator used for the target path assertion. + example: contains + type: string + type: + description: Type of the assertion (for example, `responseTime`, `statusCode`, `body`). + example: statusCode + type: string + valid: + description: Whether the assertion passed. + example: true + type: boolean type: object - TeamsOwnershipMappingBatchResult: - description: |- - The result of a single operation. - Add operations are processed first, then remove operations, so results may not appear - in the same order as the request. Empty for `remove` operations. + SyntheticsTestResultAttributes: + description: Attributes of a Synthetic test result. properties: - data: - $ref: "#/components/schemas/TeamsOwnershipMappingBatchResultData" + batch: + $ref: "#/components/schemas/SyntheticsTestResultBatch" + ci: + $ref: "#/components/schemas/SyntheticsTestResultCI" + device: + $ref: "#/components/schemas/SyntheticsTestResultDevice" + git: + $ref: "#/components/schemas/SyntheticsTestResultGit" + location: + $ref: "#/components/schemas/SyntheticsTestResultLocation" + result: + $ref: "#/components/schemas/SyntheticsTestResultDetail" + test_sub_type: + $ref: "#/components/schemas/SyntheticsTestSubType" + test_type: + $ref: "#/components/schemas/SyntheticsTestType" type: object - TeamsOwnershipMappingBatchResultData: - description: The mapping created by an `add` operation. + SyntheticsTestResultBatch: + description: Batch information for the test result. properties: - attributes: - $ref: "#/components/schemas/TeamsOwnershipMappingBatchResultDataAttributes" id: - description: The unique identifier of the teams ownership mapping. - example: "123" + description: Batch identifier. + example: batch-abc-123 type: string - type: - $ref: "#/components/schemas/TeamsOwnershipMappingType" - required: - - type - - id - - attributes type: object - TeamsOwnershipMappingBatchResultDataAttributes: - description: The attributes of a mapping created by an `add` operation. + SyntheticsTestResultBounds: + description: Bounding box of an element on the page. properties: - application_id: - description: The ID of the RUM application, when one was provided. - example: "11111111-2222-3333-4444-555555555555" - format: uuid - type: string - created_at: - description: Timestamp when the mapping was created. - example: "2026-01-15T09:30:00.000Z" - format: date-time - type: string - created_by: - description: The UUID of the user who created the mapping. - example: "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" - type: string - match_type: - $ref: "#/components/schemas/TeamsOwnershipMatchType" - org_id: - description: The ID of the organization that owns this mapping. - example: 123456 + height: + description: Height in pixels. + example: 37 format: int64 type: integer - service: - description: The RUM application's service name, when one was provided. - example: "web-checkout" + width: + description: Width in pixels. + example: 343 + format: int64 + type: integer + x: + description: Horizontal position in pixels. + example: 16 + format: int64 + type: integer + y: + description: Vertical position in pixels. + example: 140 + format: int64 + type: integer + type: object + SyntheticsTestResultBrowserError: + description: A browser error captured during a browser test step. + properties: + description: + description: Error description. + example: Failed to fetch resource type: string - team_handle: - description: The handle of the team that owns the matched RUM views. - example: "team-rum" + method: + description: HTTP method associated with the error (for network errors). + example: GET type: string - view_name: - description: The RUM view name to match, or its prefix when `match_type` is `prefix`. - example: "/checkout" + name: + description: Error name. + example: NetworkError type: string - required: - - team_handle - - view_name - - org_id - - created_at - - created_by - - match_type - type: object - TeamsOwnershipMappingCreateData: - description: The JSON:API data envelope for a teams ownership mapping create request. - properties: - attributes: - $ref: "#/components/schemas/TeamsOwnershipMappingCreateDataAttributes" + status: + description: HTTP status code associated with the error (for network errors). + example: 500 + format: int64 + type: integer type: - $ref: "#/components/schemas/TeamsOwnershipMappingType" - required: - - type - - attributes + description: Type of the browser error. + example: network + type: string + url: + additionalProperties: {} + description: URL associated with the error. + type: object type: object - TeamsOwnershipMappingCreateDataAttributes: - description: The attributes of the teams ownership mapping to create. + SyntheticsTestResultBucketKeys: + description: Storage bucket keys for artifacts produced during a step or test. properties: - application_id: - description: |- - The ID of the RUM application this mapping applies to. - For browser applications, provide the real application UUID — the team is applied to the view regardless of service. - For mobile applications, omit this field (or set it to the nil UUID `00000000-0000-0000-0000-000000000000`) — the team is applied to the view and service combination across all applications. - example: "11111111-2222-3333-4444-555555555555" - format: uuid + after_step_screenshot: + description: Key for the screenshot captured after the step (goal-based tests). + example: screenshots/after-step-1-1.png type: string - match_type: - $ref: "#/components/schemas/TeamsOwnershipMatchType" - service: - description: The RUM application's service name. For browser applications, this is optional. For mobile applications, this is required and scopes the ownership to a specific service. - example: "web-checkout" + after_turn_screenshot: + description: Key for the screenshot captured after the turn (goal-based tests). + example: screenshots/after-turn-1.png type: string - team_handle: - description: The handle of the team that owns the matched RUM views. - example: "team-rum" + artifacts: + description: Key for miscellaneous artifacts. + example: 2/e2e-tests/equ-jku-twc/results/6989498452827932222/edge.laptop_large/artifacts__1724521416257.json type: string - view_name: - description: The RUM view name to match, or its prefix when `match_type` is `prefix`. - example: "/checkout" + before_step_screenshot: + description: Key for the screenshot captured before the step (goal-based tests). + example: screenshots/before-step-1-1.png type: string - required: - - team_handle - - view_name - type: object - TeamsOwnershipMappingCreateRequest: - description: The request body for creating a teams ownership mapping. - properties: - data: - $ref: "#/components/schemas/TeamsOwnershipMappingCreateData" - required: - - data - type: object - TeamsOwnershipMappingResponse: - description: The response body for a single teams ownership mapping. - properties: - data: - $ref: "#/components/schemas/TeamsOwnershipMappingResponseData" - required: - - data - type: object - TeamsOwnershipMappingResponseAttributes: - description: The attributes of a teams ownership mapping. - properties: - application_id: - description: |- - The ID of the RUM application this mapping applies to. - For browser applications, this is the real application UUID. - For mobile applications, this is the nil UUID `00000000-0000-0000-0000-000000000000` (wildcard), meaning the ownership applies across all applications. - example: "11111111-2222-3333-4444-555555555555" + before_turn_screenshot: + description: Key for the screenshot captured before the turn (goal-based tests). + example: screenshots/before-turn-1.png type: string - created_at: - description: Timestamp when the mapping was created. - example: "2026-01-15T09:30:00.000Z" - format: date-time + crash_report: + description: Key for a captured crash report. + example: 2/e2e-tests/d2z-32s-iax/results/1340718101990858549/synthetics:mobile:device:iphone_se_2020_ios_14/crash_report.log type: string - created_by: - description: The UUID of the user who created the mapping. - example: "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" + device_logs: + description: Key for captured device logs. + example: 2/e2e-tests/d2z-32s-iax/results/1340718101990858549/synthetics:mobile:device:iphone_se_2020_ios_14/d2z-32s-iax_1340718101990858549_device_logs.log type: string - match_type: - $ref: "#/components/schemas/TeamsOwnershipMatchType" - org_id: - description: The ID of the organization that owns this mapping. - example: 123456 - format: int64 - type: integer - service: - description: The RUM application's service name. For browser applications, may be empty. For mobile applications, this is the service that scopes the ownership. - example: "web-checkout" + email_messages: + description: Keys for email message payloads captured by the step. + items: + description: Storage bucket key for a captured email message. + type: string + type: array + screenshot: + description: Key for the captured screenshot. + example: 2/e2e-tests/equ-jku-twc/results/6989498452827932222/edge.laptop_large/step-0__1724521416269.jpeg type: string - team_handle: - description: The handle of the team that owns the matched RUM views. - example: "team-rum" + snapshot: + description: Key for the captured DOM snapshot. + example: 2/e2e-tests/equ-jku-twc/results/6989498452827932222/edge.laptop_large/snapshot.html type: string - view_name: - description: The RUM view name to match, or its prefix when `match_type` is `prefix`. - example: "/checkout" + source: + description: Key for the page source or element source. + example: 2/e2e-tests/d2z-32s-iax/results/1340718101990858549/synthetics:mobile:device:iphone_se_2020_ios_14/step-0__1724445301832.xml type: string - required: - - team_handle - - view_name - - service - - application_id - - org_id - - created_at - - created_by - - match_type type: object - TeamsOwnershipMappingResponseData: - description: The JSON:API data envelope for a teams ownership mapping. + SyntheticsTestResultCI: + description: CI information associated with the test result. properties: - attributes: - $ref: "#/components/schemas/TeamsOwnershipMappingResponseAttributes" - id: - description: The unique identifier of the teams ownership mapping. - example: "123" + pipeline: + $ref: "#/components/schemas/SyntheticsTestResultCIPipeline" + provider: + $ref: "#/components/schemas/SyntheticsTestResultCIProvider" + stage: + $ref: "#/components/schemas/SyntheticsTestResultCIStage" + workspace_path: + description: Path of the workspace that ran the CI job. + example: /home/runner/work/example type: string - type: - $ref: "#/components/schemas/TeamsOwnershipMappingType" - required: - - id - - type - - attributes - type: object - TeamsOwnershipMappingType: - default: teams_ownership_mappings - description: The type of the resource. The value should always be teams_ownership_mappings. - enum: - - teams_ownership_mappings - example: teams_ownership_mappings - type: string - x-enum-varnames: ["TEAMS_OWNERSHIP_MAPPINGS"] - TeamsOwnershipMappingsResponse: - description: The response body for a list of teams ownership mappings. - properties: - data: - description: A list of teams ownership mappings. - items: - $ref: "#/components/schemas/TeamsOwnershipMappingResponseData" - type: array - required: - - data type: object - TeamsOwnershipMatchType: - default: exact - description: How the `view_name` is matched against RUM view names. - enum: - - exact - - prefix - example: exact - type: string - x-enum-varnames: ["EXACT", "PREFIX"] - TeamsOwnershipRuleResponseAttributes: - description: The attributes of a teams ownership rule. + SyntheticsTestResultCIPipeline: + description: Details of the CI pipeline. properties: - application_id: - description: |- - The ID of the RUM application this mapping applies to. - For browser applications, this is the real application UUID. - For mobile applications, this is the nil UUID `00000000-0000-0000-0000-000000000000` (wildcard), meaning the ownership applies across all applications. - example: "11111111-2222-3333-4444-555555555555" + id: + description: Pipeline identifier. + example: pipeline-abc-123 type: string - match_type: - $ref: "#/components/schemas/TeamsOwnershipMatchType" - service: - description: The RUM application's service name. For browser applications, may be empty. For mobile applications, this is the service that scopes the ownership. - example: "web-checkout" + name: + description: Pipeline name. + example: build-and-test type: string - teams: - description: The teams that own the matched views, each paired with the ID of its underlying mapping. - items: - $ref: "#/components/schemas/TeamsOwnershipRuleTeamMapping" - type: array - view_name: - description: The RUM view name to match, or its prefix when `match_type` is `prefix`. - example: "/checkout" + number: + description: Pipeline number. + example: 42 + format: int64 + type: integer + url: + description: Pipeline URL. + example: https://github.com/DataDog/example/actions/runs/42 type: string - required: - - teams - - view_name - - service - - application_id - - match_type type: object - TeamsOwnershipRuleResponseData: - description: The JSON:API data envelope for a teams ownership rule. + SyntheticsTestResultCIProvider: + description: Details of the CI provider. properties: - attributes: - $ref: "#/components/schemas/TeamsOwnershipRuleResponseAttributes" - id: - description: |- - A deterministic identifier derived from the rule's grouping key. - This ID cannot be used to delete the rule directly; delete individual mappings - using the `mapping_id` under `teams` instead. - example: "3b1e2f7a9c4d6e8f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f" + name: + description: Provider name. + example: github type: string - type: - $ref: "#/components/schemas/TeamsOwnershipRuleType" - required: - - id - - type - - attributes type: object - TeamsOwnershipRuleTeamMapping: - description: An individual team's ownership entry within a teams ownership rule. + SyntheticsTestResultCIStage: + description: Details of the CI stage. properties: - mapping_id: - description: The ID of the underlying mapping, used to delete this team's ownership individually. - example: "123" + name: + description: Stage name. + example: test type: string - team_handle: - description: The handle of the owning team. - example: "team-rum" + type: object + SyntheticsTestResultCdnCacheStatus: + description: Cache status reported by the CDN for the response. + properties: + cached: + description: Whether the response was served from the CDN cache. + example: true + type: boolean + status: + description: Raw cache status string reported by the CDN. + example: HIT type: string - required: - - team_handle - - mapping_id type: object - TeamsOwnershipRuleType: - default: teams_ownership_grouped_mappings - description: The type of the resource. The value should always be teams_ownership_grouped_mappings. - enum: - - teams_ownership_grouped_mappings - example: teams_ownership_grouped_mappings - type: string - x-enum-varnames: ["TEAMS_OWNERSHIP_GROUPED_MAPPINGS"] - TeamsOwnershipRulesResponse: - description: The response body for a list of teams ownership rules. + SyntheticsTestResultCdnProviderInfo: + description: CDN provider details inferred from response headers. properties: - data: - description: A list of teams ownership rules. - items: - $ref: "#/components/schemas/TeamsOwnershipRuleResponseData" - type: array - required: - - data + cache: + $ref: "#/components/schemas/SyntheticsTestResultCdnCacheStatus" + provider: + description: Name of the CDN provider. + example: google_cloud + type: string type: object - TeamsResponse: - description: Response with multiple teams + SyntheticsTestResultCdnResource: + description: A CDN resource encountered while executing a browser step. properties: - data: - description: Teams response data - items: - $ref: "#/components/schemas/Team" - type: array - included: - description: Resources related to the team - items: - $ref: "#/components/schemas/TeamIncluded" - type: array - links: - $ref: "#/components/schemas/TeamsResponseLinks" - meta: - $ref: "#/components/schemas/TeamsResponseMeta" + cdn: + $ref: "#/components/schemas/SyntheticsTestResultCdnProviderInfo" + resolved_ip: + description: Resolved IP address for the CDN resource. + example: 34.95.79.70 + type: string + timestamp: + description: Unix timestamp (ms) of when the resource was fetched. + example: 1724521406576 + format: int64 + type: integer + timings: + additionalProperties: {} + description: Timing breakdown for fetching the CDN resource. + example: + firstByte: 99.7 + tcp: 0.9 + type: object type: object - TeamsResponseLinks: - description: Teams response links. + SyntheticsTestResultCertificate: + description: SSL/TLS certificate information returned from an SSL test. properties: - first: - description: First link. + cipher: + description: Cipher used for the TLS connection. + example: TLS_AES_256_GCM_SHA384 type: string - last: - description: Last link. - nullable: true + exponent: + description: RSA exponent of the certificate. + example: 65537 + format: int64 + type: integer + ext_key_usage: + description: Extended key usage extensions for the certificate. + example: + - 1.3.6.1.5.5.7.3.1 + items: + description: Extended key usage value. + type: string + type: array + fingerprint: + description: SHA-1 fingerprint of the certificate. + example: D6:03:5A:9F:93:E1:B7:28:EC:90:C5:9F:72:30:55:7C:74:5F:53:92 type: string - next: - description: Next link. + fingerprint256: + description: SHA-256 fingerprint of the certificate. + example: 04:45:93:A9:4C:14:70:47:DB:3C:FC:05:F9:5A:50:4E:DA:DB:A1:C6:37:3D:15:C0:B2:7E:5D:93:5F:A2:02:C7 type: string - prev: - description: Previous link. - nullable: true + issuer: + additionalProperties: + type: string + description: Certificate issuer details. + example: + C: US + CN: WE2 + O: Google Trust Services + type: object + modulus: + description: RSA modulus of the certificate. + example: C0FCE9F9... type: string - self: - description: Current link. + protocol: + description: TLS protocol used (for example, `TLSv1.2`). + example: TLSv1.3 type: string + serial_number: + description: Serial number of the certificate. + example: 7B584A1A6670A1EB0941A9A121569D60 + type: string + subject: + additionalProperties: + type: string + description: Certificate subject details. + example: + CN: "*.google.fr" + altName: "DNS:*.google.fr, DNS:google.fr" + type: object + tls_version: + description: TLS protocol version. + example: 1.3 + format: double + type: number + valid: + $ref: "#/components/schemas/SyntheticsTestResultCertificateValidity" type: object - TeamsResponseMeta: - description: Teams response metadata. - properties: - pagination: - $ref: "#/components/schemas/TeamsResponseMetaPagination" - type: object - TeamsResponseMetaPagination: - description: Teams response metadata. + SyntheticsTestResultCertificateValidity: + description: Validity window of a certificate. properties: - first_offset: - description: The first offset. - format: int64 - type: integer - last_offset: - description: The last offset. - format: int64 - type: integer - limit: - description: Pagination limit. - format: int64 - type: integer - next_offset: - description: The next offset. - format: int64 - type: integer - offset: - description: The offset. - format: int64 - type: integer - prev_offset: - description: The previous offset. + from: + description: Unix timestamp (ms) of when the certificate became valid. + example: 1742469686000 format: int64 type: integer - total: - description: Total results. + to: + description: Unix timestamp (ms) of when the certificate expires. + example: 1749727285000 format: int64 type: integer - type: - description: Offset type. - type: string - type: object - TenancyConfig: - description: Response containing a single OCI tenancy integration configuration. - example: - data: - attributes: - config_version: 2 - cost_collection_enabled: true - dd_compartment_id: ocid.compartment.test - dd_stack_id: ocid.stack.test - home_region: us-ashburn-1 - logs_config: - compartment_tag_filters: - - compartment.test - enabled: true - enabled_services: - - compute - metrics_config: - compartment_tag_filters: - - compartment.test - enabled: true - excluded_services: - - compute - regions_config: - available: - - us-ashburn-1 - - us-phoenix-1 - disabled: - - us-phoenix-1 - enabled: - - us-ashburn-1 - resource_collection_enabled: true - user_ocid: ocid.user.test - id: ocid.tenancy.test - type: oci_tenancy - properties: - data: - $ref: "#/components/schemas/TenancyConfigData" type: object - TenancyConfigData: - description: A single OCI tenancy integration configuration resource object containing the tenancy ID, type, and configuration attributes. + SyntheticsTestResultData: + description: Wrapper object for a Synthetic test result. properties: attributes: - $ref: "#/components/schemas/TenancyConfigDataAttributes" + $ref: "#/components/schemas/SyntheticsTestResultAttributes" id: - description: The OCID of the OCI tenancy. + description: The result ID. + example: "5158904793181869365" type: string + relationships: + $ref: "#/components/schemas/SyntheticsTestResultRelationships" type: - $ref: "#/components/schemas/UpdateTenancyConfigDataType" - required: - - type + $ref: "#/components/schemas/SyntheticsTestResultType" type: object - TenancyConfigDataAttributes: - description: Attributes of an OCI tenancy integration configuration, including authentication details, region settings, and collection options. + SyntheticsTestResultDetail: + description: Full result details for a Synthetic test execution. properties: - billing_plan_id: - description: The identifier of the billing plan associated with the OCI tenancy. - format: int32 - maximum: 2147483647 - type: integer - config_version: - description: Version number of the integration the tenancy is integrated with - format: int64 - type: integer - cost_collection_enabled: - description: Whether cost data collection from OCI is enabled for the tenancy. - type: boolean - dd_compartment_id: - description: The OCID of the OCI compartment used by the Datadog integration stack. + assertions: + description: Assertion results produced by the test. + items: + $ref: "#/components/schemas/SyntheticsTestResultAssertionResult" + type: array + bucket_keys: + $ref: "#/components/schemas/SyntheticsTestResultBucketKeys" + call_type: + description: gRPC call type (for example, `unary`, `healthCheck`, or `reflection`). + example: unary type: string - dd_stack_id: - description: The OCID of the OCI Resource Manager stack used by the Datadog integration. + cert: + $ref: "#/components/schemas/SyntheticsTestResultCertificate" + compressed_json_descriptor: + description: Compressed JSON descriptor for the test (internal format). + example: compressedJsonDescriptorValue type: string - home_region: - description: The home region of the OCI tenancy (for example, us-ashburn-1). + compressed_steps: + description: Compressed representation of the test steps (internal format). + example: eJzLSM3JyQcABiwCFQ== type: string - logs_config: - $ref: "#/components/schemas/TenancyConfigDataAttributesLogsConfig" - metrics_config: - $ref: "#/components/schemas/TenancyConfigDataAttributesMetricsConfig" - parent_tenancy_name: - description: The name of the parent OCI tenancy, if applicable. + connection_outcome: + description: Outcome of the connection attempt (for example, `established`, `refused`). + example: established type: string - regions_config: - $ref: "#/components/schemas/TenancyConfigDataAttributesRegionsConfig" - resource_collection_enabled: - description: Whether resource collection from OCI is enabled for the tenancy. + dns_resolution: + $ref: "#/components/schemas/SyntheticsTestResultDnsResolution" + duration: + description: Duration of the test execution (in milliseconds). + example: 380.7 + format: double + type: number + exited_on_step_success: + description: Whether the test exited early because a step marked with `exitIfSucceed` passed. + example: false type: boolean - tenancy_name: - description: The human-readable name of the OCI tenancy. + failure: + $ref: "#/components/schemas/SyntheticsTestResultFailure" + finished_at: + description: Timestamp of when the test finished (in milliseconds). + example: 1723782422760 + format: int64 + type: integer + handshake: + $ref: "#/components/schemas/SyntheticsTestResultHandshake" + id: + description: The unique identifier for this result. + example: "5158904793181869365" type: string - user_ocid: - description: The OCID of the OCI user used by the Datadog integration for authentication. + initial_id: + description: The initial result ID before any retries. + example: "5158904793181869365" type: string - type: object - TenancyConfigDataAttributesLogsConfig: - description: Log collection configuration for an OCI tenancy, indicating which compartments and services have log collection enabled. - properties: - compartment_tag_filters: - description: List of compartment tag filters scoping log collection to specific compartments. - items: - description: A compartment tag filter in key:value format (for example, datadog:true). - type: string - type: array - enabled: - description: Whether log collection is enabled for the tenancy. + is_fast_retry: + description: Whether this result is from a fast retry. + example: true type: boolean - enabled_services: - description: List of OCI service names for which log collection is enabled. - items: - description: An OCI service name for which log collection is enabled (for example, compute). - type: string - type: array - type: object - TenancyConfigDataAttributesMetricsConfig: - description: Metrics collection configuration for an OCI tenancy, indicating which compartments and services are included or excluded. - properties: - compartment_tag_filters: - description: List of compartment tag filters scoping metrics collection to specific compartments. - items: - description: A compartment tag filter in key:value format (for example, datadog:true). - type: string - type: array - enabled: - description: Whether metrics collection is enabled for the tenancy. + is_last_retry: + description: Whether this result is from the last retry. + example: true type: boolean - excluded_services: - description: List of OCI service names excluded from metrics collection. - items: - description: An OCI service name excluded from metrics collection (for example, compute). - type: string - type: array - type: object - TenancyConfigDataAttributesRegionsConfig: - description: Region configuration for an OCI tenancy, indicating which regions are available, enabled, or disabled for data collection. - properties: - available: - description: List of OCI regions available for data collection in the tenancy. - items: - description: An OCI region identifier (for example, us-ashburn-1). - type: string - type: array - disabled: - description: List of OCI regions explicitly disabled for data collection. + netpath: + $ref: "#/components/schemas/SyntheticsTestResultNetpath" + netstats: + $ref: "#/components/schemas/SyntheticsTestResultNetstats" + ocsp: + $ref: "#/components/schemas/SyntheticsTestResultOCSPResponse" + ping: + $ref: "#/components/schemas/SyntheticsTestResultTracerouteHop" + received_email_count: + description: Number of emails received during the test (email tests). + example: 1 + format: int64 + type: integer + received_message: + description: Message received from the target (for WebSocket/TCP/UDP tests). + example: "UDP echo: b'Test message'" + type: string + request: + $ref: "#/components/schemas/SyntheticsTestResultRequestInfo" + resolved_ip: + description: IP address resolved for the target host. + example: "54.243.255.141" + type: string + response: + $ref: "#/components/schemas/SyntheticsTestResultResponseInfo" + run_type: + $ref: "#/components/schemas/SyntheticsTestResultRunType" + sent_message: + description: Message sent to the target (for WebSocket/TCP/UDP tests). + example: udp mess + type: string + start_url: + description: Start URL for the test (browser tests). + example: http://34.95.79.70/prototype + type: string + started_at: + description: Timestamp of when the test started (in milliseconds). + example: 1723782422750 + format: int64 + type: integer + status: + $ref: "#/components/schemas/SyntheticsTestResultStatus" + steps: + description: Step results (for browser, mobile, and multistep API tests). items: - description: An OCI region identifier (for example, us-phoenix-1). - type: string + $ref: "#/components/schemas/SyntheticsTestResultStep" type: array - enabled: - description: List of OCI regions enabled for data collection. + time_to_interactive: + description: Time to interactive in milliseconds (browser tests). + example: 183 + format: int64 + type: integer + timings: + additionalProperties: {} + description: Timing breakdown of the test request phases (for example, DNS, TCP, TLS, first byte). + example: + dns: 2.9 + download: 2.1 + firstByte: 95.2 + ssl: 187.9 + tcp: 92.6 + total: 380.7 + type: object + trace: + $ref: "#/components/schemas/SyntheticsTestResultTrace" + traceroute: + description: Traceroute hop results (for network tests). items: - description: An OCI region identifier (for example, us-ashburn-1). - type: string + $ref: "#/components/schemas/SyntheticsTestResultTracerouteHop" type: array - type: object - TenancyConfigList: - description: Response containing a list of OCI tenancy integration configurations. - example: - data: - - attributes: - config_version: 2 - cost_collection_enabled: true - dd_compartment_id: ocid.compartment.test - dd_stack_id: ocid.stack.test - home_region: us-ashburn-1 - logs_config: - compartment_tag_filters: - - compartment.test - enabled: true - enabled_services: - - compute - metrics_config: - compartment_tag_filters: - - compartment.test - enabled: true - excluded_services: - - compute - regions_config: - available: - - us-ashburn-1 - - us-phoenix-1 - disabled: - - us-phoenix-1 - enabled: - - us-ashburn-1 - resource_collection_enabled: true - user_ocid: ocid.user.test - id: ocid.tenancy.test - type: oci_tenancy - properties: - data: - description: List of OCI tenancy integration configuration objects. + triggered_at: + description: Timestamp of when the test was triggered (in milliseconds). + example: 1723782422715 + format: int64 + type: integer + tunnel: + description: Whether the test was executed through a tunnel. + example: false + type: boolean + turns: + description: Turns executed by a goal-based browser test. items: - $ref: "#/components/schemas/TenancyConfigData" + $ref: "#/components/schemas/SyntheticsTestResultTurn" type: array - required: - - data + unhealthy: + description: Whether the test runner was unhealthy at the time of execution. + example: false + type: boolean + variables: + $ref: "#/components/schemas/SyntheticsTestResultVariables" type: object - TenancyProductsData: - description: A single OCI tenancy product resource object containing the tenancy ID, type, and product attributes. + SyntheticsTestResultDevice: + description: Device information for the test result (browser and mobile tests). properties: - attributes: - $ref: "#/components/schemas/TenancyProductsDataAttributes" + browser: + $ref: "#/components/schemas/SyntheticsTestResultDeviceBrowser" id: - description: The OCID of the OCI tenancy. + description: Device identifier. + example: chrome.laptop_large + type: string + name: + description: Device name. + example: "Chrome - Laptop Large" type: string + platform: + $ref: "#/components/schemas/SyntheticsTestResultDevicePlatform" + resolution: + $ref: "#/components/schemas/SyntheticsTestResultDeviceResolution" type: - $ref: "#/components/schemas/TenancyProductsDataType" - required: - - type + description: Device type. + example: browser + type: string type: object - TenancyProductsDataAttributes: - description: Attributes of an OCI tenancy product resource, containing the list of available products and their enablement status. + SyntheticsTestResultDeviceBrowser: + description: Browser information for the device used to run the test. properties: - products: - description: List of Datadog products and their enablement status for the tenancy. - items: - $ref: "#/components/schemas/TenancyProductsDataAttributesProductsItems" - type: array + type: + description: Browser type (for example, `chrome`, `firefox`). + example: edge + type: string + user_agent: + description: User agent string reported by the browser. + example: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/127.0.2651.105 DatadogSynthetics + type: string + version: + description: Browser version. + example: 127.0.2651.105 + type: string type: object - TenancyProductsDataAttributesProductsItems: - description: An individual Datadog product with its enablement status for a tenancy. + SyntheticsTestResultDevicePlatform: + description: Platform information for the device used to run the test. properties: - enabled: - description: Indicates whether the product is enabled for the tenancy. - type: boolean - product_key: - description: The unique key identifying the Datadog product (for example, CLOUD_SECURITY_POSTURE_MANAGEMENT). + name: + description: Platform name (for example, `linux`, `macos`). + example: ios + type: string + version: + description: Platform version. + example: "14.8" type: string type: object - TenancyProductsDataType: - default: oci_tenancy_product - description: OCI tenancy product resource type. - enum: - - oci_tenancy_product - example: oci_tenancy_product - type: string - x-enum-varnames: - - OCI_TENANCY_PRODUCT - TenancyProductsList: - description: Response containing a list of OCI tenancy product resources with their product enablement status. - example: - data: - - attributes: - products: - - enabled: true - product_key: CLOUD_SECURITY_POSTURE_MANAGEMENT - id: ocid.tenancy.test - type: oci_tenancy_product + SyntheticsTestResultDeviceResolution: + description: Screen resolution of the device used to run the test. properties: - data: - description: List of OCI tenancy product resource objects. - items: - $ref: "#/components/schemas/TenancyProductsData" - type: array - required: - - data + height: + description: Viewport height in pixels. + example: 1100 + format: int64 + type: integer + pixel_ratio: + description: Device pixel ratio. + example: 2 + format: double + type: number + width: + description: Viewport width in pixels. + example: 1440 + format: int64 + type: integer type: object - TestOptimizationDeleteServiceSettingsRequest: - description: Request object for deleting Test Optimization service settings. + SyntheticsTestResultDnsRecord: + description: A DNS record returned in a DNS test response. properties: - data: - $ref: "#/components/schemas/TestOptimizationDeleteServiceSettingsRequestData" - required: - - data + type: + description: DNS record type (for example, `A`, `AAAA`, `CNAME`). + example: A + type: string + values: + description: Values associated with the DNS record. + example: + - 213.186.33.19 + items: + description: DNS record value. + type: string + type: array type: object - TestOptimizationDeleteServiceSettingsRequestAttributes: - description: Attributes for deleting Test Optimization service settings. + SyntheticsTestResultDnsResolution: + description: DNS resolution details recorded during the test execution. properties: - env: - description: The environment name. If omitted, defaults to `none`. - example: prod + attempts: + description: DNS resolution attempts made during the test. + items: + $ref: "#/components/schemas/SyntheticsTestResultDnsResolutionAttempt" + type: array + resolved_ip: + description: Resolved IP address for the target host. + example: 54.243.255.141 type: string - repository_id: - description: The repository identifier. - example: github.com/datadog/shopist - minLength: 1 + resolved_port: + description: Resolved port for the target service. + example: "443" type: string - service_name: - description: The service name. - example: shopist - minLength: 1 + server: + description: DNS server used for the resolution. + example: 8.8.4.4 type: string - required: - - repository_id - - service_name type: object - TestOptimizationDeleteServiceSettingsRequestData: - description: Data object for delete service settings request. - properties: - attributes: - $ref: "#/components/schemas/TestOptimizationDeleteServiceSettingsRequestAttributes" - type: - $ref: "#/components/schemas/TestOptimizationDeleteServiceSettingsRequestDataType" - required: - - type - - attributes + SyntheticsTestResultDnsResolutionAttempt: + additionalProperties: + type: string + description: A single DNS resolution attempt. Keys are provider-specific attempt fields. type: object - TestOptimizationDeleteServiceSettingsRequestDataType: - description: |- - JSON:API type for delete service settings request. - The value must always be `test_optimization_delete_service_settings_request`. - enum: - - test_optimization_delete_service_settings_request - example: test_optimization_delete_service_settings_request - type: string - x-enum-varnames: - - TEST_OPTIMIZATION_DELETE_SERVICE_SETTINGS_REQUEST - TestOptimizationFlakyTestsManagementPoliciesAttemptToFix: - description: Configuration for the attempt-to-fix Flaky Tests Management policy. + SyntheticsTestResultDuration: + description: Total duration of a Synthetic test execution. properties: - retries: - description: Number of retries when attempting to fix a flaky test. Must be greater than 0. - example: 3 + has_duration: + description: Whether a duration was recorded for this execution. + example: true + type: boolean + value: + description: Duration value in milliseconds. + example: 380 format: int64 type: integer type: object - TestOptimizationFlakyTestsManagementPoliciesAttributes: - description: Attributes of the Flaky Tests Management policies for a repository. + SyntheticsTestResultExecutionInfo: + description: Execution details for a Synthetic test result. properties: - attempt_to_fix: - $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesAttemptToFix" - disabled: - $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesDisabled" - quarantined: - $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesQuarantined" - repository_id: - description: The repository identifier. - example: github.com/datadog/shopist + duration: + $ref: "#/components/schemas/SyntheticsTestResultDuration" + error_message: + description: Error message if the execution encountered an issue. + example: Connection timed out type: string - type: object - TestOptimizationFlakyTestsManagementPoliciesAutoDisableRule: - description: Automatic disable triggering rule based on a time window and test status. - properties: - enabled: - description: Whether this auto-disable rule is enabled. - example: false - type: boolean - status: - $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesDisabledStatus" - window_seconds: - description: Time window in seconds over which flakiness is evaluated. Must be greater than 0. - example: 3600 - format: int64 - type: integer - type: object - TestOptimizationFlakyTestsManagementPoliciesAutoQuarantineRule: - description: Automatic quarantine triggering rule based on a time window. - properties: - enabled: - description: Whether this auto-quarantine rule is enabled. + is_fast_retry: + description: Whether this result is from a fast retry. example: true type: boolean - window_seconds: - description: Time window in seconds over which flakiness is evaluated. Must be greater than 0. - example: 3600 - format: int64 - type: integer - type: object - TestOptimizationFlakyTestsManagementPoliciesBranchRule: - description: Branch filtering rule for a Flaky Tests Management policy. - properties: - branches: - description: List of branches to which the policy applies. + timings: + additionalProperties: {} + description: Timing breakdown of the test execution in milliseconds. example: - - main - items: - description: A branch name. - type: string - type: array - enabled: - description: Whether this branch rule is enabled. - example: true + dns: 2.9 + download: 2.1 + firstByte: 95.2 + ssl: 187.9 + tcp: 92.6 + total: 380.7 + type: object + tunnel: + description: Whether the test was executed through a tunnel. + example: false + type: boolean + unhealthy: + description: Whether the location was unhealthy during execution. + example: false type: boolean - excluded_branches: - description: List of branches excluded from the policy. - example: [] - items: - description: A branch name. - type: string - type: array - excluded_test_services: - description: List of test services excluded from the policy. - example: [] - items: - description: A test service name. - type: string - type: array type: object - TestOptimizationFlakyTestsManagementPoliciesData: - description: Data object for Flaky Tests Management policies response. + SyntheticsTestResultFailure: + description: Details about the failure of a Synthetic test. properties: - attributes: - $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesAttributes" - id: - description: The repository identifier used as the resource ID. - example: github.com/datadog/shopist + code: + description: Error code for the failure. + example: TIMEOUT + type: string + internal_code: + description: Internal error code used for debugging. + example: INCORRECT_ASSERTION + type: string + internal_message: + description: Internal error message used for debugging. + example: Assertion failed on step 2 + type: string + message: + description: Error message for the failure. + example: Connection timed out type: string - type: - $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesType" - type: object - TestOptimizationFlakyTestsManagementPoliciesDisabled: - description: Configuration for the disabled Flaky Tests Management policy. - properties: - auto_disable_rule: - $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesAutoDisableRule" - branch_rule: - $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesBranchRule" - enabled: - description: Whether the disabled policy is enabled. - example: false - type: boolean - failure_rate_rule: - $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesDisabledFailureRateRule" type: object - TestOptimizationFlakyTestsManagementPoliciesDisabledFailureRateRule: - description: Failure-rate-based rule for the disabled policy. + SyntheticsTestResultFileRef: + description: Reference to a file attached to a Synthetic test request. properties: - branches: - description: List of branches to which this rule applies. - example: [] - items: - description: A branch name. - type: string - type: array - enabled: - description: Whether this failure rate rule is enabled. - example: false - type: boolean - min_runs: - description: Minimum number of runs required before the rule is evaluated. Must be greater than or equal to 0. - example: 10 + bucket_key: + description: Storage bucket key where the file is stored. + example: api-upload-file/s3v-msw-tp3/2024-08-20T12:18:27.628081_f433c953-a58a-4296-834b-0669e32ba55f.json + type: string + encoding: + description: Encoding of the file contents. + example: base64 + type: string + name: + description: File name. + example: dd_logo_h_rgb.jpg + type: string + size: + description: File size in bytes. + example: 30294 format: int64 type: integer - status: - $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesDisabledStatus" - threshold: - description: Failure rate threshold (0.0–1.0) above which the rule triggers. - example: 0.5 - format: double - type: number + type: + description: File MIME type. + example: image/jpeg + type: string type: object - TestOptimizationFlakyTestsManagementPoliciesDisabledStatus: - description: |- - Test status that the disable policy applies to. - Must be either `active` or `quarantined`. - enum: - - active - - quarantined - example: active - type: string - x-enum-varnames: - - ACTIVE - - QUARANTINED - TestOptimizationFlakyTestsManagementPoliciesGetRequest: - description: Request object for getting Flaky Tests Management policies. + SyntheticsTestResultGit: + description: Git information associated with the test result. properties: - data: - $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesGetRequestData" - required: - - data + branch: + description: Git branch name. + example: main + type: string + commit: + $ref: "#/components/schemas/SyntheticsTestResultGitCommit" + repository_url: + description: Git repository URL. + example: https://github.com/DataDog/example + type: string type: object - TestOptimizationFlakyTestsManagementPoliciesGetRequestAttributes: - description: Attributes for requesting Flaky Tests Management policies. + SyntheticsTestResultGitCommit: + description: Details of the Git commit associated with the test result. properties: - repository_id: - description: The repository identifier. - example: github.com/datadog/shopist - minLength: 1 + author: + $ref: "#/components/schemas/SyntheticsTestResultGitUser" + committer: + $ref: "#/components/schemas/SyntheticsTestResultGitUser" + message: + description: Commit message. + example: Fix bug in login flow + type: string + sha: + description: Commit SHA. + example: 9e107d9d372bb6826bd81d3542a419d6f0e1de56 + type: string + url: + description: URL of the commit. + example: https://github.com/DataDog/example/commit/9e107d9d372bb6826bd81d3542a419d6f0e1de56 type: string - required: - - repository_id type: object - TestOptimizationFlakyTestsManagementPoliciesGetRequestData: - description: Data object for get Flaky Tests Management policies request. + SyntheticsTestResultGitUser: + description: A Git user (author or committer). properties: - attributes: - $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesGetRequestAttributes" - type: - $ref: "#/components/schemas/TestOptimizationGetFlakyTestsManagementPoliciesRequestDataType" - required: - - type - - attributes + date: + description: Timestamp of the commit action for this user. + example: "2024-08-15T14:23:00Z" + type: string + email: + description: Email address of the Git user. + example: jane.doe@example.com + type: string + name: + description: Name of the Git user. + example: Jane Doe + type: string type: object - TestOptimizationFlakyTestsManagementPoliciesQuarantined: - description: Configuration for the quarantined Flaky Tests Management policy. + SyntheticsTestResultHandshake: + description: Handshake request and response for protocol-level tests. properties: - auto_quarantine_rule: - $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesAutoQuarantineRule" - branch_rule: - $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesBranchRule" - enabled: - description: Whether the quarantined policy is enabled. - example: true - type: boolean - failure_rate_rule: - $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesQuarantinedFailureRateRule" + request: + $ref: "#/components/schemas/SyntheticsTestResultRequestInfo" + response: + $ref: "#/components/schemas/SyntheticsTestResultResponseInfo" type: object - TestOptimizationFlakyTestsManagementPoliciesQuarantinedFailureRateRule: - description: Failure-rate-based rule for the quarantined policy. + SyntheticsTestResultHealthCheck: + description: Health check information returned from a gRPC health check call. properties: - branches: - description: List of branches to which this rule applies. - example: - - main - items: - description: A branch name. + message: + additionalProperties: type: string - type: array - enabled: - description: Whether this failure rate rule is enabled. - example: true - type: boolean - min_runs: - description: Minimum number of runs required before the rule is evaluated. Must be greater than or equal to 0. - example: 10 + description: Raw health check message payload. + type: object + status: + description: Health check status code. + example: 1 format: int64 type: integer - threshold: - description: Failure rate threshold (0.0–1.0) above which the rule triggers. - example: 0.5 - format: double - type: number - type: object - TestOptimizationFlakyTestsManagementPoliciesResponse: - description: Response object containing Flaky Tests Management policies for a repository. - properties: - data: - $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesData" - type: object - TestOptimizationFlakyTestsManagementPoliciesType: - description: |- - JSON:API type for Flaky Tests Management policies response. - The value must always be `test_optimization_flaky_tests_management_policies`. - enum: - - test_optimization_flaky_tests_management_policies - example: test_optimization_flaky_tests_management_policies - type: string - x-enum-varnames: - - TEST_OPTIMIZATION_FLAKY_TESTS_MANAGEMENT_POLICIES - TestOptimizationFlakyTestsManagementPoliciesUpdateRequest: - description: Request object for updating Flaky Tests Management policies. - properties: - data: - $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesUpdateRequestData" - required: - - data - type: object - TestOptimizationFlakyTestsManagementPoliciesUpdateRequestAttributes: - description: |- - Attributes for updating Flaky Tests Management policies. - Only provided policy blocks are updated; omitted blocks are left unchanged. - properties: - attempt_to_fix: - $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesAttemptToFix" - disabled: - $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesDisabled" - quarantined: - $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesQuarantined" - repository_id: - description: The repository identifier. - example: github.com/datadog/shopist - minLength: 1 - type: string - required: - - repository_id type: object - TestOptimizationFlakyTestsManagementPoliciesUpdateRequestData: - description: Data object for update Flaky Tests Management policies request. + SyntheticsTestResultIncludedItem: + description: An included related resource. properties: attributes: - $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesUpdateRequestAttributes" + additionalProperties: {} + description: Attributes of the included resource. + type: object + id: + description: ID of the included resource. + example: abc-def-123 + type: string type: - $ref: "#/components/schemas/TestOptimizationUpdateFlakyTestsManagementPoliciesRequestDataType" - required: - - type - - attributes - type: object - TestOptimizationGetFlakyTestsManagementPoliciesRequestDataType: - description: |- - JSON:API type for get Flaky Tests Management policies request. - The value must always be `test_optimization_get_flaky_tests_management_policies_request`. - enum: - - test_optimization_get_flaky_tests_management_policies_request - example: test_optimization_get_flaky_tests_management_policies_request - type: string - x-enum-varnames: - - TEST_OPTIMIZATION_GET_FLAKY_TESTS_MANAGEMENT_POLICIES_REQUEST - TestOptimizationGetServiceSettingsRequest: - description: Request object for getting Test Optimization service settings. - properties: - data: - $ref: "#/components/schemas/TestOptimizationGetServiceSettingsRequestData" - required: - - data + description: Type of the included resource. + example: test + type: string type: object - TestOptimizationGetServiceSettingsRequestAttributes: - description: Attributes for requesting Test Optimization service settings. + SyntheticsTestResultLocation: + description: Location information for a Synthetic test result. properties: - env: - description: The environment name. If omitted, defaults to `none`. - example: prod + id: + description: Identifier of the location. + example: aws:us-east-1 type: string - repository_id: - description: The repository identifier. - example: github.com/datadog/shopist - minLength: 1 + name: + description: Human-readable name of the location. + example: "N. Virginia (AWS)" type: string - service_name: - description: The service name. - example: shopist - minLength: 1 + version: + description: Version of the worker that ran the test. + example: 1.0.0 + type: string + worker_id: + description: Identifier of the specific worker that ran the test. + example: worker-abc-123 type: string - required: - - repository_id - - service_name - type: object - TestOptimizationGetServiceSettingsRequestData: - description: Data object for get service settings request. - properties: - attributes: - $ref: "#/components/schemas/TestOptimizationGetServiceSettingsRequestAttributes" - type: - $ref: "#/components/schemas/TestOptimizationGetServiceSettingsRequestDataType" - required: - - type - - attributes type: object - TestOptimizationGetServiceSettingsRequestDataType: - description: |- - JSON:API type for get service settings request. - The value must always be `test_optimization_get_service_settings_request`. - enum: - - test_optimization_get_service_settings_request - example: test_optimization_get_service_settings_request - type: string - x-enum-varnames: - - TEST_OPTIMIZATION_GET_SERVICE_SETTINGS_REQUEST - TestOptimizationServiceSettingsAttributes: - description: Attributes for Test Optimization service settings. + SyntheticsTestResultNetpath: + description: Network Path test result capturing the path between source and destination. properties: - auto_test_retries_enabled: - description: Whether Auto Test Retries are enabled for this service. - example: false - type: boolean - auto_test_retries_enabled_is_overridden: - description: Whether the Auto Test Retries setting is overridden at the service level. - example: false - type: boolean - code_coverage_enabled: - description: Whether Code Coverage is enabled for this service. - example: false - type: boolean - code_coverage_enabled_is_overridden: - description: Whether the Code Coverage setting is overridden at the service level. - example: false - type: boolean - early_flake_detection_enabled: - description: Whether Early Flake Detection is enabled for this service. - example: false - type: boolean - early_flake_detection_enabled_is_overridden: - description: Whether the Early Flake Detection setting is overridden at the service level. - example: false - type: boolean - env: - description: The environment name. - example: prod + destination: + $ref: "#/components/schemas/SyntheticsTestResultNetpathDestination" + hops: + description: Hops along the network path. + items: + $ref: "#/components/schemas/SyntheticsTestResultNetpathHop" + type: array + origin: + description: Origin of the network path (for example, probe source). + example: synthetics type: string - failed_test_replay_enabled: - description: Whether Failed Test Replay is enabled for this service. - example: false - type: boolean - failed_test_replay_enabled_is_overridden: - description: Whether the Failed Test Replay setting is overridden at the service level. - example: false - type: boolean - pr_comments_enabled: - description: Whether PR Comments are enabled. This value reflects the repository-level setting and cannot be overridden at the service level. - example: false - type: boolean - repository_id: - description: The repository identifier. - example: github.com/datadog/shopist + pathtrace_id: + description: Identifier of the path trace. + example: 5d3cb978-533b-41ce-85a4-3661c8dd6a0b type: string - service_name: - description: The service name. - example: shopist + protocol: + description: Protocol used for the path trace (for example, `tcp`, `udp`, `icmp`). + example: TCP type: string - test_impact_analysis_enabled: - description: Whether Test Impact Analysis is enabled for this service. - example: true - type: boolean - test_impact_analysis_enabled_is_overridden: - description: Whether the Test Impact Analysis setting is overridden at the service level. - example: true - type: boolean + source: + $ref: "#/components/schemas/SyntheticsTestResultNetpathEndpoint" + tags: + description: Tags associated with the network path measurement. + example: + - synthetics.test_id:nja-epx-mg8 + items: + description: Tag associated with the network path measurement. + type: string + type: array + timestamp: + description: Unix timestamp (ms) of the network path measurement. + example: 1744117822266 + format: int64 + type: integer type: object - TestOptimizationServiceSettingsData: - description: Data object for Test Optimization service settings response. + SyntheticsTestResultNetpathDestination: + description: Destination endpoint of a network path measurement. properties: - attributes: - $ref: "#/components/schemas/TestOptimizationServiceSettingsAttributes" - id: - description: Unique identifier for the service settings. - example: 9b8a7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d + hostname: + description: Hostname of the destination. + example: 34.95.79.70 type: string - type: - $ref: "#/components/schemas/TestOptimizationServiceSettingsType" - type: object - TestOptimizationServiceSettingsResponse: - description: Response object containing Test Optimization service settings. - properties: - data: - $ref: "#/components/schemas/TestOptimizationServiceSettingsData" + ip_address: + description: IP address of the destination. + example: 34.95.79.70 + type: string + port: + description: Port of the destination service. + example: 80 + format: int64 + type: integer type: object - TestOptimizationServiceSettingsType: - description: |- - JSON:API type for service settings response. - The value must always be `test_optimization_service_settings`. - enum: - - test_optimization_service_settings - example: test_optimization_service_settings - type: string - x-enum-varnames: - - TEST_OPTIMIZATION_SERVICE_SETTINGS - TestOptimizationUpdateFlakyTestsManagementPoliciesRequestDataType: - description: |- - JSON:API type for update Flaky Tests Management policies request. - The value must always be `test_optimization_update_flaky_tests_management_policies_request`. - enum: - - test_optimization_update_flaky_tests_management_policies_request - example: test_optimization_update_flaky_tests_management_policies_request - type: string - x-enum-varnames: - - TEST_OPTIMIZATION_UPDATE_FLAKY_TESTS_MANAGEMENT_POLICIES_REQUEST - TestOptimizationUpdateServiceSettingsRequest: - description: Request object for updating Test Optimization service settings. + SyntheticsTestResultNetpathEndpoint: + description: Source endpoint of a network path measurement. properties: - data: - $ref: "#/components/schemas/TestOptimizationUpdateServiceSettingsRequestData" - required: - - data + hostname: + description: Hostname of the endpoint. + example: edge-eu1.staging.dog + type: string type: object - TestOptimizationUpdateServiceSettingsRequestAttributes: - description: |- - Attributes for updating Test Optimization service settings. - All non-required fields are optional; only provided fields will be updated. - Setting a field to `null` is a no-op. To reset a setting to inherit from the repository level, use the corresponding `_inherit` field. + SyntheticsTestResultNetpathHop: + description: A single hop along a network path. properties: - auto_test_retries_enabled: - description: Whether Auto Test Retries are enabled for this service. Setting to `null` is a no-op; use `auto_test_retries_enabled_inherit` to reset to repository-level inheritance. - example: false - type: boolean - auto_test_retries_enabled_inherit: - description: When `true`, resets the Auto Test Retries setting to inherit from the repository level. - example: false - type: boolean - code_coverage_enabled: - description: Whether Code Coverage is enabled for this service. Setting to `null` is a no-op; use `code_coverage_enabled_inherit` to reset to repository-level inheritance. - example: false - type: boolean - code_coverage_enabled_inherit: - description: When `true`, resets the Code Coverage setting to inherit from the repository level. - example: false - type: boolean - early_flake_detection_enabled: - description: Whether Early Flake Detection is enabled for this service. Setting to `null` is a no-op; use `early_flake_detection_enabled_inherit` to reset to repository-level inheritance. - example: false - type: boolean - early_flake_detection_enabled_inherit: - description: When `true`, resets the Early Flake Detection setting to inherit from the repository level. - example: false - type: boolean - env: - description: The environment name. If omitted, defaults to `none`. - example: prod - type: string - failed_test_replay_enabled: - description: Whether Failed Test Replay is enabled for this service. Setting to `null` is a no-op; use `failed_test_replay_enabled_inherit` to reset to repository-level inheritance. - example: false - type: boolean - failed_test_replay_enabled_inherit: - description: When `true`, resets the Failed Test Replay setting to inherit from the repository level. - example: false - type: boolean - pr_comments_enabled: - description: This field is ignored. PR Comments cannot be overridden at the service level. - example: false - type: boolean - repository_id: - description: The repository identifier. - example: github.com/datadog/shopist - minLength: 1 + hostname: + description: Resolved hostname of the hop. + example: 70.79.95.34.bc.googleusercontent.com type: string - service_name: - description: The service name. - example: shopist - minLength: 1 + ip_address: + description: IP address of the hop. + example: 10.240.134.15 type: string - test_impact_analysis_enabled: - description: Whether Test Impact Analysis is enabled for this service. Setting to `null` is a no-op; use `test_impact_analysis_enabled_inherit` to reset to repository-level inheritance. - example: true - type: boolean - test_impact_analysis_enabled_inherit: - description: When `true`, resets the Test Impact Analysis setting to inherit from the repository level. + reachable: + description: Whether this hop was reachable. example: true type: boolean - required: - - repository_id - - service_name + rtt: + description: Round-trip time to this hop in milliseconds. + example: 0.000346599 + format: double + type: number + ttl: + description: Time-to-live value of the probe packet at this hop. + example: 2 + format: int64 + type: integer type: object - TestOptimizationUpdateServiceSettingsRequestData: - description: Data object for update service settings request. + SyntheticsTestResultNetstats: + description: Aggregated network statistics from the test execution. properties: - attributes: - $ref: "#/components/schemas/TestOptimizationUpdateServiceSettingsRequestAttributes" - type: - $ref: "#/components/schemas/TestOptimizationUpdateServiceSettingsRequestDataType" - required: - - type - - attributes + hops: + $ref: "#/components/schemas/SyntheticsTestResultNetstatsHops" + jitter: + description: Network jitter in milliseconds. + example: 0.08 + format: double + type: number + latency: + $ref: "#/components/schemas/SyntheticsTestResultNetworkLatency" + packet_loss_percentage: + description: Percentage of probe packets lost. + example: 0.0 + format: double + type: number + packets_received: + description: Number of probe packets received. + example: 4 + format: int64 + type: integer + packets_sent: + description: Number of probe packets sent. + example: 4 + format: int64 + type: integer type: object - TestOptimizationUpdateServiceSettingsRequestDataType: - description: |- - JSON:API type for update service settings request. - The value must always be `test_optimization_update_service_settings_request`. - enum: - - test_optimization_update_service_settings_request - example: test_optimization_update_service_settings_request - type: string - x-enum-varnames: - - TEST_OPTIMIZATION_UPDATE_SERVICE_SETTINGS_REQUEST - TicketCreationRuleAction: - description: The action to take when the ticket creation rule matches a finding. + SyntheticsTestResultNetstatsHops: + description: Statistics about the number of hops for a network test. properties: - assignee_id: - description: The UUID of the default assignee for created tickets. - example: "22222222-2222-2222-2222-222222222222" - format: uuid - type: string - fields: - description: |- - Target-specific fields of the ticket to create. - - For `target: jira`, the custom fields of the Jira issue. For the list of available fields, see [Jira documentation](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issues/#api-rest-api-2-issue-createmeta-projectidorkey-issuetypes-issuetypeid-get). - - For `target: linear`, the optional keys `linear_project_id` (string, the identifier of the Linear project the issue is created in) and `linear_label_ids` (array of strings, the identifiers of the Linear labels applied to the issue). - example: - labels: - - security - type: object - max_tickets_per_day: - description: The maximum number of tickets the rule may create per day. If exceeded, one final ticket will be created, explaining the limit was hit and link back to the responsible rule. - example: 100 + avg: + description: Average number of hops. + example: 11.0 + format: double + type: number + max: + description: Maximum number of hops. + example: 11 + format: int64 + type: integer + min: + description: Minimum number of hops. + example: 11 format: int64 - maximum: 500 - minimum: 1 type: integer - project_id: - description: The UUID of the case management project. - example: "11111111-1111-1111-1111-111111111111" - format: uuid - type: string - target: - $ref: "#/components/schemas/TicketCreationTarget" - required: - - project_id - - target - - max_tickets_per_day type: object - TicketCreationRuleActionResponse: - description: The action to take when the ticket creation rule matches a finding. + SyntheticsTestResultNetworkLatency: + description: Latency statistics for a network probe. properties: - assignee_id: - description: The UUID of the default assignee for created tickets. - example: "22222222-2222-2222-2222-222222222222" - format: uuid - type: string - auto_disabled_reason: - description: The reason the rule was automatically disabled by the system due to a ticketing integration error. - example: "Daily ticket creation limit exceeded" + avg: + description: Average latency in milliseconds. + example: 1.8805 + format: double + type: number + max: + description: Maximum latency in milliseconds. + example: 1.97 + format: double + type: number + min: + description: Minimum latency in milliseconds. + example: 1.76 + format: double + type: number + type: object + SyntheticsTestResultOCSPCertificate: + description: Certificate details returned in an OCSP response. + properties: + revocation_reason: + description: Reason code for the revocation, when applicable. + example: unspecified type: string - fields: - description: |- - Target-specific fields of the ticket to create. - - For `target: jira`, the custom fields of the Jira issue. For the list of available fields, see [Jira documentation](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issues/#api-rest-api-2-issue-createmeta-projectidorkey-issuetypes-issuetypeid-get). - - For `target: linear`, the optional keys `linear_project_id` (string, the identifier of the Linear project the issue is created in) and `linear_label_ids` (array of strings, the identifiers of the Linear labels applied to the issue). - example: - labels: - - security - type: object - max_tickets_per_day: - description: The maximum number of tickets the rule may create per day. If exceeded, one final ticket will be created, explaining the limit was hit and link back to the responsible rule. - example: 100 + revocation_time: + description: Unix timestamp (ms) of the revocation. + example: 1749727285000 format: int64 - maximum: 500 - minimum: 1 type: integer - project_id: - description: The UUID of the case management project. - example: "11111111-1111-1111-1111-111111111111" - format: uuid + serial_number: + description: Serial number of the certificate. + example: 7B584A1A6670A1EB0941A9A121569D60 type: string - target: - $ref: "#/components/schemas/TicketCreationTarget" - required: - - project_id - - target - - max_tickets_per_day type: object - TicketCreationRuleAttributesCreate: - description: Attributes for creating or updating a ticket creation rule. + SyntheticsTestResultOCSPResponse: + description: OCSP response received while validating a certificate. properties: - action: - $ref: "#/components/schemas/TicketCreationRuleAction" - enabled: - description: Whether the ticket creation rule is enabled. - example: true - type: boolean - name: - description: The name of the ticket creation rule. - example: "Auto-create Jira tickets for critical findings" - maxLength: 255 - minLength: 1 + certificate: + $ref: "#/components/schemas/SyntheticsTestResultOCSPCertificate" + status: + description: OCSP response status (for example, `good`, `revoked`, `unknown`). + example: good type: string - rule: - $ref: "#/components/schemas/AutomationRuleScope" - required: - - name - - rule - - action + updates: + $ref: "#/components/schemas/SyntheticsTestResultOCSPUpdates" type: object - TicketCreationRuleAttributesResponse: - description: Attributes of a ticket creation rule returned by the API. + SyntheticsTestResultOCSPUpdates: + description: OCSP response update timestamps. properties: - action: - $ref: "#/components/schemas/TicketCreationRuleActionResponse" - created_at: - description: The Unix timestamp in milliseconds when the rule was created. - example: 1722439510282 + next_update: + description: Unix timestamp (ms) of the next expected OCSP update. + example: 1743074486000 format: int64 type: integer - created_by: - $ref: "#/components/schemas/AutomationRuleCreatedBy" - enabled: - description: Whether the ticket creation rule is enabled. - example: true - type: boolean - modified_at: - description: The Unix timestamp in milliseconds when the rule was last modified. - example: 1722439510282 + produced_at: + description: Unix timestamp (ms) of when the OCSP response was produced. + example: 1742469686000 + format: int64 + type: integer + this_update: + description: Unix timestamp (ms) of this OCSP update. + example: 1742469686000 format: int64 type: integer - modified_by: - $ref: "#/components/schemas/AutomationRuleModifiedBy" - name: - description: The name of the ticket creation rule. - example: "Auto-create Jira tickets for critical findings" - maxLength: 255 - minLength: 1 - type: string - rule: - $ref: "#/components/schemas/AutomationRuleScope" - required: - - name - - enabled - - rule - - action - - created_at - - created_by - - modified_at - - modified_by - type: object - TicketCreationRuleCreateRequest: - description: The body of a ticket creation rule create request. - properties: - data: - $ref: "#/components/schemas/TicketCreationRuleDataCreate" - required: - - data - type: object - TicketCreationRuleDataCreate: - description: The data object for a ticket creation rule create request. - properties: - attributes: - $ref: "#/components/schemas/TicketCreationRuleAttributesCreate" - type: - $ref: "#/components/schemas/TicketCreationRuleType" - required: - - type - - attributes type: object - TicketCreationRuleDataResponse: - description: The data object for a ticket creation rule returned by the API. + SyntheticsTestResultParentStep: + description: Reference to the parent step of a sub-step. properties: - attributes: - $ref: "#/components/schemas/TicketCreationRuleAttributesResponse" id: - description: The ID of the ticket creation rule. - example: "00000000-0000-0000-0000-000000000000" - format: uuid + description: Identifier of the parent step. + example: fkk-j2a-gmw type: string - type: - $ref: "#/components/schemas/TicketCreationRuleType" - required: - - id - - type - - attributes type: object - TicketCreationRuleDataUpdate: - description: The data object for a ticket creation rule update request. The `id` must match the `rule_id` path parameter. + SyntheticsTestResultParentTest: + description: Reference to the parent test of a sub-step. properties: - attributes: - $ref: "#/components/schemas/TicketCreationRuleAttributesCreate" id: - description: The ID of the ticket creation rule to update. - example: "00000000-0000-0000-0000-000000000000" - format: uuid + description: Identifier of the parent test. + example: abc-def-123 type: string - type: - $ref: "#/components/schemas/TicketCreationRuleType" - required: - - id - - type - - attributes type: object - TicketCreationRuleReorderData: - description: The ordered list of all ticket creation rules. Every rule must be included. - items: - $ref: "#/components/schemas/TicketCreationRuleReorderItem" - type: array - TicketCreationRuleReorderItem: - description: A reference to a ticket creation rule used for reordering. + SyntheticsTestResultRedirect: + description: A redirect hop encountered while performing the request. properties: - id: - description: The ID of the ticket creation rule. - example: "00000000-0000-0000-0000-000000000000" - format: uuid + location: + description: Target location of the redirect. + example: https://example.com/new-location type: string - type: - $ref: "#/components/schemas/TicketCreationRuleType" - required: - - type - - id + status_code: + description: HTTP status code of the redirect response. + example: 301 + format: int64 + type: integer type: object - TicketCreationRuleReorderRequest: - description: The body of a ticket creation rule reorder request. + SyntheticsTestResultRelationshipTest: + description: Relationship to the Synthetic test. properties: data: - $ref: "#/components/schemas/TicketCreationRuleReorderData" - required: - - data + $ref: "#/components/schemas/SyntheticsTestResultRelationshipTestData" type: object - TicketCreationRuleReorderResponse: - description: The response of a ticket creation rule reorder request. + SyntheticsTestResultRelationshipTestData: + description: Data for the test relationship. properties: - data: - $ref: "#/components/schemas/TicketCreationRuleReorderData" - required: - - data + id: + description: The public ID of the test. + example: abc-def-123 + type: string + type: + description: Type of the related resource. + example: test + type: string type: object - TicketCreationRuleResponse: - description: A single ticket creation rule response. + SyntheticsTestResultRelationships: + description: Relationships for a Synthetic test result. properties: - data: - $ref: "#/components/schemas/TicketCreationRuleDataResponse" - required: - - data + test: + $ref: "#/components/schemas/SyntheticsTestResultRelationshipTest" type: object - TicketCreationRuleType: - description: The JSON:API type for ticket creation rules. - enum: - - ticket_creation_rules - example: ticket_creation_rules - type: string - x-enum-varnames: - - TICKET_CREATION_RULES - TicketCreationRuleUpdateRequest: - description: The body of a ticket creation rule update request. + SyntheticsTestResultRequestInfo: + description: Details of the outgoing request made during the test execution. properties: - data: - $ref: "#/components/schemas/TicketCreationRuleDataUpdate" - required: - - data - type: object - TicketCreationRulesDataList: - description: A list of ticket creation rule data objects. - items: - $ref: "#/components/schemas/TicketCreationRuleDataResponse" - type: array - TicketCreationRulesResponse: - description: A list of ticket creation rules with pagination metadata. - properties: - data: - $ref: "#/components/schemas/TicketCreationRulesDataList" - links: - $ref: "#/components/schemas/SecurityAutomationRulesLinks" - meta: - $ref: "#/components/schemas/SecurityAutomationRulesMeta" - required: - - data - - meta - - links - type: object - TicketCreationTarget: - description: The ticketing system to create tickets in. - enum: - - jira - - case_management - - linear - example: jira - type: string - x-enum-varnames: - - JIRA - - CASE_MANAGEMENT - - LINEAR - TimeAggregation: - description: |- - Time aggregation period (in seconds) is used to aggregate the results of the notification rule evaluation. - Results are aggregated over a selected time frame using a rolling window, which updates with each new evaluation. - Notifications are only sent for new issues discovered during the window. - Time aggregation is only available for vulnerability-based notification rules. When omitted or set to 0, no aggregation - is done. - example: 86400 - format: int64 - type: integer - TimeRestriction: - description: Defines a single time restriction rule with start and end times and the applicable weekdays. - properties: - end_day: - $ref: "#/components/schemas/Weekday" - end_time: - description: Specifies the ending time for this restriction. + allow_insecure: + description: Whether insecure certificates are allowed for this request. + example: false + type: boolean + body: + description: Body sent with the request. + example: '{"key":"value"}' type: string - start_day: - $ref: "#/components/schemas/Weekday" - start_time: - description: Specifies the starting time for this restriction. + call_type: + description: gRPC call type (for example, `unary`, `healthCheck`, or `reflection`). + example: unary type: string - type: object - TimeRestrictions: - description: Time restrictions during which the routing rule is active. Outside of these hours, the rule does not match and routing continues to subsequent rules. This is mutually exclusive with the action-level `support_hours` field. - properties: - restrictions: - description: Defines the list of time-based restrictions. + destination_service: + description: Destination service for a Network Path test. + example: my-service + type: string + dns_server: + description: DNS server used to resolve the target host. + example: 8.8.8.8 + type: string + dns_server_port: + description: Port of the DNS server used for resolution. + example: 53 + format: int64 + type: integer + e2e_queries: + description: Number of end-to-end probe queries issued. + example: 4 + format: int64 + type: integer + files: + description: Files attached to the request. items: - $ref: "#/components/schemas/TimeRestriction" + $ref: "#/components/schemas/SyntheticsTestResultFileRef" type: array - time_zone: - description: Specifies the time zone applicable to the restrictions. - example: "" + headers: + additionalProperties: {} + description: Headers sent with the request. + example: + content-type: application/json + type: object + host: + description: Host targeted by the request. + example: grpcbin.test.k6.io type: string - required: - - time_zone - - restrictions - type: object - TimelineCell: - description: "Attributes of a timeline cell, representing a single event in a case's chronological activity log (for example, a comment, status change, or assignment update)." - properties: - author: - $ref: "#/components/schemas/TimelineCellAuthor" - cell_content: - $ref: "#/components/schemas/TimelineCellContent" - created_at: - description: Timestamp of when the cell was created - format: date-time - readOnly: true + max_ttl: + description: Maximum TTL for network probe packets. + example: 64 + format: int64 + type: integer + message: + description: Message sent with the request (for WebSocket/TCP/UDP tests). + example: My message type: string - deleted_at: - description: Timestamp of when the cell was deleted - format: date-time - readOnly: true + method: + description: HTTP method used for the request. + example: GET type: string - modified_at: - description: Timestamp of when the cell was last modified - format: date-time - readOnly: true + no_saving_response_body: + description: Whether the response body was not saved. + example: true + type: boolean + port: + description: Port targeted by the request. Can be a number or a string variable reference. + example: 9000 + service: + description: Service name targeted by the request (for gRPC tests). + example: addsvc.Add + type: string + source_service: + description: Source service for a Network Path test. + example: synthetics + type: string + timeout: + description: Request timeout in milliseconds. + example: 60 + format: int64 + type: integer + tool_name: + description: Name of the MCP tool called (MCP tests only). + example: search + type: string + traceroute_queries: + description: Number of traceroute probe queries issued. + example: 2 + format: int64 + type: integer + url: + description: URL targeted by the request. + example: https://httpbin.org/anything/lol valuehugo type: string - type: - $ref: "#/components/schemas/TimelineCellType" type: object - TimelineCellAuthor: - description: The author of the timeline cell. Currently only user authors are supported. - oneOf: - - $ref: "#/components/schemas/TimelineCellAuthorUser" - TimelineCellAuthorUser: - description: A user who authored a timeline cell. + SyntheticsTestResultResponse: + description: Response object for a Synthetic test result. properties: - content: - $ref: "#/components/schemas/TimelineCellAuthorUserContent" - type: - $ref: "#/components/schemas/TimelineCellAuthorUserType" + data: + $ref: "#/components/schemas/SyntheticsTestResultData" + included: + description: Array of included related resources, such as the test definition. + items: + $ref: "#/components/schemas/SyntheticsTestResultIncludedItem" + type: array type: object - TimelineCellAuthorUserContent: - description: Profile information for the user who authored the timeline cell. + SyntheticsTestResultResponseInfo: + description: Details of the response received during the test execution. properties: - email: - description: The email address of the user. + body: + description: Body of the response. + example: '{"status":"ok"}' type: string - handle: - description: The Datadog handle of the user. + body_compressed: + description: Compressed representation of the response body. + example: eJzLSM3JyQcABiwCFQ== type: string - id: - description: The UUID of the user. + body_hashes: + description: Hashes computed over the response body. + example: 9e107d9d372bb6826bd81d3542a419d6 type: string - name: - description: The display name of the user. + body_size: + description: Size of the response body in bytes. + example: 793 + format: int64 + type: integer + cache_headers: + additionalProperties: + type: string + description: Cache-related response headers. + example: + server: gunicorn/19.9.0 + type: object + cdn: + $ref: "#/components/schemas/SyntheticsTestResultCdnProviderInfo" + close: + $ref: "#/components/schemas/SyntheticsTestResultWebSocketClose" + compressed_message: + description: Compressed representation of the response message. + example: eJzLSM3JyQcABiwCFQ== + type: string + headers: + additionalProperties: {} + description: Response headers. + example: + content-type: application/json + type: object + healthcheck: + $ref: "#/components/schemas/SyntheticsTestResultHealthCheck" + http_version: + description: HTTP version of the response. + example: "2.0" + type: string + is_body_truncated: + description: Whether the response body was truncated. + example: false + type: boolean + is_message_truncated: + description: Whether the response message was truncated. + example: false + type: boolean + message: + description: Message received in the response (for WebSocket/TCP/UDP tests). + example: '{"f_string":"concat-STATIC_HIDDEN_VALUE"}' type: string + metadata: + additionalProperties: + type: string + description: Additional metadata returned with the response. + type: object + records: + description: DNS records returned in the response (DNS tests only). + items: + $ref: "#/components/schemas/SyntheticsTestResultDnsRecord" + type: array + redirects: + description: Redirect hops encountered while performing the request. + items: + $ref: "#/components/schemas/SyntheticsTestResultRedirect" + type: array + status_code: + description: HTTP status code of the response. + example: 200 + format: int64 + type: integer type: object - TimelineCellAuthorUserType: - description: The type of timeline cell author. Currently only `USER` is supported. - enum: - - USER - example: USER - type: string - x-enum-varnames: - - USER - TimelineCellContent: - description: The content payload of a timeline cell, varying by cell type. - oneOf: - - $ref: "#/components/schemas/TimelineCellContentComment" - TimelineCellContentComment: - description: The content of a comment timeline cell. + SyntheticsTestResultRouter: + description: A router along the traceroute path. properties: - message: - description: The text content of the comment. Supports Markdown formatting. + ip: + description: IP address of the router. + example: 34.95.79.70 + type: string + resolved_host: + description: Resolved hostname of the router. + example: 70.79.95.34.bc.googleusercontent.com type: string type: object - TimelineCellResource: - description: A timeline cell resource representing a single entry in a case's activity timeline. + SyntheticsTestResultRumContext: + description: RUM application context associated with a step or sub-test. properties: - attributes: - $ref: "#/components/schemas/TimelineCell" - id: - description: Timeline cell's identifier - example: aeadc05e-98a8-11ec-ac2c-da7ad0900001 + application_id: + description: RUM application identifier. + example: 00000000-0000-0000-0000-000000000000 + type: string + session_id: + description: RUM session identifier. + example: 11111111-1111-1111-1111-111111111111 + type: string + view_id: + description: RUM view identifier. + example: 22222222-2222-2222-2222-222222222222 type: string - type: - $ref: "#/components/schemas/TimelineCellResourceType" - required: - - id - - type - - attributes type: object - TimelineCellResourceType: - default: timeline_cell - description: JSON:API resource type for timeline cells. + SyntheticsTestResultRunType: + description: The type of run for a Synthetic test result. enum: - - timeline_cell - example: timeline_cell + - scheduled + - fast + - ci + - triggered + example: scheduled type: string x-enum-varnames: - - TIMELINE_CELL - TimelineCellType: - description: The type of content in the timeline cell. Currently only `COMMENT` is supported in this endpoint. + - SCHEDULED + - FAST + - CI + - TRIGGERED + SyntheticsTestResultStatus: + description: Status of a Synthetic test result. enum: - - COMMENT - example: COMMENT + - passed + - failed + - no_data + example: passed type: string x-enum-varnames: - - COMMENT - TimelineResponse: - description: Response containing the chronological list of timeline cells for a case. + - PASSED + - FAILED + - NO_DATA + SyntheticsTestResultStep: + description: A step result from a browser, mobile, or multistep API test. properties: - data: - description: The `TimelineResponse` `data`. + allow_failure: + description: Whether the test continues when this step fails. + example: false + type: boolean + api_test: + additionalProperties: {} + description: Inner API test definition for browser `runApiTest` steps. + type: object + assertion_result: + $ref: "#/components/schemas/SyntheticsTestResultStepAssertionResult" + assertions: + description: Assertion results produced by the step. items: - $ref: "#/components/schemas/TimelineCellResource" + $ref: "#/components/schemas/SyntheticsTestResultAssertionResult" type: array - type: object - TimeseriesAnomalyInvestigationAnomaly: - description: One of the most significant anomalies detected in the request. - properties: - anomaly_detection: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationDetection" - detected_interval: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationInterval" - display_interval: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationInterval" - findings: - description: Deterministic explanations for the anomaly, ordered by importance. - example: [] + blocked_requests_urls: + description: URLs of requests blocked during the step. items: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationFinding" - maxItems: 3 + description: Blocked request URL. + type: string type: array - maximum_deviation: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationMaximumDeviation" - series: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationSeries" - tag_analysis: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationTagAnalysis" - type: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationAnomalyType" - required: - - series - - anomaly_detection - - detected_interval - - display_interval - - type - - maximum_deviation - - tag_analysis - - findings - type: object - TimeseriesAnomalyInvestigationAnomalyFinding: - description: Finding that describes the anomaly when completed analysis produces no displayable influential tags. - properties: - description: - description: Deterministic explanation of the finding. - example: "The service:api series rose outside its expected range." + bounds: + $ref: "#/components/schemas/SyntheticsTestResultBounds" + browser_errors: + description: Browser errors captured during the step. + items: + $ref: "#/components/schemas/SyntheticsTestResultBrowserError" + type: array + bucket_keys: + $ref: "#/components/schemas/SyntheticsTestResultBucketKeys" + cdn_resources: + description: CDN resources encountered during the step. + items: + $ref: "#/components/schemas/SyntheticsTestResultCdnResource" + type: array + click_type: + description: Click type performed in a browser step. + example: primary type: string - headline: - description: Concise, deterministic finding title. - example: "An anomaly was detected on service:api" + compressed_json_descriptor: + description: Compressed JSON descriptor for the step (internal format). + example: compressedJsonDescriptorValue type: string - type: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationAnomalyFindingType" - required: - - type - - headline - - description - type: object - TimeseriesAnomalyInvestigationAnomalyFindingType: - description: Finding category for an anomaly without a displayable influential tag. - enum: - - anomaly - example: anomaly - type: string - x-enum-varnames: - - ANOMALY - TimeseriesAnomalyInvestigationAnomalyType: - description: Direction of an anomaly relative to its expected range. - enum: - - spike - - dip - example: spike - type: string - x-enum-varnames: - - SPIKE - - DIP - TimeseriesAnomalyInvestigationCompleteStatus: - description: Status value indicating successful completion. - enum: - - complete - example: complete - type: string - x-enum-varnames: - - COMPLETE - TimeseriesAnomalyInvestigationConfigurationSource: - description: Source of the anomaly detection configuration. - enum: - - request_formula - - watchdog_explains_default - example: request_formula - type: string - x-enum-varnames: - - REQUEST_FORMULA - - WATCHDOG_EXPLAINS_DEFAULT - TimeseriesAnomalyInvestigationDataSource: - description: Data source for an anomaly investigation query. - enum: - - metrics - example: metrics - type: string - x-enum-varnames: - - METRICS - TimeseriesAnomalyInvestigationDetection: - description: Anomaly detection configuration used for the result. - properties: - configuration_source: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationConfigurationSource" - profile: - description: Applied Watchdog Explains profile, or null when the request supplied an explicit `anomalies()` formula. The current Watchdog profile is `watchdog_explains_v1`. - example: - nullable: true + config: + additionalProperties: {} + description: Request configuration executed by this step (API test steps). + type: object + description: + description: Human-readable description of the step. + example: Navigate to start URL type: string - required: - - configuration_source - - profile - type: object - TimeseriesAnomalyInvestigationFinding: - description: Deterministic explanation for a detected anomaly. - oneOf: - - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationInfluentialTagFinding" - - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationAnomalyFinding" - TimeseriesAnomalyInvestigationFindingSynonym: - description: Tag grouped under an influential tag by synonym analysis. - properties: - key: - description: Synonymous tag key. - example: app + duration: + description: Duration of the step in milliseconds. + example: 1015.0 + format: double + type: number + element_description: + description: Description of the element interacted with by the step. + example: '' type: string - values: - description: Values associated with the synonymous tag. - example: - - api + element_updates: + $ref: "#/components/schemas/SyntheticsTestResultStepElementUpdates" + extracted_value: + $ref: "#/components/schemas/SyntheticsTestResultVariable" + failure: + $ref: "#/components/schemas/SyntheticsTestResultFailure" + http_results: + description: HTTP results produced by an MCP step. items: - description: Synonymous tag value. - example: api - type: string + $ref: "#/components/schemas/SyntheticsTestResultAssertionResult" type: array - required: - - key - - values - type: object - TimeseriesAnomalyInvestigationFindingTag: - description: Structured tag evidence for an influential-tag finding. - properties: - influence_type: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationInfluenceType" - key: - description: Influential tag key. - example: service + id: + description: Identifier of the step. + example: fkk-j2a-gmw type: string - rating: - description: Influence rating from 1 through 5. - example: 5.0 + is_critical: + description: Whether this step is critical for the test outcome. + example: true + type: boolean + javascript_custom_assertion_code: + description: Whether the step uses a custom JavaScript assertion. + example: false + type: boolean + locate_element_duration: + description: Time taken to locate the element in milliseconds. + example: 845.0 format: double - maximum: 5 - minimum: 1 type: number - synonyms: - description: Tags grouped with this tag by Variation of Influence synonym analysis. - example: [] + name: + description: Name of the step. + example: Extract variable from body + type: string + request: + $ref: "#/components/schemas/SyntheticsTestResultRequestInfo" + response: + $ref: "#/components/schemas/SyntheticsTestResultResponseInfo" + retries: + description: Retry results for the step. items: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationFindingSynonym" + $ref: "#/components/schemas/SyntheticsTestResultStep" type: array - values: - description: Influential values for the tag key. - example: - - api + retry_count: + description: Number of times this step was retried. + example: 0 + format: int64 + type: integer + rum_context: + $ref: "#/components/schemas/SyntheticsTestResultRumContext" + started_at: + description: Unix timestamp (ms) of when the step started. + example: 1724445283308 + format: int64 + type: integer + status: + description: Status of the step (for example, `passed`, `failed`). + example: passed + type: string + sub_step: + $ref: "#/components/schemas/SyntheticsTestResultSubStep" + sub_test: + $ref: "#/components/schemas/SyntheticsTestResultSubTest" + subtype: + description: Subtype of the step. + example: http + type: string + tabs: + description: Browser tabs involved in the step. items: - description: Influential tag value. - example: api - type: string + $ref: "#/components/schemas/SyntheticsTestResultTab" + type: array + timings: + additionalProperties: {} + description: Timing breakdown of the step execution. + type: object + tunnel: + description: Whether the step was executed through a Synthetics tunnel. + example: false + type: boolean + type: + description: Type of the step (for example, `click`, `assertElementContent`, `runApiTest`). + example: click + type: string + url: + description: URL associated with the step (for navigation steps). + example: http://34.95.79.70/prototype + type: string + value: + description: Step value. Its type depends on the step type. + example: http://34.95.79.70/prototype + variables: + $ref: "#/components/schemas/SyntheticsTestResultVariables" + vitals_metrics: + description: Web vitals metrics captured during the step. + items: + $ref: "#/components/schemas/SyntheticsTestResultVitalsMetrics" + type: array + warnings: + description: Warnings emitted during the step. + items: + $ref: "#/components/schemas/SyntheticsTestResultWarning" type: array - required: - - key - - values - - influence_type - - rating - - synonyms type: object - TimeseriesAnomalyInvestigationFormula: - description: Formula evaluated by the timeseries request. + SyntheticsTestResultStepAssertionResult: + description: Assertion result for a browser or mobile step. properties: - formula: - description: |- - Formula expression referencing one or more named queries. - When the expression does not contain an explicit `anomalies()` call, - the endpoint applies the default Watchdog Explains anomaly detection configuration. - example: query1 - minLength: 1 + actual: + description: Actual value observed during the step assertion. Its type depends on the check type. + example: "True\ngood\ngood\ngood\ngood\nTrue" + check_type: + description: Type of the step assertion check. + example: contains type: string - limit: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationFormulaLimit" - required: - - formula + expected: + description: Expected value for the step assertion. Its type depends on the check type. + example: True good good good good True + has_secure_variables: + description: Whether the assertion involves secure variables. + example: false + type: boolean type: object - TimeseriesAnomalyInvestigationFormulaLimit: - description: Optional formula limit accepted for compatibility with Timeseries API requests. Formula limits have no effect on timeseries queries. + SyntheticsTestResultStepElementUpdates: + description: Element locator updates produced during a step. properties: - count: - description: Requested result limit. This field has no effect on a timeseries anomaly investigation. - example: 10 + multi_locator: + additionalProperties: + type: string + description: Updated multi-locator definition. + type: object + target_outer_html: + description: Updated outer HTML of the targeted element. + example:

My website - v4

+ type: string + version: + description: Version of the element locator definition. + example: 3 format: int64 - minimum: 0 type: integer - order: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationFormulaLimitOrder" type: object - TimeseriesAnomalyInvestigationFormulaLimitOrder: - description: Sort order used when applying a formula series limit. - enum: - - asc - - desc - example: desc - type: string - x-enum-varnames: - - ASC - - DESC - TimeseriesAnomalyInvestigationInfluenceType: - description: Kind of influence a tag has on a series. - enum: - - shape - - value - example: shape - type: string - x-enum-varnames: - - SHAPE - - VALUE - TimeseriesAnomalyInvestigationInfluentialTagFinding: - description: Finding that attributes an anomaly to an influential tag. + SyntheticsTestResultStepsInfo: + description: Step execution summary for a Synthetic test result. properties: - description: - description: Deterministic explanation of the finding. - example: "Filtering out service:api flattens the spike." - type: string - headline: - description: Concise, deterministic finding title. - example: "service:api is the likely cause" - type: string - tag: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationFindingTag" - type: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationInfluentialTagFindingType" - required: - - type - - headline - - description - - tag + completed: + description: Number of completed steps. + example: 6 + format: int64 + type: integer + errors: + description: Number of steps with errors. + example: 0 + format: int64 + type: integer + total: + description: Total number of steps. + example: 6 + format: int64 + type: integer type: object - TimeseriesAnomalyInvestigationInfluentialTagFindingType: - description: Finding category for an influential tag. - enum: - - influential_tag - example: influential_tag - type: string - x-enum-varnames: - - INFLUENTIAL_TAG - TimeseriesAnomalyInvestigationInterval: - description: Inclusive time interval in milliseconds since the Unix epoch. + SyntheticsTestResultSubStep: + description: Information about a sub-step in a nested test execution. properties: - end: - description: Timestamp of the final point in the interval. - example: 1754406120000 + level: + description: Depth of the sub-step in the execution tree. + example: 1 format: int64 type: integer - start: - description: Inclusive start of the interval. - example: 1754406060000 + parent_step: + $ref: "#/components/schemas/SyntheticsTestResultParentStep" + parent_test: + $ref: "#/components/schemas/SyntheticsTestResultParentTest" + type: object + SyntheticsTestResultSubTest: + description: Information about a sub-test played from a parent browser test. + properties: + id: + description: Identifier of the sub-test. + example: abc-def-123 + type: string + playing_tab: + description: Index of the browser tab playing the sub-test. + example: 0 format: int64 type: integer - required: - - start - - end + rum_context: + $ref: "#/components/schemas/SyntheticsTestResultRumContext" type: object - TimeseriesAnomalyInvestigationMaximumDeviation: - description: Most anomalous point within the detected interval. + SyntheticsTestResultSummaryAttributes: + description: Attributes of a Synthetic test result summary. properties: - delta_from_boundary: - description: Absolute distance between the observed value and the nearest anomaly boundary. - example: 7.0 - format: double - minimum: 0 - type: number - timestamp: - description: Point timestamp in milliseconds since the Unix epoch. - example: 1754406090000 + device: + $ref: "#/components/schemas/SyntheticsTestResultDevice" + execution_info: + $ref: "#/components/schemas/SyntheticsTestResultExecutionInfo" + finished_at: + description: Timestamp of when the test finished (in milliseconds). format: int64 type: integer - value: - description: Observed value at the point. - example: 42.0 - format: double - type: number - required: - - timestamp - - value - - delta_from_boundary + location: + $ref: "#/components/schemas/SyntheticsTestResultLocation" + run_type: + $ref: "#/components/schemas/SyntheticsTestResultRunType" + started_at: + description: Timestamp of when the test started (in milliseconds). + format: int64 + type: integer + status: + $ref: "#/components/schemas/SyntheticsTestResultStatus" + steps_info: + $ref: "#/components/schemas/SyntheticsTestResultStepsInfo" + test_sub_type: + $ref: "#/components/schemas/SyntheticsTestSubType" + test_type: + $ref: "#/components/schemas/SyntheticsTestType" type: object - TimeseriesAnomalyInvestigationMetaType: - description: Response metadata type for a timeseries anomaly investigation. - enum: - - timeseries_anomaly_investigation - example: timeseries_anomaly_investigation - type: string - x-enum-varnames: - - TIMESERIES_ANOMALY_INVESTIGATION - TimeseriesAnomalyInvestigationMetricQuery: - description: Metrics query referenced by a formula. + SyntheticsTestResultSummaryData: + description: Wrapper object for a Synthetic test result summary. properties: - aggregator: - description: Optional scalar aggregator accepted for request compatibility. This field is ignored for timeseries queries. - example: avg - type: string - cross_org_uuids: - description: Optional organization UUID used for a cross-organization query. Each query accepts at most one UUID; use separate queries for separate organizations. Influential-tag analysis is currently unsupported for cross-organization queries, but anomaly detection still runs. - example: - - "00000000-0000-0000-0000-000000000000" - items: - description: Organization UUID to query. - example: "00000000-0000-0000-0000-000000000000" - minLength: 1 - type: string - maxItems: 1 - type: array - data_source: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationDataSource" - name: - description: Name used to reference this query from formulas. - example: query1 - minLength: 1 - type: string - query: - description: Datadog metrics query expression. - example: "avg:system.cpu.user{env:prod} by {service}" - minLength: 1 + attributes: + $ref: "#/components/schemas/SyntheticsTestResultSummaryAttributes" + id: + description: The result ID. + example: "5158904793181869365" type: string - required: - - data_source - - name - - query + relationships: + $ref: "#/components/schemas/SyntheticsTestResultRelationships" + type: + $ref: "#/components/schemas/SyntheticsTestResultSummaryType" type: object - TimeseriesAnomalyInvestigationQueryExecutionStatus: - description: Current execution status for a named query. + SyntheticsTestResultSummaryType: + default: "result_summary" + description: Type of the Synthetic test result summary resource, `result_summary`. enum: - - running - - done - example: done + - result_summary + example: result_summary type: string x-enum-varnames: - - RUNNING - - DONE - TimeseriesAnomalyInvestigationQueryStatus: - description: Execution status for one named query. + - RESULT_SUMMARY + SyntheticsTestResultTab: + description: Information about a browser tab involved in a step. properties: - name: - description: Query name from the request. - example: query1 + focused: + description: Whether the tab was focused during the step. + example: true + type: boolean + title: + description: Title of the tab. + example: Team Browser mini-websites + type: string + url: + description: URL loaded in the tab. + example: http://34.95.79.70/prototype type: string - status: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationQueryExecutionStatus" - required: - - name - - status type: object - TimeseriesAnomalyInvestigationRequest: - description: Request to investigate a metrics timeseries for anomalies. + SyntheticsTestResultTrace: + description: Trace identifiers associated with a Synthetic test result. properties: - data: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationRequestData" - required: - - data + id: + description: Datadog APM trace identifier. + example: "5513046492231128177" + type: string + otel_id: + description: OpenTelemetry trace identifier. + example: d8ba00eb1507bdba8643ba8e7a1c022c + type: string type: object - TimeseriesAnomalyInvestigationRequestAttributes: - description: Attributes of an anomaly investigation request. + SyntheticsTestResultTracerouteHop: + description: A network probe result, used for traceroute hops and ping summaries. properties: - requests: - description: Timeseries requests to investigate. This API version accepts exactly one request. - example: - - formulas: - - formula: query1 - from: 1754406000000 - queries: - - data_source: metrics - name: query1 - query: "avg:system.cpu.user{env:prod} by {service}" - to: 1754423940000 + host: + description: Target hostname. + example: 34.95.79.70 + type: string + latency: + $ref: "#/components/schemas/SyntheticsTestResultNetworkLatency" + packet_loss_percentage: + description: Percentage of probe packets lost. + example: 0.0 + format: double + type: number + packet_size: + description: Size of each probe packet in bytes. + example: 56 + format: int64 + type: integer + packets_received: + description: Number of probe packets received. + example: 4 + format: int64 + type: integer + packets_sent: + description: Number of probe packets sent. + example: 4 + format: int64 + type: integer + resolved_ip: + description: Resolved IP address for the target. + example: 34.95.79.70 + type: string + routers: + description: List of intermediate routers for the traceroute. items: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationTimeseriesRequest" - maxItems: 1 - minItems: 1 + $ref: "#/components/schemas/SyntheticsTestResultRouter" type: array - required: - - requests type: object - TimeseriesAnomalyInvestigationRequestData: - description: JSON:API resource containing an anomaly investigation request. + SyntheticsTestResultTurn: + description: A turn in a goal-based browser test, grouping steps and reasoning. properties: - attributes: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationRequestAttributes" - type: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationType" - required: - - type - - attributes - type: object - TimeseriesAnomalyInvestigationResponse: - description: Response containing the anomaly investigation results and timeseries metadata. - properties: - data: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationResponseData" - meta: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationResponseMeta" - required: - - data - - meta - type: object - TimeseriesAnomalyInvestigationResponseAttributes: - description: Attributes of an anomaly investigation response. - properties: - results: - description: Results returned in the same order as the submitted requests. This API version returns exactly one result. - example: - - anomalies: [] - status: complete + bucket_keys: + $ref: "#/components/schemas/SyntheticsTestResultBucketKeys" + name: + description: Name of the turn. + example: Turn 1 + type: string + reasoning: + description: Agent reasoning produced for this turn. + example: I need to navigate to the chairs section + type: string + status: + description: Status of the turn (for example, `passed`, `failed`). + example: passed + type: string + steps: + description: Steps executed during the turn. items: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationResult" - maxItems: 1 - minItems: 1 + $ref: "#/components/schemas/SyntheticsTestResultTurnStep" type: array - required: - - results + turn_finished_at: + description: Unix timestamp (ms) of when the turn finished. + example: 1724521438800 + format: int64 + type: integer + turn_started_at: + description: Unix timestamp (ms) of when the turn started. + example: 1724521436800 + format: int64 + type: integer type: object - TimeseriesAnomalyInvestigationResponseData: - description: JSON:API resource containing anomaly investigation results. + SyntheticsTestResultTurnStep: + description: A step executed during a goal-based browser test turn. properties: - attributes: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationResponseAttributes" - id: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationResponseID" - type: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationType" - required: - - id - - type - - attributes + bucket_keys: + $ref: "#/components/schemas/SyntheticsTestResultBucketKeys" + config: + additionalProperties: {} + description: Browser step configuration for this turn step. + example: + id: step-1 + name: Click on div "Chairs" + type: click + type: object type: object - TimeseriesAnomalyInvestigationResponseID: - description: Stable identifier for an anomaly investigation response resource. + SyntheticsTestResultType: + default: "result" + description: Type of the Synthetic test result resource, `result`. enum: - - "0" - example: "0" + - result + example: result type: string x-enum-varnames: - - ZERO - TimeseriesAnomalyInvestigationResponseMeta: - description: Timeseries execution metadata for the single request accepted by this API version. + - RESULT + SyntheticsTestResultVariable: + description: A variable used or extracted during a test. properties: - from_date: - description: Effective start of the timeseries query in milliseconds since the Unix epoch. - example: 1754406000000 - format: int64 - type: integer - interval: - description: Effective timeseries interval in milliseconds. - example: 60000 - format: int64 - minimum: 1 - type: integer - queries: - description: Execution status for the request's queries. - example: - - name: query1 - status: done + err: + description: Error encountered when evaluating the variable. + example: LOCAL_VARIABLE_UNKNOWN + type: string + error_message: + description: Human-readable error message for variable evaluation. + example: Unknown variable name undefined. + type: string + example: + description: Example value for the variable. + example: lol value + type: string + id: + description: Variable identifier. + example: c896702c-1e34-4e62-a67b-432e8092d062 + type: string + name: + description: Variable name. + example: HEADER_VALUE + type: string + pattern: + description: Pattern used to extract the variable. + example: lol value + type: string + secure: + description: Whether the variable holds a secure value. + example: false + type: boolean + type: + description: Variable type. + example: text + type: string + val: + description: Evaluated value of the variable. + example: value-to-extract + type: string + value: + description: Current value of the variable. + example: lol value + type: string + type: object + SyntheticsTestResultVariables: + description: Variables captured during a test step. + properties: + config: + description: Variables defined in the test configuration. items: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationQueryStatus" + $ref: "#/components/schemas/SyntheticsTestResultVariable" type: array - res_type: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationMetaType" - results_warnings: - description: Non-fatal warnings produced while executing the investigation. - example: [] + extracted: + description: Variables extracted during the test execution. items: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationResultsWarning" + $ref: "#/components/schemas/SyntheticsTestResultVariable" type: array - to_date: - description: Effective end of the timeseries query in milliseconds since the Unix epoch. - example: 1754423940000 - format: int64 - type: integer - required: - - from_date - - to_date - - interval - - queries - - results_warnings - - res_type type: object - TimeseriesAnomalyInvestigationResult: - description: Completed result for one timeseries request. The anomalies array is empty when no qualifying anomaly is found. + SyntheticsTestResultVitalsMetrics: + description: Web vitals metrics captured during a browser test step. properties: - anomalies: - description: |- - Detected anomalies, ordered by significance. This API version returns at most - three anomalies across the submitted request. - example: [] - items: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationAnomaly" - maxItems: 3 - type: array - status: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationCompleteStatus" - required: - - status - - anomalies + cls: + description: Cumulative Layout Shift score. + example: 0.0 + format: double + type: number + fcp: + description: First Contentful Paint in milliseconds. + example: 120.3 + format: double + type: number + inp: + description: Interaction to Next Paint in milliseconds. + example: 85.0 + format: double + type: number + lcp: + description: Largest Contentful Paint in milliseconds. + example: 210.5 + format: double + type: number + ttfb: + description: Time To First Byte in milliseconds. + example: 95.2 + format: double + type: number + url: + description: URL that produced the metrics. + example: http://34.95.79.70/prototype + type: string type: object - TimeseriesAnomalyInvestigationResultsWarning: - description: Non-fatal warning produced while executing the investigation. + SyntheticsTestResultWarning: + description: A warning captured during a browser test step. properties: + element_bounds: + description: Bounds of elements related to the warning. + items: + $ref: "#/components/schemas/SyntheticsTestResultBounds" + type: array message: - description: Human-readable warning message. - example: "Influential tag analysis failed for at least one detected anomaly." + description: Warning message. + example: Element is not visible in the viewport type: string - name: - description: Machine-readable warning name. - example: tag_analysis_failed + type: + description: Type of the warning. + example: visibility type: string - required: - - name - - message type: object - TimeseriesAnomalyInvestigationSeries: - description: Logical series on which the anomaly was detected. + SyntheticsTestResultWebSocketClose: + description: WebSocket close frame information for WebSocket test responses. properties: - group_tags: - description: Tags identifying the selected group. Empty for a query without grouping. - example: - - "service:api" - items: - description: Tag in `key:value` form. - example: "service:api" - type: string - type: array - label: - description: Display label for the selected series. - example: api + reason: + description: Reason string received in the close frame. + example: Normal closure type: string - query_index: - description: Zero-based index of the caller's formula that produced the series. - example: 0 + status_code: + description: Status code received in the close frame. + example: 1000 format: int64 - minimum: 0 type: integer - required: - - query_index - - group_tags - - label type: object - TimeseriesAnomalyInvestigationTagAnalysis: - description: Summary of optional influential-tag enrichment. Count and key fields are present only when analysis completes; enrichment availability does not affect completion of the investigation result. + SyntheticsTestSubType: + description: Subtype of the Synthetic test that produced this result. + enum: + - dns + - grpc + - http + - icmp + - mcp + - multi + - ssl + - tcp + - udp + - websocket + example: http + type: string + x-enum-varnames: + - DNS + - GRPC + - HTTP + - ICMP + - MCP + - MULTI + - SSL + - TCP + - UDP + - WEBSOCKET + SyntheticsTestType: + description: Type of the Synthetic test that produced this result. + enum: + - api + - browser + - mobile + - network + example: api + type: string + x-enum-varnames: + - API + - BROWSER + - MOBILE + - NETWORK + SyntheticsTestVersionActionMetadata: + description: Object containing metadata about a change action. properties: - analyzed_tag_keys: - description: Tag keys analyzed. Present only when analysis completes. - example: - - service - - env + after_value: + description: The value of the property after the change. + before_value: + description: The value of the property before the change. + diff_patches: + description: List of diff patches for text changes. items: - description: Analyzed tag key. - example: service - type: string + $ref: "#/components/schemas/SyntheticsTestVersionDiffPatches" + nullable: true type: array - status: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationTagAnalysisStatus" - tag_keys_analyzed: - description: Number of tag keys analyzed. Present only when analysis completes. - example: 2 - format: int64 - minimum: 0 - type: integer - tag_values_analyzed: - description: Number of tag values analyzed. Present only when analysis completes. - example: 4 - format: int64 - minimum: 0 - type: integer - required: - - status + property_path: + description: The dot-separated path of the property that was changed. + type: string type: object - TimeseriesAnomalyInvestigationTagAnalysisStatus: - description: Outcome of optional influential-tag enrichment. - enum: - - complete - - unsupported - - failed - example: complete - type: string - x-enum-varnames: - - COMPLETE - - UNSUPPORTED - - FAILED - TimeseriesAnomalyInvestigationTimeseriesRequest: - description: Metrics timeseries request to investigate. + SyntheticsTestVersionAttributes: + description: Attributes of a specific Synthetic test version. properties: - formulas: - description: Formulas to evaluate. Each formula may contain an explicit `anomalies()` call or a supported metrics expression. - example: - - formula: query1 + author: + $ref: "#/components/schemas/SyntheticsTestVersionAuthor" + change_metadata: + description: |- + List of metadata describing individual changes in this version. + Only returned when the `include_change_metadata` query parameter is `true`. items: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationFormula" - minItems: 1 + $ref: "#/components/schemas/SyntheticsTestVersionChangeMetadataItem" type: array - from: - description: Start of the investigation time window in milliseconds since the Unix epoch. - example: 1754406000000 - format: int64 - minimum: 1 - type: integer - interval: - description: Optional requested aggregation interval in milliseconds. - example: 60000 - format: int64 - minimum: 1 - type: integer - queries: - description: Metrics queries referenced by the formulas. - example: - - data_source: metrics - name: query1 - query: "avg:system.cpu.user{env:prod} by {service}" + payload: + additionalProperties: {} + description: The full test configuration at this version. + type: object + version_payload_created_at: + description: Timestamp of when this version was created. + example: "2024-01-01T00:00:00+00:00" + format: date-time + type: string + type: object + SyntheticsTestVersionAuthor: + description: Object describing the author of a test version. + properties: + email: + description: Email address of the author. + example: john.doe@example.com + type: string + handle: + description: The author's Datadog handle (login username). + example: john.doe + type: string + id: + description: UUID of the author. + example: "00000000-0000-0000-0000-000000000000" + type: string + name: + description: Display name of the author. + example: John Doe + type: string + type: object + SyntheticsTestVersionChangeAttributes: + description: Attributes of a version change record. + properties: + author_uuid: + description: UUID of the user who created this version. + example: "00000000-0000-0000-0000-000000000000" + type: string + change_metadata: + description: List of metadata describing individual changes in this version. items: - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationMetricQuery" - minItems: 1 + $ref: "#/components/schemas/SyntheticsTestVersionChangeMetadataItem" type: array - to: - description: End of the investigation time window in milliseconds since the Unix epoch. Must be later than `from`. - example: 1754423940000 + version_number: + description: The sequential version number. + example: 5 format: int64 - minimum: 1 type: integer - required: - - formulas - - from - - to - - queries + version_payload_created_at: + description: Timestamp of when this version was created. + example: "2024-01-01T00:00:00+00:00" + format: date-time + type: string type: object - TimeseriesAnomalyInvestigationType: - description: Resource type for a timeseries anomaly investigation. - enum: - - timeseries_anomaly_investigation - example: timeseries_anomaly_investigation - type: string - x-enum-varnames: - - TIMESERIES_ANOMALY_INVESTIGATION - TimeseriesFormulaQueryRequest: - description: A request wrapper around a single timeseries query to be executed. + SyntheticsTestVersionChangeData: + description: Data object for a version change record. properties: - data: - $ref: "#/components/schemas/TimeseriesFormulaRequest" - required: - - data + attributes: + $ref: "#/components/schemas/SyntheticsTestVersionChangeAttributes" + id: + description: UUID of the version change record. + example: "00000000-0000-0000-0000-000000000000" + type: string + type: + $ref: "#/components/schemas/SyntheticsTestVersionChangeType" type: object - TimeseriesFormulaQueryResponse: - description: A message containing one response to a timeseries query made with timeseries formula query request. + SyntheticsTestVersionChangeMetadataItem: + description: Object describing a single change within a version. properties: - data: - $ref: "#/components/schemas/TimeseriesResponse" - errors: - description: The error generated by the request. + action: + description: The action that was performed (for example, `updated` or `created`). type: string + action_metadata: + $ref: "#/components/schemas/SyntheticsTestVersionActionMetadata" type: object - TimeseriesFormulaRequest: - description: A single timeseries query to be executed. + SyntheticsTestVersionChangeType: + default: version_metadata + description: Type of the version metadata resource. + enum: + - version_metadata + example: version_metadata + type: string + x-enum-varnames: + - VERSION_METADATA + SyntheticsTestVersionData: + description: Data object for a specific Synthetic test version. properties: attributes: - $ref: "#/components/schemas/TimeseriesFormulaRequestAttributes" + $ref: "#/components/schemas/SyntheticsTestVersionAttributes" + id: + description: UUID of the version record. + example: "00000000-0000-0000-0000-000000000000" + type: string type: - $ref: "#/components/schemas/TimeseriesFormulaRequestType" - required: - - type - - attributes + $ref: "#/components/schemas/SyntheticsTestVersionType" type: object - TimeseriesFormulaRequestAttributes: - description: The object describing a timeseries formula request. + SyntheticsTestVersionDiffPatchDiff: + description: Object describing a single text diff operation. properties: - formulas: - description: List of formulas to be calculated and returned as responses. + change_text: + description: The text that was changed. + type: string + operation: + description: The diff operation applied. + type: string + type: object + SyntheticsTestVersionDiffPatches: + description: Object describing a patch in the diff. + properties: + diffs: + description: List of individual diff operations. items: - $ref: "#/components/schemas/QueryFormula" + $ref: "#/components/schemas/SyntheticsTestVersionDiffPatchDiff" type: array - from: - description: Start date (inclusive) of the query in milliseconds since the Unix epoch. - example: 1568899800000 + length1: + description: Length of the original text segment. format: int64 type: integer - interval: - description: |- - A time interval in milliseconds. - May be overridden by a larger interval if the query would result in - too many points for the specified timeframe. - Defaults to a reasonable interval for the given timeframe. - example: 5000 + length2: + description: Length of the modified text segment. format: int64 type: integer - queries: - $ref: "#/components/schemas/TimeseriesFormulaRequestQueries" - to: - description: End date (exclusive) of the query in milliseconds since the Unix epoch. - example: 1568923200000 + start1: + description: Start position in the original text. + format: int64 + type: integer + start2: + description: Start position in the modified text. format: int64 type: integer - required: - - to - - from - - queries - type: object - TimeseriesFormulaRequestQueries: - description: List of queries to be run and used as inputs to the formulas. - example: - - data_source: metrics - query: "avg:system.cpu.user{*} by {env}" - items: - $ref: "#/components/schemas/TimeseriesQuery" - type: array - TimeseriesFormulaRequestType: - default: "timeseries_request" - description: The type of the resource. The value should always be timeseries_request. - enum: ["timeseries_request"] - example: "timeseries_request" - type: string - x-enum-varnames: ["TIMESERIES_REQUEST"] - TimeseriesFormulaResponseType: - default: "timeseries_response" - description: The type of the resource. The value should always be timeseries_response. - enum: ["timeseries_response"] - example: "timeseries_response" - type: string - x-enum-varnames: ["TIMESERIES_RESPONSE"] - TimeseriesQuery: - description: An individual timeseries query to one of the basic Datadog data sources. - example: - data_source: metrics - query: "avg:system.cpu.user{*} by {env}" - oneOf: - - $ref: "#/components/schemas/MetricsTimeseriesQuery" - - $ref: "#/components/schemas/EventsTimeseriesQuery" - - $ref: "#/components/schemas/ApmResourceStatsQuery" - - $ref: "#/components/schemas/ApmMetricsQuery" - - $ref: "#/components/schemas/ApmDependencyStatsQuery" - - $ref: "#/components/schemas/SloQuery" - - $ref: "#/components/schemas/ProcessTimeseriesQuery" - - $ref: "#/components/schemas/ContainerTimeseriesQuery" - TimeseriesResponse: - description: A message containing the response to a timeseries query. - properties: - attributes: - $ref: "#/components/schemas/TimeseriesResponseAttributes" - type: - $ref: "#/components/schemas/TimeseriesFormulaResponseType" - type: object - TimeseriesResponseAttributes: - description: The object describing a timeseries response. - properties: - series: - $ref: "#/components/schemas/TimeseriesResponseSeriesList" - times: - $ref: "#/components/schemas/TimeseriesResponseTimes" - values: - $ref: "#/components/schemas/TimeseriesResponseValuesList" type: object - TimeseriesResponseSeries: - description: A single series in a timeseries query response, containing the query index, unit information, and group tags. + SyntheticsTestVersionHistoryMeta: + description: Pagination metadata for a version history response. properties: - group_tags: - $ref: "#/components/schemas/GroupTags" - query_index: - description: The index of the query in the "formulas" array (or "queries" array if no "formulas" was specified). - example: 0 - format: int32 - maximum: 2147483647 - type: integer - unit: + next_last_version_number: description: |- - Detailed information about the unit. - The first element describes the "primary unit" (for example, `bytes` in `bytes per second`). - The second element describes the "per unit" (for example, `second` in `bytes per second`). - If the second element is not present, the API returns null. - items: - $ref: "#/components/schemas/Unit" + The version number to use as the `last_version_number` query parameter + to fetch the next page. `null` indicates there are no more pages. + example: 3 + format: int64 nullable: true - type: array - type: object - TimeseriesResponseSeriesList: - description: Array of response series. The index here corresponds to the index in the `formulas` or `queries` array from the request. - items: - $ref: "#/components/schemas/TimeseriesResponseSeries" - type: array - TimeseriesResponseTimes: - description: Array of times, 1-1 match with individual values arrays. - items: - description: Start date (inclusive) of the query in seconds since the Unix epoch. - example: 1568899800000 - format: int64 - type: integer - type: array - TimeseriesResponseValues: - description: Array of values for an individual formula or query. - example: [1575317847.0, 0.5] - items: - description: An individual value for a given time. - format: double - nullable: true - type: number - type: array - TimeseriesResponseValuesList: - description: Array of value-arrays. The index here corresponds to the index in the `formulas` or `queries` array from the request. - items: - $ref: "#/components/schemas/TimeseriesResponseValues" - type: array - TokenName: - description: Name for tokens. - example: MyTokenName - pattern: ^[A-Za-z][A-Za-z\\d]*$ - type: string - TokenType: - description: The definition of `TokenType` object. - enum: - - SECRET - example: SECRET - type: string - x-enum-varnames: - - SECRET - TopLongTaskInvoker: - description: A top long task invoker within an invoker type. - properties: - criteria_view_occurrences: - description: Number of sampled views where this invoker had long tasks contributing to the criteria metric. - example: 40 - format: int32 - maximum: 2147483647 type: integer - file: - description: Cleaned source file path for the invoker script. - example: src/pages/Gallery.tsx - nullable: true - type: string - impact_score: - description: Rank-product impact score combining view frequency and blocking time severity. - example: 0.67 - format: double - type: number - invoker: - description: Name of the invoker function or script. - example: Response.json.then - type: string - stats_per_view: - $ref: "#/components/schemas/LongTaskStatsPerView" - view_occurrences: - description: Number of sampled views where this invoker had any long tasks. - example: 68 - format: int32 - maximum: 2147483647 + retention_period_in_days: + description: The number of days that version history is retained. + example: 30 + format: int64 type: integer - required: - - invoker - - view_occurrences - - stats_per_view - type: object - TraceAttributes: - description: The attributes of a trace returned by the Get trace by ID endpoint. - properties: - is_truncated: - description: Indicates whether the trace was truncated because its size exceeded the maximum response payload. - example: false - type: boolean - spans: - $ref: "#/components/schemas/APMTraceSpans" - required: - - is_truncated - - spans type: object - TraceData: - description: A trace resource document. + SyntheticsTestVersionHistoryResponse: + description: Response containing the paginated version history for a Synthetic test. properties: - attributes: - $ref: "#/components/schemas/TraceAttributes" - id: - description: The full 128-bit trace ID, encoded as a 32-character hexadecimal string. - example: "0000000000000000abc1230000000000" - type: string - type: - $ref: "#/components/schemas/TraceType" - required: - - id - - type - - attributes + data: + description: List of version change records. + items: + $ref: "#/components/schemas/SyntheticsTestVersionChangeData" + type: array + meta: + $ref: "#/components/schemas/SyntheticsTestVersionHistoryMeta" type: object - TraceResponse: - description: Response containing a single trace. + SyntheticsTestVersionResponse: + description: Response containing a specific version of a Synthetic test. properties: data: - $ref: "#/components/schemas/TraceData" - required: - - data + $ref: "#/components/schemas/SyntheticsTestVersionData" type: object - TraceType: - description: The type of the trace resource. The value is always `trace`. + SyntheticsTestVersionType: + default: version + description: Type of the version resource. enum: - - trace - example: trace + - version + example: version type: string x-enum-varnames: - - TRACE - Trigger: - description: "One of the triggers that can start the execution of a workflow." - oneOf: - - $ref: "#/components/schemas/AgentTriggerWrapper" - - $ref: "#/components/schemas/APITriggerWrapper" - - $ref: "#/components/schemas/AppTriggerWrapper" - - $ref: "#/components/schemas/CaseTriggerWrapper" - - $ref: "#/components/schemas/ChangeEventTriggerWrapper" - - $ref: "#/components/schemas/DatabaseMonitoringTriggerWrapper" - - $ref: "#/components/schemas/DatastoreTriggerWrapper" - - $ref: "#/components/schemas/DashboardTriggerWrapper" - - $ref: "#/components/schemas/FormTriggerWrapper" - - $ref: "#/components/schemas/GithubWebhookTriggerWrapper" - - $ref: "#/components/schemas/IncidentCreatedTriggerWrapper" - - $ref: "#/components/schemas/IncidentImpactCreatedTriggerWrapper" - - $ref: "#/components/schemas/IncidentImpactUpdatedTriggerWrapper" - - $ref: "#/components/schemas/IncidentPostmortemUpdatedTriggerWrapper" - - $ref: "#/components/schemas/IncidentResponderCreatedTriggerWrapper" - - $ref: "#/components/schemas/IncidentSavedTriggerWrapper" - - $ref: "#/components/schemas/IncidentScheduleTriggerWrapper" - - $ref: "#/components/schemas/IncidentTriggerWrapper" - - $ref: "#/components/schemas/MonitorTriggerWrapper" - - $ref: "#/components/schemas/NotebookTriggerWrapper" - - $ref: "#/components/schemas/OnCallTriggerWrapper" - - $ref: "#/components/schemas/ScheduleTriggerWrapper" - - $ref: "#/components/schemas/SecurityTriggerWrapper" - - $ref: "#/components/schemas/SelfServiceTriggerWrapper" - - $ref: "#/components/schemas/SlackTriggerWrapper" - - $ref: "#/components/schemas/SoftwareCatalogTriggerWrapper" - - $ref: "#/components/schemas/WorkflowTriggerWrapper" - TriggerAttributes: - anyOf: - - $ref: "#/components/schemas/MonitorAlertTrigger" - - $ref: "#/components/schemas/GeneralInvestigationTrigger" - description: The trigger definition for starting an investigation. + - VERSION + SyntheticsVariableParser: + description: Details of the parser to use for the global variable. example: - monitor_alert_trigger: - event_id: "1234567890123456789" - event_ts: 1700000000000 - monitor_id: 12345678 - type: monitor_alert_trigger - properties: - general_investigation: - $ref: "#/components/schemas/GeneralInvestigationAttributes" - monitor_alert_trigger: - $ref: "#/components/schemas/MonitorAlertTriggerAttributes" - type: - $ref: "#/components/schemas/TriggerType" - type: object - TriggerInvestigationRequest: - description: Request to trigger a new investigation. - properties: - data: - $ref: "#/components/schemas/TriggerInvestigationRequestData" - required: - - data - type: object - TriggerInvestigationRequestData: - description: Data for the trigger investigation request. + type: regex + value: .* properties: - attributes: - $ref: "#/components/schemas/TriggerInvestigationRequestDataAttributes" type: - $ref: "#/components/schemas/TriggerInvestigationRequestType" + $ref: "#/components/schemas/SyntheticsGlobalVariableParserType" + value: + description: Regex or JSON path used for the parser. Not used with type `raw`. + type: string required: - type - - attributes type: object - TriggerInvestigationRequestDataAttributes: - description: Attributes for the trigger investigation request. + TableResultV2: + description: A reference table resource containing its full configuration and state. + example: + data: + attributes: + created_by: 00000000-0000-0000-0000-000000000000 + description: example description + file_metadata: + access_details: + aws_detail: + aws_account_id: "123456789000" + aws_bucket_name: "my-bucket" + file_path: "path/to/file.csv" + sync_enabled: true + last_updated_by: 00000000-0000-0000-0000-000000000000 + row_count: 5 + schema: + fields: + - name: id + type: INT32 + - name: name + type: STRING + primary_keys: + - id + source: S3 + status: DONE + table_name: test_reference_table + tags: + - tag1 + - tag2 + updated_at: "2000-01-01T01:00:00+00:00" + id: 00000000-0000-0000-0000-000000000000 + type: reference_table properties: - trigger: - $ref: "#/components/schemas/TriggerAttributes" - required: - - trigger + data: + $ref: "#/components/schemas/TableResultV2Data" type: object - TriggerInvestigationRequestType: - description: The resource type for trigger investigation requests. - enum: - - trigger_investigation_request - example: trigger_investigation_request - type: string - x-enum-varnames: - - TRIGGER_INVESTIGATION_REQUEST - TriggerInvestigationResponse: - description: Response after triggering an investigation. + TableResultV2Array: + description: List of reference tables. + example: + data: + - attributes: + created_by: 00000000-0000-0000-0000-000000000000 + description: example description + file_metadata: + access_details: {} + error_message: "" + error_row_count: 0 + upload_id: 00000000-0000-0000-0000-000000000000 + last_updated_by: "" + row_count: 5 + schema: + fields: + - name: id + type: INT32 + - name: name + type: STRING + primary_keys: + - id + source: LOCAL_FILE + status: DONE + table_name: test_reference_table + tags: + - tag1 + - tag2 + updated_at: "2000-01-01T01:00:00+00:00" + id: 00000000-0000-0000-0000-000000000000 + type: reference_table + - attributes: + created_by: 00000000-0000-0000-0000-000000000000 + description: example description + file_metadata: + access_details: + aws_detail: + aws_account_id: test-account-id + aws_bucket_name: test-bucket + file_path: test_rt.csv + error_message: "" + error_row_count: 0 + sync_enabled: true + last_updated_by: 00000000-0000-0000-0000-000000000000 + row_count: 5 + schema: + fields: + - name: location + type: STRING + - name: file_name + type: STRING + primary_keys: + - location + source: S3 + status: DONE + table_name: test_reference_table_2 + tags: + - test_tag1 + - tag2 + - "3" + updated_at: "2000-01-01T01:00:00+00:00" + id: 00000000-0000-0000-0000-000000000000 + type: reference_table properties: data: - $ref: "#/components/schemas/TriggerInvestigationResponseData" + description: The reference tables. + items: + $ref: "#/components/schemas/TableResultV2Data" + type: array required: - data type: object - TriggerInvestigationResponseData: - description: Data for the trigger investigation response. + TableResultV2Data: + additionalProperties: false + description: The data object containing the reference table configuration and state. properties: attributes: - $ref: "#/components/schemas/TriggerInvestigationResponseDataAttributes" + $ref: "#/components/schemas/TableResultV2DataAttributes" id: - description: Unique identifier for the trigger response. - example: "f5e6a7b8-c9d0-1e2f-3a4b-5c6d7e8f9a0b" + description: Unique identifier for the reference table. type: string type: - $ref: "#/components/schemas/TriggerInvestigationResponseType" + $ref: "#/components/schemas/TableResultV2DataType" required: - - id - type - - attributes type: object - TriggerInvestigationResponseDataAttributes: - description: Attributes for the trigger investigation response. + TableResultV2DataAttributes: + description: Attributes that define the reference table's configuration and properties. properties: - investigation_id: - description: The ID of the investigation that was created. - example: "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d" + created_by: + description: UUID of the user who created the reference table. + example: "00000000-0000-0000-0000-000000000000" type: string - required: - - investigation_id - type: object - TriggerInvestigationResponseType: - description: The resource type for trigger investigation responses. - enum: - - trigger_investigation_response - example: trigger_investigation_response - type: string - x-enum-varnames: - - TRIGGER_INVESTIGATION_RESPONSE - TriggerRateLimit: - description: Defines a rate limit for a trigger. - properties: - count: - description: The `TriggerRateLimit` `count`. + description: + description: Optional text describing the purpose or contents of this reference table. + example: "example description" + type: string + file_metadata: + $ref: "#/components/schemas/TableResultV2DataAttributesFileMetadata" + last_updated_by: + description: UUID of the user who last updated the reference table. + example: "00000000-0000-0000-0000-000000000000" + type: string + row_count: + description: The number of successfully processed rows in the reference table. + example: 5 format: int64 type: integer - interval: - description: The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s - type: string + schema: + $ref: "#/components/schemas/TableResultV2DataAttributesSchema" + source: + $ref: "#/components/schemas/ReferenceTableSourceType" + status: + description: The processing status of the table. + example: "DONE" + type: string + table_name: + description: Unique name to identify this reference table. Used in enrichment processors and API calls. + example: "table_1" + type: string + tags: + description: Tags for organizing and filtering reference tables. + example: + - "tag_1" + - "tag_2" + items: + description: A tag associated with the reference table. + type: string + type: array + updated_at: + description: When the reference table was last updated, in ISO 8601 format. + example: "2000-01-01T01:00:00+00:00" + type: string type: object - TriggerSource: + TableResultV2DataAttributesFileMetadata: + additionalProperties: false description: |- - The type of security issues on which the rule applies. Notification rules based on security signals need to use the trigger source "security_signals", - while notification rules based on security vulnerabilities need to use the trigger source "security_findings". - enum: - - security_findings - - security_signals - example: security_findings - type: string - x-enum-varnames: - - SECURITY_FINDINGS - - SECURITY_SIGNALS - TriggerType: - description: The type of trigger for the investigation. - enum: - - monitor_alert_trigger - - general_investigation - example: monitor_alert_trigger - type: string - x-enum-varnames: - - MONITOR_ALERT_TRIGGER - - GENERAL_INVESTIGATION - TriggerWorkflowAutomationAction: - description: "Triggers a Workflow Automation." + Metadata specifying where and how to access the reference table's data file. + + For cloud storage tables (S3/GCS/Azure): + - sync_enabled and access_details will always be present + - error fields (error_message, error_row_count, error_type) are present only when errors occur + + For local file tables: + - error fields (error_message, error_row_count) are present only when errors occur + - sync_enabled, access_details are never present properties: - handle: - description: "The handle of the Workflow Automation to trigger." - example: my-workflow-handle + access_details: + $ref: "#/components/schemas/TableResultV2DataAttributesFileMetadataOneOfAccessDetails" + description: Cloud storage access configuration. Only present for cloud storage sources (S3, GCS, Azure). + error_message: + description: >- + The error message returned from the last operation (sync for cloud storage, upload for local file). type: string - type: - $ref: "#/components/schemas/TriggerWorkflowAutomationActionType" - required: - - type - - handle + error_row_count: + description: The number of rows that failed to process. + format: int64 + type: integer + error_type: + $ref: "#/components/schemas/TableResultV2DataAttributesFileMetadataCloudStorageErrorType" + description: >- + The type of error that occurred during file processing. Only applicable for cloud storage sources. + sync_enabled: + description: >- + Whether this table is synced automatically from cloud storage. Only applicable for cloud storage sources. + type: boolean + title: FileMetadataV2 type: object - TriggerWorkflowAutomationActionType: - default: workflow - description: "Indicates that the action triggers a Workflow Automation." + TableResultV2DataAttributesFileMetadataCloudStorageErrorType: + description: >- + The type of error that occurred during file processing. This field provides high-level error categories for easier troubleshooting and is only present when there are errors. enum: - - workflow - example: workflow + - TABLE_SCHEMA_ERROR + - FILE_FORMAT_ERROR + - CONFIGURATION_ERROR + - QUOTA_EXCEEDED + - CONFLICT_ERROR + - VALIDATION_ERROR + - STATE_ERROR + - OPERATION_ERROR + - SYSTEM_ERROR type: string x-enum-varnames: - - TRIGGER_WORKFLOW_AUTOMATION - TwilioAlertsLogsIntegrationDataflowRequest: - additionalProperties: false - description: >- - Twilio Alert resource logs, which detail the errors and warnings raised when Twilio makes a webhook request to your server or when your application calls the Twilio REST API. This is the one kind of data the integration collects by default. + - TABLE_SCHEMA_ERROR + - FILE_FORMAT_ERROR + - CONFIGURATION_ERROR + - QUOTA_EXCEEDED + - CONFLICT_ERROR + - VALIDATION_ERROR + - STATE_ERROR + - OPERATION_ERROR + - SYSTEM_ERROR + TableResultV2DataAttributesFileMetadataOneOfAccessDetails: + description: Cloud storage access configuration for the reference table data file. properties: - enabled: - description: Whether Datadog collects this data. Defaults to `true`; set to `false` to stop collection. - example: true - type: boolean + aws_detail: + $ref: "#/components/schemas/TableResultV2DataAttributesFileMetadataOneOfAccessDetailsAwsDetail" + azure_detail: + $ref: "#/components/schemas/TableResultV2DataAttributesFileMetadataOneOfAccessDetailsAzureDetail" + gcp_detail: + $ref: "#/components/schemas/TableResultV2DataAttributesFileMetadataOneOfAccessDetailsGcpDetail" type: object - TwilioAlertsLogsIntegrationDataflowResponse: - description: >- - Twilio Alert resource logs, which detail the errors and warnings raised when Twilio makes a webhook request to your server or when your application calls the Twilio REST API. + TableResultV2DataAttributesFileMetadataOneOfAccessDetailsAwsDetail: + description: Amazon Web Services S3 storage access configuration. properties: - enabled: - description: Whether Datadog collects this data. - example: true - type: boolean - status: - $ref: "#/components/schemas/IntegrationAccountDataflowStatus" + aws_account_id: + description: AWS account ID where the S3 bucket is located. + example: "123456789000" + type: string + aws_bucket_name: + description: S3 bucket containing the CSV file. + example: "example-data-bucket" + type: string + file_path: + description: The relative file path from the S3 bucket root to the CSV file. + example: "reference-tables/users.csv" + type: string type: object - TwilioCallSummariesLogsIntegrationDataflowRequest: - additionalProperties: false - description: >- - Twilio Call Summary resource logs, covering the metadata and performance of the calls made from your Twilio account. Requires Voice Insights Advanced Features to be enabled on the Twilio account; without it this dataflow collects no data. + x-oneOf-parent: + - AwsDetail + TableResultV2DataAttributesFileMetadataOneOfAccessDetailsAzureDetail: + description: Azure Blob Storage access configuration. properties: - enabled: - description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. - example: true - type: boolean + azure_client_id: + description: Azure service principal (application) client ID with permissions to read from the container. + example: "aaaaaaaa-1111-2222-3333-bbbbbbbbbbbb" + type: string + azure_container_name: + description: Azure Blob Storage container containing the CSV file. + example: "reference-data" + type: string + azure_storage_account_name: + description: Azure storage account where the container is located. + example: "examplestorageaccount" + type: string + azure_tenant_id: + description: Azure Active Directory tenant ID. + example: "cccccccc-4444-5555-6666-dddddddddddd" + type: string + file_path: + description: The relative file path from the Azure container root to the CSV file. + example: "tables/users.csv" + type: string type: object - TwilioCallSummariesLogsIntegrationDataflowResponse: - description: >- - Twilio Call Summary resource logs, covering the metadata and performance of the calls made from your Twilio account. Requires Voice Insights Advanced Features to be enabled on the Twilio account; without it this dataflow collects no data. + x-oneOf-parent: + - AzureDetail + TableResultV2DataAttributesFileMetadataOneOfAccessDetailsGcpDetail: + description: Google Cloud Platform storage access configuration. properties: - enabled: - description: Whether Datadog collects this data. - example: true - type: boolean - status: - $ref: "#/components/schemas/IntegrationAccountDataflowStatus" + file_path: + description: The relative file path from the GCS bucket root to the CSV file. + example: "data/reference_tables/users.csv" + type: string + gcp_bucket_name: + description: GCP bucket containing the CSV file. + example: "example-data-bucket" + type: string + gcp_project_id: + description: GCP project ID where the bucket is located. + example: "example-gcp-project-12345" + type: string + gcp_service_account_email: + description: Service account email with read permissions for the GCS bucket. + example: "example-service@example-gcp-project-12345.iam.gserviceaccount.com" + type: string type: object - TwilioCloudCostMetricsIntegrationDataflowRequest: - additionalProperties: false - description: >- - Your Twilio cost data, so that Twilio spend can be broken down and attributed in [Cloud Cost Management](https://docs.datadoghq.com/cloud_cost_management/). Cost data appears in Cloud Cost Management within 24 hours of enabling this dataflow. + x-oneOf-parent: + - GcpDetail + TableResultV2DataAttributesSchema: + description: Schema defining the structure and columns of the reference table. properties: - enabled: - description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. - example: true - type: boolean + fields: + description: The schema fields. Maximum of 200 columns. + items: + $ref: "#/components/schemas/TableResultV2DataAttributesSchemaFieldsItems" + maxItems: 200 + minItems: 1 + type: array + primary_keys: + description: >- + List of field names that serve as primary keys for the table. Only one primary key is supported, and it is used as an ID to retrieve rows. + example: + - "field_1" + items: + description: A field name used as a primary key. + type: string + type: array + required: + - fields + - primary_keys type: object - TwilioCloudCostMetricsIntegrationDataflowResponse: - description: >- - Your Twilio cost data, so that Twilio spend can be broken down and attributed in [Cloud Cost Management](https://docs.datadoghq.com/cloud_cost_management/). + TableResultV2DataAttributesSchemaFieldsItems: + description: A single field (column) in the reference table schema to be returned. properties: - enabled: - description: Whether Datadog collects this data. - example: true - type: boolean - status: - $ref: "#/components/schemas/IntegrationAccountDataflowStatus" + name: + description: The field name. + example: "field_1" + type: string + type: + $ref: "#/components/schemas/ReferenceTableSchemaFieldType" + required: + - name + - type type: object - TwilioEventsLogsIntegrationDataflowRequest: - additionalProperties: false - description: >- - Twilio Event resource logs, which record virtually every action taken in your Twilio account, such as provisioning a phone number, changing account security settings, or deleting a recording. Actions are recorded whether they came from the REST API, a user in the Twilio Console, or Twilio itself. [Cloud SIEM](https://docs.datadoghq.com/security/cloud_siem/) analyzes and correlates these logs to detect threats in real time. + TableResultV2DataType: + default: reference_table + description: Reference table resource type. + enum: + - reference_table + example: reference_table + type: string + x-enum-varnames: + - REFERENCE_TABLE + TableRowResourceArray: + description: List of rows from a reference table query, along with metadata about rows that were requested but not found. properties: - enabled: - description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. - example: true - type: boolean + data: + description: The rows. + items: + $ref: "#/components/schemas/TableRowResourceData" + type: array + meta: + $ref: "#/components/schemas/TableRowResourceArrayMeta" + required: + - data type: object - TwilioEventsLogsIntegrationDataflowResponse: - description: >- - Twilio Event resource logs, which record virtually every action taken in your Twilio account, such as provisioning a phone number, changing account security settings, or deleting a recording. Actions are recorded whether they came from the REST API, a user in the Twilio Console, or Twilio itself. [Cloud SIEM](https://docs.datadoghq.com/security/cloud_siem/) analyzes and correlates these logs to detect threats in real time. + TableRowResourceArrayMeta: + description: Metadata about the rows requested, including which ones were not found. properties: - enabled: - description: Whether Datadog collects this data. - example: true - type: boolean - status: - $ref: "#/components/schemas/IntegrationAccountDataflowStatus" + found_count: + description: Number of requested rows that were found and returned in `data`. + example: 1 + format: int64 + type: integer + not_found: + description: Row IDs from the request that do not exist in the reference table. Empty when every requested row was found. + example: + - row_id_2 + items: + description: Row identifier, corresponding to the primary key value. + type: string + type: array + requested_count: + description: Number of row IDs supplied in the `row_id` query parameter. + example: 2 + format: int64 + type: integer + required: + - requested_count + - found_count + - not_found type: object - TwilioIntegrationAccountAuthenticationRequest: - description: Authentication for creating the Twilio integration account. Exactly one method is set. - oneOf: - - $ref: "#/components/schemas/TwilioIntegrationAccountBasicAuthRequest" - TwilioIntegrationAccountAuthenticationResponse: - description: Authentication configured on the Twilio integration account. - oneOf: - - $ref: "#/components/schemas/TwilioIntegrationAccountBasicAuthResponse" - TwilioIntegrationAccountAuthenticationUpdate: - description: Authentication for updating the Twilio integration account. Exactly one method is set. - oneOf: - - $ref: "#/components/schemas/TwilioIntegrationAccountBasicAuthUpdate" - TwilioIntegrationAccountBasicAuthRequest: + TableRowResourceData: additionalProperties: false - description: Username and password authentication. + description: The data object containing the row column names and values. properties: - auth_type: - $ref: "#/components/schemas/TwilioIntegrationAccountBasicAuthType" - password: - description: Secret password or private key. - example: your-password + attributes: + $ref: "#/components/schemas/TableRowResourceDataAttributes" + id: + description: Row identifier, corresponding to the primary key value. type: string - writeOnly: true - username: - description: Non-secret username or public identifier for the credential pair. - example: datadog + type: + $ref: "#/components/schemas/TableRowResourceDataType" + required: + - type + type: object + TableRowResourceDataAttributes: + additionalProperties: false + description: Column values for this row in the reference table. + properties: + values: + description: Key-value pairs representing the row data, where keys are field names from the schema. + type: object + type: object + TableRowResourceDataType: + default: row + description: Row resource type. + enum: + - row + example: row + type: string + x-enum-varnames: + - ROW + TableRowResourceIdentifier: + description: Row resource containing a single row identifier. + properties: + id: + description: The primary key value that uniquely identifies the row to delete. + example: "primary_key_value" type: string + type: + $ref: "#/components/schemas/TableRowResourceDataType" required: - - auth_type - - username - - password + - type + - id type: object - TwilioIntegrationAccountBasicAuthResponse: - description: The basic authentication method and username configured on the account. + TagData: + description: A tag resource associated with an app. properties: - auth_type: - $ref: "#/components/schemas/TwilioIntegrationAccountBasicAuthType" - username: - description: Non-secret username or public identifier for the credential pair. - example: datadog + id: + description: The name of the tag. + example: production type: string + type: + $ref: "#/components/schemas/TagDataType" required: - - auth_type - - username + - id + - type type: object - TwilioIntegrationAccountBasicAuthType: - default: basic - description: The authentication method type. + TagDataType: + description: The resource type for a tag. enum: - - basic - example: basic + - tag + example: tag + minLength: 3 type: string x-enum-varnames: - - BASIC - TwilioIntegrationAccountBasicAuthUpdate: - additionalProperties: false - description: Username and password authentication. Only the fields provided are changed; omit `password` to keep the stored one. + - TAG + TagIndexingRuleAttributes: + description: Attributes of a tag indexing rule. properties: - auth_type: - $ref: "#/components/schemas/TwilioIntegrationAccountBasicAuthType" - password: - description: Secret password or private key. - example: your-password + created_at: + description: Timestamp when the rule was created. + example: "2024-01-15T12:00:00.000Z" + format: date-time + readOnly: true type: string - writeOnly: true - username: - description: Non-secret username or public identifier for the credential pair. - example: datadog + created_by_handle: + description: Handle of the user who created the rule. + example: user@datadoghq.com + readOnly: true type: string - required: - - auth_type + exclude_tags_mode: + description: >- + When true, the rule excludes the listed tags and indexes all others. When false (default), the rule includes only the listed tags. + example: false + type: boolean + ignored_metric_name_matches: + description: Metric name prefixes excluded from the rule's scope. + example: + - "dd.test.excluded.*" + items: + type: string + type: array + metric_name_matches: + description: Metric name prefixes (glob patterns) this rule applies to. + example: + - "dd.test.*" + items: + type: string + type: array + modified_at: + description: Timestamp when the rule was last modified. + example: "2024-01-15T12:00:00.000Z" + format: date-time + readOnly: true + type: string + modified_by_handle: + description: Handle of the user who last modified the rule. + example: user@datadoghq.com + readOnly: true + type: string + name: + description: Human-readable name for the rule. + example: my-indexing-rule + type: string + options: + $ref: "#/components/schemas/TagIndexingRuleOptions" + rule_order: + description: >- + Evaluation order within the org. Lower values are evaluated first. Assigned server-side on create (max+1); pass on update to change the rule's position. + example: 1 + format: int64 + readOnly: true + type: integer + tags: + description: Tag keys managed by this rule. + example: + - env + - service + items: + type: string + type: array type: object - TwilioIntegrationAccountCreateAttributes: - description: Writable attributes used to create a Twilio integration account. + TagIndexingRuleCreateAttributes: + description: Attributes for creating a tag indexing rule. properties: - authentication: - $ref: "#/components/schemas/TwilioIntegrationAccountAuthenticationRequest" - dataflows: - $ref: "#/components/schemas/TwilioIntegrationDataflowsRequest" + exclude_tags_mode: + description: >- + When true, the rule excludes the listed tags and indexes all others. When false (default), the rule includes only the listed tags. + example: false + type: boolean + ignored_metric_name_matches: + description: Metric name prefixes excluded from the rule's scope. + items: + type: string + type: array + metric_name_matches: + description: Metric name prefixes (glob patterns) this rule applies to. + example: + - "dd.test.*" + items: + type: string + type: array name: - description: Human-readable name of the Twilio integration account. - example: twilio-prod + description: Human-readable name for the rule. + example: my-indexing-rule type: string - settings: - $ref: "#/components/schemas/TwilioIntegrationAccountSettingsRequest" + options: + $ref: "#/components/schemas/TagIndexingRuleOptions" + tags: + description: Tag keys managed by this rule. + example: + - env + - service + items: + type: string + type: array required: - name - - authentication - - settings + - metric_name_matches type: object - TwilioIntegrationAccountCreateData: - description: Data envelope for creating a Twilio integration account. + TagIndexingRuleCreateData: + description: Data object for creating a tag indexing rule. properties: attributes: - $ref: "#/components/schemas/TwilioIntegrationAccountCreateAttributes" + $ref: "#/components/schemas/TagIndexingRuleCreateAttributes" type: - $ref: "#/components/schemas/IntegrationAccountType" + $ref: "#/components/schemas/TagIndexingRuleType" required: - type - attributes type: object - TwilioIntegrationAccountCreateRequest: - description: Request payload to create a Twilio integration account. - properties: - data: - $ref: "#/components/schemas/TwilioIntegrationAccountCreateData" - required: - - data - type: object - TwilioIntegrationAccountResponse: - description: Response payload for a single Twilio integration account. + TagIndexingRuleCreateRequest: + description: Request body for creating a tag indexing rule. properties: data: - $ref: "#/components/schemas/TwilioIntegrationAccountResponseData" + $ref: "#/components/schemas/TagIndexingRuleCreateData" required: - data type: object - TwilioIntegrationAccountResponseAttributes: - description: Attributes of a Twilio integration account returned in responses. - properties: - authentication: - $ref: "#/components/schemas/TwilioIntegrationAccountAuthenticationResponse" - dataflows: - $ref: "#/components/schemas/TwilioIntegrationDataflowsResponse" - name: - description: Human-readable name of the Twilio integration account. - example: twilio-prod - type: string - settings: - $ref: "#/components/schemas/TwilioIntegrationAccountSettingsResponse" - required: - - name - - settings - type: object - TwilioIntegrationAccountResponseData: - description: Data envelope of a Twilio integration account, including server-assigned identity. + TagIndexingRuleData: + description: A tag indexing rule resource object. properties: attributes: - $ref: "#/components/schemas/TwilioIntegrationAccountResponseAttributes" + $ref: "#/components/schemas/TagIndexingRuleAttributes" id: - description: Server-generated unique identifier of the Twilio integration account. - example: 953a0060-81ec-4221-aed4-d4733b59cd96 - readOnly: true + description: The unique identifier (UUID) of the tag indexing rule. + example: "00000000-0000-0000-0000-000000000001" type: string type: - $ref: "#/components/schemas/IntegrationAccountType" - required: - - id - - attributes - - type + $ref: "#/components/schemas/TagIndexingRuleType" type: object - TwilioIntegrationAccountSettingsRequest: - additionalProperties: false - description: Settings for creating the Twilio integration account. + TagIndexingRuleDynamicTags: + description: |- + Options for dynamic tag indexing applied per metric, such as tags filtered by query usage. + + Before a tag key is dropped by this rule, two grace period conditions must be met: + + 1. The metric must be submitted for at least as long as the selected window. + 2. A tag key must have been submitted for at least 15 days. + + Any metric or tag key that does not meet these conditions are excluded from this + indexing rule. The `exclude_not_*` fields require `exclude_tags_mode` to be set to `true`. properties: - account_sid: - description: Twilio Account SID that uniquely identifies your Twilio account. - example: ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx - type: string - censor_logs: - description: When enabled, Twilio phone numbers in the `to` field and SMS message bodies are censored for privacy. - example: true + exclude_not_queried_window_seconds: + description: >- + Tags that have not been queried within this window are excluded from indexing. Maximum of `7776000` (90 days). + example: 3600 + format: int64 + maximum: 7776000 + type: integer + exclude_not_used_in_assets: + description: >- + Tags not used in any dashboards, monitors, notebooks, or SLOs are excluded from indexing. + example: false type: boolean - required: - - account_sid type: object - TwilioIntegrationAccountSettingsResponse: - description: Settings configured on the Twilio integration account. + TagIndexingRuleExemptionAttributes: + description: Attributes of a tag indexing rule exemption. properties: - account_sid: - description: Twilio Account SID that uniquely identifies your Twilio account. - example: ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + created_at: + description: Timestamp when the exemption was created. + example: "2024-01-15T12:00:00.000Z" + format: date-time + readOnly: true type: string - censor_logs: - description: When enabled, Twilio phone numbers in the `to` field and SMS message bodies are censored for privacy. - example: true - type: boolean - required: - - account_sid - type: object - TwilioIntegrationAccountSettingsUpdate: - additionalProperties: false - description: Settings for updating the Twilio integration account. Only the fields provided are changed. - properties: - account_sid: - description: Twilio Account SID that uniquely identifies your Twilio account. - example: ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + created_by_handle: + description: Handle of the user who created the exemption. + example: user@datadoghq.com + readOnly: true + type: string + kind: + description: >- + Discriminates between an explicit exemption (`exemption`) and a pre-existing legacy tag configuration acting as an implicit exclusion (`legacy_tag_configuration`). + example: exemption + type: string + reason: + description: The reason the metric is exempt from tag indexing rules. + example: This metric has a pre-existing tag configuration. type: string - censor_logs: - description: When enabled, Twilio phone numbers in the `to` field and SMS message bodies are censored for privacy. - example: true - type: boolean type: object - TwilioIntegrationAccountUpdateAttributes: - description: >- - Writable attributes used to update a Twilio integration account. Every field is optional; only the fields provided are changed. When `dataflows` is provided, only the dataflow ids included in the request are modified; dataflows omitted from the map keep their current configuration. + TagIndexingRuleExemptionCreateAttributes: + description: Attributes for creating a tag indexing rule exemption. properties: - authentication: - $ref: "#/components/schemas/TwilioIntegrationAccountAuthenticationUpdate" - dataflows: - $ref: "#/components/schemas/TwilioIntegrationDataflowsRequest" - name: - description: Human-readable name of the Twilio integration account. - example: twilio-prod + reason: + description: The reason the metric is exempt from tag indexing rules. + example: This metric has a pre-existing tag configuration. type: string - settings: - $ref: "#/components/schemas/TwilioIntegrationAccountSettingsUpdate" + required: + - reason type: object - TwilioIntegrationAccountUpdateData: - description: Data envelope for updating a Twilio integration account. + TagIndexingRuleExemptionCreateData: + description: Data object for creating a tag indexing rule exemption. properties: attributes: - $ref: "#/components/schemas/TwilioIntegrationAccountUpdateAttributes" - id: - description: Unique identifier of the Twilio integration account to update. - example: 953a0060-81ec-4221-aed4-d4733b59cd96 - type: string + $ref: "#/components/schemas/TagIndexingRuleExemptionCreateAttributes" type: - $ref: "#/components/schemas/IntegrationAccountType" + $ref: "#/components/schemas/TagIndexingRuleExemptionType" required: - - id - type - attributes type: object - TwilioIntegrationAccountUpdateRequest: - description: Request payload to update a Twilio integration account. + TagIndexingRuleExemptionCreateRequest: + description: Request body for creating a tag indexing rule exemption. properties: data: - $ref: "#/components/schemas/TwilioIntegrationAccountUpdateData" + $ref: "#/components/schemas/TagIndexingRuleExemptionCreateData" required: - data type: object - TwilioIntegrationAccountsResponse: - description: Response payload for a list of Twilio integration accounts. + TagIndexingRuleExemptionData: + description: A tag indexing rule exemption resource object. properties: - data: - description: List of Twilio integration accounts. - items: - $ref: "#/components/schemas/TwilioIntegrationAccountResponseData" - type: array - required: - - data + attributes: + $ref: "#/components/schemas/TagIndexingRuleExemptionAttributes" + id: + description: The metric name, used as the resource ID. + example: dd.test.metric + type: string + type: + $ref: "#/components/schemas/TagIndexingRuleExemptionType" type: object - TwilioIntegrationDataflowsRequest: - additionalProperties: false - description: >- - Data Datadog collects from Twilio, keyed by dataflow id. Each dataflow turns on a distinct kind of collection: set `enabled` to start or stop it. Defaults listed on each dataflow apply when the account is created; on update, omitted fields keep their current values. Where a dataflow depends on a Twilio feature being enabled, that prerequisite is noted on the dataflow; a dataflow enabled without it is stored but collects no data. + TagIndexingRuleExemptionResponse: + description: Response containing a tag indexing rule exemption. properties: - twilio-alerts-logs: - $ref: "#/components/schemas/TwilioAlertsLogsIntegrationDataflowRequest" - twilio-call-summaries-logs: - $ref: "#/components/schemas/TwilioCallSummariesLogsIntegrationDataflowRequest" - twilio-cloud-cost-metrics: - $ref: "#/components/schemas/TwilioCloudCostMetricsIntegrationDataflowRequest" - twilio-events-logs: - $ref: "#/components/schemas/TwilioEventsLogsIntegrationDataflowRequest" - twilio-messages-logs: - $ref: "#/components/schemas/TwilioMessagesLogsIntegrationDataflowRequest" + data: + $ref: "#/components/schemas/TagIndexingRuleExemptionData" + readOnly: true type: object - TwilioIntegrationDataflowsResponse: - description: Data Datadog collects from Twilio, keyed by dataflow id. + TagIndexingRuleExemptionType: + default: tag_indexing_rule_exemptions + description: The tag indexing rule exemption resource type. + enum: + - tag_indexing_rule_exemptions + example: tag_indexing_rule_exemptions + type: string + x-enum-varnames: + - TAG_INDEXING_RULE_EXEMPTIONS + TagIndexingRuleMetricMatch: + description: Criteria for matching metrics based on query state. properties: - twilio-alerts-logs: - $ref: "#/components/schemas/TwilioAlertsLogsIntegrationDataflowResponse" - twilio-call-summaries-logs: - $ref: "#/components/schemas/TwilioCallSummariesLogsIntegrationDataflowResponse" - twilio-cloud-cost-metrics: - $ref: "#/components/schemas/TwilioCloudCostMetricsIntegrationDataflowResponse" - twilio-events-logs: - $ref: "#/components/schemas/TwilioEventsLogsIntegrationDataflowResponse" - twilio-messages-logs: - $ref: "#/components/schemas/TwilioMessagesLogsIntegrationDataflowResponse" + is_queried: + description: Match metrics that are being queried. + type: boolean + not_queried: + description: Match metrics that are not being queried. + type: boolean + not_used_in_assets: + description: Match metrics not used in any dashboards or monitors. + type: boolean + queried_window_seconds: + description: Window in seconds for evaluating query state. + example: 3600 + format: int64 + type: integer + used_in_assets: + description: Match metrics used in dashboards or monitors. + type: boolean type: object - TwilioMessagesLogsIntegrationDataflowRequest: - additionalProperties: false - description: >- - Twilio Message resource logs for inbound and outbound messages, used to track delivery and troubleshoot message errors. A log is produced when you send a message through the REST API, when Twilio executes a TwiML instruction, and when someone messages one of your Twilio numbers or channel addresses. Message bodies are never collected. + TagIndexingRuleOptions: + description: Versioned configuration options for a tag indexing rule. properties: - enabled: - description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. - example: true - type: boolean + data: + $ref: "#/components/schemas/TagIndexingRuleOptionsData" + version: + description: Options schema version. Only `1` is supported. + example: 1 + format: int64 + type: integer type: object - TwilioMessagesLogsIntegrationDataflowResponse: - description: >- - Twilio Message resource logs for inbound and outbound messages, used to track delivery and troubleshoot message errors. A log is produced when you send a message through the REST API, when Twilio executes a TwiML instruction, and when someone messages one of your Twilio numbers or channel addresses. Message bodies are never collected. + TagIndexingRuleOptionsData: + description: Data payload for tag indexing rule options. properties: - enabled: - description: Whether Datadog collects this data. + dynamic_tags: + $ref: "#/components/schemas/TagIndexingRuleDynamicTags" + manage_preexisting_metrics: + description: >- + When true, the rule applies to metrics that were ingested before the rule was created. example: true type: boolean - status: - $ref: "#/components/schemas/IntegrationAccountDataflowStatus" + metric_match: + $ref: "#/components/schemas/TagIndexingRuleMetricMatch" + override_previous_rules: + description: >- + When true, this rule's tag list overrides tags configured by earlier rules for the same metric. When false (default), tags from all matching rules are combined. + example: false + type: boolean type: object - UCConfigPair: - description: The definition of `UCConfigPair` object. - example: - data: - attributes: - configs: - - account_id: 1234abcd-1234-abcd-1234-1234abcd1234 - client_id: 1234abcd-1234-abcd-1234-1234abcd1234 - created_at: "2023-01-01T12:00:00.000000" - dataset_type: actual - error_messages: [] - export_name: dd-actual-export - export_path: dd-export-path - id: "123456789123" - months: 36 - scope: /subscriptions/1234abcd-1234-abcd-1234-1234abcd1234 - status: active - status_updated_at: "2023-01-01T12:00:00.000000" - storage_account: dd-storage-account - storage_container: dd-storage-container - updated_at: "2023-01-01T12:00:00.000000" - id: "123456789123" - type: azure_uc_configs + TagIndexingRuleOrderAttributes: + description: Attributes for the reorder operation. properties: - data: - $ref: "#/components/schemas/UCConfigPairData" + rule_ids: + description: >- + Ordered list of tag indexing rule UUIDs. The server assigns rule_order 1, 2, … matching position in this list. + example: + - "00000000-0000-0000-0000-000000000001" + - "00000000-0000-0000-0000-000000000002" + items: + type: string + type: array type: object - UCConfigPairData: - description: The definition of `UCConfigPairData` object. + TagIndexingRuleOrderData: + description: Data object for the reorder operation. properties: attributes: - $ref: "#/components/schemas/UCConfigPairDataAttributes" - id: - description: The `UCConfigPairData` `id`. - type: string + $ref: "#/components/schemas/TagIndexingRuleOrderAttributes" type: - $ref: "#/components/schemas/UCConfigPairDataType" + $ref: "#/components/schemas/TagIndexingRuleType" required: - type + - attributes type: object - UCConfigPairDataAttributes: - description: The definition of `UCConfigPairDataAttributes` object. + TagIndexingRuleOrderRequest: + description: Request body for reordering tag indexing rules. properties: - configs: - description: The `attributes` `configs`. - items: - $ref: "#/components/schemas/UCConfigPairDataAttributesConfigsItems" - type: array + data: + $ref: "#/components/schemas/TagIndexingRuleOrderData" + required: + - data type: object - UCConfigPairDataAttributesConfigsItems: - description: The definition of `UCConfigPairDataAttributesConfigsItems` object. + TagIndexingRuleResponse: + description: Response containing a single tag indexing rule. properties: - account_id: - description: The `items` `account_id`. - type: string - client_id: - description: The `items` `client_id`. - type: string - created_at: - description: The `items` `created_at`. - type: string - dataset_type: - description: The `items` `dataset_type`. - type: string - error_messages: - description: The `items` `error_messages`. + data: + $ref: "#/components/schemas/TagIndexingRuleData" + readOnly: true + type: object + TagIndexingRuleType: + default: tag_indexing_rules + description: The tag indexing rule resource type. + enum: + - tag_indexing_rules + example: tag_indexing_rules + type: string + x-enum-varnames: + - TAG_INDEXING_RULES + TagIndexingRuleUpdateAttributes: + description: Attributes for updating a tag indexing rule. All fields are optional; omitted fields are unchanged. + properties: + exclude_tags_mode: + description: >- + When true, the rule excludes the listed tags and indexes all others. + type: boolean + ignored_metric_name_matches: + description: Metric name prefixes excluded from the rule's scope. items: - description: An error message string. type: string - nullable: true type: array - export_name: - description: The `items` `export_name`. - type: string - export_path: - description: The `items` `export_path`. - type: string - id: - description: The `items` `id`. + metric_name_matches: + description: Metric name prefixes (glob patterns) this rule applies to. + example: + - "dd.test.*" + items: + type: string + type: array + name: + description: Human-readable name for the rule. + example: my-indexing-rule type: string - months: - description: The `items` `months`. + options: + $ref: "#/components/schemas/TagIndexingRuleOptions" + rule_order: + description: >- + Desired evaluation order. Returns 409 if the value conflicts with another rule; use POST /api/v2/metrics/tag-indexing-rules/order for atomic re-sequencing. + example: 2 format: int64 type: integer - scope: - description: The `items` `scope`. - type: string - status: - description: The `items` `status`. - type: string - status_updated_at: - description: The `items` `status_updated_at`. - type: string - storage_account: - description: The `items` `storage_account`. - type: string - storage_container: - description: The `items` `storage_container`. - type: string - updated_at: - description: The `items` `updated_at`. - type: string - type: object - UCConfigPairDataType: - default: azure_uc_configs - description: Azure UC configs resource type. - enum: - - azure_uc_configs - example: azure_uc_configs - type: string - x-enum-varnames: - - AZURE_UC_CONFIGS - UnassignSeatsUserRequest: - description: The request body for unassigning seats from users for a product code. - properties: - data: - $ref: "#/components/schemas/UnassignSeatsUserRequestData" - description: The data for the unassign seats user request. + tags: + description: Tag keys managed by this rule. + example: + - env + - service + items: + type: string + type: array type: object - UnassignSeatsUserRequestData: - description: The request data object containing attributes for unassigning seats from users. + TagIndexingRuleUpdateData: + description: Data object for updating a tag indexing rule. properties: attributes: - $ref: "#/components/schemas/UnassignSeatsUserRequestDataAttributes" - description: The attributes of the unassign seats user request. - id: - description: The ID of the unassign seats user request. - type: string + $ref: "#/components/schemas/TagIndexingRuleUpdateAttributes" type: - $ref: "#/components/schemas/SeatAssignmentsDataType" - description: The type of the unassign seats user request. + $ref: "#/components/schemas/TagIndexingRuleType" required: - type - - attributes type: object - UnassignSeatsUserRequestDataAttributes: - description: Attributes specifying the product and users from whom seats will be unassigned. + TagIndexingRuleUpdateRequest: + description: Request body for updating a tag indexing rule. properties: - product_code: - description: The product code for which to unassign seats. - example: "" - type: string - user_uuids: - description: The list of user IDs to unassign seats from. - example: - - "" - items: - description: A user UUID identifying a user to unassign seats from. - type: string - type: array + data: + $ref: "#/components/schemas/TagIndexingRuleUpdateData" required: - - product_code - - user_uuids - type: object - Unit: - description: Object containing the metric unit family, scale factor, name, and short name. - nullable: true - properties: - family: - description: Unit family, allows for conversion between units of the same family, for scaling. - example: time - type: string - name: - description: Unit name - example: minute - type: string - plural: - description: Plural form of the unit name. - example: minutes - type: string - scale_factor: - description: Factor for scaling between units of the same family. - example: 60.0 - format: double - type: number - short_name: - description: Abbreviation of the unit. - example: min - type: string + - data type: object - UnitCostCreateRequest: - description: A request to create a unit cost. + TagIndexingRulesResponse: + description: Response containing a page of tag indexing rules. properties: data: - $ref: "#/components/schemas/UnitCostCreateRequestData" - required: - - data + description: Array of tag indexing rule objects. + items: + $ref: "#/components/schemas/TagIndexingRuleData" + type: array + links: + $ref: "#/components/schemas/MetricsListResponseLinks" + meta: + $ref: "#/components/schemas/TagIndexingRulesResponseMeta" + readOnly: true type: object - UnitCostCreateRequestData: - description: The data object of a unit cost create request. + TagIndexingRulesResponseMeta: + description: Pagination metadata for a list of tag indexing rules. properties: - attributes: - $ref: "#/components/schemas/UnitCostRequestAttributes" - type: - $ref: "#/components/schemas/UnitCostType" - required: - - type - - attributes + total: + description: Total number of tag indexing rules in the org. + example: 5 + format: int64 + type: integer type: object - UnitCostDataAttributesResponse: - description: The attributes of a unit cost. + TagRuleAttributes: + description: The attributes of a tag rule resource. properties: created_at: - description: The time the unit cost was created. - example: "2026-09-01T18:46:15.933716Z" + description: The RFC 3339 timestamp at which the rule was created. + example: "2026-05-21T22:11:06.108696Z" format: date-time type: string created_by: - description: The UUID of the user who created the unit cost. - example: 36ea1610-8866-4bd3-bb6d-9bb9fc87cad2 - format: uuid + description: The identifier of the user who created the rule. + example: "test-user" type: string - denominator_query: - $ref: "#/components/schemas/UnitCostQueryDefinition" - denominator_type: - description: |- - The data source of the denominator queries, or `multisource` when the denominator - queries span more than one data source. - example: metrics + deleted_at: + description: The RFC 3339 timestamp at which the rule was soft-deleted. `null` if the rule has not been deleted. Only present when `include_deleted=true` is requested. + format: date-time + nullable: true type: string - description: - description: The description of the unit cost. Omitted when the unit cost has no description. - example: Amortized cloud spend divided by the number of active users. + deleted_by: + description: The identifier of the user who soft-deleted the rule. `null` if the rule has not been deleted. nullable: true type: string + enabled: + description: Whether the rule is currently enforced. + example: true + type: boolean + modified_at: + description: The RFC 3339 timestamp at which the rule was last modified. + example: "2026-05-21T22:11:06.108696Z" + format: date-time + type: string + modified_by: + description: The identifier of the user who last modified the rule. + example: "test-user" + type: string name: - description: The name of the unit cost. - example: Cloud cost per active user + description: Human-readable name for the tag rule. + example: "Service tag must be one of api or web" type: string - numerator_query: - $ref: "#/components/schemas/UnitCostQueryDefinition" - org_id: - description: The ID of the organization the unit cost belongs to. - example: 321813 + negated: + description: When `true`, the rule matches tag values that do NOT match any of the supplied patterns. + example: false + type: boolean + required: + description: When `true`, telemetry without this tag is treated as a violation. + example: true + type: boolean + rule_type: + $ref: "#/components/schemas/TagRuleType" + scope: + description: The scope the rule applies within. + example: "env" + type: string + source: + $ref: "#/components/schemas/TagRuleSource" + tag_key: + description: The tag key that the rule governs. + example: "service" + type: string + tag_value_patterns: + description: The patterns that valid values for the tag key must match. + example: + - "api" + - "web" + items: + description: A pattern that valid tag values must match. + type: string + type: array + version: + description: A monotonically increasing version counter that is incremented on each update. + example: 1 format: int64 type: integer - unit_label: - description: The label describing the denominator unit. - example: user + required: + - name + - source + - scope + - tag_key + - tag_value_patterns + - negated + - required + - enabled + - rule_type + - version + - created_at + - created_by + - modified_at + - modified_by + type: object + TagRuleCreateAttributes: + description: Attributes that can be supplied when creating a tag rule. + properties: + enabled: + description: Whether the rule is currently enforced. Defaults to `true` for newly created rules. + example: true + type: boolean + name: + description: Human-readable name for the tag rule. + example: "Service tag must be one of api or web" type: string - updated_at: - description: The time the unit cost was last updated. - example: "2026-09-01T19:52:08.820536Z" - format: date-time + negated: + description: When `true`, the rule matches tag values that do NOT match any of the supplied patterns. Defaults to `false`. + example: false + type: boolean + required: + description: When `true`, telemetry without this tag is treated as a violation. Defaults to `false`. + example: true + type: boolean + rule_type: + $ref: "#/components/schemas/TagRuleCreateType" + scope: + description: |- + The scope the rule applies within. Typically an environment, team, or + organization-level identifier used to limit where the rule is enforced. + example: "env" type: string - updated_by: - description: The UUID of the user who last updated the unit cost. - example: 13cc0adf-2595-479e-b448-5051c180dddb - format: uuid + source: + $ref: "#/components/schemas/TagRuleSource" + tag_key: + description: The tag key that the rule governs (for example, `service`). + example: "service" type: string + tag_value_patterns: + description: |- + One or more patterns that valid values for the tag key must match. At least one + pattern is required. + example: + - "api" + - "web" + items: + description: A pattern that valid tag values must match. + type: string + minItems: 1 + type: array required: - - org_id - name - - numerator_query - - denominator_query - - denominator_type - - unit_label - - created_by - - updated_by - - created_at - - updated_at + - source + - scope + - tag_key + - tag_value_patterns + - rule_type type: object - UnitCostDataResponse: - description: The data object of a unit cost response. + TagRuleCreateData: + description: Data object for creating a tag rule. properties: attributes: - $ref: "#/components/schemas/UnitCostDataAttributesResponse" - id: - description: The UUID of the unit cost. - example: 64aecd58-e355-4f07-9c3a-56ff6bda6cd8 - format: uuid - type: string + $ref: "#/components/schemas/TagRuleCreateAttributes" type: - $ref: "#/components/schemas/UnitCostType" + $ref: "#/components/schemas/TagRuleResourceType" required: - - id - type - attributes type: object - UnitCostDataResponseArray: - description: The list of unit costs. - items: - $ref: "#/components/schemas/UnitCostDataResponse" - type: array - UnitCostFormula: - additionalProperties: {} - description: |- - A formula combining the named queries into a single result, passed through to the - query engine unchanged. - example: - formula: numerator - type: object - UnitCostFormulaArray: - description: The list of formulas applied to the queries for this side of the ratio. - example: - - formula: numerator - items: - $ref: "#/components/schemas/UnitCostFormula" - type: array - UnitCostQuery: - additionalProperties: {} - description: |- - A single query contributing to a unit cost numerator or denominator. The accepted fields - depend on the data source the query targets, for example `cloud_cost`, `metrics`, `dora`, - or `ci_pipelines`, and are passed through to the query engine unchanged. - example: - data_source: cloud_cost - name: numerator - query: "sum:aws.cost.net.amortized.shared.resources.allocated{*}.rollup(sum, daily)" - type: object - UnitCostQueryArray: - description: The list of queries evaluated for this side of the ratio. - example: - - data_source: cloud_cost - name: numerator - query: "sum:aws.cost.net.amortized.shared.resources.allocated{*}.rollup(sum, daily)" - items: - $ref: "#/components/schemas/UnitCostQuery" - type: array - UnitCostQueryDefinition: - additionalProperties: {} - description: A timeseries object containing `queries` and `formulas` arrays. + TagRuleCreateRequest: + description: Payload for creating a new tag rule. properties: - formulas: - $ref: "#/components/schemas/UnitCostFormulaArray" - queries: - $ref: "#/components/schemas/UnitCostQueryArray" + data: + $ref: "#/components/schemas/TagRuleCreateData" required: - - queries - - formulas + - data type: object - UnitCostRequestAttributes: - description: The attributes of a unit cost create or replace request. + TagRuleCreateType: + description: |- + The rule type allowed when creating a tag rule. Only `surfacing` is accepted at + creation time. + enum: + - surfacing + example: "surfacing" + type: string + x-enum-varnames: + - SURFACING + TagRuleData: + description: A tag rule resource. properties: - denominator_query: - $ref: "#/components/schemas/UnitCostQueryDefinition" - description: - description: An optional description of the unit cost. At most 2000 characters. - example: Amortized cloud spend divided by the number of active users. - maxLength: 2000 - nullable: true - type: string - name: - description: The name of the unit cost. At most 200 characters. - example: Cloud cost per active user - maxLength: 200 - type: string - numerator_query: - $ref: "#/components/schemas/UnitCostQueryDefinition" - unit_label: - description: The label describing the denominator unit, for example `user`. At most 100 characters. - example: user - maxLength: 100 + attributes: + $ref: "#/components/schemas/TagRuleAttributes" + id: + description: The unique identifier of the tag rule. + example: "123" type: string + relationships: + $ref: "#/components/schemas/TagRuleRelationships" + type: + $ref: "#/components/schemas/TagRuleResourceType" required: - - name - - numerator_query - - denominator_query - - unit_label + - type + - id + - attributes type: object - UnitCostResponse: - description: A response containing a single unit cost. + TagRuleDataArray: + description: An array of tag rule data objects. + items: + $ref: "#/components/schemas/TagRuleData" + type: array + TagRuleInclude: + description: A related resource to include alongside a tag rule in the response. Currently the only supported value is `score`. + enum: + - score + example: "score" + type: string + x-enum-varnames: + - SCORE + TagRuleIncludedResources: + description: Related resources fetched alongside the primary tag rules. Populated when an `include` query parameter is supplied. + items: + $ref: "#/components/schemas/TagRuleScoreData" + type: array + TagRuleRelationships: + description: Related resources for a tag rule. Only present when the corresponding `include` query parameter is supplied. properties: - data: - $ref: "#/components/schemas/UnitCostDataResponse" - required: - - data + score: + $ref: "#/components/schemas/TagRuleScoreRelationship" type: object - UnitCostType: - default: unit_cost - description: The JSON:API resource type for a unit cost. + TagRuleResourceType: + description: JSON:API resource type for a tag rule. enum: - - unit_cost - example: unit_cost + - tag_rule + example: "tag_rule" type: string x-enum-varnames: - - UNIT_COST - UnitCostUpdateRequest: - description: A request to replace a unit cost. + - TAG_RULE + TagRuleResponse: + description: A single tag rule. properties: data: - $ref: "#/components/schemas/UnitCostUpdateRequestData" + $ref: "#/components/schemas/TagRuleData" + included: + $ref: "#/components/schemas/TagRuleIncludedResources" required: - data type: object - UnitCostUpdateRequestData: - description: The data object of a unit cost replace request. + TagRuleScoreAttributes: + description: Attributes of a tag rule compliance score. + properties: + score: + description: |- + The compliance score for the rule over the requested time window, as a percentage + between 0 and 100. `null` indicates that no relevant telemetry was found. + example: 80 + format: double + nullable: true + type: number + ts_end: + description: End of the time window the score was computed over, as a Unix timestamp in milliseconds. + example: 1779401466097 + format: int64 + type: integer + ts_start: + description: Start of the time window the score was computed over, as a Unix timestamp in milliseconds. + example: 1779315066097 + format: int64 + type: integer + version: + description: The version of the tag rule that the score was computed against. + example: 1 + format: int64 + type: integer + required: + - score + - ts_start + - ts_end + - version + type: object + TagRuleScoreData: + description: A compliance score resource for a tag rule. properties: attributes: - $ref: "#/components/schemas/UnitCostRequestAttributes" + $ref: "#/components/schemas/TagRuleScoreAttributes" id: - description: The UUID of the unit cost being replaced. Must match the `unit_cost_id` path parameter. - example: 64aecd58-e355-4f07-9c3a-56ff6bda6cd8 - format: uuid + description: The unique identifier of the compliance score resource. + example: "123-v1-1779315066097-1779401466097" type: string type: - $ref: "#/components/schemas/UnitCostType" + $ref: "#/components/schemas/TagRuleScoreResourceType" required: - - id - type + - id - attributes type: object - UnitCostsResponse: - description: A response containing a list of unit costs. + TagRuleScoreRelationship: + description: A relationship to the compliance score resource for this rule. properties: data: - $ref: "#/components/schemas/UnitCostDataResponseArray" + $ref: "#/components/schemas/TagRuleScoreRelationshipData" required: - data type: object - UnpublishAppResponse: - description: The response object after an app is successfully unpublished. + TagRuleScoreRelationshipData: + description: Identifier of the related compliance score resource. properties: - data: - $ref: "#/components/schemas/Deployment" + id: + description: The unique identifier of the related compliance score resource. + example: "123-v1-1779315066097-1779401466097" + type: string + type: + $ref: "#/components/schemas/TagRuleScoreResourceType" + required: + - type + - id type: object - UpdateActionConnectionRequest: - description: Request used to update an action connection. + TagRuleScoreResourceType: + description: JSON:API resource type for a tag rule compliance score. + enum: + - tag_rule_score + example: "tag_rule_score" + type: string + x-enum-varnames: + - TAG_RULE_SCORE + TagRuleScoreResponse: + description: A tag rule compliance score. properties: data: - $ref: "#/components/schemas/ActionConnectionDataUpdate" + $ref: "#/components/schemas/TagRuleScoreData" required: - data type: object - UpdateActionConnectionResponse: - description: The response for an updated connection. - properties: - data: - $ref: "#/components/schemas/ActionConnectionData" - type: object - UpdateAppFavoriteRequest: - description: A request to add or remove an app from the current user's favorites. - example: - data: - attributes: - favorite: true - type: favorites + TagRuleSource: + description: The telemetry source that a tag rule applies to. + enum: + - logs + - spans + - metrics + - rum + - feed + example: "logs" + type: string + x-enum-varnames: + - LOGS + - SPANS + - METRICS + - RUM + - FEED + TagRuleType: + description: |- + How the rule is enforced. `blocking` rejects telemetry that violates the rule. + `surfacing` only highlights non-compliant telemetry without blocking it. + enum: + - blocking + - surfacing + example: "surfacing" + type: string + x-enum-varnames: + - BLOCKING + - SURFACING + TagRuleUpdateAttributes: + description: |- + Mutable attributes of a tag rule. Each field is optional; omitting a field leaves its + current value unchanged. The `source` of a rule cannot be changed. properties: - data: - $ref: "#/components/schemas/UpdateAppFavoriteRequestData" + enabled: + description: Whether the rule is currently enforced. + type: boolean + name: + description: Human-readable name for the tag rule. + type: string + negated: + description: When `true`, the rule matches tag values that do NOT match any of the supplied patterns. + type: boolean + required: + description: When `true`, telemetry without this tag is treated as a violation. + type: boolean + rule_type: + $ref: "#/components/schemas/TagRuleType" + scope: + description: The scope the rule applies within. + type: string + tag_key: + description: The tag key that the rule governs. + type: string + tag_value_patterns: + description: One or more patterns that valid values for the tag key must match. + items: + description: A pattern that valid tag values must match. + type: string + type: array type: object - UpdateAppFavoriteRequestData: - description: Data for updating an app's favorite status. + TagRuleUpdateData: + description: Data object for updating a tag rule. properties: attributes: - $ref: "#/components/schemas/UpdateAppFavoriteRequestDataAttributes" + $ref: "#/components/schemas/TagRuleUpdateAttributes" + id: + description: The unique identifier of the tag rule being updated. + example: "123" + type: string type: - $ref: "#/components/schemas/AppFavoriteType" - type: object - UpdateAppFavoriteRequestDataAttributes: - description: Attributes for updating an app's favorite status. - properties: - favorite: - description: Whether the app should be marked as a favorite for the current user. - example: true - type: boolean + $ref: "#/components/schemas/TagRuleResourceType" required: - - favorite + - type + - id type: object - UpdateAppProtectionLevelRequest: - description: A request to update an app's publication protection level. - example: - data: - attributes: - protectionLevel: approval_required - type: protectionLevel + TagRuleUpdateRequest: + description: Payload for updating an existing tag rule. Only the supplied fields are modified. properties: data: - $ref: "#/components/schemas/UpdateAppProtectionLevelRequestData" - type: object - UpdateAppProtectionLevelRequestData: - description: Data for updating an app's publication protection level. - properties: - attributes: - $ref: "#/components/schemas/UpdateAppProtectionLevelRequestDataAttributes" - type: - $ref: "#/components/schemas/AppProtectionLevelType" - type: object - UpdateAppProtectionLevelRequestDataAttributes: - description: Attributes for updating an app's publication protection level. - properties: - protectionLevel: - $ref: "#/components/schemas/AppProtectionLevel" + $ref: "#/components/schemas/TagRuleUpdateData" required: - - protectionLevel + - data type: object - UpdateAppRequest: - description: A request object for updating an existing app. - example: - data: - attributes: - components: - - events: [] - name: grid0 - properties: - children: - - events: [] - name: gridCell0 - properties: - children: - - events: [] - name: calloutValue0 - properties: - isDisabled: false - isLoading: false - isVisible: true - label: CPU Usage - size: sm - style: vivid_yellow - unit: kB - value: "42" - type: calloutValue - isVisible: "true" - layout: - default: - height: 8 - width: 2 - x: 0 - "y": 0 - type: gridCell - type: grid - description: "This is a simple example app" - name: "Example App" - queries: [] - rootInstanceName: grid0 - id: "9e20cbaf-68da-45a6-9ccf-54193ac29fa5" - type: appDefinitions + TagRulesListResponse: + description: A page of tag rules. properties: data: - $ref: "#/components/schemas/UpdateAppRequestData" - type: object - UpdateAppRequestData: - description: The data object containing the new app definition. Any fields not included in the request remain unchanged. - properties: - attributes: - $ref: "#/components/schemas/UpdateAppRequestDataAttributes" - id: - description: The ID of the app to update. The app ID must match the ID in the URL path. - example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 - format: uuid - type: string - type: - $ref: "#/components/schemas/AppDefinitionType" + $ref: "#/components/schemas/TagRuleDataArray" + included: + $ref: "#/components/schemas/TagRuleIncludedResources" required: - - type + - data type: object - UpdateAppRequestDataAttributes: - description: App definition attributes to be updated, such as name, description, and components. + TagsEventAttribute: + description: Array of tags associated with your event. + example: ["team:A"] + items: + description: Tag associated with your event. + type: string + type: array + TargetingRule: + description: Targeting rule details. properties: - components: - description: The new UI components that make up the app. If this field is set, all existing components are replaced with the new components under this field. + conditions: + description: Conditions evaluated by this targeting rule. items: - $ref: "#/components/schemas/ComponentGrid" + $ref: "#/components/schemas/Condition" type: array - description: - description: The new human-readable description for the app. + created_at: + description: The timestamp when the targeting rule was created. + example: "2024-01-01T12:00:00Z" + format: date-time type: string - name: - description: The new name of the app. + id: + description: The unique identifier of the targeting rule. + example: "550e8400-e29b-41d4-a716-446655440060" + format: uuid type: string - queries: - description: The new array of queries, such as external actions and state variables, that the app uses. If this field is set, all existing queries are replaced with the new queries under this field. - items: - $ref: "#/components/schemas/Query" - type: array - rootInstanceName: - description: The new name of the root component of the app. This must be a `grid` component that contains all other components. + updated_at: + description: The timestamp when the targeting rule was last updated. + example: "2024-01-01T12:00:00Z" + format: date-time type: string - tags: - description: The new list of tags for the app, which can be used to filter apps. If this field is set, any existing tags not included in the request are removed. - example: - - "service:webshop-backend" - - "team:webshop" - items: - description: An individual tag for the app. - type: string - type: array + required: + - id + - conditions + - created_at + - updated_at type: object - UpdateAppResponse: - description: The response object after an app is successfully updated. + TargetingRuleRequest: + description: Targeting rule request payload. properties: - data: - $ref: "#/components/schemas/UpdateAppResponseData" - included: - description: Data on the version of the app that was published. + conditions: + description: Conditions that must match for this rule. items: - $ref: "#/components/schemas/Deployment" + $ref: "#/components/schemas/ConditionRequest" + minItems: 1 type: array - meta: - $ref: "#/components/schemas/AppMeta" - relationship: - $ref: "#/components/schemas/AppRelationship" + required: + - conditions type: object - UpdateAppResponseData: - description: The data object containing the updated app definition. + Targets: + description: |- + List of recipients to notify when a notification rule is triggered. Many different target types are supported, + such as email addresses, Slack channels, and PagerDuty services. + The appropriate integrations need to be properly configured to send notifications to the specified targets. + example: ["@john.doe@email.com"] + items: + description: Recipients to notify. + type: string + type: array + Team: + description: A team properties: attributes: - $ref: "#/components/schemas/UpdateAppResponseDataAttributes" + $ref: "#/components/schemas/TeamAttributes" id: - description: The ID of the updated app. - example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 - format: uuid + description: The team's identifier + example: aeadc05e-98a8-11ec-ac2c-da7ad0900001 type: string + relationships: + $ref: "#/components/schemas/TeamRelationships" type: - $ref: "#/components/schemas/AppDefinitionType" + $ref: "#/components/schemas/TeamType" required: + - attributes - id - type - - attributes type: object - UpdateAppResponseDataAttributes: - description: The updated app definition attributes, such as name, description, and components. + TeamAttributes: + description: Team attributes properties: - components: - description: The UI components that make up the app. - items: - $ref: "#/components/schemas/ComponentGrid" - type: array + avatar: + description: Unicode representation of the avatar for the team, limited to a single grapheme + example: "🥑" + nullable: true + type: string + banner: + description: Banner selection for the team + format: int64 + nullable: true + type: integer + created_at: + description: Creation date of the team + format: date-time + type: string description: - description: The human-readable description for the app. + description: Free-form markdown description/content for the team's homepage + nullable: true type: string - favorite: - description: Whether the app is marked as a favorite by the current user. - type: boolean - name: - description: The name of the app. + handle: + description: The team's identifier + example: example-team + maxLength: 195 type: string - queries: - description: An array of queries, such as external actions and state variables, that the app uses. + hidden_modules: + description: Collection of hidden modules for the team items: - $ref: "#/components/schemas/Query" + description: String identifier of the module + type: string + nullable: true type: array - rootInstanceName: - description: The name of the root component of the app. This must be a `grid` component that contains all other components. + is_managed: + description: Whether the team is managed from an external source + type: boolean + link_count: + description: The number of links belonging to the team + format: int32 + maximum: 2147483647 + readOnly: true + type: integer + modified_at: + description: Modification date of the team + format: date-time type: string - tags: - description: A list of tags for the app, which can be used to filter apps. - example: - - "service:webshop-backend" - - "team:webshop" + name: + description: The name of the team + example: Example Team + maxLength: 200 + type: string + summary: + description: A brief summary of the team, derived from the `description` + maxLength: 120 + nullable: true + type: string + user_count: + description: The number of users belonging to the team + format: int32 + maximum: 2147483647 + readOnly: true + type: integer + visible_modules: + description: Collection of visible modules for the team items: - description: An individual tag for the app. + description: String identifier of the module type: string + nullable: true type: array + required: + - handle + - name type: object - UpdateAppSelfServiceRequest: - description: A request to enable or disable self-service for an app. - example: - data: - attributes: - selfService: true - type: selfService - properties: - data: - $ref: "#/components/schemas/UpdateAppSelfServiceRequestData" - type: object - UpdateAppSelfServiceRequestData: - description: Data for updating an app's self-service status. + TeamConnection: + description: A relationship between a Datadog team and a team from another external system. properties: attributes: - $ref: "#/components/schemas/UpdateAppSelfServiceRequestDataAttributes" + $ref: "#/components/schemas/TeamConnectionAttributes" + id: + description: The unique identifier of the team connection. + example: "12345678-1234-5678-9abc-123456789012" + type: string + relationships: + $ref: "#/components/schemas/TeamConnectionRelationships" type: - $ref: "#/components/schemas/AppSelfServiceType" - type: object - UpdateAppSelfServiceRequestDataAttributes: - description: Attributes for updating an app's self-service status. - properties: - selfService: - description: Whether the app is enabled for self-service. - example: true - type: boolean + $ref: "#/components/schemas/TeamConnectionType" required: - - selfService + - id + - type type: object - UpdateAppTagsRequest: - description: A request to replace the tags on an app. - example: - data: - attributes: - tags: - - team:platform - - service:ops - type: tags + TeamConnectionAttributes: + description: Attributes of the team connection. properties: - data: - $ref: "#/components/schemas/UpdateAppTagsRequestData" + managed_by: + description: The entity that manages this team connection. + example: "github_sync" + type: string + source: + description: The name of the external source. + example: "github" + type: string type: object - UpdateAppTagsRequestData: - description: Data for replacing an app's tags. + TeamConnectionCreateData: + description: Data for creating a team connection. properties: attributes: - $ref: "#/components/schemas/UpdateAppTagsRequestDataAttributes" + $ref: "#/components/schemas/TeamConnectionAttributes" + relationships: + $ref: "#/components/schemas/TeamConnectionRelationships" type: - $ref: "#/components/schemas/AppTagsType" + $ref: "#/components/schemas/TeamConnectionType" + required: + - type type: object - UpdateAppTagsRequestDataAttributes: - description: Attributes for replacing an app's tags. + TeamConnectionCreateRequest: + description: Request for creating team connections. properties: - tags: - description: The full list of tags that should be set on the app. Existing tags not present in this list are removed. - example: - - team:platform - - service:ops + data: + description: Array of team connections to create. items: - type: string + $ref: "#/components/schemas/TeamConnectionCreateData" type: array required: - - tags + - data type: object - UpdateAppVersionNameRequest: - description: A request to assign a human-readable name to a specific app version. - example: - data: - attributes: - name: v1.2.0 - bug fix release - type: versionNames + TeamConnectionDeleteRequest: + description: Request for deleting team connections. properties: data: - $ref: "#/components/schemas/UpdateAppVersionNameRequestData" + description: Array of team connection IDs to delete. + items: + $ref: "#/components/schemas/TeamConnectionDeleteRequestDataItem" + type: array + required: + - data type: object - UpdateAppVersionNameRequestData: - description: Data for naming a specific app version. + TeamConnectionDeleteRequestDataItem: + description: A collection of connection ids to delete. properties: - attributes: - $ref: "#/components/schemas/UpdateAppVersionNameRequestDataAttributes" + id: + description: The unique identifier of the team connection to delete. + example: "12345678-1234-5678-9abc-123456789012" + type: string type: - $ref: "#/components/schemas/AppVersionNameType" + $ref: "#/components/schemas/TeamConnectionType" + required: + - id + - type type: object - UpdateAppVersionNameRequestDataAttributes: - description: Attributes for naming a specific app version. + TeamConnectionRelationships: + description: Relationships of the team connection. properties: - name: - description: The name to assign to the app version. - example: v1.2.0 - bug fix release - type: string - required: - - name + connected_team: + $ref: "#/components/schemas/ConnectedTeamRef" + team: + $ref: "#/components/schemas/TeamRef" type: object - UpdateAppsDatastoreItemRequest: - description: Request to update specific fields on an existing datastore item. + TeamConnectionType: + default: "team_connection" + description: Team connection resource type. + enum: + - team_connection + example: "team_connection" + type: string + x-enum-varnames: + - TEAM_CONNECTION + TeamConnectionsResponse: + description: Response containing information about multiple team connections. properties: data: - $ref: "#/components/schemas/UpdateAppsDatastoreItemRequestData" + description: Array of team connections. + items: + $ref: "#/components/schemas/TeamConnection" + type: array + meta: + $ref: "#/components/schemas/ConnectionsResponseMeta" type: object - UpdateAppsDatastoreItemRequestData: - description: Data wrapper containing the item identifier and the changes to apply during the update operation. + TeamCreate: + description: Team create properties: attributes: - $ref: "#/components/schemas/UpdateAppsDatastoreItemRequestDataAttributes" - id: - description: The unique identifier of the datastore item. - type: string + $ref: "#/components/schemas/TeamCreateAttributes" + relationships: + $ref: "#/components/schemas/TeamCreateRelationships" type: - $ref: "#/components/schemas/UpdateAppsDatastoreItemRequestDataType" + $ref: "#/components/schemas/TeamType" required: + - attributes - type type: object - UpdateAppsDatastoreItemRequestDataAttributes: - description: Attributes for updating a datastore item, including the item key and changes to apply. + TeamCreateAttributes: + description: Team creation attributes properties: - id: - description: The unique identifier of the item being updated. + avatar: + description: Unicode representation of the avatar for the team, limited to a single grapheme + example: "🥑" + nullable: true type: string - item_changes: - $ref: "#/components/schemas/UpdateAppsDatastoreItemRequestDataAttributesItemChanges" - item_key: - description: The primary key that identifies the item to update. Cannot exceed 256 characters. - example: "" - maxLength: 256 - type: string - required: - - item_changes - - item_key - type: object - UpdateAppsDatastoreItemRequestDataAttributesItemChanges: - description: Changes to apply to a datastore item using set operations. - properties: - ops_set: - additionalProperties: {} - description: Set operation that contains key-value pairs to set on the datastore item. - type: object - type: object - UpdateAppsDatastoreItemRequestDataType: - default: items - description: The resource type for datastore items. - enum: - - items - example: items - type: string - x-enum-varnames: - - ITEMS - UpdateAppsDatastoreRequest: - description: Request to update a datastore's configuration such as its name or description. - properties: - data: - $ref: "#/components/schemas/UpdateAppsDatastoreRequestData" - type: object - UpdateAppsDatastoreRequestData: - description: Data wrapper containing the datastore identifier and the attributes to update. - properties: - attributes: - $ref: "#/components/schemas/UpdateAppsDatastoreRequestDataAttributes" - id: - description: The unique identifier of the datastore to update. - type: string - type: - $ref: "#/components/schemas/DatastoreDataType" - required: - - type - type: object - UpdateAppsDatastoreRequestDataAttributes: - description: Attributes that can be updated on a datastore. - properties: - description: - description: A human-readable description about the datastore. - type: string - name: - description: The display name of the datastore. - type: string - type: object - UpdateCampaignRequest: - description: Request to update a campaign. - properties: - data: - $ref: "#/components/schemas/UpdateCampaignRequestData" - required: - - data - type: object - UpdateCampaignRequestAttributes: - description: Attributes for updating a campaign. - properties: + banner: + description: Banner selection for the team + format: int64 + nullable: true + type: integer description: - description: The description of the campaign. - example: Campaign to improve security posture for Q1 2024. - type: string - due_date: - description: The due date of the campaign. - example: "2024-03-31T23:59:59Z" - format: date-time - type: string - entity_scope: - description: Entity scope query to filter entities for this campaign. - example: kind:service AND team:platform - type: string - guidance: - description: Guidance for the campaign. - example: Please ensure all services pass the security requirements. + description: Free-form markdown description/content for the team's homepage type: string - key: - description: The unique key for the campaign. - example: q1-security-2024 + handle: + description: The team's identifier + example: example-team + maxLength: 195 type: string + hidden_modules: + description: Collection of hidden modules for the team + items: + description: String identifier of the module + type: string + type: array name: - description: The name of the campaign. - example: Q1 Security Campaign - type: string - owner_id: - description: The UUID of the campaign owner. - example: 550e8400-e29b-41d4-a716-446655440000 + description: The name of the team + example: Example Team + maxLength: 200 type: string - rule_ids: - description: Array of rule IDs associated with this campaign. - example: ["q8MQxk8TCqrHnWkx", "r9NRyl9UDrsIoXly"] + visible_modules: + description: Collection of visible modules for the team items: - description: The unique ID of a scorecard rule. + description: String identifier of the module type: string type: array - start_date: - description: The start date of the campaign. - example: "2024-01-01T00:00:00Z" - format: date-time - type: string - status: - description: The status of the campaign. - example: in_progress - type: string required: + - handle - name - - owner_id - - status - - start_date - - rule_ids type: object - UpdateCampaignRequestData: - description: Data for updating a campaign. + TeamCreateRelationships: + description: Relationships formed with the team on creation properties: - attributes: - $ref: "#/components/schemas/UpdateCampaignRequestAttributes" - type: - $ref: "#/components/schemas/CampaignType" - required: - - type - - attributes + users: + $ref: "#/components/schemas/RelationshipToUsers" type: object - UpdateConnectionRequest: - description: Request body for updating an existing data source connection by adding, modifying, or removing fields. - example: - data: - attributes: - fields_to_add: - - description: Net Promoter Score from customer surveys - display_name: NPS Score - groups: - - Satisfaction - - Metrics - id: nps_score - source_name: net_promoter_score - type: number - fields_to_delete: - - old_revenue_field - fields_to_update: - - field_id: lifetime_value - updated_display_name: Customer Lifetime Value (`USD`) - updated_groups: - - Financial - - Metrics - id: crm-integration - type: connection_id + TeamCreateRequest: + description: Request to create a team properties: data: - $ref: "#/components/schemas/UpdateConnectionRequestData" + $ref: "#/components/schemas/TeamCreate" + required: + - data type: object - UpdateConnectionRequestData: - description: The data object containing the resource identifier and attributes for updating an existing connection. + TeamHierarchyLink: + description: Team hierarchy link properties: attributes: - $ref: "#/components/schemas/UpdateConnectionRequestDataAttributes" + $ref: "#/components/schemas/TeamHierarchyLinkAttributes" id: - description: The unique identifier of the connection to update. - example: "" + description: The team hierarchy link's identifier + example: b8626d7e-cedd-11eb-abf5-da7ad0900001 type: string + relationships: + $ref: "#/components/schemas/TeamHierarchyLinkRelationships" type: - $ref: "#/components/schemas/UpdateConnectionRequestDataType" + $ref: "#/components/schemas/TeamHierarchyLinkType" required: - - type + - attributes - id + - type type: object - UpdateConnectionRequestDataAttributes: - description: Attributes specifying the field modifications to apply to an existing connection. - properties: - fields_to_add: - description: New fields to add to the connection from the data source. - items: - $ref: "#/components/schemas/CreateConnectionRequestDataAttributesFieldsItems" - type: array - fields_to_delete: - description: Identifiers of existing fields to remove from the connection. - items: - description: The identifier of a field to delete from the connection. - type: string - type: array - fields_to_update: - description: Existing fields with updated metadata to apply to the connection. - items: - $ref: "#/components/schemas/UpdateConnectionRequestDataAttributesFieldsToUpdateItems" - type: array - type: object - UpdateConnectionRequestDataAttributesFieldsToUpdateItems: - description: Specification for updating an existing field in a connection, including which field to modify and the new values. + TeamHierarchyLinkAttributes: + description: Team hierarchy link attributes properties: - field_id: - description: The identifier of the existing field to update. + created_at: + description: Timestamp when the team hierarchy link was created example: "" + format: date-time type: string - updated_description: - description: The new description to set for the field. - type: string - updated_display_name: - description: The new human-readable display name to set for the field. - type: string - updated_field_id: - description: The new identifier to assign to the field, if renaming it. + provisioned_by: + description: The provisioner of the team hierarchy link + example: "system" type: string - updated_groups: - description: The updated list of group labels to associate with the field. - items: - description: A group label name for categorizing the field. - type: string - type: array required: - - field_id + - provisioned_by + - created_at type: object - UpdateConnectionRequestDataType: - default: connection_id - description: Connection id resource type. - enum: - - connection_id - example: connection_id - type: string - x-enum-varnames: - - CONNECTION_ID - UpdateCustomFrameworkRequest: - description: Request object to update a custom framework. + TeamHierarchyLinkCreate: + description: Data provided when creating a team hierarchy link properties: - data: - $ref: "#/components/schemas/CustomFrameworkData" + relationships: + $ref: "#/components/schemas/TeamHierarchyLinkCreateRelationships" + type: + $ref: "#/components/schemas/TeamHierarchyLinkType" required: - - data + - relationships + - type type: object - UpdateCustomFrameworkResponse: - description: Response object to update a custom framework. + TeamHierarchyLinkCreateRelationships: + description: The related teams that will be connected by the team hierarchy link properties: - data: - $ref: "#/components/schemas/FrameworkHandleAndVersionResponseData" + parent_team: + $ref: "#/components/schemas/TeamHierarchyLinkCreateTeamRelationship" + sub_team: + $ref: "#/components/schemas/TeamHierarchyLinkCreateTeamRelationship" required: - - data + - parent_team + - sub_team type: object - UpdateDeploymentGateParams: - description: Parameters for updating a deployment gate. + TeamHierarchyLinkCreateRequest: + description: Request to create a team hierarchy link properties: data: - $ref: "#/components/schemas/UpdateDeploymentGateParamsData" + $ref: "#/components/schemas/TeamHierarchyLinkCreate" required: - data type: object - UpdateDeploymentGateParamsData: - description: Parameters for updating a deployment gate. + TeamHierarchyLinkCreateTeam: + description: This schema defines the attributes about each team that has to be provided when creating a team hierarchy link properties: - attributes: - $ref: "#/components/schemas/UpdateDeploymentGateParamsDataAttributes" id: - description: Unique identifier of the deployment gate. - example: "12345678-1234-1234-1234-123456789012" + description: The team's identifier + example: 692e8073-12c4-4c71-8408-5090bd44c9c8 type: string type: - $ref: "#/components/schemas/DeploymentGateDataType" + $ref: "#/components/schemas/TeamType" required: - - type - id - - attributes + - type type: object - UpdateDeploymentGateParamsDataAttributes: - description: Attributes for updating a deployment gate. + TeamHierarchyLinkCreateTeamRelationship: + description: Data about each team that will be connected by the team hierarchy link properties: - dry_run: - description: Whether to run in dry-run mode. - example: false - type: boolean + data: + $ref: "#/components/schemas/TeamHierarchyLinkCreateTeam" required: - - dry_run + - data type: object - UpdateDeploymentRuleParams: - description: Parameters for updating a deployment rule. + TeamHierarchyLinkRelationships: + description: Team hierarchy link relationships properties: - data: - $ref: "#/components/schemas/UpdateDeploymentRuleParamsData" + parent_team: + $ref: "#/components/schemas/TeamHierarchyLinkTeamRelationship" + sub_team: + $ref: "#/components/schemas/TeamHierarchyLinkTeamRelationship" required: - - data + - parent_team + - sub_team type: object - UpdateDeploymentRuleParamsData: - description: Parameters for updating a deployment rule. + TeamHierarchyLinkResponse: + description: Team hierarchy link response + properties: + data: + $ref: "#/components/schemas/TeamHierarchyLink" + included: + description: Included teams + items: + $ref: "#/components/schemas/TeamHierarchyLinkTeam" + type: array + links: + $ref: "#/components/schemas/TeamsHierarchyLinksResponseLinks" + type: object + TeamHierarchyLinkTeam: + description: Team hierarchy links connect different teams. This represents team objects that are connected by the team hierarchy link. properties: attributes: - $ref: "#/components/schemas/UpdateDeploymentRuleParamsDataAttributes" + $ref: "#/components/schemas/TeamHierarchyLinkTeamAttributes" + id: + description: The team's identifier + example: 692e8073-12c4-4c71-8408-5090bd44c9c8 + type: string type: - $ref: "#/components/schemas/DeploymentRuleDataType" + $ref: "#/components/schemas/TeamType" required: + - id - type - - attributes type: object - UpdateDeploymentRuleParamsDataAttributes: - description: Parameters for updating a deployment rule. + TeamHierarchyLinkTeamAttributes: + description: Team hierarchy links connect different teams. This represents attributes from teams that are connected by the team hierarchy link. properties: - dry_run: - description: Whether to run this rule in dry-run mode. - example: false + avatar: + description: The team's avatar + nullable: true + type: string + banner: + description: The team's banner + format: int64 + type: integer + handle: + description: The team's handle + example: team-handle + type: string + is_managed: + description: Whether the team is managed type: boolean + is_open_membership: + description: Whether the team has open membership + type: boolean + link_count: + description: The number of links for the team + format: int64 + type: integer name: - description: The name of the deployment rule. - example: "Updated deployment rule" + description: The team's name + example: Team Name type: string - options: - $ref: "#/components/schemas/DeploymentRulesOptions" + summary: + description: The team's summary + nullable: true + type: string + user_count: + description: The number of users in the team + format: int64 + type: integer required: - - dry_run + - handle - name - - options - type: object - UpdateEnvironmentAttributes: - description: Attributes for updating an environment. - properties: - is_production: - description: Indicates whether this is a production environment. - example: false - type: boolean - name: - description: The name of the environment. - example: "Environment XYZ789" - type: string - queries: - description: List of queries to define the environment scope. - example: ["staging", "test"] - items: - description: A query string used to match the environment scope. - type: string - minItems: 1 - type: array - require_feature_flag_approval: - description: Indicates whether feature flag changes require approval in this environment. - example: true - type: boolean type: object - UpdateEnvironmentData: - description: Data for updating an environment. + TeamHierarchyLinkTeamRelationship: + description: Team hierarchy link team relationship properties: - attributes: - $ref: "#/components/schemas/UpdateEnvironmentAttributes" - type: - $ref: "#/components/schemas/UpdateEnvironmentDataType" + data: + $ref: "#/components/schemas/TeamHierarchyLinkTeam" required: - - type - - attributes + - data type: object - UpdateEnvironmentDataType: - description: The resource type. + TeamHierarchyLinkType: + default: team_hierarchy_links + description: Team hierarchy link type enum: - - "environments" - example: "environments" + - team_hierarchy_links + example: team_hierarchy_links type: string x-enum-varnames: - - ENVIRONMENTS - UpdateEnvironmentRequest: - description: Request to update an environment. + - TEAM_HIERARCHY_LINKS + TeamHierarchyLinksResponse: + description: Team hierarchy links response properties: data: - $ref: "#/components/schemas/UpdateEnvironmentData" + description: Team hierarchy links response data + items: + $ref: "#/components/schemas/TeamHierarchyLink" + type: array + included: + description: Included teams + items: + $ref: "#/components/schemas/TeamHierarchyLinkTeam" + type: array + links: + $ref: "#/components/schemas/TeamsHierarchyLinksResponseLinks" + meta: + $ref: "#/components/schemas/TeamsHierarchyLinksResponseMeta" + type: object + TeamIncluded: + description: Included resources related to the team + oneOf: + - $ref: "#/components/schemas/User" + - $ref: "#/components/schemas/TeamLink" + - $ref: "#/components/schemas/UserTeamPermission" + TeamLink: + description: Team link + properties: + attributes: + $ref: "#/components/schemas/TeamLinkAttributes" + id: + description: The team link's identifier + example: b8626d7e-cedd-11eb-abf5-da7ad0900001 + type: string + type: + $ref: "#/components/schemas/TeamLinkType" required: - - data + - attributes + - id + - type type: object - UpdateFeatureFlagAttributes: - description: Attributes for updating a feature flag. + TeamLinkAttributes: + description: Team link attributes properties: - description: - description: The description of the feature flag. - example: "Updated description for feature flag XYZ789" + label: + description: The link's label + example: Link label + maxLength: 256 type: string - json_schema: - description: JSON schema for validation when value_type is JSON. - example: '{"type": "object", "properties": {"enabled": {"type": "boolean"}}}' - nullable: true + position: + description: The link's position, used to sort links for the team + format: int32 + maximum: 2147483647 + type: integer + team_id: + description: ID of the team the link is associated with + readOnly: true type: string - name: - description: The name of the feature flag. - example: "Updated Feature Flag XYZ789" + url: + description: The URL for the link + example: "https://example.com" type: string + required: + - label + - url type: object - UpdateFeatureFlagData: - description: Data for updating a feature flag. + TeamLinkCreate: + description: Team link create properties: attributes: - $ref: "#/components/schemas/UpdateFeatureFlagAttributes" + $ref: "#/components/schemas/TeamLinkAttributes" type: - $ref: "#/components/schemas/UpdateFeatureFlagDataType" + $ref: "#/components/schemas/TeamLinkType" required: - - type - attributes + - type type: object - UpdateFeatureFlagDataType: - description: The resource type. - enum: - - "feature-flags" - example: "feature-flags" - type: string - x-enum-varnames: - - FEATURE_FLAGS - UpdateFeatureFlagRequest: - description: Request to update a feature flag. + TeamLinkCreateRequest: + description: Team link create request properties: data: - $ref: "#/components/schemas/UpdateFeatureFlagData" + $ref: "#/components/schemas/TeamLinkCreate" required: - data type: object - UpdateFlakyTestsRequest: - description: Request to update the state of multiple flaky tests. + TeamLinkResponse: + description: Team link response properties: data: - $ref: "#/components/schemas/UpdateFlakyTestsRequestData" - required: - - data + $ref: "#/components/schemas/TeamLink" type: object - UpdateFlakyTestsRequestAttributes: - description: Attributes for updating flaky test states. + TeamLinkType: + default: team_links + description: Team link type + enum: + - team_links + example: team_links + type: string + x-enum-varnames: + - TEAM_LINKS + TeamLinksResponse: + description: Team links response properties: - tests: - description: List of flaky tests to update. + data: + description: Team links response data items: - $ref: "#/components/schemas/UpdateFlakyTestsRequestTest" + $ref: "#/components/schemas/TeamLink" type: array - required: - - tests type: object - UpdateFlakyTestsRequestData: - description: The JSON:API data for updating flaky test states. + TeamNotificationRule: + description: Team notification rule properties: attributes: - $ref: "#/components/schemas/UpdateFlakyTestsRequestAttributes" - type: - $ref: "#/components/schemas/UpdateFlakyTestsRequestDataType" - required: - - type - - attributes - type: object - UpdateFlakyTestsRequestDataType: - description: The definition of `UpdateFlakyTestsRequestDataType` object. - enum: - - update_flaky_test_state_request - example: update_flaky_test_state_request - type: string - x-enum-varnames: - - UPDATE_FLAKY_TEST_STATE_REQUEST - UpdateFlakyTestsRequestTest: - description: Details of what tests to update and their new attributes. - properties: + $ref: "#/components/schemas/TeamNotificationRuleAttributes" id: - description: |- - The ID of the flaky test. This is the same ID returned by the Search flaky tests endpoint and is the - value of the `@test.fingerprint_fqn` facet on test events. You can find it by searching on - `@test.fingerprint_fqn` in the Test Optimization Explorer, or by filtering the Search flaky tests - endpoint with the `fingerprint_fqn` key. - example: 4eb1887a8adb1847 + description: The identifier of the team notification rule + example: b8626d7e-cedd-11eb-abf5-da7ad0900001 type: string - new_state: - $ref: "#/components/schemas/UpdateFlakyTestsRequestTestNewState" + type: + $ref: "#/components/schemas/TeamNotificationRuleType" required: - - id - - new_state + - attributes + - type type: object - UpdateFlakyTestsRequestTestNewState: - description: The new state to set for the flaky test. - enum: - - active - - quarantined - - disabled - - fixed - example: active - type: string - x-enum-varnames: - - ACTIVE - - QUARANTINED - - DISABLED - - FIXED - UpdateFlakyTestsResponse: - description: Response object for updating flaky test states. + TeamNotificationRuleAttributes: + description: Team notification rule attributes properties: - data: - $ref: "#/components/schemas/UpdateFlakyTestsResponseData" + email: + $ref: "#/components/schemas/TeamNotificationRuleAttributesEmail" + ms_teams: + $ref: "#/components/schemas/TeamNotificationRuleAttributesMsTeams" + pagerduty: + $ref: "#/components/schemas/TeamNotificationRuleAttributesPagerduty" + servicenow: + $ref: "#/components/schemas/TeamNotificationRuleAttributesServiceNow" + slack: + $ref: "#/components/schemas/TeamNotificationRuleAttributesSlack" type: object - UpdateFlakyTestsResponseAttributes: - description: Attributes for the update flaky test state response. + TeamNotificationRuleAttributesEmail: + description: Email notification settings for the team properties: - has_errors: - description: "`True` if any errors occurred during the update operations. `False` if all tests succeeded to be updated." - example: true + enabled: + description: Flag indicating email notification type: boolean - results: - description: Results of the update operation for each test. - items: - $ref: "#/components/schemas/UpdateFlakyTestsResponseResult" - type: array - required: - - has_errors - - results + recipient_email: + description: >- + Email address to notify. When omitted and email notifications are enabled, notifications are sent to all team members. + type: string type: object - UpdateFlakyTestsResponseData: - description: Summary of the update operations. Tells whether a test succeeded or failed to be updated. + TeamNotificationRuleAttributesMsTeams: + description: MS Teams notification settings for the team properties: - attributes: - $ref: "#/components/schemas/UpdateFlakyTestsResponseAttributes" - id: - description: The ID of the response. + connector_name: + description: Handle for MS Teams type: string - type: - $ref: "#/components/schemas/UpdateFlakyTestsResponseDataType" type: object - UpdateFlakyTestsResponseDataType: - description: The definition of `UpdateFlakyTestsResponseDataType` object. - enum: - - update_flaky_test_state_response - type: string - x-enum-varnames: - - UPDATE_FLAKY_TEST_STATE_RESPONSE - UpdateFlakyTestsResponseResult: - description: Result of updating a single flaky test state. + TeamNotificationRuleAttributesPagerduty: + description: PagerDuty notification settings for the team properties: - error: - description: Error message if the update failed. - type: string - id: - description: |- - The ID of the flaky test from the request. This is the value of the `@test.fingerprint_fqn` facet - on test events, the same ID accepted by the update request and returned by the Search flaky tests - endpoint. - example: 4eb1887a8adb1847 + service_name: + description: Service name for PagerDuty type: string - success: - description: "`True` if the update was successful, `False` if there were any errors." - example: false - type: boolean - required: - - id - - success type: object - UpdateFormData: - description: The data for updating a form. + TeamNotificationRuleAttributesServiceNow: + description: ServiceNow notification settings for the team. properties: - attributes: - $ref: "#/components/schemas/UpdateFormDataAttributes" - id: - description: The ID of the form. - example: 22f6006a-2302-4926-9396-d2dfcf7b0b34 - format: uuid - type: string - type: - $ref: "#/components/schemas/FormType" - required: - - type - - attributes + templates: + description: ServiceNow template handle names to use for notifications. + items: + type: string + type: array type: object - UpdateFormDataAttributes: - description: The attributes for updating a form. + TeamNotificationRuleAttributesSlack: + description: Slack notification settings for the team properties: - form_update: - $ref: "#/components/schemas/FormUpdateAttributes" - required: - - form_update + channel: + description: Channel for Slack notification + type: string + workspace: + description: Workspace for Slack notification + type: string type: object - UpdateFormRequest: - description: A request to update a form. + TeamNotificationRuleRequest: + description: Request to create or update a team notification rule properties: data: - $ref: "#/components/schemas/UpdateFormData" + $ref: "#/components/schemas/TeamNotificationRule" required: - data type: object - UpdateOnCallNotificationRuleRequest: - description: A top-level wrapper for updating a notification rule for a user - example: + TeamNotificationRuleResponse: + description: Team notification rule response + properties: data: - attributes: - "category": "high_urgency" - channel_settings: - method: "sms" - type: "phone" - "delay_minutes": 1 - id: 2462ace1-49e2-aab1-xc4f-29cc4ae1105n7 - relationships: - channel: - data: - id: 1562fab3-a8c2-49e2-8f3a-28dcda2405e2 - type: notification_channels - type: notification_rules + $ref: "#/components/schemas/TeamNotificationRule" + type: object + TeamNotificationRuleType: + default: team_notification_rules + description: Team notification rule type + enum: + - team_notification_rules + example: team_notification_rules + type: string + x-enum-varnames: + - TEAM_NOTIFICATION_RULES + TeamNotificationRulesResponse: + description: Team notification rules response properties: data: - $ref: "#/components/schemas/UpdateOnCallNotificationRuleRequestData" - required: - - data + description: Team notification rules response data + items: + $ref: "#/components/schemas/TeamNotificationRule" + type: array + meta: + $ref: "#/components/schemas/TeamNotificationRulesResponseMeta" type: object - UpdateOnCallNotificationRuleRequestAttributes: - description: Attributes for creating or modifying an on-call notification rule. + TeamNotificationRulesResponseMeta: + description: Metadata that is included in the response when querying the team notification rules properties: - category: - $ref: "#/components/schemas/OnCallNotificationRuleCategory" - channel_settings: - $ref: "#/components/schemas/OnCallNotificationRuleChannelSettings" - description: Configuration for the associated channel, if necessary + page: + $ref: "#/components/schemas/TeamNotificationRulesResponseMetaPage" + type: object + TeamNotificationRulesResponseMetaPage: + description: |- + Metadata related to paging information that is included in the response when querying the team notification rules + properties: + first_offset: + description: The first offset. + format: int64 + type: integer + last_offset: + description: The last offset. + format: int64 + type: integer + limit: + description: Pagination limit. + format: int64 + type: integer + next_offset: + description: The next offset. + format: int64 nullable: true - delay_minutes: - description: The number of minutes that will elapse before this rule is evaluated. 0 indicates immediate evaluation + type: integer + offset: + description: The offset. + format: int64 + type: integer + prev_offset: + description: The previous offset. + format: int64 + nullable: true + type: integer + total: + description: Total results. format: int64 type: integer + type: + description: Offset type. + type: string type: object - UpdateOnCallNotificationRuleRequestData: - description: Data for updating an on-call notification rule + TeamOnCallResponders: + description: Root object representing a team's on-call responder configuration. + example: + data: + id: "111ee23r-aaaaa-aaaa-aaww-1234wertsd23" + relationships: + escalations: + data: + - id: "111ee23r-aaaaa-aaaa-aaww-1234wertsd23" + type: escalation_policy_steps + responders: + data: + - id: "111ee23r-aaaaa-aaaa-aaww-1234wertsd23" + type: users + type: team_oncall_responders + included: + - attributes: + email: test@test.com + name: Test User + status: active + id: "111ee23r-aaaaa-aaaa-aaww-1234wertsd23" + type: users + - id: "111ee23r-aaaaa-aaaa-aaww-1234wertsd23" + relationships: + responders: + data: + - id: "111ee23r-aaaaa-aaaa-aaww-1234wertsd23" + type: users + type: escalation_policy_steps + properties: + data: + $ref: "#/components/schemas/TeamOnCallRespondersData" + included: + description: The `TeamOnCallResponders` `included`. + items: + $ref: "#/components/schemas/TeamOnCallRespondersIncluded" + type: array + type: object + TeamOnCallRespondersData: + description: Defines the main on-call responder object for a team, including relationships and metadata. properties: - attributes: - $ref: "#/components/schemas/UpdateOnCallNotificationRuleRequestAttributes" id: - description: Unique identifier for the rule + description: Unique identifier of the on-call responder configuration. type: string relationships: - $ref: "#/components/schemas/OnCallNotificationRuleRelationships" + $ref: "#/components/schemas/TeamOnCallRespondersDataRelationships" type: - $ref: "#/components/schemas/OnCallNotificationRuleType" + $ref: "#/components/schemas/TeamOnCallRespondersDataType" required: - type type: object - UpdateOpenAPIResponse: - description: Response for `UpdateOpenAPI`. + TeamOnCallRespondersDataRelationships: + description: Relationship objects linked to a team's on-call responder configuration, including escalations and responders. properties: - data: - $ref: "#/components/schemas/UpdateOpenAPIResponseData" + escalations: + $ref: "#/components/schemas/TeamOnCallRespondersDataRelationshipsEscalations" + responders: + $ref: "#/components/schemas/TeamOnCallRespondersDataRelationshipsResponders" type: object - UpdateOpenAPIResponseAttributes: - description: Attributes for `UpdateOpenAPI`. + TeamOnCallRespondersDataRelationshipsEscalations: + description: Defines the escalation policy steps linked to the team's on-call configuration. properties: - failed_endpoints: - description: List of endpoints which couldn't be parsed. + data: + description: Array of escalation step references. items: - $ref: "#/components/schemas/OpenAPIEndpoint" + $ref: "#/components/schemas/TeamOnCallRespondersDataRelationshipsEscalationsDataItems" type: array type: object - UpdateOpenAPIResponseData: - description: Data envelope for `UpdateOpenAPIResponse`. + TeamOnCallRespondersDataRelationshipsEscalationsDataItems: + description: Represents a link to a specific escalation policy step associated with the on-call team. properties: - attributes: - $ref: "#/components/schemas/UpdateOpenAPIResponseAttributes" id: - $ref: "#/components/schemas/ApiID" + description: Unique identifier of the escalation step. + example: "" + type: string + type: + $ref: "#/components/schemas/TeamOnCallRespondersDataRelationshipsEscalationsDataItemsType" + required: + - type + - id type: object - UpdateOutcomesAsyncAttributes: - description: The JSON:API attributes for a batched set of scorecard outcomes. + TeamOnCallRespondersDataRelationshipsEscalationsDataItemsType: + default: escalation_policy_steps + description: Identifies the resource type for escalation policy steps linked to a team's on-call configuration. + enum: + - escalation_policy_steps + example: escalation_policy_steps + type: string + x-enum-varnames: + - ESCALATION_POLICY_STEPS + TeamOnCallRespondersDataRelationshipsResponders: + description: Defines the list of users assigned as on-call responders for the team. properties: - results: - description: Set of scorecard outcomes to update asynchronously. + data: + description: Array of user references associated as responders. items: - $ref: "#/components/schemas/UpdateOutcomesAsyncRequestItem" + $ref: "#/components/schemas/TeamOnCallRespondersDataRelationshipsRespondersDataItems" type: array type: object - UpdateOutcomesAsyncRequest: - description: Scorecard outcomes batch request. - properties: - data: - $ref: "#/components/schemas/UpdateOutcomesAsyncRequestData" - type: object - UpdateOutcomesAsyncRequestData: - description: Scorecard outcomes batch request data. - properties: - attributes: - $ref: "#/components/schemas/UpdateOutcomesAsyncAttributes" - type: - $ref: "#/components/schemas/UpdateOutcomesAsyncType" - type: object - UpdateOutcomesAsyncRequestItem: - description: Scorecard outcome for a single entity and rule. + TeamOnCallRespondersDataRelationshipsRespondersDataItems: + description: Represents a user responder associated with the on-call team. properties: - entity_reference: - $ref: "#/components/schemas/EntityReference" - remarks: - description: >- - Any remarks regarding the scorecard rule's evaluation. Supports HTML hyperlinks. - example: 'See: Services' + id: + description: Unique identifier of the responder. + example: "" type: string - rule_id: - $ref: "#/components/schemas/RuleId" - state: - $ref: "#/components/schemas/State" + type: + $ref: "#/components/schemas/TeamOnCallRespondersDataRelationshipsRespondersDataItemsType" required: - - rule_id - - entity_reference - - state + - type + - id type: object - UpdateOutcomesAsyncType: - default: batched-outcome - description: The JSON:API type for scorecard outcomes. - enum: [batched-outcome] - example: batched-outcome + TeamOnCallRespondersDataRelationshipsRespondersDataItemsType: + default: users + description: Identifies the resource type for individual user entities associated with on-call response. + enum: + - users + example: users type: string - x-enum-varnames: [BATCHED_OUTCOME] - UpdateResourceEvaluationFiltersRequest: - description: Request object to update a resource filter. - properties: - data: - $ref: "#/components/schemas/UpdateResourceEvaluationFiltersRequestData" - required: - - data - type: object - UpdateResourceEvaluationFiltersRequestData: - description: The definition of `UpdateResourceFilterRequestData` object. + x-enum-varnames: + - USERS + TeamOnCallRespondersDataType: + default: team_oncall_responders + description: Represents the resource type for a group of users assigned to handle on-call duties within a team. + enum: + - team_oncall_responders + example: team_oncall_responders + type: string + x-enum-varnames: + - TEAM_ONCALL_RESPONDERS + TeamOnCallRespondersIncluded: + description: Represents an union of related resources included in the response, such as users and escalation steps. + oneOf: + - $ref: "#/components/schemas/User" + - $ref: "#/components/schemas/Escalation" + TeamPermissionSetting: + description: Team permission setting properties: attributes: - $ref: "#/components/schemas/ResourceFilterAttributes" + $ref: "#/components/schemas/TeamPermissionSettingAttributes" id: - description: The `UpdateResourceEvaluationFiltersRequestData` `id`. - example: csm_resource_filter + description: The team permission setting's identifier + example: TeamPermission-aeadc05e-98a8-11ec-ac2c-da7ad0900001-edit type: string type: - $ref: "#/components/schemas/ResourceFilterRequestType" + $ref: "#/components/schemas/TeamPermissionSettingType" required: - - attributes + - id - type type: object - UpdateResourceEvaluationFiltersResponse: - description: The definition of `UpdateResourceEvaluationFiltersResponse` object. + TeamPermissionSettingAttributes: + description: Team permission setting attributes properties: - data: - $ref: "#/components/schemas/UpdateResourceEvaluationFiltersResponseData" - required: - - data - type: object - UpdateResourceEvaluationFiltersResponseData: - description: The definition of `UpdateResourceFilterResponseData` object. - properties: - attributes: - $ref: "#/components/schemas/ResourceFilterAttributes" - id: - description: The `data` `id`. - example: csm_resource_filter + action: + $ref: "#/components/schemas/TeamPermissionSettingSerializerAction" + editable: + description: Whether or not the permission setting is editable by the current user + readOnly: true + type: boolean + options: + $ref: "#/components/schemas/TeamPermissionSettingValues" + title: + description: The team permission name + readOnly: true type: string - type: - $ref: "#/components/schemas/ResourceFilterRequestType" - required: - - attributes - - type + value: + $ref: "#/components/schemas/TeamPermissionSettingValue" type: object - UpdateRuleRequest: - description: Request to update a scorecard rule. + TeamPermissionSettingResponse: + description: Team permission setting response properties: data: - $ref: "#/components/schemas/UpdateRuleRequestData" + $ref: "#/components/schemas/TeamPermissionSetting" type: object - UpdateRuleRequestData: - description: Data for the request to update a scorecard rule. + TeamPermissionSettingSerializerAction: + description: The identifier for the action + enum: + - manage_membership + - edit + readOnly: true + type: string + x-enum-varnames: + - MANAGE_MEMBERSHIP + - EDIT + TeamPermissionSettingType: + default: team_permission_settings + description: Team permission setting type + enum: + - team_permission_settings + example: team_permission_settings + type: string + x-enum-varnames: + - TEAM_PERMISSION_SETTINGS + TeamPermissionSettingUpdate: + description: Team permission setting update properties: attributes: - $ref: "#/components/schemas/RuleAttributesRequest" + $ref: "#/components/schemas/TeamPermissionSettingUpdateAttributes" type: - $ref: "#/components/schemas/RuleType" - type: object - UpdateRuleResponse: - description: The response from a rule update request. - properties: - data: - $ref: "#/components/schemas/UpdateRuleResponseData" + $ref: "#/components/schemas/TeamPermissionSettingType" + required: + - type type: object - UpdateRuleResponseData: - description: The data for a rule update response. + TeamPermissionSettingUpdateAttributes: + description: Team permission setting update attributes properties: - attributes: - $ref: "#/components/schemas/RuleAttributes" - id: - $ref: "#/components/schemas/RuleId" - relationships: - $ref: "#/components/schemas/RelationshipToRule" - type: - $ref: "#/components/schemas/RuleType" + value: + $ref: "#/components/schemas/TeamPermissionSettingValue" type: object - UpdateRulesetRequest: - description: The definition of `UpdateRulesetRequest` object. - example: - data: - attributes: - enabled: true - last_version: 1 - name: Updated Ruleset - rules: - - enabled: true - mapping: - metadata: - name: Add Cost Center Tag - query: - addition: - key: cost_center - value: engineering - case_insensitivity: false - if_tag_exists: do_not_apply - query: account_id:"123456789" AND service:"web-api" - reference_table: - - enabled: true - mapping: - destination_key: team_owner - if_tag_exists: do_not_apply - source_keys: - - account_name - - account_id - metadata: - name: Account Name Mapping - query: - reference_table: - - enabled: true - mapping: - metadata: - name: New table rule with new UI - query: - reference_table: - case_insensitivity: true - field_pairs: - - input_column: status_type - output_key: status - - input_column: status_description - output_key: dess - if_tag_exists: append - source_keys: - - http_status - - status_description - table_name: http_status_codes - type: update_ruleset + TeamPermissionSettingUpdateRequest: + description: Team permission setting update request properties: data: - $ref: "#/components/schemas/UpdateRulesetRequestData" - type: object - UpdateRulesetRequestData: - description: The definition of `UpdateRulesetRequestData` object. - properties: - attributes: - $ref: "#/components/schemas/UpdateRulesetRequestDataAttributes" - id: - description: The `UpdateRulesetRequestData` `id`. - type: string - type: - $ref: "#/components/schemas/UpdateRulesetRequestDataType" + $ref: "#/components/schemas/TeamPermissionSettingUpdate" required: - - type + - data type: object - UpdateRulesetRequestDataAttributes: - description: The definition of `UpdateRulesetRequestDataAttributes` object. + TeamPermissionSettingValue: + description: What type of user is allowed to perform the specified action + enum: + - admins + - members + - organization + - user_access_manage + - teams_manage + type: string + x-enum-varnames: + - ADMINS + - MEMBERS + - ORGANIZATION + - USER_ACCESS_MANAGE + - TEAMS_MANAGE + TeamPermissionSettingValues: + description: Possible values for action + items: + $ref: "#/components/schemas/TeamPermissionSettingValue" + readOnly: true + type: array + TeamPermissionSettingsResponse: + description: Team permission settings response properties: - enabled: - description: The `attributes` `enabled`. - example: false - type: boolean - last_version: - description: The `attributes` `last_version`. - format: int64 - type: integer - rules: - description: The `attributes` `rules`. + data: + description: Team permission settings response data items: - $ref: "#/components/schemas/UpdateRulesetRequestDataAttributesRulesItems" + $ref: "#/components/schemas/TeamPermissionSetting" type: array - required: - - enabled - - rules - type: object - UpdateRulesetRequestDataAttributesRulesItems: - description: The definition of `UpdateRulesetRequestDataAttributesRulesItems` object. - properties: - enabled: - description: The `items` `enabled`. - example: false - type: boolean - mapping: - $ref: "#/components/schemas/DataAttributesRulesItemsMapping" - metadata: - $ref: "#/components/schemas/RulesetItemMetadata" - name: - description: The `items` `name`. - example: "" - type: string - query: - $ref: "#/components/schemas/UpdateRulesetRequestDataAttributesRulesItemsQuery" - reference_table: - $ref: "#/components/schemas/UpdateRulesetRequestDataAttributesRulesItemsReferenceTable" - required: - - enabled - - name - type: object - UpdateRulesetRequestDataAttributesRulesItemsQuery: - description: The definition of `UpdateRulesetRequestDataAttributesRulesItemsQuery` object. - nullable: true - properties: - addition: - $ref: "#/components/schemas/UpdateRulesetRequestDataAttributesRulesItemsQueryAddition" - case_insensitivity: - description: The `query` `case_insensitivity`. - type: boolean - if_not_exists: - deprecated: true - description: Deprecated. Use `if_tag_exists` instead. The `query` `if_not_exists`. - type: boolean - if_tag_exists: - $ref: "#/components/schemas/DataAttributesRulesItemsIfTagExists" - query: - description: The `query` `query`. - example: "" - type: string - required: - - addition - - query - type: object - UpdateRulesetRequestDataAttributesRulesItemsQueryAddition: - description: The definition of `UpdateRulesetRequestDataAttributesRulesItemsQueryAddition` object. - nullable: true - properties: - key: - description: The `addition` `key`. - example: "" - type: string - value: - description: The `addition` `value`. - example: "" - type: string - required: - - key - - value type: object - UpdateRulesetRequestDataAttributesRulesItemsReferenceTable: - description: The definition of `UpdateRulesetRequestDataAttributesRulesItemsReferenceTable` object. - nullable: true + TeamRef: + description: Reference to a Datadog team. properties: - case_insensitivity: - description: The `reference_table` `case_insensitivity`. - type: boolean - field_pairs: - description: The `reference_table` `field_pairs`. - items: - $ref: "#/components/schemas/UpdateRulesetRequestDataAttributesRulesItemsReferenceTableFieldPairsItems" - type: array - if_not_exists: - deprecated: true - description: Deprecated. Use `if_tag_exists` instead. The `reference_table` `if_not_exists`. - type: boolean - if_tag_exists: - $ref: "#/components/schemas/DataAttributesRulesItemsIfTagExists" - source_keys: - description: The `reference_table` `source_keys`. - example: - - "" - items: - description: A source key for the reference table lookup. - type: string - type: array - table_name: - description: The `reference_table` `table_name`. - example: "" - type: string - required: - - field_pairs - - source_keys - - table_name + data: + $ref: "#/components/schemas/TeamRefData" type: object - UpdateRulesetRequestDataAttributesRulesItemsReferenceTableFieldPairsItems: - description: The definition of `UpdateRulesetRequestDataAttributesRulesItemsReferenceTableFieldPairsItems` object. + TeamRefData: + description: Reference to a Datadog team. properties: - input_column: - description: The `items` `input_column`. - example: "" - type: string - output_key: - description: The `items` `output_key`. - example: "" + id: + description: The Datadog team ID. + example: "87654321-4321-8765-dcba-210987654321" type: string + type: + $ref: "#/components/schemas/TeamRefDataType" required: - - input_column - - output_key + - id + - type type: object - UpdateRulesetRequestDataType: - default: update_ruleset - description: Update ruleset resource type. + TeamRefDataType: + default: "team" + description: Datadog team resource type. enum: - - update_ruleset - example: update_ruleset + - team + example: "team" type: string x-enum-varnames: - - UPDATE_RULESET - UpdateTenancyConfigData: - description: The data object for updating an existing OCI tenancy integration configuration, including the tenancy ID, type, and updated attributes. + - TEAM + TeamReference: + description: Provides a reference to a team, including ID, type, and basic attributes/relationships. properties: attributes: - $ref: "#/components/schemas/UpdateTenancyConfigDataAttributes" + $ref: "#/components/schemas/TeamReferenceAttributes" id: - description: The OCID of the OCI tenancy to update. - example: "" + description: The team's unique identifier. type: string type: - $ref: "#/components/schemas/UpdateTenancyConfigDataType" + $ref: "#/components/schemas/TeamReferenceType" required: - type - - id type: object - UpdateTenancyConfigDataAttributes: - description: Attributes for updating an existing OCI tenancy integration configuration, including optional credentials, region settings, and collection options. + TeamReferenceAttributes: + description: Encapsulates the basic attributes of a Team reference, such as name, handle, and an optional avatar or description. properties: - auth_credentials: - $ref: "#/components/schemas/UpdateTenancyConfigDataAttributesAuthCredentials" - cost_collection_enabled: - description: Whether cost data collection from OCI is enabled for the tenancy. - type: boolean - home_region: - description: The home region of the OCI tenancy (for example, us-ashburn-1). + avatar: + description: URL or reference for the team's avatar (if available). type: string - logs_config: - $ref: "#/components/schemas/UpdateTenancyConfigDataAttributesLogsConfig" - metrics_config: - $ref: "#/components/schemas/UpdateTenancyConfigDataAttributesMetricsConfig" - regions_config: - $ref: "#/components/schemas/UpdateTenancyConfigDataAttributesRegionsConfig" - resource_collection_enabled: - description: Whether resource collection from OCI is enabled for the tenancy. - type: boolean - user_ocid: - description: The OCID of the OCI user used by the Datadog integration for authentication. + description: + description: A short text describing the team. type: string - type: object - UpdateTenancyConfigDataAttributesAuthCredentials: - description: OCI API signing key credentials used to update the Datadog integration's authentication with the OCI tenancy. - properties: - fingerprint: - description: The fingerprint of the OCI API signing key used for authentication. + handle: + description: A unique handle/slug for the team. type: string - private_key: - description: The PEM-encoded private key corresponding to the OCI API signing key fingerprint. - example: "" + name: + description: The full, human-readable name of the team. type: string - required: - - private_key - type: object - UpdateTenancyConfigDataAttributesLogsConfig: - description: Log collection configuration for updating an OCI tenancy, controlling which compartments and services have log collection enabled. - properties: - compartment_tag_filters: - description: List of compartment tag filters to scope log collection to specific compartments. - items: - description: A compartment tag filter in key:value format (for example, datadog:true). - type: string - type: array - enabled: - description: Whether log collection is enabled for the tenancy. - type: boolean - enabled_services: - description: List of OCI service names for which log collection is enabled. - items: - description: An OCI service name for which log collection is enabled (for example, compute). - type: string - type: array - type: object - UpdateTenancyConfigDataAttributesMetricsConfig: - description: Metrics collection configuration for updating an OCI tenancy, controlling which compartments and services are included or excluded. - properties: - compartment_tag_filters: - description: List of compartment tag filters to scope metrics collection to specific compartments. - items: - description: A compartment tag filter in key:value format (for example, datadog:true). - type: string - type: array - enabled: - description: Whether metrics collection is enabled for the tenancy. - type: boolean - excluded_services: - description: List of OCI service names to exclude from metrics collection. - items: - description: An OCI service name to exclude from metrics collection (for example, compute). - type: string - type: array - type: object - UpdateTenancyConfigDataAttributesRegionsConfig: - description: Region configuration for updating an OCI tenancy, specifying which regions are available, enabled, or disabled for data collection. - properties: - available: - description: List of OCI regions available for data collection in the tenancy. - items: - description: An OCI region identifier (for example, us-ashburn-1). - type: string - type: array - disabled: - description: List of OCI regions explicitly disabled for data collection. - items: - description: An OCI region identifier (for example, us-phoenix-1). - type: string - type: array - enabled: - description: List of OCI regions enabled for data collection. - items: - description: An OCI region identifier (for example, us-ashburn-1). - type: string - type: array type: object - UpdateTenancyConfigDataType: - default: oci_tenancy - description: OCI tenancy resource type. + TeamReferenceType: + default: teams + description: |- + Teams resource type. enum: - - oci_tenancy - example: oci_tenancy + - teams + example: teams type: string x-enum-varnames: - - OCI_TENANCY - UpdateTenancyConfigRequest: - description: Request body for updating an existing OCI tenancy integration configuration. - example: - data: - attributes: - auth_credentials: - fingerprint: "" - private_key: |- - ----BEGIN PRIVATE KEY----- - MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCdvSMmlfLyeD4M - QsA3WlrWBqKdWa5eVV3/uODyqT3wWMEMIJHcG3/quNs8nh9xrK1/JkQT2qoKEHqR - C5k59jN6Vp8em8ARJthMgam9K37ELt+IQ/G8ySTSuqZG8T4cHp/cs3fAclNqttOl - YnGr4RbVAgMBAAECggEAGZNLGbyCUbIRTW6Kh4d8ZVC+eZtJMqGmGJ3KfVaW8Pjn - QGWfSuJCEe2o2Y8G3phlidFauICnZ44enXA17Rhi+I/whnr7FIyQk2bR7rv+1Uhc - mOJygWX5eFFMsledgVAdIAl9Luk2nykx7Un3g6rtbl/Vs+5k4m7ITLFMpCHzsJLU - nm8kBzDOqY2JUkMd08nL88KL6QywWtal05UESzQpNFXd0e5kxYfexeMCsLsWP0mc - quMLRbn7NuBjCbe9VU2kmIvcfDDaWjurT7d5m1OXx1cc8p6P4PFZTVyCjdhiWOr3 - LQXZ4/vdZNR3zgEHypRoM6D9Yq99LWUOUEMrdiSLQQKBgQDQkh7C1OtAXnpy7F6R - W+/I3zBHici2p7A57UT7VECQ1IVGg37/uus83DkuOtdZ33JmHLAVrwLFJvUlbyjx - l6dc/1ms40L5HFdLgaVtd4k0rSPFeOSDr6evz0lX4yBuzlP0fEh+o3XHW7mwe2G+ - rWCULF/Uqza66fjbCSKMNgLIXQKBgQDBm9nZg/s4S0THWCFNWcB1tXBG0p/sH5eY - PC1H/VmTEINIixStrS4ufczf31X8rcoSjSbO7+vZDTTATdk7OLn1I2uGFVYl8M59 - 86BYT2Hi7cwp7YVzOc/cJigVeBAqSRW/iYYyWBEUTiW1gbkV0sRWwhPp67m+c0sP - XpY/iEZA2QKBgB1w8tynt4l/jKNaUEMOijt9ndALWATIiOy0XG9pxi9rgGCiwTOS - DBCsOXoYHjv2eayGUijNaoOv6xzcoxfvQ1WySdNIxTRq1ru20kYwgHKqGgmO9hrM - mcwMY5r/WZ2qjFlPjeAqbL62aPDLidGjoaVo2iIoBPK/gjxQ/5f0MS4N/YQ0zWoYBueSQ0DGs - -----END PRIVATE KEY----- - cost_collection_enabled: true - home_region: us-ashburn-1 - logs_config: - compartment_tag_filters: - - datadog:true - - env:prod - enabled: true - enabled_services: - - service_1 - - service_2 - metrics_config: - compartment_tag_filters: - - datadog:true - - env:prod - enabled: true - excluded_services: - - service_1 - - service_2 - regions_config: - available: - - us-ashburn-1 - - us-phoenix-1 - disabled: - - us-phoenix-1 - enabled: - - us-ashburn-1 - resource_collection_enabled: true - user_ocid: ocid.user.test - id: ocid.tenancy.test - type: oci_tenancy - properties: - data: - $ref: "#/components/schemas/UpdateTenancyConfigData" - required: - - data - type: object - UpdateUserIdentityProvidersRequest: - description: Request body for setting identity provider overrides for a user. + - TEAMS + TeamRelationships: + description: Resources related to a team properties: - data: - $ref: "#/components/schemas/UserRelationshipIdentityProviderDataList" - required: - - data + team_links: + $ref: "#/components/schemas/RelationshipToTeamLinks" + user_team_permissions: + $ref: "#/components/schemas/RelationshipToUserTeamPermission" type: object - UpdateVariantRequest: - description: Request to update an existing variant's name and value. + TeamRelationshipsLinks: + description: Links attributes. properties: - name: - description: The display name of the variant. - example: "Variant ABC123 Updated" - type: string - value: - description: The value of the variant as a string. - example: "new_value" + related: + description: Related link. + example: "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links" type: string type: object - UpdateWorkflowRequest: - description: A request object for updating an existing workflow. - example: - data: - attributes: - description: "A sample workflow." - name: "Example Workflow" - published: true - runAs: - type: owner - spec: - annotations: - - display: - bounds: - height: 150 - width: 300 - x: -375 - y: -0.5 - id: 99999999-9999-9999-9999-999999999999 - markdownTextAnnotation: - text: "Example annotation." - connectionEnvs: - - connections: - - connectionId: "e1e64943-c7c5-4487-aece-25aaec7d3aad" - label: "INTEGRATION_DATADOG" - env: "default" - handle: "my-handle" - inputSchema: - parameters: - - defaultValue: "default" - name: "input" - type: "STRING" - outputSchema: - parameters: - - name: "output" - type: "ARRAY_OBJECT" - value: "{{ Steps.Step1 }}" - steps: - - actionId: "com.datadoghq.dd.monitor.listMonitors" - connectionLabel: "INTEGRATION_DATADOG" - name: "Step1" - outboundEdges: - - branchName: "main" - nextStepName: "Step2" - parameters: - - name: "tags" - value: "service:monitoring" - - actionId: "com.datadoghq.core.noop" - name: "Step2" - triggers: - - monitorTrigger: - rateLimit: - count: 1 - interval: "3600s" - startStepNames: ["Step1"] - - githubWebhookTrigger: {} - startStepNames: ["Step1"] - tags: - - "team:infra" - - "service:monitoring" - - "foo:bar" - id: "22222222-2222-2222-2222-222222222222" - type: "workflows" + TeamResponse: + description: Response with a team properties: data: - $ref: "#/components/schemas/WorkflowDataUpdate" - required: - - data + $ref: "#/components/schemas/Team" type: object - UpdateWorkflowResponse: - description: The response object after updating a workflow. + TeamRoutingRules: + description: Represents a complete set of team routing rules, including data and optionally included related resources. + example: + data: + id: 27590dae-47be-4a7d-9abf-8f4e45124020 + relationships: + rules: + data: + - id: 03aff2d6-6cbf-496c-997f-a857bbe9a94a + type: team_routing_rules + - id: 03aff2d6-6cbf-496c-997f-a857bbe9a94a + type: team_routing_rules + type: team_routing_rules + included: + - attributes: + actions: + query: tags.service:test + time_restriction: + restrictions: + - end_day: monday + end_time: "17:00:00" + start_day: monday + start_time: "09:00:00" + - end_day: tuesday + end_time: "17:00:00" + start_day: tuesday + start_time: "09:00:00" + time_zone: "" + urgency: high + id: 03aff2d6-6cbf-496c-997f-a857bbe9a94a + relationships: + policy: + data: + type: team_routing_rules properties: data: - $ref: "#/components/schemas/WorkflowDataUpdate" + $ref: "#/components/schemas/TeamRoutingRulesData" + included: + description: Provides related routing rules or other included resources. + items: + $ref: "#/components/schemas/TeamRoutingRulesIncluded" + type: array type: object - UpdatedPersonalAccessToken: - description: Datadog access token returned by the update endpoint. + TeamRoutingRulesData: + description: Represents the top-level data object for team routing rules, containing the ID, relationships, and resource type. properties: - attributes: - $ref: "#/components/schemas/PersonalAccessTokenAttributes" id: - description: ID of the access token. - example: "00000000-0000-1234-0000-000000000000" + description: Specifies the unique identifier of this team routing rules record. type: string relationships: - $ref: "#/components/schemas/UpdatedPersonalAccessTokenRelationships" + $ref: "#/components/schemas/TeamRoutingRulesDataRelationships" type: - $ref: "#/components/schemas/PersonalAccessTokensType" + $ref: "#/components/schemas/TeamRoutingRulesDataType" required: - - id - type type: object - UpdatedPersonalAccessTokenRelationships: - description: Resources related to the access token. + TeamRoutingRulesDataRelationships: + description: Specifies relationships for team routing rules, including rule references. properties: - owned_by: - $ref: "#/components/schemas/RelationshipToUser" + rules: + $ref: "#/components/schemas/TeamRoutingRulesDataRelationshipsRules" type: object - UpdatedPersonalAccessTokenResponse: - description: Response for updating an access token. + TeamRoutingRulesDataRelationshipsRules: + description: Holds references to a set of routing rules in a relationship. properties: data: - $ref: "#/components/schemas/UpdatedPersonalAccessToken" - required: - - data + description: An array of references to the routing rules associated with this team. + items: + $ref: "#/components/schemas/TeamRoutingRulesDataRelationshipsRulesDataItems" + type: array type: object - UpdatedServiceAccessToken: - description: Datadog access token returned by the update endpoint. + TeamRoutingRulesDataRelationshipsRulesDataItems: + description: "Defines a relationship item to link a routing rule by its ID and type." properties: - attributes: - $ref: "#/components/schemas/ServiceAccessTokenAttributes" id: - description: ID of the access token. - example: "00000000-0000-1234-0000-000000000000" + description: Specifies the unique identifier for the related routing rule. + example: "" type: string - relationships: - $ref: "#/components/schemas/UpdatedServiceAccessTokenRelationships" type: - $ref: "#/components/schemas/ServiceAccessTokensType" + $ref: "#/components/schemas/TeamRoutingRulesDataRelationshipsRulesDataItemsType" required: - - id - type + - id type: object - UpdatedServiceAccessTokenRelationships: - description: Resources related to the access token. + TeamRoutingRulesDataRelationshipsRulesDataItemsType: + default: team_routing_rules + description: "Indicates that the resource is of type 'team_routing_rules'." + enum: + - team_routing_rules + example: team_routing_rules + type: string + x-enum-varnames: + - TEAM_ROUTING_RULES + TeamRoutingRulesDataType: + default: team_routing_rules + description: Team routing rules resource type. + enum: + - team_routing_rules + example: team_routing_rules + type: string + x-enum-varnames: + - TEAM_ROUTING_RULES + TeamRoutingRulesIncluded: + description: Represents additional included resources for team routing rules, such as associated routing rules. + oneOf: + - $ref: "#/components/schemas/RoutingRule" + TeamRoutingRulesRequest: + description: Represents a request to create or update team routing rules, including the data payload. + example: + data: + attributes: + rules: + - actions: + policy_id: "" + query: tags.service:test + time_restriction: + restrictions: + - end_day: monday + end_time: "17:00:00" + start_day: monday + start_time: "09:00:00" + - end_day: tuesday + end_time: "17:00:00" + start_day: tuesday + start_time: "09:00:00" + time_zone: "" + urgency: high + - actions: + - channel: channel + type: send_slack_message + workspace: workspace + policy_id: fad4eee1-13f5-40d8-886b-4e56d8d5d1c6 + query: "" + time_restriction: + urgency: low + id: 27590dae-47be-4a7d-9abf-8f4e45124020 + type: team_routing_rules properties: - owned_by: - $ref: "#/components/schemas/RelationshipToServiceAccount" + data: + $ref: "#/components/schemas/TeamRoutingRulesRequestData" type: object - UpdatedServiceAccessTokenResponse: - description: Response for updating an access token. + TeamRoutingRulesRequestData: + description: Holds the data necessary to create or update team routing rules, including attributes, ID, and resource type. properties: - data: - $ref: "#/components/schemas/UpdatedServiceAccessToken" + attributes: + $ref: "#/components/schemas/TeamRoutingRulesRequestDataAttributes" + id: + description: Specifies the unique identifier for this set of team routing rules. + type: string + type: + $ref: "#/components/schemas/TeamRoutingRulesRequestDataType" required: - - data + - type type: object - UpsertAllocationRequest: - description: Request to create or update a targeting rule (allocation) for a feature flag environment. + TeamRoutingRulesRequestDataAttributes: + description: Represents the attributes of a request to update or create team routing rules. properties: - experiment_id: - description: The experiment ID for experiment-linked allocations. - example: "550e8400-e29b-41d4-a716-446655440030" - nullable: true - type: string - exposure_schedule: - $ref: "#/components/schemas/ExposureScheduleRequest" - guardrail_metrics: - description: Guardrail metrics used to monitor and auto-pause or abort. + rules: + description: A list of routing rule items that define how incoming pages should be handled. items: - $ref: "#/components/schemas/GuardrailMetricRequest" + $ref: "#/components/schemas/TeamRoutingRulesRequestRule" + type: array + type: object + TeamRoutingRulesRequestDataType: + default: team_routing_rules + description: Team routing rules resource type. + enum: + - team_routing_rules + example: team_routing_rules + type: string + x-enum-varnames: + - TEAM_ROUTING_RULES + TeamRoutingRulesRequestRule: + description: Defines an individual routing rule item that contains the rule data for the request. + properties: + actions: + description: Specifies the list of actions to perform when the routing rule is matched. + items: + $ref: "#/components/schemas/RoutingRuleAction" type: array id: - description: The unique identifier of the targeting rule allocation. - example: "550e8400-e29b-41d4-a716-446655440020" - format: uuid + description: |- + Specifies the unique identifier of an existing routing rule to update. + If omitted, a new routing rule is created. type: string - key: - description: The unique key of the targeting rule allocation. - example: "prod-rollout" + policy_id: + description: Identifies the policy to be applied when this routing rule matches. type: string - name: - description: The display name of the targeting rule. - example: "Production Rollout" + query: + description: Defines the query or condition that triggers this routing rule. type: string - targeting_rules: - description: Targeting rules that determine audience eligibility. - items: - $ref: "#/components/schemas/TargetingRuleRequest" - type: array + time_restriction: + $ref: "#/components/schemas/TimeRestrictions" + urgency: + $ref: "#/components/schemas/Urgency" + type: object + TeamSyncAttributes: + description: Team sync attributes. + properties: + frequency: + $ref: "#/components/schemas/TeamSyncAttributesFrequency" + selection_state: + $ref: "#/components/schemas/TeamSyncAttributesSelectionState" + source: + $ref: "#/components/schemas/TeamSyncAttributesSource" + sync_membership: + $ref: "#/components/schemas/TeamSyncAttributesSyncMembership" type: - $ref: "#/components/schemas/AllocationType" - variant_weights: - description: Variant distribution weights. - items: - $ref: "#/components/schemas/VariantWeightRequest" - type: array + $ref: "#/components/schemas/TeamSyncAttributesType" required: - - name - - key + - source - type type: object - UpsertAndPublishFormVersionData: - description: The data for upserting and publishing a form version. + TeamSyncAttributesFrequency: + description: How often the sync process should be run. Defaults to `once` when not provided. + enum: + - once + - continuously + - paused + example: once + type: string + x-enum-varnames: + - ONCE + - CONTINUOUSLY + - PAUSED + TeamSyncAttributesSelectionState: + description: |- + Specifies which teams or organizations to sync. When + provided, synchronization is limited to the specified + items and their subtrees. + items: + $ref: "#/components/schemas/TeamSyncSelectionStateItem" + type: array + TeamSyncAttributesSource: + description: The external source platform for team synchronization. Only "github" is supported. + enum: + - github + example: github + type: string + x-enum-varnames: + - GITHUB + TeamSyncAttributesSyncMembership: + default: false + description: Whether to sync members from the external team to the Datadog team. Defaults to `false` when not provided. + example: true + type: boolean + TeamSyncAttributesType: + description: The type of synchronization operation. "link" connects teams by matching names. "provision" creates new teams when no match is found. + enum: + - link + - provision + example: link + type: string + x-enum-varnames: + - LINK + - PROVISION + TeamSyncBulkType: + description: Team sync bulk type. + enum: + - team_sync_bulk + example: team_sync_bulk + type: string + x-enum-varnames: + - TEAM_SYNC_BULK + TeamSyncData: + description: A configuration governing syncing between Datadog teams and teams from an external system. properties: attributes: - $ref: "#/components/schemas/UpsertAndPublishFormVersionDataAttributes" + $ref: "#/components/schemas/TeamSyncAttributes" + id: + description: The sync's identifier + example: aeadc05e-98a8-11ec-ac2c-da7ad0900001 + type: string type: - $ref: "#/components/schemas/FormVersionType" + $ref: "#/components/schemas/TeamSyncBulkType" required: - - type - attributes + - type type: object - UpsertAndPublishFormVersionDataAttributes: - description: The attributes for upserting and publishing a form version. - properties: - data_definition: - $ref: "#/components/schemas/FormDataDefinition" - ui_definition: - $ref: "#/components/schemas/FormUiDefinition" - upsert_params: - $ref: "#/components/schemas/UpsertAndPublishFormVersionUpsertParams" - required: - - data_definition - - ui_definition - - upsert_params - type: object - UpsertAndPublishFormVersionRequest: - description: A request to upsert and publish a form version in a single transaction. + TeamSyncRequest: + description: Team sync request. + example: + data: + attributes: + source: github + type: link + type: team_sync_bulk properties: data: - $ref: "#/components/schemas/UpsertAndPublishFormVersionData" + $ref: "#/components/schemas/TeamSyncData" required: - data type: object - UpsertAndPublishFormVersionUpsertParams: - description: Concurrency control parameters for the upsert and publish operation. - properties: - etag: - description: The ETag of the latest version used for optimistic concurrency control. - example: b51f08b698d88d8027a935d9db649774949f5fb41a0c559bfee6a9a13225c72d - type: string - required: - - etag - type: object - UpsertCatalogEntityRequest: - description: Create or update entity request. - oneOf: - - $ref: "#/components/schemas/EntityV3" - - $ref: "#/components/schemas/EntityRaw" - UpsertCatalogEntityResponse: - description: Upsert entity response. - properties: - data: - $ref: "#/components/schemas/EntityResponseData" - included: - $ref: "#/components/schemas/UpsertCatalogEntityResponseIncluded" - meta: - $ref: "#/components/schemas/EntityResponseMeta" - type: object - UpsertCatalogEntityResponseIncluded: - description: Upsert entity response included. - items: - $ref: "#/components/schemas/UpsertCatalogEntityResponseIncludedItem" - type: array - UpsertCatalogEntityResponseIncludedItem: - description: Upsert entity response included item. - oneOf: - - $ref: "#/components/schemas/EntityResponseIncludedSchema" - UpsertCatalogKindRequest: - description: Create or update kind request. - oneOf: - - $ref: "#/components/schemas/KindObj" - - $ref: "#/components/schemas/KindRaw" - UpsertCatalogKindResponse: - description: Upsert kind response. + TeamSyncResponse: + description: Team sync configurations response. properties: data: - $ref: "#/components/schemas/KindResponseData" - meta: - $ref: "#/components/schemas/KindResponseMeta" + description: List of team sync configurations + items: + $ref: "#/components/schemas/TeamSyncData" + type: array type: object - UpsertCloudInventorySyncConfigRequest: - description: Request body for creating or updating a cloud inventory sync configuration. + TeamSyncSelectionStateExternalId: + description: The external identifier for a team or organization in the source platform. properties: - data: - $ref: "#/components/schemas/UpsertCloudInventorySyncConfigRequestData" + type: + $ref: "#/components/schemas/TeamSyncSelectionStateExternalIdType" + value: + $ref: "#/components/schemas/TeamSyncSelectionStateExternalIdValue" required: - - data + - type + - value type: object - UpsertCloudInventorySyncConfigRequestAttributes: + TeamSyncSelectionStateExternalIdType: description: |- - Settings for the cloud provider specified in `data.id`. Include only the matching provider object (`aws`, `gcp`, or `azure`). - properties: - aws: - $ref: "#/components/schemas/CloudInventorySyncConfigAWSRequestAttributes" - azure: - $ref: "#/components/schemas/CloudInventorySyncConfigAzureRequestAttributes" - gcp: - $ref: "#/components/schemas/CloudInventorySyncConfigGCPRequestAttributes" - type: object - UpsertCloudInventorySyncConfigRequestData: - description: Storage Management configuration data for the create or update request. - properties: - attributes: - $ref: "#/components/schemas/UpsertCloudInventorySyncConfigRequestAttributes" + The type of external identifier for the selection state item. + For GitHub synchronization, the allowed values are `team` and + `organization`. + enum: + - team + - organization + example: team + type: string + x-enum-varnames: + - TEAM + - ORGANIZATION + TeamSyncSelectionStateExternalIdValue: + description: |- + The external identifier value from the source + platform. For GitHub, this is the string + representation of a GitHub organization ID or team + ID. + example: "1" + type: string + TeamSyncSelectionStateItem: + description: Identifies a team or organization hierarchy to include in synchronization. + properties: + external_id: + $ref: "#/components/schemas/TeamSyncSelectionStateExternalId" + operation: + $ref: "#/components/schemas/TeamSyncSelectionStateOperation" + scope: + $ref: "#/components/schemas/TeamSyncSelectionStateScope" + required: + - external_id + type: object + TeamSyncSelectionStateOperation: + description: |- + The operation to perform on the selected hierarchy. + When set to `include`, synchronization covers the + referenced teams or organizations. + enum: + - include + example: include + type: string + x-enum-varnames: + - INCLUDE + TeamSyncSelectionStateScope: + description: |- + The scope of the selection. When set to `subtree`, + synchronization includes the referenced team or + organization and everything nested under it. + enum: + - subtree + example: subtree + type: string + x-enum-varnames: + - SUBTREE + TeamTarget: + description: "Represents a team target for an escalation policy step, including the team's ID and resource type." + properties: id: - $ref: "#/components/schemas/CloudInventoryCloudProviderId" + description: "Specifies the unique identifier of the team resource." + example: "00000000-aba1-0000-0000-000000000000" + type: string type: - $ref: "#/components/schemas/CloudInventoryCloudProviderRequestType" + $ref: "#/components/schemas/TeamTargetType" required: - type - id - - attributes type: object - UpsertFormVersionData: - description: The data for creating or updating a form version. + TeamTargetType: + default: teams + description: "Indicates that the resource is of type `teams`." + enum: + - teams + example: teams + type: string + x-enum-varnames: + - TEAMS + TeamType: + default: team + description: Team type + enum: + - team + example: team + type: string + x-enum-varnames: + - TEAM + TeamUpdate: + description: Team update request properties: attributes: - $ref: "#/components/schemas/UpsertFormVersionDataAttributes" + $ref: "#/components/schemas/TeamUpdateAttributes" + relationships: + $ref: "#/components/schemas/TeamUpdateRelationships" type: - $ref: "#/components/schemas/FormVersionType" + $ref: "#/components/schemas/TeamType" required: - - type - attributes + - type type: object - UpsertFormVersionDataAttributes: - description: The attributes for creating or updating a form version. - properties: - data_definition: - $ref: "#/components/schemas/FormDataDefinition" - state: - $ref: "#/components/schemas/FormVersionState" - ui_definition: - $ref: "#/components/schemas/FormUiDefinition" - upsert_params: - $ref: "#/components/schemas/UpsertFormVersionUpsertParams" - required: - - state - - data_definition - - ui_definition - - upsert_params - type: object - UpsertFormVersionRequest: - description: A request to create or update a form version. - properties: - data: - $ref: "#/components/schemas/UpsertFormVersionData" - required: - - data - type: object - UpsertFormVersionUpsertParams: - description: Concurrency control parameters for the form version upsert operation. + TeamUpdateAttributes: + description: Team update attributes properties: - etag: - description: The ETag of the latest version. Required when `match_policy` is `if_etag_match`. - example: b51f08b698d88d8027a935d9db649774949f5fb41a0c559bfee6a9a13225c72d + avatar: + description: Unicode representation of the avatar for the team, limited to a single grapheme + example: "🥑" nullable: true type: string - insert_only: - description: If true, only a new version may be inserted; updating the current draft is not allowed. - example: false - type: boolean - match_policy: - $ref: "#/components/schemas/LatestVersionMatchPolicy" - required: - - match_policy - type: object - UpsertOAuthScopesRestrictionData: - description: Data object of an upsert OAuth2 scopes restriction request. - properties: - attributes: - $ref: "#/components/schemas/UpsertOAuthScopesRestrictionDataAttributes" - type: - $ref: "#/components/schemas/UpsertOAuthScopesRestrictionType" - required: - - type - type: object - UpsertOAuthScopesRestrictionDataAttributes: - description: Attributes of an upsert OAuth2 scopes restriction request. - properties: - oidc_scopes: - description: OIDC scopes the client is allowed to request. - example: - - openid - - email + banner: + description: Banner selection for the team + format: int64 + nullable: true + type: integer + description: + description: Free-form markdown description/content for the team's homepage + type: string + handle: + description: The team's identifier + example: example-team + maxLength: 195 + type: string + hidden_modules: + description: Collection of hidden modules for the team items: - $ref: "#/components/schemas/OAuthOidcScope" + description: String identifier of the module + type: string type: array - permission_scopes: - description: |- - Datadog permission scopes the client is allowed to request. - Each value must be a valid permission name. - example: - - dashboards_read - - metrics_read + name: + description: The name of the team + example: Example Team + maxLength: 200 + type: string + visible_modules: + description: Collection of visible modules for the team items: - description: Datadog permission scope name. - example: dashboards_read + description: String identifier of the module type: string type: array + required: + - handle + - name type: object - UpsertOAuthScopesRestrictionRequest: - description: Request payload for creating or updating the scopes restriction of an OAuth2 client. + TeamUpdateRelationships: + description: Team update relationships + properties: + team_links: + $ref: "#/components/schemas/RelationshipToTeamLinks" + type: object + TeamUpdateRequest: + description: Team update request properties: data: - $ref: "#/components/schemas/UpsertOAuthScopesRestrictionData" + $ref: "#/components/schemas/TeamUpdate" required: - data type: object - UpsertOAuthScopesRestrictionType: - default: upsert_scopes_restriction - description: JSON:API resource type for an upsert OAuth2 client scopes restriction request. - enum: - - upsert_scopes_restriction - example: upsert_scopes_restriction - type: string - x-enum-varnames: - - UPSERT_SCOPES_RESTRICTION - Urgency: - description: Specifies the level of urgency for a routing rule (low, high, or dynamic). + TeamsField: + description: Supported teams field. enum: - - low - - high - - dynamic - example: low + - id + - name + - handle + - summary + - description + - avatar + - banner + - visible_modules + - hidden_modules + - created_at + - modified_at + - user_count + - link_count + - team_links + - user_team_permissions type: string x-enum-varnames: - - LOW - - HIGH - - DYNAMIC - UrlParam: - description: The definition of `UrlParam` object. + - ID + - NAME + - HANDLE + - SUMMARY + - DESCRIPTION + - AVATAR + - BANNER + - VISIBLE_MODULES + - HIDDEN_MODULES + - CREATED_AT + - MODIFIED_AT + - USER_COUNT + - LINK_COUNT + - TEAM_LINKS + - USER_TEAM_PERMISSIONS + TeamsHierarchyLinksResponseLinks: + description: When querying team hierarchy links, a set of links for navigation between different pages is included properties: - name: - $ref: "#/components/schemas/TokenName" - example: MyUrlParameter - value: - description: The `UrlParam` `value`. - example: Some Url Parameter value + first: + description: Link to the first page. + nullable: true type: string - required: - - name - - value - type: object - UrlParamUpdate: - description: The definition of `UrlParamUpdate` object. - properties: - deleted: - description: Should the header be deleted. - type: boolean - name: - $ref: "#/components/schemas/TokenName" - example: MyUrlParameter - value: - description: The `UrlParamUpdate` `value`. - example: Some Url Parameter value + last: + description: Link to the last page. + nullable: true + type: string + next: + description: Link to the next page. + nullable: true + type: string + prev: + description: Link to the previous page. + nullable: true + type: string + self: + description: Link to the current object. type: string - required: - - name type: object - UsageApplicationSecurityMonitoringResponse: - description: Application Security Monitoring usage response. + TeamsHierarchyLinksResponseMeta: + description: Metadata that is included in the response when querying the team hierarchy links properties: - data: - description: Response containing Application Security Monitoring usage. - items: - $ref: "#/components/schemas/UsageDataObject" - type: array + page: + $ref: "#/components/schemas/TeamsHierarchyLinksResponseMetaPage" type: object - UsageAttributesObject: - description: Usage attributes data. + TeamsHierarchyLinksResponseMetaPage: + description: Metadata related to paging information that is included in the response when querying the team hierarchy links properties: - org_name: - description: The organization name. + first_number: + description: First page number. + format: int64 + type: integer + last_number: + description: Last page number. + format: int64 + type: integer + next_number: + description: Next page number. + format: int64 + nullable: true + type: integer + number: + description: Page number. + format: int64 + type: integer + prev_number: + description: Previous page number. + format: int64 + nullable: true + type: integer + size: + description: Page size. + format: int64 + type: integer + total: + description: Total number of results. + format: int64 + type: integer + type: + description: Pagination type. + example: "number_size" type: string - product_family: - description: The product for which usage is being reported. + type: object + TeamsOwnershipMappingBatchError: + description: An error encountered while validating or applying an operation. + properties: + detail: + description: A human-readable explanation specific to this error. + example: "prefix match_type is not enabled for this org" type: string - public_id: - description: The organization public ID. + status: + description: The HTTP status code applicable to this error. + example: "400" type: string - region: - description: The region of the Datadog instance that the organization belongs to. + title: + description: A short, human-readable summary of the error. + example: "Bad Request" type: string - timeseries: - description: List of usage data reported for each requested hour. - items: - $ref: "#/components/schemas/UsageTimeSeriesObject" - type: array - usage_type: - $ref: "#/components/schemas/HourlyUsageType" + required: + - status + - title type: object - UsageAttributionTypesAttributes: - description: List of usage attribution types. + TeamsOwnershipMappingBatchOperation: + description: A single add or remove operation, applied atomically with every other operation in the request. properties: - values: - description: "List of usage attribution types." - items: - description: A given usage type in a list. - example: "infra_host" - type: string - type: array + data: + $ref: "#/components/schemas/TeamsOwnershipMappingBatchOperationData" + op: + $ref: "#/components/schemas/TeamsOwnershipMappingBatchOperationOp" + ref: + $ref: "#/components/schemas/TeamsOwnershipMappingBatchOperationRef" + required: + - op type: object - UsageAttributionTypesBody: - description: Usage attribution types data. + TeamsOwnershipMappingBatchOperationData: + description: The mapping to add. Required when `op` is `add`. properties: attributes: - $ref: "#/components/schemas/UsageAttributionTypesAttributes" - id: - description: Unique ID of the response. - type: string + $ref: "#/components/schemas/TeamsOwnershipMappingBatchOperationDataAttributes" type: - $ref: "#/components/schemas/UsageAttributionTypesType" + $ref: "#/components/schemas/TeamsOwnershipMappingType" + required: + - type + - attributes type: object - UsageAttributionTypesResponse: - description: Usage attribution types response. + TeamsOwnershipMappingBatchOperationDataAttributes: + description: |- + The attributes of the mapping to add. `team_handle` and `view_name` are required + when `op` is `add`. At least one of `service` or `application_id` must be provided. properties: - data: - $ref: "#/components/schemas/UsageAttributionTypesBody" + application_id: + description: |- + The ID of the RUM application this mapping applies to. + For browser applications, provide the real application UUID — the team is applied to the view regardless of service. + For mobile applications, omit this field (or set it to the nil UUID `00000000-0000-0000-0000-000000000000`) — the team is applied to the view and service combination across all applications. + example: "11111111-2222-3333-4444-555555555555" + format: uuid + type: string + match_type: + $ref: "#/components/schemas/TeamsOwnershipMatchType" + service: + description: The RUM application's service name. For browser applications, this is optional. For mobile applications, this is required and scopes the ownership to a specific service. + example: "web-checkout" + type: string + team_handle: + description: The handle of the team that owns the matched RUM views. + example: "team-rum" + type: string + view_name: + description: The RUM view name to match, or its prefix when `match_type` is `prefix`. + example: "/checkout" + type: string type: object - UsageAttributionTypesType: - default: usage_attribution_types - description: Type of usage attribution types data. + TeamsOwnershipMappingBatchOperationOp: + description: Whether this operation adds a new mapping or removes an existing one. enum: - - usage_attribution_types + - add + - remove + example: add type: string - x-enum-varnames: - - USAGE_ATTRIBUTION_TYPES - UsageDataObject: - description: Usage data. + x-enum-varnames: ["ADD", "REMOVE"] + TeamsOwnershipMappingBatchOperationRef: + description: Identifies an existing mapping to remove. Required when `op` is `remove`. properties: - attributes: - $ref: "#/components/schemas/UsageAttributesObject" id: - description: Unique ID of the response. + description: The ID of the mapping to remove. + example: "456" type: string type: - $ref: "#/components/schemas/UsageTimeSeriesType" + $ref: "#/components/schemas/TeamsOwnershipMappingType" + required: + - type + - id type: object - UsageLambdaTracedInvocationsResponse: - description: Lambda Traced Invocations usage response. + TeamsOwnershipMappingBatchRequest: + description: The request body for bulk-creating and bulk-removing teams ownership mappings. properties: - data: - description: Response containing Lambda Traced Invocations usage. + atomic:operations: + description: The list of add and remove operations to apply atomically. items: - $ref: "#/components/schemas/UsageDataObject" + $ref: "#/components/schemas/TeamsOwnershipMappingBatchOperation" type: array + required: + - atomic:operations type: object - UsageObservabilityPipelinesResponse: - description: Observability Pipelines usage response. + TeamsOwnershipMappingBatchResponse: + description: |- + The response body for the bulk create and remove operation. On success, `atomic:results` + contains one entry per operation. Add results appear before remove results and may not match + request order. Correlate add results by their `type` and `id` rather than by array position. + On failure, no operations were applied and `errors` describes what went wrong. properties: - data: - description: Response containing Observability Pipelines usage. + atomic:results: + description: |- + The result of each operation. + Add operations are processed first, then remove operations, so results may not appear + in the same order as the request. Present only on success. items: - $ref: "#/components/schemas/UsageDataObject" + $ref: "#/components/schemas/TeamsOwnershipMappingBatchResult" + type: array + errors: + description: The validation or processing errors encountered. Present only when the request could not be completed. + items: + $ref: "#/components/schemas/TeamsOwnershipMappingBatchError" type: array type: object - UsageQuotaBulkResultAttributes: - description: Attributes of a usage quota bulk write result. On success, all fields except `error` are present. On failure, only `error` is present and the other fields are omitted. + TeamsOwnershipMappingBatchResult: + description: |- + The result of a single operation. + Add operations are processed first, then remove operations, so results may not appear + in the same order as the request. Empty for `remove` operations. properties: - enforced: - description: Whether usage above the limit is actively blocked instead of only tracked or alerted on. Omitted if this item failed to write. - example: true - type: boolean - error: - description: An error message describing why this item failed to write. Omitted if this item was written successfully. - example: usage_limit is out of range - type: string - org_public_id: - description: The public ID of the organization that owns the quota. Omitted if this item failed to write. - example: abcdef12345 - type: string - scope: - $ref: "#/components/schemas/UsageQuotaResponseScope" - usage_limit: - description: The quota limit in the usage units defined by the quota namespace. May be fractional for quotas configured before public writes required whole units. Omitted if this item failed to write. - example: 100000 - format: double - type: number + data: + $ref: "#/components/schemas/TeamsOwnershipMappingBatchResultData" type: object - UsageQuotaBulkResultData: - description: The result of writing one usage quota in a bulk create-or-update request. + TeamsOwnershipMappingBatchResultData: + description: The mapping created by an `add` operation. properties: attributes: - $ref: "#/components/schemas/UsageQuotaBulkResultAttributes" + $ref: "#/components/schemas/TeamsOwnershipMappingBatchResultDataAttributes" id: - description: An opaque usage quota identifier. Clients must pass this value back verbatim in update and delete requests and must not infer any structure from it. - example: "MjAfYWlfY3JlZGl0c1911c2VyX2hhbmRsZTpfX0FMTF9f" + description: The unique identifier of the teams ownership mapping. + example: "123" type: string type: - $ref: "#/components/schemas/UsageQuotaType" + $ref: "#/components/schemas/TeamsOwnershipMappingType" required: - - id - type + - id - attributes type: object - UsageQuotaBulkResultDataList: - description: The results of writing each usage quota in a bulk create-or-update request, in the same order as the request. - items: - $ref: "#/components/schemas/UsageQuotaBulkResultData" - type: array - UsageQuotaCreateAttributes: - description: Attributes for creating or updating a usage quota by scope. + TeamsOwnershipMappingBatchResultDataAttributes: + description: The attributes of a mapping created by an `add` operation. properties: - enforced: - description: Whether to actively block usage above the limit instead of only tracking or alerting on it. - example: true - type: boolean - scope: - $ref: "#/components/schemas/UsageQuotaRequestScope" - usage_limit: - description: The quota limit to set in the usage units defined by the quota namespace. For an organization-wide quota (scope omitted), the limit must be greater than the usage already recorded in the current period. - example: 100000 + application_id: + description: The ID of the RUM application, when one was provided. + example: "11111111-2222-3333-4444-555555555555" + format: uuid + type: string + created_at: + description: Timestamp when the mapping was created. + example: "2026-01-15T09:30:00.000Z" + format: date-time + type: string + created_by: + description: The UUID of the user who created the mapping. + example: "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" + type: string + match_type: + $ref: "#/components/schemas/TeamsOwnershipMatchType" + org_id: + description: The ID of the organization that owns this mapping. + example: 123456 format: int64 - minimum: 0 type: integer + service: + description: The RUM application's service name, when one was provided. + example: "web-checkout" + type: string + team_handle: + description: The handle of the team that owns the matched RUM views. + example: "team-rum" + type: string + view_name: + description: The RUM view name to match, or its prefix when `match_type` is `prefix`. + example: "/checkout" + type: string required: - - usage_limit - - enforced + - team_handle + - view_name + - org_id + - created_at + - created_by + - match_type type: object - UsageQuotaCreateData: - description: A usage quota resource to create or update by scope. + TeamsOwnershipMappingCreateData: + description: The JSON:API data envelope for a teams ownership mapping create request. properties: attributes: - $ref: "#/components/schemas/UsageQuotaCreateAttributes" + $ref: "#/components/schemas/TeamsOwnershipMappingCreateDataAttributes" type: - $ref: "#/components/schemas/UsageQuotaType" + $ref: "#/components/schemas/TeamsOwnershipMappingType" required: - type - attributes type: object - UsageQuotaCreateDataList: - description: A bulk list of usage quota resources to create or update by scope. - items: - $ref: "#/components/schemas/UsageQuotaCreateData" - minItems: 1 - type: array - UsageQuotaRequestScope: - additionalProperties: - example: jane@example.com - type: string - description: A namespace-specific key and value identifying what the quota applies to within an organization. The object must contain exactly one entry. Use `"*"` as the value for the default quota applied to entities without a specific quota, or omit the scope for an organization-wide quota. A specific value must identify an existing user handle in the caller's organization when `include_descendants` is false. When `include_descendants` is true, the handle must exist in the caller's organization or in at least one targeted descendant organization; the quota is then applied only to the organizations where that handle exists, and the request fails only if the handle exists in none of them. - example: - user_handle: jane@example.com - maxProperties: 1 - minProperties: 1 + TeamsOwnershipMappingCreateDataAttributes: + description: The attributes of the teams ownership mapping to create. + properties: + application_id: + description: |- + The ID of the RUM application this mapping applies to. + For browser applications, provide the real application UUID — the team is applied to the view regardless of service. + For mobile applications, omit this field (or set it to the nil UUID `00000000-0000-0000-0000-000000000000`) — the team is applied to the view and service combination across all applications. + example: "11111111-2222-3333-4444-555555555555" + format: uuid + type: string + match_type: + $ref: "#/components/schemas/TeamsOwnershipMatchType" + service: + description: The RUM application's service name. For browser applications, this is optional. For mobile applications, this is required and scopes the ownership to a specific service. + example: "web-checkout" + type: string + team_handle: + description: The handle of the team that owns the matched RUM views. + example: "team-rum" + type: string + view_name: + description: The RUM view name to match, or its prefix when `match_type` is `prefix`. + example: "/checkout" + type: string + required: + - team_handle + - view_name type: object - UsageQuotaResponse: - description: Response containing a usage quota. + TeamsOwnershipMappingCreateRequest: + description: The request body for creating a teams ownership mapping. properties: data: - $ref: "#/components/schemas/UsageQuotaResponseData" + $ref: "#/components/schemas/TeamsOwnershipMappingCreateData" required: - data type: object - UsageQuotaResponseAttributes: - description: Attributes of a usage quota. + TeamsOwnershipMappingResponse: + description: The response body for a single teams ownership mapping. properties: - enforced: - description: Whether usage above the limit is actively blocked instead of only tracked or alerted on. - example: true - type: boolean - org_public_id: - description: The public ID of the organization that owns the quota. - example: abcdef12345 + data: + $ref: "#/components/schemas/TeamsOwnershipMappingResponseData" + required: + - data + type: object + TeamsOwnershipMappingResponseAttributes: + description: The attributes of a teams ownership mapping. + properties: + application_id: + description: |- + The ID of the RUM application this mapping applies to. + For browser applications, this is the real application UUID. + For mobile applications, this is the nil UUID `00000000-0000-0000-0000-000000000000` (wildcard), meaning the ownership applies across all applications. + example: "11111111-2222-3333-4444-555555555555" + type: string + created_at: + description: Timestamp when the mapping was created. + example: "2026-01-15T09:30:00.000Z" + format: date-time + type: string + created_by: + description: The UUID of the user who created the mapping. + example: "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" + type: string + match_type: + $ref: "#/components/schemas/TeamsOwnershipMatchType" + org_id: + description: The ID of the organization that owns this mapping. + example: 123456 + format: int64 + type: integer + service: + description: The RUM application's service name. For browser applications, may be empty. For mobile applications, this is the service that scopes the ownership. + example: "web-checkout" + type: string + team_handle: + description: The handle of the team that owns the matched RUM views. + example: "team-rum" + type: string + view_name: + description: The RUM view name to match, or its prefix when `match_type` is `prefix`. + example: "/checkout" type: string - scope: - $ref: "#/components/schemas/UsageQuotaResponseScope" - usage_limit: - description: The quota limit in the usage units defined by the quota namespace. May be fractional for quotas configured before public writes required whole units. - example: 100000 - format: double - type: number required: - - org_public_id - - usage_limit - - enforced + - team_handle + - view_name + - service + - application_id + - org_id + - created_at + - created_by + - match_type type: object - UsageQuotaResponseData: - description: A usage quota resource. + TeamsOwnershipMappingResponseData: + description: The JSON:API data envelope for a teams ownership mapping. properties: attributes: - $ref: "#/components/schemas/UsageQuotaResponseAttributes" + $ref: "#/components/schemas/TeamsOwnershipMappingResponseAttributes" id: - description: An opaque usage quota identifier. Clients must pass this value back verbatim in update and delete requests and must not infer any structure from it. - example: "MjAfYWlfY3JlZGl0c1911c2VyX2hhbmRsZTpfX0FMTF9f" + description: The unique identifier of the teams ownership mapping. + example: "123" type: string type: - $ref: "#/components/schemas/UsageQuotaType" + $ref: "#/components/schemas/TeamsOwnershipMappingType" required: - id - type - attributes type: object - UsageQuotaResponseDataList: - description: A list of usage quota resources. - items: - $ref: "#/components/schemas/UsageQuotaResponseData" - type: array - UsageQuotaResponseScope: - additionalProperties: - example: jane@example.com - type: string - description: A namespace-specific key and value identifying what the quota applies to within an organization. The object contains exactly one entry. A value of `"*"` identifies the default quota applied to entities without a specific quota. This field is omitted for an organization-wide quota. - example: - user_handle: jane@example.com - maxProperties: 1 - minProperties: 1 + TeamsOwnershipMappingType: + default: teams_ownership_mappings + description: The type of the resource. The value should always be teams_ownership_mappings. + enum: + - teams_ownership_mappings + example: teams_ownership_mappings + type: string + x-enum-varnames: ["TEAMS_OWNERSHIP_MAPPINGS"] + TeamsOwnershipMappingsResponse: + description: The response body for a list of teams ownership mappings. + properties: + data: + description: A list of teams ownership mappings. + items: + $ref: "#/components/schemas/TeamsOwnershipMappingResponseData" + type: array + required: + - data type: object - UsageQuotaType: - description: The JSON:API resource type for a usage quota. + TeamsOwnershipMatchType: + default: exact + description: How the `view_name` is matched against RUM view names. enum: - - quotas - example: quotas + - exact + - prefix + example: exact type: string - x-enum-varnames: - - QUOTAS - UsageQuotaUpdateAttributes: - description: Attributes to update on a usage quota. Omitting a property leaves its current value unchanged. + x-enum-varnames: ["EXACT", "PREFIX"] + TeamsOwnershipRuleResponseAttributes: + description: The attributes of a teams ownership rule. properties: - enforced: - description: Whether to actively block usage above the limit. Omit this field to leave the current enforcement setting unchanged. - example: false - nullable: true - type: boolean - usage_limit: - description: The new quota limit in the usage units defined by the quota namespace. For an organization-wide quota (empty scope), the limit must be greater than the usage already recorded in the current period. Omit this field to leave the current limit unchanged. - example: 120000 - format: int64 - minimum: 0 - nullable: true - type: integer + application_id: + description: |- + The ID of the RUM application this mapping applies to. + For browser applications, this is the real application UUID. + For mobile applications, this is the nil UUID `00000000-0000-0000-0000-000000000000` (wildcard), meaning the ownership applies across all applications. + example: "11111111-2222-3333-4444-555555555555" + type: string + match_type: + $ref: "#/components/schemas/TeamsOwnershipMatchType" + service: + description: The RUM application's service name. For browser applications, may be empty. For mobile applications, this is the service that scopes the ownership. + example: "web-checkout" + type: string + teams: + description: The teams that own the matched views, each paired with the ID of its underlying mapping. + items: + $ref: "#/components/schemas/TeamsOwnershipRuleTeamMapping" + type: array + view_name: + description: The RUM view name to match, or its prefix when `match_type` is `prefix`. + example: "/checkout" + type: string + required: + - teams + - view_name + - service + - application_id + - match_type type: object - UsageQuotaUpdateData: - description: A usage quota resource to update. + TeamsOwnershipRuleResponseData: + description: The JSON:API data envelope for a teams ownership rule. properties: attributes: - $ref: "#/components/schemas/UsageQuotaUpdateAttributes" + $ref: "#/components/schemas/TeamsOwnershipRuleResponseAttributes" id: - description: The opaque usage quota identifier, which must match the identifier in the request path. - example: "MjAfYWlfY3JlZGl0c1911c2VyX2hhbmRsZTpfX0FMTF9f" + description: |- + A deterministic identifier derived from the rule's grouping key. + This ID cannot be used to delete the rule directly; delete individual mappings + using the `mapping_id` under `teams` instead. + example: "3b1e2f7a9c4d6e8f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f" type: string type: - $ref: "#/components/schemas/UsageQuotaType" + $ref: "#/components/schemas/TeamsOwnershipRuleType" required: - id - type - attributes type: object - UsageQuotaUpdateRequest: - description: Request containing the usage quota resource to update. - properties: - data: - $ref: "#/components/schemas/UsageQuotaUpdateData" - required: - - data - type: object - UsageQuotasBulkResponse: - description: Response containing the result of a bulk usage quota create-or-update request. Returned with a `200` status regardless of whether individual items succeeded or failed; check each item's `error` attribute to determine its outcome. + TeamsOwnershipRuleTeamMapping: + description: An individual team's ownership entry within a teams ownership rule. properties: - data: - $ref: "#/components/schemas/UsageQuotaBulkResultDataList" + mapping_id: + description: The ID of the underlying mapping, used to delete this team's ownership individually. + example: "123" + type: string + team_handle: + description: The handle of the owning team. + example: "team-rum" + type: string required: - - data + - team_handle + - mapping_id type: object - UsageQuotasCreateRequest: - description: A JSON:API bulk request containing an array of usage quota resources rather than a single resource. + TeamsOwnershipRuleType: + default: teams_ownership_grouped_mappings + description: The type of the resource. The value should always be teams_ownership_grouped_mappings. + enum: + - teams_ownership_grouped_mappings + example: teams_ownership_grouped_mappings + type: string + x-enum-varnames: ["TEAMS_OWNERSHIP_GROUPED_MAPPINGS"] + TeamsOwnershipRulesResponse: + description: The response body for a list of teams ownership rules. properties: data: - $ref: "#/components/schemas/UsageQuotaCreateDataList" + description: A list of teams ownership rules. + items: + $ref: "#/components/schemas/TeamsOwnershipRuleResponseData" + type: array required: - data type: object - UsageQuotasListResponse: - description: Response containing a paginated list of usage quotas. + TeamsResponse: + description: Response with multiple teams properties: data: - $ref: "#/components/schemas/UsageQuotaResponseDataList" - meta: - $ref: "#/components/schemas/UsageQuotasResponseMeta" - required: - - data - - meta - type: object - UsageQuotasResponseMeta: - description: Pagination metadata for a usage quota list response. - properties: - page: - $ref: "#/components/schemas/UsageQuotasResponseMetaPage" - required: - - page - type: object - UsageQuotasResponseMetaPage: - description: Cursor pagination fields for a usage quota list response. - properties: - next_cursor: - description: An opaque cursor for retrieving the next page. Omitted when there are no more results. - example: eyJvZmZzZXQiOjEwMH0= - type: string - type: object - UsageSummaryAvailableFieldsAttributes: - description: |- - The lists of field names returned by `GET /api/v1/usage/summary` at each - of its three response levels. Each list contains every key the data endpoint - emits—both typed fields declared in the OpenAPI spec and untyped keys - exposed through `additionalProperties`. - properties: - date_fields: - description: |- - Sorted list of every key returned inside each `UsageSummaryDate` - entry of `usage[]` (typed fields and `additionalProperties` keys - combined). - items: - type: string - type: array - date_org_fields: - description: |- - Sorted list of every key returned inside each `UsageSummaryDateOrg` - entry of `usage[].orgs[]` (typed fields and `additionalProperties` - keys combined). + description: Teams response data items: - type: string + $ref: "#/components/schemas/Team" type: array - response_fields: - description: |- - Sorted list of every key returned as a direct property of - `UsageSummaryResponse` (typed fields and `additionalProperties` - keys combined). + included: + description: Resources related to the team items: - type: string + $ref: "#/components/schemas/TeamIncluded" type: array + links: + $ref: "#/components/schemas/TeamsResponseLinks" + meta: + $ref: "#/components/schemas/TeamsResponseMeta" type: object - UsageSummaryAvailableFieldsBody: - description: Available-fields data. + TeamsResponseLinks: + description: Teams response links. properties: - attributes: - $ref: "#/components/schemas/UsageSummaryAvailableFieldsAttributes" - id: - description: The identifier for the discovery scope. Always `"all"`. - example: all + first: + description: First link. + type: string + last: + description: Last link. + nullable: true + type: string + next: + description: Next link. + type: string + prev: + description: Previous link. + nullable: true + type: string + self: + description: Current link. type: string - type: - $ref: "#/components/schemas/UsageSummaryAvailableFieldsType" type: object - UsageSummaryAvailableFieldsResponse: - description: |- - Response listing every field name returned by `GET /api/v1/usage/summary` - at each of its three response levels. Includes both typed fields and untyped - `additionalProperties` keys. + TeamsResponseMeta: + description: Teams response metadata. properties: - data: - $ref: "#/components/schemas/UsageSummaryAvailableFieldsBody" + pagination: + $ref: "#/components/schemas/TeamsResponseMetaPagination" type: object - UsageSummaryAvailableFieldsType: - default: usage_summary_available_fields - description: Type of available-fields data. - enum: - - usage_summary_available_fields - type: string - x-enum-varnames: - - USAGE_SUMMARY_AVAILABLE_FIELDS - UsageTimeSeriesObject: - description: Usage timeseries data. + TeamsResponseMetaPagination: + description: Teams response metadata. properties: - timestamp: - description: Datetime in ISO-8601 format, UTC. The hour for the usage. - format: date-time - type: string - value: - description: Contains the number measured for the given usage_type during the hour. + first_offset: + description: The first offset. format: int64 - nullable: true type: integer - type: object - UsageTimeSeriesType: - default: usage_timeseries - description: Type of usage data. - enum: - - usage_timeseries - example: usage_timeseries - type: string - x-enum-varnames: - - USAGE_TIMESERIES - User: - description: User object returned by the API. + last_offset: + description: The last offset. + format: int64 + type: integer + limit: + description: Pagination limit. + format: int64 + type: integer + next_offset: + description: The next offset. + format: int64 + type: integer + offset: + description: The offset. + format: int64 + type: integer + prev_offset: + description: The previous offset. + format: int64 + type: integer + total: + description: Total results. + format: int64 + type: integer + type: + description: Offset type. + type: string + type: object + TenancyConfig: + description: Response containing a single OCI tenancy integration configuration. + example: + data: + attributes: + config_version: 2 + cost_collection_enabled: true + dd_compartment_id: ocid.compartment.test + dd_stack_id: ocid.stack.test + home_region: us-ashburn-1 + logs_config: + compartment_tag_filters: + - compartment.test + enabled: true + enabled_services: + - compute + metrics_config: + compartment_tag_filters: + - compartment.test + enabled: true + excluded_services: + - compute + regions_config: + available: + - us-ashburn-1 + - us-phoenix-1 + disabled: + - us-phoenix-1 + enabled: + - us-ashburn-1 + resource_collection_enabled: true + user_ocid: ocid.user.test + id: ocid.tenancy.test + type: oci_tenancy + properties: + data: + $ref: "#/components/schemas/TenancyConfigData" + type: object + TenancyConfigData: + description: A single OCI tenancy integration configuration resource object containing the tenancy ID, type, and configuration attributes. properties: attributes: - $ref: "#/components/schemas/UserAttributes" + $ref: "#/components/schemas/TenancyConfigDataAttributes" id: - description: ID of the user. + description: The OCID of the OCI tenancy. type: string - relationships: - $ref: "#/components/schemas/UserResponseRelationships" type: - $ref: "#/components/schemas/UsersType" + $ref: "#/components/schemas/UpdateTenancyConfigDataType" + required: + - type type: object - UserAttributes: - description: Attributes of user object returned by the API. + TenancyConfigDataAttributes: + description: Attributes of an OCI tenancy integration configuration, including authentication details, region settings, and collection options. properties: - created_at: - description: The ISO 8601 timestamp of when the user account was created. - format: date-time - type: string - disabled: - description: Whether the user account is deactivated. Disabled users cannot log in. + billing_plan_id: + description: The identifier of the billing plan associated with the OCI tenancy. + format: int32 + maximum: 2147483647 + type: integer + config_version: + description: Version number of the integration the tenancy is integrated with + format: int64 + type: integer + cost_collection_enabled: + description: Whether cost data collection from OCI is enabled for the tenancy. type: boolean - email: - description: The email address of the user, used for login and notifications. - type: string - handle: - description: The unique handle (username) of the user, typically matching their email prefix. - type: string - icon: - description: URL of the user's profile icon, typically a Gravatar URL derived from the email address. + dd_compartment_id: + description: The OCID of the OCI compartment used by the Datadog integration stack. type: string - last_login_time: - description: The ISO 8601 timestamp of the user's most recent login, or null if the user has never logged in. - format: date-time - nullable: true - readOnly: true + dd_stack_id: + description: The OCID of the OCI Resource Manager stack used by the Datadog integration. type: string - mfa_enabled: - description: Whether multi-factor authentication (MFA) is enabled for the user's account. - readOnly: true - type: boolean - modified_at: - description: The ISO 8601 timestamp of when the user account was last modified. - format: date-time + home_region: + description: The home region of the OCI tenancy (for example, us-ashburn-1). type: string - name: - description: The full display name of the user as shown in the Datadog UI. - nullable: true + logs_config: + $ref: "#/components/schemas/TenancyConfigDataAttributesLogsConfig" + metrics_config: + $ref: "#/components/schemas/TenancyConfigDataAttributesMetricsConfig" + parent_tenancy_name: + description: The name of the parent OCI tenancy, if applicable. type: string - service_account: - description: |- - Whether this is a service account rather than a human user. - Service accounts are used for programmatic API access. + regions_config: + $ref: "#/components/schemas/TenancyConfigDataAttributesRegionsConfig" + resource_collection_enabled: + description: Whether resource collection from OCI is enabled for the tenancy. type: boolean - status: - description: The current status of the user account (for example, `Active`, `Pending`, or `Disabled`). - type: string - title: - description: The job title of the user (for example, "Senior Engineer" or "Product Manager"). - nullable: true + tenancy_name: + description: The human-readable name of the OCI tenancy. type: string - uuid: - description: The globally unique identifier (UUID) of the user. - readOnly: true + user_ocid: + description: The OCID of the OCI user used by the Datadog integration for authentication. type: string - verified: - description: Whether the user's email address has been verified. - type: boolean type: object - UserAttributesStatus: - description: The user's status. - enum: - - active - - deactivated - - pending - type: string - x-enum-varnames: - - ACTIVE - - DEACTIVATED - - PENDING - UserAuthorizedClientAttributes: - description: Attributes of a user authorized client. + TenancyConfigDataAttributesLogsConfig: + description: Log collection configuration for an OCI tenancy, indicating which compartments and services have log collection enabled. properties: - created_at: - description: The date and time this authorization was created. - example: "2024-01-10T08:00:00+00:00" - format: date-time - type: string - disabled: - description: Whether the user has disabled this authorization. - example: false + compartment_tag_filters: + description: List of compartment tag filters scoping log collection to specific compartments. + items: + description: A compartment tag filter in key:value format (for example, datadog:true). + type: string + type: array + enabled: + description: Whether log collection is enabled for the tenancy. type: boolean - last_exercised: - description: The date and time this authorization was last exercised. - example: "2024-01-15T10:30:00+00:00" - format: date-time - nullable: true - type: string - modified_at: - description: The date and time this authorization was last modified. - example: "2024-01-10T08:00:00+00:00" - format: date-time - type: string - org_disabled: - description: Whether the organization has disabled this authorization. - example: false + enabled_services: + description: List of OCI service names for which log collection is enabled. + items: + description: An OCI service name for which log collection is enabled (for example, compute). + type: string + type: array + type: object + TenancyConfigDataAttributesMetricsConfig: + description: Metrics collection configuration for an OCI tenancy, indicating which compartments and services are included or excluded. + properties: + compartment_tag_filters: + description: List of compartment tag filters scoping metrics collection to specific compartments. + items: + description: A compartment tag filter in key:value format (for example, datadog:true). + type: string + type: array + enabled: + description: Whether metrics collection is enabled for the tenancy. type: boolean - required: - - created_at - - modified_at - - last_exercised - - disabled - - org_disabled + excluded_services: + description: List of OCI service names excluded from metrics collection. + items: + description: An OCI service name excluded from metrics collection (for example, compute). + type: string + type: array type: object - UserAuthorizedClientData: - description: Data object representing a user authorized client. + TenancyConfigDataAttributesRegionsConfig: + description: Region configuration for an OCI tenancy, indicating which regions are available, enabled, or disabled for data collection. properties: - attributes: - $ref: "#/components/schemas/UserAuthorizedClientAttributes" - id: - description: The unique identifier of the user authorized client. - example: "00000000-0000-0000-0000-000000000001" - type: string - relationships: - $ref: "#/components/schemas/UserAuthorizedClientRelationships" - type: - $ref: "#/components/schemas/UserAuthorizedClientType" - required: - - id - - type - - attributes - - relationships + available: + description: List of OCI regions available for data collection in the tenancy. + items: + description: An OCI region identifier (for example, us-ashburn-1). + type: string + type: array + disabled: + description: List of OCI regions explicitly disabled for data collection. + items: + description: An OCI region identifier (for example, us-phoenix-1). + type: string + type: array + enabled: + description: List of OCI regions enabled for data collection. + items: + description: An OCI region identifier (for example, us-ashburn-1). + type: string + type: array type: object - UserAuthorizedClientDataList: - description: List of user authorized client data objects. - items: - $ref: "#/components/schemas/UserAuthorizedClientData" - type: array - UserAuthorizedClientRelationshipOAuth2Client: - description: Relationship to the OAuth2 client that was authorized. + TenancyConfigList: + description: Response containing a list of OCI tenancy integration configurations. + example: + data: + - attributes: + config_version: 2 + cost_collection_enabled: true + dd_compartment_id: ocid.compartment.test + dd_stack_id: ocid.stack.test + home_region: us-ashburn-1 + logs_config: + compartment_tag_filters: + - compartment.test + enabled: true + enabled_services: + - compute + metrics_config: + compartment_tag_filters: + - compartment.test + enabled: true + excluded_services: + - compute + regions_config: + available: + - us-ashburn-1 + - us-phoenix-1 + disabled: + - us-phoenix-1 + enabled: + - us-ashburn-1 + resource_collection_enabled: true + user_ocid: ocid.user.test + id: ocid.tenancy.test + type: oci_tenancy properties: data: - $ref: "#/components/schemas/UserAuthorizedClientRelationshipOAuth2ClientData" + description: List of OCI tenancy integration configuration objects. + items: + $ref: "#/components/schemas/TenancyConfigData" + type: array required: - data type: object - UserAuthorizedClientRelationshipOAuth2ClientData: - description: Data identifying the OAuth2 client that was authorized. - properties: - id: - description: The ID of the OAuth2 client. - example: "00000000-0000-0000-0000-000000000010" - type: string - type: - $ref: "#/components/schemas/UserAuthorizedClientRelationshipOAuth2ClientDataType" - required: - - type - - id - type: object - UserAuthorizedClientRelationshipOAuth2ClientDataType: - description: OAuth2 client resource type. - enum: - - oauth2_clients - example: oauth2_clients - type: string - x-enum-varnames: - - OAUTH2_CLIENTS - UserAuthorizedClientRelationshipScopeData: - description: Data identifying a scope granted to the OAuth2 client. + TenancyProductsData: + description: A single OCI tenancy product resource object containing the tenancy ID, type, and product attributes. properties: + attributes: + $ref: "#/components/schemas/TenancyProductsDataAttributes" id: - description: The identifier of the scope. - example: "example_scope" + description: The OCID of the OCI tenancy. type: string type: - $ref: "#/components/schemas/UserAuthorizedClientRelationshipScopeDataType" + $ref: "#/components/schemas/TenancyProductsDataType" required: - type - - id - type: object - UserAuthorizedClientRelationshipScopeDataList: - description: List of scope relationship data objects. - items: - $ref: "#/components/schemas/UserAuthorizedClientRelationshipScopeData" - type: array - UserAuthorizedClientRelationshipScopeDataType: - description: Scope resource type. - enum: - - scopes - example: scopes - type: string - x-enum-varnames: - - SCOPES - UserAuthorizedClientRelationshipScopes: - description: Relationship to the scopes granted to the OAuth2 client. - properties: - data: - $ref: "#/components/schemas/UserAuthorizedClientRelationshipScopeDataList" - required: - - data type: object - UserAuthorizedClientRelationshipUser: - description: Relationship to the user who granted this authorization. + TenancyProductsDataAttributes: + description: Attributes of an OCI tenancy product resource, containing the list of available products and their enablement status. properties: - data: - $ref: "#/components/schemas/UserAuthorizedClientRelationshipUserData" - required: - - data + products: + description: List of Datadog products and their enablement status for the tenancy. + items: + $ref: "#/components/schemas/TenancyProductsDataAttributesProductsItems" + type: array type: object - UserAuthorizedClientRelationshipUserData: - description: Data identifying the user who granted this authorization. + TenancyProductsDataAttributesProductsItems: + description: An individual Datadog product with its enablement status for a tenancy. properties: - id: - description: The ID of the user. - example: "00000000-0000-9999-0000-000000000001" + enabled: + description: Indicates whether the product is enabled for the tenancy. + type: boolean + product_key: + description: The unique key identifying the Datadog product (for example, CLOUD_SECURITY_POSTURE_MANAGEMENT). type: string - type: - $ref: "#/components/schemas/UserAuthorizedClientRelationshipUserDataType" - required: - - type - - id type: object - UserAuthorizedClientRelationshipUserDataType: - description: User resource type. + TenancyProductsDataType: + default: oci_tenancy_product + description: OCI tenancy product resource type. enum: - - users - example: users + - oci_tenancy_product + example: oci_tenancy_product type: string x-enum-varnames: - - USERS - UserAuthorizedClientRelationships: - description: Relationships for a user authorized client. - properties: - oauth2_client: - $ref: "#/components/schemas/UserAuthorizedClientRelationshipOAuth2Client" - scopes: - $ref: "#/components/schemas/UserAuthorizedClientRelationshipScopes" - user: - $ref: "#/components/schemas/UserAuthorizedClientRelationshipUser" - required: - - user - - oauth2_client - - scopes - type: object - UserAuthorizedClientResponse: - description: Response containing a single user authorized client. + - OCI_TENANCY_PRODUCT + TenancyProductsList: + description: Response containing a list of OCI tenancy product resources with their product enablement status. + example: + data: + - attributes: + products: + - enabled: true + product_key: CLOUD_SECURITY_POSTURE_MANAGEMENT + id: ocid.tenancy.test + type: oci_tenancy_product properties: data: - $ref: "#/components/schemas/UserAuthorizedClientData" + description: List of OCI tenancy product resource objects. + items: + $ref: "#/components/schemas/TenancyProductsData" + type: array required: - data type: object - UserAuthorizedClientType: - description: The resource type for user authorized clients. - enum: - - user_authorized_clients - example: user_authorized_clients - type: string - x-enum-varnames: - - USER_AUTHORIZED_CLIENTS - UserAuthorizedClientsResponse: - description: Response containing a list of user authorized clients. + TestOptimizationDeleteServiceSettingsRequest: + description: Request object for deleting Test Optimization service settings. properties: data: - $ref: "#/components/schemas/UserAuthorizedClientDataList" - meta: - $ref: "#/components/schemas/ResponseMetaAttributes" + $ref: "#/components/schemas/TestOptimizationDeleteServiceSettingsRequestData" required: - data - - meta type: object - UserCreateAttributes: - description: Attributes of the created user. + TestOptimizationDeleteServiceSettingsRequestAttributes: + description: Attributes for deleting Test Optimization service settings. properties: - email: - description: The email of the user. - example: "jane.doe@example.com" + env: + description: The environment name. If omitted, defaults to `none`. + example: prod type: string - name: - description: The name of the user. + repository_id: + description: The repository identifier. + example: github.com/datadog/shopist + minLength: 1 type: string - title: - description: The title of the user. + service_name: + description: The service name. + example: shopist + minLength: 1 type: string required: - - email + - repository_id + - service_name type: object - UserCreateData: - description: Object to create a user. + TestOptimizationDeleteServiceSettingsRequestData: + description: Data object for delete service settings request. properties: attributes: - $ref: "#/components/schemas/UserCreateAttributes" - relationships: - $ref: "#/components/schemas/UserRelationships" + $ref: "#/components/schemas/TestOptimizationDeleteServiceSettingsRequestAttributes" type: - $ref: "#/components/schemas/UsersType" + $ref: "#/components/schemas/TestOptimizationDeleteServiceSettingsRequestDataType" required: - - attributes - type + - attributes type: object - UserCreateRequest: - description: Create a user. + TestOptimizationDeleteServiceSettingsRequestDataType: + description: |- + JSON:API type for delete service settings request. + The value must always be `test_optimization_delete_service_settings_request`. + enum: + - test_optimization_delete_service_settings_request + example: test_optimization_delete_service_settings_request + type: string + x-enum-varnames: + - TEST_OPTIMIZATION_DELETE_SERVICE_SETTINGS_REQUEST + TestOptimizationFlakyTestsManagementPoliciesAttemptToFix: + description: Configuration for the attempt-to-fix Flaky Tests Management policy. properties: - data: - $ref: "#/components/schemas/UserCreateData" - required: - - data + retries: + description: Number of retries when attempting to fix a flaky test. Must be greater than 0. + example: 3 + format: int64 + type: integer type: object - UserInvitationData: - description: Object to create a user invitation. + TestOptimizationFlakyTestsManagementPoliciesAttributes: + description: Attributes of the Flaky Tests Management policies for a repository. properties: - relationships: - $ref: "#/components/schemas/UserInvitationRelationships" - type: - $ref: "#/components/schemas/UserInvitationsType" - required: - - type - - relationships + attempt_to_fix: + $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesAttemptToFix" + disabled: + $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesDisabled" + quarantined: + $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesQuarantined" + repository_id: + description: The repository identifier. + example: github.com/datadog/shopist + type: string type: object - UserInvitationDataAttributes: - description: Attributes of a user invitation. + TestOptimizationFlakyTestsManagementPoliciesAutoDisableRule: + description: Automatic disable triggering rule based on a time window and test status. properties: - created_at: - description: Creation time of the user invitation. - format: date-time - type: string - expires_at: - description: Time of invitation expiration. - format: date-time - type: string - invite_type: - description: Type of invitation. - type: string - uuid: - description: UUID of the user invitation. - type: string + enabled: + description: Whether this auto-disable rule is enabled. + example: false + type: boolean + status: + $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesDisabledStatus" + window_seconds: + description: Time window in seconds over which flakiness is evaluated. Must be greater than 0. + example: 3600 + format: int64 + type: integer type: object - UserInvitationRelationships: - description: Relationships data for user invitation. + TestOptimizationFlakyTestsManagementPoliciesAutoQuarantineRule: + description: Automatic quarantine triggering rule based on a time window. properties: - user: - $ref: "#/components/schemas/RelationshipToUser" - required: - - user + enabled: + description: Whether this auto-quarantine rule is enabled. + example: true + type: boolean + window_seconds: + description: Time window in seconds over which flakiness is evaluated. Must be greater than 0. + example: 3600 + format: int64 + type: integer type: object - UserInvitationResponse: - description: User invitation as returned by the API. + TestOptimizationFlakyTestsManagementPoliciesBranchRule: + description: Branch filtering rule for a Flaky Tests Management policy. properties: - data: - $ref: "#/components/schemas/UserInvitationResponseData" + branches: + description: List of branches to which the policy applies. + example: + - main + items: + description: A branch name. + type: string + type: array + enabled: + description: Whether this branch rule is enabled. + example: true + type: boolean + excluded_branches: + description: List of branches excluded from the policy. + example: [] + items: + description: A branch name. + type: string + type: array + excluded_test_services: + description: List of test services excluded from the policy. + example: [] + items: + description: A test service name. + type: string + type: array type: object - UserInvitationResponseData: - description: Object of a user invitation returned by the API. + TestOptimizationFlakyTestsManagementPoliciesData: + description: Data object for Flaky Tests Management policies response. properties: attributes: - $ref: "#/components/schemas/UserInvitationDataAttributes" + $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesAttributes" id: - description: ID of the user invitation. + description: The repository identifier used as the resource ID. + example: github.com/datadog/shopist type: string - relationships: - $ref: "#/components/schemas/UserInvitationRelationships" type: - $ref: "#/components/schemas/UserInvitationsType" + $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesType" type: object - UserInvitationsRequest: - description: Object to invite users to join the organization. + TestOptimizationFlakyTestsManagementPoliciesDisabled: + description: Configuration for the disabled Flaky Tests Management policy. properties: - data: - description: "List of user invitations." - example: [] - items: - $ref: "#/components/schemas/UserInvitationData" - type: array - required: - - data + auto_disable_rule: + $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesAutoDisableRule" + branch_rule: + $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesBranchRule" + enabled: + description: Whether the disabled policy is enabled. + example: false + type: boolean + failure_rate_rule: + $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesDisabledFailureRateRule" type: object - UserInvitationsResponse: - description: User invitations as returned by the API. + TestOptimizationFlakyTestsManagementPoliciesDisabledFailureRateRule: + description: Failure-rate-based rule for the disabled policy. properties: - data: - description: Array of user invitations. + branches: + description: List of branches to which this rule applies. + example: [] items: - $ref: "#/components/schemas/UserInvitationResponseData" + description: A branch name. + type: string type: array + enabled: + description: Whether this failure rate rule is enabled. + example: false + type: boolean + min_runs: + description: Minimum number of runs required before the rule is evaluated. Must be greater than or equal to 0. + example: 10 + format: int64 + type: integer + status: + $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesDisabledStatus" + threshold: + description: Failure rate threshold (0.0–1.0) above which the rule triggers. + example: 0.5 + format: double + type: number type: object - UserInvitationsType: - default: user_invitations - description: User invitations type. + TestOptimizationFlakyTestsManagementPoliciesDisabledStatus: + description: |- + Test status that the disable policy applies to. + Must be either `active` or `quarantined`. enum: - - user_invitations - example: user_invitations + - active + - quarantined + example: active type: string x-enum-varnames: - - USER_INVITATIONS - UserOverrideIdentityProviderAttributes: - description: Attributes of an identity provider override for a user. + - ACTIVE + - QUARANTINED + TestOptimizationFlakyTestsManagementPoliciesGetRequest: + description: Request object for getting Flaky Tests Management policies. properties: - authentication_method: - description: The authentication method used by this identity provider. - example: "SAML" + data: + $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesGetRequestData" + required: + - data + type: object + TestOptimizationFlakyTestsManagementPoliciesGetRequestAttributes: + description: Attributes for requesting Flaky Tests Management policies. + properties: + repository_id: + description: The repository identifier. + example: github.com/datadog/shopist + minLength: 1 type: string required: - - authentication_method + - repository_id type: object - UserOverrideIdentityProviderData: - description: Data object representing a user identity provider override. + TestOptimizationFlakyTestsManagementPoliciesGetRequestData: + description: Data object for get Flaky Tests Management policies request. properties: attributes: - $ref: "#/components/schemas/UserOverrideIdentityProviderAttributes" - id: - description: The unique identifier of the identity provider. - example: "00000000-0000-0000-0000-000000000001" - type: string + $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesGetRequestAttributes" type: - $ref: "#/components/schemas/UserOverrideIdentityProviderDataType" + $ref: "#/components/schemas/TestOptimizationGetFlakyTestsManagementPoliciesRequestDataType" required: - - id - type - attributes type: object - UserOverrideIdentityProviderDataList: - description: List of user identity provider override data objects. - items: - $ref: "#/components/schemas/UserOverrideIdentityProviderData" - type: array - UserOverrideIdentityProviderDataType: - description: The resource type for identity providers. - enum: - - identity_providers - example: identity_providers - type: string - x-enum-varnames: - - IDENTITY_PROVIDERS - UserOverrideIdentityProvidersResponse: - description: Response containing a user's identity provider overrides. - properties: - data: - $ref: "#/components/schemas/UserOverrideIdentityProviderDataList" - required: - - data - type: object - UserRelationshipData: - description: Relationship to user object. + TestOptimizationFlakyTestsManagementPoliciesQuarantined: + description: Configuration for the quarantined Flaky Tests Management policy. properties: - id: - description: A unique identifier that represents the user. - example: "00000000-0000-0000-0000-000000000000" - type: string - type: - $ref: "#/components/schemas/UserResourceType" - required: - - id - - type + auto_quarantine_rule: + $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesAutoQuarantineRule" + branch_rule: + $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesBranchRule" + enabled: + description: Whether the quarantined policy is enabled. + example: true + type: boolean + failure_rate_rule: + $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesQuarantinedFailureRateRule" type: object - UserRelationshipIdentityProviderData: - description: Resource identifier for an identity provider in a relationship update. + TestOptimizationFlakyTestsManagementPoliciesQuarantinedFailureRateRule: + description: Failure-rate-based rule for the quarantined policy. properties: - id: - description: The unique identifier of the identity provider. - example: "00000000-0000-0000-0000-000000000001" - type: string - type: - $ref: "#/components/schemas/UserRelationshipIdentityProviderDataType" - required: - - id - - type + branches: + description: List of branches to which this rule applies. + example: + - main + items: + description: A branch name. + type: string + type: array + enabled: + description: Whether this failure rate rule is enabled. + example: true + type: boolean + min_runs: + description: Minimum number of runs required before the rule is evaluated. Must be greater than or equal to 0. + example: 10 + format: int64 + type: integer + threshold: + description: Failure rate threshold (0.0–1.0) above which the rule triggers. + example: 0.5 + format: double + type: number type: object - UserRelationshipIdentityProviderDataList: - description: List of identity provider resource identifiers for a relationship update. - items: - $ref: "#/components/schemas/UserRelationshipIdentityProviderData" - type: array - UserRelationshipIdentityProviderDataType: - description: The resource type for identity providers. - enum: - - identity_providers - example: identity_providers - type: string - x-enum-varnames: - - IDENTITY_PROVIDERS - UserRelationships: - description: Relationships of the user object. + TestOptimizationFlakyTestsManagementPoliciesResponse: + description: Response object containing Flaky Tests Management policies for a repository. properties: - roles: - $ref: "#/components/schemas/RelationshipToRoles" + data: + $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesData" type: object - UserResourceType: - default: user - description: User resource type. + TestOptimizationFlakyTestsManagementPoliciesType: + description: |- + JSON:API type for Flaky Tests Management policies response. + The value must always be `test_optimization_flaky_tests_management_policies`. enum: - - user - example: user + - test_optimization_flaky_tests_management_policies + example: test_optimization_flaky_tests_management_policies type: string x-enum-varnames: - - USER - UserResponse: - description: Response containing information about a single user. + - TEST_OPTIMIZATION_FLAKY_TESTS_MANAGEMENT_POLICIES + TestOptimizationFlakyTestsManagementPoliciesUpdateRequest: + description: Request object for updating Flaky Tests Management policies. properties: data: - $ref: "#/components/schemas/User" - included: - description: Array of objects related to the user. - items: - $ref: "#/components/schemas/UserResponseIncludedItem" - type: array + $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesUpdateRequestData" + required: + - data type: object - UserResponseIncludedItem: - description: An object related to a user. - oneOf: - - $ref: "#/components/schemas/Organization" - - $ref: "#/components/schemas/Permission" - - $ref: "#/components/schemas/Role" - UserResponseRelationships: - description: Relationships of the user object returned by the API. + TestOptimizationFlakyTestsManagementPoliciesUpdateRequestAttributes: + description: |- + Attributes for updating Flaky Tests Management policies. + Only provided policy blocks are updated; omitted blocks are left unchanged. properties: - org: - $ref: "#/components/schemas/RelationshipToOrganization" - other_orgs: - $ref: "#/components/schemas/RelationshipToOrganizations" - other_users: - $ref: "#/components/schemas/RelationshipToUsers" - roles: - $ref: "#/components/schemas/RelationshipToRoles" + attempt_to_fix: + $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesAttemptToFix" + disabled: + $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesDisabled" + quarantined: + $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesQuarantined" + repository_id: + description: The repository identifier. + example: github.com/datadog/shopist + minLength: 1 + type: string + required: + - repository_id type: object - UserTarget: - description: "Represents a user target for an escalation policy step, including the user's ID and resource type." + TestOptimizationFlakyTestsManagementPoliciesUpdateRequestData: + description: Data object for update Flaky Tests Management policies request. properties: - id: - description: "Specifies the unique identifier of the user resource." - example: "00000000-aba1-0000-0000-000000000000" - type: string + attributes: + $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesUpdateRequestAttributes" type: - $ref: "#/components/schemas/UserTargetType" + $ref: "#/components/schemas/TestOptimizationUpdateFlakyTestsManagementPoliciesRequestDataType" required: - type - - id + - attributes type: object - UserTargetType: - default: users - description: "Indicates that the resource is of type `users`." + TestOptimizationGetFlakyTestsManagementPoliciesRequestDataType: + description: |- + JSON:API type for get Flaky Tests Management policies request. + The value must always be `test_optimization_get_flaky_tests_management_policies_request`. enum: - - users - example: users + - test_optimization_get_flaky_tests_management_policies_request + example: test_optimization_get_flaky_tests_management_policies_request type: string x-enum-varnames: - - USERS - UserTeam: - description: A user's relationship with a team + - TEST_OPTIMIZATION_GET_FLAKY_TESTS_MANAGEMENT_POLICIES_REQUEST + TestOptimizationGetServiceSettingsRequest: + description: Request object for getting Test Optimization service settings. properties: - attributes: - $ref: "#/components/schemas/UserTeamAttributes" - id: - description: The ID of a user's relationship with a team - example: TeamMembership-aeadc05e-98a8-11ec-ac2c-da7ad0900001-38835 - type: string - relationships: - $ref: "#/components/schemas/UserTeamRelationships" - type: - $ref: "#/components/schemas/UserTeamType" + data: + $ref: "#/components/schemas/TestOptimizationGetServiceSettingsRequestData" required: - - id - - type + - data type: object - UserTeamAttributes: - description: Team membership attributes + TestOptimizationGetServiceSettingsRequestAttributes: + description: Attributes for requesting Test Optimization service settings. properties: - provisioned_by: - description: |- - The mechanism responsible for provisioning the team relationship. - Possible values: null for added by a user, "service_account" if added by a service account, and "saml_mapping" if provisioned via SAML mapping. - nullable: true - readOnly: true + env: + description: The environment name. If omitted, defaults to `none`. + example: prod type: string - provisioned_by_id: - description: UUID of the User or Service Account who provisioned this team membership, or null if provisioned via SAML mapping. - nullable: true - readOnly: true + repository_id: + description: The repository identifier. + example: github.com/datadog/shopist + minLength: 1 + type: string + service_name: + description: The service name. + example: shopist + minLength: 1 type: string - role: - $ref: "#/components/schemas/UserTeamRole" - type: object - UserTeamCreate: - description: A user's relationship with a team - properties: - attributes: - $ref: "#/components/schemas/UserTeamAttributes" - relationships: - $ref: "#/components/schemas/UserTeamRelationships" - type: - $ref: "#/components/schemas/UserTeamType" required: - - type + - repository_id + - service_name type: object - UserTeamIncluded: - description: Included resources related to the team membership - oneOf: - - $ref: "#/components/schemas/User" - - $ref: "#/components/schemas/Team" - UserTeamPermission: - description: A user's permissions for a given team + TestOptimizationGetServiceSettingsRequestData: + description: Data object for get service settings request. properties: attributes: - $ref: "#/components/schemas/UserTeamPermissionAttributes" - id: - description: The user team permission's identifier - example: UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595 - type: string + $ref: "#/components/schemas/TestOptimizationGetServiceSettingsRequestAttributes" type: - $ref: "#/components/schemas/UserTeamPermissionType" + $ref: "#/components/schemas/TestOptimizationGetServiceSettingsRequestDataType" required: - - id - type + - attributes type: object - UserTeamPermissionAttributes: - description: User team permission attributes - properties: - permissions: - description: Object of team permission actions and boolean values that a logged in user can perform on this team. - readOnly: true - type: object - type: object - UserTeamPermissionType: - default: user_team_permissions - description: User team permission type + TestOptimizationGetServiceSettingsRequestDataType: + description: |- + JSON:API type for get service settings request. + The value must always be `test_optimization_get_service_settings_request`. enum: - - user_team_permissions - example: user_team_permissions + - test_optimization_get_service_settings_request + example: test_optimization_get_service_settings_request type: string x-enum-varnames: - - USER_TEAM_PERMISSIONS - UserTeamRelationships: - description: Relationship between membership and a user + - TEST_OPTIMIZATION_GET_SERVICE_SETTINGS_REQUEST + TestOptimizationServiceSettingsAttributes: + description: Attributes for Test Optimization service settings. properties: - team: - $ref: "#/components/schemas/RelationshipToUserTeamTeam" - user: - $ref: "#/components/schemas/RelationshipToUserTeamUser" + auto_test_retries_enabled: + description: Whether Auto Test Retries are enabled for this service. + example: false + type: boolean + auto_test_retries_enabled_is_overridden: + description: Whether the Auto Test Retries setting is overridden at the service level. + example: false + type: boolean + code_coverage_enabled: + description: Whether Code Coverage is enabled for this service. + example: false + type: boolean + code_coverage_enabled_is_overridden: + description: Whether the Code Coverage setting is overridden at the service level. + example: false + type: boolean + early_flake_detection_enabled: + description: Whether Early Flake Detection is enabled for this service. + example: false + type: boolean + early_flake_detection_enabled_is_overridden: + description: Whether the Early Flake Detection setting is overridden at the service level. + example: false + type: boolean + env: + description: The environment name. + example: prod + type: string + failed_test_replay_enabled: + description: Whether Failed Test Replay is enabled for this service. + example: false + type: boolean + failed_test_replay_enabled_is_overridden: + description: Whether the Failed Test Replay setting is overridden at the service level. + example: false + type: boolean + pr_comments_enabled: + description: Whether PR Comments are enabled. This value reflects the repository-level setting and cannot be overridden at the service level. + example: false + type: boolean + repository_id: + description: The repository identifier. + example: github.com/datadog/shopist + type: string + service_name: + description: The service name. + example: shopist + type: string + test_impact_analysis_enabled: + description: Whether Test Impact Analysis is enabled for this service. + example: true + type: boolean + test_impact_analysis_enabled_is_overridden: + description: Whether the Test Impact Analysis setting is overridden at the service level. + example: true + type: boolean type: object - UserTeamRequest: - description: Team membership request + TestOptimizationServiceSettingsData: + description: Data object for Test Optimization service settings response. properties: - data: - $ref: "#/components/schemas/UserTeamCreate" - required: - - data + attributes: + $ref: "#/components/schemas/TestOptimizationServiceSettingsAttributes" + id: + description: Unique identifier for the service settings. + example: 9b8a7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d + type: string + type: + $ref: "#/components/schemas/TestOptimizationServiceSettingsType" type: object - UserTeamResponse: - description: Team membership response + TestOptimizationServiceSettingsResponse: + description: Response object containing Test Optimization service settings. properties: data: - $ref: "#/components/schemas/UserTeam" - included: - description: Resources related to the team memberships - items: - $ref: "#/components/schemas/UserTeamIncluded" - type: array + $ref: "#/components/schemas/TestOptimizationServiceSettingsData" type: object - UserTeamRole: - description: The user's role within the team - enum: - - admin - nullable: true - type: string - x-enum-varnames: - - ADMIN - UserTeamTeamType: - default: team - description: User team team type + TestOptimizationServiceSettingsType: + description: |- + JSON:API type for service settings response. + The value must always be `test_optimization_service_settings`. enum: - - team - example: team + - test_optimization_service_settings + example: test_optimization_service_settings type: string x-enum-varnames: - - TEAM - UserTeamType: - default: team_memberships - description: Team membership type + - TEST_OPTIMIZATION_SERVICE_SETTINGS + TestOptimizationUpdateFlakyTestsManagementPoliciesRequestDataType: + description: |- + JSON:API type for update Flaky Tests Management policies request. + The value must always be `test_optimization_update_flaky_tests_management_policies_request`. enum: - - team_memberships - example: team_memberships + - test_optimization_update_flaky_tests_management_policies_request + example: test_optimization_update_flaky_tests_management_policies_request type: string x-enum-varnames: - - TEAM_MEMBERSHIPS - UserTeamUpdate: - description: A user's relationship with a team - properties: - attributes: - $ref: "#/components/schemas/UserTeamAttributes" - type: - $ref: "#/components/schemas/UserTeamType" - required: - - type - type: object - UserTeamUpdateRequest: - description: Team membership request + - TEST_OPTIMIZATION_UPDATE_FLAKY_TESTS_MANAGEMENT_POLICIES_REQUEST + TestOptimizationUpdateServiceSettingsRequest: + description: Request object for updating Test Optimization service settings. properties: data: - $ref: "#/components/schemas/UserTeamUpdate" + $ref: "#/components/schemas/TestOptimizationUpdateServiceSettingsRequestData" required: - data type: object - UserTeamUserType: - default: users - description: User team user type - enum: - - users - example: users - type: string - x-enum-varnames: - - USERS - UserTeamsResponse: - description: Team memberships response - properties: - data: - description: Team memberships response data - items: - $ref: "#/components/schemas/UserTeam" - type: array - included: - description: Resources related to the team memberships - items: - $ref: "#/components/schemas/UserTeamIncluded" - type: array - links: - $ref: "#/components/schemas/TeamsResponseLinks" - meta: - $ref: "#/components/schemas/TeamsResponseMeta" - type: object - UserUpdateAttributes: - description: Attributes of the edited user. + TestOptimizationUpdateServiceSettingsRequestAttributes: + description: |- + Attributes for updating Test Optimization service settings. + All non-required fields are optional; only provided fields will be updated. + Setting a field to `null` is a no-op. To reset a setting to inherit from the repository level, use the corresponding `_inherit` field. properties: - disabled: - description: |- - When set to `true`, the user is deactivated and can no longer log in. - When `false`, the user is active. + auto_test_retries_enabled: + description: Whether Auto Test Retries are enabled for this service. Setting to `null` is a no-op; use `auto_test_retries_enabled_inherit` to reset to repository-level inheritance. + example: false type: boolean - email: - description: |- - The email address of the user, used for login and notifications. - Must be a valid email format. + auto_test_retries_enabled_inherit: + description: When `true`, resets the Auto Test Retries setting to inherit from the repository level. + example: false + type: boolean + code_coverage_enabled: + description: Whether Code Coverage is enabled for this service. Setting to `null` is a no-op; use `code_coverage_enabled_inherit` to reset to repository-level inheritance. + example: false + type: boolean + code_coverage_enabled_inherit: + description: When `true`, resets the Code Coverage setting to inherit from the repository level. + example: false + type: boolean + early_flake_detection_enabled: + description: Whether Early Flake Detection is enabled for this service. Setting to `null` is a no-op; use `early_flake_detection_enabled_inherit` to reset to repository-level inheritance. + example: false + type: boolean + early_flake_detection_enabled_inherit: + description: When `true`, resets the Early Flake Detection setting to inherit from the repository level. + example: false + type: boolean + env: + description: The environment name. If omitted, defaults to `none`. + example: prod type: string - name: - description: |- - The full display name of the user as shown in the Datadog UI. - Maximum 55 characters, cannot contain `<` or `>`. + failed_test_replay_enabled: + description: Whether Failed Test Replay is enabled for this service. Setting to `null` is a no-op; use `failed_test_replay_enabled_inherit` to reset to repository-level inheritance. + example: false + type: boolean + failed_test_replay_enabled_inherit: + description: When `true`, resets the Failed Test Replay setting to inherit from the repository level. + example: false + type: boolean + pr_comments_enabled: + description: This field is ignored. PR Comments cannot be overridden at the service level. + example: false + type: boolean + repository_id: + description: The repository identifier. + example: github.com/datadog/shopist + minLength: 1 type: string - title: - description: The job title of the user (for example, "Senior Engineer" or "Product Manager"). - nullable: true + service_name: + description: The service name. + example: shopist + minLength: 1 type: string + test_impact_analysis_enabled: + description: Whether Test Impact Analysis is enabled for this service. Setting to `null` is a no-op; use `test_impact_analysis_enabled_inherit` to reset to repository-level inheritance. + example: true + type: boolean + test_impact_analysis_enabled_inherit: + description: When `true`, resets the Test Impact Analysis setting to inherit from the repository level. + example: true + type: boolean + required: + - repository_id + - service_name type: object - UserUpdateData: - description: Object to update a user. + TestOptimizationUpdateServiceSettingsRequestData: + description: Data object for update service settings request. properties: attributes: - $ref: "#/components/schemas/UserUpdateAttributes" - id: - description: ID of the user. - example: "00000000-0000-feed-0000-000000000000" - type: string + $ref: "#/components/schemas/TestOptimizationUpdateServiceSettingsRequestAttributes" type: - $ref: "#/components/schemas/UsersType" + $ref: "#/components/schemas/TestOptimizationUpdateServiceSettingsRequestDataType" required: - - attributes - type - - id + - attributes type: object - UserUpdateRequest: - description: Update a user. + TestOptimizationUpdateServiceSettingsRequestDataType: + description: |- + JSON:API type for update service settings request. + The value must always be `test_optimization_update_service_settings_request`. + enum: + - test_optimization_update_service_settings_request + example: test_optimization_update_service_settings_request + type: string + x-enum-varnames: + - TEST_OPTIMIZATION_UPDATE_SERVICE_SETTINGS_REQUEST + TicketCreationRuleAction: + description: The action to take when the ticket creation rule matches a finding. properties: - data: - $ref: "#/components/schemas/UserUpdateData" + assignee_id: + description: The UUID of the default assignee for created tickets. + example: "22222222-2222-2222-2222-222222222222" + format: uuid + type: string + fields: + description: |- + Target-specific fields of the ticket to create. + + For `target: jira`, the custom fields of the Jira issue. For the list of available fields, see [Jira documentation](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issues/#api-rest-api-2-issue-createmeta-projectidorkey-issuetypes-issuetypeid-get). + + For `target: linear`, the optional keys `linear_project_id` (string, the identifier of the Linear project the issue is created in) and `linear_label_ids` (array of strings, the identifiers of the Linear labels applied to the issue). + example: + labels: + - security + type: object + max_tickets_per_day: + description: The maximum number of tickets the rule may create per day. If exceeded, one final ticket will be created, explaining the limit was hit and link back to the responsible rule. + example: 100 + format: int64 + maximum: 500 + minimum: 1 + type: integer + project_id: + description: The UUID of the case management project. + example: "11111111-1111-1111-1111-111111111111" + format: uuid + type: string + target: + $ref: "#/components/schemas/TicketCreationTarget" required: - - data + - project_id + - target + - max_tickets_per_day type: object - UsersRelationship: - description: Relationship to users. + TicketCreationRuleActionResponse: + description: The action to take when the ticket creation rule matches a finding. properties: - data: - description: Relationships to user objects. - example: [] - items: - $ref: "#/components/schemas/UserRelationshipData" - type: array + assignee_id: + description: The UUID of the default assignee for created tickets. + example: "22222222-2222-2222-2222-222222222222" + format: uuid + type: string + auto_disabled_reason: + description: The reason the rule was automatically disabled by the system due to a ticketing integration error. + example: "Daily ticket creation limit exceeded" + type: string + fields: + description: |- + Target-specific fields of the ticket to create. + + For `target: jira`, the custom fields of the Jira issue. For the list of available fields, see [Jira documentation](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issues/#api-rest-api-2-issue-createmeta-projectidorkey-issuetypes-issuetypeid-get). + + For `target: linear`, the optional keys `linear_project_id` (string, the identifier of the Linear project the issue is created in) and `linear_label_ids` (array of strings, the identifiers of the Linear labels applied to the issue). + example: + labels: + - security + type: object + max_tickets_per_day: + description: The maximum number of tickets the rule may create per day. If exceeded, one final ticket will be created, explaining the limit was hit and link back to the responsible rule. + example: 100 + format: int64 + maximum: 500 + minimum: 1 + type: integer + project_id: + description: The UUID of the case management project. + example: "11111111-1111-1111-1111-111111111111" + format: uuid + type: string + target: + $ref: "#/components/schemas/TicketCreationTarget" required: - - data - type: object - UsersResponse: - description: Response containing information about multiple users. - properties: - data: - description: Array of returned users. - items: - $ref: "#/components/schemas/User" - type: array - included: - description: Array of objects related to the users. - items: - $ref: "#/components/schemas/UserResponseIncludedItem" - type: array - meta: - $ref: "#/components/schemas/ResponseMetaAttributes" - readOnly: true + - project_id + - target + - max_tickets_per_day type: object - UsersType: - default: users - description: Users resource type. - enum: - - users - example: users - type: string - x-enum-varnames: - - USERS - V2Event: - description: An event object. + TicketCreationRuleAttributesCreate: + description: Attributes for creating or updating a ticket creation rule. properties: - attributes: - $ref: "#/components/schemas/V2EventAttributes" - id: - description: The event's ID. - example: "" - type: string - type: - description: Entity type. - example: "event" + action: + $ref: "#/components/schemas/TicketCreationRuleAction" + enabled: + description: Whether the ticket creation rule is enabled. + example: true + type: boolean + name: + description: The name of the ticket creation rule. + example: "Auto-create Jira tickets for critical findings" + maxLength: 255 + minLength: 1 type: string + rule: + $ref: "#/components/schemas/AutomationRuleScope" + required: + - name + - rule + - action type: object - V2EventAggregationKey: - description: Aggregation key of the event. - example: "aggregation-key" - type: string - V2EventAttributes: - description: Event attributes. + TicketCreationRuleAttributesResponse: + description: Attributes of a ticket creation rule returned by the API. properties: - attributes: - $ref: "#/components/schemas/V2EventAttributesAttributes" - message: - description: Free-form text associated with the event. - example: "The event message" - type: string - tags: - description: A list of tags associated with the event. - example: ["env:api_client_test"] - items: - description: A tag. - type: string - type: array - timestamp: - description: Timestamp when the event occurred. - example: "2017-01-15T01:30:15.010000Z" + action: + $ref: "#/components/schemas/TicketCreationRuleActionResponse" + created_at: + description: The Unix timestamp in milliseconds when the rule was created. + example: 1722439510282 + format: int64 + type: integer + created_by: + $ref: "#/components/schemas/AutomationRuleCreatedBy" + enabled: + description: Whether the ticket creation rule is enabled. + example: true + type: boolean + modified_at: + description: The Unix timestamp in milliseconds when the rule was last modified. + example: 1722439510282 + format: int64 + type: integer + modified_by: + $ref: "#/components/schemas/AutomationRuleModifiedBy" + name: + description: The name of the ticket creation rule. + example: "Auto-create Jira tickets for critical findings" + maxLength: 255 + minLength: 1 type: string + rule: + $ref: "#/components/schemas/AutomationRuleScope" + required: + - name + - enabled + - rule + - action + - created_at + - created_by + - modified_at + - modified_by type: object - V2EventAttributesAttributes: - description: JSON object for category-specific attributes. - oneOf: - - $ref: "#/components/schemas/ChangeEventAttributes" - - $ref: "#/components/schemas/AlertEventAttributes" - V2EventResponse: - description: Get an event response. + TicketCreationRuleCreateRequest: + description: The body of a ticket creation rule create request. properties: data: - $ref: "#/components/schemas/V2Event" + $ref: "#/components/schemas/TicketCreationRuleDataCreate" + required: + - data type: object - V2EventService: - description: Service that triggered the event. - example: "service-name" - type: string - V2EventTimestamp: - description: POSIX timestamp of the event. - example: 175019386627 - format: int64 - type: integer - V2EventTitle: - description: The title of the event. - example: "The event title" - type: string - ValidateAPIKeyResponse: - description: Response object for the API and application key validation status check. + TicketCreationRuleDataCreate: + description: The data object for a ticket creation rule create request. properties: - status: - $ref: "#/components/schemas/ValidateAPIKeyStatus" + attributes: + $ref: "#/components/schemas/TicketCreationRuleAttributesCreate" + type: + $ref: "#/components/schemas/TicketCreationRuleType" required: - - status + - type + - attributes type: object - ValidateAPIKeyStatus: - description: Status of the validation. Always `ok` when both the API key and the application key are valid. - enum: - - ok - example: ok - type: string - x-enum-varnames: - - OK - ValidateV2Attributes: - description: Attributes of the API key validation response. + TicketCreationRuleDataResponse: + description: The data object for a ticket creation rule returned by the API. properties: - api_key_id: - description: The UUID of the API key. - example: "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6" + attributes: + $ref: "#/components/schemas/TicketCreationRuleAttributesResponse" + id: + description: The ID of the ticket creation rule. + example: "00000000-0000-0000-0000-000000000000" + format: uuid type: string - api_key_scopes: - description: List of scope names associated with the API key. - example: - - "remote_config_read" - items: - type: string - type: array - valid: - description: Whether the API key is valid. - example: true - type: boolean + type: + $ref: "#/components/schemas/TicketCreationRuleType" required: - - valid - - api_key_scopes - - api_key_id + - id + - type + - attributes type: object - ValidateV2Data: - description: Data object containing the API key validation result. + TicketCreationRuleDataUpdate: + description: The data object for a ticket creation rule update request. The `id` must match the `rule_id` path parameter. properties: attributes: - $ref: "#/components/schemas/ValidateV2Attributes" + $ref: "#/components/schemas/TicketCreationRuleAttributesCreate" id: - description: The UUID of the organization associated with the API key. - example: "550e8400-e29b-41d4-a716-446655440000" + description: The ID of the ticket creation rule to update. + example: "00000000-0000-0000-0000-000000000000" + format: uuid type: string type: - $ref: "#/components/schemas/ValidateV2Type" + $ref: "#/components/schemas/TicketCreationRuleType" required: - id - type - attributes type: object - ValidateV2Response: - description: Response for the API key validation endpoint. + TicketCreationRuleReorderData: + description: The ordered list of all ticket creation rules. Every rule must be included. + items: + $ref: "#/components/schemas/TicketCreationRuleReorderItem" + type: array + TicketCreationRuleReorderItem: + description: A reference to a ticket creation rule used for reordering. + properties: + id: + description: The ID of the ticket creation rule. + example: "00000000-0000-0000-0000-000000000000" + format: uuid + type: string + type: + $ref: "#/components/schemas/TicketCreationRuleType" + required: + - type + - id + type: object + TicketCreationRuleReorderRequest: + description: The body of a ticket creation rule reorder request. properties: data: - $ref: "#/components/schemas/ValidateV2Data" + $ref: "#/components/schemas/TicketCreationRuleReorderData" required: - data type: object - ValidateV2Type: - description: Resource type for the API key validation response. + TicketCreationRuleReorderResponse: + description: The response of a ticket creation rule reorder request. + properties: + data: + $ref: "#/components/schemas/TicketCreationRuleReorderData" + required: + - data + type: object + TicketCreationRuleResponse: + description: A single ticket creation rule response. + properties: + data: + $ref: "#/components/schemas/TicketCreationRuleDataResponse" + required: + - data + type: object + TicketCreationRuleType: + description: The JSON:API type for ticket creation rules. enum: - - validate_v2 - example: validate_v2 + - ticket_creation_rules + example: ticket_creation_rules type: string x-enum-varnames: - - ValidateV2 - ValidationError: - description: Represents a single validation error, including a human-readable title and metadata. + - TICKET_CREATION_RULES + TicketCreationRuleUpdateRequest: + description: The body of a ticket creation rule update request. + properties: + data: + $ref: "#/components/schemas/TicketCreationRuleDataUpdate" + required: + - data + type: object + TicketCreationRulesDataList: + description: A list of ticket creation rule data objects. + items: + $ref: "#/components/schemas/TicketCreationRuleDataResponse" + type: array + TicketCreationRulesResponse: + description: A list of ticket creation rules with pagination metadata. properties: + data: + $ref: "#/components/schemas/TicketCreationRulesDataList" + links: + $ref: "#/components/schemas/SecurityAutomationRulesLinks" meta: - $ref: "#/components/schemas/ValidationErrorMeta" - title: - description: A short, human-readable summary of the error. - example: Field 'region' is required - type: string + $ref: "#/components/schemas/SecurityAutomationRulesMeta" required: - - title + - data - meta + - links type: object - ValidationErrorMeta: - description: Describes additional metadata for validation errors, including field names and error messages. + TicketCreationTarget: + description: The ticketing system to create tickets in. + enum: + - jira + - case_management + - linear + example: jira + type: string + x-enum-varnames: + - JIRA + - CASE_MANAGEMENT + - LINEAR + TimeAggregation: + description: |- + Time aggregation period (in seconds) is used to aggregate the results of the notification rule evaluation. + Results are aggregated over a selected time frame using a rolling window, which updates with each new evaluation. + Notifications are only sent for new issues discovered during the window. + Time aggregation is only available for vulnerability-based notification rules. When omitted or set to 0, no aggregation + is done. + example: 86400 + format: int64 + type: integer + TimeRestriction: + description: Defines a single time restriction rule with start and end times and the applicable weekdays. properties: - field: - description: The field name that caused the error. - example: region - type: string - id: - description: The ID of the component in which the error occurred. - example: datadog-agent-source + end_day: + $ref: "#/components/schemas/Weekday" + end_time: + description: Specifies the ending time for this restriction. type: string - message: - description: The detailed error message. - example: Field 'region' is required + start_day: + $ref: "#/components/schemas/Weekday" + start_time: + description: Specifies the starting time for this restriction. type: string - required: - - message type: object - ValidationResponse: - description: Response containing validation errors. - example: - errors: - - meta: - field: "region" - id: "datadog-agent-source" - message: "Field 'region' is required" - title: "Field 'region' is required" + TimeRestrictions: + description: Time restrictions during which the routing rule is active. Outside of these hours, the rule does not match and routing continues to subsequent rules. This is mutually exclusive with the action-level `support_hours` field. properties: - errors: - description: The `ValidationResponse` `errors`. + restrictions: + description: Defines the list of time-based restrictions. items: - $ref: "#/components/schemas/ValidationError" + $ref: "#/components/schemas/TimeRestriction" type: array + time_zone: + description: Specifies the time zone applicable to the restrictions. + example: "" + type: string + required: + - time_zone + - restrictions type: object - ValueType: - description: The type of values for the feature flag variants. - enum: - - BOOLEAN - - INTEGER - - NUMERIC - - STRING - - JSON - example: "BOOLEAN" - type: string - x-enum-varnames: - - BOOLEAN - - INTEGER - - NUMERIC - - STRING - - JSON - Variant: - description: A variant of a feature flag. + TimelineCell: + description: "Attributes of a timeline cell, representing a single event in a case's chronological activity log (for example, a comment, status change, or assignment update)." properties: + author: + $ref: "#/components/schemas/TimelineCellAuthor" + cell_content: + $ref: "#/components/schemas/TimelineCellContent" created_at: - description: The timestamp when the variant was created. - example: "2023-01-01T00:00:00Z" + description: Timestamp of when the cell was created format: date-time + readOnly: true type: string - id: - description: The unique identifier of the variant. - example: "550e8400-e29b-41d4-a716-446655440002" - format: uuid - type: string - key: - description: The unique key of the variant. - example: "variant-abc123" - type: string - name: - description: The name of the variant. - example: "Variant ABC123" - type: string - updated_at: - description: The timestamp when the variant was last updated. - example: "2023-01-01T00:00:00Z" + deleted_at: + description: Timestamp of when the cell was deleted format: date-time + readOnly: true type: string - value: - description: The value of the variant as a string. - example: "true" + modified_at: + description: Timestamp of when the cell was last modified + format: date-time + readOnly: true type: string - required: - - id - - key - - name - - value + type: + $ref: "#/components/schemas/TimelineCellType" type: object - VariantWeight: - description: Variant weight details. + TimelineCellAuthor: + description: The author of the timeline cell. Currently only user authors are supported. + oneOf: + - $ref: "#/components/schemas/TimelineCellAuthorUser" + TimelineCellAuthorUser: + description: A user who authored a timeline cell. properties: - created_at: - description: The timestamp when the variant weight was created. - example: "2024-01-01T12:00:00Z" - format: date-time + content: + $ref: "#/components/schemas/TimelineCellAuthorUserContent" + type: + $ref: "#/components/schemas/TimelineCellAuthorUserType" + type: object + TimelineCellAuthorUserContent: + description: Profile information for the user who authored the timeline cell. + properties: + email: + description: The email address of the user. type: string - id: - description: Unique identifier of the variant weight assignment. - example: "59061199-e2ff-46e9-8b40-2193e3b21687" - format: uuid + handle: + description: The Datadog handle of the user. type: string - updated_at: - description: The timestamp when the variant weight was last updated. - example: "2024-01-01T12:00:00Z" - format: date-time + id: + description: The UUID of the user. type: string - value: - description: The percentage weight for the variant. - example: 50 - format: double - type: number - variant: - $ref: "#/components/schemas/Variant" - variant_id: - description: The variant ID. - example: "550e8400-e29b-41d4-a716-446655440001" - format: uuid + name: + description: The display name of the user. type: string - required: - - variant_id - - value type: object - VariantWeightRequest: - description: Variant weight request payload. + TimelineCellAuthorUserType: + description: The type of timeline cell author. Currently only `USER` is supported. + enum: + - USER + example: USER + type: string + x-enum-varnames: + - USER + TimelineCellContent: + description: The content payload of a timeline cell, varying by cell type. + oneOf: + - $ref: "#/components/schemas/TimelineCellContentComment" + TimelineCellContentComment: + description: The content of a comment timeline cell. properties: - value: - description: The percentage weight for this variant. - example: 50 - format: double - type: number - variant_id: - description: The variant ID to assign weight to. - example: "550e8400-e29b-41d4-a716-446655440001" - format: uuid - type: string - variant_key: - description: The variant key to assign weight to. - example: "control" + message: + description: The text content of the comment. Supports Markdown formatting. type: string - required: - - value type: object - Version: - description: Version of the notification rule. It is updated when the rule is modified. - example: 1 - format: int64 - type: integer - VersionHistoryUpdate: - description: A change in a rule version. + TimelineCellResource: + description: A timeline cell resource representing a single entry in a case's activity timeline. properties: - change: - description: The new value of the field. - example: cloud_provider:aws - type: string - field: - description: The field that was changed. - example: Tags + attributes: + $ref: "#/components/schemas/TimelineCell" + id: + description: Timeline cell's identifier + example: aeadc05e-98a8-11ec-ac2c-da7ad0900001 type: string type: - $ref: "#/components/schemas/VersionHistoryUpdateType" + $ref: "#/components/schemas/TimelineCellResourceType" + required: + - id + - type + - attributes type: object - VersionHistoryUpdateType: - description: The type of change. + TimelineCellResourceType: + default: timeline_cell + description: JSON:API resource type for timeline cells. enum: - - create - - update - - delete + - timeline_cell + example: timeline_cell type: string x-enum-varnames: - - CREATE - - UPDATE - - DELETE - ViewershipHistorySessionArray: - description: A list of RUM replay sessions from a user's viewership history. + - TIMELINE_CELL + TimelineCellType: + description: The type of content in the timeline cell. Currently only `COMMENT` is supported in this endpoint. + enum: + - COMMENT + example: COMMENT + type: string + x-enum-varnames: + - COMMENT + TimelineResponse: + description: Response containing the chronological list of timeline cells for a case. properties: data: - description: Array of viewership history session data objects. + description: The `TimelineResponse` `data`. items: - $ref: "#/components/schemas/ViewershipHistorySessionData" + $ref: "#/components/schemas/TimelineCellResource" type: array - required: - - data type: object - ViewershipHistorySessionData: - description: Data object representing a session in the viewership history, including its identifier, type, and attributes. + TimeseriesAnomalyInvestigationAnomaly: + description: One of the most significant anomalies detected in the request. properties: - attributes: - $ref: "#/components/schemas/ViewershipHistorySessionDataAttributes" - id: - description: Unique identifier of the RUM replay session. - type: string + anomaly_detection: + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationDetection" + detected_interval: + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationInterval" + display_interval: + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationInterval" + findings: + description: Deterministic explanations for the anomaly, ordered by importance. + example: [] + items: + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationFinding" + maxItems: 3 + type: array + maximum_deviation: + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationMaximumDeviation" + series: + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationSeries" + tag_analysis: + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationTagAnalysis" type: - $ref: "#/components/schemas/ViewershipHistorySessionDataType" + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationAnomalyType" required: + - series + - anomaly_detection + - detected_interval + - display_interval - type + - maximum_deviation + - tag_analysis + - findings type: object - ViewershipHistorySessionDataAttributes: - description: Attributes of a viewership history session entry, capturing when it was last watched and the associated event data. + TimeseriesAnomalyInvestigationAnomalyFinding: + description: Finding that describes the anomaly when completed analysis produces no displayable influential tags. properties: - event_id: - description: Unique identifier of the RUM event associated with the watched session. - type: string - last_watched_at: - description: Timestamp when the session was last watched by the user. - example: "2026-01-13T17:15:53.208340Z" - format: date-time + description: + description: Deterministic explanation of the finding. + example: "The service:api series rose outside its expected range." type: string - session_event: - additionalProperties: {} - description: Raw event data associated with the replay session. - type: object - track: - description: Replay track identifier indicating which recording track the session belongs to. + headline: + description: Concise, deterministic finding title. + example: "An anomaly was detected on service:api" type: string + type: + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationAnomalyFindingType" required: - - last_watched_at + - type + - headline + - description type: object - ViewershipHistorySessionDataType: - default: rum_replay_session - description: Rum replay session resource type. + TimeseriesAnomalyInvestigationAnomalyFindingType: + description: Finding category for an anomaly without a displayable influential tag. enum: - - rum_replay_session - example: rum_replay_session + - anomaly + example: anomaly type: string x-enum-varnames: - - RUM_REPLAY_SESSION - VirusTotalAPIKey: - description: The definition of the `VirusTotalAPIKey` object. - properties: - api_key: - description: The `VirusTotalAPIKey` `api_key`. - example: "" - type: string - type: - $ref: "#/components/schemas/VirusTotalAPIKeyType" - required: - - type - - api_key - type: object - VirusTotalAPIKeyType: - description: The definition of the `VirusTotalAPIKey` object. + - ANOMALY + TimeseriesAnomalyInvestigationAnomalyType: + description: Direction of an anomaly relative to its expected range. enum: - - VirusTotalAPIKey - example: VirusTotalAPIKey + - spike + - dip + example: spike type: string x-enum-varnames: - - VIRUSTOTALAPIKEY - VirusTotalAPIKeyUpdate: - description: The definition of the `VirusTotalAPIKey` object. - properties: - api_key: - description: The `VirusTotalAPIKeyUpdate` `api_key`. - type: string - type: - $ref: "#/components/schemas/VirusTotalAPIKeyType" - required: - - type - type: object - VirusTotalCredentials: - description: The definition of the `VirusTotalCredentials` object. - oneOf: - - $ref: "#/components/schemas/VirusTotalAPIKey" - VirusTotalCredentialsUpdate: - description: The definition of the `VirusTotalCredentialsUpdate` object. - oneOf: - - $ref: "#/components/schemas/VirusTotalAPIKeyUpdate" - VirusTotalIntegration: - description: The definition of the `VirusTotalIntegration` object. - properties: - credentials: - $ref: "#/components/schemas/VirusTotalCredentials" - type: - $ref: "#/components/schemas/VirusTotalIntegrationType" - required: - - type - - credentials - type: object - VirusTotalIntegrationType: - description: The definition of the `VirusTotalIntegrationType` object. + - SPIKE + - DIP + TimeseriesAnomalyInvestigationCompleteStatus: + description: Status value indicating successful completion. enum: - - VirusTotal - example: VirusTotal + - complete + example: complete type: string x-enum-varnames: - - VIRUSTOTAL - VirusTotalIntegrationUpdate: - description: The definition of the `VirusTotalIntegrationUpdate` object. - properties: - credentials: - $ref: "#/components/schemas/VirusTotalCredentialsUpdate" - type: - $ref: "#/components/schemas/VirusTotalIntegrationType" - required: - - type - type: object - VulnerabilitiesType: - description: The JSON:API type. + - COMPLETE + TimeseriesAnomalyInvestigationConfigurationSource: + description: Source of the anomaly detection configuration. enum: - - vulnerabilities - example: vulnerabilities + - request_formula + - watchdog_explains_default + example: request_formula type: string x-enum-varnames: - - VULNERABILITIES - Vulnerability: - description: A single vulnerability - properties: - attributes: - $ref: "#/components/schemas/VulnerabilityAttributes" - id: - description: The unique ID for this vulnerability. - example: 3ecdfea798f2ce8f6e964805a344945f - type: string - relationships: - $ref: "#/components/schemas/VulnerabilityRelationships" - type: - $ref: "#/components/schemas/VulnerabilitiesType" - required: - - id - - type - - attributes - - relationships - type: object - VulnerabilityAdvisory: - description: Advisory associated with the vulnerability. + - REQUEST_FORMULA + - WATCHDOG_EXPLAINS_DEFAULT + TimeseriesAnomalyInvestigationDataSource: + description: Data source for an anomaly investigation query. + enum: + - metrics + example: metrics + type: string + x-enum-varnames: + - METRICS + TimeseriesAnomalyInvestigationDetection: + description: Anomaly detection configuration used for the result. properties: - id: - description: Vulnerability advisory ID. - example: TRIVY-CVE-2023-0615 - type: string - last_modification_date: - description: Vulnerability advisory last modification date. - example: 2024-09-19 21:23:08+00:00 - type: string - publish_date: - description: Vulnerability advisory publish date. - example: 2024-09-19 21:23:08+00:00 + configuration_source: + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationConfigurationSource" + profile: + description: Applied Watchdog Explains profile, or null when the request supplied an explicit `anomalies()` formula. The current Watchdog profile is `watchdog_explains_v1`. + example: + nullable: true type: string required: - - id + - configuration_source + - profile type: object - VulnerabilityAttributes: - description: The JSON:API attributes of the vulnerability. + TimeseriesAnomalyInvestigationFinding: + description: Deterministic explanation for a detected anomaly. + oneOf: + - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationInfluentialTagFinding" + - $ref: "#/components/schemas/TimeseriesAnomalyInvestigationAnomalyFinding" + TimeseriesAnomalyInvestigationFindingSynonym: + description: Tag grouped under an influential tag by synonym analysis. properties: - advisory: - $ref: "#/components/schemas/VulnerabilityAdvisory" - advisory_id: - description: Vulnerability advisory ID. - example: TRIVY-CVE-2023-0615 + key: + description: Synonymous tag key. + example: app type: string - code_location: - $ref: "#/components/schemas/CodeLocation" - cve_list: - description: Vulnerability CVE list. + values: + description: Values associated with the synonymous tag. example: - - CVE-2023-0615 + - api items: - description: A CVE identifier associated with the vulnerability. - example: CVE-2023-0615 + description: Synonymous tag value. + example: api type: string type: array - cvss: - $ref: "#/components/schemas/VulnerabilityCvss" - dependency_locations: - $ref: "#/components/schemas/VulnerabilityDependencyLocations" - description: - description: Vulnerability description. - example: "LDAP Injection is a security vulnerability that occurs when untrusted user input is improperly handled and directly incorporated into LDAP queries without appropriate sanitization or validation. This vulnerability enables attackers to manipulate LDAP queries and potentially gain unauthorized access, modify data, or extract sensitive information from the directory server. By exploiting the LDAP injection vulnerability, attackers can execute malicious commands, bypass authentication mechanisms, and perform unauthorized actions within the directory service." - type: string - ecosystem: - $ref: "#/components/schemas/VulnerabilityEcosystem" - exposure_time: - description: Vulnerability exposure time in seconds. - example: 5618604 - format: int64 - type: integer - first_detection: - description: "First detection of the vulnerability in [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) format" - example: 2024-09-19 21:23:08+00:00 - type: string - fix_available: - description: Whether the vulnerability has a remediation or not. - example: false - type: boolean - language: - description: Vulnerability language. - example: ubuntu - type: string - last_detection: - description: "Last detection of the vulnerability in [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) format" - example: 2024-09-01 21:23:08+00:00 + required: + - key + - values + type: object + TimeseriesAnomalyInvestigationFindingTag: + description: Structured tag evidence for an influential-tag finding. + properties: + influence_type: + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationInfluenceType" + key: + description: Influential tag key. + example: service type: string - library: - $ref: "#/components/schemas/Library" - origin: - description: Vulnerability origin. - example: - - agentless-scanner - items: - description: The detection origin of the vulnerability (for example, the scanner type). - example: agentless-scanner - type: string - type: array - remediations: - description: List of remediations. + rating: + description: Influence rating from 1 through 5. + example: 5.0 + format: double + maximum: 5 + minimum: 1 + type: number + synonyms: + description: Tags grouped with this tag by Variation of Influence synonym analysis. + example: [] items: - $ref: "#/components/schemas/Remediation" + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationFindingSynonym" type: array - repo_digests: - description: Vulnerability `repo_digest` list (when the vulnerability is related to `Image` asset). + values: + description: Influential values for the tag key. + example: + - api items: - description: A container image repository digest identifying the affected image. - example: sha256:0ae7da091191787229d321e3638e39c319a97d6e20f927d465b519d699215bf7 + description: Influential tag value. + example: api type: string type: array - risks: - $ref: "#/components/schemas/VulnerabilityRisks" - running_kernel: - description: True if the vulnerability affects a package in the host’s running kernel, false if it affects a non-running kernel, and omit if it is not kernel-related. - example: true - type: boolean - status: - $ref: "#/components/schemas/VulnerabilityStatus" - title: - description: Vulnerability title. - example: "LDAP Injection" - type: string - tool: - $ref: "#/components/schemas/VulnerabilityTool" - type: - $ref: "#/components/schemas/VulnerabilityType" required: - - type - - cvss - - status - - tool - - title - - description - - cve_list - - risks - - language - - first_detection - - last_detection - - exposure_time - - remediations - - fix_available - - origin + - key + - values + - influence_type + - rating + - synonyms type: object - VulnerabilityCvss: - description: Vulnerability severities. + TimeseriesAnomalyInvestigationFormula: + description: Formula evaluated by the timeseries request. properties: - base: - $ref: "#/components/schemas/CVSS" - datadog: - $ref: "#/components/schemas/CVSS" + formula: + description: |- + Formula expression referencing one or more named queries. + When the expression does not contain an explicit `anomalies()` call, + the endpoint applies the default Watchdog Explains anomaly detection configuration. + example: query1 + minLength: 1 + type: string + limit: + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationFormulaLimit" required: - - base - - datadog + - formula type: object - VulnerabilityDependencyLocations: - description: Static library vulnerability location. + TimeseriesAnomalyInvestigationFormulaLimit: + description: Optional formula limit accepted for compatibility with Timeseries API requests. Formula limits have no effect on timeseries queries. properties: - block: - $ref: "#/components/schemas/DependencyLocation" - name: - $ref: "#/components/schemas/DependencyLocation" - version: - $ref: "#/components/schemas/DependencyLocation" - required: - - block + count: + description: Requested result limit. This field has no effect on a timeseries anomaly investigation. + example: 10 + format: int64 + minimum: 0 + type: integer + order: + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationFormulaLimitOrder" type: object - VulnerabilityEcosystem: - description: The related vulnerability asset ecosystem. + TimeseriesAnomalyInvestigationFormulaLimitOrder: + description: Sort order used when applying a formula series limit. enum: - - PyPI - - Maven - - NuGet - - Npm - - RubyGems - - Go - - Packagist - - Deb - - Rpm - - Apk - - Windows - - Generic - - MacOs - - Oci - - BottleRocket - - None + - asc + - desc + example: desc type: string x-enum-varnames: - - PYPI - - MAVEN - - NUGET - - NPM - - RUBY_GEMS - - GO - - PACKAGIST - - DEB - - RPM - - APK - - WINDOWS - - GENERIC - - MAC_OS - - OCI - - BOTTLE_ROCKET - - NONE - VulnerabilityRelationships: - description: Related entities object. - properties: - affects: - $ref: "#/components/schemas/VulnerabilityRelationshipsAffects" - required: - - affects - type: object - VulnerabilityRelationshipsAffects: - description: Relationship type. - properties: - data: - $ref: "#/components/schemas/VulnerabilityRelationshipsAffectsData" - required: - - data - type: object - VulnerabilityRelationshipsAffectsData: - description: Asset affected by this vulnerability. + - ASC + - DESC + TimeseriesAnomalyInvestigationInfluenceType: + description: Kind of influence a tag has on a series. + enum: + - shape + - value + example: shape + type: string + x-enum-varnames: + - SHAPE + - VALUE + TimeseriesAnomalyInvestigationInfluentialTagFinding: + description: Finding that attributes an anomaly to an influential tag. properties: - id: - description: The unique ID for this related asset. - example: Repository|github.com/DataDog/datadog-agent.git + description: + description: Deterministic explanation of the finding. + example: "Filtering out service:api flattens the spike." + type: string + headline: + description: Concise, deterministic finding title. + example: "service:api is the likely cause" type: string + tag: + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationFindingTag" type: - $ref: "#/components/schemas/AssetEntityType" + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationInfluentialTagFindingType" required: - - id - type + - headline + - description + - tag type: object - VulnerabilityRisks: - description: Vulnerability risks. - properties: - epss: - $ref: "#/components/schemas/EPSS" - exploit_available: - description: Vulnerability public exploit availability. - example: false - type: boolean - exploit_sources: - description: Vulnerability exploit sources. - example: - - NIST - items: - description: An exploit source reporting this vulnerability. - example: NIST - type: string - type: array - exploitation_probability: - description: Vulnerability exploitation probability. - example: false - type: boolean - poc_exploit_available: - description: Vulnerability POC exploit availability. - example: false - type: boolean - required: - - exploitation_probability - - poc_exploit_available - - exploit_available - - exploit_sources - type: object - VulnerabilitySeverity: - description: The vulnerability severity. - enum: - - Unknown - - None - - Low - - Medium - - High - - Critical - example: Medium - type: string - x-enum-varnames: - - UNKNOWN - - NONE - - LOW - - MEDIUM - - HIGH - - CRITICAL - VulnerabilityStatus: - description: The vulnerability status. - enum: - - Open - - Muted - - Remediated - - InProgress - - AutoClosed - example: Open - type: string - x-enum-varnames: - - OPEN - - MUTED - - REMEDIATED - - INPROGRESS - - AUTOCLOSED - VulnerabilityTool: - description: The vulnerability tool. - enum: - - IAST - - SCA - - Infra - - SAST - example: SCA - type: string - x-enum-varnames: - - IAST - - SCA - - INFRA - - SAST - VulnerabilityType: - description: The vulnerability type. + TimeseriesAnomalyInvestigationInfluentialTagFindingType: + description: Finding category for an influential tag. enum: - - AdminConsoleActive - - CodeInjection - - CommandInjection - - ComponentWithKnownVulnerability - - DangerousWorkflows - - DefaultAppDeployed - - DefaultHtmlEscapeInvalid - - DirectoryListingLeak - - EmailHtmlInjection - - EndOfLife - - HardcodedPassword - - HardcodedSecret - - HeaderInjection - - HstsHeaderMissing - - InsecureAuthProtocol - - InsecureCookie - - InsecureJspLayout - - LdapInjection - - MaliciousPackage - - MandatoryRemediation - - NoHttpOnlyCookie - - NoSameSiteCookie - - NoSqlMongoDbInjection - - PathTraversal - - ReflectionInjection - - RiskyLicense - - SessionRewriting - - SessionRewritting - - SessionTimeout - - SqlInjection - - Ssrf - - StackTraceLeak - - TemplateInjection - - TrustBoundaryViolation - - Unmaintained - - UntrustedDeserialization - - UnvalidatedRedirect - - VerbTampering - - WeakCipher - - WeakHash - - WeakRandomness - - XContentTypeHeaderMissing - - XPathInjection - - Xss - example: WeakCipher + - influential_tag + example: influential_tag type: string x-enum-varnames: - - ADMIN_CONSOLE_ACTIVE - - CODE_INJECTION - - COMMAND_INJECTION - - COMPONENT_WITH_KNOWN_VULNERABILITY - - DANGEROUS_WORKFLOWS - - DEFAULT_APP_DEPLOYED - - DEFAULT_HTML_ESCAPE_INVALID - - DIRECTORY_LISTING_LEAK - - EMAIL_HTML_INJECTION - - END_OF_LIFE - - HARDCODED_PASSWORD - - HARDCODED_SECRET - - HEADER_INJECTION - - HSTS_HEADER_MISSING - - INSECURE_AUTH_PROTOCOL - - INSECURE_COOKIE - - INSECURE_JSP_LAYOUT - - LDAP_INJECTION - - MALICIOUS_PACKAGE - - MANDATORY_REMEDIATION - - NO_HTTP_ONLY_COOKIE - - NO_SAME_SITE_COOKIE - - NO_SQL_MONGO_DB_INJECTION - - PATH_TRAVERSAL - - REFLECTION_INJECTION - - RISKY_LICENSE - - SESSION_REWRITING - - SESSION_REWRITTING - - SESSION_TIMEOUT - - SQL_INJECTION - - SSRF - - STACK_TRACE_LEAK - - TEMPLATE_INJECTION - - TRUST_BOUNDARY_VIOLATION - - UNMAINTAINED - - UNTRUSTED_DESERIALIZATION - - UNVALIDATED_REDIRECT - - VERB_TAMPERING - - WEAK_CIPHER - - WEAK_HASH - - WEAK_RANDOMNESS - - X_CONTENT_TYPE_HEADER_MISSING - - X_PATH_INJECTION - - XSS - Watch: - description: A single RUM replay session watch resource returned by create operations. - properties: - data: - $ref: "#/components/schemas/WatchData" - required: - - data - type: object - WatchData: - description: Data object representing a session watch record, including its identifier, type, and attributes. + - INFLUENTIAL_TAG + TimeseriesAnomalyInvestigationInterval: + description: Inclusive time interval in milliseconds since the Unix epoch. properties: - attributes: - $ref: "#/components/schemas/WatchDataAttributes" - id: - description: Unique identifier of the watch record. - type: string - type: - $ref: "#/components/schemas/WatchDataType" + end: + description: Timestamp of the final point in the interval. + example: 1754406120000 + format: int64 + type: integer + start: + description: Inclusive start of the interval. + example: 1754406060000 + format: int64 + type: integer required: - - type + - start + - end type: object - WatchDataAttributes: - description: Attributes for recording a session watch event, including the application, event reference, and timestamp. + TimeseriesAnomalyInvestigationMaximumDeviation: + description: Most anomalous point within the detected interval. properties: - application_id: - description: Unique identifier of the RUM application containing the session. - example: aaaaaaaa-1111-2222-3333-bbbbbbbbbbbb - type: string - data_source: - description: Data source type indicating the origin of the session data (e.g., rum or product_analytics). - type: string - event_id: - description: Unique identifier of the RUM event that was watched. - example: 11111111-2222-3333-4444-555555555555 - type: string + delta_from_boundary: + description: Absolute distance between the observed value and the nearest anomaly boundary. + example: 7.0 + format: double + minimum: 0 + type: number timestamp: - description: Timestamp when the session was watched. - example: "2026-01-13T17:15:53.208340Z" - format: date-time - type: string + description: Point timestamp in milliseconds since the Unix epoch. + example: 1754406090000 + format: int64 + type: integer + value: + description: Observed value at the point. + example: 42.0 + format: double + type: number required: - - application_id - - event_id - timestamp + - value + - delta_from_boundary type: object - WatchDataType: - default: rum_replay_watch - description: Rum replay watch resource type. + TimeseriesAnomalyInvestigationMetaType: + description: Response metadata type for a timeseries anomaly investigation. enum: - - rum_replay_watch - example: rum_replay_watch + - timeseries_anomaly_investigation + example: timeseries_anomaly_investigation type: string x-enum-varnames: - - RUM_REPLAY_WATCH - WatcherArray: - description: A list of users who have watched a RUM replay session. + - TIMESERIES_ANOMALY_INVESTIGATION + TimeseriesAnomalyInvestigationMetricQuery: + description: Metrics query referenced by a formula. properties: - data: - description: Array of watcher data objects. + aggregator: + description: Optional scalar aggregator accepted for request compatibility. This field is ignored for timeseries queries. + example: avg + type: string + cross_org_uuids: + description: Optional organization UUID used for a cross-organization query. Each query accepts at most one UUID; use separate queries for separate organizations. Influential-tag analysis is currently unsupported for cross-organization queries, but anomaly detection still runs. + example: + - "00000000-0000-0000-0000-000000000000" items: - $ref: "#/components/schemas/WatcherData" + description: Organization UUID to query. + example: "00000000-0000-0000-0000-000000000000" + minLength: 1 + type: string + maxItems: 1 type: array - required: - - data - type: object - WatcherData: - description: Data object representing a session watcher, including their identifier, type, and attributes. - properties: - attributes: - $ref: "#/components/schemas/WatcherDataAttributes" - id: - description: Unique identifier of the watcher user. - type: string - type: - $ref: "#/components/schemas/WatcherDataType" - required: - - type - type: object - WatcherDataAttributes: - description: Attributes of a user who has watched a RUM replay session, including contact information and watch statistics. - properties: - handle: - description: Email handle of the user who watched the session. - example: john.doe@example.com - type: string - icon: - description: URL or identifier of the watcher's avatar icon. - type: string - last_watched_at: - description: Timestamp when the watcher last viewed the session. - example: "2026-01-13T17:15:53.208340Z" - format: date-time - type: string + data_source: + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationDataSource" name: - description: Display name of the user who watched the session. + description: Name used to reference this query from formulas. + example: query1 + minLength: 1 + type: string + query: + description: Datadog metrics query expression. + example: "avg:system.cpu.user{env:prod} by {service}" + minLength: 1 type: string - watch_count: - description: Total number of times the user has watched the session. - example: 0 - format: int32 - maximum: 2147483647 - type: integer required: - - handle - - last_watched_at - - watch_count + - data_source + - name + - query type: object - WatcherDataType: - default: rum_replay_watcher - description: Rum replay watcher resource type. + TimeseriesAnomalyInvestigationQueryExecutionStatus: + description: Current execution status for a named query. enum: - - rum_replay_watcher - example: rum_replay_watcher + - running + - done + example: done type: string x-enum-varnames: - - RUM_REPLAY_WATCHER - WebIntegrationAccountCreateRequest: - description: Payload schema when adding a web integration account. - properties: - data: - $ref: "#/components/schemas/WebIntegrationAccountCreateRequestData" - required: - - data - type: object - WebIntegrationAccountCreateRequestAttributes: - description: Attributes object for creating a web integration account. + - RUNNING + - DONE + TimeseriesAnomalyInvestigationQueryStatus: + description: Execution status for one named query. properties: name: - description: A human-readable name for the account. Must be unique among accounts of the same integration. - example: my-databricks-account + description: Query name from the request. + example: query1 type: string - secrets: - $ref: "#/components/schemas/WebIntegrationAccountSecrets" - settings: - $ref: "#/components/schemas/WebIntegrationAccountSettings" + status: + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationQueryExecutionStatus" required: - name - - settings - - secrets - type: object - WebIntegrationAccountCreateRequestData: - description: Data object for creating a web integration account. - properties: - attributes: - $ref: "#/components/schemas/WebIntegrationAccountCreateRequestAttributes" - type: - $ref: "#/components/schemas/WebIntegrationAccountType" - required: - - attributes - - type + - status type: object - WebIntegrationAccountResponse: - description: The expected response schema when getting a single web integration account. + TimeseriesAnomalyInvestigationRequest: + description: Request to investigate a metrics timeseries for anomalies. properties: data: - $ref: "#/components/schemas/WebIntegrationAccountResponseData" + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationRequestData" + required: + - data type: object - WebIntegrationAccountResponseAttributes: - description: Attributes object of a web integration account. Secrets are never returned. + TimeseriesAnomalyInvestigationRequestAttributes: + description: Attributes of an anomaly investigation request. properties: - name: - description: A human-readable name for the account. - example: my-databricks-account - type: string - settings: - $ref: "#/components/schemas/WebIntegrationAccountSettings" + requests: + description: Timeseries requests to investigate. This API version accepts exactly one request. + example: + - formulas: + - formula: query1 + from: 1754406000000 + queries: + - data_source: metrics + name: query1 + query: "avg:system.cpu.user{env:prod} by {service}" + to: 1754423940000 + items: + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationTimeseriesRequest" + maxItems: 1 + minItems: 1 + type: array required: - - name + - requests type: object - WebIntegrationAccountResponseData: - description: Data object of a web integration account. + TimeseriesAnomalyInvestigationRequestData: + description: JSON:API resource containing an anomaly investigation request. properties: attributes: - $ref: "#/components/schemas/WebIntegrationAccountResponseAttributes" - id: - description: The unique identifier of the web integration account. - example: "abc123def456" - type: string + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationRequestAttributes" type: - $ref: "#/components/schemas/WebIntegrationAccountType" + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationType" required: - - attributes - - id - type + - attributes type: object - WebIntegrationAccountSecrets: - additionalProperties: {} - description: |- - Integration-specific secrets. The shape of this object varies by integration. Secrets - are write-only and never returned by the API. - example: - client_secret: my-client-secret - type: object - WebIntegrationAccountSettings: - additionalProperties: {} - description: |- - Integration-specific settings. The shape of this object varies by integration. - example: - workspace_url: https://example.azuredatabricks.net - type: object - WebIntegrationAccountType: - default: Account - description: Account resource type. - enum: - - Account - example: Account - type: string - x-enum-varnames: - - ACCOUNT - WebIntegrationAccountUpdateRequest: - description: Payload schema when updating a web integration account. + TimeseriesAnomalyInvestigationResponse: + description: Response containing the anomaly investigation results and timeseries metadata. properties: data: - $ref: "#/components/schemas/WebIntegrationAccountUpdateRequestData" + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationResponseData" + meta: + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationResponseMeta" required: - data + - meta type: object - WebIntegrationAccountUpdateRequestAttributes: - description: Attributes object for updating a web integration account. - properties: - name: - description: A human-readable name for the account. - example: my-databricks-account - type: string - secrets: - $ref: "#/components/schemas/WebIntegrationAccountSecrets" - settings: - $ref: "#/components/schemas/WebIntegrationAccountSettings" - type: object - WebIntegrationAccountUpdateRequestData: - description: Data object for updating a web integration account. - properties: - attributes: - $ref: "#/components/schemas/WebIntegrationAccountUpdateRequestAttributes" - type: - $ref: "#/components/schemas/WebIntegrationAccountType" - required: - - attributes - - type - type: object - WebIntegrationAccountsResponse: - description: The expected response schema when listing web integration accounts. + TimeseriesAnomalyInvestigationResponseAttributes: + description: Attributes of an anomaly investigation response. properties: - data: - description: The JSON:API data array. + results: + description: Results returned in the same order as the submitted requests. This API version returns exactly one result. + example: + - anomalies: [] + status: complete items: - $ref: "#/components/schemas/WebIntegrationAccountResponseData" + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationResult" + maxItems: 1 + minItems: 1 type: array + required: + - results type: object - WebhooksAuthMethodAttributes: - description: Attributes of a webhooks auth method. - properties: - protocol: - $ref: "#/components/schemas/WebhooksAuthMethodProtocol" - type: object - WebhooksAuthMethodProtocol: - description: Authentication protocol used by the auth method. - enum: - - oauth2-client-credentials - example: oauth2-client-credentials - type: string - x-enum-varnames: - - OAUTH2_CLIENT_CREDENTIALS - WebhooksAuthMethodRelationships: - description: Relationships of a webhooks auth method to its protocol-specific resource. - properties: - oauth2-client-credentials: - $ref: "#/components/schemas/WebhooksOAuth2ClientCredentialsRelationship" - type: object - WebhooksAuthMethodResponseData: - description: Webhooks auth method data from a response. + TimeseriesAnomalyInvestigationResponseData: + description: JSON:API resource containing anomaly investigation results. properties: attributes: - $ref: "#/components/schemas/WebhooksAuthMethodAttributes" + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationResponseAttributes" id: - description: The ID of the auth method. - example: "596da4af-0563-4097-90ff-07230c3f9db3" - type: string - relationships: - $ref: "#/components/schemas/WebhooksAuthMethodRelationships" + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationResponseID" type: - $ref: "#/components/schemas/WebhooksAuthMethodType" + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationType" required: - id - type - attributes type: object - WebhooksAuthMethodType: - default: webhooks-auth-method - description: Webhooks auth method resource type. + TimeseriesAnomalyInvestigationResponseID: + description: Stable identifier for an anomaly investigation response resource. enum: - - webhooks-auth-method - example: webhooks-auth-method + - "0" + example: "0" type: string x-enum-varnames: - - WEBHOOKS_AUTH_METHOD - WebhooksAuthMethodsResponse: - description: Response containing a list of webhooks auth methods. + - ZERO + TimeseriesAnomalyInvestigationResponseMeta: + description: Timeseries execution metadata for the single request accepted by this API version. properties: - data: - description: An array of webhooks auth methods. + from_date: + description: Effective start of the timeseries query in milliseconds since the Unix epoch. + example: 1754406000000 + format: int64 + type: integer + interval: + description: Effective timeseries interval in milliseconds. + example: 60000 + format: int64 + minimum: 1 + type: integer + queries: + description: Execution status for the request's queries. + example: + - name: query1 + status: done items: - $ref: "#/components/schemas/WebhooksAuthMethodResponseData" + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationQueryStatus" type: array - included: - description: Resources related to the auth methods, included when requested via the `include` query parameter. + res_type: + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationMetaType" + results_warnings: + description: Non-fatal warnings produced while executing the investigation. + example: [] items: - $ref: "#/components/schemas/WebhooksOAuth2ClientCredentialsResponseData" + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationResultsWarning" type: array + to_date: + description: Effective end of the timeseries query in milliseconds since the Unix epoch. + example: 1754423940000 + format: int64 + type: integer required: - - data + - from_date + - to_date + - interval + - queries + - results_warnings + - res_type type: object - WebhooksOAuth2ClientCredentialsCreateAttributes: - description: OAuth2 client credentials attributes for a create request. + TimeseriesAnomalyInvestigationResult: + description: Completed result for one timeseries request. The anomalies array is empty when no qualifying anomaly is found. properties: - access_token_url: - description: URL of the OAuth2 access token endpoint. - example: "https://example.com/oauth/token" - maxLength: 2048 - minLength: 1 - type: string - audience: - description: The intended audience for the OAuth2 access token. - example: "https://api.example.com" - maxLength: 2048 - minLength: 1 - nullable: true - type: string - client_id: - description: The OAuth2 client ID issued by the authorization server. - example: "my-client-id" - maxLength: 2048 - minLength: 1 - type: string - client_secret: + anomalies: description: |- - The OAuth2 client secret issued by the authorization server. - Write-only; never returned by the API. - example: "my-client-secret" - maxLength: 2048 - minLength: 1 + Detected anomalies, ordered by significance. This API version returns at most + three anomalies across the submitted request. + example: [] + items: + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationAnomaly" + maxItems: 3 + type: array + status: + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationCompleteStatus" + required: + - status + - anomalies + type: object + TimeseriesAnomalyInvestigationResultsWarning: + description: Non-fatal warning produced while executing the investigation. + properties: + message: + description: Human-readable warning message. + example: "Influential tag analysis failed for at least one detected anomaly." type: string name: - description: Human-readable name for this auth method. Must be unique within your organization. - example: "my-oauth2-auth" - maxLength: 100 - minLength: 1 - type: string - scope: - description: Space-separated list of OAuth2 scopes to request. - example: "read:webhooks write:webhooks" - maxLength: 2048 - minLength: 1 - nullable: true + description: Machine-readable warning name. + example: tag_analysis_failed type: string required: - name - - access_token_url - - client_id - - client_secret + - message type: object - WebhooksOAuth2ClientCredentialsCreateData: - description: OAuth2 client credentials data for a create request. + TimeseriesAnomalyInvestigationSeries: + description: Logical series on which the anomaly was detected. properties: - attributes: - $ref: "#/components/schemas/WebhooksOAuth2ClientCredentialsCreateAttributes" - type: - $ref: "#/components/schemas/WebhooksOAuth2ClientCredentialsType" + group_tags: + description: Tags identifying the selected group. Empty for a query without grouping. + example: + - "service:api" + items: + description: Tag in `key:value` form. + example: "service:api" + type: string + type: array + label: + description: Display label for the selected series. + example: api + type: string + query_index: + description: Zero-based index of the caller's formula that produced the series. + example: 0 + format: int64 + minimum: 0 + type: integer required: - - type - - attributes + - query_index + - group_tags + - label type: object - WebhooksOAuth2ClientCredentialsCreateRequest: - description: Create request for an OAuth2 client credentials auth method. + TimeseriesAnomalyInvestigationTagAnalysis: + description: Summary of optional influential-tag enrichment. Count and key fields are present only when analysis completes; enrichment availability does not affect completion of the investigation result. properties: - data: - $ref: "#/components/schemas/WebhooksOAuth2ClientCredentialsCreateData" + analyzed_tag_keys: + description: Tag keys analyzed. Present only when analysis completes. + example: + - service + - env + items: + description: Analyzed tag key. + example: service + type: string + type: array + status: + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationTagAnalysisStatus" + tag_keys_analyzed: + description: Number of tag keys analyzed. Present only when analysis completes. + example: 2 + format: int64 + minimum: 0 + type: integer + tag_values_analyzed: + description: Number of tag values analyzed. Present only when analysis completes. + example: 4 + format: int64 + minimum: 0 + type: integer required: - - data - type: object - WebhooksOAuth2ClientCredentialsRelationship: - description: Relationship pointing to the OAuth2 client credentials resource for this auth method. - properties: - data: - $ref: "#/components/schemas/WebhooksOAuth2ClientCredentialsRelationshipData" + - status type: object - WebhooksOAuth2ClientCredentialsRelationshipData: - description: Relationship data referencing an OAuth2 client credentials resource. + TimeseriesAnomalyInvestigationTagAnalysisStatus: + description: Outcome of optional influential-tag enrichment. + enum: + - complete + - unsupported + - failed + example: complete + type: string + x-enum-varnames: + - COMPLETE + - UNSUPPORTED + - FAILED + TimeseriesAnomalyInvestigationTimeseriesRequest: + description: Metrics timeseries request to investigate. properties: - id: - description: The ID of the OAuth2 client credentials resource. - example: "596da4af-0563-4097-90ff-07230c3f9db3" - type: string - type: - $ref: "#/components/schemas/WebhooksOAuth2ClientCredentialsType" + formulas: + description: Formulas to evaluate. Each formula may contain an explicit `anomalies()` call or a supported metrics expression. + example: + - formula: query1 + items: + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationFormula" + minItems: 1 + type: array + from: + description: Start of the investigation time window in milliseconds since the Unix epoch. + example: 1754406000000 + format: int64 + minimum: 1 + type: integer + interval: + description: Optional requested aggregation interval in milliseconds. + example: 60000 + format: int64 + minimum: 1 + type: integer + queries: + description: Metrics queries referenced by the formulas. + example: + - data_source: metrics + name: query1 + query: "avg:system.cpu.user{env:prod} by {service}" + items: + $ref: "#/components/schemas/TimeseriesAnomalyInvestigationMetricQuery" + minItems: 1 + type: array + to: + description: End of the investigation time window in milliseconds since the Unix epoch. Must be later than `from`. + example: 1754423940000 + format: int64 + minimum: 1 + type: integer + required: + - formulas + - from + - to + - queries type: object - WebhooksOAuth2ClientCredentialsResponse: - description: Response containing an OAuth2 client credentials auth method. + TimeseriesAnomalyInvestigationType: + description: Resource type for a timeseries anomaly investigation. + enum: + - timeseries_anomaly_investigation + example: timeseries_anomaly_investigation + type: string + x-enum-varnames: + - TIMESERIES_ANOMALY_INVESTIGATION + TimeseriesFormulaQueryRequest: + description: A request wrapper around a single timeseries query to be executed. properties: data: - $ref: "#/components/schemas/WebhooksOAuth2ClientCredentialsResponseData" + $ref: "#/components/schemas/TimeseriesFormulaRequest" required: - data type: object - WebhooksOAuth2ClientCredentialsResponseAttributes: - description: OAuth2 client credentials attributes returned by the API. The `client_secret` is never echoed. + TimeseriesFormulaQueryResponse: + description: A message containing one response to a timeseries query made with timeseries formula query request. properties: - access_token_url: - description: URL of the OAuth2 access token endpoint. - example: "https://example.com/oauth/token" - type: string - audience: - description: The intended audience for the OAuth2 access token. - example: "https://api.example.com" - nullable: true - type: string - client_id: - description: The OAuth2 client ID issued by the authorization server. - example: "my-client-id" - type: string - name: - description: Human-readable name for this auth method. - example: "my-oauth2-auth" - type: string - protocol: - $ref: "#/components/schemas/WebhooksAuthMethodProtocol" - scope: - description: Space-separated list of OAuth2 scopes to request. - example: "read:webhooks write:webhooks" - nullable: true + data: + $ref: "#/components/schemas/TimeseriesResponse" + errors: + description: The error generated by the request. type: string type: object - WebhooksOAuth2ClientCredentialsResponseData: - description: OAuth2 client credentials data from a response. + TimeseriesFormulaRequest: + description: A single timeseries query to be executed. properties: attributes: - $ref: "#/components/schemas/WebhooksOAuth2ClientCredentialsResponseAttributes" - id: - description: The ID of the OAuth2 client credentials auth method. - example: "596da4af-0563-4097-90ff-07230c3f9db3" - type: string + $ref: "#/components/schemas/TimeseriesFormulaRequestAttributes" type: - $ref: "#/components/schemas/WebhooksOAuth2ClientCredentialsType" + $ref: "#/components/schemas/TimeseriesFormulaRequestType" required: - - id - type - attributes type: object - WebhooksOAuth2ClientCredentialsType: - default: webhooks-auth-method-oauth2-client-credentials - description: OAuth2 client credentials resource type. - enum: - - webhooks-auth-method-oauth2-client-credentials - example: webhooks-auth-method-oauth2-client-credentials - type: string - x-enum-varnames: - - WEBHOOKS_AUTH_METHOD_OAUTH2_CLIENT_CREDENTIALS - WebhooksOAuth2ClientCredentialsUpdateAttributes: - description: OAuth2 client credentials attributes for an update request. + TimeseriesFormulaRequestAttributes: + description: The object describing a timeseries formula request. properties: - access_token_url: - description: URL of the OAuth2 access token endpoint. - example: "https://example.com/oauth/token" - maxLength: 2048 - minLength: 1 - type: string - audience: - description: The intended audience for the OAuth2 access token. - example: "https://api.example.com" - maxLength: 2048 - minLength: 1 - nullable: true - type: string - client_id: - description: The OAuth2 client ID issued by the authorization server. - example: "my-client-id" - maxLength: 2048 - minLength: 1 - type: string - client_secret: + formulas: + description: List of formulas to be calculated and returned as responses. + items: + $ref: "#/components/schemas/QueryFormula" + type: array + from: + description: Start date (inclusive) of the query in milliseconds since the Unix epoch. + example: 1568899800000 + format: int64 + type: integer + interval: description: |- - The OAuth2 client secret issued by the authorization server. - Write-only; never returned by the API. - example: "my-client-secret" - maxLength: 2048 - minLength: 1 - type: string - name: - description: Human-readable name for this auth method. - example: "my-oauth2-auth" - maxLength: 100 - minLength: 1 - type: string - scope: - description: Space-separated list of OAuth2 scopes to request. - example: "read:webhooks write:webhooks" - maxLength: 2048 - minLength: 1 - nullable: true - type: string - type: object - WebhooksOAuth2ClientCredentialsUpdateData: - description: OAuth2 client credentials data for an update request. - properties: - attributes: - $ref: "#/components/schemas/WebhooksOAuth2ClientCredentialsUpdateAttributes" - type: - $ref: "#/components/schemas/WebhooksOAuth2ClientCredentialsType" - required: - - type - - attributes - type: object - WebhooksOAuth2ClientCredentialsUpdateRequest: - description: Update request for an OAuth2 client credentials auth method. - properties: - data: - $ref: "#/components/schemas/WebhooksOAuth2ClientCredentialsUpdateData" + A time interval in milliseconds. + May be overridden by a larger interval if the query would result in + too many points for the specified timeframe. + Defaults to a reasonable interval for the given timeframe. + example: 5000 + format: int64 + type: integer + queries: + $ref: "#/components/schemas/TimeseriesFormulaRequestQueries" + to: + description: End date (exclusive) of the query in milliseconds since the Unix epoch. + example: 1568923200000 + format: int64 + type: integer required: - - data + - to + - from + - queries type: object - Weekday: - description: A day of the week. - enum: - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - - sunday - type: string - x-enum-varnames: - - MONDAY - - TUESDAY - - WEDNESDAY - - THURSDAY - - FRIDAY - - SATURDAY - - SUNDAY - WidgetAnnotationIds: - description: List of annotation IDs displayed on a widget. + TimeseriesFormulaRequestQueries: + description: List of queries to be run and used as inputs to the formulas. example: - - "00000000-0000-0000-0000-000000000000" + - data_source: metrics + query: "avg:system.cpu.user{*} by {env}" items: - description: Annotation ID. - format: uuid - type: string + $ref: "#/components/schemas/TimeseriesQuery" type: array - WidgetAnnotationsMap: - additionalProperties: - $ref: "#/components/schemas/WidgetAnnotationIds" - description: Map from widget ID to the list of annotation IDs displayed on that widget. + TimeseriesFormulaRequestType: + default: "timeseries_request" + description: The type of the resource. The value should always be timeseries_request. + enum: ["timeseries_request"] + example: "timeseries_request" + type: string + x-enum-varnames: ["TIMESERIES_REQUEST"] + TimeseriesFormulaResponseType: + default: "timeseries_response" + description: The type of the resource. The value should always be timeseries_response. + enum: ["timeseries_response"] + example: "timeseries_response" + type: string + x-enum-varnames: ["TIMESERIES_RESPONSE"] + TimeseriesQuery: + description: An individual timeseries query to one of the basic Datadog data sources. example: - "1234567890": - - "00000000-0000-0000-0000-000000000000" + data_source: metrics + query: "avg:system.cpu.user{*} by {env}" + oneOf: + - $ref: "#/components/schemas/MetricsTimeseriesQuery" + - $ref: "#/components/schemas/EventsTimeseriesQuery" + - $ref: "#/components/schemas/ApmResourceStatsQuery" + - $ref: "#/components/schemas/ApmMetricsQuery" + - $ref: "#/components/schemas/ApmDependencyStatsQuery" + - $ref: "#/components/schemas/SloQuery" + - $ref: "#/components/schemas/ProcessTimeseriesQuery" + - $ref: "#/components/schemas/ContainerTimeseriesQuery" + TimeseriesResponse: + description: A message containing the response to a timeseries query. + properties: + attributes: + $ref: "#/components/schemas/TimeseriesResponseAttributes" + type: + $ref: "#/components/schemas/TimeseriesFormulaResponseType" type: object - WidgetAttributes: - description: Attributes of a widget resource. + TimeseriesResponseAttributes: + description: The object describing a timeseries response. properties: - created_at: - description: ISO 8601 timestamp of when the widget was created. - example: "2024-01-15T00:00:00.000Z" - type: string - definition: - $ref: "#/components/schemas/WidgetDefinition" - is_favorited: + series: + $ref: "#/components/schemas/TimeseriesResponseSeriesList" + times: + $ref: "#/components/schemas/TimeseriesResponseTimes" + values: + $ref: "#/components/schemas/TimeseriesResponseValuesList" + type: object + TimeseriesResponseSeries: + description: A single series in a timeseries query response, containing the query index, unit information, and group tags. + properties: + group_tags: + $ref: "#/components/schemas/GroupTags" + query_index: + description: The index of the query in the "formulas" array (or "queries" array if no "formulas" was specified). + example: 0 + format: int32 + maximum: 2147483647 + type: integer + unit: description: |- - Whether the current user has favorited this widget. Populated on get, - batch_get, update, and search responses; create responses always return - `false` because a widget can only be favorited after it exists. - Favoriting itself is performed through the shared favorites API, not - this service. - example: false - type: boolean - modified_at: - description: ISO 8601 timestamp of when the widget was last modified. - example: "2024-01-15T00:00:00.000Z" - type: string - tags: - description: User-defined tags for organizing widgets. - example: - - "team:my-team" + Detailed information about the unit. + The first element describes the "primary unit" (for example, `bytes` in `bytes per second`). + The second element describes the "per unit" (for example, `second` in `bytes per second`). + If the second element is not present, the API returns null. items: - description: A single user-defined tag. - type: string + $ref: "#/components/schemas/Unit" nullable: true type: array - required: - - definition - - tags - - is_favorited - - created_at - - modified_at type: object - WidgetData: - description: A widget resource object. + TimeseriesResponseSeriesList: + description: Array of response series. The index here corresponds to the index in the `formulas` or `queries` array from the request. + items: + $ref: "#/components/schemas/TimeseriesResponseSeries" + type: array + TimeseriesResponseTimes: + description: Array of times, 1-1 match with individual values arrays. + items: + description: Start date (inclusive) of the query in seconds since the Unix epoch. + example: 1568899800000 + format: int64 + type: integer + type: array + TimeseriesResponseValues: + description: Array of values for an individual formula or query. + example: [1575317847.0, 0.5] + items: + description: An individual value for a given time. + format: double + nullable: true + type: number + type: array + TimeseriesResponseValuesList: + description: Array of value-arrays. The index here corresponds to the index in the `formulas` or `queries` array from the request. + items: + $ref: "#/components/schemas/TimeseriesResponseValues" + type: array + TokenName: + description: Name for tokens. + example: MyTokenName + pattern: ^[A-Za-z][A-Za-z\\d]*$ + type: string + TokenType: + description: The definition of `TokenType` object. + enum: + - SECRET + example: SECRET + type: string + x-enum-varnames: + - SECRET + TopLongTaskInvoker: + description: A top long task invoker within an invoker type. properties: - attributes: - $ref: "#/components/schemas/WidgetAttributes" - id: - description: The unique identifier of the widget. - example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + criteria_view_occurrences: + description: Number of sampled views where this invoker had long tasks contributing to the criteria metric. + example: 40 + format: int32 + maximum: 2147483647 + type: integer + file: + description: Cleaned source file path for the invoker script. + example: src/pages/Gallery.tsx + nullable: true type: string - relationships: - $ref: "#/components/schemas/WidgetRelationships" - type: - description: Widgets resource type. - example: widgets + impact_score: + description: Rank-product impact score combining view frequency and blocking time severity. + example: 0.67 + format: double + type: number + invoker: + description: Name of the invoker function or script. + example: Response.json.then type: string + stats_per_view: + $ref: "#/components/schemas/LongTaskStatsPerView" + view_occurrences: + description: Number of sampled views where this invoker had any long tasks. + example: 68 + format: int32 + maximum: 2147483647 + type: integer required: - - id - - type - - attributes + - invoker + - view_occurrences + - stats_per_view type: object - WidgetDefinition: - additionalProperties: {} - description: The definition of a widget, including its type and configuration. + TraceAttributes: + description: The attributes of a trace returned by the Get trace by ID endpoint. properties: - title: - description: The display title of the widget. - example: My Widget - maxLength: 100 - minLength: 1 - type: string - type: - $ref: "#/components/schemas/WidgetType" + is_truncated: + description: Indicates whether the trace was truncated because its size exceeded the maximum response payload. + example: false + type: boolean + spans: + $ref: "#/components/schemas/APMTraceSpans" required: - - type - - title + - is_truncated + - spans type: object - WidgetExperienceType: - description: Widget experience types that differentiate between the products using the specific widget. - enum: - - ccm_reports - - logs_reports - - csv_reports - - product_analytics - example: ccm_reports - type: string - x-enum-varnames: - - CCM_REPORTS - - LOGS_REPORTS - - CSV_REPORTS - - PRODUCT_ANALYTICS - WidgetIncludedUser: - description: A user resource included in the response. + TraceData: + description: A trace resource document. properties: attributes: - $ref: "#/components/schemas/WidgetIncludedUserAttributes" + $ref: "#/components/schemas/TraceAttributes" id: - description: The unique identifier of the user. - example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + description: The full 128-bit trace ID, encoded as a 32-character hexadecimal string. + example: "0000000000000000abc1230000000000" type: string type: - description: Users resource type. - example: users - type: string + $ref: "#/components/schemas/TraceType" required: - id - type + - attributes type: object - WidgetIncludedUserAttributes: - description: Attributes of an included user resource. - properties: - handle: - description: The email handle of the user. - example: "john.doe@example.com" - type: string - name: - description: The display name of the user. - example: "John Doe" - nullable: true - type: string - type: object - WidgetListResponse: - description: Response containing a list of widgets. + TraceResponse: + description: Response containing a single trace. properties: data: - description: List of widget resources. - items: - $ref: "#/components/schemas/WidgetData" - type: array - included: - description: Array of user resources related to the widgets. - items: - $ref: "#/components/schemas/WidgetIncludedUser" - type: array - meta: - $ref: "#/components/schemas/WidgetSearchMeta" + $ref: "#/components/schemas/TraceData" required: - data type: object - WidgetLiveSpan: - description: The available timeframes depend on the widget you are using. + TraceType: + description: The type of the trace resource. The value is always `trace`. enum: - - 1m - - 5m - - 10m - - 15m - - 30m - - 1h - - 4h - - 1d - - 2d - - 1w - - 1mo - - 3mo - - 6mo - - 1y - - alert - example: 5m + - trace + example: trace type: string x-enum-varnames: - - PAST_ONE_MINUTE - - PAST_FIVE_MINUTES - - PAST_TEN_MINUTES - - PAST_FIFTEEN_MINUTES - - PAST_THIRTY_MINUTES - - PAST_ONE_HOUR - - PAST_FOUR_HOURS - - PAST_ONE_DAY - - PAST_TWO_DAYS - - PAST_ONE_WEEK - - PAST_ONE_MONTH - - PAST_THREE_MONTHS - - PAST_SIX_MONTHS - - PAST_ONE_YEAR - - ALERT - WidgetRelationshipData: - description: Relationship data referencing a user resource. + - TRACE + Trigger: + description: "One of the triggers that can start the execution of a workflow." + oneOf: + - $ref: "#/components/schemas/AgentTriggerWrapper" + - $ref: "#/components/schemas/APITriggerWrapper" + - $ref: "#/components/schemas/AppTriggerWrapper" + - $ref: "#/components/schemas/CaseTriggerWrapper" + - $ref: "#/components/schemas/ChangeEventTriggerWrapper" + - $ref: "#/components/schemas/DatabaseMonitoringTriggerWrapper" + - $ref: "#/components/schemas/DatastoreTriggerWrapper" + - $ref: "#/components/schemas/DashboardTriggerWrapper" + - $ref: "#/components/schemas/FormTriggerWrapper" + - $ref: "#/components/schemas/GithubWebhookTriggerWrapper" + - $ref: "#/components/schemas/IncidentCreatedTriggerWrapper" + - $ref: "#/components/schemas/IncidentImpactCreatedTriggerWrapper" + - $ref: "#/components/schemas/IncidentImpactUpdatedTriggerWrapper" + - $ref: "#/components/schemas/IncidentPostmortemUpdatedTriggerWrapper" + - $ref: "#/components/schemas/IncidentResponderCreatedTriggerWrapper" + - $ref: "#/components/schemas/IncidentSavedTriggerWrapper" + - $ref: "#/components/schemas/IncidentScheduleTriggerWrapper" + - $ref: "#/components/schemas/IncidentTriggerWrapper" + - $ref: "#/components/schemas/MonitorTriggerWrapper" + - $ref: "#/components/schemas/NotebookTriggerWrapper" + - $ref: "#/components/schemas/OnCallTriggerWrapper" + - $ref: "#/components/schemas/ScheduleTriggerWrapper" + - $ref: "#/components/schemas/SecurityTriggerWrapper" + - $ref: "#/components/schemas/SelfServiceTriggerWrapper" + - $ref: "#/components/schemas/SlackTriggerWrapper" + - $ref: "#/components/schemas/SoftwareCatalogTriggerWrapper" + - $ref: "#/components/schemas/WorkflowTriggerWrapper" + TriggerAttributes: + anyOf: + - $ref: "#/components/schemas/MonitorAlertTrigger" + - $ref: "#/components/schemas/GeneralInvestigationTrigger" + description: The trigger definition for starting an investigation. + example: + monitor_alert_trigger: + event_id: "1234567890123456789" + event_ts: 1700000000000 + monitor_id: 12345678 + type: monitor_alert_trigger properties: - id: - description: The unique identifier of the user. - example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890" - type: string + general_investigation: + $ref: "#/components/schemas/GeneralInvestigationAttributes" + monitor_alert_trigger: + $ref: "#/components/schemas/MonitorAlertTriggerAttributes" type: - description: Users resource type. - example: users - type: string - required: - - id - - type + $ref: "#/components/schemas/TriggerType" type: object - WidgetRelationshipItem: - description: A JSON:API relationship to a user. + TriggerInvestigationRequest: + description: Request to trigger a new investigation. properties: data: - $ref: "#/components/schemas/WidgetRelationshipData" - type: object - WidgetRelationships: - description: Relationships of the widget resource. - properties: - created_by: - $ref: "#/components/schemas/WidgetRelationshipItem" - description: The user who created the widget. - modified_by: - $ref: "#/components/schemas/WidgetRelationshipItem" - description: The user who last modified the widget. + $ref: "#/components/schemas/TriggerInvestigationRequestData" + required: + - data type: object - WidgetResponse: - description: Response containing a single widget. + TriggerInvestigationRequestData: + description: Data for the trigger investigation request. properties: - data: - $ref: "#/components/schemas/WidgetData" - included: - description: Array of user resources related to the widget. - items: - $ref: "#/components/schemas/WidgetIncludedUser" - type: array + attributes: + $ref: "#/components/schemas/TriggerInvestigationRequestDataAttributes" + type: + $ref: "#/components/schemas/TriggerInvestigationRequestType" required: - - data + - type + - attributes type: object - WidgetSearchMeta: - description: Metadata about the search results. + TriggerInvestigationRequestDataAttributes: + description: Attributes for the trigger investigation request. properties: - created_by_anyone_total: - description: Total number of widgets created by anyone. - format: int64 - type: integer - created_by_you_total: - description: Total number of widgets created by the current user. - format: int64 - type: integer - favorited_by_you_total: - description: Total number of widgets favorited by the current user. - format: int64 - type: integer - filtered_total: - description: Total number of widgets matching the current filter criteria. - format: int64 - type: integer + trigger: + $ref: "#/components/schemas/TriggerAttributes" + required: + - trigger type: object - WidgetType: - description: |- - Widget types that are allowed to be stored as individual records. - This is not a complete list of dashboard and notebook widget types. + TriggerInvestigationRequestType: + description: The resource type for trigger investigation requests. enum: - - bar_chart - - change - - cloud_cost_summary - - cohort - - funnel - - geomap - - list_stream - - query_table - - query_value - - retention_curve - - sankey - - sunburst - - timeseries - - toplist - - treemap - example: bar_chart + - trigger_investigation_request + example: trigger_investigation_request type: string x-enum-varnames: - - BAR_CHART - - CHANGE - - CLOUD_COST_SUMMARY - - COHORT - - FUNNEL - - GEOMAP - - LIST_STREAM - - QUERY_TABLE - - QUERY_VALUE - - RETENTION_CURVE - - SANKEY - - SUNBURST - - TIMESERIES - - TOPLIST - - TREEMAP - WorkflowData: - description: Data related to the workflow. + - TRIGGER_INVESTIGATION_REQUEST + TriggerInvestigationResponse: + description: Response after triggering an investigation. + properties: + data: + $ref: "#/components/schemas/TriggerInvestigationResponseData" + required: + - data + type: object + TriggerInvestigationResponseData: + description: Data for the trigger investigation response. properties: attributes: - $ref: "#/components/schemas/WorkflowDataAttributes" + $ref: "#/components/schemas/TriggerInvestigationResponseDataAttributes" id: - description: The workflow identifier - readOnly: true + description: Unique identifier for the trigger response. + example: "f5e6a7b8-c9d0-1e2f-3a4b-5c6d7e8f9a0b" type: string - relationships: - $ref: "#/components/schemas/WorkflowDataRelationships" type: - $ref: "#/components/schemas/WorkflowDataType" + $ref: "#/components/schemas/TriggerInvestigationResponseType" required: + - id - type - attributes type: object - WorkflowDataAttributes: - description: The definition of `WorkflowDataAttributes` object. + TriggerInvestigationResponseDataAttributes: + description: Attributes for the trigger investigation response. properties: - createdAt: - description: When the workflow was created. - format: date-time - readOnly: true - type: string - description: - description: Description of the workflow. - type: string - name: - description: Name of the workflow. - example: "" - type: string - published: - description: Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published. - type: boolean - runAs: - $ref: "#/components/schemas/WorkflowRunAs" - writeOnly: true - runAsUserMode: - $ref: "#/components/schemas/WorkflowRunAsUserMode" - readOnly: true - sensitivePrivileges: - description: Whether the workflow requires sensitive privileges to run. Only the workflow owner can update this field. This allows it to run actions that use [Execution Policies](https://docs.datadoghq.com/actions/private_actions/execution_policies/). - type: boolean - spec: - $ref: "#/components/schemas/Spec" - tags: - description: Tags of the workflow. - items: - description: A tag string in `key:value` format. - type: string - type: array - updatedAt: - description: When the workflow was last updated. - format: date-time - readOnly: true - type: string - webhookSecret: - description: If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here. + investigation_id: + description: The ID of the investigation that was created. + example: "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d" type: string - writeOnly: true required: - - name - - spec + - investigation_id type: object - WorkflowDataRelationships: - description: The definition of `WorkflowDataRelationships` object. + TriggerInvestigationResponseType: + description: The resource type for trigger investigation responses. + enum: + - trigger_investigation_response + example: trigger_investigation_response + type: string + x-enum-varnames: + - TRIGGER_INVESTIGATION_RESPONSE + TriggerRateLimit: + description: Defines a rate limit for a trigger. properties: - creator: - $ref: "#/components/schemas/WorkflowUserRelationship" - owner: - $ref: "#/components/schemas/WorkflowUserRelationship" - runAs: - $ref: "#/components/schemas/WorkflowUserRelationship" - description: The service account used to run the workflow. Present when `runAsUserMode` is `service_account`. - readOnly: true + count: + description: The `TriggerRateLimit` `count`. + format: int64 + type: integer + interval: + description: The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s + type: string type: object - WorkflowDataType: - description: The definition of `WorkflowDataType` object. + TriggerSource: + description: |- + The type of security issues on which the rule applies. Notification rules based on security signals need to use the trigger source "security_signals", + while notification rules based on security vulnerabilities need to use the trigger source "security_findings". enum: - - workflows - example: workflows + - security_findings + - security_signals + example: security_findings type: string x-enum-varnames: - - WORKFLOWS - WorkflowDataUpdate: - description: Data related to the workflow being updated. + - SECURITY_FINDINGS + - SECURITY_SIGNALS + TriggerType: + description: The type of trigger for the investigation. + enum: + - monitor_alert_trigger + - general_investigation + example: monitor_alert_trigger + type: string + x-enum-varnames: + - MONITOR_ALERT_TRIGGER + - GENERAL_INVESTIGATION + TriggerWorkflowAutomationAction: + description: "Triggers a Workflow Automation." properties: - attributes: - $ref: "#/components/schemas/WorkflowDataUpdateAttributes" - id: - description: The workflow identifier + handle: + description: "The handle of the Workflow Automation to trigger." + example: my-workflow-handle type: string - relationships: - $ref: "#/components/schemas/WorkflowDataRelationships" type: - $ref: "#/components/schemas/WorkflowDataType" + $ref: "#/components/schemas/TriggerWorkflowAutomationActionType" required: - type - - attributes + - handle type: object - WorkflowDataUpdateAttributes: - description: The definition of `WorkflowDataUpdateAttributes` object. + TriggerWorkflowAutomationActionType: + default: workflow + description: "Indicates that the action triggers a Workflow Automation." + enum: + - workflow + example: workflow + type: string + x-enum-varnames: + - TRIGGER_WORKFLOW_AUTOMATION + TwilioAlertsLogsIntegrationDataflowRequest: + additionalProperties: false + description: >- + Twilio Alert resource logs, which detail the errors and warnings raised when Twilio makes a webhook request to your server or when your application calls the Twilio REST API. This is the one kind of data the integration collects by default. properties: - createdAt: - description: When the workflow was created. - format: date-time - readOnly: true - type: string - description: - description: Description of the workflow. - type: string - name: - description: Name of the workflow. - type: string - published: - description: Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published. - type: boolean - runAs: - $ref: "#/components/schemas/WorkflowRunAs" - writeOnly: true - runAsUserMode: - $ref: "#/components/schemas/WorkflowRunAsUserMode" - readOnly: true - sensitivePrivileges: - description: Whether the workflow requires sensitive privileges to run. Only the workflow owner can update this field. This allows it to run actions that use [Execution Policies](https://docs.datadoghq.com/actions/private_actions/execution_policies/). + enabled: + description: Whether Datadog collects this data. Defaults to `true`; set to `false` to stop collection. + example: true type: boolean - spec: - $ref: "#/components/schemas/Spec" - tags: - description: Tags of the workflow. - items: - description: A tag string in `key:value` format. - type: string - type: array - updatedAt: - description: When the workflow was last updated. - format: date-time - readOnly: true - type: string - webhookSecret: - description: If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here. - type: string - writeOnly: true type: object - WorkflowInstanceCreateMeta: - description: Additional information for creating a workflow instance. + TwilioAlertsLogsIntegrationDataflowResponse: + description: >- + Twilio Alert resource logs, which detail the errors and warnings raised when Twilio makes a webhook request to your server or when your application calls the Twilio REST API. properties: - payload: - additionalProperties: {} - description: The input parameters to the workflow. - type: object + enabled: + description: Whether Datadog collects this data. + example: true + type: boolean + status: + $ref: "#/components/schemas/IntegrationAccountDataflowStatus" type: object - WorkflowInstanceCreateRequest: - description: Request used to create a workflow instance. + TwilioCallSummariesLogsIntegrationDataflowRequest: + additionalProperties: false + description: >- + Twilio Call Summary resource logs, covering the metadata and performance of the calls made from your Twilio account. Requires Voice Insights Advanced Features to be enabled on the Twilio account; without it this dataflow collects no data. properties: - meta: - $ref: "#/components/schemas/WorkflowInstanceCreateMeta" + enabled: + description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. + example: true + type: boolean type: object - WorkflowInstanceCreateResponse: - additionalProperties: {} - description: Response returned upon successful workflow instance creation. + TwilioCallSummariesLogsIntegrationDataflowResponse: + description: >- + Twilio Call Summary resource logs, covering the metadata and performance of the calls made from your Twilio account. Requires Voice Insights Advanced Features to be enabled on the Twilio account; without it this dataflow collects no data. properties: - data: - $ref: "#/components/schemas/WorkflowInstanceCreateResponseData" + enabled: + description: Whether Datadog collects this data. + example: true + type: boolean + status: + $ref: "#/components/schemas/IntegrationAccountDataflowStatus" type: object - WorkflowInstanceCreateResponseData: - additionalProperties: {} - description: Data about the created workflow instance. + TwilioCloudCostMetricsIntegrationDataflowRequest: + additionalProperties: false + description: >- + Your Twilio cost data, so that Twilio spend can be broken down and attributed in [Cloud Cost Management](https://docs.datadoghq.com/cloud_cost_management/). Cost data appears in Cloud Cost Management within 24 hours of enabling this dataflow. properties: - id: - description: The ID of the workflow execution. It can be used to fetch the execution status. + enabled: + description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. + example: true + type: boolean + type: object + TwilioCloudCostMetricsIntegrationDataflowResponse: + description: >- + Your Twilio cost data, so that Twilio spend can be broken down and attributed in [Cloud Cost Management](https://docs.datadoghq.com/cloud_cost_management/). + properties: + enabled: + description: Whether Datadog collects this data. + example: true + type: boolean + status: + $ref: "#/components/schemas/IntegrationAccountDataflowStatus" + type: object + TwilioEventsLogsIntegrationDataflowRequest: + additionalProperties: false + description: >- + Twilio Event resource logs, which record virtually every action taken in your Twilio account, such as provisioning a phone number, changing account security settings, or deleting a recording. Actions are recorded whether they came from the REST API, a user in the Twilio Console, or Twilio itself. [Cloud SIEM](https://docs.datadoghq.com/security/cloud_siem/) analyzes and correlates these logs to detect threats in real time. + properties: + enabled: + description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. + example: true + type: boolean + type: object + TwilioEventsLogsIntegrationDataflowResponse: + description: >- + Twilio Event resource logs, which record virtually every action taken in your Twilio account, such as provisioning a phone number, changing account security settings, or deleting a recording. Actions are recorded whether they came from the REST API, a user in the Twilio Console, or Twilio itself. [Cloud SIEM](https://docs.datadoghq.com/security/cloud_siem/) analyzes and correlates these logs to detect threats in real time. + properties: + enabled: + description: Whether Datadog collects this data. + example: true + type: boolean + status: + $ref: "#/components/schemas/IntegrationAccountDataflowStatus" + type: object + TwilioIntegrationAccountAuthenticationRequest: + description: Authentication for creating the Twilio integration account. Exactly one method is set. + oneOf: + - $ref: "#/components/schemas/TwilioIntegrationAccountBasicAuthRequest" + TwilioIntegrationAccountAuthenticationResponse: + description: Authentication configured on the Twilio integration account. + oneOf: + - $ref: "#/components/schemas/TwilioIntegrationAccountBasicAuthResponse" + TwilioIntegrationAccountAuthenticationUpdate: + description: Authentication for updating the Twilio integration account. Exactly one method is set. + oneOf: + - $ref: "#/components/schemas/TwilioIntegrationAccountBasicAuthUpdate" + TwilioIntegrationAccountBasicAuthRequest: + additionalProperties: false + description: Username and password authentication. + properties: + auth_type: + $ref: "#/components/schemas/TwilioIntegrationAccountBasicAuthType" + password: + description: Secret password or private key. + example: your-password + type: string + writeOnly: true + username: + description: Non-secret username or public identifier for the credential pair. + example: datadog type: string + required: + - auth_type + - username + - password type: object - WorkflowInstanceListItem: - additionalProperties: {} - description: An item in the workflow instances list. + TwilioIntegrationAccountBasicAuthResponse: + description: The basic authentication method and username configured on the account. properties: - id: - description: The ID of the workflow instance + auth_type: + $ref: "#/components/schemas/TwilioIntegrationAccountBasicAuthType" + username: + description: Non-secret username or public identifier for the credential pair. + example: datadog type: string + required: + - auth_type + - username type: object - WorkflowListInstancesResponse: - additionalProperties: {} - description: Response returned when listing workflow instances. + TwilioIntegrationAccountBasicAuthType: + default: basic + description: The authentication method type. + enum: + - basic + example: basic + type: string + x-enum-varnames: + - BASIC + TwilioIntegrationAccountBasicAuthUpdate: + additionalProperties: false + description: Username and password authentication. Only the fields provided are changed; omit `password` to keep the stored one. + properties: + auth_type: + $ref: "#/components/schemas/TwilioIntegrationAccountBasicAuthType" + password: + description: Secret password or private key. + example: your-password + type: string + writeOnly: true + username: + description: Non-secret username or public identifier for the credential pair. + example: datadog + type: string + required: + - auth_type + type: object + TwilioIntegrationAccountCreateAttributes: + description: Writable attributes used to create a Twilio integration account. + properties: + authentication: + $ref: "#/components/schemas/TwilioIntegrationAccountAuthenticationRequest" + dataflows: + $ref: "#/components/schemas/TwilioIntegrationDataflowsRequest" + name: + description: Human-readable name of the Twilio integration account. + example: twilio-prod + type: string + settings: + $ref: "#/components/schemas/TwilioIntegrationAccountSettingsRequest" + required: + - name + - authentication + - settings + type: object + TwilioIntegrationAccountCreateData: + description: Data envelope for creating a Twilio integration account. + properties: + attributes: + $ref: "#/components/schemas/TwilioIntegrationAccountCreateAttributes" + type: + $ref: "#/components/schemas/IntegrationAccountType" + required: + - type + - attributes + type: object + TwilioIntegrationAccountCreateRequest: + description: Request payload to create a Twilio integration account. properties: data: - description: A list of workflow instances. - items: - $ref: "#/components/schemas/WorkflowInstanceListItem" - type: array - meta: - $ref: "#/components/schemas/WorkflowListInstancesResponseMeta" + $ref: "#/components/schemas/TwilioIntegrationAccountCreateData" + required: + - data type: object - WorkflowListInstancesResponseMeta: - additionalProperties: {} - description: Metadata about the instances list + TwilioIntegrationAccountResponse: + description: Response payload for a single Twilio integration account. properties: - page: - $ref: "#/components/schemas/WorkflowListInstancesResponseMetaPage" + data: + $ref: "#/components/schemas/TwilioIntegrationAccountResponseData" + required: + - data type: object - WorkflowListInstancesResponseMetaPage: - additionalProperties: {} - description: Page information for the list instances response. + TwilioIntegrationAccountResponseAttributes: + description: Attributes of a Twilio integration account returned in responses. properties: - totalCount: - description: The total count of items. - format: int64 - type: integer + authentication: + $ref: "#/components/schemas/TwilioIntegrationAccountAuthenticationResponse" + dataflows: + $ref: "#/components/schemas/TwilioIntegrationDataflowsResponse" + name: + description: Human-readable name of the Twilio integration account. + example: twilio-prod + type: string + settings: + $ref: "#/components/schemas/TwilioIntegrationAccountSettingsResponse" + required: + - name + - settings type: object - WorkflowListItem: - description: A workflow returned by the list workflows endpoint. + TwilioIntegrationAccountResponseData: + description: Data envelope of a Twilio integration account, including server-assigned identity. properties: attributes: - $ref: "#/components/schemas/WorkflowListItemAttributes" + $ref: "#/components/schemas/TwilioIntegrationAccountResponseAttributes" id: - description: The workflow identifier. + description: Server-generated unique identifier of the Twilio integration account. + example: 953a0060-81ec-4221-aed4-d4733b59cd96 readOnly: true type: string - relationships: - $ref: "#/components/schemas/WorkflowDataRelationships" type: - $ref: "#/components/schemas/WorkflowDataType" + $ref: "#/components/schemas/IntegrationAccountType" required: - - type + - id - attributes + - type type: object - WorkflowListItemAttributes: - description: Attributes of a workflow returned in a list response. + TwilioIntegrationAccountSettingsRequest: + additionalProperties: false + description: Settings for creating the Twilio integration account. properties: - createdAt: - description: When the workflow was created. - format: date-time - readOnly: true - type: string - description: - description: Description of the workflow. - type: string - name: - description: Name of the workflow. - example: "My Workflow" + account_sid: + description: Twilio Account SID that uniquely identifies your Twilio account. + example: ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx type: string - published: - description: Whether the workflow is published. Unpublished workflows can only be run manually. Automatic triggers such as Schedule do not fire until the workflow is published. - type: boolean - runAsUserMode: - $ref: "#/components/schemas/WorkflowRunAsUserMode" - readOnly: true - sensitivePrivileges: - description: Whether the workflow requires sensitive privileges to run. Only the workflow owner can update this field. This allows it to run actions that use [Execution Policies](https://docs.datadoghq.com/actions/private_actions/execution_policies/). + censor_logs: + description: When enabled, Twilio phone numbers in the `to` field and SMS message bodies are censored for privacy. + example: true type: boolean - spec: - $ref: "#/components/schemas/Spec" - nullable: true - tags: - description: Tags of the workflow. - items: - description: A tag string in `key:value` format. - type: string - type: array - updatedAt: - description: When the workflow was last updated. - format: date-time - readOnly: true + required: + - account_sid + type: object + TwilioIntegrationAccountSettingsResponse: + description: Settings configured on the Twilio integration account. + properties: + account_sid: + description: Twilio Account SID that uniquely identifies your Twilio account. + example: ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx type: string + censor_logs: + description: When enabled, Twilio phone numbers in the `to` field and SMS message bodies are censored for privacy. + example: true + type: boolean required: - - name + - account_sid type: object - WorkflowRunAs: - description: Identity used to run the workflow. - example: - type: owner - oneOf: - - $ref: "#/components/schemas/WorkflowRunAsOwner" - - $ref: "#/components/schemas/WorkflowRunAsServiceAccount" - - $ref: "#/components/schemas/WorkflowRunAsInitiator" - WorkflowRunAsInitiator: + TwilioIntegrationAccountSettingsUpdate: additionalProperties: false - description: Run the workflow as the user who initiates the execution. + description: Settings for updating the Twilio integration account. Only the fields provided are changed. properties: + account_sid: + description: Twilio Account SID that uniquely identifies your Twilio account. + example: ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + type: string + censor_logs: + description: When enabled, Twilio phone numbers in the `to` field and SMS message bodies are censored for privacy. + example: true + type: boolean + type: object + TwilioIntegrationAccountUpdateAttributes: + description: >- + Writable attributes used to update a Twilio integration account. Every field is optional; only the fields provided are changed. When `dataflows` is provided, only the dataflow ids included in the request are modified; dataflows omitted from the map keep their current configuration. + properties: + authentication: + $ref: "#/components/schemas/TwilioIntegrationAccountAuthenticationUpdate" + dataflows: + $ref: "#/components/schemas/TwilioIntegrationDataflowsRequest" + name: + description: Human-readable name of the Twilio integration account. + example: twilio-prod + type: string + settings: + $ref: "#/components/schemas/TwilioIntegrationAccountSettingsUpdate" + type: object + TwilioIntegrationAccountUpdateData: + description: Data envelope for updating a Twilio integration account. + properties: + attributes: + $ref: "#/components/schemas/TwilioIntegrationAccountUpdateAttributes" + id: + description: Unique identifier of the Twilio integration account to update. + example: 953a0060-81ec-4221-aed4-d4733b59cd96 + type: string type: - $ref: "#/components/schemas/WorkflowRunAsInitiatorType" + $ref: "#/components/schemas/IntegrationAccountType" required: + - id - type + - attributes type: object - WorkflowRunAsInitiatorType: - description: The initiator run-as type. - enum: - - initiator - example: initiator - type: string - x-enum-varnames: - - INITIATOR - WorkflowRunAsOwner: + TwilioIntegrationAccountUpdateRequest: + description: Request payload to update a Twilio integration account. + properties: + data: + $ref: "#/components/schemas/TwilioIntegrationAccountUpdateData" + required: + - data + type: object + TwilioIntegrationAccountsResponse: + description: Response payload for a list of Twilio integration accounts. + properties: + data: + description: List of Twilio integration accounts. + items: + $ref: "#/components/schemas/TwilioIntegrationAccountResponseData" + type: array + required: + - data + type: object + TwilioIntegrationDataflowsRequest: additionalProperties: false - description: Run the workflow as its owner. + description: >- + Data Datadog collects from Twilio, keyed by dataflow id. Each dataflow turns on a distinct kind of collection: set `enabled` to start or stop it. Defaults listed on each dataflow apply when the account is created; on update, omitted fields keep their current values. Where a dataflow depends on a Twilio feature being enabled, that prerequisite is noted on the dataflow; a dataflow enabled without it is stored but collects no data. + properties: + twilio-alerts-logs: + $ref: "#/components/schemas/TwilioAlertsLogsIntegrationDataflowRequest" + twilio-call-summaries-logs: + $ref: "#/components/schemas/TwilioCallSummariesLogsIntegrationDataflowRequest" + twilio-cloud-cost-metrics: + $ref: "#/components/schemas/TwilioCloudCostMetricsIntegrationDataflowRequest" + twilio-events-logs: + $ref: "#/components/schemas/TwilioEventsLogsIntegrationDataflowRequest" + twilio-messages-logs: + $ref: "#/components/schemas/TwilioMessagesLogsIntegrationDataflowRequest" + type: object + TwilioIntegrationDataflowsResponse: + description: Data Datadog collects from Twilio, keyed by dataflow id. + properties: + twilio-alerts-logs: + $ref: "#/components/schemas/TwilioAlertsLogsIntegrationDataflowResponse" + twilio-call-summaries-logs: + $ref: "#/components/schemas/TwilioCallSummariesLogsIntegrationDataflowResponse" + twilio-cloud-cost-metrics: + $ref: "#/components/schemas/TwilioCloudCostMetricsIntegrationDataflowResponse" + twilio-events-logs: + $ref: "#/components/schemas/TwilioEventsLogsIntegrationDataflowResponse" + twilio-messages-logs: + $ref: "#/components/schemas/TwilioMessagesLogsIntegrationDataflowResponse" + type: object + TwilioMessagesLogsIntegrationDataflowRequest: + additionalProperties: false + description: >- + Twilio Message resource logs for inbound and outbound messages, used to track delivery and troubleshoot message errors. A log is produced when you send a message through the REST API, when Twilio executes a TwiML instruction, and when someone messages one of your Twilio numbers or channel addresses. Message bodies are never collected. + properties: + enabled: + description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. + example: true + type: boolean + type: object + TwilioMessagesLogsIntegrationDataflowResponse: + description: >- + Twilio Message resource logs for inbound and outbound messages, used to track delivery and troubleshoot message errors. A log is produced when you send a message through the REST API, when Twilio executes a TwiML instruction, and when someone messages one of your Twilio numbers or channel addresses. Message bodies are never collected. + properties: + enabled: + description: Whether Datadog collects this data. + example: true + type: boolean + status: + $ref: "#/components/schemas/IntegrationAccountDataflowStatus" + type: object + UCConfigPair: + description: The definition of `UCConfigPair` object. + example: + data: + attributes: + configs: + - account_id: 1234abcd-1234-abcd-1234-1234abcd1234 + client_id: 1234abcd-1234-abcd-1234-1234abcd1234 + created_at: "2023-01-01T12:00:00.000000" + dataset_type: actual + error_messages: [] + export_name: dd-actual-export + export_path: dd-export-path + id: "123456789123" + months: 36 + scope: /subscriptions/1234abcd-1234-abcd-1234-1234abcd1234 + status: active + status_updated_at: "2023-01-01T12:00:00.000000" + storage_account: dd-storage-account + storage_container: dd-storage-container + updated_at: "2023-01-01T12:00:00.000000" + id: "123456789123" + type: azure_uc_configs + properties: + data: + $ref: "#/components/schemas/UCConfigPairData" + type: object + UCConfigPairData: + description: The definition of `UCConfigPairData` object. properties: + attributes: + $ref: "#/components/schemas/UCConfigPairDataAttributes" + id: + description: The `UCConfigPairData` `id`. + type: string type: - $ref: "#/components/schemas/WorkflowRunAsOwnerType" + $ref: "#/components/schemas/UCConfigPairDataType" required: - type type: object - WorkflowRunAsOwnerType: - description: The owner run-as type. + UCConfigPairDataAttributes: + description: The definition of `UCConfigPairDataAttributes` object. + properties: + configs: + description: The `attributes` `configs`. + items: + $ref: "#/components/schemas/UCConfigPairDataAttributesConfigsItems" + type: array + type: object + UCConfigPairDataAttributesConfigsItems: + description: The definition of `UCConfigPairDataAttributesConfigsItems` object. + properties: + account_id: + description: The `items` `account_id`. + type: string + client_id: + description: The `items` `client_id`. + type: string + created_at: + description: The `items` `created_at`. + type: string + dataset_type: + description: The `items` `dataset_type`. + type: string + error_messages: + description: The `items` `error_messages`. + items: + description: An error message string. + type: string + nullable: true + type: array + export_name: + description: The `items` `export_name`. + type: string + export_path: + description: The `items` `export_path`. + type: string + id: + description: The `items` `id`. + type: string + months: + description: The `items` `months`. + format: int64 + type: integer + scope: + description: The `items` `scope`. + type: string + status: + description: The `items` `status`. + type: string + status_updated_at: + description: The `items` `status_updated_at`. + type: string + storage_account: + description: The `items` `storage_account`. + type: string + storage_container: + description: The `items` `storage_container`. + type: string + updated_at: + description: The `items` `updated_at`. + type: string + type: object + UCConfigPairDataType: + default: azure_uc_configs + description: Azure UC configs resource type. enum: - - owner - example: owner + - azure_uc_configs + example: azure_uc_configs type: string x-enum-varnames: - - OWNER - WorkflowRunAsServiceAccount: - additionalProperties: false - description: Run the workflow as a service account. + - AZURE_UC_CONFIGS + UnassignSeatsUserRequest: + description: The request body for unassigning seats from users for a product code. + properties: + data: + $ref: "#/components/schemas/UnassignSeatsUserRequestData" + description: The data for the unassign seats user request. + type: object + UnassignSeatsUserRequestData: + description: The request data object containing attributes for unassigning seats from users. properties: + attributes: + $ref: "#/components/schemas/UnassignSeatsUserRequestDataAttributes" + description: The attributes of the unassign seats user request. id: - description: The service account identifier. - example: 00000000-0000-0000-0000-000000000007 + description: The ID of the unassign seats user request. type: string type: - $ref: "#/components/schemas/WorkflowRunAsServiceAccountType" + $ref: "#/components/schemas/SeatAssignmentsDataType" + description: The type of the unassign seats user request. required: - type - - id + - attributes type: object - WorkflowRunAsServiceAccountType: - description: The service account run-as type. - enum: - - service_account - example: service_account - type: string - x-enum-varnames: - - SERVICE_ACCOUNT - WorkflowRunAsUserMode: - description: The effective type of identity used to run the workflow. - enum: - - owner - - service_account - - initiator - example: owner - type: string - x-enum-varnames: - - OWNER - - SERVICE_ACCOUNT - - INITIATOR - WorkflowTriggerWrapper: - description: "Schema for a Workflow-based trigger." + UnassignSeatsUserRequestDataAttributes: + description: Attributes specifying the product and users from whom seats will be unassigned. properties: - startStepNames: - $ref: "#/components/schemas/StartStepNames" - workflowTrigger: - description: "Trigger a workflow from the Datadog UI. When present, this must be the workflow's only trigger." - type: object + product_code: + description: The product code for which to unassign seats. + example: "" + type: string + user_uuids: + description: The list of user IDs to unassign seats from. + example: + - "" + items: + description: A user UUID identifying a user to unassign seats from. + type: string + type: array required: - - workflowTrigger + - product_code + - user_uuids type: object - WorkflowUserRelationship: - description: The definition of `WorkflowUserRelationship` object. + Unit: + description: Object containing the metric unit family, scale factor, name, and short name. + nullable: true + properties: + family: + description: Unit family, allows for conversion between units of the same family, for scaling. + example: time + type: string + name: + description: Unit name + example: minute + type: string + plural: + description: Plural form of the unit name. + example: minutes + type: string + scale_factor: + description: Factor for scaling between units of the same family. + example: 60.0 + format: double + type: number + short_name: + description: Abbreviation of the unit. + example: min + type: string + type: object + UnitCostCreateRequest: + description: A request to create a unit cost. properties: data: - $ref: "#/components/schemas/WorkflowUserRelationshipData" + $ref: "#/components/schemas/UnitCostCreateRequestData" + required: + - data type: object - WorkflowUserRelationshipData: - description: The definition of `WorkflowUserRelationshipData` object. + UnitCostCreateRequestData: + description: The data object of a unit cost create request. + properties: + attributes: + $ref: "#/components/schemas/UnitCostRequestAttributes" + type: + $ref: "#/components/schemas/UnitCostType" + required: + - type + - attributes + type: object + UnitCostDataAttributesResponse: + description: The attributes of a unit cost. + properties: + created_at: + description: The time the unit cost was created. + example: "2026-09-01T18:46:15.933716Z" + format: date-time + type: string + created_by: + description: The UUID of the user who created the unit cost. + example: 36ea1610-8866-4bd3-bb6d-9bb9fc87cad2 + format: uuid + type: string + denominator_query: + $ref: "#/components/schemas/UnitCostQueryDefinition" + denominator_type: + description: |- + The data source of the denominator queries, or `multisource` when the denominator + queries span more than one data source. + example: metrics + type: string + description: + description: The description of the unit cost. Omitted when the unit cost has no description. + example: Amortized cloud spend divided by the number of active users. + nullable: true + type: string + name: + description: The name of the unit cost. + example: Cloud cost per active user + type: string + numerator_query: + $ref: "#/components/schemas/UnitCostQueryDefinition" + org_id: + description: The ID of the organization the unit cost belongs to. + example: 321813 + format: int64 + type: integer + unit_label: + description: The label describing the denominator unit. + example: user + type: string + updated_at: + description: The time the unit cost was last updated. + example: "2026-09-01T19:52:08.820536Z" + format: date-time + type: string + updated_by: + description: The UUID of the user who last updated the unit cost. + example: 13cc0adf-2595-479e-b448-5051c180dddb + format: uuid + type: string + required: + - org_id + - name + - numerator_query + - denominator_query + - denominator_type + - unit_label + - created_by + - updated_by + - created_at + - updated_at + type: object + UnitCostDataResponse: + description: The data object of a unit cost response. properties: + attributes: + $ref: "#/components/schemas/UnitCostDataAttributesResponse" id: - description: The user identifier - example: "" + description: The UUID of the unit cost. + example: 64aecd58-e355-4f07-9c3a-56ff6bda6cd8 + format: uuid type: string type: - $ref: "#/components/schemas/WorkflowUserRelationshipType" + $ref: "#/components/schemas/UnitCostType" required: - - type - id + - type + - attributes type: object - WorkflowUserRelationshipType: - description: The definition of `WorkflowUserRelationshipType` object. + UnitCostDataResponseArray: + description: The list of unit costs. + items: + $ref: "#/components/schemas/UnitCostDataResponse" + type: array + UnitCostFormula: + additionalProperties: {} + description: |- + A formula combining the named queries into a single result, passed through to the + query engine unchanged. + example: + formula: numerator + type: object + UnitCostFormulaArray: + description: The list of formulas applied to the queries for this side of the ratio. + example: + - formula: numerator + items: + $ref: "#/components/schemas/UnitCostFormula" + type: array + UnitCostQuery: + additionalProperties: {} + description: |- + A single query contributing to a unit cost numerator or denominator. The accepted fields + depend on the data source the query targets, for example `cloud_cost`, `metrics`, `dora`, + or `ci_pipelines`, and are passed through to the query engine unchanged. + example: + data_source: cloud_cost + name: numerator + query: "sum:aws.cost.net.amortized.shared.resources.allocated{*}.rollup(sum, daily)" + type: object + UnitCostQueryArray: + description: The list of queries evaluated for this side of the ratio. + example: + - data_source: cloud_cost + name: numerator + query: "sum:aws.cost.net.amortized.shared.resources.allocated{*}.rollup(sum, daily)" + items: + $ref: "#/components/schemas/UnitCostQuery" + type: array + UnitCostQueryDefinition: + additionalProperties: {} + description: A timeseries object containing `queries` and `formulas` arrays. + properties: + formulas: + $ref: "#/components/schemas/UnitCostFormulaArray" + queries: + $ref: "#/components/schemas/UnitCostQueryArray" + required: + - queries + - formulas + type: object + UnitCostRequestAttributes: + description: The attributes of a unit cost create or replace request. + properties: + denominator_query: + $ref: "#/components/schemas/UnitCostQueryDefinition" + description: + description: An optional description of the unit cost. At most 2000 characters. + example: Amortized cloud spend divided by the number of active users. + maxLength: 2000 + nullable: true + type: string + name: + description: The name of the unit cost. At most 200 characters. + example: Cloud cost per active user + maxLength: 200 + type: string + numerator_query: + $ref: "#/components/schemas/UnitCostQueryDefinition" + unit_label: + description: The label describing the denominator unit, for example `user`. At most 100 characters. + example: user + maxLength: 100 + type: string + required: + - name + - numerator_query + - denominator_query + - unit_label + type: object + UnitCostResponse: + description: A response containing a single unit cost. + properties: + data: + $ref: "#/components/schemas/UnitCostDataResponse" + required: + - data + type: object + UnitCostType: + default: unit_cost + description: The JSON:API resource type for a unit cost. enum: - - users - example: users + - unit_cost + example: unit_cost type: string x-enum-varnames: - - USERS - WorklflowCancelInstanceResponse: - description: Information about the canceled instance. + - UNIT_COST + UnitCostUpdateRequest: + description: A request to replace a unit cost. properties: data: - $ref: "#/components/schemas/WorklflowCancelInstanceResponseData" + $ref: "#/components/schemas/UnitCostUpdateRequestData" + required: + - data type: object - WorklflowCancelInstanceResponseData: - description: Data about the canceled instance. + UnitCostUpdateRequestData: + description: The data object of a unit cost replace request. properties: + attributes: + $ref: "#/components/schemas/UnitCostRequestAttributes" id: - description: The id of the canceled instance + description: The UUID of the unit cost being replaced. Must match the `unit_cost_id` path parameter. + example: 64aecd58-e355-4f07-9c3a-56ff6bda6cd8 + format: uuid type: string + type: + $ref: "#/components/schemas/UnitCostType" + required: + - id + - type + - attributes type: object - WorklflowGetInstanceResponse: - additionalProperties: {} - description: The state of the given workflow instance. + UnitCostsResponse: + description: A response containing a list of unit costs. properties: data: - $ref: "#/components/schemas/WorklflowGetInstanceResponseData" + $ref: "#/components/schemas/UnitCostDataResponseArray" + required: + - data type: object - WorklflowGetInstanceResponseData: - additionalProperties: {} - description: The data of the instance response. + UnpublishAppResponse: + description: The response object after an app is successfully unpublished. properties: - attributes: - $ref: "#/components/schemas/WorklflowGetInstanceResponseDataAttributes" + data: + $ref: "#/components/schemas/Deployment" type: object - WorklflowGetInstanceResponseDataAttributes: - additionalProperties: {} - description: The attributes of the instance response data. + UpdateActionConnectionRequest: + description: Request used to update an action connection. properties: - id: - description: The id of the instance. - type: string + data: + $ref: "#/components/schemas/ActionConnectionDataUpdate" + required: + - data type: object - XRayServicesIncludeAll: - description: Include all services. + UpdateActionConnectionResponse: + description: The response for an updated connection. properties: - include_all: - description: Include all services. - example: false + data: + $ref: "#/components/schemas/ActionConnectionData" + type: object + UpdateAppFavoriteRequest: + description: A request to add or remove an app from the current user's favorites. + example: + data: + attributes: + favorite: true + type: favorites + properties: + data: + $ref: "#/components/schemas/UpdateAppFavoriteRequestData" + type: object + UpdateAppFavoriteRequestData: + description: Data for updating an app's favorite status. + properties: + attributes: + $ref: "#/components/schemas/UpdateAppFavoriteRequestDataAttributes" + type: + $ref: "#/components/schemas/AppFavoriteType" + type: object + UpdateAppFavoriteRequestDataAttributes: + description: Attributes for updating an app's favorite status. + properties: + favorite: + description: Whether the app should be marked as a favorite for the current user. + example: true type: boolean required: - - include_all + - favorite type: object - XRayServicesIncludeOnly: - description: Include only these services. Defaults to `[]`. - nullable: true + UpdateAppProtectionLevelRequest: + description: A request to update an app's publication protection level. + example: + data: + attributes: + protectionLevel: approval_required + type: protectionLevel properties: - include_only: - description: Include only these services. - example: - - "AWS/AppSync" - items: - description: An AWS X-Ray service name to include in traces collection. - example: "AWS/AppSync" - type: string - type: array + data: + $ref: "#/components/schemas/UpdateAppProtectionLevelRequestData" + type: object + UpdateAppProtectionLevelRequestData: + description: Data for updating an app's publication protection level. + properties: + attributes: + $ref: "#/components/schemas/UpdateAppProtectionLevelRequestDataAttributes" + type: + $ref: "#/components/schemas/AppProtectionLevelType" + type: object + UpdateAppProtectionLevelRequestDataAttributes: + description: Attributes for updating an app's publication protection level. + properties: + protectionLevel: + $ref: "#/components/schemas/AppProtectionLevel" required: - - include_only + - protectionLevel type: object - XRayServicesList: - description: AWS X-Ray services to collect traces from. Defaults to `include_only`. - oneOf: - - $ref: "#/components/schemas/XRayServicesIncludeAll" - - $ref: "#/components/schemas/XRayServicesIncludeOnly" - ZoomConfigurationReference: - description: A reference to a Zoom configuration resource. - nullable: true + UpdateAppRequest: + description: A request object for updating an existing app. + example: + data: + attributes: + components: + - events: [] + name: grid0 + properties: + children: + - events: [] + name: gridCell0 + properties: + children: + - events: [] + name: calloutValue0 + properties: + isDisabled: false + isLoading: false + isVisible: true + label: CPU Usage + size: sm + style: vivid_yellow + unit: kB + value: "42" + type: calloutValue + isVisible: "true" + layout: + default: + height: 8 + width: 2 + x: 0 + "y": 0 + type: gridCell + type: grid + description: "This is a simple example app" + name: "Example App" + queries: [] + rootInstanceName: grid0 + id: "9e20cbaf-68da-45a6-9ccf-54193ac29fa5" + type: appDefinitions properties: data: - $ref: "#/components/schemas/ZoomConfigurationReferenceData" - required: - - data + $ref: "#/components/schemas/UpdateAppRequestData" type: object - ZoomConfigurationReferenceData: - description: The Zoom configuration relationship data object. - nullable: true + UpdateAppRequestData: + description: The data object containing the new app definition. Any fields not included in the request remain unchanged. properties: + attributes: + $ref: "#/components/schemas/UpdateAppRequestDataAttributes" id: - description: The unique identifier of the Zoom configuration. - example: "00000000-0000-0000-0000-000000000000" + description: The ID of the app to update. The app ID must match the ID in the URL path. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + format: uuid type: string type: - description: The type of the Zoom configuration. - example: "zoom_configurations" - type: string + $ref: "#/components/schemas/AppDefinitionType" required: - - id - type type: object - securitySchemes: - AuthZ: - description: This API uses OAuth 2 with the implicit grant flow. - flows: - authorizationCode: - authorizationUrl: /oauth2/v1/authorize - scopes: - ai_gateway_config_read: View AI Gateway configuration. - ai_gateway_config_write: Create, update, and delete AI Gateway configuration. - ai_gateway_usage: Use AI Gateway and view configuration applicable to the authenticated user. - apm_api_catalog_read: View API catalog and API definitions. - apm_api_catalog_write: Add, modify, and delete API catalog definitions. - apm_read: Read and query APM and Trace Analytics. - apm_service_catalog_read: View service catalog and service definitions. - apm_service_catalog_write: >- - Add, modify, and delete service catalog definitions when those definitions are maintained by Datadog. - appsec_vm_read: View infrastructure, application code, and library vulnerability findings. - aws_configurations_manage: Manage AWS integration account configurations and related integration settings. - billing_edit: Edit your organization's billing information. - billing_read: View your organization's billing information. - bits_investigations_read: View Bits AI investigations. + UpdateAppRequestDataAttributes: + description: App definition attributes to be updated, such as name, description, and components. + properties: + components: + description: The new UI components that make up the app. If this field is set, all existing components are replaced with the new components under this field. + items: + $ref: "#/components/schemas/ComponentGrid" + type: array + description: + description: The new human-readable description for the app. + type: string + name: + description: The new name of the app. + type: string + queries: + description: The new array of queries, such as external actions and state variables, that the app uses. If this field is set, all existing queries are replaced with the new queries under this field. + items: + $ref: "#/components/schemas/Query" + type: array + rootInstanceName: + description: The new name of the root component of the app. This must be a `grid` component that contains all other components. + type: string + tags: + description: The new list of tags for the app, which can be used to filter apps. If this field is set, any existing tags not included in the request are removed. + example: + - "service:webshop-backend" + - "team:webshop" + items: + description: An individual tag for the app. + type: string + type: array + type: object + UpdateAppResponse: + description: The response object after an app is successfully updated. + properties: + data: + $ref: "#/components/schemas/UpdateAppResponseData" + included: + description: Data on the version of the app that was published. + items: + $ref: "#/components/schemas/Deployment" + type: array + meta: + $ref: "#/components/schemas/AppMeta" + relationship: + $ref: "#/components/schemas/AppRelationship" + type: object + UpdateAppResponseData: + description: The data object containing the updated app definition. + properties: + attributes: + $ref: "#/components/schemas/UpdateAppResponseDataAttributes" + id: + description: The ID of the updated app. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + format: uuid + type: string + type: + $ref: "#/components/schemas/AppDefinitionType" + required: + - id + - type + - attributes + type: object + UpdateAppResponseDataAttributes: + description: The updated app definition attributes, such as name, description, and components. + properties: + components: + description: The UI components that make up the app. + items: + $ref: "#/components/schemas/ComponentGrid" + type: array + description: + description: The human-readable description for the app. + type: string + favorite: + description: Whether the app is marked as a favorite by the current user. + type: boolean + name: + description: The name of the app. + type: string + queries: + description: An array of queries, such as external actions and state variables, that the app uses. + items: + $ref: "#/components/schemas/Query" + type: array + rootInstanceName: + description: The name of the root component of the app. This must be a `grid` component that contains all other components. + type: string + tags: + description: A list of tags for the app, which can be used to filter apps. + example: + - "service:webshop-backend" + - "team:webshop" + items: + description: An individual tag for the app. + type: string + type: array + type: object + UpdateAppSelfServiceRequest: + description: A request to enable or disable self-service for an app. + example: + data: + attributes: + selfService: true + type: selfService + properties: + data: + $ref: "#/components/schemas/UpdateAppSelfServiceRequestData" + type: object + UpdateAppSelfServiceRequestData: + description: Data for updating an app's self-service status. + properties: + attributes: + $ref: "#/components/schemas/UpdateAppSelfServiceRequestDataAttributes" + type: + $ref: "#/components/schemas/AppSelfServiceType" + type: object + UpdateAppSelfServiceRequestDataAttributes: + description: Attributes for updating an app's self-service status. + properties: + selfService: + description: Whether the app is enabled for self-service. + example: true + type: boolean + required: + - selfService + type: object + UpdateAppTagsRequest: + description: A request to replace the tags on an app. + example: + data: + attributes: + tags: + - team:platform + - service:ops + type: tags + properties: + data: + $ref: "#/components/schemas/UpdateAppTagsRequestData" + type: object + UpdateAppTagsRequestData: + description: Data for replacing an app's tags. + properties: + attributes: + $ref: "#/components/schemas/UpdateAppTagsRequestDataAttributes" + type: + $ref: "#/components/schemas/AppTagsType" + type: object + UpdateAppTagsRequestDataAttributes: + description: Attributes for replacing an app's tags. + properties: + tags: + description: The full list of tags that should be set on the app. Existing tags not present in this list are removed. + example: + - team:platform + - service:ops + items: + type: string + type: array + required: + - tags + type: object + UpdateAppVersionNameRequest: + description: A request to assign a human-readable name to a specific app version. + example: + data: + attributes: + name: v1.2.0 - bug fix release + type: versionNames + properties: + data: + $ref: "#/components/schemas/UpdateAppVersionNameRequestData" + type: object + UpdateAppVersionNameRequestData: + description: Data for naming a specific app version. + properties: + attributes: + $ref: "#/components/schemas/UpdateAppVersionNameRequestDataAttributes" + type: + $ref: "#/components/schemas/AppVersionNameType" + type: object + UpdateAppVersionNameRequestDataAttributes: + description: Attributes for naming a specific app version. + properties: + name: + description: The name to assign to the app version. + example: v1.2.0 - bug fix release + type: string + required: + - name + type: object + UpdateAppsDatastoreItemRequest: + description: Request to update specific fields on an existing datastore item. + properties: + data: + $ref: "#/components/schemas/UpdateAppsDatastoreItemRequestData" + type: object + UpdateAppsDatastoreItemRequestData: + description: Data wrapper containing the item identifier and the changes to apply during the update operation. + properties: + attributes: + $ref: "#/components/schemas/UpdateAppsDatastoreItemRequestDataAttributes" + id: + description: The unique identifier of the datastore item. + type: string + type: + $ref: "#/components/schemas/UpdateAppsDatastoreItemRequestDataType" + required: + - type + type: object + UpdateAppsDatastoreItemRequestDataAttributes: + description: Attributes for updating a datastore item, including the item key and changes to apply. + properties: + id: + description: The unique identifier of the item being updated. + type: string + item_changes: + $ref: "#/components/schemas/UpdateAppsDatastoreItemRequestDataAttributesItemChanges" + item_key: + description: The primary key that identifies the item to update. Cannot exceed 256 characters. + example: "" + maxLength: 256 + type: string + required: + - item_changes + - item_key + type: object + UpdateAppsDatastoreItemRequestDataAttributesItemChanges: + description: Changes to apply to a datastore item using set operations. + properties: + ops_set: + additionalProperties: {} + description: Set operation that contains key-value pairs to set on the datastore item. + type: object + type: object + UpdateAppsDatastoreItemRequestDataType: + default: items + description: The resource type for datastore items. + enum: + - items + example: items + type: string + x-enum-varnames: + - ITEMS + UpdateAppsDatastoreRequest: + description: Request to update a datastore's configuration such as its name or description. + properties: + data: + $ref: "#/components/schemas/UpdateAppsDatastoreRequestData" + type: object + UpdateAppsDatastoreRequestData: + description: Data wrapper containing the datastore identifier and the attributes to update. + properties: + attributes: + $ref: "#/components/schemas/UpdateAppsDatastoreRequestDataAttributes" + id: + description: The unique identifier of the datastore to update. + type: string + type: + $ref: "#/components/schemas/DatastoreDataType" + required: + - type + type: object + UpdateAppsDatastoreRequestDataAttributes: + description: Attributes that can be updated on a datastore. + properties: + description: + description: A human-readable description about the datastore. + type: string + name: + description: The display name of the datastore. + type: string + type: object + UpdateCampaignRequest: + description: Request to update a campaign. + properties: + data: + $ref: "#/components/schemas/UpdateCampaignRequestData" + required: + - data + type: object + UpdateCampaignRequestAttributes: + description: Attributes for updating a campaign. + properties: + description: + description: The description of the campaign. + example: Campaign to improve security posture for Q1 2024. + type: string + due_date: + description: The due date of the campaign. + example: "2024-03-31T23:59:59Z" + format: date-time + type: string + entity_scope: + description: Entity scope query to filter entities for this campaign. + example: kind:service AND team:platform + type: string + guidance: + description: Guidance for the campaign. + example: Please ensure all services pass the security requirements. + type: string + key: + description: The unique key for the campaign. + example: q1-security-2024 + type: string + name: + description: The name of the campaign. + example: Q1 Security Campaign + type: string + owner_id: + description: The UUID of the campaign owner. + example: 550e8400-e29b-41d4-a716-446655440000 + type: string + rule_ids: + description: Array of rule IDs associated with this campaign. + example: ["q8MQxk8TCqrHnWkx", "r9NRyl9UDrsIoXly"] + items: + description: The unique ID of a scorecard rule. + type: string + type: array + start_date: + description: The start date of the campaign. + example: "2024-01-01T00:00:00Z" + format: date-time + type: string + status: + description: The status of the campaign. + example: in_progress + type: string + required: + - name + - owner_id + - status + - start_date + - rule_ids + type: object + UpdateCampaignRequestData: + description: Data for updating a campaign. + properties: + attributes: + $ref: "#/components/schemas/UpdateCampaignRequestAttributes" + type: + $ref: "#/components/schemas/CampaignType" + required: + - type + - attributes + type: object + UpdateConnectionRequest: + description: Request body for updating an existing data source connection by adding, modifying, or removing fields. + example: + data: + attributes: + fields_to_add: + - description: Net Promoter Score from customer surveys + display_name: NPS Score + groups: + - Satisfaction + - Metrics + id: nps_score + source_name: net_promoter_score + type: number + fields_to_delete: + - old_revenue_field + fields_to_update: + - field_id: lifetime_value + updated_display_name: Customer Lifetime Value (`USD`) + updated_groups: + - Financial + - Metrics + id: crm-integration + type: connection_id + properties: + data: + $ref: "#/components/schemas/UpdateConnectionRequestData" + type: object + UpdateConnectionRequestData: + description: The data object containing the resource identifier and attributes for updating an existing connection. + properties: + attributes: + $ref: "#/components/schemas/UpdateConnectionRequestDataAttributes" + id: + description: The unique identifier of the connection to update. + example: "" + type: string + type: + $ref: "#/components/schemas/UpdateConnectionRequestDataType" + required: + - type + - id + type: object + UpdateConnectionRequestDataAttributes: + description: Attributes specifying the field modifications to apply to an existing connection. + properties: + fields_to_add: + description: New fields to add to the connection from the data source. + items: + $ref: "#/components/schemas/CreateConnectionRequestDataAttributesFieldsItems" + type: array + fields_to_delete: + description: Identifiers of existing fields to remove from the connection. + items: + description: The identifier of a field to delete from the connection. + type: string + type: array + fields_to_update: + description: Existing fields with updated metadata to apply to the connection. + items: + $ref: "#/components/schemas/UpdateConnectionRequestDataAttributesFieldsToUpdateItems" + type: array + type: object + UpdateConnectionRequestDataAttributesFieldsToUpdateItems: + description: Specification for updating an existing field in a connection, including which field to modify and the new values. + properties: + field_id: + description: The identifier of the existing field to update. + example: "" + type: string + updated_description: + description: The new description to set for the field. + type: string + updated_display_name: + description: The new human-readable display name to set for the field. + type: string + updated_field_id: + description: The new identifier to assign to the field, if renaming it. + type: string + updated_groups: + description: The updated list of group labels to associate with the field. + items: + description: A group label name for categorizing the field. + type: string + type: array + required: + - field_id + type: object + UpdateConnectionRequestDataType: + default: connection_id + description: Connection id resource type. + enum: + - connection_id + example: connection_id + type: string + x-enum-varnames: + - CONNECTION_ID + UpdateCustomFrameworkRequest: + description: Request object to update a custom framework. + properties: + data: + $ref: "#/components/schemas/CustomFrameworkData" + required: + - data + type: object + UpdateCustomFrameworkResponse: + description: Response object to update a custom framework. + properties: + data: + $ref: "#/components/schemas/FrameworkHandleAndVersionResponseData" + required: + - data + type: object + UpdateDeploymentGateParams: + description: Parameters for updating a deployment gate. + properties: + data: + $ref: "#/components/schemas/UpdateDeploymentGateParamsData" + required: + - data + type: object + UpdateDeploymentGateParamsData: + description: Parameters for updating a deployment gate. + properties: + attributes: + $ref: "#/components/schemas/UpdateDeploymentGateParamsDataAttributes" + id: + description: Unique identifier of the deployment gate. + example: "12345678-1234-1234-1234-123456789012" + type: string + type: + $ref: "#/components/schemas/DeploymentGateDataType" + required: + - type + - id + - attributes + type: object + UpdateDeploymentGateParamsDataAttributes: + description: Attributes for updating a deployment gate. + properties: + dry_run: + description: Whether to run in dry-run mode. + example: false + type: boolean + required: + - dry_run + type: object + UpdateDeploymentRuleParams: + description: Parameters for updating a deployment rule. + properties: + data: + $ref: "#/components/schemas/UpdateDeploymentRuleParamsData" + required: + - data + type: object + UpdateDeploymentRuleParamsData: + description: Parameters for updating a deployment rule. + properties: + attributes: + $ref: "#/components/schemas/UpdateDeploymentRuleParamsDataAttributes" + type: + $ref: "#/components/schemas/DeploymentRuleDataType" + required: + - type + - attributes + type: object + UpdateDeploymentRuleParamsDataAttributes: + description: Parameters for updating a deployment rule. + properties: + dry_run: + description: Whether to run this rule in dry-run mode. + example: false + type: boolean + name: + description: The name of the deployment rule. + example: "Updated deployment rule" + type: string + options: + $ref: "#/components/schemas/DeploymentRulesOptions" + required: + - dry_run + - name + - options + type: object + UpdateEnvironmentAttributes: + description: Attributes for updating an environment. + properties: + is_production: + description: Indicates whether this is a production environment. + example: false + type: boolean + name: + description: The name of the environment. + example: "Environment XYZ789" + type: string + queries: + description: List of queries to define the environment scope. + example: ["staging", "test"] + items: + description: A query string used to match the environment scope. + type: string + minItems: 1 + type: array + require_feature_flag_approval: + description: Indicates whether feature flag changes require approval in this environment. + example: true + type: boolean + type: object + UpdateEnvironmentData: + description: Data for updating an environment. + properties: + attributes: + $ref: "#/components/schemas/UpdateEnvironmentAttributes" + type: + $ref: "#/components/schemas/UpdateEnvironmentDataType" + required: + - type + - attributes + type: object + UpdateEnvironmentDataType: + description: The resource type. + enum: + - "environments" + example: "environments" + type: string + x-enum-varnames: + - ENVIRONMENTS + UpdateEnvironmentRequest: + description: Request to update an environment. + properties: + data: + $ref: "#/components/schemas/UpdateEnvironmentData" + required: + - data + type: object + UpdateFeatureFlagAttributes: + description: Attributes for updating a feature flag. + properties: + description: + description: The description of the feature flag. + example: "Updated description for feature flag XYZ789" + type: string + json_schema: + description: JSON schema for validation when value_type is JSON. + example: '{"type": "object", "properties": {"enabled": {"type": "boolean"}}}' + nullable: true + type: string + name: + description: The name of the feature flag. + example: "Updated Feature Flag XYZ789" + type: string + type: object + UpdateFeatureFlagData: + description: Data for updating a feature flag. + properties: + attributes: + $ref: "#/components/schemas/UpdateFeatureFlagAttributes" + type: + $ref: "#/components/schemas/UpdateFeatureFlagDataType" + required: + - type + - attributes + type: object + UpdateFeatureFlagDataType: + description: The resource type. + enum: + - "feature-flags" + example: "feature-flags" + type: string + x-enum-varnames: + - FEATURE_FLAGS + UpdateFeatureFlagRequest: + description: Request to update a feature flag. + properties: + data: + $ref: "#/components/schemas/UpdateFeatureFlagData" + required: + - data + type: object + UpdateFlakyTestsRequest: + description: Request to update the state of multiple flaky tests. + properties: + data: + $ref: "#/components/schemas/UpdateFlakyTestsRequestData" + required: + - data + type: object + UpdateFlakyTestsRequestAttributes: + description: Attributes for updating flaky test states. + properties: + tests: + description: List of flaky tests to update. + items: + $ref: "#/components/schemas/UpdateFlakyTestsRequestTest" + type: array + required: + - tests + type: object + UpdateFlakyTestsRequestData: + description: The JSON:API data for updating flaky test states. + properties: + attributes: + $ref: "#/components/schemas/UpdateFlakyTestsRequestAttributes" + type: + $ref: "#/components/schemas/UpdateFlakyTestsRequestDataType" + required: + - type + - attributes + type: object + UpdateFlakyTestsRequestDataType: + description: The definition of `UpdateFlakyTestsRequestDataType` object. + enum: + - update_flaky_test_state_request + example: update_flaky_test_state_request + type: string + x-enum-varnames: + - UPDATE_FLAKY_TEST_STATE_REQUEST + UpdateFlakyTestsRequestTest: + description: Details of what tests to update and their new attributes. + properties: + id: + description: |- + The ID of the flaky test. This is the same ID returned by the Search flaky tests endpoint and is the + value of the `@test.fingerprint_fqn` facet on test events. You can find it by searching on + `@test.fingerprint_fqn` in the Test Optimization Explorer, or by filtering the Search flaky tests + endpoint with the `fingerprint_fqn` key. + example: 4eb1887a8adb1847 + type: string + new_state: + $ref: "#/components/schemas/UpdateFlakyTestsRequestTestNewState" + required: + - id + - new_state + type: object + UpdateFlakyTestsRequestTestNewState: + description: The new state to set for the flaky test. + enum: + - active + - quarantined + - disabled + - fixed + example: active + type: string + x-enum-varnames: + - ACTIVE + - QUARANTINED + - DISABLED + - FIXED + UpdateFlakyTestsResponse: + description: Response object for updating flaky test states. + properties: + data: + $ref: "#/components/schemas/UpdateFlakyTestsResponseData" + type: object + UpdateFlakyTestsResponseAttributes: + description: Attributes for the update flaky test state response. + properties: + has_errors: + description: "`True` if any errors occurred during the update operations. `False` if all tests succeeded to be updated." + example: true + type: boolean + results: + description: Results of the update operation for each test. + items: + $ref: "#/components/schemas/UpdateFlakyTestsResponseResult" + type: array + required: + - has_errors + - results + type: object + UpdateFlakyTestsResponseData: + description: Summary of the update operations. Tells whether a test succeeded or failed to be updated. + properties: + attributes: + $ref: "#/components/schemas/UpdateFlakyTestsResponseAttributes" + id: + description: The ID of the response. + type: string + type: + $ref: "#/components/schemas/UpdateFlakyTestsResponseDataType" + type: object + UpdateFlakyTestsResponseDataType: + description: The definition of `UpdateFlakyTestsResponseDataType` object. + enum: + - update_flaky_test_state_response + type: string + x-enum-varnames: + - UPDATE_FLAKY_TEST_STATE_RESPONSE + UpdateFlakyTestsResponseResult: + description: Result of updating a single flaky test state. + properties: + error: + description: Error message if the update failed. + type: string + id: + description: |- + The ID of the flaky test from the request. This is the value of the `@test.fingerprint_fqn` facet + on test events, the same ID accepted by the update request and returned by the Search flaky tests + endpoint. + example: 4eb1887a8adb1847 + type: string + success: + description: "`True` if the update was successful, `False` if there were any errors." + example: false + type: boolean + required: + - id + - success + type: object + UpdateFormData: + description: The data for updating a form. + properties: + attributes: + $ref: "#/components/schemas/UpdateFormDataAttributes" + id: + description: The ID of the form. + example: 22f6006a-2302-4926-9396-d2dfcf7b0b34 + format: uuid + type: string + type: + $ref: "#/components/schemas/FormType" + required: + - type + - attributes + type: object + UpdateFormDataAttributes: + description: The attributes for updating a form. + properties: + form_update: + $ref: "#/components/schemas/FormUpdateAttributes" + required: + - form_update + type: object + UpdateFormRequest: + description: A request to update a form. + properties: + data: + $ref: "#/components/schemas/UpdateFormData" + required: + - data + type: object + UpdateOnCallNotificationRuleRequest: + description: A top-level wrapper for updating a notification rule for a user + example: + data: + attributes: + "category": "high_urgency" + channel_settings: + method: "sms" + type: "phone" + "delay_minutes": 1 + id: 2462ace1-49e2-aab1-xc4f-29cc4ae1105n7 + relationships: + channel: + data: + id: 1562fab3-a8c2-49e2-8f3a-28dcda2405e2 + type: notification_channels + type: notification_rules + properties: + data: + $ref: "#/components/schemas/UpdateOnCallNotificationRuleRequestData" + required: + - data + type: object + UpdateOnCallNotificationRuleRequestAttributes: + description: Attributes for creating or modifying an on-call notification rule. + properties: + category: + $ref: "#/components/schemas/OnCallNotificationRuleCategory" + channel_settings: + $ref: "#/components/schemas/OnCallNotificationRuleChannelSettings" + description: Configuration for the associated channel, if necessary + nullable: true + delay_minutes: + description: The number of minutes that will elapse before this rule is evaluated. 0 indicates immediate evaluation + format: int64 + type: integer + type: object + UpdateOnCallNotificationRuleRequestData: + description: Data for updating an on-call notification rule + properties: + attributes: + $ref: "#/components/schemas/UpdateOnCallNotificationRuleRequestAttributes" + id: + description: Unique identifier for the rule + type: string + relationships: + $ref: "#/components/schemas/OnCallNotificationRuleRelationships" + type: + $ref: "#/components/schemas/OnCallNotificationRuleType" + required: + - type + type: object + UpdateOpenAPIResponse: + description: Response for `UpdateOpenAPI`. + properties: + data: + $ref: "#/components/schemas/UpdateOpenAPIResponseData" + type: object + UpdateOpenAPIResponseAttributes: + description: Attributes for `UpdateOpenAPI`. + properties: + failed_endpoints: + description: List of endpoints which couldn't be parsed. + items: + $ref: "#/components/schemas/OpenAPIEndpoint" + type: array + type: object + UpdateOpenAPIResponseData: + description: Data envelope for `UpdateOpenAPIResponse`. + properties: + attributes: + $ref: "#/components/schemas/UpdateOpenAPIResponseAttributes" + id: + $ref: "#/components/schemas/ApiID" + type: object + UpdateOutcomesAsyncAttributes: + description: The JSON:API attributes for a batched set of scorecard outcomes. + properties: + results: + description: Set of scorecard outcomes to update asynchronously. + items: + $ref: "#/components/schemas/UpdateOutcomesAsyncRequestItem" + type: array + type: object + UpdateOutcomesAsyncRequest: + description: Scorecard outcomes batch request. + properties: + data: + $ref: "#/components/schemas/UpdateOutcomesAsyncRequestData" + type: object + UpdateOutcomesAsyncRequestData: + description: Scorecard outcomes batch request data. + properties: + attributes: + $ref: "#/components/schemas/UpdateOutcomesAsyncAttributes" + type: + $ref: "#/components/schemas/UpdateOutcomesAsyncType" + type: object + UpdateOutcomesAsyncRequestItem: + description: Scorecard outcome for a single entity and rule. + properties: + entity_reference: + $ref: "#/components/schemas/EntityReference" + remarks: + description: >- + Any remarks regarding the scorecard rule's evaluation. Supports HTML hyperlinks. + example: 'See: Services' + type: string + rule_id: + $ref: "#/components/schemas/RuleId" + state: + $ref: "#/components/schemas/State" + required: + - rule_id + - entity_reference + - state + type: object + UpdateOutcomesAsyncType: + default: batched-outcome + description: The JSON:API type for scorecard outcomes. + enum: [batched-outcome] + example: batched-outcome + type: string + x-enum-varnames: [BATCHED_OUTCOME] + UpdateResourceEvaluationFiltersRequest: + description: Request object to update a resource filter. + properties: + data: + $ref: "#/components/schemas/UpdateResourceEvaluationFiltersRequestData" + required: + - data + type: object + UpdateResourceEvaluationFiltersRequestData: + description: The definition of `UpdateResourceFilterRequestData` object. + properties: + attributes: + $ref: "#/components/schemas/ResourceFilterAttributes" + id: + description: The `UpdateResourceEvaluationFiltersRequestData` `id`. + example: csm_resource_filter + type: string + type: + $ref: "#/components/schemas/ResourceFilterRequestType" + required: + - attributes + - type + type: object + UpdateResourceEvaluationFiltersResponse: + description: The definition of `UpdateResourceEvaluationFiltersResponse` object. + properties: + data: + $ref: "#/components/schemas/UpdateResourceEvaluationFiltersResponseData" + required: + - data + type: object + UpdateResourceEvaluationFiltersResponseData: + description: The definition of `UpdateResourceFilterResponseData` object. + properties: + attributes: + $ref: "#/components/schemas/ResourceFilterAttributes" + id: + description: The `data` `id`. + example: csm_resource_filter + type: string + type: + $ref: "#/components/schemas/ResourceFilterRequestType" + required: + - attributes + - type + type: object + UpdateRuleRequest: + description: Request to update a scorecard rule. + properties: + data: + $ref: "#/components/schemas/UpdateRuleRequestData" + type: object + UpdateRuleRequestData: + description: Data for the request to update a scorecard rule. + properties: + attributes: + $ref: "#/components/schemas/RuleAttributesRequest" + type: + $ref: "#/components/schemas/RuleType" + type: object + UpdateRuleResponse: + description: The response from a rule update request. + properties: + data: + $ref: "#/components/schemas/UpdateRuleResponseData" + type: object + UpdateRuleResponseData: + description: The data for a rule update response. + properties: + attributes: + $ref: "#/components/schemas/RuleAttributes" + id: + $ref: "#/components/schemas/RuleId" + relationships: + $ref: "#/components/schemas/RelationshipToRule" + type: + $ref: "#/components/schemas/RuleType" + type: object + UpdateRulesetRequest: + description: The definition of `UpdateRulesetRequest` object. + example: + data: + attributes: + enabled: true + last_version: 1 + name: Updated Ruleset + rules: + - enabled: true + mapping: + metadata: + name: Add Cost Center Tag + query: + addition: + key: cost_center + value: engineering + case_insensitivity: false + if_tag_exists: do_not_apply + query: account_id:"123456789" AND service:"web-api" + reference_table: + - enabled: true + mapping: + destination_key: team_owner + if_tag_exists: do_not_apply + source_keys: + - account_name + - account_id + metadata: + name: Account Name Mapping + query: + reference_table: + - enabled: true + mapping: + metadata: + name: New table rule with new UI + query: + reference_table: + case_insensitivity: true + field_pairs: + - input_column: status_type + output_key: status + - input_column: status_description + output_key: dess + if_tag_exists: append + source_keys: + - http_status + - status_description + table_name: http_status_codes + type: update_ruleset + properties: + data: + $ref: "#/components/schemas/UpdateRulesetRequestData" + type: object + UpdateRulesetRequestData: + description: The definition of `UpdateRulesetRequestData` object. + properties: + attributes: + $ref: "#/components/schemas/UpdateRulesetRequestDataAttributes" + id: + description: The `UpdateRulesetRequestData` `id`. + type: string + type: + $ref: "#/components/schemas/UpdateRulesetRequestDataType" + required: + - type + type: object + UpdateRulesetRequestDataAttributes: + description: The definition of `UpdateRulesetRequestDataAttributes` object. + properties: + enabled: + description: The `attributes` `enabled`. + example: false + type: boolean + last_version: + description: The `attributes` `last_version`. + format: int64 + type: integer + rules: + description: The `attributes` `rules`. + items: + $ref: "#/components/schemas/UpdateRulesetRequestDataAttributesRulesItems" + type: array + required: + - enabled + - rules + type: object + UpdateRulesetRequestDataAttributesRulesItems: + description: The definition of `UpdateRulesetRequestDataAttributesRulesItems` object. + properties: + enabled: + description: The `items` `enabled`. + example: false + type: boolean + mapping: + $ref: "#/components/schemas/DataAttributesRulesItemsMapping" + metadata: + $ref: "#/components/schemas/RulesetItemMetadata" + name: + description: The `items` `name`. + example: "" + type: string + query: + $ref: "#/components/schemas/UpdateRulesetRequestDataAttributesRulesItemsQuery" + reference_table: + $ref: "#/components/schemas/UpdateRulesetRequestDataAttributesRulesItemsReferenceTable" + required: + - enabled + - name + type: object + UpdateRulesetRequestDataAttributesRulesItemsQuery: + description: The definition of `UpdateRulesetRequestDataAttributesRulesItemsQuery` object. + nullable: true + properties: + addition: + $ref: "#/components/schemas/UpdateRulesetRequestDataAttributesRulesItemsQueryAddition" + case_insensitivity: + description: The `query` `case_insensitivity`. + type: boolean + if_not_exists: + deprecated: true + description: Deprecated. Use `if_tag_exists` instead. The `query` `if_not_exists`. + type: boolean + if_tag_exists: + $ref: "#/components/schemas/DataAttributesRulesItemsIfTagExists" + query: + description: The `query` `query`. + example: "" + type: string + required: + - addition + - query + type: object + UpdateRulesetRequestDataAttributesRulesItemsQueryAddition: + description: The definition of `UpdateRulesetRequestDataAttributesRulesItemsQueryAddition` object. + nullable: true + properties: + key: + description: The `addition` `key`. + example: "" + type: string + value: + description: The `addition` `value`. + example: "" + type: string + required: + - key + - value + type: object + UpdateRulesetRequestDataAttributesRulesItemsReferenceTable: + description: The definition of `UpdateRulesetRequestDataAttributesRulesItemsReferenceTable` object. + nullable: true + properties: + case_insensitivity: + description: The `reference_table` `case_insensitivity`. + type: boolean + field_pairs: + description: The `reference_table` `field_pairs`. + items: + $ref: "#/components/schemas/UpdateRulesetRequestDataAttributesRulesItemsReferenceTableFieldPairsItems" + type: array + if_not_exists: + deprecated: true + description: Deprecated. Use `if_tag_exists` instead. The `reference_table` `if_not_exists`. + type: boolean + if_tag_exists: + $ref: "#/components/schemas/DataAttributesRulesItemsIfTagExists" + source_keys: + description: The `reference_table` `source_keys`. + example: + - "" + items: + description: A source key for the reference table lookup. + type: string + type: array + table_name: + description: The `reference_table` `table_name`. + example: "" + type: string + required: + - field_pairs + - source_keys + - table_name + type: object + UpdateRulesetRequestDataAttributesRulesItemsReferenceTableFieldPairsItems: + description: The definition of `UpdateRulesetRequestDataAttributesRulesItemsReferenceTableFieldPairsItems` object. + properties: + input_column: + description: The `items` `input_column`. + example: "" + type: string + output_key: + description: The `items` `output_key`. + example: "" + type: string + required: + - input_column + - output_key + type: object + UpdateRulesetRequestDataType: + default: update_ruleset + description: Update ruleset resource type. + enum: + - update_ruleset + example: update_ruleset + type: string + x-enum-varnames: + - UPDATE_RULESET + UpdateTenancyConfigData: + description: The data object for updating an existing OCI tenancy integration configuration, including the tenancy ID, type, and updated attributes. + properties: + attributes: + $ref: "#/components/schemas/UpdateTenancyConfigDataAttributes" + id: + description: The OCID of the OCI tenancy to update. + example: "" + type: string + type: + $ref: "#/components/schemas/UpdateTenancyConfigDataType" + required: + - type + - id + type: object + UpdateTenancyConfigDataAttributes: + description: Attributes for updating an existing OCI tenancy integration configuration, including optional credentials, region settings, and collection options. + properties: + auth_credentials: + $ref: "#/components/schemas/UpdateTenancyConfigDataAttributesAuthCredentials" + cost_collection_enabled: + description: Whether cost data collection from OCI is enabled for the tenancy. + type: boolean + home_region: + description: The home region of the OCI tenancy (for example, us-ashburn-1). + type: string + logs_config: + $ref: "#/components/schemas/UpdateTenancyConfigDataAttributesLogsConfig" + metrics_config: + $ref: "#/components/schemas/UpdateTenancyConfigDataAttributesMetricsConfig" + regions_config: + $ref: "#/components/schemas/UpdateTenancyConfigDataAttributesRegionsConfig" + resource_collection_enabled: + description: Whether resource collection from OCI is enabled for the tenancy. + type: boolean + user_ocid: + description: The OCID of the OCI user used by the Datadog integration for authentication. + type: string + type: object + UpdateTenancyConfigDataAttributesAuthCredentials: + description: OCI API signing key credentials used to update the Datadog integration's authentication with the OCI tenancy. + properties: + fingerprint: + description: The fingerprint of the OCI API signing key used for authentication. + type: string + private_key: + description: The PEM-encoded private key corresponding to the OCI API signing key fingerprint. + example: "" + type: string + required: + - private_key + type: object + UpdateTenancyConfigDataAttributesLogsConfig: + description: Log collection configuration for updating an OCI tenancy, controlling which compartments and services have log collection enabled. + properties: + compartment_tag_filters: + description: List of compartment tag filters to scope log collection to specific compartments. + items: + description: A compartment tag filter in key:value format (for example, datadog:true). + type: string + type: array + enabled: + description: Whether log collection is enabled for the tenancy. + type: boolean + enabled_services: + description: List of OCI service names for which log collection is enabled. + items: + description: An OCI service name for which log collection is enabled (for example, compute). + type: string + type: array + type: object + UpdateTenancyConfigDataAttributesMetricsConfig: + description: Metrics collection configuration for updating an OCI tenancy, controlling which compartments and services are included or excluded. + properties: + compartment_tag_filters: + description: List of compartment tag filters to scope metrics collection to specific compartments. + items: + description: A compartment tag filter in key:value format (for example, datadog:true). + type: string + type: array + enabled: + description: Whether metrics collection is enabled for the tenancy. + type: boolean + excluded_services: + description: List of OCI service names to exclude from metrics collection. + items: + description: An OCI service name to exclude from metrics collection (for example, compute). + type: string + type: array + type: object + UpdateTenancyConfigDataAttributesRegionsConfig: + description: Region configuration for updating an OCI tenancy, specifying which regions are available, enabled, or disabled for data collection. + properties: + available: + description: List of OCI regions available for data collection in the tenancy. + items: + description: An OCI region identifier (for example, us-ashburn-1). + type: string + type: array + disabled: + description: List of OCI regions explicitly disabled for data collection. + items: + description: An OCI region identifier (for example, us-phoenix-1). + type: string + type: array + enabled: + description: List of OCI regions enabled for data collection. + items: + description: An OCI region identifier (for example, us-ashburn-1). + type: string + type: array + type: object + UpdateTenancyConfigDataType: + default: oci_tenancy + description: OCI tenancy resource type. + enum: + - oci_tenancy + example: oci_tenancy + type: string + x-enum-varnames: + - OCI_TENANCY + UpdateTenancyConfigRequest: + description: Request body for updating an existing OCI tenancy integration configuration. + example: + data: + attributes: + auth_credentials: + fingerprint: "" + private_key: |- + ----BEGIN PRIVATE KEY----- + MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCdvSMmlfLyeD4M + QsA3WlrWBqKdWa5eVV3/uODyqT3wWMEMIJHcG3/quNs8nh9xrK1/JkQT2qoKEHqR + C5k59jN6Vp8em8ARJthMgam9K37ELt+IQ/G8ySTSuqZG8T4cHp/cs3fAclNqttOl + YnGr4RbVAgMBAAECggEAGZNLGbyCUbIRTW6Kh4d8ZVC+eZtJMqGmGJ3KfVaW8Pjn + QGWfSuJCEe2o2Y8G3phlidFauICnZ44enXA17Rhi+I/whnr7FIyQk2bR7rv+1Uhc + mOJygWX5eFFMsledgVAdIAl9Luk2nykx7Un3g6rtbl/Vs+5k4m7ITLFMpCHzsJLU + nm8kBzDOqY2JUkMd08nL88KL6QywWtal05UESzQpNFXd0e5kxYfexeMCsLsWP0mc + quMLRbn7NuBjCbe9VU2kmIvcfDDaWjurT7d5m1OXx1cc8p6P4PFZTVyCjdhiWOr3 + LQXZ4/vdZNR3zgEHypRoM6D9Yq99LWUOUEMrdiSLQQKBgQDQkh7C1OtAXnpy7F6R + W+/I3zBHici2p7A57UT7VECQ1IVGg37/uus83DkuOtdZ33JmHLAVrwLFJvUlbyjx + l6dc/1ms40L5HFdLgaVtd4k0rSPFeOSDr6evz0lX4yBuzlP0fEh+o3XHW7mwe2G+ + rWCULF/Uqza66fjbCSKMNgLIXQKBgQDBm9nZg/s4S0THWCFNWcB1tXBG0p/sH5eY + PC1H/VmTEINIixStrS4ufczf31X8rcoSjSbO7+vZDTTATdk7OLn1I2uGFVYl8M59 + 86BYT2Hi7cwp7YVzOc/cJigVeBAqSRW/iYYyWBEUTiW1gbkV0sRWwhPp67m+c0sP + XpY/iEZA2QKBgB1w8tynt4l/jKNaUEMOijt9ndALWATIiOy0XG9pxi9rgGCiwTOS + DBCsOXoYHjv2eayGUijNaoOv6xzcoxfvQ1WySdNIxTRq1ru20kYwgHKqGgmO9hrM + mcwMY5r/WZ2qjFlPjeAqbL62aPDLidGjoaVo2iIoBPK/gjxQ/5f0MS4N/YQ0zWoYBueSQ0DGs + -----END PRIVATE KEY----- + cost_collection_enabled: true + home_region: us-ashburn-1 + logs_config: + compartment_tag_filters: + - datadog:true + - env:prod + enabled: true + enabled_services: + - service_1 + - service_2 + metrics_config: + compartment_tag_filters: + - datadog:true + - env:prod + enabled: true + excluded_services: + - service_1 + - service_2 + regions_config: + available: + - us-ashburn-1 + - us-phoenix-1 + disabled: + - us-phoenix-1 + enabled: + - us-ashburn-1 + resource_collection_enabled: true + user_ocid: ocid.user.test + id: ocid.tenancy.test + type: oci_tenancy + properties: + data: + $ref: "#/components/schemas/UpdateTenancyConfigData" + required: + - data + type: object + UpdateUserIdentityProvidersRequest: + description: Request body for setting identity provider overrides for a user. + properties: + data: + $ref: "#/components/schemas/UserRelationshipIdentityProviderDataList" + required: + - data + type: object + UpdateVariantRequest: + description: Request to update an existing variant's name and value. + properties: + name: + description: The display name of the variant. + example: "Variant ABC123 Updated" + type: string + value: + description: The value of the variant as a string. + example: "new_value" + type: string + type: object + UpdateWorkflowRequest: + description: A request object for updating an existing workflow. + example: + data: + attributes: + description: "A sample workflow." + name: "Example Workflow" + published: true + runAs: + type: owner + spec: + annotations: + - display: + bounds: + height: 150 + width: 300 + x: -375 + y: -0.5 + id: 99999999-9999-9999-9999-999999999999 + markdownTextAnnotation: + text: "Example annotation." + connectionEnvs: + - connections: + - connectionId: "e1e64943-c7c5-4487-aece-25aaec7d3aad" + label: "INTEGRATION_DATADOG" + env: "default" + handle: "my-handle" + inputSchema: + parameters: + - defaultValue: "default" + name: "input" + type: "STRING" + outputSchema: + parameters: + - name: "output" + type: "ARRAY_OBJECT" + value: "{{ Steps.Step1 }}" + steps: + - actionId: "com.datadoghq.dd.monitor.listMonitors" + connectionLabel: "INTEGRATION_DATADOG" + name: "Step1" + outboundEdges: + - branchName: "main" + nextStepName: "Step2" + parameters: + - name: "tags" + value: "service:monitoring" + - actionId: "com.datadoghq.core.noop" + name: "Step2" + triggers: + - monitorTrigger: + rateLimit: + count: 1 + interval: "3600s" + startStepNames: ["Step1"] + - githubWebhookTrigger: {} + startStepNames: ["Step1"] + tags: + - "team:infra" + - "service:monitoring" + - "foo:bar" + id: "22222222-2222-2222-2222-222222222222" + type: "workflows" + properties: + data: + $ref: "#/components/schemas/WorkflowDataUpdate" + required: + - data + type: object + UpdateWorkflowResponse: + description: The response object after updating a workflow. + properties: + data: + $ref: "#/components/schemas/WorkflowDataUpdate" + type: object + UpdatedPersonalAccessToken: + description: Datadog access token returned by the update endpoint. + properties: + attributes: + $ref: "#/components/schemas/PersonalAccessTokenAttributes" + id: + description: ID of the access token. + example: "00000000-0000-1234-0000-000000000000" + type: string + relationships: + $ref: "#/components/schemas/UpdatedPersonalAccessTokenRelationships" + type: + $ref: "#/components/schemas/PersonalAccessTokensType" + required: + - id + - type + type: object + UpdatedPersonalAccessTokenRelationships: + description: Resources related to the access token. + properties: + owned_by: + $ref: "#/components/schemas/RelationshipToUser" + type: object + UpdatedPersonalAccessTokenResponse: + description: Response for updating an access token. + properties: + data: + $ref: "#/components/schemas/UpdatedPersonalAccessToken" + required: + - data + type: object + UpdatedServiceAccessToken: + description: Datadog access token returned by the update endpoint. + properties: + attributes: + $ref: "#/components/schemas/ServiceAccessTokenAttributes" + id: + description: ID of the access token. + example: "00000000-0000-1234-0000-000000000000" + type: string + relationships: + $ref: "#/components/schemas/UpdatedServiceAccessTokenRelationships" + type: + $ref: "#/components/schemas/ServiceAccessTokensType" + required: + - id + - type + type: object + UpdatedServiceAccessTokenRelationships: + description: Resources related to the access token. + properties: + owned_by: + $ref: "#/components/schemas/RelationshipToServiceAccount" + type: object + UpdatedServiceAccessTokenResponse: + description: Response for updating an access token. + properties: + data: + $ref: "#/components/schemas/UpdatedServiceAccessToken" + required: + - data + type: object + UpsertAllocationRequest: + description: Request to create or update a targeting rule (allocation) for a feature flag environment. + properties: + experiment_id: + description: The experiment ID for experiment-linked allocations. + example: "550e8400-e29b-41d4-a716-446655440030" + nullable: true + type: string + exposure_schedule: + $ref: "#/components/schemas/ExposureScheduleRequest" + guardrail_metrics: + description: Guardrail metrics used to monitor and auto-pause or abort. + items: + $ref: "#/components/schemas/GuardrailMetricRequest" + type: array + id: + description: The unique identifier of the targeting rule allocation. + example: "550e8400-e29b-41d4-a716-446655440020" + format: uuid + type: string + key: + description: The unique key of the targeting rule allocation. + example: "prod-rollout" + type: string + name: + description: The display name of the targeting rule. + example: "Production Rollout" + type: string + targeting_rules: + description: Targeting rules that determine audience eligibility. + items: + $ref: "#/components/schemas/TargetingRuleRequest" + type: array + type: + $ref: "#/components/schemas/AllocationType" + variant_weights: + description: Variant distribution weights. + items: + $ref: "#/components/schemas/VariantWeightRequest" + type: array + required: + - name + - key + - type + type: object + UpsertAndPublishFormVersionData: + description: The data for upserting and publishing a form version. + properties: + attributes: + $ref: "#/components/schemas/UpsertAndPublishFormVersionDataAttributes" + type: + $ref: "#/components/schemas/FormVersionType" + required: + - type + - attributes + type: object + UpsertAndPublishFormVersionDataAttributes: + description: The attributes for upserting and publishing a form version. + properties: + data_definition: + $ref: "#/components/schemas/FormDataDefinition" + ui_definition: + $ref: "#/components/schemas/FormUiDefinition" + upsert_params: + $ref: "#/components/schemas/UpsertAndPublishFormVersionUpsertParams" + required: + - data_definition + - ui_definition + - upsert_params + type: object + UpsertAndPublishFormVersionRequest: + description: A request to upsert and publish a form version in a single transaction. + properties: + data: + $ref: "#/components/schemas/UpsertAndPublishFormVersionData" + required: + - data + type: object + UpsertAndPublishFormVersionUpsertParams: + description: Concurrency control parameters for the upsert and publish operation. + properties: + etag: + description: The ETag of the latest version used for optimistic concurrency control. + example: b51f08b698d88d8027a935d9db649774949f5fb41a0c559bfee6a9a13225c72d + type: string + required: + - etag + type: object + UpsertCatalogEntityRequest: + description: Create or update entity request. + oneOf: + - $ref: "#/components/schemas/EntityV3" + - $ref: "#/components/schemas/EntityRaw" + UpsertCatalogEntityResponse: + description: Upsert entity response. + properties: + data: + $ref: "#/components/schemas/EntityResponseData" + included: + $ref: "#/components/schemas/UpsertCatalogEntityResponseIncluded" + meta: + $ref: "#/components/schemas/EntityResponseMeta" + type: object + UpsertCatalogEntityResponseIncluded: + description: Upsert entity response included. + items: + $ref: "#/components/schemas/UpsertCatalogEntityResponseIncludedItem" + type: array + UpsertCatalogEntityResponseIncludedItem: + description: Upsert entity response included item. + oneOf: + - $ref: "#/components/schemas/EntityResponseIncludedSchema" + UpsertCatalogKindRequest: + description: Create or update kind request. + oneOf: + - $ref: "#/components/schemas/KindObj" + - $ref: "#/components/schemas/KindRaw" + UpsertCatalogKindResponse: + description: Upsert kind response. + properties: + data: + $ref: "#/components/schemas/KindResponseData" + meta: + $ref: "#/components/schemas/KindResponseMeta" + type: object + UpsertCloudInventorySyncConfigRequest: + description: Request body for creating or updating a cloud inventory sync configuration. + properties: + data: + $ref: "#/components/schemas/UpsertCloudInventorySyncConfigRequestData" + required: + - data + type: object + UpsertCloudInventorySyncConfigRequestAttributes: + description: |- + Settings for the cloud provider specified in `data.id`. Include only the matching provider object (`aws`, `gcp`, or `azure`). + properties: + aws: + $ref: "#/components/schemas/CloudInventorySyncConfigAWSRequestAttributes" + azure: + $ref: "#/components/schemas/CloudInventorySyncConfigAzureRequestAttributes" + gcp: + $ref: "#/components/schemas/CloudInventorySyncConfigGCPRequestAttributes" + type: object + UpsertCloudInventorySyncConfigRequestData: + description: Storage Management configuration data for the create or update request. + properties: + attributes: + $ref: "#/components/schemas/UpsertCloudInventorySyncConfigRequestAttributes" + id: + $ref: "#/components/schemas/CloudInventoryCloudProviderId" + type: + $ref: "#/components/schemas/CloudInventoryCloudProviderRequestType" + required: + - type + - id + - attributes + type: object + UpsertFormVersionData: + description: The data for creating or updating a form version. + properties: + attributes: + $ref: "#/components/schemas/UpsertFormVersionDataAttributes" + type: + $ref: "#/components/schemas/FormVersionType" + required: + - type + - attributes + type: object + UpsertFormVersionDataAttributes: + description: The attributes for creating or updating a form version. + properties: + data_definition: + $ref: "#/components/schemas/FormDataDefinition" + state: + $ref: "#/components/schemas/FormVersionState" + ui_definition: + $ref: "#/components/schemas/FormUiDefinition" + upsert_params: + $ref: "#/components/schemas/UpsertFormVersionUpsertParams" + required: + - state + - data_definition + - ui_definition + - upsert_params + type: object + UpsertFormVersionRequest: + description: A request to create or update a form version. + properties: + data: + $ref: "#/components/schemas/UpsertFormVersionData" + required: + - data + type: object + UpsertFormVersionUpsertParams: + description: Concurrency control parameters for the form version upsert operation. + properties: + etag: + description: The ETag of the latest version. Required when `match_policy` is `if_etag_match`. + example: b51f08b698d88d8027a935d9db649774949f5fb41a0c559bfee6a9a13225c72d + nullable: true + type: string + insert_only: + description: If true, only a new version may be inserted; updating the current draft is not allowed. + example: false + type: boolean + match_policy: + $ref: "#/components/schemas/LatestVersionMatchPolicy" + required: + - match_policy + type: object + UpsertOAuthScopesRestrictionData: + description: Data object of an upsert OAuth2 scopes restriction request. + properties: + attributes: + $ref: "#/components/schemas/UpsertOAuthScopesRestrictionDataAttributes" + type: + $ref: "#/components/schemas/UpsertOAuthScopesRestrictionType" + required: + - type + type: object + UpsertOAuthScopesRestrictionDataAttributes: + description: Attributes of an upsert OAuth2 scopes restriction request. + properties: + oidc_scopes: + description: OIDC scopes the client is allowed to request. + example: + - openid + - email + items: + $ref: "#/components/schemas/OAuthOidcScope" + type: array + permission_scopes: + description: |- + Datadog permission scopes the client is allowed to request. + Each value must be a valid permission name. + example: + - dashboards_read + - metrics_read + items: + description: Datadog permission scope name. + example: dashboards_read + type: string + type: array + type: object + UpsertOAuthScopesRestrictionRequest: + description: Request payload for creating or updating the scopes restriction of an OAuth2 client. + properties: + data: + $ref: "#/components/schemas/UpsertOAuthScopesRestrictionData" + required: + - data + type: object + UpsertOAuthScopesRestrictionType: + default: upsert_scopes_restriction + description: JSON:API resource type for an upsert OAuth2 client scopes restriction request. + enum: + - upsert_scopes_restriction + example: upsert_scopes_restriction + type: string + x-enum-varnames: + - UPSERT_SCOPES_RESTRICTION + Urgency: + description: Specifies the level of urgency for a routing rule (low, high, or dynamic). + enum: + - low + - high + - dynamic + example: low + type: string + x-enum-varnames: + - LOW + - HIGH + - DYNAMIC + UrlParam: + description: The definition of `UrlParam` object. + properties: + name: + $ref: "#/components/schemas/TokenName" + example: MyUrlParameter + value: + description: The `UrlParam` `value`. + example: Some Url Parameter value + type: string + required: + - name + - value + type: object + UrlParamUpdate: + description: The definition of `UrlParamUpdate` object. + properties: + deleted: + description: Should the header be deleted. + type: boolean + name: + $ref: "#/components/schemas/TokenName" + example: MyUrlParameter + value: + description: The `UrlParamUpdate` `value`. + example: Some Url Parameter value + type: string + required: + - name + type: object + UsageApplicationSecurityMonitoringResponse: + description: Application Security Monitoring usage response. + properties: + data: + description: Response containing Application Security Monitoring usage. + items: + $ref: "#/components/schemas/UsageDataObject" + type: array + type: object + UsageAttributesObject: + description: Usage attributes data. + properties: + org_name: + description: The organization name. + type: string + product_family: + description: The product for which usage is being reported. + type: string + public_id: + description: The organization public ID. + type: string + region: + description: The region of the Datadog instance that the organization belongs to. + type: string + timeseries: + description: List of usage data reported for each requested hour. + items: + $ref: "#/components/schemas/UsageTimeSeriesObject" + type: array + usage_type: + $ref: "#/components/schemas/HourlyUsageType" + type: object + UsageAttributionTypesAttributes: + description: List of usage attribution types. + properties: + values: + description: "List of usage attribution types." + items: + description: A given usage type in a list. + example: "infra_host" + type: string + type: array + type: object + UsageAttributionTypesBody: + description: Usage attribution types data. + properties: + attributes: + $ref: "#/components/schemas/UsageAttributionTypesAttributes" + id: + description: Unique ID of the response. + type: string + type: + $ref: "#/components/schemas/UsageAttributionTypesType" + type: object + UsageAttributionTypesResponse: + description: Usage attribution types response. + properties: + data: + $ref: "#/components/schemas/UsageAttributionTypesBody" + type: object + UsageAttributionTypesType: + default: usage_attribution_types + description: Type of usage attribution types data. + enum: + - usage_attribution_types + type: string + x-enum-varnames: + - USAGE_ATTRIBUTION_TYPES + UsageDataObject: + description: Usage data. + properties: + attributes: + $ref: "#/components/schemas/UsageAttributesObject" + id: + description: Unique ID of the response. + type: string + type: + $ref: "#/components/schemas/UsageTimeSeriesType" + type: object + UsageLambdaTracedInvocationsResponse: + description: Lambda Traced Invocations usage response. + properties: + data: + description: Response containing Lambda Traced Invocations usage. + items: + $ref: "#/components/schemas/UsageDataObject" + type: array + type: object + UsageObservabilityPipelinesResponse: + description: Observability Pipelines usage response. + properties: + data: + description: Response containing Observability Pipelines usage. + items: + $ref: "#/components/schemas/UsageDataObject" + type: array + type: object + UsageQuotaBulkResultAttributes: + description: Attributes of a usage quota bulk write result. On success, all fields except `error` are present. On failure, only `error` is present and the other fields are omitted. + properties: + enforced: + description: Whether usage above the limit is actively blocked instead of only tracked or alerted on. Omitted if this item failed to write. + example: true + type: boolean + error: + description: An error message describing why this item failed to write. Omitted if this item was written successfully. + example: usage_limit is out of range + type: string + org_public_id: + description: The public ID of the organization that owns the quota. Omitted if this item failed to write. + example: abcdef12345 + type: string + scope: + $ref: "#/components/schemas/UsageQuotaResponseScope" + usage_limit: + description: The quota limit in the usage units defined by the quota namespace. May be fractional for quotas configured before public writes required whole units. Omitted if this item failed to write. + example: 100000 + format: double + type: number + type: object + UsageQuotaBulkResultData: + description: The result of writing one usage quota in a bulk create-or-update request. + properties: + attributes: + $ref: "#/components/schemas/UsageQuotaBulkResultAttributes" + id: + description: An opaque usage quota identifier. Clients must pass this value back verbatim in update and delete requests and must not infer any structure from it. + example: "MjAfYWlfY3JlZGl0c1911c2VyX2hhbmRsZTpfX0FMTF9f" + type: string + type: + $ref: "#/components/schemas/UsageQuotaType" + required: + - id + - type + - attributes + type: object + UsageQuotaBulkResultDataList: + description: The results of writing each usage quota in a bulk create-or-update request, in the same order as the request. + items: + $ref: "#/components/schemas/UsageQuotaBulkResultData" + type: array + UsageQuotaCreateAttributes: + description: Attributes for creating or updating a usage quota by scope. + properties: + enforced: + description: Whether to actively block usage above the limit instead of only tracking or alerting on it. + example: true + type: boolean + scope: + $ref: "#/components/schemas/UsageQuotaRequestScope" + usage_limit: + description: The quota limit to set in the usage units defined by the quota namespace. For an organization-wide quota (scope omitted), the limit must be greater than the usage already recorded in the current period. + example: 100000 + format: int64 + minimum: 0 + type: integer + required: + - usage_limit + - enforced + type: object + UsageQuotaCreateData: + description: A usage quota resource to create or update by scope. + properties: + attributes: + $ref: "#/components/schemas/UsageQuotaCreateAttributes" + type: + $ref: "#/components/schemas/UsageQuotaType" + required: + - type + - attributes + type: object + UsageQuotaCreateDataList: + description: A bulk list of usage quota resources to create or update by scope. + items: + $ref: "#/components/schemas/UsageQuotaCreateData" + minItems: 1 + type: array + UsageQuotaRequestScope: + additionalProperties: + example: jane@example.com + type: string + description: A namespace-specific key and value identifying what the quota applies to within an organization. The object must contain exactly one entry. Use `"*"` as the value for the default quota applied to entities without a specific quota, or omit the scope for an organization-wide quota. A specific value must identify an existing user handle in the caller's organization when `include_descendants` is false. When `include_descendants` is true, the handle must exist in the caller's organization or in at least one targeted descendant organization; the quota is then applied only to the organizations where that handle exists, and the request fails only if the handle exists in none of them. + example: + user_handle: jane@example.com + maxProperties: 1 + minProperties: 1 + type: object + UsageQuotaResponse: + description: Response containing a usage quota. + properties: + data: + $ref: "#/components/schemas/UsageQuotaResponseData" + required: + - data + type: object + UsageQuotaResponseAttributes: + description: Attributes of a usage quota. + properties: + enforced: + description: Whether usage above the limit is actively blocked instead of only tracked or alerted on. + example: true + type: boolean + org_public_id: + description: The public ID of the organization that owns the quota. + example: abcdef12345 + type: string + scope: + $ref: "#/components/schemas/UsageQuotaResponseScope" + usage_limit: + description: The quota limit in the usage units defined by the quota namespace. May be fractional for quotas configured before public writes required whole units. + example: 100000 + format: double + type: number + required: + - org_public_id + - usage_limit + - enforced + type: object + UsageQuotaResponseData: + description: A usage quota resource. + properties: + attributes: + $ref: "#/components/schemas/UsageQuotaResponseAttributes" + id: + description: An opaque usage quota identifier. Clients must pass this value back verbatim in update and delete requests and must not infer any structure from it. + example: "MjAfYWlfY3JlZGl0c1911c2VyX2hhbmRsZTpfX0FMTF9f" + type: string + type: + $ref: "#/components/schemas/UsageQuotaType" + required: + - id + - type + - attributes + type: object + UsageQuotaResponseDataList: + description: A list of usage quota resources. + items: + $ref: "#/components/schemas/UsageQuotaResponseData" + type: array + UsageQuotaResponseScope: + additionalProperties: + example: jane@example.com + type: string + description: A namespace-specific key and value identifying what the quota applies to within an organization. The object contains exactly one entry. A value of `"*"` identifies the default quota applied to entities without a specific quota. This field is omitted for an organization-wide quota. + example: + user_handle: jane@example.com + maxProperties: 1 + minProperties: 1 + type: object + UsageQuotaType: + description: The JSON:API resource type for a usage quota. + enum: + - quotas + example: quotas + type: string + x-enum-varnames: + - QUOTAS + UsageQuotaUpdateAttributes: + description: Attributes to update on a usage quota. Omitting a property leaves its current value unchanged. + properties: + enforced: + description: Whether to actively block usage above the limit. Omit this field to leave the current enforcement setting unchanged. + example: false + nullable: true + type: boolean + usage_limit: + description: The new quota limit in the usage units defined by the quota namespace. For an organization-wide quota (empty scope), the limit must be greater than the usage already recorded in the current period. Omit this field to leave the current limit unchanged. + example: 120000 + format: int64 + minimum: 0 + nullable: true + type: integer + type: object + UsageQuotaUpdateData: + description: A usage quota resource to update. + properties: + attributes: + $ref: "#/components/schemas/UsageQuotaUpdateAttributes" + id: + description: The opaque usage quota identifier, which must match the identifier in the request path. + example: "MjAfYWlfY3JlZGl0c1911c2VyX2hhbmRsZTpfX0FMTF9f" + type: string + type: + $ref: "#/components/schemas/UsageQuotaType" + required: + - id + - type + - attributes + type: object + UsageQuotaUpdateRequest: + description: Request containing the usage quota resource to update. + properties: + data: + $ref: "#/components/schemas/UsageQuotaUpdateData" + required: + - data + type: object + UsageQuotasBulkResponse: + description: Response containing the result of a bulk usage quota create-or-update request. Returned with a `200` status regardless of whether individual items succeeded or failed; check each item's `error` attribute to determine its outcome. + properties: + data: + $ref: "#/components/schemas/UsageQuotaBulkResultDataList" + required: + - data + type: object + UsageQuotasCreateRequest: + description: A JSON:API bulk request containing an array of usage quota resources rather than a single resource. + properties: + data: + $ref: "#/components/schemas/UsageQuotaCreateDataList" + required: + - data + type: object + UsageQuotasListResponse: + description: Response containing a paginated list of usage quotas. + properties: + data: + $ref: "#/components/schemas/UsageQuotaResponseDataList" + meta: + $ref: "#/components/schemas/UsageQuotasResponseMeta" + required: + - data + - meta + type: object + UsageQuotasResponseMeta: + description: Pagination metadata for a usage quota list response. + properties: + page: + $ref: "#/components/schemas/UsageQuotasResponseMetaPage" + required: + - page + type: object + UsageQuotasResponseMetaPage: + description: Cursor pagination fields for a usage quota list response. + properties: + next_cursor: + description: An opaque cursor for retrieving the next page. Omitted when there are no more results. + example: eyJvZmZzZXQiOjEwMH0= + type: string + type: object + UsageSummaryAvailableFieldsAttributes: + description: |- + The lists of field names returned by `GET /api/v1/usage/summary` at each + of its three response levels. Each list contains every key the data endpoint + emits—both typed fields declared in the OpenAPI spec and untyped keys + exposed through `additionalProperties`. + properties: + date_fields: + description: |- + Sorted list of every key returned inside each `UsageSummaryDate` + entry of `usage[]` (typed fields and `additionalProperties` keys + combined). + items: + type: string + type: array + date_org_fields: + description: |- + Sorted list of every key returned inside each `UsageSummaryDateOrg` + entry of `usage[].orgs[]` (typed fields and `additionalProperties` + keys combined). + items: + type: string + type: array + response_fields: + description: |- + Sorted list of every key returned as a direct property of + `UsageSummaryResponse` (typed fields and `additionalProperties` + keys combined). + items: + type: string + type: array + type: object + UsageSummaryAvailableFieldsBody: + description: Available-fields data. + properties: + attributes: + $ref: "#/components/schemas/UsageSummaryAvailableFieldsAttributes" + id: + description: The identifier for the discovery scope. Always `"all"`. + example: all + type: string + type: + $ref: "#/components/schemas/UsageSummaryAvailableFieldsType" + type: object + UsageSummaryAvailableFieldsResponse: + description: |- + Response listing every field name returned by `GET /api/v1/usage/summary` + at each of its three response levels. Includes both typed fields and untyped + `additionalProperties` keys. + properties: + data: + $ref: "#/components/schemas/UsageSummaryAvailableFieldsBody" + type: object + UsageSummaryAvailableFieldsType: + default: usage_summary_available_fields + description: Type of available-fields data. + enum: + - usage_summary_available_fields + type: string + x-enum-varnames: + - USAGE_SUMMARY_AVAILABLE_FIELDS + UsageTimeSeriesObject: + description: Usage timeseries data. + properties: + timestamp: + description: Datetime in ISO-8601 format, UTC. The hour for the usage. + format: date-time + type: string + value: + description: Contains the number measured for the given usage_type during the hour. + format: int64 + nullable: true + type: integer + type: object + UsageTimeSeriesType: + default: usage_timeseries + description: Type of usage data. + enum: + - usage_timeseries + example: usage_timeseries + type: string + x-enum-varnames: + - USAGE_TIMESERIES + User: + description: User object returned by the API. + properties: + attributes: + $ref: "#/components/schemas/UserAttributes" + id: + description: ID of the user. + type: string + relationships: + $ref: "#/components/schemas/UserResponseRelationships" + type: + $ref: "#/components/schemas/UsersType" + type: object + UserAttributes: + description: Attributes of user object returned by the API. + properties: + created_at: + description: The ISO 8601 timestamp of when the user account was created. + format: date-time + type: string + disabled: + description: Whether the user account is deactivated. Disabled users cannot log in. + type: boolean + email: + description: The email address of the user, used for login and notifications. + type: string + handle: + description: The unique handle (username) of the user, typically matching their email prefix. + type: string + icon: + description: URL of the user's profile icon, typically a Gravatar URL derived from the email address. + type: string + last_login_time: + description: The ISO 8601 timestamp of the user's most recent login, or null if the user has never logged in. + format: date-time + nullable: true + readOnly: true + type: string + mfa_enabled: + description: Whether multi-factor authentication (MFA) is enabled for the user's account. + readOnly: true + type: boolean + modified_at: + description: The ISO 8601 timestamp of when the user account was last modified. + format: date-time + type: string + name: + description: The full display name of the user as shown in the Datadog UI. + nullable: true + type: string + service_account: + description: |- + Whether this is a service account rather than a human user. + Service accounts are used for programmatic API access. + type: boolean + status: + description: The current status of the user account (for example, `Active`, `Pending`, or `Disabled`). + type: string + title: + description: The job title of the user (for example, "Senior Engineer" or "Product Manager"). + nullable: true + type: string + uuid: + description: The globally unique identifier (UUID) of the user. + readOnly: true + type: string + verified: + description: Whether the user's email address has been verified. + type: boolean + type: object + UserAttributesStatus: + description: The user's status. + enum: + - active + - deactivated + - pending + type: string + x-enum-varnames: + - ACTIVE + - DEACTIVATED + - PENDING + UserAuthorizedClientAttributes: + description: Attributes of a user authorized client. + properties: + created_at: + description: The date and time this authorization was created. + example: "2024-01-10T08:00:00+00:00" + format: date-time + type: string + disabled: + description: Whether the user has disabled this authorization. + example: false + type: boolean + last_exercised: + description: The date and time this authorization was last exercised. + example: "2024-01-15T10:30:00+00:00" + format: date-time + nullable: true + type: string + modified_at: + description: The date and time this authorization was last modified. + example: "2024-01-10T08:00:00+00:00" + format: date-time + type: string + org_disabled: + description: Whether the organization has disabled this authorization. + example: false + type: boolean + required: + - created_at + - modified_at + - last_exercised + - disabled + - org_disabled + type: object + UserAuthorizedClientData: + description: Data object representing a user authorized client. + properties: + attributes: + $ref: "#/components/schemas/UserAuthorizedClientAttributes" + id: + description: The unique identifier of the user authorized client. + example: "00000000-0000-0000-0000-000000000001" + type: string + relationships: + $ref: "#/components/schemas/UserAuthorizedClientRelationships" + type: + $ref: "#/components/schemas/UserAuthorizedClientType" + required: + - id + - type + - attributes + - relationships + type: object + UserAuthorizedClientDataList: + description: List of user authorized client data objects. + items: + $ref: "#/components/schemas/UserAuthorizedClientData" + type: array + UserAuthorizedClientRelationshipOAuth2Client: + description: Relationship to the OAuth2 client that was authorized. + properties: + data: + $ref: "#/components/schemas/UserAuthorizedClientRelationshipOAuth2ClientData" + required: + - data + type: object + UserAuthorizedClientRelationshipOAuth2ClientData: + description: Data identifying the OAuth2 client that was authorized. + properties: + id: + description: The ID of the OAuth2 client. + example: "00000000-0000-0000-0000-000000000010" + type: string + type: + $ref: "#/components/schemas/UserAuthorizedClientRelationshipOAuth2ClientDataType" + required: + - type + - id + type: object + UserAuthorizedClientRelationshipOAuth2ClientDataType: + description: OAuth2 client resource type. + enum: + - oauth2_clients + example: oauth2_clients + type: string + x-enum-varnames: + - OAUTH2_CLIENTS + UserAuthorizedClientRelationshipScopeData: + description: Data identifying a scope granted to the OAuth2 client. + properties: + id: + description: The identifier of the scope. + example: "example_scope" + type: string + type: + $ref: "#/components/schemas/UserAuthorizedClientRelationshipScopeDataType" + required: + - type + - id + type: object + UserAuthorizedClientRelationshipScopeDataList: + description: List of scope relationship data objects. + items: + $ref: "#/components/schemas/UserAuthorizedClientRelationshipScopeData" + type: array + UserAuthorizedClientRelationshipScopeDataType: + description: Scope resource type. + enum: + - scopes + example: scopes + type: string + x-enum-varnames: + - SCOPES + UserAuthorizedClientRelationshipScopes: + description: Relationship to the scopes granted to the OAuth2 client. + properties: + data: + $ref: "#/components/schemas/UserAuthorizedClientRelationshipScopeDataList" + required: + - data + type: object + UserAuthorizedClientRelationshipUser: + description: Relationship to the user who granted this authorization. + properties: + data: + $ref: "#/components/schemas/UserAuthorizedClientRelationshipUserData" + required: + - data + type: object + UserAuthorizedClientRelationshipUserData: + description: Data identifying the user who granted this authorization. + properties: + id: + description: The ID of the user. + example: "00000000-0000-9999-0000-000000000001" + type: string + type: + $ref: "#/components/schemas/UserAuthorizedClientRelationshipUserDataType" + required: + - type + - id + type: object + UserAuthorizedClientRelationshipUserDataType: + description: User resource type. + enum: + - users + example: users + type: string + x-enum-varnames: + - USERS + UserAuthorizedClientRelationships: + description: Relationships for a user authorized client. + properties: + oauth2_client: + $ref: "#/components/schemas/UserAuthorizedClientRelationshipOAuth2Client" + scopes: + $ref: "#/components/schemas/UserAuthorizedClientRelationshipScopes" + user: + $ref: "#/components/schemas/UserAuthorizedClientRelationshipUser" + required: + - user + - oauth2_client + - scopes + type: object + UserAuthorizedClientResponse: + description: Response containing a single user authorized client. + properties: + data: + $ref: "#/components/schemas/UserAuthorizedClientData" + required: + - data + type: object + UserAuthorizedClientType: + description: The resource type for user authorized clients. + enum: + - user_authorized_clients + example: user_authorized_clients + type: string + x-enum-varnames: + - USER_AUTHORIZED_CLIENTS + UserAuthorizedClientsResponse: + description: Response containing a list of user authorized clients. + properties: + data: + $ref: "#/components/schemas/UserAuthorizedClientDataList" + meta: + $ref: "#/components/schemas/ResponseMetaAttributes" + required: + - data + - meta + type: object + UserCreateAttributes: + description: Attributes of the created user. + properties: + email: + description: The email of the user. + example: "jane.doe@example.com" + type: string + name: + description: The name of the user. + type: string + title: + description: The title of the user. + type: string + required: + - email + type: object + UserCreateData: + description: Object to create a user. + properties: + attributes: + $ref: "#/components/schemas/UserCreateAttributes" + relationships: + $ref: "#/components/schemas/UserRelationships" + type: + $ref: "#/components/schemas/UsersType" + required: + - attributes + - type + type: object + UserCreateRequest: + description: Create a user. + properties: + data: + $ref: "#/components/schemas/UserCreateData" + required: + - data + type: object + UserInvitationData: + description: Object to create a user invitation. + properties: + relationships: + $ref: "#/components/schemas/UserInvitationRelationships" + type: + $ref: "#/components/schemas/UserInvitationsType" + required: + - type + - relationships + type: object + UserInvitationDataAttributes: + description: Attributes of a user invitation. + properties: + created_at: + description: Creation time of the user invitation. + format: date-time + type: string + expires_at: + description: Time of invitation expiration. + format: date-time + type: string + invite_type: + description: Type of invitation. + type: string + uuid: + description: UUID of the user invitation. + type: string + type: object + UserInvitationRelationships: + description: Relationships data for user invitation. + properties: + user: + $ref: "#/components/schemas/RelationshipToUser" + required: + - user + type: object + UserInvitationResponse: + description: User invitation as returned by the API. + properties: + data: + $ref: "#/components/schemas/UserInvitationResponseData" + type: object + UserInvitationResponseData: + description: Object of a user invitation returned by the API. + properties: + attributes: + $ref: "#/components/schemas/UserInvitationDataAttributes" + id: + description: ID of the user invitation. + type: string + relationships: + $ref: "#/components/schemas/UserInvitationRelationships" + type: + $ref: "#/components/schemas/UserInvitationsType" + type: object + UserInvitationsRequest: + description: Object to invite users to join the organization. + properties: + data: + description: "List of user invitations." + example: [] + items: + $ref: "#/components/schemas/UserInvitationData" + type: array + required: + - data + type: object + UserInvitationsResponse: + description: User invitations as returned by the API. + properties: + data: + description: Array of user invitations. + items: + $ref: "#/components/schemas/UserInvitationResponseData" + type: array + type: object + UserInvitationsType: + default: user_invitations + description: User invitations type. + enum: + - user_invitations + example: user_invitations + type: string + x-enum-varnames: + - USER_INVITATIONS + UserOverrideIdentityProviderAttributes: + description: Attributes of an identity provider override for a user. + properties: + authentication_method: + description: The authentication method used by this identity provider. + example: "SAML" + type: string + required: + - authentication_method + type: object + UserOverrideIdentityProviderData: + description: Data object representing a user identity provider override. + properties: + attributes: + $ref: "#/components/schemas/UserOverrideIdentityProviderAttributes" + id: + description: The unique identifier of the identity provider. + example: "00000000-0000-0000-0000-000000000001" + type: string + type: + $ref: "#/components/schemas/UserOverrideIdentityProviderDataType" + required: + - id + - type + - attributes + type: object + UserOverrideIdentityProviderDataList: + description: List of user identity provider override data objects. + items: + $ref: "#/components/schemas/UserOverrideIdentityProviderData" + type: array + UserOverrideIdentityProviderDataType: + description: The resource type for identity providers. + enum: + - identity_providers + example: identity_providers + type: string + x-enum-varnames: + - IDENTITY_PROVIDERS + UserOverrideIdentityProvidersResponse: + description: Response containing a user's identity provider overrides. + properties: + data: + $ref: "#/components/schemas/UserOverrideIdentityProviderDataList" + required: + - data + type: object + UserRelationshipData: + description: Relationship to user object. + properties: + id: + description: A unique identifier that represents the user. + example: "00000000-0000-0000-0000-000000000000" + type: string + type: + $ref: "#/components/schemas/UserResourceType" + required: + - id + - type + type: object + UserRelationshipIdentityProviderData: + description: Resource identifier for an identity provider in a relationship update. + properties: + id: + description: The unique identifier of the identity provider. + example: "00000000-0000-0000-0000-000000000001" + type: string + type: + $ref: "#/components/schemas/UserRelationshipIdentityProviderDataType" + required: + - id + - type + type: object + UserRelationshipIdentityProviderDataList: + description: List of identity provider resource identifiers for a relationship update. + items: + $ref: "#/components/schemas/UserRelationshipIdentityProviderData" + type: array + UserRelationshipIdentityProviderDataType: + description: The resource type for identity providers. + enum: + - identity_providers + example: identity_providers + type: string + x-enum-varnames: + - IDENTITY_PROVIDERS + UserRelationships: + description: Relationships of the user object. + properties: + roles: + $ref: "#/components/schemas/RelationshipToRoles" + type: object + UserResourceType: + default: user + description: User resource type. + enum: + - user + example: user + type: string + x-enum-varnames: + - USER + UserResponse: + description: Response containing information about a single user. + properties: + data: + $ref: "#/components/schemas/User" + included: + description: Array of objects related to the user. + items: + $ref: "#/components/schemas/UserResponseIncludedItem" + type: array + type: object + UserResponseIncludedItem: + description: An object related to a user. + oneOf: + - $ref: "#/components/schemas/Organization" + - $ref: "#/components/schemas/Permission" + - $ref: "#/components/schemas/Role" + UserResponseRelationships: + description: Relationships of the user object returned by the API. + properties: + org: + $ref: "#/components/schemas/RelationshipToOrganization" + other_orgs: + $ref: "#/components/schemas/RelationshipToOrganizations" + other_users: + $ref: "#/components/schemas/RelationshipToUsers" + roles: + $ref: "#/components/schemas/RelationshipToRoles" + type: object + UserTarget: + description: "Represents a user target for an escalation policy step, including the user's ID and resource type." + properties: + id: + description: "Specifies the unique identifier of the user resource." + example: "00000000-aba1-0000-0000-000000000000" + type: string + type: + $ref: "#/components/schemas/UserTargetType" + required: + - type + - id + type: object + UserTargetType: + default: users + description: "Indicates that the resource is of type `users`." + enum: + - users + example: users + type: string + x-enum-varnames: + - USERS + UserTeam: + description: A user's relationship with a team + properties: + attributes: + $ref: "#/components/schemas/UserTeamAttributes" + id: + description: The ID of a user's relationship with a team + example: TeamMembership-aeadc05e-98a8-11ec-ac2c-da7ad0900001-38835 + type: string + relationships: + $ref: "#/components/schemas/UserTeamRelationships" + type: + $ref: "#/components/schemas/UserTeamType" + required: + - id + - type + type: object + UserTeamAttributes: + description: Team membership attributes + properties: + provisioned_by: + description: |- + The mechanism responsible for provisioning the team relationship. + Possible values: null for added by a user, "service_account" if added by a service account, and "saml_mapping" if provisioned via SAML mapping. + nullable: true + readOnly: true + type: string + provisioned_by_id: + description: UUID of the User or Service Account who provisioned this team membership, or null if provisioned via SAML mapping. + nullable: true + readOnly: true + type: string + role: + $ref: "#/components/schemas/UserTeamRole" + type: object + UserTeamCreate: + description: A user's relationship with a team + properties: + attributes: + $ref: "#/components/schemas/UserTeamAttributes" + relationships: + $ref: "#/components/schemas/UserTeamRelationships" + type: + $ref: "#/components/schemas/UserTeamType" + required: + - type + type: object + UserTeamIncluded: + description: Included resources related to the team membership + oneOf: + - $ref: "#/components/schemas/User" + - $ref: "#/components/schemas/Team" + UserTeamPermission: + description: A user's permissions for a given team + properties: + attributes: + $ref: "#/components/schemas/UserTeamPermissionAttributes" + id: + description: The user team permission's identifier + example: UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595 + type: string + type: + $ref: "#/components/schemas/UserTeamPermissionType" + required: + - id + - type + type: object + UserTeamPermissionAttributes: + description: User team permission attributes + properties: + permissions: + description: Object of team permission actions and boolean values that a logged in user can perform on this team. + readOnly: true + type: object + type: object + UserTeamPermissionType: + default: user_team_permissions + description: User team permission type + enum: + - user_team_permissions + example: user_team_permissions + type: string + x-enum-varnames: + - USER_TEAM_PERMISSIONS + UserTeamRelationships: + description: Relationship between membership and a user + properties: + team: + $ref: "#/components/schemas/RelationshipToUserTeamTeam" + user: + $ref: "#/components/schemas/RelationshipToUserTeamUser" + type: object + UserTeamRequest: + description: Team membership request + properties: + data: + $ref: "#/components/schemas/UserTeamCreate" + required: + - data + type: object + UserTeamResponse: + description: Team membership response + properties: + data: + $ref: "#/components/schemas/UserTeam" + included: + description: Resources related to the team memberships + items: + $ref: "#/components/schemas/UserTeamIncluded" + type: array + type: object + UserTeamRole: + description: The user's role within the team + enum: + - admin + nullable: true + type: string + x-enum-varnames: + - ADMIN + UserTeamTeamType: + default: team + description: User team team type + enum: + - team + example: team + type: string + x-enum-varnames: + - TEAM + UserTeamType: + default: team_memberships + description: Team membership type + enum: + - team_memberships + example: team_memberships + type: string + x-enum-varnames: + - TEAM_MEMBERSHIPS + UserTeamUpdate: + description: A user's relationship with a team + properties: + attributes: + $ref: "#/components/schemas/UserTeamAttributes" + type: + $ref: "#/components/schemas/UserTeamType" + required: + - type + type: object + UserTeamUpdateRequest: + description: Team membership request + properties: + data: + $ref: "#/components/schemas/UserTeamUpdate" + required: + - data + type: object + UserTeamUserType: + default: users + description: User team user type + enum: + - users + example: users + type: string + x-enum-varnames: + - USERS + UserTeamsResponse: + description: Team memberships response + properties: + data: + description: Team memberships response data + items: + $ref: "#/components/schemas/UserTeam" + type: array + included: + description: Resources related to the team memberships + items: + $ref: "#/components/schemas/UserTeamIncluded" + type: array + links: + $ref: "#/components/schemas/TeamsResponseLinks" + meta: + $ref: "#/components/schemas/TeamsResponseMeta" + type: object + UserUpdateAttributes: + description: Attributes of the edited user. + properties: + disabled: + description: |- + When set to `true`, the user is deactivated and can no longer log in. + When `false`, the user is active. + type: boolean + email: + description: |- + The email address of the user, used for login and notifications. + Must be a valid email format. + type: string + name: + description: |- + The full display name of the user as shown in the Datadog UI. + Maximum 55 characters, cannot contain `<` or `>`. + type: string + title: + description: The job title of the user (for example, "Senior Engineer" or "Product Manager"). + nullable: true + type: string + type: object + UserUpdateData: + description: Object to update a user. + properties: + attributes: + $ref: "#/components/schemas/UserUpdateAttributes" + id: + description: ID of the user. + example: "00000000-0000-feed-0000-000000000000" + type: string + type: + $ref: "#/components/schemas/UsersType" + required: + - attributes + - type + - id + type: object + UserUpdateRequest: + description: Update a user. + properties: + data: + $ref: "#/components/schemas/UserUpdateData" + required: + - data + type: object + UsersRelationship: + description: Relationship to users. + properties: + data: + description: Relationships to user objects. + example: [] + items: + $ref: "#/components/schemas/UserRelationshipData" + type: array + required: + - data + type: object + UsersResponse: + description: Response containing information about multiple users. + properties: + data: + description: Array of returned users. + items: + $ref: "#/components/schemas/User" + type: array + included: + description: Array of objects related to the users. + items: + $ref: "#/components/schemas/UserResponseIncludedItem" + type: array + meta: + $ref: "#/components/schemas/ResponseMetaAttributes" + readOnly: true + type: object + UsersType: + default: users + description: Users resource type. + enum: + - users + example: users + type: string + x-enum-varnames: + - USERS + V2Event: + description: An event object. + properties: + attributes: + $ref: "#/components/schemas/V2EventAttributes" + id: + description: The event's ID. + example: "" + type: string + type: + description: Entity type. + example: "event" + type: string + type: object + V2EventAggregationKey: + description: Aggregation key of the event. + example: "aggregation-key" + type: string + V2EventAttributes: + description: Event attributes. + properties: + attributes: + $ref: "#/components/schemas/V2EventAttributesAttributes" + message: + description: Free-form text associated with the event. + example: "The event message" + type: string + tags: + description: A list of tags associated with the event. + example: ["env:api_client_test"] + items: + description: A tag. + type: string + type: array + timestamp: + description: Timestamp when the event occurred. + example: "2017-01-15T01:30:15.010000Z" + type: string + type: object + V2EventAttributesAttributes: + description: JSON object for category-specific attributes. + oneOf: + - $ref: "#/components/schemas/ChangeEventAttributes" + - $ref: "#/components/schemas/AlertEventAttributes" + V2EventResponse: + description: Get an event response. + properties: + data: + $ref: "#/components/schemas/V2Event" + type: object + V2EventService: + description: Service that triggered the event. + example: "service-name" + type: string + V2EventTimestamp: + description: POSIX timestamp of the event. + example: 175019386627 + format: int64 + type: integer + V2EventTitle: + description: The title of the event. + example: "The event title" + type: string + ValidateAPIKeyResponse: + description: Response object for the API and application key validation status check. + properties: + status: + $ref: "#/components/schemas/ValidateAPIKeyStatus" + required: + - status + type: object + ValidateAPIKeyStatus: + description: Status of the validation. Always `ok` when both the API key and the application key are valid. + enum: + - ok + example: ok + type: string + x-enum-varnames: + - OK + ValidateV2Attributes: + description: Attributes of the API key validation response. + properties: + api_key_id: + description: The UUID of the API key. + example: "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6" + type: string + api_key_scopes: + description: List of scope names associated with the API key. + example: + - "remote_config_read" + items: + type: string + type: array + valid: + description: Whether the API key is valid. + example: true + type: boolean + required: + - valid + - api_key_scopes + - api_key_id + type: object + ValidateV2Data: + description: Data object containing the API key validation result. + properties: + attributes: + $ref: "#/components/schemas/ValidateV2Attributes" + id: + description: The UUID of the organization associated with the API key. + example: "550e8400-e29b-41d4-a716-446655440000" + type: string + type: + $ref: "#/components/schemas/ValidateV2Type" + required: + - id + - type + - attributes + type: object + ValidateV2Response: + description: Response for the API key validation endpoint. + properties: + data: + $ref: "#/components/schemas/ValidateV2Data" + required: + - data + type: object + ValidateV2Type: + description: Resource type for the API key validation response. + enum: + - validate_v2 + example: validate_v2 + type: string + x-enum-varnames: + - ValidateV2 + ValidationError: + description: Represents a single validation error, including a human-readable title and metadata. + properties: + meta: + $ref: "#/components/schemas/ValidationErrorMeta" + title: + description: A short, human-readable summary of the error. + example: Field 'region' is required + type: string + required: + - title + - meta + type: object + ValidationErrorMeta: + description: Describes additional metadata for validation errors, including field names and error messages. + properties: + field: + description: The field name that caused the error. + example: region + type: string + id: + description: The ID of the component in which the error occurred. + example: datadog-agent-source + type: string + message: + description: The detailed error message. + example: Field 'region' is required + type: string + required: + - message + type: object + ValidationResponse: + description: Response containing validation errors. + example: + errors: + - meta: + field: "region" + id: "datadog-agent-source" + message: "Field 'region' is required" + title: "Field 'region' is required" + properties: + errors: + description: The `ValidationResponse` `errors`. + items: + $ref: "#/components/schemas/ValidationError" + type: array + type: object + ValueType: + description: The type of values for the feature flag variants. + enum: + - BOOLEAN + - INTEGER + - NUMERIC + - STRING + - JSON + example: "BOOLEAN" + type: string + x-enum-varnames: + - BOOLEAN + - INTEGER + - NUMERIC + - STRING + - JSON + Variant: + description: A variant of a feature flag. + properties: + created_at: + description: The timestamp when the variant was created. + example: "2023-01-01T00:00:00Z" + format: date-time + type: string + id: + description: The unique identifier of the variant. + example: "550e8400-e29b-41d4-a716-446655440002" + format: uuid + type: string + key: + description: The unique key of the variant. + example: "variant-abc123" + type: string + name: + description: The name of the variant. + example: "Variant ABC123" + type: string + updated_at: + description: The timestamp when the variant was last updated. + example: "2023-01-01T00:00:00Z" + format: date-time + type: string + value: + description: The value of the variant as a string. + example: "true" + type: string + required: + - id + - key + - name + - value + type: object + VariantWeight: + description: Variant weight details. + properties: + created_at: + description: The timestamp when the variant weight was created. + example: "2024-01-01T12:00:00Z" + format: date-time + type: string + id: + description: Unique identifier of the variant weight assignment. + example: "59061199-e2ff-46e9-8b40-2193e3b21687" + format: uuid + type: string + updated_at: + description: The timestamp when the variant weight was last updated. + example: "2024-01-01T12:00:00Z" + format: date-time + type: string + value: + description: The percentage weight for the variant. + example: 50 + format: double + type: number + variant: + $ref: "#/components/schemas/Variant" + variant_id: + description: The variant ID. + example: "550e8400-e29b-41d4-a716-446655440001" + format: uuid + type: string + required: + - variant_id + - value + type: object + VariantWeightRequest: + description: Variant weight request payload. + properties: + value: + description: The percentage weight for this variant. + example: 50 + format: double + type: number + variant_id: + description: The variant ID to assign weight to. + example: "550e8400-e29b-41d4-a716-446655440001" + format: uuid + type: string + variant_key: + description: The variant key to assign weight to. + example: "control" + type: string + required: + - value + type: object + Version: + description: Version of the notification rule. It is updated when the rule is modified. + example: 1 + format: int64 + type: integer + VersionHistoryUpdate: + description: A change in a rule version. + properties: + change: + description: The new value of the field. + example: cloud_provider:aws + type: string + field: + description: The field that was changed. + example: Tags + type: string + type: + $ref: "#/components/schemas/VersionHistoryUpdateType" + type: object + VersionHistoryUpdateType: + description: The type of change. + enum: + - create + - update + - delete + type: string + x-enum-varnames: + - CREATE + - UPDATE + - DELETE + ViewershipHistorySessionArray: + description: A list of RUM replay sessions from a user's viewership history. + properties: + data: + description: Array of viewership history session data objects. + items: + $ref: "#/components/schemas/ViewershipHistorySessionData" + type: array + required: + - data + type: object + ViewershipHistorySessionData: + description: Data object representing a session in the viewership history, including its identifier, type, and attributes. + properties: + attributes: + $ref: "#/components/schemas/ViewershipHistorySessionDataAttributes" + id: + description: Unique identifier of the RUM replay session. + type: string + type: + $ref: "#/components/schemas/ViewershipHistorySessionDataType" + required: + - type + type: object + ViewershipHistorySessionDataAttributes: + description: Attributes of a viewership history session entry, capturing when it was last watched and the associated event data. + properties: + event_id: + description: Unique identifier of the RUM event associated with the watched session. + type: string + last_watched_at: + description: Timestamp when the session was last watched by the user. + example: "2026-01-13T17:15:53.208340Z" + format: date-time + type: string + session_event: + additionalProperties: {} + description: Raw event data associated with the replay session. + type: object + track: + description: Replay track identifier indicating which recording track the session belongs to. + type: string + required: + - last_watched_at + type: object + ViewershipHistorySessionDataType: + default: rum_replay_session + description: Rum replay session resource type. + enum: + - rum_replay_session + example: rum_replay_session + type: string + x-enum-varnames: + - RUM_REPLAY_SESSION + VirusTotalAPIKey: + description: The definition of the `VirusTotalAPIKey` object. + properties: + api_key: + description: The `VirusTotalAPIKey` `api_key`. + example: "" + type: string + type: + $ref: "#/components/schemas/VirusTotalAPIKeyType" + required: + - type + - api_key + type: object + VirusTotalAPIKeyType: + description: The definition of the `VirusTotalAPIKey` object. + enum: + - VirusTotalAPIKey + example: VirusTotalAPIKey + type: string + x-enum-varnames: + - VIRUSTOTALAPIKEY + VirusTotalAPIKeyUpdate: + description: The definition of the `VirusTotalAPIKey` object. + properties: + api_key: + description: The `VirusTotalAPIKeyUpdate` `api_key`. + type: string + type: + $ref: "#/components/schemas/VirusTotalAPIKeyType" + required: + - type + type: object + VirusTotalCredentials: + description: The definition of the `VirusTotalCredentials` object. + oneOf: + - $ref: "#/components/schemas/VirusTotalAPIKey" + VirusTotalCredentialsUpdate: + description: The definition of the `VirusTotalCredentialsUpdate` object. + oneOf: + - $ref: "#/components/schemas/VirusTotalAPIKeyUpdate" + VirusTotalIntegration: + description: The definition of the `VirusTotalIntegration` object. + properties: + credentials: + $ref: "#/components/schemas/VirusTotalCredentials" + type: + $ref: "#/components/schemas/VirusTotalIntegrationType" + required: + - type + - credentials + type: object + VirusTotalIntegrationType: + description: The definition of the `VirusTotalIntegrationType` object. + enum: + - VirusTotal + example: VirusTotal + type: string + x-enum-varnames: + - VIRUSTOTAL + VirusTotalIntegrationUpdate: + description: The definition of the `VirusTotalIntegrationUpdate` object. + properties: + credentials: + $ref: "#/components/schemas/VirusTotalCredentialsUpdate" + type: + $ref: "#/components/schemas/VirusTotalIntegrationType" + required: + - type + type: object + VulnerabilitiesType: + description: The JSON:API type. + enum: + - vulnerabilities + example: vulnerabilities + type: string + x-enum-varnames: + - VULNERABILITIES + Vulnerability: + description: A single vulnerability + properties: + attributes: + $ref: "#/components/schemas/VulnerabilityAttributes" + id: + description: The unique ID for this vulnerability. + example: 3ecdfea798f2ce8f6e964805a344945f + type: string + relationships: + $ref: "#/components/schemas/VulnerabilityRelationships" + type: + $ref: "#/components/schemas/VulnerabilitiesType" + required: + - id + - type + - attributes + - relationships + type: object + VulnerabilityAdvisory: + description: Advisory associated with the vulnerability. + properties: + id: + description: Vulnerability advisory ID. + example: TRIVY-CVE-2023-0615 + type: string + last_modification_date: + description: Vulnerability advisory last modification date. + example: 2024-09-19 21:23:08+00:00 + type: string + publish_date: + description: Vulnerability advisory publish date. + example: 2024-09-19 21:23:08+00:00 + type: string + required: + - id + type: object + VulnerabilityAttributes: + description: The JSON:API attributes of the vulnerability. + properties: + advisory: + $ref: "#/components/schemas/VulnerabilityAdvisory" + advisory_id: + description: Vulnerability advisory ID. + example: TRIVY-CVE-2023-0615 + type: string + code_location: + $ref: "#/components/schemas/CodeLocation" + cve_list: + description: Vulnerability CVE list. + example: + - CVE-2023-0615 + items: + description: A CVE identifier associated with the vulnerability. + example: CVE-2023-0615 + type: string + type: array + cvss: + $ref: "#/components/schemas/VulnerabilityCvss" + dependency_locations: + $ref: "#/components/schemas/VulnerabilityDependencyLocations" + description: + description: Vulnerability description. + example: "LDAP Injection is a security vulnerability that occurs when untrusted user input is improperly handled and directly incorporated into LDAP queries without appropriate sanitization or validation. This vulnerability enables attackers to manipulate LDAP queries and potentially gain unauthorized access, modify data, or extract sensitive information from the directory server. By exploiting the LDAP injection vulnerability, attackers can execute malicious commands, bypass authentication mechanisms, and perform unauthorized actions within the directory service." + type: string + ecosystem: + $ref: "#/components/schemas/VulnerabilityEcosystem" + exposure_time: + description: Vulnerability exposure time in seconds. + example: 5618604 + format: int64 + type: integer + first_detection: + description: "First detection of the vulnerability in [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) format" + example: 2024-09-19 21:23:08+00:00 + type: string + fix_available: + description: Whether the vulnerability has a remediation or not. + example: false + type: boolean + language: + description: Vulnerability language. + example: ubuntu + type: string + last_detection: + description: "Last detection of the vulnerability in [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) format" + example: 2024-09-01 21:23:08+00:00 + type: string + library: + $ref: "#/components/schemas/Library" + origin: + description: Vulnerability origin. + example: + - agentless-scanner + items: + description: The detection origin of the vulnerability (for example, the scanner type). + example: agentless-scanner + type: string + type: array + remediations: + description: List of remediations. + items: + $ref: "#/components/schemas/Remediation" + type: array + repo_digests: + description: Vulnerability `repo_digest` list (when the vulnerability is related to `Image` asset). + items: + description: A container image repository digest identifying the affected image. + example: sha256:0ae7da091191787229d321e3638e39c319a97d6e20f927d465b519d699215bf7 + type: string + type: array + risks: + $ref: "#/components/schemas/VulnerabilityRisks" + running_kernel: + description: True if the vulnerability affects a package in the host’s running kernel, false if it affects a non-running kernel, and omit if it is not kernel-related. + example: true + type: boolean + status: + $ref: "#/components/schemas/VulnerabilityStatus" + title: + description: Vulnerability title. + example: "LDAP Injection" + type: string + tool: + $ref: "#/components/schemas/VulnerabilityTool" + type: + $ref: "#/components/schemas/VulnerabilityType" + required: + - type + - cvss + - status + - tool + - title + - description + - cve_list + - risks + - language + - first_detection + - last_detection + - exposure_time + - remediations + - fix_available + - origin + type: object + VulnerabilityCvss: + description: Vulnerability severities. + properties: + base: + $ref: "#/components/schemas/CVSS" + datadog: + $ref: "#/components/schemas/CVSS" + required: + - base + - datadog + type: object + VulnerabilityDependencyLocations: + description: Static library vulnerability location. + properties: + block: + $ref: "#/components/schemas/DependencyLocation" + name: + $ref: "#/components/schemas/DependencyLocation" + version: + $ref: "#/components/schemas/DependencyLocation" + required: + - block + type: object + VulnerabilityEcosystem: + description: The related vulnerability asset ecosystem. + enum: + - PyPI + - Maven + - NuGet + - Npm + - RubyGems + - Go + - Packagist + - Deb + - Rpm + - Apk + - Windows + - Generic + - MacOs + - Oci + - BottleRocket + - None + type: string + x-enum-varnames: + - PYPI + - MAVEN + - NUGET + - NPM + - RUBY_GEMS + - GO + - PACKAGIST + - DEB + - RPM + - APK + - WINDOWS + - GENERIC + - MAC_OS + - OCI + - BOTTLE_ROCKET + - NONE + VulnerabilityRelationships: + description: Related entities object. + properties: + affects: + $ref: "#/components/schemas/VulnerabilityRelationshipsAffects" + required: + - affects + type: object + VulnerabilityRelationshipsAffects: + description: Relationship type. + properties: + data: + $ref: "#/components/schemas/VulnerabilityRelationshipsAffectsData" + required: + - data + type: object + VulnerabilityRelationshipsAffectsData: + description: Asset affected by this vulnerability. + properties: + id: + description: The unique ID for this related asset. + example: Repository|github.com/DataDog/datadog-agent.git + type: string + type: + $ref: "#/components/schemas/AssetEntityType" + required: + - id + - type + type: object + VulnerabilityRisks: + description: Vulnerability risks. + properties: + epss: + $ref: "#/components/schemas/EPSS" + exploit_available: + description: Vulnerability public exploit availability. + example: false + type: boolean + exploit_sources: + description: Vulnerability exploit sources. + example: + - NIST + items: + description: An exploit source reporting this vulnerability. + example: NIST + type: string + type: array + exploitation_probability: + description: Vulnerability exploitation probability. + example: false + type: boolean + poc_exploit_available: + description: Vulnerability POC exploit availability. + example: false + type: boolean + required: + - exploitation_probability + - poc_exploit_available + - exploit_available + - exploit_sources + type: object + VulnerabilitySeverity: + description: The vulnerability severity. + enum: + - Unknown + - None + - Low + - Medium + - High + - Critical + example: Medium + type: string + x-enum-varnames: + - UNKNOWN + - NONE + - LOW + - MEDIUM + - HIGH + - CRITICAL + VulnerabilityStatus: + description: The vulnerability status. + enum: + - Open + - Muted + - Remediated + - InProgress + - AutoClosed + example: Open + type: string + x-enum-varnames: + - OPEN + - MUTED + - REMEDIATED + - INPROGRESS + - AUTOCLOSED + VulnerabilityTool: + description: The vulnerability tool. + enum: + - IAST + - SCA + - Infra + - SAST + example: SCA + type: string + x-enum-varnames: + - IAST + - SCA + - INFRA + - SAST + VulnerabilityType: + description: The vulnerability type. + enum: + - AdminConsoleActive + - CodeInjection + - CommandInjection + - ComponentWithKnownVulnerability + - DangerousWorkflows + - DefaultAppDeployed + - DefaultHtmlEscapeInvalid + - DirectoryListingLeak + - EmailHtmlInjection + - EndOfLife + - HardcodedPassword + - HardcodedSecret + - HeaderInjection + - HstsHeaderMissing + - InsecureAuthProtocol + - InsecureCookie + - InsecureJspLayout + - LdapInjection + - MaliciousPackage + - MandatoryRemediation + - NoHttpOnlyCookie + - NoSameSiteCookie + - NoSqlMongoDbInjection + - PathTraversal + - ReflectionInjection + - RiskyLicense + - SessionRewriting + - SessionRewritting + - SessionTimeout + - SqlInjection + - Ssrf + - StackTraceLeak + - TemplateInjection + - TrustBoundaryViolation + - Unmaintained + - UntrustedDeserialization + - UnvalidatedRedirect + - VerbTampering + - WeakCipher + - WeakHash + - WeakRandomness + - XContentTypeHeaderMissing + - XPathInjection + - Xss + example: WeakCipher + type: string + x-enum-varnames: + - ADMIN_CONSOLE_ACTIVE + - CODE_INJECTION + - COMMAND_INJECTION + - COMPONENT_WITH_KNOWN_VULNERABILITY + - DANGEROUS_WORKFLOWS + - DEFAULT_APP_DEPLOYED + - DEFAULT_HTML_ESCAPE_INVALID + - DIRECTORY_LISTING_LEAK + - EMAIL_HTML_INJECTION + - END_OF_LIFE + - HARDCODED_PASSWORD + - HARDCODED_SECRET + - HEADER_INJECTION + - HSTS_HEADER_MISSING + - INSECURE_AUTH_PROTOCOL + - INSECURE_COOKIE + - INSECURE_JSP_LAYOUT + - LDAP_INJECTION + - MALICIOUS_PACKAGE + - MANDATORY_REMEDIATION + - NO_HTTP_ONLY_COOKIE + - NO_SAME_SITE_COOKIE + - NO_SQL_MONGO_DB_INJECTION + - PATH_TRAVERSAL + - REFLECTION_INJECTION + - RISKY_LICENSE + - SESSION_REWRITING + - SESSION_REWRITTING + - SESSION_TIMEOUT + - SQL_INJECTION + - SSRF + - STACK_TRACE_LEAK + - TEMPLATE_INJECTION + - TRUST_BOUNDARY_VIOLATION + - UNMAINTAINED + - UNTRUSTED_DESERIALIZATION + - UNVALIDATED_REDIRECT + - VERB_TAMPERING + - WEAK_CIPHER + - WEAK_HASH + - WEAK_RANDOMNESS + - X_CONTENT_TYPE_HEADER_MISSING + - X_PATH_INJECTION + - XSS + Watch: + description: A single RUM replay session watch resource returned by create operations. + properties: + data: + $ref: "#/components/schemas/WatchData" + required: + - data + type: object + WatchData: + description: Data object representing a session watch record, including its identifier, type, and attributes. + properties: + attributes: + $ref: "#/components/schemas/WatchDataAttributes" + id: + description: Unique identifier of the watch record. + type: string + type: + $ref: "#/components/schemas/WatchDataType" + required: + - type + type: object + WatchDataAttributes: + description: Attributes for recording a session watch event, including the application, event reference, and timestamp. + properties: + application_id: + description: Unique identifier of the RUM application containing the session. + example: aaaaaaaa-1111-2222-3333-bbbbbbbbbbbb + type: string + data_source: + description: Data source type indicating the origin of the session data (e.g., rum or product_analytics). + type: string + event_id: + description: Unique identifier of the RUM event that was watched. + example: 11111111-2222-3333-4444-555555555555 + type: string + timestamp: + description: Timestamp when the session was watched. + example: "2026-01-13T17:15:53.208340Z" + format: date-time + type: string + required: + - application_id + - event_id + - timestamp + type: object + WatchDataType: + default: rum_replay_watch + description: Rum replay watch resource type. + enum: + - rum_replay_watch + example: rum_replay_watch + type: string + x-enum-varnames: + - RUM_REPLAY_WATCH + WatcherArray: + description: A list of users who have watched a RUM replay session. + properties: + data: + description: Array of watcher data objects. + items: + $ref: "#/components/schemas/WatcherData" + type: array + required: + - data + type: object + WatcherData: + description: Data object representing a session watcher, including their identifier, type, and attributes. + properties: + attributes: + $ref: "#/components/schemas/WatcherDataAttributes" + id: + description: Unique identifier of the watcher user. + type: string + type: + $ref: "#/components/schemas/WatcherDataType" + required: + - type + type: object + WatcherDataAttributes: + description: Attributes of a user who has watched a RUM replay session, including contact information and watch statistics. + properties: + handle: + description: Email handle of the user who watched the session. + example: john.doe@example.com + type: string + icon: + description: URL or identifier of the watcher's avatar icon. + type: string + last_watched_at: + description: Timestamp when the watcher last viewed the session. + example: "2026-01-13T17:15:53.208340Z" + format: date-time + type: string + name: + description: Display name of the user who watched the session. + type: string + watch_count: + description: Total number of times the user has watched the session. + example: 0 + format: int32 + maximum: 2147483647 + type: integer + required: + - handle + - last_watched_at + - watch_count + type: object + WatcherDataType: + default: rum_replay_watcher + description: Rum replay watcher resource type. + enum: + - rum_replay_watcher + example: rum_replay_watcher + type: string + x-enum-varnames: + - RUM_REPLAY_WATCHER + WebIntegrationAccountCreateRequest: + description: Payload schema when adding a web integration account. + properties: + data: + $ref: "#/components/schemas/WebIntegrationAccountCreateRequestData" + required: + - data + type: object + WebIntegrationAccountCreateRequestAttributes: + description: Attributes object for creating a web integration account. + properties: + name: + description: A human-readable name for the account. Must be unique among accounts of the same integration. + example: my-databricks-account + type: string + secrets: + $ref: "#/components/schemas/WebIntegrationAccountSecrets" + settings: + $ref: "#/components/schemas/WebIntegrationAccountSettings" + required: + - name + - settings + - secrets + type: object + WebIntegrationAccountCreateRequestData: + description: Data object for creating a web integration account. + properties: + attributes: + $ref: "#/components/schemas/WebIntegrationAccountCreateRequestAttributes" + type: + $ref: "#/components/schemas/WebIntegrationAccountType" + required: + - attributes + - type + type: object + WebIntegrationAccountResponse: + description: The expected response schema when getting a single web integration account. + properties: + data: + $ref: "#/components/schemas/WebIntegrationAccountResponseData" + type: object + WebIntegrationAccountResponseAttributes: + description: Attributes object of a web integration account. Secrets are never returned. + properties: + name: + description: A human-readable name for the account. + example: my-databricks-account + type: string + settings: + $ref: "#/components/schemas/WebIntegrationAccountSettings" + required: + - name + type: object + WebIntegrationAccountResponseData: + description: Data object of a web integration account. + properties: + attributes: + $ref: "#/components/schemas/WebIntegrationAccountResponseAttributes" + id: + description: The unique identifier of the web integration account. + example: "abc123def456" + type: string + type: + $ref: "#/components/schemas/WebIntegrationAccountType" + required: + - attributes + - id + - type + type: object + WebIntegrationAccountSecrets: + additionalProperties: {} + description: |- + Integration-specific secrets. The shape of this object varies by integration. Secrets + are write-only and never returned by the API. + example: + client_secret: my-client-secret + type: object + WebIntegrationAccountSettings: + additionalProperties: {} + description: |- + Integration-specific settings. The shape of this object varies by integration. + example: + workspace_url: https://example.azuredatabricks.net + type: object + WebIntegrationAccountType: + default: Account + description: Account resource type. + enum: + - Account + example: Account + type: string + x-enum-varnames: + - ACCOUNT + WebIntegrationAccountUpdateRequest: + description: Payload schema when updating a web integration account. + properties: + data: + $ref: "#/components/schemas/WebIntegrationAccountUpdateRequestData" + required: + - data + type: object + WebIntegrationAccountUpdateRequestAttributes: + description: Attributes object for updating a web integration account. + properties: + name: + description: A human-readable name for the account. + example: my-databricks-account + type: string + secrets: + $ref: "#/components/schemas/WebIntegrationAccountSecrets" + settings: + $ref: "#/components/schemas/WebIntegrationAccountSettings" + type: object + WebIntegrationAccountUpdateRequestData: + description: Data object for updating a web integration account. + properties: + attributes: + $ref: "#/components/schemas/WebIntegrationAccountUpdateRequestAttributes" + type: + $ref: "#/components/schemas/WebIntegrationAccountType" + required: + - attributes + - type + type: object + WebIntegrationAccountsResponse: + description: The expected response schema when listing web integration accounts. + properties: + data: + description: The JSON:API data array. + items: + $ref: "#/components/schemas/WebIntegrationAccountResponseData" + type: array + type: object + WebhooksAuthMethodAttributes: + description: Attributes of a webhooks auth method. + properties: + protocol: + $ref: "#/components/schemas/WebhooksAuthMethodProtocol" + type: object + WebhooksAuthMethodProtocol: + description: Authentication protocol used by the auth method. + enum: + - oauth2-client-credentials + example: oauth2-client-credentials + type: string + x-enum-varnames: + - OAUTH2_CLIENT_CREDENTIALS + WebhooksAuthMethodRelationships: + description: Relationships of a webhooks auth method to its protocol-specific resource. + properties: + oauth2-client-credentials: + $ref: "#/components/schemas/WebhooksOAuth2ClientCredentialsRelationship" + type: object + WebhooksAuthMethodResponseData: + description: Webhooks auth method data from a response. + properties: + attributes: + $ref: "#/components/schemas/WebhooksAuthMethodAttributes" + id: + description: The ID of the auth method. + example: "596da4af-0563-4097-90ff-07230c3f9db3" + type: string + relationships: + $ref: "#/components/schemas/WebhooksAuthMethodRelationships" + type: + $ref: "#/components/schemas/WebhooksAuthMethodType" + required: + - id + - type + - attributes + type: object + WebhooksAuthMethodType: + default: webhooks-auth-method + description: Webhooks auth method resource type. + enum: + - webhooks-auth-method + example: webhooks-auth-method + type: string + x-enum-varnames: + - WEBHOOKS_AUTH_METHOD + WebhooksAuthMethodsResponse: + description: Response containing a list of webhooks auth methods. + properties: + data: + description: An array of webhooks auth methods. + items: + $ref: "#/components/schemas/WebhooksAuthMethodResponseData" + type: array + included: + description: Resources related to the auth methods, included when requested via the `include` query parameter. + items: + $ref: "#/components/schemas/WebhooksOAuth2ClientCredentialsResponseData" + type: array + required: + - data + type: object + WebhooksOAuth2ClientCredentialsCreateAttributes: + description: OAuth2 client credentials attributes for a create request. + properties: + access_token_url: + description: URL of the OAuth2 access token endpoint. + example: "https://example.com/oauth/token" + maxLength: 2048 + minLength: 1 + type: string + audience: + description: The intended audience for the OAuth2 access token. + example: "https://api.example.com" + maxLength: 2048 + minLength: 1 + nullable: true + type: string + client_id: + description: The OAuth2 client ID issued by the authorization server. + example: "my-client-id" + maxLength: 2048 + minLength: 1 + type: string + client_secret: + description: |- + The OAuth2 client secret issued by the authorization server. + Write-only; never returned by the API. + example: "my-client-secret" + maxLength: 2048 + minLength: 1 + type: string + name: + description: Human-readable name for this auth method. Must be unique within your organization. + example: "my-oauth2-auth" + maxLength: 100 + minLength: 1 + type: string + scope: + description: Space-separated list of OAuth2 scopes to request. + example: "read:webhooks write:webhooks" + maxLength: 2048 + minLength: 1 + nullable: true + type: string + required: + - name + - access_token_url + - client_id + - client_secret + type: object + WebhooksOAuth2ClientCredentialsCreateData: + description: OAuth2 client credentials data for a create request. + properties: + attributes: + $ref: "#/components/schemas/WebhooksOAuth2ClientCredentialsCreateAttributes" + type: + $ref: "#/components/schemas/WebhooksOAuth2ClientCredentialsType" + required: + - type + - attributes + type: object + WebhooksOAuth2ClientCredentialsCreateRequest: + description: Create request for an OAuth2 client credentials auth method. + properties: + data: + $ref: "#/components/schemas/WebhooksOAuth2ClientCredentialsCreateData" + required: + - data + type: object + WebhooksOAuth2ClientCredentialsRelationship: + description: Relationship pointing to the OAuth2 client credentials resource for this auth method. + properties: + data: + $ref: "#/components/schemas/WebhooksOAuth2ClientCredentialsRelationshipData" + type: object + WebhooksOAuth2ClientCredentialsRelationshipData: + description: Relationship data referencing an OAuth2 client credentials resource. + properties: + id: + description: The ID of the OAuth2 client credentials resource. + example: "596da4af-0563-4097-90ff-07230c3f9db3" + type: string + type: + $ref: "#/components/schemas/WebhooksOAuth2ClientCredentialsType" + type: object + WebhooksOAuth2ClientCredentialsResponse: + description: Response containing an OAuth2 client credentials auth method. + properties: + data: + $ref: "#/components/schemas/WebhooksOAuth2ClientCredentialsResponseData" + required: + - data + type: object + WebhooksOAuth2ClientCredentialsResponseAttributes: + description: OAuth2 client credentials attributes returned by the API. The `client_secret` is never echoed. + properties: + access_token_url: + description: URL of the OAuth2 access token endpoint. + example: "https://example.com/oauth/token" + type: string + audience: + description: The intended audience for the OAuth2 access token. + example: "https://api.example.com" + nullable: true + type: string + client_id: + description: The OAuth2 client ID issued by the authorization server. + example: "my-client-id" + type: string + name: + description: Human-readable name for this auth method. + example: "my-oauth2-auth" + type: string + protocol: + $ref: "#/components/schemas/WebhooksAuthMethodProtocol" + scope: + description: Space-separated list of OAuth2 scopes to request. + example: "read:webhooks write:webhooks" + nullable: true + type: string + type: object + WebhooksOAuth2ClientCredentialsResponseData: + description: OAuth2 client credentials data from a response. + properties: + attributes: + $ref: "#/components/schemas/WebhooksOAuth2ClientCredentialsResponseAttributes" + id: + description: The ID of the OAuth2 client credentials auth method. + example: "596da4af-0563-4097-90ff-07230c3f9db3" + type: string + type: + $ref: "#/components/schemas/WebhooksOAuth2ClientCredentialsType" + required: + - id + - type + - attributes + type: object + WebhooksOAuth2ClientCredentialsType: + default: webhooks-auth-method-oauth2-client-credentials + description: OAuth2 client credentials resource type. + enum: + - webhooks-auth-method-oauth2-client-credentials + example: webhooks-auth-method-oauth2-client-credentials + type: string + x-enum-varnames: + - WEBHOOKS_AUTH_METHOD_OAUTH2_CLIENT_CREDENTIALS + WebhooksOAuth2ClientCredentialsUpdateAttributes: + description: OAuth2 client credentials attributes for an update request. + properties: + access_token_url: + description: URL of the OAuth2 access token endpoint. + example: "https://example.com/oauth/token" + maxLength: 2048 + minLength: 1 + type: string + audience: + description: The intended audience for the OAuth2 access token. + example: "https://api.example.com" + maxLength: 2048 + minLength: 1 + nullable: true + type: string + client_id: + description: The OAuth2 client ID issued by the authorization server. + example: "my-client-id" + maxLength: 2048 + minLength: 1 + type: string + client_secret: + description: |- + The OAuth2 client secret issued by the authorization server. + Write-only; never returned by the API. + example: "my-client-secret" + maxLength: 2048 + minLength: 1 + type: string + name: + description: Human-readable name for this auth method. + example: "my-oauth2-auth" + maxLength: 100 + minLength: 1 + type: string + scope: + description: Space-separated list of OAuth2 scopes to request. + example: "read:webhooks write:webhooks" + maxLength: 2048 + minLength: 1 + nullable: true + type: string + type: object + WebhooksOAuth2ClientCredentialsUpdateData: + description: OAuth2 client credentials data for an update request. + properties: + attributes: + $ref: "#/components/schemas/WebhooksOAuth2ClientCredentialsUpdateAttributes" + type: + $ref: "#/components/schemas/WebhooksOAuth2ClientCredentialsType" + required: + - type + - attributes + type: object + WebhooksOAuth2ClientCredentialsUpdateRequest: + description: Update request for an OAuth2 client credentials auth method. + properties: + data: + $ref: "#/components/schemas/WebhooksOAuth2ClientCredentialsUpdateData" + required: + - data + type: object + Weekday: + description: A day of the week. + enum: + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + - sunday + type: string + x-enum-varnames: + - MONDAY + - TUESDAY + - WEDNESDAY + - THURSDAY + - FRIDAY + - SATURDAY + - SUNDAY + WidgetAnnotationIds: + description: List of annotation IDs displayed on a widget. + example: + - "00000000-0000-0000-0000-000000000000" + items: + description: Annotation ID. + format: uuid + type: string + type: array + WidgetAnnotationsMap: + additionalProperties: + $ref: "#/components/schemas/WidgetAnnotationIds" + description: Map from widget ID to the list of annotation IDs displayed on that widget. + example: + "1234567890": + - "00000000-0000-0000-0000-000000000000" + type: object + WidgetAttributes: + description: Attributes of a widget resource. + properties: + created_at: + description: ISO 8601 timestamp of when the widget was created. + example: "2024-01-15T00:00:00.000Z" + type: string + definition: + $ref: "#/components/schemas/WidgetDefinition" + is_favorited: + description: |- + Whether the current user has favorited this widget. Populated on get, + batch_get, update, and search responses; create responses always return + `false` because a widget can only be favorited after it exists. + Favoriting itself is performed through the shared favorites API, not + this service. + example: false + type: boolean + modified_at: + description: ISO 8601 timestamp of when the widget was last modified. + example: "2024-01-15T00:00:00.000Z" + type: string + tags: + description: User-defined tags for organizing widgets. + example: + - "team:my-team" + items: + description: A single user-defined tag. + type: string + nullable: true + type: array + required: + - definition + - tags + - is_favorited + - created_at + - modified_at + type: object + WidgetData: + description: A widget resource object. + properties: + attributes: + $ref: "#/components/schemas/WidgetAttributes" + id: + description: The unique identifier of the widget. + example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + type: string + relationships: + $ref: "#/components/schemas/WidgetRelationships" + type: + description: Widgets resource type. + example: widgets + type: string + required: + - id + - type + - attributes + type: object + WidgetDefinition: + additionalProperties: {} + description: The definition of a widget, including its type and configuration. + properties: + title: + description: The display title of the widget. + example: My Widget + maxLength: 100 + minLength: 1 + type: string + type: + $ref: "#/components/schemas/WidgetType" + required: + - type + - title + type: object + WidgetExperienceType: + description: Widget experience types that differentiate between the products using the specific widget. + enum: + - ccm_reports + - logs_reports + - csv_reports + - product_analytics + example: ccm_reports + type: string + x-enum-varnames: + - CCM_REPORTS + - LOGS_REPORTS + - CSV_REPORTS + - PRODUCT_ANALYTICS + WidgetIncludedUser: + description: A user resource included in the response. + properties: + attributes: + $ref: "#/components/schemas/WidgetIncludedUserAttributes" + id: + description: The unique identifier of the user. + example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + type: string + type: + description: Users resource type. + example: users + type: string + required: + - id + - type + type: object + WidgetIncludedUserAttributes: + description: Attributes of an included user resource. + properties: + handle: + description: The email handle of the user. + example: "john.doe@example.com" + type: string + name: + description: The display name of the user. + example: "John Doe" + nullable: true + type: string + type: object + WidgetListResponse: + description: Response containing a list of widgets. + properties: + data: + description: List of widget resources. + items: + $ref: "#/components/schemas/WidgetData" + type: array + included: + description: Array of user resources related to the widgets. + items: + $ref: "#/components/schemas/WidgetIncludedUser" + type: array + meta: + $ref: "#/components/schemas/WidgetSearchMeta" + required: + - data + type: object + WidgetLiveSpan: + description: The available timeframes depend on the widget you are using. + enum: + - 1m + - 5m + - 10m + - 15m + - 30m + - 1h + - 4h + - 1d + - 2d + - 1w + - 1mo + - 3mo + - 6mo + - 1y + - alert + example: 5m + type: string + x-enum-varnames: + - PAST_ONE_MINUTE + - PAST_FIVE_MINUTES + - PAST_TEN_MINUTES + - PAST_FIFTEEN_MINUTES + - PAST_THIRTY_MINUTES + - PAST_ONE_HOUR + - PAST_FOUR_HOURS + - PAST_ONE_DAY + - PAST_TWO_DAYS + - PAST_ONE_WEEK + - PAST_ONE_MONTH + - PAST_THREE_MONTHS + - PAST_SIX_MONTHS + - PAST_ONE_YEAR + - ALERT + WidgetRelationshipData: + description: Relationship data referencing a user resource. + properties: + id: + description: The unique identifier of the user. + example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + type: string + type: + description: Users resource type. + example: users + type: string + required: + - id + - type + type: object + WidgetRelationshipItem: + description: A JSON:API relationship to a user. + properties: + data: + $ref: "#/components/schemas/WidgetRelationshipData" + type: object + WidgetRelationships: + description: Relationships of the widget resource. + properties: + created_by: + $ref: "#/components/schemas/WidgetRelationshipItem" + description: The user who created the widget. + modified_by: + $ref: "#/components/schemas/WidgetRelationshipItem" + description: The user who last modified the widget. + type: object + WidgetResponse: + description: Response containing a single widget. + properties: + data: + $ref: "#/components/schemas/WidgetData" + included: + description: Array of user resources related to the widget. + items: + $ref: "#/components/schemas/WidgetIncludedUser" + type: array + required: + - data + type: object + WidgetSearchMeta: + description: Metadata about the search results. + properties: + created_by_anyone_total: + description: Total number of widgets created by anyone. + format: int64 + type: integer + created_by_you_total: + description: Total number of widgets created by the current user. + format: int64 + type: integer + favorited_by_you_total: + description: Total number of widgets favorited by the current user. + format: int64 + type: integer + filtered_total: + description: Total number of widgets matching the current filter criteria. + format: int64 + type: integer + type: object + WidgetType: + description: |- + Widget types that are allowed to be stored as individual records. + This is not a complete list of dashboard and notebook widget types. + enum: + - bar_chart + - change + - cloud_cost_summary + - cohort + - funnel + - geomap + - list_stream + - query_table + - query_value + - retention_curve + - sankey + - sunburst + - timeseries + - toplist + - treemap + example: bar_chart + type: string + x-enum-varnames: + - BAR_CHART + - CHANGE + - CLOUD_COST_SUMMARY + - COHORT + - FUNNEL + - GEOMAP + - LIST_STREAM + - QUERY_TABLE + - QUERY_VALUE + - RETENTION_CURVE + - SANKEY + - SUNBURST + - TIMESERIES + - TOPLIST + - TREEMAP + WorkflowData: + description: Data related to the workflow. + properties: + attributes: + $ref: "#/components/schemas/WorkflowDataAttributes" + id: + description: The workflow identifier + readOnly: true + type: string + relationships: + $ref: "#/components/schemas/WorkflowDataRelationships" + type: + $ref: "#/components/schemas/WorkflowDataType" + required: + - type + - attributes + type: object + WorkflowDataAttributes: + description: The definition of `WorkflowDataAttributes` object. + properties: + createdAt: + description: When the workflow was created. + format: date-time + readOnly: true + type: string + description: + description: Description of the workflow. + type: string + name: + description: Name of the workflow. + example: "" + type: string + published: + description: Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published. + type: boolean + runAs: + $ref: "#/components/schemas/WorkflowRunAs" + writeOnly: true + runAsUserMode: + $ref: "#/components/schemas/WorkflowRunAsUserMode" + readOnly: true + sensitivePrivileges: + description: Whether the workflow requires sensitive privileges to run. Only the workflow owner can update this field. This allows it to run actions that use [Execution Policies](https://docs.datadoghq.com/actions/private_actions/execution_policies/). + type: boolean + spec: + $ref: "#/components/schemas/Spec" + tags: + description: Tags of the workflow. + items: + description: A tag string in `key:value` format. + type: string + type: array + updatedAt: + description: When the workflow was last updated. + format: date-time + readOnly: true + type: string + webhookSecret: + description: If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here. + type: string + writeOnly: true + required: + - name + - spec + type: object + WorkflowDataRelationships: + description: The definition of `WorkflowDataRelationships` object. + properties: + creator: + $ref: "#/components/schemas/WorkflowUserRelationship" + owner: + $ref: "#/components/schemas/WorkflowUserRelationship" + runAs: + $ref: "#/components/schemas/WorkflowUserRelationship" + description: The service account used to run the workflow. Present when `runAsUserMode` is `service_account`. + readOnly: true + type: object + WorkflowDataType: + description: The definition of `WorkflowDataType` object. + enum: + - workflows + example: workflows + type: string + x-enum-varnames: + - WORKFLOWS + WorkflowDataUpdate: + description: Data related to the workflow being updated. + properties: + attributes: + $ref: "#/components/schemas/WorkflowDataUpdateAttributes" + id: + description: The workflow identifier + type: string + relationships: + $ref: "#/components/schemas/WorkflowDataRelationships" + type: + $ref: "#/components/schemas/WorkflowDataType" + required: + - type + - attributes + type: object + WorkflowDataUpdateAttributes: + description: The definition of `WorkflowDataUpdateAttributes` object. + properties: + createdAt: + description: When the workflow was created. + format: date-time + readOnly: true + type: string + description: + description: Description of the workflow. + type: string + name: + description: Name of the workflow. + type: string + published: + description: Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published. + type: boolean + runAs: + $ref: "#/components/schemas/WorkflowRunAs" + writeOnly: true + runAsUserMode: + $ref: "#/components/schemas/WorkflowRunAsUserMode" + readOnly: true + sensitivePrivileges: + description: Whether the workflow requires sensitive privileges to run. Only the workflow owner can update this field. This allows it to run actions that use [Execution Policies](https://docs.datadoghq.com/actions/private_actions/execution_policies/). + type: boolean + spec: + $ref: "#/components/schemas/Spec" + tags: + description: Tags of the workflow. + items: + description: A tag string in `key:value` format. + type: string + type: array + updatedAt: + description: When the workflow was last updated. + format: date-time + readOnly: true + type: string + webhookSecret: + description: If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here. + type: string + writeOnly: true + type: object + WorkflowInstanceCreateMeta: + description: Additional information for creating a workflow instance. + properties: + payload: + additionalProperties: {} + description: The input parameters to the workflow. + type: object + type: object + WorkflowInstanceCreateRequest: + description: Request used to create a workflow instance. + properties: + meta: + $ref: "#/components/schemas/WorkflowInstanceCreateMeta" + type: object + WorkflowInstanceCreateResponse: + additionalProperties: {} + description: Response returned upon successful workflow instance creation. + properties: + data: + $ref: "#/components/schemas/WorkflowInstanceCreateResponseData" + type: object + WorkflowInstanceCreateResponseData: + additionalProperties: {} + description: Data about the created workflow instance. + properties: + id: + description: The ID of the workflow execution. It can be used to fetch the execution status. + type: string + type: object + WorkflowInstanceListItem: + additionalProperties: {} + description: An item in the workflow instances list. + properties: + id: + description: The ID of the workflow instance + type: string + type: object + WorkflowListInstancesResponse: + additionalProperties: {} + description: Response returned when listing workflow instances. + properties: + data: + description: A list of workflow instances. + items: + $ref: "#/components/schemas/WorkflowInstanceListItem" + type: array + meta: + $ref: "#/components/schemas/WorkflowListInstancesResponseMeta" + type: object + WorkflowListInstancesResponseMeta: + additionalProperties: {} + description: Metadata about the instances list + properties: + page: + $ref: "#/components/schemas/WorkflowListInstancesResponseMetaPage" + type: object + WorkflowListInstancesResponseMetaPage: + additionalProperties: {} + description: Page information for the list instances response. + properties: + totalCount: + description: The total count of items. + format: int64 + type: integer + type: object + WorkflowListItem: + description: A workflow returned by the list workflows endpoint. + properties: + attributes: + $ref: "#/components/schemas/WorkflowListItemAttributes" + id: + description: The workflow identifier. + readOnly: true + type: string + relationships: + $ref: "#/components/schemas/WorkflowDataRelationships" + type: + $ref: "#/components/schemas/WorkflowDataType" + required: + - type + - attributes + type: object + WorkflowListItemAttributes: + description: Attributes of a workflow returned in a list response. + properties: + createdAt: + description: When the workflow was created. + format: date-time + readOnly: true + type: string + description: + description: Description of the workflow. + type: string + name: + description: Name of the workflow. + example: "My Workflow" + type: string + published: + description: Whether the workflow is published. Unpublished workflows can only be run manually. Automatic triggers such as Schedule do not fire until the workflow is published. + type: boolean + runAsUserMode: + $ref: "#/components/schemas/WorkflowRunAsUserMode" + readOnly: true + sensitivePrivileges: + description: Whether the workflow requires sensitive privileges to run. Only the workflow owner can update this field. This allows it to run actions that use [Execution Policies](https://docs.datadoghq.com/actions/private_actions/execution_policies/). + type: boolean + spec: + $ref: "#/components/schemas/Spec" + nullable: true + tags: + description: Tags of the workflow. + items: + description: A tag string in `key:value` format. + type: string + type: array + updatedAt: + description: When the workflow was last updated. + format: date-time + readOnly: true + type: string + required: + - name + type: object + WorkflowRunAs: + description: Identity used to run the workflow. + example: + type: owner + oneOf: + - $ref: "#/components/schemas/WorkflowRunAsOwner" + - $ref: "#/components/schemas/WorkflowRunAsServiceAccount" + - $ref: "#/components/schemas/WorkflowRunAsInitiator" + WorkflowRunAsInitiator: + additionalProperties: false + description: Run the workflow as the user who initiates the execution. + properties: + type: + $ref: "#/components/schemas/WorkflowRunAsInitiatorType" + required: + - type + type: object + WorkflowRunAsInitiatorType: + description: The initiator run-as type. + enum: + - initiator + example: initiator + type: string + x-enum-varnames: + - INITIATOR + WorkflowRunAsOwner: + additionalProperties: false + description: Run the workflow as its owner. + properties: + type: + $ref: "#/components/schemas/WorkflowRunAsOwnerType" + required: + - type + type: object + WorkflowRunAsOwnerType: + description: The owner run-as type. + enum: + - owner + example: owner + type: string + x-enum-varnames: + - OWNER + WorkflowRunAsServiceAccount: + additionalProperties: false + description: Run the workflow as a service account. + properties: + id: + description: The service account identifier. + example: 00000000-0000-0000-0000-000000000007 + type: string + type: + $ref: "#/components/schemas/WorkflowRunAsServiceAccountType" + required: + - type + - id + type: object + WorkflowRunAsServiceAccountType: + description: The service account run-as type. + enum: + - service_account + example: service_account + type: string + x-enum-varnames: + - SERVICE_ACCOUNT + WorkflowRunAsUserMode: + description: The effective type of identity used to run the workflow. + enum: + - owner + - service_account + - initiator + example: owner + type: string + x-enum-varnames: + - OWNER + - SERVICE_ACCOUNT + - INITIATOR + WorkflowTriggerWrapper: + description: "Schema for a Workflow-based trigger." + properties: + startStepNames: + $ref: "#/components/schemas/StartStepNames" + workflowTrigger: + description: "Trigger a workflow from the Datadog UI. When present, this must be the workflow's only trigger." + type: object + required: + - workflowTrigger + type: object + WorkflowUserRelationship: + description: The definition of `WorkflowUserRelationship` object. + properties: + data: + $ref: "#/components/schemas/WorkflowUserRelationshipData" + type: object + WorkflowUserRelationshipData: + description: The definition of `WorkflowUserRelationshipData` object. + properties: + id: + description: The user identifier + example: "" + type: string + type: + $ref: "#/components/schemas/WorkflowUserRelationshipType" + required: + - type + - id + type: object + WorkflowUserRelationshipType: + description: The definition of `WorkflowUserRelationshipType` object. + enum: + - users + example: users + type: string + x-enum-varnames: + - USERS + WorklflowCancelInstanceResponse: + description: Information about the canceled instance. + properties: + data: + $ref: "#/components/schemas/WorklflowCancelInstanceResponseData" + type: object + WorklflowCancelInstanceResponseData: + description: Data about the canceled instance. + properties: + id: + description: The id of the canceled instance + type: string + type: object + WorklflowGetInstanceResponse: + additionalProperties: {} + description: The state of the given workflow instance. + properties: + data: + $ref: "#/components/schemas/WorklflowGetInstanceResponseData" + type: object + WorklflowGetInstanceResponseData: + additionalProperties: {} + description: The data of the instance response. + properties: + attributes: + $ref: "#/components/schemas/WorklflowGetInstanceResponseDataAttributes" + type: object + WorklflowGetInstanceResponseDataAttributes: + additionalProperties: {} + description: The attributes of the instance response data. + properties: + id: + description: The id of the instance. + type: string + type: object + XRayServicesIncludeAll: + description: Include all services. + properties: + include_all: + description: Include all services. + example: false + type: boolean + required: + - include_all + type: object + XRayServicesIncludeOnly: + description: Include only these services. Defaults to `[]`. + nullable: true + properties: + include_only: + description: Include only these services. + example: + - "AWS/AppSync" + items: + description: An AWS X-Ray service name to include in traces collection. + example: "AWS/AppSync" + type: string + type: array + required: + - include_only + type: object + XRayServicesList: + description: AWS X-Ray services to collect traces from. Defaults to `include_only`. + oneOf: + - $ref: "#/components/schemas/XRayServicesIncludeAll" + - $ref: "#/components/schemas/XRayServicesIncludeOnly" + ZoomConfigurationReference: + description: A reference to a Zoom configuration resource. + nullable: true + properties: + data: + $ref: "#/components/schemas/ZoomConfigurationReferenceData" + required: + - data + type: object + ZoomConfigurationReferenceData: + description: The Zoom configuration relationship data object. + nullable: true + properties: + id: + description: The unique identifier of the Zoom configuration. + example: "00000000-0000-0000-0000-000000000000" + type: string + type: + description: The type of the Zoom configuration. + example: "zoom_configurations" + type: string + required: + - id + - type + type: object + securitySchemes: + AuthZ: + description: This API uses OAuth 2 with the implicit grant flow. + flows: + authorizationCode: + authorizationUrl: /oauth2/v1/authorize + scopes: + ai_gateway_config_read: View AI Gateway configuration. + ai_gateway_config_write: Create, update, and delete AI Gateway configuration. + ai_gateway_usage: Use AI Gateway and view configuration applicable to the authenticated user. + apm_api_catalog_read: View API catalog and API definitions. + apm_api_catalog_write: Add, modify, and delete API catalog definitions. + apm_read: Read and query APM and Trace Analytics. + apm_service_catalog_read: View service catalog and service definitions. + apm_service_catalog_write: >- + Add, modify, and delete service catalog definitions when those definitions are maintained by Datadog. + appsec_vm_read: View infrastructure, application code, and library vulnerability findings. + aws_configurations_manage: Manage AWS integration account configurations and related integration settings. + billing_edit: Edit your organization's billing information. + billing_read: View your organization's billing information. + bits_investigations_read: View Bits AI investigations. bits_investigations_write: Create and manage Bits AI investigations. cases_read: View Cases. cases_shared_settings_write: Update shared case management settings. @@ -131459,6 +138371,13 @@ components: org_connections_write: Create, edit, and delete cross organization connections. org_management: >- Edit org configurations, including authentication and certain security preferences such as configuring SAML, renaming an org, configuring allowed login methods, creating child orgs, subscribing & unsubscribing from apps in the marketplace, and enabling & disabling Remote Configuration for the entire organization. + product_analytics_experiments_read: View Product Analytics Experiments. + product_analytics_experiments_write: Create, edit, and delete Product Analytics Experiments. + product_analytics_metrics_read: View Product Analytics Metrics. + product_analytics_metrics_write: Create, edit, and delete Product Analytics Metrics. + product_analytics_settings_read: View Product Analytics Settings. + product_analytics_settings_write: Edit Product Analytics Settings. + product_analytics_warehouse_model_write: Create, edit, and delete Product Analytics Warehouse Models. security_comments_read: Read comments of vulnerabilities. security_monitoring_critical_assets_read: Read Critical Assets. security_monitoring_critical_assets_write: Write Critical Assets. @@ -131532,51 +138451,2576 @@ openapi: 3.0.0 paths: /api/unstable/fleet/agents/{agent_key}/tracers: get: - description: |- - Retrieve a paginated list of tracers for a specific agent. - - This endpoint returns tracers associated with a given agent key, identified by the - agent's hostname. Use this to discover telemetry-derived service names for a particular host. - operationId: ListFleetAgentTracers + description: |- + Retrieve a paginated list of tracers for a specific agent. + + This endpoint returns tracers associated with a given agent key, identified by the + agent's hostname. Use this to discover telemetry-derived service names for a particular host. + operationId: ListFleetAgentTracers + parameters: + - description: The unique identifier (agent key) for the Datadog Agent. + in: path + name: agent_key + required: true + schema: + type: string + - description: Page number for pagination (starts at 0). + in: query + name: page_number + required: false + schema: + default: 0 + format: int64 + minimum: 0 + type: integer + - description: Number of results per page (must be greater than 0 and less than or equal to 100). + in: query + name: page_size + required: false + schema: + default: 10 + format: int64 + maximum: 100 + minimum: 1 + type: integer + - description: Attribute to sort by. + in: query + name: sort_attribute + required: false + schema: + type: string + - description: Sort order (true for descending, false for ascending). + in: query + name: sort_descending + required: false + schema: + default: true + type: boolean + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + tracers: + - env: production + hostname: my-hostname + language: java + service: test-service + tracer_version: "1.32.0" + id: done + type: status + meta: + total_filtered_count: 1 + schema: + $ref: "#/components/schemas/FleetTracersResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: List tracers for a specific agent + tags: + - Fleet Automation + "x-permission": + operator: AND + permissions: + - hosts_read + x-unstable: |- + This endpoint is in Preview and may introduce breaking changes. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/unstable/fleet/schedules: + post: + description: |- + Create a new schedule for automated package upgrades. + + Schedules define when and how often to automatically deploy package upgrades to a fleet + of hosts. Each schedule includes: + - A filter query to select target hosts + - A recurrence rule defining maintenance windows + - A version strategy (e.g., always latest, or N versions behind latest) + + When the schedule triggers during a maintenance window, it automatically creates a + deployment that upgrades the Datadog Agent to the specified version on all matching hosts. + operationId: CreateFleetSchedule + requestBody: + content: + application/json: + examples: + conservative_staging: + summary: Conservative staging updates (N-1 version) + value: + data: + attributes: + name: "Staging Environment - Conservative Updates" + query: "env:staging" + rule: + days_of_week: ["Fri"] + maintenance_window_duration: 240 + start_maintenance_window: "22:00" + timezone: "UTC" + status: "active" + version_to_latest: 1 + type: schedule + default: + value: + data: + attributes: + name: Weekly Production Agent Updates + query: env:prod + rule: + days_of_week: + - Mon + - Wed + maintenance_window_duration: 180 + start_maintenance_window: 02:00 + timezone: America/New_York + status: active + version_to_latest: 0 + type: schedule + weekly_production_update: + summary: Weekly production agent updates + value: + data: + attributes: + name: "Weekly Production Agent Updates" + query: "env:prod" + rule: + days_of_week: ["Mon", "Wed"] + maintenance_window_duration: 180 + start_maintenance_window: "02:00" + timezone: "America/New_York" + status: "active" + version_to_latest: 0 + type: schedule + schema: + $ref: "#/components/schemas/FleetScheduleCreateRequest" + description: Request payload containing the schedule details. + required: true + responses: + "201": + content: + application/json: + examples: + default: + value: + data: + attributes: + name: Weekly Production Agent Updates + query: env:prod + rule: + days_of_week: + - Mon + - Wed + maintenance_window_duration: 180 + start_maintenance_window: "02:00" + timezone: America/New_York + status: active + version_to_latest: 0 + id: abc-123 + type: schedule + schema: + $ref: "#/components/schemas/FleetScheduleResponse" + description: CREATED + "400": + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Create a schedule + tags: + - Fleet Automation + "x-permission": + operator: AND + permissions: + - agent_upgrade_write + x-unstable: |- + This endpoint is in Preview and may introduce breaking changes. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/unstable/fleet/schedules/{id}: + delete: + description: |- + Delete a schedule permanently. + + When you delete a schedule: + - The schedule is permanently removed and will no longer create deployments + - Any deployments already created by this schedule are not affected + - This action cannot be undone + + If you want to temporarily stop a schedule from creating deployments, consider + updating its status to "inactive" instead of deleting it. + operationId: DeleteFleetSchedule + parameters: + - description: The unique identifier of the schedule to delete. + example: "abc-def-ghi-123" + in: path + name: id + required: true + schema: + type: string + responses: + "204": + description: Schedule successfully deleted. + "400": + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Delete a schedule + tags: + - Fleet Automation + "x-permission": + operator: AND + permissions: + - agent_upgrade_write + x-unstable: |- + This endpoint is in Preview and may introduce breaking changes. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + patch: + description: |- + Partially update a schedule by providing only the fields you want to change. + + This endpoint allows you to modify specific attributes of a schedule without + affecting other fields. Common use cases include: + - Changing the schedule status between active and inactive + - Updating the maintenance window times + - Modifying the filter query to target different hosts + - Adjusting the version strategy + + Only include the fields you want to update in the request body. All fields + are optional in a PATCH request. + operationId: UpdateFleetSchedule + parameters: + - description: The unique identifier of the schedule to update. + example: "abc-def-ghi-123" + in: path + name: id + required: true + schema: + type: string + requestBody: + content: + application/json: + examples: + change_maintenance_window: + summary: Change maintenance window time + value: + data: + attributes: + rule: + days_of_week: ["Mon", "Wed", "Fri"] + maintenance_window_duration: 240 + start_maintenance_window: "03:00" + timezone: "America/New_York" + type: schedule + default: + value: + data: + attributes: + status: inactive + type: schedule + pause_schedule: + summary: Pause a schedule + value: + data: + attributes: + status: "inactive" + type: schedule + update_query: + summary: Update target hosts query + value: + data: + attributes: + query: "env:prod AND service:api" + type: schedule + schema: + $ref: "#/components/schemas/FleetSchedulePatchRequest" + description: Request payload containing the fields to update. + required: true + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + created_at_unix: 1699999999 + created_by: test@example.com + name: Weekly Production Agent Updates + query: env:prod AND service:web + rule: + days_of_week: + - Mon + - Wed + maintenance_window_duration: 120 + start_maintenance_window: "02:00" + timezone: America/New_York + status: inactive + updated_at_unix: 1699999999 + updated_by: test@example.com + version_to_latest: 0 + id: abc-def-ghi-123 + type: schedule + schema: + $ref: "#/components/schemas/FleetScheduleResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Update a schedule + tags: + - Fleet Automation + "x-permission": + operator: AND + permissions: + - agent_upgrade_write + x-unstable: |- + This endpoint is in Preview and may introduce breaking changes. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/unstable/fleet/schedules/{id}/trigger: + post: + description: |- + Manually trigger a schedule to immediately create and start a deployment. + + This endpoint allows you to manually initiate a deployment using the schedule's + configuration, without waiting for the next scheduled maintenance window. This is + useful for: + - Testing a schedule before it runs automatically + - Performing an emergency update outside the regular maintenance window + - Creating an ad-hoc deployment with the same settings as a schedule + + The deployment is created immediately with: + - The same filter query as the schedule + - The package version determined by the schedule's version strategy + - All matching hosts as targets + + The manually triggered deployment is independent of the schedule and does not + affect the schedule's normal recurrence pattern. + operationId: TriggerFleetSchedule + parameters: + - description: The unique identifier of the schedule to trigger. + example: "abc-def-ghi-123" + in: path + name: id + required: true + schema: + type: string + responses: + "201": + content: + application/json: + examples: + default: + value: + data: + attributes: + filter_query: env:prod AND service:web + high_level_status: pending + packages: + - name: datadog-agent + version: 7.52.0 + total_hosts: 10 + id: abc-123 + type: deployment + schema: + $ref: "#/components/schemas/FleetDeploymentResponse" + description: CREATED - Deployment successfully created and started. + "400": + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Trigger a schedule deployment + tags: + - Fleet Automation + "x-permission": + operator: AND + permissions: + - agent_upgrade_write + x-unstable: |- + This endpoint is in Preview and may introduce breaking changes. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/unstable/fleet/tracers: + get: + description: |- + Retrieve a paginated list of all fleet tracers. + + This endpoint returns telemetry-derived service names from the SDK telemetry pipeline. + These names may differ from span-derived names in APM and are useful for querying + service library configurations. + Use the `page_number` and `page_size` query parameters to paginate through results. + operationId: ListFleetTracers + parameters: + - description: Page number for pagination (starts at 0). + in: query + name: page_number + required: false + schema: + default: 0 + format: int64 + minimum: 0 + type: integer + - description: Number of results per page (must be greater than 0 and less than or equal to 100). + in: query + name: page_size + required: false + schema: + default: 10 + format: int64 + maximum: 100 + minimum: 1 + type: integer + - description: Attribute to sort by. + in: query + name: sort_attribute + required: false + schema: + type: string + - description: Sort order (true for descending, false for ascending). + in: query + name: sort_descending + required: false + schema: + default: true + type: boolean + - description: Filter string for narrowing down tracer results. + example: "hostname:my-host OR env:prod" + in: query + name: filter + required: false + schema: + type: string + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + tracers: + - env: production + hostname: my-hostname + language: java + service: test-service + tracer_version: "1.32.0" + id: done + type: status + meta: + total_filtered_count: 1 + schema: + $ref: "#/components/schemas/FleetTracersResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: List all fleet tracers + tags: + - Fleet Automation + "x-permission": + operator: AND + permissions: + - hosts_read + x-unstable: |- + This endpoint is in Preview and may introduce breaking changes. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/unstable/llm-obs/config/evaluators/custom: + get: + description: List all custom Agent Observability evaluator configurations for the organization. + operationId: ListLLMObsCustomEvalConfigs + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + category: "Custom" + created_at: "2024-01-15T10:30:00Z" + created_by: + email: "user@example.com" + eval_name: "my-custom-evaluator" + last_updated_by: + email: "user@example.com" + llm_judge_config: + inference_params: + max_tokens: 1024 + temperature: 0.7 + parsing_type: "structured_output" + llm_provider: + integration_provider: "openai" + model_name: "gpt-4o" + target: + application_name: "my-llm-app" + enabled: true + sampling_percentage: 50.0 + updated_at: "2024-01-15T10:30:00Z" + id: "my-custom-evaluator" + type: "evaluator_config" + schema: + $ref: "#/components/schemas/LLMObsCustomEvalConfigListResponse" + description: OK + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: List custom evaluator configurations + tags: + - Agent Observability + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/unstable/llm-obs/config/evaluators/custom/{eval_name}: + delete: + description: Delete a custom Agent Observability evaluator configuration by its name. + operationId: DeleteLLMObsCustomEvalConfig + parameters: + - $ref: "#/components/parameters/LLMObsEvalNamePathParameter" + responses: + "204": + description: No Content + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Delete a custom evaluator configuration + tags: + - Agent Observability + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + get: + description: Retrieve a custom Agent Observability evaluator configuration by its name. + operationId: GetLLMObsCustomEvalConfig + parameters: + - $ref: "#/components/parameters/LLMObsEvalNamePathParameter" + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + category: "Custom" + created_at: "2024-01-15T10:30:00Z" + created_by: + email: "user@example.com" + eval_name: "my-custom-evaluator" + last_updated_by: + email: "user@example.com" + llm_judge_config: + inference_params: + max_tokens: 1024 + temperature: 0.7 + parsing_type: "structured_output" + llm_provider: + integration_provider: "openai" + model_name: "gpt-4o" + target: + application_name: "my-llm-app" + enabled: true + sampling_percentage: 50.0 + updated_at: "2024-01-15T10:30:00Z" + id: "my-custom-evaluator" + type: "evaluator_config" + schema: + $ref: "#/components/schemas/LLMObsCustomEvalConfigResponse" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Get a custom evaluator configuration + tags: + - Agent Observability + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + put: + description: Create or update a custom Agent Observability evaluator configuration by its name. + operationId: UpdateLLMObsCustomEvalConfig + parameters: + - $ref: "#/components/parameters/LLMObsEvalNamePathParameter" + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + llm_judge_config: + inference_params: + max_tokens: 1024 + temperature: 0.7 + parsing_type: "structured_output" + llm_provider: + integration_provider: "openai" + model_name: "gpt-4o" + target: + application_name: "my-llm-app" + enabled: true + sampling_percentage: 50.0 + id: "my-custom-evaluator" + type: "evaluator_config" + full: + summary: Full example with prompt template, output schema, and assessment criteria + value: + data: + attributes: + category: "Custom" + eval_name: "my-custom-evaluator" + llm_judge_config: + assessment_criteria: + pass_when: false + inference_params: + frequency_penalty: 0 + max_tokens: 4096 + presence_penalty: 0 + temperature: 1 + top_p: 1 + output_schema: + name: "boolean_eval" + strict: true + parsing_type: "structured_output" + prompt_template: + - content: "You are a judge LLM." + role: "system" + - content: "{{span_output}}" + role: "user" + llm_provider: + integration_account_id: "your-account-uuid" + integration_provider: "openai" + model_name: "gpt-4o" + target: + application_name: "my-llm-app" + enabled: true + eval_scope: "span" + filter: "@meta.span.kind:llm" + root_spans_only: false + sampling_percentage: 100 + id: "my-custom-evaluator" + type: "evaluator_config" + schema: + $ref: "#/components/schemas/LLMObsCustomEvalConfigUpdateRequest" + description: Custom evaluator configuration payload. + required: true + responses: + "200": + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "422": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unprocessable Entity + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Create or update a custom evaluator configuration + tags: + - Agent Observability + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/actions-datastores: + get: + description: Lists all datastores for the organization. + operationId: ListDatastores + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + created_at: "2024-01-01T00:00:00+00:00" + description: A sample datastore + modified_at: "2024-01-01T00:00:00+00:00" + name: Example Datastore + org_id: 123 + primary_column_name: id + primary_key_generation_strategy: none + id: 00000000-0000-0000-0000-000000000001 + type: datastores + schema: + $ref: "#/components/schemas/DatastoreArray" + description: OK + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: List datastores + tags: + - Actions Datastores + x-permission: + operator: OR + permissions: + - apps_datastore_read + post: + description: Creates a new datastore. + operationId: CreateDatastore + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + name: datastore-name + org_access: contributor + primary_column_name: primaryKey + primary_key_generation_strategy: none + type: datastores + schema: + $ref: "#/components/schemas/CreateAppsDatastoreRequest" + required: true + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + id: 00000000-0000-0000-0000-000000000002 + type: datastores + schema: + $ref: "#/components/schemas/CreateAppsDatastoreResponse" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Create datastore + tags: + - Actions Datastores + x-permission: + operator: OR + permissions: + - apps_datastore_manage + /api/v2/actions-datastores/{datastore_id}: + delete: + description: Deletes a datastore by its unique identifier. + operationId: DeleteDatastore + parameters: + - description: The unique identifier of the datastore to retrieve. + in: path + name: datastore_id + required: true + schema: + type: string + responses: + "200": + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Delete datastore + tags: + - Actions Datastores + x-permission: + operator: OR + permissions: + - apps_datastore_manage + get: + description: Retrieves a specific datastore by its ID. + operationId: GetDatastore + parameters: + - description: The unique identifier of the datastore to retrieve. + in: path + name: datastore_id + required: true + schema: + type: string + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + created_at: "2024-01-01T00:00:00+00:00" + description: A sample datastore + modified_at: "2024-01-01T00:00:00+00:00" + name: Example Datastore + org_id: 123 + primary_column_name: id + primary_key_generation_strategy: none + id: 00000000-0000-0000-0000-000000000003 + type: datastores + schema: + $ref: "#/components/schemas/Datastore" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Get datastore + tags: + - Actions Datastores + x-permission: + operator: OR + permissions: + - apps_datastore_read + patch: + description: Updates an existing datastore's attributes. + operationId: UpdateDatastore + parameters: + - description: The unique identifier of the datastore to retrieve. + in: path + name: datastore_id + required: true + schema: + type: string + requestBody: + content: + application/json: + examples: + default: + value: + data: + type: datastores + schema: + $ref: "#/components/schemas/UpdateAppsDatastoreRequest" + required: true + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + created_at: "2024-01-01T00:00:00+00:00" + description: An updated datastore + modified_at: "2024-01-01T00:00:00+00:00" + name: Updated Datastore + org_id: 123 + primary_column_name: id + primary_key_generation_strategy: none + id: 00000000-0000-0000-0000-000000000004 + type: datastores + schema: + $ref: "#/components/schemas/Datastore" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Update datastore + tags: + - Actions Datastores + x-permission: + operator: OR + permissions: + - apps_datastore_manage + /api/v2/actions-datastores/{datastore_id}/items: + delete: + description: Deletes an item from a datastore by its key. + operationId: DeleteDatastoreItem + parameters: + - description: The unique identifier of the datastore to retrieve. + in: path + name: datastore_id + required: true + schema: + type: string + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + id: a7656bcc-51d4-4884-adf7-4d0d9a3e0633 + item_key: primaryKey + type: items + schema: + $ref: "#/components/schemas/DeleteAppsDatastoreItemRequest" + required: true + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + id: 00000000-0000-0000-0000-000000000007 + type: items + schema: + $ref: "#/components/schemas/DeleteAppsDatastoreItemResponse" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Delete datastore item + tags: + - Actions Datastores + x-permission: + operator: OR + permissions: + - apps_datastore_write + get: + description: >- + Lists items from a datastore. You can filter the results by specifying either an item key or a filter query parameter, but not both at the same time. Supports server-side pagination for large datasets. + operationId: ListDatastoreItems + parameters: + - description: The unique identifier of the datastore to retrieve. + in: path + name: datastore_id + required: true + schema: + type: string + - description: Optional query filter to search items using the [logs search syntax](https://docs.datadoghq.com/logs/explorer/search_syntax/). + in: query + name: filter + schema: + type: string + - description: Optional primary key value to retrieve a specific item. Cannot be used together with the filter parameter. + in: query + name: item_key + schema: + maxLength: 256 + type: string + - description: Optional field to limit the number of items to return per page for pagination. Up to 100 items can be returned per page. + in: query + name: "page[limit]" + schema: + format: int64 + maximum: 100 + minimum: 1 + type: integer + - description: Optional field to offset the number of items to skip from the beginning of the result set for pagination. + in: query + name: "page[offset]" + schema: + format: int64 + type: integer + - description: Optional field to sort results by. Prefix with '-' for descending order (e.g., '-created_at'). + in: query + name: sort + schema: + type: string + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + created_at: "2024-01-01T00:00:00+00:00" + modified_at: "2024-01-01T00:00:00+00:00" + org_id: 123 + primary_column_name: id + store_id: 00000000-0000-0000-0000-000000000006 + value: + key: example-value + id: 00000000-0000-0000-0000-000000000005 + type: items + schema: + $ref: "#/components/schemas/ItemApiPayloadArray" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: List datastore items + tags: + - Actions Datastores + x-permission: + operator: OR + permissions: + - apps_datastore_read + patch: + description: Partially updates an item in a datastore by its key. + operationId: UpdateDatastoreItem + parameters: + - description: The unique identifier of the datastore to retrieve. + in: path + name: datastore_id + required: true + schema: + type: string + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + item_changes: + ops_set: + count: 42 + status: active + item_key: my-item-key + type: items + schema: + $ref: "#/components/schemas/UpdateAppsDatastoreItemRequest" + required: true + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + created_at: "2024-01-01T00:00:00+00:00" + modified_at: "2024-01-01T00:00:00+00:00" + org_id: 123 + primary_column_name: id + store_id: 00000000-0000-0000-0000-000000000009 + value: + count: 42 + status: active + id: 00000000-0000-0000-0000-000000000008 + type: items + schema: + $ref: "#/components/schemas/ItemApiPayload" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Update datastore item + tags: + - Actions Datastores + x-permission: + operator: OR + permissions: + - apps_datastore_write + /api/v2/actions-datastores/{datastore_id}/items/bulk: + delete: + description: >- + Deletes multiple items from a datastore by their keys in a single operation. + operationId: BulkDeleteDatastoreItems + parameters: + - description: The ID of the datastore. + in: path + name: datastore_id + required: true + schema: + type: string + requestBody: + content: + application/json: + examples: + default: + value: + data: + type: items + schema: + $ref: "#/components/schemas/BulkDeleteAppsDatastoreItemsRequest" + required: true + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - id: 00000000-0000-0000-0000-000000000010 + type: items + schema: + $ref: "#/components/schemas/DeleteAppsDatastoreItemResponseArray" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + "500": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Internal Server Error + summary: Bulk delete datastore items + tags: + - Actions Datastores + x-permission: + operator: OR + permissions: + - apps_datastore_write + post: + description: >- + Creates or replaces multiple items in a datastore by their keys in a single operation. + operationId: BulkWriteDatastoreItems + parameters: + - description: The unique identifier of the datastore to retrieve. + in: path + name: datastore_id + required: true + schema: + type: string + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + conflict_mode: overwrite_on_conflict + values: + - data: example data + key: value + - data: example data2 + key: value2 + type: items + schema: + $ref: "#/components/schemas/BulkPutAppsDatastoreItemsRequest" + required: true + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - id: 00000000-0000-0000-0000-000000000011 + type: items + schema: + $ref: "#/components/schemas/PutAppsDatastoreItemResponseArray" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Bulk write datastore items + tags: + - Actions Datastores + x-permission: + operator: OR + permissions: + - apps_datastore_write + /api/v2/actions/app_key_registrations: + get: + description: List App Key Registrations + operationId: ListAppKeyRegistrations + parameters: + - description: The number of App Key Registrations to return per page. + in: query + name: page[size] + required: false + schema: + format: int64 + type: integer + - description: The page number to return. + in: query + name: page[number] + required: false + schema: + format: int64 + type: integer + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - id: 00000000-0000-0000-0000-000000000001 + type: app_key_registration + meta: + total: 1 + total_filtered: 1 + schema: + $ref: "#/components/schemas/ListAppKeyRegistrationsResponse" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "429": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Too many requests + summary: List App Key Registrations + tags: + - Action Connection + x-permission: + operator: OR + permissions: + - org_app_keys_read + /api/v2/actions/app_key_registrations/{app_key_id}: + delete: + description: Unregister an App Key + operationId: UnregisterAppKey + parameters: + - $ref: "#/components/parameters/ApplicationKeyId" + responses: + "204": + description: No Content + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not found + "429": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Too many requests + summary: Unregister an App Key + tags: + - Action Connection + x-permission: + operator: OR + permissions: + - user_access_manage + - user_app_keys + - service_account_write + get: + description: Get an existing App Key Registration + operationId: GetAppKeyRegistration + parameters: + - $ref: "#/components/parameters/ApplicationKeyId" + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + id: 00000000-0000-0000-0000-000000000001 + type: app_key_registration + schema: + $ref: "#/components/schemas/GetAppKeyRegistrationResponse" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not found + "429": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Too many requests + summary: Get an existing App Key Registration + tags: + - Action Connection + x-permission: + operator: OR + permissions: + - org_app_keys_read + put: + description: Register a new App Key + operationId: RegisterAppKey + parameters: + - $ref: "#/components/parameters/ApplicationKeyId" + responses: + "201": + content: + application/json: + examples: + default: + value: + data: + id: 00000000-0000-0000-0000-000000000001 + type: app_key_registration + schema: + $ref: "#/components/schemas/RegisterAppKeyResponse" + description: Created + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "429": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Too many requests + summary: Register a new App Key + tags: + - Action Connection + x-permission: + operator: OR + permissions: + - user_access_manage + - user_app_keys + - service_account_write + /api/v2/actions/connections: + post: + description: Create a new Action Connection. This API requires a [registered application key](https://docs.datadoghq.com/api/latest/action-connection/#register-a-new-app-key). + operationId: CreateActionConnection + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + integration: + credentials: + account_id: "123456789123" + role: MyRoleUpdated + type: AWSAssumeRole + type: AWS + name: My AWS Connection + tags: + - env:prod + - team:action-platform + type: action_connection + schema: + $ref: "#/components/schemas/CreateActionConnectionRequest" + required: true + responses: + "201": + content: + application/json: + examples: + default: + value: + data: + attributes: + integration: + type: AWS + name: My AWS Connection + tags: + - env:prod + - team:action-platform + id: 00000000-0000-0000-0000-000000000001 + type: action_connection + schema: + $ref: "#/components/schemas/CreateActionConnectionResponse" + description: Successfully created Action Connection + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "429": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Too Many Request + summary: Create a new Action Connection + tags: + - Action Connection + /api/v2/actions/connections/{connection_id}: + delete: + description: Delete an existing Action Connection. This API requires a [registered application key](https://docs.datadoghq.com/api/latest/action-connection/#register-a-new-app-key). Alternatively, you can configure these permissions [in the UI](https://docs.datadoghq.com/account_management/api-app-keys/#actions-api-access). + operationId: DeleteActionConnection + parameters: + - $ref: "#/components/parameters/ConnectionId" + responses: + "204": + description: The resource was deleted successfully. + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "429": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Too Many Request + summary: Delete an existing Action Connection + tags: + - Action Connection + x-permission: + operator: OR + permissions: + - connection_write + get: + description: Get an existing Action Connection. This API requires a [registered application key](https://docs.datadoghq.com/api/latest/action-connection/#register-a-new-app-key). + operationId: GetActionConnection parameters: - - description: The unique identifier (agent key) for the Datadog Agent. - in: path - name: agent_key - required: true + - $ref: "#/components/parameters/ConnectionId" + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + integration: + type: AWS + name: My AWS Connection + tags: + - env:prod + - team:action-platform + id: 00000000-0000-0000-0000-000000000002 + type: action_connection + schema: + $ref: "#/components/schemas/GetActionConnectionResponse" + description: Successfully get Action Connection + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "429": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Too Many Request + summary: Get an existing Action Connection + tags: + - Action Connection + patch: + description: Update an existing Action Connection. This API requires a [registered application key](https://docs.datadoghq.com/api/latest/action-connection/#register-a-new-app-key). + operationId: UpdateActionConnection + parameters: + - $ref: "#/components/parameters/ConnectionId" + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + integration: + type: AWS + name: My AWS Connection + tags: + - env:prod + - team:action-platform + type: action_connection + schema: + $ref: "#/components/schemas/UpdateActionConnectionRequest" + description: Update an existing Action Connection request body + required: true + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + integration: + type: AWS + name: My AWS Connection + tags: + - env:prod + - team:action-platform + id: 00000000-0000-0000-0000-000000000003 + type: action_connection + schema: + $ref: "#/components/schemas/UpdateActionConnectionResponse" + description: Successfully updated Action Connection + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "429": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Too Many Request + summary: Update an existing Action Connection + tags: + - Action Connection + /api/v2/actions/execution-policies: + get: + description: Retrieve a list of execution policies for the current organization. + operationId: ListExecutionPolicies + parameters: + - description: The number of execution policies to return per page. + example: 100 + in: query + name: page[size] + required: false schema: - type: string - - description: Page number for pagination (starts at 0). + default: 100 + format: int32 + maximum: 100 + type: integer + - description: The page number to return. + example: 0 in: query - name: page_number + name: page[number] required: false schema: default: 0 - format: int64 + format: int32 + maximum: 1000 minimum: 0 type: integer - - description: Number of results per page (must be greater than 0 and less than or equal to 100). + - description: Filter execution policies by name. + example: "Block prod restarts" in: query - name: page_size + name: filter[name] required: false schema: - default: 10 - format: int64 - maximum: 100 - minimum: 1 - type: integer - - description: Attribute to sort by. + type: string + - description: Filter execution policies by a list of IDs. + example: + - "3fa85f64-5717-4562-b3fc-2c963f66afa6" + explode: true in: query - name: sort_attribute + name: filter[ids] + required: false + schema: + items: + type: string + type: array + style: form + - description: Filter execution policies by a list of integrations. + example: + - INTEGRATION_SCRIPT + explode: true + in: query + name: filter[integration] + required: false + schema: + items: + $ref: "#/components/schemas/ExecutionPolicyIntegration" + type: array + style: form + - description: Filter execution policies by a list of effects. + example: + - allow + explode: true + in: query + name: filter[effects] + required: false + schema: + items: + $ref: "#/components/schemas/ExecutionPolicyEffect" + type: array + style: form + - description: Filter execution policies by a list of creator IDs. + example: + - "3fa85f64-5717-4562-b3fc-2c963f66afa6" + explode: true + in: query + name: filter[creator_ids] + required: false + schema: + items: + type: string + type: array + style: form + - description: |- + The sort order for the results. Prefix a field with `-` to sort in + descending order. Valid fields are `name`, `effect`, `integration`, + `created_at`, and `updated_at`. + example: + - "-created_at" + explode: true + in: query + name: sort required: false schema: + items: + type: string + type: array + style: form + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + action_pattern: + action_fqns: + - "com.datadoghq.script.*" + integration: INTEGRATION_SCRIPT + created_at: "2026-01-15T10:00:00.000Z" + created_by: "3fa85f64-5717-4562-b3fc-2c963f66afa6" + effect: allow + name: "Block prod restarts" + targets: [] + updated_at: "2026-01-15T10:00:00.000Z" + updated_by: "3fa85f64-5717-4562-b3fc-2c963f66afa6" + version: 1 + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6" + type: execution_policy + meta: + page: + total: 1 + schema: + $ref: "#/components/schemas/ExecutionPolicyListResponse" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: List execution policies + tags: + - Execution Policy + x-permission: + operator: OR + permissions: + - execution_groups_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + post: + description: Create a new execution policy. + operationId: CreateExecutionPolicy + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + action_pattern: + action_fqns: + - "com.datadoghq.script.*" + integration: INTEGRATION_SCRIPT + effect: allow + name: "Block prod restarts" + type: execution_policy + schema: + $ref: "#/components/schemas/ExecutionPolicyCreateRequest" + description: The execution policy to create. + required: true + responses: + "201": + content: + application/json: + examples: + default: + value: + data: + attributes: + action_pattern: + action_fqns: + - "com.datadoghq.script.*" + integration: INTEGRATION_SCRIPT + created_at: "2026-01-15T10:00:00.000Z" + created_by: "3fa85f64-5717-4562-b3fc-2c963f66afa6" + effect: allow + name: "Block prod restarts" + targets: [] + updated_at: "2026-01-15T10:00:00.000Z" + updated_by: "3fa85f64-5717-4562-b3fc-2c963f66afa6" + version: 1 + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6" + type: execution_policy + schema: + $ref: "#/components/schemas/ExecutionPolicyResponse" + description: Created + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Create an execution policy + tags: + - Execution Policy + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - execution_groups_write + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/actions/execution-policies/{policy_id}: + delete: + description: Delete a specific execution policy. + operationId: DeleteExecutionPolicy + parameters: + - $ref: "#/components/parameters/ExecutionPolicyId" + responses: + "204": + description: No Content + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Delete an execution policy + tags: + - Execution Policy + x-permission: + operator: OR + permissions: + - execution_groups_write + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + get: + description: Retrieve an existing execution policy by ID. + operationId: GetExecutionPolicy + parameters: + - $ref: "#/components/parameters/ExecutionPolicyId" + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + action_pattern: + action_fqns: + - "com.datadoghq.script.*" + integration: INTEGRATION_SCRIPT + created_at: "2026-01-15T10:00:00.000Z" + created_by: "3fa85f64-5717-4562-b3fc-2c963f66afa6" + effect: allow + name: "Block prod restarts" + targets: [] + updated_at: "2026-01-15T10:00:00.000Z" + updated_by: "3fa85f64-5717-4562-b3fc-2c963f66afa6" + version: 1 + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6" + type: execution_policy + schema: + $ref: "#/components/schemas/ExecutionPolicyResponse" + description: OK + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Get an execution policy + tags: + - Execution Policy + x-permission: + operator: OR + permissions: + - execution_groups_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + put: + description: |- + Update an existing execution policy. + Returns the execution policy object when the request is successful. + operationId: UpdateExecutionPolicy + parameters: + - $ref: "#/components/parameters/ExecutionPolicyId" + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + action_pattern: + action_fqns: + - "com.datadoghq.script.*" + integration: INTEGRATION_SCRIPT + effect: allow + name: "Block prod restarts" + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6" + type: execution_policy + schema: + $ref: "#/components/schemas/ExecutionPolicyUpdateRequest" + description: The new execution policy. + required: true + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + action_pattern: + action_fqns: + - "com.datadoghq.script.*" + integration: INTEGRATION_SCRIPT + created_at: "2026-01-15T10:00:00.000Z" + created_by: "3fa85f64-5717-4562-b3fc-2c963f66afa6" + effect: allow + name: "Block prod restarts" + targets: [] + updated_at: "2026-01-15T10:00:00.000Z" + updated_by: "3fa85f64-5717-4562-b3fc-2c963f66afa6" + version: 2 + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6" + type: execution_policy + schema: + $ref: "#/components/schemas/ExecutionPolicyResponse" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Update an execution policy + tags: + - Execution Policy + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - execution_groups_write + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/agentless_scanning/accounts/aws: + get: + description: Fetches the scan options configured for AWS accounts. + operationId: ListAwsScanOptions + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + lambda: true + sensitive_data: false + vuln_containers_os: true + vuln_host_os: true + id: "123456789012" + type: aws_scan_options + schema: + $ref: "#/components/schemas/AwsScanOptionsListResponse" + description: OK + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - security_monitoring_findings_read + summary: List AWS scan options + tags: ["Agentless Scanning"] + post: + description: Activate Agentless scan options for an AWS account. + operationId: CreateAwsScanOptions + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + compliance_host: false + lambda: true + sensitive_data: false + vuln_containers_os: true + vuln_host_os: true + id: "123456789012" + type: aws_scan_options + schema: + $ref: "#/components/schemas/AwsScanOptionsCreateRequest" + description: The definition of the new scan options. + required: true + responses: + "201": + content: + "application/json": + examples: + default: + value: + data: + attributes: + lambda: true + sensitive_data: false + vuln_containers_os: true + vuln_host_os: true + id: "123456789012" + type: aws_scan_options + schema: + $ref: "#/components/schemas/AwsScanOptionsResponse" + description: Agentless scan options enabled successfully. + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "409": + $ref: "#/components/responses/ConflictResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - org_management + summary: Create AWS scan options + tags: ["Agentless Scanning"] + x-codegen-request-body-name: body + /api/v2/agentless_scanning/accounts/aws/{account_id}: + delete: + description: Delete Agentless scan options for an AWS account. + operationId: DeleteAwsScanOptions + parameters: + - $ref: "#/components/parameters/AwsAccountId" + responses: + "204": + description: No Content + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - org_management + summary: Delete AWS scan options + tags: ["Agentless Scanning"] + get: + description: Fetches the Agentless scan options for an activated account. + operationId: GetAwsScanOptions + parameters: + - $ref: "#/components/parameters/AwsAccountId" + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + lambda: true + sensitive_data: false + vuln_containers_os: true + vuln_host_os: true + id: "123456789012" + type: aws_scan_options + schema: + $ref: "#/components/schemas/AwsScanOptionsResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - security_monitoring_findings_read + summary: Get AWS scan options + tags: ["Agentless Scanning"] + patch: + description: Update the Agentless scan options for an activated account. + operationId: UpdateAwsScanOptions + parameters: + - $ref: "#/components/parameters/AwsAccountId" + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + compliance_host: false + lambda: true + sensitive_data: false + vuln_containers_os: true + vuln_host_os: true + id: "123456789012" + type: aws_scan_options + schema: + $ref: "#/components/schemas/AwsScanOptionsUpdateRequest" + description: New definition of the scan options. + required: true + responses: + "204": + description: No Content + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - org_management + summary: Update AWS scan options + tags: ["Agentless Scanning"] + x-codegen-request-body-name: body + /api/v2/agentless_scanning/accounts/azure: + get: + description: Fetches the scan options configured for Azure accounts. + operationId: ListAzureScanOptions + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + vuln_containers_os: true + vuln_host_os: true + id: 00000000-0000-0000-0000-000000000001 + type: azure_scan_options + schema: + $ref: "#/components/schemas/AzureScanOptionsArray" + description: OK + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - security_monitoring_findings_read + summary: List Azure scan options + tags: + - Agentless Scanning + post: + description: Activate Agentless scan options for an Azure subscription. + operationId: CreateAzureScanOptions + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + compliance_host: false + vuln_containers_os: true + vuln_host_os: true + id: 12345678-90ab-cdef-1234-567890abcdef + type: azure_scan_options + schema: + $ref: "#/components/schemas/AzureScanOptions" + required: true + responses: + "201": + content: + application/json: + examples: + default: + value: + data: + attributes: + vuln_containers_os: true + vuln_host_os: true + id: 00000000-0000-0000-0000-000000000001 + type: azure_scan_options + schema: + $ref: "#/components/schemas/AzureScanOptions" + description: Created + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - org_management + summary: Create Azure scan options + tags: + - Agentless Scanning + /api/v2/agentless_scanning/accounts/azure/{subscription_id}: + delete: + description: Delete Agentless scan options for an Azure subscription. + operationId: DeleteAzureScanOptions + parameters: + - description: The Azure subscription ID. + in: path + name: subscription_id + required: true + schema: + example: 12345678-90ab-cdef-1234-567890abcdef + type: string + responses: + "204": + description: No Content + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - org_management + summary: Delete Azure scan options + tags: + - Agentless Scanning + get: + description: Fetches the Agentless scan options for an activated subscription. + operationId: GetAzureScanOptions + parameters: + - description: The Azure subscription ID. + in: path + name: subscription_id + required: true + schema: + example: 12345678-90ab-cdef-1234-567890abcdef + type: string + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + vuln_containers_os: true + vuln_host_os: true + id: 00000000-0000-0000-0000-000000000001 + type: azure_scan_options + schema: + $ref: "#/components/schemas/AzureScanOptions" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - security_monitoring_findings_read + summary: Get Azure scan options + tags: ["Agentless Scanning"] + patch: + description: Update the Agentless scan options for an activated subscription. + operationId: UpdateAzureScanOptions + parameters: + - description: The Azure subscription ID. + in: path + name: subscription_id + required: true + schema: + example: 12345678-90ab-cdef-1234-567890abcdef type: string - - description: Sort order (true for descending, false for ascending). - in: query - name: sort_descending - required: false - schema: - default: true - type: boolean + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + vuln_containers_os: false + id: 12345678-90ab-cdef-1234-567890abcdef + type: azure_scan_options + schema: + $ref: "#/components/schemas/AzureScanOptionsInputUpdate" + required: true responses: "200": content: @@ -131586,110 +141030,74 @@ paths: value: data: attributes: - tracers: - - env: production - hostname: my-hostname - language: java - service: test-service - tracer_version: "1.32.0" - id: done - type: status - meta: - total_filtered_count: 1 + vuln_containers_os: false + vuln_host_os: true + id: 00000000-0000-0000-0000-000000000001 + type: azure_scan_options schema: - $ref: "#/components/schemas/FleetTracersResponse" + $ref: "#/components/schemas/AzureScanOptions" + description: OK + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - org_management + summary: Update Azure scan options + tags: + - Agentless Scanning + /api/v2/agentless_scanning/accounts/gcp: + get: + description: Fetches the scan options configured for all GCP projects. + operationId: ListGcpScanOptions + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + vuln_containers_os: true + vuln_host_os: true + id: abc-123 + type: gcp_scan_options + schema: + $ref: "#/components/schemas/GcpScanOptionsArray" description: OK - "400": - $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/ForbiddenResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] - summary: List tracers for a specific agent + - AuthZ: + - security_monitoring_findings_read + summary: List GCP scan options tags: - - Fleet Automation - "x-permission": - operator: AND - permissions: - - hosts_read - x-unstable: |- - This endpoint is in Preview and may introduce breaking changes. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/unstable/fleet/schedules: + - Agentless Scanning post: - description: |- - Create a new schedule for automated package upgrades. - - Schedules define when and how often to automatically deploy package upgrades to a fleet - of hosts. Each schedule includes: - - A filter query to select target hosts - - A recurrence rule defining maintenance windows - - A version strategy (e.g., always latest, or N versions behind latest) - - When the schedule triggers during a maintenance window, it automatically creates a - deployment that upgrades the Datadog Agent to the specified version on all matching hosts. - operationId: CreateFleetSchedule + description: Activate Agentless scan options for a GCP project. + operationId: CreateGcpScanOptions requestBody: content: application/json: examples: - conservative_staging: - summary: Conservative staging updates (N-1 version) - value: - data: - attributes: - name: "Staging Environment - Conservative Updates" - query: "env:staging" - rule: - days_of_week: ["Fri"] - maintenance_window_duration: 240 - start_maintenance_window: "22:00" - timezone: "UTC" - status: "active" - version_to_latest: 1 - type: schedule default: value: data: attributes: - name: Weekly Production Agent Updates - query: env:prod - rule: - days_of_week: - - Mon - - Wed - maintenance_window_duration: 180 - start_maintenance_window: 02:00 - timezone: America/New_York - status: active - version_to_latest: 0 - type: schedule - weekly_production_update: - summary: Weekly production agent updates - value: - data: - attributes: - name: "Weekly Production Agent Updates" - query: "env:prod" - rule: - days_of_week: ["Mon", "Wed"] - maintenance_window_duration: 180 - start_maintenance_window: "02:00" - timezone: "America/New_York" - status: "active" - version_to_latest: 0 - type: schedule + compliance_host: false + vuln_containers_os: true + vuln_host_os: true + id: company-project-id + type: gcp_scan_options schema: - $ref: "#/components/schemas/FleetScheduleCreateRequest" - description: Request payload containing the schedule details. + $ref: "#/components/schemas/GcpScanOptions" + description: The definition of the new scan options. required: true responses: "201": @@ -131700,74 +141108,49 @@ paths: value: data: attributes: - name: Weekly Production Agent Updates - query: env:prod - rule: - days_of_week: - - Mon - - Wed - maintenance_window_duration: 180 - start_maintenance_window: "02:00" - timezone: America/New_York - status: active - version_to_latest: 0 + vuln_containers_os: true + vuln_host_os: true id: abc-123 - type: schedule + type: gcp_scan_options schema: - $ref: "#/components/schemas/FleetScheduleResponse" - description: CREATED + $ref: "#/components/schemas/GcpScanOptions" + description: Agentless scan options enabled successfully. "400": $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/ForbiddenResponse" + $ref: "#/components/responses/NotAuthorizedResponse" + "409": + $ref: "#/components/responses/ConflictResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] - summary: Create a schedule + - AuthZ: + - org_management + summary: Create GCP scan options tags: - - Fleet Automation - "x-permission": - operator: AND - permissions: - - agent_upgrade_write - x-unstable: |- - This endpoint is in Preview and may introduce breaking changes. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/unstable/fleet/schedules/{id}: + - Agentless Scanning + x-codegen-request-body-name: body + /api/v2/agentless_scanning/accounts/gcp/{project_id}: delete: - description: |- - Delete a schedule permanently. - - When you delete a schedule: - - The schedule is permanently removed and will no longer create deployments - - Any deployments already created by this schedule are not affected - - This action cannot be undone - - If you want to temporarily stop a schedule from creating deployments, consider - updating its status to "inactive" instead of deleting it. - operationId: DeleteFleetSchedule + description: Delete Agentless scan options for a GCP project. + operationId: DeleteGcpScanOptions parameters: - - description: The unique identifier of the schedule to delete. - example: "abc-def-ghi-123" + - description: The GCP project ID. in: path - name: id + name: project_id required: true schema: + example: company-project-id type: string responses: "204": - description: Schedule successfully deleted. + description: No Content "400": $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/ForbiddenResponse" + $ref: "#/components/responses/NotAuthorizedResponse" "404": $ref: "#/components/responses/NotFoundResponse" "429": @@ -131775,77 +141158,79 @@ paths: security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] - summary: Delete a schedule + - AuthZ: + - org_management + summary: Delete GCP scan options tags: - - Fleet Automation - "x-permission": - operator: AND - permissions: - - agent_upgrade_write - x-unstable: |- - This endpoint is in Preview and may introduce breaking changes. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + - Agentless Scanning + get: + description: Fetches the Agentless scan options for an activated GCP project. + operationId: GetGcpScanOptions + parameters: + - description: The GCP project ID. + in: path + name: project_id + required: true + schema: + example: company-project-id + type: string + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + vuln_containers_os: true + vuln_host_os: true + id: abc-123 + type: gcp_scan_options + schema: + $ref: "#/components/schemas/GcpScanOptions" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - security_monitoring_findings_read + summary: Get GCP scan options + tags: + - Agentless Scanning patch: - description: |- - Partially update a schedule by providing only the fields you want to change. - - This endpoint allows you to modify specific attributes of a schedule without - affecting other fields. Common use cases include: - - Changing the schedule status between active and inactive - - Updating the maintenance window times - - Modifying the filter query to target different hosts - - Adjusting the version strategy - - Only include the fields you want to update in the request body. All fields - are optional in a PATCH request. - operationId: UpdateFleetSchedule + description: Update the Agentless scan options for an activated GCP project. + operationId: UpdateGcpScanOptions parameters: - - description: The unique identifier of the schedule to update. - example: "abc-def-ghi-123" + - description: The GCP project ID. in: path - name: id + name: project_id required: true schema: + example: company-project-id type: string requestBody: content: application/json: examples: - change_maintenance_window: - summary: Change maintenance window time - value: - data: - attributes: - rule: - days_of_week: ["Mon", "Wed", "Fri"] - maintenance_window_duration: 240 - start_maintenance_window: "03:00" - timezone: "America/New_York" - type: schedule default: value: data: attributes: - status: inactive - type: schedule - pause_schedule: - summary: Pause a schedule - value: - data: - attributes: - status: "inactive" - type: schedule - update_query: - summary: Update target hosts query - value: - data: - attributes: - query: "env:prod AND service:api" - type: schedule + vuln_containers_os: false + id: company-project-id + type: gcp_scan_options schema: - $ref: "#/components/schemas/FleetSchedulePatchRequest" - description: Request payload containing the fields to update. + $ref: "#/components/schemas/GcpScanOptionsInputUpdate" + description: New definition of the scan options. required: true responses: "200": @@ -131856,32 +141241,17 @@ paths: value: data: attributes: - created_at_unix: 1699999999 - created_by: test@example.com - name: Weekly Production Agent Updates - query: env:prod AND service:web - rule: - days_of_week: - - Mon - - Wed - maintenance_window_duration: 120 - start_maintenance_window: "02:00" - timezone: America/New_York - status: inactive - updated_at_unix: 1699999999 - updated_by: test@example.com - version_to_latest: 0 - id: abc-def-ghi-123 - type: schedule + vuln_containers_os: true + vuln_host_os: true + id: abc-123 + type: gcp_scan_options schema: - $ref: "#/components/schemas/FleetScheduleResponse" + $ref: "#/components/schemas/GcpScanOptions" description: OK "400": $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/ForbiddenResponse" + $ref: "#/components/responses/NotAuthorizedResponse" "404": $ref: "#/components/responses/NotFoundResponse" "429": @@ -131889,167 +141259,129 @@ paths: security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] - summary: Update a schedule + - AuthZ: + - org_management + summary: Update GCP scan options tags: - - Fleet Automation + - Agentless Scanning + x-codegen-request-body-name: body + /api/v2/agentless_scanning/ondemand/aws: + get: + description: Fetches the most recent 1000 AWS on demand tasks. + operationId: ListAwsOnDemandTasks + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + arn: "arn:aws:ec2:us-east-1:123456789012:instance/i-0eabb50529b67a1ba" + assigned_at: "2024-01-01T00:00:00+00:00" + created_at: "2024-01-01T00:00:00+00:00" + status: QUEUED + id: abc-123 + type: aws_resource + schema: + $ref: "#/components/schemas/AwsOnDemandListResponse" + description: OK + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - security_monitoring_findings_read + summary: List AWS on demand tasks + tags: ["Agentless Scanning"] "x-permission": - operator: AND + operator: OR permissions: - - agent_upgrade_write - x-unstable: |- - This endpoint is in Preview and may introduce breaking changes. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/unstable/fleet/schedules/{id}/trigger: + - security_monitoring_findings_read post: - description: |- - Manually trigger a schedule to immediately create and start a deployment. - - This endpoint allows you to manually initiate a deployment using the schedule's - configuration, without waiting for the next scheduled maintenance window. This is - useful for: - - Testing a schedule before it runs automatically - - Performing an emergency update outside the regular maintenance window - - Creating an ad-hoc deployment with the same settings as a schedule - - The deployment is created immediately with: - - The same filter query as the schedule - - The package version determined by the schedule's version strategy - - All matching hosts as targets - - The manually triggered deployment is independent of the schedule and does not - affect the schedule's normal recurrence pattern. - operationId: TriggerFleetSchedule - parameters: - - description: The unique identifier of the schedule to trigger. - example: "abc-def-ghi-123" - in: path - name: id - required: true - schema: - type: string + description: Trigger the scan of an AWS resource with a high priority. Agentless scanning must be activated for the AWS account containing the resource to scan. + operationId: CreateAwsOnDemandTask + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + arn: arn:aws:ec2:us-east-1:727000456123:instance/i-0eabb50529b67a1ba + type: aws_resource + schema: + $ref: "#/components/schemas/AwsOnDemandCreateRequest" + description: The definition of the on demand task. + required: true responses: "201": content: - application/json: + "application/json": examples: default: value: data: attributes: - filter_query: env:prod AND service:web - high_level_status: pending - packages: - - name: datadog-agent - version: 7.52.0 - total_hosts: 10 + arn: "arn:aws:ec2:us-east-1:123456789012:instance/i-0eabb50529b67a1ba" + created_at: "2024-01-01T00:00:00+00:00" + status: QUEUED id: abc-123 - type: deployment + type: aws_resource schema: - $ref: "#/components/schemas/FleetDeploymentResponse" - description: CREATED - Deployment successfully created and started. + $ref: "#/components/schemas/AwsOnDemandResponse" + description: AWS on demand task created successfully. "400": $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/ForbiddenResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] - summary: Trigger a schedule deployment - tags: - - Fleet Automation + - AuthZ: + - org_management + summary: Create AWS on demand task + tags: ["Agentless Scanning"] + x-codegen-request-body-name: body "x-permission": - operator: AND + operator: OR permissions: - - agent_upgrade_write - x-unstable: |- - This endpoint is in Preview and may introduce breaking changes. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/unstable/fleet/tracers: + - security_monitoring_findings_write + /api/v2/agentless_scanning/ondemand/aws/{task_id}: get: - description: |- - Retrieve a paginated list of all fleet tracers. - - This endpoint returns telemetry-derived service names from the SDK telemetry pipeline. - These names may differ from span-derived names in APM and are useful for querying - service library configurations. - Use the `page_number` and `page_size` query parameters to paginate through results. - operationId: ListFleetTracers + description: Fetch the data of a specific on demand task. + operationId: GetAwsOnDemandTask parameters: - - description: Page number for pagination (starts at 0). - in: query - name: page_number - required: false - schema: - default: 0 - format: int64 - minimum: 0 - type: integer - - description: Number of results per page (must be greater than 0 and less than or equal to 100). - in: query - name: page_size - required: false - schema: - default: 10 - format: int64 - maximum: 100 - minimum: 1 - type: integer - - description: Attribute to sort by. - in: query - name: sort_attribute - required: false - schema: - type: string - - description: Sort order (true for descending, false for ascending). - in: query - name: sort_descending - required: false - schema: - default: true - type: boolean - - description: Filter string for narrowing down tracer results. - example: "hostname:my-host OR env:prod" - in: query - name: filter - required: false - schema: - type: string + - $ref: "#/components/parameters/OnDemandTaskId" responses: "200": content: - application/json: + "application/json": examples: default: value: data: attributes: - tracers: - - env: production - hostname: my-hostname - language: java - service: test-service - tracer_version: "1.32.0" - id: done - type: status - meta: - total_filtered_count: 1 + arn: "arn:aws:ec2:us-east-1:123456789012:instance/i-0eabb50529b67a1ba" + assigned_at: "2024-01-01T00:00:00+00:00" + created_at: "2024-01-01T00:00:00+00:00" + status: ASSIGNED + id: abc-123 + type: aws_resource schema: - $ref: "#/components/schemas/FleetTracersResponse" - description: OK + $ref: "#/components/schemas/AwsOnDemandResponse" + description: OK. "400": $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/ForbiddenResponse" + $ref: "#/components/responses/NotAuthorizedResponse" "404": $ref: "#/components/responses/NotFoundResponse" "429": @@ -132057,21 +141389,36 @@ paths: security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] - summary: List all fleet tracers - tags: - - Fleet Automation + - AuthZ: + - security_monitoring_findings_read + summary: Get AWS on demand task + tags: ["Agentless Scanning"] "x-permission": - operator: AND + operator: OR permissions: - - hosts_read - x-unstable: |- - This endpoint is in Preview and may introduce breaking changes. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/unstable/llm-obs/config/evaluators/custom: + - security_monitoring_findings_read + /api/v2/annotation: get: - description: List all custom Agent Observability evaluator configurations for the organization. - operationId: ListLLMObsCustomEvalConfigs + description: Returns a flat list of annotations matching the given page, time window, and optional widget filter. + operationId: ListAnnotations + parameters: + - description: |- + ID of the page to list annotations for, prefixed with the page type and joined by a colon + (for example, `dashboard:abc-def-xyz` or `notebook:1234567890`). + example: "dashboard:abc-def-xyz" + in: query + name: page_id + required: true + schema: + type: string + - $ref: "#/components/parameters/AnnotationStartTimeQueryParameter" + - $ref: "#/components/parameters/AnnotationEndTimeQueryParameter" + - description: Optional widget ID to restrict results to annotations on a specific widget. + in: query + name: widget_id + required: false + schema: + type: string responses: "200": content: @@ -132081,37 +141428,28 @@ paths: value: data: - attributes: - category: "Custom" - created_at: "2024-01-15T10:30:00Z" - created_by: - email: "user@example.com" - eval_name: "my-custom-evaluator" - last_updated_by: - email: "user@example.com" - llm_judge_config: - inference_params: - max_tokens: 1024 - temperature: 0.7 - parsing_type: "structured_output" - llm_provider: - integration_provider: "openai" - model_name: "gpt-4o" - target: - application_name: "my-llm-app" - enabled: true - sampling_percentage: 50.0 - updated_at: "2024-01-15T10:30:00Z" - id: "my-custom-evaluator" - type: "evaluator_config" + author_id: "00000000-0000-0000-0000-000000000001" + color: blue + created_at: 1704067200000 + description: "Deployed v2.3.1 to production." + end_time: + modified_at: 1704067200000 + page_id: "dashboard:abc-def-xyz" + start_time: 1704067200000 + type: pointInTime + widget_ids: + - "1234567890" + id: "00000000-0000-0000-0000-000000000000" + type: annotation schema: - $ref: "#/components/schemas/LLMObsCustomEvalConfigListResponse" + $ref: "#/components/schemas/AnnotationsResponse" description: OK - "401": + "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Unauthorized + description: Bad Request "403": content: application/json: @@ -132120,66 +141458,114 @@ paths: description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" + "500": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Internal Server Error security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: [] - summary: List custom evaluator configurations + summary: List annotations tags: - - Agent Observability + - Annotations x-unstable: |- **Note**: This endpoint is in preview and is subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/unstable/llm-obs/config/evaluators/custom/{eval_name}: - delete: - description: Delete a custom Agent Observability evaluator configuration by its name. - operationId: DeleteLLMObsCustomEvalConfig - parameters: - - $ref: "#/components/parameters/LLMObsEvalNamePathParameter" + post: + description: |- + Creates a new annotation on a dashboard or notebook page. + Valid `color` values: `gray`, `blue`, `purple`, `green`, `yellow`, `red`. + Valid `type` values: `pointInTime` (marks a single moment) or `timeRegion` (spans a range and requires `end_time`). + operationId: CreateAnnotation + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + color: blue + description: "Deployed v2.3.1 to production." + page_id: "dashboard:abc-def-xyz" + start_time: 1704067200000 + type: pointInTime + widget_ids: + - "1234567890" + type: annotation + schema: + $ref: "#/components/schemas/AnnotationCreateRequest" + description: Annotation to create. + required: true responses: - "204": - description: No Content - "400": + "200": content: application/json: + examples: + default: + value: + data: + attributes: + author_id: "00000000-0000-0000-0000-000000000001" + color: blue + created_at: 1704067200000 + description: "Deployed v2.3.1 to production." + end_time: + modified_at: 1704067200000 + page_id: "dashboard:abc-def-xyz" + start_time: 1704067200000 + type: pointInTime + widget_ids: + - "1234567890" + id: "00000000-0000-0000-0000-000000000000" + type: annotation schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "401": + $ref: "#/components/schemas/AnnotationResponse" + description: OK + "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Unauthorized + description: Bad Request "403": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Forbidden - "404": + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + "500": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found - "429": - $ref: "#/components/responses/TooManyRequestsResponse" + description: Internal Server Error security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: [] - summary: Delete a custom evaluator configuration + summary: Create an annotation tags: - - Agent Observability + - Annotations x-unstable: |- **Note**: This endpoint is in preview and is subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/annotation/page/{page_id}: get: - description: Retrieve a custom Agent Observability evaluator configuration by its name. - operationId: GetLLMObsCustomEvalConfig + description: |- + Returns all annotations on a specific page for a given time window, grouped by widget. + Unlike `ListAnnotations`, this endpoint returns a single structured object with annotations + indexed by their ID and a widget-to-annotation mapping for easy UI rendering. + operationId: GetPageAnnotations parameters: - - $ref: "#/components/parameters/LLMObsEvalNamePathParameter" + - $ref: "#/components/parameters/AnnotationPageIDPathParameter" + - $ref: "#/components/parameters/AnnotationStartTimeQueryParameter" + - $ref: "#/components/parameters/AnnotationEndTimeQueryParameter" responses: "200": content: @@ -132189,30 +141575,29 @@ paths: value: data: attributes: - category: "Custom" - created_at: "2024-01-15T10:30:00Z" - created_by: - email: "user@example.com" - eval_name: "my-custom-evaluator" - last_updated_by: - email: "user@example.com" - llm_judge_config: - inference_params: - max_tokens: 1024 - temperature: 0.7 - parsing_type: "structured_output" - llm_provider: - integration_provider: "openai" - model_name: "gpt-4o" - target: - application_name: "my-llm-app" - enabled: true - sampling_percentage: 50.0 - updated_at: "2024-01-15T10:30:00Z" - id: "my-custom-evaluator" - type: "evaluator_config" + annotations: + "00000000-0000-0000-0000-000000000000": + author_id: "00000000-0000-0000-0000-000000000001" + color: blue + created_at: 1704067200000 + description: "Deployed v2.3.1 to production." + end_time: + id: "00000000-0000-0000-0000-000000000000" + modified_at: 1704067200000 + page_id: "dashboard:abc-def-xyz" + start_time: 1704067200000 + type: pointInTime + widget_ids: + - "1234567890" + global_annotations: + - "00000000-0000-0000-0000-000000000002" + widget_mapping: + "1234567890": + - "00000000-0000-0000-0000-000000000000" + id: "dashboard:abc-def-xyz" + type: page_annotations schema: - $ref: "#/components/schemas/LLMObsCustomEvalConfigResponse" + $ref: "#/components/schemas/PageAnnotationsResponse" description: OK "400": content: @@ -132220,41 +141605,79 @@ paths: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Bad Request - "401": + "403": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Unauthorized - "403": + description: Forbidden + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + "500": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "404": + description: Internal Server Error + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Get annotations for a page + tags: + - Annotations + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/annotation/{annotation_id}: + delete: + description: |- + Deletes an existing annotation by ID. + Returns `204 No Content` if the annotation does not exist (idempotent). + operationId: DeleteAnnotation + parameters: + - $ref: "#/components/parameters/AnnotationIDPathParameter" + responses: + "204": + description: No Content + "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" + "500": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Internal Server Error security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: [] - summary: Get a custom evaluator configuration + summary: Delete an annotation tags: - - Agent Observability + - Annotations x-unstable: |- **Note**: This endpoint is in preview and is subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). put: - description: Create or update a custom Agent Observability evaluator configuration by its name. - operationId: UpdateLLMObsCustomEvalConfig + description: |- + Updates an existing annotation. + Valid `color` values: `gray`, `blue`, `purple`, `green`, `yellow`, `red`. + Valid `type` values: `pointInTime` (marks a single moment) or `timeRegion` (spans a range and requires `end_time`). + operationId: UpdateAnnotation parameters: - - $ref: "#/components/parameters/LLMObsEvalNamePathParameter" + - $ref: "#/components/parameters/AnnotationIDPathParameter" requestBody: content: application/json: @@ -132263,77 +141686,49 @@ paths: value: data: attributes: - llm_judge_config: - inference_params: - max_tokens: 1024 - temperature: 0.7 - parsing_type: "structured_output" - llm_provider: - integration_provider: "openai" - model_name: "gpt-4o" - target: - application_name: "my-llm-app" - enabled: true - sampling_percentage: 50.0 - id: "my-custom-evaluator" - type: "evaluator_config" - full: - summary: Full example with prompt template, output schema, and assessment criteria - value: - data: - attributes: - category: "Custom" - eval_name: "my-custom-evaluator" - llm_judge_config: - assessment_criteria: - pass_when: false - inference_params: - frequency_penalty: 0 - max_tokens: 4096 - presence_penalty: 0 - temperature: 1 - top_p: 1 - output_schema: - name: "boolean_eval" - strict: true - parsing_type: "structured_output" - prompt_template: - - content: "You are a judge LLM." - role: "system" - - content: "{{span_output}}" - role: "user" - llm_provider: - integration_account_id: "your-account-uuid" - integration_provider: "openai" - model_name: "gpt-4o" - target: - application_name: "my-llm-app" - enabled: true - eval_scope: "span" - filter: "@meta.span.kind:llm" - root_spans_only: false - sampling_percentage: 100 - id: "my-custom-evaluator" - type: "evaluator_config" + color: green + description: "Deployed v2.3.1 to production (updated)." + page_id: "dashboard:abc-def-xyz" + start_time: 1704067200000 + type: pointInTime + widget_ids: + - "1234567890" + type: annotation schema: - $ref: "#/components/schemas/LLMObsCustomEvalConfigUpdateRequest" - description: Custom evaluator configuration payload. + $ref: "#/components/schemas/AnnotationUpdateRequest" + description: Updated annotation payload. required: true responses: "200": - description: OK - "400": content: application/json: + examples: + default: + value: + data: + attributes: + author_id: "00000000-0000-0000-0000-000000000001" + color: green + created_at: 1704067200000 + description: "Deployed v2.3.1 to production (updated)." + end_time: + modified_at: 1704070800000 + page_id: "dashboard:abc-def-xyz" + start_time: 1704067200000 + type: pointInTime + widget_ids: + - "1234567890" + id: "00000000-0000-0000-0000-000000000000" + type: annotation schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "401": + $ref: "#/components/schemas/AnnotationResponse" + description: OK + "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Unauthorized + description: Bad Request "403": content: application/json: @@ -132346,28 +141741,101 @@ paths: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Not Found - "422": + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + "500": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Unprocessable Entity - "429": - $ref: "#/components/responses/TooManyRequestsResponse" + description: Internal Server Error security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: [] - summary: Create or update a custom evaluator configuration + summary: Update an annotation tags: - - Agent Observability + - Annotations x-unstable: |- **Note**: This endpoint is in preview and is subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/actions-datastores: + /api/v2/anonymize_users: + put: + description: |- + Anonymize a list of users, removing their personal data. This operation is irreversible. + Requires the `user_access_manage` permission. + operationId: AnonymizeUsers + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + user_ids: + - "00000000-0000-0000-0000-000000000000" + type: anonymize_users_request + schema: + $ref: "#/components/schemas/AnonymizeUsersRequest" + required: true + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + id: abc-123 + type: anonymize_users_response + schema: + $ref: "#/components/schemas/AnonymizeUsersResponse" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Authentication error + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - user_access_manage + summary: Anonymize users + tags: + - Users + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - user_access_manage + x-unstable: "**Note**: This endpoint is in Preview and may be subject to changes." + /api/v2/api_keys: get: - description: Lists all datastores for the organization. - operationId: ListDatastores + description: List all API keys available for your account. + operationId: ListAPIKeys + parameters: + - $ref: "#/components/parameters/PageSize" + - $ref: "#/components/parameters/PageNumber" + - $ref: "#/components/parameters/APIKeysSortParameter" + - $ref: "#/components/parameters/APIKeyFilterParameter" + - $ref: "#/components/parameters/APIKeyFilterCreatedAtStartParameter" + - $ref: "#/components/parameters/APIKeyFilterCreatedAtEndParameter" + - $ref: "#/components/parameters/APIKeyFilterModifiedAtStartParameter" + - $ref: "#/components/parameters/APIKeyFilterModifiedAtEndParameter" + - $ref: "#/components/parameters/APIKeyIncludeParameter" + - $ref: "#/components/parameters/APIKeyReadConfigReadEnabledParameter" + - $ref: "#/components/parameters/APIKeyCategoryParameter" responses: "200": content: @@ -132378,29 +141846,38 @@ paths: data: - attributes: created_at: "2024-01-01T00:00:00+00:00" - description: A sample datastore + last4: abcd modified_at: "2024-01-01T00:00:00+00:00" - name: Example Datastore - org_id: 123 - primary_column_name: id - primary_key_generation_strategy: none + name: API Key for submitting metrics id: 00000000-0000-0000-0000-000000000001 - type: datastores + type: api_keys schema: - $ref: "#/components/schemas/DatastoreArray" + $ref: "#/components/schemas/APIKeysResponse" description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: List datastores + summary: Get all API keys tags: - - Actions Datastores - x-permission: + - Key Management + "x-permission": operator: OR permissions: - - apps_datastore_read + - api_keys_read post: - description: Creates a new datastore. - operationId: CreateDatastore + description: Create an API key. + operationId: CreateAPIKey requestBody: content: application/json: @@ -132409,81 +141886,87 @@ paths: value: data: attributes: - name: datastore-name - org_access: contributor - primary_column_name: primaryKey - primary_key_generation_strategy: none - type: datastores + name: API Key for submitting metrics + type: api_keys schema: - $ref: "#/components/schemas/CreateAppsDatastoreRequest" + $ref: "#/components/schemas/APIKeyCreateRequest" required: true responses: - "200": + "201": content: application/json: examples: default: value: data: + attributes: + created_at: "2024-01-01T00:00:00+00:00" + last4: abcd + modified_at: "2024-01-01T00:00:00+00:00" + name: API Key for submitting metrics id: 00000000-0000-0000-0000-000000000002 - type: datastores + type: api_keys schema: - $ref: "#/components/schemas/CreateAppsDatastoreResponse" - description: OK + $ref: "#/components/schemas/APIKeyResponse" + description: Created "400": content: application/json: schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" + $ref: "#/components/schemas/APIErrorResponse" description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Create datastore + summary: Create an API key tags: - - Actions Datastores - x-permission: + - Key Management + x-codegen-request-body-name: body + "x-permission": operator: OR permissions: - - apps_datastore_manage - /api/v2/actions-datastores/{datastore_id}: + - api_keys_write + /api/v2/api_keys/{api_key_id}: delete: - description: Deletes a datastore by its unique identifier. - operationId: DeleteDatastore + description: Delete an API key. + operationId: DeleteAPIKey parameters: - - description: The unique identifier of the datastore to retrieve. - in: path - name: datastore_id - required: true - schema: - type: string + - $ref: "#/components/parameters/APIKeyId" responses: - "200": - description: OK - "400": + "204": + description: No Content + "403": content: application/json: schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Delete datastore + summary: Delete an API key tags: - - Actions Datastores - x-permission: + - Key Management + "x-permission": operator: OR permissions: - - apps_datastore_manage + - api_keys_delete get: - description: Retrieves a specific datastore by its ID. - operationId: GetDatastore + description: Get an API key. + operationId: GetAPIKey parameters: - - description: The unique identifier of the datastore to retrieve. - in: path - name: datastore_id - required: true - schema: - type: string + - $ref: "#/components/parameters/APIKeyId" + - $ref: "#/components/parameters/APIKeyIncludeParameter" responses: "200": content: @@ -132494,48 +141977,40 @@ paths: data: attributes: created_at: "2024-01-01T00:00:00+00:00" - description: A sample datastore + last4: abcd modified_at: "2024-01-01T00:00:00+00:00" - name: Example Datastore - org_id: 123 - primary_column_name: id - primary_key_generation_strategy: none + name: API Key for submitting metrics id: 00000000-0000-0000-0000-000000000003 - type: datastores + type: api_keys schema: - $ref: "#/components/schemas/Datastore" + $ref: "#/components/schemas/APIKeyResponse" description: OK - "400": + "403": content: application/json: schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden "404": content: application/json: schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" + $ref: "#/components/schemas/APIErrorResponse" description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get datastore + summary: Get API key tags: - - Actions Datastores - x-permission: + - Key Management + "x-permission": operator: OR permissions: - - apps_datastore_read + - api_keys_read patch: - description: Updates an existing datastore's attributes. - operationId: UpdateDatastore + description: Update an API key. + operationId: UpdateAPIKey parameters: - - description: The unique identifier of the datastore to retrieve. - in: path - name: datastore_id - required: true - schema: - type: string + - $ref: "#/components/parameters/APIKeyId" requestBody: content: application/json: @@ -132543,9 +142018,12 @@ paths: default: value: data: - type: datastores + attributes: + name: API Key for submitting metrics + id: 00112233-4455-6677-8899-aabbccddeeff + type: api_keys schema: - $ref: "#/components/schemas/UpdateAppsDatastoreRequest" + $ref: "#/components/schemas/APIKeyUpdateRequest" required: true responses: "200": @@ -132557,63 +142035,73 @@ paths: data: attributes: created_at: "2024-01-01T00:00:00+00:00" - description: An updated datastore + last4: abcd modified_at: "2024-01-01T00:00:00+00:00" - name: Updated Datastore - org_id: 123 - primary_column_name: id - primary_key_generation_strategy: none + name: API Key for submitting metrics id: 00000000-0000-0000-0000-000000000004 - type: datastores + type: api_keys schema: - $ref: "#/components/schemas/Datastore" + $ref: "#/components/schemas/APIKeyResponse" description: OK "400": content: application/json: schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" + $ref: "#/components/schemas/APIErrorResponse" description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden "404": content: application/json: schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" + $ref: "#/components/schemas/APIErrorResponse" description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Update datastore + summary: Edit an API key tags: - - Actions Datastores - x-permission: + - Key Management + x-codegen-request-body-name: body + "x-permission": operator: OR permissions: - - apps_datastore_manage - /api/v2/actions-datastores/{datastore_id}/items: - delete: - description: Deletes an item from a datastore by its key. - operationId: DeleteDatastoreItem + - api_keys_write + /api/v2/apicatalog/api: + get: + deprecated: true + description: List APIs and their IDs. + operationId: ListAPIs parameters: - - description: The unique identifier of the datastore to retrieve. - in: path - name: datastore_id - required: true + - description: Filter APIs by name + in: query + name: query + required: false schema: + example: "payments" type: string - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - id: a7656bcc-51d4-4884-adf7-4d0d9a3e0633 - item_key: primaryKey - type: items - schema: - $ref: "#/components/schemas/DeleteAppsDatastoreItemRequest" - required: true + - description: Number of items per page. + in: query + name: page[limit] + required: false + schema: + default: 20 + format: int64 + minimum: 1 + type: integer + - description: Offset for pagination. + in: query + name: page[offset] + required: false + schema: + default: 0 + format: int64 + minimum: 0 + type: integer responses: "200": content: @@ -132622,141 +142110,170 @@ paths: default: value: data: - id: 00000000-0000-0000-0000-000000000007 - type: items + - attributes: + name: Payments API + id: abc-123 + meta: + pagination: + limit: 20 + offset: 0 + total_count: 1 schema: - $ref: "#/components/schemas/DeleteAppsDatastoreItemResponse" + $ref: "#/components/schemas/ListAPIsResponse" description: OK "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + description: Bad request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - apm_api_catalog_read + summary: List APIs + tags: ["API Management"] + "x-permission": + operator: OR + permissions: + - apm_api_catalog_read + x-unstable: |- + **Note**: This endpoint is deprecated. + /api/v2/apicatalog/api/{id}: + delete: + deprecated: true + description: Delete a specific API by ID. + operationId: DeleteOpenAPI + parameters: + - description: ID of the API to delete + in: path + name: id + required: true + schema: + $ref: "#/components/schemas/ApiID" + responses: + "204": + description: API deleted successfully + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "404": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + description: API not found error "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Delete datastore item - tags: - - Actions Datastores - x-permission: + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - apm_api_catalog_write + summary: Delete an API + tags: ["API Management"] + "x-permission": operator: OR permissions: - - apps_datastore_write + - apm_api_catalog_write + x-unstable: |- + **Note**: This endpoint is deprecated. + /api/v2/apicatalog/api/{id}/openapi: get: - description: >- - Lists items from a datastore. You can filter the results by specifying either an item key or a filter query parameter, but not both at the same time. Supports server-side pagination for large datasets. - operationId: ListDatastoreItems + deprecated: true + description: Retrieve information about a specific API in [OpenAPI](https://spec.openapis.org/oas/latest.html) format file. + operationId: GetOpenAPI parameters: - - description: The unique identifier of the datastore to retrieve. + - description: ID of the API to retrieve in: path - name: datastore_id + name: id required: true schema: - type: string - - description: Optional query filter to search items using the [logs search syntax](https://docs.datadoghq.com/logs/explorer/search_syntax/). - in: query - name: filter - schema: - type: string - - description: Optional primary key value to retrieve a specific item. Cannot be used together with the filter parameter. - in: query - name: item_key - schema: - maxLength: 256 - type: string - - description: Optional field to limit the number of items to return per page for pagination. Up to 100 items can be returned per page. - in: query - name: "page[limit]" - schema: - format: int64 - maximum: 100 - minimum: 1 - type: integer - - description: Optional field to offset the number of items to skip from the beginning of the result set for pagination. - in: query - name: "page[offset]" - schema: - format: int64 - type: integer - - description: Optional field to sort results by. Prefix with '-' for descending order (e.g., '-created_at'). - in: query - name: sort - schema: - type: string + $ref: "#/components/schemas/ApiID" responses: "200": content: - application/json: + multipart/form-data: examples: default: - value: - data: - - attributes: - created_at: "2024-01-01T00:00:00+00:00" - modified_at: "2024-01-01T00:00:00+00:00" - org_id: 123 - primary_column_name: id - store_id: 00000000-0000-0000-0000-000000000006 - value: - key: example-value - id: 00000000-0000-0000-0000-000000000005 - type: items + value: openapi-spec.yaml schema: - $ref: "#/components/schemas/ItemApiPayloadArray" + format: binary + type: string description: OK "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + description: Bad request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "404": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + description: API not found error "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: List datastore items - tags: - - Actions Datastores - x-permission: + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - apm_api_catalog_read + summary: Get an API + tags: ["API Management"] + "x-permission": operator: OR permissions: - - apps_datastore_read - patch: - description: Partially updates an item in a datastore by its key. - operationId: UpdateDatastoreItem + - apm_api_catalog_read + x-unstable: |- + **Note**: This endpoint is deprecated. + put: + deprecated: true + description: |- + Update information about a specific API. The given content will replace all API content of the given ID. + The ID is returned by the create API, or can be found in the URL in the API catalog UI. + operationId: UpdateOpenAPI parameters: - - description: The unique identifier of the datastore to retrieve. + - description: ID of the API to modify in: path - name: datastore_id + name: id required: true schema: - type: string + $ref: "#/components/schemas/ApiID" requestBody: content: - application/json: + multipart/form-data: examples: default: value: - data: - attributes: - item_changes: - ops_set: - count: 42 - status: active - item_key: my-item-key - type: items + openapi_spec_file: openapi-spec.yaml schema: - $ref: "#/components/schemas/UpdateAppsDatastoreItemRequest" + $ref: "#/components/schemas/OpenAPIFile" required: true responses: "200": @@ -132767,114 +142284,147 @@ paths: value: data: attributes: - created_at: "2024-01-01T00:00:00+00:00" - modified_at: "2024-01-01T00:00:00+00:00" - org_id: 123 - primary_column_name: id - store_id: 00000000-0000-0000-0000-000000000009 - value: - count: 42 - status: active - id: 00000000-0000-0000-0000-000000000008 - type: items + failed_endpoints: [] + id: abc-123 schema: - $ref: "#/components/schemas/ItemApiPayload" - description: OK + $ref: "#/components/schemas/UpdateOpenAPIResponse" + description: API updated successfully "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + description: Bad request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "404": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + description: API not found error "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Update datastore item - tags: - - Actions Datastores - x-permission: + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - apm_api_catalog_write + summary: Update an API + tags: ["API Management"] + "x-permission": operator: OR permissions: - - apps_datastore_write - /api/v2/actions-datastores/{datastore_id}/items/bulk: - delete: - description: >- - Deletes multiple items from a datastore by their keys in a single operation. - operationId: BulkDeleteDatastoreItems - parameters: - - description: The ID of the datastore. - in: path - name: datastore_id - required: true - schema: - type: string + - apm_api_catalog_write + x-unstable: |- + **Note**: This endpoint is deprecated. + /api/v2/apicatalog/openapi: + post: + deprecated: true + description: |- + Create a new API from the [OpenAPI](https://spec.openapis.org/oas/latest.html) specification given. + See the [API Catalog documentation](https://docs.datadoghq.com/api_catalog/add_metadata/) for additional + information about the possible metadata. + It returns the created API ID. + operationId: CreateOpenAPI requestBody: content: - application/json: + multipart/form-data: examples: default: value: - data: - type: items + openapi_spec_file: openapi-spec.yaml schema: - $ref: "#/components/schemas/BulkDeleteAppsDatastoreItemsRequest" + $ref: "#/components/schemas/OpenAPIFile" required: true responses: - "200": + "201": content: application/json: examples: default: value: data: - - id: 00000000-0000-0000-0000-000000000010 - type: items + attributes: + failed_endpoints: [] + id: abc-123 schema: - $ref: "#/components/schemas/DeleteAppsDatastoreItemResponseArray" - description: OK + $ref: "#/components/schemas/CreateOpenAPIResponse" + description: API created successfully "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "404": + description: Bad request + "403": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" - "500": + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - apm_api_catalog_write + summary: Create a new API + tags: ["API Management"] + "x-permission": + operator: OR + permissions: + - apm_api_catalog_write + x-unstable: |- + **Note**: This endpoint is deprecated. + /api/v2/apm/config/metrics: + get: + description: Get the list of configured span-based metrics with their definitions. + operationId: ListSpansMetrics + responses: + "200": content: application/json: + examples: + default: + value: + data: + - attributes: + compute: + aggregation_type: distribution + include_percentiles: false + path: "@duration" + filter: + query: "@http.status_code:200 service:my-service" + group_by: + - path: resource_name + tag_name: resource_name + id: my.metric + type: spans_metrics schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Internal Server Error - summary: Bulk delete datastore items + $ref: "#/components/schemas/SpansMetricsResponse" + description: OK + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Get all span-based metrics tags: - - Actions Datastores - x-permission: + - Spans Metrics + "x-permission": operator: OR permissions: - - apps_datastore_write + - apm_read post: - description: >- - Creates or replaces multiple items in a datastore by their keys in a single operation. - operationId: BulkWriteDatastoreItems - parameters: - - description: The unique identifier of the datastore to retrieve. - in: path - name: datastore_id - required: true - schema: - type: string + description: |- + Create a metric based on your ingested spans in your organization. + Returns the span-based metric object from the request body when the request is successful. + operationId: CreateSpansMetric requestBody: content: application/json: @@ -132883,15 +142433,20 @@ paths: value: data: attributes: - conflict_mode: overwrite_on_conflict - values: - - data: example data - key: value - - data: example data2 - key: value2 - type: items + compute: + aggregation_type: distribution + include_percentiles: false + path: "@duration" + filter: + query: "@http.status_code:200 service:my-service" + group_by: + - path: resource_name + tag_name: resource_name + id: my.metric + type: spans_metrics schema: - $ref: "#/components/schemas/BulkPutAppsDatastoreItemsRequest" + $ref: "#/components/schemas/SpansMetricCreateRequest" + description: The definition of the new span-based metric. required: true responses: "200": @@ -132901,51 +142456,64 @@ paths: default: value: data: - - id: 00000000-0000-0000-0000-000000000011 - type: items + attributes: + compute: + aggregation_type: distribution + include_percentiles: false + path: "@duration" + filter: + query: "@http.status_code:200 service:my-service" + group_by: + - path: resource_name + tag_name: resource_name + id: my.metric + type: spans_metrics schema: - $ref: "#/components/schemas/PutAppsDatastoreItemResponseArray" + $ref: "#/components/schemas/SpansMetricResponse" description: OK "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "409": + $ref: "#/components/responses/ConflictResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Create a span-based metric + tags: + - Spans Metrics + x-codegen-request-body-name: body + "x-permission": + operator: OR + permissions: + - apm_generate_metrics + /api/v2/apm/config/metrics/{metric_id}: + delete: + description: Delete a specific span-based metric from your organization. + operationId: DeleteSpansMetric + parameters: + - $ref: "#/components/parameters/SpansMetricIDParameter" + responses: + "204": + description: OK + "403": + $ref: "#/components/responses/NotAuthorizedResponse" "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Bulk write datastore items + summary: Delete a span-based metric tags: - - Actions Datastores - x-permission: + - Spans Metrics + "x-permission": operator: OR permissions: - - apps_datastore_write - /api/v2/actions/app_key_registrations: + - apm_generate_metrics get: - description: List App Key Registrations - operationId: ListAppKeyRegistrations + description: Get a specific span-based metric from your organization. + operationId: GetSpansMetric parameters: - - description: The number of App Key Registrations to return per page. - in: query - name: page[size] - required: false - schema: - format: int64 - type: integer - - description: The page number to return. - in: query - name: page[number] - required: false - schema: - format: int64 - type: integer + - $ref: "#/components/parameters/SpansMetricIDParameter" responses: "200": content: @@ -132954,86 +142522,104 @@ paths: default: value: data: - - id: 00000000-0000-0000-0000-000000000001 - type: app_key_registration - meta: - total: 1 - total_filtered: 1 + attributes: + compute: + aggregation_type: distribution + include_percentiles: false + path: "@duration" + filter: + query: "@http.status_code:200 service:my-service" + group_by: + - path: resource_name + tag_name: resource_name + id: my.metric + type: spans_metrics schema: - $ref: "#/components/schemas/ListAppKeyRegistrationsResponse" + $ref: "#/components/schemas/SpansMetricResponse" description: OK - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad request "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/NotAuthorizedResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" "429": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Too many requests - summary: List App Key Registrations + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Get a span-based metric tags: - - Action Connection - x-permission: + - Spans Metrics + "x-permission": operator: OR permissions: - - org_app_keys_read - /api/v2/actions/app_key_registrations/{app_key_id}: - delete: - description: Unregister an App Key - operationId: UnregisterAppKey + - apm_read + patch: + description: |- + Update a specific span-based metric from your organization. + Returns the span-based metric object from the request body when the request is successful. + operationId: UpdateSpansMetric parameters: - - $ref: "#/components/parameters/ApplicationKeyId" + - $ref: "#/components/parameters/SpansMetricIDParameter" + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + compute: + include_percentiles: false + filter: + query: "@http.status_code:200 service:my-service" + group_by: + - path: resource_name + tag_name: resource_name + type: spans_metrics + schema: + $ref: "#/components/schemas/SpansMetricUpdateRequest" + description: New definition of the span-based metric. + required: true responses: - "204": - description: No Content - "400": + "200": content: application/json: + examples: + default: + value: + data: + attributes: + compute: + aggregation_type: distribution + include_percentiles: false + path: "@duration" + filter: + query: "@http.status_code:200 service:my-service" + group_by: + - path: resource_name + tag_name: resource_name + id: my.metric + type: spans_metrics schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad request + $ref: "#/components/schemas/SpansMetricResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/NotAuthorizedResponse" "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not found + $ref: "#/components/responses/NotFoundResponse" "429": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Too many requests - summary: Unregister an App Key + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Update a span-based metric tags: - - Action Connection - x-permission: + - Spans Metrics + x-codegen-request-body-name: body + "x-permission": operator: OR permissions: - - user_access_manage - - user_app_keys - - service_account_write + - apm_generate_metrics + /api/v2/apm/config/retention-filters: get: - description: Get an existing App Key Registration - operationId: GetAppKeyRegistration - parameters: - - $ref: "#/components/parameters/ApplicationKeyId" + description: Get the list of APM retention filters. + operationId: ListApmRetentionFilters responses: "200": content: @@ -133042,91 +142628,197 @@ paths: default: value: data: - id: 00000000-0000-0000-0000-000000000001 - type: app_key_registration + - attributes: + enabled: true + filter: + query: "@http.status_code:200 service:my-service" + filter_type: spans-sampling-processor + name: my retention filter + rate: 1.0 + id: abc-123 + type: apm_retention_filter schema: - $ref: "#/components/schemas/GetAppKeyRegistrationResponse" + $ref: "#/components/schemas/RetentionFiltersResponse" description: OK - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad request "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not found + $ref: "#/components/responses/NotAuthorizedResponse" "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: List all APM retention filters + tags: + - APM Retention Filters + "x-permission": + operator: OR + permissions: + - apm_retention_filter_read + post: + description: |- + Create a retention filter to index spans in your organization. + Returns the retention filter definition when the request is successful. + + Default filters with types spans-errors-sampling-processor and spans-appsec-sampling-processor cannot be created. + operationId: CreateApmRetentionFilter + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + enabled: true + filter: + query: "@http.status_code:200 service:my-service" + filter_type: spans-sampling-processor + name: my retention filter + rate: 1.0 + trace_rate: 1.0 + type: apm_retention_filter + schema: + $ref: "#/components/schemas/RetentionFilterCreateRequest" + description: The definition of the new retention filter. + required: true + responses: + "200": content: application/json: + examples: + default: + value: + data: + attributes: + enabled: true + filter: + query: "@http.status_code:200 service:my-service" + filter_type: spans-sampling-processor + name: my retention filter + rate: 1.0 + id: abc-123 + type: apm_retention_filter schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Too many requests - summary: Get an existing App Key Registration + $ref: "#/components/schemas/RetentionFilterCreateResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "409": + $ref: "#/components/responses/ConflictResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Create a retention filter tags: - - Action Connection - x-permission: + - APM Retention Filters + x-codegen-request-body-name: body + "x-permission": operator: OR permissions: - - org_app_keys_read + - apm_retention_filter_write + /api/v2/apm/config/retention-filters-execution-order: put: - description: Register a new App Key - operationId: RegisterAppKey + description: Re-order the execution order of retention filters. + operationId: ReorderApmRetentionFilters + requestBody: + content: + application/json: + examples: + default: + value: + data: + - id: 7RBOb7dLSYWI01yc3pIH8w + type: apm_retention_filter + schema: + $ref: "#/components/schemas/ReorderRetentionFiltersRequest" + description: The list of retention filters in the new order. + required: true + responses: + "200": + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Re-order retention filters + tags: + - APM Retention Filters + x-codegen-request-body-name: body + "x-permission": + operator: OR + permissions: + - apm_retention_filter_write + /api/v2/apm/config/retention-filters/{filter_id}: + delete: + description: |- + Delete a specific retention filter from your organization. + + Default filters with types spans-errors-sampling-processor and spans-appsec-sampling-processor cannot be deleted. + operationId: DeleteApmRetentionFilter + parameters: + - $ref: "#/components/parameters/RetentionFilterIdParam" + responses: + "200": + description: OK + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Delete a retention filter + tags: + - APM Retention Filters + "x-permission": + operator: OR + permissions: + - apm_retention_filter_write + get: + description: Get an APM retention filter. + operationId: GetApmRetentionFilter parameters: - - $ref: "#/components/parameters/ApplicationKeyId" + - $ref: "#/components/parameters/RetentionFilterIdParam" responses: - "201": + "200": content: application/json: examples: default: value: data: - id: 00000000-0000-0000-0000-000000000001 - type: app_key_registration - schema: - $ref: "#/components/schemas/RegisterAppKeyResponse" - description: Created - "400": - content: - application/json: + attributes: + enabled: true + filter: + query: "@http.status_code:200 service:my-service" + filter_type: spans-sampling-processor + name: my retention filter + rate: 1.0 + id: abc-123 + type: apm_retention_filter schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad request + $ref: "#/components/schemas/RetentionFilterResponse" + description: OK "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/NotAuthorizedResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" "429": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Too many requests - summary: Register a new App Key + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Get a given APM retention filter tags: - - Action Connection - x-permission: + - APM Retention Filters + "x-permission": operator: OR permissions: - - user_access_manage - - user_app_keys - - service_account_write - /api/v2/actions/connections: - post: - description: Create a new Action Connection. This API requires a [registered application key](https://docs.datadoghq.com/api/latest/action-connection/#register-a-new-app-key). - operationId: CreateActionConnection + - apm_retention_filter_read + put: + description: |- + Update a retention filter from your organization. + + Default filters (filters with types spans-errors-sampling-processor and spans-appsec-sampling-processor) cannot be renamed or removed. + operationId: UpdateApmRetentionFilter + parameters: + - $ref: "#/components/parameters/RetentionFilterIdParam" requestBody: content: application/json: @@ -133135,22 +142827,21 @@ paths: value: data: attributes: - integration: - credentials: - account_id: "123456789123" - role: MyRoleUpdated - type: AWSAssumeRole - type: AWS - name: My AWS Connection - tags: - - env:prod - - team:action-platform - type: action_connection + enabled: true + filter: + query: "@http.status_code:200 service:my-service" + filter_type: spans-sampling-processor + name: my retention filter + rate: 1.0 + trace_rate: 1.0 + id: retention-filter-id + type: apm_retention_filter schema: - $ref: "#/components/schemas/CreateActionConnectionRequest" + $ref: "#/components/schemas/RetentionFilterUpdateRequest" + description: The updated definition of the retention filter. required: true responses: - "201": + "200": content: application/json: examples: @@ -133158,77 +142849,43 @@ paths: value: data: attributes: - integration: - type: AWS - name: My AWS Connection - tags: - - env:prod - - team:action-platform - id: 00000000-0000-0000-0000-000000000001 - type: action_connection + enabled: true + filter: + query: "@http.status_code:200 service:my-service" + filter_type: spans-sampling-processor + name: my retention filter + rate: 1.0 + id: abc-123 + type: apm_retention_filter schema: - $ref: "#/components/schemas/CreateActionConnectionResponse" - description: Successfully created Action Connection + $ref: "#/components/schemas/RetentionFilterResponse" + description: OK "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "429": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Too Many Request - summary: Create a new Action Connection - tags: - - Action Connection - /api/v2/actions/connections/{connection_id}: - delete: - description: Delete an existing Action Connection. This API requires a [registered application key](https://docs.datadoghq.com/api/latest/action-connection/#register-a-new-app-key). Alternatively, you can configure these permissions [in the UI](https://docs.datadoghq.com/account_management/api-app-keys/#actions-api-access). - operationId: DeleteActionConnection - parameters: - - $ref: "#/components/parameters/ConnectionId" - responses: - "204": - description: The resource was deleted successfully. + $ref: "#/components/responses/BadRequestResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/NotAuthorizedResponse" "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + $ref: "#/components/responses/NotFoundResponse" "429": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Too Many Request - summary: Delete an existing Action Connection + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Update a retention filter tags: - - Action Connection - x-permission: + - APM Retention Filters + x-codegen-request-body-name: body + "x-permission": operator: OR permissions: - - connection_write + - apm_retention_filter_write + /api/v2/apm/services: get: - description: Get an existing Action Connection. This API requires a [registered application key](https://docs.datadoghq.com/api/latest/action-connection/#register-a-new-app-key). - operationId: GetActionConnection + operationId: GetServiceList parameters: - - $ref: "#/components/parameters/ConnectionId" + - description: Filter services by environment. Can be set to `*` to return all services across all environments. + in: query + name: filter[env] + required: true + schema: + type: string responses: "200": content: @@ -133238,49 +142895,30 @@ paths: value: data: attributes: - integration: - type: AWS - name: My AWS Connection - tags: - - env:prod - - team:action-platform - id: 00000000-0000-0000-0000-000000000002 - type: action_connection - schema: - $ref: "#/components/schemas/GetActionConnectionResponse" - description: Successfully get Action Connection - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "404": - content: - application/json: + metadata: + - isTraced: true + isUsm: false + services: + - test-service + id: abc-123 + type: services_list schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + $ref: "#/components/schemas/ServiceList" + description: OK "429": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Too Many Request - summary: Get an existing Action Connection + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - apm_read + summary: Get service list tags: - - Action Connection - patch: - description: Update an existing Action Connection. This API requires a [registered application key](https://docs.datadoghq.com/api/latest/action-connection/#register-a-new-app-key). - operationId: UpdateActionConnection - parameters: - - $ref: "#/components/parameters/ConnectionId" + - APM + /api/v2/app-builder/apps: + delete: + description: Delete multiple apps in a single request from a list of app IDs. This API requires a [registered application key](https://docs.datadoghq.com/api/latest/action-connection/#register-a-new-app-key). Alternatively, you can configure these permissions [in the UI](https://docs.datadoghq.com/account_management/api-app-keys/#actions-api-access). + operationId: DeleteApps requestBody: content: application/json: @@ -133288,17 +142926,14 @@ paths: default: value: data: - attributes: - integration: - type: AWS - name: My AWS Connection - tags: - - env:prod - - team:action-platform - type: action_connection + - id: aea2ed17-b45f-40d0-ba59-c86b7972c901 + type: appDefinitions + - id: f69bb8be-6168-4fe7-a30d-370256b6504a + type: appDefinitions + - id: ab1ed73e-13ad-4426-b0df-a0ff8876a088 + type: appDefinitions schema: - $ref: "#/components/schemas/UpdateActionConnectionRequest" - description: Update an existing Action Connection request body + $ref: "#/components/schemas/DeleteAppsRequest" required: true responses: "200": @@ -133308,18 +142943,11 @@ paths: default: value: data: - attributes: - integration: - type: AWS - name: My AWS Connection - tags: - - env:prod - - team:action-platform - id: 00000000-0000-0000-0000-000000000003 - type: action_connection + - id: 00000000-0000-0000-0000-000000000001 + type: appDefinitions schema: - $ref: "#/components/schemas/UpdateActionConnectionResponse" - description: Successfully updated Action Connection + $ref: "#/components/schemas/DeleteAppsResponse" + description: OK "400": content: application/json: @@ -133339,108 +142967,90 @@ paths: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Not Found "429": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Too Many Request - summary: Update an existing Action Connection + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Delete Multiple Apps tags: - - Action Connection - /api/v2/actions/execution-policies: + - App Builder + "x-permission": + operator: OR + permissions: + - apps_write get: - description: Retrieve a list of execution policies for the current organization. - operationId: ListExecutionPolicies + description: List all apps, with optional filters and sorting. This endpoint is paginated. Only basic app information such as the app ID, name, and description is returned by this endpoint. This API requires a [registered application key](https://docs.datadoghq.com/api/latest/action-connection/#register-a-new-app-key). Alternatively, you can configure these permissions [in the UI](https://docs.datadoghq.com/account_management/api-app-keys/#actions-api-access). + operationId: ListApps parameters: - - description: The number of execution policies to return per page. - example: 100 + - description: The number of apps to return per page. in: query - name: page[size] + name: limit required: false schema: - default: 100 - format: int32 - maximum: 100 + format: int64 type: integer - description: The page number to return. - example: 0 in: query - name: page[number] + name: page required: false schema: - default: 0 - format: int32 - maximum: 1000 - minimum: 0 + format: int64 type: integer - - description: Filter execution policies by name. - example: "Block prod restarts" + - description: Filter apps by the app creator. Usually the user's email. + in: query + name: filter[user_name] + required: false + schema: + type: string + - description: Filter apps by the app creator's UUID. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + in: query + name: filter[user_uuid] + required: false + schema: + format: uuid + type: string + - description: Filter by app name. in: query name: filter[name] required: false schema: type: string - - description: Filter execution policies by a list of IDs. - example: - - "3fa85f64-5717-4562-b3fc-2c963f66afa6" - explode: true + - description: Filter apps by the app name or the app creator. in: query - name: filter[ids] + name: filter[query] required: false schema: - items: - type: string - type: array - style: form - - description: Filter execution policies by a list of integrations. - example: - - INTEGRATION_SCRIPT - explode: true + type: string + - description: Filter apps by whether they are published. in: query - name: filter[integration] + name: filter[deployed] required: false schema: - items: - $ref: "#/components/schemas/ExecutionPolicyIntegration" - type: array - style: form - - description: Filter execution policies by a list of effects. - example: - - allow - explode: true + type: boolean + - description: Filter apps by tags. in: query - name: filter[effects] + name: filter[tags] required: false schema: - items: - $ref: "#/components/schemas/ExecutionPolicyEffect" - type: array - style: form - - description: Filter execution policies by a list of creator IDs. - example: - - "3fa85f64-5717-4562-b3fc-2c963f66afa6" - explode: true + type: string + - description: Filter apps by whether you have added them to your favorites. in: query - name: filter[creator_ids] + name: filter[favorite] required: false schema: - items: - type: string - type: array - style: form - - description: |- - The sort order for the results. Prefix a field with `-` to sort in - descending order. Valid fields are `name`, `effect`, `integration`, - `created_at`, and `updated_at`. - example: - - "-created_at" - explode: true + type: boolean + - description: Filter apps by whether they are enabled for self-service. + in: query + name: filter[self_service] + required: false + schema: + type: boolean + - description: The fields and direction to sort apps by. + explode: false in: query name: sort required: false schema: items: - type: string + $ref: "#/components/schemas/AppsSortField" type: array style: form responses: @@ -133452,25 +143062,20 @@ paths: value: data: - attributes: - action_pattern: - action_fqns: - - "com.datadoghq.script.*" - integration: INTEGRATION_SCRIPT - created_at: "2026-01-15T10:00:00.000Z" - created_by: "3fa85f64-5717-4562-b3fc-2c963f66afa6" - effect: allow - name: "Block prod restarts" - targets: [] - updated_at: "2026-01-15T10:00:00.000Z" - updated_by: "3fa85f64-5717-4562-b3fc-2c963f66afa6" - version: 1 - id: "3fa85f64-5717-4562-b3fc-2c963f66afa6" - type: execution_policy + description: A sample app + favorite: false + name: My App + selfService: false + tags: + - "team:webshop" + id: 00000000-0000-0000-0000-000000000001 + type: appDefinitions meta: page: - total: 1 + totalCount: 1 + totalFilteredCount: 1 schema: - $ref: "#/components/schemas/ExecutionPolicyListResponse" + $ref: "#/components/schemas/ListAppsResponse" description: OK "400": content: @@ -133486,19 +143091,16 @@ paths: description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: List execution policies + summary: List Apps tags: - - Execution Policy - x-permission: + - App Builder + "x-permission": operator: OR permissions: - - execution_groups_read - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + - apps_run post: - description: Create a new execution policy. - operationId: CreateExecutionPolicy + description: Create a new app, returning the app ID. This API requires a [registered application key](https://docs.datadoghq.com/api/latest/action-connection/#register-a-new-app-key). Alternatively, you can configure these permissions [in the UI](https://docs.datadoghq.com/account_management/api-app-keys/#actions-api-access). + operationId: CreateApp requestBody: content: application/json: @@ -133507,16 +143109,14 @@ paths: value: data: attributes: - action_pattern: - action_fqns: - - "com.datadoghq.script.*" - integration: INTEGRATION_SCRIPT - effect: allow - name: "Block prod restarts" - type: execution_policy + components: [] + description: This is a simple example app + name: Example App + queries: [] + rootInstanceName: grid0 + type: appDefinitions schema: - $ref: "#/components/schemas/ExecutionPolicyCreateRequest" - description: The execution policy to create. + $ref: "#/components/schemas/CreateAppRequest" required: true responses: "201": @@ -133526,23 +143126,10 @@ paths: default: value: data: - attributes: - action_pattern: - action_fqns: - - "com.datadoghq.script.*" - integration: INTEGRATION_SCRIPT - created_at: "2026-01-15T10:00:00.000Z" - created_by: "3fa85f64-5717-4562-b3fc-2c963f66afa6" - effect: allow - name: "Block prod restarts" - targets: [] - updated_at: "2026-01-15T10:00:00.000Z" - updated_by: "3fa85f64-5717-4562-b3fc-2c963f66afa6" - version: 1 - id: "3fa85f64-5717-4562-b3fc-2c963f66afa6" - type: execution_policy + id: 00000000-0000-0000-0000-000000000001 + type: appDefinitions schema: - $ref: "#/components/schemas/ExecutionPolicyResponse" + $ref: "#/components/schemas/CreateAppResponse" description: Created "400": content: @@ -133558,26 +143145,47 @@ paths: description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Create an execution policy + summary: Create App tags: - - Execution Policy - x-codegen-request-body-name: body - x-permission: - operator: OR + - App Builder + "x-permission": + operator: AND permissions: - - execution_groups_write - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/actions/execution-policies/{policy_id}: + - apps_write + - connections_resolve + - workflows_run + /api/v2/app-builder/apps/{app_id}: delete: - description: Delete a specific execution policy. - operationId: DeleteExecutionPolicy + description: Delete a single app. This API requires a [registered application key](https://docs.datadoghq.com/api/latest/action-connection/#register-a-new-app-key). Alternatively, you can configure these permissions [in the UI](https://docs.datadoghq.com/account_management/api-app-keys/#actions-api-access). + operationId: DeleteApp parameters: - - $ref: "#/components/parameters/ExecutionPolicyId" + - description: The ID of the app to delete. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + in: path + name: app_id + required: true + schema: + format: uuid + type: string responses: - "204": - description: No Content + "200": + content: + application/json: + examples: + default: + value: + data: + id: 00000000-0000-0000-0000-000000000002 + type: appDefinitions + schema: + $ref: "#/components/schemas/DeleteAppResponse" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "403": content: application/json: @@ -133590,23 +143198,39 @@ paths: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Not Found + "410": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Gone "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Delete an execution policy + summary: Delete App tags: - - Execution Policy - x-permission: + - App Builder + "x-permission": operator: OR permissions: - - execution_groups_write - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + - apps_write get: - description: Retrieve an existing execution policy by ID. - operationId: GetExecutionPolicy + description: Get the full definition of an app. This API requires a [registered application key](https://docs.datadoghq.com/api/latest/action-connection/#register-a-new-app-key). Alternatively, you can configure these permissions [in the UI](https://docs.datadoghq.com/account_management/api-app-keys/#actions-api-access). + operationId: GetApp parameters: - - $ref: "#/components/parameters/ExecutionPolicyId" + - description: The ID of the app to retrieve. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + in: path + name: app_id + required: true + schema: + format: uuid + type: string + - description: The version number of the app to retrieve. If not specified, the latest version is returned. Version numbers start at 1 and increment with each update. The special values `latest` and `deployed` can be used to retrieve the latest version or the published version, respectively. + in: query + name: version + required: false + schema: + type: string responses: "200": content: @@ -133616,23 +143240,22 @@ paths: value: data: attributes: - action_pattern: - action_fqns: - - "com.datadoghq.script.*" - integration: INTEGRATION_SCRIPT - created_at: "2026-01-15T10:00:00.000Z" - created_by: "3fa85f64-5717-4562-b3fc-2c963f66afa6" - effect: allow - name: "Block prod restarts" - targets: [] - updated_at: "2026-01-15T10:00:00.000Z" - updated_by: "3fa85f64-5717-4562-b3fc-2c963f66afa6" - version: 1 - id: "3fa85f64-5717-4562-b3fc-2c963f66afa6" - type: execution_policy + components: [] + description: A sample app + name: Example App + queries: [] + rootInstanceName: grid0 + id: 00000000-0000-0000-0000-000000000001 + type: appDefinitions schema: - $ref: "#/components/schemas/ExecutionPolicyResponse" + $ref: "#/components/schemas/GetAppResponse" description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "403": content: application/json: @@ -133645,25 +143268,34 @@ paths: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Not Found + "410": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Gone "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get an execution policy + summary: Get App tags: - - Execution Policy - x-permission: - operator: OR + - App Builder + "x-permission": + operator: AND permissions: - - execution_groups_read - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - put: - description: |- - Update an existing execution policy. - Returns the execution policy object when the request is successful. - operationId: UpdateExecutionPolicy + - apps_run + - connections_read + patch: + description: Update an existing app. This creates a new version of the app. This API requires a [registered application key](https://docs.datadoghq.com/api/latest/action-connection/#register-a-new-app-key). Alternatively, you can configure these permissions [in the UI](https://docs.datadoghq.com/account_management/api-app-keys/#actions-api-access). + operationId: UpdateApp parameters: - - $ref: "#/components/parameters/ExecutionPolicyId" + - description: The ID of the app to update. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + in: path + name: app_id + required: true + schema: + format: uuid + type: string requestBody: content: application/json: @@ -133672,17 +143304,15 @@ paths: value: data: attributes: - action_pattern: - action_fqns: - - "com.datadoghq.script.*" - integration: INTEGRATION_SCRIPT - effect: allow - name: "Block prod restarts" - id: "3fa85f64-5717-4562-b3fc-2c963f66afa6" - type: execution_policy + components: [] + description: This is a simple example app + name: Example App + queries: [] + rootInstanceName: grid0 + id: 9e20cbaf-68da-45a6-9ccf-54193ac29fa5 + type: appDefinitions schema: - $ref: "#/components/schemas/ExecutionPolicyUpdateRequest" - description: The new execution policy. + $ref: "#/components/schemas/UpdateAppRequest" required: true responses: "200": @@ -133693,22 +143323,15 @@ paths: value: data: attributes: - action_pattern: - action_fqns: - - "com.datadoghq.script.*" - integration: INTEGRATION_SCRIPT - created_at: "2026-01-15T10:00:00.000Z" - created_by: "3fa85f64-5717-4562-b3fc-2c963f66afa6" - effect: allow - name: "Block prod restarts" - targets: [] - updated_at: "2026-01-15T10:00:00.000Z" - updated_by: "3fa85f64-5717-4562-b3fc-2c963f66afa6" - version: 2 - id: "3fa85f64-5717-4562-b3fc-2c963f66afa6" - type: execution_policy + components: [] + description: This is a simple example app + name: Example App + queries: [] + rootInstanceName: grid0 + id: 00000000-0000-0000-0000-000000000001 + type: appDefinitions schema: - $ref: "#/components/schemas/ExecutionPolicyResponse" + $ref: "#/components/schemas/UpdateAppResponse" description: OK "400": content: @@ -133722,29 +143345,30 @@ paths: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Forbidden - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Update an execution policy + summary: Update App tags: - - Execution Policy - x-codegen-request-body-name: body - x-permission: - operator: OR + - App Builder + "x-permission": + operator: AND permissions: - - execution_groups_write - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/agentless_scanning/accounts/aws: - get: - description: Fetches the scan options configured for AWS accounts. - operationId: ListAwsScanOptions + - apps_write + - connections_resolve + - workflows_run + /api/v2/app-builder/apps/{app_id}/deployment: + delete: + description: Unpublish an app, removing the live version of the app. Unpublishing creates a new instance of a `deployment` object on the app, with a nil `app_version_id` (`00000000-0000-0000-0000-000000000000`). The app can still be updated and published again in the future. This API requires a [registered application key](https://docs.datadoghq.com/api/latest/action-connection/#register-a-new-app-key). Alternatively, you can configure these permissions [in the UI](https://docs.datadoghq.com/account_management/api-app-keys/#actions-api-access). + operationId: UnpublishApp + parameters: + - description: The ID of the app to unpublish. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + in: path + name: app_id + required: true + schema: + format: uuid + type: string responses: "200": content: @@ -133753,237 +143377,52 @@ paths: default: value: data: - - attributes: - lambda: true - sensitive_data: false - vuln_containers_os: true - vuln_host_os: true - id: "123456789012" - type: aws_scan_options + attributes: + app_version_id: 00000000-0000-0000-0000-000000000000 + id: 00000000-0000-0000-0000-000000000001 + type: deployment schema: - $ref: "#/components/schemas/AwsScanOptionsListResponse" + $ref: "#/components/schemas/UnpublishAppResponse" description: OK - "403": - $ref: "#/components/responses/NotAuthorizedResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - security_monitoring_findings_read - summary: List AWS scan options - tags: ["Agentless Scanning"] - post: - description: Activate Agentless scan options for an AWS account. - operationId: CreateAwsScanOptions - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - compliance_host: false - lambda: true - sensitive_data: false - vuln_containers_os: true - vuln_host_os: true - id: "123456789012" - type: aws_scan_options - schema: - $ref: "#/components/schemas/AwsScanOptionsCreateRequest" - description: The definition of the new scan options. - required: true - responses: - "201": + "400": content: - "application/json": - examples: - default: - value: - data: - attributes: - lambda: true - sensitive_data: false - vuln_containers_os: true - vuln_host_os: true - id: "123456789012" - type: aws_scan_options + application/json: schema: - $ref: "#/components/schemas/AwsScanOptionsResponse" - description: Agentless scan options enabled successfully. - "400": - $ref: "#/components/responses/BadRequestResponse" - "403": - $ref: "#/components/responses/NotAuthorizedResponse" - "409": - $ref: "#/components/responses/ConflictResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - org_management - summary: Create AWS scan options - tags: ["Agentless Scanning"] - x-codegen-request-body-name: body - /api/v2/agentless_scanning/accounts/aws/{account_id}: - delete: - description: Delete Agentless scan options for an AWS account. - operationId: DeleteAwsScanOptions - parameters: - - $ref: "#/components/parameters/AwsAccountId" - responses: - "204": - description: No Content - "400": - $ref: "#/components/responses/BadRequestResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "403": - $ref: "#/components/responses/NotAuthorizedResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - org_management - summary: Delete AWS scan options - tags: ["Agentless Scanning"] - get: - description: Fetches the Agentless scan options for an activated account. - operationId: GetAwsScanOptions - parameters: - - $ref: "#/components/parameters/AwsAccountId" - responses: - "200": content: application/json: - examples: - default: - value: - data: - attributes: - lambda: true - sensitive_data: false - vuln_containers_os: true - vuln_host_os: true - id: "123456789012" - type: aws_scan_options schema: - $ref: "#/components/schemas/AwsScanOptionsResponse" - description: OK - "400": - $ref: "#/components/responses/BadRequestResponse" - "403": - $ref: "#/components/responses/NotAuthorizedResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - security_monitoring_findings_read - summary: Get AWS scan options - tags: ["Agentless Scanning"] - patch: - description: Update the Agentless scan options for an activated account. - operationId: UpdateAwsScanOptions - parameters: - - $ref: "#/components/parameters/AwsAccountId" - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - compliance_host: false - lambda: true - sensitive_data: false - vuln_containers_os: true - vuln_host_os: true - id: "123456789012" - type: aws_scan_options - schema: - $ref: "#/components/schemas/AwsScanOptionsUpdateRequest" - description: New definition of the scan options. - required: true - responses: - "204": - description: No Content - "400": - $ref: "#/components/responses/BadRequestResponse" - "403": - $ref: "#/components/responses/NotAuthorizedResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "404": - $ref: "#/components/responses/NotFoundResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - org_management - summary: Update AWS scan options - tags: ["Agentless Scanning"] - x-codegen-request-body-name: body - /api/v2/agentless_scanning/accounts/azure: - get: - description: Fetches the scan options configured for Azure accounts. - operationId: ListAzureScanOptions - responses: - "200": content: application/json: - examples: - default: - value: - data: - - attributes: - vuln_containers_os: true - vuln_host_os: true - id: 00000000-0000-0000-0000-000000000001 - type: azure_scan_options schema: - $ref: "#/components/schemas/AzureScanOptionsArray" - description: OK + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - security_monitoring_findings_read - summary: List Azure scan options + summary: Unpublish App tags: - - Agentless Scanning + - App Builder + "x-permission": + operator: OR + permissions: + - apps_write post: - description: Activate Agentless scan options for an Azure subscription. - operationId: CreateAzureScanOptions - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - compliance_host: false - vuln_containers_os: true - vuln_host_os: true - id: 12345678-90ab-cdef-1234-567890abcdef - type: azure_scan_options - schema: - $ref: "#/components/schemas/AzureScanOptions" - required: true + description: Publish an app for use by other users. To ensure the app is accessible to the correct users, you also need to set a [Restriction Policy](https://docs.datadoghq.com/api/latest/restriction-policies/) on the app if a policy does not yet exist. This API requires a [registered application key](https://docs.datadoghq.com/api/latest/action-connection/#register-a-new-app-key). Alternatively, you can configure these permissions [in the UI](https://docs.datadoghq.com/account_management/api-app-keys/#actions-api-access). + operationId: PublishApp + parameters: + - description: The ID of the app to publish. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + in: path + name: app_id + required: true + schema: + format: uuid + type: string responses: "201": content: @@ -133993,100 +143432,107 @@ paths: value: data: attributes: - vuln_containers_os: true - vuln_host_os: true + app_version_id: 00000000-0000-0000-0000-000000000001 id: 00000000-0000-0000-0000-000000000001 - type: azure_scan_options + type: deployment schema: - $ref: "#/components/schemas/AzureScanOptions" + $ref: "#/components/schemas/PublishAppResponse" description: Created + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - org_management - summary: Create Azure scan options - tags: - - Agentless Scanning - /api/v2/agentless_scanning/accounts/azure/{subscription_id}: - delete: - description: Delete Agentless scan options for an Azure subscription. - operationId: DeleteAzureScanOptions - parameters: - - description: The Azure subscription ID. - in: path - name: subscription_id - required: true - schema: - example: 12345678-90ab-cdef-1234-567890abcdef - type: string - responses: - "204": - description: No Content - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - org_management - summary: Delete Azure scan options + summary: Publish App tags: - - Agentless Scanning - get: - description: Fetches the Agentless scan options for an activated subscription. - operationId: GetAzureScanOptions + - App Builder + "x-permission": + operator: OR + permissions: + - apps_write + /api/v2/app-builder/apps/{app_id}/favorite: + patch: + description: Add or remove an app from the current user's favorites. Favorited apps can be filtered for using the `filter[favorite]` query parameter on the [List Apps](https://docs.datadoghq.com/api/latest/app-builder/#list-apps) endpoint. + operationId: UpdateAppFavorite parameters: - - description: The Azure subscription ID. + - description: The ID of the app. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 in: path - name: subscription_id + name: app_id required: true schema: - example: 12345678-90ab-cdef-1234-567890abcdef + format: uuid type: string + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + favorite: true + type: favorites + schema: + $ref: "#/components/schemas/UpdateAppFavoriteRequest" + required: true responses: - "200": + "204": + description: No Content + "400": content: application/json: - examples: - default: - value: - data: - attributes: - vuln_containers_os: true - vuln_host_os: true - id: 00000000-0000-0000-0000-000000000001 - type: azure_scan_options schema: - $ref: "#/components/schemas/AzureScanOptions" - description: OK - "400": - $ref: "#/components/responses/BadRequestResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "403": - $ref: "#/components/responses/NotAuthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - security_monitoring_findings_read - summary: Get Azure scan options - tags: ["Agentless Scanning"] + summary: Update App Favorite Status + tags: + - App Builder + "x-permission": + operator: OR + permissions: + - apps_run + /api/v2/app-builder/apps/{app_id}/protection-level: patch: - description: Update the Agentless scan options for an activated subscription. - operationId: UpdateAzureScanOptions + description: Update the publication protection level of an app. When set to `approval_required`, future publishes must go through an approval workflow before going live. + operationId: UpdateProtectionLevel parameters: - - description: The Azure subscription ID. + - description: The ID of the app. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 in: path - name: subscription_id + name: app_id required: true schema: - example: 12345678-90ab-cdef-1234-567890abcdef + format: uuid type: string requestBody: content: @@ -134096,11 +143542,10 @@ paths: value: data: attributes: - vuln_containers_os: false - id: 12345678-90ab-cdef-1234-567890abcdef - type: azure_scan_options + protectionLevel: approval_required + type: protectionLevel schema: - $ref: "#/components/schemas/AzureScanOptionsInputUpdate" + $ref: "#/components/schemas/UpdateAppProtectionLevelRequest" required: true responses: "200": @@ -134111,58 +143556,58 @@ paths: value: data: attributes: - vuln_containers_os: false - vuln_host_os: true - id: 00000000-0000-0000-0000-000000000001 - type: azure_scan_options + components: [] + description: This is a simple example app + favorite: false + name: Example App + queries: [] + rootInstanceName: grid0 + tags: [] + id: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + type: appDefinitions schema: - $ref: "#/components/schemas/AzureScanOptions" + $ref: "#/components/schemas/UpdateAppResponse" description: OK - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - org_management - summary: Update Azure scan options - tags: - - Agentless Scanning - /api/v2/agentless_scanning/accounts/gcp: - get: - description: Fetches the scan options configured for all GCP projects. - operationId: ListGcpScanOptions - responses: - "200": + "400": content: application/json: - examples: - default: - value: - data: - - attributes: - vuln_containers_os: true - vuln_host_os: true - id: abc-123 - type: gcp_scan_options schema: - $ref: "#/components/schemas/GcpScanOptionsArray" - description: OK + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "403": - $ref: "#/components/responses/NotAuthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - security_monitoring_findings_read - summary: List GCP scan options + summary: Update App Protection Level tags: - - Agentless Scanning + - App Builder + "x-permission": + operator: OR + permissions: + - apps_write + /api/v2/app-builder/apps/{app_id}/publish-request: post: - description: Activate Agentless scan options for a GCP project. - operationId: CreateGcpScanOptions + description: Create a publish request to ask for approval to publish an app whose protection level is `approval_required`. Publishing happens automatically once the request is approved by a user with the appropriate permissions. + operationId: CreatePublishRequest + parameters: + - description: The ID of the app. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + in: path + name: app_id + required: true + schema: + format: uuid + type: string requestBody: content: application/json: @@ -134171,14 +143616,11 @@ paths: value: data: attributes: - compliance_host: false - vuln_containers_os: true - vuln_host_os: true - id: company-project-id - type: gcp_scan_options + description: Adds new dashboard widgets and a few bug fixes. + title: Release v1.2 to production + type: publishRequest schema: - $ref: "#/components/schemas/GcpScanOptions" - description: The definition of the new scan options. + $ref: "#/components/schemas/CreatePublishRequestRequest" required: true responses: "201": @@ -134189,71 +143631,62 @@ paths: value: data: attributes: - vuln_containers_os: true - vuln_host_os: true - id: abc-123 - type: gcp_scan_options + app_version_id: 9e20cbaf-68da-45a6-9ccf-54193ac29fa5 + id: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + meta: + created_at: "2026-04-01T12:00:00Z" + user_name: jane.doe@example.com + user_uuid: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + type: deployment schema: - $ref: "#/components/schemas/GcpScanOptions" - description: Agentless scan options enabled successfully. + $ref: "#/components/schemas/PublishAppResponse" + description: Created "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "403": - $ref: "#/components/responses/NotAuthorizedResponse" - "409": - $ref: "#/components/responses/ConflictResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - org_management - summary: Create GCP scan options + summary: Create Publish Request tags: - - Agentless Scanning - x-codegen-request-body-name: body - /api/v2/agentless_scanning/accounts/gcp/{project_id}: - delete: - description: Delete Agentless scan options for a GCP project. - operationId: DeleteGcpScanOptions + - App Builder + "x-permission": + operator: OR + permissions: + - apps_write + /api/v2/app-builder/apps/{app_id}/revert: + post: + description: Revert an app to a previous version. The version to revert to is selected through the `version` query parameter. The reverted version becomes the new latest version of the app. + operationId: RevertApp parameters: - - description: The GCP project ID. + - description: The ID of the app. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 in: path - name: project_id + name: app_id required: true schema: - example: company-project-id + format: uuid type: string - responses: - "204": - description: No Content - "400": - $ref: "#/components/responses/BadRequestResponse" - "403": - $ref: "#/components/responses/NotAuthorizedResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - org_management - summary: Delete GCP scan options - tags: - - Agentless Scanning - get: - description: Fetches the Agentless scan options for an activated GCP project. - operationId: GetGcpScanOptions - parameters: - - description: The GCP project ID. - in: path - name: project_id + - description: The version number of the app to revert to. Cannot be `latest`. The special value `deployed` can be used to revert to the currently published version. + example: "2" + in: query + name: version required: true schema: - example: company-project-id type: string responses: "200": @@ -134264,39 +143697,57 @@ paths: value: data: attributes: - vuln_containers_os: true - vuln_host_os: true - id: abc-123 - type: gcp_scan_options + components: [] + description: This is a simple example app + favorite: false + name: Example App + queries: [] + rootInstanceName: grid0 + tags: [] + id: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + type: appDefinitions schema: - $ref: "#/components/schemas/GcpScanOptions" + $ref: "#/components/schemas/UpdateAppResponse" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "403": - $ref: "#/components/responses/NotAuthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - security_monitoring_findings_read - summary: Get GCP scan options + summary: Revert App tags: - - Agentless Scanning + - App Builder + "x-permission": + operator: OR + permissions: + - apps_write + /api/v2/app-builder/apps/{app_id}/self-service: patch: - description: Update the Agentless scan options for an activated GCP project. - operationId: UpdateGcpScanOptions + description: Enable or disable self-service for an app. Self-service apps can be discovered and run by users in your organization without explicit access being granted. + operationId: UpdateAppSelfService parameters: - - description: The GCP project ID. + - description: The ID of the app. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 in: path - name: project_id + name: app_id required: true schema: - example: company-project-id + format: uuid type: string requestBody: content: @@ -134306,86 +143757,54 @@ paths: value: data: attributes: - vuln_containers_os: false - id: company-project-id - type: gcp_scan_options + selfService: true + type: selfService schema: - $ref: "#/components/schemas/GcpScanOptionsInputUpdate" - description: New definition of the scan options. + $ref: "#/components/schemas/UpdateAppSelfServiceRequest" required: true responses: - "200": + "204": + description: No Content + "400": content: application/json: - examples: - default: - value: - data: - attributes: - vuln_containers_os: true - vuln_host_os: true - id: abc-123 - type: gcp_scan_options schema: - $ref: "#/components/schemas/GcpScanOptions" - description: OK - "400": - $ref: "#/components/responses/BadRequestResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "403": - $ref: "#/components/responses/NotAuthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "404": - $ref: "#/components/responses/NotFoundResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - org_management - summary: Update GCP scan options - tags: - - Agentless Scanning - x-codegen-request-body-name: body - /api/v2/agentless_scanning/ondemand/aws: - get: - description: Fetches the most recent 1000 AWS on demand tasks. - operationId: ListAwsOnDemandTasks - responses: - "200": content: application/json: - examples: - default: - value: - data: - - attributes: - arn: "arn:aws:ec2:us-east-1:123456789012:instance/i-0eabb50529b67a1ba" - assigned_at: "2024-01-01T00:00:00+00:00" - created_at: "2024-01-01T00:00:00+00:00" - status: QUEUED - id: abc-123 - type: aws_resource schema: - $ref: "#/components/schemas/AwsOnDemandListResponse" - description: OK - "403": - $ref: "#/components/responses/NotAuthorizedResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - security_monitoring_findings_read - summary: List AWS on demand tasks - tags: ["Agentless Scanning"] + summary: Update App Self-Service Status + tags: + - App Builder "x-permission": operator: OR permissions: - - security_monitoring_findings_read - post: - description: Trigger the scan of an AWS resource with a high priority. Agentless scanning must be activated for the AWS account containing the resource to scan. - operationId: CreateAwsOnDemandTask + - apps_write + /api/v2/app-builder/apps/{app_id}/tags: + patch: + description: Replace the tags on an app. The provided list overwrites the existing tags entirely; tags not present in the request body are removed. + operationId: UpdateAppTags + parameters: + - description: The ID of the app. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + in: path + name: app_id + required: true + schema: + format: uuid + type: string requestBody: content: application/json: @@ -134394,137 +143813,79 @@ paths: value: data: attributes: - arn: arn:aws:ec2:us-east-1:727000456123:instance/i-0eabb50529b67a1ba - type: aws_resource + tags: + - team:platform + - service:ops + type: tags schema: - $ref: "#/components/schemas/AwsOnDemandCreateRequest" - description: The definition of the on demand task. + $ref: "#/components/schemas/UpdateAppTagsRequest" required: true responses: - "201": + "204": + description: No Content + "400": content: - "application/json": - examples: - default: - value: - data: - attributes: - arn: "arn:aws:ec2:us-east-1:123456789012:instance/i-0eabb50529b67a1ba" - created_at: "2024-01-01T00:00:00+00:00" - status: QUEUED - id: abc-123 - type: aws_resource + application/json: schema: - $ref: "#/components/schemas/AwsOnDemandResponse" - description: AWS on demand task created successfully. - "400": - $ref: "#/components/responses/BadRequestResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "403": - $ref: "#/components/responses/NotAuthorizedResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - org_management - summary: Create AWS on demand task - tags: ["Agentless Scanning"] - x-codegen-request-body-name: body - "x-permission": - operator: OR - permissions: - - security_monitoring_findings_write - /api/v2/agentless_scanning/ondemand/aws/{task_id}: - get: - description: Fetch the data of a specific on demand task. - operationId: GetAwsOnDemandTask - parameters: - - $ref: "#/components/parameters/OnDemandTaskId" - responses: - "200": content: - "application/json": - examples: - default: - value: - data: - attributes: - arn: "arn:aws:ec2:us-east-1:123456789012:instance/i-0eabb50529b67a1ba" - assigned_at: "2024-01-01T00:00:00+00:00" - created_at: "2024-01-01T00:00:00+00:00" - status: ASSIGNED - id: abc-123 - type: aws_resource + application/json: schema: - $ref: "#/components/schemas/AwsOnDemandResponse" - description: OK. - "400": - $ref: "#/components/responses/BadRequestResponse" - "403": - $ref: "#/components/responses/NotAuthorizedResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - security_monitoring_findings_read - summary: Get AWS on demand task - tags: ["Agentless Scanning"] + summary: Update App Tags + tags: + - App Builder "x-permission": operator: OR permissions: - - security_monitoring_findings_read - /api/v2/annotation: - get: - description: Returns a flat list of annotations matching the given page, time window, and optional widget filter. - operationId: ListAnnotations + - apps_write + /api/v2/app-builder/apps/{app_id}/version-name: + patch: + description: Assign a human-readable name to a specific version of an app. The version is selected through the `version` query parameter. + operationId: UpdateAppVersionName parameters: - - description: |- - ID of the page to list annotations for, prefixed with the page type and joined by a colon - (for example, `dashboard:abc-def-xyz` or `notebook:1234567890`). - example: "dashboard:abc-def-xyz" - in: query - name: page_id + - description: The ID of the app. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + in: path + name: app_id required: true schema: + format: uuid type: string - - $ref: "#/components/parameters/AnnotationStartTimeQueryParameter" - - $ref: "#/components/parameters/AnnotationEndTimeQueryParameter" - - description: Optional widget ID to restrict results to annotations on a specific widget. + - description: The version number of the app to name. The special values `latest` and `deployed` can also be used to target the latest or currently published version. + example: "3" in: query - name: widget_id - required: false + name: version + required: true schema: type: string + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + name: v1.2.0 - bug fix release + type: versionNames + schema: + $ref: "#/components/schemas/UpdateAppVersionNameRequest" + required: true responses: - "200": - content: - application/json: - examples: - default: - value: - data: - - attributes: - author_id: "00000000-0000-0000-0000-000000000001" - color: blue - created_at: 1704067200000 - description: "Deployed v2.3.1 to production." - end_time: - modified_at: 1704067200000 - page_id: "dashboard:abc-def-xyz" - start_time: 1704067200000 - type: pointInTime - widget_ids: - - "1234567890" - id: "00000000-0000-0000-0000-000000000000" - type: annotation - schema: - $ref: "#/components/schemas/AnnotationsResponse" - description: OK + "204": + description: No Content "400": content: application/json: @@ -134537,50 +143898,48 @@ paths: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Forbidden - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - "500": + "404": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Internal Server Error - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: [] - summary: List annotations + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Name App Version tags: - - Annotations - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - post: - description: |- - Creates a new annotation on a dashboard or notebook page. - Valid `color` values: `gray`, `blue`, `purple`, `green`, `yellow`, `red`. - Valid `type` values: `pointInTime` (marks a single moment) or `timeRegion` (spans a range and requires `end_time`). - operationId: CreateAnnotation - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - color: blue - description: "Deployed v2.3.1 to production." - page_id: "dashboard:abc-def-xyz" - start_time: 1704067200000 - type: pointInTime - widget_ids: - - "1234567890" - type: annotation - schema: - $ref: "#/components/schemas/AnnotationCreateRequest" - description: Annotation to create. - required: true + - App Builder + "x-permission": + operator: OR + permissions: + - apps_write + /api/v2/app-builder/apps/{app_id}/versions: + get: + description: List the versions of an app. This endpoint is paginated. + operationId: ListAppVersions + parameters: + - description: The ID of the app. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + in: path + name: app_id + required: true + schema: + format: uuid + type: string + - description: The number of versions to return per page. + in: query + name: limit + required: false + schema: + format: int64 + type: integer + - description: The page number to return. + in: query + name: page + required: false + schema: + format: int64 + type: integer responses: "200": content: @@ -134589,22 +143948,22 @@ paths: default: value: data: - attributes: - author_id: "00000000-0000-0000-0000-000000000001" - color: blue - created_at: 1704067200000 - description: "Deployed v2.3.1 to production." - end_time: - modified_at: 1704067200000 - page_id: "dashboard:abc-def-xyz" - start_time: 1704067200000 - type: pointInTime - widget_ids: - - "1234567890" - id: "00000000-0000-0000-0000-000000000000" - type: annotation + - attributes: + app_id: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + created_at: "2026-04-01T12:00:00Z" + has_ever_been_published: true + name: v1.2.0 - bug fix release + updated_at: "2026-04-01T12:00:00Z" + user_name: jane.doe@example.com + user_uuid: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + version: 3 + id: 9e20cbaf-68da-45a6-9ccf-54193ac29fa5 + type: appVersions + meta: + page: + totalCount: 1 schema: - $ref: "#/components/schemas/AnnotationResponse" + $ref: "#/components/schemas/ListAppVersionsResponse" description: OK "400": content: @@ -134618,35 +143977,35 @@ paths: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Forbidden - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - "500": + "404": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Internal Server Error - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: [] - summary: Create an annotation + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: List App Versions tags: - - Annotations - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/annotation/page/{page_id}: + - App Builder + "x-permission": + operator: AND + permissions: + - apps_run + - connections_read + /api/v2/app-builder/blueprint/{blueprint_id}: get: - description: |- - Returns all annotations on a specific page for a given time window, grouped by widget. - Unlike `ListAnnotations`, this endpoint returns a single structured object with annotations - indexed by their ID and a widget-to-annotation mapping for easy UI rendering. - operationId: GetPageAnnotations + description: Retrieve an app blueprint by its ID. + operationId: GetBlueprint parameters: - - $ref: "#/components/parameters/AnnotationPageIDPathParameter" - - $ref: "#/components/parameters/AnnotationStartTimeQueryParameter" - - $ref: "#/components/parameters/AnnotationEndTimeQueryParameter" + - description: The ID of the blueprint to retrieve. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + in: path + name: blueprint_id + required: true + schema: + format: uuid + type: string responses: "200": content: @@ -134656,77 +144015,79 @@ paths: value: data: attributes: - annotations: - "00000000-0000-0000-0000-000000000000": - author_id: "00000000-0000-0000-0000-000000000001" - color: blue - created_at: 1704067200000 - description: "Deployed v2.3.1 to production." - end_time: - id: "00000000-0000-0000-0000-000000000000" - modified_at: 1704067200000 - page_id: "dashboard:abc-def-xyz" - start_time: 1704067200000 - type: pointInTime - widget_ids: - - "1234567890" - global_annotations: - - "00000000-0000-0000-0000-000000000002" - widget_mapping: - "1234567890": - - "00000000-0000-0000-0000-000000000000" - id: "dashboard:abc-def-xyz" - type: page_annotations + created_at: "2024-01-01T00:00:00Z" + definition: {} + description: Manage your AWS services from Datadog. + name: AWS Service Manager + slug: aws-service-manager + updated_at: "2024-01-01T00:00:00Z" + id: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + type: blueprint schema: - $ref: "#/components/schemas/PageAnnotationsResponse" + $ref: "#/components/schemas/GetBlueprintResponse" description: OK - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request "403": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Forbidden - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - "500": + "404": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Internal Server Error - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: [] - summary: Get annotations for a page + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Get Blueprint tags: - - Annotations - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/annotation/{annotation_id}: - delete: - description: |- - Deletes an existing annotation by ID. - Returns `204 No Content` if the annotation does not exist (idempotent). - operationId: DeleteAnnotation + - App Builder + "x-permission": + operator: OR + permissions: + - apps_run + - apps_write + - connections_read + - connections_write + /api/v2/app-builder/blueprints: + get: + description: List available app blueprints. + operationId: ListBlueprints parameters: - - $ref: "#/components/parameters/AnnotationIDPathParameter" + - description: The number of blueprints to return per page. Defaults to 10. Maximum is 100. + in: query + name: limit + required: false + schema: + format: int64 + type: integer + - description: The page of results to return. Starts at 0. + in: query + name: page + required: false + schema: + format: int64 + type: integer responses: - "204": - description: No Content - "400": + "200": content: application/json: + examples: + default: + value: + data: + - attributes: + created_at: "2024-01-01T00:00:00Z" + description: Manage your AWS services from Datadog. + name: AWS Service Manager + slug: aws-service-manager + updated_at: "2024-01-01T00:00:00Z" + id: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + type: blueprint schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + $ref: "#/components/schemas/ListBlueprintsResponse" + description: OK "403": content: application/json: @@ -134735,50 +144096,28 @@ paths: description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" - "500": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Internal Server Error - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: [] - summary: Delete an annotation + summary: List Blueprints tags: - - Annotations - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - put: - description: |- - Updates an existing annotation. - Valid `color` values: `gray`, `blue`, `purple`, `green`, `yellow`, `red`. - Valid `type` values: `pointInTime` (marks a single moment) or `timeRegion` (spans a range and requires `end_time`). - operationId: UpdateAnnotation + - App Builder + "x-permission": + operator: OR + permissions: + - apps_run + - apps_write + - connections_read + - connections_write + /api/v2/app-builder/blueprints/integration-id/{integration_id}: + get: + description: List app blueprints associated with a specific integration ID. + operationId: GetBlueprintsByIntegrationId parameters: - - $ref: "#/components/parameters/AnnotationIDPathParameter" - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - color: green - description: "Deployed v2.3.1 to production (updated)." - page_id: "dashboard:abc-def-xyz" - start_time: 1704067200000 - type: pointInTime - widget_ids: - - "1234567890" - type: annotation - schema: - $ref: "#/components/schemas/AnnotationUpdateRequest" - description: Updated annotation payload. - required: true + - description: The integration ID to filter blueprints by. + example: aws + in: path + name: integration_id + required: true + schema: + type: string responses: "200": content: @@ -134787,79 +144126,49 @@ paths: default: value: data: - attributes: - author_id: "00000000-0000-0000-0000-000000000001" - color: green - created_at: 1704067200000 - description: "Deployed v2.3.1 to production (updated)." - end_time: - modified_at: 1704070800000 - page_id: "dashboard:abc-def-xyz" - start_time: 1704067200000 - type: pointInTime - widget_ids: - - "1234567890" - id: "00000000-0000-0000-0000-000000000000" - type: annotation + - attributes: + created_at: "2024-01-01T00:00:00Z" + definition: {} + description: Manage your AWS services from Datadog. + integration_id: aws + name: AWS Service Manager + slug: aws-service-manager + updated_at: "2024-01-01T00:00:00Z" + id: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + type: blueprint schema: - $ref: "#/components/schemas/AnnotationResponse" + $ref: "#/components/schemas/GetBlueprintsResponse" description: OK - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request "403": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Forbidden - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - "500": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Internal Server Error - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: [] - summary: Update an annotation + summary: Get Blueprints by Integration ID tags: - - Annotations - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/anonymize_users: - put: - description: |- - Anonymize a list of users, removing their personal data. This operation is irreversible. - Requires the `user_access_manage` permission. - operationId: AnonymizeUsers - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - user_ids: - - "00000000-0000-0000-0000-000000000000" - type: anonymize_users_request - schema: - $ref: "#/components/schemas/AnonymizeUsersRequest" - required: true + - App Builder + "x-permission": + operator: OR + permissions: + - apps_run + - apps_write + - connections_read + - connections_write + /api/v2/app-builder/blueprints/slugs/{slugs}: + get: + description: Retrieve app blueprints by their slugs. + operationId: GetBlueprintsBySlugs + parameters: + - description: A comma-separated list of blueprint slugs. + example: aws-service-manager + in: path + name: slugs + required: true + schema: + type: string responses: "200": content: @@ -134868,55 +144177,40 @@ paths: default: value: data: - id: abc-123 - type: anonymize_users_response + - attributes: + created_at: "2024-01-01T00:00:00Z" + definition: {} + description: Manage your AWS services from Datadog. + name: AWS Service Manager + slug: aws-service-manager + updated_at: "2024-01-01T00:00:00Z" + id: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + type: blueprint schema: - $ref: "#/components/schemas/AnonymizeUsersResponse" + $ref: "#/components/schemas/GetBlueprintsResponse" description: OK - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request "403": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Authentication error - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - user_access_manage - summary: Anonymize users + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Get Blueprints by Slugs tags: - - Users - x-codegen-request-body-name: body - x-permission: + - App Builder + "x-permission": operator: OR permissions: - - user_access_manage - x-unstable: "**Note**: This endpoint is in Preview and may be subject to changes." - /api/v2/api_keys: + - apps_run + - apps_write + - connections_read + - connections_write + /api/v2/app-builder/tags: get: - description: List all API keys available for your account. - operationId: ListAPIKeys - parameters: - - $ref: "#/components/parameters/PageSize" - - $ref: "#/components/parameters/PageNumber" - - $ref: "#/components/parameters/APIKeysSortParameter" - - $ref: "#/components/parameters/APIKeyFilterParameter" - - $ref: "#/components/parameters/APIKeyFilterCreatedAtStartParameter" - - $ref: "#/components/parameters/APIKeyFilterCreatedAtEndParameter" - - $ref: "#/components/parameters/APIKeyFilterModifiedAtStartParameter" - - $ref: "#/components/parameters/APIKeyFilterModifiedAtEndParameter" - - $ref: "#/components/parameters/APIKeyIncludeParameter" - - $ref: "#/components/parameters/APIKeyReadConfigReadEnabledParameter" - - $ref: "#/components/parameters/APIKeyCategoryParameter" + description: List all tags associated with the authenticated user's apps. + operationId: ListTags responses: "200": content: @@ -134925,71 +144219,56 @@ paths: default: value: data: - - attributes: - created_at: "2024-01-01T00:00:00+00:00" - last4: abcd - modified_at: "2024-01-01T00:00:00+00:00" - name: API Key for submitting metrics - id: 00000000-0000-0000-0000-000000000001 - type: api_keys + - id: production + type: tag schema: - $ref: "#/components/schemas/APIKeysResponse" + $ref: "#/components/schemas/AppBuilderListTagsResponse" description: OK - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request "403": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get all API keys + summary: List Tags tags: - - Key Management + - App Builder "x-permission": operator: OR permissions: - - api_keys_read - post: - description: Create an API key. - operationId: CreateAPIKey - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - name: API Key for submitting metrics - type: api_keys - schema: - $ref: "#/components/schemas/APIKeyCreateRequest" - required: true + - apps_run + /api/v2/application_keys: + get: + description: List all application keys available for your org + operationId: ListApplicationKeys + parameters: + - $ref: "#/components/parameters/PageSize" + - $ref: "#/components/parameters/PageNumber" + - $ref: "#/components/parameters/ApplicationKeysSortParameter" + - $ref: "#/components/parameters/ApplicationKeyFilterParameter" + - $ref: "#/components/parameters/ApplicationKeyFilterCreatedAtStartParameter" + - $ref: "#/components/parameters/ApplicationKeyFilterCreatedAtEndParameter" + - $ref: "#/components/parameters/ApplicationKeyFilterOwnedByParameter" + - $ref: "#/components/parameters/ApplicationKeyIncludeParameter" responses: - "201": + "200": content: application/json: examples: default: value: data: - attributes: - created_at: "2024-01-01T00:00:00+00:00" - last4: abcd - modified_at: "2024-01-01T00:00:00+00:00" - name: API Key for submitting metrics - id: 00000000-0000-0000-0000-000000000002 - type: api_keys + - attributes: + created_at: "2020-11-23T10:00:00.000Z" + last4: abcd + name: Application Key for managing dashboards + id: 00000000-0000-0000-0000-000000000001 + type: application_keys schema: - $ref: "#/components/schemas/APIKeyResponse" - description: Created + $ref: "#/components/schemas/ListApplicationKeysResponse" + description: OK "400": content: application/json: @@ -135002,22 +144281,27 @@ paths: schema: $ref: "#/components/schemas/APIErrorResponse" description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Create an API key + summary: Get all application keys tags: - Key Management - x-codegen-request-body-name: body "x-permission": operator: OR permissions: - - api_keys_write - /api/v2/api_keys/{api_key_id}: + - org_app_keys_read + /api/v2/application_keys/{app_key_id}: delete: - description: Delete an API key. - operationId: DeleteAPIKey + description: Delete an application key + operationId: DeleteApplicationKey parameters: - - $ref: "#/components/parameters/APIKeyId" + - $ref: "#/components/parameters/ApplicationKeyID" responses: "204": description: No Content @@ -135035,19 +144319,20 @@ paths: description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Delete an API key + summary: Delete an application key tags: - Key Management + x-codegen-request-body-name: body "x-permission": operator: OR permissions: - - api_keys_delete + - org_app_keys_write get: - description: Get an API key. - operationId: GetAPIKey + description: Get an application key for your org. + operationId: GetApplicationKey parameters: - - $ref: "#/components/parameters/APIKeyId" - - $ref: "#/components/parameters/APIKeyIncludeParameter" + - $ref: "#/components/parameters/ApplicationKeyID" + - $ref: "#/components/parameters/ApplicationKeyIncludeParameter" responses: "200": content: @@ -135057,15 +144342,20 @@ paths: value: data: attributes: - created_at: "2024-01-01T00:00:00+00:00" + created_at: "2020-11-23T10:00:00.000Z" last4: abcd - modified_at: "2024-01-01T00:00:00+00:00" - name: API Key for submitting metrics - id: 00000000-0000-0000-0000-000000000003 - type: api_keys + name: Application Key for managing dashboards + id: 00000000-0000-0000-0000-000000000002 + type: application_keys schema: - $ref: "#/components/schemas/APIKeyResponse" + $ref: "#/components/schemas/ApplicationKeyResponse" description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request "403": content: application/json: @@ -135080,18 +144370,18 @@ paths: description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get API key + summary: Get an application key tags: - Key Management "x-permission": operator: OR permissions: - - api_keys_read + - org_app_keys_read patch: - description: Update an API key. - operationId: UpdateAPIKey + description: Edit an application key + operationId: UpdateApplicationKey parameters: - - $ref: "#/components/parameters/APIKeyId" + - $ref: "#/components/parameters/ApplicationKeyID" requestBody: content: application/json: @@ -135100,11 +144390,15 @@ paths: value: data: attributes: - name: API Key for submitting metrics + name: Application Key for managing dashboards + scopes: + - dashboards_read + - dashboards_write + - dashboards_public_share id: 00112233-4455-6677-8899-aabbccddeeff - type: api_keys + type: application_keys schema: - $ref: "#/components/schemas/APIKeyUpdateRequest" + $ref: "#/components/schemas/ApplicationKeyUpdateRequest" required: true responses: "200": @@ -135115,14 +144409,13 @@ paths: value: data: attributes: - created_at: "2024-01-01T00:00:00+00:00" + created_at: "2020-11-23T10:00:00.000Z" last4: abcd - modified_at: "2024-01-01T00:00:00+00:00" - name: API Key for submitting metrics - id: 00000000-0000-0000-0000-000000000004 - type: api_keys + name: Application Key for managing dashboards + id: 00000000-0000-0000-0000-000000000003 + type: application_keys schema: - $ref: "#/components/schemas/APIKeyResponse" + $ref: "#/components/schemas/ApplicationKeyResponse" description: OK "400": content: @@ -135144,44 +144437,71 @@ paths: description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Edit an API key + summary: Edit an application key tags: - Key Management x-codegen-request-body-name: body "x-permission": operator: OR permissions: - - api_keys_write - /api/v2/apicatalog/api: + - org_app_keys_write + /api/v2/audit/events: get: - deprecated: true - description: List APIs and their IDs. - operationId: ListAPIs + description: |- + List endpoint returns events that match a Audit Logs search query. + [Results are paginated][1]. + + Use this endpoint to see your latest Audit Logs events. + + [1]: https://docs.datadoghq.com/logs/guide/collect-multiple-logs-with-pagination + operationId: ListAuditLogs parameters: - - description: Filter APIs by name + - description: Search query following Audit Logs syntax. + example: "@type:session @application_id:xxxx" in: query - name: query + name: filter[query] required: false schema: - example: "payments" type: string - - description: Number of items per page. + - description: Minimum timestamp for requested events. + example: "2019-01-02T09:42:36.320Z" in: query - name: page[limit] + name: filter[from] required: false schema: - default: 20 - format: int64 - minimum: 1 - type: integer - - description: Offset for pagination. + format: date-time + type: string + - description: Maximum timestamp for requested events. + example: "2019-01-03T09:42:36.320Z" in: query - name: page[offset] + name: filter[to] required: false schema: - default: 0 - format: int64 - minimum: 0 + format: date-time + type: string + - description: Order of events in results. + in: query + name: sort + required: false + schema: + $ref: "#/components/schemas/AuditLogsSort" + - description: |- + List following results with a cursor provided in the previous query. + example: "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" + in: query + name: page[cursor] + required: false + schema: + type: string + - description: Maximum number of events in the response. + example: 25 + in: query + name: page[limit] + required: false + schema: + default: 10 + format: int32 + maximum: 1000 type: integer responses: "200": @@ -135192,169 +144512,180 @@ paths: value: data: - attributes: - name: Payments API - id: abc-123 + message: "User logged in" + service: web-app + tags: + - "team:A" + timestamp: "2024-01-01T00:00:00+00:00" + id: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA + type: audit meta: - pagination: - limit: 20 - offset: 0 - total_count: 1 + elapsed: 132 + request_id: MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR + status: done schema: - $ref: "#/components/schemas/ListAPIsResponse" + $ref: "#/components/schemas/AuditLogsEventsResponse" description: OK "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad request + $ref: "#/components/responses/BadRequestResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - apm_api_catalog_read - summary: List APIs - tags: ["API Management"] + summary: Get a list of Audit Logs events + tags: ["Audit"] + x-pagination: + cursorParam: page[cursor] + cursorPath: meta.page.after + limitParam: page[limit] + resultsPath: data "x-permission": operator: OR permissions: - - apm_api_catalog_read - x-unstable: |- - **Note**: This endpoint is deprecated. - /api/v2/apicatalog/api/{id}: - delete: - deprecated: true - description: Delete a specific API by ID. - operationId: DeleteOpenAPI - parameters: - - description: ID of the API to delete - in: path - name: id - required: true - schema: - $ref: "#/components/schemas/ApiID" + - audit_logs_read + /api/v2/audit/events/search: + post: + description: |- + List endpoint returns Audit Logs events that match an Audit search query. + [Results are paginated][1]. + + Use this endpoint to build complex Audit Logs events filtering and search. + + [1]: https://docs.datadoghq.com/logs/guide/collect-multiple-logs-with-pagination + operationId: SearchAuditLogs + requestBody: + content: + "application/json": + examples: + default: + value: + filter: + from: now-15m + query: "@type:session AND @session.type:user" + to: now + options: + timezone: GMT + page: + cursor: eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ== + limit: 25 + sort: timestamp + schema: + $ref: "#/components/schemas/AuditLogsSearchEventsRequest" + required: false responses: - "204": - description: API deleted successfully - "400": + "200": content: application/json: + examples: + default: + value: + data: + - attributes: + message: "User logged in" + service: web-app + tags: + - team:A + timestamp: "2019-01-02T09:42:36.320Z" + id: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA + type: audit + links: + next: "https://app.datadoghq.com/api/v2/audit/event?filter[query]=foo&page[cursor]=eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" + meta: + elapsed: 132 + request_id: MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR + status: done schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad request + $ref: "#/components/schemas/AuditLogsEventsResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: API not found error + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - apm_api_catalog_write - summary: Delete an API - tags: ["API Management"] + summary: Search Audit Logs events + tags: ["Audit"] + x-codegen-request-body-name: body + x-pagination: + cursorParam: body.page.cursor + cursorPath: meta.page.after + limitParam: body.page.limit + resultsPath: data "x-permission": operator: OR permissions: - - apm_api_catalog_write - x-unstable: |- - **Note**: This endpoint is deprecated. - /api/v2/apicatalog/api/{id}/openapi: + - audit_logs_read + /api/v2/authn_mappings: get: - deprecated: true - description: Retrieve information about a specific API in [OpenAPI](https://spec.openapis.org/oas/latest.html) format file. - operationId: GetOpenAPI + description: List all AuthN Mappings in the org. + operationId: ListAuthNMappings parameters: - - description: ID of the API to retrieve - in: path - name: id - required: true + - $ref: "#/components/parameters/PageSize" + - $ref: "#/components/parameters/PageNumber" + - description: Sort AuthN Mappings depending on the given field. + in: query + name: sort + required: false schema: - $ref: "#/components/schemas/ApiID" + $ref: "#/components/schemas/AuthNMappingsSort" + - description: Filter all mappings by the given string. + in: query + name: filter + required: false + schema: + type: string + - description: Filter by mapping resource type. Defaults to "role" if not specified. + in: query + name: resource_type + schema: + $ref: "#/components/schemas/AuthNMappingResourceType" responses: "200": content: - multipart/form-data: + application/json: examples: default: - value: openapi-spec.yaml + value: + data: + - attributes: + attribute_key: member-of + attribute_value: Development + id: 00000000-0000-0000-0000-000000000003 + type: authn_mappings schema: - format: binary - type: string + $ref: "#/components/schemas/AuthNMappingsResponse" description: OK - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad request "403": content: application/json: schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: API not found error + $ref: "#/components/schemas/APIErrorResponse" + description: Authentication Error "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - apm_api_catalog_read - summary: Get an API - tags: ["API Management"] + summary: List all AuthN Mappings + tags: + - AuthN Mappings "x-permission": operator: OR permissions: - - apm_api_catalog_read - x-unstable: |- - **Note**: This endpoint is deprecated. - put: - deprecated: true - description: |- - Update information about a specific API. The given content will replace all API content of the given ID. - The ID is returned by the create API, or can be found in the URL in the API catalog UI. - operationId: UpdateOpenAPI - parameters: - - description: ID of the API to modify - in: path - name: id - required: true - schema: - $ref: "#/components/schemas/ApiID" + - user_access_read + post: + description: Create an AuthN Mapping. + operationId: CreateAuthNMapping requestBody: content: - multipart/form-data: + application/json: examples: default: value: - openapi_spec_file: openapi-spec.yaml + data: + attributes: + attribute_key: member-of + attribute_value: Development + type: authn_mappings schema: - $ref: "#/components/schemas/OpenAPIFile" + $ref: "#/components/schemas/AuthNMappingCreateRequest" required: true responses: "200": @@ -135365,108 +144696,76 @@ paths: value: data: attributes: - failed_endpoints: [] - id: abc-123 + attribute_key: member-of + attribute_value: Development + id: 00000000-0000-0000-0000-000000000004 + type: authn_mappings schema: - $ref: "#/components/schemas/UpdateOpenAPIResponse" - description: API updated successfully + $ref: "#/components/schemas/AuthNMappingResponse" + description: OK "400": content: application/json: schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad request + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request "403": content: application/json: schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/schemas/APIErrorResponse" + description: Authentication Error "404": content: application/json: schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: API not found error + $ref: "#/components/schemas/APIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - apm_api_catalog_write - summary: Update an API - tags: ["API Management"] + summary: Create an AuthN Mapping + tags: + - AuthN Mappings + x-codegen-request-body-name: body "x-permission": operator: OR permissions: - - apm_api_catalog_write - x-unstable: |- - **Note**: This endpoint is deprecated. - /api/v2/apicatalog/openapi: - post: - deprecated: true - description: |- - Create a new API from the [OpenAPI](https://spec.openapis.org/oas/latest.html) specification given. - See the [API Catalog documentation](https://docs.datadoghq.com/api_catalog/add_metadata/) for additional - information about the possible metadata. - It returns the created API ID. - operationId: CreateOpenAPI - requestBody: - content: - multipart/form-data: - examples: - default: - value: - openapi_spec_file: openapi-spec.yaml - schema: - $ref: "#/components/schemas/OpenAPIFile" - required: true + - user_access_manage + /api/v2/authn_mappings/{authn_mapping_id}: + delete: + description: Delete an AuthN Mapping specified by AuthN Mapping UUID. + operationId: DeleteAuthNMapping + parameters: + - $ref: "#/components/parameters/AuthNMappingID" responses: - "201": - content: - application/json: - examples: - default: - value: - data: - attributes: - failed_endpoints: [] - id: abc-123 - schema: - $ref: "#/components/schemas/CreateOpenAPIResponse" - description: API created successfully - "400": + "204": + description: OK + "403": content: application/json: schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad request - "403": + $ref: "#/components/schemas/APIErrorResponse" + description: Authentication Error + "404": content: application/json: schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/schemas/APIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - apm_api_catalog_write - summary: Create a new API - tags: ["API Management"] + summary: Delete an AuthN Mapping + tags: + - AuthN Mappings "x-permission": operator: OR permissions: - - apm_api_catalog_write - x-unstable: |- - **Note**: This endpoint is deprecated. - /api/v2/apm/config/metrics: + - user_access_manage get: - description: Get the list of configured span-based metrics with their definitions. - operationId: ListSpansMetrics + description: Get an AuthN Mapping specified by the AuthN Mapping UUID. + operationId: GetAuthNMapping + parameters: + - $ref: "#/components/parameters/AuthNMappingID" responses: "200": content: @@ -135475,37 +144774,40 @@ paths: default: value: data: - - attributes: - compute: - aggregation_type: distribution - include_percentiles: false - path: "@duration" - filter: - query: "@http.status_code:200 service:my-service" - group_by: - - path: resource_name - tag_name: resource_name - id: my.metric - type: spans_metrics + attributes: + attribute_key: member-of + attribute_value: Development + id: 00000000-0000-0000-0000-000000000001 + type: authn_mappings schema: - $ref: "#/components/schemas/SpansMetricsResponse" + $ref: "#/components/schemas/AuthNMappingResponse" description: OK "403": - $ref: "#/components/responses/NotAuthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Authentication Error + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get all span-based metrics + summary: Get an AuthN Mapping by UUID tags: - - Spans Metrics + - AuthN Mappings "x-permission": operator: OR permissions: - - apm_read - post: - description: |- - Create a metric based on your ingested spans in your organization. - Returns the span-based metric object from the request body when the request is successful. - operationId: CreateSpansMetric + - user_access_read + patch: + description: Edit an AuthN Mapping. + operationId: UpdateAuthNMapping + parameters: + - $ref: "#/components/parameters/AuthNMappingID" requestBody: content: application/json: @@ -135514,20 +144816,12 @@ paths: value: data: attributes: - compute: - aggregation_type: distribution - include_percentiles: false - path: "@duration" - filter: - query: "@http.status_code:200 service:my-service" - group_by: - - path: resource_name - tag_name: resource_name - id: my.metric - type: spans_metrics + attribute_key: member-of + attribute_value: Development + id: 3653d3c6-0c75-11ea-ad28-fb5701eabc7d + type: authn_mappings schema: - $ref: "#/components/schemas/SpansMetricCreateRequest" - description: The definition of the new span-based metric. + $ref: "#/components/schemas/AuthNMappingUpdateRequest" required: true responses: "200": @@ -135538,63 +144832,84 @@ paths: value: data: attributes: - compute: - aggregation_type: distribution - include_percentiles: false - path: "@duration" - filter: - query: "@http.status_code:200 service:my-service" - group_by: - - path: resource_name - tag_name: resource_name - id: my.metric - type: spans_metrics + attribute_key: member-of + attribute_value: Development + id: 00000000-0000-0000-0000-000000000002 + type: authn_mappings schema: - $ref: "#/components/schemas/SpansMetricResponse" + $ref: "#/components/schemas/AuthNMappingResponse" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request "403": - $ref: "#/components/responses/NotAuthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Authentication Error + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Not Found "409": - $ref: "#/components/responses/ConflictResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Conflict + "422": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Unprocessable Entity "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Create a span-based metric + summary: Edit an AuthN Mapping tags: - - Spans Metrics + - AuthN Mappings x-codegen-request-body-name: body "x-permission": operator: OR permissions: - - apm_generate_metrics - /api/v2/apm/config/metrics/{metric_id}: - delete: - description: Delete a specific span-based metric from your organization. - operationId: DeleteSpansMetric - parameters: - - $ref: "#/components/parameters/SpansMetricIDParameter" - responses: - "204": - description: OK - "403": - $ref: "#/components/responses/NotAuthorizedResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: Delete a span-based metric - tags: - - Spans Metrics - "x-permission": - operator: OR - permissions: - - apm_generate_metrics + - user_access_manage + /api/v2/bits-ai/investigations: get: - description: Get a specific span-based metric from your organization. - operationId: GetSpansMetric + description: List all Bits AI investigations for the organization. + operationId: ListInvestigations parameters: - - $ref: "#/components/parameters/SpansMetricIDParameter" + - description: Offset for pagination. + example: 0 + in: query + name: page[offset] + required: false + schema: + format: int64 + type: integer + - description: Maximum number of investigations to return. + example: 25 + in: query + name: page[limit] + required: false + schema: + default: 25 + format: int64 + maximum: 100 + type: integer + - description: Filter investigations by monitor ID. + example: 12345678 + in: query + name: filter[monitor_id] + required: false + schema: + format: int64 + type: integer responses: "200": content: @@ -135603,41 +144918,55 @@ paths: default: value: data: - attributes: - compute: - aggregation_type: distribution - include_percentiles: false - path: "@duration" - filter: - query: "@http.status_code:200 service:my-service" - group_by: - - path: resource_name - tag_name: resource_name - id: my.metric - type: spans_metrics + - attributes: + status: "conclusive" + title: "Monitor alert investigation for web-server-01" + id: "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d" + type: investigation + links: + first: "https://api.datadoghq.com/api/v2/bits-ai/investigations?page[offset]=0&page[limit]=10" + next: "https://api.datadoghq.com/api/v2/bits-ai/investigations?page[offset]=10&page[limit]=10" + self: "https://api.datadoghq.com/api/v2/bits-ai/investigations?page[offset]=0&page[limit]=10" + meta: + page: + limit: 10 + offset: 0 + total: 50 schema: - $ref: "#/components/schemas/SpansMetricResponse" + $ref: "#/components/schemas/ListInvestigationsResponse" description: OK - "403": - $ref: "#/components/responses/NotAuthorizedResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get a span-based metric + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - bits_investigations_read + summary: List Bits AI investigations tags: - - Spans Metrics + - Bits AI + x-pagination: + limitParam: page[limit] + pageOffsetParam: page[offset] + resultsPath: data "x-permission": operator: OR permissions: - - apm_read - patch: + - bits_investigations_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + post: description: |- - Update a specific span-based metric from your organization. - Returns the span-based metric object from the request body when the request is successful. - operationId: UpdateSpansMetric - parameters: - - $ref: "#/components/parameters/SpansMetricIDParameter" + Trigger a Bits AI investigation from a monitor alert or a general investigation. + The `monitors_read` permission is required when the trigger type is `monitor_alert_trigger`. + operationId: TriggerInvestigation requestBody: content: application/json: @@ -135646,17 +144975,27 @@ paths: value: data: attributes: - compute: - include_percentiles: false - filter: - query: "@http.status_code:200 service:my-service" - group_by: - - path: resource_name - tag_name: resource_name - type: spans_metrics + trigger: + monitor_alert_trigger: + event_id: "1234567890123456789" + event_ts: 1700000000000 + monitor_id: 12345678 + type: monitor_alert_trigger + type: trigger_investigation_request + general_investigation: + value: + data: + attributes: + trigger: + general_investigation: + description: "Checkout latency has been elevated for the past hour." + tags: + - "service:checkout" + type: general_investigation + type: trigger_investigation_request schema: - $ref: "#/components/schemas/SpansMetricUpdateRequest" - description: New definition of the span-based metric. + $ref: "#/components/schemas/TriggerInvestigationRequest" + description: Trigger investigation request body. required: true responses: "200": @@ -135667,40 +145006,124 @@ paths: value: data: attributes: - compute: - aggregation_type: distribution - include_percentiles: false - path: "@duration" - filter: - query: "@http.status_code:200 service:my-service" - group_by: - - path: resource_name - tag_name: resource_name - id: my.metric - type: spans_metrics + investigation_id: "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d" + id: "f5e6a7b8-c9d0-1e2f-3a4b-5c6d7e8f9a0b" + type: trigger_investigation_response schema: - $ref: "#/components/schemas/SpansMetricResponse" + $ref: "#/components/schemas/TriggerInvestigationResponse" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" - "403": - $ref: "#/components/responses/NotAuthorizedResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Update a span-based metric + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - bits_investigations_write + - monitors_read + summary: Trigger a Bits AI investigation tags: - - Spans Metrics + - Bits AI x-codegen-request-body-name: body + "x-permission": + operator: AND + permissions: + - bits_investigations_write + - monitors_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/bits-ai/investigations/{id}: + get: + description: Get a specific Bits AI investigation by ID. + operationId: GetInvestigation + parameters: + - description: The ID of the investigation. + example: "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d" + in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + conclusions: + - description: "The investigation found that a memory leak in payments-service caused CPU usage to spike above 95% starting at 14:32 UTC." + summary: "CPU usage exceeded 95% for over 10 minutes on web-server-01." + title: "High CPU usage detected on web-server-01" + status: "conclusive" + title: "Monitor alert investigation for web-server-01" + id: "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d" + type: investigation + links: + self: "https://app.datadoghq.com/bits-ai/investigations/a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d" + schema: + $ref: "#/components/schemas/GetInvestigationResponse" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - bits_investigations_read + summary: Get a Bits AI investigation + tags: + - Bits AI "x-permission": operator: OR permissions: - - apm_generate_metrics - /api/v2/apm/config/retention-filters: + - bits_investigations_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/cases: get: - description: Get the list of APM retention filters. - operationId: ListApmRetentionFilters + description: >- + Search cases. + operationId: SearchCases + parameters: + - $ref: "#/components/parameters/PageSize" + - $ref: "#/components/parameters/PageNumber" + - $ref: "#/components/parameters/CaseSortableFieldParameter" + - description: Search query + in: query + name: filter + required: false + schema: + example: "status:open (team:case-management OR team:event-management)" + type: string + - description: Specify if order is ascending or not + in: query + name: sort[asc] + required: false + schema: + default: false + type: boolean responses: "200": content: @@ -135710,35 +145133,53 @@ paths: value: data: - attributes: - enabled: true - filter: - query: "@http.status_code:200 service:my-service" - filter_type: spans-sampling-processor - name: my retention filter - rate: 1.0 - id: abc-123 - type: apm_retention_filter + created_at: "2024-01-01T00:00:00+00:00" + key: CASEM-1234 + priority: NOT_DEFINED + status: OPEN + status_name: Open + title: Memory leak investigation on API + id: 00000000-0000-0000-0000-000000000001 + relationships: + project: + data: + id: 00000000-0000-0000-0000-000000000002 + type: project + type: case + meta: + page: + current: 1 + size: 10 + total: 1 schema: - $ref: "#/components/schemas/RetentionFiltersResponse" + $ref: "#/components/schemas/CasesResponse" description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/NotAuthorizedResponse" + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: List all APM retention filters + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_read + summary: Search cases tags: - - APM Retention Filters - "x-permission": - operator: OR - permissions: - - apm_retention_filter_read + - Case Management + x-pagination: + limitParam: page[size] + pageParam: page[number] + pageStart: 1 + resultsPath: data post: - description: |- - Create a retention filter to index spans in your organization. - Returns the retention filter definition when the request is successful. - - Default filters with types spans-errors-sampling-processor and spans-appsec-sampling-processor cannot be created. - operationId: CreateApmRetentionFilter + description: Create a Case + operationId: CreateCase requestBody: content: application/json: @@ -135747,20 +145188,26 @@ paths: value: data: attributes: - enabled: true - filter: - query: "@http.status_code:200 service:my-service" - filter_type: spans-sampling-processor - name: my retention filter - rate: 1.0 - trace_rate: 1.0 - type: apm_retention_filter + priority: NOT_DEFINED + status_name: Open + title: Security breach investigation + type_id: 3b010bde-09ce-4449-b745-71dd5f861963 + relationships: + assignee: + data: + id: 00000000-0000-0000-0000-000000000000 + type: user + project: + data: + id: e555e290-ed65-49bd-ae18-8acbfcf18db7 + type: project + type: case schema: - $ref: "#/components/schemas/RetentionFilterCreateRequest" - description: The definition of the new retention filter. + $ref: "#/components/schemas/CaseCreateRequest" + description: Case payload required: true responses: - "200": + "201": content: application/json: examples: @@ -135768,37 +145215,44 @@ paths: value: data: attributes: - enabled: true - filter: - query: "@http.status_code:200 service:my-service" - filter_type: spans-sampling-processor - name: my retention filter - rate: 1.0 - id: abc-123 - type: apm_retention_filter + created_at: "2024-01-01T00:00:00+00:00" + key: CASEM-1234 + priority: NOT_DEFINED + status: OPEN + status_name: Open + title: Memory leak investigation on API + id: 00000000-0000-0000-0000-000000000001 + relationships: + project: + data: + id: 00000000-0000-0000-0000-000000000002 + type: project + type: case schema: - $ref: "#/components/schemas/RetentionFilterCreateResponse" - description: OK + $ref: "#/components/schemas/CaseResponse" + description: CREATED "400": $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/NotAuthorizedResponse" - "409": - $ref: "#/components/responses/ConflictResponse" + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Create a retention filter + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Create a case tags: - - APM Retention Filters - x-codegen-request-body-name: body - "x-permission": - operator: OR - permissions: - - apm_retention_filter_write - /api/v2/apm/config/retention-filters-execution-order: - put: - description: Re-order the execution order of retention filters. - operationId: ReorderApmRetentionFilters + - Case Management + /api/v2/cases/aggregate: + post: + description: Performs an aggregation query over cases, grouping results by specified fields and returning counts per group along with a total. Useful for dashboards and analytics. + operationId: AggregateCases requestBody: content: application/json: @@ -135806,59 +145260,17 @@ paths: default: value: data: - - id: 7RBOb7dLSYWI01yc3pIH8w - type: apm_retention_filter + attributes: + group_by: + groups: + - "status" + limit: 14 + query_filter: "service:case-api" + type: aggregate schema: - $ref: "#/components/schemas/ReorderRetentionFiltersRequest" - description: The list of retention filters in the new order. + $ref: "#/components/schemas/CaseAggregateRequest" + description: Case aggregate request payload. required: true - responses: - "200": - description: OK - "400": - $ref: "#/components/responses/BadRequestResponse" - "403": - $ref: "#/components/responses/NotAuthorizedResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: Re-order retention filters - tags: - - APM Retention Filters - x-codegen-request-body-name: body - "x-permission": - operator: OR - permissions: - - apm_retention_filter_write - /api/v2/apm/config/retention-filters/{filter_id}: - delete: - description: |- - Delete a specific retention filter from your organization. - - Default filters with types spans-errors-sampling-processor and spans-appsec-sampling-processor cannot be deleted. - operationId: DeleteApmRetentionFilter - parameters: - - $ref: "#/components/parameters/RetentionFilterIdParam" - responses: - "200": - description: OK - "403": - $ref: "#/components/responses/NotAuthorizedResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: Delete a retention filter - tags: - - APM Retention Filters - "x-permission": - operator: OR - permissions: - - apm_retention_filter_write - get: - description: Get an APM retention filter. - operationId: GetApmRetentionFilter - parameters: - - $ref: "#/components/parameters/RetentionFilterIdParam" responses: "200": content: @@ -135868,38 +145280,38 @@ paths: value: data: attributes: - enabled: true - filter: - query: "@http.status_code:200 service:my-service" - filter_type: spans-sampling-processor - name: my retention filter - rate: 1.0 - id: abc-123 - type: apm_retention_filter + groups: + - group: OPEN + value: + - 42.0 + total: 100.0 + id: agg-result-001 + type: aggregate schema: - $ref: "#/components/schemas/RetentionFilterResponse" + $ref: "#/components/schemas/CaseAggregateResponse" description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/NotAuthorizedResponse" + $ref: "#/components/responses/ForbiddenResponse" "404": $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get a given APM retention filter + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_read + summary: Aggregate cases tags: - - APM Retention Filters - "x-permission": - operator: OR - permissions: - - apm_retention_filter_read - put: - description: |- - Update a retention filter from your organization. - - Default filters (filters with types spans-errors-sampling-processor and spans-appsec-sampling-processor) cannot be renamed or removed. - operationId: UpdateApmRetentionFilter - parameters: - - $ref: "#/components/parameters/RetentionFilterIdParam" + - Case Management + /api/v2/cases/bulk: + post: + description: Applies a single action (such as changing priority, status, assignment, or archiving) to multiple cases at once. The list of case IDs and the action type with its payload are specified in the request body. + operationId: BulkUpdateCases requestBody: content: application/json: @@ -135908,19 +145320,63 @@ paths: value: data: attributes: - enabled: true - filter: - query: "@http.status_code:200 service:my-service" - filter_type: spans-sampling-processor - name: my retention filter - rate: 1.0 - trace_rate: 1.0 - id: retention-filter-id - type: apm_retention_filter + case_ids: + - "case-id-1" + - "case-id-2" + payload: + priority: "P1" + type: priority + type: bulk schema: - $ref: "#/components/schemas/RetentionFilterUpdateRequest" - description: The updated definition of the retention filter. + $ref: "#/components/schemas/CaseBulkUpdateRequest" + description: Case bulk update request payload. required: true + responses: + "200": + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Bulk update cases + tags: + - Case Management + /api/v2/cases/count: + get: + description: Returns case counts, optionally grouped by one or more fields (for example, status, priority). Supports a query filter to narrow the scope. + operationId: CountCases + parameters: + - description: Filter query for cases. + in: query + name: query_filter + required: false + schema: + type: string + - description: Comma-separated fields to group by. + example: "status,priority" + in: query + name: group_bys + required: false + schema: + type: string + - description: Maximum facet values to return. + in: query + name: limit + required: false + schema: + format: int64 + type: integer responses: "200": content: @@ -135930,42 +145386,59 @@ paths: value: data: attributes: - enabled: true - filter: - query: "@http.status_code:200 service:my-service" - filter_type: spans-sampling-processor - name: my retention filter - rate: 1.0 - id: abc-123 - type: apm_retention_filter + groups: + - group: status + group_values: + - count: 42 + value: OPEN + id: count-result-001 + type: count schema: - $ref: "#/components/schemas/RetentionFilterResponse" + $ref: "#/components/schemas/CaseCountResponse" description: OK "400": $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/NotAuthorizedResponse" + $ref: "#/components/responses/ForbiddenResponse" "404": $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Update a retention filter + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_read + summary: Count cases tags: - - APM Retention Filters - x-codegen-request-body-name: body - "x-permission": - operator: OR - permissions: - - apm_retention_filter_write - /api/v2/apm/services: + - Case Management + /api/v2/cases/link: get: - operationId: GetServiceList + description: Returns all links associated with a case. Links define relationships (for example, BLOCKS) between cases. Requires entity_type and entity_id query parameters. + operationId: ListCaseLinks parameters: - - description: Filter services by environment. Can be set to `*` to return all services across all environments. + - description: "The entity type to look up links for. Use `CASE` to find links for a specific case." in: query - name: filter[env] + name: entity_type + required: true + schema: + example: "CASE" + type: string + - description: "The UUID of the entity to look up links for." + in: query + name: entity_id required: true schema: + example: "bf0cbac6-4c16-4cfb-b6bf-ca5e0ec37a4f" + type: string + - description: "Optional filter to only return links of a specific relationship type (for example, `BLOCKS` or `CAUSES`)." + in: query + name: relationship + required: false + schema: + example: "BLOCKS" type: string responses: "200": @@ -135975,31 +145448,38 @@ paths: default: value: data: - attributes: - metadata: - - isTraced: true - isUsm: false - services: - - test-service - id: abc-123 - type: services_list + - attributes: + child_entity_id: 4417921d-0866-4a38-822c-6f2a0f65f77d + child_entity_type: CASE + parent_entity_id: bf0cbac6-4c16-4cfb-b6bf-ca5e0ec37a4f + parent_entity_type: CASE + relationship: BLOCKS + id: 804cd682-55f6-4541-ab00-b608b282ea7d + type: link schema: - $ref: "#/components/schemas/ServiceList" + $ref: "#/components/schemas/CaseLinksResponse" description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - apm_read - summary: Get service list + - cases_read + summary: List case links tags: - - APM - /api/v2/app-builder/apps: - delete: - description: Delete multiple apps in a single request from a list of app IDs. This API requires a [registered application key](https://docs.datadoghq.com/api/latest/action-connection/#register-a-new-app-key). Alternatively, you can configure these permissions [in the UI](https://docs.datadoghq.com/account_management/api-app-keys/#actions-api-access). - operationId: DeleteApps + - Case Management + post: + description: Creates a directional link between two cases (for example, case A blocks case B). The parent and child cases and their relationship type must be specified. + operationId: CreateCaseLink requestBody: content: application/json: @@ -136007,133 +145487,86 @@ paths: default: value: data: - - id: aea2ed17-b45f-40d0-ba59-c86b7972c901 - type: appDefinitions - - id: f69bb8be-6168-4fe7-a30d-370256b6504a - type: appDefinitions - - id: ab1ed73e-13ad-4426-b0df-a0ff8876a088 - type: appDefinitions + attributes: + child_entity_id: 4417921d-0866-4a38-822c-6f2a0f65f77d + child_entity_type: CASE + parent_entity_id: bf0cbac6-4c16-4cfb-b6bf-ca5e0ec37a4f + parent_entity_type: CASE + relationship: BLOCKS + type: link schema: - $ref: "#/components/schemas/DeleteAppsRequest" + $ref: "#/components/schemas/CaseLinkCreateRequest" + description: "Case link create request." required: true responses: - "200": + "201": content: application/json: examples: default: value: data: - - id: 00000000-0000-0000-0000-000000000001 - type: appDefinitions + attributes: + child_entity_id: 4417921d-0866-4a38-822c-6f2a0f65f77d + child_entity_type: CASE + parent_entity_id: bf0cbac6-4c16-4cfb-b6bf-ca5e0ec37a4f + parent_entity_type: CASE + relationship: BLOCKS + id: 804cd682-55f6-4541-ab00-b608b282ea7d + type: link schema: - $ref: "#/components/schemas/DeleteAppsResponse" - description: OK + $ref: "#/components/schemas/CaseLinkResponse" + description: Created "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/ForbiddenResponse" "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Delete Multiple Apps + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Create a case link tags: - - App Builder - "x-permission": - operator: OR - permissions: - - apps_write - get: - description: List all apps, with optional filters and sorting. This endpoint is paginated. Only basic app information such as the app ID, name, and description is returned by this endpoint. This API requires a [registered application key](https://docs.datadoghq.com/api/latest/action-connection/#register-a-new-app-key). Alternatively, you can configure these permissions [in the UI](https://docs.datadoghq.com/account_management/api-app-keys/#actions-api-access). - operationId: ListApps + - Case Management + /api/v2/cases/link/{link_id}: + delete: + description: Deletes an existing link between cases by link ID. + operationId: DeleteCaseLink parameters: - - description: The number of apps to return per page. - in: query - name: limit - required: false - schema: - format: int64 - type: integer - - description: The page number to return. - in: query - name: page - required: false - schema: - format: int64 - type: integer - - description: Filter apps by the app creator. Usually the user's email. - in: query - name: filter[user_name] - required: false - schema: - type: string - - description: Filter apps by the app creator's UUID. - example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 - in: query - name: filter[user_uuid] - required: false - schema: - format: uuid - type: string - - description: Filter by app name. - in: query - name: filter[name] - required: false - schema: - type: string - - description: Filter apps by the app name or the app creator. - in: query - name: filter[query] - required: false - schema: - type: string - - description: Filter apps by whether they are published. - in: query - name: filter[deployed] - required: false - schema: - type: boolean - - description: Filter apps by tags. - in: query - name: filter[tags] - required: false - schema: - type: string - - description: Filter apps by whether you have added them to your favorites. - in: query - name: filter[favorite] - required: false - schema: - type: boolean - - description: Filter apps by whether they are enabled for self-service. - in: query - name: filter[self_service] - required: false - schema: - type: boolean - - description: The fields and direction to sort apps by. - explode: false - in: query - name: sort - required: false - schema: - items: - $ref: "#/components/schemas/AppsSortField" - type: array - style: form + - $ref: "#/components/parameters/LinkIDPathParameter" + responses: + "204": + description: No Content + "400": + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Delete a case link + tags: + - Case Management + /api/v2/cases/projects: + get: + description: >- + Get all projects. + operationId: GetProjects responses: "200": content: @@ -136143,45 +145576,34 @@ paths: value: data: - attributes: - description: A sample app - favorite: false - name: My App - selfService: false - tags: - - "team:webshop" - id: 00000000-0000-0000-0000-000000000001 - type: appDefinitions - meta: - page: - totalCount: 1 - totalFilteredCount: 1 + key: SEC + name: Security Investigation + id: 00000000-0000-0000-0000-000000000002 + type: project schema: - $ref: "#/components/schemas/ListAppsResponse" + $ref: "#/components/schemas/ProjectsResponse" description: OK "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: List Apps + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_read + summary: Get all projects tags: - - App Builder - "x-permission": - operator: OR - permissions: - - apps_run + - Case Management post: - description: Create a new app, returning the app ID. This API requires a [registered application key](https://docs.datadoghq.com/api/latest/action-connection/#register-a-new-app-key). Alternatively, you can configure these permissions [in the UI](https://docs.datadoghq.com/account_management/api-app-keys/#actions-api-access). - operationId: CreateApp + description: Create a project. + operationId: CreateProject requestBody: content: application/json: @@ -136190,14 +145612,12 @@ paths: value: data: attributes: - components: [] - description: This is a simple example app - name: Example App - queries: [] - rootInstanceName: grid0 - type: appDefinitions + key: SEC + name: Security Investigation + type: project schema: - $ref: "#/components/schemas/CreateAppRequest" + $ref: "#/components/schemas/ProjectCreateRequest" + description: Project payload. required: true responses: "201": @@ -136207,47 +145627,36 @@ paths: default: value: data: + attributes: + key: SEC + name: Security Investigation id: 00000000-0000-0000-0000-000000000001 - type: appDefinitions + type: project schema: - $ref: "#/components/schemas/CreateAppResponse" - description: Created + $ref: "#/components/schemas/ProjectResponse" + description: CREATED "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Create App + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Create a project tags: - - App Builder - "x-permission": - operator: AND - permissions: - - apps_write - - connections_resolve - - workflows_run - /api/v2/app-builder/apps/{app_id}: - delete: - description: Delete a single app. This API requires a [registered application key](https://docs.datadoghq.com/api/latest/action-connection/#register-a-new-app-key). Alternatively, you can configure these permissions [in the UI](https://docs.datadoghq.com/account_management/api-app-keys/#actions-api-access). - operationId: DeleteApp - parameters: - - description: The ID of the app to delete. - example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 - in: path - name: app_id - required: true - schema: - format: uuid - type: string + - Case Management + /api/v2/cases/projects/favorites: + get: + description: Returns the list of case projects that the current authenticated user has marked as favorites. + operationId: ListUserCaseProjectFavorites responses: "200": content: @@ -136256,62 +145665,62 @@ paths: default: value: data: - id: 00000000-0000-0000-0000-000000000002 - type: appDefinitions + - id: e555e290-ed65-49bd-ae18-8acbfcf18db7 + type: project_favorite schema: - $ref: "#/components/schemas/DeleteAppResponse" + $ref: "#/components/schemas/ProjectFavoritesResponse" description: OK "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_read + summary: List project favorites + tags: + - Case Management + /api/v2/cases/projects/{project_id}: + delete: + description: Remove a project using the project's `id`. + operationId: DeleteProject + parameters: + - $ref: "#/components/parameters/ProjectIDPathParameter" + responses: + "204": + description: No Content + "403": + $ref: "#/components/responses/ForbiddenResponse" "404": content: application/json: schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found - "410": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Gone + $ref: "#/components/schemas/APIErrorResponse" + description: API error response "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Delete App + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Remove a project tags: - - App Builder - "x-permission": - operator: OR - permissions: - - apps_write + - Case Management get: - description: Get the full definition of an app. This API requires a [registered application key](https://docs.datadoghq.com/api/latest/action-connection/#register-a-new-app-key). Alternatively, you can configure these permissions [in the UI](https://docs.datadoghq.com/account_management/api-app-keys/#actions-api-access). - operationId: GetApp + description: >- + Get the details of a project by `project_id`. + operationId: GetProject parameters: - - description: The ID of the app to retrieve. - example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 - in: path - name: app_id - required: true - schema: - format: uuid - type: string - - description: The version number of the app to retrieve. If not specified, the latest version is returned. Version numbers start at 1 and increment with each update. The special values `latest` and `deployed` can be used to retrieve the latest version or the published version, respectively. - in: query - name: version - required: false - schema: - type: string + - $ref: "#/components/parameters/ProjectIDPathParameter" responses: "200": content: @@ -136321,62 +145730,37 @@ paths: value: data: attributes: - components: [] - description: A sample app - name: Example App - queries: [] - rootInstanceName: grid0 - id: 00000000-0000-0000-0000-000000000001 - type: appDefinitions + key: SEC + name: Security Investigation + id: 00000000-0000-0000-0000-000000000003 + type: project schema: - $ref: "#/components/schemas/GetAppResponse" + $ref: "#/components/schemas/ProjectResponse" description: OK "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/ForbiddenResponse" "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found - "410": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Gone + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get App + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_read + summary: Get the details of a project tags: - - App Builder - "x-permission": - operator: AND - permissions: - - apps_run - - connections_read + - Case Management patch: - description: Update an existing app. This creates a new version of the app. This API requires a [registered application key](https://docs.datadoghq.com/api/latest/action-connection/#register-a-new-app-key). Alternatively, you can configure these permissions [in the UI](https://docs.datadoghq.com/account_management/api-app-keys/#actions-api-access). - operationId: UpdateApp + description: >- + Update a project. + operationId: UpdateProject parameters: - - description: The ID of the app to update. - example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 - in: path - name: app_id - required: true - schema: - format: uuid - type: string + - $ref: "#/components/parameters/ProjectIDPathParameter" requestBody: content: application/json: @@ -136384,16 +145768,10 @@ paths: default: value: data: - attributes: - components: [] - description: This is a simple example app - name: Example App - queries: [] - rootInstanceName: grid0 - id: 9e20cbaf-68da-45a6-9ccf-54193ac29fa5 - type: appDefinitions + type: project schema: - $ref: "#/components/schemas/UpdateAppRequest" + $ref: "#/components/schemas/ProjectUpdateRequest" + description: Project payload. required: true responses: "200": @@ -136404,230 +145782,97 @@ paths: value: data: attributes: - components: [] - description: This is a simple example app - name: Example App - queries: [] - rootInstanceName: grid0 - id: 00000000-0000-0000-0000-000000000001 - type: appDefinitions - schema: - $ref: "#/components/schemas/UpdateAppResponse" - description: OK - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: Update App - tags: - - App Builder - "x-permission": - operator: AND - permissions: - - apps_write - - connections_resolve - - workflows_run - /api/v2/app-builder/apps/{app_id}/deployment: - delete: - description: Unpublish an app, removing the live version of the app. Unpublishing creates a new instance of a `deployment` object on the app, with a nil `app_version_id` (`00000000-0000-0000-0000-000000000000`). The app can still be updated and published again in the future. This API requires a [registered application key](https://docs.datadoghq.com/api/latest/action-connection/#register-a-new-app-key). Alternatively, you can configure these permissions [in the UI](https://docs.datadoghq.com/account_management/api-app-keys/#actions-api-access). - operationId: UnpublishApp - parameters: - - description: The ID of the app to unpublish. - example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 - in: path - name: app_id - required: true - schema: - format: uuid - type: string - responses: - "200": - content: - application/json: - examples: - default: - value: - data: - attributes: - app_version_id: 00000000-0000-0000-0000-000000000000 - id: 00000000-0000-0000-0000-000000000001 - type: deployment + key: SEC + name: Security Investigation + id: 00000000-0000-0000-0000-000000000004 + type: project schema: - $ref: "#/components/schemas/UnpublishAppResponse" + $ref: "#/components/schemas/ProjectResponse" description: OK "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/ForbiddenResponse" "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Unpublish App + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Update a project tags: - - App Builder - "x-permission": - operator: OR - permissions: - - apps_write - post: - description: Publish an app for use by other users. To ensure the app is accessible to the correct users, you also need to set a [Restriction Policy](https://docs.datadoghq.com/api/latest/restriction-policies/) on the app if a policy does not yet exist. This API requires a [registered application key](https://docs.datadoghq.com/api/latest/action-connection/#register-a-new-app-key). Alternatively, you can configure these permissions [in the UI](https://docs.datadoghq.com/account_management/api-app-keys/#actions-api-access). - operationId: PublishApp + - Case Management + /api/v2/cases/projects/{project_id}/favorites: + delete: + description: Removes a case project from the current user's favorites list. + operationId: UnfavoriteCaseProject parameters: - - description: The ID of the app to publish. - example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 - in: path - name: app_id - required: true - schema: - format: uuid - type: string + - $ref: "#/components/parameters/ProjectIDPathParameter" responses: - "201": - content: - application/json: - examples: - default: - value: - data: - attributes: - app_version_id: 00000000-0000-0000-0000-000000000001 - id: 00000000-0000-0000-0000-000000000001 - type: deployment - schema: - $ref: "#/components/schemas/PublishAppResponse" - description: Created + "204": + description: No Content "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/ForbiddenResponse" "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Publish App - tags: - - App Builder - "x-permission": - operator: OR - permissions: - - apps_write - /api/v2/app-builder/apps/{app_id}/favorite: - patch: - description: Add or remove an app from the current user's favorites. Favorited apps can be filtered for using the `filter[favorite]` query parameter on the [List Apps](https://docs.datadoghq.com/api/latest/app-builder/#list-apps) endpoint. - operationId: UpdateAppFavorite + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Unfavorite a project + tags: + - Case Management + post: + description: Marks a case project as a favorite for the current authenticated user. + operationId: FavoriteCaseProject parameters: - - description: The ID of the app. - example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 - in: path - name: app_id - required: true - schema: - format: uuid - type: string - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - favorite: true - type: favorites - schema: - $ref: "#/components/schemas/UpdateAppFavoriteRequest" - required: true + - $ref: "#/components/parameters/ProjectIDPathParameter" responses: "204": description: No Content "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/ForbiddenResponse" "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Update App Favorite Status + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Favorite a project tags: - - App Builder - "x-permission": - operator: OR - permissions: - - apps_run - /api/v2/app-builder/apps/{app_id}/protection-level: - patch: - description: Update the publication protection level of an app. When set to `approval_required`, future publishes must go through an approval workflow before going live. - operationId: UpdateProtectionLevel + - Case Management + /api/v2/cases/projects/{project_id}/notification_rules: + get: + description: >- + Get all notification rules for a project. + operationId: GetProjectNotificationRules parameters: - - description: The ID of the app. - example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + - description: Project UUID + example: "e555e290-ed65-49bd-ae18-8acbfcf18db7" in: path - name: app_id + name: project_id required: true schema: - format: uuid type: string - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - protectionLevel: approval_required - type: protectionLevel - schema: - $ref: "#/components/schemas/UpdateAppProtectionLevelRequest" - required: true responses: "200": content: @@ -136636,58 +145881,49 @@ paths: default: value: data: - attributes: - components: [] - description: This is a simple example app - favorite: false - name: Example App - queries: [] - rootInstanceName: grid0 - tags: [] - id: 65bb1f25-52e1-4510-9f8d-22d1516ed693 - type: appDefinitions + - attributes: + is_enabled: true + query: "" + recipients: + - data: + email: test@example.com + type: EMAIL + triggers: + - data: {} + type: CASE_CREATED + id: 00000000-0000-0000-0000-000000000001 + type: notification_rule schema: - $ref: "#/components/schemas/UpdateAppResponse" + $ref: "#/components/schemas/CaseNotificationRulesResponse" description: OK "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/ForbiddenResponse" "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Update App Protection Level + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_read + summary: Get notification rules tags: - - App Builder - "x-permission": - operator: OR - permissions: - - apps_write - /api/v2/app-builder/apps/{app_id}/publish-request: + - Case Management post: - description: Create a publish request to ask for approval to publish an app whose protection level is `approval_required`. Publishing happens automatically once the request is approved by a user with the appropriate permissions. - operationId: CreatePublishRequest + description: Create a notification rule for a project. + operationId: CreateProjectNotificationRule parameters: - - description: The ID of the app. - example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + - description: Project UUID + example: "e555e290-ed65-49bd-ae18-8acbfcf18db7" in: path - name: app_id + name: project_id required: true schema: - format: uuid type: string requestBody: content: @@ -136697,11 +145933,14 @@ paths: value: data: attributes: - description: Adds new dashboard widgets and a few bug fixes. - title: Release v1.2 to production - type: publishRequest + recipients: + - type: EMAIL + triggers: + - type: CASE_CREATED + type: notification_rule schema: - $ref: "#/components/schemas/CreatePublishRequestRequest" + $ref: "#/components/schemas/CaseNotificationRuleCreateRequest" + description: Notification rule payload required: true responses: "201": @@ -136712,124 +145951,85 @@ paths: value: data: attributes: - app_version_id: 9e20cbaf-68da-45a6-9ccf-54193ac29fa5 - id: 65bb1f25-52e1-4510-9f8d-22d1516ed693 - meta: - created_at: "2026-04-01T12:00:00Z" - user_name: jane.doe@example.com - user_uuid: 65bb1f25-52e1-4510-9f8d-22d1516ed693 - type: deployment + is_enabled: true + query: "" + recipients: + - data: + email: test@example.com + type: EMAIL + triggers: + - data: {} + type: CASE_CREATED + id: 00000000-0000-0000-0000-000000000002 + type: notification_rule schema: - $ref: "#/components/schemas/PublishAppResponse" - description: Created + $ref: "#/components/schemas/CaseNotificationRuleResponse" + description: CREATED "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/ForbiddenResponse" "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Create Publish Request + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Create a notification rule tags: - - App Builder - "x-permission": - operator: OR - permissions: - - apps_write - /api/v2/app-builder/apps/{app_id}/revert: - post: - description: Revert an app to a previous version. The version to revert to is selected through the `version` query parameter. The reverted version becomes the new latest version of the app. - operationId: RevertApp + - Case Management + /api/v2/cases/projects/{project_id}/notification_rules/{notification_rule_id}: + delete: + description: Delete a notification rule using the notification rule's `id`. + operationId: DeleteProjectNotificationRule parameters: - - description: The ID of the app. - example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + - description: Project UUID + example: "e555e290-ed65-49bd-ae18-8acbfcf18db7" in: path - name: app_id - required: true - schema: - format: uuid - type: string - - description: The version number of the app to revert to. Cannot be `latest`. The special value `deployed` can be used to revert to the currently published version. - example: "2" - in: query - name: version + name: project_id required: true schema: type: string + - $ref: "#/components/parameters/NotificationRuleIDPathParameter" responses: - "200": - content: - application/json: - examples: - default: - value: - data: - attributes: - components: [] - description: This is a simple example app - favorite: false - name: Example App - queries: [] - rootInstanceName: grid0 - tags: [] - id: 65bb1f25-52e1-4510-9f8d-22d1516ed693 - type: appDefinitions - schema: - $ref: "#/components/schemas/UpdateAppResponse" - description: OK - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + "204": + description: No Content "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/ForbiddenResponse" "404": content: application/json: schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + $ref: "#/components/schemas/APIErrorResponse" + description: API error response "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Revert App + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Delete a notification rule tags: - - App Builder - "x-permission": - operator: OR - permissions: - - apps_write - /api/v2/app-builder/apps/{app_id}/self-service: - patch: - description: Enable or disable self-service for an app. Self-service apps can be discovered and run by users in your organization without explicit access being granted. - operationId: UpdateAppSelfService + - Case Management + put: + description: >- + Update a notification rule. + operationId: UpdateProjectNotificationRule parameters: - - description: The ID of the app. - example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + - description: Project UUID + example: "e555e290-ed65-49bd-ae18-8acbfcf18db7" in: path - name: app_id + name: project_id required: true schema: - format: uuid type: string + - $ref: "#/components/parameters/NotificationRuleIDPathParameter" requestBody: content: application/json: @@ -136838,53 +146038,99 @@ paths: value: data: attributes: - selfService: true - type: selfService + recipients: + - type: EMAIL + triggers: + - type: CASE_CREATED + type: notification_rule schema: - $ref: "#/components/schemas/UpdateAppSelfServiceRequest" + $ref: "#/components/schemas/CaseNotificationRuleUpdateRequest" + description: Notification rule payload required: true responses: "204": description: No Content "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/ForbiddenResponse" "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Update a notification rule + tags: + - Case Management + /api/v2/cases/projects/{project_id}/rules: + get: + description: Returns all automation rules configured for a project. Automation rules allow automatic actions to be triggered by case events like creation, status transitions, or attribute changes. + operationId: ListCaseAutomationRules + parameters: + - description: The UUID of the project that owns the automation rules. + example: "e555e290-ed65-49bd-ae18-8acbfcf18db7" + in: path + name: project_id + required: true + schema: + type: string + responses: + "200": content: application/json: + examples: + default: + value: + data: + - attributes: + action: + data: + handle: workflow-handle-123 + type: EXECUTE_WORKFLOW + created_at: "2024-01-01T00:00:00.000Z" + name: Auto-assign workflow + state: ENABLED + trigger: + type: CASE_CREATED + id: e6773723-fe58-49ff-9975-dff00f14e28d + type: rule schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + $ref: "#/components/schemas/AutomationRulesResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Update App Self-Service Status + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_read + summary: List automation rules tags: - - App Builder - "x-permission": - operator: OR - permissions: - - apps_write - /api/v2/app-builder/apps/{app_id}/tags: - patch: - description: Replace the tags on an app. The provided list overwrites the existing tags entirely; tags not present in the request body are removed. - operationId: UpdateAppTags + - Case Management + post: + description: Creates an automation rule for a project. The rule defines a trigger event (for example, case created, status transitioned) and an action to execute. + operationId: CreateCaseAutomationRule parameters: - - description: The ID of the app. - example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + - description: The UUID of the project that owns the automation rules. + example: "e555e290-ed65-49bd-ae18-8acbfcf18db7" in: path - name: app_id + name: project_id required: true schema: - format: uuid type: string requestBody: content: @@ -136894,133 +146140,102 @@ paths: value: data: attributes: - tags: - - team:platform - - service:ops - type: tags + action: + data: + handle: workflow-handle-123 + type: EXECUTE_WORKFLOW + name: Auto-assign workflow + state: ENABLED + trigger: + type: CASE_CREATED + type: rule schema: - $ref: "#/components/schemas/UpdateAppTagsRequest" + $ref: "#/components/schemas/AutomationRuleCreateRequest" + description: Automation rule payload. required: true responses: - "204": - description: No Content - "400": + "201": content: application/json: + examples: + default: + value: + data: + attributes: + action: + data: + handle: workflow-handle-123 + type: EXECUTE_WORKFLOW + created_at: "2024-01-01T00:00:00.000Z" + name: Auto-assign workflow + state: ENABLED + trigger: + type: CASE_CREATED + id: e6773723-fe58-49ff-9975-dff00f14e28d + type: rule schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + $ref: "#/components/schemas/AutomationRuleResponse" + description: Created + "400": + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/ForbiddenResponse" "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Update App Tags + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Create an automation rule tags: - - App Builder - "x-permission": - operator: OR - permissions: - - apps_write - /api/v2/app-builder/apps/{app_id}/version-name: - patch: - description: Assign a human-readable name to a specific version of an app. The version is selected through the `version` query parameter. - operationId: UpdateAppVersionName + - Case Management + /api/v2/cases/projects/{project_id}/rules/{rule_id}: + delete: + description: Permanently deletes an automation rule from a project. + operationId: DeleteCaseAutomationRule parameters: - - description: The ID of the app. - example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + - description: The UUID of the project that owns the automation rules. + example: "e555e290-ed65-49bd-ae18-8acbfcf18db7" in: path - name: app_id - required: true - schema: - format: uuid - type: string - - description: The version number of the app to name. The special values `latest` and `deployed` can also be used to target the latest or currently published version. - example: "3" - in: query - name: version + name: project_id required: true schema: type: string - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - name: v1.2.0 - bug fix release - type: versionNames - schema: - $ref: "#/components/schemas/UpdateAppVersionNameRequest" - required: true + - $ref: "#/components/parameters/RuleIDPathParameter" responses: "204": description: No Content - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/ForbiddenResponse" "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Name App Version + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Delete an automation rule tags: - - App Builder - "x-permission": - operator: OR - permissions: - - apps_write - /api/v2/app-builder/apps/{app_id}/versions: + - Case Management get: - description: List the versions of an app. This endpoint is paginated. - operationId: ListAppVersions + description: Returns a single automation rule identified by its UUID, including its trigger, action, and current state (enabled/disabled). + operationId: GetCaseAutomationRule parameters: - - description: The ID of the app. - example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + - description: The UUID of the project that owns the automation rules. + example: "e555e290-ed65-49bd-ae18-8acbfcf18db7" in: path - name: app_id + name: project_id required: true schema: - format: uuid type: string - - description: The number of versions to return per page. - in: query - name: limit - required: false - schema: - format: int64 - type: integer - - description: The page number to return. - in: query - name: page - required: false - schema: - format: int64 - type: integer + - $ref: "#/components/parameters/RuleIDPathParameter" responses: "200": content: @@ -137029,64 +146244,72 @@ paths: default: value: data: - - attributes: - app_id: 65bb1f25-52e1-4510-9f8d-22d1516ed693 - created_at: "2026-04-01T12:00:00Z" - has_ever_been_published: true - name: v1.2.0 - bug fix release - updated_at: "2026-04-01T12:00:00Z" - user_name: jane.doe@example.com - user_uuid: 65bb1f25-52e1-4510-9f8d-22d1516ed693 - version: 3 - id: 9e20cbaf-68da-45a6-9ccf-54193ac29fa5 - type: appVersions - meta: - page: - totalCount: 1 + attributes: + action: + data: + handle: workflow-handle-123 + type: EXECUTE_WORKFLOW + created_at: "2024-01-01T00:00:00.000Z" + name: Auto-assign workflow + state: ENABLED + trigger: + type: CASE_CREATED + id: e6773723-fe58-49ff-9975-dff00f14e28d + type: rule schema: - $ref: "#/components/schemas/ListAppVersionsResponse" + $ref: "#/components/schemas/AutomationRuleResponse" description: OK "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/ForbiddenResponse" "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: List App Versions + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_read + summary: Get an automation rule tags: - - App Builder - "x-permission": - operator: AND - permissions: - - apps_run - - connections_read - /api/v2/app-builder/blueprint/{blueprint_id}: - get: - description: Retrieve an app blueprint by its ID. - operationId: GetBlueprint + - Case Management + put: + description: Updates the trigger, action, name, or state of an existing automation rule. + operationId: UpdateCaseAutomationRule parameters: - - description: The ID of the blueprint to retrieve. - example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + - description: The UUID of the project that owns the automation rules. + example: "e555e290-ed65-49bd-ae18-8acbfcf18db7" in: path - name: blueprint_id + name: project_id required: true schema: - format: uuid type: string + - $ref: "#/components/parameters/RuleIDPathParameter" + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + action: + data: + handle: workflow-handle-123 + type: EXECUTE_WORKFLOW + name: Auto-assign workflow + state: ENABLED + trigger: + type: CASE_CREATED + type: rule + schema: + $ref: "#/components/schemas/AutomationRuleUpdateRequest" + description: Automation rule payload. + required: true responses: "200": content: @@ -137096,60 +146319,51 @@ paths: value: data: attributes: - created_at: "2024-01-01T00:00:00Z" - definition: {} - description: Manage your AWS services from Datadog. - name: AWS Service Manager - slug: aws-service-manager - updated_at: "2024-01-01T00:00:00Z" - id: 65bb1f25-52e1-4510-9f8d-22d1516ed693 - type: blueprint + action: + data: + handle: workflow-handle-123 + type: EXECUTE_WORKFLOW + created_at: "2024-01-01T00:00:00.000Z" + name: Auto-assign workflow + state: ENABLED + trigger: + type: CASE_CREATED + id: e6773723-fe58-49ff-9975-dff00f14e28d + type: rule schema: - $ref: "#/components/schemas/GetBlueprintResponse" + $ref: "#/components/schemas/AutomationRuleResponse" description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/ForbiddenResponse" "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get Blueprint + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Update an automation rule tags: - - App Builder - "x-permission": - operator: OR - permissions: - - apps_run - - apps_write - - connections_read - - connections_write - /api/v2/app-builder/blueprints: - get: - description: List available app blueprints. - operationId: ListBlueprints + - Case Management + /api/v2/cases/projects/{project_id}/rules/{rule_id}/disable: + post: + description: Disables an automation rule so it no longer triggers on case events. The rule configuration is preserved. + operationId: DisableCaseAutomationRule parameters: - - description: The number of blueprints to return per page. Defaults to 10. Maximum is 100. - in: query - name: limit - required: false - schema: - format: int64 - type: integer - - description: The page of results to return. Starts at 0. - in: query - name: page - required: false + - description: The UUID of the project that owns the automation rules. + example: "e555e290-ed65-49bd-ae18-8acbfcf18db7" + in: path + name: project_id + required: true schema: - format: int64 - type: integer + type: string + - $ref: "#/components/parameters/RuleIDPathParameter" responses: "200": content: @@ -137158,47 +146372,52 @@ paths: default: value: data: - - attributes: - created_at: "2024-01-01T00:00:00Z" - description: Manage your AWS services from Datadog. - name: AWS Service Manager - slug: aws-service-manager - updated_at: "2024-01-01T00:00:00Z" - id: 65bb1f25-52e1-4510-9f8d-22d1516ed693 - type: blueprint + attributes: + action: + data: + handle: workflow-handle-123 + type: EXECUTE_WORKFLOW + created_at: "2024-01-01T00:00:00.000Z" + name: Auto-assign workflow + state: DISABLED + trigger: + type: CASE_CREATED + id: e6773723-fe58-49ff-9975-dff00f14e28d + type: rule schema: - $ref: "#/components/schemas/ListBlueprintsResponse" + $ref: "#/components/schemas/AutomationRuleResponse" description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: List Blueprints + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Disable an automation rule tags: - - App Builder - "x-permission": - operator: OR - permissions: - - apps_run - - apps_write - - connections_read - - connections_write - /api/v2/app-builder/blueprints/integration-id/{integration_id}: - get: - description: List app blueprints associated with a specific integration ID. - operationId: GetBlueprintsByIntegrationId + - Case Management + /api/v2/cases/projects/{project_id}/rules/{rule_id}/enable: + post: + description: Enables a previously disabled automation rule so it triggers on matching case events. + operationId: EnableCaseAutomationRule parameters: - - description: The integration ID to filter blueprints by. - example: aws + - description: The UUID of the project that owns the automation rules. + example: "e555e290-ed65-49bd-ae18-8acbfcf18db7" in: path - name: integration_id + name: project_id required: true schema: type: string + - $ref: "#/components/parameters/RuleIDPathParameter" responses: "200": content: @@ -137207,49 +146426,43 @@ paths: default: value: data: - - attributes: - created_at: "2024-01-01T00:00:00Z" - definition: {} - description: Manage your AWS services from Datadog. - integration_id: aws - name: AWS Service Manager - slug: aws-service-manager - updated_at: "2024-01-01T00:00:00Z" - id: 65bb1f25-52e1-4510-9f8d-22d1516ed693 - type: blueprint + attributes: + action: + data: + handle: workflow-handle-123 + type: EXECUTE_WORKFLOW + created_at: "2024-01-01T00:00:00.000Z" + name: Auto-assign workflow + state: ENABLED + trigger: + type: CASE_CREATED + id: e6773723-fe58-49ff-9975-dff00f14e28d + type: rule schema: - $ref: "#/components/schemas/GetBlueprintsResponse" + $ref: "#/components/schemas/AutomationRuleResponse" description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get Blueprints by Integration ID + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Enable an automation rule tags: - - App Builder - "x-permission": - operator: OR - permissions: - - apps_run - - apps_write - - connections_read - - connections_write - /api/v2/app-builder/blueprints/slugs/{slugs}: + - Case Management + /api/v2/cases/types: get: - description: Retrieve app blueprints by their slugs. - operationId: GetBlueprintsBySlugs - parameters: - - description: A comma-separated list of blueprint slugs. - example: aws-service-manager - in: path - name: slugs - required: true - schema: - type: string + description: Get all case types + operationId: GetAllCaseTypes responses: "200": content: @@ -137259,80 +146472,74 @@ paths: value: data: - attributes: - created_at: "2024-01-01T00:00:00Z" - definition: {} - description: Manage your AWS services from Datadog. - name: AWS Service Manager - slug: aws-service-manager - updated_at: "2024-01-01T00:00:00Z" - id: 65bb1f25-52e1-4510-9f8d-22d1516ed693 - type: blueprint + description: Investigations done in case management + emoji: "🕵🏻‍♂️" + name: Investigation + id: 00000000-0000-0000-0000-000000000001 + type: case_type schema: - $ref: "#/components/schemas/GetBlueprintsResponse" + $ref: "#/components/schemas/CaseTypesResponse" description: OK + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/ForbiddenResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get Blueprints by Slugs + summary: Get all case types tags: - - App Builder - "x-permission": - operator: OR - permissions: - - apps_run - - apps_write - - connections_read - - connections_write - /api/v2/app-builder/tags: - get: - description: List all tags associated with the authenticated user's apps. - operationId: ListTags + - Case Management Type + post: + description: Create a Case Type + operationId: CreateCaseType + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + description: Investigations done in case management + emoji: 🕵🏻‍♂️ + name: Investigation + type: case_type + schema: + $ref: "#/components/schemas/CaseTypeCreateRequest" + description: Case type payload + required: true responses: - "200": + "201": content: application/json: examples: default: value: data: - - id: production - type: tag + attributes: + description: Investigations done in case management + emoji: "🕵🏻‍♂️" + name: Investigation + id: 00000000-0000-0000-0000-000000000001 + type: case_type schema: - $ref: "#/components/schemas/AppBuilderListTagsResponse" - description: OK + $ref: "#/components/schemas/CaseTypeResponse" + description: CREATED + "400": + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/ForbiddenResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: List Tags + summary: Create a case type tags: - - App Builder - "x-permission": - operator: OR - permissions: - - apps_run - /api/v2/application_keys: + - Case Management Type + /api/v2/cases/types/custom_attributes: get: - description: List all application keys available for your org - operationId: ListApplicationKeys - parameters: - - $ref: "#/components/parameters/PageSize" - - $ref: "#/components/parameters/PageNumber" - - $ref: "#/components/parameters/ApplicationKeysSortParameter" - - $ref: "#/components/parameters/ApplicationKeyFilterParameter" - - $ref: "#/components/parameters/ApplicationKeyFilterCreatedAtStartParameter" - - $ref: "#/components/parameters/ApplicationKeyFilterCreatedAtEndParameter" - - $ref: "#/components/parameters/ApplicationKeyFilterOwnedByParameter" - - $ref: "#/components/parameters/ApplicationKeyIncludeParameter" + description: Get all custom attributes + operationId: GetAllCustomAttributes responses: "200": content: @@ -137342,78 +146549,65 @@ paths: value: data: - attributes: - created_at: "2020-11-23T10:00:00.000Z" - last4: abcd - name: Application Key for managing dashboards + case_type_id: 00000000-0000-0000-0000-000000000002 + description: "AWS Region, must be a valid region supported by AWS" + display_name: AWS Region + is_multi: true + key: aws_region + type: TEXT id: 00000000-0000-0000-0000-000000000001 - type: application_keys - schema: - $ref: "#/components/schemas/ListApplicationKeysResponse" - description: OK - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden - "404": - content: - application/json: + type: custom_attribute schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Not Found + $ref: "#/components/schemas/CustomAttributeConfigsResponse" + description: OK + "401": + $ref: "#/components/responses/UnauthorizedResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get all application keys + summary: Get all custom attributes tags: - - Key Management - "x-permission": - operator: OR - permissions: - - org_app_keys_read - /api/v2/application_keys/{app_key_id}: + - Case Management Attribute + /api/v2/cases/types/{case_type_id}: delete: - description: Delete an application key - operationId: DeleteApplicationKey + description: Delete a case type + operationId: DeleteCaseType parameters: - - $ref: "#/components/parameters/ApplicationKeyID" + - $ref: "#/components/parameters/CaseTypeIDPathParameter" responses: "204": description: No Content + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Not Found + $ref: "#/components/responses/ForbiddenResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Delete an application key + summary: Delete a case type tags: - - Key Management - x-codegen-request-body-name: body - "x-permission": - operator: OR - permissions: - - org_app_keys_write - get: - description: Get an application key for your org. - operationId: GetApplicationKey + - Case Management Type + put: + description: Updates the name, emoji, or description of an existing case type. + operationId: UpdateCaseType parameters: - - $ref: "#/components/parameters/ApplicationKeyID" - - $ref: "#/components/parameters/ApplicationKeyIncludeParameter" + - $ref: "#/components/parameters/CaseTypeIDPathParameter" + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + description: Investigations done in case management + emoji: "🕵🏻‍♂️" + name: Investigation + type: case_type + schema: + $ref: "#/components/schemas/CaseTypeUpdateRequest" + description: Case type payload. + required: true responses: "200": content: @@ -137423,46 +146617,74 @@ paths: value: data: attributes: - created_at: "2020-11-23T10:00:00.000Z" - last4: abcd - name: Application Key for managing dashboards - id: 00000000-0000-0000-0000-000000000002 - type: application_keys + description: Investigations done in case management + emoji: "🕵🏻‍♂️" + name: Investigation + id: 00000000-0000-0000-0000-000000000001 + type: case_type schema: - $ref: "#/components/schemas/ApplicationKeyResponse" + $ref: "#/components/schemas/CaseTypeResponse" description: OK "400": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden + $ref: "#/components/responses/ForbiddenResponse" "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_shared_settings_write + summary: Update a case type + tags: + - Case Management Type + /api/v2/cases/types/{case_type_id}/custom_attributes: + get: + description: Get all custom attribute config of case type + operationId: GetAllCustomAttributeConfigsByCaseType + parameters: + - $ref: "#/components/parameters/CaseTypeIDPathParameter" + responses: + "200": content: application/json: + examples: + default: + value: + data: + - attributes: + case_type_id: 00000000-0000-0000-0000-000000000004 + description: "AWS Region, must be a valid region supported by AWS" + display_name: AWS Region + is_multi: true + key: aws_region + type: TEXT + id: 00000000-0000-0000-0000-000000000003 + type: custom_attribute schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Not Found + $ref: "#/components/schemas/CustomAttributeConfigsResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get an application key + summary: Get all custom attributes config of case type tags: - - Key Management - "x-permission": - operator: OR - permissions: - - org_app_keys_read - patch: - description: Edit an application key - operationId: UpdateApplicationKey + - Case Management Attribute + post: + description: Create custom attribute config for a case type + operationId: CreateCustomAttributeConfig parameters: - - $ref: "#/components/parameters/ApplicationKeyID" + - $ref: "#/components/parameters/CaseTypeIDPathParameter" requestBody: content: application/json: @@ -137471,18 +146693,18 @@ paths: value: data: attributes: - name: Application Key for managing dashboards - scopes: - - dashboards_read - - dashboards_write - - dashboards_public_share - id: 00112233-4455-6677-8899-aabbccddeeff - type: application_keys + description: AWS Region, must be a valid region supported by AWS + display_name: AWS Region + is_multi: true + key: aws_region + type: NUMBER + type: custom_attribute schema: - $ref: "#/components/schemas/ApplicationKeyUpdateRequest" + $ref: "#/components/schemas/CustomAttributeConfigCreateRequest" + description: Custom attribute config payload required: true responses: - "200": + "201": content: application/json: examples: @@ -137490,169 +146712,72 @@ paths: value: data: attributes: - created_at: "2020-11-23T10:00:00.000Z" - last4: abcd - name: Application Key for managing dashboards - id: 00000000-0000-0000-0000-000000000003 - type: application_keys + case_type_id: 00000000-0000-0000-0000-000000000006 + description: "AWS Region, must be a valid region supported by AWS" + display_name: AWS Region + is_multi: true + key: aws_region + type: TEXT + id: 00000000-0000-0000-0000-000000000005 + type: custom_attribute schema: - $ref: "#/components/schemas/ApplicationKeyResponse" - description: OK + $ref: "#/components/schemas/CustomAttributeConfigResponse" + description: CREATED "400": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden + $ref: "#/components/responses/ForbiddenResponse" "404": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Not Found + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Edit an application key + summary: Create custom attribute config for a case type tags: - - Key Management - x-codegen-request-body-name: body - "x-permission": - operator: OR - permissions: - - org_app_keys_write - /api/v2/audit/events: - get: - description: |- - List endpoint returns events that match a Audit Logs search query. - [Results are paginated][1]. - - Use this endpoint to see your latest Audit Logs events. - - [1]: https://docs.datadoghq.com/logs/guide/collect-multiple-logs-with-pagination - operationId: ListAuditLogs + - Case Management Attribute + /api/v2/cases/types/{case_type_id}/custom_attributes/{custom_attribute_id}: + delete: + description: Delete custom attribute config + operationId: DeleteCustomAttributeConfig parameters: - - description: Search query following Audit Logs syntax. - example: "@type:session @application_id:xxxx" - in: query - name: filter[query] - required: false - schema: - type: string - - description: Minimum timestamp for requested events. - example: "2019-01-02T09:42:36.320Z" - in: query - name: filter[from] - required: false - schema: - format: date-time - type: string - - description: Maximum timestamp for requested events. - example: "2019-01-03T09:42:36.320Z" - in: query - name: filter[to] - required: false - schema: - format: date-time - type: string - - description: Order of events in results. - in: query - name: sort - required: false - schema: - $ref: "#/components/schemas/AuditLogsSort" - - description: |- - List following results with a cursor provided in the previous query. - example: "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" - in: query - name: page[cursor] - required: false - schema: - type: string - - description: Maximum number of events in the response. - example: 25 - in: query - name: page[limit] - required: false - schema: - default: 10 - format: int32 - maximum: 1000 - type: integer + - $ref: "#/components/parameters/CaseTypeIDPathParameter" + - $ref: "#/components/parameters/CaseCustomAttributeIDPathParameter" responses: - "200": - content: - application/json: - examples: - default: - value: - data: - - attributes: - message: "User logged in" - service: web-app - tags: - - "team:A" - timestamp: "2024-01-01T00:00:00+00:00" - id: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA - type: audit - meta: - elapsed: 132 - request_id: MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR - status: done - schema: - $ref: "#/components/schemas/AuditLogsEventsResponse" - description: OK + "204": + description: No Content "400": $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/NotAuthorizedResponse" + $ref: "#/components/responses/ForbiddenResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get a list of Audit Logs events - tags: ["Audit"] - x-pagination: - cursorParam: page[cursor] - cursorPath: meta.page.after - limitParam: page[limit] - resultsPath: data - "x-permission": - operator: OR - permissions: - - audit_logs_read - /api/v2/audit/events/search: - post: - description: |- - List endpoint returns Audit Logs events that match an Audit search query. - [Results are paginated][1]. - - Use this endpoint to build complex Audit Logs events filtering and search. - - [1]: https://docs.datadoghq.com/logs/guide/collect-multiple-logs-with-pagination - operationId: SearchAuditLogs + summary: Delete custom attributes config + tags: + - Case Management Attribute + put: + description: Updates the display name, description, type, or options of an existing custom attribute configuration for a case type. + operationId: UpdateCustomAttributeConfig + parameters: + - $ref: "#/components/parameters/CaseTypeIDPathParameter" + - $ref: "#/components/parameters/CaseCustomAttributeIDPathParameter" requestBody: content: - "application/json": + application/json: examples: default: value: - filter: - from: now-15m - query: "@type:session AND @session.type:user" - to: now - options: - timezone: GMT - page: - cursor: eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ== - limit: 25 - sort: timestamp + data: + attributes: + description: Updated description. + display_name: AWS Region + type: custom_attribute schema: - $ref: "#/components/schemas/AuditLogsSearchEventsRequest" - required: false + $ref: "#/components/schemas/CustomAttributeConfigUpdateRequest" + description: Custom attribute config payload. + required: true responses: "200": content: @@ -137661,65 +146786,48 @@ paths: default: value: data: - - attributes: - message: "User logged in" - service: web-app - tags: - - team:A - timestamp: "2019-01-02T09:42:36.320Z" - id: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA - type: audit - links: - next: "https://app.datadoghq.com/api/v2/audit/event?filter[query]=foo&page[cursor]=eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" - meta: - elapsed: 132 - request_id: MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR - status: done + attributes: + case_type_id: 00000000-0000-0000-0000-000000000006 + description: Updated description. + display_name: AWS Region + is_multi: true + key: aws_region + type: TEXT + id: 00000000-0000-0000-0000-000000000005 + type: custom_attribute schema: - $ref: "#/components/schemas/AuditLogsEventsResponse" + $ref: "#/components/schemas/CustomAttributeConfigResponse" description: OK "400": $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/NotAuthorizedResponse" + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Search Audit Logs events - tags: ["Audit"] - x-codegen-request-body-name: body - x-pagination: - cursorParam: body.page.cursor - cursorPath: meta.page.after - limitParam: body.page.limit - resultsPath: data - "x-permission": - operator: OR - permissions: - - audit_logs_read - /api/v2/authn_mappings: + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_shared_settings_write + summary: Update custom attribute config + tags: + - Case Management Attribute + /api/v2/cases/views: get: - description: List all AuthN Mappings in the org. - operationId: ListAuthNMappings + description: Returns all saved case views for a given project. Views are saved search queries that allow quick access to filtered lists of cases. + operationId: ListCaseViews parameters: - - $ref: "#/components/parameters/PageSize" - - $ref: "#/components/parameters/PageNumber" - - description: Sort AuthN Mappings depending on the given field. - in: query - name: sort - required: false - schema: - $ref: "#/components/schemas/AuthNMappingsSort" - - description: Filter all mappings by the given string. + - description: Filter views by project identifier. + example: e555e290-ed65-49bd-ae18-8acbfcf18db7 in: query - name: filter - required: false + name: project_id + required: true schema: type: string - - description: Filter by mapping resource type. Defaults to "role" if not specified. - in: query - name: resource_type - schema: - $ref: "#/components/schemas/AuthNMappingResourceType" responses: "200": content: @@ -137729,31 +146837,35 @@ paths: value: data: - attributes: - attribute_key: member-of - attribute_value: Development - id: 00000000-0000-0000-0000-000000000003 - type: authn_mappings + created_at: "2024-01-01T00:00:00.000Z" + name: Open bugs + query: "status:open type:bug" + id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 + type: view schema: - $ref: "#/components/schemas/AuthNMappingsResponse" + $ref: "#/components/schemas/CaseViewsResponse" description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Authentication Error + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: List all AuthN Mappings + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_read + summary: List case views tags: - - AuthN Mappings - "x-permission": - operator: OR - permissions: - - user_access_read + - Case Management post: - description: Create an AuthN Mapping. - operationId: CreateAuthNMapping + description: Creates a new saved case view with a name, filter query, and associated project. Optionally, a notification rule can be linked to the view. + operationId: CreateCaseView requestBody: content: application/json: @@ -137762,14 +146874,16 @@ paths: value: data: attributes: - attribute_key: member-of - attribute_value: Development - type: authn_mappings + name: Open bugs + project_id: e555e290-ed65-49bd-ae18-8acbfcf18db7 + query: "status:open type:bug" + type: view schema: - $ref: "#/components/schemas/AuthNMappingCreateRequest" + $ref: "#/components/schemas/CaseViewCreateRequest" + description: Case view payload. required: true responses: - "200": + "201": content: application/json: examples: @@ -137777,76 +146891,64 @@ paths: value: data: attributes: - attribute_key: member-of - attribute_value: Development - id: 00000000-0000-0000-0000-000000000004 - type: authn_mappings + created_at: "2024-01-01T00:00:00.000Z" + name: Open bugs + query: "status:open type:bug" + id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 + type: view schema: - $ref: "#/components/schemas/AuthNMappingResponse" - description: OK + $ref: "#/components/schemas/CaseViewResponse" + description: Created "400": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Authentication Error + $ref: "#/components/responses/ForbiddenResponse" "404": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Not Found + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Create an AuthN Mapping + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Create a case view tags: - - AuthN Mappings - x-codegen-request-body-name: body - "x-permission": - operator: OR - permissions: - - user_access_manage - /api/v2/authn_mappings/{authn_mapping_id}: + - Case Management + /api/v2/cases/views/{view_id}: delete: - description: Delete an AuthN Mapping specified by AuthN Mapping UUID. - operationId: DeleteAuthNMapping + description: Permanently deletes a saved case view. + operationId: DeleteCaseView parameters: - - $ref: "#/components/parameters/AuthNMappingID" + - $ref: "#/components/parameters/ViewIDPathParameter" responses: "204": - description: OK + description: No Content + "400": + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Authentication Error + $ref: "#/components/responses/ForbiddenResponse" "404": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Not Found + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Delete an AuthN Mapping + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Delete a case view tags: - - AuthN Mappings - "x-permission": - operator: OR - permissions: - - user_access_manage + - Case Management get: - description: Get an AuthN Mapping specified by the AuthN Mapping UUID. - operationId: GetAuthNMapping + description: Returns a single saved case view identified by its UUID, including its query, associated project, and timestamps. + operationId: GetCaseView parameters: - - $ref: "#/components/parameters/AuthNMappingID" + - $ref: "#/components/parameters/ViewIDPathParameter" responses: "200": content: @@ -137856,39 +146958,37 @@ paths: value: data: attributes: - attribute_key: member-of - attribute_value: Development - id: 00000000-0000-0000-0000-000000000001 - type: authn_mappings + created_at: "2024-01-01T00:00:00.000Z" + name: Open bugs + query: "status:open type:bug" + id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 + type: view schema: - $ref: "#/components/schemas/AuthNMappingResponse" + $ref: "#/components/schemas/CaseViewResponse" description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Authentication Error + $ref: "#/components/responses/ForbiddenResponse" "404": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Not Found + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get an AuthN Mapping by UUID + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_read + summary: Get a case view tags: - - AuthN Mappings - "x-permission": - operator: OR - permissions: - - user_access_read - patch: - description: Edit an AuthN Mapping. - operationId: UpdateAuthNMapping + - Case Management + put: + description: Updates the name, query, or notification rule of an existing case view. + operationId: UpdateCaseView parameters: - - $ref: "#/components/parameters/AuthNMappingID" + - $ref: "#/components/parameters/ViewIDPathParameter" requestBody: content: application/json: @@ -137897,12 +146997,11 @@ paths: value: data: attributes: - attribute_key: member-of - attribute_value: Development - id: 3653d3c6-0c75-11ea-ad28-fb5701eabc7d - type: authn_mappings + name: Updated view name + type: view schema: - $ref: "#/components/schemas/AuthNMappingUpdateRequest" + $ref: "#/components/schemas/CaseViewUpdateRequest" + description: Case view payload. required: true responses: "200": @@ -137913,84 +147012,39 @@ paths: value: data: attributes: - attribute_key: member-of - attribute_value: Development - id: 00000000-0000-0000-0000-000000000002 - type: authn_mappings + created_at: "2024-01-01T00:00:00.000Z" + name: Updated view name + query: "status:open type:bug" + id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 + type: view schema: - $ref: "#/components/schemas/AuthNMappingResponse" + $ref: "#/components/schemas/CaseViewResponse" description: OK "400": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Authentication Error + $ref: "#/components/responses/ForbiddenResponse" "404": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Not Found - "409": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Conflict - "422": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Unprocessable Entity + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Edit an AuthN Mapping + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Update a case view tags: - - AuthN Mappings - x-codegen-request-body-name: body - "x-permission": - operator: OR - permissions: - - user_access_manage - /api/v2/bits-ai/investigations: + - Case Management + /api/v2/cases/{case_id}: get: - description: List all Bits AI investigations for the organization. - operationId: ListInvestigations + description: >- + Get the details of case by `case_id` + operationId: GetCase parameters: - - description: Offset for pagination. - example: 0 - in: query - name: page[offset] - required: false - schema: - format: int64 - type: integer - - description: Maximum number of investigations to return. - example: 25 - in: query - name: page[limit] - required: false - schema: - default: 25 - format: int64 - maximum: 100 - type: integer - - description: Filter investigations by monitor ID. - example: 12345678 - in: query - name: filter[monitor_id] - required: false - schema: - format: int64 - type: integer + - $ref: "#/components/parameters/CaseIDPathParameter" responses: "200": content: @@ -137999,55 +147053,47 @@ paths: default: value: data: - - attributes: - status: "conclusive" - title: "Monitor alert investigation for web-server-01" - id: "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d" - type: investigation - links: - first: "https://api.datadoghq.com/api/v2/bits-ai/investigations?page[offset]=0&page[limit]=10" - next: "https://api.datadoghq.com/api/v2/bits-ai/investigations?page[offset]=10&page[limit]=10" - self: "https://api.datadoghq.com/api/v2/bits-ai/investigations?page[offset]=0&page[limit]=10" - meta: - page: - limit: 10 - offset: 0 - total: 50 + attributes: + created_at: "2024-01-01T00:00:00+00:00" + key: CASEM-1234 + priority: NOT_DEFINED + status: OPEN + status_name: Open + title: Memory leak investigation on API + id: 00000000-0000-0000-0000-000000000001 + relationships: + project: + data: + id: 00000000-0000-0000-0000-000000000002 + type: project + type: case schema: - $ref: "#/components/schemas/ListInvestigationsResponse" + $ref: "#/components/schemas/CaseResponse" description: OK "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - bits_investigations_read - summary: List Bits AI investigations + - cases_read + summary: Get the details of a case tags: - - Bits AI - x-pagination: - limitParam: page[limit] - pageOffsetParam: page[offset] - resultsPath: data - "x-permission": - operator: OR - permissions: - - bits_investigations_read - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + - Case Management + /api/v2/cases/{case_id}/archive: post: - description: |- - Trigger a Bits AI investigation from a monitor alert or a general investigation. - The `monitors_read` permission is required when the trigger type is `monitor_alert_trigger`. - operationId: TriggerInvestigation + description: Archive case + operationId: ArchiveCase + parameters: + - $ref: "#/components/parameters/CaseIDPathParameter" requestBody: content: application/json: @@ -138055,28 +147101,10 @@ paths: default: value: data: - attributes: - trigger: - monitor_alert_trigger: - event_id: "1234567890123456789" - event_ts: 1700000000000 - monitor_id: 12345678 - type: monitor_alert_trigger - type: trigger_investigation_request - general_investigation: - value: - data: - attributes: - trigger: - general_investigation: - description: "Checkout latency has been elevated for the past hour." - tags: - - "service:checkout" - type: general_investigation - type: trigger_investigation_request + type: case schema: - $ref: "#/components/schemas/TriggerInvestigationRequest" - description: Trigger investigation request body. + $ref: "#/components/schemas/CaseEmptyRequest" + description: Archive case payload required: true responses: "200": @@ -138087,124 +147115,60 @@ paths: value: data: attributes: - investigation_id: "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d" - id: "f5e6a7b8-c9d0-1e2f-3a4b-5c6d7e8f9a0b" - type: trigger_investigation_response - schema: - $ref: "#/components/schemas/TriggerInvestigationResponse" - description: OK - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - bits_investigations_write - - monitors_read - summary: Trigger a Bits AI investigation - tags: - - Bits AI - x-codegen-request-body-name: body - "x-permission": - operator: AND - permissions: - - bits_investigations_write - - monitors_read - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/bits-ai/investigations/{id}: - get: - description: Get a specific Bits AI investigation by ID. - operationId: GetInvestigation - parameters: - - description: The ID of the investigation. - example: "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d" - in: path - name: id - required: true - schema: - type: string - responses: - "200": - content: - application/json: - examples: - default: - value: - data: - attributes: - conclusions: - - description: "The investigation found that a memory leak in payments-service caused CPU usage to spike above 95% starting at 14:32 UTC." - summary: "CPU usage exceeded 95% for over 10 minutes on web-server-01." - title: "High CPU usage detected on web-server-01" - status: "conclusive" - title: "Monitor alert investigation for web-server-01" - id: "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d" - type: investigation - links: - self: "https://app.datadoghq.com/bits-ai/investigations/a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d" + created_at: "2024-01-01T00:00:00+00:00" + key: CASEM-1234 + priority: NOT_DEFINED + status: OPEN + status_name: Open + title: Memory leak investigation on API + id: 00000000-0000-0000-0000-000000000001 + relationships: + project: + data: + id: 00000000-0000-0000-0000-000000000002 + type: project + type: case schema: - $ref: "#/components/schemas/GetInvestigationResponse" + $ref: "#/components/schemas/CaseResponse" description: OK "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - bits_investigations_read - summary: Get a Bits AI investigation + - cases_write + summary: Archive case tags: - - Bits AI - "x-permission": - operator: OR - permissions: - - bits_investigations_read - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/cases: - get: - description: >- - Search cases. - operationId: SearchCases + - Case Management + /api/v2/cases/{case_id}/assign: + post: + description: Assign case to a user + operationId: AssignCase parameters: - - $ref: "#/components/parameters/PageSize" - - $ref: "#/components/parameters/PageNumber" - - $ref: "#/components/parameters/CaseSortableFieldParameter" - - description: Search query - in: query - name: filter - required: false - schema: - example: "status:open (team:case-management OR team:event-management)" - type: string - - description: Specify if order is ascending or not - in: query - name: sort[asc] - required: false - schema: - default: false - type: boolean + - $ref: "#/components/parameters/CaseIDPathParameter" + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + assignee_id: f98a5a5b-e0ff-45d4-b2f5-afe6e74de504 + type: case + schema: + $ref: "#/components/schemas/CaseAssignRequest" + description: Assign case payload + required: true responses: "200": content: @@ -138213,27 +147177,22 @@ paths: default: value: data: - - attributes: - created_at: "2024-01-01T00:00:00+00:00" - key: CASEM-1234 - priority: NOT_DEFINED - status: OPEN - status_name: Open - title: Memory leak investigation on API - id: 00000000-0000-0000-0000-000000000001 - relationships: - project: - data: - id: 00000000-0000-0000-0000-000000000002 - type: project - type: case - meta: - page: - current: 1 - size: 10 - total: 1 + attributes: + created_at: "2024-01-01T00:00:00+00:00" + key: CASEM-1234 + priority: NOT_DEFINED + status: OPEN + status_name: Open + title: Memory leak investigation on API + id: 00000000-0000-0000-0000-000000000001 + relationships: + project: + data: + id: 00000000-0000-0000-0000-000000000002 + type: project + type: case schema: - $ref: "#/components/schemas/CasesResponse" + $ref: "#/components/schemas/CaseResponse" description: OK "400": $ref: "#/components/responses/BadRequestResponse" @@ -138249,18 +147208,16 @@ paths: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_read - summary: Search cases + - cases_write + summary: Assign case tags: - Case Management - x-pagination: - limitParam: page[size] - pageParam: page[number] - pageStart: 1 - resultsPath: data + /api/v2/cases/{case_id}/attributes: post: - description: Create a Case - operationId: CreateCase + description: Update case attributes + operationId: UpdateAttributes + parameters: + - $ref: "#/components/parameters/CaseIDPathParameter" requestBody: content: application/json: @@ -138269,26 +147226,21 @@ paths: value: data: attributes: - priority: NOT_DEFINED - status_name: Open - title: Security breach investigation - type_id: 3b010bde-09ce-4449-b745-71dd5f861963 - relationships: - assignee: - data: - id: 00000000-0000-0000-0000-000000000000 - type: user - project: - data: - id: e555e290-ed65-49bd-ae18-8acbfcf18db7 - type: project + attributes: + env: + - prod + service: + - web-store + - web-api + team: + - engineering type: case schema: - $ref: "#/components/schemas/CaseCreateRequest" - description: Case payload + $ref: "#/components/schemas/CaseUpdateAttributesRequest" + description: Case attributes update payload required: true responses: - "201": + "200": content: application/json: examples: @@ -138311,7 +147263,7 @@ paths: type: case schema: $ref: "#/components/schemas/CaseResponse" - description: CREATED + description: OK "400": $ref: "#/components/responses/BadRequestResponse" "401": @@ -138327,13 +147279,15 @@ paths: appKeyAuth: [] - AuthZ: - cases_write - summary: Create a case + summary: Update case attributes tags: - Case Management - /api/v2/cases/aggregate: + /api/v2/cases/{case_id}/comment: post: - description: Performs an aggregation query over cases, grouping results by specified fields and returning counts per group along with a total. Useful for dashboards and analytics. - operationId: AggregateCases + description: Comment case + operationId: CommentCase + parameters: + - $ref: "#/components/parameters/CaseIDPathParameter" requestBody: content: application/json: @@ -138342,15 +147296,11 @@ paths: value: data: attributes: - group_by: - groups: - - "status" - limit: 14 - query_filter: "service:case-api" - type: aggregate + comment: This is my comment ! + type: case schema: - $ref: "#/components/schemas/CaseAggregateRequest" - description: Case aggregate request payload. + $ref: "#/components/schemas/CaseCommentRequest" + description: Case comment payload required: true responses: "200": @@ -138360,16 +147310,15 @@ paths: default: value: data: - attributes: - groups: - - group: OPEN - value: - - 42.0 - total: 100.0 - id: agg-result-001 - type: aggregate + - attributes: + cell_content: + message: This is my comment ! + created_at: "2024-01-01T00:00:00+00:00" + type: COMMENT + id: 00000000-0000-0000-0000-000000000001 + type: timeline_cell schema: - $ref: "#/components/schemas/CaseAggregateResponse" + $ref: "#/components/schemas/TimelineResponse" description: OK "400": $ref: "#/components/responses/BadRequestResponse" @@ -138381,18 +147330,38 @@ paths: $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cases_read - summary: Aggregate cases + summary: Comment case tags: - Case Management - /api/v2/cases/bulk: - post: - description: Applies a single action (such as changing priority, status, assignment, or archiving) to multiple cases at once. The list of case IDs and the action type with its payload are specified in the request body. - operationId: BulkUpdateCases + /api/v2/cases/{case_id}/comment/{cell_id}: + delete: + description: Delete case comment + operationId: DeleteCaseComment + parameters: + - $ref: "#/components/parameters/CaseIDPathParameter" + - $ref: "#/components/parameters/CellIDPathParameter" + responses: + "204": + description: No Content + "400": + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Delete case comment + tags: + - Case Management + put: + description: Updates the text content of an existing comment on a case timeline. The comment is identified by its cell ID. + operationId: UpdateCaseComment + parameters: + - $ref: "#/components/parameters/CaseIDPathParameter" + - $ref: "#/components/parameters/CellIDPathParameter" requestBody: content: application/json: @@ -138401,16 +147370,11 @@ paths: value: data: attributes: - case_ids: - - "case-id-1" - - "case-id-2" - payload: - priority: "P1" - type: priority - type: bulk + comment: Updated comment text + type: case schema: - $ref: "#/components/schemas/CaseBulkUpdateRequest" - description: Case bulk update request payload. + $ref: "#/components/schemas/CaseUpdateCommentRequest" + description: Case update comment payload. required: true responses: "200": @@ -138430,34 +147394,16 @@ paths: appKeyAuth: [] - AuthZ: - cases_write - summary: Bulk update cases + summary: Update case comment tags: - Case Management - /api/v2/cases/count: - get: - description: Returns case counts, optionally grouped by one or more fields (for example, status, priority). Supports a query filter to narrow the scope. - operationId: CountCases + /api/v2/cases/{case_id}/custom_attributes/{custom_attribute_key}: + delete: + description: Delete custom attribute from case + operationId: DeleteCaseCustomAttribute parameters: - - description: Filter query for cases. - in: query - name: query_filter - required: false - schema: - type: string - - description: Comma-separated fields to group by. - example: "status,priority" - in: query - name: group_bys - required: false - schema: - type: string - - description: Maximum facet values to return. - in: query - name: limit - required: false - schema: - format: int64 - type: integer + - $ref: "#/components/parameters/CaseIDPathParameter" + - $ref: "#/components/parameters/CaseCustomAttributeKeyPathParameter" responses: "200": content: @@ -138467,18 +147413,22 @@ paths: value: data: attributes: - groups: - - group: status - group_values: - - count: 42 - value: OPEN - id: count-result-001 - type: count + created_at: "2024-01-01T00:00:00+00:00" + key: CASEM-1234 + priority: NOT_DEFINED + status: OPEN + status_name: Open + title: Memory leak investigation on API + id: 00000000-0000-0000-0000-000000000001 + relationships: + project: + data: + id: 00000000-0000-0000-0000-000000000002 + type: project + type: case schema: - $ref: "#/components/schemas/CaseCountResponse" + $ref: "#/components/schemas/CaseResponse" description: OK - "400": - $ref: "#/components/responses/BadRequestResponse" "401": $ref: "#/components/responses/UnauthorizedResponse" "403": @@ -138491,36 +147441,32 @@ paths: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_read - summary: Count cases + - cases_write + summary: Delete custom attribute from case tags: - Case Management - /api/v2/cases/link: - get: - description: Returns all links associated with a case. Links define relationships (for example, BLOCKS) between cases. Requires entity_type and entity_id query parameters. - operationId: ListCaseLinks + post: + description: Update case custom attribute + operationId: UpdateCaseCustomAttribute parameters: - - description: "The entity type to look up links for. Use `CASE` to find links for a specific case." - in: query - name: entity_type - required: true - schema: - example: "CASE" - type: string - - description: "The UUID of the entity to look up links for." - in: query - name: entity_id - required: true - schema: - example: "bf0cbac6-4c16-4cfb-b6bf-ca5e0ec37a4f" - type: string - - description: "Optional filter to only return links of a specific relationship type (for example, `BLOCKS` or `CAUSES`)." - in: query - name: relationship - required: false - schema: - example: "BLOCKS" - type: string + - $ref: "#/components/parameters/CaseIDPathParameter" + - $ref: "#/components/parameters/CaseCustomAttributeKeyPathParameter" + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + is_multi: false + type: NUMBER + value: 42 + type: case + schema: + $ref: "#/components/schemas/CaseUpdateCustomAttributeRequest" + description: Update case custom attribute payload + required: true responses: "200": content: @@ -138529,16 +147475,22 @@ paths: default: value: data: - - attributes: - child_entity_id: 4417921d-0866-4a38-822c-6f2a0f65f77d - child_entity_type: CASE - parent_entity_id: bf0cbac6-4c16-4cfb-b6bf-ca5e0ec37a4f - parent_entity_type: CASE - relationship: BLOCKS - id: 804cd682-55f6-4541-ab00-b608b282ea7d - type: link + attributes: + created_at: "2024-01-01T00:00:00+00:00" + key: CASEM-1234 + priority: NOT_DEFINED + status: OPEN + status_name: Open + title: Memory leak investigation on API + id: 00000000-0000-0000-0000-000000000001 + relationships: + project: + data: + id: 00000000-0000-0000-0000-000000000002 + type: project + type: case schema: - $ref: "#/components/schemas/CaseLinksResponse" + $ref: "#/components/schemas/CaseResponse" description: OK "400": $ref: "#/components/responses/BadRequestResponse" @@ -138554,13 +147506,16 @@ paths: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_read - summary: List case links + - cases_write + summary: Update case custom attribute tags: - Case Management + /api/v2/cases/{case_id}/description: post: - description: Creates a directional link between two cases (for example, case A blocks case B). The parent and child cases and their relationship type must be specified. - operationId: CreateCaseLink + description: Update case description + operationId: UpdateCaseDescription + parameters: + - $ref: "#/components/parameters/CaseIDPathParameter" requestBody: content: application/json: @@ -138569,18 +147524,14 @@ paths: value: data: attributes: - child_entity_id: 4417921d-0866-4a38-822c-6f2a0f65f77d - child_entity_type: CASE - parent_entity_id: bf0cbac6-4c16-4cfb-b6bf-ca5e0ec37a4f - parent_entity_type: CASE - relationship: BLOCKS - type: link + description: Seeing some weird memory increase... We shouldn't ignore this + type: case schema: - $ref: "#/components/schemas/CaseLinkCreateRequest" - description: "Case link create request." + $ref: "#/components/schemas/CaseUpdateDescriptionRequest" + description: Case description update payload required: true responses: - "201": + "200": content: application/json: examples: @@ -138588,16 +147539,22 @@ paths: value: data: attributes: - child_entity_id: 4417921d-0866-4a38-822c-6f2a0f65f77d - child_entity_type: CASE - parent_entity_id: bf0cbac6-4c16-4cfb-b6bf-ca5e0ec37a4f - parent_entity_type: CASE - relationship: BLOCKS - id: 804cd682-55f6-4541-ab00-b608b282ea7d - type: link + created_at: "2024-01-01T00:00:00+00:00" + key: CASEM-1234 + priority: NOT_DEFINED + status: OPEN + status_name: Open + title: Memory leak investigation on API + id: 00000000-0000-0000-0000-000000000001 + relationships: + project: + data: + id: 00000000-0000-0000-0000-000000000002 + type: project + type: case schema: - $ref: "#/components/schemas/CaseLinkResponse" - description: Created + $ref: "#/components/schemas/CaseResponse" + description: OK "400": $ref: "#/components/responses/BadRequestResponse" "401": @@ -138613,18 +147570,54 @@ paths: appKeyAuth: [] - AuthZ: - cases_write - summary: Create a case link + summary: Update case description tags: - Case Management - /api/v2/cases/link/{link_id}: - delete: - description: Deletes an existing link between cases by link ID. - operationId: DeleteCaseLink + /api/v2/cases/{case_id}/due_date: + post: + description: Sets or updates the due date for a case. The due date is a calendar date (without a time component) indicating when the case should be resolved. + operationId: UpdateCaseDueDate parameters: - - $ref: "#/components/parameters/LinkIDPathParameter" + - $ref: "#/components/parameters/CaseIDPathParameter" + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + due_date: "2026-12-31" + type: case + schema: + $ref: "#/components/schemas/CaseUpdateDueDateRequest" + description: Case due date update payload. + required: true responses: - "204": - description: No Content + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + created_at: "2024-01-01T00:00:00+00:00" + key: CASEM-1234 + priority: NOT_DEFINED + status: OPEN + status_name: Open + title: Memory leak investigation on API + id: 00000000-0000-0000-0000-000000000001 + relationships: + project: + data: + id: 00000000-0000-0000-0000-000000000002 + type: project + type: case + schema: + $ref: "#/components/schemas/CaseResponse" + description: OK "400": $ref: "#/components/responses/BadRequestResponse" "401": @@ -138640,14 +147633,32 @@ paths: appKeyAuth: [] - AuthZ: - cases_write - summary: Delete a case link + summary: Update case due date tags: - Case Management - /api/v2/cases/projects: - get: - description: >- - Get all projects. - operationId: GetProjects + /api/v2/cases/{case_id}/insights: + delete: + description: Removes one or more previously added insights from a case by specifying their type and resource identifier in the request body. + operationId: RemoveCaseInsights + parameters: + - $ref: "#/components/parameters/CaseIDPathParameter" + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + insights: + - ref: "/monitors/12345?q=total" + resource_id: "12345" + type: SECURITY_SIGNAL + type: case + schema: + $ref: "#/components/schemas/CaseInsightsRequest" + description: Case insights request. + required: true responses: "200": content: @@ -138656,35 +147667,63 @@ paths: default: value: data: - - attributes: - key: SEC - name: Security Investigation - id: 00000000-0000-0000-0000-000000000002 - type: project + attributes: + created_at: "2024-01-01T00:00:00+00:00" + key: CASEM-1234 + priority: NOT_DEFINED + status: OPEN + status_name: Open + title: Memory leak investigation on API + id: 00000000-0000-0000-0000-000000000001 + relationships: + project: + data: + id: 00000000-0000-0000-0000-000000000002 + type: project + type: case schema: - $ref: "#/components/schemas/ProjectsResponse" + $ref: "#/components/schemas/CaseResponse" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_read - summary: Get all projects + - cases_write + summary: Remove insights from a case tags: - Case Management - post: - description: Create a project. - operationId: CreateProject + put: + description: >- + Adds one or more insights to a case. Insights are references to related Datadog resources (such as monitors, security signals, incidents, or error tracking issues) that provide investigative context. Up to 100 insights can be added per request. Each insight requires a type (see `CaseInsightType` for allowed values), a ref (URL path to the resource), and a resource_id. + operationId: AddCaseInsights + parameters: + - $ref: "#/components/parameters/CaseIDPathParameter" requestBody: content: application/json: @@ -138693,15 +147732,17 @@ paths: value: data: attributes: - key: SEC - name: Security Investigation - type: project + insights: + - ref: "/monitors/12345?q=total" + resource_id: "12345" + type: SECURITY_SIGNAL + type: case schema: - $ref: "#/components/schemas/ProjectCreateRequest" - description: Project payload. + $ref: "#/components/schemas/CaseInsightsRequest" + description: Case insights request. required: true responses: - "201": + "200": content: application/json: examples: @@ -138709,21 +147750,46 @@ paths: value: data: attributes: - key: SEC - name: Security Investigation + created_at: "2024-01-01T00:00:00+00:00" + key: CASEM-1234 + priority: NOT_DEFINED + status: OPEN + status_name: Open + title: Memory leak investigation on API id: 00000000-0000-0000-0000-000000000001 - type: project + relationships: + project: + data: + id: 00000000-0000-0000-0000-000000000002 + type: project + type: case schema: - $ref: "#/components/schemas/ProjectResponse" - description: CREATED + $ref: "#/components/schemas/CaseResponse" + description: OK "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: @@ -138731,13 +147797,29 @@ paths: appKeyAuth: [] - AuthZ: - cases_write - summary: Create a project + summary: Add insights to a case tags: - Case Management - /api/v2/cases/projects/favorites: - get: - description: Returns the list of case projects that the current authenticated user has marked as favorites. - operationId: ListUserCaseProjectFavorites + /api/v2/cases/{case_id}/priority: + post: + description: Update case priority + operationId: UpdatePriority + parameters: + - $ref: "#/components/parameters/CaseIDPathParameter" + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + priority: NOT_DEFINED + type: case + schema: + $ref: "#/components/schemas/CaseUpdatePriorityRequest" + description: Case priority update payload + required: true responses: "200": content: @@ -138746,10 +147828,22 @@ paths: default: value: data: - - id: e555e290-ed65-49bd-ae18-8acbfcf18db7 - type: project_favorite + attributes: + created_at: "2024-01-01T00:00:00+00:00" + key: CASEM-1234 + priority: NOT_DEFINED + status: OPEN + status_name: Open + title: Memory leak investigation on API + id: 00000000-0000-0000-0000-000000000001 + relationships: + project: + data: + id: 00000000-0000-0000-0000-000000000002 + type: project + type: case schema: - $ref: "#/components/schemas/ProjectFavoritesResponse" + $ref: "#/components/schemas/CaseResponse" description: OK "400": $ref: "#/components/responses/BadRequestResponse" @@ -138765,27 +147859,71 @@ paths: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_read - summary: List project favorites + - cases_write + summary: Update case priority tags: - Case Management - /api/v2/cases/projects/{project_id}: - delete: - description: Remove a project using the project's `id`. - operationId: DeleteProject + /api/v2/cases/{case_id}/relationships/incidents: + post: + description: Link an incident to a case + operationId: LinkIncident parameters: - - $ref: "#/components/parameters/ProjectIDPathParameter" + - $ref: "#/components/parameters/CaseIDPathParameter" + requestBody: + content: + application/json: + examples: + default: + value: + data: + id: 00000000-0000-0000-0000-000000000000 + type: incidents + schema: + $ref: "#/components/schemas/RelationshipToIncidentRequest" + description: Incident link request + required: true responses: - "204": - description: No Content + "201": + content: + application/json: + examples: + default: + value: + data: + attributes: + key: CASEM-4523 + priority: NOT_DEFINED + status: OPEN + title: Memory leak investigation on API + id: 00000000-0000-0000-0000-000000000002 + type: case + schema: + $ref: "#/components/schemas/CaseResponse" + description: Created + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "404": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: API error response + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: @@ -138793,55 +147931,57 @@ paths: appKeyAuth: [] - AuthZ: - cases_write - summary: Remove a project + summary: Link incident to case tags: - Case Management - get: - description: >- - Get the details of a project by `project_id`. - operationId: GetProject + /api/v2/cases/{case_id}/relationships/jira_issues: + delete: + description: Remove the link between a Jira issue and a case + operationId: UnlinkJiraIssue parameters: - - $ref: "#/components/parameters/ProjectIDPathParameter" + - $ref: "#/components/parameters/CaseIDPathParameter" responses: - "200": + "204": + description: No Content + "400": content: application/json: - examples: - default: - value: - data: - attributes: - key: SEC - name: Security Investigation - id: 00000000-0000-0000-0000-000000000003 - type: project schema: - $ref: "#/components/schemas/ProjectResponse" - description: OK - "400": - $ref: "#/components/responses/BadRequestResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_read - summary: Get the details of a project + - cases_write + summary: Remove Jira issue link from case tags: - Case Management patch: - description: >- - Update a project. - operationId: UpdateProject + description: Link an existing Jira issue to a case + operationId: LinkJiraIssueToCase parameters: - - $ref: "#/components/parameters/ProjectIDPathParameter" + - $ref: "#/components/parameters/CaseIDPathParameter" requestBody: content: application/json: @@ -138849,35 +147989,46 @@ paths: default: value: data: - type: project + attributes: + jira_issue_url: https://jira.example.com/browse/PROJ-123 + type: issues schema: - $ref: "#/components/schemas/ProjectUpdateRequest" - description: Project payload. + $ref: "#/components/schemas/JiraIssueLinkRequest" + description: Jira issue link request required: true responses: - "200": + "204": + description: No Content + "400": content: application/json: - examples: - default: - value: - data: - attributes: - key: SEC - name: Security Investigation - id: 00000000-0000-0000-0000-000000000004 - type: project schema: - $ref: "#/components/schemas/ProjectResponse" - description: OK - "400": - $ref: "#/components/responses/BadRequestResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Conflict "429": $ref: "#/components/responses/TooManyRequestsResponse" security: @@ -138885,26 +148036,58 @@ paths: appKeyAuth: [] - AuthZ: - cases_write - summary: Update a project + summary: Link existing Jira issue to case tags: - Case Management - /api/v2/cases/projects/{project_id}/favorites: - delete: - description: Removes a case project from the current user's favorites list. - operationId: UnfavoriteCaseProject + post: + description: Create a new Jira issue and link it to a case + operationId: CreateCaseJiraIssue parameters: - - $ref: "#/components/parameters/ProjectIDPathParameter" + - $ref: "#/components/parameters/CaseIDPathParameter" + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + fields: {} + issue_type_id: "10001" + jira_account_id: "1234" + project_id: "5678" + type: issues + schema: + $ref: "#/components/schemas/JiraIssueCreateRequest" + description: Jira issue creation request + required: true responses: - "204": - description: No Content + "202": + description: Accepted "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: @@ -138912,25 +148095,54 @@ paths: appKeyAuth: [] - AuthZ: - cases_write - summary: Unfavorite a project + summary: Create Jira issue for case tags: - Case Management + /api/v2/cases/{case_id}/relationships/notebook: post: - description: Marks a case project as a favorite for the current authenticated user. - operationId: FavoriteCaseProject + description: Create a new investigation notebook and link it to a case + operationId: CreateCaseNotebook parameters: - - $ref: "#/components/parameters/ProjectIDPathParameter" + - $ref: "#/components/parameters/CaseIDPathParameter" + requestBody: + content: + application/json: + examples: + default: + value: + data: + type: notebook + schema: + $ref: "#/components/schemas/NotebookCreateRequest" + description: Notebook creation request + required: true responses: "204": description: No Content "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: @@ -138938,22 +148150,28 @@ paths: appKeyAuth: [] - AuthZ: - cases_write - summary: Favorite a project + summary: Create investigation notebook for case tags: - Case Management - /api/v2/cases/projects/{project_id}/notification_rules: - get: - description: >- - Get all notification rules for a project. - operationId: GetProjectNotificationRules + /api/v2/cases/{case_id}/relationships/project: + patch: + description: Update the project associated with a case + operationId: MoveCaseToProject parameters: - - description: Project UUID - example: "e555e290-ed65-49bd-ae18-8acbfcf18db7" - in: path - name: project_id - required: true - schema: - type: string + - $ref: "#/components/parameters/CaseIDPathParameter" + requestBody: + content: + application/json: + examples: + default: + value: + data: + id: e555e290-ed65-49bd-ae18-8acbfcf18db7 + type: project + schema: + $ref: "#/components/schemas/ProjectRelationship" + description: Project update request + required: true responses: "200": content: @@ -138962,50 +148180,56 @@ paths: default: value: data: - - attributes: - is_enabled: true - query: "" - recipients: - - data: - email: test@example.com - type: EMAIL - triggers: - - data: {} - type: CASE_CREATED - id: 00000000-0000-0000-0000-000000000001 - type: notification_rule + attributes: + key: CASEM-4523 + priority: NOT_DEFINED + status: OPEN + title: Memory leak investigation on API + id: 00000000-0000-0000-0000-000000000001 + type: case schema: - $ref: "#/components/schemas/CaseNotificationRulesResponse" + $ref: "#/components/schemas/CaseResponse" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_read - summary: Get notification rules + - cases_write + summary: Update case project tags: - Case Management + /api/v2/cases/{case_id}/relationships/servicenow_tickets: post: - description: Create a notification rule for a project. - operationId: CreateProjectNotificationRule + description: Create a new ServiceNow incident ticket and link it to a case + operationId: CreateCaseServiceNowTicket parameters: - - description: Project UUID - example: "e555e290-ed65-49bd-ae18-8acbfcf18db7" - in: path - name: project_id - required: true - schema: - type: string + - $ref: "#/components/parameters/CaseIDPathParameter" requestBody: content: application/json: @@ -139014,46 +148238,40 @@ paths: value: data: attributes: - recipients: - - type: EMAIL - triggers: - - type: CASE_CREATED - type: notification_rule + assignment_group: IT Support + instance_name: my-instance + type: tickets schema: - $ref: "#/components/schemas/CaseNotificationRuleCreateRequest" - description: Notification rule payload + $ref: "#/components/schemas/ServiceNowTicketCreateRequest" + description: ServiceNow ticket creation request required: true responses: - "201": + "202": + description: Accepted + "400": content: application/json: - examples: - default: - value: - data: - attributes: - is_enabled: true - query: "" - recipients: - - data: - email: test@example.com - type: EMAIL - triggers: - - data: {} - type: CASE_CREATED - id: 00000000-0000-0000-0000-000000000002 - type: notification_rule schema: - $ref: "#/components/schemas/CaseNotificationRuleResponse" - description: CREATED - "400": - $ref: "#/components/responses/BadRequestResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: @@ -139061,33 +148279,62 @@ paths: appKeyAuth: [] - AuthZ: - cases_write - summary: Create a notification rule + summary: Create ServiceNow ticket for case tags: - Case Management - /api/v2/cases/projects/{project_id}/notification_rules/{notification_rule_id}: - delete: - description: Delete a notification rule using the notification rule's `id`. - operationId: DeleteProjectNotificationRule + /api/v2/cases/{case_id}/resolved_reason: + post: + description: Sets the resolved reason for a security case (for example, FALSE_POSITIVE, TRUE_POSITIVE). Applicable to security-type cases. + operationId: UpdateCaseResolvedReason parameters: - - description: Project UUID - example: "e555e290-ed65-49bd-ae18-8acbfcf18db7" - in: path - name: project_id - required: true - schema: - type: string - - $ref: "#/components/parameters/NotificationRuleIDPathParameter" + - $ref: "#/components/parameters/CaseIDPathParameter" + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + security_resolved_reason: "FALSE_POSITIVE" + type: case + schema: + $ref: "#/components/schemas/CaseUpdateResolvedReasonRequest" + description: Case resolved reason update payload. + required: true responses: - "204": - description: No Content + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + created_at: "2024-01-01T00:00:00+00:00" + key: CASEM-1234 + priority: NOT_DEFINED + status: OPEN + status_name: Open + title: Memory leak investigation on API + id: 00000000-0000-0000-0000-000000000001 + relationships: + project: + data: + id: 00000000-0000-0000-0000-000000000002 + type: project + type: case + schema: + $ref: "#/components/schemas/CaseResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": $ref: "#/components/responses/ForbiddenResponse" "404": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: API error response + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: @@ -139095,22 +148342,15 @@ paths: appKeyAuth: [] - AuthZ: - cases_write - summary: Delete a notification rule + summary: Update case resolved reason tags: - Case Management - put: - description: >- - Update a notification rule. - operationId: UpdateProjectNotificationRule + /api/v2/cases/{case_id}/status: + post: + description: Update case status + operationId: UpdateStatus parameters: - - description: Project UUID - example: "e555e290-ed65-49bd-ae18-8acbfcf18db7" - in: path - name: project_id - required: true - schema: - type: string - - $ref: "#/components/parameters/NotificationRuleIDPathParameter" + - $ref: "#/components/parameters/CaseIDPathParameter" requestBody: content: application/json: @@ -139119,18 +148359,38 @@ paths: value: data: attributes: - recipients: - - type: EMAIL - triggers: - - type: CASE_CREATED - type: notification_rule + status: OPEN + status_name: Open + type: case schema: - $ref: "#/components/schemas/CaseNotificationRuleUpdateRequest" - description: Notification rule payload + $ref: "#/components/schemas/CaseUpdateStatusRequest" + description: Case status update payload required: true responses: - "204": - description: No Content + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + created_at: "2024-01-01T00:00:00+00:00" + key: CASEM-1234 + priority: NOT_DEFINED + status: OPEN + status_name: Open + title: Memory leak investigation on API + id: 00000000-0000-0000-0000-000000000001 + relationships: + project: + data: + id: 00000000-0000-0000-0000-000000000002 + type: project + type: case + schema: + $ref: "#/components/schemas/CaseResponse" + description: OK "400": $ref: "#/components/responses/BadRequestResponse" "401": @@ -139146,21 +148406,38 @@ paths: appKeyAuth: [] - AuthZ: - cases_write - summary: Update a notification rule + summary: Update case status tags: - Case Management - /api/v2/cases/projects/{project_id}/rules: + /api/v2/cases/{case_id}/timelines: get: - description: Returns all automation rules configured for a project. Automation rules allow automatic actions to be triggered by case events like creation, status transitions, or attribute changes. - operationId: ListCaseAutomationRules + description: Returns the timeline of events for a case, including comments, status changes, and other activity. Supports pagination and sort order. + operationId: ListCaseTimeline parameters: - - description: The UUID of the project that owns the automation rules. - example: "e555e290-ed65-49bd-ae18-8acbfcf18db7" - in: path - name: project_id - required: true + - $ref: "#/components/parameters/CaseIDPathParameter" + - description: Number of timeline cells to return per page. + in: query + name: page[size] + required: false schema: - type: string + default: 100 + format: int64 + type: integer + - description: Zero-based page number for pagination. + in: query + name: page[number] + required: false + schema: + default: 0 + format: int64 + type: integer + - description: "If `true`, returns timeline cells in chronological order (oldest first). Defaults to `false` (newest first)." + in: query + name: sort[ascending] + required: false + schema: + default: false + type: boolean responses: "200": content: @@ -139170,19 +148447,14 @@ paths: value: data: - attributes: - action: - data: - handle: workflow-handle-123 - type: EXECUTE_WORKFLOW - created_at: "2024-01-01T00:00:00.000Z" - name: Auto-assign workflow - state: ENABLED - trigger: - type: CASE_CREATED - id: e6773723-fe58-49ff-9975-dff00f14e28d - type: rule + cell_content: + message: This is a comment + created_at: "2024-01-01T00:00:00+00:00" + type: COMMENT + id: 00000000-0000-0000-0000-000000000001 + type: timeline_cell schema: - $ref: "#/components/schemas/AutomationRulesResponse" + $ref: "#/components/schemas/TimelineResponse" description: OK "400": $ref: "#/components/responses/BadRequestResponse" @@ -139199,20 +148471,15 @@ paths: appKeyAuth: [] - AuthZ: - cases_read - summary: List automation rules + summary: Get case timeline tags: - Case Management + /api/v2/cases/{case_id}/title: post: - description: Creates an automation rule for a project. The rule defines a trigger event (for example, case created, status transitioned) and an action to execute. - operationId: CreateCaseAutomationRule + description: Update case title + operationId: UpdateCaseTitle parameters: - - description: The UUID of the project that owns the automation rules. - example: "e555e290-ed65-49bd-ae18-8acbfcf18db7" - in: path - name: project_id - required: true - schema: - type: string + - $ref: "#/components/parameters/CaseIDPathParameter" requestBody: content: application/json: @@ -139221,21 +148488,14 @@ paths: value: data: attributes: - action: - data: - handle: workflow-handle-123 - type: EXECUTE_WORKFLOW - name: Auto-assign workflow - state: ENABLED - trigger: - type: CASE_CREATED - type: rule + title: Memory leak investigation on API + type: case schema: - $ref: "#/components/schemas/AutomationRuleCreateRequest" - description: Automation rule payload. + $ref: "#/components/schemas/CaseUpdateTitleRequest" + description: Case title update payload required: true responses: - "201": + "200": content: application/json: examples: @@ -139243,20 +148503,22 @@ paths: value: data: attributes: - action: + created_at: "2024-01-01T00:00:00+00:00" + key: CASEM-1234 + priority: NOT_DEFINED + status: OPEN + status_name: Open + title: Memory leak investigation on API + id: 00000000-0000-0000-0000-000000000001 + relationships: + project: data: - handle: workflow-handle-123 - type: EXECUTE_WORKFLOW - created_at: "2024-01-01T00:00:00.000Z" - name: Auto-assign workflow - state: ENABLED - trigger: - type: CASE_CREATED - id: e6773723-fe58-49ff-9975-dff00f14e28d - type: rule + id: 00000000-0000-0000-0000-000000000002 + type: project + type: case schema: - $ref: "#/components/schemas/AutomationRuleResponse" - description: Created + $ref: "#/components/schemas/CaseResponse" + description: OK "400": $ref: "#/components/responses/BadRequestResponse" "401": @@ -139272,51 +148534,27 @@ paths: appKeyAuth: [] - AuthZ: - cases_write - summary: Create an automation rule - tags: - - Case Management - /api/v2/cases/projects/{project_id}/rules/{rule_id}: - delete: - description: Permanently deletes an automation rule from a project. - operationId: DeleteCaseAutomationRule - parameters: - - description: The UUID of the project that owns the automation rules. - example: "e555e290-ed65-49bd-ae18-8acbfcf18db7" - in: path - name: project_id - required: true - schema: - type: string - - $ref: "#/components/parameters/RuleIDPathParameter" - responses: - "204": - description: No Content - "403": - $ref: "#/components/responses/ForbiddenResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cases_write - summary: Delete an automation rule + summary: Update case title tags: - Case Management - get: - description: Returns a single automation rule identified by its UUID, including its trigger, action, and current state (enabled/disabled). - operationId: GetCaseAutomationRule + /api/v2/cases/{case_id}/unarchive: + post: + description: Unarchive case + operationId: UnarchiveCase parameters: - - description: The UUID of the project that owns the automation rules. - example: "e555e290-ed65-49bd-ae18-8acbfcf18db7" - in: path - name: project_id - required: true - schema: - type: string - - $ref: "#/components/parameters/RuleIDPathParameter" + - $ref: "#/components/parameters/CaseIDPathParameter" + requestBody: + content: + application/json: + examples: + default: + value: + data: + type: case + schema: + $ref: "#/components/schemas/CaseEmptyRequest" + description: Unarchive case payload + required: true responses: "200": content: @@ -139326,19 +148564,21 @@ paths: value: data: attributes: - action: + created_at: "2024-01-01T00:00:00+00:00" + key: CASEM-1234 + priority: NOT_DEFINED + status: OPEN + status_name: Open + title: Memory leak investigation on API + id: 00000000-0000-0000-0000-000000000001 + relationships: + project: data: - handle: workflow-handle-123 - type: EXECUTE_WORKFLOW - created_at: "2024-01-01T00:00:00.000Z" - name: Auto-assign workflow - state: ENABLED - trigger: - type: CASE_CREATED - id: e6773723-fe58-49ff-9975-dff00f14e28d - type: rule + id: 00000000-0000-0000-0000-000000000002 + type: project + type: case schema: - $ref: "#/components/schemas/AutomationRuleResponse" + $ref: "#/components/schemas/CaseResponse" description: OK "400": $ref: "#/components/responses/BadRequestResponse" @@ -139354,22 +148594,16 @@ paths: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_read - summary: Get an automation rule + - cases_write + summary: Unarchive case tags: - Case Management - put: - description: Updates the trigger, action, name, or state of an existing automation rule. - operationId: UpdateCaseAutomationRule + /api/v2/cases/{case_id}/unassign: + post: + description: Unassign case + operationId: UnassignCase parameters: - - description: The UUID of the project that owns the automation rules. - example: "e555e290-ed65-49bd-ae18-8acbfcf18db7" - in: path - name: project_id - required: true - schema: - type: string - - $ref: "#/components/parameters/RuleIDPathParameter" + - $ref: "#/components/parameters/CaseIDPathParameter" requestBody: content: application/json: @@ -139377,19 +148611,10 @@ paths: default: value: data: - attributes: - action: - data: - handle: workflow-handle-123 - type: EXECUTE_WORKFLOW - name: Auto-assign workflow - state: ENABLED - trigger: - type: CASE_CREATED - type: rule + type: case schema: - $ref: "#/components/schemas/AutomationRuleUpdateRequest" - description: Automation rule payload. + $ref: "#/components/schemas/CaseEmptyRequest" + description: Unassign case payload required: true responses: "200": @@ -139400,19 +148625,21 @@ paths: value: data: attributes: - action: + created_at: "2024-01-01T00:00:00+00:00" + key: CASEM-1234 + priority: NOT_DEFINED + status: OPEN + status_name: Open + title: Memory leak investigation on API + id: 00000000-0000-0000-0000-000000000001 + relationships: + project: data: - handle: workflow-handle-123 - type: EXECUTE_WORKFLOW - created_at: "2024-01-01T00:00:00.000Z" - name: Auto-assign workflow - state: ENABLED - trigger: - type: CASE_CREATED - id: e6773723-fe58-49ff-9975-dff00f14e28d - type: rule + id: 00000000-0000-0000-0000-000000000002 + type: project + type: case schema: - $ref: "#/components/schemas/AutomationRuleResponse" + $ref: "#/components/schemas/CaseResponse" description: OK "400": $ref: "#/components/responses/BadRequestResponse" @@ -139429,22 +148656,15 @@ paths: appKeyAuth: [] - AuthZ: - cases_write - summary: Update an automation rule + summary: Unassign case tags: - Case Management - /api/v2/cases/projects/{project_id}/rules/{rule_id}/disable: - post: - description: Disables an automation rule so it no longer triggers on case events. The rule configuration is preserved. - operationId: DisableCaseAutomationRule + /api/v2/cases/{case_id}/watchers: + get: + description: Returns the list of users who are watching a case. Watchers receive notifications about updates to the case. + operationId: ListCaseWatchers parameters: - - description: The UUID of the project that owns the automation rules. - example: "e555e290-ed65-49bd-ae18-8acbfcf18db7" - in: path - name: project_id - required: true - schema: - type: string - - $ref: "#/components/parameters/RuleIDPathParameter" + - $ref: "#/components/parameters/CaseIDPathParameter" responses: "200": content: @@ -139453,20 +148673,15 @@ paths: default: value: data: - attributes: - action: - data: - handle: workflow-handle-123 - type: EXECUTE_WORKFLOW - created_at: "2024-01-01T00:00:00.000Z" - name: Auto-assign workflow - state: DISABLED - trigger: - type: CASE_CREATED - id: e6773723-fe58-49ff-9975-dff00f14e28d - type: rule + - id: 8146583c-0b5f-11ec-abf8-da7ad0900001 + relationships: + user: + data: + id: 8146583c-0b5f-11ec-abf8-da7ad0900001 + type: user + type: watcher schema: - $ref: "#/components/schemas/AutomationRuleResponse" + $ref: "#/components/schemas/CaseWatchersResponse" description: OK "400": $ref: "#/components/responses/BadRequestResponse" @@ -139478,50 +148693,51 @@ paths: $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_read + summary: List case watchers + tags: + - Case Management + /api/v2/cases/{case_id}/watchers/{user_uuid}: + delete: + description: Removes a user from the watchers list of a case. The user no longer receives notifications about updates to the case. + operationId: UnwatchCase + parameters: + - $ref: "#/components/parameters/CaseIDPathParameter" + - $ref: "#/components/parameters/UserUUIDPathParameter" + responses: + "204": + description: No Content + "400": + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - cases_write - summary: Disable an automation rule + summary: Unwatch a case tags: - Case Management - /api/v2/cases/projects/{project_id}/rules/{rule_id}/enable: post: - description: Enables a previously disabled automation rule so it triggers on matching case events. - operationId: EnableCaseAutomationRule + description: Adds a user (identified by their UUID) as a watcher of a case. The user receives notifications about subsequent updates to the case. + operationId: WatchCase parameters: - - description: The UUID of the project that owns the automation rules. - example: "e555e290-ed65-49bd-ae18-8acbfcf18db7" - in: path - name: project_id - required: true - schema: - type: string - - $ref: "#/components/parameters/RuleIDPathParameter" + - $ref: "#/components/parameters/CaseIDPathParameter" + - $ref: "#/components/parameters/UserUUIDPathParameter" responses: - "200": - content: - application/json: - examples: - default: - value: - data: - attributes: - action: - data: - handle: workflow-handle-123 - type: EXECUTE_WORKFLOW - created_at: "2024-01-01T00:00:00.000Z" - name: Auto-assign workflow - state: ENABLED - trigger: - type: CASE_CREATED - id: e6773723-fe58-49ff-9975-dff00f14e28d - type: rule - schema: - $ref: "#/components/schemas/AutomationRuleResponse" - description: OK + "201": + description: Created "400": $ref: "#/components/responses/BadRequestResponse" "401": @@ -139537,13 +148753,39 @@ paths: appKeyAuth: [] - AuthZ: - cases_write - summary: Enable an automation rule + summary: Watch a case tags: - Case Management - /api/v2/cases/types: + /api/v2/catalog/entity: get: - description: Get all case types - operationId: GetAllCaseTypes + description: Get a list of entities from Software Catalog. + operationId: ListCatalogEntity + parameters: + - $ref: "#/components/parameters/PageOffset" + - description: Maximum number of entities in the response. + example: 100 + in: query + name: page[limit] + required: false + schema: + default: 100 + format: int64 + type: integer + - $ref: "#/components/parameters/FilterByID" + - $ref: "#/components/parameters/FilterByRef" + - $ref: "#/components/parameters/FilterByName" + - $ref: "#/components/parameters/FilterByKind" + - $ref: "#/components/parameters/FilterByOwner" + - $ref: "#/components/parameters/FilterByRelationType" + - $ref: "#/components/parameters/FilterByExcludeSnapshot" + - $ref: "#/components/parameters/Include" + - description: If true, includes discovered services from APM and USM that do not have entity definitions. + in: query + name: includeDiscovered + required: false + schema: + default: false + type: boolean responses: "200": content: @@ -139553,163 +148795,271 @@ paths: value: data: - attributes: - description: Investigations done in case management - emoji: "🕵🏻‍♂️" - name: Investigation - id: 00000000-0000-0000-0000-000000000001 - type: case_type + apiVersion: v3 + kind: service + name: myService + namespace: default + id: 4b163705-23c0-4573-b2fb-f6cea2163fcb + type: entity + meta: + count: 1 + includeCount: 0 schema: - $ref: "#/components/schemas/CaseTypesResponse" + $ref: "#/components/schemas/ListEntityCatalogResponse" description: OK - "401": - $ref: "#/components/responses/UnauthorizedResponse" "403": $ref: "#/components/responses/ForbiddenResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get all case types + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - apm_service_catalog_read + summary: Get a list of entities tags: - - Case Management Type + - Software Catalog + x-pagination: + limitParam: page[limit] + pageOffsetParam: page[offset] + resultsPath: data post: - description: Create a Case Type - operationId: CreateCaseType + description: Create or update entities in Software Catalog. + operationId: UpsertCatalogEntity requestBody: content: application/json: examples: default: value: - data: - attributes: - description: Investigations done in case management - emoji: 🕵🏻‍♂️ - name: Investigation - type: case_type + apiVersion: v3 + integrations: + opsgenie: + serviceURL: https://www.opsgenie.com/service/shopping-cart + pagerduty: + serviceURL: https://www.pagerduty.com/service-directory/Pshopping-cart + kind: service + metadata: + additionalOwners: + - name: "" + contacts: + - contact: https://slack/ + type: slack + id: 4b163705-23c0-4573-b2fb-f6cea2163fcb + inheritFrom: application:default/myapp + links: + - name: mylink + type: link + url: https://mylink + name: myService + namespace: default + tags: + - this:tag + - that:tag schema: - $ref: "#/components/schemas/CaseTypeCreateRequest" - description: Case type payload + $ref: "#/components/schemas/UpsertCatalogEntityRequest" + description: Entity YAML or JSON. required: true responses: - "201": + "202": content: application/json: examples: default: value: data: - attributes: - description: Investigations done in case management - emoji: "🕵🏻‍♂️" - name: Investigation - id: 00000000-0000-0000-0000-000000000001 - type: case_type + - attributes: + apiVersion: v3 + kind: service + name: myService + namespace: default + id: 4b163705-23c0-4573-b2fb-f6cea2163fcb + type: entity + meta: + count: 1 + includeCount: 0 schema: - $ref: "#/components/schemas/CaseTypeResponse" - description: CREATED + $ref: "#/components/schemas/UpsertCatalogEntityResponse" + description: ACCEPTED "400": $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" "403": $ref: "#/components/responses/ForbiddenResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Create a case type + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - apm_service_catalog_write + summary: Create or update entities tags: - - Case Management Type - /api/v2/cases/types/custom_attributes: - get: - description: Get all custom attributes - operationId: GetAllCustomAttributes + - Software Catalog + x-codegen-request-body-name: body + /api/v2/catalog/entity/preview: + post: + operationId: PreviewCatalogEntities responses: - "200": + "202": content: application/json: examples: default: value: data: - - attributes: - case_type_id: 00000000-0000-0000-0000-000000000002 - description: "AWS Region, must be a valid region supported by AWS" - display_name: AWS Region - is_multi: true - key: aws_region - type: TEXT - id: 00000000-0000-0000-0000-000000000001 - type: custom_attribute + - id: 4b163705-23c0-4573-b2fb-f6cea2163fcb + type: entity schema: - $ref: "#/components/schemas/CustomAttributeConfigsResponse" - description: OK - "401": - $ref: "#/components/responses/UnauthorizedResponse" - "403": - $ref: "#/components/responses/ForbiddenResponse" + $ref: "#/components/schemas/EntityResponseArray" + description: Accepted "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get all custom attributes + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - apm_service_catalog_read + summary: Preview catalog entities tags: - - Case Management Attribute - /api/v2/cases/types/{case_type_id}: + - Software Catalog + /api/v2/catalog/entity/{entity_id}: delete: - description: Delete a case type - operationId: DeleteCaseType + description: Delete a single entity in Software Catalog. + operationId: DeleteCatalogEntity parameters: - - $ref: "#/components/parameters/CaseTypeIDPathParameter" + - $ref: "#/components/parameters/EntityID" responses: "204": - description: No Content - "401": - $ref: "#/components/responses/UnauthorizedResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" "403": $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Delete a case type + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - apm_service_catalog_write + summary: Delete a single entity tags: - - Case Management Type - put: - description: Updates the name, emoji, or description of an existing case type. - operationId: UpdateCaseType + - Software Catalog + /api/v2/catalog/kind: + get: + description: Get a list of entity kinds from Software Catalog. + operationId: ListCatalogKind parameters: - - $ref: "#/components/parameters/CaseTypeIDPathParameter" + - $ref: "#/components/parameters/PageOffset" + - description: Maximum number of kinds in the response. + example: 100 + in: query + name: page[limit] + required: false + schema: + default: 100 + format: int64 + type: integer + - $ref: "#/components/parameters/FilterByID" + - $ref: "#/components/parameters/FilterByName" + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + description: A job entity in the catalog. + displayName: My Job + name: my-job + id: 4b163705-23c0-4573-b2fb-f6cea2163fcb + type: kind + meta: + count: 1 + schema: + $ref: "#/components/schemas/ListKindCatalogResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - apm_service_catalog_read + summary: Get a list of entity kinds + tags: + - Software Catalog + x-pagination: + limitParam: page[limit] + pageOffsetParam: page[offset] + resultsPath: data + post: + description: Create or update kinds in Software Catalog. + operationId: UpsertCatalogKind requestBody: content: application/json: examples: default: value: - data: - attributes: - description: Investigations done in case management - emoji: "🕵🏻‍♂️" - name: Investigation - type: case_type + kind: my-job schema: - $ref: "#/components/schemas/CaseTypeUpdateRequest" - description: Case type payload. + $ref: "#/components/schemas/UpsertCatalogKindRequest" + description: Kind YAML or JSON. required: true responses: - "200": + "202": content: application/json: examples: default: value: data: - attributes: - description: Investigations done in case management - emoji: "🕵🏻‍♂️" - name: Investigation - id: 00000000-0000-0000-0000-000000000001 - type: case_type + - attributes: + description: A job entity in the catalog. + displayName: My Job + name: my-job + id: 4b163705-23c0-4573-b2fb-f6cea2163fcb + type: kind + meta: + count: 1 schema: - $ref: "#/components/schemas/CaseTypeResponse" + $ref: "#/components/schemas/UpsertCatalogKindResponse" + description: ACCEPTED + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - apm_service_catalog_write + summary: Create or update kinds + tags: + - Software Catalog + x-codegen-request-body-name: body + /api/v2/catalog/kind/{kind_id}: + delete: + description: Delete a single kind in Software Catalog. + operationId: DeleteCatalogKind + parameters: + - $ref: "#/components/parameters/KindID" + responses: + "204": description: OK "400": $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" "403": $ref: "#/components/responses/ForbiddenResponse" "404": @@ -139720,16 +149070,36 @@ paths: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_shared_settings_write - summary: Update a case type + - apm_service_catalog_write + summary: Delete a single kind tags: - - Case Management Type - /api/v2/cases/types/{case_type_id}/custom_attributes: + - Software Catalog + /api/v2/catalog/relation: get: - description: Get all custom attribute config of case type - operationId: GetAllCustomAttributeConfigsByCaseType + description: Get a list of entity relations from Software Catalog. + operationId: ListCatalogRelation parameters: - - $ref: "#/components/parameters/CaseTypeIDPathParameter" + - $ref: "#/components/parameters/PageOffset" + - description: Maximum number of relations in the response. + example: 100 + in: query + name: page[limit] + required: false + schema: + default: 100 + format: int64 + type: integer + - $ref: "#/components/parameters/FilterRelationByType" + - $ref: "#/components/parameters/FilterRelationByFromRef" + - $ref: "#/components/parameters/FilterRelationByToRef" + - $ref: "#/components/parameters/RelationInclude" + - description: If true, includes relationships discovered by APM and USM. + in: query + name: includeDiscovered + required: false + schema: + default: false + type: boolean responses: "200": content: @@ -139739,33 +149109,40 @@ paths: value: data: - attributes: - case_type_id: 00000000-0000-0000-0000-000000000004 - description: "AWS Region, must be a valid region supported by AWS" - display_name: AWS Region - is_multi: true - key: aws_region - type: TEXT - id: 00000000-0000-0000-0000-000000000003 - type: custom_attribute + from: + kind: service + name: test-service + to: + kind: service + name: other-service + type: RelationTypeOwns + id: abc-123 + type: relation + meta: + count: 1 schema: - $ref: "#/components/schemas/CustomAttributeConfigsResponse" + $ref: "#/components/schemas/ListRelationCatalogResponse" description: OK - "400": - $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" "403": $ref: "#/components/responses/ForbiddenResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get all custom attributes config of case type + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - apm_service_catalog_read + summary: Get a list of entity relations tags: - - Case Management Attribute + - Software Catalog + x-pagination: + limitParam: page[limit] + pageOffsetParam: page[offset] + resultsPath: data + /api/v2/change-management/change-request: post: - description: Create custom attribute config for a case type - operationId: CreateCustomAttributeConfig - parameters: - - $ref: "#/components/parameters/CaseTypeIDPathParameter" + description: Create a new change request. + operationId: CreateChangeRequest requestBody: content: application/json: @@ -139774,15 +149151,22 @@ paths: value: data: attributes: - description: AWS Region, must be a valid region supported by AWS - display_name: AWS Region - is_multi: true - key: aws_region - type: NUMBER - type: custom_attribute + change_request_linked_incident_uuid: 00000000-0000-0000-0000-000000000000 + change_request_maintenance_window_query: "" + change_request_plan: 1. Deploy to staging 2. Run tests 3. Deploy to production + change_request_risk: LOW + change_request_type: NORMAL + description: Deploying new payment service v2.1 + end_date: "2024-01-02T15:00:00Z" + project_id: d4bbe1af-f36e-42f1-87c1-493ca35c320e + requested_teams: + - team-handle-1 + start_date: "2024-01-01T03:00:00Z" + title: Deploy new payment service + type: change_request schema: - $ref: "#/components/schemas/CustomAttributeConfigCreateRequest" - description: Custom attribute config payload + $ref: "#/components/schemas/ChangeRequestCreateRequest" + description: Change request payload. required: true responses: "201": @@ -139793,72 +149177,72 @@ paths: value: data: attributes: - case_type_id: 00000000-0000-0000-0000-000000000006 - description: "AWS Region, must be a valid region supported by AWS" - display_name: AWS Region - is_multi: true - key: aws_region - type: TEXT - id: 00000000-0000-0000-0000-000000000005 - type: custom_attribute + attributes: {} + change_request_linked_incident_uuid: "" + change_request_maintenance_window_query: "" + change_request_plan: "" + change_request_risk: LOW + change_request_type: NORMAL + created_at: "2024-01-01T00:00:00+00:00" + creation_source: CS_MANUAL + description: Deploying new payment service v2.1 + end_date: "2024-01-02T00:00:00+00:00" + key: CHM-1234 + modified_at: "2024-01-01T00:00:00+00:00" + plan_notebook_id: 0 + priority: NOT_DEFINED + project_id: 00000000-0000-0000-0000-000000000001 + start_date: "2024-01-01T00:00:00+00:00" + status: OPEN + title: Deploy new payment service + type: CHANGE_REQUEST + id: CHM-1234 + relationships: + change_request_decisions: + data: [] + created_by: + data: + id: 00000000-0000-0000-0000-000000000001 + type: user + modified_by: + data: + id: 00000000-0000-0000-0000-000000000001 + type: user + type: change_request schema: - $ref: "#/components/schemas/CustomAttributeConfigResponse" - description: CREATED - "400": - $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" - "403": - $ref: "#/components/responses/ForbiddenResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: Create custom attribute config for a case type - tags: - - Case Management Attribute - /api/v2/cases/types/{case_type_id}/custom_attributes/{custom_attribute_id}: - delete: - description: Delete custom attribute config - operationId: DeleteCustomAttributeConfig - parameters: - - $ref: "#/components/parameters/CaseTypeIDPathParameter" - - $ref: "#/components/parameters/CaseCustomAttributeIDPathParameter" - responses: - "204": - description: No Content + $ref: "#/components/schemas/ChangeRequestResponse" + description: Created "400": - $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Delete custom attributes config + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Create a change request tags: - - Case Management Attribute - put: - description: Updates the display name, description, type, or options of an existing custom attribute configuration for a case type. - operationId: UpdateCustomAttributeConfig + - Change Management + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/change-management/change-request/{change_request_id}: + get: + description: Get the details of a change request by its ID. + operationId: GetChangeRequest parameters: - - $ref: "#/components/parameters/CaseTypeIDPathParameter" - - $ref: "#/components/parameters/CaseCustomAttributeIDPathParameter" - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - description: Updated description. - display_name: AWS Region - type: custom_attribute - schema: - $ref: "#/components/schemas/CustomAttributeConfigUpdateRequest" - description: Custom attribute config payload. - required: true + - $ref: "#/components/parameters/ChangeRequestIDPathParameter" responses: "200": content: @@ -139868,47 +149252,100 @@ paths: value: data: attributes: - case_type_id: 00000000-0000-0000-0000-000000000006 - description: Updated description. - display_name: AWS Region - is_multi: true - key: aws_region - type: TEXT - id: 00000000-0000-0000-0000-000000000005 - type: custom_attribute + attributes: {} + change_request_linked_incident_uuid: "" + change_request_maintenance_window_query: "" + change_request_plan: "" + change_request_risk: LOW + change_request_type: NORMAL + created_at: "2024-01-01T00:00:00+00:00" + creation_source: CS_MANUAL + description: Deploying new payment service v2.1 + end_date: "2024-01-02T00:00:00+00:00" + key: CHM-1234 + modified_at: "2024-01-01T00:00:00+00:00" + plan_notebook_id: 0 + priority: NOT_DEFINED + project_id: 00000000-0000-0000-0000-000000000001 + start_date: "2024-01-01T00:00:00+00:00" + status: OPEN + title: Deploy new payment service + type: CHANGE_REQUEST + id: CHM-1234 + relationships: + change_request_decisions: + data: [] + created_by: + data: + id: 00000000-0000-0000-0000-000000000001 + type: user + modified_by: + data: + id: 00000000-0000-0000-0000-000000000001 + type: user + type: change_request schema: - $ref: "#/components/schemas/CustomAttributeConfigResponse" + $ref: "#/components/schemas/ChangeRequestResponse" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" - "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_shared_settings_write - summary: Update custom attribute config + - cases_read + summary: Get a change request tags: - - Case Management Attribute - /api/v2/cases/views: - get: - description: Returns all saved case views for a given project. Views are saved search queries that allow quick access to filtered lists of cases. - operationId: ListCaseViews + - Change Management + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + patch: + description: Update the properties of a change request. + operationId: UpdateChangeRequest parameters: - - description: Filter views by project identifier. - example: e555e290-ed65-49bd-ae18-8acbfcf18db7 - in: query - name: project_id - required: true - schema: - type: string + - $ref: "#/components/parameters/ChangeRequestIDPathParameter" + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + change_request_plan: Updated deployment plan + change_request_risk: LOW + change_request_type: NORMAL + end_date: "2024-01-02T15:00:00Z" + id: CHM-1234 + start_date: "2024-01-01T03:00:00Z" + relationships: + change_request_decisions: + data: + - id: decision-id-0 + type: change_request + included: + - attributes: + change_request_status: REQUESTED + request_reason: Please review and approve this change + id: decision-id-0 + type: change_request_decision + schema: + $ref: "#/components/schemas/ChangeRequestUpdateRequest" + description: Change request update payload. + required: true responses: "200": content: @@ -139917,36 +149354,79 @@ paths: default: value: data: - - attributes: - created_at: "2024-01-01T00:00:00.000Z" - name: Open bugs - query: "status:open type:bug" - id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 - type: view + attributes: + attributes: {} + change_request_linked_incident_uuid: "" + change_request_maintenance_window_query: "" + change_request_plan: "" + change_request_risk: LOW + change_request_type: NORMAL + created_at: "2024-01-01T00:00:00+00:00" + creation_source: CS_MANUAL + description: Deploying new payment service v2.1 + end_date: "2024-01-02T00:00:00+00:00" + key: CHM-1234 + modified_at: "2024-01-01T00:00:00+00:00" + plan_notebook_id: 0 + priority: NOT_DEFINED + project_id: 00000000-0000-0000-0000-000000000001 + start_date: "2024-01-01T00:00:00+00:00" + status: OPEN + title: Deploy new payment service + type: CHANGE_REQUEST + id: CHM-1234 + relationships: + change_request_decisions: + data: [] + created_by: + data: + id: 00000000-0000-0000-0000-000000000001 + type: user + modified_by: + data: + id: 00000000-0000-0000-0000-000000000001 + type: user + type: change_request schema: - $ref: "#/components/schemas/CaseViewsResponse" + $ref: "#/components/schemas/ChangeRequestResponse" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_read - summary: List case views + - cases_write + summary: Update a change request tags: - - Case Management + - Change Management + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/change-management/change-request/{change_request_id}/branch: post: - description: Creates a new saved case view with a name, filter query, and associated project. Optionally, a notification rule can be linked to the view. - operationId: CreateCaseView + description: Create a new branch in a repository for a change request. + operationId: CreateChangeRequestBranch + parameters: + - $ref: "#/components/parameters/ChangeRequestIDPathParameter" requestBody: content: application/json: @@ -139955,16 +149435,15 @@ paths: value: data: attributes: - name: Open bugs - project_id: e555e290-ed65-49bd-ae18-8acbfcf18db7 - query: "status:open type:bug" - type: view + branch_name: chm/CHM-1234 + repo_id: DataDog/test-repo + type: change_request_branch schema: - $ref: "#/components/schemas/CaseViewCreateRequest" - description: Case view payload. + $ref: "#/components/schemas/ChangeRequestBranchCreateRequest" + description: Branch creation payload. required: true responses: - "201": + "200": content: application/json: examples: @@ -139972,22 +149451,53 @@ paths: value: data: attributes: - created_at: "2024-01-01T00:00:00.000Z" - name: Open bugs - query: "status:open type:bug" - id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 - type: view + attributes: {} + change_request_linked_incident_uuid: "" + change_request_maintenance_window_query: "" + change_request_plan: "" + change_request_risk: LOW + change_request_type: NORMAL + created_at: "2024-01-01T00:00:00+00:00" + creation_source: CS_MANUAL + description: Deploying new payment service v2.1 + end_date: "2024-01-02T00:00:00+00:00" + key: CHM-1234 + modified_at: "2024-01-01T00:00:00+00:00" + plan_notebook_id: 0 + priority: NOT_DEFINED + project_id: 00000000-0000-0000-0000-000000000001 + start_date: "2024-01-01T00:00:00+00:00" + status: OPEN + title: Deploy new payment service + type: CHANGE_REQUEST + id: CHM-1234 + relationships: + change_request_decisions: + data: [] + created_by: + data: + id: 00000000-0000-0000-0000-000000000001 + type: user + modified_by: + data: + id: 00000000-0000-0000-0000-000000000001 + type: user + type: change_request schema: - $ref: "#/components/schemas/CaseViewResponse" - description: Created + $ref: "#/components/schemas/ChangeRequestResponse" + description: OK "400": - $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" - "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: @@ -139995,41 +149505,19 @@ paths: appKeyAuth: [] - AuthZ: - cases_write - summary: Create a case view + summary: Create a change request branch tags: - - Case Management - /api/v2/cases/views/{view_id}: + - Change Management + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/change-management/change-request/{change_request_id}/decisions/{decision_id}: delete: - description: Permanently deletes a saved case view. - operationId: DeleteCaseView - parameters: - - $ref: "#/components/parameters/ViewIDPathParameter" - responses: - "204": - description: No Content - "400": - $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" - "403": - $ref: "#/components/responses/ForbiddenResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cases_write - summary: Delete a case view - tags: - - Case Management - get: - description: Returns a single saved case view identified by its UUID, including its query, associated project, and timestamps. - operationId: GetCaseView + description: Delete a decision from a change request. + operationId: DeleteChangeRequestDecision parameters: - - $ref: "#/components/parameters/ViewIDPathParameter" + - $ref: "#/components/parameters/ChangeRequestIDPathParameter" + - $ref: "#/components/parameters/ChangeRequestDecisionIDPathParameter" responses: "200": content: @@ -140039,37 +149527,72 @@ paths: value: data: attributes: - created_at: "2024-01-01T00:00:00.000Z" - name: Open bugs - query: "status:open type:bug" - id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 - type: view + attributes: {} + change_request_linked_incident_uuid: "" + change_request_maintenance_window_query: "" + change_request_plan: "" + change_request_risk: LOW + change_request_type: NORMAL + created_at: "2024-01-01T00:00:00+00:00" + creation_source: CS_MANUAL + description: Deploying new payment service v2.1 + end_date: "2024-01-02T00:00:00+00:00" + key: CHM-1234 + modified_at: "2024-01-01T00:00:00+00:00" + plan_notebook_id: 0 + priority: NOT_DEFINED + project_id: 00000000-0000-0000-0000-000000000001 + start_date: "2024-01-01T00:00:00+00:00" + status: OPEN + title: Deploy new payment service + type: CHANGE_REQUEST + id: CHM-1234 + relationships: + change_request_decisions: + data: [] + created_by: + data: + id: 00000000-0000-0000-0000-000000000001 + type: user + modified_by: + data: + id: 00000000-0000-0000-0000-000000000001 + type: user + type: change_request schema: - $ref: "#/components/schemas/CaseViewResponse" + $ref: "#/components/schemas/ChangeRequestResponse" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" - "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_read - summary: Get a case view + - cases_write + summary: Delete a change request decision tags: - - Case Management - put: - description: Updates the name, query, or notification rule of an existing case view. - operationId: UpdateCaseView + - Change Management + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + patch: + description: Update a decision on a change request, such as approving or declining it. + operationId: UpdateChangeRequestDecision parameters: - - $ref: "#/components/parameters/ViewIDPathParameter" + - $ref: "#/components/parameters/ChangeRequestIDPathParameter" + - $ref: "#/components/parameters/ChangeRequestDecisionIDPathParameter" requestBody: content: application/json: @@ -140078,11 +149601,21 @@ paths: value: data: attributes: - name: Updated view name - type: view + id: CHM-1234 + relationships: + change_request_decisions: + data: + - id: decision-id-0 + type: change_request + included: + - attributes: + change_request_status: REQUESTED + request_reason: Please review and approve this change + id: decision-id-0 + type: change_request_decision schema: - $ref: "#/components/schemas/CaseViewUpdateRequest" - description: Case view payload. + $ref: "#/components/schemas/ChangeRequestDecisionUpdateRequest" + description: Decision update payload. required: true responses: "200": @@ -140093,22 +149626,53 @@ paths: value: data: attributes: - created_at: "2024-01-01T00:00:00.000Z" - name: Updated view name - query: "status:open type:bug" - id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 - type: view + attributes: {} + change_request_linked_incident_uuid: "" + change_request_maintenance_window_query: "" + change_request_plan: "" + change_request_risk: LOW + change_request_type: NORMAL + created_at: "2024-01-01T00:00:00+00:00" + creation_source: CS_MANUAL + description: Deploying new payment service v2.1 + end_date: "2024-01-02T00:00:00+00:00" + key: CHM-1234 + modified_at: "2024-01-01T00:00:00+00:00" + plan_notebook_id: 0 + priority: NOT_DEFINED + project_id: 00000000-0000-0000-0000-000000000001 + start_date: "2024-01-01T00:00:00+00:00" + status: OPEN + title: Deploy new payment service + type: CHANGE_REQUEST + id: CHM-1234 + relationships: + change_request_decisions: + data: [] + created_by: + data: + id: 00000000-0000-0000-0000-000000000001 + type: user + modified_by: + data: + id: 00000000-0000-0000-0000-000000000001 + type: user + type: change_request schema: - $ref: "#/components/schemas/CaseViewResponse" + $ref: "#/components/schemas/ChangeRequestResponse" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" - "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: @@ -140116,16 +149680,18 @@ paths: appKeyAuth: [] - AuthZ: - cases_write - summary: Update a case view + summary: Update a change request decision tags: - - Case Management - /api/v2/cases/{case_id}: + - Change Management + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/ci/github/accounts: get: - description: >- - Get the details of case by `case_id` - operationId: GetCase - parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" + description: |- + Retrieve the list of GitHub accounts (organizations or users) available to this Datadog organization + through its GitHub App installation, along with each account's and repository's CI Visibility opt-in status. + operationId: ListCIAppGitHubAccounts responses: "200": content: @@ -140134,29 +149700,25 @@ paths: default: value: data: - attributes: - created_at: "2024-01-01T00:00:00+00:00" - key: CASEM-1234 - priority: NOT_DEFINED - status: OPEN - status_name: Open - title: Memory leak investigation on API - id: 00000000-0000-0000-0000-000000000001 - relationships: - project: - data: - id: 00000000-0000-0000-0000-000000000002 - type: project - type: case + - attributes: + account: datadog + enabled: true + host: github.com + repo_count: 2 + repositories: + - enabled: true + name: shopist + - enabled: false + name: dd-source + id: github.com/datadog + type: ci_github_account schema: - $ref: "#/components/schemas/CaseResponse" + $ref: "#/components/schemas/CIAppGitHubAccountsResponse" description: OK "400": $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/ForbiddenResponse" + $ref: "#/components/responses/NotAuthorizedResponse" "404": $ref: "#/components/responses/NotFoundResponse" "429": @@ -140165,16 +149727,23 @@ paths: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_read - summary: Get the details of a case - tags: - - Case Management - /api/v2/cases/{case_id}/archive: - post: - description: Archive case - operationId: ArchiveCase - parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" + - integrations_read + summary: List GitHub CI Visibility status + tags: ["CI Visibility GitHub Accounts"] + x-permission: + operator: OR + permissions: + - integrations_read + patch: + description: |- + Enable or disable CI Visibility for a GitHub account, one of its repositories, or both in the same request. + The account (and, optionally, repository) are identified by name. Account-level and repository-level + changes are independent and may both be supplied in the same request. At least one of `enabled` or + `repository.enabled` must be provided. If the account name matches installations on more than one host, + `host` must be supplied to disambiguate, otherwise a 409 is returned. Returns a 404 if the CI Visibility + GitHub integration is not enabled for this organization, or if the given account or repository cannot be + found by name. + operationId: UpdateCIAppGitHubAccount requestBody: content: application/json: @@ -140182,10 +149751,16 @@ paths: default: value: data: - type: case + attributes: + account: datadog + enabled: true + host: github.com + repository: + enabled: true + name: shopist + type: ci_github_account schema: - $ref: "#/components/schemas/CaseEmptyRequest" - description: Archive case payload + $ref: "#/components/schemas/CIAppGitHubAccountUpdateRequest" required: true responses: "200": @@ -140196,46 +149771,52 @@ paths: value: data: attributes: - created_at: "2024-01-01T00:00:00+00:00" - key: CASEM-1234 - priority: NOT_DEFINED - status: OPEN - status_name: Open - title: Memory leak investigation on API - id: 00000000-0000-0000-0000-000000000001 - relationships: - project: - data: - id: 00000000-0000-0000-0000-000000000002 - type: project - type: case + account: datadog + enabled: true + host: github.com + repo_count: 2 + repositories: + - enabled: true + name: shopist + - enabled: false + name: dd-source + id: github.com/datadog + type: ci_github_account schema: - $ref: "#/components/schemas/CaseResponse" + $ref: "#/components/schemas/CIAppGitHubAccountResponse" description: OK "400": $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/ForbiddenResponse" + $ref: "#/components/responses/NotAuthorizedResponse" "404": $ref: "#/components/responses/NotFoundResponse" + "409": + $ref: "#/components/responses/ConflictResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_write - summary: Archive case - tags: - - Case Management - /api/v2/cases/{case_id}/assign: + - ci_provider_settings_write + summary: Update GitHub CI Visibility status + tags: ["CI Visibility GitHub Accounts"] + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - ci_provider_settings_write + /api/v2/ci/pipeline: post: - description: Assign case to a user - operationId: AssignCase - parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" + description: |- + Send your pipeline event to your Datadog platform over HTTP. For details about how pipeline executions are modeled and what execution types we support, see [Pipeline Data Model And Execution Types](https://docs.datadoghq.com/continuous_integration/guides/pipeline_data_model/). + + Multiple events can be sent in an array (up to 1000). + + Pipeline events can be submitted with a timestamp that is up to 18 hours in the past. + The duration between the event start and end times cannot exceed 1 year. + operationId: CreateCIAppPipelineEvent requestBody: content: application/json: @@ -140244,81 +149825,119 @@ paths: value: data: attributes: - assignee_id: f98a5a5b-e0ff-45d4-b2f5-afe6e74de504 - type: case + resource: + end: "2024-11-25T20:08:11.018Z" + git: + author_email: john.doe@email.com + repository_url: https://github.com/organization/example-repository + sha: 7f263865994b76066c4612fd1965215e7dcb4cd2 + level: pipeline + name: Deploy to AWS + partial_retry: false + start: "2024-11-25T20:06:41.018Z" + status: success + unique_id: 3eacb6f3-ff04-4e10-8a9c-46e6d054024a + url: https://my-ci-provider.example/pipelines/my-pipeline/run/1 + type: cipipeline_resource_request schema: - $ref: "#/components/schemas/CaseAssignRequest" - description: Assign case payload + $ref: "#/components/schemas/CIAppCreatePipelineEventRequest" required: true responses: - "200": + "202": content: application/json: examples: default: - value: - data: - attributes: - created_at: "2024-01-01T00:00:00+00:00" - key: CASEM-1234 - priority: NOT_DEFINED - status: OPEN - status_name: Open - title: Memory leak investigation on API - id: 00000000-0000-0000-0000-000000000001 - relationships: - project: - data: - id: 00000000-0000-0000-0000-000000000002 - type: project - type: case + value: {} schema: - $ref: "#/components/schemas/CaseResponse" - description: OK + type: object + description: Request accepted for processing "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/HTTPCIAppErrors" + description: Bad Request "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/HTTPCIAppErrors" + description: Unauthorized "403": - $ref: "#/components/responses/ForbiddenResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/HTTPCIAppErrors" + description: Forbidden + "408": + content: + application/json: + schema: + $ref: "#/components/schemas/HTTPCIAppErrors" + description: Request Timeout + "413": + content: + application/json: + schema: + $ref: "#/components/schemas/HTTPCIAppErrors" + description: Payload Too Large "429": - $ref: "#/components/responses/TooManyRequestsResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/HTTPCIAppErrors" + description: Too Many Requests + "500": + content: + application/json: + schema: + $ref: "#/components/schemas/HTTPCIAppErrors" + description: Internal Server Error + "503": + content: + application/json: + schema: + $ref: "#/components/schemas/HTTPCIAppErrors" + description: Service Unavailable security: - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cases_write - summary: Assign case - tags: - - Case Management - /api/v2/cases/{case_id}/attributes: + summary: Send pipeline event + tags: ["CI Visibility Pipelines"] + x-codegen-request-body-name: body + /api/v2/ci/pipelines/analytics/aggregate: post: - description: Update case attributes - operationId: UpdateAttributes - parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" + description: |- + Use this API endpoint to aggregate CI Visibility pipeline events into buckets of computed metrics and timeseries. + operationId: AggregateCIAppPipelineEvents requestBody: content: - application/json: + "application/json": examples: default: value: - data: - attributes: - attributes: - env: - - prod - service: - - web-store - - web-api - team: - - engineering - type: case + compute: + - aggregation: pc90 + interval: 5m + metric: "@duration" + type: timeseries + filter: + from: now-15m + query: "@ci.provider.name:github AND @ci.status:error" + to: now + group_by: + - facet: "@ci.status" + histogram: + interval: 10 + max: 100 + min: 50 + sort: + aggregation: count + order: asc + options: + timezone: GMT schema: - $ref: "#/components/schemas/CaseUpdateAttributesRequest" - description: Case attributes update payload + $ref: "#/components/schemas/CIAppPipelinesAggregateRequest" required: true responses: "200": @@ -140328,61 +149947,90 @@ paths: default: value: data: - attributes: - created_at: "2024-01-01T00:00:00+00:00" - key: CASEM-1234 - priority: NOT_DEFINED - status: OPEN - status_name: Open - title: Memory leak investigation on API - id: 00000000-0000-0000-0000-000000000001 - relationships: - project: - data: - id: 00000000-0000-0000-0000-000000000002 - type: project - type: case + buckets: + - by: + "@ci.status": error + computes: + pc90: + - time: "2020-06-08T11:55:00.123Z" + value: 2345 schema: - $ref: "#/components/schemas/CaseResponse" + $ref: "#/components/schemas/CIAppPipelinesAnalyticsAggregateResponse" description: OK "400": $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/ForbiddenResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_write - summary: Update case attributes - tags: - - Case Management - /api/v2/cases/{case_id}/comment: - post: - description: Comment case - operationId: CommentCase + - ci_visibility_read + summary: Aggregate pipelines events + tags: ["CI Visibility Pipelines"] + x-codegen-request-body-name: body + "x-permission": + operator: OR + permissions: + - ci_visibility_read + /api/v2/ci/pipelines/events: + get: + description: |- + List endpoint returns CI Visibility pipeline events that match a [search query](https://docs.datadoghq.com/continuous_integration/explorer/search_syntax/). + [Results are paginated similarly to logs](https://docs.datadoghq.com/logs/guide/collect-multiple-logs-with-pagination). + + Use this endpoint to see your latest pipeline events. + operationId: ListCIAppPipelineEvents parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - comment: This is my comment ! - type: case - schema: - $ref: "#/components/schemas/CaseCommentRequest" - description: Case comment payload - required: true + - description: Search query following log syntax. + example: "@ci.provider.name:github @ci.pipeline.name:Pull Request Labeler" + in: query + name: filter[query] + required: false + schema: + type: string + - description: Minimum timestamp for requested events. + example: "2019-01-02T09:42:36.320Z" + in: query + name: filter[from] + required: false + schema: + format: date-time + type: string + - description: Maximum timestamp for requested events. + example: "2019-01-03T09:42:36.320Z" + in: query + name: filter[to] + required: false + schema: + format: date-time + type: string + - description: Order of events in results. + in: query + name: sort + required: false + schema: + $ref: "#/components/schemas/CIAppSort" + - description: |- + List following results with a cursor provided in the previous query. + example: "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" + in: query + name: page[cursor] + required: false + schema: + type: string + - description: Maximum number of events in the response. + example: 25 + in: query + name: page[limit] + required: false + schema: + default: 10 + format: int32 + maximum: 1000 + type: integer responses: "200": content: @@ -140390,101 +150038,147 @@ paths: examples: default: value: - data: - - attributes: - cell_content: - message: This is my comment ! - created_at: "2024-01-01T00:00:00+00:00" - type: COMMENT - id: 00000000-0000-0000-0000-000000000001 - type: timeline_cell + data: [] + meta: + page: {} schema: - $ref: "#/components/schemas/TimelineResponse" + $ref: "#/components/schemas/CIAppPipelineEventsResponse" description: OK "400": $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" - "403": - $ref: "#/components/responses/ForbiddenResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: Comment case - tags: - - Case Management - /api/v2/cases/{case_id}/comment/{cell_id}: - delete: - description: Delete case comment - operationId: DeleteCaseComment - parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" - - $ref: "#/components/parameters/CellIDPathParameter" - responses: - "204": - description: No Content - "400": - $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/ForbiddenResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Delete case comment - tags: - - Case Management - put: - description: Updates the text content of an existing comment on a case timeline. The comment is identified by its cell ID. - operationId: UpdateCaseComment - parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" - - $ref: "#/components/parameters/CellIDPathParameter" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - ci_visibility_read + summary: Get a list of pipelines events + tags: ["CI Visibility Pipelines"] + x-pagination: + cursorParam: page[cursor] + cursorPath: meta.page.after + limitParam: page[limit] + resultsPath: data + "x-permission": + operator: OR + permissions: + - ci_visibility_read + /api/v2/ci/pipelines/events/search: + post: + description: |- + List endpoint returns CI Visibility pipeline events that match a [search query](https://docs.datadoghq.com/continuous_integration/explorer/search_syntax/). + [Results are paginated similarly to logs](https://docs.datadoghq.com/logs/guide/collect-multiple-logs-with-pagination). + + Use this endpoint to build complex events filtering and search. + operationId: SearchCIAppPipelineEvents requestBody: content: - application/json: + "application/json": examples: default: value: - data: - attributes: - comment: Updated comment text - type: case + filter: + from: now-15m + query: "@ci.provider.name:github AND @ci.status:error" + to: now + options: + timezone: GMT + page: + cursor: eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ== + limit: 25 + sort: timestamp schema: - $ref: "#/components/schemas/CaseUpdateCommentRequest" - description: Case update comment payload. - required: true + $ref: "#/components/schemas/CIAppPipelineEventsRequest" + required: false responses: "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + attributes: + duration: 2345 + ci_level: pipeline + tags: + - team:backend + id: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA + type: cipipeline + meta: + elapsed: 132 + request_id: MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR + status: done + schema: + $ref: "#/components/schemas/CIAppPipelineEventsResponse" description: OK "400": $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/ForbiddenResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_write - summary: Update case comment - tags: - - Case Management - /api/v2/cases/{case_id}/custom_attributes/{custom_attribute_key}: - delete: - description: Delete custom attribute from case - operationId: DeleteCaseCustomAttribute - parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" - - $ref: "#/components/parameters/CaseCustomAttributeKeyPathParameter" + - ci_visibility_read + summary: Search pipelines events + tags: ["CI Visibility Pipelines"] + x-codegen-request-body-name: body + x-pagination: + cursorParam: body.page.cursor + cursorPath: meta.page.after + limitParam: body.page.limit + resultsPath: data + "x-permission": + operator: OR + permissions: + - ci_visibility_read + /api/v2/ci/test-optimization/settings/policies: + patch: + description: |- + Partially update Flaky Tests Management repository-level policies for the given repository. + Only provided policy blocks are updated; omitted blocks are left unchanged. + operationId: UpdateFlakyTestsManagementPolicies + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + attempt_to_fix: + retries: 3 + disabled: + enabled: false + quarantined: + auto_quarantine_rule: + enabled: true + window_seconds: 3600 + branch_rule: + branches: + - main + enabled: true + excluded_branches: [] + excluded_test_services: [] + enabled: true + failure_rate_rule: + branches: + - main + enabled: true + min_runs: 10 + threshold: 0.5 + repository_id: "github.com/example-org/example-repo" + type: test_optimization_update_flaky_tests_management_policies_request + schema: + $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesUpdateRequest" + required: true responses: "200": content: @@ -140494,26 +150188,16 @@ paths: value: data: attributes: - created_at: "2024-01-01T00:00:00+00:00" - key: CASEM-1234 - priority: NOT_DEFINED - status: OPEN - status_name: Open - title: Memory leak investigation on API - id: 00000000-0000-0000-0000-000000000001 - relationships: - project: - data: - id: 00000000-0000-0000-0000-000000000002 - type: project - type: case + repository_id: github.com/datadog/test-service + id: github.com/datadog/test-service + type: test_optimization_flaky_tests_management_policies schema: - $ref: "#/components/schemas/CaseResponse" + $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesResponse" description: OK - "401": - $ref: "#/components/responses/UnauthorizedResponse" + "400": + $ref: "#/components/responses/BadRequestResponse" "403": - $ref: "#/components/responses/ForbiddenResponse" + $ref: "#/components/responses/NotAuthorizedResponse" "404": $ref: "#/components/responses/NotFoundResponse" "429": @@ -140522,16 +150206,18 @@ paths: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_write - summary: Delete custom attribute from case - tags: - - Case Management + - test_optimization_settings_write + summary: Update Flaky Tests Management policies + tags: ["Test Optimization"] + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - test_optimization_settings_write post: - description: Update case custom attribute - operationId: UpdateCaseCustomAttribute - parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" - - $ref: "#/components/parameters/CaseCustomAttributeKeyPathParameter" + description: |- + Retrieve Flaky Tests Management repository-level policies for the given repository. + operationId: GetFlakyTestsManagementPolicies requestBody: content: application/json: @@ -140540,13 +150226,10 @@ paths: value: data: attributes: - is_multi: false - type: NUMBER - value: 42 - type: case + repository_id: "github.com/example-org/example-repo" + type: test_optimization_get_flaky_tests_management_policies_request schema: - $ref: "#/components/schemas/CaseUpdateCustomAttributeRequest" - description: Update case custom attribute payload + $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesGetRequest" required: true responses: "200": @@ -140557,28 +150240,16 @@ paths: value: data: attributes: - created_at: "2024-01-01T00:00:00+00:00" - key: CASEM-1234 - priority: NOT_DEFINED - status: OPEN - status_name: Open - title: Memory leak investigation on API - id: 00000000-0000-0000-0000-000000000001 - relationships: - project: - data: - id: 00000000-0000-0000-0000-000000000002 - type: project - type: case + repository_id: github.com/datadog/test-service + id: github.com/datadog/test-service + type: test_optimization_flaky_tests_management_policies schema: - $ref: "#/components/schemas/CaseResponse" + $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesResponse" description: OK "400": $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/ForbiddenResponse" + $ref: "#/components/responses/NotAuthorizedResponse" "404": $ref: "#/components/responses/NotFoundResponse" "429": @@ -140587,16 +150258,19 @@ paths: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_write - summary: Update case custom attribute - tags: - - Case Management - /api/v2/cases/{case_id}/description: - post: - description: Update case description - operationId: UpdateCaseDescription - parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" + - test_optimization_read + summary: Get Flaky Tests Management policies + tags: ["Test Optimization"] + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - test_optimization_read + /api/v2/ci/test-optimization/settings/service: + delete: + description: |- + Delete Test Optimization settings for a specific service identified by repository, service name, and environment. + operationId: DeleteTestOptimizationServiceSettings requestBody: content: application/json: @@ -140605,43 +150279,20 @@ paths: value: data: attributes: - description: Seeing some weird memory increase... We shouldn't ignore this - type: case + env: prod + repository_id: github.com/datadog/test-service + service_name: test-service + type: test_optimization_delete_service_settings_request schema: - $ref: "#/components/schemas/CaseUpdateDescriptionRequest" - description: Case description update payload + $ref: "#/components/schemas/TestOptimizationDeleteServiceSettingsRequest" required: true responses: - "200": - content: - application/json: - examples: - default: - value: - data: - attributes: - created_at: "2024-01-01T00:00:00+00:00" - key: CASEM-1234 - priority: NOT_DEFINED - status: OPEN - status_name: Open - title: Memory leak investigation on API - id: 00000000-0000-0000-0000-000000000001 - relationships: - project: - data: - id: 00000000-0000-0000-0000-000000000002 - type: project - type: case - schema: - $ref: "#/components/schemas/CaseResponse" - description: OK + "204": + description: No Content "400": $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/ForbiddenResponse" + $ref: "#/components/responses/NotAuthorizedResponse" "404": $ref: "#/components/responses/NotFoundResponse" "429": @@ -140650,16 +150301,21 @@ paths: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_write - summary: Update case description - tags: - - Case Management - /api/v2/cases/{case_id}/due_date: - post: - description: Sets or updates the due date for a case. The due date is a calendar date (without a time component) indicating when the case should be resolved. - operationId: UpdateCaseDueDate - parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" + - test_optimization_settings_write + summary: Delete Test Optimization service settings + tags: ["Test Optimization"] + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - test_optimization_settings_write + patch: + description: |- + Partially update Test Optimization settings for a specific service identified by repository, service name, and environment. + Only provided fields are updated; setting a field to `null` is a no-op. + To reset a setting to inherit from the repository level, use the corresponding `_inherit` field. + The `pr_comments_enabled` field is ignored as it cannot be overridden at the service level. + operationId: UpdateTestOptimizationServiceSettings requestBody: content: application/json: @@ -140668,11 +150324,13 @@ paths: value: data: attributes: - due_date: "2026-12-31" - type: case + env: prod + repository_id: github.com/datadog/test-service + service_name: test-service + test_impact_analysis_enabled_inherit: true + type: test_optimization_update_service_settings_request schema: - $ref: "#/components/schemas/CaseUpdateDueDateRequest" - description: Case due date update payload. + $ref: "#/components/schemas/TestOptimizationUpdateServiceSettingsRequest" required: true responses: "200": @@ -140683,28 +150341,29 @@ paths: value: data: attributes: - created_at: "2024-01-01T00:00:00+00:00" - key: CASEM-1234 - priority: NOT_DEFINED - status: OPEN - status_name: Open - title: Memory leak investigation on API - id: 00000000-0000-0000-0000-000000000001 - relationships: - project: - data: - id: 00000000-0000-0000-0000-000000000002 - type: project - type: case + auto_test_retries_enabled: false + auto_test_retries_enabled_is_overridden: false + code_coverage_enabled: false + code_coverage_enabled_is_overridden: false + early_flake_detection_enabled: false + early_flake_detection_enabled_is_overridden: false + env: prod + failed_test_replay_enabled: false + failed_test_replay_enabled_is_overridden: false + pr_comments_enabled: false + repository_id: github.com/datadog/test-service + service_name: test-service + test_impact_analysis_enabled: true + test_impact_analysis_enabled_is_overridden: true + id: 9b8a7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d + type: test_optimization_service_settings schema: - $ref: "#/components/schemas/CaseResponse" + $ref: "#/components/schemas/TestOptimizationServiceSettingsResponse" description: OK "400": $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/ForbiddenResponse" + $ref: "#/components/responses/NotAuthorizedResponse" "404": $ref: "#/components/responses/NotFoundResponse" "429": @@ -140713,16 +150372,18 @@ paths: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_write - summary: Update case due date - tags: - - Case Management - /api/v2/cases/{case_id}/insights: - delete: - description: Removes one or more previously added insights from a case by specifying their type and resource identifier in the request body. - operationId: RemoveCaseInsights - parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" + - test_optimization_settings_write + summary: Update Test Optimization service settings + tags: ["Test Optimization"] + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - test_optimization_settings_write + post: + description: |- + Retrieve Test Optimization settings for a specific service identified by repository, service name, and environment. + operationId: GetTestOptimizationServiceSettings requestBody: content: application/json: @@ -140731,14 +150392,12 @@ paths: value: data: attributes: - insights: - - ref: "/monitors/12345?q=total" - resource_id: "12345" - type: SECURITY_SIGNAL - type: case + env: prod + repository_id: github.com/datadog/test-service + service_name: test-service + type: test_optimization_get_service_settings_request schema: - $ref: "#/components/schemas/CaseInsightsRequest" - description: Case insights request. + $ref: "#/components/schemas/TestOptimizationGetServiceSettingsRequest" required: true responses: "200": @@ -140749,78 +150408,78 @@ paths: value: data: attributes: - created_at: "2024-01-01T00:00:00+00:00" - key: CASEM-1234 - priority: NOT_DEFINED - status: OPEN - status_name: Open - title: Memory leak investigation on API - id: 00000000-0000-0000-0000-000000000001 - relationships: - project: - data: - id: 00000000-0000-0000-0000-000000000002 - type: project - type: case + auto_test_retries_enabled: false + auto_test_retries_enabled_is_overridden: false + code_coverage_enabled: false + code_coverage_enabled_is_overridden: false + early_flake_detection_enabled: false + early_flake_detection_enabled_is_overridden: false + env: prod + failed_test_replay_enabled: false + failed_test_replay_enabled_is_overridden: false + pr_comments_enabled: false + repository_id: github.com/datadog/test-service + service_name: test-service + test_impact_analysis_enabled: true + test_impact_analysis_enabled_is_overridden: true + id: 9b8a7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d + type: test_optimization_service_settings schema: - $ref: "#/components/schemas/CaseResponse" + $ref: "#/components/schemas/TestOptimizationServiceSettingsResponse" description: OK "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Unauthorized + $ref: "#/components/responses/BadRequestResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/NotAuthorizedResponse" "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_write - summary: Remove insights from a case - tags: - - Case Management - put: - description: >- - Adds one or more insights to a case. Insights are references to related Datadog resources (such as monitors, security signals, incidents, or error tracking issues) that provide investigative context. Up to 100 insights can be added per request. Each insight requires a type (see `CaseInsightType` for allowed values), a ref (URL path to the resource), and a resource_id. - operationId: AddCaseInsights - parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" + - test_optimization_read + summary: Get Test Optimization service settings + tags: ["Test Optimization"] + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - test_optimization_read + /api/v2/ci/tests/analytics/aggregate: + post: + description: |- + The API endpoint to aggregate CI Visibility test events into buckets of computed metrics and timeseries. + operationId: AggregateCIAppTestEvents requestBody: content: - application/json: + "application/json": examples: default: value: - data: - attributes: - insights: - - ref: "/monitors/12345?q=total" - resource_id: "12345" - type: SECURITY_SIGNAL - type: case + compute: + - aggregation: pc90 + interval: 5m + metric: "@duration" + type: timeseries + filter: + from: now-15m + query: "@test.service:web-tests AND @test.status:fail" + to: now + group_by: + - facet: "@test.service" + histogram: + interval: 10 + max: 100 + min: 50 + sort: + aggregation: count + order: asc + options: + timezone: GMT schema: - $ref: "#/components/schemas/CaseInsightsRequest" - description: Case insights request. + $ref: "#/components/schemas/CIAppTestsAggregateRequest" required: true responses: "200": @@ -140830,77 +150489,158 @@ paths: default: value: data: - attributes: - created_at: "2024-01-01T00:00:00+00:00" - key: CASEM-1234 - priority: NOT_DEFINED - status: OPEN - status_name: Open - title: Memory leak investigation on API - id: 00000000-0000-0000-0000-000000000001 - relationships: - project: - data: - id: 00000000-0000-0000-0000-000000000002 - type: project - type: case + buckets: + - by: + "@test.service": web-tests + computes: + pc90: + - time: "2020-06-08T11:55:00.123Z" + value: 2345 schema: - $ref: "#/components/schemas/CaseResponse" + $ref: "#/components/schemas/CIAppTestsAnalyticsAggregateResponse" description: OK "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Unauthorized + $ref: "#/components/responses/BadRequestResponse" "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - ci_visibility_read + - AuthZ: + - test_optimization_read + summary: Aggregate tests events + tags: ["CI Visibility Tests"] + x-codegen-request-body-name: body + "x-permission": + operator: OR + permissions: + - ci_visibility_read + - test_optimization_read + /api/v2/ci/tests/events: + get: + description: |- + List endpoint returns CI Visibility test events that match a [search query](https://docs.datadoghq.com/continuous_integration/explorer/search_syntax/). + [Results are paginated similarly to logs](https://docs.datadoghq.com/logs/guide/collect-multiple-logs-with-pagination). + + Use this endpoint to see your latest test events. + operationId: ListCIAppTestEvents + parameters: + - description: Search query following log syntax. + example: "@test.name:test_foo @test.suite:github.com/DataDog/dd-go/model" + in: query + name: filter[query] + required: false + schema: + type: string + - description: Minimum timestamp for requested events. + example: "2019-01-02T09:42:36.320Z" + in: query + name: filter[from] + required: false + schema: + format: date-time + type: string + - description: Maximum timestamp for requested events. + example: "2019-01-03T09:42:36.320Z" + in: query + name: filter[to] + required: false + schema: + format: date-time + type: string + - description: Order of events in results. + in: query + name: sort + required: false + schema: + $ref: "#/components/schemas/CIAppSort" + - description: |- + List following results with a cursor provided in the previous query. + example: "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" + in: query + name: page[cursor] + required: false + schema: + type: string + - description: Maximum number of events in the response. + example: 25 + in: query + name: page[limit] + required: false + schema: + default: 10 + format: int32 + maximum: 1000 + type: integer + responses: + "200": content: application/json: + examples: + default: + value: + data: [] + meta: + page: {} schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + $ref: "#/components/schemas/CIAppTestEventsResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_write - summary: Add insights to a case - tags: - - Case Management - /api/v2/cases/{case_id}/priority: + - ci_visibility_read + - AuthZ: + - test_optimization_read + summary: Get a list of tests events + tags: ["CI Visibility Tests"] + x-pagination: + cursorParam: page[cursor] + cursorPath: meta.page.after + limitParam: page[limit] + resultsPath: data + "x-permission": + operator: OR + permissions: + - ci_visibility_read + - test_optimization_read + /api/v2/ci/tests/events/search: post: - description: Update case priority - operationId: UpdatePriority - parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" + description: |- + List endpoint returns CI Visibility test events that match a [search query](https://docs.datadoghq.com/continuous_integration/explorer/search_syntax/). + [Results are paginated similarly to logs](https://docs.datadoghq.com/logs/guide/collect-multiple-logs-with-pagination). + + Use this endpoint to build complex events filtering and search. + operationId: SearchCIAppTestEvents requestBody: content: - application/json: + "application/json": examples: default: value: - data: - attributes: - priority: NOT_DEFINED - type: case + filter: + from: now-15m + query: "@test.service:web-tests AND @test.status:fail" + to: now + options: + timezone: GMT + page: + cursor: eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ== + limit: 25 + sort: timestamp schema: - $ref: "#/components/schemas/CaseUpdatePriorityRequest" - description: Case priority update payload - required: true + $ref: "#/components/schemas/CIAppTestEventsRequest" + required: false responses: "200": content: @@ -140909,47 +150649,93 @@ paths: default: value: data: - attributes: - created_at: "2024-01-01T00:00:00+00:00" - key: CASEM-1234 - priority: NOT_DEFINED - status: OPEN - status_name: Open - title: Memory leak investigation on API - id: 00000000-0000-0000-0000-000000000001 - relationships: - project: - data: - id: 00000000-0000-0000-0000-000000000002 - type: project - type: case + - attributes: + attributes: + duration: 2345 + tags: + - team:backend + test_level: test + id: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA + type: citest + links: + next: https://app.datadoghq.com/api/v2/ci/tests/events?page[cursor]=eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ== + meta: + elapsed: 132 + request_id: MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR + status: done schema: - $ref: "#/components/schemas/CaseResponse" + $ref: "#/components/schemas/CIAppTestEventsResponse" description: OK "400": $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/ForbiddenResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_write - summary: Update case priority + - ci_visibility_read + - AuthZ: + - test_optimization_read + summary: Search tests events + tags: ["CI Visibility Tests"] + x-codegen-request-body-name: body + x-pagination: + cursorParam: body.page.cursor + cursorPath: meta.page.after + limitParam: body.page.limit + resultsPath: data + "x-permission": + operator: OR + permissions: + - ci_visibility_read + - test_optimization_read + /api/v2/cloud_auth/aws/persona_mapping: + get: + description: List all AWS cloud authentication persona mappings. This endpoint retrieves all configured persona mappings that associate AWS IAM principals with Datadog users. + operationId: ListAWSCloudAuthPersonaMappings + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + account_identifier: test@example.com + account_uuid: 00000000-0000-0000-0000-000000000001 + arn_pattern: "arn:aws:iam::123456789012:user/testuser" + id: abc-123 + type: aws_cloud_auth_config + schema: + $ref: "#/components/schemas/AWSCloudAuthPersonaMappingsResponse" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: List AWS cloud authentication persona mappings tags: - - Case Management - /api/v2/cases/{case_id}/relationships/incidents: + - Cloud Authentication + x-unstable: |- + **Note**: This endpoint is in public beta and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). post: - description: Link an incident to a case - operationId: LinkIncident - parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" + description: Create an AWS cloud authentication persona mapping. This endpoint associates an AWS IAM principal with a Datadog user. + operationId: CreateAWSCloudAuthPersonaMapping requestBody: content: application/json: @@ -140957,11 +150743,12 @@ paths: default: value: data: - id: 00000000-0000-0000-0000-000000000000 - type: incidents + attributes: + account_identifier: test@test.com + arn_pattern: arn:aws:iam::123456789012:user/testuser + type: aws_cloud_auth_config schema: - $ref: "#/components/schemas/RelationshipToIncidentRequest" - description: Incident link request + $ref: "#/components/schemas/AWSCloudAuthPersonaMappingCreateRequest" required: true responses: "201": @@ -140972,14 +150759,13 @@ paths: value: data: attributes: - key: CASEM-4523 - priority: NOT_DEFINED - status: OPEN - title: Memory leak investigation on API - id: 00000000-0000-0000-0000-000000000002 - type: case + account_identifier: test@example.com + account_uuid: 00000000-0000-0000-0000-000000000001 + arn_pattern: "arn:aws:iam::123456789012:user/testuser" + id: abc-123 + type: aws_cloud_auth_config schema: - $ref: "#/components/schemas/CaseResponse" + $ref: "#/components/schemas/AWSCloudAuthPersonaMappingResponse" description: Created "400": content: @@ -140987,55 +150773,36 @@ paths: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Bad Request - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Unauthorized "403": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Forbidden - "404": + "409": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + description: Conflict "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cases_write - summary: Link incident to case + summary: Create an AWS cloud authentication persona mapping tags: - - Case Management - /api/v2/cases/{case_id}/relationships/jira_issues: + - Cloud Authentication + x-codegen-request-body-name: body + x-unstable: |- + **Note**: This endpoint is in public beta and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/cloud_auth/aws/persona_mapping/{persona_mapping_id}: delete: - description: Remove the link between a Jira issue and a case - operationId: UnlinkJiraIssue + description: Delete an AWS cloud authentication persona mapping by ID. This removes the association between an AWS IAM principal and a Datadog user. + operationId: DeleteAWSCloudAuthPersonaMapping parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" + - $ref: "#/components/parameters/PersonaMappingID" responses: "204": description: No Content - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Unauthorized "403": content: application/json: @@ -141050,48 +150817,34 @@ paths: description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cases_write - summary: Remove Jira issue link from case + summary: Delete an AWS cloud authentication persona mapping tags: - - Case Management - patch: - description: Link an existing Jira issue to a case - operationId: LinkJiraIssueToCase + - Cloud Authentication + x-unstable: |- + **Note**: This endpoint is in public beta and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + get: + description: Get a specific AWS cloud authentication persona mapping by ID. This endpoint retrieves a single configured persona mapping that associates an AWS IAM principal with a Datadog user. + operationId: GetAWSCloudAuthPersonaMapping parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - jira_issue_url: https://jira.example.com/browse/PROJ-123 - type: issues - schema: - $ref: "#/components/schemas/JiraIssueLinkRequest" - description: Jira issue link request - required: true + - $ref: "#/components/parameters/PersonaMappingID" responses: - "204": - description: No Content - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "401": + "200": content: application/json: + examples: + default: + value: + data: + attributes: + account_identifier: test@example.com + account_uuid: 00000000-0000-0000-0000-000000000001 + arn_pattern: "arn:aws:iam::123456789012:user/testuser" + id: abc-123 + type: aws_cloud_auth_config schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Unauthorized + $ref: "#/components/schemas/AWSCloudAuthPersonaMappingResponse" + description: OK "403": content: application/json: @@ -141104,249 +150857,407 @@ paths: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Not Found - "409": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Conflict "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cases_write - summary: Link existing Jira issue to case + summary: Get an AWS cloud authentication persona mapping tags: - - Case Management + - Cloud Authentication + x-unstable: |- + **Note**: This endpoint is in public beta and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/cloud_security_management/custom_frameworks: post: - description: Create a new Jira issue and link it to a case - operationId: CreateCaseJiraIssue - parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" + description: Create a custom framework. + operationId: CreateCustomFramework requestBody: content: - application/json: + "application/json": examples: default: value: data: attributes: - fields: {} - issue_type_id: "10001" - jira_account_id: "1234" - project_id: "5678" - type: issues + handle: sec2 + name: security-framework + requirements: + - controls: + - name: control + rules_id: + - def-000-be9 + name: criteria + version: "2" + type: custom_framework schema: - $ref: "#/components/schemas/JiraIssueCreateRequest" - description: Jira issue creation request + $ref: "#/components/schemas/CreateCustomFrameworkRequest" required: true responses: - "202": - description: Accepted - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "401": + "200": content: - application/json: + "application/json": + examples: + default: + value: + data: + attributes: + handle: sec2 + version: "2" + id: sec2-2 + type: custom_framework schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Unauthorized - "403": + $ref: "#/components/schemas/CreateCustomFrameworkResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "409": + $ref: "#/components/responses/ConflictResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + "500": + $ref: "#/components/responses/BadRequestResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - security_monitoring_rules_read + - security_monitoring_rules_write + summary: Create a custom framework + tags: ["Security Monitoring"] + x-codegen-request-body-name: body + "x-permission": + operator: AND + permissions: + - security_monitoring_rules_read + - security_monitoring_rules_write + /api/v2/cloud_security_management/custom_frameworks/{handle}/{version}: + delete: + description: Delete a custom framework. + operationId: DeleteCustomFramework + parameters: + - $ref: "#/components/parameters/CustomFrameworkHandle" + - $ref: "#/components/parameters/CustomFrameworkVersion" + responses: + "200": content: - application/json: + "application/json": + examples: + default: + value: + data: + attributes: + handle: sec2 + name: security-framework + version: "2" + id: sec2-2 + type: custom_framework schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "404": + $ref: "#/components/schemas/DeleteCustomFrameworkResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + "500": + $ref: "#/components/responses/BadRequestResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - security_monitoring_rules_read + - security_monitoring_rules_write + summary: Delete a custom framework + tags: ["Security Monitoring"] + x-codegen-request-body-name: body + "x-permission": + operator: AND + permissions: + - security_monitoring_rules_read + - security_monitoring_rules_write + get: + description: Get a custom framework. + operationId: GetCustomFramework + parameters: + - $ref: "#/components/parameters/CustomFrameworkHandle" + - $ref: "#/components/parameters/CustomFrameworkVersion" + responses: + "200": content: - application/json: + "application/json": + examples: + default: + value: + data: + attributes: + handle: sec2 + name: security-framework + requirements: + - controls: + - name: control + rules_id: + - def-000-be9 + name: criteria + version: "2" + id: sec2-2 + type: custom_framework schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + $ref: "#/components/schemas/GetCustomFrameworkResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" + "500": + $ref: "#/components/responses/BadRequestResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_write - summary: Create Jira issue for case - tags: - - Case Management - /api/v2/cases/{case_id}/relationships/notebook: - post: - description: Create a new investigation notebook and link it to a case - operationId: CreateCaseNotebook + - security_monitoring_rules_read + summary: Get a custom framework + tags: ["Security Monitoring"] + x-codegen-request-body-name: body + "x-permission": + operator: OR + permissions: + - security_monitoring_rules_read + put: + description: Update a custom framework. + operationId: UpdateCustomFramework parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" + - $ref: "#/components/parameters/CustomFrameworkHandle" + - $ref: "#/components/parameters/CustomFrameworkVersion" requestBody: content: - application/json: + "application/json": examples: default: value: data: - type: notebook + attributes: + handle: sec2 + name: security-framework + requirements: + - controls: + - name: control + rules_id: + - def-000-be9 + name: criteria + version: "2" + type: custom_framework schema: - $ref: "#/components/schemas/NotebookCreateRequest" - description: Notebook creation request + $ref: "#/components/schemas/UpdateCustomFrameworkRequest" required: true responses: - "204": - description: No Content - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Unauthorized - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "404": + "200": content: - application/json: + "application/json": + examples: + default: + value: + data: + attributes: + handle: sec2 + version: "2" + id: sec2-2 + type: custom_framework schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + $ref: "#/components/schemas/UpdateCustomFrameworkResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" + "500": + $ref: "#/components/responses/BadRequestResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_write - summary: Create investigation notebook for case - tags: - - Case Management - /api/v2/cases/{case_id}/relationships/project: - patch: - description: Update the project associated with a case - operationId: MoveCaseToProject + - security_monitoring_rules_read + - security_monitoring_rules_write + summary: Update a custom framework + tags: ["Security Monitoring"] + x-codegen-request-body-name: body + "x-permission": + operator: AND + permissions: + - security_monitoring_rules_read + - security_monitoring_rules_write + /api/v2/cloud_security_management/resource_filters: + get: + description: List resource filters. + operationId: GetResourceEvaluationFilters parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" + - $ref: "#/components/parameters/ResourceFilterProvider" + - $ref: "#/components/parameters/ResourceFilterAccountID" + - $ref: "#/components/parameters/SkipCache" + responses: + "200": + content: + "application/json": + examples: + default: + value: + data: + attributes: + cloud_provider: + aws: + "123456789": + - environment:production + id: csm_resource_filter + type: csm_resource_filter + schema: + $ref: "#/components/schemas/GetResourceEvaluationFiltersResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - security_monitoring_filters_read + summary: List resource filters + tags: ["Security Monitoring"] + "x-permission": + operator: OR + permissions: + - security_monitoring_filters_read + put: + description: Update resource filters. + operationId: UpdateResourceEvaluationFilters requestBody: content: - application/json: + "application/json": examples: default: value: data: - id: e555e290-ed65-49bd-ae18-8acbfcf18db7 - type: project + attributes: + aws: + "123456789": + - environment:production + - team:devops + azure: + sub-001: + - app:frontend + gcp: + project-abc: + - region:us-central1 + id: csm_resource_filter + type: csm_resource_filter schema: - $ref: "#/components/schemas/ProjectRelationship" - description: Project update request + $ref: "#/components/schemas/UpdateResourceEvaluationFiltersRequest" required: true responses: - "200": + "201": content: - application/json: + "application/json": examples: default: value: data: attributes: - key: CASEM-4523 - priority: NOT_DEFINED - status: OPEN - title: Memory leak investigation on API - id: 00000000-0000-0000-0000-000000000001 - type: case + cloud_provider: + aws: + "123456789": + - environment:production + id: csm_resource_filter + type: csm_resource_filter schema: - $ref: "#/components/schemas/CaseResponse" + $ref: "#/components/schemas/UpdateResourceEvaluationFiltersResponse" description: OK "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Unauthorized + $ref: "#/components/responses/BadRequestResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_write - summary: Update case project - tags: - - Case Management - /api/v2/cases/{case_id}/relationships/servicenow_tickets: - post: - description: Create a new ServiceNow incident ticket and link it to a case - operationId: CreateCaseServiceNowTicket - parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" + - security_monitoring_filters_write + summary: Update resource filters + tags: ["Security Monitoring"] + x-codegen-request-body-name: body + "x-permission": + operator: OR + permissions: + - security_monitoring_filters_write + /api/v2/cloudinventoryservice/syncconfigs: + put: + description: |- + Enable Storage Management for an S3 bucket, GCS bucket, or Azure container by registering the destination that holds its inventory reports. Set `data.id` to the cloud provider (`aws`, `gcp`, or `azure`) and provide the matching settings under data.attributes. Calling this endpoint with the same provider replaces the existing configuration. + operationId: UpsertSyncConfig requestBody: content: application/json: examples: default: + summary: AWS inventory bucket value: data: attributes: - assignment_group: IT Support - instance_name: my-instance - type: tickets + aws: + aws_account_id: "123456789012" + destination_bucket_name: my-inventory-bucket + destination_bucket_region: us-east-1 + destination_prefix: logs/ + id: aws + type: cloud_provider schema: - $ref: "#/components/schemas/ServiceNowTicketCreateRequest" - description: ServiceNow ticket creation request + $ref: "#/components/schemas/UpsertCloudInventorySyncConfigRequest" required: true responses: - "202": - description: Accepted - "400": + "200": content: application/json: + examples: + default: + value: + data: + attributes: + aws_account_id: "123456789012" + aws_bucket_name: my-inventory-bucket + aws_region: us-east-1 + id: aws + type: sync_configs schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "401": + $ref: "#/components/schemas/CloudInventorySyncConfigResponse" + description: OK + "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Unauthorized + description: Bad Request "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/ForbiddenResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Enable Storage Management for a bucket + tags: + - Storage Management + x-codegen-request-body-name: body + "x-permission": + operator: OR + permissions: + - aws_configurations_manage + /api/v2/cloudinventoryservice/syncconfigs/{id}: + delete: + description: |- + Delete a Storage Management configuration by its unique identifier. Deleting a configuration stops inventory file synchronization for the associated cloud account. + operationId: DeleteSyncConfig + parameters: + - $ref: "#/components/parameters/CloudInventorySyncConfigID" + responses: + "204": + description: No Content + "403": + $ref: "#/components/responses/ForbiddenResponse" "404": content: application/json: @@ -141355,20 +151266,20 @@ paths: description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cases_write - summary: Create ServiceNow ticket for case + summary: Delete a Storage Management configuration tags: - - Case Management - /api/v2/cases/{case_id}/resolved_reason: + - Storage Management + "x-permission": + operator: OR + permissions: + - aws_configurations_manage + /api/v2/code-coverage/branch/summary: post: - description: Sets the resolved reason for a security case (for example, FALSE_POSITIVE, TRUE_POSITIVE). Applicable to security-type cases. - operationId: UpdateCaseResolvedReason - parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" + description: |- + Retrieve aggregated code coverage statistics for a specific branch in a repository. + This endpoint provides overall coverage metrics as well as breakdowns by service + and code owner. + operationId: GetCodeCoverageBranchSummary requestBody: content: application/json: @@ -141377,11 +151288,11 @@ paths: value: data: attributes: - security_resolved_reason: "FALSE_POSITIVE" - type: case + branch: prod + repository_url: https://github.com/datadog/test-service + type: ci_app_coverage_branch_summary_request schema: - $ref: "#/components/schemas/CaseUpdateResolvedReasonRequest" - description: Case resolved reason update payload. + $ref: "#/components/schemas/BranchCoverageSummaryRequest" required: true responses: "200": @@ -141392,46 +151303,50 @@ paths: value: data: attributes: - created_at: "2024-01-01T00:00:00+00:00" - key: CASEM-1234 - priority: NOT_DEFINED - status: OPEN - status_name: Open - title: Memory leak investigation on API - id: 00000000-0000-0000-0000-000000000001 - relationships: - project: - data: - id: 00000000-0000-0000-0000-000000000002 - type: project - type: case + evaluated_flags_count: 8 + evaluated_reports_count: 12 + patch_coverage: 70.1 + total_coverage: 82.4 + id: ZGQxMjM0NV9tYWluXzE3MDk1NjQwMDA= + type: ci_app_coverage_summary schema: - $ref: "#/components/schemas/CaseResponse" + $ref: "#/components/schemas/CoverageSummaryResponse" description: OK "400": $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/ForbiddenResponse" + $ref: "#/components/responses/NotAuthorizedResponse" "404": $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" + "500": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Internal server error security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_write - summary: Update case resolved reason - tags: - - Case Management - /api/v2/cases/{case_id}/status: + - code_coverage_read + summary: Get code coverage summary for a branch + tags: ["Code Coverage"] + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - code_coverage_read + /api/v2/code-coverage/commit/summary: post: - description: Update case status - operationId: UpdateStatus - parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" + description: |- + Retrieve aggregated code coverage statistics for a specific commit in a repository. + This endpoint provides overall coverage metrics as well as breakdowns by service + and code owner. + + The commit SHA must be a 40-character hexadecimal string (SHA-1 hash). + operationId: GetCodeCoverageCommitSummary requestBody: content: application/json: @@ -141440,12 +151355,11 @@ paths: value: data: attributes: - status: OPEN - status_name: Open - type: case + commit_sha: 66adc9350f2cc9b250b69abddab733dd55e1a588 + repository_url: https://github.com/datadog/test-service + type: ci_app_coverage_commit_summary_request schema: - $ref: "#/components/schemas/CaseUpdateStatusRequest" - description: Case status update payload + $ref: "#/components/schemas/CommitCoverageSummaryRequest" required: true responses: "200": @@ -141456,69 +151370,63 @@ paths: value: data: attributes: - created_at: "2024-01-01T00:00:00+00:00" - key: CASEM-1234 - priority: NOT_DEFINED - status: OPEN - status_name: Open - title: Memory leak investigation on API - id: 00000000-0000-0000-0000-000000000001 - relationships: - project: - data: - id: 00000000-0000-0000-0000-000000000002 - type: project - type: case + evaluated_flags_count: 8 + evaluated_reports_count: 12 + patch_coverage: 70.1 + total_coverage: 82.4 + id: ZGQxMjM0NV9tYWluXzE3MDk1NjQwMDA= + type: ci_app_coverage_summary schema: - $ref: "#/components/schemas/CaseResponse" + $ref: "#/components/schemas/CoverageSummaryResponse" description: OK "400": $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/ForbiddenResponse" + $ref: "#/components/responses/NotAuthorizedResponse" "404": $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" + "500": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Internal server error security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_write - summary: Update case status - tags: - - Case Management - /api/v2/cases/{case_id}/timelines: - get: - description: Returns the timeline of events for a case, including comments, status changes, and other activity. Supports pagination and sort order. - operationId: ListCaseTimeline - parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" - - description: Number of timeline cells to return per page. - in: query - name: page[size] - required: false - schema: - default: 100 - format: int64 - type: integer - - description: Zero-based page number for pagination. - in: query - name: page[number] - required: false - schema: - default: 0 - format: int64 - type: integer - - description: "If `true`, returns timeline cells in chronological order (oldest first). Defaults to `false` (newest first)." - in: query - name: sort[ascending] - required: false - schema: - default: false - type: boolean + - code_coverage_read + summary: Get code coverage summary for a commit + tags: ["Code Coverage"] + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - code_coverage_read + /api/v2/code-coverage/files: + post: + description: |- + Retrieve per-file code coverage data for a specific commit, branch, or pull request. + Exactly one of `commit_sha`, `branch`, or `pr_number` must be provided. + Optionally filter by `service`, `codeowner`, or `flag` (at most one). + operationId: GetCodeCoverageFiles + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + changed_only: true + commit_sha: 66adc9350f2cc9b250b69abddab733dd55e1a588 + repository_url: https://github.com/datadog/test-service + type: ci_app_coverage_files_request + schema: + $ref: "#/components/schemas/FilesCoverageRequest" + required: true responses: "200": content: @@ -141527,40 +151435,54 @@ paths: default: value: data: - - attributes: - cell_content: - message: This is a comment - created_at: "2024-01-01T00:00:00+00:00" - type: COMMENT - id: 00000000-0000-0000-0000-000000000001 - type: timeline_cell + attributes: + base_commit_sha: abc1234567890abcdef1234567890abcdef12345 + event_timestamp: 1709564000000 + files: + src/main.go: + added_lines: [11, 12] + covered_lines: [10, 11, 15] + executable_lines: [10, 11, 12, 15, 20] + head_commit_sha: 66adc9350f2cc9b250b69abddab733dd55e1a588 + report_count: 3 + id: ZGQxMjM0NV9tYWluXzE3MDk1NjQwMDA= + type: ci_app_coverage_files schema: - $ref: "#/components/schemas/TimelineResponse" + $ref: "#/components/schemas/FilesCoverageResponse" description: OK "400": $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/ForbiddenResponse" + $ref: "#/components/responses/NotAuthorizedResponse" "404": $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" + "500": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Internal server error security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_read - summary: Get case timeline - tags: - - Case Management - /api/v2/cases/{case_id}/title: + - code_coverage_read + summary: Get per-file code coverage data + tags: ["Code Coverage"] + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - code_coverage_read + /api/v2/code-coverage/pr/summary: post: - description: Update case title - operationId: UpdateCaseTitle - parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" + description: |- + Retrieve aggregated code coverage statistics for a specific pull request in a repository. + This endpoint provides overall coverage metrics as well as breakdowns by service + and code owner. + operationId: GetCodeCoveragePRSummary requestBody: content: application/json: @@ -141569,11 +151491,11 @@ paths: value: data: attributes: - title: Memory leak investigation on API - type: case + pr_number: 42 + repository_url: https://github.com/datadog/test-service + type: ci_app_coverage_pr_summary_request schema: - $ref: "#/components/schemas/CaseUpdateTitleRequest" - description: Case title update payload + $ref: "#/components/schemas/PRCoverageSummaryRequest" required: true responses: "200": @@ -141584,58 +151506,58 @@ paths: value: data: attributes: - created_at: "2024-01-01T00:00:00+00:00" - key: CASEM-1234 - priority: NOT_DEFINED - status: OPEN - status_name: Open - title: Memory leak investigation on API - id: 00000000-0000-0000-0000-000000000001 - relationships: - project: - data: - id: 00000000-0000-0000-0000-000000000002 - type: project - type: case + evaluated_flags_count: 3 + evaluated_reports_count: 5 + patch_coverage: 65.2 + total_coverage: 78.6 + id: ZGQxMjM0NV9wcl80Ml8xNzA5NTY0MDAw + type: ci_app_coverage_summary schema: - $ref: "#/components/schemas/CaseResponse" + $ref: "#/components/schemas/CoverageSummaryResponse" description: OK "400": $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/ForbiddenResponse" + $ref: "#/components/responses/NotAuthorizedResponse" "404": $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" + "500": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Internal server error security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_write - summary: Update case title - tags: - - Case Management - /api/v2/cases/{case_id}/unarchive: - post: - description: Unarchive case - operationId: UnarchiveCase + - code_coverage_read + summary: Get code coverage summary for a pull request + tags: ["Code Coverage"] + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - code_coverage_read + /api/v2/compliance_findings/rule_based_view: + get: + deprecated: true + description: |- + **This endpoint is deprecated.** Use the [Security Monitoring - Search Security Findings](https://docs.datadoghq.com/api/latest/security-monitoring/search-security-findings/) endpoint instead. + + Get an aggregated view of compliance rules with their pass, fail, and muted finding counts. + Supports filtering by compliance framework, framework version, and additional query filters. + operationId: GetRuleBasedView parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" - requestBody: - content: - application/json: - examples: - default: - value: - data: - type: case - schema: - $ref: "#/components/schemas/CaseEmptyRequest" - description: Unarchive case payload - required: true + - $ref: "#/components/parameters/RuleBasedViewTo" + - $ref: "#/components/parameters/RuleBasedViewFramework" + - $ref: "#/components/parameters/RuleBasedViewVersion" + - $ref: "#/components/parameters/RuleBasedViewQueryFindingsWithoutFrameworkVersion" + - $ref: "#/components/parameters/RuleBasedViewIncludeRulesWithoutFindings" + - $ref: "#/components/parameters/RuleBasedViewIsCustom" + - $ref: "#/components/parameters/RuleBasedViewQuery" responses: "200": content: @@ -141645,58 +151567,113 @@ paths: value: data: attributes: - created_at: "2024-01-01T00:00:00+00:00" - key: CASEM-1234 - priority: NOT_DEFINED - status: OPEN - status_name: Open - title: Memory leak investigation on API - id: 00000000-0000-0000-0000-000000000001 - relationships: - project: - data: - id: 00000000-0000-0000-0000-000000000002 - type: project - type: case + count: 1 + rules: + - compliance_frameworks: + - control: 164.308-a-4-i + framework: hipaa + is_default: true + message: "" + requirement: Information-Access-Management + version: "1" + enabled: true + id: qjx-udx-xo8 + name: IAM roles should not allow untrusted GitHub Actions to assume them + resourceAttributes: [] + resourceCategory: identity + resourceType: aws_iam_role + stats: + fail: 0 + muted: 0 + pass: 3 + status: critical + tags: + - security:compliance + - cloud_provider:aws + - framework:hipaa + type: cloud_configuration + id: JSONAPI_USELESS_ID + type: rule_based_view schema: - $ref: "#/components/schemas/CaseResponse" + $ref: "#/components/schemas/RuleBasedViewResponse" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "403": - $ref: "#/components/responses/ForbiddenResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" + "503": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Service Unavailable security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_write - summary: Unarchive case - tags: - - Case Management - /api/v2/cases/{case_id}/unassign: - post: - description: Unassign case - operationId: UnassignCase + - security_monitoring_findings_read + summary: Get the rule-based view of compliance findings + tags: ["Compliance"] + "x-permission": + operator: OR + permissions: + - security_monitoring_findings_read + x-sunset: "2027-06-26" + x-unstable: |- + **Note**: This endpoint is in Preview and subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/container_images: + get: + description: |- + Get all Container Images for your organization. + **Note**: To enrich the data returned by this endpoint with security scans, see the new [api/v2/security/scanned-assets-metadata](https://docs.datadoghq.com/api/latest/security-monitoring/#list-scanned-assets-metadata) endpoint. + operationId: ListContainerImages parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" - requestBody: - content: - application/json: - examples: - default: - value: - data: - type: case - schema: - $ref: "#/components/schemas/CaseEmptyRequest" - description: Unassign case payload - required: true + - description: Comma-separated list of tags to filter Container Images by. + example: short_image:redis,status:running + in: query + name: filter[tags] + required: false + schema: + type: string + - description: Comma-separated list of tags to group Container Images by. + example: registry,image_tags + in: query + name: group_by + required: false + schema: + type: string + - description: Attribute to sort Container Images by. + example: container_count + in: query + name: sort + required: false + schema: + type: string + - description: Maximum number of results returned. + in: query + name: page[size] + required: false + schema: + default: 1000 + format: int32 + maximum: 10000 + minimum: 1 + type: integer + - description: |- + String to query the next page of results. + This key is provided with each valid response from the API in `meta.pagination.next_cursor`. + in: query + name: page[cursor] + required: false + schema: + type: string responses: "200": content: @@ -141705,47 +151682,97 @@ paths: default: value: data: - attributes: - created_at: "2024-01-01T00:00:00+00:00" - key: CASEM-1234 - priority: NOT_DEFINED - status: OPEN - status_name: Open - title: Memory leak investigation on API - id: 00000000-0000-0000-0000-000000000001 - relationships: - project: - data: - id: 00000000-0000-0000-0000-000000000002 - type: project - type: case + - attributes: + container_count: 1 + image_tags: + - latest + name: nginx + registry: docker.io + repository: library/nginx + short_image: nginx + id: abc-123 + type: container_image + meta: + pagination: + limit: 1000 + total: 1 + type: cursor_limit schema: - $ref: "#/components/schemas/CaseResponse" + $ref: "#/components/schemas/ContainerImagesResponse" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request "403": - $ref: "#/components/responses/ForbiddenResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Authentication Error "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: - - cases_write - summary: Unassign case + - AuthZ: [] + summary: Get all Container Images tags: - - Case Management - /api/v2/cases/{case_id}/watchers: + - Container Images + x-pagination: + cursorParam: page[cursor] + cursorPath: meta.pagination.next_cursor + limitParam: page[size] + resultsPath: data + "x-permission": + operator: OPEN + permissions: [] + /api/v2/containers: get: - description: Returns the list of users who are watching a case. Watchers receive notifications about updates to the case. - operationId: ListCaseWatchers + description: Get all containers for your organization. + operationId: ListContainers parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" + - description: Comma-separated list of tags to filter containers by. + example: env:prod,short_image:cassandra + in: query + name: filter[tags] + required: false + schema: + type: string + - description: Comma-separated list of tags to group containers by. + example: datacenter,cluster + in: query + name: group_by + required: false + schema: + type: string + - description: Attribute to sort containers by. + example: started_at + in: query + name: sort + required: false + schema: + type: string + - description: Maximum number of results returned. + in: query + name: page[size] + required: false + schema: + default: 1000 + format: int32 + maximum: 10000 + minimum: 1 + type: integer + - description: |- + String to query the next page of results. + This key is provided with each valid response from the API in `meta.pagination.next_cursor`. + in: query + name: page[cursor] + required: false + schema: + type: string responses: "200": content: @@ -141754,119 +151781,316 @@ paths: default: value: data: - - id: 8146583c-0b5f-11ec-abf8-da7ad0900001 - relationships: - user: - data: - id: 8146583c-0b5f-11ec-abf8-da7ad0900001 - type: user - type: watcher + - attributes: + container_id: abc-123 + host: example-host + image_name: nginx + name: example-container + state: running + id: abc-123 + type: container + meta: + pagination: + limit: 1000 + total: 1 + type: cursor_limit schema: - $ref: "#/components/schemas/CaseWatchersResponse" + $ref: "#/components/schemas/ContainersResponse" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request "403": - $ref: "#/components/responses/ForbiddenResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Authentication Error "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: - - cases_read - summary: List case watchers + - AuthZ: [] + summary: Get All Containers tags: - - Case Management - /api/v2/cases/{case_id}/watchers/{user_uuid}: - delete: - description: Removes a user from the watchers list of a case. The user no longer receives notifications about updates to the case. - operationId: UnwatchCase + - Containers + x-pagination: + cursorParam: page[cursor] + cursorPath: meta.pagination.next_cursor + limitParam: page[size] + resultsPath: data + "x-permission": + operator: OPEN + permissions: [] + /api/v2/cost/account_filters/{cloud_account_id}: + get: + description: Get the account filters for a cloud account (AWS CUR 1.0/2.0, OCI, and other clouds). + operationId: GetCostAccountFilters parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" - - $ref: "#/components/parameters/UserUUIDPathParameter" + - $ref: "#/components/parameters/CloudAccountID" responses: - "204": - description: No Content + "200": + content: + application/json: + examples: + default: + summary: Include new accounts and exclude specific accounts + value: + data: + attributes: + account_filters: + excluded_accounts: + - "123456789123" + - "123456789143" + include_new_accounts: true + account_id: "123456789123" + cloud: aws_cur2 + id: "123" + type: account_filters + include_accounts: + summary: Exclude new accounts and include specific accounts + value: + data: + attributes: + account_filters: + include_new_accounts: false + included_accounts: + - "123456789123" + - "123456789143" + account_id: "123456789123" + cloud: aws_cur2 + id: "123" + type: account_filters + schema: + $ref: "#/components/schemas/AccountFiltersResponse" + description: OK "400": - $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_write - summary: Unwatch a case + - cloud_cost_management_read + summary: Get account filters tags: - - Case Management - post: - description: Adds a user (identified by their UUID) as a watcher of a case. The user receives notifications about subsequent updates to the case. - operationId: WatchCase + - Cloud Cost Management + "x-permission": + operator: OR + permissions: + - cloud_cost_management_read + patch: + description: Update the account filters for a cloud account (AWS CUR 1.0/2.0, OCI, and other clouds). + operationId: UpdateCostAccountFilters parameters: - - $ref: "#/components/parameters/CaseIDPathParameter" - - $ref: "#/components/parameters/UserUUIDPathParameter" + - $ref: "#/components/parameters/CloudAccountID" + requestBody: + content: + application/json: + examples: + default: + summary: Exclude new accounts and include specific accounts + value: + data: + attributes: + account_filters: + include_new_accounts: false + included_accounts: + - "123456789123" + - "123456789143" + type: account_filters_patch_request + exclude_accounts: + summary: Include new accounts and exclude specific accounts + value: + data: + attributes: + account_filters: + excluded_accounts: + - "123456789123" + - "123456789143" + include_new_accounts: true + type: account_filters_patch_request + schema: + $ref: "#/components/schemas/AccountFiltersPatchRequest" + required: true responses: - "201": - description: Created + "200": + content: + application/json: + examples: + default: + summary: Exclude new accounts and include specific accounts + value: + data: + attributes: + account_filters: + include_new_accounts: false + included_accounts: + - "123456789123" + - "123456789143" + account_id: "123456789123" + cloud: aws_cur2 + id: "123" + type: account_filters + exclude_accounts: + summary: Include new accounts and exclude specific accounts + value: + data: + attributes: + account_filters: + excluded_accounts: + - "123456789123" + - "123456789143" + include_new_accounts: true + account_id: "123456789123" + cloud: aws_cur2 + id: "123" + type: account_filters + schema: + $ref: "#/components/schemas/AccountFiltersResponse" + description: OK "400": - $ref: "#/components/responses/BadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_write - summary: Watch a case + - cloud_cost_management_write + summary: Update account filters tags: - - Case Management - /api/v2/catalog/entity: + - Cloud Cost Management + "x-permission": + operator: OR + permissions: + - cloud_cost_management_write + /api/v2/cost/anomalies: get: - description: Get a list of entities from Software Catalog. - operationId: ListCatalogEntity + description: List detected Cloud Cost Management anomalies for the organization. + operationId: ListCostAnomalies parameters: - - $ref: "#/components/parameters/PageOffset" - - description: Maximum number of entities in the response. - example: 100 + - description: Start time as Unix milliseconds. Defaults to the start of the latest stable seven-day window. + in: query + name: start + required: false + schema: + example: 1730259950000 + format: int64 + type: integer + - description: End time as Unix milliseconds. Defaults to the end of the latest stable seven-day window. + in: query + name: end + required: false + schema: + example: 1730429150000 + format: int64 + type: integer + - description: 'Optional JSON object mapping cost tag keys to allowed values, for example `{"team":["payments"],"env":["prod"]}`. Filters match anomaly dimensions or correlated tags.' + in: query + name: filter + required: false + schema: + example: '{"team":["payments"]}' + type: string + - description: Minimum absolute anomalous cost change to include. Numeric value; defaults to `1`. + in: query + name: min_anomalous_threshold + required: false + schema: + example: "1.0" + type: string + - description: Minimum absolute actual cost to include. Numeric value; defaults to `0`. + in: query + name: min_cost_threshold + required: false + schema: + example: "0.0" + type: string + - description: Filter by resolution state. Use `none` for unresolved anomalies, `all` or `*` for resolved anomalies, or a comma-separated list of causes. + in: query + name: dismissal_cause + required: false + schema: + example: none + type: string + - description: Sort field. One of `start_date`, `end_date`, `duration`, `max_cost`, `anomalous_cost`, or `dismissal_date`. Defaults to `anomalous_cost`. in: query - name: page[limit] + name: order_by required: false schema: - default: 100 + example: anomalous_cost + type: string + - description: Sort direction. One of `asc` or `desc`. Defaults to `desc`. + in: query + name: order + required: false + schema: + example: desc + type: string + - description: Maximum number of anomalies to return. Defaults to `200`. + in: query + name: limit + required: false + schema: + example: 200 format: int64 type: integer - - $ref: "#/components/parameters/FilterByID" - - $ref: "#/components/parameters/FilterByRef" - - $ref: "#/components/parameters/FilterByName" - - $ref: "#/components/parameters/FilterByKind" - - $ref: "#/components/parameters/FilterByOwner" - - $ref: "#/components/parameters/FilterByRelationType" - - $ref: "#/components/parameters/FilterByExcludeSnapshot" - - $ref: "#/components/parameters/Include" - - description: If true, includes discovered services from APM and USM that do not have entity definitions. + - description: Pagination offset. Defaults to `0`. in: query - name: includeDiscovered + name: offset required: false schema: - default: false - type: boolean + example: 0 + format: int64 + type: integer + - description: Optional repeated cloud or SaaS provider filters, such as `aws`, `gcp`, `azure`, `Oracle`, `datadog`, `OpenAI`, or `Anthropic`. + explode: true + in: query + name: provider_ids + required: false + schema: + items: + example: aws + type: string + type: array responses: "200": content: @@ -141875,176 +152099,219 @@ paths: default: value: data: - - attributes: - apiVersion: v3 - kind: service - name: myService - namespace: default - id: 4b163705-23c0-4573-b2fb-f6cea2163fcb - type: entity - meta: - count: 1 - includeCount: 0 + attributes: + anomalies: + - actual_cost: 3001.24 + anomalous_cost_change: 1250.75 + anomaly_end: 1730429150000 + anomaly_start: 1730259950000 + correlated_tags: + region: + - us-east-1 + - us-west-2 + dimensions: + service: ec2 + max_cost: 5000.5 + provider: aws + query: 'sum:aws.cost.net.amortized{aws_cost_type IN (Usage,DiscountedUsage,SavingsPlanCoveredUsage) AND aws_product NOT IN (supportenterprise) AND service:"ec2"}.rollup(sum, daily)' + uuid: b0a6aaa9-3c4c-48cb-9447-a0d1338b3e09 + avg_daily_anomalous_cost: 625.375 + total_actual_cost: 3001.24 + total_anomalous_cost: 1250.75 + total_count: 1 + id: anomalies + type: anomalies schema: - $ref: "#/components/schemas/ListEntityCatalogResponse" + $ref: "#/components/schemas/CostAnomaliesResponse" description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - apm_service_catalog_read - summary: Get a list of entities + - cloud_cost_management_read + summary: List cost anomalies tags: - - Software Catalog - x-pagination: - limitParam: page[limit] - pageOffsetParam: page[offset] - resultsPath: data - post: - description: Create or update entities in Software Catalog. - operationId: UpsertCatalogEntity - requestBody: - content: - application/json: - examples: - default: - value: - apiVersion: v3 - integrations: - opsgenie: - serviceURL: https://www.opsgenie.com/service/shopping-cart - pagerduty: - serviceURL: https://www.pagerduty.com/service-directory/Pshopping-cart - kind: service - metadata: - additionalOwners: - - name: "" - contacts: - - contact: https://slack/ - type: slack - id: 4b163705-23c0-4573-b2fb-f6cea2163fcb - inheritFrom: application:default/myapp - links: - - name: mylink - type: link - url: https://mylink - name: myService - namespace: default - tags: - - this:tag - - that:tag - schema: - $ref: "#/components/schemas/UpsertCatalogEntityRequest" - description: Entity YAML or JSON. - required: true + - Cloud Cost Management + x-unstable: |- + **Note**: This endpoint is in Preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/cost/anomalies/{anomaly_id}: + get: + description: Get a detected Cloud Cost Management anomaly by UUID. + operationId: GetCostAnomaly + parameters: + - $ref: "#/components/parameters/AnomalyID" responses: - "202": + "200": content: application/json: examples: default: value: data: - - attributes: - apiVersion: v3 - kind: service - name: myService - namespace: default - id: 4b163705-23c0-4573-b2fb-f6cea2163fcb - type: entity - meta: - count: 1 - includeCount: 0 + attributes: + actual_cost: 3001.24 + anomalous_cost_change: 1250.75 + anomaly_end: 1730429150000 + anomaly_start: 1730259950000 + correlated_tags: + region: + - us-east-1 + - us-west-2 + dimensions: + service: ec2 + max_cost: 5000.5 + provider: aws + query: 'sum:aws.cost.net.amortized{aws_cost_type IN (Usage,DiscountedUsage,SavingsPlanCoveredUsage) AND aws_product NOT IN (supportenterprise) AND service:"ec2"}.rollup(sum, daily)' + uuid: b0a6aaa9-3c4c-48cb-9447-a0d1338b3e09 + id: b0a6aaa9-3c4c-48cb-9447-a0d1338b3e09 + type: anomalies schema: - $ref: "#/components/schemas/UpsertCatalogEntityResponse" - description: ACCEPTED + $ref: "#/components/schemas/CostAnomalyResponse" + description: OK "400": $ref: "#/components/responses/BadRequestResponse" "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden + "404": + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - apm_service_catalog_write - summary: Create or update entities + - cloud_cost_management_read + summary: Get cost anomaly tags: - - Software Catalog - x-codegen-request-body-name: body - /api/v2/catalog/entity/preview: - post: - operationId: PreviewCatalogEntities + - Cloud Cost Management + x-unstable: |- + **Note**: This endpoint is in Preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/cost/arbitrary_rule: + get: + description: List all custom allocation rules - Retrieve a list of all custom allocation rules for the organization + operationId: ListCustomAllocationRules responses: - "202": + "200": content: application/json: examples: default: value: data: - - id: 4b163705-23c0-4573-b2fb-f6cea2163fcb - type: entity + - attributes: + costs_to_allocate: + - condition: is + tag: account_id + value: "123456789" + values: + created: "2024-01-01T00:00:00+00:00" + enabled: true + last_modified_user_uuid: user-example-uuid + order_id: 1 + processing_status: done + provider: + - aws + rule_name: example-custom-allocation-rule + strategy: + allocated_by_tag_keys: + - team + granularity: daily + method: proportional + type: shared + updated: "2024-01-01T00:00:00+00:00" + version: 1 + id: "123" + type: arbitrary_rule schema: - $ref: "#/components/schemas/EntityResponseArray" - description: Accepted - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - apm_service_catalog_read - summary: Preview catalog entities - tags: - - Software Catalog - /api/v2/catalog/entity/{entity_id}: - delete: - description: Delete a single entity in Software Catalog. - operationId: DeleteCatalogEntity - parameters: - - $ref: "#/components/parameters/EntityID" - responses: - "204": + $ref: "#/components/schemas/ArbitraryRuleResponseArray" description: OK - "400": - $ref: "#/components/responses/BadRequestResponse" - "403": - $ref: "#/components/responses/ForbiddenResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - apm_service_catalog_write - summary: Delete a single entity + - cloud_cost_management_read + summary: List custom allocation rules tags: - - Software Catalog - /api/v2/catalog/kind: - get: - description: Get a list of entity kinds from Software Catalog. - operationId: ListCatalogKind - parameters: - - $ref: "#/components/parameters/PageOffset" - - description: Maximum number of kinds in the response. - example: 100 - in: query - name: page[limit] - required: false - schema: - default: 100 - format: int64 - type: integer - - $ref: "#/components/parameters/FilterByID" - - $ref: "#/components/parameters/FilterByName" + - Cloud Cost Management + post: + description: |- + Create a new custom allocation rule with the specified filters and allocation strategy. + + **Strategy Methods:** + - **PROPORTIONAL/EVEN**: Allocates costs proportionally/evenly based on existing costs. Requires: granularity, allocated_by_tag_keys. Optional: based_on_costs, allocated_by_filters, evaluate_grouped_by_tag_keys, evaluate_grouped_by_filters. + - **PROPORTIONAL_TIMESERIES/EVEN_TIMESERIES**: Allocates based on timeseries data. Requires: granularity, based_on_timeseries. Optional: evaluate_grouped_by_tag_keys. + - **PERCENT**: Allocates fixed percentages to specific tags. Requires: allocated_by (array of percentage allocations). + + **Filter Conditions:** + - Use **value** for single-value conditions: "is", "is not", "contains", "=", "!=", "like", "not like" + - Use **values** for multi-value conditions: "in", "not in" + - Cannot use both value and values simultaneously. + + **Supported operators**: is, is not, contains, in, not in, =, !=, like, not like + operationId: CreateCustomAllocationRule + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + costs_to_allocate: + - condition: is + tag: account_id + value: "123456789" + - condition: in + tag: environment + value: "" + values: + - production + - staging + enabled: true + order_id: 1 + provider: + - aws + - gcp + rule_name: example-arbitrary-cost-rule + strategy: + allocated_by_tag_keys: + - team + - environment + based_on_costs: + - condition: is + tag: service + value: web-api + - condition: not in + tag: team + value: "" + values: + - legacy + - deprecated + granularity: daily + method: proportional + type: shared + type: upsert_arbitrary_rule + schema: + $ref: "#/components/schemas/ArbitraryCostUpsertRequest" + required: true responses: "200": content: @@ -142053,51 +152320,86 @@ paths: default: value: data: - - attributes: - description: A job entity in the catalog. - displayName: My Job - name: my-job - id: 4b163705-23c0-4573-b2fb-f6cea2163fcb - type: kind - meta: - count: 1 + attributes: + costs_to_allocate: + - condition: is + tag: account_id + value: "123456789" + created: "2024-01-01T00:00:00+00:00" + enabled: true + order_id: 1 + provider: + - aws + rule_name: example-arbitrary-cost-rule + strategy: + allocated_by_tag_keys: + - team + granularity: daily + method: proportional + type: shared + updated: "2024-01-01T00:00:00+00:00" + version: 1 + id: "123" + type: arbitrary_rule schema: - $ref: "#/components/schemas/ListKindCatalogResponse" + $ref: "#/components/schemas/ArbitraryRuleResponse" description: OK - "400": - $ref: "#/components/responses/BadRequestResponse" - "403": - $ref: "#/components/responses/ForbiddenResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - apm_service_catalog_read - summary: Get a list of entity kinds + - cloud_cost_management_write + summary: Create custom allocation rule tags: - - Software Catalog - x-pagination: - limitParam: page[limit] - pageOffsetParam: page[offset] - resultsPath: data + - Cloud Cost Management + /api/v2/cost/arbitrary_rule/reorder: post: - description: Create or update kinds in Software Catalog. - operationId: UpsertCatalogKind + description: |- + Reorder custom allocation rules - Change the execution order of custom allocation rules. + + **Important**: You must provide the **complete list** of all rule IDs in the desired execution order. The API will reorder ALL rules according to the provided sequence. + + Rules are executed in the order specified, with lower indices (earlier in the array) having higher priority. + + **Example**: If you have rules with IDs [123, 456, 789] and want to change order from 123→456→789 to 456→123→789, send: [{"id": "456"}, {"id": "123"}, {"id": "789"}] + operationId: ReorderCustomAllocationRules requestBody: content: application/json: examples: default: value: - kind: my-job + data: + - id: "456" + type: arbitrary_rule + - id: "123" + type: arbitrary_rule + - id: "789" + type: arbitrary_rule schema: - $ref: "#/components/schemas/UpsertCatalogKindRequest" - description: Kind YAML or JSON. + $ref: "#/components/schemas/ReorderRuleResourceArray" required: true responses: - "202": + "204": + description: Successfully reordered rules + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cloud_cost_management_write + summary: Reorder custom allocation rules + tags: + - Cloud Cost Management + /api/v2/cost/arbitrary_rule/status: + get: + description: List the processing status of all custom allocation rules. Returns only the ID and processing status for each rule. + operationId: ListCustomAllocationRulesStatus + responses: + "200": content: application/json: examples: @@ -142105,82 +152407,62 @@ paths: value: data: - attributes: - description: A job entity in the catalog. - displayName: My Job - name: my-job - id: 4b163705-23c0-4573-b2fb-f6cea2163fcb - type: kind - meta: - count: 1 + processing_status: processing + id: "123" + type: arbitrary_rule_status + - attributes: + processing_status: done + id: "456" + type: arbitrary_rule_status schema: - $ref: "#/components/schemas/UpsertCatalogKindResponse" - description: ACCEPTED - "400": - $ref: "#/components/responses/BadRequestResponse" - "403": - $ref: "#/components/responses/ForbiddenResponse" + $ref: "#/components/schemas/ArbitraryRuleStatusResponseArray" + description: OK "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - apm_service_catalog_write - summary: Create or update kinds + - cloud_cost_management_read + summary: List custom allocation rule statuses tags: - - Software Catalog - x-codegen-request-body-name: body - /api/v2/catalog/kind/{kind_id}: + - Cloud Cost Management + /api/v2/cost/arbitrary_rule/{rule_id}: delete: - description: Delete a single kind in Software Catalog. - operationId: DeleteCatalogKind + description: Delete a custom allocation rule - Delete an existing custom allocation rule by its ID + operationId: DeleteCustomAllocationRule parameters: - - $ref: "#/components/parameters/KindID" + - description: The unique identifier of the custom allocation rule + in: path + name: rule_id + required: true + schema: + format: int64 + type: integer responses: "204": - description: OK - "400": - $ref: "#/components/responses/BadRequestResponse" - "403": - $ref: "#/components/responses/ForbiddenResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" + description: No Content "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - apm_service_catalog_write - summary: Delete a single kind + - cloud_cost_management_write + summary: Delete custom allocation rule tags: - - Software Catalog - /api/v2/catalog/relation: + - Cloud Cost Management get: - description: Get a list of entity relations from Software Catalog. - operationId: ListCatalogRelation + description: Get a specific custom allocation rule - Retrieve a specific custom allocation rule by its ID + operationId: GetCustomAllocationRule parameters: - - $ref: "#/components/parameters/PageOffset" - - description: Maximum number of relations in the response. - example: 100 - in: query - name: page[limit] - required: false + - description: The unique identifier of the custom allocation rule + in: path + name: rule_id + required: true schema: - default: 100 format: int64 type: integer - - $ref: "#/components/parameters/FilterRelationByType" - - $ref: "#/components/parameters/FilterRelationByFromRef" - - $ref: "#/components/parameters/FilterRelationByToRef" - - $ref: "#/components/parameters/RelationInclude" - - description: If true, includes relationships discovered by APM and USM. - in: query - name: includeDiscovered - required: false - schema: - default: false - type: boolean responses: "200": content: @@ -142189,41 +152471,67 @@ paths: default: value: data: - - attributes: - from: - kind: service - name: test-service - to: - kind: service - name: other-service - type: RelationTypeOwns - id: abc-123 - type: relation - meta: - count: 1 + attributes: + costs_to_allocate: + - condition: is + tag: account_id + value: "123456789" + values: + created: "2024-01-01T00:00:00+00:00" + enabled: true + last_modified_user_uuid: user-example-uuid + order_id: 1 + provider: + - aws + rule_name: example-custom-allocation-rule + strategy: + allocated_by_tag_keys: + - team + granularity: daily + method: proportional + type: shared + updated: "2024-01-01T00:00:00+00:00" + version: 1 + id: "123" + type: arbitrary_rule schema: - $ref: "#/components/schemas/ListRelationCatalogResponse" + $ref: "#/components/schemas/ArbitraryRuleResponse" description: OK - "403": - $ref: "#/components/responses/ForbiddenResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - apm_service_catalog_read - summary: Get a list of entity relations + - cloud_cost_management_read + summary: Get custom allocation rule tags: - - Software Catalog - x-pagination: - limitParam: page[limit] - pageOffsetParam: page[offset] - resultsPath: data - /api/v2/change-management/change-request: - post: - description: Create a new change request. - operationId: CreateChangeRequest + - Cloud Cost Management + patch: + description: |- + Update an existing custom allocation rule with new filters and allocation strategy. + + **Strategy Methods:** + - **PROPORTIONAL/EVEN**: Allocates costs proportionally/evenly based on existing costs. Requires: granularity, allocated_by_tag_keys. Optional: based_on_costs, allocated_by_filters, evaluate_grouped_by_tag_keys, evaluate_grouped_by_filters. + - **PROPORTIONAL_TIMESERIES/EVEN_TIMESERIES**: Allocates based on timeseries data. Requires: granularity, based_on_timeseries. Optional: evaluate_grouped_by_tag_keys. + - **PERCENT**: Allocates fixed percentages to specific tags. Requires: allocated_by (array of percentage allocations). + - **USAGE_METRIC**: Allocates based on usage metrics (implementation varies). + + **Filter Conditions:** + - Use **value** for single-value conditions: "is", "is not", "contains", "=", "!=", "like", "not like" + - Use **values** for multi-value conditions: "in", "not in" + - Cannot use both value and values simultaneously. + + **Supported operators**: is, is not, contains, in, not in, =, !=, like, not like + operationId: UpdateCustomAllocationRule + parameters: + - description: The unique identifier of the custom allocation rule + in: path + name: rule_id + required: true + schema: + format: int64 + type: integer requestBody: content: application/json: @@ -142232,25 +152540,45 @@ paths: value: data: attributes: - change_request_linked_incident_uuid: 00000000-0000-0000-0000-000000000000 - change_request_maintenance_window_query: "" - change_request_plan: 1. Deploy to staging 2. Run tests 3. Deploy to production - change_request_risk: LOW - change_request_type: NORMAL - description: Deploying new payment service v2.1 - end_date: "2024-01-02T15:00:00Z" - project_id: d4bbe1af-f36e-42f1-87c1-493ca35c320e - requested_teams: - - team-handle-1 - start_date: "2024-01-01T03:00:00Z" - title: Deploy new payment service - type: change_request + costs_to_allocate: + - condition: is + tag: account_id + value: "123456789" + - condition: in + tag: environment + value: "" + values: + - production + - staging + enabled: true + order_id: 1 + provider: + - aws + - gcp + rule_name: example-arbitrary-cost-rule + strategy: + allocated_by_tag_keys: + - team + - environment + based_on_costs: + - condition: is + tag: service + value: web-api + - condition: not in + tag: team + value: "" + values: + - legacy + - deprecated + granularity: daily + method: proportional + type: shared + type: upsert_arbitrary_rule schema: - $ref: "#/components/schemas/ChangeRequestCreateRequest" - description: Change request payload. + $ref: "#/components/schemas/ArbitraryCostUpsertRequest" required: true responses: - "201": + "200": content: application/json: examples: @@ -142258,72 +152586,43 @@ paths: value: data: attributes: - attributes: {} - change_request_linked_incident_uuid: "" - change_request_maintenance_window_query: "" - change_request_plan: "" - change_request_risk: LOW - change_request_type: NORMAL - created_at: "2024-01-01T00:00:00+00:00" - creation_source: CS_MANUAL - description: Deploying new payment service v2.1 - end_date: "2024-01-02T00:00:00+00:00" - key: CHM-1234 - modified_at: "2024-01-01T00:00:00+00:00" - plan_notebook_id: 0 - priority: NOT_DEFINED - project_id: 00000000-0000-0000-0000-000000000001 - start_date: "2024-01-01T00:00:00+00:00" - status: OPEN - title: Deploy new payment service - type: CHANGE_REQUEST - id: CHM-1234 - relationships: - change_request_decisions: - data: [] - created_by: - data: - id: 00000000-0000-0000-0000-000000000001 - type: user - modified_by: - data: - id: 00000000-0000-0000-0000-000000000001 - type: user - type: change_request - schema: - $ref: "#/components/schemas/ChangeRequestResponse" - description: Created - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "403": - content: - application/json: + costs_to_allocate: + - condition: is + tag: account_id + value: "123456789" + created: "2024-01-01T00:00:00+00:00" + enabled: true + order_id: 1 + provider: + - aws + rule_name: example-arbitrary-cost-rule + strategy: + allocated_by_tag_keys: + - team + granularity: daily + method: proportional + type: shared + updated: "2024-01-01T00:00:00+00:00" + version: 1 + id: "123" + type: arbitrary_rule schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/schemas/ArbitraryRuleResponse" + description: OK "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_write - summary: Create a change request + - cloud_cost_management_write + summary: Update custom allocation rule tags: - - Change Management - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/change-management/change-request/{change_request_id}: + - Cloud Cost Management + /api/v2/cost/aws_cur_config: get: - description: Get the details of a change request by its ID. - operationId: GetChangeRequest - parameters: - - $ref: "#/components/parameters/ChangeRequestIDPathParameter" + description: List the AWS CUR configs. + operationId: ListCostAWSCURConfigs responses: "200": content: @@ -142332,72 +152631,46 @@ paths: default: value: data: - attributes: - attributes: {} - change_request_linked_incident_uuid: "" - change_request_maintenance_window_query: "" - change_request_plan: "" - change_request_risk: LOW - change_request_type: NORMAL - created_at: "2024-01-01T00:00:00+00:00" - creation_source: CS_MANUAL - description: Deploying new payment service v2.1 - end_date: "2024-01-02T00:00:00+00:00" - key: CHM-1234 - modified_at: "2024-01-01T00:00:00+00:00" - plan_notebook_id: 0 - priority: NOT_DEFINED - project_id: 00000000-0000-0000-0000-000000000001 - start_date: "2024-01-01T00:00:00+00:00" - status: OPEN - title: Deploy new payment service - type: CHANGE_REQUEST - id: CHM-1234 - relationships: - change_request_decisions: - data: [] - created_by: - data: - id: 00000000-0000-0000-0000-000000000001 - type: user - modified_by: - data: - id: 00000000-0000-0000-0000-000000000001 - type: user - type: change_request + - attributes: + account_id: "123456789123" + bucket_name: dd-cost-bucket + bucket_region: us-east-1 + created_at: "2023-01-01T12:00:00.000000" + error_messages: [] + months: 36 + report_name: dd-report-name + report_prefix: dd-report-prefix + status: active + status_updated_at: "2023-01-01T12:00:00.000000" + updated_at: "2023-01-01T12:00:00.000000" + id: "123" + type: aws_cur_config schema: - $ref: "#/components/schemas/ChangeRequestResponse" + $ref: "#/components/schemas/AwsCURConfigsResponse" description: OK - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "404": + "403": content: application/json: schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_read - summary: Get a change request + - cloud_cost_management_read + summary: List Cloud Cost Management AWS CUR configs tags: - - Change Management - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - patch: - description: Update the properties of a change request. - operationId: UpdateChangeRequest - parameters: - - $ref: "#/components/parameters/ChangeRequestIDPathParameter" + - Cloud Cost Management + "x-permission": + operator: OR + permissions: + - cloud_cost_management_read + post: + description: Create a Cloud Cost Management account for an AWS CUR config. + operationId: CreateCostAWSCURConfig requestBody: content: application/json: @@ -142406,26 +152679,22 @@ paths: value: data: attributes: - change_request_plan: Updated deployment plan - change_request_risk: LOW - change_request_type: NORMAL - end_date: "2024-01-02T15:00:00Z" - id: CHM-1234 - start_date: "2024-01-01T03:00:00Z" - relationships: - change_request_decisions: - data: - - id: decision-id-0 - type: change_request - included: - - attributes: - change_request_status: REQUESTED - request_reason: Please review and approve this change - id: decision-id-0 - type: change_request_decision + account_filters: + excluded_accounts: + - "123456789123" + - "123456789143" + include_new_accounts: true + included_accounts: + - "123456789123" + - "123456789143" + account_id: "123456789123" + bucket_name: dd-cost-bucket + bucket_region: us-east-1 + report_name: dd-report-name + report_prefix: dd-report-prefix + type: aws_cur_config_post_request schema: - $ref: "#/components/schemas/ChangeRequestUpdateRequest" - description: Change request update payload. + $ref: "#/components/schemas/AwsCURConfigPostRequest" required: true responses: "200": @@ -142436,148 +152705,73 @@ paths: value: data: attributes: - attributes: {} - change_request_linked_incident_uuid: "" - change_request_maintenance_window_query: "" - change_request_plan: "" - change_request_risk: LOW - change_request_type: NORMAL - created_at: "2024-01-01T00:00:00+00:00" - creation_source: CS_MANUAL - description: Deploying new payment service v2.1 - end_date: "2024-01-02T00:00:00+00:00" - key: CHM-1234 - modified_at: "2024-01-01T00:00:00+00:00" - plan_notebook_id: 0 - priority: NOT_DEFINED - project_id: 00000000-0000-0000-0000-000000000001 - start_date: "2024-01-01T00:00:00+00:00" - status: OPEN - title: Deploy new payment service - type: CHANGE_REQUEST - id: CHM-1234 - relationships: - change_request_decisions: - data: [] - created_by: - data: - id: 00000000-0000-0000-0000-000000000001 - type: user - modified_by: - data: - id: 00000000-0000-0000-0000-000000000001 - type: user - type: change_request + account_filters: + excluded_accounts: + - "123456789124" + - "123456789125" + include_new_accounts: true + account_id: "123456789123" + bucket_name: dd-cost-bucket + bucket_region: us-east-1 + created_at: "2023-01-01T12:00:00.000000" + error_messages: [] + months: 36 + report_name: dd-report-name + report_prefix: dd-report-prefix + status: active + status_updated_at: "2023-01-01T12:00:00.000000" + updated_at: "2023-01-01T12:00:00.000000" + id: "123456789123" + type: aws_cur_config schema: - $ref: "#/components/schemas/ChangeRequestResponse" + $ref: "#/components/schemas/AwsCurConfigResponse" description: OK "400": content: application/json: schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" + $ref: "#/components/schemas/APIErrorResponse" description: Bad Request "403": content: application/json: schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" + $ref: "#/components/schemas/APIErrorResponse" description: Forbidden - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_write - summary: Update a change request + - cloud_cost_management_write + summary: Create Cloud Cost Management AWS CUR config tags: - - Change Management - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/change-management/change-request/{change_request_id}/branch: - post: - description: Create a new branch in a repository for a change request. - operationId: CreateChangeRequestBranch + - Cloud Cost Management + "x-permission": + operator: OR + permissions: + - cloud_cost_management_write + /api/v2/cost/aws_cur_config/{cloud_account_id}: + delete: + description: Archive a Cloud Cost Management Account. + operationId: DeleteCostAWSCURConfig parameters: - - $ref: "#/components/parameters/ChangeRequestIDPathParameter" - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - branch_name: chm/CHM-1234 - repo_id: DataDog/test-repo - type: change_request_branch - schema: - $ref: "#/components/schemas/ChangeRequestBranchCreateRequest" - description: Branch creation payload. - required: true + - $ref: "#/components/parameters/CloudAccountID" responses: - "200": - content: - application/json: - examples: - default: - value: - data: - attributes: - attributes: {} - change_request_linked_incident_uuid: "" - change_request_maintenance_window_query: "" - change_request_plan: "" - change_request_risk: LOW - change_request_type: NORMAL - created_at: "2024-01-01T00:00:00+00:00" - creation_source: CS_MANUAL - description: Deploying new payment service v2.1 - end_date: "2024-01-02T00:00:00+00:00" - key: CHM-1234 - modified_at: "2024-01-01T00:00:00+00:00" - plan_notebook_id: 0 - priority: NOT_DEFINED - project_id: 00000000-0000-0000-0000-000000000001 - start_date: "2024-01-01T00:00:00+00:00" - status: OPEN - title: Deploy new payment service - type: CHANGE_REQUEST - id: CHM-1234 - relationships: - change_request_decisions: - data: [] - created_by: - data: - id: 00000000-0000-0000-0000-000000000001 - type: user - modified_by: - data: - id: 00000000-0000-0000-0000-000000000001 - type: user - type: change_request - schema: - $ref: "#/components/schemas/ChangeRequestResponse" - description: OK + "204": + description: No Content "400": content: application/json: schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" + $ref: "#/components/schemas/APIErrorResponse" description: Bad Request "404": content: application/json: schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" + $ref: "#/components/schemas/APIErrorResponse" description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" @@ -142585,20 +152779,25 @@ paths: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_write - summary: Create a change request branch + - cloud_cost_management_write + summary: Delete Cloud Cost Management AWS CUR config tags: - - Change Management - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/change-management/change-request/{change_request_id}/decisions/{decision_id}: - delete: - description: Delete a decision from a change request. - operationId: DeleteChangeRequestDecision + - Cloud Cost Management + "x-permission": + operator: OR + permissions: + - cloud_cost_management_write + get: + description: Get a specific AWS CUR config. + operationId: GetCostAWSCURConfig parameters: - - $ref: "#/components/parameters/ChangeRequestIDPathParameter" - - $ref: "#/components/parameters/ChangeRequestDecisionIDPathParameter" + - description: The unique identifier of the cloud account + in: path + name: cloud_account_id + required: true + schema: + format: int64 + type: integer responses: "200": content: @@ -142608,72 +152807,42 @@ paths: value: data: attributes: - attributes: {} - change_request_linked_incident_uuid: "" - change_request_maintenance_window_query: "" - change_request_plan: "" - change_request_risk: LOW - change_request_type: NORMAL - created_at: "2024-01-01T00:00:00+00:00" - creation_source: CS_MANUAL - description: Deploying new payment service v2.1 - end_date: "2024-01-02T00:00:00+00:00" - key: CHM-1234 - modified_at: "2024-01-01T00:00:00+00:00" - plan_notebook_id: 0 - priority: NOT_DEFINED - project_id: 00000000-0000-0000-0000-000000000001 - start_date: "2024-01-01T00:00:00+00:00" - status: OPEN - title: Deploy new payment service - type: CHANGE_REQUEST - id: CHM-1234 - relationships: - change_request_decisions: - data: [] - created_by: - data: - id: 00000000-0000-0000-0000-000000000001 - type: user - modified_by: - data: - id: 00000000-0000-0000-0000-000000000001 - type: user - type: change_request + account_filters: + excluded_accounts: + - "123456789124" + - "123456789125" + include_new_accounts: true + account_id: "123456789123" + bucket_name: dd-cost-bucket + bucket_region: us-east-1 + created_at: "2023-01-01T12:00:00.000000" + error_messages: [] + months: 36 + report_name: dd-report-name + report_prefix: dd-report-prefix + status: active + status_updated_at: "2023-01-01T12:00:00.000000" + updated_at: "2023-01-01T12:00:00.000000" + id: "123456789123" + type: aws_cur_config schema: - $ref: "#/components/schemas/ChangeRequestResponse" + $ref: "#/components/schemas/AwsCurConfigResponse" description: OK - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_write - summary: Delete a change request decision + - cloud_cost_management_read + summary: Get cost AWS CUR config tags: - - Change Management - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + - Cloud Cost Management patch: - description: Update a decision on a change request, such as approving or declining it. - operationId: UpdateChangeRequestDecision + description: Update the status (active/archived) and/or account filtering configuration of an AWS CUR config. + operationId: UpdateCostAWSCURConfig parameters: - - $ref: "#/components/parameters/ChangeRequestIDPathParameter" - - $ref: "#/components/parameters/ChangeRequestDecisionIDPathParameter" + - $ref: "#/components/parameters/CloudAccountID" requestBody: content: application/json: @@ -142682,21 +152851,18 @@ paths: value: data: attributes: - id: CHM-1234 - relationships: - change_request_decisions: - data: - - id: decision-id-0 - type: change_request - included: - - attributes: - change_request_status: REQUESTED - request_reason: Please review and approve this change - id: decision-id-0 - type: change_request_decision + account_filters: + excluded_accounts: + - "123456789123" + - "123456789143" + include_new_accounts: true + included_accounts: + - "123456789123" + - "123456789143" + is_enabled: true + type: aws_cur_config_patch_request schema: - $ref: "#/components/schemas/ChangeRequestDecisionUpdateRequest" - description: Decision update payload. + $ref: "#/components/schemas/AwsCURConfigPatchRequest" required: true responses: "200": @@ -142706,53 +152872,34 @@ paths: default: value: data: - attributes: - attributes: {} - change_request_linked_incident_uuid: "" - change_request_maintenance_window_query: "" - change_request_plan: "" - change_request_risk: LOW - change_request_type: NORMAL - created_at: "2024-01-01T00:00:00+00:00" - creation_source: CS_MANUAL - description: Deploying new payment service v2.1 - end_date: "2024-01-02T00:00:00+00:00" - key: CHM-1234 - modified_at: "2024-01-01T00:00:00+00:00" - plan_notebook_id: 0 - priority: NOT_DEFINED - project_id: 00000000-0000-0000-0000-000000000001 - start_date: "2024-01-01T00:00:00+00:00" - status: OPEN - title: Deploy new payment service - type: CHANGE_REQUEST - id: CHM-1234 - relationships: - change_request_decisions: - data: [] - created_by: - data: - id: 00000000-0000-0000-0000-000000000001 - type: user - modified_by: - data: - id: 00000000-0000-0000-0000-000000000001 - type: user - type: change_request + - attributes: + account_id: "123456789123" + bucket_name: dd-cost-bucket + bucket_region: us-east-1 + created_at: "2023-01-01T12:00:00.000000" + error_messages: [] + months: 36 + report_name: dd-report-name + report_prefix: dd-report-prefix + status: active + status_updated_at: "2023-01-01T12:00:00.000000" + updated_at: "2023-01-01T12:00:00.000000" + id: "123" + type: aws_cur_config schema: - $ref: "#/components/schemas/ChangeRequestResponse" + $ref: "#/components/schemas/AwsCURConfigsResponse" description: OK - "400": + "403": content: application/json: schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden "404": content: application/json: schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" + $ref: "#/components/schemas/APIErrorResponse" description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" @@ -142760,19 +152907,18 @@ paths: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cases_write - summary: Update a change request decision + - cloud_cost_management_write + summary: Update Cloud Cost Management AWS CUR config tags: - - Change Management - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/ci/github/accounts: + - Cloud Cost Management + "x-permission": + operator: OR + permissions: + - cloud_cost_management_write + /api/v2/cost/azure_uc_config: get: - description: |- - Retrieve the list of GitHub accounts (organizations or users) available to this Datadog organization - through its GitHub App installation, along with each account's and repository's CI Visibility opt-in status. - operationId: ListCIAppGitHubAccounts + description: List the Azure configs. + operationId: ListCostAzureUCConfigs responses: "200": content: @@ -142782,49 +152928,50 @@ paths: value: data: - attributes: - account: datadog - enabled: true - host: github.com - repo_count: 2 - repositories: - - enabled: true - name: shopist - - enabled: false - name: dd-source - id: github.com/datadog - type: ci_github_account + configs: + - account_id: 1234abcd-1234-abcd-1234-1234abcd1234 + client_id: 1234abcd-1234-abcd-1234-1234abcd1234 + created_at: "2023-01-01T12:00:00.000000" + dataset_type: actual + error_messages: [] + export_name: dd-actual-export + export_path: dd-export-path + id: "123456789123" + months: 36 + scope: /subscriptions/1234abcd-1234-abcd-1234-1234abcd1234 + status: active + status_updated_at: "2023-01-01T12:00:00.000000" + storage_account: dd-storage-account + storage_container: dd-storage-container + updated_at: "2023-01-01T12:00:00.000000" + id: "123456789123" + type: azure_uc_configs schema: - $ref: "#/components/schemas/CIAppGitHubAccountsResponse" + $ref: "#/components/schemas/AzureUCConfigsResponse" description: OK - "400": - $ref: "#/components/responses/BadRequestResponse" "403": - $ref: "#/components/responses/NotAuthorizedResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - integrations_read - summary: List GitHub CI Visibility status - tags: ["CI Visibility GitHub Accounts"] - x-permission: + - cloud_cost_management_read + summary: List Cloud Cost Management Azure configs + tags: + - Cloud Cost Management + "x-permission": operator: OR permissions: - - integrations_read - patch: - description: |- - Enable or disable CI Visibility for a GitHub account, one of its repositories, or both in the same request. - The account (and, optionally, repository) are identified by name. Account-level and repository-level - changes are independent and may both be supplied in the same request. At least one of `enabled` or - `repository.enabled` must be provided. If the account name matches installations on more than one host, - `host` must be supplied to disambiguate, otherwise a 409 is returned. Returns a 404 if the CI Visibility - GitHub integration is not enabled for this organization, or if the given account or repository cannot be - found by name. - operationId: UpdateCIAppGitHubAccount + - cloud_cost_management_read + post: + description: Create a Cloud Cost Management account for an Azure config. + operationId: CreateCostAzureUCConfigs requestBody: content: application/json: @@ -142833,15 +152980,22 @@ paths: value: data: attributes: - account: datadog - enabled: true - host: github.com - repository: - enabled: true - name: shopist - type: ci_github_account + account_id: 1234abcd-1234-abcd-1234-1234abcd1234 + actual_bill_config: + export_name: dd-actual-export + export_path: dd-export-path + storage_account: dd-storage-account + storage_container: dd-storage-container + amortized_bill_config: + export_name: dd-actual-export + export_path: dd-export-path + storage_account: dd-storage-account + storage_container: dd-storage-container + client_id: 1234abcd-1234-abcd-1234-1234abcd1234 + scope: /subscriptions/1234abcd-1234-abcd-1234-1234abcd1234 + type: azure_uc_config_post_request schema: - $ref: "#/components/schemas/CIAppGitHubAccountUpdateRequest" + $ref: "#/components/schemas/AzureUCConfigPostRequest" required: true responses: "200": @@ -142852,265 +153006,98 @@ paths: value: data: attributes: - account: datadog - enabled: true - host: github.com - repo_count: 2 - repositories: - - enabled: true - name: shopist - - enabled: false - name: dd-source - id: github.com/datadog - type: ci_github_account + configs: + - account_id: 1234abcd-1234-abcd-1234-1234abcd1234 + client_id: 1234abcd-1234-abcd-1234-1234abcd1234 + created_at: "2023-01-01T12:00:00.000000" + dataset_type: actual + error_messages: [] + export_name: dd-actual-export + export_path: dd-export-path + id: "123456789123" + months: 36 + scope: /subscriptions/1234abcd-1234-abcd-1234-1234abcd1234 + status: active + status_updated_at: "2023-01-01T12:00:00.000000" + storage_account: dd-storage-account + storage_container: dd-storage-container + updated_at: "2023-01-01T12:00:00.000000" + id: "123456789123" + type: azure_uc_configs schema: - $ref: "#/components/schemas/CIAppGitHubAccountResponse" + $ref: "#/components/schemas/AzureUCConfigPairsResponse" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request "403": - $ref: "#/components/responses/NotAuthorizedResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" - "409": - $ref: "#/components/responses/ConflictResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - ci_provider_settings_write - summary: Update GitHub CI Visibility status - tags: ["CI Visibility GitHub Accounts"] - x-codegen-request-body-name: body - x-permission: + - cloud_cost_management_write + summary: Create Cloud Cost Management Azure configs + tags: + - Cloud Cost Management + "x-permission": operator: OR permissions: - - ci_provider_settings_write - /api/v2/ci/pipeline: - post: - description: |- - Send your pipeline event to your Datadog platform over HTTP. For details about how pipeline executions are modeled and what execution types we support, see [Pipeline Data Model And Execution Types](https://docs.datadoghq.com/continuous_integration/guides/pipeline_data_model/). - - Multiple events can be sent in an array (up to 1000). - - Pipeline events can be submitted with a timestamp that is up to 18 hours in the past. - The duration between the event start and end times cannot exceed 1 year. - operationId: CreateCIAppPipelineEvent - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - resource: - end: "2024-11-25T20:08:11.018Z" - git: - author_email: john.doe@email.com - repository_url: https://github.com/organization/example-repository - sha: 7f263865994b76066c4612fd1965215e7dcb4cd2 - level: pipeline - name: Deploy to AWS - partial_retry: false - start: "2024-11-25T20:06:41.018Z" - status: success - unique_id: 3eacb6f3-ff04-4e10-8a9c-46e6d054024a - url: https://my-ci-provider.example/pipelines/my-pipeline/run/1 - type: cipipeline_resource_request - schema: - $ref: "#/components/schemas/CIAppCreatePipelineEventRequest" - required: true + - cloud_cost_management_write + /api/v2/cost/azure_uc_config/{cloud_account_id}: + delete: + description: Archive a Cloud Cost Management Account. + operationId: DeleteCostAzureUCConfig + parameters: + - $ref: "#/components/parameters/CloudAccountID" responses: - "202": - content: - application/json: - examples: - default: - value: {} - schema: - type: object - description: Request accepted for processing + "204": + description: No Content "400": content: application/json: schema: - $ref: "#/components/schemas/HTTPCIAppErrors" + $ref: "#/components/schemas/APIErrorResponse" description: Bad Request - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/HTTPCIAppErrors" - description: Unauthorized - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/HTTPCIAppErrors" - description: Forbidden - "408": - content: - application/json: - schema: - $ref: "#/components/schemas/HTTPCIAppErrors" - description: Request Timeout - "413": - content: - application/json: - schema: - $ref: "#/components/schemas/HTTPCIAppErrors" - description: Payload Too Large - "429": - content: - application/json: - schema: - $ref: "#/components/schemas/HTTPCIAppErrors" - description: Too Many Requests - "500": - content: - application/json: - schema: - $ref: "#/components/schemas/HTTPCIAppErrors" - description: Internal Server Error - "503": - content: - application/json: - schema: - $ref: "#/components/schemas/HTTPCIAppErrors" - description: Service Unavailable - security: - - apiKeyAuth: [] - summary: Send pipeline event - tags: ["CI Visibility Pipelines"] - x-codegen-request-body-name: body - /api/v2/ci/pipelines/analytics/aggregate: - post: - description: |- - Use this API endpoint to aggregate CI Visibility pipeline events into buckets of computed metrics and timeseries. - operationId: AggregateCIAppPipelineEvents - requestBody: - content: - "application/json": - examples: - default: - value: - compute: - - aggregation: pc90 - interval: 5m - metric: "@duration" - type: timeseries - filter: - from: now-15m - query: "@ci.provider.name:github AND @ci.status:error" - to: now - group_by: - - facet: "@ci.status" - histogram: - interval: 10 - max: 100 - min: 50 - sort: - aggregation: count - order: asc - options: - timezone: GMT - schema: - $ref: "#/components/schemas/CIAppPipelinesAggregateRequest" - required: true - responses: - "200": + "404": content: application/json: - examples: - default: - value: - data: - buckets: - - by: - "@ci.status": error - computes: - pc90: - - time: "2020-06-08T11:55:00.123Z" - value: 2345 schema: - $ref: "#/components/schemas/CIAppPipelinesAnalyticsAggregateResponse" - description: OK - "400": - $ref: "#/components/responses/BadRequestResponse" - "403": - $ref: "#/components/responses/NotAuthorizedResponse" + $ref: "#/components/schemas/APIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - ci_visibility_read - summary: Aggregate pipelines events - tags: ["CI Visibility Pipelines"] - x-codegen-request-body-name: body + - cloud_cost_management_write + summary: Delete Cloud Cost Management Azure config + tags: + - Cloud Cost Management "x-permission": operator: OR permissions: - - ci_visibility_read - /api/v2/ci/pipelines/events: + - cloud_cost_management_write get: - description: |- - List endpoint returns CI Visibility pipeline events that match a [search query](https://docs.datadoghq.com/continuous_integration/explorer/search_syntax/). - [Results are paginated similarly to logs](https://docs.datadoghq.com/logs/guide/collect-multiple-logs-with-pagination). - - Use this endpoint to see your latest pipeline events. - operationId: ListCIAppPipelineEvents + description: Get a specific Azure config. + operationId: GetCostAzureUCConfig parameters: - - description: Search query following log syntax. - example: "@ci.provider.name:github @ci.pipeline.name:Pull Request Labeler" - in: query - name: filter[query] - required: false - schema: - type: string - - description: Minimum timestamp for requested events. - example: "2019-01-02T09:42:36.320Z" - in: query - name: filter[from] - required: false - schema: - format: date-time - type: string - - description: Maximum timestamp for requested events. - example: "2019-01-03T09:42:36.320Z" - in: query - name: filter[to] - required: false - schema: - format: date-time - type: string - - description: Order of events in results. - in: query - name: sort - required: false - schema: - $ref: "#/components/schemas/CIAppSort" - - description: |- - List following results with a cursor provided in the previous query. - example: "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" - in: query - name: page[cursor] - required: false - schema: - type: string - - description: Maximum number of events in the response. - example: 25 - in: query - name: page[limit] - required: false + - description: The unique identifier of the cloud account + in: path + name: cloud_account_id + required: true schema: - default: 10 - format: int32 - maximum: 1000 + format: int64 type: integer responses: "200": @@ -143119,61 +153106,57 @@ paths: examples: default: value: - data: [] - meta: - page: {} + data: + attributes: + configs: + - account_id: 1234abcd-1234-abcd-1234-1234abcd1234 + client_id: 1234abcd-1234-abcd-1234-1234abcd1234 + created_at: "2023-01-01T12:00:00.000000" + dataset_type: actual + error_messages: [] + export_name: dd-actual-export + export_path: dd-export-path + id: "123456789123" + months: 36 + scope: /subscriptions/1234abcd-1234-abcd-1234-1234abcd1234 + status: active + status_updated_at: "2023-01-01T12:00:00.000000" + storage_account: dd-storage-account + storage_container: dd-storage-container + updated_at: "2023-01-01T12:00:00.000000" + id: "123456789123" + type: azure_uc_configs schema: - $ref: "#/components/schemas/CIAppPipelineEventsResponse" + $ref: "#/components/schemas/UCConfigPair" description: OK - "400": - $ref: "#/components/responses/BadRequestResponse" - "403": - $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - ci_visibility_read - summary: Get a list of pipelines events - tags: ["CI Visibility Pipelines"] - x-pagination: - cursorParam: page[cursor] - cursorPath: meta.page.after - limitParam: page[limit] - resultsPath: data - "x-permission": - operator: OR - permissions: - - ci_visibility_read - /api/v2/ci/pipelines/events/search: - post: - description: |- - List endpoint returns CI Visibility pipeline events that match a [search query](https://docs.datadoghq.com/continuous_integration/explorer/search_syntax/). - [Results are paginated similarly to logs](https://docs.datadoghq.com/logs/guide/collect-multiple-logs-with-pagination). - - Use this endpoint to build complex events filtering and search. - operationId: SearchCIAppPipelineEvents + - cloud_cost_management_read + summary: Get cost Azure UC config + tags: + - Cloud Cost Management + patch: + description: Update the status of an Azure config (active/archived). + operationId: UpdateCostAzureUCConfigs + parameters: + - $ref: "#/components/parameters/CloudAccountID" requestBody: content: - "application/json": + application/json: examples: default: value: - filter: - from: now-15m - query: "@ci.provider.name:github AND @ci.status:error" - to: now - options: - timezone: GMT - page: - cursor: eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ== - limit: 25 - sort: timestamp + data: + attributes: + is_enabled: true + type: azure_uc_config_patch_request schema: - $ref: "#/components/schemas/CIAppPipelineEventsRequest" - required: false + $ref: "#/components/schemas/AzureUCConfigPatchRequest" + required: true responses: "200": content: @@ -143182,50 +153165,64 @@ paths: default: value: data: - - attributes: - attributes: - duration: 2345 - ci_level: pipeline - tags: - - team:backend - id: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA - type: cipipeline - meta: - elapsed: 132 - request_id: MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR - status: done + attributes: + configs: + - account_id: 1234abcd-1234-abcd-1234-1234abcd1234 + client_id: 1234abcd-1234-abcd-1234-1234abcd1234 + created_at: "2023-01-01T12:00:00.000000" + dataset_type: actual + error_messages: [] + export_name: dd-actual-export + export_path: dd-export-path + id: "123456789123" + months: 36 + scope: /subscriptions/1234abcd-1234-abcd-1234-1234abcd1234 + status: active + status_updated_at: "2023-01-01T12:00:00.000000" + storage_account: dd-storage-account + storage_container: dd-storage-container + updated_at: "2023-01-01T12:00:00.000000" + id: "123456789123" + type: azure_uc_configs schema: - $ref: "#/components/schemas/CIAppPipelineEventsResponse" + $ref: "#/components/schemas/AzureUCConfigPairsResponse" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request "403": - $ref: "#/components/responses/NotAuthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - ci_visibility_read - summary: Search pipelines events - tags: ["CI Visibility Pipelines"] - x-codegen-request-body-name: body - x-pagination: - cursorParam: body.page.cursor - cursorPath: meta.page.after - limitParam: body.page.limit - resultsPath: data + - cloud_cost_management_write + summary: Update Cloud Cost Management Azure config + tags: + - Cloud Cost Management "x-permission": operator: OR permissions: - - ci_visibility_read - /api/v2/ci/test-optimization/settings/policies: - patch: - description: |- - Partially update Flaky Tests Management repository-level policies for the given repository. - Only provided policy blocks are updated; omitted blocks are left unchanged. - operationId: UpdateFlakyTestsManagementPolicies + - cloud_cost_management_write + /api/v2/cost/budget: + put: + description: Create a new budget or update an existing one. + operationId: UpsertBudget requestBody: content: application/json: @@ -143234,31 +153231,20 @@ paths: value: data: attributes: - attempt_to_fix: - retries: 3 - disabled: - enabled: false - quarantined: - auto_quarantine_rule: - enabled: true - window_seconds: 3600 - branch_rule: - branches: - - main - enabled: true - excluded_branches: [] - excluded_test_services: [] - enabled: true - failure_rate_rule: - branches: - - main - enabled: true - min_runs: 10 - threshold: 0.5 - repository_id: "github.com/example-org/example-repo" - type: test_optimization_update_flaky_tests_management_policies_request + created_at: 1738258683590 + created_by: 00000000-0a0a-0a0a-aaa0-00000000000a + end_month: 202502 + metrics_query: aws.cost.amortized{service:ec2} by {service} + name: my budget + org_id: 123 + start_month: 202501 + total_amount: 1000 + updated_at: 1738258683590 + updated_by: 00000000-0a0a-0a0a-aaa0-00000000000a + id: 00000000-0a0a-0a0a-aaa0-00000000000a + type: "" schema: - $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesUpdateRequest" + $ref: "#/components/schemas/BudgetWithEntries" required: true responses: "200": @@ -143269,16 +153255,29 @@ paths: value: data: attributes: - repository_id: github.com/datadog/test-service - id: github.com/datadog/test-service - type: test_optimization_flaky_tests_management_policies + created_at: 1738258683590 + created_by: 00000000-0a0a-0a0a-aaa0-00000000000a + end_month: 202502 + entries: + - amount: 500 + month: 202501 + tag_filters: + - tag_key: service + tag_value: ec2 + metrics_query: aws.cost.amortized{service:ec2} by {service} + name: my budget + org_id: 123 + start_month: 202501 + total_amount: 1000 + updated_at: 1738258683590 + updated_by: 00000000-0a0a-0a0a-aaa0-00000000000a + id: 00000000-0a0a-0a0a-aaa0-00000000000a + type: budget schema: - $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesResponse" + $ref: "#/components/schemas/BudgetWithEntries" description: OK "400": $ref: "#/components/responses/BadRequestResponse" - "403": - $ref: "#/components/responses/NotAuthorizedResponse" "404": $ref: "#/components/responses/NotFoundResponse" "429": @@ -143286,19 +153285,36 @@ paths: security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: - - test_optimization_settings_write - summary: Update Flaky Tests Management policies - tags: ["Test Optimization"] - x-codegen-request-body-name: body - x-permission: - operator: OR - permissions: - - test_optimization_settings_write + - AuthZ: [] + summary: Create or update a budget + tags: + - Cloud Cost Management + /api/v2/cost/budget/csv/validate: post: + operationId: ValidateCsvBudget + responses: + "200": + content: + application/json: + examples: + default: + value: + errors: [] + schema: + $ref: "#/components/schemas/ValidationResponse" + description: OK + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: [] + summary: Validate CSV budget + tags: + - Cloud Cost Management + /api/v2/cost/budget/custom-forecast: + put: description: |- - Retrieve Flaky Tests Management repository-level policies for the given repository. - operationId: GetFlakyTestsManagementPolicies + Create or replace the custom forecast for an existing budget. + Pass an empty `entries` list to delete the custom forecast for the budget. + operationId: UpsertCustomForecast requestBody: content: application/json: @@ -143307,10 +153323,22 @@ paths: value: data: attributes: - repository_id: "github.com/example-org/example-repo" - type: test_optimization_get_flaky_tests_management_policies_request + budget_uid: 00000000-0000-0000-0000-000000000001 + entries: + - amount: 400 + month: 202501 + tag_filters: + - tag_key: service + tag_value: ec2 + - amount: 450 + month: 202502 + tag_filters: + - tag_key: service + tag_value: ec2 + id: "" + type: custom_forecast schema: - $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesGetRequest" + $ref: "#/components/schemas/CustomForecastUpsertRequest" required: true responses: "200": @@ -143321,16 +153349,29 @@ paths: value: data: attributes: - repository_id: github.com/datadog/test-service - id: github.com/datadog/test-service - type: test_optimization_flaky_tests_management_policies + budget_uid: 00000000-0000-0000-0000-000000000001 + created_at: 1738258683590 + created_by: 00000000-0a0a-0a0a-aaa0-00000000000a + entries: + - amount: 400 + month: 202501 + tag_filters: + - tag_key: service + tag_value: ec2 + - amount: 450 + month: 202502 + tag_filters: + - tag_key: service + tag_value: ec2 + updated_at: 1738258683590 + updated_by: 00000000-0a0a-0a0a-aaa0-00000000000a + id: 11111111-1111-1111-1111-111111111111 + type: custom_forecast schema: - $ref: "#/components/schemas/TestOptimizationFlakyTestsManagementPoliciesResponse" + $ref: "#/components/schemas/CustomForecastResponse" description: OK "400": $ref: "#/components/responses/BadRequestResponse" - "403": - $ref: "#/components/responses/NotAuthorizedResponse" "404": $ref: "#/components/responses/NotFoundResponse" "429": @@ -143338,20 +153379,14 @@ paths: security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: - - test_optimization_read - summary: Get Flaky Tests Management policies - tags: ["Test Optimization"] - x-codegen-request-body-name: body - x-permission: - operator: OR - permissions: - - test_optimization_read - /api/v2/ci/test-optimization/settings/service: - delete: - description: |- - Delete Test Optimization settings for a specific service identified by repository, service name, and environment. - operationId: DeleteTestOptimizationServiceSettings + - AuthZ: [] + summary: Create or replace a budget's custom forecast + tags: + - Cloud Cost Management + /api/v2/cost/budget/validate: + post: + description: Validate a budget configuration without creating or modifying it + operationId: ValidateBudget requestBody: content: application/json: @@ -143360,20 +153395,158 @@ paths: value: data: attributes: - env: prod - repository_id: github.com/datadog/test-service - service_name: test-service - type: test_optimization_delete_service_settings_request + created_at: 1738258683590 + created_by: 00000000-0a0a-0a0a-aaa0-00000000000a + end_month: 202502 + entries: + - amount: 500 + month: 202501 + tag_filters: + - tag_key: service + tag_value: ec2 + - amount: 500 + month: 202502 + tag_filters: + - tag_key: service + tag_value: ec2 + metrics_query: aws.cost.amortized{service:ec2} by {service} + name: my budget + org_id: 123 + start_month: 202501 + total_amount: 1000 + updated_at: 1738258683590 + updated_by: 00000000-0a0a-0a0a-aaa0-00000000000a + id: "1" + type: budget schema: - $ref: "#/components/schemas/TestOptimizationDeleteServiceSettingsRequest" + $ref: "#/components/schemas/BudgetValidationRequest" required: true + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + errors: [] + valid: true + id: budget_validation + type: budget_validation + schema: + $ref: "#/components/schemas/BudgetValidationResponse" + description: OK + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Validate budget + tags: + - Cloud Cost Management + /api/v2/cost/budget/{budget_id}: + delete: + description: Delete a budget + operationId: DeleteBudget + parameters: + - $ref: "#/components/parameters/BudgetID" responses: "204": description: No Content + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Delete budget + tags: + - Cloud Cost Management + get: + description: Get a budget by ID. Pass `actual=true` or `forecast=true` to include cost data in the response. Use `start` and `end` (millisecond epochs, both required) to set the cost window. When `forecast=true`, each entry also includes `ootb_forecast` (the ML forecast before overrides) and `custom_forecast` (`null` if no override is set, a number if one is). + operationId: GetBudget + parameters: + - $ref: "#/components/parameters/BudgetID" + - description: When `true`, includes actual cost data in the response. + in: query + name: actual + required: false + schema: + type: boolean + - description: When `true`, includes forecast cost data in the response, including `ootb_forecast` and `custom_forecast` per entry. + in: query + name: forecast + required: false + schema: + type: boolean + - description: Start of the cost window in milliseconds since epoch. Must be used together with `end`. + in: query + name: start + required: false + schema: + format: int64 + type: integer + - description: End of the cost window in milliseconds since epoch. Must be used together with `start`. + in: query + name: end + required: false + schema: + format: int64 + type: integer + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + costs: + actual: 850.25 + amount: 1000.0 + forecast: 1100.5 + ootb_forecast: 1100.5 + costs_period_end: 1740873600000 + costs_period_start: 1738281600000 + costs_unit: + family: currency + id: 42 + name: dollar + plural: dollars + scale_factor: 1.0 + short_name: $ + created_at: 1738258683590 + created_by: 00000000-0a0a-0a0a-aaa0-00000000000a + end_month: 202502 + entries: + - amount: 500 + costs: + actual: 425.5 + amount: 500.0 + custom_forecast: + forecast: 550.25 + ootb_forecast: 550.25 + month: 202501 + tag_filters: + - tag_key: service + tag_value: ec2 + metrics_query: aws.cost.amortized{service:ec2} by {service} + name: my budget + org_id: 123 + start_month: 202501 + total_amount: 1000 + updated_at: 1738258683590 + updated_by: 00000000-0a0a-0a0a-aaa0-00000000000a + id: 00000000-0a0a-0a0a-aaa0-00000000000a + type: budget + schema: + $ref: "#/components/schemas/BudgetWithEntries" + description: OK "400": $ref: "#/components/responses/BadRequestResponse" - "403": - $ref: "#/components/responses/NotAuthorizedResponse" "404": $ref: "#/components/responses/NotFoundResponse" "429": @@ -143381,70 +153554,21 @@ paths: security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: - - test_optimization_settings_write - summary: Delete Test Optimization service settings - tags: ["Test Optimization"] - x-codegen-request-body-name: body - x-permission: - operator: OR - permissions: - - test_optimization_settings_write - patch: - description: |- - Partially update Test Optimization settings for a specific service identified by repository, service name, and environment. - Only provided fields are updated; setting a field to `null` is a no-op. - To reset a setting to inherit from the repository level, use the corresponding `_inherit` field. - The `pr_comments_enabled` field is ignored as it cannot be overridden at the service level. - operationId: UpdateTestOptimizationServiceSettings - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - env: prod - repository_id: github.com/datadog/test-service - service_name: test-service - test_impact_analysis_enabled_inherit: true - type: test_optimization_update_service_settings_request - schema: - $ref: "#/components/schemas/TestOptimizationUpdateServiceSettingsRequest" - required: true + - AuthZ: [] + summary: Get budget + tags: + - Cloud Cost Management + /api/v2/cost/budget/{budget_id}/custom-forecast: + delete: + description: Delete the custom forecast for a budget. + operationId: DeleteCustomForecast + parameters: + - $ref: "#/components/parameters/BudgetID" responses: - "200": - content: - application/json: - examples: - default: - value: - data: - attributes: - auto_test_retries_enabled: false - auto_test_retries_enabled_is_overridden: false - code_coverage_enabled: false - code_coverage_enabled_is_overridden: false - early_flake_detection_enabled: false - early_flake_detection_enabled_is_overridden: false - env: prod - failed_test_replay_enabled: false - failed_test_replay_enabled_is_overridden: false - pr_comments_enabled: false - repository_id: github.com/datadog/test-service - service_name: test-service - test_impact_analysis_enabled: true - test_impact_analysis_enabled_is_overridden: true - id: 9b8a7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d - type: test_optimization_service_settings - schema: - $ref: "#/components/schemas/TestOptimizationServiceSettingsResponse" - description: OK + "204": + description: No Content "400": $ref: "#/components/responses/BadRequestResponse" - "403": - $ref: "#/components/responses/NotAuthorizedResponse" "404": $ref: "#/components/responses/NotFoundResponse" "429": @@ -143452,34 +153576,15 @@ paths: security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: - - test_optimization_settings_write - summary: Update Test Optimization service settings - tags: ["Test Optimization"] - x-codegen-request-body-name: body - x-permission: - operator: OR - permissions: - - test_optimization_settings_write - post: - description: |- - Retrieve Test Optimization settings for a specific service identified by repository, service name, and environment. - operationId: GetTestOptimizationServiceSettings - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - env: prod - repository_id: github.com/datadog/test-service - service_name: test-service - type: test_optimization_get_service_settings_request - schema: - $ref: "#/components/schemas/TestOptimizationGetServiceSettingsRequest" - required: true + - AuthZ: [] + summary: Delete a budget's custom forecast + tags: + - Cloud Cost Management + get: + description: Get the custom forecast for a budget. + operationId: GetCustomForecast + parameters: + - $ref: "#/components/parameters/BudgetID" responses: "200": content: @@ -143489,29 +153594,29 @@ paths: value: data: attributes: - auto_test_retries_enabled: false - auto_test_retries_enabled_is_overridden: false - code_coverage_enabled: false - code_coverage_enabled_is_overridden: false - early_flake_detection_enabled: false - early_flake_detection_enabled_is_overridden: false - env: prod - failed_test_replay_enabled: false - failed_test_replay_enabled_is_overridden: false - pr_comments_enabled: false - repository_id: github.com/datadog/test-service - service_name: test-service - test_impact_analysis_enabled: true - test_impact_analysis_enabled_is_overridden: true - id: 9b8a7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d - type: test_optimization_service_settings + budget_uid: 00000000-0000-0000-0000-000000000001 + created_at: 1738258683590 + created_by: 00000000-0a0a-0a0a-aaa0-00000000000a + entries: + - amount: 400 + month: 202501 + tag_filters: + - tag_key: service + tag_value: ec2 + - amount: 450 + month: 202502 + tag_filters: + - tag_key: service + tag_value: ec2 + updated_at: 1738258683590 + updated_by: 00000000-0a0a-0a0a-aaa0-00000000000a + id: 11111111-1111-1111-1111-111111111111 + type: custom_forecast schema: - $ref: "#/components/schemas/TestOptimizationServiceSettingsResponse" + $ref: "#/components/schemas/CustomForecastResponse" description: OK "400": $ref: "#/components/responses/BadRequestResponse" - "403": - $ref: "#/components/responses/NotAuthorizedResponse" "404": $ref: "#/components/responses/NotFoundResponse" "429": @@ -143519,49 +153624,14 @@ paths: security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: - - test_optimization_read - summary: Get Test Optimization service settings - tags: ["Test Optimization"] - x-codegen-request-body-name: body - x-permission: - operator: OR - permissions: - - test_optimization_read - /api/v2/ci/tests/analytics/aggregate: - post: - description: |- - The API endpoint to aggregate CI Visibility test events into buckets of computed metrics and timeseries. - operationId: AggregateCIAppTestEvents - requestBody: - content: - "application/json": - examples: - default: - value: - compute: - - aggregation: pc90 - interval: 5m - metric: "@duration" - type: timeseries - filter: - from: now-15m - query: "@test.service:web-tests AND @test.status:fail" - to: now - group_by: - - facet: "@test.service" - histogram: - interval: 10 - max: 100 - min: 50 - sort: - aggregation: count - order: asc - options: - timezone: GMT - schema: - $ref: "#/components/schemas/CIAppTestsAggregateRequest" - required: true + - AuthZ: [] + summary: Get a budget's custom forecast + tags: + - Cloud Cost Management + /api/v2/cost/budgets: + get: + description: List budgets. + operationId: ListBudgets responses: "200": content: @@ -143570,93 +153640,42 @@ paths: default: value: data: - buckets: - - by: - "@test.service": web-tests - computes: - pc90: - - time: "2020-06-08T11:55:00.123Z" - value: 2345 + - attributes: + created_at: 1741011342772 + created_by: user1 + end_month: 202502 + metrics_query: aws.cost.amortized{service:ec2} by {service} + name: my budget + org_id: 123 + start_month: 202501 + total_amount: 1000 + updated_at: 1741011342772 + updated_by: user2 + id: 00000000-0a0a-0a0a-aaa0-00000000000a + type: budget schema: - $ref: "#/components/schemas/CIAppTestsAnalyticsAggregateResponse" + $ref: "#/components/schemas/BudgetArray" description: OK - "400": - $ref: "#/components/responses/BadRequestResponse" - "403": - $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: - - ci_visibility_read - - AuthZ: - - test_optimization_read - summary: Aggregate tests events - tags: ["CI Visibility Tests"] - x-codegen-request-body-name: body - "x-permission": - operator: OR - permissions: - - ci_visibility_read - - test_optimization_read - /api/v2/ci/tests/events: + - AuthZ: [] + summary: List budgets + tags: + - Cloud Cost Management + /api/v2/cost/commitments/commitment-list: get: - description: |- - List endpoint returns CI Visibility test events that match a [search query](https://docs.datadoghq.com/continuous_integration/explorer/search_syntax/). - [Results are paginated similarly to logs](https://docs.datadoghq.com/logs/guide/collect-multiple-logs-with-pagination). - - Use this endpoint to see your latest test events. - operationId: ListCIAppTestEvents + description: Get a list of individual cloud commitments (Reserved Instances or Savings Plans) with their utilization details. The response schema varies based on the provider, product, and commitment type. + operationId: GetCommitmentsCommitmentList parameters: - - description: Search query following log syntax. - example: "@test.name:test_foo @test.suite:github.com/DataDog/dd-go/model" - in: query - name: filter[query] - required: false - schema: - type: string - - description: Minimum timestamp for requested events. - example: "2019-01-02T09:42:36.320Z" - in: query - name: filter[from] - required: false - schema: - format: date-time - type: string - - description: Maximum timestamp for requested events. - example: "2019-01-03T09:42:36.320Z" - in: query - name: filter[to] - required: false - schema: - format: date-time - type: string - - description: Order of events in results. - in: query - name: sort - required: false - schema: - $ref: "#/components/schemas/CIAppSort" - - description: |- - List following results with a cursor provided in the previous query. - example: "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" - in: query - name: page[cursor] - required: false - schema: - type: string - - description: Maximum number of events in the response. - example: 25 - in: query - name: page[limit] - required: false - schema: - default: 10 - format: int32 - maximum: 1000 - type: integer + - $ref: "#/components/parameters/CommitmentsProvider" + - $ref: "#/components/parameters/CommitmentsProduct" + - $ref: "#/components/parameters/CommitmentsStart" + - $ref: "#/components/parameters/CommitmentsEnd" + - $ref: "#/components/parameters/CommitmentsFilterBy" + - $ref: "#/components/parameters/CommitmentsCommitmentType" responses: "200": content: @@ -143664,64 +153683,53 @@ paths: examples: default: value: - data: [] - meta: - page: {} + commitments: + - commitment_id: ri-0123456789abcdef0 + expiration_date: "2025-12-31T00:00:00Z" + instance_type: m5.xlarge + offering_class: standard + operating_system: Linux + purchase_option: All Upfront + region: us-east-1 + start_date: "2023-01-01T00:00:00Z" + term_length: 1 + utilization: 0.85 schema: - $ref: "#/components/schemas/CIAppTestEventsResponse" + $ref: "#/components/schemas/CommitmentsListResponse" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" - "403": - $ref: "#/components/responses/NotAuthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - ci_visibility_read - - AuthZ: - - test_optimization_read - summary: Get a list of tests events - tags: ["CI Visibility Tests"] - x-pagination: - cursorParam: page[cursor] - cursorPath: meta.page.after - limitParam: page[limit] - resultsPath: data + - cloud_cost_management_read + summary: Get commitments list + tags: + - Cloud Cost Management "x-permission": operator: OR permissions: - - ci_visibility_read - - test_optimization_read - /api/v2/ci/tests/events/search: - post: - description: |- - List endpoint returns CI Visibility test events that match a [search query](https://docs.datadoghq.com/continuous_integration/explorer/search_syntax/). - [Results are paginated similarly to logs](https://docs.datadoghq.com/logs/guide/collect-multiple-logs-with-pagination). - - Use this endpoint to build complex events filtering and search. - operationId: SearchCIAppTestEvents - requestBody: - content: - "application/json": - examples: - default: - value: - filter: - from: now-15m - query: "@test.service:web-tests AND @test.status:fail" - to: now - options: - timezone: GMT - page: - cursor: eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ== - limit: 25 - sort: timestamp - schema: - $ref: "#/components/schemas/CIAppTestEventsRequest" - required: false + - cloud_cost_management_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/cost/commitments/coverage/scalar: + get: + description: Get scalar coverage metrics for cloud commitment programs, including hours and cost coverage percentages. + operationId: GetCommitmentsCoverageScalar + parameters: + - $ref: "#/components/parameters/CommitmentsProvider" + - $ref: "#/components/parameters/CommitmentsProduct" + - $ref: "#/components/parameters/CommitmentsStart" + - $ref: "#/components/parameters/CommitmentsEnd" + - $ref: "#/components/parameters/CommitmentsFilterBy" responses: "200": content: @@ -143729,54 +153737,59 @@ paths: examples: default: value: - data: - - attributes: - attributes: - duration: 2345 - tags: - - team:backend - test_level: test - id: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA - type: citest - links: - next: https://app.datadoghq.com/api/v2/ci/tests/events?page[cursor]=eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ== - meta: - elapsed: 132 - request_id: MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR - status: done + columns: + - name: service + type: group + values: + - - ec2 + - meta: + unit: + family: percentage + id: 17 + name: percent + plural: percent + scale_factor: 1 + short_name: "%" + name: hours_coverage + type: number + values: + - 0.78 schema: - $ref: "#/components/schemas/CIAppTestEventsResponse" + $ref: "#/components/schemas/CommitmentsCoverageScalarResponse" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" - "403": - $ref: "#/components/responses/NotAuthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - ci_visibility_read - - AuthZ: - - test_optimization_read - summary: Search tests events - tags: ["CI Visibility Tests"] - x-codegen-request-body-name: body - x-pagination: - cursorParam: body.page.cursor - cursorPath: meta.page.after - limitParam: body.page.limit - resultsPath: data + - cloud_cost_management_read + summary: Get commitments coverage (scalar) + tags: + - Cloud Cost Management "x-permission": operator: OR permissions: - - ci_visibility_read - - test_optimization_read - /api/v2/cloud_auth/aws/persona_mapping: + - cloud_cost_management_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/cost/commitments/coverage/timeseries: get: - description: List all AWS cloud authentication persona mappings. This endpoint retrieves all configured persona mappings that associate AWS IAM principals with Datadog users. - operationId: ListAWSCloudAuthPersonaMappings + description: Get timeseries coverage metrics for cloud commitment programs, broken down by coverage type (Reserved Instances, Savings Plans, On-Demand, and Spot) for both hours and cost. + operationId: GetCommitmentsCoverageTimeseries + parameters: + - $ref: "#/components/parameters/CommitmentsProvider" + - $ref: "#/components/parameters/CommitmentsProduct" + - $ref: "#/components/parameters/CommitmentsStart" + - $ref: "#/components/parameters/CommitmentsEnd" + - $ref: "#/components/parameters/CommitmentsFilterBy" responses: "200": content: @@ -143784,15 +153797,42 @@ paths: examples: default: value: - data: - - attributes: - account_identifier: test@example.com - account_uuid: 00000000-0000-0000-0000-000000000001 - arn_pattern: "arn:aws:iam::123456789012:user/testuser" - id: abc-123 - type: aws_cloud_auth_config + cost: + series: + on_demand_only: + - 1000.0 + - 900.0 + ri: + - 3600.0 + - 3700.0 + sp: + - 400.0 + - 400.0 + spot_only: + - 50.0 + - 50.0 + times: + - 1693526400 + - 1693612800 + hours: + series: + on_demand_only: + - 500.0 + - 450.0 + ri: + - 1800.0 + - 1850.0 + sp: + - 200.0 + - 200.0 + spot_only: + - 100.0 + - 100.0 + times: + - 1693526400 + - 1693612800 schema: - $ref: "#/components/schemas/AWSCloudAuthPersonaMappingsResponse" + $ref: "#/components/schemas/CommitmentsCoverageTimeseriesResponse" description: OK "400": content: @@ -143800,115 +153840,174 @@ paths: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Bad Request - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: List AWS cloud authentication persona mappings + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cloud_cost_management_read + summary: Get commitments coverage (timeseries) tags: - - Cloud Authentication + - Cloud Cost Management + "x-permission": + operator: OR + permissions: + - cloud_cost_management_read x-unstable: |- - **Note**: This endpoint is in public beta and is subject to change. + **Note**: This endpoint is in preview and is subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - post: - description: Create an AWS cloud authentication persona mapping. This endpoint associates an AWS IAM principal with a Datadog user. - operationId: CreateAWSCloudAuthPersonaMapping - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - account_identifier: test@test.com - arn_pattern: arn:aws:iam::123456789012:user/testuser - type: aws_cloud_auth_config - schema: - $ref: "#/components/schemas/AWSCloudAuthPersonaMappingCreateRequest" - required: true + /api/v2/cost/commitments/on-demand-hot-spots/scalar: + get: + description: Get scalar on-demand hot-spots data for cloud commitment programs, showing per-dimension breakdowns of on-demand spending with coverage metrics and potential savings. + operationId: GetCommitmentsOnDemandHotspotsScalar + parameters: + - $ref: "#/components/parameters/CommitmentsProvider" + - $ref: "#/components/parameters/CommitmentsProduct" + - $ref: "#/components/parameters/CommitmentsStart" + - $ref: "#/components/parameters/CommitmentsEnd" + - $ref: "#/components/parameters/CommitmentsFilterBy" responses: - "201": + "200": content: application/json: examples: default: value: - data: - attributes: - account_identifier: test@example.com - account_uuid: 00000000-0000-0000-0000-000000000001 - arn_pattern: "arn:aws:iam::123456789012:user/testuser" - id: abc-123 - type: aws_cloud_auth_config + columns: + - name: service + type: group + values: + - - ec2 + - meta: + unit: + family: money + id: 1 + name: dollar + plural: dollars + scale_factor: 1 + short_name: "$" + name: on_demand_cost + type: number + values: + - 1500.0 + total: + - meta: + unit: + family: money + id: 1 + name: dollar + plural: dollars + scale_factor: 1 + short_name: "$" + name: on_demand_cost + type: number + values: + - 1500.0 schema: - $ref: "#/components/schemas/AWSCloudAuthPersonaMappingResponse" - description: Created + $ref: "#/components/schemas/CommitmentsOnDemandHotspotsScalarResponse" + description: OK "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Bad Request - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "409": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Conflict "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Create an AWS cloud authentication persona mapping + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cloud_cost_management_read + summary: Get commitments on-demand hot spots (scalar) tags: - - Cloud Authentication - x-codegen-request-body-name: body + - Cloud Cost Management + "x-permission": + operator: OR + permissions: + - cloud_cost_management_read x-unstable: |- - **Note**: This endpoint is in public beta and is subject to change. + **Note**: This endpoint is in preview and is subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/cloud_auth/aws/persona_mapping/{persona_mapping_id}: - delete: - description: Delete an AWS cloud authentication persona mapping by ID. This removes the association between an AWS IAM principal and a Datadog user. - operationId: DeleteAWSCloudAuthPersonaMapping + /api/v2/cost/commitments/savings/scalar: + get: + description: Get scalar savings metrics for cloud commitment programs, including realized savings and effective savings rate. + operationId: GetCommitmentsSavingsScalar parameters: - - $ref: "#/components/parameters/PersonaMappingID" + - $ref: "#/components/parameters/CommitmentsProvider" + - $ref: "#/components/parameters/CommitmentsProduct" + - $ref: "#/components/parameters/CommitmentsStart" + - $ref: "#/components/parameters/CommitmentsEnd" + - $ref: "#/components/parameters/CommitmentsFilterBy" responses: - "204": - description: No Content - "403": + "200": content: application/json: + examples: + default: + value: + columns: + - meta: + unit: + family: money + id: 1 + name: dollar + plural: dollars + scale_factor: 1 + short_name: "$" + name: realized_savings + type: number + values: + - 2500.0 + - meta: + unit: + family: percentage + id: 17 + name: percent + plural: percent + scale_factor: 1 + short_name: "%" + name: effective_savings_rate + type: number + values: + - 0.33 schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "404": + $ref: "#/components/schemas/CommitmentsSavingsScalarResponse" + description: OK + "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + description: Bad Request "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Delete an AWS cloud authentication persona mapping + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cloud_cost_management_read + summary: Get commitments savings (scalar) tags: - - Cloud Authentication + - Cloud Cost Management + "x-permission": + operator: OR + permissions: + - cloud_cost_management_read x-unstable: |- - **Note**: This endpoint is in public beta and is subject to change. + **Note**: This endpoint is in preview and is subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/cost/commitments/savings/timeseries: get: - description: Get a specific AWS cloud authentication persona mapping by ID. This endpoint retrieves a single configured persona mapping that associates an AWS IAM principal with a Datadog user. - operationId: GetAWSCloudAuthPersonaMapping + description: Get timeseries savings metrics for cloud commitment programs, including actual cost, on-demand equivalent cost, realized savings, and effective savings rate over time. + operationId: GetCommitmentsSavingsTimeseries parameters: - - $ref: "#/components/parameters/PersonaMappingID" + - $ref: "#/components/parameters/CommitmentsProvider" + - $ref: "#/components/parameters/CommitmentsProduct" + - $ref: "#/components/parameters/CommitmentsStart" + - $ref: "#/components/parameters/CommitmentsEnd" + - $ref: "#/components/parameters/CommitmentsFilterBy" responses: "200": content: @@ -143916,381 +154015,519 @@ paths: examples: default: value: - data: - attributes: - account_identifier: test@example.com - account_uuid: 00000000-0000-0000-0000-000000000001 - arn_pattern: "arn:aws:iam::123456789012:user/testuser" - id: abc-123 - type: aws_cloud_auth_config + actual_cost: + series: + total: + - 5000.0 + - 5200.0 + times: + - 1693526400 + - 1693612800 + unit: + family: money + id: 1 + name: dollar + plural: dollars + scale_factor: 1 + short_name: "$" + effective_savings_rate: + series: + total: + - 0.33 + - 0.33 + times: + - 1693526400 + - 1693612800 + on_demand_equivalent_cost: + series: + total: + - 7500.0 + - 7800.0 + times: + - 1693526400 + - 1693612800 + realized_savings: + series: + total: + - 2500.0 + - 2600.0 + times: + - 1693526400 + - 1693612800 schema: - $ref: "#/components/schemas/AWSCloudAuthPersonaMappingResponse" + $ref: "#/components/schemas/CommitmentsSavingsTimeseriesResponse" description: OK - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "404": + "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + description: Bad Request "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get an AWS cloud authentication persona mapping + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cloud_cost_management_read + summary: Get commitments savings (timeseries) tags: - - Cloud Authentication + - Cloud Cost Management + "x-permission": + operator: OR + permissions: + - cloud_cost_management_read x-unstable: |- - **Note**: This endpoint is in public beta and is subject to change. + **Note**: This endpoint is in preview and is subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/cloud_security_management/custom_frameworks: - post: - description: Create a custom framework. - operationId: CreateCustomFramework - requestBody: - content: - "application/json": - examples: - default: - value: - data: - attributes: - handle: sec2 - name: security-framework - requirements: - - controls: - - name: control - rules_id: - - def-000-be9 - name: criteria - version: "2" - type: custom_framework - schema: - $ref: "#/components/schemas/CreateCustomFrameworkRequest" - required: true + /api/v2/cost/commitments/utilization/scalar: + get: + description: Get scalar utilization metrics for cloud commitment programs, including utilization percentage and unused cost. + operationId: GetCommitmentsUtilizationScalar + parameters: + - $ref: "#/components/parameters/CommitmentsProvider" + - $ref: "#/components/parameters/CommitmentsProduct" + - $ref: "#/components/parameters/CommitmentsStart" + - $ref: "#/components/parameters/CommitmentsEnd" + - $ref: "#/components/parameters/CommitmentsFilterBy" + - $ref: "#/components/parameters/CommitmentsCommitmentType" responses: "200": content: - "application/json": + application/json: examples: default: value: - data: - attributes: - handle: sec2 - version: "2" - id: sec2-2 - type: custom_framework + columns: + - name: service + type: group + values: + - - ec2 + - - rds + - meta: + unit: + family: percentage + id: 17 + name: percent + plural: percent + scale_factor: 1 + short_name: "%" + name: utilization + type: number + values: + - 0.85 + - 0.72 schema: - $ref: "#/components/schemas/CreateCustomFrameworkResponse" + $ref: "#/components/schemas/CommitmentsUtilizationScalarResponse" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" - "409": - $ref: "#/components/responses/ConflictResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "429": $ref: "#/components/responses/TooManyRequestsResponse" - "500": - $ref: "#/components/responses/BadRequestResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - security_monitoring_rules_read - - security_monitoring_rules_write - summary: Create a custom framework - tags: ["Security Monitoring"] - x-codegen-request-body-name: body + - cloud_cost_management_read + summary: Get commitments utilization (scalar) + tags: + - Cloud Cost Management "x-permission": - operator: AND + operator: OR permissions: - - security_monitoring_rules_read - - security_monitoring_rules_write - /api/v2/cloud_security_management/custom_frameworks/{handle}/{version}: - delete: - description: Delete a custom framework. - operationId: DeleteCustomFramework + - cloud_cost_management_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/cost/commitments/utilization/timeseries: + get: + description: Get timeseries utilization metrics for cloud commitment programs, including used and unused cost series over time. + operationId: GetCommitmentsUtilizationTimeseries parameters: - - $ref: "#/components/parameters/CustomFrameworkHandle" - - $ref: "#/components/parameters/CustomFrameworkVersion" + - $ref: "#/components/parameters/CommitmentsProvider" + - $ref: "#/components/parameters/CommitmentsProduct" + - $ref: "#/components/parameters/CommitmentsStart" + - $ref: "#/components/parameters/CommitmentsEnd" + - $ref: "#/components/parameters/CommitmentsFilterBy" + - $ref: "#/components/parameters/CommitmentsCommitmentType" responses: "200": content: - "application/json": + application/json: examples: default: value: - data: - attributes: - handle: sec2 - name: security-framework - version: "2" - id: sec2-2 - type: custom_framework + series: + unused: + - 750.0 + - 600.0 + used: + - 4250.0 + - 4400.0 + times: + - 1693526400 + - 1693612800 + unit: + family: money + id: 1 + name: dollar + plural: dollars + scale_factor: 1 + short_name: "$" schema: - $ref: "#/components/schemas/DeleteCustomFrameworkResponse" + $ref: "#/components/schemas/CommitmentsUtilizationTimeseriesResponse" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "429": $ref: "#/components/responses/TooManyRequestsResponse" - "500": - $ref: "#/components/responses/BadRequestResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - security_monitoring_rules_read - - security_monitoring_rules_write - summary: Delete a custom framework - tags: ["Security Monitoring"] - x-codegen-request-body-name: body + - cloud_cost_management_read + summary: Get commitments utilization (timeseries) + tags: + - Cloud Cost Management "x-permission": - operator: AND + operator: OR permissions: - - security_monitoring_rules_read - - security_monitoring_rules_write + - cloud_cost_management_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/cost/custom_costs: get: - description: Get a custom framework. - operationId: GetCustomFramework + description: List the Custom Costs files. + operationId: ListCustomCostsFiles parameters: - - $ref: "#/components/parameters/CustomFrameworkHandle" - - $ref: "#/components/parameters/CustomFrameworkVersion" + - description: Page number for pagination + in: query + name: page[number] + schema: + format: int64 + type: integer + - description: Page size for pagination + in: query + name: page[size] + schema: + default: 100 + format: int64 + type: integer + - description: Filter by file status + in: query + name: filter[status] + schema: + type: string + - description: Filter files by name with case-insensitive substring matching. + in: query + name: filter[name] + schema: + type: string + - description: Filter by provider. + in: query + name: filter[provider] + schema: + items: + type: string + type: array + - description: Sort key with optional descending prefix + in: query + name: sort + schema: + default: created_at + type: string responses: "200": content: - "application/json": + application/json: examples: default: value: data: - attributes: - handle: sec2 - name: security-framework - requirements: - - controls: - - name: control - rules_id: - - def-000-be9 - name: criteria - version: "2" - id: sec2-2 - type: custom_framework + - attributes: + billed_cost: 100.5 + billing_currency: USD + charge_period: + end: 1706745600000 + start: 1704067200000 + name: my_file.json + provider_names: + - my_provider + status: active + uploaded_at: 1704067200000 + id: 00000000-0000-0000-0000-000000000005 + type: custom_costs + meta: + total_filtered_count: 1 + version: "1" + schema: + $ref: "#/components/schemas/CustomCostsFileListResponse" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request + "403": + content: + application/json: schema: - $ref: "#/components/schemas/GetCustomFrameworkResponse" - description: OK - "400": - $ref: "#/components/responses/BadRequestResponse" + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" - "500": - $ref: "#/components/responses/BadRequestResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - security_monitoring_rules_read - summary: Get a custom framework - tags: ["Security Monitoring"] - x-codegen-request-body-name: body + - cloud_cost_management_read + summary: List Custom Costs files + tags: + - Cloud Cost Management "x-permission": operator: OR permissions: - - security_monitoring_rules_read + - cloud_cost_management_read put: - description: Update a custom framework. - operationId: UpdateCustomFramework - parameters: - - $ref: "#/components/parameters/CustomFrameworkHandle" - - $ref: "#/components/parameters/CustomFrameworkVersion" + description: Upload a Custom Costs file. + operationId: UploadCustomCostsFile requestBody: content: - "application/json": + application/json: examples: default: value: - data: - attributes: - handle: sec2 - name: security-framework - requirements: - - controls: - - name: control - rules_id: - - def-000-be9 - name: criteria - version: "2" - type: custom_framework + - BilledCost: 100.5 + BillingCurrency: USD + ChargeDescription: Monthly usage charge for my service + ChargePeriodEnd: "2023-02-28" + ChargePeriodStart: "2023-02-01" schema: - $ref: "#/components/schemas/UpdateCustomFrameworkRequest" + $ref: "#/components/schemas/CustomCostsFileUploadRequest" required: true responses: - "200": + "202": content: - "application/json": + application/json: examples: default: value: data: attributes: - handle: sec2 - version: "2" - id: sec2-2 - type: custom_framework + billed_cost: 100.5 + billing_currency: USD + charge_period: + end: 1706745600000 + start: 1704067200000 + name: my_file.json + provider_names: + - my_provider + status: pending + uploaded_at: 1704067200000 + id: 00000000-0000-0000-0000-000000000006 + type: custom_costs + meta: + version: "1" schema: - $ref: "#/components/schemas/UpdateCustomFrameworkResponse" - description: OK + $ref: "#/components/schemas/CustomCostsFileUploadResponse" + description: Accepted "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" - "500": - $ref: "#/components/responses/BadRequestResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - security_monitoring_rules_read - - security_monitoring_rules_write - summary: Update a custom framework - tags: ["Security Monitoring"] - x-codegen-request-body-name: body + - cloud_cost_management_write + summary: Upload Custom Costs file + tags: + - Cloud Cost Management "x-permission": - operator: AND + operator: OR permissions: - - security_monitoring_rules_read - - security_monitoring_rules_write - /api/v2/cloud_security_management/resource_filters: + - cloud_cost_management_write + /api/v2/cost/custom_costs/{file_id}: + delete: + description: Delete the specified Custom Costs file. + operationId: DeleteCustomCostsFile + parameters: + - $ref: "#/components/parameters/FileID" + responses: + "204": + description: No Content + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cloud_cost_management_write + summary: Delete Custom Costs file + tags: + - Cloud Cost Management get: - description: List resource filters. - operationId: GetResourceEvaluationFilters + description: Fetch the specified Custom Costs file. + operationId: GetCustomCostsFile parameters: - - $ref: "#/components/parameters/ResourceFilterProvider" - - $ref: "#/components/parameters/ResourceFilterAccountID" - - $ref: "#/components/parameters/SkipCache" + - $ref: "#/components/parameters/FileID" responses: "200": content: - "application/json": + application/json: examples: default: value: data: attributes: - cloud_provider: - aws: - "123456789": - - environment:production - id: csm_resource_filter - type: csm_resource_filter + billed_cost: 100.5 + billing_currency: USD + charge_period: + end: 1706745600000 + start: 1704067200000 + content: + - BilledCost: 100.5 + BillingCurrency: USD + ChargeDescription: Monthly usage charge for my service + ChargePeriodEnd: "2023-02-28" + ChargePeriodStart: "2023-02-01" + name: my_file.json + provider_names: + - my_provider + status: active + uploaded_at: 1704067200000 + id: 00000000-0000-0000-0000-000000000007 + type: custom_costs + meta: + version: "1" schema: - $ref: "#/components/schemas/GetResourceEvaluationFiltersResponse" + $ref: "#/components/schemas/CustomCostsFileGetResponse" description: OK - "400": - $ref: "#/components/responses/BadRequestResponse" "403": - $ref: "#/components/responses/NotAuthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - security_monitoring_filters_read - summary: List resource filters - tags: ["Security Monitoring"] - "x-permission": - operator: OR - permissions: - - security_monitoring_filters_read - put: - description: Update resource filters. - operationId: UpdateResourceEvaluationFilters - requestBody: - content: - "application/json": - examples: - default: - value: - data: - attributes: - aws: - "123456789": - - environment:production - - team:devops - azure: - sub-001: - - app:frontend - gcp: - project-abc: - - region:us-central1 - id: csm_resource_filter - type: csm_resource_filter - schema: - $ref: "#/components/schemas/UpdateResourceEvaluationFiltersRequest" - required: true + - cloud_cost_management_read + summary: Get Custom Costs file + tags: + - Cloud Cost Management + /api/v2/cost/gcp_uc_config: + get: + description: List the Google Cloud Usage Cost configs. + operationId: ListCostGCPUsageCostConfigs responses: - "201": + "200": content: - "application/json": + application/json: examples: default: value: data: - attributes: - cloud_provider: - aws: - "123456789": - - environment:production - id: csm_resource_filter - type: csm_resource_filter + - attributes: + account_id: 123456_A123BC_12AB34 + bucket_name: dd-cost-bucket + created_at: "2023-01-01T12:00:00.000000" + dataset: billing + error_messages: [] + export_prefix: datadog_cloud_cost_usage_export + export_project_name: dd-cloud-cost-report + months: 36 + project_id: my-project-123 + service_account: dd-ccm-gcp-integration@my-environment.iam.gserviceaccount.com + status: active + status_updated_at: "2023-01-01T12:00:00.000000" + updated_at: "2023-01-01T12:00:00.000000" + id: "123456789123" + type: gcp_uc_config schema: - $ref: "#/components/schemas/UpdateResourceEvaluationFiltersResponse" + $ref: "#/components/schemas/GCPUsageCostConfigsResponse" description: OK - "400": - $ref: "#/components/responses/BadRequestResponse" "403": - $ref: "#/components/responses/NotAuthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - security_monitoring_filters_write - summary: Update resource filters - tags: ["Security Monitoring"] - x-codegen-request-body-name: body + - cloud_cost_management_read + summary: List Google Cloud Usage Cost configs + tags: + - Cloud Cost Management "x-permission": operator: OR permissions: - - security_monitoring_filters_write - /api/v2/cloudinventoryservice/syncconfigs: - put: - description: |- - Enable Storage Management for an S3 bucket, GCS bucket, or Azure container by registering the destination that holds its inventory reports. Set `data.id` to the cloud provider (`aws`, `gcp`, or `azure`) and provide the matching settings under data.attributes. Calling this endpoint with the same provider replaces the existing configuration. - operationId: UpsertSyncConfig + - cloud_cost_management_read + post: + description: Create a Cloud Cost Management account for an Google Cloud Usage Cost config. + operationId: CreateCostGCPUsageCostConfig requestBody: content: application/json: examples: default: - summary: AWS inventory bucket value: data: attributes: - aws: - aws_account_id: "123456789012" - destination_bucket_name: my-inventory-bucket - destination_bucket_region: us-east-1 - destination_prefix: logs/ - id: aws - type: cloud_provider + billing_account_id: 123456_A123BC_12AB34 + bucket_name: dd-cost-bucket + export_dataset_name: billing + export_prefix: datadog_cloud_cost_usage_export + export_project_name: dd-cloud-cost-report + service_account: dd-ccm-gcp-integration@my-environment.iam.gserviceaccount.com + type: gcp_uc_config_post_request schema: - $ref: "#/components/schemas/UpsertCloudInventorySyncConfigRequest" + $ref: "#/components/schemas/GCPUsageCostConfigPostRequest" required: true responses: "200": @@ -144301,80 +154538,96 @@ paths: value: data: attributes: - aws_account_id: "123456789012" - aws_bucket_name: my-inventory-bucket - aws_region: us-east-1 - id: aws - type: sync_configs + account_id: 123456_A123BC_12AB34 + bucket_name: dd-cost-bucket + created_at: "2023-01-01T12:00:00.000000" + dataset: billing + error_messages: [] + export_prefix: datadog_cloud_cost_usage_export + export_project_name: dd-cloud-cost-report + months: 36 + project_id: my-project-123 + service_account: dd-ccm-gcp-integration@my-environment.iam.gserviceaccount.com + status: active + status_updated_at: "2023-01-01T12:00:00.000000" + updated_at: "2023-01-01T12:00:00.000000" + id: "123456789123" + type: gcp_uc_config schema: - $ref: "#/components/schemas/CloudInventorySyncConfigResponse" + $ref: "#/components/schemas/GCPUsageCostConfigResponse" description: OK "400": content: application/json: schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" + $ref: "#/components/schemas/APIErrorResponse" description: Bad Request "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Enable Storage Management for a bucket + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cloud_cost_management_write + summary: Create Google Cloud Usage Cost config tags: - - Storage Management - x-codegen-request-body-name: body + - Cloud Cost Management "x-permission": operator: OR permissions: - - aws_configurations_manage - /api/v2/cloudinventoryservice/syncconfigs/{id}: + - cloud_cost_management_write + /api/v2/cost/gcp_uc_config/{cloud_account_id}: delete: - description: |- - Delete a Storage Management configuration by its unique identifier. Deleting a configuration stops inventory file synchronization for the associated cloud account. - operationId: DeleteSyncConfig + description: Archive a Cloud Cost Management account. + operationId: DeleteCostGCPUsageCostConfig parameters: - - $ref: "#/components/parameters/CloudInventorySyncConfigID" + - $ref: "#/components/parameters/CloudAccountID" responses: "204": description: No Content - "403": - $ref: "#/components/responses/ForbiddenResponse" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request "404": content: application/json: schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" + $ref: "#/components/schemas/APIErrorResponse" description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Delete a Storage Management configuration + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cloud_cost_management_write + summary: Delete Google Cloud Usage Cost config tags: - - Storage Management + - Cloud Cost Management "x-permission": operator: OR permissions: - - aws_configurations_manage - /api/v2/code-coverage/branch/summary: - post: - description: |- - Retrieve aggregated code coverage statistics for a specific branch in a repository. - This endpoint provides overall coverage metrics as well as breakdowns by service - and code owner. - operationId: GetCodeCoverageBranchSummary - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - branch: prod - repository_url: https://github.com/datadog/test-service - type: ci_app_coverage_branch_summary_request - schema: - $ref: "#/components/schemas/BranchCoverageSummaryRequest" - required: true + - cloud_cost_management_write + get: + description: Get a specific Google Cloud Usage Cost config. + operationId: GetCostGCPUsageCostConfig + parameters: + - description: The unique identifier of the cloud account + in: path + name: cloud_account_id + required: true + schema: + format: int64 + type: integer responses: "200": content: @@ -144384,50 +154637,39 @@ paths: value: data: attributes: - evaluated_flags_count: 8 - evaluated_reports_count: 12 - patch_coverage: 70.1 - total_coverage: 82.4 - id: ZGQxMjM0NV9tYWluXzE3MDk1NjQwMDA= - type: ci_app_coverage_summary + account_id: 123456_A123BC_12AB34 + bucket_name: dd-cost-bucket + created_at: "2023-01-01T12:00:00.000000" + dataset: billing + error_messages: [] + export_prefix: datadog_cloud_cost_usage_export + export_project_name: dd-cloud-cost-report + months: 36 + project_id: my-project-123 + service_account: dd-ccm-gcp-integration@my-environment.iam.gserviceaccount.com + status: active + status_updated_at: "2023-01-01T12:00:00.000000" + updated_at: "2023-01-01T12:00:00.000000" + id: "123456789123" + type: gcp_uc_config schema: - $ref: "#/components/schemas/CoverageSummaryResponse" + $ref: "#/components/schemas/GcpUcConfigResponse" description: OK - "400": - $ref: "#/components/responses/BadRequestResponse" - "403": - $ref: "#/components/responses/NotAuthorizedResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - "500": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Internal server error security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - code_coverage_read - summary: Get code coverage summary for a branch - tags: ["Code Coverage"] - x-codegen-request-body-name: body - x-permission: - operator: OR - permissions: - - code_coverage_read - /api/v2/code-coverage/commit/summary: - post: - description: |- - Retrieve aggregated code coverage statistics for a specific commit in a repository. - This endpoint provides overall coverage metrics as well as breakdowns by service - and code owner. - - The commit SHA must be a 40-character hexadecimal string (SHA-1 hash). - operationId: GetCodeCoverageCommitSummary + - cloud_cost_management_read + summary: Get Google Cloud Usage Cost config + tags: + - Cloud Cost Management + patch: + description: Update the status of an Google Cloud Usage Cost config (active/archived). + operationId: UpdateCostGCPUsageCostConfig + parameters: + - $ref: "#/components/parameters/CloudAccountID" requestBody: content: application/json: @@ -144436,11 +154678,10 @@ paths: value: data: attributes: - commit_sha: 66adc9350f2cc9b250b69abddab733dd55e1a588 - repository_url: https://github.com/datadog/test-service - type: ci_app_coverage_commit_summary_request + is_enabled: true + type: gcp_uc_config_patch_request schema: - $ref: "#/components/schemas/CommitCoverageSummaryRequest" + $ref: "#/components/schemas/GCPUsageCostConfigPatchRequest" required: true responses: "200": @@ -144451,63 +154692,64 @@ paths: value: data: attributes: - evaluated_flags_count: 8 - evaluated_reports_count: 12 - patch_coverage: 70.1 - total_coverage: 82.4 - id: ZGQxMjM0NV9tYWluXzE3MDk1NjQwMDA= - type: ci_app_coverage_summary + account_id: 123456_A123BC_12AB34 + bucket_name: dd-cost-bucket + created_at: "2023-01-01T12:00:00.000000" + dataset: billing + error_messages: [] + export_prefix: datadog_cloud_cost_usage_export + export_project_name: dd-cloud-cost-report + months: 36 + project_id: my-project-123 + service_account: dd-ccm-gcp-integration@my-environment.iam.gserviceaccount.com + status: active + status_updated_at: "2023-01-01T12:00:00.000000" + updated_at: "2023-01-01T12:00:00.000000" + id: "123456789123" + type: gcp_uc_config schema: - $ref: "#/components/schemas/CoverageSummaryResponse" + $ref: "#/components/schemas/GCPUsageCostConfigResponse" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request "403": - $ref: "#/components/responses/NotAuthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden "404": - $ref: "#/components/responses/NotFoundResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - "500": content: application/json: schema: $ref: "#/components/schemas/APIErrorResponse" - description: Internal server error + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - code_coverage_read - summary: Get code coverage summary for a commit - tags: ["Code Coverage"] - x-codegen-request-body-name: body - x-permission: + - cloud_cost_management_write + summary: Update Google Cloud Usage Cost config + tags: + - Cloud Cost Management + "x-permission": operator: OR permissions: - - code_coverage_read - /api/v2/code-coverage/files: - post: + - cloud_cost_management_write + /api/v2/cost/oci_config: + get: + deprecated: true description: |- - Retrieve per-file code coverage data for a specific commit, branch, or pull request. - Exactly one of `commit_sha`, `branch`, or `pr_number` must be provided. - Optionally filter by `service`, `codeowner`, or `flag` (at most one). - operationId: GetCodeCoverageFiles - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - changed_only: true - commit_sha: 66adc9350f2cc9b250b69abddab733dd55e1a588 - repository_url: https://github.com/datadog/test-service - type: ci_app_coverage_files_request - schema: - $ref: "#/components/schemas/FilesCoverageRequest" - required: true + **Note**: This endpoint is deprecated. View OCI accounts in Cloud Cost Settings in the Datadog web application instead. + + List the OCI configs. + operationId: ListCostOCIConfigs responses: "200": content: @@ -144516,54 +154758,53 @@ paths: default: value: data: - attributes: - base_commit_sha: abc1234567890abcdef1234567890abcdef12345 - event_timestamp: 1709564000000 - files: - src/main.go: - added_lines: [11, 12] - covered_lines: [10, 11, 15] - executable_lines: [10, 11, 12, 15, 20] - head_commit_sha: 66adc9350f2cc9b250b69abddab733dd55e1a588 - report_count: 3 - id: ZGQxMjM0NV9tYWluXzE3MDk1NjQwMDA= - type: ci_app_coverage_files + - attributes: + account_id: "ocid1.tenancy.oc1..example" + created_at: "2026-01-01T12:00:00Z" + status: active + status_updated_at: "2026-01-01T12:00:00Z" + updated_at: "2026-01-01T12:00:00Z" + id: "1" + type: oci_config schema: - $ref: "#/components/schemas/FilesCoverageResponse" + $ref: "#/components/schemas/OCIConfigsResponse" description: OK - "400": - $ref: "#/components/responses/BadRequestResponse" "403": - $ref: "#/components/responses/NotAuthorizedResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - "500": content: application/json: schema: $ref: "#/components/schemas/APIErrorResponse" - description: Internal server error + description: Forbidden + "429": + $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - code_coverage_read - summary: Get per-file code coverage data - tags: ["Code Coverage"] - x-codegen-request-body-name: body - x-permission: + - cloud_cost_management_read + summary: List Cloud Cost Management OCI configs + tags: + - Cloud Cost Management + "x-permission": operator: OR permissions: - - code_coverage_read - /api/v2/code-coverage/pr/summary: + - cloud_cost_management_read + x-sunset: "2027-01-01" + /api/v2/cost/recommendations: post: - description: |- - Retrieve aggregated code coverage statistics for a specific pull request in a repository. - This endpoint provides overall coverage metrics as well as breakdowns by service - and code owner. - operationId: GetCodeCoveragePRSummary + description: List cost recommendations matching a filter, with pagination and sorting. + operationId: SearchCostRecommendations + parameters: + - description: Number of results per page (1–10000). + in: query + name: page[size] + schema: + type: string + - description: Pagination token from a previous response. + in: query + name: page[token] + schema: + type: string requestBody: content: application/json: @@ -144572,11 +154813,14 @@ paths: value: data: attributes: - pr_number: 42 - repository_url: https://github.com/datadog/test-service - type: ci_app_coverage_pr_summary_request + scope: ccm + sort: + - expression: "@potential_daily_savings" + order: DESC + id: "@resource_table:aws_ec2_instance" + type: recommendations_filter schema: - $ref: "#/components/schemas/PRCoverageSummaryRequest" + $ref: "#/components/schemas/RecommendationsFilterRequest" required: true responses: "200": @@ -144586,59 +154830,51 @@ paths: default: value: data: - attributes: - evaluated_flags_count: 3 - evaluated_reports_count: 5 - patch_coverage: 65.2 - total_coverage: 78.6 - id: ZGQxMjM0NV9wcl80Ml8xNzA5NTY0MDAw - type: ci_app_coverage_summary + - attributes: + dd_resource_key: "arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0" + potential_daily_savings: + amount: 1.23 + currency: USD + recommendation_type: terminate + resource_id: i-1234567890abcdef0 + resource_type: aws_ec2_instance + tags: + - "env:prod" + - "team:ccm" + id: encoded-event-id-1 + type: recommendation + meta: + page: + filter: "@resource_table:aws_ec2_instance" + next_page_token: "" + page_size: 100 schema: - $ref: "#/components/schemas/CoverageSummaryResponse" + $ref: "#/components/schemas/CostRecommendationArray" description: OK - "400": - $ref: "#/components/responses/BadRequestResponse" - "403": - $ref: "#/components/responses/NotAuthorizedResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - "500": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Internal server error security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - code_coverage_read - summary: Get code coverage summary for a pull request - tags: ["Code Coverage"] - x-codegen-request-body-name: body - x-permission: - operator: OR - permissions: - - code_coverage_read - /api/v2/compliance_findings/rule_based_view: + - cloud_cost_management_read + summary: Search cost recommendations + tags: + - Cloud Cost Management + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/cost/tag_descriptions: get: - deprecated: true - description: |- - **This endpoint is deprecated.** Use the [Security Monitoring - Search Security Findings](https://docs.datadoghq.com/api/latest/security-monitoring/search-security-findings/) endpoint instead. - - Get an aggregated view of compliance rules with their pass, fail, and muted finding counts. - Supports filtering by compliance framework, framework version, and additional query filters. - operationId: GetRuleBasedView + description: List Cloud Cost Management tag key descriptions for the organization. Use `filter[cloud]` to scope the result to a single cloud provider; when omitted, both cross-cloud defaults and cloud-specific descriptions are returned. + operationId: ListCostTagDescriptions parameters: - - $ref: "#/components/parameters/RuleBasedViewTo" - - $ref: "#/components/parameters/RuleBasedViewFramework" - - $ref: "#/components/parameters/RuleBasedViewVersion" - - $ref: "#/components/parameters/RuleBasedViewQueryFindingsWithoutFrameworkVersion" - - $ref: "#/components/parameters/RuleBasedViewIncludeRulesWithoutFindings" - - $ref: "#/components/parameters/RuleBasedViewIsCustom" - - $ref: "#/components/parameters/RuleBasedViewQuery" + - description: Filter descriptions to a specific cloud provider (for example, `aws`). Omit to return descriptions across all clouds. + in: query + name: filter[cloud] + required: false + schema: + type: string responses: "200": content: @@ -144647,111 +154883,97 @@ paths: default: value: data: - attributes: - count: 1 - rules: - - compliance_frameworks: - - control: 164.308-a-4-i - framework: hipaa - is_default: true - message: "" - requirement: Information-Access-Management - version: "1" - enabled: true - id: qjx-udx-xo8 - name: IAM roles should not allow untrusted GitHub Actions to assume them - resourceAttributes: [] - resourceCategory: identity - resourceType: aws_iam_role - stats: - fail: 0 - muted: 0 - pass: 3 - status: critical - tags: - - security:compliance - - cloud_provider:aws - - framework:hipaa - type: cloud_configuration - id: JSONAPI_USELESS_ID - type: rule_based_view + - attributes: + cloud: aws + created_at: "2026-01-01T12:00:00Z" + description: AWS account that owns this cost. + source: human + tag_key: account_id + updated_at: "2026-01-01T12:00:00Z" + id: account_id + type: cost_tag_description schema: - $ref: "#/components/schemas/RuleBasedViewResponse" + $ref: "#/components/schemas/CostTagDescriptionsResponse" description: OK - "400": + "403": content: application/json: schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "403": - $ref: "#/components/responses/NotAuthorizedResponse" + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" - "503": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Service Unavailable security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - security_monitoring_findings_read - summary: Get the rule-based view of compliance findings - tags: ["Compliance"] + - cloud_cost_management_read + summary: List Cloud Cost Management tag descriptions + tags: + - Cloud Cost Management "x-permission": operator: OR permissions: - - security_monitoring_findings_read - x-sunset: "2027-06-26" - x-unstable: |- - **Note**: This endpoint is in Preview and subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/container_images: - get: - description: |- - Get all Container Images for your organization. - **Note**: To enrich the data returned by this endpoint with security scans, see the new [api/v2/security/scanned-assets-metadata](https://docs.datadoghq.com/api/latest/security-monitoring/#list-scanned-assets-metadata) endpoint. - operationId: ListContainerImages + - cloud_cost_management_read + /api/v2/cost/tag_descriptions/{tag_key}: + delete: + description: Delete a Cloud Cost Management tag key description. When `cloud` is omitted, deletes every description for the tag key, falling back to Datadog's global default when available. When `cloud` is provided, deletes only the description scoped to that cloud provider. + operationId: DeleteCostTagDescriptionByKey parameters: - - description: Comma-separated list of tags to filter Container Images by. - example: short_image:redis,status:running - in: query - name: filter[tags] - required: false + - description: The tag key whose description is being deleted. + in: path + name: tag_key + required: true schema: type: string - - description: Comma-separated list of tags to group Container Images by. - example: registry,image_tags + - description: Cloud provider to scope the deletion to (for example, `aws`). Omit to delete every description for the tag key. in: query - name: group_by + name: cloud required: false schema: type: string - - description: Attribute to sort Container Images by. - example: container_count - in: query - name: sort - required: false + responses: + "204": + description: No Content + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cloud_cost_management_write + summary: Delete a Cloud Cost Management tag description + tags: + - Cloud Cost Management + "x-permission": + operator: OR + permissions: + - cloud_cost_management_write + get: + description: Get the Cloud Cost Management description for a single tag key. Use `filter[cloud]` to scope the lookup to a specific cloud provider; when omitted, the response resolves the description in fallback order (cloud-specific organization override, then cloudless organization default, then Datadog's global default). + operationId: GetCostTagDescriptionByKey + parameters: + - description: The tag key whose description is being fetched. + in: path + name: tag_key + required: true schema: type: string - - description: Maximum number of results returned. - in: query - name: page[size] - required: false - schema: - default: 1000 - format: int32 - maximum: 10000 - minimum: 1 - type: integer - - description: |- - String to query the next page of results. - This key is provided with each valid response from the API in `meta.pagination.next_cursor`. + - description: Cloud provider to scope the lookup to (for example, `aws`). Omit to use the resolved fallback. in: query - name: page[cursor] + name: filter[cloud] required: false schema: type: string @@ -144763,23 +154985,17 @@ paths: default: value: data: - - attributes: - container_count: 1 - image_tags: - - latest - name: nginx - registry: docker.io - repository: library/nginx - short_image: nginx - id: abc-123 - type: container_image - meta: - pagination: - limit: 1000 - total: 1 - type: cursor_limit + attributes: + cloud: aws + created_at: "2026-01-01T12:00:00Z" + description: AWS account that owns this cost. + source: human + tag_key: account_id + updated_at: "2026-01-01T12:00:00Z" + id: account_id + type: cost_tag_description schema: - $ref: "#/components/schemas/ContainerImagesResponse" + $ref: "#/components/schemas/CostTagDescriptionResponse" description: OK "400": content: @@ -144792,66 +155008,90 @@ paths: application/json: schema: $ref: "#/components/schemas/APIErrorResponse" - description: Authentication Error + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] - summary: Get all Container Images + - AuthZ: + - cloud_cost_management_read + summary: Get a Cloud Cost Management tag description tags: - - Container Images - x-pagination: - cursorParam: page[cursor] - cursorPath: meta.pagination.next_cursor - limitParam: page[size] - resultsPath: data + - Cloud Cost Management "x-permission": - operator: OPEN - permissions: [] - /api/v2/containers: - get: - description: Get all containers for your organization. - operationId: ListContainers + operator: OR + permissions: + - cloud_cost_management_read + put: + description: Create or update a Cloud Cost Management tag key description. The new description and optional cloud scoping are supplied in the request body. Omit `cloud` to set a cross-cloud default for the tag key. + operationId: UpsertCostTagDescriptionByKey parameters: - - description: Comma-separated list of tags to filter containers by. - example: env:prod,short_image:cassandra - in: query - name: filter[tags] - required: false - schema: - type: string - - description: Comma-separated list of tags to group containers by. - example: datacenter,cluster - in: query - name: group_by - required: false - schema: - type: string - - description: Attribute to sort containers by. - example: started_at - in: query - name: sort - required: false + - description: The tag key whose description is being upserted. + in: path + name: tag_key + required: true schema: type: string - - description: Maximum number of results returned. - in: query - name: page[size] - required: false - schema: - default: 1000 - format: int32 - maximum: 10000 - minimum: 1 - type: integer - - description: |- - String to query the next page of results. - This key is provided with each valid response from the API in `meta.pagination.next_cursor`. - in: query - name: page[cursor] - required: false + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + cloud: aws + description: AWS account that owns this cost. + id: account_id + type: cost_tag_description + schema: + $ref: "#/components/schemas/CostTagDescriptionUpsertRequest" + required: true + responses: + "204": + description: No Content + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cloud_cost_management_write + summary: Upsert a Cloud Cost Management tag description + tags: + - Cloud Cost Management + "x-permission": + operator: OR + permissions: + - cloud_cost_management_write + /api/v2/cost/tag_descriptions/{tag_key}/generate: + get: + description: Use AI to draft a Cloud Cost Management tag key description based on associated cost data. The generated description is returned in the response and is not persisted by this endpoint; follow up with `UpsertCostTagDescriptionByKey` to save it. + operationId: GenerateCostTagDescriptionByKey + parameters: + - description: The tag key to generate an AI description for. + in: path + name: tag_key + required: true schema: type: string responses: @@ -144860,23 +155100,14 @@ paths: application/json: examples: default: - value: - data: - - attributes: - container_id: abc-123 - host: example-host - image_name: nginx - name: example-container - state: running - id: abc-123 - type: container - meta: - pagination: - limit: 1000 - total: 1 - type: cursor_limit + value: + data: + attributes: + description: AWS account that owns this cost. + id: account_id + type: cost_generated_tag_description schema: - $ref: "#/components/schemas/ContainersResponse" + $ref: "#/components/schemas/GenerateCostTagDescriptionResponse" description: OK "400": content: @@ -144889,84 +155120,73 @@ paths: application/json: schema: $ref: "#/components/schemas/APIErrorResponse" - description: Authentication Error + description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] - summary: Get All Containers + - AuthZ: + - cloud_cost_management_read + summary: Generate a Cloud Cost Management tag description tags: - - Containers - x-pagination: - cursorParam: page[cursor] - cursorPath: meta.pagination.next_cursor - limitParam: page[size] - resultsPath: data + - Cloud Cost Management "x-permission": - operator: OPEN - permissions: [] - /api/v2/cost/account_filters/{cloud_account_id}: + operator: OR + permissions: + - cloud_cost_management_read + /api/v2/cost/tag_keys: get: - description: Get the account filters for a cloud account (AWS CUR 1.0/2.0, OCI, and other clouds). - operationId: GetCostAccountFilters + description: List Cloud Cost Management tag keys. + operationId: ListCostTagKeys parameters: - - $ref: "#/components/parameters/CloudAccountID" + - description: The Cloud Cost Management metric to scope the tag keys to. When omitted, returns tag keys across all metrics. + in: query + name: filter[metric] + schema: + type: string + - description: |- + Filter to return only tag keys that appear with the given `key:value` tag values. For example, `filter[tags]=providername:aws` returns tag keys found on the same cost data, such as `is_aws_ec2_compute` and `aws_instance_type`. + in: query + name: filter[tags] + schema: + items: + type: string + type: array responses: "200": content: application/json: examples: default: - summary: Include new accounts and exclude specific accounts value: data: - attributes: - account_filters: - excluded_accounts: - - "123456789123" - - "123456789143" - include_new_accounts: true - account_id: "123456789123" - cloud: aws_cur2 - id: "123" - type: account_filters - include_accounts: - summary: Exclude new accounts and include specific accounts - value: - data: - attributes: - account_filters: - include_new_accounts: false - included_accounts: - - "123456789123" - - "123456789143" - account_id: "123456789123" - cloud: aws_cur2 - id: "123" - type: account_filters + - attributes: + sources: + - focus + value: providername + id: providername + type: cost_tag_key + - attributes: + sources: [] + value: service + id: service + type: cost_tag_key schema: - $ref: "#/components/schemas/AccountFiltersResponse" + $ref: "#/components/schemas/CostTagKeysResponse" description: OK "400": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" description: Bad Request "403": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" description: Forbidden - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: @@ -144974,100 +155194,73 @@ paths: appKeyAuth: [] - AuthZ: - cloud_cost_management_read - summary: Get account filters + summary: List Cloud Cost Management tag keys tags: - Cloud Cost Management "x-permission": operator: OR permissions: - cloud_cost_management_read - patch: - description: Update the account filters for a cloud account (AWS CUR 1.0/2.0, OCI, and other clouds). - operationId: UpdateCostAccountFilters + /api/v2/cost/tag_keys/{tag_key}: + get: + description: Get details for a specific Cloud Cost Management tag key, including example tag values and description. + operationId: GetCostTagKey parameters: - - $ref: "#/components/parameters/CloudAccountID" - requestBody: - content: - application/json: - examples: - default: - summary: Exclude new accounts and include specific accounts - value: - data: - attributes: - account_filters: - include_new_accounts: false - included_accounts: - - "123456789123" - - "123456789143" - type: account_filters_patch_request - exclude_accounts: - summary: Include new accounts and exclude specific accounts - value: - data: - attributes: - account_filters: - excluded_accounts: - - "123456789123" - - "123456789143" - include_new_accounts: true - type: account_filters_patch_request - schema: - $ref: "#/components/schemas/AccountFiltersPatchRequest" - required: true + - $ref: "#/components/parameters/TagKey" + - description: The Cloud Cost Management metric to scope the tag key details to. When omitted, returns details across all metrics. + in: query + name: filter[metric] + schema: + type: string + - description: |- + Controls the size of the internal tag value search scope. This does **not** restrict the number of example tag values returned in the response. Defaults to 50, maximum 10000. + in: query + name: page[size] + schema: + default: 50 + format: int32 + maximum: 10000 + type: integer responses: "200": content: application/json: examples: default: - summary: Exclude new accounts and include specific accounts - value: - data: - attributes: - account_filters: - include_new_accounts: false - included_accounts: - - "123456789123" - - "123456789143" - account_id: "123456789123" - cloud: aws_cur2 - id: "123" - type: account_filters - exclude_accounts: - summary: Include new accounts and exclude specific accounts value: data: attributes: - account_filters: - excluded_accounts: - - "123456789123" - - "123456789143" - include_new_accounts: true - account_id: "123456789123" - cloud: aws_cur2 - id: "123" - type: account_filters + details: + description: The cloud provider name reported for the cost line item. + tag_values: + - aws + - gcp + - azure + sources: + - focus + value: providername + id: providername + type: cost_tag_key schema: - $ref: "#/components/schemas/AccountFiltersResponse" + $ref: "#/components/schemas/CostTagKeyResponse" description: OK "400": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" description: Bad Request "403": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" description: Forbidden "404": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" @@ -145075,103 +155268,46 @@ paths: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cloud_cost_management_write - summary: Update account filters + - cloud_cost_management_read + summary: Get a Cloud Cost Management tag key tags: - Cloud Cost Management "x-permission": operator: OR permissions: - - cloud_cost_management_write - /api/v2/cost/anomalies: + - cloud_cost_management_read + /api/v2/cost/tag_metadata: get: - description: List detected Cloud Cost Management anomalies for the organization. - operationId: ListCostAnomalies + description: List Cloud Cost Management tag key metadata, including row counts, cost covered, cardinality, and a sample of top tag values per cloud account. Use `filter[daily]=true` to return daily rows instead of the default monthly roll-up. + operationId: ListCostTagMetadata parameters: - - description: Start time as Unix milliseconds. Defaults to the start of the latest stable seven-day window. - in: query - name: start - required: false - schema: - example: 1730259950000 - format: int64 - type: integer - - description: End time as Unix milliseconds. Defaults to the end of the latest stable seven-day window. - in: query - name: end - required: false - schema: - example: 1730429150000 - format: int64 - type: integer - - description: 'Optional JSON object mapping cost tag keys to allowed values, for example `{"team":["payments"],"env":["prod"]}`. Filters match anomaly dimensions or correlated tags.' - in: query - name: filter - required: false - schema: - example: '{"team":["payments"]}' - type: string - - description: Minimum absolute anomalous cost change to include. Numeric value; defaults to `1`. - in: query - name: min_anomalous_threshold - required: false - schema: - example: "1.0" - type: string - - description: Minimum absolute actual cost to include. Numeric value; defaults to `0`. + - description: The month to scope the query to, in `YYYY-MM` format. + example: "2026-02" in: query - name: min_cost_threshold - required: false + name: filter[month] + required: true schema: - example: "0.0" type: string - - description: Filter by resolution state. Use `none` for unresolved anomalies, `all` or `*` for resolved anomalies, or a comma-separated list of causes. + - description: Filter results to a specific provider. Common cloud values are `aws`, `azure`, `gcp`, `Oracle` (OCI), and `custom`. SaaS billing integrations (for example, `Snowflake`, `MongoDB`, `Databricks`) are also accepted using their display-name string. Values are case-sensitive. in: query - name: dismissal_cause - required: false + name: filter[provider] schema: - example: none type: string - - description: Sort field. One of `start_date`, `end_date`, `duration`, `max_cost`, `anomalous_cost`, or `dismissal_date`. Defaults to `anomalous_cost`. + - description: Filter results to a specific Cloud Cost Management metric (for example, `aws.cost.net.amortized`). When omitted, every available metric for the requested period is returned. in: query - name: order_by - required: false + name: filter[metric] schema: - example: anomalous_cost type: string - - description: Sort direction. One of `asc` or `desc`. Defaults to `desc`. + - description: Restrict results to a single tag key. in: query - name: order - required: false + name: filter[tag_key] schema: - example: desc type: string - - description: Maximum number of anomalies to return. Defaults to `200`. - in: query - name: limit - required: false - schema: - example: 200 - format: int64 - type: integer - - description: Pagination offset. Defaults to `0`. - in: query - name: offset - required: false - schema: - example: 0 - format: int64 - type: integer - - description: Optional repeated cloud or SaaS provider filters, such as `aws`, `gcp`, `azure`, `Oracle`, `datadog`, `OpenAI`, or `Anthropic`. - explode: true + - description: When `true`, return one row per day with the day in the `date` attribute. Defaults to the monthly roll-up when omitted. in: query - name: provider_ids - required: false + name: filter[daily] schema: - items: - example: aws - type: string - type: array + $ref: "#/components/schemas/CostTagMetadataDailyFilter" responses: "200": content: @@ -145180,33 +155316,29 @@ paths: default: value: data: - attributes: - anomalies: - - actual_cost: 3001.24 - anomalous_cost_change: 1250.75 - anomaly_end: 1730429150000 - anomaly_start: 1730259950000 - correlated_tags: - region: - - us-east-1 - - us-west-2 - dimensions: - service: ec2 - max_cost: 5000.5 - provider: aws - query: 'sum:aws.cost.net.amortized{aws_cost_type IN (Usage,DiscountedUsage,SavingsPlanCoveredUsage) AND aws_product NOT IN (supportenterprise) AND service:"ec2"}.rollup(sum, daily)' - uuid: b0a6aaa9-3c4c-48cb-9447-a0d1338b3e09 - avg_daily_anomalous_cost: 625.375 - total_actual_cost: 3001.24 - total_anomalous_cost: 1250.75 - total_count: 1 - id: anomalies - type: anomalies + - attributes: + cardinality_by_account: + "123456789012": 42 + cost_covered: 1234.56 + metric: aws.cost.net.amortized + row_count: 100 + tag_sources: + - aws-user-defined + top_values_by_account: + "123456789012": + - prod + - staging + id: env:aws.cost.net.amortized + type: cost_tag_key_metadata schema: - $ref: "#/components/schemas/CostAnomaliesResponse" + $ref: "#/components/schemas/CostTagKeyMetadataResponse" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request "403": content: application/json: @@ -145220,18 +155352,33 @@ paths: appKeyAuth: [] - AuthZ: - cloud_cost_management_read - summary: List cost anomalies + summary: List Cloud Cost Management tag key metadata tags: - Cloud Cost Management + "x-permission": + operator: OR + permissions: + - cloud_cost_management_read x-unstable: |- - **Note**: This endpoint is in Preview and is subject to change. + **Note**: This endpoint is in preview and is subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/cost/anomalies/{anomaly_id}: + /api/v2/cost/tag_metadata/currency: get: - description: Get a detected Cloud Cost Management anomaly by UUID. - operationId: GetCostAnomaly + description: Get the dominant billing currency observed in Cloud Cost Management data for the requested period. The response wraps the currency in a JSON:API `data` array containing at most one entry; the array is empty when no currency data is available. + operationId: GetCostTagMetadataCurrency parameters: - - $ref: "#/components/parameters/AnomalyID" + - description: The month to scope the query to, in `YYYY-MM` format. + example: "2026-02" + in: query + name: filter[month] + required: true + schema: + type: string + - description: Filter results to a specific provider. Common cloud values are `aws`, `azure`, `gcp`, `Oracle` (OCI), and `custom`. SaaS billing integrations (for example, `Snowflake`, `MongoDB`, `Databricks`) are also accepted using their display-name string. Values are case-sensitive. + in: query + name: filter[provider] + schema: + type: string responses: "200": content: @@ -145240,36 +155387,23 @@ paths: default: value: data: - attributes: - actual_cost: 3001.24 - anomalous_cost_change: 1250.75 - anomaly_end: 1730429150000 - anomaly_start: 1730259950000 - correlated_tags: - region: - - us-east-1 - - us-west-2 - dimensions: - service: ec2 - max_cost: 5000.5 - provider: aws - query: 'sum:aws.cost.net.amortized{aws_cost_type IN (Usage,DiscountedUsage,SavingsPlanCoveredUsage) AND aws_product NOT IN (supportenterprise) AND service:"ec2"}.rollup(sum, daily)' - uuid: b0a6aaa9-3c4c-48cb-9447-a0d1338b3e09 - id: b0a6aaa9-3c4c-48cb-9447-a0d1338b3e09 - type: anomalies + - id: USD + type: cost_currency schema: - $ref: "#/components/schemas/CostAnomalyResponse" + $ref: "#/components/schemas/CostCurrencyResponse" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request "403": content: application/json: schema: $ref: "#/components/schemas/APIErrorResponse" description: Forbidden - "404": - $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: @@ -145277,16 +155411,33 @@ paths: appKeyAuth: [] - AuthZ: - cloud_cost_management_read - summary: Get cost anomaly + summary: Get the Cloud Cost Management billing currency tags: - Cloud Cost Management + "x-permission": + operator: OR + permissions: + - cloud_cost_management_read x-unstable: |- - **Note**: This endpoint is in Preview and is subject to change. + **Note**: This endpoint is in preview and is subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/cost/arbitrary_rule: + /api/v2/cost/tag_metadata/metrics: get: - description: List all custom allocation rules - Retrieve a list of all custom allocation rules for the organization - operationId: ListCustomAllocationRules + description: List Cloud Cost Management metrics that have data for the requested period. + operationId: ListCostTagMetadataMetrics + parameters: + - description: The month to scope the query to, in `YYYY-MM` format. + example: "2026-02" + in: query + name: filter[month] + required: true + schema: + type: string + - description: Filter results to a specific provider. Common cloud values are `aws`, `azure`, `gcp`, `Oracle` (OCI), and `custom`. SaaS billing integrations (for example, `Snowflake`, `MongoDB`, `Databricks`) are also accepted using their display-name string. Values are case-sensitive. + in: query + name: filter[provider] + schema: + type: string responses: "200": content: @@ -145295,33 +155446,25 @@ paths: default: value: data: - - attributes: - costs_to_allocate: - - condition: is - tag: account_id - value: "123456789" - values: - created: "2024-01-01T00:00:00+00:00" - enabled: true - last_modified_user_uuid: user-example-uuid - order_id: 1 - processing_status: done - provider: - - aws - rule_name: example-custom-allocation-rule - strategy: - allocated_by_tag_keys: - - team - granularity: daily - method: proportional - type: shared - updated: "2024-01-01T00:00:00+00:00" - version: 1 - id: "123" - type: arbitrary_rule + - id: aws.cost.net.amortized + type: cost_metric + - id: gcp.cost.amortized + type: cost_metric schema: - $ref: "#/components/schemas/ArbitraryRuleResponseArray" + $ref: "#/components/schemas/CostMetricsResponse" description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" security: @@ -145329,70 +155472,34 @@ paths: appKeyAuth: [] - AuthZ: - cloud_cost_management_read - summary: List custom allocation rules + summary: List available Cloud Cost Management metrics tags: - Cloud Cost Management - post: + "x-permission": + operator: OR + permissions: + - cloud_cost_management_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/cost/tag_metadata/months: + get: description: |- - Create a new custom allocation rule with the specified filters and allocation strategy. - - **Strategy Methods:** - - **PROPORTIONAL/EVEN**: Allocates costs proportionally/evenly based on existing costs. Requires: granularity, allocated_by_tag_keys. Optional: based_on_costs, allocated_by_filters, evaluate_grouped_by_tag_keys, evaluate_grouped_by_filters. - - **PROPORTIONAL_TIMESERIES/EVEN_TIMESERIES**: Allocates based on timeseries data. Requires: granularity, based_on_timeseries. Optional: evaluate_grouped_by_tag_keys. - - **PERCENT**: Allocates fixed percentages to specific tags. Requires: allocated_by (array of percentage allocations). - - **Filter Conditions:** - - Use **value** for single-value conditions: "is", "is not", "contains", "=", "!=", "like", "not like" - - Use **values** for multi-value conditions: "in", "not in" - - Cannot use both value and values simultaneously. - - **Supported operators**: is, is not, contains, in, not in, =, !=, like, not like - operationId: CreateCustomAllocationRule - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - costs_to_allocate: - - condition: is - tag: account_id - value: "123456789" - - condition: in - tag: environment - value: "" - values: - - production - - staging - enabled: true - order_id: 1 - provider: - - aws - - gcp - rule_name: example-arbitrary-cost-rule - strategy: - allocated_by_tag_keys: - - team - - environment - based_on_costs: - - condition: is - tag: service - value: web-api - - condition: not in - tag: team - value: "" - values: - - legacy - - deprecated - granularity: daily - method: proportional - type: shared - type: upsert_arbitrary_rule - schema: - $ref: "#/components/schemas/ArbitraryCostUpsertRequest" - required: true + List months that have Cloud Cost Management tag metadata for a given provider, + ordered most-recent first. The response is capped at 36 months. + operationId: ListCostTagMetadataMonths + parameters: + - description: |- + Provider to scope the query to. Use the value of the `providername` tag in CCM + (for example, `aws`, `azure`, `gcp`, `Oracle`, `Confluent Cloud`, `Snowflake`). + For costs uploaded through the Custom Costs API, use `custom`. + Values are case-sensitive. + example: aws + in: query + name: filter[provider] + required: true + schema: + type: string responses: "200": content: @@ -145401,84 +155508,59 @@ paths: default: value: data: - attributes: - costs_to_allocate: - - condition: is - tag: account_id - value: "123456789" - created: "2024-01-01T00:00:00+00:00" - enabled: true - order_id: 1 - provider: - - aws - rule_name: example-arbitrary-cost-rule - strategy: - allocated_by_tag_keys: - - team - granularity: daily - method: proportional - type: shared - updated: "2024-01-01T00:00:00+00:00" - version: 1 - id: "123" - type: arbitrary_rule + - id: "2026-04" + type: cost_tag_metadata_month + - id: "2026-03" + type: cost_tag_metadata_month schema: - $ref: "#/components/schemas/ArbitraryRuleResponse" + $ref: "#/components/schemas/CostTagMetadataMonthsResponse" description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cloud_cost_management_write - summary: Create custom allocation rule - tags: - - Cloud Cost Management - /api/v2/cost/arbitrary_rule/reorder: - post: - description: |- - Reorder custom allocation rules - Change the execution order of custom allocation rules. - - **Important**: You must provide the **complete list** of all rule IDs in the desired execution order. The API will reorder ALL rules according to the provided sequence. - - Rules are executed in the order specified, with lower indices (earlier in the array) having higher priority. - - **Example**: If you have rules with IDs [123, 456, 789] and want to change order from 123→456→789 to 456→123→789, send: [{"id": "456"}, {"id": "123"}, {"id": "789"}] - operationId: ReorderCustomAllocationRules - requestBody: - content: - application/json: - examples: - default: - value: - data: - - id: "456" - type: arbitrary_rule - - id: "123" - type: arbitrary_rule - - id: "789" - type: arbitrary_rule - schema: - $ref: "#/components/schemas/ReorderRuleResourceArray" - required: true - responses: - "204": - description: Successfully reordered rules - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_write - summary: Reorder custom allocation rules + - cloud_cost_management_read + summary: List Cloud Cost Management tag metadata months tags: - Cloud Cost Management - /api/v2/cost/arbitrary_rule/status: + "x-permission": + operator: OR + permissions: + - cloud_cost_management_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/cost/tag_metadata/orchestrators: get: - description: List the processing status of all custom allocation rules. Returns only the ID and processing status for each rule. - operationId: ListCustomAllocationRulesStatus + description: List container orchestrators (for example, `kubernetes`, `ecs`) detected in Cloud Cost Management data for the requested period. + operationId: ListCostTagMetadataOrchestrators + parameters: + - description: The month to scope the query to, in `YYYY-MM` format. + example: "2026-02" + in: query + name: filter[month] + required: true + schema: + type: string + - description: Filter results to a specific provider. Common cloud values are `aws`, `azure`, `gcp`, `Oracle` (OCI), and `custom`. SaaS billing integrations (for example, `Snowflake`, `MongoDB`, `Databricks`) are also accepted using their display-name string. Values are case-sensitive. + in: query + name: filter[provider] + schema: + type: string responses: "200": content: @@ -145487,17 +155569,25 @@ paths: default: value: data: - - attributes: - processing_status: processing - id: "123" - type: arbitrary_rule_status - - attributes: - processing_status: done - id: "456" - type: arbitrary_rule_status + - id: ecs + type: cost_orchestrator + - id: kubernetes + type: cost_orchestrator schema: - $ref: "#/components/schemas/ArbitraryRuleStatusResponseArray" + $ref: "#/components/schemas/CostOrchestratorsResponse" description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" security: @@ -145505,45 +155595,38 @@ paths: appKeyAuth: [] - AuthZ: - cloud_cost_management_read - summary: List custom allocation rule statuses - tags: - - Cloud Cost Management - /api/v2/cost/arbitrary_rule/{rule_id}: - delete: - description: Delete a custom allocation rule - Delete an existing custom allocation rule by its ID - operationId: DeleteCustomAllocationRule - parameters: - - description: The unique identifier of the custom allocation rule - in: path - name: rule_id - required: true - schema: - format: int64 - type: integer - responses: - "204": - description: No Content - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_write - summary: Delete custom allocation rule + summary: List Cloud Cost Management orchestrators tags: - Cloud Cost Management + "x-permission": + operator: OR + permissions: + - cloud_cost_management_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/cost/tag_metadata/tag_sources: get: - description: Get a specific custom allocation rule - Retrieve a specific custom allocation rule by its ID - operationId: GetCustomAllocationRule + description: List Cloud Cost Management tag keys observed for the requested period, along with the origin sources that produced them (for example, `aws-user-defined`, `custom`). + operationId: ListCostTagKeySources parameters: - - description: The unique identifier of the custom allocation rule - in: path - name: rule_id + - description: The month to scope the query to, in `YYYY-MM` format. + example: "2026-02" + in: query + name: filter[month] required: true schema: - format: int64 - type: integer + type: string + - description: Filter results to a specific provider. Common cloud values are `aws`, `azure`, `gcp`, `Oracle` (OCI), and `custom`. SaaS billing integrations (for example, `Snowflake`, `MongoDB`, `Databricks`) are also accepted using their display-name string. Values are case-sensitive. + in: query + name: filter[provider] + schema: + type: string + - description: Filter results to tag keys that have data for a specific Cloud Cost Management metric (for example, `aws.cost.net.amortized`). When omitted, all tag keys for the requested period are returned. + in: query + name: filter[metric] + schema: + type: string responses: "200": content: @@ -145552,32 +155635,34 @@ paths: default: value: data: - attributes: - costs_to_allocate: - - condition: is - tag: account_id - value: "123456789" - values: - created: "2024-01-01T00:00:00+00:00" - enabled: true - last_modified_user_uuid: user-example-uuid - order_id: 1 - provider: - - aws - rule_name: example-custom-allocation-rule - strategy: - allocated_by_tag_keys: - - team - granularity: daily - method: proportional - type: shared - updated: "2024-01-01T00:00:00+00:00" - version: 1 - id: "123" - type: arbitrary_rule + - attributes: + tag_key: env + tag_sources: + - aws-user-defined + - custom + id: env + type: cost_tag_key_source + - attributes: + tag_key: service + tag_sources: + - aws + id: service + type: cost_tag_key_source schema: - $ref: "#/components/schemas/ArbitraryRuleResponse" + $ref: "#/components/schemas/CostTagKeySourcesResponse" description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" security: @@ -145585,79 +155670,55 @@ paths: appKeyAuth: [] - AuthZ: - cloud_cost_management_read - summary: Get custom allocation rule + summary: List Cloud Cost Management tag sources tags: - Cloud Cost Management - patch: - description: |- - Update an existing custom allocation rule with new filters and allocation strategy. - - **Strategy Methods:** - - **PROPORTIONAL/EVEN**: Allocates costs proportionally/evenly based on existing costs. Requires: granularity, allocated_by_tag_keys. Optional: based_on_costs, allocated_by_filters, evaluate_grouped_by_tag_keys, evaluate_grouped_by_filters. - - **PROPORTIONAL_TIMESERIES/EVEN_TIMESERIES**: Allocates based on timeseries data. Requires: granularity, based_on_timeseries. Optional: evaluate_grouped_by_tag_keys. - - **PERCENT**: Allocates fixed percentages to specific tags. Requires: allocated_by (array of percentage allocations). - - **USAGE_METRIC**: Allocates based on usage metrics (implementation varies). - - **Filter Conditions:** - - Use **value** for single-value conditions: "is", "is not", "contains", "=", "!=", "like", "not like" - - Use **values** for multi-value conditions: "in", "not in" - - Cannot use both value and values simultaneously. - - **Supported operators**: is, is not, contains, in, not in, =, !=, like, not like - operationId: UpdateCustomAllocationRule + "x-permission": + operator: OR + permissions: + - cloud_cost_management_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/cost/tags: + get: + description: List Cloud Cost Management tags for a given metric. + operationId: ListCostTags parameters: - - description: The unique identifier of the custom allocation rule - in: path - name: rule_id - required: true + - description: The Cloud Cost Management metric to scope the tags to. When omitted, returns tags across all metrics. + in: query + name: filter[metric] schema: - format: int64 + type: string + - description: A substring used to filter the returned tags by name. + in: query + name: filter[match] + schema: + type: string + - description: |- + Filter to return only tags that appear with the given `key:value` tag values. For example, `filter[tags]=providername:aws` returns tags found on the same cost data, such as `aws_instance_type:t3.micro` and `aws_instance_type:m5.large`. + in: query + name: filter[tags] + schema: + items: + type: string + type: array + - description: Restrict the returned tags to those whose key matches one of the given tag keys. + in: query + name: filter[tag_keys] + schema: + items: + type: string + type: array + - description: |- + Controls the size of the internal tag search scope. This does **not** restrict the number of tags returned in the response. Defaults to 50, maximum 10000. + in: query + name: page[size] + schema: + default: 50 + format: int32 + maximum: 10000 type: integer - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - costs_to_allocate: - - condition: is - tag: account_id - value: "123456789" - - condition: in - tag: environment - value: "" - values: - - production - - staging - enabled: true - order_id: 1 - provider: - - aws - - gcp - rule_name: example-arbitrary-cost-rule - strategy: - allocated_by_tag_keys: - - team - - environment - based_on_costs: - - condition: is - tag: service - value: web-api - - condition: not in - tag: team - value: "" - values: - - legacy - - deprecated - granularity: daily - method: proportional - type: shared - type: upsert_arbitrary_rule - schema: - $ref: "#/components/schemas/ArbitraryCostUpsertRequest" - required: true responses: "200": content: @@ -145666,44 +155727,51 @@ paths: default: value: data: - attributes: - costs_to_allocate: - - condition: is - tag: account_id - value: "123456789" - created: "2024-01-01T00:00:00+00:00" - enabled: true - order_id: 1 - provider: - - aws - rule_name: example-arbitrary-cost-rule - strategy: - allocated_by_tag_keys: - - team - granularity: daily - method: proportional - type: shared - updated: "2024-01-01T00:00:00+00:00" - version: 1 - id: "123" - type: arbitrary_rule + - attributes: + sources: + - focus + value: providername:aws + id: providername:aws + type: cost_tag + - attributes: + sources: + - focus + value: providername:gcp + id: providername:gcp + type: cost_tag schema: - $ref: "#/components/schemas/ArbitraryRuleResponse" + $ref: "#/components/schemas/CostTagsResponse" description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cloud_cost_management_write - summary: Update custom allocation rule + - cloud_cost_management_read + summary: List Cloud Cost Management tags tags: - Cloud Cost Management - /api/v2/cost/aws_cur_config: + "x-permission": + operator: OR + permissions: + - cloud_cost_management_read + /api/v2/cost/unit_costs: get: - description: List the AWS CUR configs. - operationId: ListCostAWSCURConfigs + description: List the ROI metrics (unit costs) for the authenticated organization. + operationId: ListUnitCosts responses: "200": content: @@ -145713,45 +155781,90 @@ paths: value: data: - attributes: - account_id: "123456789123" - bucket_name: dd-cost-bucket - bucket_region: us-east-1 - created_at: "2023-01-01T12:00:00.000000" - error_messages: [] - months: 36 - report_name: dd-report-name - report_prefix: dd-report-prefix - status: active - status_updated_at: "2023-01-01T12:00:00.000000" - updated_at: "2023-01-01T12:00:00.000000" - id: "123" - type: aws_cur_config + created_at: "2026-09-01T18:46:15.933716Z" + created_by: 36ea1610-8866-4bd3-bb6d-9bb9fc87cad2 + denominator_query: + formulas: + - formula: denominator + queries: + - data_source: metrics + name: denominator + query: "avg:system.cpu.user{*}" + response_format: timeseries + denominator_type: metrics + name: Cloud cost per active user + numerator_query: + formulas: + - formula: numerator + queries: + - data_source: cloud_cost + name: numerator + query: "sum:aws.cost.net.amortized.shared.resources.allocated{*}.rollup(sum, daily)" + response_format: timeseries + org_id: 321813 + unit_label: user + updated_at: "2026-09-01T19:52:08.820536Z" + updated_by: 13cc0adf-2595-479e-b448-5051c180dddb + id: 64aecd58-e355-4f07-9c3a-56ff6bda6cd8 + type: unit_cost + - attributes: + created_at: "2026-09-02T00:59:12.708413Z" + created_by: 36ea1610-8866-4bd3-bb6d-9bb9fc87cad2 + denominator_query: + formulas: + - formula: denominator + queries: + - compute: + aggregation: count + data_source: ci_pipelines + group_by: [] + indexes: + - "*" + name: denominator + search: + query: "ci_level:pipeline @ci.status:success" + storage: hot + response_format: timeseries + denominator_type: ci_pipelines + name: Cloud cost per successful pipeline + numerator_query: + formulas: + - formula: numerator + queries: + - data_source: cloud_cost + name: numerator + query: "sum:custom.cost.amortized{*}.rollup(sum, daily)" + response_format: timeseries + org_id: 321813 + unit_label: pipeline + updated_at: "2026-09-02T01:00:05.709773Z" + updated_by: 36ea1610-8866-4bd3-bb6d-9bb9fc87cad2 + id: ab11677e-396e-4dce-8018-bbeb398315ae + type: unit_cost schema: - $ref: "#/components/schemas/AwsCURConfigsResponse" + $ref: "#/components/schemas/UnitCostsResponse" description: OK "403": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_read - summary: List Cloud Cost Management AWS CUR configs + summary: List unit costs tags: - Cloud Cost Management "x-permission": operator: OR permissions: - cloud_cost_management_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). post: - description: Create a Cloud Cost Management account for an AWS CUR config. - operationId: CreateCostAWSCURConfig + description: Create an ROI metric (unit cost) using the given numerator and denominator queries. + operationId: CreateUnitCost requestBody: content: application/json: @@ -145760,25 +155873,30 @@ paths: value: data: attributes: - account_filters: - excluded_accounts: - - "123456789123" - - "123456789143" - include_new_accounts: true - included_accounts: - - "123456789123" - - "123456789143" - account_id: "123456789123" - bucket_name: dd-cost-bucket - bucket_region: us-east-1 - report_name: dd-report-name - report_prefix: dd-report-prefix - type: aws_cur_config_post_request + denominator_query: + formulas: + - formula: denominator + queries: + - data_source: metrics + name: denominator + query: "avg:system.cpu.user{*}" + response_format: timeseries + name: Cloud cost per active user + numerator_query: + formulas: + - formula: numerator + queries: + - data_source: cloud_cost + name: numerator + query: "sum:aws.cost.net.amortized.shared.resources.allocated{*}.rollup(sum, daily)" + response_format: timeseries + unit_label: user + type: unit_cost schema: - $ref: "#/components/schemas/AwsCURConfigPostRequest" + $ref: "#/components/schemas/UnitCostCreateRequest" required: true responses: - "200": + "201": content: application/json: examples: @@ -145786,59 +155904,70 @@ paths: value: data: attributes: - account_filters: - excluded_accounts: - - "123456789124" - - "123456789125" - include_new_accounts: true - account_id: "123456789123" - bucket_name: dd-cost-bucket - bucket_region: us-east-1 - created_at: "2023-01-01T12:00:00.000000" - error_messages: [] - months: 36 - report_name: dd-report-name - report_prefix: dd-report-prefix - status: active - status_updated_at: "2023-01-01T12:00:00.000000" - updated_at: "2023-01-01T12:00:00.000000" - id: "123456789123" - type: aws_cur_config + created_at: "2026-09-01T18:46:15.933716Z" + created_by: 36ea1610-8866-4bd3-bb6d-9bb9fc87cad2 + denominator_query: + formulas: + - formula: denominator + queries: + - data_source: metrics + name: denominator + query: "avg:system.cpu.user{*}" + response_format: timeseries + denominator_type: metrics + name: Cloud cost per active user + numerator_query: + formulas: + - formula: numerator + queries: + - data_source: cloud_cost + name: numerator + query: "sum:aws.cost.net.amortized.shared.resources.allocated{*}.rollup(sum, daily)" + response_format: timeseries + org_id: 321813 + unit_label: user + updated_at: "2026-09-01T18:46:15.933716Z" + updated_by: 36ea1610-8866-4bd3-bb6d-9bb9fc87cad2 + id: 64aecd58-e355-4f07-9c3a-56ff6bda6cd8 + type: unit_cost schema: - $ref: "#/components/schemas/AwsCurConfigResponse" - description: OK + $ref: "#/components/schemas/UnitCostResponse" + description: Created + headers: + Location: + description: The path of the newly created unit cost. + schema: + type: string "400": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" description: Bad Request "403": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_write - summary: Create Cloud Cost Management AWS CUR config + summary: Create a unit cost tags: - Cloud Cost Management "x-permission": operator: OR permissions: - - cloud_cost_management_write - /api/v2/cost/aws_cur_config/{cloud_account_id}: + - cloud_cost_management_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/cost/unit_costs/{unit_cost_id}: delete: - description: Archive a Cloud Cost Management Account. - operationId: DeleteCostAWSCURConfig + description: Delete an ROI metric (unit cost). + operationId: DeleteUnitCost parameters: - - $ref: "#/components/parameters/CloudAccountID" + - $ref: "#/components/parameters/UnitCostID" responses: "204": description: No Content @@ -145846,39 +155975,37 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "404": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_write - summary: Delete Cloud Cost Management AWS CUR config + summary: Delete a unit cost tags: - Cloud Cost Management "x-permission": operator: OR permissions: - - cloud_cost_management_write + - cloud_cost_management_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). get: - description: Get a specific AWS CUR config. - operationId: GetCostAWSCURConfig + description: Retrieve an ROI metric (unit cost) by UUID. + operationId: GetUnitCost parameters: - - description: The unique identifier of the cloud account - in: path - name: cloud_account_id - required: true - schema: - format: int64 - type: integer + - $ref: "#/components/parameters/UnitCostID" responses: "200": content: @@ -145888,42 +156015,70 @@ paths: value: data: attributes: - account_filters: - excluded_accounts: - - "123456789124" - - "123456789125" - include_new_accounts: true - account_id: "123456789123" - bucket_name: dd-cost-bucket - bucket_region: us-east-1 - created_at: "2023-01-01T12:00:00.000000" - error_messages: [] - months: 36 - report_name: dd-report-name - report_prefix: dd-report-prefix - status: active - status_updated_at: "2023-01-01T12:00:00.000000" - updated_at: "2023-01-01T12:00:00.000000" - id: "123456789123" - type: aws_cur_config + created_at: "2026-09-01T18:46:15.933716Z" + created_by: 36ea1610-8866-4bd3-bb6d-9bb9fc87cad2 + denominator_query: + formulas: + - formula: denominator + queries: + - data_source: metrics + name: denominator + query: "avg:system.cpu.user{*}" + response_format: timeseries + denominator_type: metrics + name: Cloud cost per active user + numerator_query: + formulas: + - formula: numerator + queries: + - data_source: cloud_cost + name: numerator + query: "sum:aws.cost.net.amortized.shared.resources.allocated{*}.rollup(sum, daily)" + response_format: timeseries + org_id: 321813 + unit_label: user + updated_at: "2026-09-01T19:52:08.820536Z" + updated_by: 13cc0adf-2595-479e-b448-5051c180dddb + id: 64aecd58-e355-4f07-9c3a-56ff6bda6cd8 + type: unit_cost schema: - $ref: "#/components/schemas/AwsCurConfigResponse" + $ref: "#/components/schemas/UnitCostResponse" description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_read - summary: Get cost AWS CUR config + summary: Get a unit cost tags: - Cloud Cost Management - patch: - description: Update the status (active/archived) and/or account filtering configuration of an AWS CUR config. - operationId: UpdateCostAWSCURConfig + "x-permission": + operator: OR + permissions: + - cloud_cost_management_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + put: + description: Replace an ROI metric (unit cost) with a new set of attributes. + operationId: UpdateUnitCost parameters: - - $ref: "#/components/parameters/CloudAccountID" + - $ref: "#/components/parameters/UnitCostID" requestBody: content: application/json: @@ -145932,18 +156087,28 @@ paths: value: data: attributes: - account_filters: - excluded_accounts: - - "123456789123" - - "123456789143" - include_new_accounts: true - included_accounts: - - "123456789123" - - "123456789143" - is_enabled: true - type: aws_cur_config_patch_request + denominator_query: + formulas: + - formula: denominator + queries: + - data_source: metrics + name: denominator + query: "avg:system.cpu.user{*}" + response_format: timeseries + name: Cloud cost per active user + numerator_query: + formulas: + - formula: numerator + queries: + - data_source: cloud_cost + name: numerator + query: "sum:aws.cost.net.amortized.shared.resources.allocated{*}.rollup(sum, daily)" + response_format: timeseries + unit_label: user + id: 64aecd58-e355-4f07-9c3a-56ff6bda6cd8 + type: unit_cost schema: - $ref: "#/components/schemas/AwsCURConfigPatchRequest" + $ref: "#/components/schemas/UnitCostUpdateRequest" required: true responses: "200": @@ -145953,291 +156118,311 @@ paths: default: value: data: - - attributes: - account_id: "123456789123" - bucket_name: dd-cost-bucket - bucket_region: us-east-1 - created_at: "2023-01-01T12:00:00.000000" - error_messages: [] - months: 36 - report_name: dd-report-name - report_prefix: dd-report-prefix - status: active - status_updated_at: "2023-01-01T12:00:00.000000" - updated_at: "2023-01-01T12:00:00.000000" - id: "123" - type: aws_cur_config + attributes: + created_at: "2026-09-01T18:46:15.933716Z" + created_by: 36ea1610-8866-4bd3-bb6d-9bb9fc87cad2 + denominator_query: + formulas: + - formula: denominator + queries: + - data_source: metrics + name: denominator + query: "avg:system.cpu.user{*}" + response_format: timeseries + denominator_type: metrics + name: Cloud cost per active user + numerator_query: + formulas: + - formula: numerator + queries: + - data_source: cloud_cost + name: numerator + query: "sum:aws.cost.net.amortized.shared.resources.allocated{*}.rollup(sum, daily)" + response_format: timeseries + org_id: 321813 + unit_label: user + updated_at: "2026-09-01T19:52:08.820536Z" + updated_by: 13cc0adf-2595-479e-b448-5051c180dddb + id: 64aecd58-e355-4f07-9c3a-56ff6bda6cd8 + type: unit_cost schema: - $ref: "#/components/schemas/AwsCURConfigsResponse" + $ref: "#/components/schemas/UnitCostResponse" description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "403": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" description: Forbidden "404": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_write - summary: Update Cloud Cost Management AWS CUR config + summary: Update a unit cost tags: - Cloud Cost Management "x-permission": operator: OR permissions: - - cloud_cost_management_write - /api/v2/cost/azure_uc_config: + - cloud_cost_management_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/cost_by_tag/active_billing_dimensions: get: - description: List the Azure configs. - operationId: ListCostAzureUCConfigs + description: |- + Get active billing dimensions for cost attribution. Cost data for a given month becomes available no later than the 19th of the following month. + operationId: GetActiveBillingDimensions responses: "200": content: - application/json: + application/json;datetime-format=rfc3339: examples: default: value: data: - - attributes: - configs: - - account_id: 1234abcd-1234-abcd-1234-1234abcd1234 - client_id: 1234abcd-1234-abcd-1234-1234abcd1234 - created_at: "2023-01-01T12:00:00.000000" - dataset_type: actual - error_messages: [] - export_name: dd-actual-export - export_path: dd-export-path - id: "123456789123" - months: 36 - scope: /subscriptions/1234abcd-1234-abcd-1234-1234abcd1234 - status: active - status_updated_at: "2023-01-01T12:00:00.000000" - storage_account: dd-storage-account - storage_container: dd-storage-container - updated_at: "2023-01-01T12:00:00.000000" - id: "123456789123" - type: azure_uc_configs + id: abc-123 + type: billing_dimensions schema: - $ref: "#/components/schemas/AzureUCConfigsResponse" + $ref: "#/components/schemas/ActiveBillingDimensionsResponse" description: OK + "400": + content: + application/json;datetime-format=rfc3339: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request "403": content: - application/json: + application/json;datetime-format=rfc3339: schema: $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden + description: Forbidden - User is not authorized "429": - $ref: "#/components/responses/TooManyRequestsResponse" + content: + application/json;datetime-format=rfc3339: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Too many requests security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cloud_cost_management_read - summary: List Cloud Cost Management Azure configs + - usage_read + summary: Get active billing dimensions for cost attribution tags: - - Cloud Cost Management + - Usage Metering "x-permission": operator: OR permissions: - - cloud_cost_management_read - post: - description: Create a Cloud Cost Management account for an Azure config. - operationId: CreateCostAzureUCConfigs - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - account_id: 1234abcd-1234-abcd-1234-1234abcd1234 - actual_bill_config: - export_name: dd-actual-export - export_path: dd-export-path - storage_account: dd-storage-account - storage_container: dd-storage-container - amortized_bill_config: - export_name: dd-actual-export - export_path: dd-export-path - storage_account: dd-storage-account - storage_container: dd-storage-container - client_id: 1234abcd-1234-abcd-1234-1234abcd1234 - scope: /subscriptions/1234abcd-1234-abcd-1234-1234abcd1234 - type: azure_uc_config_post_request - schema: - $ref: "#/components/schemas/AzureUCConfigPostRequest" - required: true + - usage_read + /api/v2/cost_by_tag/monthly_cost_attribution: + get: + description: |- + Get monthly cost attribution by tag across multi-org and single root-org accounts. + Cost Attribution data for a given month becomes available no later than the 19th of the following month. + This API endpoint is paginated. To make sure you receive all records, check if the value of `next_record_id` is + set in the response. If it is, make another request and pass `next_record_id` as a parameter. + Pseudo code example: + ``` + response := GetMonthlyCostAttribution(start_month, end_month) + cursor := response.metadata.pagination.next_record_id + WHILE cursor != null BEGIN + sleep(5 seconds) # Avoid running into rate limit + response := GetMonthlyCostAttribution(start_month, end_month, next_record_id=cursor) + cursor := response.metadata.pagination.next_record_id + END + ``` + + This endpoint is only accessible for [parent-level organizations](https://docs.datadoghq.com/account_management/multi_organization/). This endpoint is not available in the Government (US1-FED) site. + operationId: GetMonthlyCostAttribution + parameters: + - description: |- + Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost beginning in this month. + in: query + name: start_month + required: true + schema: + format: date-time + type: string + - description: "Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost ending this month." + in: query + name: end_month + required: false + schema: + format: date-time + type: string + - description: |- + Comma-separated list specifying cost types (e.g., `_on_demand_cost`, `_committed_cost`, `_total_cost`) and the + proportions (`_percentage_in_org`, `_percentage_in_account`). Use `*` to retrieve all fields. + Example: `infra_host_on_demand_cost,infra_host_percentage_in_account` + To obtain the complete list of active billing dimensions that can be used to replace + `` in the field names, make a request to the [Get active billing dimensions API](https://docs.datadoghq.com/api/latest/usage-metering/#get-active-billing-dimensions-for-cost-attribution). + in: query + name: fields + required: true + schema: + type: string + - description: "The direction to sort by: `[desc, asc]`." + in: query + name: sort_direction + required: false + schema: + $ref: "#/components/schemas/SortDirection" + - description: "The billing dimension to sort by. Always sorted by total cost. Example: `infra_host`." + in: query + name: sort_name + required: false + schema: + type: string + - description: |- + Comma separated list of tag keys used to group cost. If no value is provided the cost will not be broken down by tags. + To see which tags are available, look for the value of `tag_config_source` in the API response. + in: query + name: tag_breakdown_keys + required: false + schema: + type: string + - description: List following results with a next_record_id provided in the previous query. + in: query + name: next_record_id + required: false + schema: + type: string + - description: "Include child org cost in the response. Defaults to `true`." + in: query + name: include_descendants + required: false + schema: + default: true + type: boolean responses: "200": content: - application/json: + application/json;datetime-format=rfc3339: examples: default: value: data: - attributes: - configs: - - account_id: 1234abcd-1234-abcd-1234-1234abcd1234 - client_id: 1234abcd-1234-abcd-1234-1234abcd1234 - created_at: "2023-01-01T12:00:00.000000" - dataset_type: actual - error_messages: [] - export_name: dd-actual-export - export_path: dd-export-path - id: "123456789123" - months: 36 - scope: /subscriptions/1234abcd-1234-abcd-1234-1234abcd1234 - status: active - status_updated_at: "2023-01-01T12:00:00.000000" - storage_account: dd-storage-account - storage_container: dd-storage-container - updated_at: "2023-01-01T12:00:00.000000" - id: "123456789123" - type: azure_uc_configs + - id: abc-123 + type: cost_by_tag schema: - $ref: "#/components/schemas/AzureUCConfigPairsResponse" + $ref: "#/components/schemas/MonthlyCostAttributionResponse" description: OK "400": content: - application/json: + application/json;datetime-format=rfc3339: schema: $ref: "#/components/schemas/APIErrorResponse" description: Bad Request "403": content: - application/json: + application/json;datetime-format=rfc3339: schema: $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden + description: Forbidden - User is not authorized "429": - $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_write - summary: Create Cloud Cost Management Azure configs - tags: - - Cloud Cost Management - "x-permission": - operator: OR - permissions: - - cloud_cost_management_write - /api/v2/cost/azure_uc_config/{cloud_account_id}: - delete: - description: Archive a Cloud Cost Management Account. - operationId: DeleteCostAzureUCConfig - parameters: - - $ref: "#/components/parameters/CloudAccountID" - responses: - "204": - description: No Content - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request - "404": content: - application/json: + application/json;datetime-format=rfc3339: schema: $ref: "#/components/schemas/APIErrorResponse" - description: Not Found - "429": - $ref: "#/components/responses/TooManyRequestsResponse" + description: Too many requests security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cloud_cost_management_write - summary: Delete Cloud Cost Management Azure config + - usage_read + - billing_read + summary: Get Monthly Cost Attribution tags: - - Cloud Cost Management + - Usage Metering "x-permission": - operator: OR + operator: AND permissions: - - cloud_cost_management_write + - usage_read + - billing_read + /api/v2/csm/onboarding/agents: get: - description: Get a specific Azure config. - operationId: GetCostAzureUCConfig + description: Get the list of all CSM Agents running on your hosts and containers. + operationId: ListAllCSMAgents parameters: - - description: The unique identifier of the cloud account - in: path - name: cloud_account_id - required: true + - description: The page index for pagination (zero-based). + in: query + name: page + required: false schema: - format: int64 + example: 2 + format: int32 + maximum: 1000000 + minimum: 0 + type: integer + - description: The number of items to include in a single page. + in: query + name: size + required: false + schema: + example: 12 + format: int32 + maximum: 100 + minimum: 0 type: integer + - description: A search query string to filter results (for example, `hostname:COMP-T2H4J27423`). + in: query + name: query + required: false + schema: + example: "hostname:COMP-T2H4J27423" + type: string + - description: The sort direction for results. Use `asc` for ascending or `desc` for descending. + in: query + name: order_direction + required: false + schema: + $ref: "#/components/schemas/OrderDirection" responses: "200": content: - application/json: + "application/json": examples: default: value: data: - attributes: - configs: - - account_id: 1234abcd-1234-abcd-1234-1234abcd1234 - client_id: 1234abcd-1234-abcd-1234-1234abcd1234 - created_at: "2023-01-01T12:00:00.000000" - dataset_type: actual - error_messages: [] - export_name: dd-actual-export - export_path: dd-export-path - id: "123456789123" - months: 36 - scope: /subscriptions/1234abcd-1234-abcd-1234-1234abcd1234 - status: active - status_updated_at: "2023-01-01T12:00:00.000000" - storage_account: dd-storage-account - storage_container: dd-storage-container - updated_at: "2023-01-01T12:00:00.000000" - id: "123456789123" - type: azure_uc_configs + - attributes: + agent_version: "7.50.0" + hostname: example-host + os: linux + id: abc-123 + type: datadog_agent + meta: + page_index: 0 + page_size: 10 + total_filtered: 1 schema: - $ref: "#/components/schemas/UCConfigPair" + $ref: "#/components/schemas/CsmAgentsResponse" description: OK + "403": + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_read - summary: Get cost Azure UC config - tags: - - Cloud Cost Management - patch: - description: Update the status of an Azure config (active/archived). - operationId: UpdateCostAzureUCConfigs - parameters: - - $ref: "#/components/parameters/CloudAccountID" - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - is_enabled: true - type: azure_uc_config_patch_request - schema: - $ref: "#/components/schemas/AzureUCConfigPatchRequest" - required: true + summary: Get all CSM Agents + tags: ["CSM Agents"] + /api/v2/csm/onboarding/coverage_analysis/cloud_accounts: + get: + description: |- + Get the CSM Coverage Analysis of your Cloud Accounts. + This is calculated based on the number of your Cloud Accounts that are + scanned for security issues. + operationId: GetCSMCloudAccountsCoverageAnalysis responses: "200": content: @@ -146247,86 +156432,63 @@ paths: value: data: attributes: - configs: - - account_id: 1234abcd-1234-abcd-1234-1234abcd1234 - client_id: 1234abcd-1234-abcd-1234-1234abcd1234 - created_at: "2023-01-01T12:00:00.000000" - dataset_type: actual - error_messages: [] - export_name: dd-actual-export - export_path: dd-export-path - id: "123456789123" - months: 36 - scope: /subscriptions/1234abcd-1234-abcd-1234-1234abcd1234 - status: active - status_updated_at: "2023-01-01T12:00:00.000000" - storage_account: dd-storage-account - storage_container: dd-storage-container - updated_at: "2023-01-01T12:00:00.000000" - id: "123456789123" - type: azure_uc_configs + org_id: 123 + total_coverage: + configured_resources_count: 8 + coverage: 0.8 + partially_configured_resources_count: 0 + total_resources_count: 10 + id: abc-123 + type: get_cloud_accounts_coverage_analysis_response_public_v0 schema: - $ref: "#/components/schemas/AzureUCConfigPairsResponse" + $ref: "#/components/schemas/CsmCloudAccountsCoverageAnalysisResponse" description: OK - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Get the CSM Cloud Accounts Coverage Analysis + tags: ["CSM Coverage Analysis"] + /api/v2/csm/onboarding/coverage_analysis/hosts_and_containers: + get: + description: |- + Get the CSM Coverage Analysis of your Hosts and Containers. + This is calculated based on the number of agents running on your Hosts + and Containers with CSM feature(s) enabled. + operationId: GetCSMHostsAndContainersCoverageAnalysis + responses: + "200": content: application/json: + examples: + default: + value: + data: + attributes: + org_id: 123 + total_coverage: + configured_resources_count: 8 + coverage: 0.8 + partially_configured_resources_count: 0 + total_resources_count: 10 + id: abc-123 + type: get_hosts_and_containers_coverage_analysis_response_public_v0 schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Not Found + $ref: "#/components/schemas/CsmHostsAndContainersCoverageAnalysisResponse" + description: OK + "403": + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_write - summary: Update Cloud Cost Management Azure config - tags: - - Cloud Cost Management - "x-permission": - operator: OR - permissions: - - cloud_cost_management_write - /api/v2/cost/budget: - put: - description: Create a new budget or update an existing one. - operationId: UpsertBudget - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - created_at: 1738258683590 - created_by: 00000000-0a0a-0a0a-aaa0-00000000000a - end_month: 202502 - metrics_query: aws.cost.amortized{service:ec2} by {service} - name: my budget - org_id: 123 - start_month: 202501 - total_amount: 1000 - updated_at: 1738258683590 - updated_by: 00000000-0a0a-0a0a-aaa0-00000000000a - id: 00000000-0a0a-0a0a-aaa0-00000000000a - type: "" - schema: - $ref: "#/components/schemas/BudgetWithEntries" - required: true + summary: Get the CSM Hosts and Containers Coverage Analysis + tags: ["CSM Coverage Analysis"] + /api/v2/csm/onboarding/coverage_analysis/serverless: + get: + description: |- + Get the CSM Coverage Analysis of your Serverless Resources. + This is calculated based on the number of agents running on your Serverless + Resources with CSM feature(s) enabled. + operationId: GetCSMServerlessCoverageAnalysis responses: "200": content: @@ -146336,91 +156498,92 @@ paths: value: data: attributes: - created_at: 1738258683590 - created_by: 00000000-0a0a-0a0a-aaa0-00000000000a - end_month: 202502 - entries: - - amount: 500 - month: 202501 - tag_filters: - - tag_key: service - tag_value: ec2 - metrics_query: aws.cost.amortized{service:ec2} by {service} - name: my budget org_id: 123 - start_month: 202501 - total_amount: 1000 - updated_at: 1738258683590 - updated_by: 00000000-0a0a-0a0a-aaa0-00000000000a - id: 00000000-0a0a-0a0a-aaa0-00000000000a - type: budget + total_coverage: + configured_resources_count: 8 + coverage: 0.8 + partially_configured_resources_count: 0 + total_resources_count: 10 + id: abc-123 + type: get_serverless_coverage_analysis_response_public_v0 schema: - $ref: "#/components/schemas/BudgetWithEntries" + $ref: "#/components/schemas/CsmServerlessCoverageAnalysisResponse" description: OK - "400": - $ref: "#/components/responses/BadRequestResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" + "403": + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: [] - summary: Create or update a budget - tags: - - Cloud Cost Management - /api/v2/cost/budget/csv/validate: - post: - operationId: ValidateCsvBudget + summary: Get the CSM Serverless Coverage Analysis + tags: ["CSM Coverage Analysis"] + /api/v2/csm/onboarding/serverless/agents: + get: + description: Get the list of all CSM Serverless Agents running on your hosts and containers. + operationId: ListAllCSMServerlessAgents + parameters: + - description: The page index for pagination (zero-based). + in: query + name: page + required: false + schema: + example: 2 + format: int32 + maximum: 1000000 + minimum: 0 + type: integer + - description: The number of items to include in a single page. + in: query + name: size + required: false + schema: + example: 12 + format: int32 + maximum: 100 + minimum: 0 + type: integer + - description: A search query string to filter results (for example, `hostname:COMP-T2H4J27423`). + in: query + name: query + required: false + schema: + example: "hostname:COMP-T2H4J27423" + type: string + - description: The sort direction for results. Use `asc` for ascending or `desc` for descending. + in: query + name: order_direction + required: false + schema: + $ref: "#/components/schemas/OrderDirection" responses: "200": content: - application/json: + "application/json": examples: default: value: - errors: [] + data: + - attributes: + agent_version: "7.50.0" + hostname: example-host + os: linux + id: abc-123 + type: datadog_agent + meta: + page_index: 0 + page_size: 10 + total_filtered: 1 schema: - $ref: "#/components/schemas/ValidationResponse" + $ref: "#/components/schemas/CsmAgentsResponse" description: OK + "403": + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: [] - summary: Validate CSV budget - tags: - - Cloud Cost Management - /api/v2/cost/budget/custom-forecast: - put: - description: |- - Create or replace the custom forecast for an existing budget. - Pass an empty `entries` list to delete the custom forecast for the budget. - operationId: UpsertCustomForecast - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - budget_uid: 00000000-0000-0000-0000-000000000001 - entries: - - amount: 400 - month: 202501 - tag_filters: - - tag_key: service - tag_value: ec2 - - amount: 450 - month: 202502 - tag_filters: - - tag_key: service - tag_value: ec2 - id: "" - type: custom_forecast - schema: - $ref: "#/components/schemas/CustomForecastUpsertRequest" - required: true + summary: Get all CSM Serverless Agents + tags: ["CSM Agents"] + /api/v2/csm/ownership/settings: + get: + description: Get ownership settings for the org. When settings are unset, the API returns the default opt-out configuration with `auto_tag` set to `true` and `confidence_level` set to `high`. + operationId: GetOwnershipSettings responses: "200": content: @@ -146430,44 +156593,30 @@ paths: value: data: attributes: - budget_uid: 00000000-0000-0000-0000-000000000001 - created_at: 1738258683590 - created_by: 00000000-0a0a-0a0a-aaa0-00000000000a - entries: - - amount: 400 - month: 202501 - tag_filters: - - tag_key: service - tag_value: ec2 - - amount: 450 - month: 202502 - tag_filters: - - tag_key: service - tag_value: ec2 - updated_at: 1738258683590 - updated_by: 00000000-0a0a-0a0a-aaa0-00000000000a - id: 11111111-1111-1111-1111-111111111111 - type: custom_forecast + auto_tag: true + confidence_level: high + version: 1 + id: settings + type: ownership_settings schema: - $ref: "#/components/schemas/CustomForecastResponse" + $ref: "#/components/schemas/OwnershipSettingsResponse" description: OK - "400": - $ref: "#/components/responses/BadRequestResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: [] - summary: Create or replace a budget's custom forecast - tags: - - Cloud Cost Management - /api/v2/cost/budget/validate: + summary: Get ownership settings for the org + tags: ["CSM Ownership"] + x-unstable: |- + **Note**: This endpoint is in Preview and may be subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). post: - description: Validate a budget configuration without creating or modifying it - operationId: ValidateBudget + description: Update ownership settings for the org. + operationId: PostOwnershipSettings requestBody: content: application/json: @@ -146476,31 +156625,11 @@ paths: value: data: attributes: - created_at: 1738258683590 - created_by: 00000000-0a0a-0a0a-aaa0-00000000000a - end_month: 202502 - entries: - - amount: 500 - month: 202501 - tag_filters: - - tag_key: service - tag_value: ec2 - - amount: 500 - month: 202502 - tag_filters: - - tag_key: service - tag_value: ec2 - metrics_query: aws.cost.amortized{service:ec2} by {service} - name: my budget - org_id: 123 - start_month: 202501 - total_amount: 1000 - updated_at: 1738258683590 - updated_by: 00000000-0a0a-0a0a-aaa0-00000000000a - id: "1" - type: budget + auto_tag: true + confidence_level: high + type: ownership_settings schema: - $ref: "#/components/schemas/BudgetValidationRequest" + $ref: "#/components/schemas/OwnershipSettingsRequest" required: true responses: "200": @@ -146511,70 +156640,161 @@ paths: value: data: attributes: - errors: [] - valid: true - id: budget_validation - type: budget_validation + auto_tag: true + confidence_level: high + version: 1 + id: settings + type: ownership_settings schema: - $ref: "#/components/schemas/BudgetValidationResponse" + $ref: "#/components/schemas/OwnershipSettingsResponse" description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: [] - summary: Validate budget - tags: - - Cloud Cost Management - /api/v2/cost/budget/{budget_id}: - delete: - description: Delete a budget - operationId: DeleteBudget - parameters: - - $ref: "#/components/parameters/BudgetID" + summary: Update ownership settings for the org + tags: ["CSM Ownership"] + x-unstable: |- + **Note**: This endpoint is in Preview and may be subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/csm/ownership/settings/untagged: + get: + description: Count findings with no team tag, grouped by ownership confidence level. + operationId: GetOwnershipUntaggedFindings responses: - "204": - description: No Content + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + high_confidence: 30 + low_confidence: 42 + medium_confidence: 70 + total: 142 + id: untagged + type: ownership_untagged_findings + schema: + $ref: "#/components/schemas/OwnershipUntaggedFindingsResponse" + description: OK + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: [] - summary: Delete budget - tags: - - Cloud Cost Management + summary: Count untagged findings by ownership confidence + tags: ["CSM Ownership"] + x-unstable: |- + **Note**: This endpoint is in Preview and may be subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/csm/ownership/{resource_id}: get: - description: Get a budget by ID. Pass `actual=true` or `forecast=true` to include cost data in the response. Use `start` and `end` (millisecond epochs, both required) to set the cost window. When `forecast=true`, each entry also includes `ootb_forecast` (the ML forecast before overrides) and `custom_forecast` (`null` if no override is set, a number if one is). - operationId: GetBudget + description: Get all current ownership inferences for a resource, one per owner type (`user`, `team`, `service`, `unknown`). + operationId: ListOwnershipInferences parameters: - - $ref: "#/components/parameters/BudgetID" - - description: When `true`, includes actual cost data in the response. - in: query - name: actual - required: false + - description: The identifier of the resource to retrieve ownership inferences for. + in: path + name: resource_id + required: true schema: - type: boolean - - description: When `true`, includes forecast cost data in the response, including `ootb_forecast` and `custom_forecast` per entry. - in: query - name: forecast - required: false + example: test-resource + type: string + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + items: + - checksum: abc123 + confidence: "0.9500" + created_at: "2026-01-15T10:00:00Z" + evidence_versions: + - pipeline_id: p1 + explanation: High confidence match + id: test-resource:team + owner_type: team + primary_contact_ref: ref:handle/team-a + sources: [] + status: suggested + updated_at: "2026-01-15T10:00:00Z" + id: test-resource + type: ownership_inferences + schema: + $ref: "#/components/schemas/OwnershipInferenceListResponse" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: List ownership inferences for a resource + tags: ["CSM Ownership"] + x-unstable: |- + **Note**: This endpoint is in Preview and may be subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/csm/ownership/{resource_id}/history: + get: + description: List inference history entries for a resource across all owner types, ordered from most recent to oldest. Uses cursor-based pagination. + operationId: ListOwnershipHistory + parameters: + - description: The identifier of the resource to retrieve inference history for. + in: path + name: resource_id + required: true schema: - type: boolean - - description: Start of the cost window in milliseconds since epoch. Must be used together with `end`. + example: res-1 + type: string + - description: An opaque, base64-encoded cursor token returned by a previous call in `pagination.next_cursor`. Omit to fetch the first page. in: query - name: start + name: cursor required: false schema: - format: int64 - type: integer - - description: End of the cost window in milliseconds since epoch. Must be used together with `start`. + example: eyJpZCI6OTh9 + type: string + - description: The maximum number of history entries to return per page. in: query - name: end + name: limit required: false schema: - format: int64 + default: 25 + example: 25 + format: int32 + maximum: 100 + minimum: 1 type: integer responses: "200": @@ -146585,87 +156805,76 @@ paths: value: data: attributes: - costs: - actual: 850.25 - amount: 1000.0 - forecast: 1100.5 - ootb_forecast: 1100.5 - costs_period_end: 1740873600000 - costs_period_start: 1738281600000 - costs_unit: - family: currency - id: 42 - name: dollar - plural: dollars - scale_factor: 1.0 - short_name: $ - created_at: 1738258683590 - created_by: 00000000-0a0a-0a0a-aaa0-00000000000a - end_month: 202502 - entries: - - amount: 500 - costs: - actual: 425.5 - amount: 500.0 - custom_forecast: - forecast: 550.25 - ootb_forecast: 550.25 - month: 202501 - tag_filters: - - tag_key: service - tag_value: ec2 - metrics_query: aws.cost.amortized{service:ec2} by {service} - name: my budget - org_id: 123 - start_month: 202501 - total_amount: 1000 - updated_at: 1738258683590 - updated_by: 00000000-0a0a-0a0a-aaa0-00000000000a - id: 00000000-0a0a-0a0a-aaa0-00000000000a - type: budget + items: + - checksum: "" + confidence: "0.9000" + created_at: "2026-01-15T10:00:00Z" + evidence_versions: + explanation: "" + failed_at: + failure_reason: + id: 100 + owner_type: team + primary_contact_ref: ref:handle/team-a + resource_id: res-1 + retry_schedule: + sources: [] + status: suggested + pagination: + has_more: false + next_cursor: + id: res-1 + type: ownership_history schema: - $ref: "#/components/schemas/BudgetWithEntries" + $ref: "#/components/schemas/OwnershipHistoryResponse" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: [] - summary: Get budget - tags: - - Cloud Cost Management - /api/v2/cost/budget/{budget_id}/custom-forecast: - delete: - description: Delete the custom forecast for a budget. - operationId: DeleteCustomForecast - parameters: - - $ref: "#/components/parameters/BudgetID" - responses: - "204": - description: No Content - "400": - $ref: "#/components/responses/BadRequestResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: [] - summary: Delete a budget's custom forecast - tags: - - Cloud Cost Management + summary: List ownership inference history for a resource + tags: ["CSM Ownership"] + x-unstable: |- + **Note**: This endpoint is in Preview and may be subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/csm/ownership/{resource_id}/{owner_type}: get: - description: Get the custom forecast for a budget. - operationId: GetCustomForecast + description: |- + Get the current ownership inference for a resource for a specific owner type. + + This endpoint supports ETag-based caching. Pass the previously returned `ETag` value in the `If-None-Match` request header to receive a `304 Not Modified` response when the inference has not changed. + operationId: GetOwnershipInference parameters: - - $ref: "#/components/parameters/BudgetID" + - description: The identifier of the resource to retrieve the ownership inference for. + in: path + name: resource_id + required: true + schema: + example: test-resource + type: string + - description: The owner type of the inference to retrieve. + in: path + name: owner_type + required: true + schema: + $ref: "#/components/schemas/OwnershipOwnerType" + - description: A previously returned `ETag` value. When supplied and the resource has not changed, the endpoint returns `304 Not Modified`. + in: header + name: If-None-Match + required: false + schema: + example: '"abc123"' + type: string responses: "200": content: @@ -146675,44 +156884,86 @@ paths: value: data: attributes: - budget_uid: 00000000-0000-0000-0000-000000000001 - created_at: 1738258683590 - created_by: 00000000-0a0a-0a0a-aaa0-00000000000a - entries: - - amount: 400 - month: 202501 - tag_filters: - - tag_key: service - tag_value: ec2 - - amount: 450 - month: 202502 - tag_filters: - - tag_key: service - tag_value: ec2 - updated_at: 1738258683590 - updated_by: 00000000-0a0a-0a0a-aaa0-00000000000a - id: 11111111-1111-1111-1111-111111111111 - type: custom_forecast + checksum: abc123 + confidence: "0.9500" + created_at: "2026-01-15T10:00:00Z" + evidence_versions: + - pipeline_id: p1 + explanation: High confidence match + owner_type: team + primary_contact_ref: ref:handle/team-a + sources: [] + status: suggested + updated_at: "2026-01-15T10:00:00Z" + id: test-resource:team + type: ownership_inference schema: - $ref: "#/components/schemas/CustomForecastResponse" + $ref: "#/components/schemas/OwnershipInferenceResponse" description: OK + headers: + Cache-Control: + description: The cache control directives applied to the response. + schema: + example: private, max-age=60 + type: string + ETag: + description: A strong validator that identifies the current state of the inference. + schema: + example: '"abc123"' + type: string "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: [] - summary: Get a budget's custom forecast - tags: - - Cloud Cost Management - /api/v2/cost/budgets: + summary: Get an ownership inference by owner type + tags: ["CSM Ownership"] + x-unstable: |- + **Note**: This endpoint is in Preview and may be subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/csm/ownership/{resource_id}/{owner_type}/evidence: get: - description: List budgets. - operationId: ListBudgets + description: |- + Get the evidence versions backing the current ownership inference for a resource and owner type. + + This endpoint supports weak ETag caching. Pass the previously returned `ETag` value in the `If-None-Match` request header to receive a `304 Not Modified` response when the evidence has not changed. + operationId: GetOwnershipEvidence + parameters: + - description: The identifier of the resource to retrieve evidence for. + in: path + name: resource_id + required: true + schema: + example: test-resource + type: string + - description: The owner type of the inference to retrieve evidence for. + in: path + name: owner_type + required: true + schema: + $ref: "#/components/schemas/OwnershipOwnerType" + - description: A previously returned weak `ETag` value. When supplied and the evidence has not changed, the endpoint returns `304 Not Modified`. + in: header + name: If-None-Match + required: false + schema: + example: W/"f2e126916327bda8" + type: string responses: "200": content: @@ -146721,96 +156972,171 @@ paths: default: value: data: - - attributes: - created_at: 1741011342772 - created_by: user1 - end_month: 202502 - metrics_query: aws.cost.amortized{service:ec2} by {service} - name: my budget - org_id: 123 - start_month: 202501 - total_amount: 1000 - updated_at: 1741011342772 - updated_by: user2 - id: 00000000-0a0a-0a0a-aaa0-00000000000a - type: budget + attributes: + evidence_versions: + - pipeline_id: p1 + version: v3 + id: test-resource + type: ownership_evidence schema: - $ref: "#/components/schemas/BudgetArray" + $ref: "#/components/schemas/OwnershipEvidenceResponse" description: OK + headers: + ETag: + description: A weak validator that identifies the current state of the evidence. + schema: + example: W/"f2e126916327bda8" + type: string + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: [] - summary: List budgets - tags: - - Cloud Cost Management - /api/v2/cost/commitments/commitment-list: - get: - description: Get a list of individual cloud commitments (Reserved Instances or Savings Plans) with their utilization details. The response schema varies based on the provider, product, and commitment type. - operationId: GetCommitmentsCommitmentList + summary: Get the evidence for an ownership inference + tags: ["CSM Ownership"] + x-unstable: |- + **Note**: This endpoint is in Preview and may be subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/csm/ownership/{resource_id}/{owner_type}/feedback: + post: + description: |- + Submit feedback on the current ownership inference for a resource and owner type. Valid actions are `confirm`, `reject`, `correct`, and `persist`. + + The request must include the current inference `checksum` in `inference_checksum`. If the checksum does not match the current inference state, the endpoint returns `409 Conflict`. + + When `action` is `correct`, `corrected_owner_handle` and `corrected_owner_type` are required. + operationId: CreateOwnershipFeedback parameters: - - $ref: "#/components/parameters/CommitmentsProvider" - - $ref: "#/components/parameters/CommitmentsProduct" - - $ref: "#/components/parameters/CommitmentsStart" - - $ref: "#/components/parameters/CommitmentsEnd" - - $ref: "#/components/parameters/CommitmentsFilterBy" - - $ref: "#/components/parameters/CommitmentsCommitmentType" + - description: The identifier of the resource that the feedback applies to. + in: path + name: resource_id + required: true + schema: + example: res-1 + type: string + - description: The type of owner that the feedback applies to. + in: path + name: owner_type + required: true + schema: + $ref: "#/components/schemas/OwnershipOwnerType" + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + action: confirm + inference_checksum: abc123 + type: ownership_feedback + schema: + $ref: "#/components/schemas/OwnershipFeedbackRequest" + required: true responses: - "200": + "201": content: application/json: examples: default: value: - commitments: - - commitment_id: ri-0123456789abcdef0 - expiration_date: "2025-12-31T00:00:00Z" - instance_type: m5.xlarge - offering_class: standard - operating_system: Linux - purchase_option: All Upfront - region: us-east-1 - start_date: "2023-01-01T00:00:00Z" - term_length: 1 - utilization: 0.85 + data: + attributes: + action: confirm + checksum: abc123 + new_status: suggested + owner_type: team + previous_status: suggested + primary_contact_ref: ref:handle/team-a + updated_at: "2026-01-15T10:00:00Z" + id: res-1 + type: ownership_feedback_result schema: - $ref: "#/components/schemas/CommitmentsListResponse" - description: OK + $ref: "#/components/schemas/OwnershipFeedbackResponse" + description: Created "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Bad Request + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/OwnershipInferenceResponse" + description: Conflict "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_read - summary: Get commitments list - tags: - - Cloud Cost Management - "x-permission": - operator: OR - permissions: - - cloud_cost_management_read + summary: Submit feedback on an ownership inference + tags: ["CSM Ownership"] x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. + **Note**: This endpoint is in Preview and may be subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/cost/commitments/coverage/scalar: + /api/v2/csm/ownership/{resource_id}/{owner_type}/history: get: - description: Get scalar coverage metrics for cloud commitment programs, including hours and cost coverage percentages. - operationId: GetCommitmentsCoverageScalar + description: List inference history entries for a resource filtered by owner type, ordered from most recent to oldest. Uses cursor-based pagination. + operationId: ListOwnershipHistoryByOwnerType parameters: - - $ref: "#/components/parameters/CommitmentsProvider" - - $ref: "#/components/parameters/CommitmentsProduct" - - $ref: "#/components/parameters/CommitmentsStart" - - $ref: "#/components/parameters/CommitmentsEnd" - - $ref: "#/components/parameters/CommitmentsFilterBy" + - description: The identifier of the resource to retrieve inference history for. + in: path + name: resource_id + required: true + schema: + example: res-1 + type: string + - description: The owner type to filter history by. + in: path + name: owner_type + required: true + schema: + $ref: "#/components/schemas/OwnershipOwnerType" + - description: An opaque, base64-encoded cursor token returned by a previous call in `pagination.next_cursor`. Omit to fetch the first page. + in: query + name: cursor + required: false + schema: + example: eyJpZCI6OTh9 + type: string + - description: The maximum number of history entries to return per page. + in: query + name: limit + required: false + schema: + default: 25 + example: 25 + format: int32 + maximum: 100 + minimum: 1 + type: integer responses: "200": content: @@ -146818,25 +157144,30 @@ paths: examples: default: value: - columns: - - name: service - type: group - values: - - - ec2 - - meta: - unit: - family: percentage - id: 17 - name: percent - plural: percent - scale_factor: 1 - short_name: "%" - name: hours_coverage - type: number - values: - - 0.78 + data: + attributes: + items: + - checksum: "" + confidence: "0.9000" + created_at: "2026-01-15T10:00:00Z" + evidence_versions: + explanation: "" + failed_at: + failure_reason: + id: 100 + owner_type: team + primary_contact_ref: ref:handle/team-a + resource_id: res-1 + retry_schedule: + sources: [] + status: suggested + pagination: + has_more: false + next_cursor: + id: res-1 + type: ownership_history schema: - $ref: "#/components/schemas/CommitmentsCoverageScalarResponse" + $ref: "#/components/schemas/OwnershipHistoryResponse" description: OK "400": content: @@ -146844,33 +157175,53 @@ paths: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Bad Request + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_read - summary: Get commitments coverage (scalar) - tags: - - Cloud Cost Management - "x-permission": - operator: OR - permissions: - - cloud_cost_management_read + summary: List ownership history by owner type + tags: ["CSM Ownership"] x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. + **Note**: This endpoint is in Preview and may be subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/cost/commitments/coverage/timeseries: + /api/v2/csm/settings/agentless_hosts: get: - description: Get timeseries coverage metrics for cloud commitment programs, broken down by coverage type (Reserved Instances, Savings Plans, On-Demand, and Spot) for both hours and cost. - operationId: GetCommitmentsCoverageTimeseries + description: Get the list of agentless hosts for CSM, with optional pagination and filtering. + operationId: ListCSMAgentlessHosts parameters: - - $ref: "#/components/parameters/CommitmentsProvider" - - $ref: "#/components/parameters/CommitmentsProduct" - - $ref: "#/components/parameters/CommitmentsStart" - - $ref: "#/components/parameters/CommitmentsEnd" - - $ref: "#/components/parameters/CommitmentsFilterBy" + - description: The page index for pagination (zero-based). + in: query + name: page + required: false + schema: + default: 0 + example: 0 + format: int32 + maximum: 1000000 + minimum: 0 + type: integer + - description: The number of agentless hosts to return per page. + in: query + name: size + required: false + schema: + default: 10 + example: 10 + format: int32 + maximum: 100 + minimum: 1 + type: integer + - description: A search query string to filter agentless hosts. + in: query + name: query + required: false + schema: + example: "cloud_provider:aws" + type: string responses: "200": content: @@ -146878,42 +157229,21 @@ paths: examples: default: value: - cost: - series: - on_demand_only: - - 1000.0 - - 900.0 - ri: - - 3600.0 - - 3700.0 - sp: - - 400.0 - - 400.0 - spot_only: - - 50.0 - - 50.0 - times: - - 1693526400 - - 1693612800 - hours: - series: - on_demand_only: - - 500.0 - - 450.0 - ri: - - 1800.0 - - 1850.0 - sp: - - 200.0 - - 200.0 - spot_only: - - 100.0 - - 100.0 - times: - - 1693526400 - - 1693612800 + data: + - attributes: + account_id: "123456789012" + cloud_provider: aws + has_posture_management: true + has_vulnerability_scanning: true + resource_type: aws_ec2_instance + id: i-0123456789abcdef0 + type: agentless_host + meta: + page_index: 0 + page_size: 10 + total_filtered: 1 schema: - $ref: "#/components/schemas/CommitmentsCoverageTimeseriesResponse" + $ref: "#/components/schemas/CsmAgentlessHostsResponse" description: OK "400": content: @@ -146921,33 +157251,41 @@ paths: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Bad Request + "403": + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_read - summary: Get commitments coverage (timeseries) - tags: - - Cloud Cost Management - "x-permission": - operator: OR - permissions: - - cloud_cost_management_read + summary: List agentless hosts + tags: ["CSM Settings"] x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. + **Note**: This endpoint is in Preview and may be subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/cost/commitments/on-demand-hot-spots/scalar: + /api/v2/csm/settings/agentless_hosts/facet_info: get: - description: Get scalar on-demand hot-spots data for cloud commitment programs, showing per-dimension breakdowns of on-demand spending with coverage metrics and potential savings. - operationId: GetCommitmentsOnDemandHotspotsScalar + description: Get the value distribution for a specific agentless host facet, with optional search and filtering. + operationId: GetCSMAgentlessHostFacetInfo parameters: - - $ref: "#/components/parameters/CommitmentsProvider" - - $ref: "#/components/parameters/CommitmentsProduct" - - $ref: "#/components/parameters/CommitmentsStart" - - $ref: "#/components/parameters/CommitmentsEnd" - - $ref: "#/components/parameters/CommitmentsFilterBy" + - description: The facet identifier to retrieve value distribution for. Valid values are `resource_name`, `account_id`, `resource_type`, `cloud_provider`, `has_vulnerability_scanning`, and `has_posture_management`. + in: query + name: facet + required: true + schema: + example: cloud_provider + type: string + - description: A search string to filter the facet values. + in: query + name: search + required: false + schema: + example: aws + type: string + - description: A filter query to scope the facet value counts. + in: query + name: query + required: false + schema: + example: "cloud_provider:aws" + type: string responses: "200": content: @@ -146955,38 +157293,19 @@ paths: examples: default: value: - columns: - - name: service - type: group - values: - - - ec2 - - meta: - unit: - family: money - id: 1 - name: dollar - plural: dollars - scale_factor: 1 - short_name: "$" - name: on_demand_cost - type: number - values: - - 1500.0 - total: - - meta: - unit: - family: money - id: 1 - name: dollar - plural: dollars - scale_factor: 1 - short_name: "$" - name: on_demand_cost - type: number - values: - - 1500.0 + data: + attributes: + items: + - count: 100 + value: aws + - count: 50 + value: gcp + id: cloud_provider + meta: + total_count: 2 + type: facet_info schema: - $ref: "#/components/schemas/CommitmentsOnDemandHotspotsScalarResponse" + $ref: "#/components/schemas/CsmHostFacetInfoResponse" description: OK "400": content: @@ -146994,33 +157313,19 @@ paths: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Bad Request + "403": + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_read - summary: Get commitments on-demand hot spots (scalar) - tags: - - Cloud Cost Management - "x-permission": - operator: OR - permissions: - - cloud_cost_management_read + summary: Get agentless host facet info + tags: ["CSM Settings"] x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. + **Note**: This endpoint is in Preview and may be subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/cost/commitments/savings/scalar: + /api/v2/csm/settings/agentless_hosts/facets: get: - description: Get scalar savings metrics for cloud commitment programs, including realized savings and effective savings rate. - operationId: GetCommitmentsSavingsScalar - parameters: - - $ref: "#/components/parameters/CommitmentsProvider" - - $ref: "#/components/parameters/CommitmentsProduct" - - $ref: "#/components/parameters/CommitmentsStart" - - $ref: "#/components/parameters/CommitmentsEnd" - - $ref: "#/components/parameters/CommitmentsFilterBy" + description: Get the list of available facets for filtering agentless hosts. + operationId: ListCSMAgentlessHostFacets responses: "200": content: @@ -147028,67 +157333,74 @@ paths: examples: default: value: - columns: - - meta: - unit: - family: money - id: 1 - name: dollar - plural: dollars - scale_factor: 1 - short_name: "$" - name: realized_savings - type: number - values: - - 2500.0 - - meta: - unit: - family: percentage - id: 17 - name: percent - plural: percent - scale_factor: 1 - short_name: "%" - name: effective_savings_rate - type: number - values: - - 0.33 + data: + - attributes: + bounded: true + bundled: true + bundledAndUsed: true + defaultValues: [] + description: The cloud provider of the resource. + editable: false + facetType: list + groups: + - agentless + name: Cloud Provider + path: cloud_provider + source: core + type: string + values: + - aws + - gcp + - azure + - oci + id: cloud_provider + type: agentless_host_facet schema: - $ref: "#/components/schemas/CommitmentsSavingsScalarResponse" + $ref: "#/components/schemas/CsmAgentlessHostFacetsResponse" description: OK - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + "403": + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_read - summary: Get commitments savings (scalar) - tags: - - Cloud Cost Management - "x-permission": - operator: OR - permissions: - - cloud_cost_management_read + summary: List agentless host facets + tags: ["CSM Settings"] x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. + **Note**: This endpoint is in Preview and may be subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/cost/commitments/savings/timeseries: + /api/v2/csm/settings/hosts: get: - description: Get timeseries savings metrics for cloud commitment programs, including actual cost, on-demand equivalent cost, realized savings, and effective savings rate over time. - operationId: GetCommitmentsSavingsTimeseries + description: Get the list of unified hosts for CSM, combining agent and agentless host data, with optional pagination and filtering. + operationId: ListCSMUnifiedHosts parameters: - - $ref: "#/components/parameters/CommitmentsProvider" - - $ref: "#/components/parameters/CommitmentsProduct" - - $ref: "#/components/parameters/CommitmentsStart" - - $ref: "#/components/parameters/CommitmentsEnd" - - $ref: "#/components/parameters/CommitmentsFilterBy" + - description: The page index for pagination (zero-based). + in: query + name: page + required: false + schema: + default: 0 + example: 0 + format: int32 + maximum: 1000000 + minimum: 0 + type: integer + - description: The number of hosts to return per page. + in: query + name: size + required: false + schema: + default: 10 + example: 10 + format: int32 + maximum: 100 + minimum: 1 + type: integer + - description: A search query string to filter unified hosts. + in: query + name: query + required: false + schema: + example: "source:agent" + type: string responses: "200": content: @@ -147096,47 +157408,32 @@ paths: examples: default: value: - actual_cost: - series: - total: - - 5000.0 - - 5200.0 - times: - - 1693526400 - - 1693612800 - unit: - family: money - id: 1 - name: dollar - plural: dollars - scale_factor: 1 - short_name: "$" - effective_savings_rate: - series: - total: - - 0.33 - - 0.33 - times: - - 1693526400 - - 1693612800 - on_demand_equivalent_cost: - series: - total: - - 7500.0 - - 7800.0 - times: - - 1693526400 - - 1693612800 - realized_savings: - series: - total: - - 2500.0 - - 2600.0 - times: - - 1693526400 - - 1693612800 + data: + - attributes: + agent_cws_enabled: false + agent_posture_management: true + agent_version: 7.50.0 + datadog_agent_key: key123 + os: linux + source: agent + id: agent-host + type: unified_host + - attributes: + account_id: "123456789012" + agentless_posture_management: true + agentless_vulnerability_scanning: true + cloud_provider: aws + resource_type: aws_ec2_instance + source: agentless + id: i-0123456789abcdef0 + type: unified_host + meta: + page_index: 0 + page_size: 10 + total_filtered: 2 + total_pages: 1 schema: - $ref: "#/components/schemas/CommitmentsSavingsTimeseriesResponse" + $ref: "#/components/schemas/CsmUnifiedHostsResponse" description: OK "400": content: @@ -147144,34 +157441,41 @@ paths: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Bad Request + "403": + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_read - summary: Get commitments savings (timeseries) - tags: - - Cloud Cost Management - "x-permission": - operator: OR - permissions: - - cloud_cost_management_read + summary: List unified hosts + tags: ["CSM Settings"] x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. + **Note**: This endpoint is in Preview and may be subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/cost/commitments/utilization/scalar: + /api/v2/csm/settings/hosts/facet_info: get: - description: Get scalar utilization metrics for cloud commitment programs, including utilization percentage and unused cost. - operationId: GetCommitmentsUtilizationScalar + description: Get the value distribution for a specific unified host facet, with optional search and filtering. + operationId: GetCSMUnifiedHostFacetInfo parameters: - - $ref: "#/components/parameters/CommitmentsProvider" - - $ref: "#/components/parameters/CommitmentsProduct" - - $ref: "#/components/parameters/CommitmentsStart" - - $ref: "#/components/parameters/CommitmentsEnd" - - $ref: "#/components/parameters/CommitmentsFilterBy" - - $ref: "#/components/parameters/CommitmentsCommitmentType" + - description: The facet identifier to retrieve value distribution for. Valid values include `resource_name`, `account_id`, `resource_type`, `cloud_provider`, `agentless_vulnerability_scanning`, `agentless_posture_management`, `hostname`, `agent_version`, `os`, `cluster_name`, `agent_posture_management`, `agent_cws_enabled`, `agent_csm_vm_hosts_enabled`, and `agent_csm_vm_containers_enabled`. + in: query + name: facet + required: true + schema: + example: cloud_provider + type: string + - description: A search string to filter the facet values. + in: query + name: search + required: false + schema: + example: aws + type: string + - description: A filter query to scope the facet value counts. + in: query + name: query + required: false + schema: + example: "cloud_provider:aws" + type: string responses: "200": content: @@ -147179,27 +157483,19 @@ paths: examples: default: value: - columns: - - name: service - type: group - values: - - - ec2 - - - rds - - meta: - unit: - family: percentage - id: 17 - name: percent - plural: percent - scale_factor: 1 - short_name: "%" - name: utilization - type: number - values: - - 0.85 - - 0.72 + data: + attributes: + items: + - count: 100 + value: aws + - count: 50 + value: gcp + id: cloud_provider + meta: + total_count: 2 + type: facet_info schema: - $ref: "#/components/schemas/CommitmentsUtilizationScalarResponse" + $ref: "#/components/schemas/CsmHostFacetInfoResponse" description: OK "400": content: @@ -147207,34 +157503,19 @@ paths: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Bad Request + "403": + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_read - summary: Get commitments utilization (scalar) - tags: - - Cloud Cost Management - "x-permission": - operator: OR - permissions: - - cloud_cost_management_read + summary: Get unified host facet info + tags: ["CSM Settings"] x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. + **Note**: This endpoint is in Preview and may be subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/cost/commitments/utilization/timeseries: + /api/v2/csm/settings/hosts/facets: get: - description: Get timeseries utilization metrics for cloud commitment programs, including used and unused cost series over time. - operationId: GetCommitmentsUtilizationTimeseries - parameters: - - $ref: "#/components/parameters/CommitmentsProvider" - - $ref: "#/components/parameters/CommitmentsProduct" - - $ref: "#/components/parameters/CommitmentsStart" - - $ref: "#/components/parameters/CommitmentsEnd" - - $ref: "#/components/parameters/CommitmentsFilterBy" - - $ref: "#/components/parameters/CommitmentsCommitmentType" + description: Get the list of available facets for filtering unified hosts. + operationId: ListCSMUnifiedHostFacets responses: "200": content: @@ -147242,90 +157523,49 @@ paths: examples: default: value: - series: - unused: - - 750.0 - - 600.0 - used: - - 4250.0 - - 4400.0 - times: - - 1693526400 - - 1693612800 - unit: - family: money - id: 1 - name: dollar - plural: dollars - scale_factor: 1 - short_name: "$" + data: + - attributes: + bounded: true + bundled: true + bundledAndUsed: true + defaultValues: [] + description: The cloud provider of the resource. + editable: false + facetType: list + groups: + - hosts + name: Cloud Provider + path: cloud_provider + source: core + type: string + values: + - aws + - gcp + - azure + - oci + id: cloud_provider + type: unified_host_facet schema: - $ref: "#/components/schemas/CommitmentsUtilizationTimeseriesResponse" + $ref: "#/components/schemas/CsmUnifiedHostFacetsResponse" description: OK - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + "403": + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_read - summary: Get commitments utilization (timeseries) - tags: - - Cloud Cost Management - "x-permission": - operator: OR - permissions: - - cloud_cost_management_read + summary: List unified host facets + tags: ["CSM Settings"] x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. + **Note**: This endpoint is in Preview and may be subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/cost/custom_costs: + /api/v2/current_user: get: - description: List the Custom Costs files. - operationId: ListCustomCostsFiles - parameters: - - description: Page number for pagination - in: query - name: page[number] - schema: - format: int64 - type: integer - - description: Page size for pagination - in: query - name: page[size] - schema: - default: 100 - format: int64 - type: integer - - description: Filter by file status - in: query - name: filter[status] - schema: - type: string - - description: Filter files by name with case-insensitive substring matching. - in: query - name: filter[name] - schema: - type: string - - description: Filter by provider. - in: query - name: filter[provider] - schema: - items: - type: string - type: array - - description: Sort key with optional descending prefix - in: query - name: sort - schema: - default: created_at - type: string + description: |- + Get the user associated with the current authentication context. + The response includes the user's profile attributes (name, email, handle, + status, MFA state), along with related resources: the user's organization, + assigned roles with their granted permissions, and team-scoped roles. + No additional permissions are required beyond valid authentication. + operationId: GetCurrentUser responses: "200": content: @@ -147334,70 +157574,66 @@ paths: default: value: data: - - attributes: - billed_cost: 100.5 - billing_currency: USD - charge_period: - end: 1706745600000 - start: 1704067200000 - name: my_file.json - provider_names: - - my_provider - status: active - uploaded_at: 1704067200000 - id: 00000000-0000-0000-0000-000000000005 - type: custom_costs - meta: - total_filtered_count: 1 - version: "1" + attributes: + created_at: "2024-01-15T10:30:00+00:00" + disabled: false + email: jane.doe@example.com + handle: jane.doe + icon: "https://secure.gravatar.com/avatar/abc123" + mfa_enabled: true + modified_at: "2024-06-01T12:00:00+00:00" + name: Jane Doe + service_account: false + status: Active + title: Senior Engineer + verified: true + id: 00000000-0000-9999-0000-000000000000 + type: users + included: [] schema: - $ref: "#/components/schemas/CustomCostsFileListResponse" + $ref: "#/components/schemas/UserResponse" description: OK - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request "403": content: application/json: schema: $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden + description: Authentication error "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: - - cloud_cost_management_read - summary: List Custom Costs files + - AuthZ: [] + summary: Get current user tags: - - Cloud Cost Management - "x-permission": - operator: OR - permissions: - - cloud_cost_management_read - put: - description: Upload a Custom Costs file. - operationId: UploadCustomCostsFile + - Users + patch: + description: |- + Edit the profile of the currently authenticated user. Updatable fields + include `name`, `title`, `email`, and `disabled` status. The `id` field + in the request body must match the authenticated user's UUID; a mismatch + returns a 422 error. Email address changes are recorded in the audit trail. + Requires the `user_self_profile_write` permission. + operationId: UpdateCurrentUser requestBody: content: application/json: examples: default: value: - - BilledCost: 100.5 - BillingCurrency: USD - ChargeDescription: Monthly usage charge for my service - ChargePeriodEnd: "2023-02-28" - ChargePeriodStart: "2023-02-01" + data: + attributes: + email: jane.doe@example.com + name: Jane Doe + title: Staff Engineer + id: 00000000-0000-9999-0000-000000000000 + type: users schema: - $ref: "#/components/schemas/CustomCostsFileUploadRequest" + $ref: "#/components/schemas/UserUpdateRequest" required: true responses: - "202": + "200": content: application/json: examples: @@ -147405,23 +157641,24 @@ paths: value: data: attributes: - billed_cost: 100.5 - billing_currency: USD - charge_period: - end: 1706745600000 - start: 1704067200000 - name: my_file.json - provider_names: - - my_provider - status: pending - uploaded_at: 1704067200000 - id: 00000000-0000-0000-0000-000000000006 - type: custom_costs - meta: - version: "1" + created_at: "2024-01-15T10:30:00+00:00" + disabled: false + email: jane.doe@example.com + handle: jane.doe + icon: "https://secure.gravatar.com/avatar/abc123" + mfa_enabled: true + modified_at: "2024-06-01T12:00:00+00:00" + name: Jane Doe + service_account: false + status: Active + title: Staff Engineer + verified: true + id: 00000000-0000-9999-0000-000000000000 + type: users + included: [] schema: - $ref: "#/components/schemas/CustomCostsFileUploadResponse" - description: Accepted + $ref: "#/components/schemas/UserResponse" + description: OK "400": content: application/json: @@ -147433,57 +157670,45 @@ paths: application/json: schema: $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_write - summary: Upload Custom Costs file - tags: - - Cloud Cost Management - "x-permission": - operator: OR - permissions: - - cloud_cost_management_write - /api/v2/cost/custom_costs/{file_id}: - delete: - description: Delete the specified Custom Costs file. - operationId: DeleteCustomCostsFile - parameters: - - $ref: "#/components/parameters/FileID" - responses: - "204": - description: No Content - "403": + description: Authentication error + "404": content: application/json: schema: $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden - "404": + description: Not found + "422": content: application/json: schema: $ref: "#/components/schemas/APIErrorResponse" - description: Not Found + description: Unprocessable Entity "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: - - cloud_cost_management_write - summary: Delete Custom Costs file + - AuthZ: [] + summary: Update current user tags: - - Cloud Cost Management + - Users + x-codegen-request-body-name: body + "x-permission": + operator: OR + permissions: + - user_self_profile_write + /api/v2/current_user/application_keys: get: - description: Fetch the specified Custom Costs file. - operationId: GetCustomCostsFile + description: List all application keys available for current user + operationId: ListCurrentUserApplicationKeys parameters: - - $ref: "#/components/parameters/FileID" + - $ref: "#/components/parameters/PageSize" + - $ref: "#/components/parameters/PageNumber" + - $ref: "#/components/parameters/ApplicationKeysSortParameter" + - $ref: "#/components/parameters/ApplicationKeyFilterParameter" + - $ref: "#/components/parameters/ApplicationKeyFilterCreatedAtStartParameter" + - $ref: "#/components/parameters/ApplicationKeyFilterCreatedAtEndParameter" + - $ref: "#/components/parameters/ApplicationKeyIncludeParameter" responses: "200": content: @@ -147492,106 +157717,45 @@ paths: default: value: data: - attributes: - billed_cost: 100.5 - billing_currency: USD - charge_period: - end: 1706745600000 - start: 1704067200000 - content: - - BilledCost: 100.5 - BillingCurrency: USD - ChargeDescription: Monthly usage charge for my service - ChargePeriodEnd: "2023-02-28" - ChargePeriodStart: "2023-02-01" - name: my_file.json - provider_names: - - my_provider - status: active - uploaded_at: 1704067200000 - id: 00000000-0000-0000-0000-000000000007 - type: custom_costs - meta: - version: "1" + - attributes: + created_at: "2020-11-23T10:00:00.000Z" + last4: abcd + name: Application Key for managing dashboards + id: 00000000-0000-0000-0000-000000000004 + type: application_keys schema: - $ref: "#/components/schemas/CustomCostsFileGetResponse" + $ref: "#/components/schemas/ListApplicationKeysResponse" description: OK - "403": + "400": content: application/json: schema: $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden - "404": + description: Bad Request + "403": content: application/json: schema: $ref: "#/components/schemas/APIErrorResponse" - description: Not Found - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_read - summary: Get Custom Costs file - tags: - - Cloud Cost Management - /api/v2/cost/gcp_uc_config: - get: - description: List the Google Cloud Usage Cost configs. - operationId: ListCostGCPUsageCostConfigs - responses: - "200": - content: - application/json: - examples: - default: - value: - data: - - attributes: - account_id: 123456_A123BC_12AB34 - bucket_name: dd-cost-bucket - created_at: "2023-01-01T12:00:00.000000" - dataset: billing - error_messages: [] - export_prefix: datadog_cloud_cost_usage_export - export_project_name: dd-cloud-cost-report - months: 36 - project_id: my-project-123 - service_account: dd-ccm-gcp-integration@my-environment.iam.gserviceaccount.com - status: active - status_updated_at: "2023-01-01T12:00:00.000000" - updated_at: "2023-01-01T12:00:00.000000" - id: "123456789123" - type: gcp_uc_config - schema: - $ref: "#/components/schemas/GCPUsageCostConfigsResponse" - description: OK - "403": + description: Forbidden + "404": content: application/json: schema: $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_read - summary: List Google Cloud Usage Cost configs + summary: Get all application keys owned by current user tags: - - Cloud Cost Management + - Key Management "x-permission": operator: OR permissions: - - cloud_cost_management_read + - user_app_keys post: - description: Create a Cloud Cost Management account for an Google Cloud Usage Cost config. - operationId: CreateCostGCPUsageCostConfig + description: Create an application key for current user + operationId: CreateCurrentUserApplicationKey requestBody: content: application/json: @@ -147600,18 +157764,17 @@ paths: value: data: attributes: - billing_account_id: 123456_A123BC_12AB34 - bucket_name: dd-cost-bucket - export_dataset_name: billing - export_prefix: datadog_cloud_cost_usage_export - export_project_name: dd-cloud-cost-report - service_account: dd-ccm-gcp-integration@my-environment.iam.gserviceaccount.com - type: gcp_uc_config_post_request + name: Application Key for managing dashboards + scopes: + - dashboards_read + - dashboards_write + - dashboards_public_share + type: application_keys schema: - $ref: "#/components/schemas/GCPUsageCostConfigPostRequest" + $ref: "#/components/schemas/ApplicationKeyCreateRequest" required: true responses: - "200": + "201": content: application/json: examples: @@ -147619,24 +157782,14 @@ paths: value: data: attributes: - account_id: 123456_A123BC_12AB34 - bucket_name: dd-cost-bucket - created_at: "2023-01-01T12:00:00.000000" - dataset: billing - error_messages: [] - export_prefix: datadog_cloud_cost_usage_export - export_project_name: dd-cloud-cost-report - months: 36 - project_id: my-project-123 - service_account: dd-ccm-gcp-integration@my-environment.iam.gserviceaccount.com - status: active - status_updated_at: "2023-01-01T12:00:00.000000" - updated_at: "2023-01-01T12:00:00.000000" - id: "123456789123" - type: gcp_uc_config + created_at: "2020-11-23T10:00:00.000Z" + last4: abcd + name: Application Key for managing dashboards + id: 00000000-0000-0000-0000-000000000005 + type: application_keys schema: - $ref: "#/components/schemas/GCPUsageCostConfigResponse" - description: OK + $ref: "#/components/schemas/ApplicationKeyResponse" + description: Created "400": content: application/json: @@ -147651,33 +157804,29 @@ paths: description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_write - summary: Create Google Cloud Usage Cost config + summary: Create an application key for current user tags: - - Cloud Cost Management + - Key Management + x-codegen-request-body-name: body "x-permission": operator: OR permissions: - - cloud_cost_management_write - /api/v2/cost/gcp_uc_config/{cloud_account_id}: + - user_app_keys + /api/v2/current_user/application_keys/{app_key_id}: delete: - description: Archive a Cloud Cost Management account. - operationId: DeleteCostGCPUsageCostConfig + description: Delete an application key owned by current user + operationId: DeleteCurrentUserApplicationKey parameters: - - $ref: "#/components/parameters/CloudAccountID" + - $ref: "#/components/parameters/ApplicationKeyID" responses: "204": description: No Content - "400": + "403": content: application/json: schema: $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request + description: Forbidden "404": content: application/json: @@ -147686,29 +157835,20 @@ paths: description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_write - summary: Delete Google Cloud Usage Cost config + summary: Delete an application key owned by current user tags: - - Cloud Cost Management + - Key Management "x-permission": operator: OR permissions: - - cloud_cost_management_write + - user_app_keys get: - description: Get a specific Google Cloud Usage Cost config. - operationId: GetCostGCPUsageCostConfig + description: |- + Get an application key owned by current user. + The `key` field is not returned for organizations in [One-Time Read mode](https://docs.datadoghq.com/account_management/api-app-keys/#one-time-read-mode). + operationId: GetCurrentUserApplicationKey parameters: - - description: The unique identifier of the cloud account - in: path - name: cloud_account_id - required: true - schema: - format: int64 - type: integer + - $ref: "#/components/parameters/ApplicationKeyID" responses: "200": content: @@ -147718,39 +157858,42 @@ paths: value: data: attributes: - account_id: 123456_A123BC_12AB34 - bucket_name: dd-cost-bucket - created_at: "2023-01-01T12:00:00.000000" - dataset: billing - error_messages: [] - export_prefix: datadog_cloud_cost_usage_export - export_project_name: dd-cloud-cost-report - months: 36 - project_id: my-project-123 - service_account: dd-ccm-gcp-integration@my-environment.iam.gserviceaccount.com - status: active - status_updated_at: "2023-01-01T12:00:00.000000" - updated_at: "2023-01-01T12:00:00.000000" - id: "123456789123" - type: gcp_uc_config + created_at: "2020-11-23T10:00:00.000Z" + last4: abcd + name: Application Key for managing dashboards + id: 00000000-0000-0000-0000-000000000006 + type: application_keys schema: - $ref: "#/components/schemas/GcpUcConfigResponse" + $ref: "#/components/schemas/ApplicationKeyResponse" description: OK + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_read - summary: Get Google Cloud Usage Cost config + summary: Get one application key owned by current user tags: - - Cloud Cost Management + - Key Management + "x-permission": + operator: OR + permissions: + - user_app_keys patch: - description: Update the status of an Google Cloud Usage Cost config (active/archived). - operationId: UpdateCostGCPUsageCostConfig + description: |- + Edit an application key owned by current user. + The `key` field is not returned for organizations in [One-Time Read mode](https://docs.datadoghq.com/account_management/api-app-keys/#one-time-read-mode). + operationId: UpdateCurrentUserApplicationKey parameters: - - $ref: "#/components/parameters/CloudAccountID" + - $ref: "#/components/parameters/ApplicationKeyID" requestBody: content: application/json: @@ -147759,10 +157902,15 @@ paths: value: data: attributes: - is_enabled: true - type: gcp_uc_config_patch_request + name: Application Key for managing dashboards + scopes: + - dashboards_read + - dashboards_write + - dashboards_public_share + id: 00112233-4455-6677-8899-aabbccddeeff + type: application_keys schema: - $ref: "#/components/schemas/GCPUsageCostConfigPatchRequest" + $ref: "#/components/schemas/ApplicationKeyUpdateRequest" required: true responses: "200": @@ -147773,23 +157921,13 @@ paths: value: data: attributes: - account_id: 123456_A123BC_12AB34 - bucket_name: dd-cost-bucket - created_at: "2023-01-01T12:00:00.000000" - dataset: billing - error_messages: [] - export_prefix: datadog_cloud_cost_usage_export - export_project_name: dd-cloud-cost-report - months: 36 - project_id: my-project-123 - service_account: dd-ccm-gcp-integration@my-environment.iam.gserviceaccount.com - status: active - status_updated_at: "2023-01-01T12:00:00.000000" - updated_at: "2023-01-01T12:00:00.000000" - id: "123456789123" - type: gcp_uc_config + created_at: "2020-11-23T10:00:00.000Z" + last4: abcd + name: Application Key for managing dashboards + id: 00000000-0000-0000-0000-000000000007 + type: application_keys schema: - $ref: "#/components/schemas/GCPUsageCostConfigResponse" + $ref: "#/components/schemas/ApplicationKeyResponse" description: OK "400": content: @@ -147811,97 +157949,38 @@ paths: description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_write - summary: Update Google Cloud Usage Cost config - tags: - - Cloud Cost Management - "x-permission": - operator: OR - permissions: - - cloud_cost_management_write - /api/v2/cost/oci_config: - get: - deprecated: true - description: |- - **Note**: This endpoint is deprecated. View OCI accounts in Cloud Cost Settings in the Datadog web application instead. - - List the OCI configs. - operationId: ListCostOCIConfigs - responses: - "200": - content: - application/json: - examples: - default: - value: - data: - - attributes: - account_id: "ocid1.tenancy.oc1..example" - created_at: "2026-01-01T12:00:00Z" - status: active - status_updated_at: "2026-01-01T12:00:00Z" - updated_at: "2026-01-01T12:00:00Z" - id: "1" - type: oci_config - schema: - $ref: "#/components/schemas/OCIConfigsResponse" - description: OK - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_read - summary: List Cloud Cost Management OCI configs + summary: Edit an application key owned by current user tags: - - Cloud Cost Management + - Key Management + x-codegen-request-body-name: body "x-permission": operator: OR permissions: - - cloud_cost_management_read - x-sunset: "2027-01-01" - /api/v2/cost/recommendations: - post: - description: List cost recommendations matching a filter, with pagination and sorting. - operationId: SearchCostRecommendations + - user_app_keys + /api/v2/dashboard/lists/manual/{dashboard_list_id}/dashboards: + delete: + description: Delete dashboards from an existing dashboard list. + operationId: DeleteDashboardListItems parameters: - - description: Number of results per page (1–10000). - in: query - name: page[size] - schema: - type: string - - description: Pagination token from a previous response. - in: query - name: page[token] + - description: ID of the dashboard list to delete items from. + in: path + name: dashboard_list_id + required: true schema: - type: string + format: int64 + type: integer requestBody: content: application/json: examples: default: value: - data: - attributes: - scope: ccm - sort: - - expression: "@potential_daily_savings" - order: DESC - id: "@resource_table:aws_ec2_instance" - type: recommendations_filter + dashboards: + - id: q5j-nti-fv6 + type: host_timeboard schema: - $ref: "#/components/schemas/RecommendationsFilterRequest" + $ref: "#/components/schemas/DashboardListDeleteItemsRequest" + description: Dashboards to delete from the dashboard list. required: true responses: "200": @@ -147910,180 +157989,61 @@ paths: examples: default: value: - data: - - attributes: - dd_resource_key: "arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0" - potential_daily_savings: - amount: 1.23 - currency: USD - recommendation_type: terminate - resource_id: i-1234567890abcdef0 - resource_type: aws_ec2_instance - tags: - - "env:prod" - - "team:ccm" - id: encoded-event-id-1 - type: recommendation - meta: - page: - filter: "@resource_table:aws_ec2_instance" - next_page_token: "" - page_size: 100 + deleted_dashboards_from_list: + - id: q5j-nti-fv6 + type: host_timeboard schema: - $ref: "#/components/schemas/CostRecommendationArray" + $ref: "#/components/schemas/DashboardListDeleteItemsResponse" description: OK - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_read - summary: Search cost recommendations - tags: - - Cloud Cost Management - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/cost/tag_descriptions: - get: - description: List Cloud Cost Management tag key descriptions for the organization. Use `filter[cloud]` to scope the result to a single cloud provider; when omitted, both cross-cloud defaults and cloud-specific descriptions are returned. - operationId: ListCostTagDescriptions - parameters: - - description: Filter descriptions to a specific cloud provider (for example, `aws`). Omit to return descriptions across all clouds. - in: query - name: filter[cloud] - required: false - schema: - type: string - responses: - "200": + "400": content: application/json: - examples: - default: - value: - data: - - attributes: - cloud: aws - created_at: "2026-01-01T12:00:00Z" - description: AWS account that owns this cost. - source: human - tag_key: account_id - updated_at: "2026-01-01T12:00:00Z" - id: account_id - type: cost_tag_description schema: - $ref: "#/components/schemas/CostTagDescriptionsResponse" - description: OK + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request "403": content: application/json: schema: $ref: "#/components/schemas/APIErrorResponse" description: Forbidden - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_read - summary: List Cloud Cost Management tag descriptions - tags: - - Cloud Cost Management - "x-permission": - operator: OR - permissions: - - cloud_cost_management_read - /api/v2/cost/tag_descriptions/{tag_key}: - delete: - description: Delete a Cloud Cost Management tag key description. When `cloud` is omitted, deletes every description for the tag key, falling back to Datadog's global default when available. When `cloud` is provided, deletes only the description scoped to that cloud provider. - operationId: DeleteCostTagDescriptionByKey - parameters: - - description: The tag key whose description is being deleted. - in: path - name: tag_key - required: true - schema: - type: string - - description: Cloud provider to scope the deletion to (for example, `aws`). Omit to delete every description for the tag key. - in: query - name: cloud - required: false - schema: - type: string - responses: - "204": - description: No Content - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request - "403": + "404": content: application/json: schema: $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_write - summary: Delete a Cloud Cost Management tag description + summary: Delete items from a dashboard list tags: - - Cloud Cost Management - "x-permission": - operator: OR - permissions: - - cloud_cost_management_write + - Dashboard Lists + x-codegen-request-body-name: body get: - description: Get the Cloud Cost Management description for a single tag key. Use `filter[cloud]` to scope the lookup to a specific cloud provider; when omitted, the response resolves the description in fallback order (cloud-specific organization override, then cloudless organization default, then Datadog's global default). - operationId: GetCostTagDescriptionByKey - parameters: - - description: The tag key whose description is being fetched. - in: path - name: tag_key - required: true - schema: - type: string - - description: Cloud provider to scope the lookup to (for example, `aws`). Omit to use the resolved fallback. - in: query - name: filter[cloud] - required: false - schema: - type: string - responses: - "200": - content: - application/json: - examples: - default: - value: - data: - attributes: - cloud: aws - created_at: "2026-01-01T12:00:00Z" - description: AWS account that owns this cost. - source: human - tag_key: account_id - updated_at: "2026-01-01T12:00:00Z" - id: account_id - type: cost_tag_description - schema: - $ref: "#/components/schemas/CostTagDescriptionResponse" - description: OK - "400": + description: Fetch the dashboard list’s dashboard definitions. + operationId: GetDashboardListItems + parameters: + - description: ID of the dashboard list to get items from. + in: path + name: dashboard_list_id + required: true + schema: + format: int64 + type: integer + responses: + "200": content: application/json: + examples: + default: + value: + dashboards: + - id: q5j-nti-fv6 + type: host_timeboard + total: 1 schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request + $ref: "#/components/schemas/DashboardListItems" + description: OK "403": content: application/json: @@ -148102,42 +158062,51 @@ paths: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cloud_cost_management_read - summary: Get a Cloud Cost Management tag description + - dashboards_read + summary: Get items of a Dashboard List tags: - - Cloud Cost Management + - Dashboard Lists "x-permission": operator: OR permissions: - - cloud_cost_management_read - put: - description: Create or update a Cloud Cost Management tag key description. The new description and optional cloud scoping are supplied in the request body. Omit `cloud` to set a cross-cloud default for the tag key. - operationId: UpsertCostTagDescriptionByKey + - dashboards_read + post: + description: Add dashboards to an existing dashboard list. + operationId: CreateDashboardListItems parameters: - - description: The tag key whose description is being upserted. + - description: ID of the dashboard list to add items to. in: path - name: tag_key + name: dashboard_list_id required: true schema: - type: string + format: int64 + type: integer requestBody: content: application/json: examples: default: value: - data: - attributes: - cloud: aws - description: AWS account that owns this cost. - id: account_id - type: cost_tag_description + dashboards: + - id: q5j-nti-fv6 + type: host_timeboard schema: - $ref: "#/components/schemas/CostTagDescriptionUpsertRequest" + $ref: "#/components/schemas/DashboardListAddItemsRequest" + description: Dashboards to add to the dashboard list. required: true responses: - "204": - description: No Content + "200": + content: + application/json: + examples: + default: + value: + added_dashboards_to_list: + - id: q5j-nti-fv6 + type: host_timeboard + schema: + $ref: "#/components/schemas/DashboardListAddItemsResponse" + description: OK "400": content: application/json: @@ -148150,31 +158119,42 @@ paths: schema: $ref: "#/components/schemas/APIErrorResponse" description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_write - summary: Upsert a Cloud Cost Management tag description + summary: Add Items to a Dashboard List tags: - - Cloud Cost Management - "x-permission": - operator: OR - permissions: - - cloud_cost_management_write - /api/v2/cost/tag_descriptions/{tag_key}/generate: - get: - description: Use AI to draft a Cloud Cost Management tag key description based on associated cost data. The generated description is returned in the response and is not persisted by this endpoint; follow up with `UpsertCostTagDescriptionByKey` to save it. - operationId: GenerateCostTagDescriptionByKey + - Dashboard Lists + x-codegen-request-body-name: body + put: + description: Update dashboards of an existing dashboard list. + operationId: UpdateDashboardListItems parameters: - - description: The tag key to generate an AI description for. + - description: ID of the dashboard list to update items from. in: path - name: tag_key + name: dashboard_list_id required: true schema: - type: string + format: int64 + type: integer + requestBody: + content: + application/json: + examples: + default: + value: + dashboards: + - id: q5j-nti-fv6 + type: host_timeboard + schema: + $ref: "#/components/schemas/DashboardListUpdateItemsRequest" + description: New dashboards of the dashboard list. + required: true responses: "200": content: @@ -148182,13 +158162,11 @@ paths: examples: default: value: - data: - attributes: - description: AWS account that owns this cost. - id: account_id - type: cost_generated_tag_description + dashboards: + - id: q5j-nti-fv6 + type: host_timeboard schema: - $ref: "#/components/schemas/GenerateCostTagDescriptionResponse" + $ref: "#/components/schemas/DashboardListUpdateItemsResponse" description: OK "400": content: @@ -148202,38 +158180,24 @@ paths: schema: $ref: "#/components/schemas/APIErrorResponse" description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - cloud_cost_management_read - summary: Generate a Cloud Cost Management tag description + summary: Update items of a dashboard list tags: - - Cloud Cost Management - "x-permission": - operator: OR - permissions: - - cloud_cost_management_read - /api/v2/cost/tag_keys: + - Dashboard Lists + x-codegen-request-body-name: body + /api/v2/dashboard/{dashboard_id}/shared: get: - description: List Cloud Cost Management tag keys. - operationId: ListCostTagKeys + description: Retrieve shared dashboards associated with the specified dashboard. + operationId: ListSharedDashboardsByDashboardId parameters: - - description: The Cloud Cost Management metric to scope the tag keys to. When omitted, returns tag keys across all metrics. - in: query - name: filter[metric] - schema: - type: string - - description: |- - Filter to return only tag keys that appear with the given `key:value` tag values. For example, `filter[tags]=providername:aws` returns tag keys found on the same cost data, such as `is_aws_ec2_compute` and `aws_instance_type`. - in: query - name: filter[tags] - schema: - items: - type: string - type: array + - $ref: "#/components/parameters/SharedDashboardDashboardIDPathParameter" responses: "200": content: @@ -148243,65 +158207,113 @@ paths: value: data: - attributes: - sources: - - focus - value: providername - id: providername - type: cost_tag_key + created_at: "2026-01-01T00:00:00.000Z" + embeddable_domains: [] + expiration: + global_time: + live_span: 1h + global_time_selectable: false + invitees: + - access_expiration: + created_at: "2026-01-01T00:00:00.000Z" + email: jane.doe@example.com + last_accessed: + selectable_template_vars: [] + share_type: invite + sharer_disabled: false + status: active + title: Q1 Metrics Dashboard + token: abc-123-token + url: https://p.datadoghq.com/sb/abc-123-token + viewing_preferences: + high_density: false + theme: system + id: "12345" + relationships: + dashboard: + data: + id: abc-def-ghi + type: dashboard + sharer: + data: + id: 00000000-0000-0000-0000-000000000000 + type: user + type: shared_dashboard + included: - attributes: - sources: [] - value: service - id: service - type: cost_tag_key + title: Q1 Metrics Dashboard + id: abc-def-ghi + type: dashboard + - attributes: + handle: jane.doe@example.com + name: Jane Doe + id: 00000000-0000-0000-0000-000000000000 + type: user schema: - $ref: "#/components/schemas/CostTagKeysResponse" + $ref: "#/components/schemas/ListSharedDashboardsResponse" description: OK - "400": + "403": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "403": + description: Forbidden + "404": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + description: Dashboard Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cloud_cost_management_read - summary: List Cloud Cost Management tag keys + - dashboards_read + summary: List shared dashboards for a dashboard tags: - - Cloud Cost Management + - Dashboard Sharing "x-permission": operator: OR permissions: - - cloud_cost_management_read - /api/v2/cost/tag_keys/{tag_key}: - get: - description: Get details for a specific Cloud Cost Management tag key, including example tag values and description. - operationId: GetCostTagKey + - dashboards_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/dashboard/{dashboard_id}/shared/secure-embed: + post: + description: >- + Create a secure embed share for a dashboard. The response includes a one-time `credential` used for HMAC-SHA256 signing. Store it securely — it cannot be retrieved again. + operationId: CreateDashboardSecureEmbed parameters: - - $ref: "#/components/parameters/TagKey" - - description: The Cloud Cost Management metric to scope the tag key details to. When omitted, returns details across all metrics. - in: query - name: filter[metric] - schema: - type: string - - description: |- - Controls the size of the internal tag value search scope. This does **not** restrict the number of example tag values returned in the response. Defaults to 50, maximum 10000. - in: query - name: page[size] - schema: - default: 50 - format: int32 - maximum: 10000 - type: integer + - $ref: "#/components/parameters/DashboardIDPathParameter" + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + global_time: + live_span: "1h" + global_time_selectable: true + selectable_template_vars: + - default_values: ["1"] + name: "org_id" + prefix: "org_id" + visible_tags: ["1"] + status: active + title: "Q1 Metrics Dashboard" + viewing_preferences: + high_density: false + theme: "system" + type: secure_embed_request + schema: + $ref: "#/components/schemas/SecureEmbedCreateRequest" + description: Secure embed creation request body. + required: true responses: "200": content: @@ -148311,155 +158323,104 @@ paths: value: data: attributes: - details: - description: The cloud provider name reported for the cost line item. - tag_values: - - aws - - gcp - - azure - sources: - - focus - value: providername - id: providername - type: cost_tag_key + created_at: "2024-01-01T00:00:00+00:00" + credential: example-credential-value + dashboard_id: abc-def-ghi + global_time_selectable: true + id: "12345" + share_type: secure_embed + status: active + title: "Q1 Metrics Dashboard" + token: abc-123-token + url: "https://p.datadoghq.com/sb/secure-embed/abc-123-token" + id: "12345" + type: secure_embed_create_response schema: - $ref: "#/components/schemas/CostTagKeyResponse" + $ref: "#/components/schemas/SecureEmbedCreateResponse" description: OK - "400": + "403": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "403": + description: Forbidden + "404": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "404": + description: Dashboard Not Found + "409": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + description: Conflict — max 1000 share URLs per dashboard exceeded "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cloud_cost_management_read - summary: Get a Cloud Cost Management tag key + - dashboards_embed_share + summary: Create a secure embed for a dashboard tags: - - Cloud Cost Management + - Dashboard Secure Embed + x-codegen-request-body-name: body "x-permission": operator: OR permissions: - - cloud_cost_management_read - /api/v2/cost/tag_metadata: - get: - description: List Cloud Cost Management tag key metadata, including row counts, cost covered, cardinality, and a sample of top tag values per cloud account. Use `filter[daily]=true` to return daily rows instead of the default monthly roll-up. - operationId: ListCostTagMetadata + - dashboards_embed_share + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/dashboard/{dashboard_id}/shared/secure-embed/{token}: + delete: + description: >- + Delete a secure embed share for a dashboard. + operationId: DeleteDashboardSecureEmbed parameters: - - description: The month to scope the query to, in `YYYY-MM` format. - example: "2026-02" - in: query - name: filter[month] - required: true - schema: - type: string - - description: Filter results to a specific provider. Common cloud values are `aws`, `azure`, `gcp`, `Oracle` (OCI), and `custom`. SaaS billing integrations (for example, `Snowflake`, `MongoDB`, `Databricks`) are also accepted using their display-name string. Values are case-sensitive. - in: query - name: filter[provider] - schema: - type: string - - description: Filter results to a specific Cloud Cost Management metric (for example, `aws.cost.net.amortized`). When omitted, every available metric for the requested period is returned. - in: query - name: filter[metric] - schema: - type: string - - description: Restrict results to a single tag key. - in: query - name: filter[tag_key] - schema: - type: string - - description: When `true`, return one row per day with the day in the `date` attribute. Defaults to the monthly roll-up when omitted. - in: query - name: filter[daily] - schema: - $ref: "#/components/schemas/CostTagMetadataDailyFilter" + - $ref: "#/components/parameters/DashboardIDPathParameter" + - $ref: "#/components/parameters/SecureEmbedTokenPathParameter" responses: - "200": - content: - application/json: - examples: - default: - value: - data: - - attributes: - cardinality_by_account: - "123456789012": 42 - cost_covered: 1234.56 - metric: aws.cost.net.amortized - row_count: 100 - tag_sources: - - aws-user-defined - top_values_by_account: - "123456789012": - - prod - - staging - id: env:aws.cost.net.amortized - type: cost_tag_key_metadata - schema: - $ref: "#/components/schemas/CostTagKeyMetadataResponse" - description: OK - "400": + "204": + description: No Content + "403": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request - "403": + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "404": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cloud_cost_management_read - summary: List Cloud Cost Management tag key metadata + - dashboards_embed_share + summary: Delete a secure embed for a dashboard tags: - - Cloud Cost Management + - Dashboard Secure Embed "x-permission": operator: OR permissions: - - cloud_cost_management_read + - dashboards_embed_share x-unstable: |- **Note**: This endpoint is in preview and is subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/cost/tag_metadata/currency: get: - description: Get the dominant billing currency observed in Cloud Cost Management data for the requested period. The response wraps the currency in a JSON:API `data` array containing at most one entry; the array is empty when no currency data is available. - operationId: GetCostTagMetadataCurrency + description: >- + Retrieve an existing secure embed configuration for a dashboard. + operationId: GetDashboardSecureEmbed parameters: - - description: The month to scope the query to, in `YYYY-MM` format. - example: "2026-02" - in: query - name: filter[month] - required: true - schema: - type: string - - description: Filter results to a specific provider. Common cloud values are `aws`, `azure`, `gcp`, `Oracle` (OCI), and `custom`. SaaS billing integrations (for example, `Snowflake`, `MongoDB`, `Databricks`) are also accepted using their display-name string. Values are case-sensitive. - in: query - name: filter[provider] - schema: - type: string + - $ref: "#/components/parameters/DashboardIDPathParameter" + - $ref: "#/components/parameters/SecureEmbedTokenPathParameter" responses: "200": content: @@ -148468,57 +158429,67 @@ paths: default: value: data: - - id: USD - type: cost_currency + attributes: + created_at: "2024-01-01T00:00:00+00:00" + credential_suffix: ab3f + dashboard_id: abc-def-ghi + global_time_selectable: true + id: "12345" + share_type: secure_embed + status: active + title: "Q1 Metrics Dashboard" + token: abc-123-token + url: "https://p.datadoghq.com/sb/secure-embed/abc-123-token" + id: "12345" + type: secure_embed_get_response schema: - $ref: "#/components/schemas/CostCurrencyResponse" + $ref: "#/components/schemas/SecureEmbedGetResponse" description: OK - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request - "403": + "404": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cloud_cost_management_read - summary: Get the Cloud Cost Management billing currency + - dashboards_read + summary: Get a secure embed for a dashboard tags: - - Cloud Cost Management + - Dashboard Secure Embed "x-permission": operator: OR permissions: - - cloud_cost_management_read + - dashboards_read x-unstable: |- **Note**: This endpoint is in preview and is subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/cost/tag_metadata/metrics: - get: - description: List Cloud Cost Management metrics that have data for the requested period. - operationId: ListCostTagMetadataMetrics + patch: + description: >- + Partially update a secure embed configuration. All fields are optional (PATCH semantics). + operationId: UpdateDashboardSecureEmbed parameters: - - description: The month to scope the query to, in `YYYY-MM` format. - example: "2026-02" - in: query - name: filter[month] - required: true - schema: - type: string - - description: Filter results to a specific provider. Common cloud values are `aws`, `azure`, `gcp`, `Oracle` (OCI), and `custom`. SaaS billing integrations (for example, `Snowflake`, `MongoDB`, `Databricks`) are also accepted using their display-name string. Values are case-sensitive. - in: query - name: filter[provider] - schema: - type: string + - $ref: "#/components/parameters/DashboardIDPathParameter" + - $ref: "#/components/parameters/SecureEmbedTokenPathParameter" + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + status: active + title: "Q1 Metrics Dashboard (Updated)" + type: secure_embed_update_request + schema: + $ref: "#/components/schemas/SecureEmbedUpdateRequest" + description: Secure embed update request body. + required: true responses: "200": content: @@ -148527,59 +158498,87 @@ paths: default: value: data: - - id: aws.cost.net.amortized - type: cost_metric - - id: gcp.cost.amortized - type: cost_metric + attributes: + created_at: "2024-01-01T00:00:00+00:00" + credential_suffix: ab3f + dashboard_id: abc-def-ghi + global_time_selectable: true + id: "12345" + share_type: secure_embed + status: active + title: "Q1 Metrics Dashboard (Updated)" + token: abc-123-token + url: "https://p.datadoghq.com/sb/secure-embed/abc-123-token" + id: "12345" + type: secure_embed_update_response schema: - $ref: "#/components/schemas/CostMetricsResponse" + $ref: "#/components/schemas/SecureEmbedUpdateResponse" description: OK - "400": + "403": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request - "403": + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "404": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cloud_cost_management_read - summary: List available Cloud Cost Management metrics + - dashboards_embed_share + summary: Update a secure embed for a dashboard tags: - - Cloud Cost Management + - Dashboard Secure Embed + x-codegen-request-body-name: body "x-permission": operator: OR permissions: - - cloud_cost_management_read + - dashboards_embed_share x-unstable: |- **Note**: This endpoint is in preview and is subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/cost/tag_metadata/months: + /api/v2/dashboards/usage: get: - description: |- - List months that have Cloud Cost Management tag metadata for a given provider, - ordered most-recent first. The response is capped at 36 months. - operationId: ListCostTagMetadataMonths + description: Get paginated usage statistics for every dashboard in the caller's organization. Use `page[limit]` and `page[offset]` to walk the result set. Use `filter[edited_before]` or `filter[viewed_before]` to narrow results by edit or view date. View-count fields depend on Real User Monitoring (RUM) and are `null` or `0` in orgs without RUM. **View counts are refreshed once per day** and **only reflect views recorded starting January 2025**; views prior to that date are not included. + operationId: ListDashboardsUsage parameters: - - description: |- - Provider to scope the query to. Use the value of the `providername` tag in CCM - (for example, `aws`, `azure`, `gcp`, `Oracle`, `Confluent Cloud`, `Snowflake`). - For costs uploaded through the Custom Costs API, use `custom`. - Values are case-sensitive. - example: aws + - description: Maximum number of dashboards to return per page. Server-side maximum is 500; values above 500 return a 400 Bad Request. in: query - name: filter[provider] - required: true + name: page[limit] + required: false + schema: + default: 250 + format: int64 + type: integer + - description: Zero-based offset into the result set. + in: query + name: page[offset] + required: false + schema: + default: 0 + format: int64 + minimum: 0 + type: integer + - description: Return only dashboards whose last edit (`edited_at`) is strictly before this ISO 8601 timestamp (`edited_at < value`; boundary matches are excluded). Must include a timezone offset (for example, `Z` or `+00:00`); naive timestamps return HTTP 400. + in: query + name: filter[edited_before] + required: false + schema: + example: "2025-04-26T00:00:00Z" + type: string + - description: Return only dashboards whose most recent view (`viewed_at`) is strictly before this ISO 8601 timestamp, including dashboards that have never been viewed. Must include a timezone offset; naive timestamps return HTTP 400. Orgs without Real User Monitoring (RUM) will see all dashboards returned by this filter. + in: query + name: filter[viewed_before] + required: false schema: + example: "2025-04-26T00:00:00Z" type: string responses: "200": @@ -148589,58 +158588,88 @@ paths: default: value: data: - - id: "2026-04" - type: cost_tag_metadata_month - - id: "2026-03" - type: cost_tag_metadata_month + - attributes: + author: + handle: "jane.doe@example.com" + id: "00000000-0000-0000-0000-000000000000" + is_disabled: false + name: "Jane Doe" + created_at: "2026-01-15T09:30:00.000Z" + dashboard_quality_score: 0.85 + edited_at: "2026-04-20T11:05:00.000Z" + org_id: 100 + teams: ["sre"] + title: "My production overview" + total_views: 42 + total_views_by_type: + embed: 12 + in_app: 30 + viewed_at: "2026-05-01T14:22:10.000Z" + viewer: + handle: "john.smith@example.com" + id: "00000000-0000-0000-0000-000000000001" + is_disabled: false + name: "John Smith" + widget_count: 12 + widget_count_by_type: + query_value: 4 + timeseries: 8 + id: "q5j-nti-fv6" + type: "dashboards-usages" + links: + first: "https://api.datadoghq.com/api/v2/dashboards/usage?page[offset]=0&page[limit]=250" + last: "https://api.datadoghq.com/api/v2/dashboards/usage?page[offset]=1000&page[limit]=250" + next: "https://api.datadoghq.com/api/v2/dashboards/usage?page[offset]=250&page[limit]=250" + self: "https://api.datadoghq.com/api/v2/dashboards/usage" + meta: + page: + first_offset: 0 + last_offset: 1000 + limit: 250 + next_offset: 250 + offset: 0 + prev_offset: + total: 1234 + type: offset_limit schema: - $ref: "#/components/schemas/CostTagMetadataMonthsResponse" + $ref: "#/components/schemas/ListDashboardsUsageResponse" description: OK "400": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request + $ref: "#/components/responses/BadRequestResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden + $ref: "#/components/responses/ForbiddenResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cloud_cost_management_read - summary: List Cloud Cost Management tag metadata months + - dashboards_read + summary: Get usage stats for all dashboards tags: - - Cloud Cost Management - "x-permission": + - Dashboards + x-pagination: + limitParam: page[limit] + pageOffsetParam: page[offset] + resultsPath: data + x-permission: operator: OR permissions: - - cloud_cost_management_read + - dashboards_read x-unstable: |- **Note**: This endpoint is in preview and is subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/cost/tag_metadata/orchestrators: + /api/v2/dashboards/{dashboard_id}/usage: get: - description: List container orchestrators (for example, `kubernetes`, `ecs`) detected in Cloud Cost Management data for the requested period. - operationId: ListCostTagMetadataOrchestrators + description: Get usage statistics for a single dashboard. The response includes view counts, the most recent view and edit times, widget counts, and the dashboard quality score. View-count fields depend on Real User Monitoring (RUM) and are `null` or `0` in orgs without RUM. **View counts are refreshed once per day** and **only reflect views recorded starting January 2025**; views prior to that date are not included. + operationId: GetDashboardUsage parameters: - - description: The month to scope the query to, in `YYYY-MM` format. - example: "2026-02" - in: query - name: filter[month] + - description: The ID of the dashboard. + in: path + name: dashboard_id required: true schema: - type: string - - description: Filter results to a specific provider. Common cloud values are `aws`, `azure`, `gcp`, `Oracle` (OCI), and `custom`. SaaS billing integrations (for example, `Snowflake`, `MongoDB`, `Databricks`) are also accepted using their display-name string. Values are case-sensitive. - in: query - name: filter[provider] - schema: + example: "q5j-nti-fv6" type: string responses: "200": @@ -148650,64 +158679,72 @@ paths: default: value: data: - - id: ecs - type: cost_orchestrator - - id: kubernetes - type: cost_orchestrator + attributes: + author: + handle: "jane.doe" + id: "00000000-0000-0000-0000-000000000000" + is_disabled: false + name: "Jane Doe" + created_at: "2026-01-15T09:30:00.000Z" + dashboard_quality_score: 0.85 + edited_at: "2026-04-20T11:05:00.000Z" + org_id: 100 + teams: ["sre"] + title: "My production overview" + total_views: 42 + total_views_by_type: + embed: 12 + in_app: 30 + viewed_at: "2026-05-01T14:22:10.000Z" + viewer: + handle: "john.smith" + id: "00000000-0000-0000-0000-000000000001" + is_disabled: false + name: "John Smith" + widget_count: 12 + widget_count_by_type: + query_value: 4 + timeseries: 8 + id: "q5j-nti-fv6" + type: "dashboards-usages" schema: - $ref: "#/components/schemas/CostOrchestratorsResponse" + $ref: "#/components/schemas/DashboardUsageResponse" description: OK "400": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request + $ref: "#/components/responses/BadRequestResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cloud_cost_management_read - summary: List Cloud Cost Management orchestrators + - dashboards_read + summary: Get usage stats for a dashboard tags: - - Cloud Cost Management - "x-permission": + - Dashboards + x-permission: operator: OR permissions: - - cloud_cost_management_read + - dashboards_read x-unstable: |- **Note**: This endpoint is in preview and is subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/cost/tag_metadata/tag_sources: + /api/v2/data-observability/monitors/runs/{run_id}/status: get: - description: List Cloud Cost Management tag keys observed for the requested period, along with the origin sources that produced them (for example, `aws-user-defined`, `custom`). - operationId: ListCostTagKeySources + description: Retrieves the current status of a data observability monitor run. Poll this endpoint after triggering a run to determine when evaluation is complete. + operationId: GetDataObservabilityMonitorRunStatus parameters: - - description: The month to scope the query to, in `YYYY-MM` format. - example: "2026-02" - in: query - name: filter[month] + - description: The ID of the monitor run to retrieve status for. + example: "abc123def456" + in: path + name: run_id required: true schema: type: string - - description: Filter results to a specific provider. Common cloud values are `aws`, `azure`, `gcp`, `Oracle` (OCI), and `custom`. SaaS billing integrations (for example, `Snowflake`, `MongoDB`, `Databricks`) are also accepted using their display-name string. Values are case-sensitive. - in: query - name: filter[provider] - schema: - type: string - - description: Filter results to tag keys that have data for a specific Cloud Cost Management metric (for example, `aws.cost.net.amortized`). When omitted, all tag keys for the requested period are returned. - in: query - name: filter[metric] - schema: - type: string responses: "200": content: @@ -148716,89 +158753,45 @@ paths: default: value: data: - - attributes: - tag_key: env - tag_sources: - - aws-user-defined - - custom - id: env - type: cost_tag_key_source - - attributes: - tag_key: service - tag_sources: - - aws - id: service - type: cost_tag_key_source + attributes: + status: ok + id: "abc123def456" + type: monitor_run schema: - $ref: "#/components/schemas/CostTagKeySourcesResponse" + $ref: "#/components/schemas/GetDataObservabilityMonitorRunStatusResponse" description: OK - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request - "403": + "404": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cloud_cost_management_read - summary: List Cloud Cost Management tag sources + - data_observability_monitors_write + - monitors_write + summary: Get data observability monitor run status tags: - - Cloud Cost Management - "x-permission": - operator: OR - permissions: - - cloud_cost_management_read + - Data Observability x-unstable: |- **Note**: This endpoint is in preview and is subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/cost/tags: - get: - description: List Cloud Cost Management tags for a given metric. - operationId: ListCostTags + /api/v2/data-observability/monitors/{monitor_id}/run: + post: + description: Manually triggers a run for a data observability monitor. Only monitors that are not scheduled (manually-runnable) can be triggered this way. + operationId: RunDataObservabilityMonitor parameters: - - description: The Cloud Cost Management metric to scope the tags to. When omitted, returns tags across all metrics. - in: query - name: filter[metric] - schema: - type: string - - description: A substring used to filter the returned tags by name. - in: query - name: filter[match] - schema: - type: string - - description: |- - Filter to return only tags that appear with the given `key:value` tag values. For example, `filter[tags]=providername:aws` returns tags found on the same cost data, such as `aws_instance_type:t3.micro` and `aws_instance_type:m5.large`. - in: query - name: filter[tags] - schema: - items: - type: string - type: array - - description: Restrict the returned tags to those whose key matches one of the given tag keys. - in: query - name: filter[tag_keys] - schema: - items: - type: string - type: array - - description: |- - Controls the size of the internal tag search scope. This does **not** restrict the number of tags returned in the response. Defaults to 50, maximum 10000. - in: query - name: page[size] + - description: The ID of the data observability monitor to run. + example: 12345 + in: path + name: monitor_id + required: true schema: - default: 50 - format: int32 - maximum: 10000 + format: int64 type: integer responses: "200": @@ -148808,20 +158801,10 @@ paths: default: value: data: - - attributes: - sources: - - focus - value: providername:aws - id: providername:aws - type: cost_tag - - attributes: - sources: - - focus - value: providername:gcp - id: providername:gcp - type: cost_tag + id: "abc123def456" + type: monitor_run schema: - $ref: "#/components/schemas/CostTagsResponse" + $ref: "#/components/schemas/RunDataObservabilityMonitorResponse" description: OK "400": content: @@ -148829,30 +158812,30 @@ paths: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Bad Request - "403": + "404": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - cloud_cost_management_read - summary: List Cloud Cost Management tags + - data_observability_monitors_write + - monitors_write + summary: Run a data observability monitor tags: - - Cloud Cost Management - "x-permission": - operator: OR - permissions: - - cloud_cost_management_read - /api/v2/cost/unit_costs: + - Data Observability + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/datasets: get: - description: List the ROI metrics (unit costs) for the authenticated organization. - operationId: ListUnitCosts + description: Get all datasets that have been configured for an organization. + operationId: GetAllDatasets responses: "200": content: @@ -148862,90 +158845,41 @@ paths: value: data: - attributes: - created_at: "2026-09-01T18:46:15.933716Z" - created_by: 36ea1610-8866-4bd3-bb6d-9bb9fc87cad2 - denominator_query: - formulas: - - formula: denominator - queries: - - data_source: metrics - name: denominator - query: "avg:system.cpu.user{*}" - response_format: timeseries - denominator_type: metrics - name: Cloud cost per active user - numerator_query: - formulas: - - formula: numerator - queries: - - data_source: cloud_cost - name: numerator - query: "sum:aws.cost.net.amortized.shared.resources.allocated{*}.rollup(sum, daily)" - response_format: timeseries - org_id: 321813 - unit_label: user - updated_at: "2026-09-01T19:52:08.820536Z" - updated_by: 13cc0adf-2595-479e-b448-5051c180dddb - id: 64aecd58-e355-4f07-9c3a-56ff6bda6cd8 - type: unit_cost - - attributes: - created_at: "2026-09-02T00:59:12.708413Z" - created_by: 36ea1610-8866-4bd3-bb6d-9bb9fc87cad2 - denominator_query: - formulas: - - formula: denominator - queries: - - compute: - aggregation: count - data_source: ci_pipelines - group_by: [] - indexes: - - "*" - name: denominator - search: - query: "ci_level:pipeline @ci.status:success" - storage: hot - response_format: timeseries - denominator_type: ci_pipelines - name: Cloud cost per successful pipeline - numerator_query: - formulas: - - formula: numerator - queries: - - data_source: cloud_cost - name: numerator - query: "sum:custom.cost.amortized{*}.rollup(sum, daily)" - response_format: timeseries - org_id: 321813 - unit_label: pipeline - updated_at: "2026-09-02T01:00:05.709773Z" - updated_by: 36ea1610-8866-4bd3-bb6d-9bb9fc87cad2 - id: ab11677e-396e-4dce-8018-bbeb398315ae - type: unit_cost + name: Security Audit Dataset + principals: + - role:94172442-be03-11e9-a77a-3b7612558ac1 + product_filters: + - filters: + - source:cloudtrail + product: logs + id: 00000000-0000-0000-0000-000000000003 + type: dataset schema: - $ref: "#/components/schemas/UnitCostsResponse" + $ref: "#/components/schemas/DatasetResponseMulti" description: OK "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: List unit costs + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - user_access_read + summary: Get all datasets tags: - - Cloud Cost Management + - Datasets "x-permission": operator: OR permissions: - - cloud_cost_management_read + - user_access_read x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + **Note: Data Access is in preview. If you have any feedback, + contact [Datadog support](https://docs.datadoghq.com/help/).** post: - description: Create an ROI metric (unit cost) using the given numerator and denominator queries. - operationId: CreateUnitCost + description: |- + Create a dataset with the configurations in the request. + operationId: CreateDataset requestBody: content: application/json: @@ -148954,30 +158888,21 @@ paths: value: data: attributes: - denominator_query: - formulas: - - formula: denominator - queries: - - data_source: metrics - name: denominator - query: "avg:system.cpu.user{*}" - response_format: timeseries - name: Cloud cost per active user - numerator_query: - formulas: - - formula: numerator - queries: - - data_source: cloud_cost - name: numerator - query: "sum:aws.cost.net.amortized.shared.resources.allocated{*}.rollup(sum, daily)" - response_format: timeseries - unit_label: user - type: unit_cost + name: Security Audit Dataset + principals: + - role:94172442-be03-11e9-a77a-3b7612558ac1 + product_filters: + - filters: + - source:cloudtrail + product: logs + restriction_query_id: 00000000-0000-0000-0000-000000000001 + type: dataset schema: - $ref: "#/components/schemas/UnitCostCreateRequest" + $ref: "#/components/schemas/DatasetCreateRequest" + description: Dataset payload required: true responses: - "201": + "200": content: application/json: examples: @@ -148985,145 +158910,287 @@ paths: value: data: attributes: - created_at: "2026-09-01T18:46:15.933716Z" - created_by: 36ea1610-8866-4bd3-bb6d-9bb9fc87cad2 - denominator_query: - formulas: - - formula: denominator - queries: - - data_source: metrics - name: denominator - query: "avg:system.cpu.user{*}" - response_format: timeseries - denominator_type: metrics - name: Cloud cost per active user - numerator_query: - formulas: - - formula: numerator - queries: - - data_source: cloud_cost - name: numerator - query: "sum:aws.cost.net.amortized.shared.resources.allocated{*}.rollup(sum, daily)" - response_format: timeseries - org_id: 321813 - unit_label: user - updated_at: "2026-09-01T18:46:15.933716Z" - updated_by: 36ea1610-8866-4bd3-bb6d-9bb9fc87cad2 - id: 64aecd58-e355-4f07-9c3a-56ff6bda6cd8 - type: unit_cost - schema: - $ref: "#/components/schemas/UnitCostResponse" - description: Created - headers: - Location: - description: The path of the newly created unit cost. + name: Security Audit Dataset + principals: + - "role:abc-123" + product_filters: + - filters: + - source:cloudtrail + product: logs + id: 00000000-0000-0000-0000-000000000004 + type: dataset schema: - type: string + $ref: "#/components/schemas/DatasetResponseSingle" + description: OK "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + $ref: "#/components/responses/BadRequestResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/NotAuthorizedResponse" + "409": + $ref: "#/components/responses/ConflictResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Create a unit cost + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - user_access_manage + summary: Create a dataset tags: - - Cloud Cost Management - "x-permission": + - Datasets + x-codegen-request-body-name: body + x-permission: operator: OR permissions: - - cloud_cost_management_read + - user_access_manage x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/cost/unit_costs/{unit_cost_id}: + **Note: Data Access is in preview. If you have any feedback, + contact [Datadog support](https://docs.datadoghq.com/help/).** + /api/v2/datasets/{dataset_id}: delete: - description: Delete an ROI metric (unit cost). - operationId: DeleteUnitCost + description: Deletes the dataset associated with the ID. + operationId: DeleteDataset parameters: - - $ref: "#/components/parameters/UnitCostID" + - $ref: "#/components/parameters/DatasetID" responses: "204": description: No Content "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + $ref: "#/components/responses/BadRequestResponse" "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - user_access_manage + summary: Delete a dataset + tags: + - Datasets + "x-permission": + operator: OR + permissions: + - user_access_manage + x-unstable: |- + **Note: Data Access is in preview. If you have any feedback, + contact [Datadog support](https://docs.datadoghq.com/help/).** + get: + description: Retrieves the dataset associated with the ID. + operationId: GetDataset + parameters: + - $ref: "#/components/parameters/DatasetID" + responses: + "200": content: application/json: + examples: + default: + value: + data: + attributes: + name: Security Audit Dataset + principals: + - role:94172442-be03-11e9-a77a-3b7612558ac1 + product_filters: + - filters: + - source:cloudtrail + product: logs + id: 00000000-0000-0000-0000-000000000001 + type: dataset schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/schemas/DatasetResponseSingle" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/NotAuthorizedResponse" "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - user_access_read + summary: Get a single dataset by ID + tags: + - Datasets + "x-permission": + operator: OPEN + permissions: [] + x-unstable: |- + **Note: Data Access is in preview. If you have any feedback, + contact [Datadog support](https://docs.datadoghq.com/help/).** + put: + description: |- + Edits the dataset associated with the ID. + operationId: UpdateDataset + parameters: + - $ref: "#/components/parameters/DatasetID" + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + name: Security Audit Dataset + principals: + - role:94172442-be03-11e9-a77a-3b7612558ac1 + product_filters: + - filters: + - "@application.id:ABCD" + product: logs + type: dataset + schema: + $ref: "#/components/schemas/DatasetUpdateRequest" + description: Dataset payload + required: true + responses: + "200": content: application/json: + examples: + default: + value: + data: + attributes: + name: Security Audit Dataset + principals: + - role:94172442-be03-11e9-a77a-3b7612558ac1 + product_filters: + - filters: + - source:cloudtrail + product: logs + id: 00000000-0000-0000-0000-000000000002 + type: dataset schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + $ref: "#/components/schemas/DatasetResponseSingle" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Delete a unit cost + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - user_access_manage + summary: Edit a dataset tags: - - Cloud Cost Management + - Datasets + x-codegen-request-body-name: body "x-permission": operator: OR permissions: - - cloud_cost_management_read + - user_access_manage x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - get: - description: Retrieve an ROI metric (unit cost) by UUID. - operationId: GetUnitCost - parameters: - - $ref: "#/components/parameters/UnitCostID" + **Note: Data Access is in preview. If you have any feedback, + contact [Datadog support](https://docs.datadoghq.com/help/).** + /api/v2/ddsql/query/tabular: + post: + description: |- + Submit a DDSQL statement and return either a `running` state with an opaque `query_id` + for the client to poll, or a `completed` state with the column-major result set inlined + when the query finishes quickly enough to be served synchronously. + + For a scoped application key, include `timeseries_query` in its scopes. + A query that does not read a data source, such as `SELECT 1`, requires no additional + data-source permissions. Queries that read data sources also require the user or + service account that owns the application key to have the corresponding data access + permissions through their roles. The `timeseries_query` permission does not grant + access to the underlying data sources. + operationId: ExecuteDdsqlTabularQuery + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + query: "SELECT cloud_provider, count(*) FROM dd.hosts group by cloud_provider" + row_limit: 1000 + time: + from_timestamp: 1736942400000 + to_timestamp: 1736946000000 + type: ddsql_query_request + schema: + $ref: "#/components/schemas/DdsqlTabularQueryRequest" + required: true responses: "200": content: application/json: examples: + completed: + summary: Query finished synchronously + value: + data: + attributes: + columns: + - name: service + type: VARCHAR + values: + - web-store + - checkout + - name: count + type: BIGINT + values: + - 1024 + - 512 + state: completed + id: "00000000-0000-0000-0000-000000000000" + type: ddsql_query_response + meta: + elapsed: 318 + request_id: "req-7f3e7d2c-1a0b-4d3e-9b2a-3c4d5e6f7081" default: + summary: Query finished synchronously value: data: attributes: - created_at: "2026-09-01T18:46:15.933716Z" - created_by: 36ea1610-8866-4bd3-bb6d-9bb9fc87cad2 - denominator_query: - formulas: - - formula: denominator - queries: - - data_source: metrics - name: denominator - query: "avg:system.cpu.user{*}" - response_format: timeseries - denominator_type: metrics - name: Cloud cost per active user - numerator_query: - formulas: - - formula: numerator - queries: - - data_source: cloud_cost - name: numerator - query: "sum:aws.cost.net.amortized.shared.resources.allocated{*}.rollup(sum, daily)" - response_format: timeseries - org_id: 321813 - unit_label: user - updated_at: "2026-09-01T19:52:08.820536Z" - updated_by: 13cc0adf-2595-479e-b448-5051c180dddb - id: 64aecd58-e355-4f07-9c3a-56ff6bda6cd8 - type: unit_cost + columns: + - name: service + type: VARCHAR + values: + - web-store + - checkout + - name: count + type: BIGINT + values: + - 1024 + - 512 + state: completed + id: "00000000-0000-0000-0000-000000000000" + type: ddsql_query_response + meta: + elapsed: 318 + request_id: "req-7f3e7d2c-1a0b-4d3e-9b2a-3c4d5e6f7081" + running: + summary: Query still executing + value: + data: + attributes: + query_id: "eyJxdWVyeSI6ICJTRUxFQ1QgKiBGUk9NIGxvZ3MifQ==" + state: running + id: "00000000-0000-0000-0000-000000000000" + type: ddsql_query_response + meta: + elapsed: 42 + request_id: "req-7f3e7d2c-1a0b-4d3e-9b2a-3c4d5e6f7081" schema: - $ref: "#/components/schemas/UnitCostResponse" + $ref: "#/components/schemas/DdsqlTabularQueryResponse" description: OK "400": content: @@ -149137,29 +159204,39 @@ paths: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Forbidden - "404": + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + "500": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get a unit cost + description: Internal Server Error + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - timeseries_query + summary: Execute a tabular DDSQL query tags: - - Cloud Cost Management + - DDSQL "x-permission": operator: OR permissions: - - cloud_cost_management_read - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - put: - description: Replace an ROI metric (unit cost) with a new set of attributes. - operationId: UpdateUnitCost - parameters: - - $ref: "#/components/parameters/UnitCostID" + - timeseries_query + /api/v2/ddsql/query/tabular/fetch: + post: + description: |- + Poll a previously submitted DDSQL query for results. Pass the opaque `query_id` returned + by a prior `ExecuteDdsqlTabularQuery` (or by a prior `FetchDdsqlTabularQuery` that + returned `state: running`) and the server returns either a `running` state to poll again + or a `completed` state with the column-major result set inlined. + + For a scoped application key, include `timeseries_query` in its scopes. + Fetch results as the same user and organization that submitted the query. + The user or service account that owns the application key must have the data access + permissions required by the queried data sources through their roles. + operationId: FetchDdsqlTabularQuery requestBody: content: application/json: @@ -149168,66 +159245,74 @@ paths: value: data: attributes: - denominator_query: - formulas: - - formula: denominator - queries: - - data_source: metrics - name: denominator - query: "avg:system.cpu.user{*}" - response_format: timeseries - name: Cloud cost per active user - numerator_query: - formulas: - - formula: numerator - queries: - - data_source: cloud_cost - name: numerator - query: "sum:aws.cost.net.amortized.shared.resources.allocated{*}.rollup(sum, daily)" - response_format: timeseries - unit_label: user - id: 64aecd58-e355-4f07-9c3a-56ff6bda6cd8 - type: unit_cost + query_id: "eyJxdWVyeSI6ICJTRUxFQ1QgKiBGUk9NIGxvZ3MifQ==" + type: ddsql_query_fetch_request schema: - $ref: "#/components/schemas/UnitCostUpdateRequest" + $ref: "#/components/schemas/DdsqlTabularQueryFetchRequest" required: true responses: "200": content: application/json: examples: + completed: + summary: Query finished + value: + data: + attributes: + columns: + - name: service + type: VARCHAR + values: + - web-store + - checkout + - name: count + type: BIGINT + values: + - 1024 + - 512 + state: completed + id: "00000000-0000-0000-0000-000000000000" + type: ddsql_query_response + meta: + elapsed: 87 + request_id: "req-7f3e7d2c-1a0b-4d3e-9b2a-3c4d5e6f7082" default: + summary: Query finished value: data: attributes: - created_at: "2026-09-01T18:46:15.933716Z" - created_by: 36ea1610-8866-4bd3-bb6d-9bb9fc87cad2 - denominator_query: - formulas: - - formula: denominator - queries: - - data_source: metrics - name: denominator - query: "avg:system.cpu.user{*}" - response_format: timeseries - denominator_type: metrics - name: Cloud cost per active user - numerator_query: - formulas: - - formula: numerator - queries: - - data_source: cloud_cost - name: numerator - query: "sum:aws.cost.net.amortized.shared.resources.allocated{*}.rollup(sum, daily)" - response_format: timeseries - org_id: 321813 - unit_label: user - updated_at: "2026-09-01T19:52:08.820536Z" - updated_by: 13cc0adf-2595-479e-b448-5051c180dddb - id: 64aecd58-e355-4f07-9c3a-56ff6bda6cd8 - type: unit_cost + columns: + - name: service + type: VARCHAR + values: + - web-store + - checkout + - name: count + type: BIGINT + values: + - 1024 + - 512 + state: completed + id: "00000000-0000-0000-0000-000000000000" + type: ddsql_query_response + meta: + elapsed: 87 + request_id: "req-7f3e7d2c-1a0b-4d3e-9b2a-3c4d5e6f7082" + running: + summary: Query still executing + value: + data: + attributes: + query_id: "eyJxdWVyeSI6ICJTRUxFQ1QgKiBGUk9NIGxvZ3MifQ==" + state: running + id: "00000000-0000-0000-0000-000000000000" + type: ddsql_query_response + meta: + elapsed: 12 + request_id: "req-7f3e7d2c-1a0b-4d3e-9b2a-3c4d5e6f7082" schema: - $ref: "#/components/schemas/UnitCostResponse" + $ref: "#/components/schemas/DdsqlTabularQueryResponse" description: OK "400": content: @@ -149241,463 +159326,639 @@ paths: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Forbidden - "404": + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + "500": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: Update a unit cost + description: Internal Server Error + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - timeseries_query + summary: Fetch the result of a DDSQL query tags: - - Cloud Cost Management + - DDSQL "x-permission": operator: OR permissions: - - cloud_cost_management_read - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/cost_by_tag/active_billing_dimensions: - get: - description: |- - Get active billing dimensions for cost attribution. Cost data for a given month becomes available no later than the 19th of the following month. - operationId: GetActiveBillingDimensions + - timeseries_query + /api/v2/deletion/data/{product}: + post: + description: Creates a data deletion request by providing a query and a timeframe targeting the proper data. + operationId: CreateDataDeletionRequest + parameters: + - $ref: "#/components/parameters/ProductName" + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + displayed_total: 100 + from: 1672527600000 + indexes: + - test-index + - test-index-2 + query: + host: abc + service: xyz + to: 1704063600000 + type: create_deletion_req + schema: + $ref: "#/components/schemas/CreateDataDeletionRequestBody" + required: true responses: "200": content: - application/json;datetime-format=rfc3339: + application/json: examples: default: value: data: - id: abc-123 - type: billing_dimensions + attributes: + created_at: "2024-01-01T00:00:00.000000Z" + created_by: test@example.com + displayed_total: 100 + from_time: 1672527600000 + is_created: true + org_id: 123 + product: logs + query: "service:xyz host:abc" + source: standard + starting_at: "2024-01-01T02:00:00.000000Z" + status: pending + to_time: 1704063600000 + total_unrestricted: 100 + updated_at: "2024-01-01T00:00:00.000000Z" + id: "1" + type: deletion_request + meta: + product: logs + request_status: pending schema: - $ref: "#/components/schemas/ActiveBillingDimensionsResponse" + $ref: "#/components/schemas/CreateDataDeletionResponseBody" description: OK "400": - content: - application/json;datetime-format=rfc3339: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request + $ref: "#/components/responses/BadRequestResponse" "403": + $ref: "#/components/responses/ForbiddenResponse" + "412": content: - application/json;datetime-format=rfc3339: + application/json: schema: $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden - User is not authorized + description: Precondition failed error "429": + $ref: "#/components/responses/TooManyRequestsResponse" + "500": content: - application/json;datetime-format=rfc3339: + application/json: schema: $ref: "#/components/schemas/APIErrorResponse" - description: Too many requests + description: Internal server error security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: - - usage_read - summary: Get active billing dimensions for cost attribution + - AuthZ: [] + summary: Creates a data deletion request tags: - - Usage Metering - "x-permission": + - Data Deletion + x-permission: operator: OR permissions: - - usage_read - /api/v2/cost_by_tag/monthly_cost_attribution: + - logs_delete_data + /api/v2/deletion/requests: get: - description: |- - Get monthly cost attribution by tag across multi-org and single root-org accounts. - Cost Attribution data for a given month becomes available no later than the 19th of the following month. - This API endpoint is paginated. To make sure you receive all records, check if the value of `next_record_id` is - set in the response. If it is, make another request and pass `next_record_id` as a parameter. - Pseudo code example: - ``` - response := GetMonthlyCostAttribution(start_month, end_month) - cursor := response.metadata.pagination.next_record_id - WHILE cursor != null BEGIN - sleep(5 seconds) # Avoid running into rate limit - response := GetMonthlyCostAttribution(start_month, end_month, next_record_id=cursor) - cursor := response.metadata.pagination.next_record_id - END - ``` - - This endpoint is only accessible for [parent-level organizations](https://docs.datadoghq.com/account_management/multi_organization/). This endpoint is not available in the Government (US1-FED) site. - operationId: GetMonthlyCostAttribution + description: Gets a list of data deletion requests based on several filter parameters. + operationId: GetDataDeletionRequests parameters: - description: |- - Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost beginning in this month. - in: query - name: start_month - required: true - schema: - format: date-time - type: string - - description: "Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost ending this month." + The next page of the previous search. If the next_page parameter is included, the rest of the query elements are ignored. + example: "cGFnZTI=" in: query - name: end_month + name: next_page required: false - schema: - format: date-time - type: string - - description: |- - Comma-separated list specifying cost types (e.g., `_on_demand_cost`, `_committed_cost`, `_total_cost`) and the - proportions (`_percentage_in_org`, `_percentage_in_account`). Use `*` to retrieve all fields. - Example: `infra_host_on_demand_cost,infra_host_percentage_in_account` - To obtain the complete list of active billing dimensions that can be used to replace - `` in the field names, make a request to the [Get active billing dimensions API](https://docs.datadoghq.com/api/latest/usage-metering/#get-active-billing-dimensions-for-cost-attribution). - in: query - name: fields - required: true schema: type: string - - description: "The direction to sort by: `[desc, asc]`." - in: query - name: sort_direction - required: false - schema: - $ref: "#/components/schemas/SortDirection" - - description: "The billing dimension to sort by. Always sorted by total cost. Example: `infra_host`." + - description: Retrieve only the requests related to the given product. + example: "logs" in: query - name: sort_name + name: product required: false schema: type: string - - description: |- - Comma separated list of tag keys used to group cost. If no value is provided the cost will not be broken down by tags. - To see which tags are available, look for the value of `tag_config_source` in the API response. + - description: Retrieve only the requests that matches the given query. + example: "service:xyz host:abc" in: query - name: tag_breakdown_keys + name: query required: false schema: type: string - - description: List following results with a next_record_id provided in the previous query. + - description: Retrieve only the requests with the given status. + example: "pending" in: query - name: next_record_id + name: status required: false schema: type: string - - description: "Include child org cost in the response. Defaults to `true`." + - description: Sets the page size of the search. + example: "50" in: query - name: include_descendants + name: page_size required: false schema: - default: true - type: boolean + default: 50 + format: int64 + maximum: 50 + minimum: 1 + type: integer responses: "200": content: - application/json;datetime-format=rfc3339: + application/json: examples: default: value: data: - - id: abc-123 - type: cost_by_tag + - attributes: + created_at: "2024-01-01T00:00:00.000000Z" + created_by: test@example.com + displayed_total: 100 + from_time: 1672527600000 + is_created: true + org_id: 123 + product: logs + query: "service:xyz host:abc" + source: standard + starting_at: "2024-01-01T02:00:00.000000Z" + status: pending + to_time: 1704063600000 + total_unrestricted: 100 + updated_at: "2024-01-01T00:00:00.000000Z" + id: "1" + type: deletion_request + meta: + next_page: "cGFnZTI=" + product: logs schema: - $ref: "#/components/schemas/MonthlyCostAttributionResponse" + $ref: "#/components/schemas/GetDataDeletionsResponseBody" description: OK "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + "500": content: - application/json;datetime-format=rfc3339: + application/json: schema: $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request + description: Internal server error + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Gets a list of data deletion requests + tags: + - Data Deletion + x-permission: + operator: OR + permissions: + - logs_delete_data + /api/v2/deletion/requests/{id}/cancel: + put: + description: Cancels a data deletion request by providing its ID. + operationId: CancelDataDeletionRequest + parameters: + - $ref: "#/components/parameters/RequestId" + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + created_at: "2024-01-01T00:00:00.000000Z" + created_by: test@example.com + displayed_total: 100 + from_time: 1672527600000 + is_created: true + org_id: 123 + product: logs + query: "service:xyz host:abc" + source: standard + starting_at: "2024-01-01T02:00:00.000000Z" + status: canceled + to_time: 1704063600000 + total_unrestricted: 100 + updated_at: "2024-01-01T00:00:00.000000Z" + id: "1" + type: deletion_request + meta: + product: logs + request_status: canceled + schema: + $ref: "#/components/schemas/CancelDataDeletionResponseBody" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" "403": + $ref: "#/components/responses/ForbiddenResponse" + "412": content: - application/json;datetime-format=rfc3339: + application/json: schema: $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden - User is not authorized + description: Precondition failed error "429": + $ref: "#/components/responses/TooManyRequestsResponse" + "500": content: - application/json;datetime-format=rfc3339: + application/json: schema: $ref: "#/components/schemas/APIErrorResponse" - description: Too many requests + description: Internal server error security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: - - usage_read - - billing_read - summary: Get Monthly Cost Attribution + - AuthZ: [] + summary: Cancels a data deletion request tags: - - Usage Metering - "x-permission": - operator: AND + - Data Deletion + x-permission: + operator: OR permissions: - - usage_read - - billing_read - /api/v2/csm/onboarding/agents: - get: - description: Get the list of all CSM Agents running on your hosts and containers. - operationId: ListAllCSMAgents + - logs_delete_data + /api/v2/dem/journeys: + post: + description: Create a DEM journey. + operationId: CreateJourney + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + description: Tracks the user checkout flow from cart to confirmation. + journey_rum: + rum_steps: + - nodes: + - query: action.name:'checkout' + type: start + - nodes: + - query: action.name:'confirmation' + type: stop + name: Checkout Flow + tags: + - team:synthetics + type: journeys + schema: + $ref: "#/components/schemas/DemJourneyCreateRequest" + required: true + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + created_at: "2024-01-15T10:30:00Z" + created_by: + email: jane.doe@example.com + handle: jane.doe + name: Jane Doe + uuid: 00000000-0000-0000-0000-000000000001 + description: Tracks checkout flow. + journey_rum: + rum_steps: + - nodes: + - query: action.name:'checkout' + type: start + - nodes: + - query: action.name:'confirmation' + type: stop + name: Checkout Flow + org_id: 12345 + tags: + - team:synthetics + test_suite: + updated_at: + updated_by: + variants: [] + id: journey-abc123 + type: journeys + schema: + $ref: "#/components/schemas/DemJourneyResponse" + description: OK + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Create a DEM journey + tags: + - DEM + x-permission: + operator: OR + permissions: + - synthetics_write + /api/v2/dem/journeys/inferred/ignored/{journey_id}: + delete: + description: Remove an ignored inferred DEM journey, making it eligible to appear as a candidate again. + operationId: DeleteIgnoredInferredJourney parameters: - - description: The page index for pagination (zero-based). - in: query - name: page - required: false + - description: The unique identifier of the ignored inferred journey to delete. + example: inferred-abc123 + in: path + name: journey_id + required: true schema: - example: 2 - format: int32 - maximum: 1000000 - minimum: 0 - type: integer - - description: The number of items to include in a single page. + type: string + responses: + "204": + description: No Content + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Delete an ignored inferred DEM journey + tags: + - DEM + x-permission: + operator: OR + permissions: + - synthetics_write + /api/v2/dem/journeys/inferred/search: + get: + description: >- + Search for inferred DEM journeys by status. Returns candidates (status=candidate, the default) or ignored journeys (status=ignored). Supports optional fuzzy name filtering and app ID filtering. + operationId: SearchInferredJourneys + parameters: + - description: >- + Filter by inferred journey status. Use `candidate` (default) to retrieve journeys suggested for promotion, or `ignored` to retrieve journeys that have been dismissed. in: query - name: size + name: status required: false schema: - example: 12 - format: int32 - maximum: 100 - minimum: 0 - type: integer - - description: A search query string to filter results (for example, `hostname:COMP-T2H4J27423`). + $ref: "#/components/schemas/DemInferredJourneyStatus" + - description: Fuzzy search query to filter inferred journeys by name. in: query - name: query + name: q required: false schema: - example: "hostname:COMP-T2H4J27423" type: string - - description: The sort direction for results. Use `asc` for ascending or `desc` for descending. + - description: Filter inferred journeys by application ID. in: query - name: order_direction + name: app_id required: false schema: - $ref: "#/components/schemas/OrderDirection" + type: string responses: "200": content: - "application/json": + application/json: examples: + candidates: + value: + data: + - attributes: + created_at: "2024-01-15T10:30:00Z" + description: + journey_rum: + rum_steps: + - nodes: + - query: action.name:'checkout' + type: start + - nodes: + - query: action.name:'confirmation' + type: stop + name: Checkout Flow + org_id: 12345 + rank: 1 + tags: + - team:synthetics + test_suite: + variants: [] + id: inferred-abc123 + type: journeys default: value: data: - attributes: - agent_version: "7.50.0" - hostname: example-host - os: linux - id: abc-123 - type: datadog_agent - meta: - page_index: 0 - page_size: 10 - total_filtered: 1 - schema: - $ref: "#/components/schemas/CsmAgentsResponse" - description: OK - "403": - $ref: "#/components/responses/NotAuthorizedResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get all CSM Agents - tags: ["CSM Agents"] - /api/v2/csm/onboarding/coverage_analysis/cloud_accounts: - get: - description: |- - Get the CSM Coverage Analysis of your Cloud Accounts. - This is calculated based on the number of your Cloud Accounts that are - scanned for security issues. - operationId: GetCSMCloudAccountsCoverageAnalysis - responses: - "200": + created_at: "2024-01-01T00:00:00+00:00" + description: + journey_rum: + rum_steps: + - nodes: + - query: action.name:'checkout' + type: start + - nodes: + - query: action.name:'confirmation' + type: stop + name: Checkout Flow + org_id: 123 + rank: 1 + tags: + - team:synthetics + variants: [] + id: inferred-abc123 + type: journeys + ignored: + value: + data: + - attributes: + created_at: "2024-01-15T10:30:00Z" + description: + ignored_at: "2024-01-16T08:00:00Z" + journey_rum: + rum_steps: + - nodes: + - query: action.name:'login' + type: start + - nodes: + - query: action.name:'dashboard' + type: stop + name: Login Flow + org_id: 12345 + tags: + - team:synthetics + test_suite: + variants: [] + id: inferred-def456 + type: journeys + schema: + $ref: "#/components/schemas/DemSearchInferredJourneysResponse" + description: OK + "400": content: application/json: - examples: - default: - value: - data: - attributes: - org_id: 123 - total_coverage: - configured_resources_count: 8 - coverage: 0.8 - partially_configured_resources_count: 0 - total_resources_count: 10 - id: abc-123 - type: get_cloud_accounts_coverage_analysis_response_public_v0 schema: - $ref: "#/components/schemas/CsmCloudAccountsCoverageAnalysisResponse" - description: OK - "403": - $ref: "#/components/responses/NotAuthorizedResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get the CSM Cloud Accounts Coverage Analysis - tags: ["CSM Coverage Analysis"] - /api/v2/csm/onboarding/coverage_analysis/hosts_and_containers: - get: - description: |- - Get the CSM Coverage Analysis of your Hosts and Containers. - This is calculated based on the number of agents running on your Hosts - and Containers with CSM feature(s) enabled. - operationId: GetCSMHostsAndContainersCoverageAnalysis - responses: - "200": + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "404": content: application/json: - examples: - default: - value: - data: - attributes: - org_id: 123 - total_coverage: - configured_resources_count: 8 - coverage: 0.8 - partially_configured_resources_count: 0 - total_resources_count: 10 - id: abc-123 - type: get_hosts_and_containers_coverage_analysis_response_public_v0 schema: - $ref: "#/components/schemas/CsmHostsAndContainersCoverageAnalysisResponse" - description: OK - "403": - $ref: "#/components/responses/NotAuthorizedResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get the CSM Hosts and Containers Coverage Analysis - tags: ["CSM Coverage Analysis"] - /api/v2/csm/onboarding/coverage_analysis/serverless: - get: - description: |- - Get the CSM Coverage Analysis of your Serverless Resources. - This is calculated based on the number of agents running on your Serverless - Resources with CSM feature(s) enabled. - operationId: GetCSMServerlessCoverageAnalysis + summary: Search inferred DEM journeys + tags: + - DEM + x-permission: + operator: OR + permissions: + - synthetics_read + /api/v2/dem/journeys/inferred/{journey_id}/ignore: + post: + description: Mark an inferred DEM journey as ignored so it no longer appears in the candidate list. + operationId: IgnoreInferredJourney + parameters: + - description: The unique identifier of the inferred journey to ignore. + example: inferred-abc123 + in: path + name: journey_id + required: true + schema: + type: string responses: - "200": + "204": + description: No Content + "404": content: application/json: - examples: - default: - value: - data: - attributes: - org_id: 123 - total_coverage: - configured_resources_count: 8 - coverage: 0.8 - partially_configured_resources_count: 0 - total_resources_count: 10 - id: abc-123 - type: get_serverless_coverage_analysis_response_public_v0 schema: - $ref: "#/components/schemas/CsmServerlessCoverageAnalysisResponse" - description: OK - "403": - $ref: "#/components/responses/NotAuthorizedResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get the CSM Serverless Coverage Analysis - tags: ["CSM Coverage Analysis"] - /api/v2/csm/onboarding/serverless/agents: + summary: Ignore an inferred DEM journey + tags: + - DEM + x-permission: + operator: OR + permissions: + - synthetics_write + /api/v2/dem/journeys/search: get: - description: Get the list of all CSM Serverless Agents running on your hosts and containers. - operationId: ListAllCSMServerlessAgents + description: Search for DEM journeys with optional filtering by query, creator, team, and app. + operationId: SearchJourneys parameters: - - description: The page index for pagination (zero-based). + - description: A search query string to filter journeys by name. in: query - name: page + name: query required: false schema: - example: 2 - format: int32 - maximum: 1000000 - minimum: 0 + type: string + - description: The offset for pagination. + in: query + name: page[offset] + required: false + schema: + format: int64 type: integer - - description: The number of items to include in a single page. + - description: The maximum number of results to return. in: query - name: size + name: page[limit] required: false schema: - example: 12 - format: int32 - maximum: 100 - minimum: 0 + format: int64 type: integer - - description: A search query string to filter results (for example, `hostname:COMP-T2H4J27423`). + - description: Filter journeys by creator handle. in: query - name: query + name: creator required: false schema: - example: "hostname:COMP-T2H4J27423" type: string - - description: The sort direction for results. Use `asc` for ascending or `desc` for descending. + - description: Filter journeys by team tag. in: query - name: order_direction + name: team required: false schema: - $ref: "#/components/schemas/OrderDirection" + type: string + - description: Filter journeys by application ID. + in: query + name: app_id + required: false + schema: + type: string responses: "200": content: - "application/json": + application/json: examples: default: value: data: - attributes: - agent_version: "7.50.0" - hostname: example-host - os: linux - id: abc-123 - type: datadog_agent - meta: - page_index: 0 - page_size: 10 - total_filtered: 1 + created_at: "2024-01-15T10:30:00Z" + created_by: + email: jane.doe@example.com + handle: jane.doe + name: Jane Doe + uuid: 00000000-0000-0000-0000-000000000001 + description: Tracks checkout flow. + journey_rum: + rum_steps: + - nodes: + - query: action.name:'checkout' + type: start + - nodes: + - query: action.name:'confirmation' + type: stop + name: Checkout Flow + org_id: 12345 + tags: + - team:synthetics + test_suite: + updated_at: + updated_by: + variants: [] + id: journey-abc123 + type: journeys schema: - $ref: "#/components/schemas/CsmAgentsResponse" + $ref: "#/components/schemas/DemJourneysListResponse" description: OK - "403": - $ref: "#/components/responses/NotAuthorizedResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get all CSM Serverless Agents - tags: ["CSM Agents"] - /api/v2/csm/ownership/settings: - get: - description: Get ownership settings for the org. When settings are unset, the API returns the default opt-out configuration with `auto_tag` set to `true` and `confidence_level` set to `high`. - operationId: GetOwnershipSettings - responses: - "200": + "400": content: application/json: - examples: - default: - value: - data: - attributes: - auto_tag: true - confidence_level: high - version: 1 - id: settings - type: ownership_settings schema: - $ref: "#/components/schemas/OwnershipSettingsResponse" - description: OK - "401": + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "404": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Unauthorized + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get ownership settings for the org - tags: ["CSM Ownership"] - x-unstable: |- - **Note**: This endpoint is in Preview and may be subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + summary: Search DEM journeys + tags: + - DEM + x-permission: + operator: OR + permissions: + - synthetics_read + /api/v2/dem/journeys/suites/batch: post: - description: Update ownership settings for the org. - operationId: PostOwnershipSettings + description: Return DEM journeys associated with multiple given test suite IDs. + operationId: BatchGetJourneysByTestSuiteIDs requestBody: content: application/json: @@ -149706,11 +159967,12 @@ paths: value: data: attributes: - auto_tag: true - confidence_level: high - type: ownership_settings + test_suite_ids: + - suite-abc123 + - suite-def456 + type: batch_get_journeys_by_test_suite_ids_request schema: - $ref: "#/components/schemas/OwnershipSettingsRequest" + $ref: "#/components/schemas/DemBatchGetJourneysRequest" required: true responses: "200": @@ -149720,14 +159982,34 @@ paths: default: value: data: - attributes: - auto_tag: true - confidence_level: high - version: 1 - id: settings - type: ownership_settings + - attributes: + created_at: "2024-01-15T10:30:00Z" + created_by: + email: jane.doe@example.com + handle: jane.doe + name: Jane Doe + uuid: 00000000-0000-0000-0000-000000000001 + description: Tracks checkout flow. + journey_rum: + rum_steps: + - nodes: + - query: action.name:'checkout' + type: start + - nodes: + - query: action.name:'confirmation' + type: stop + name: Checkout Flow + org_id: 12345 + tags: + - team:synthetics + test_suite: + updated_at: + updated_by: + variants: [] + id: journey-abc123 + type: journeys schema: - $ref: "#/components/schemas/OwnershipSettingsResponse" + $ref: "#/components/schemas/DemJourneysListResponse" description: OK "400": content: @@ -149735,66 +160017,83 @@ paths: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Bad Request - "401": + "404": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Unauthorized + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Update ownership settings for the org - tags: ["CSM Ownership"] - x-unstable: |- - **Note**: This endpoint is in Preview and may be subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/csm/ownership/settings/untagged: - get: - description: Count findings with no team tag, grouped by ownership confidence level. - operationId: GetOwnershipUntaggedFindings + summary: Batch get DEM journeys by test suite IDs + tags: + - DEM + x-permission: + operator: OR + permissions: + - synthetics_read + /api/v2/dem/journeys/variants/{variant_id}: + delete: + description: Delete a variant from a DEM journey. + operationId: DeleteJourneyVariant + parameters: + - description: The unique identifier of the variant to delete. + example: "variant-001" + in: path + name: variant_id + required: true + schema: + type: string responses: - "200": - content: - application/json: - examples: - default: - value: - data: - attributes: - high_confidence: 30 - low_confidence: 42 - medium_confidence: 70 - total: 142 - id: untagged - type: ownership_untagged_findings - schema: - $ref: "#/components/schemas/OwnershipUntaggedFindingsResponse" - description: OK - "401": + "204": + description: No Content + "404": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Unauthorized + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Count untagged findings by ownership confidence - tags: ["CSM Ownership"] - x-unstable: |- - **Note**: This endpoint is in Preview and may be subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/csm/ownership/{resource_id}: - get: - description: Get all current ownership inferences for a resource, one per owner type (`user`, `team`, `service`, `unknown`). - operationId: ListOwnershipInferences + summary: Delete a DEM journey variant + tags: + - DEM + x-permission: + operator: OR + permissions: + - synthetics_write + put: + description: Update an existing variant of a DEM journey. + operationId: UpdateJourneyVariant parameters: - - description: The identifier of the resource to retrieve ownership inferences for. + - description: The unique identifier of the variant to update. + example: "variant-001" in: path - name: resource_id + name: variant_id required: true schema: - example: test-resource type: string + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + filter: device.type:mobile + name: Mobile checkout + rum_steps: + - nodes: + - query: action.name:'checkout' + type: start + - nodes: + - query: action.name:'confirmation' + type: stop + type: variants + schema: + $ref: "#/components/schemas/DemVariantRequest" + required: true responses: "200": content: @@ -149804,23 +160103,19 @@ paths: value: data: attributes: - items: - - checksum: abc123 - confidence: "0.9500" - created_at: "2026-01-15T10:00:00Z" - evidence_versions: - - pipeline_id: p1 - explanation: High confidence match - id: test-resource:team - owner_type: team - primary_contact_ref: ref:handle/team-a - sources: [] - status: suggested - updated_at: "2026-01-15T10:00:00Z" - id: test-resource - type: ownership_inferences + filter: device.type:mobile + name: Mobile checkout + rum_steps: + - nodes: + - query: action.name:'checkout' + type: start + - nodes: + - query: action.name:'confirmation' + type: stop + id: variant-001 + type: variants schema: - $ref: "#/components/schemas/OwnershipInferenceListResponse" + $ref: "#/components/schemas/DemVariantResponse" description: OK "400": content: @@ -149828,12 +160123,36 @@ paths: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Bad Request - "401": + "404": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Unauthorized + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Update a DEM journey variant + tags: + - DEM + x-permission: + operator: OR + permissions: + - synthetics_write + /api/v2/dem/journeys/{journey_id}: + delete: + description: Delete a DEM journey by its ID. + operationId: DeleteJourney + parameters: + - description: The unique identifier of the DEM journey to delete. + example: journey-abc123 + in: path + name: journey_id + required: true + schema: + type: string + responses: + "204": + description: No Content "404": content: application/json: @@ -149842,41 +160161,24 @@ paths: description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: List ownership inferences for a resource - tags: ["CSM Ownership"] - x-unstable: |- - **Note**: This endpoint is in Preview and may be subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/csm/ownership/{resource_id}/history: + summary: Delete a DEM journey + tags: + - DEM + x-permission: + operator: OR + permissions: + - synthetics_write get: - description: List inference history entries for a resource across all owner types, ordered from most recent to oldest. Uses cursor-based pagination. - operationId: ListOwnershipHistory + description: Retrieve a single DEM journey by its ID. + operationId: GetJourney parameters: - - description: The identifier of the resource to retrieve inference history for. + - description: The unique identifier of the DEM journey. + example: journey-abc123 in: path - name: resource_id + name: journey_id required: true schema: - example: res-1 - type: string - - description: An opaque, base64-encoded cursor token returned by a previous call in `pagination.next_cursor`. Omit to fetch the first page. - in: query - name: cursor - required: false - schema: - example: eyJpZCI6OTh9 type: string - - description: The maximum number of history entries to return per page. - in: query - name: limit - required: false - schema: - default: 25 - example: 25 - format: int32 - maximum: 100 - minimum: 1 - type: integer responses: "200": content: @@ -149886,76 +160188,84 @@ paths: value: data: attributes: - items: - - checksum: "" - confidence: "0.9000" - created_at: "2026-01-15T10:00:00Z" - evidence_versions: - explanation: "" - failed_at: - failure_reason: - id: 100 - owner_type: team - primary_contact_ref: ref:handle/team-a - resource_id: res-1 - retry_schedule: - sources: [] - status: suggested - pagination: - has_more: false - next_cursor: - id: res-1 - type: ownership_history + created_at: "2024-01-15T10:30:00Z" + created_by: + email: jane.doe@example.com + handle: jane.doe + name: Jane Doe + uuid: 00000000-0000-0000-0000-000000000001 + description: Tracks checkout flow. + journey_rum: + rum_steps: + - nodes: + - query: action.name:'checkout' + type: start + - nodes: + - query: action.name:'confirmation' + type: stop + name: Checkout Flow + org_id: 12345 + tags: + - team:synthetics + test_suite: + updated_at: + updated_by: + variants: [] + id: journey-abc123 + type: journeys schema: - $ref: "#/components/schemas/OwnershipHistoryResponse" + $ref: "#/components/schemas/DemJourneyResponse" description: OK - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "401": + "404": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Unauthorized + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: List ownership inference history for a resource - tags: ["CSM Ownership"] - x-unstable: |- - **Note**: This endpoint is in Preview and may be subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/csm/ownership/{resource_id}/{owner_type}: - get: - description: |- - Get the current ownership inference for a resource for a specific owner type. - - This endpoint supports ETag-based caching. Pass the previously returned `ETag` value in the `If-None-Match` request header to receive a `304 Not Modified` response when the inference has not changed. - operationId: GetOwnershipInference + summary: Get a DEM journey + tags: + - DEM + x-permission: + operator: OR + permissions: + - synthetics_read + put: + description: Update an existing DEM journey by its ID. + operationId: UpdateJourney parameters: - - description: The identifier of the resource to retrieve the ownership inference for. - in: path - name: resource_id - required: true - schema: - example: test-resource - type: string - - description: The owner type of the inference to retrieve. + - description: The unique identifier of the DEM journey to update. + example: journey-abc123 in: path - name: owner_type + name: journey_id required: true schema: - $ref: "#/components/schemas/OwnershipOwnerType" - - description: A previously returned `ETag` value. When supplied and the resource has not changed, the endpoint returns `304 Not Modified`. - in: header - name: If-None-Match - required: false - schema: - example: '"abc123"' type: string + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + description: Tracks the user checkout flow from cart to confirmation. + journey_rum: + rum_steps: + - nodes: + - query: action.name:'checkout' + type: start + - nodes: + - query: action.name:'confirmation' + type: stop + name: Checkout Flow + tags: + - team:synthetics + type: journeys + schema: + $ref: "#/components/schemas/DemJourneyCreateRequest" + required: true responses: "200": content: @@ -149965,45 +160275,38 @@ paths: value: data: attributes: - checksum: abc123 - confidence: "0.9500" - created_at: "2026-01-15T10:00:00Z" - evidence_versions: - - pipeline_id: p1 - explanation: High confidence match - owner_type: team - primary_contact_ref: ref:handle/team-a - sources: [] - status: suggested - updated_at: "2026-01-15T10:00:00Z" - id: test-resource:team - type: ownership_inference + created_at: "2024-01-15T10:30:00Z" + created_by: + email: jane.doe@example.com + handle: jane.doe + name: Jane Doe + uuid: 00000000-0000-0000-0000-000000000001 + description: Tracks checkout flow. + journey_rum: + rum_steps: + - nodes: + - query: action.name:'checkout' + type: start + - nodes: + - query: action.name:'confirmation' + type: stop + name: Checkout Flow + org_id: 12345 + tags: + - team:synthetics + test_suite: + updated_at: "2024-01-16T08:00:00Z" + updated_by: + email: jane.doe@example.com + handle: jane.doe + name: Jane Doe + uuid: 00000000-0000-0000-0000-000000000001 + variants: [] + id: journey-abc123 + type: journeys schema: - $ref: "#/components/schemas/OwnershipInferenceResponse" + $ref: "#/components/schemas/DemJourneyResponse" description: OK - headers: - Cache-Control: - description: The cache control directives applied to the response. - schema: - example: private, max-age=60 - type: string - ETag: - description: A strong validator that identifies the current state of the inference. - schema: - example: '"abc123"' - type: string - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Unauthorized "404": content: application/json: @@ -150012,38 +160315,25 @@ paths: description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get an ownership inference by owner type - tags: ["CSM Ownership"] - x-unstable: |- - **Note**: This endpoint is in Preview and may be subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/csm/ownership/{resource_id}/{owner_type}/evidence: + summary: Update a DEM journey + tags: + - DEM + x-permission: + operator: OR + permissions: + - synthetics_write + /api/v2/dem/journeys/{journey_id}/recommended-tests: get: - description: |- - Get the evidence versions backing the current ownership inference for a resource and owner type. - - This endpoint supports weak ETag caching. Pass the previously returned `ETag` value in the `If-None-Match` request header to receive a `304 Not Modified` response when the evidence has not changed. - operationId: GetOwnershipEvidence + description: >- + Retrieve AI-recommended synthetic tests for a DEM journey. Returns an empty list when no recommendation is available. + operationId: GetJourneyRecommendedTests parameters: - - description: The identifier of the resource to retrieve evidence for. - in: path - name: resource_id - required: true - schema: - example: test-resource - type: string - - description: The owner type of the inference to retrieve evidence for. + - description: The unique identifier of the journey. + example: "journey-abc123" in: path - name: owner_type + name: journey_id required: true schema: - $ref: "#/components/schemas/OwnershipOwnerType" - - description: A previously returned weak `ETag` value. When supplied and the evidence has not changed, the endpoint returns `304 Not Modified`. - in: header - name: If-None-Match - required: false - schema: - example: W/"f2e126916327bda8" type: string responses: "200": @@ -150053,33 +160343,22 @@ paths: default: value: data: - attributes: - evidence_versions: - - pipeline_id: p1 - version: v3 - id: test-resource - type: ownership_evidence + - attributes: + config: + name: Checkout journey + type: browser + created_at: "2026-08-31T16:00:00Z" + name: Checkout journey + result_id: result-abc123 + session_id: session-abc123 + source: gbt + type: browser + variant_id: variant-001 + id: journey-abc123 + type: recommended_tests schema: - $ref: "#/components/schemas/OwnershipEvidenceResponse" + $ref: "#/components/schemas/DemRecommendedTestsResponse" description: OK - headers: - ETag: - description: A weak validator that identifies the current state of the evidence. - schema: - example: W/"f2e126916327bda8" - type: string - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Unauthorized "404": content: application/json: @@ -150088,34 +160367,25 @@ paths: description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get the evidence for an ownership inference - tags: ["CSM Ownership"] - x-unstable: |- - **Note**: This endpoint is in Preview and may be subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/csm/ownership/{resource_id}/{owner_type}/feedback: + summary: Get recommended tests for a DEM journey + tags: + - DEM + x-permission: + operator: OR + permissions: + - synthetics_read + /api/v2/dem/journeys/{journey_id}/variants: post: - description: |- - Submit feedback on the current ownership inference for a resource and owner type. Valid actions are `confirm`, `reject`, `correct`, and `persist`. - - The request must include the current inference `checksum` in `inference_checksum`. If the checksum does not match the current inference state, the endpoint returns `409 Conflict`. - - When `action` is `correct`, `corrected_owner_handle` and `corrected_owner_type` are required. - operationId: CreateOwnershipFeedback + description: Create a variant for a DEM journey. + operationId: CreateJourneyVariant parameters: - - description: The identifier of the resource that the feedback applies to. + - description: The unique identifier of the journey that owns the variant. + example: "journey-abc123" in: path - name: resource_id + name: journey_id required: true schema: - example: res-1 type: string - - description: The type of owner that the feedback applies to. - in: path - name: owner_type - required: true - schema: - $ref: "#/components/schemas/OwnershipOwnerType" requestBody: content: application/json: @@ -150124,14 +160394,21 @@ paths: value: data: attributes: - action: confirm - inference_checksum: abc123 - type: ownership_feedback + filter: device.type:mobile + name: Mobile checkout + rum_steps: + - nodes: + - query: action.name:'checkout' + type: start + - nodes: + - query: action.name:'confirmation' + type: stop + type: variants schema: - $ref: "#/components/schemas/OwnershipFeedbackRequest" + $ref: "#/components/schemas/DemVariantRequest" required: true responses: - "201": + "200": content: application/json: examples: @@ -150139,87 +160416,69 @@ paths: value: data: attributes: - action: confirm - checksum: abc123 - new_status: suggested - owner_type: team - previous_status: suggested - primary_contact_ref: ref:handle/team-a - updated_at: "2026-01-15T10:00:00Z" - id: res-1 - type: ownership_feedback_result + filter: device.type:mobile + name: Mobile checkout + rum_steps: + - nodes: + - query: action.name:'checkout' + type: start + - nodes: + - query: action.name:'confirmation' + type: stop + id: variant-001 + type: variants schema: - $ref: "#/components/schemas/OwnershipFeedbackResponse" - description: Created + $ref: "#/components/schemas/DemVariantResponse" + description: OK "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Bad Request - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Unauthorized "404": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Not Found - "409": - content: - application/json: - schema: - $ref: "#/components/schemas/OwnershipInferenceResponse" - description: Conflict "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Submit feedback on an ownership inference - tags: ["CSM Ownership"] - x-unstable: |- - **Note**: This endpoint is in Preview and may be subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/csm/ownership/{resource_id}/{owner_type}/history: - get: - description: List inference history entries for a resource filtered by owner type, ordered from most recent to oldest. Uses cursor-based pagination. - operationId: ListOwnershipHistoryByOwnerType + summary: Create a DEM journey variant + tags: + - DEM + x-permission: + operator: OR + permissions: + - synthetics_write + /api/v2/dem/journeys/{public_journey_id}/suite: + post: + description: Trigger test suite creation for a given DEM journey. + operationId: CreateTestSuiteForJourney parameters: - - description: The identifier of the resource to retrieve inference history for. - in: path - name: resource_id - required: true - schema: - example: res-1 - type: string - - description: The owner type to filter history by. + - description: The public identifier of the DEM journey for which to create a test suite. + example: journey-abc123 in: path - name: owner_type + name: public_journey_id required: true schema: - $ref: "#/components/schemas/OwnershipOwnerType" - - description: An opaque, base64-encoded cursor token returned by a previous call in `pagination.next_cursor`. Omit to fetch the first page. - in: query - name: cursor - required: false - schema: - example: eyJpZCI6OTh9 type: string - - description: The maximum number of history entries to return per page. - in: query - name: limit - required: false - schema: - default: 25 - example: 25 - format: int32 - maximum: 100 - minimum: 1 - type: integer + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + include_tests_from_journey_coverage: true + test_suite_name: Checkout Flow Suite + type: create_test_suite_for_journey_request + schema: + $ref: "#/components/schemas/DemCreateJourneyTestSuiteRequest" + required: true responses: - "200": + "201": content: application/json: examples: @@ -150227,146 +160486,51 @@ paths: value: data: attributes: - items: - - checksum: "" - confidence: "0.9000" - created_at: "2026-01-15T10:00:00Z" - evidence_versions: - explanation: "" - failed_at: - failure_reason: - id: 100 - owner_type: team - primary_contact_ref: ref:handle/team-a - resource_id: res-1 - retry_schedule: - sources: [] - status: suggested - pagination: - has_more: false - next_cursor: - id: res-1 - type: ownership_history - schema: - $ref: "#/components/schemas/OwnershipHistoryResponse" - description: OK - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Unauthorized - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: List ownership history by owner type - tags: ["CSM Ownership"] - x-unstable: |- - **Note**: This endpoint is in Preview and may be subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/csm/settings/agentless_hosts: - get: - description: Get the list of agentless hosts for CSM, with optional pagination and filtering. - operationId: ListCSMAgentlessHosts - parameters: - - description: The page index for pagination (zero-based). - in: query - name: page - required: false - schema: - default: 0 - example: 0 - format: int32 - maximum: 1000000 - minimum: 0 - type: integer - - description: The number of agentless hosts to return per page. - in: query - name: size - required: false - schema: - default: 10 - example: 10 - format: int32 - maximum: 100 - minimum: 1 - type: integer - - description: A search query string to filter agentless hosts. - in: query - name: query - required: false - schema: - example: "cloud_provider:aws" - type: string - responses: - "200": - content: - application/json: - examples: - default: - value: - data: - - attributes: - account_id: "123456789012" - cloud_provider: aws - has_posture_management: true - has_vulnerability_scanning: true - resource_type: aws_ec2_instance - id: i-0123456789abcdef0 - type: agentless_host - meta: - page_index: 0 - page_size: 10 - total_filtered: 1 + created_at: "2024-01-15T10:30:00Z" + name: Checkout Flow Suite + id: suite-abc123 + type: journey_test_suite schema: - $ref: "#/components/schemas/CsmAgentlessHostsResponse" - description: OK - "400": + $ref: "#/components/schemas/DemJourneyTestSuiteResponse" + description: Created + "404": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "403": - $ref: "#/components/responses/NotAuthorizedResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: List agentless hosts - tags: ["CSM Settings"] - x-unstable: |- - **Note**: This endpoint is in Preview and may be subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/csm/settings/agentless_hosts/facet_info: + summary: Create a test suite for a DEM journey + tags: + - DEM + x-permission: + operator: OR + permissions: + - synthetics_write + /api/v2/deployment_gates: get: - description: Get the value distribution for a specific agentless host facet, with optional search and filtering. - operationId: GetCSMAgentlessHostFacetInfo + description: |- + Returns a paginated list of all deployment gates for the organization. + Use `page[cursor]` and `page[size]` query parameters to paginate through results. + operationId: ListDeploymentGates parameters: - - description: The facet identifier to retrieve value distribution for. Valid values are `resource_name`, `account_id`, `resource_type`, `cloud_provider`, `has_vulnerability_scanning`, and `has_posture_management`. - in: query - name: facet - required: true - schema: - example: cloud_provider - type: string - - description: A search string to filter the facet values. + - description: Cursor for pagination. Use the `meta.page.next_cursor` value from the previous response. in: query - name: search + name: page[cursor] required: false schema: - example: aws type: string - - description: A filter query to scope the facet value counts. + - description: Number of results per page. Defaults to 50. Must be between 1 and 1000. in: query - name: query + name: page[size] required: false schema: - example: "cloud_provider:aws" - type: string + default: 50 + format: int64 + maximum: 1000 + minimum: 1 + type: integer responses: "200": content: @@ -150375,38 +160539,69 @@ paths: default: value: data: - attributes: - items: - - count: 100 - value: aws - - count: 50 - value: gcp - id: cloud_provider - meta: - total_count: 2 - type: facet_info + - attributes: + created_at: "2024-01-01T00:00:00+00:00" + created_by: + id: 00000000-0000-0000-0000-000000000004 + dry_run: false + env: production + identifier: pre + service: my-service + id: 00000000-0000-0000-0000-000000000003 + type: deployment_gate + meta: + page: + size: 50 schema: - $ref: "#/components/schemas/CsmHostFacetInfoResponse" + $ref: "#/components/schemas/DeploymentGatesListResponse" description: OK "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + $ref: "#/components/responses/HTTPCDGatesBadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/NotAuthorizedResponse" + $ref: "#/components/responses/ForbiddenResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get agentless host facet info - tags: ["CSM Settings"] + "500": + content: + application/json: + schema: + $ref: "#/components/schemas/HTTPCIAppErrors" + description: Internal Server Error + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Get all deployment gates + tags: ["Deployment Gates"] + x-permission: + operator: OR + permissions: + - deployment_gates_read x-unstable: |- - **Note**: This endpoint is in Preview and may be subject to change. + **Note**: This endpoint is in preview and may be subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/csm/settings/agentless_hosts/facets: - get: - description: Get the list of available facets for filtering agentless hosts. - operationId: ListCSMAgentlessHostFacets + post: + description: |- + Endpoint to create a deployment gate. + operationId: CreateDeploymentGate + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + dry_run: false + env: production + identifier: pre + service: my-service + type: deployment_gate + schema: + $ref: "#/components/schemas/CreateDeploymentGateParams" + required: true responses: "200": content: @@ -150415,72 +160610,59 @@ paths: default: value: data: - - attributes: - bounded: true - bundled: true - bundledAndUsed: true - defaultValues: [] - description: The cloud provider of the resource. - editable: false - facetType: list - groups: - - agentless - name: Cloud Provider - path: cloud_provider - source: core - type: string - values: - - aws - - gcp - - azure - - oci - id: cloud_provider - type: agentless_host_facet + attributes: + created_at: "2024-01-01T00:00:00+00:00" + created_by: + handle: example-handle + id: 00000000-0000-0000-0000-000000000002 + name: Example Name + dry_run: false + env: production + identifier: pre + service: my-service + id: 00000000-0000-0000-0000-000000000001 + type: deployment_gate schema: - $ref: "#/components/schemas/CsmAgentlessHostFacetsResponse" + $ref: "#/components/schemas/DeploymentGateResponse" description: OK + "400": + $ref: "#/components/responses/HTTPCDGatesBadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/NotAuthorizedResponse" + $ref: "#/components/responses/ForbiddenResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: List agentless host facets - tags: ["CSM Settings"] + "500": + content: + application/json: + schema: + $ref: "#/components/schemas/HTTPCIAppErrors" + description: Internal Server Error + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Create deployment gate + tags: ["Deployment Gates"] + x-permission: + operator: OR + permissions: + - deployment_gates_write x-unstable: |- - **Note**: This endpoint is in Preview and may be subject to change. + **Note**: This endpoint is in preview and may be subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/csm/settings/hosts: + /api/v2/deployment_gates/{gate_id}/rules: get: - description: Get the list of unified hosts for CSM, combining agent and agentless host data, with optional pagination and filtering. - operationId: ListCSMUnifiedHosts + description: |- + Endpoint to get rules for a deployment gate. + operationId: GetDeploymentGateRules parameters: - - description: The page index for pagination (zero-based). - in: query - name: page - required: false - schema: - default: 0 - example: 0 - format: int32 - maximum: 1000000 - minimum: 0 - type: integer - - description: The number of hosts to return per page. - in: query - name: size - required: false - schema: - default: 10 - example: 10 - format: int32 - maximum: 100 - minimum: 1 - type: integer - - description: A search query string to filter unified hosts. - in: query - name: query - required: false + - description: The ID of the deployment gate. + in: path + name: gate_id + required: true schema: - example: "source:agent" type: string responses: "200": @@ -150490,73 +160672,77 @@ paths: default: value: data: - - attributes: - agent_cws_enabled: false - agent_posture_management: true - agent_version: 7.50.0 - datadog_agent_key: key123 - os: linux - source: agent - id: agent-host - type: unified_host - - attributes: - account_id: "123456789012" - agentless_posture_management: true - agentless_vulnerability_scanning: true - cloud_provider: aws - resource_type: aws_ec2_instance - source: agentless - id: i-0123456789abcdef0 - type: unified_host - meta: - page_index: 0 - page_size: 10 - total_filtered: 2 - total_pages: 1 + attributes: + rules: + - created_at: "2024-01-01T00:00:00+00:00" + created_by: + id: 00000000-0000-0000-0000-000000000012 + dry_run: false + gate_id: abc-123 + name: My deployment rule + options: + type: faulty_deployment_detection + id: 00000000-0000-0000-0000-000000000011 + type: list_deployment_rules schema: - $ref: "#/components/schemas/CsmUnifiedHostsResponse" + $ref: "#/components/schemas/DeploymentGateRulesResponse" description: OK "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + $ref: "#/components/responses/HTTPCDGatesBadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/NotAuthorizedResponse" + $ref: "#/components/responses/ForbiddenResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: List unified hosts - tags: ["CSM Settings"] + "500": + content: + application/json: + schema: + $ref: "#/components/schemas/HTTPCIAppErrors" + description: Internal Server Error + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Get rules for a deployment gate + tags: ["Deployment Gates"] + x-permission: + operator: OR + permissions: + - deployment_gates_read x-unstable: |- - **Note**: This endpoint is in Preview and may be subject to change. + **Note**: This endpoint is in preview and may be subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/csm/settings/hosts/facet_info: - get: - description: Get the value distribution for a specific unified host facet, with optional search and filtering. - operationId: GetCSMUnifiedHostFacetInfo + post: + description: |- + Endpoint to create a deployment rule. A gate for the rule must already exist. + operationId: CreateDeploymentRule parameters: - - description: The facet identifier to retrieve value distribution for. Valid values include `resource_name`, `account_id`, `resource_type`, `cloud_provider`, `agentless_vulnerability_scanning`, `agentless_posture_management`, `hostname`, `agent_version`, `os`, `cluster_name`, `agent_posture_management`, `agent_cws_enabled`, `agent_csm_vm_hosts_enabled`, and `agent_csm_vm_containers_enabled`. - in: query - name: facet + - description: The ID of the deployment gate. + in: path + name: gate_id required: true schema: - example: cloud_provider - type: string - - description: A search string to filter the facet values. - in: query - name: search - required: false - schema: - example: aws - type: string - - description: A filter query to scope the facet value counts. - in: query - name: query - required: false - schema: - example: "cloud_provider:aws" type: string + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + dry_run: false + name: My deployment rule + options: + - resource1 + - resource2 + type: faulty_deployment_detection + type: deployment_rule + schema: + $ref: "#/components/schemas/CreateDeploymentRuleParams" + required: true responses: "200": content: @@ -150566,87 +160752,115 @@ paths: value: data: attributes: - items: - - count: 100 - value: aws - - count: 50 - value: gcp - id: cloud_provider - meta: - total_count: 2 - type: facet_info + created_at: "2024-01-01T00:00:00+00:00" + created_by: + handle: test-user + id: 00000000-0000-0000-0000-000000000010 + name: Test User + dry_run: false + gate_id: abc-123 + name: My deployment rule + options: + type: faulty_deployment_detection + id: 00000000-0000-0000-0000-000000000009 + type: deployment_rule schema: - $ref: "#/components/schemas/CsmHostFacetInfoResponse" + $ref: "#/components/schemas/DeploymentRuleResponse" description: OK "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + $ref: "#/components/responses/HTTPCDGatesBadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/NotAuthorizedResponse" + $ref: "#/components/responses/ForbiddenResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get unified host facet info - tags: ["CSM Settings"] - x-unstable: |- - **Note**: This endpoint is in Preview and may be subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/csm/settings/hosts/facets: - get: - description: Get the list of available facets for filtering unified hosts. - operationId: ListCSMUnifiedHostFacets - responses: - "200": + "500": content: application/json: - examples: - default: - value: - data: - - attributes: - bounded: true - bundled: true - bundledAndUsed: true - defaultValues: [] - description: The cloud provider of the resource. - editable: false - facetType: list - groups: - - hosts - name: Cloud Provider - path: cloud_provider - source: core - type: string - values: - - aws - - gcp - - azure - - oci - id: cloud_provider - type: unified_host_facet schema: - $ref: "#/components/schemas/CsmUnifiedHostFacetsResponse" - description: OK + $ref: "#/components/schemas/HTTPCIAppErrors" + description: Internal Server Error + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Create deployment rule + tags: ["Deployment Gates"] + x-permission: + operator: OR + permissions: + - deployment_gates_write + x-unstable: |- + **Note**: This endpoint is in preview and may be subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/deployment_gates/{gate_id}/rules/{id}: + delete: + description: |- + Endpoint to delete a deployment rule. + operationId: DeleteDeploymentRule + parameters: + - description: The ID of the deployment gate. + in: path + name: gate_id + required: true + schema: + type: string + - description: The ID of the deployment rule. + in: path + name: id + required: true + schema: + type: string + responses: + "204": + description: No Content + "400": + $ref: "#/components/responses/HTTPCDGatesBadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/NotAuthorizedResponse" + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/HTTPCDGatesNotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: List unified host facets - tags: ["CSM Settings"] + "500": + content: + application/json: + schema: + $ref: "#/components/schemas/HTTPCIAppErrors" + description: Internal Server Error + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Delete deployment rule + tags: ["Deployment Gates"] + x-permission: + operator: OR + permissions: + - deployment_gates_write x-unstable: |- - **Note**: This endpoint is in Preview and may be subject to change. + **Note**: This endpoint is in preview and may be subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/current_user: get: description: |- - Get the user associated with the current authentication context. - The response includes the user's profile attributes (name, email, handle, - status, MFA state), along with related resources: the user's organization, - assigned roles with their granted permissions, and team-scoped roles. - No additional permissions are required beyond valid authentication. - operationId: GetCurrentUser + Endpoint to get a deployment rule. + operationId: GetDeploymentRule + parameters: + - description: The ID of the deployment gate. + in: path + name: gate_id + required: true + schema: + type: string + - description: The ID of the deployment rule. + in: path + name: id + required: true + schema: + type: string responses: "200": content: @@ -150656,47 +160870,65 @@ paths: value: data: attributes: - created_at: "2024-01-15T10:30:00+00:00" - disabled: false - email: jane.doe@example.com - handle: jane.doe - icon: "https://secure.gravatar.com/avatar/abc123" - mfa_enabled: true - modified_at: "2024-06-01T12:00:00+00:00" - name: Jane Doe - service_account: false - status: Active - title: Senior Engineer - verified: true - id: 00000000-0000-9999-0000-000000000000 - type: users - included: [] + created_at: "2024-01-01T00:00:00+00:00" + created_by: + id: 00000000-0000-0000-0000-000000000014 + dry_run: false + gate_id: abc-123 + name: My deployment rule + options: + type: faulty_deployment_detection + id: 00000000-0000-0000-0000-000000000013 + type: deployment_rule schema: - $ref: "#/components/schemas/UserResponse" + $ref: "#/components/schemas/DeploymentRuleResponse" description: OK + "400": + $ref: "#/components/responses/HTTPCDGatesBadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/HTTPCDRulesNotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + "500": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Authentication error - "429": - $ref: "#/components/responses/TooManyRequestsResponse" + $ref: "#/components/schemas/HTTPCIAppErrors" + description: Internal Server Error security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: [] - summary: Get current user - tags: - - Users - patch: + summary: Get deployment rule + tags: ["Deployment Gates"] + x-permission: + operator: OR + permissions: + - deployment_gates_read + x-unstable: |- + **Note**: This endpoint is in preview and may be subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + put: description: |- - Edit the profile of the currently authenticated user. Updatable fields - include `name`, `title`, `email`, and `disabled` status. The `id` field - in the request body must match the authenticated user's UUID; a mismatch - returns a 422 error. Email address changes are recorded in the audit trail. - Requires the `user_self_profile_write` permission. - operationId: UpdateCurrentUser + Endpoint to update a deployment rule. + operationId: UpdateDeploymentRule + parameters: + - description: The ID of the deployment gate. + in: path + name: gate_id + required: true + schema: + type: string + - description: The ID of the deployment rule. + in: path + name: id + required: true + schema: + type: string requestBody: content: application/json: @@ -150705,13 +160937,14 @@ paths: value: data: attributes: - email: jane.doe@example.com - name: Jane Doe - title: Staff Engineer - id: 00000000-0000-9999-0000-000000000000 - type: users + dry_run: false + name: Updated deployment rule + options: + - resource1 + - resource2 + type: deployment_rule schema: - $ref: "#/components/schemas/UserUpdateRequest" + $ref: "#/components/schemas/UpdateDeploymentRuleParams" required: true responses: "200": @@ -150722,74 +160955,104 @@ paths: value: data: attributes: - created_at: "2024-01-15T10:30:00+00:00" - disabled: false - email: jane.doe@example.com - handle: jane.doe - icon: "https://secure.gravatar.com/avatar/abc123" - mfa_enabled: true - modified_at: "2024-06-01T12:00:00+00:00" - name: Jane Doe - service_account: false - status: Active - title: Staff Engineer - verified: true - id: 00000000-0000-9999-0000-000000000000 - type: users - included: [] + created_at: "2024-01-01T00:00:00+00:00" + created_by: + id: 00000000-0000-0000-0000-000000000016 + dry_run: false + gate_id: abc-123 + name: Updated deployment rule + options: + - resource1 + type: faulty_deployment_detection + id: 00000000-0000-0000-0000-000000000015 + type: deployment_rule schema: - $ref: "#/components/schemas/UserResponse" + $ref: "#/components/schemas/DeploymentRuleResponse" description: OK "400": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request + $ref: "#/components/responses/HTTPCDGatesBadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Authentication error + $ref: "#/components/responses/ForbiddenResponse" "404": + $ref: "#/components/responses/HTTPCDRulesNotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + "500": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Not found - "422": + $ref: "#/components/schemas/HTTPCIAppErrors" + description: Internal Server Error + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Update deployment rule + tags: ["Deployment Gates"] + x-permission: + operator: OR + permissions: + - deployment_gates_write + x-unstable: |- + **Note**: This endpoint is in preview and may be subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/deployment_gates/{id}: + delete: + description: |- + Endpoint to delete a deployment gate. Rules associated with the gate are also deleted. + operationId: DeleteDeploymentGate + parameters: + - description: The ID of the deployment gate. + in: path + name: id + required: true + schema: + type: string + responses: + "204": + description: No Content + "400": + $ref: "#/components/responses/HTTPCDGatesBadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/HTTPCDGatesNotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + "500": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Unprocessable Entity - "429": - $ref: "#/components/responses/TooManyRequestsResponse" + $ref: "#/components/schemas/HTTPCIAppErrors" + description: Internal Server Error security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: [] - summary: Update current user - tags: - - Users - x-codegen-request-body-name: body - "x-permission": + summary: Delete deployment gate + tags: ["Deployment Gates"] + x-permission: operator: OR permissions: - - user_self_profile_write - /api/v2/current_user/application_keys: + - deployment_gates_write + x-unstable: |- + **Note**: This endpoint is in preview and may be subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). get: - description: List all application keys available for current user - operationId: ListCurrentUserApplicationKeys + description: |- + Endpoint to get a deployment gate. + operationId: GetDeploymentGate parameters: - - $ref: "#/components/parameters/PageSize" - - $ref: "#/components/parameters/PageNumber" - - $ref: "#/components/parameters/ApplicationKeysSortParameter" - - $ref: "#/components/parameters/ApplicationKeyFilterParameter" - - $ref: "#/components/parameters/ApplicationKeyFilterCreatedAtStartParameter" - - $ref: "#/components/parameters/ApplicationKeyFilterCreatedAtEndParameter" - - $ref: "#/components/parameters/ApplicationKeyIncludeParameter" + - description: The ID of the deployment gate. + in: path + name: id + required: true + schema: + type: string responses: "200": content: @@ -150798,45 +161061,59 @@ paths: default: value: data: - - attributes: - created_at: "2020-11-23T10:00:00.000Z" - last4: abcd - name: Application Key for managing dashboards - id: 00000000-0000-0000-0000-000000000004 - type: application_keys + attributes: + created_at: "2024-01-01T00:00:00+00:00" + created_by: + id: 00000000-0000-0000-0000-000000000006 + dry_run: false + env: production + identifier: pre + service: my-service + id: 00000000-0000-0000-0000-000000000005 + type: deployment_gate schema: - $ref: "#/components/schemas/ListApplicationKeysResponse" + $ref: "#/components/schemas/DeploymentGateResponse" description: OK "400": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request + $ref: "#/components/responses/HTTPCDGatesBadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden + $ref: "#/components/responses/ForbiddenResponse" "404": + $ref: "#/components/responses/HTTPCDGatesNotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + "500": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Not Found - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get all application keys owned by current user - tags: - - Key Management - "x-permission": + $ref: "#/components/schemas/HTTPCIAppErrors" + description: Internal Server Error + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Get deployment gate + tags: ["Deployment Gates"] + x-permission: operator: OR permissions: - - user_app_keys - post: - description: Create an application key for current user - operationId: CreateCurrentUserApplicationKey + - deployment_gates_read + x-unstable: |- + **Note**: This endpoint is in preview and may be subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + put: + description: |- + Endpoint to update a deployment gate. + operationId: UpdateDeploymentGate + parameters: + - description: The ID of the deployment gate. + in: path + name: id + required: true + schema: + type: string requestBody: content: application/json: @@ -150845,17 +161122,14 @@ paths: value: data: attributes: - name: Application Key for managing dashboards - scopes: - - dashboards_read - - dashboards_write - - dashboards_public_share - type: application_keys + dry_run: false + id: 12345678-1234-1234-1234-123456789012 + type: deployment_gate schema: - $ref: "#/components/schemas/ApplicationKeyCreateRequest" + $ref: "#/components/schemas/UpdateDeploymentGateParams" required: true responses: - "201": + "200": content: application/json: examples: @@ -150863,73 +161137,162 @@ paths: value: data: attributes: - created_at: "2020-11-23T10:00:00.000Z" - last4: abcd - name: Application Key for managing dashboards - id: 00000000-0000-0000-0000-000000000005 - type: application_keys + created_at: "2024-01-01T00:00:00+00:00" + created_by: + id: 00000000-0000-0000-0000-000000000008 + dry_run: false + env: production + identifier: pre + service: my-service + id: 00000000-0000-0000-0000-000000000007 + type: deployment_gate schema: - $ref: "#/components/schemas/ApplicationKeyResponse" - description: Created + $ref: "#/components/schemas/DeploymentGateResponse" + description: OK "400": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request + $ref: "#/components/responses/HTTPCDGatesBadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/HTTPCDGatesNotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + "500": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: Create an application key for current user - tags: - - Key Management - x-codegen-request-body-name: body - "x-permission": + $ref: "#/components/schemas/HTTPCIAppErrors" + description: Internal Server Error + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Update deployment gate + tags: ["Deployment Gates"] + x-permission: operator: OR permissions: - - user_app_keys - /api/v2/current_user/application_keys/{app_key_id}: - delete: - description: Delete an application key owned by current user - operationId: DeleteCurrentUserApplicationKey - parameters: - - $ref: "#/components/parameters/ApplicationKeyID" + - deployment_gates_write + x-unstable: |- + **Note**: This endpoint is in preview and may be subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/deployments/gates/evaluation: + post: + description: |- + Triggers an asynchronous deployment gate evaluation for the given service and environment. + Returns an evaluation ID that can be used to poll for the result via the + `GET /api/v2/deployments/gates/evaluation/{id}` endpoint. + + When the `configuration` attribute is provided, rules are evaluated inline from that configuration + and no pre-configured gate is required. When `configuration` is omitted, rules are resolved from the + gate pre-configured for the given service and environment through the Datadog UI, API, or Terraform. + operationId: TriggerDeploymentGatesEvaluation + requestBody: + content: + application/json: + examples: + default: + summary: Evaluate a preconfigured gate + value: + data: + attributes: + env: staging + identifier: pre-deploy + primary_tag: region:us-east-1 + service: transaction-backend + version: v1.2.3 + type: deployment_gates_evaluation_request + with-configuration: + summary: Evaluate with inline rule configuration + value: + data: + attributes: + configuration: + dry_run: false + rules: + - dry_run: false + name: error rate monitors + options: + duration: 300 + query: "service:transaction-backend env:production" + type: monitor + - dry_run: false + name: apm faulty deployment + options: + duration: 900 + excluded_resources: + - "GET /healthcheck" + type: faulty_deployment_detection + env: production + service: transaction-backend + version: 1.2.3 + type: deployment_gates_evaluation_request + schema: + $ref: "#/components/schemas/DeploymentGatesEvaluationRequest" + required: true responses: - "204": - description: No Content - "403": + "202": content: application/json: + examples: + default: + value: + data: + attributes: + evaluation_id: 00000000-0000-0000-0000-000000000001 + id: 00000000-0000-0000-0000-000000000001 + type: deployment_gates_evaluation_response schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden + $ref: "#/components/schemas/DeploymentGatesEvaluationResponse" + description: Accepted + "400": + $ref: "#/components/responses/HTTPCDGatesBadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" "404": + $ref: "#/components/responses/HTTPCDGatesNotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + "500": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Not Found - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: Delete an application key owned by current user - tags: - - Key Management - "x-permission": + $ref: "#/components/schemas/HTTPCIAppErrors" + description: Internal Server Error + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Trigger a deployment gate evaluation + tags: ["Deployment Gates"] + x-permission: operator: OR permissions: - - user_app_keys + - deployment_gates_evaluate + x-unstable: |- + **Note**: This endpoint is in preview and may be subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/deployments/gates/evaluation/{id}: get: description: |- - Get an application key owned by current user. - The `key` field is not returned for organizations in [One-Time Read mode](https://docs.datadoghq.com/account_management/api-app-keys/#one-time-read-mode). - operationId: GetCurrentUserApplicationKey + Retrieves the result of a deployment gate evaluation by its evaluation ID. + If the evaluation is still in progress, `data.attributes.gate_status` will be `in_progress`; + continue polling until it returns `pass` or `fail`. + Polling every 10-20 seconds is recommended. + The endpoint may return a 404 if called too soon after triggering; retry after a few seconds. + operationId: GetDeploymentGatesEvaluationResult parameters: - - $ref: "#/components/parameters/ApplicationKeyID" + - description: The evaluation ID returned by the trigger endpoint. + in: path + name: id + required: true + schema: + format: uuid + type: string responses: "200": content: @@ -150939,42 +161302,90 @@ paths: value: data: attributes: - created_at: "2020-11-23T10:00:00.000Z" - last4: abcd - name: Application Key for managing dashboards - id: 00000000-0000-0000-0000-000000000006 - type: application_keys + dry_run: false + evaluation_id: 00000000-0000-0000-0000-000000000001 + evaluation_url: https://app.datadoghq.com/ci/deployment-gates/evaluations?index=cdgates&query=level%3Agate+%40evaluation_id%3A00000000-0000-0000-0000-000000000001 + gate_id: 00000000-0000-0000-0000-000000000001 + gate_status: pass + rules: [] + id: 00000000-0000-0000-0000-000000000001 + type: deployment_gates_evaluation_result_response schema: - $ref: "#/components/schemas/ApplicationKeyResponse" + $ref: "#/components/schemas/DeploymentGatesEvaluationResultResponse" description: OK + "400": + $ref: "#/components/responses/HTTPCDGatesBadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/HTTPCDGatesNotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + "500": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden - "404": + $ref: "#/components/schemas/HTTPCIAppErrors" + description: Internal Server Error + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Get a deployment gate evaluation result + tags: ["Deployment Gates"] + x-permission: + operator: OR + permissions: + - deployment_gates_evaluate + x-unstable: |- + **Note**: This endpoint is in preview and may be subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/domain_allowlist: + get: + description: Get the domain allowlist for an organization. + operationId: GetDomainAllowlist + responses: + "200": content: application/json: + examples: + default: + value: + data: + attributes: + domains: + - "@example.com" + enabled: false + id: 00000000-0000-0000-0000-000000000002 + type: domain_allowlist schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Not Found + $ref: "#/components/schemas/DomainAllowlistResponse" + description: OK "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get one application key owned by current user + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - org_management + - AuthZ: + - monitors_write + summary: Get Domain Allowlist tags: - - Key Management + - Domain Allowlist "x-permission": operator: OR permissions: - - user_app_keys + - org_management + - monitors_write + - generate_dashboard_reports + - generate_log_reports + - manage_log_reports patch: - description: |- - Edit an application key owned by current user. - The `key` field is not returned for organizations in [One-Time Read mode](https://docs.datadoghq.com/account_management/api-app-keys/#one-time-read-mode). - operationId: UpdateCurrentUserApplicationKey - parameters: - - $ref: "#/components/parameters/ApplicationKeyID" + description: Update the domain allowlist for an organization. + operationId: PatchDomainAllowlist requestBody: content: application/json: @@ -150983,15 +161394,12 @@ paths: value: data: attributes: - name: Application Key for managing dashboards - scopes: - - dashboards_read - - dashboards_write - - dashboards_public_share - id: 00112233-4455-6677-8899-aabbccddeeff - type: application_keys + domains: + - "@static-test-domain.test" + enabled: false + type: domain_allowlist schema: - $ref: "#/components/schemas/ApplicationKeyUpdateRequest" + $ref: "#/components/schemas/DomainAllowlistRequest" required: true responses: "200": @@ -151002,66 +161410,67 @@ paths: value: data: attributes: - created_at: "2020-11-23T10:00:00.000Z" - last4: abcd - name: Application Key for managing dashboards - id: 00000000-0000-0000-0000-000000000007 - type: application_keys + domains: + - "@example.com" + enabled: false + id: 00000000-0000-0000-0000-000000000001 + type: domain_allowlist schema: - $ref: "#/components/schemas/ApplicationKeyResponse" + $ref: "#/components/schemas/DomainAllowlistResponse" description: OK - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Edit an application key owned by current user + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - org_management + - AuthZ: + - monitors_write + summary: Sets Domain Allowlist tags: - - Key Management - x-codegen-request-body-name: body + - Domain Allowlist "x-permission": operator: OR permissions: - - user_app_keys - /api/v2/dashboard/lists/manual/{dashboard_list_id}/dashboards: - delete: - description: Delete dashboards from an existing dashboard list. - operationId: DeleteDashboardListItems - parameters: - - description: ID of the dashboard list to delete items from. - in: path - name: dashboard_list_id - required: true - schema: - format: int64 - type: integer + - org_management + - monitors_write + - generate_dashboard_reports + - generate_log_reports + - manage_log_reports + /api/v2/dora/deployment: + post: + description: |- + Use this API endpoint to provide deployment data. + + This is necessary for: + - Deployment Frequency + - Change Lead Time + - Change Failure Rate + - Failed Deployment Recovery Time + operationId: CreateDORADeployment requestBody: content: application/json: examples: default: value: - dashboards: - - id: q5j-nti-fv6 - type: host_timeboard + data: + attributes: + custom_tags: + - language:java + - department:engineering + env: staging + finished_at: 1693491984000000000 + git: + commit_sha: 66adc9350f2cc9b250b69abddab733dd55e1a588 + repository_url: https://github.com/organization/example-repository + service: test-service + started_at: 1693491974000000000 + team: backend + version: v1.12.07 schema: - $ref: "#/components/schemas/DashboardListDeleteItemsRequest" - description: Dashboards to delete from the dashboard list. + $ref: "#/components/schemas/DORADeploymentRequest" required: true responses: "200": @@ -151070,171 +161479,142 @@ paths: examples: default: value: - deleted_dashboards_from_list: - - id: q5j-nti-fv6 - type: host_timeboard + data: + id: 4242fcdd31586083 + type: dora_deployment schema: - $ref: "#/components/schemas/DashboardListDeleteItemsResponse" + $ref: "#/components/schemas/DORADeploymentResponse" description: OK - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request - "403": + "202": content: application/json: + examples: + default: + value: + data: + id: 4242fcdd31586083 + type: dora_deployment schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden - "404": + $ref: "#/components/schemas/DORADeploymentResponse" + description: OK - but delayed due to incident + "400": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Not Found + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "403": + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Delete items from a dashboard list - tags: - - Dashboard Lists + security: + - apiKeyAuth: [] + summary: Send a deployment event + tags: ["DORA Metrics"] x-codegen-request-body-name: body - get: - description: Fetch the dashboard list’s dashboard definitions. - operationId: GetDashboardListItems + /api/v2/dora/deployment/{deployment_id}: + delete: + description: |- + Use this API endpoint to delete a deployment event. + operationId: DeleteDORADeployment parameters: - - description: ID of the dashboard list to get items from. + - description: The ID of the deployment event to delete. in: path - name: dashboard_list_id + name: deployment_id required: true schema: - format: int64 - type: integer + type: string responses: - "200": + "202": + description: Accepted + "400": content: application/json: - examples: - default: - value: - dashboards: - - id: q5j-nti-fv6 - type: host_timeboard - total: 1 schema: - $ref: "#/components/schemas/DashboardListItems" - description: OK + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "403": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Not Found + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: - - dashboards_read - summary: Get items of a Dashboard List - tags: - - Dashboard Lists - "x-permission": + - AuthZ: [] + summary: Delete a deployment event + tags: ["DORA Metrics"] + x-permission: operator: OR permissions: - - dashboards_read - post: - description: Add dashboards to an existing dashboard list. - operationId: CreateDashboardListItems - parameters: - - description: ID of the dashboard list to add items to. - in: path - name: dashboard_list_id - required: true - schema: - format: int64 - type: integer + - dora_metrics_write + /api/v2/dora/deployments: + patch: + description: |- + Update a deployment's change failure status, identifying the deployment by its service, environment, and version instead of its ID. Use this to mark a deployment as a change failure or back to stable. You can optionally include remediation details to enable failed deployment recovery time calculation. If multiple deployments match the given service, environment, and version, the most recently finished one is updated. + operationId: PatchDORADeploymentByVersion requestBody: content: application/json: examples: default: value: - dashboards: - - id: q5j-nti-fv6 - type: host_timeboard + data: + attributes: + change_failure: true + env: production + service: my-service + version: v1.2.3 + type: dora_deployment_patch_request schema: - $ref: "#/components/schemas/DashboardListAddItemsRequest" - description: Dashboards to add to the dashboard list. + $ref: "#/components/schemas/DORADeploymentPatchByVersionRequest" required: true responses: - "200": - content: - application/json: - examples: - default: - value: - added_dashboards_to_list: - - id: q5j-nti-fv6 - type: host_timeboard - schema: - $ref: "#/components/schemas/DashboardListAddItemsResponse" - description: OK + "202": + description: Accepted "400": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" description: Bad Request "403": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Not Found + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Add Items to a Dashboard List - tags: - - Dashboard Lists + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Patch a deployment event by version + tags: ["DORA Metrics"] x-codegen-request-body-name: body - put: - description: Update dashboards of an existing dashboard list. - operationId: UpdateDashboardListItems - parameters: - - description: ID of the dashboard list to update items from. - in: path - name: dashboard_list_id - required: true - schema: - format: int64 - type: integer + x-permission: + operator: OR + permissions: + - dora_metrics_write + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + post: + description: |- + Use this API endpoint to get a list of deployment events. + operationId: ListDORADeployments requestBody: content: application/json: examples: default: value: - dashboards: - - id: q5j-nti-fv6 - type: host_timeboard + data: + attributes: + from: "2025-01-01T00:00:00Z" + limit: 100 + query: service:(test-service OR api-service) env:production team:backend + sort: -finished_at + to: "2025-01-31T23:59:59Z" + type: dora_deployments_list_request schema: - $ref: "#/components/schemas/DashboardListUpdateItemsRequest" - description: New dashboards of the dashboard list. + $ref: "#/components/schemas/DORAListDeploymentsRequest" required: true responses: "200": @@ -151243,42 +161623,51 @@ paths: examples: default: value: - dashboards: - - id: q5j-nti-fv6 - type: host_timeboard + data: + - attributes: + env: production + finished_at: "2023-08-31T14:26:24Z" + service: test-service + started_at: "2023-08-31T14:26:14Z" + team: backend + id: abc-123 + type: dora_deployment schema: - $ref: "#/components/schemas/DashboardListUpdateItemsResponse" + $ref: "#/components/schemas/DORADeploymentsListResponse" description: OK "400": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" description: Bad Request "403": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Not Found + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Update items of a dashboard list - tags: - - Dashboard Lists + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Get a list of deployment events + tags: ["DORA Metrics"] x-codegen-request-body-name: body - /api/v2/dashboard/{dashboard_id}/shared: + x-permission: + operator: OR + permissions: + - dora_metrics_read + /api/v2/dora/deployments/{deployment_id}: get: - description: Retrieve shared dashboards associated with the specified dashboard. - operationId: ListSharedDashboardsByDashboardId + description: |- + Use this API endpoint to get a deployment event. + operationId: GetDORADeployment parameters: - - $ref: "#/components/parameters/SharedDashboardDashboardIDPathParameter" + - description: The ID of the deployment event. + in: path + name: deployment_id + required: true + schema: + type: string responses: "200": content: @@ -151287,88 +161676,97 @@ paths: default: value: data: - - attributes: - created_at: "2026-01-01T00:00:00.000Z" - embeddable_domains: [] - expiration: - global_time: - live_span: 1h - global_time_selectable: false - invitees: - - access_expiration: - created_at: "2026-01-01T00:00:00.000Z" - email: jane.doe@example.com - last_accessed: - selectable_template_vars: [] - share_type: invite - sharer_disabled: false - status: active - title: Q1 Metrics Dashboard - token: abc-123-token - url: https://p.datadoghq.com/sb/abc-123-token - viewing_preferences: - high_density: false - theme: system - id: "12345" - relationships: - dashboard: - data: - id: abc-def-ghi - type: dashboard - sharer: - data: - id: 00000000-0000-0000-0000-000000000000 - type: user - type: shared_dashboard - included: - - attributes: - title: Q1 Metrics Dashboard - id: abc-def-ghi - type: dashboard - - attributes: - handle: jane.doe@example.com - name: Jane Doe - id: 00000000-0000-0000-0000-000000000000 - type: user + attributes: + env: production + finished_at: "2023-08-31T14:26:24Z" + service: test-service + started_at: "2023-08-31T14:26:14Z" + team: backend + id: abc-123 + type: dora_deployment schema: - $ref: "#/components/schemas/ListSharedDashboardsResponse" + $ref: "#/components/schemas/DORADeploymentFetchResponse" description: OK - "403": + "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "404": + description: Bad Request + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Get a deployment event + tags: ["DORA Metrics"] + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - dora_metrics_read + patch: + description: |- + Update a deployment's change failure status. Use this to mark a deployment as a change failure or back to stable. You can optionally include remediation details to enable failed deployment recovery time calculation. + operationId: PatchDORADeployment + parameters: + - description: The ID of the deployment event. + in: path + name: deployment_id + required: true + schema: + type: string + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + change_failure: true + remediation: + id: eG42zNIkVjM + type: rollback + id: z_RwVLi7v4Y + type: dora_deployment_patch_request + schema: + $ref: "#/components/schemas/DORADeploymentPatchRequest" + required: true + responses: + "202": + description: Accepted + "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Dashboard Not Found + description: Bad Request + "403": + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: - - dashboards_read - summary: List shared dashboards for a dashboard - tags: - - Dashboard Sharing - "x-permission": + - AuthZ: [] + summary: Patch a deployment event + tags: ["DORA Metrics"] + x-codegen-request-body-name: body + x-permission: operator: OR permissions: - - dashboards_read - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/dashboard/{dashboard_id}/shared/secure-embed: + - dora_metrics_write + /api/v2/dora/failure: post: - description: >- - Create a secure embed share for a dashboard. The response includes a one-time `credential` used for HMAC-SHA256 signing. Store it securely — it cannot be retrieved again. - operationId: CreateDashboardSecureEmbed - parameters: - - $ref: "#/components/parameters/DashboardIDPathParameter" + description: |- + Use this API endpoint to provide incident data for DORA Metrics. + Note that change failure rate and failed deployment recovery time are computed from change failures detected on deployments, not from incident events sent through this endpoint. + Tracking incidents gives a side-by-side view of how failed deployments translate into real-world incidents, including their severity and frequency. + operationId: CreateDORAFailure requestBody: content: application/json: @@ -151377,23 +161775,23 @@ paths: value: data: attributes: - global_time: - live_span: "1h" - global_time_selectable: true - selectable_template_vars: - - default_values: ["1"] - name: "org_id" - prefix: "org_id" - visible_tags: ["1"] - status: active - title: "Q1 Metrics Dashboard" - viewing_preferences: - high_density: false - theme: "system" - type: secure_embed_request + custom_tags: + - language:java + - department:engineering + env: staging + finished_at: 1693491984000000000 + git: + commit_sha: 66adc9350f2cc9b250b69abddab733dd55e1a588 + repository_url: https://github.com/organization/example-repository + name: Webserver is down failing all requests. + services: + - test-service + severity: High + started_at: 1693491974000000000 + team: backend + version: v1.12.07 schema: - $ref: "#/components/schemas/SecureEmbedCreateRequest" - description: Secure embed creation request body. + $ref: "#/components/schemas/DORAFailureRequest" required: true responses: "200": @@ -151403,105 +161801,149 @@ paths: default: value: data: - attributes: - created_at: "2024-01-01T00:00:00+00:00" - credential: example-credential-value - dashboard_id: abc-def-ghi - global_time_selectable: true - id: "12345" - share_type: secure_embed - status: active - title: "Q1 Metrics Dashboard" - token: abc-123-token - url: "https://p.datadoghq.com/sb/secure-embed/abc-123-token" - id: "12345" - type: secure_embed_create_response + id: 4242fcdd31586085 + type: dora_failure schema: - $ref: "#/components/schemas/SecureEmbedCreateResponse" + $ref: "#/components/schemas/DORAFailureResponse" description: OK - "403": + "202": content: application/json: + examples: + default: + value: + data: + id: 4242fcdd31586085 + type: dora_failure schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "404": + $ref: "#/components/schemas/DORAFailureResponse" + description: OK - but delayed due to incident + "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Dashboard Not Found - "409": + description: Bad Request + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + summary: Send an incident event + tags: ["DORA Metrics"] + x-codegen-request-body-name: body + /api/v2/dora/failure/{failure_id}: + delete: + description: |- + Use this API endpoint to delete an incident event. + operationId: DeleteDORAFailure + parameters: + - description: The ID of the incident event to delete. + in: path + name: failure_id + required: true + schema: + type: string + responses: + "202": + description: Accepted + "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Conflict — max 1000 share URLs per dashboard exceeded + description: Bad Request + "403": + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: - - dashboards_embed_share - summary: Create a secure embed for a dashboard - tags: - - Dashboard Secure Embed - x-codegen-request-body-name: body - "x-permission": + - AuthZ: [] + summary: Delete an incident event + tags: ["DORA Metrics"] + x-permission: operator: OR permissions: - - dashboards_embed_share - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/dashboard/{dashboard_id}/shared/secure-embed/{token}: - delete: - description: >- - Delete a secure embed share for a dashboard. - operationId: DeleteDashboardSecureEmbed - parameters: - - $ref: "#/components/parameters/DashboardIDPathParameter" - - $ref: "#/components/parameters/SecureEmbedTokenPathParameter" + - dora_metrics_write + /api/v2/dora/failures: + post: + description: |- + Use this API endpoint to get a list of incident events. + operationId: ListDORAFailures + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + from: "2025-01-01T00:00:00Z" + limit: 100 + query: severity:(SEV-1 OR SEV-2) env:production team:backend + sort: -started_at + to: "2025-01-31T23:59:59Z" + type: dora_failures_list_request + schema: + $ref: "#/components/schemas/DORAListFailuresRequest" + required: true responses: - "204": - description: No Content - "403": + "200": content: application/json: + examples: + default: + value: + data: + - attributes: + env: production + name: Database outage + services: + - test-service + severity: SEV-1 + started_at: "2023-08-31T14:29:34Z" + team: backend + id: abc-123 + type: dora_failure schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "404": + $ref: "#/components/schemas/DORAFailuresListResponse" + description: OK + "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + description: Bad Request + "403": + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: - - dashboards_embed_share - summary: Delete a secure embed for a dashboard - tags: - - Dashboard Secure Embed - "x-permission": + - AuthZ: [] + summary: Get a list of incident events + tags: ["DORA Metrics"] + x-codegen-request-body-name: body + x-permission: operator: OR permissions: - - dashboards_embed_share - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + - dora_metrics_read + /api/v2/dora/failures/{failure_id}: get: - description: >- - Retrieve an existing secure embed configuration for a dashboard. - operationId: GetDashboardSecureEmbed + description: |- + Use this API endpoint to get an incident event. + operationId: GetDORAFailure parameters: - - $ref: "#/components/parameters/DashboardIDPathParameter" - - $ref: "#/components/parameters/SecureEmbedTokenPathParameter" + - description: The ID of the incident event. + in: path + name: failure_id + required: true + schema: + type: string responses: "200": content: @@ -151511,51 +161953,48 @@ paths: value: data: attributes: - created_at: "2024-01-01T00:00:00+00:00" - credential_suffix: ab3f - dashboard_id: abc-def-ghi - global_time_selectable: true - id: "12345" - share_type: secure_embed - status: active - title: "Q1 Metrics Dashboard" - token: abc-123-token - url: "https://p.datadoghq.com/sb/secure-embed/abc-123-token" - id: "12345" - type: secure_embed_get_response + env: production + name: Database outage + services: + - test-service + severity: SEV-1 + started_at: "2023-08-31T14:29:34Z" + team: backend + id: abc-123 + type: dora_failure schema: - $ref: "#/components/schemas/SecureEmbedGetResponse" + $ref: "#/components/schemas/DORAFailureFetchResponse" description: OK - "404": + "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + description: Bad Request + "403": + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: - - dashboards_read - summary: Get a secure embed for a dashboard - tags: - - Dashboard Secure Embed - "x-permission": + - AuthZ: [] + summary: Get an incident event + tags: ["DORA Metrics"] + x-codegen-request-body-name: body + x-permission: operator: OR permissions: - - dashboards_read - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - patch: - description: >- - Partially update a secure embed configuration. All fields are optional (PATCH semantics). - operationId: UpdateDashboardSecureEmbed - parameters: - - $ref: "#/components/parameters/DashboardIDPathParameter" - - $ref: "#/components/parameters/SecureEmbedTokenPathParameter" + - dora_metrics_read + /api/v2/dora/incident: + post: + deprecated: true + description: |- + **Note**: This endpoint is deprecated. Please use `/api/v2/dora/failure` instead. + + Use this API endpoint to provide incident data. + Tracking incidents gives a side-by-side view of how failed deployments translate into real-world incidents. + operationId: CreateDORAIncident requestBody: content: application/json: @@ -151564,12 +162003,23 @@ paths: value: data: attributes: - status: active - title: "Q1 Metrics Dashboard (Updated)" - type: secure_embed_update_request + custom_tags: + - language:java + - department:engineering + env: staging + finished_at: 1693491984000000000 + git: + commit_sha: 66adc9350f2cc9b250b69abddab733dd55e1a588 + repository_url: https://github.com/organization/example-repository + name: Webserver is down failing all requests. + services: + - test-service + severity: High + started_at: 1693491974000000000 + team: backend + version: v1.12.07 schema: - $ref: "#/components/schemas/SecureEmbedUpdateRequest" - description: Secure embed update request body. + $ref: "#/components/schemas/DORAFailureRequest" required: true responses: "200": @@ -151579,88 +162029,68 @@ paths: default: value: data: - attributes: - created_at: "2024-01-01T00:00:00+00:00" - credential_suffix: ab3f - dashboard_id: abc-def-ghi - global_time_selectable: true - id: "12345" - share_type: secure_embed - status: active - title: "Q1 Metrics Dashboard (Updated)" - token: abc-123-token - url: "https://p.datadoghq.com/sb/secure-embed/abc-123-token" - id: "12345" - type: secure_embed_update_response + id: 4242fcdd31586085 + type: dora_failure schema: - $ref: "#/components/schemas/SecureEmbedUpdateResponse" + $ref: "#/components/schemas/DORAFailureResponse" description: OK - "403": + "202": content: application/json: + examples: + default: + value: + data: + id: 4242fcdd31586085 + type: dora_failure schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "404": + $ref: "#/components/schemas/DORAFailureResponse" + description: OK - but delayed due to incident + "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + description: Bad Request + "403": + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - dashboards_embed_share - summary: Update a secure embed for a dashboard - tags: - - Dashboard Secure Embed + summary: Send an incident event (legacy) + tags: ["DORA Metrics"] x-codegen-request-body-name: body - "x-permission": - operator: OR - permissions: - - dashboards_embed_share - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/dashboards/usage: + /api/v2/downtime: get: - description: Get paginated usage statistics for every dashboard in the caller's organization. Use `page[limit]` and `page[offset]` to walk the result set. Use `filter[edited_before]` or `filter[viewed_before]` to narrow results by edit or view date. View-count fields depend on Real User Monitoring (RUM) and are `null` or `0` in orgs without RUM. **View counts are refreshed once per day** and **only reflect views recorded starting January 2025**; views prior to that date are not included. - operationId: ListDashboardsUsage + description: Get all scheduled downtimes. + operationId: ListDowntimes parameters: - - description: Maximum number of dashboards to return per page. Server-side maximum is 500; values above 500 return a 400 Bad Request. - in: query - name: page[limit] - required: false - schema: - default: 250 - format: int64 - type: integer - - description: Zero-based offset into the result set. + - description: Only return downtimes that are active when the request is made. in: query - name: page[offset] + name: current_only required: false schema: - default: 0 - format: int64 - minimum: 0 - type: integer - - description: Return only dashboards whose last edit (`edited_at`) is strictly before this ISO 8601 timestamp (`edited_at < value`; boundary matches are excluded). Must include a timezone offset (for example, `Z` or `+00:00`); naive timestamps return HTTP 400. + type: boolean + - description: |- + Comma-separated list of resource paths for related resources to include in the response. Supported resource + paths are `created_by` and `monitor`. in: query - name: filter[edited_before] + name: include required: false schema: - example: "2025-04-26T00:00:00Z" + example: "created_by,monitor" type: string - - description: Return only dashboards whose most recent view (`viewed_at`) is strictly before this ISO 8601 timestamp, including dashboards that have never been viewed. Must include a timezone offset; naive timestamps return HTTP 400. Orgs without Real User Monitoring (RUM) will see all dashboards returned by this filter. + - $ref: "#/components/parameters/PageOffset" + - description: Maximum number of downtimes in the response. + example: 100 in: query - name: filter[viewed_before] + name: page[limit] required: false schema: - example: "2025-04-26T00:00:00Z" - type: string + default: 30 + format: int64 + type: integer responses: "200": content: @@ -151670,162 +162100,216 @@ paths: value: data: - attributes: - author: - handle: "jane.doe@example.com" - id: "00000000-0000-0000-0000-000000000000" - is_disabled: false - name: "Jane Doe" - created_at: "2026-01-15T09:30:00.000Z" - dashboard_quality_score: 0.85 - edited_at: "2026-04-20T11:05:00.000Z" - org_id: 100 - teams: ["sre"] - title: "My production overview" - total_views: 42 - total_views_by_type: - embed: 12 - in_app: 30 - viewed_at: "2026-05-01T14:22:10.000Z" - viewer: - handle: "john.smith@example.com" - id: "00000000-0000-0000-0000-000000000001" - is_disabled: false - name: "John Smith" - widget_count: 12 - widget_count_by_type: - query_value: 4 - timeseries: 8 - id: "q5j-nti-fv6" - type: "dashboards-usages" - links: - first: "https://api.datadoghq.com/api/v2/dashboards/usage?page[offset]=0&page[limit]=250" - last: "https://api.datadoghq.com/api/v2/dashboards/usage?page[offset]=1000&page[limit]=250" - next: "https://api.datadoghq.com/api/v2/dashboards/usage?page[offset]=250&page[limit]=250" - self: "https://api.datadoghq.com/api/v2/dashboards/usage" + created: "2024-01-01T00:00:00+00:00" + display_timezone: America/New_York + message: Message about the downtime + modified: "2024-01-01T00:00:00+00:00" + monitor_identifier: + monitor_tags: + - "*" + mute_first_recovery_notification: false + notify_end_states: + - alert + - warn + notify_end_types: + - canceled + - expired + scope: env:(staging OR prod) AND datacenter:us-east-1 + status: active + id: "00000000-0000-1234-0000-000000000000" + type: downtime meta: page: - first_offset: 0 - last_offset: 1000 - limit: 250 - next_offset: 250 - offset: 0 - prev_offset: - total: 1234 - type: offset_limit + total_filtered_count: 1 + schema: + $ref: "#/components/schemas/ListDowntimesResponse" + description: OK + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - monitors_downtime + summary: Get all downtimes + tags: + - Downtimes + x-pagination: + limitParam: page[limit] + pageOffsetParam: page[offset] + resultsPath: data + "x-permission": + operator: OR + permissions: + - monitors_downtime + post: + description: Schedule a downtime. + operationId: CreateDowntime + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + display_timezone: America/New_York + message: Message about the downtime + monitor_identifier: + monitor_id: 123 + mute_first_recovery_notification: false + notify_end_states: + - alert + - warn + notify_end_types: + - canceled + - expired + schedule: + timezone: America/New_York + scope: env:(staging OR prod) AND datacenter:us-east-1 + type: downtime + schema: + $ref: "#/components/schemas/DowntimeCreateRequest" + description: Schedule a downtime request body. + required: true + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + created: "2024-01-01T00:00:00+00:00" + display_timezone: America/New_York + message: Message about the downtime + modified: "2024-01-01T00:00:00+00:00" + monitor_identifier: + monitor_tags: + - "*" + mute_first_recovery_notification: false + notify_end_states: + - alert + - warn + notify_end_types: + - canceled + - expired + scope: env:(staging OR prod) AND datacenter:us-east-1 + status: active + id: "00000000-0000-1234-0000-000000000000" + type: downtime schema: - $ref: "#/components/schemas/ListDashboardsUsageResponse" + $ref: "#/components/schemas/DowntimeResponse" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - dashboards_read - summary: Get usage stats for all dashboards + - monitors_downtime + summary: Schedule a downtime tags: - - Dashboards - x-pagination: - limitParam: page[limit] - pageOffsetParam: page[offset] - resultsPath: data - x-permission: + - Downtimes + x-codegen-request-body-name: body + "x-permission": operator: OR permissions: - - dashboards_read - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/dashboards/{dashboard_id}/usage: - get: - description: Get usage statistics for a single dashboard. The response includes view counts, the most recent view and edit times, widget counts, and the dashboard quality score. View-count fields depend on Real User Monitoring (RUM) and are `null` or `0` in orgs without RUM. **View counts are refreshed once per day** and **only reflect views recorded starting January 2025**; views prior to that date are not included. - operationId: GetDashboardUsage + - monitors_downtime + /api/v2/downtime/{downtime_id}: + delete: + description: |- + Cancel a downtime. + + **Note**: Downtimes canceled through the API are no longer active, but are retained for approximately two days before being permanently removed. The downtime may still appear in search results until it is permanently removed. + operationId: CancelDowntime parameters: - - description: The ID of the dashboard. + - description: ID of the downtime to cancel. in: path - name: dashboard_id + name: downtime_id required: true schema: - example: "q5j-nti-fv6" + example: 00000000-0000-1234-0000-000000000000 type: string responses: - "200": + "204": + description: OK + "403": content: application/json: - examples: - default: - value: - data: - attributes: - author: - handle: "jane.doe" - id: "00000000-0000-0000-0000-000000000000" - is_disabled: false - name: "Jane Doe" - created_at: "2026-01-15T09:30:00.000Z" - dashboard_quality_score: 0.85 - edited_at: "2026-04-20T11:05:00.000Z" - org_id: 100 - teams: ["sre"] - title: "My production overview" - total_views: 42 - total_views_by_type: - embed: 12 - in_app: 30 - viewed_at: "2026-05-01T14:22:10.000Z" - viewer: - handle: "john.smith" - id: "00000000-0000-0000-0000-000000000001" - is_disabled: false - name: "John Smith" - widget_count: 12 - widget_count_by_type: - query_value: 4 - timeseries: 8 - id: "q5j-nti-fv6" - type: "dashboards-usages" schema: - $ref: "#/components/schemas/DashboardUsageResponse" - description: OK - "400": - $ref: "#/components/responses/BadRequestResponse" - "403": - $ref: "#/components/responses/ForbiddenResponse" + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Downtime not found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - dashboards_read - summary: Get usage stats for a dashboard + - monitors_downtime + summary: Cancel a downtime tags: - - Dashboards - x-permission: + - Downtimes + "x-permission": operator: OR permissions: - - dashboards_read - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/data-observability/monitors/runs/{run_id}/status: + - monitors_downtime get: - description: Retrieves the current status of a data observability monitor run. Poll this endpoint after triggering a run to determine when evaluation is complete. - operationId: GetDataObservabilityMonitorRunStatus + description: Get downtime detail by `downtime_id`. + operationId: GetDowntime parameters: - - description: The ID of the monitor run to retrieve status for. - example: "abc123def456" + - description: ID of the downtime to fetch. in: path - name: run_id + name: downtime_id required: true schema: + example: "00000000-0000-1234-0000-000000000000" + type: string + - description: |- + Comma-separated list of resource paths for related resources to include in the response. Supported resource + paths are `created_by` and `monitor`. + in: query + name: include + required: false + schema: + example: "created_by,monitor" type: string + - description: |- + If `true`, include the `run_as` attribute in the response, which lists the principals allowed to + act on behalf of the downtime. + + **Note**: This feature is currently in Preview and may not be available for all organizations. + in: query + name: with_run_as + required: false + schema: + default: false + type: boolean responses: "200": content: @@ -151835,17 +162319,44 @@ paths: value: data: attributes: - status: ok - id: "abc123def456" - type: monitor_run + created: "2024-01-01T00:00:00+00:00" + display_timezone: America/New_York + message: Message about the downtime + modified: "2024-01-01T00:00:00+00:00" + monitor_identifier: + monitor_tags: + - "*" + mute_first_recovery_notification: false + notify_end_states: + - alert + - warn + notify_end_types: + - canceled + - expired + scope: env:(staging OR prod) AND datacenter:us-east-1 + status: active + id: "00000000-0000-1234-0000-000000000000" + type: downtime schema: - $ref: "#/components/schemas/GetDataObservabilityMonitorRunStatusResponse" + $ref: "#/components/schemas/DowntimeResponse" description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden "404": content: application/json: schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" + $ref: "#/components/schemas/APIErrorResponse" description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" @@ -151853,27 +162364,53 @@ paths: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - data_observability_monitors_write - - monitors_write - summary: Get data observability monitor run status + - monitors_downtime + summary: Get a downtime tags: - - Data Observability - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/data-observability/monitors/{monitor_id}/run: - post: - description: Manually triggers a run for a data observability monitor. Only monitors that are not scheduled (manually-runnable) can be triggered this way. - operationId: RunDataObservabilityMonitor + - Downtimes + "x-permission": + operator: OR + permissions: + - monitors_downtime + patch: + description: Update a downtime by `downtime_id`. + operationId: UpdateDowntime parameters: - - description: The ID of the data observability monitor to run. - example: 12345 + - description: ID of the downtime to update. in: path - name: monitor_id + name: downtime_id required: true schema: - format: int64 - type: integer + example: "00e000000-0000-1234-0000-000000000000" + type: string + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + display_timezone: America/New_York + message: Message about the downtime + monitor_identifier: + monitor_id: 123 + mute_first_recovery_notification: false + notify_end_states: + - alert + - warn + notify_end_types: + - canceled + - expired + schedule: + timezone: America/New_York + scope: env:(staging OR prod) AND datacenter:us-east-1 + id: 00000000-0000-1234-0000-000000000000 + type: downtime + schema: + $ref: "#/components/schemas/DowntimeUpdateRequest" + description: Update a downtime request body. + required: true responses: "200": content: @@ -151882,41 +162419,85 @@ paths: default: value: data: - id: "abc123def456" - type: monitor_run + attributes: + created: "2024-01-01T00:00:00+00:00" + display_timezone: America/New_York + message: Message about the downtime + modified: "2024-01-01T00:00:00+00:00" + monitor_identifier: + monitor_tags: + - "*" + mute_first_recovery_notification: false + notify_end_states: + - alert + - warn + notify_end_types: + - canceled + - expired + scope: env:(staging OR prod) AND datacenter:us-east-1 + status: active + id: "00000000-0000-1234-0000-000000000000" + type: downtime schema: - $ref: "#/components/schemas/RunDataObservabilityMonitorResponse" + $ref: "#/components/schemas/DowntimeResponse" description: OK "400": content: application/json: schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" + $ref: "#/components/schemas/APIErrorResponse" description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden "404": content: application/json: schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + $ref: "#/components/schemas/APIErrorResponse" + description: Downtime not found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - data_observability_monitors_write - - monitors_write - summary: Run a data observability monitor + - monitors_downtime + summary: Update a downtime tags: - - Data Observability - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/datasets: - get: - description: Get all datasets that have been configured for an organization. - operationId: GetAllDatasets + - Downtimes + x-codegen-request-body-name: body + "x-permission": + operator: OR + permissions: + - monitors_downtime + /api/v2/error-tracking/issues/search: + post: + description: Search issues endpoint allows you to programmatically search for issues within your organization. This endpoint returns a list of issues that match a given search query, following the event search syntax. The search results are limited to a maximum of 100 issues per request. + operationId: SearchIssues + parameters: + - $ref: "#/components/parameters/SearchIssuesIncludeQueryParameter" + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + from: 1671612804000 + order_by: IMPACTED_SESSIONS + persona: BACKEND + query: service:orders-* AND @language:go + to: 1671620004000 + type: search_request + schema: + $ref: "#/components/schemas/IssuesSearchRequest" + description: Search issues request payload. + required: true responses: "200": content: @@ -151926,62 +162507,37 @@ paths: value: data: - attributes: - name: Security Audit Dataset - principals: - - role:94172442-be03-11e9-a77a-3b7612558ac1 - product_filters: - - filters: - - source:cloudtrail - product: logs - id: 00000000-0000-0000-0000-000000000003 - type: dataset + impacted_sessions: 12 + impacted_users: 4 + total_count: 82 + id: abc-123 + type: error_tracking_search_result schema: - $ref: "#/components/schemas/DatasetResponseMulti" + $ref: "#/components/schemas/IssuesSearchResponse" description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/NotAuthorizedResponse" + $ref: "#/components/responses/ForbiddenResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - user_access_read - summary: Get all datasets + - error_tracking_read + summary: Search error tracking issues tags: - - Datasets - "x-permission": - operator: OR - permissions: - - user_access_read - x-unstable: |- - **Note: Data Access is in preview. If you have any feedback, - contact [Datadog support](https://docs.datadoghq.com/help/).** - post: - description: |- - Create a dataset with the configurations in the request. - operationId: CreateDataset - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - name: Security Audit Dataset - principals: - - role:94172442-be03-11e9-a77a-3b7612558ac1 - product_filters: - - filters: - - source:cloudtrail - product: logs - restriction_query_id: 00000000-0000-0000-0000-000000000001 - type: dataset - schema: - $ref: "#/components/schemas/DatasetCreateRequest" - description: Dataset payload - required: true + - Error Tracking + /api/v2/error-tracking/issues/{issue_id}: + get: + description: Retrieve the full details for a specific error tracking issue, including attributes and relationships. + operationId: GetIssue + parameters: + - $ref: "#/components/parameters/IssueIDPathParameter" + - $ref: "#/components/parameters/GetIssueIncludeQueryParameter" responses: "200": content: @@ -151991,55 +162547,48 @@ paths: value: data: attributes: - name: Security Audit Dataset - principals: - - "role:abc-123" - product_filters: - - filters: - - source:cloudtrail - product: logs - id: 00000000-0000-0000-0000-000000000004 - type: dataset + error_message: "object of type 'NoneType' has no len()" + error_type: builtins.TypeError + service: test-service + state: OPEN + id: 00000000-0000-0000-0000-000000000001 + type: issue schema: - $ref: "#/components/schemas/DatasetResponseSingle" + $ref: "#/components/schemas/IssueResponse" description: OK "400": $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/NotAuthorizedResponse" - "409": - $ref: "#/components/responses/ConflictResponse" + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - user_access_manage - summary: Create a dataset + - error_tracking_read + summary: Get the details of an error tracking issue tags: - - Datasets - x-codegen-request-body-name: body - x-permission: - operator: OR - permissions: - - user_access_manage - x-unstable: |- - **Note: Data Access is in preview. If you have any feedback, - contact [Datadog support](https://docs.datadoghq.com/help/).** - /api/v2/datasets/{dataset_id}: + - Error Tracking + /api/v2/error-tracking/issues/{issue_id}/assignee: delete: - description: Deletes the dataset associated with the ID. - operationId: DeleteDataset + description: Remove the assignee of an issue by `issue_id`. + operationId: DeleteIssueAssignee parameters: - - $ref: "#/components/parameters/DatasetID" + - $ref: "#/components/parameters/IssueIDPathParameter" responses: "204": description: No Content "400": $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/NotAuthorizedResponse" + $ref: "#/components/responses/ForbiddenResponse" "404": $ref: "#/components/responses/NotFoundResponse" "429": @@ -152048,22 +162597,31 @@ paths: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - user_access_manage - summary: Delete a dataset + - error_tracking_read + - error_tracking_write + - cases_read + - cases_write + summary: Remove the assignee of an issue tags: - - Datasets - "x-permission": - operator: OR - permissions: - - user_access_manage - x-unstable: |- - **Note: Data Access is in preview. If you have any feedback, - contact [Datadog support](https://docs.datadoghq.com/help/).** - get: - description: Retrieves the dataset associated with the ID. - operationId: GetDataset + - Error Tracking + put: + description: Update the assignee of an issue by `issue_id`. + operationId: UpdateIssueAssignee parameters: - - $ref: "#/components/parameters/DatasetID" + - $ref: "#/components/parameters/IssueIDPathParameter" + requestBody: + content: + application/json: + examples: + default: + value: + data: + id: 87cb11a0-278c-440a-99fe-701223c80296 + type: assignee + schema: + $ref: "#/components/schemas/IssueUpdateAssigneeRequest" + description: Update issue assignee request payload. + required: true responses: "200": content: @@ -152073,22 +162631,21 @@ paths: value: data: attributes: - name: Security Audit Dataset - principals: - - role:94172442-be03-11e9-a77a-3b7612558ac1 - product_filters: - - filters: - - source:cloudtrail - product: logs - id: 00000000-0000-0000-0000-000000000001 - type: dataset + error_message: "object of type 'NoneType' has no len()" + error_type: builtins.TypeError + service: test-service + state: OPEN + id: 00000000-0000-0000-0000-000000000003 + type: issue schema: - $ref: "#/components/schemas/DatasetResponseSingle" + $ref: "#/components/schemas/IssueResponse" description: OK "400": $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/NotAuthorizedResponse" + $ref: "#/components/responses/ForbiddenResponse" "404": $ref: "#/components/responses/NotFoundResponse" "429": @@ -152097,22 +162654,19 @@ paths: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - user_access_read - summary: Get a single dataset by ID + - error_tracking_read + - error_tracking_write + - cases_read + - cases_write + summary: Update the assignee of an issue tags: - - Datasets - "x-permission": - operator: OPEN - permissions: [] - x-unstable: |- - **Note: Data Access is in preview. If you have any feedback, - contact [Datadog support](https://docs.datadoghq.com/help/).** + - Error Tracking + /api/v2/error-tracking/issues/{issue_id}/state: put: - description: |- - Edits the dataset associated with the ID. - operationId: UpdateDataset + description: Update the state of an issue by `issue_id`. Use this endpoint to move an issue between states such as `OPEN`, `RESOLVED`, or `IGNORED`. + operationId: UpdateIssueState parameters: - - $ref: "#/components/parameters/DatasetID" + - $ref: "#/components/parameters/IssueIDPathParameter" requestBody: content: application/json: @@ -152121,17 +162675,12 @@ paths: value: data: attributes: - name: Security Audit Dataset - principals: - - role:94172442-be03-11e9-a77a-3b7612558ac1 - product_filters: - - filters: - - "@application.id:ABCD" - product: logs - type: dataset + state: RESOLVED + id: c1726a66-1f64-11ee-b338-da7ad0900002 + type: error_tracking_issue schema: - $ref: "#/components/schemas/DatasetUpdateRequest" - description: Dataset payload + $ref: "#/components/schemas/IssueUpdateStateRequest" + description: Update issue state request payload. required: true responses: "200": @@ -152142,22 +162691,21 @@ paths: value: data: attributes: - name: Security Audit Dataset - principals: - - role:94172442-be03-11e9-a77a-3b7612558ac1 - product_filters: - - filters: - - source:cloudtrail - product: logs + error_message: "object of type 'NoneType' has no len()" + error_type: builtins.TypeError + service: test-service + state: RESOLVED id: 00000000-0000-0000-0000-000000000002 - type: dataset + type: issue schema: - $ref: "#/components/schemas/DatasetResponseSingle" + $ref: "#/components/schemas/IssueResponse" description: OK "400": $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": - $ref: "#/components/responses/NotAuthorizedResponse" + $ref: "#/components/responses/ForbiddenResponse" "404": $ref: "#/components/responses/NotFoundResponse" "429": @@ -152166,119 +162714,195 @@ paths: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - user_access_manage - summary: Edit a dataset + - error_tracking_read + - error_tracking_write + summary: Update the state of an issue tags: - - Datasets - x-codegen-request-body-name: body + - Error Tracking + /api/v2/events: + get: + description: |- + List endpoint returns events that match an events search query. + [Results are paginated similarly to logs](https://docs.datadoghq.com/logs/guide/collect-multiple-logs-with-pagination). + + Use this endpoint to see your latest events. + operationId: ListEvents + parameters: + - description: Search query following events syntax. + in: query + name: filter[query] + required: false + schema: + type: string + - description: Minimum timestamp for requested events, in milliseconds. + in: query + name: filter[from] + required: false + schema: + type: string + - description: Maximum timestamp for requested events, in milliseconds. + in: query + name: filter[to] + required: false + schema: + type: string + - description: Order of events in results. + in: query + name: sort + required: false + schema: + $ref: "#/components/schemas/EventsSort" + - description: |- + List following results with a cursor provided in the previous query. + example: "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" + in: query + name: page[cursor] + required: false + schema: + type: string + - description: Maximum number of events in the response. + example: 25 + in: query + name: page[limit] + required: false + schema: + default: 10 + format: int32 + maximum: 1000 + type: integer + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + message: "Test event" + tags: + - "env:prod" + timestamp: "2019-01-02T09:42:36.320Z" + id: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA + type: event + meta: + request_id: MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR + schema: + $ref: "#/components/schemas/EventsListResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - events_read + summary: Get a list of events + tags: ["Events"] + x-pagination: + cursorParam: page[cursor] + cursorPath: meta.page.after + limitParam: page[limit] + resultsPath: data "x-permission": operator: OR permissions: - - user_access_manage - x-unstable: |- - **Note: Data Access is in preview. If you have any feedback, - contact [Datadog support](https://docs.datadoghq.com/help/).** - /api/v2/ddsql/query/tabular: + - events_read post: description: |- - Submit a DDSQL statement and return either a `running` state with an opaque `query_id` - for the client to poll, or a `completed` state with the column-major result set inlined - when the query finishes quickly enough to be served synchronously. + This endpoint allows you to publish events. - For a scoped application key, include `timeseries_query` in its scopes. - A query that does not read a data source, such as `SELECT 1`, requires no additional - data-source permissions. Queries that read data sources also require the user or - service account that owns the application key to have the corresponding data access - permissions through their roles. The `timeseries_query` permission does not grant - access to the underlying data sources. - operationId: ExecuteDdsqlTabularQuery + **Note:** To utilize this endpoint with our client libraries, please ensure you are using the latest version released on or after July 1, 2025. Earlier versions do not support this functionality. + + **Important:** Upgrade to the latest client library version to use the updated endpoint at `https://event-management-intake.{site}/api/v2/events`. Older client library versions of the Post an event (v2) API send requests to a deprecated endpoint (`https://api.{site}/api/v2/events`). + + ✅ **Only events with the `change` or `alert` category** are in General Availability. For change events, see [Change Tracking](https://docs.datadoghq.com/change_tracking) for more details. + + ❌ For use cases involving other event categories, use the V1 endpoint or reach out to [support](https://www.datadoghq.com/support/). + operationId: CreateEvent requestBody: content: application/json: examples: + alert-event: + description: Example of an alert event for tracking alerts and monitoring events. + summary: Alert Event + value: {"data": {"attributes": {"aggregation_key": "deduplication_key_here", "attributes": {"custom": {"my-object-attribute": {"my-array-attribute": [1, 2, 3], "my-array-object-attribute": ["name": "test-object-1", "name": "test-object-2"], "my-integer-attribute": 1}, "my-string-attribute": "my-custom-value"}, "links": [{"category": "runbook", "title": "Datadog website", "url": "https://datadoghq.com"}], "priority": "1", "status": "error"}, "category": "alert", "message": "Something is broken!", "tags": ["service:my-test-service", "datacenter:primary"], "title": "My Alerting Event"}, "type": "event"}} + change-event: + description: Example of a change event for tracking configuration or feature flag changes. + summary: Change Event + value: {"data": {"attributes": {"aggregation_key": "aggregation_key_123", "attributes": {"author": {"name": "example@datadog.com", "type": "user"}, "change_metadata": {"dd": {"team": "datadog_team", "user_email": "datadog@datadog.com", "user_id": "datadog_user_id", "user_name": "datadog_username"}, "resource_link": "datadog.com/feature/fallback_payments_test"}, "changed_resource": {"name": "fallback_payments_test", "type": "feature_flag"}, "impacted_resources": [{"name": "payments_api", "type": "service"}], "new_value": {"enabled": true, "percentage": "50%", "rule": {"datacenter": "devcycle.us1.prod"}}, "prev_value": {"enabled": true, "percentage": "10%", "rule": {"datacenter": "devcycle.us1.prod"}}}, "category": "change", "host": "hostname", "integration_id": "custom-events", "message": "payment_processed feature flag has been enabled", "tags": ["env:api_client_test"], "timestamp": "2020-01-01T01:30:15.010000Z", "title": "payment_processed feature flag updated"}, "type": "event"}} default: value: data: attributes: - query: "SELECT cloud_provider, count(*) FROM dd.hosts group by cloud_provider" - row_limit: 1000 - time: - from_timestamp: 1736942400000 - to_timestamp: 1736946000000 - type: ddsql_query_request + aggregation_key: aggregation_key_123 + attributes: + author: + name: example@datadog.com + type: user + change_metadata: + dd: + team: datadog_team + user_email: datadog@datadog.com + user_id: datadog_user_id + user_name: datadog_username + resource_link: datadog.com/feature/fallback_payments_test + changed_resource: + name: fallback_payments_test + type: feature_flag + impacted_resources: + - name: payments_api + type: service + new_value: + enabled: true + percentage: 50% + rule: + datacenter: devcycle.us1.prod + prev_value: + enabled: true + percentage: 10% + rule: + datacenter: devcycle.us1.prod + category: change + host: hostname + integration_id: custom-events + message: payment_processed feature flag has been enabled + tags: + - env:api_client_test + timestamp: "2020-01-01T01:30:15.010000Z" + title: payment_processed feature flag updated + type: event schema: - $ref: "#/components/schemas/DdsqlTabularQueryRequest" + $ref: "#/components/schemas/EventCreateRequestPayload" + description: Event creation request payload. required: true responses: - "200": + "202": content: application/json: examples: - completed: - summary: Query finished synchronously - value: - data: - attributes: - columns: - - name: service - type: VARCHAR - values: - - web-store - - checkout - - name: count - type: BIGINT - values: - - 1024 - - 512 - state: completed - id: "00000000-0000-0000-0000-000000000000" - type: ddsql_query_response - meta: - elapsed: 318 - request_id: "req-7f3e7d2c-1a0b-4d3e-9b2a-3c4d5e6f7081" default: - summary: Query finished synchronously - value: - data: - attributes: - columns: - - name: service - type: VARCHAR - values: - - web-store - - checkout - - name: count - type: BIGINT - values: - - 1024 - - 512 - state: completed - id: "00000000-0000-0000-0000-000000000000" - type: ddsql_query_response - meta: - elapsed: 318 - request_id: "req-7f3e7d2c-1a0b-4d3e-9b2a-3c4d5e6f7081" - running: - summary: Query still executing value: data: attributes: - query_id: "eyJxdWVyeSI6ICJTRUxFQ1QgKiBGUk9NIGxvZ3MifQ==" - state: running - id: "00000000-0000-0000-0000-000000000000" - type: ddsql_query_response - meta: - elapsed: 42 - request_id: "req-7f3e7d2c-1a0b-4d3e-9b2a-3c4d5e6f7081" + attributes: + evt: + uid: abc-123 + type: event schema: - $ref: "#/components/schemas/DdsqlTabularQueryResponse" + $ref: "#/components/schemas/EventCreateResponsePayload" description: OK "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + description: Bad request "403": content: application/json: @@ -152287,173 +162911,140 @@ paths: description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" - "500": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Internal Server Error security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: - - timeseries_query - summary: Execute a tabular DDSQL query - tags: - - DDSQL - "x-permission": - operator: OR - permissions: - - timeseries_query - /api/v2/ddsql/query/tabular/fetch: + - AuthZ: [] + servers: + - url: https://{subdomain}.{site} + variables: + site: + default: datadoghq.com + description: The regional site for customers. + enum: + - datadoghq.com + - us3.datadoghq.com + - us5.datadoghq.com + - ap1.datadoghq.com + - ap2.datadoghq.com + - uk1.datadoghq.com + - datadoghq.eu + - ddog-gov.com + - us2.ddog-gov.com + x-enum-varnames: + - US1 + - US3 + - US5 + - AP1 + - AP2 + - UK1 + - EU1 + - GOV + - US2_GOV + subdomain: + default: event-management-intake + description: The subdomain where the API is deployed. + - url: "{protocol}://{name}" + variables: + name: + default: event-management-intake.datadoghq.com + description: Full site DNS name. + protocol: + default: https + description: The protocol for accessing the API. + - url: https://{subdomain}.{site} + variables: + site: + default: datadoghq.com + description: Any Datadog deployment. + subdomain: + default: event-management-intake + description: The subdomain where the API is deployed. + summary: Post an event + tags: ["Events"] + x-codegen-request-body-name: body + /api/v2/events/search: post: description: |- - Poll a previously submitted DDSQL query for results. Pass the opaque `query_id` returned - by a prior `ExecuteDdsqlTabularQuery` (or by a prior `FetchDdsqlTabularQuery` that - returned `state: running`) and the server returns either a `running` state to poll again - or a `completed` state with the column-major result set inlined. + List endpoint returns events that match an events search query. + [Results are paginated similarly to logs](https://docs.datadoghq.com/logs/guide/collect-multiple-logs-with-pagination). - For a scoped application key, include `timeseries_query` in its scopes. - Fetch results as the same user and organization that submitted the query. - The user or service account that owns the application key must have the data access - permissions required by the queried data sources through their roles. - operationId: FetchDdsqlTabularQuery + Use this endpoint to build complex events filtering and search. + operationId: SearchEvents requestBody: content: - application/json: + "application/json": examples: default: value: - data: - attributes: - query_id: "eyJxdWVyeSI6ICJTRUxFQ1QgKiBGUk9NIGxvZ3MifQ==" - type: ddsql_query_fetch_request + filter: + from: now-15m + query: service:web* AND @http.status_code:[200 TO 299] + to: now + options: + timezone: GMT + page: + cursor: eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ== + limit: 25 + sort: timestamp schema: - $ref: "#/components/schemas/DdsqlTabularQueryFetchRequest" - required: true + $ref: "#/components/schemas/EventsListRequest" + required: false responses: "200": content: application/json: examples: - completed: - summary: Query finished - value: - data: - attributes: - columns: - - name: service - type: VARCHAR - values: - - web-store - - checkout - - name: count - type: BIGINT - values: - - 1024 - - 512 - state: completed - id: "00000000-0000-0000-0000-000000000000" - type: ddsql_query_response - meta: - elapsed: 87 - request_id: "req-7f3e7d2c-1a0b-4d3e-9b2a-3c4d5e6f7082" default: - summary: Query finished - value: - data: - attributes: - columns: - - name: service - type: VARCHAR - values: - - web-store - - checkout - - name: count - type: BIGINT - values: - - 1024 - - 512 - state: completed - id: "00000000-0000-0000-0000-000000000000" - type: ddsql_query_response - meta: - elapsed: 87 - request_id: "req-7f3e7d2c-1a0b-4d3e-9b2a-3c4d5e6f7082" - running: - summary: Query still executing value: data: - attributes: - query_id: "eyJxdWVyeSI6ICJTRUxFQ1QgKiBGUk9NIGxvZ3MifQ==" - state: running - id: "00000000-0000-0000-0000-000000000000" - type: ddsql_query_response + - attributes: + message: "Test event" + tags: + - "env:prod" + timestamp: "2019-01-02T09:42:36.320Z" + id: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA + type: event meta: - elapsed: 12 - request_id: "req-7f3e7d2c-1a0b-4d3e-9b2a-3c4d5e6f7082" + request_id: MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR schema: - $ref: "#/components/schemas/DdsqlTabularQueryResponse" + $ref: "#/components/schemas/EventsListResponse" description: OK "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + $ref: "#/components/responses/BadRequestResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden + $ref: "#/components/responses/NotAuthorizedResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - "500": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Internal Server Error security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - timeseries_query - summary: Fetch the result of a DDSQL query - tags: - - DDSQL + - events_read + summary: Search events + tags: ["Events"] + x-codegen-request-body-name: body + x-pagination: + cursorParam: body.page.cursor + cursorPath: meta.page.after + limitParam: body.page.limit + resultsPath: data "x-permission": operator: OR permissions: - - timeseries_query - /api/v2/deletion/data/{product}: - post: - description: Creates a data deletion request by providing a query and a timeframe targeting the proper data. - operationId: CreateDataDeletionRequest + - events_read + /api/v2/events/{event_id}: + get: + description: >- + Get the details of an event by `event_id`. + operationId: GetEvent parameters: - - $ref: "#/components/parameters/ProductName" - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - displayed_total: 100 - from: 1672527600000 - indexes: - - test-index - - test-index-2 - query: - host: abc - service: xyz - to: 1704063600000 - type: create_deletion_req - schema: - $ref: "#/components/schemas/CreateDataDeletionRequestBody" - required: true + - description: The UID of the event. + in: path + name: event_id + required: true + schema: + type: string responses: "200": content: @@ -152463,102 +163054,153 @@ paths: value: data: attributes: - created_at: "2024-01-01T00:00:00.000000Z" - created_by: test@example.com - displayed_total: 100 - from_time: 1672527600000 - is_created: true - org_id: 123 - product: logs - query: "service:xyz host:abc" - source: standard - starting_at: "2024-01-01T02:00:00.000000Z" - status: pending - to_time: 1704063600000 - total_unrestricted: 100 - updated_at: "2024-01-01T00:00:00.000000Z" - id: "1" - type: deletion_request - meta: - product: logs - request_status: pending + message: "The event message" + tags: + - "env:api_client_test" + timestamp: "2017-01-15T01:30:15.010000Z" + id: abc-123 + type: event schema: - $ref: "#/components/schemas/CreateDataDeletionResponseBody" + $ref: "#/components/schemas/V2EventResponse" description: OK "400": $ref: "#/components/responses/BadRequestResponse" + "401": + $ref: "#/components/responses/UnauthorizedResponse" "403": $ref: "#/components/responses/ForbiddenResponse" - "412": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Precondition failed error + "404": + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - "500": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Internal server error security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] - summary: Creates a data deletion request - tags: - - Data Deletion - x-permission: + - AuthZ: + - events_read + summary: Get an event + tags: ["Events"] + "x-permission": operator: OR permissions: - - logs_delete_data - /api/v2/deletion/requests: + - events_read + /api/v2/experiments: get: - description: Gets a list of data deletion requests based on several filter parameters. - operationId: GetDataDeletionRequests + description: >- + List experiments. Returns a paginated list of experiments and their structured metadata for the organization. Supports filtering and pagination. Use Get experiment for variants, decision metrics, traffic exposure, and assignment configuration. + operationId: ListExperiments parameters: + - description: >- + Return only experiments concluded at or after this RFC3339 timestamp. Inclusive, and excludes experiments that have not concluded. + in: query + name: concluded_since + schema: + description: |- + Return only experiments concluded at or after this RFC3339 timestamp. Inclusive, and excludes + experiments that have not concluded. + format: date-time + type: string + - description: Return only experiments created at or after this RFC3339 timestamp. Inclusive. + in: query + name: created_since + schema: + description: "Return only experiments created at or after this RFC3339 timestamp. Inclusive." + format: date-time + type: string + - description: >- + Maximum number of results to return. Defaults to 25 when omitted, and is capped at 50 (larger values are clamped to 50). The response includes meta.page (with total) and pagination links. + in: query + name: page[limit] + schema: + description: |- + Maximum number of results to return. Defaults to 25 when omitted, and is capped at 50 (larger values are + clamped to 50). The response includes meta.page (with total) and pagination links. + format: int64 + type: integer + - description: Number of results to skip for pagination. Defaults to 0 when omitted. + in: query + name: page[offset] + schema: + description: "Number of results to skip for pagination. Defaults to 0 when omitted." + format: int64 + type: integer - description: |- - The next page of the previous search. If the next_page parameter is included, the rest of the query elements are ignored. - example: "cGFnZTI=" + Filter by protocol UUID. Repeat this parameter to supply several IDs. An experiment matches if it uses any + listed protocol. in: query - name: next_page - required: false + name: protocol_id + schema: + description: |- + Filter by protocol UUID. Repeat this parameter to supply several IDs. An experiment matches if it uses + any listed protocol. + items: + description: "UUID of a protocol to match." + format: uuid + type: string + type: array + - description: >- + Return only experiments whose results_last_updated is before this RFC3339 timestamp. results_last_updated is the later of the latest successful run completion and the latest stored result refresh. Exclusive, and excludes experiments without successful results. + in: query + name: results_updated_before schema: + description: |- + Return only experiments whose results_last_updated is before this RFC3339 timestamp. + results_last_updated is the later of the latest successful run completion and the latest stored result + refresh. Exclusive, and excludes experiments without successful results. + format: date-time type: string - - description: Retrieve only the requests related to the given product. - example: "logs" + - description: >- + Return only experiments whose results_last_updated is at or after this RFC3339 timestamp. results_last_updated is the later of the latest successful run completion and the latest stored result refresh. Inclusive, and excludes experiments without successful results. This filter does not include all metadata edits or deletions. in: query - name: product - required: false + name: results_updated_since + schema: + description: >- + Return only experiments whose results_last_updated is at or after this RFC3339 timestamp. results_last_updated is the later of the latest successful run completion and the latest stored result refresh. Inclusive, and excludes experiments without successful results. This filter does not include all metadata edits or deletions. + format: date-time + type: string + - description: "Find experiments whose names contain the search text, regardless of case." + in: query + name: search schema: + description: "Find experiments whose names contain the search text, regardless of case." type: string - - description: Retrieve only the requests that matches the given query. - example: "service:xyz host:abc" + - description: >- + Sort fields: name, created_at, or updated_at. Use a comma-separated list in priority order, for example name,-created_at. Prefix each field with `-` for descending. Defaults to created_at descending. in: query - name: query - required: false + name: sort schema: + description: |- + Sort fields: name, created_at, or updated_at. Use a comma-separated list in priority order, for example + name,-created_at. Prefix each field with `-` for descending. Defaults to created_at descending. type: string - - description: Retrieve only the requests with the given status. - example: "pending" + - description: |- + Filter by experiment status. Accepted values are DRAFT, SCHEDULED, IN_PROGRESS, READY_FOR_DECISION, + DECISION_MADE, and CANCELLED. Repeat this parameter to select several statuses, for example + `status=IN_PROGRESS&status=READY_FOR_DECISION`. in: query name: status - required: false schema: - type: string - - description: Sets the page size of the search. - example: "50" + description: |- + Filter by experiment status. Accepted values are DRAFT, SCHEDULED, IN_PROGRESS, READY_FOR_DECISION, + DECISION_MADE, and CANCELLED. Repeat this parameter to select several statuses, for example + `status=IN_PROGRESS&status=READY_FOR_DECISION`. + items: + description: "Experiment status to include in the results." + type: string + type: array + - description: |- + Filter by tag name. Repeat this parameter to supply several tags. An experiment matches if it has at least + one listed tag. in: query - name: page_size - required: false + name: tags schema: - default: 50 - format: int64 - maximum: 50 - minimum: 1 - type: integer + description: |- + Filter by tag name. Repeat this parameter to supply several tags. An experiment matches if it has at + least one listed tag. + items: + description: "Tag name to match against experiment tags." + type: string + type: array responses: "200": content: @@ -152568,147 +163210,193 @@ paths: value: data: - attributes: - created_at: "2024-01-01T00:00:00.000000Z" - created_by: test@example.com - displayed_total: 100 - from_time: 1672527600000 - is_created: true - org_id: 123 - product: logs - query: "service:xyz host:abc" - source: standard - starting_at: "2024-01-01T02:00:00.000000Z" - status: pending - to_time: 1704063600000 - total_unrestricted: 100 - updated_at: "2024-01-01T00:00:00.000000Z" - id: "1" - type: deletion_request - meta: - next_page: "cGFnZTI=" - product: logs + assignments_end_date: "2026-08-15T00:00:00Z" + assignments_start_date: "2026-08-01T00:00:00Z" + concluded_at: "2026-08-05T09:30:00Z" + conclusion: + decision_reason: The primary metric improved without material regressions + outcome: POSITIVE + summary: The treatment improved conversion + created_at: "2026-08-01T12:00:00Z" + events_end_date: "2026-08-22T00:00:00Z" + events_start_date: "2026-08-01T00:00:00Z" + experiment_type: STANDARD + hypothesis: A clearer checkout button increases purchase conversion + name: Checkout button test + pipeline_table_suffix: a1b2c3d4 + protocol_id: e4d5f6a7-0000-0000-0000-000000000000 + related_links: + - id: d1d2d3d4-0000-0000-0000-000000000000 + title: Experiment design + url: https://docs.example.com/checkout-experiment + results_last_updated: "2026-08-05T09:25:00Z" + status: DECISION_MADE + structured_metadata: + - enum_values: + - beta + field_display_name: Launch stage + field_key: launch_stage + field_type: ENUM + - field_display_name: Notes + field_key: notes + field_type: FREETEXT + freetext_value: Checkout redesign + subject_type_id: c2b3d4e5-0000-0000-0000-000000000000 + summary: The treatment improved conversion + tags: + - growth + teams: + - growth + updated_at: "2026-08-05T09:30:00Z" + id: 550e8400-e29b-41d4-a716-446655440000 + type: experiments schema: - $ref: "#/components/schemas/GetDataDeletionsResponseBody" + $ref: "#/components/schemas/ExperimentsExperimentV2ListDTOArray" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" - "403": - $ref: "#/components/responses/ForbiddenResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - "500": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Internal server error - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: [] - summary: Gets a list of data deletion requests - tags: - - Data Deletion - x-permission: - operator: OR - permissions: - - logs_delete_data - /api/v2/deletion/requests/{id}/cancel: - put: - description: Cancels a data deletion request by providing its ID. - operationId: CancelDataDeletionRequest - parameters: - - $ref: "#/components/parameters/RequestId" - responses: - "200": + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: >- + Invalid query parameter: bad page[offset]/page[limit], unknown sort field, invalid status, malformed protocol_id UUID, invalid result timestamp range, or a timestamp filter that is not RFC3339. + "401": content: application/json: - examples: - default: - value: - data: - attributes: - created_at: "2024-01-01T00:00:00.000000Z" - created_by: test@example.com - displayed_total: 100 - from_time: 1672527600000 - is_created: true - org_id: 123 - product: logs - query: "service:xyz host:abc" - source: standard - starting_at: "2024-01-01T02:00:00.000000Z" - status: canceled - to_time: 1704063600000 - total_unrestricted: 100 - updated_at: "2024-01-01T00:00:00.000000Z" - id: "1" - type: deletion_request - meta: - product: logs - request_status: canceled schema: - $ref: "#/components/schemas/CancelDataDeletionResponseBody" - description: OK - "400": - $ref: "#/components/responses/BadRequestResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: >- + Missing or invalid authentication (dd-api-key + dd-application-key headers, or a valid user session). "403": - $ref: "#/components/responses/ForbiddenResponse" - "412": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Precondition failed error + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Authenticated caller lacks the product_analytics_experiments_read permission. "429": $ref: "#/components/responses/TooManyRequestsResponse" - "500": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Internal server error security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] - summary: Cancels a data deletion request + - AuthZ: + - product_analytics_experiments_read + summary: List experiments tags: - - Data Deletion + - Experiments x-permission: - operator: OR + operator: AND permissions: - - logs_delete_data - /api/v2/dem/journeys: + - product_analytics_experiments_read post: - description: Create a DEM journey. - operationId: CreateJourney + description: >- + Create a draft experiment. `name` is required. `structured_metadata` identifies each metadata field by `field_key`; use `freetext_value` for free-text fields and `enum_values` for enum fields. When this attribute is present, the request must include a value for every required metadata field. When `protocol_id` is present, the published protocol supplies the subject type, decision metrics, analysis-plan defaults, and configuration and enforcement baselines. The request may also include hypothesis, tags, teams, related links, and assignment or event date overrides that satisfy the protocol's duration rules; omit subject_type_id, decision_metrics, variants, warehouse_exposure_configuration, datadog_flag_configuration, traffic_exposure, split_by_properties, and structured_metadata. The protocol association cannot be changed after creation. Without `protocol_id`, a complete Warehouse or Datadog configuration saves the experiment and its configuration in one transaction. For Datadog flag + configuration, send `name`, `subject_type_id`, `decision_metrics`, `variants`, `traffic_exposure`, `assignments_start_date`, `assignments_end_date`, `events_start_date`, and `events_end_date`. The four date fields can be null. Inside `datadog_flag_configuration`, send `feature_flag_id`, `environment_id`, `targeting_rules`, and `entry_point`. Use `targeting_rules: []` and `entry_point: null` when unused. This creates one saved draft allocation that does not serve traffic. Omit all configuration fields to create an experiment without an allocation. This endpoint is not idempotent. + operationId: CreateExperiment requestBody: content: application/json: examples: default: + description: >- + Replace the resource IDs with IDs from your organization. The flag variants must belong to the specified flag. This request saves a draft allocation and does not start traffic. + summary: Draft with a Datadog feature flag value: data: attributes: - description: Tracks the user checkout flow from cart to confirmation. - journey_rum: - rum_steps: - - nodes: - - query: action.name:'checkout' - type: start - - nodes: - - query: action.name:'confirmation' - type: stop - name: Checkout Flow - tags: - - team:synthetics - type: journeys + assignments_end_date: "2026-08-15T00:00:00Z" + assignments_start_date: "2026-08-01T00:00:00Z" + datadog_flag_configuration: + entry_point: + environment_id: 550e8400-e29b-41d4-a716-446655440005 + feature_flag_id: 550e8400-e29b-41d4-a716-446655440004 + targeting_rules: [] + decision_metrics: + - is_primary: true + metric_id: b1a2c3d4-0000-0000-0000-000000000000 + events_end_date: "2026-08-22T00:00:00Z" + events_start_date: "2026-08-01T00:00:00Z" + name: Checkout button test + structured_metadata: + - enum_values: + - beta + field_key: launch_stage + - field_key: notes + freetext_value: Checkout redesign + subject_type_id: c2b3d4e5-0000-0000-0000-000000000000 + traffic_exposure: + fraction: 1 + mode: STATIC + variants: + - feature_flag_variant_id: 550e8400-e29b-41d4-a716-446655440010 + is_active: true + is_control: true + key: control + weight: 50 + - feature_flag_variant_id: 550e8400-e29b-41d4-a716-446655440011 + is_active: true + is_control: false + key: treatment + weight: 50 + type: experiments + minimal_draft: + description: >- + Uses the organization's default subject type. Add an assignment source, decision metrics, variants, and a run window before starting the experiment. + summary: Minimal draft + value: + data: + attributes: + name: Checkout button test + type: experiments + published_protocol: + description: >- + Replace protocol_id with a published protocol ID from your organization. The protocol supplies the configuration and its rules. Do not copy the configuration fields from the other examples into this request. + summary: Draft from a published protocol + value: + data: + attributes: + name: Checkout protocol test + protocol_id: 550e8400-e29b-41d4-a716-446655440040 + type: experiments + warehouse_assignments: + description: >- + Replace the subject type, metric, and exposure SQL model IDs with compatible resources from your organization. The SQL model must provide assignments for checkout_button_test and the control and treatment variant keys. This request saves configuration and does not start analysis. + summary: Draft with warehouse assignments + value: + data: + attributes: + assignments_end_date: "2026-08-15T00:00:00Z" + assignments_start_date: "2026-08-01T00:00:00Z" + decision_metrics: + - is_primary: true + metric_id: b1a2c3d4-0000-0000-0000-000000000000 + events_end_date: "2026-08-22T00:00:00Z" + events_start_date: "2026-08-01T00:00:00Z" + name: Warehouse checkout test + subject_type_id: c2b3d4e5-0000-0000-0000-000000000000 + traffic_exposure: + fraction: 1 + mode: STATIC + variants: + - is_active: true + is_control: true + key: control + name: Control + weight: 50 + - is_active: true + is_control: false + key: treatment + name: Treatment + weight: 50 + warehouse_exposure_configuration: + entry_point: + experiment_key: checkout_button_test + exposure_sql_model_id: 550e8400-e29b-41d4-a716-446655440050 + type: experiments schema: - $ref: "#/components/schemas/DemJourneyCreateRequest" + $ref: "#/components/schemas/ExperimentsCreateExperimentV2Request" required: true responses: - "200": + "201": content: application/json: examples: @@ -152716,267 +163404,182 @@ paths: value: data: attributes: - created_at: "2024-01-15T10:30:00Z" - created_by: - email: jane.doe@example.com - handle: jane.doe - name: Jane Doe - uuid: 00000000-0000-0000-0000-000000000001 - description: Tracks checkout flow. - journey_rum: - rum_steps: - - nodes: - - query: action.name:'checkout' - type: start - - nodes: - - query: action.name:'confirmation' - type: stop - name: Checkout Flow - org_id: 12345 - tags: - - team:synthetics - test_suite: - updated_at: - updated_by: - variants: [] - id: journey-abc123 - type: journeys + assignments_end_date: "2026-08-15T00:00:00Z" + assignments_start_date: "2026-08-01T00:00:00Z" + concluded_at: + created_at: "2026-07-31T12:00:00Z" + datadog_flag_configuration: + allocation_key: 550e8400-e29b-41d4-a716-446655440030 + entry_point: + environment_id: 550e8400-e29b-41d4-a716-446655440005 + feature_flag_id: 550e8400-e29b-41d4-a716-446655440004 + targeting_rules: [] + decision_metrics: + - is_primary: true + metric_id: b1a2c3d4-0000-0000-0000-000000000000 + events_end_date: "2026-08-22T00:00:00Z" + events_start_date: "2026-08-01T00:00:00Z" + experiment_type: STANDARD + name: Checkout button test + pipeline_table_suffix: a1b2c3d4 + related_links: [] + results_last_updated: + split_by_properties: [] + status: DRAFT + structured_metadata: + - enum_values: + - beta + field_display_name: Launch stage + field_key: launch_stage + field_type: ENUM + - field_display_name: Notes + field_key: notes + field_type: FREETEXT + freetext_value: Checkout redesign + subject_type_id: c2b3d4e5-0000-0000-0000-000000000000 + tags: [] + teams: [] + traffic_exposure: + fraction: 1 + mode: STATIC + updated_at: "2026-07-31T12:00:00Z" + variants: + - feature_flag_variant_id: 550e8400-e29b-41d4-a716-446655440010 + is_active: true + is_control: true + key: control + name: Control + weight: 50 + - feature_flag_variant_id: 550e8400-e29b-41d4-a716-446655440011 + is_active: true + is_control: false + key: treatment + name: Treatment + weight: 50 + warehouse_exposure_configuration: + id: 550e8400-e29b-41d4-a716-446655440000 + type: experiments schema: - $ref: "#/components/schemas/DemJourneyResponse" - description: OK - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: Create a DEM journey - tags: - - DEM - x-permission: - operator: OR - permissions: - - synthetics_write - /api/v2/dem/journeys/inferred/ignored/{journey_id}: - delete: - description: Remove an ignored inferred DEM journey, making it eligible to appear as a candidate again. - operationId: DeleteIgnoredInferredJourney - parameters: - - description: The unique identifier of the ignored inferred journey to delete. - example: inferred-abc123 - in: path - name: journey_id - required: true - schema: - type: string - responses: - "204": - description: No Content - "404": + $ref: "#/components/schemas/ExperimentsExperimentV2DTO" + description: Created + "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: Delete an ignored inferred DEM journey - tags: - - DEM - x-permission: - operator: OR - permissions: - - synthetics_write - /api/v2/dem/journeys/inferred/search: - get: - description: >- - Search for inferred DEM journeys by status. Returns candidates (status=candidate, the default) or ignored journeys (status=ignored). Supports optional fuzzy name filtering and app ID filtering. - operationId: SearchInferredJourneys - parameters: - - description: >- - Filter by inferred journey status. Use `candidate` (default) to retrieve journeys suggested for promotion, or `ignored` to retrieve journeys that have been dismissed. - in: query - name: status - required: false - schema: - $ref: "#/components/schemas/DemInferredJourneyStatus" - - description: Fuzzy search query to filter inferred journeys by name. - in: query - name: q - required: false - schema: - type: string - - description: Filter inferred journeys by application ID. - in: query - name: app_id - required: false - schema: - type: string - responses: - "200": + description: >- + Invalid request body: missing required field, malformed variants or decision_metrics, or an unresolvable analysis configuration. + "401": content: application/json: - examples: - candidates: - value: - data: - - attributes: - created_at: "2024-01-15T10:30:00Z" - description: - journey_rum: - rum_steps: - - nodes: - - query: action.name:'checkout' - type: start - - nodes: - - query: action.name:'confirmation' - type: stop - name: Checkout Flow - org_id: 12345 - rank: 1 - tags: - - team:synthetics - test_suite: - variants: [] - id: inferred-abc123 - type: journeys - default: - value: - data: - - attributes: - created_at: "2024-01-01T00:00:00+00:00" - description: - journey_rum: - rum_steps: - - nodes: - - query: action.name:'checkout' - type: start - - nodes: - - query: action.name:'confirmation' - type: stop - name: Checkout Flow - org_id: 123 - rank: 1 - tags: - - team:synthetics - variants: [] - id: inferred-abc123 - type: journeys - ignored: - value: - data: - - attributes: - created_at: "2024-01-15T10:30:00Z" - description: - ignored_at: "2024-01-16T08:00:00Z" - journey_rum: - rum_steps: - - nodes: - - query: action.name:'login' - type: start - - nodes: - - query: action.name:'dashboard' - type: stop - name: Login Flow - org_id: 12345 - tags: - - team:synthetics - test_suite: - variants: [] - id: inferred-def456 - type: journeys schema: - $ref: "#/components/schemas/DemSearchInferredJourneysResponse" - description: OK - "400": + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: >- + Missing or invalid authentication (dd-api-key + dd-application-key headers, or a valid user session). + "403": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + description: Authenticated caller lacks the product_analytics_experiments_write permission. "404": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: Search inferred DEM journeys - tags: - - DEM - x-permission: - operator: OR - permissions: - - synthetics_read - /api/v2/dem/journeys/inferred/{journey_id}/ignore: - post: - description: Mark an inferred DEM journey as ignored so it no longer appears in the candidate list. - operationId: IgnoreInferredJourney - parameters: - - description: The unique identifier of the inferred journey to ignore. - example: inferred-abc123 - in: path - name: journey_id - required: true - schema: - type: string - responses: - "204": - description: No Content - "404": + description: The supplied protocol_id does not identify a protocol in this organization. + "409": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + description: >- + The requested configuration is incompatible with the experiment (code: unsupported_configuration). + "415": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Request body sent with a media type other than application/json or application/vnd.api+json. + "422": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: The supplied protocol is a draft or archived protocol and cannot be applied to a new experiment. "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Ignore an inferred DEM journey + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - product_analytics_experiments_write + summary: Create experiment tags: - - DEM + - Experiments x-permission: - operator: OR + operator: AND permissions: - - synthetics_write - /api/v2/dem/journeys/search: + - product_analytics_experiments_write + /api/v2/experiments/exposure-sql-models: get: - description: Search for DEM journeys with optional filtering by query, creator, team, and app. - operationId: SearchJourneys + description: >- + List exposure SQL models. Returns a paginated list of the SQL models that experiment exposures are read from for the organization. Models maintained by Datadog are not included: they cannot be modified and cannot be used as an experiment's assignment source. + operationId: ListExposureSQLModels parameters: - - description: A search query string to filter journeys by name. + - description: |- + Optional fields to include. Repeat this parameter to request several fields. `counts` adds + experiment_count, which costs an extra aggregate query. in: query - name: query - required: false + name: include schema: - type: string - - description: The offset for pagination. + description: |- + Optional fields to include. Repeat this parameter to request several fields. `counts` adds + experiment_count, which costs an extra aggregate query. + items: + description: "Optional response field to include." + type: string + type: array + - description: >- + When true, archived models are included in the result. Defaults to false, so archived models are hidden. in: query - name: page[offset] - required: false + name: include_archived schema: - format: int64 - type: integer - - description: The maximum number of results to return. + description: |- + When true, archived models are included in the result. Defaults to false, so archived models are hidden. + type: boolean + - description: >- + Maximum number of results to return. Defaults to 25 when omitted, and is capped at 50 (larger values are clamped to 50). The response includes meta.page (with total) and pagination links. in: query name: page[limit] - required: false schema: + description: |- + Maximum number of results to return. Defaults to 25 when omitted, and is capped at 50 (larger values are + clamped to 50). The response includes meta.page (with total) and pagination links. format: int64 type: integer - - description: Filter journeys by creator handle. + - description: Number of results to skip for pagination. Defaults to 0 when omitted. in: query - name: creator - required: false + name: page[offset] schema: - type: string - - description: Filter journeys by team tag. + description: "Number of results to skip for pagination. Defaults to 0 when omitted." + format: int64 + type: integer + - description: "Find exposure SQL models whose names contain the search text, regardless of case." in: query - name: team - required: false + name: search schema: + description: "Find exposure SQL models whose names contain the search text, regardless of case." type: string - - description: Filter journeys by application ID. + - description: |- + Sort field: name, created_at, or updated_at. Prefix with `-` for descending (for example, `-created_at`). + Defaults to created_at descending. in: query - name: app_id - required: false + name: sort schema: + description: |- + Sort field: name, created_at, or updated_at. Prefix with `-` for descending (for example, + `-created_at`). Defaults to created_at descending. type: string responses: "200": @@ -152987,59 +163590,59 @@ paths: value: data: - attributes: - created_at: "2024-01-15T10:30:00Z" - created_by: - email: jane.doe@example.com - handle: jane.doe - name: Jane Doe - uuid: 00000000-0000-0000-0000-000000000001 - description: Tracks checkout flow. - journey_rum: - rum_steps: - - nodes: - - query: action.name:'checkout' - type: start - - nodes: - - query: action.name:'confirmation' - type: stop - name: Checkout Flow - org_id: 12345 - tags: - - team:synthetics - test_suite: - updated_at: - updated_by: - variants: [] - id: journey-abc123 - type: journeys + created_at: "2024-01-01T12:00:00Z" + experiment_column: experiment_id + name: Exposure events + sql: SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + timestamp_column: exposed_at + updated_at: "2024-01-01T12:00:00Z" + variant_column: variant + id: 550e8400-e29b-41d4-a716-446655440030 + type: exposure-sql-models schema: - $ref: "#/components/schemas/DemJourneysListResponse" + $ref: "#/components/schemas/ExperimentsExposureSQLModelV2DTOArray" description: OK "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "404": + description: >- + Invalid query parameter: bad page[offset]/page[limit], search longer than 1024 bytes, unknown sort field, non-boolean include_archived, or unknown include value. + "401": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + description: >- + Missing or invalid authentication (dd-api-key + dd-application-key headers, or a valid user session). + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Authenticated caller lacks the product_analytics_metrics_read permission. "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Search DEM journeys + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - product_analytics_metrics_read + summary: List exposure SQL models tags: - - DEM + - Experiments x-permission: - operator: OR + operator: AND permissions: - - synthetics_read - /api/v2/dem/journeys/suites/batch: + - product_analytics_metrics_read post: - description: Return DEM journeys associated with multiple given test suite IDs. - operationId: BatchGetJourneysByTestSuiteIDs + description: >- + Create an exposure SQL model. Requires at least one subject type. The warehouse connection is resolved from the organization, which has exactly one. + operationId: CreateExposureSQLModel requestBody: content: application/json: @@ -153048,112 +163651,204 @@ paths: value: data: attributes: - test_suite_ids: - - suite-abc123 - - suite-def456 - type: batch_get_journeys_by_test_suite_ids_request + date_partition_column: + experiment_column: experiment_id + name: Exposure events + sql: SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + timestamp_column: exposed_at + variant_column: variant + type: exposure-sql-models schema: - $ref: "#/components/schemas/DemBatchGetJourneysRequest" + $ref: "#/components/schemas/ExperimentsCreateExposureSQLModelV2Request" required: true responses: - "200": + "201": content: application/json: examples: default: value: data: - - attributes: - created_at: "2024-01-15T10:30:00Z" - created_by: - email: jane.doe@example.com - handle: jane.doe - name: Jane Doe - uuid: 00000000-0000-0000-0000-000000000001 - description: Tracks checkout flow. - journey_rum: - rum_steps: - - nodes: - - query: action.name:'checkout' - type: start - - nodes: - - query: action.name:'confirmation' - type: stop - name: Checkout Flow - org_id: 12345 - tags: - - team:synthetics - test_suite: - updated_at: - updated_by: - variants: [] - id: journey-abc123 - type: journeys + attributes: + created_at: "2024-01-01T12:00:00Z" + experiment_column: experiment_id + name: Exposure events + sql: SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + timestamp_column: exposed_at + updated_at: "2024-01-01T12:00:00Z" + variant_column: variant + id: 550e8400-e29b-41d4-a716-446655440030 + type: exposure-sql-models schema: - $ref: "#/components/schemas/DemJourneysListResponse" - description: OK + $ref: "#/components/schemas/ExperimentsExposureSQLModelV2DTO" + description: Created "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "404": + description: Malformed body, validation failure, or the SQL was rejected by the warehouse validator. + "401": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + description: Missing or invalid authentication. + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Authenticated caller lacks the product_analytics_warehouse_model_write permission. + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: The write collided with an existing record for the organization. + "415": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Request body sent with a media type other than application/json or application/vnd.api+json. "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Batch get DEM journeys by test suite IDs + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - product_analytics_warehouse_model_write + summary: Create exposure SQL model tags: - - DEM + - Experiments x-permission: - operator: OR + operator: AND permissions: - - synthetics_read - /api/v2/dem/journeys/variants/{variant_id}: - delete: - description: Delete a variant from a DEM journey. - operationId: DeleteJourneyVariant + - product_analytics_warehouse_model_write + /api/v2/experiments/exposure-sql-models/{exposure_sql_model_id}: + get: + description: >- + Get an exposure SQL model. Returns a single model by its ID for the organization, including its subject types and properties. + operationId: GetExposureSQLModel parameters: - - description: The unique identifier of the variant to delete. - example: "variant-001" + - description: "The UUID of the exposure SQL model." in: path - name: variant_id + name: exposure_sql_model_id required: true schema: + description: "The UUID of the exposure SQL model." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid type: string + - description: |- + Optional fields to include. Repeat this parameter to request several fields. `counts` adds + experiment_count. + in: query + name: include + schema: + description: |- + Optional fields to include. Repeat this parameter to request several fields. `counts` adds + experiment_count. + items: + description: "Optional response field to include." + type: string + type: array responses: - "204": - description: No Content + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + created_at: "2024-01-01T12:00:00Z" + experiment_column: experiment_id + name: Exposure events + sql: SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + timestamp_column: exposed_at + updated_at: "2024-01-01T12:00:00Z" + variant_column: variant + id: 550e8400-e29b-41d4-a716-446655440030 + type: exposure-sql-models + schema: + $ref: "#/components/schemas/ExperimentsExposureSQLModelV2DTO" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Malformed exposure SQL model ID (not a valid UUID), or unknown include value. + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Missing or invalid authentication. + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Authenticated caller lacks the product_analytics_metrics_read permission. "404": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + description: No exposure SQL model with this ID exists for the organization. "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Delete a DEM journey variant + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - product_analytics_metrics_read + summary: Get exposure SQL model tags: - - DEM + - Experiments x-permission: - operator: OR + operator: AND permissions: - - synthetics_write + - product_analytics_metrics_read put: - description: Update an existing variant of a DEM journey. - operationId: UpdateJourneyVariant + description: >- + Replace an exposure SQL model. This is a full replacement and is destructive: any subject type or property not present in the body is deleted, and properties are matched on name, column_name and column_type together, so changing one of those replaces the property rather than editing it. Send the complete set you want to keep. Anything removed is listed under meta.removed_subject_type_ids and meta.removed_property_names in the response. The warehouse connection is not settable and is left as stored. + operationId: UpdateExposureSQLModel parameters: - - description: The unique identifier of the variant to update. - example: "variant-001" + - description: "The UUID of the exposure SQL model." in: path - name: variant_id + name: exposure_sql_model_id required: true schema: + description: "The UUID of the exposure SQL model." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid type: string + - description: |- + Optional fields to include. Repeat this parameter to request several fields. `counts` adds + experiment_count to the updated model. + in: query + name: include + schema: + description: |- + Optional fields to include. Repeat this parameter to request several fields. `counts` adds + experiment_count to the updated model. + items: + description: "Optional response field to include." + type: string + type: array requestBody: content: application/json: @@ -153162,18 +163857,18 @@ paths: value: data: attributes: - filter: device.type:mobile - name: Mobile checkout - rum_steps: - - nodes: - - query: action.name:'checkout' - type: start - - nodes: - - query: action.name:'confirmation' - type: stop - type: variants + date_partition_column: + experiment_column: experiment_id + name: Exposure events + sql: SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + timestamp_column: exposed_at + variant_column: variant + type: exposure-sql-models schema: - $ref: "#/components/schemas/DemVariantRequest" + $ref: "#/components/schemas/ExperimentsCreateExposureSQLModelV2Request" required: true responses: "200": @@ -153184,81 +163879,235 @@ paths: value: data: attributes: - filter: device.type:mobile - name: Mobile checkout - rum_steps: - - nodes: - - query: action.name:'checkout' - type: start - - nodes: - - query: action.name:'confirmation' - type: stop - id: variant-001 - type: variants + created_at: "2024-01-01T12:00:00Z" + experiment_column: experiment_id + name: Exposure events + sql: SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + timestamp_column: exposed_at + updated_at: "2024-01-01T12:00:00Z" + variant_column: variant + id: 550e8400-e29b-41d4-a716-446655440030 + type: exposure-sql-models schema: - $ref: "#/components/schemas/DemVariantResponse" + $ref: "#/components/schemas/ExperimentsUpdateExposureSQLModelV2Response" description: OK "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + description: >- + Malformed exposure SQL model ID, malformed body, validation failure, or the SQL was rejected by the warehouse validator. + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Missing or invalid authentication. + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Authenticated caller lacks the product_analytics_warehouse_model_write permission. "404": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + description: No exposure SQL model with this ID exists for the organization. + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: The write collided with an existing record for the organization. + "415": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Request body sent with a media type other than application/json or application/vnd.api+json. "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Update a DEM journey variant + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - product_analytics_warehouse_model_write + summary: Update exposure SQL model tags: - - DEM + - Experiments x-permission: - operator: OR + operator: AND permissions: - - synthetics_write - /api/v2/dem/journeys/{journey_id}: - delete: - description: Delete a DEM journey by its ID. - operationId: DeleteJourney + - product_analytics_warehouse_model_write + /api/v2/experiments/exposure-sql-models/{exposure_sql_model_id}/archive: + post: + description: >- + Archive an exposure SQL model. Archived models are hidden from the default list and are no longer refreshed for new feature flags. Experiments already reading from the model keep working. Archiving is how a model that is in use by an experiment, and therefore cannot be deleted, is retired. + operationId: ArchiveExposureSQLModel parameters: - - description: The unique identifier of the DEM journey to delete. - example: journey-abc123 + - description: "The UUID of the exposure SQL model." in: path - name: journey_id + name: exposure_sql_model_id required: true schema: + description: "The UUID of the exposure SQL model." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid type: string responses: "204": - description: No Content + description: >- + The exposure SQL model was archived. Archiving an already-archived model succeeds and leaves the original archive time in place. + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Malformed exposure SQL model ID (not a valid UUID). + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Missing or invalid authentication. + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Authenticated caller lacks the product_analytics_warehouse_model_write permission. "404": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + description: No exposure SQL model with this ID exists for the organization. "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Delete a DEM journey + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - product_analytics_warehouse_model_write + summary: Archive exposure SQL model tags: - - DEM + - Experiments x-permission: - operator: OR + operator: AND permissions: - - synthetics_write - get: - description: Retrieve a single DEM journey by its ID. - operationId: GetJourney + - product_analytics_warehouse_model_write + /api/v2/experiments/exposure-sql-models/{exposure_sql_model_id}/unarchive: + post: + description: Unarchive an exposure SQL model. Restores an archived model to the default list. + operationId: UnarchiveExposureSQLModel parameters: - - description: The unique identifier of the DEM journey. - example: journey-abc123 + - description: "The UUID of the exposure SQL model." in: path - name: journey_id + name: exposure_sql_model_id required: true schema: + description: "The UUID of the exposure SQL model." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid + type: string + responses: + "204": + description: >- + The exposure SQL model was unarchived. Unarchiving a model that is not archived succeeds and changes nothing. + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Malformed exposure SQL model ID (not a valid UUID). + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Missing or invalid authentication. + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Authenticated caller lacks the product_analytics_warehouse_model_write permission. + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: No exposure SQL model with this ID exists for the organization. + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - product_analytics_warehouse_model_write + summary: Unarchive exposure SQL model + tags: + - Experiments + x-permission: + operator: AND + permissions: + - product_analytics_warehouse_model_write + /api/v2/experiments/metric-collections: + get: + description: >- + List metric collections for the organization. Collections are reusable ordered metric sets; attaching one to an experiment creates an independent snapshot. + operationId: ListMetricCollections + parameters: + - description: |- + Optional fields to include. Repeat this parameter to request several fields. `counts` adds metric_count. + in: query + name: include + schema: + description: |- + Optional fields to include. Repeat this parameter to request several fields. `counts` adds metric_count. + items: + description: "Optional response field to include." + type: string + type: array + - description: "Number of results per page. The default is 25. Values above 50 are reduced to 50." + in: query + name: page[limit] + schema: + description: "Number of results per page. The default is 25. Values above 50 are reduced to 50." + format: int64 + type: integer + - description: "Number of results to skip before returning this page." + in: query + name: page[offset] + schema: + description: "Number of results to skip before returning this page." + format: int64 + type: integer + - description: |- + Find collections whose names contain the search text, regardless of case. Leading and trailing spaces are + ignored. Blank values apply no filter. The maximum length is 1024 UTF-8 bytes. + in: query + name: search + schema: + description: |- + Find collections whose names contain the search text, regardless of case. Leading and trailing spaces + are ignored. Blank values apply no filter. The maximum length is 1024 UTF-8 bytes. + type: string + - description: |- + Sort by one field: `name`, `created_at`, or `updated_at`. Prefix with `-` for descending order. The + default is `-created_at`. + in: query + name: sort + schema: + description: |- + Sort by one field: `name`, `created_at`, or `updated_at`. Prefix with `-` for descending order. The + default is `-created_at`. type: string responses: "200": @@ -153267,62 +164116,45 @@ paths: examples: default: value: - data: - attributes: - created_at: "2024-01-15T10:30:00Z" - created_by: - email: jane.doe@example.com - handle: jane.doe - name: Jane Doe - uuid: 00000000-0000-0000-0000-000000000001 - description: Tracks checkout flow. - journey_rum: - rum_steps: - - nodes: - - query: action.name:'checkout' - type: start - - nodes: - - query: action.name:'confirmation' - type: stop - name: Checkout Flow - org_id: 12345 - tags: - - team:synthetics - test_suite: - updated_at: - updated_by: - variants: [] - id: journey-abc123 - type: journeys + data: [] schema: - $ref: "#/components/schemas/DemJourneyResponse" + $ref: "#/components/schemas/ExperimentsMetricCollectionV2DTOArray" description: OK - "404": + "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + description: Bad Request + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get a DEM journey + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - product_analytics_metrics_read + summary: List metric collections tags: - - DEM + - Experiments x-permission: - operator: OR + operator: AND permissions: - - synthetics_read - put: - description: Update an existing DEM journey by its ID. - operationId: UpdateJourney - parameters: - - description: The unique identifier of the DEM journey to update. - example: journey-abc123 - in: path - name: journey_id - required: true - schema: - type: string + - product_analytics_metrics_read + post: + description: Create metric collection. + operationId: CreateMetricCollection requestBody: content: application/json: @@ -153331,115 +164163,112 @@ paths: value: data: attributes: - description: Tracks the user checkout flow from cart to confirmation. - journey_rum: - rum_steps: - - nodes: - - query: action.name:'checkout' - type: start - - nodes: - - query: action.name:'confirmation' - type: stop - name: Checkout Flow - tags: - - team:synthetics - type: journeys + name: Activation + type: metric-collections schema: - $ref: "#/components/schemas/DemJourneyCreateRequest" + $ref: "#/components/schemas/ExperimentsCreateMetricCollectionV2Request" required: true responses: - "200": + "201": + content: + application/json: + examples: + default: + value: + data: + attributes: + created_at: "2026-08-01T12:00:00Z" + description: Metrics reviewed for every checkout experiment. + is_guardrail: false + metrics: + - metric_id: 550e8400-e29b-41d4-a716-446655440020 + metric_name: Checkout conversion + name: Checkout metrics + updated_at: "2026-08-02T09:30:00Z" + id: 550e8400-e29b-41d4-a716-446655440040 + type: metric-collections + schema: + $ref: "#/components/schemas/ExperimentsMetricCollectionV2DTO" + description: Created + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "401": content: application/json: - examples: - default: - value: - data: - attributes: - created_at: "2024-01-15T10:30:00Z" - created_by: - email: jane.doe@example.com - handle: jane.doe - name: Jane Doe - uuid: 00000000-0000-0000-0000-000000000001 - description: Tracks checkout flow. - journey_rum: - rum_steps: - - nodes: - - query: action.name:'checkout' - type: start - - nodes: - - query: action.name:'confirmation' - type: stop - name: Checkout Flow - org_id: 12345 - tags: - - team:synthetics - test_suite: - updated_at: "2024-01-16T08:00:00Z" - updated_by: - email: jane.doe@example.com - handle: jane.doe - name: Jane Doe - uuid: 00000000-0000-0000-0000-000000000001 - variants: [] - id: journey-abc123 - type: journeys schema: - $ref: "#/components/schemas/DemJourneyResponse" - description: OK - "404": + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized + "403": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found + description: Forbidden + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Conflict + "415": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Request body sent with a media type other than application/json or application/vnd.api+json. "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Update a DEM journey + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - product_analytics_metrics_write + summary: Create metric collection tags: - - DEM + - Experiments x-permission: - operator: OR + operator: AND permissions: - - synthetics_write - /api/v2/dem/journeys/{journey_id}/recommended-tests: - get: - description: >- - Retrieve AI-recommended synthetic tests for a DEM journey. Returns an empty list when no recommendation is available. - operationId: GetJourneyRecommendedTests + - product_analytics_metrics_write + /api/v2/experiments/metric-collections/{metric_collection_id}: + delete: + description: Delete metric collection. + operationId: DeleteMetricCollection parameters: - - description: The unique identifier of the journey. - example: "journey-abc123" + - description: "The UUID of the metric collection." in: path - name: journey_id + name: metric_collection_id required: true schema: + description: "The UUID of the metric collection." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid type: string responses: - "200": + "204": + description: No Content + "400": content: application/json: - examples: - default: - value: - data: - - attributes: - config: - name: Checkout journey - type: browser - created_at: "2026-08-31T16:00:00Z" - name: Checkout journey - result_id: result-abc123 - session_id: session-abc123 - source: gbt - type: browser - variant_id: variant-001 - id: journey-abc123 - type: recommended_tests schema: - $ref: "#/components/schemas/DemRecommendedTestsResponse" - description: OK + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "404": content: application/json: @@ -153448,46 +164277,31 @@ paths: description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get recommended tests for a DEM journey + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - product_analytics_metrics_write + summary: Delete metric collection tags: - - DEM + - Experiments x-permission: - operator: OR + operator: AND permissions: - - synthetics_read - /api/v2/dem/journeys/{journey_id}/variants: - post: - description: Create a variant for a DEM journey. - operationId: CreateJourneyVariant + - product_analytics_metrics_write + get: + description: Get metric collection. + operationId: GetMetricCollection parameters: - - description: The unique identifier of the journey that owns the variant. - example: "journey-abc123" + - description: "The UUID of the metric collection." in: path - name: journey_id + name: metric_collection_id required: true schema: + description: "The UUID of the metric collection." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid type: string - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - filter: device.type:mobile - name: Mobile checkout - rum_steps: - - nodes: - - query: action.name:'checkout' - type: start - - nodes: - - query: action.name:'confirmation' - type: stop - type: variants - schema: - $ref: "#/components/schemas/DemVariantRequest" - required: true responses: "200": content: @@ -153497,19 +164311,18 @@ paths: value: data: attributes: - filter: device.type:mobile - name: Mobile checkout - rum_steps: - - nodes: - - query: action.name:'checkout' - type: start - - nodes: - - query: action.name:'confirmation' - type: stop - id: variant-001 - type: variants + created_at: "2026-08-01T12:00:00Z" + description: Metrics reviewed for every checkout experiment. + is_guardrail: false + metrics: + - metric_id: 550e8400-e29b-41d4-a716-446655440020 + metric_name: Checkout conversion + name: Checkout metrics + updated_at: "2026-08-02T09:30:00Z" + id: 550e8400-e29b-41d4-a716-446655440040 + type: metric-collections schema: - $ref: "#/components/schemas/DemVariantResponse" + $ref: "#/components/schemas/ExperimentsMetricCollectionV2DTO" description: OK "400": content: @@ -153517,6 +164330,18 @@ paths: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Bad Request + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "404": content: application/json: @@ -153525,24 +164350,30 @@ paths: description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Create a DEM journey variant + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - product_analytics_metrics_read + summary: Get metric collection tags: - - DEM + - Experiments x-permission: - operator: OR + operator: AND permissions: - - synthetics_write - /api/v2/dem/journeys/{public_journey_id}/suite: - post: - description: Trigger test suite creation for a given DEM journey. - operationId: CreateTestSuiteForJourney + - product_analytics_metrics_read + patch: + description: Update metric collection. + operationId: UpdateMetricCollection parameters: - - description: The public identifier of the DEM journey for which to create a test suite. - example: journey-abc123 + - description: "The UUID of the metric collection." in: path - name: public_journey_id + name: metric_collection_id required: true schema: + description: "The UUID of the metric collection." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid type: string requestBody: content: @@ -153552,14 +164383,13 @@ paths: value: data: attributes: - include_tests_from_journey_coverage: true - test_suite_name: Checkout Flow Suite - type: create_test_suite_for_journey_request + metrics: [] + type: metric-collections schema: - $ref: "#/components/schemas/DemCreateJourneyTestSuiteRequest" + $ref: "#/components/schemas/ExperimentsPatchMetricCollectionV2Request" required: true responses: - "201": + "200": content: application/json: examples: @@ -153567,51 +164397,117 @@ paths: value: data: attributes: - created_at: "2024-01-15T10:30:00Z" - name: Checkout Flow Suite - id: suite-abc123 - type: journey_test_suite + created_at: "2026-08-01T12:00:00Z" + description: Metrics reviewed for every checkout experiment. + is_guardrail: false + metrics: + - metric_id: 550e8400-e29b-41d4-a716-446655440020 + metric_name: Checkout conversion + name: Checkout metrics + updated_at: "2026-08-02T09:30:00Z" + id: 550e8400-e29b-41d4-a716-446655440040 + type: metric-collections schema: - $ref: "#/components/schemas/DemJourneyTestSuiteResponse" - description: Created + $ref: "#/components/schemas/ExperimentsMetricCollectionV2DTO" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "404": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Not Found + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Conflict + "415": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Request body sent with a media type other than application/json or application/vnd.api+json. "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Create a test suite for a DEM journey + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - product_analytics_metrics_write + summary: Update metric collection tags: - - DEM + - Experiments x-permission: - operator: OR + operator: AND permissions: - - synthetics_write - /api/v2/deployment_gates: + - product_analytics_metrics_write + /api/v2/experiments/metric-sql-models: get: - description: |- - Returns a paginated list of all deployment gates for the organization. - Use `page[cursor]` and `page[size]` query parameters to paginate through results. - operationId: ListDeploymentGates + description: >- + List metric SQL models. Returns a paginated list of the SQL models that metrics are defined on for the organization. + operationId: ListMetricSQLModels parameters: - - description: Cursor for pagination. Use the `meta.page.next_cursor` value from the previous response. + - description: |- + Optional fields to include. Repeat this parameter to request several fields. `counts` adds metric_count + and experiment_count, which cost an extra aggregate query. in: query - name: page[cursor] - required: false + name: include schema: - type: string - - description: Number of results per page. Defaults to 50. Must be between 1 and 1000. + description: |- + Optional fields to include. Repeat this parameter to request several fields. `counts` adds metric_count + and experiment_count, which cost an extra aggregate query. + items: + description: "Optional response field to include." + type: string + type: array + - description: >- + Maximum number of results to return. Defaults to 25 when omitted, and is capped at 50 (larger values are clamped to 50). The response includes meta.page (with total) and pagination links. in: query - name: page[size] - required: false + name: page[limit] schema: - default: 50 + description: |- + Maximum number of results to return. Defaults to 25 when omitted, and is capped at 50 (larger values are + clamped to 50). The response includes meta.page (with total) and pagination links. + format: int64 + type: integer + - description: Number of results to skip for pagination. Defaults to 0 when omitted. + in: query + name: page[offset] + schema: + description: "Number of results to skip for pagination. Defaults to 0 when omitted." format: int64 - maximum: 1000 - minimum: 1 type: integer + - description: |- + Sort field: name, created_at, updated_at, metric_count, or experiment_count. A single field only; a + comma-separated list is rejected. Prefix with `-` for descending (for example, `-created_at`). Defaults to + created_at descending. + in: query + name: sort + schema: + description: |- + Sort field: name, created_at, updated_at, metric_count, or experiment_count. A single field only; a + comma-separated list is rejected. Prefix with `-` for descending (for example, `-created_at`). Defaults + to created_at descending. + type: string responses: "200": content: @@ -153621,52 +164517,65 @@ paths: value: data: - attributes: - created_at: "2024-01-01T00:00:00+00:00" - created_by: - id: 00000000-0000-0000-0000-000000000004 - dry_run: false - env: production - identifier: pre - service: my-service - id: 00000000-0000-0000-0000-000000000003 - type: deployment_gate - meta: - page: - size: 50 + created_at: "2024-01-01T12:00:00Z" + event_count_measure_id: 550e8400-e29b-41d4-a716-446655440024 + is_certified: false + measures: + - column_name: revenue + column_type: FLOAT + id: 550e8400-e29b-41d4-a716-446655440021 + name: revenue + name: Order facts + sql: SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + unique_subject_count_measure_id: 550e8400-e29b-41d4-a716-446655440022 + timestamp_column: created_at + updated_at: "2024-01-01T12:00:00Z" + id: 550e8400-e29b-41d4-a716-446655440020 + type: metric-sql-models schema: - $ref: "#/components/schemas/DeploymentGatesListResponse" + $ref: "#/components/schemas/ExperimentsMetricSQLModelV2DTOArray" description: OK "400": - $ref: "#/components/responses/HTTPCDGatesBadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: >- + Invalid query parameter: bad page[offset]/page[limit], unknown sort field, or unknown include value. "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: >- + Missing or invalid authentication (dd-api-key + dd-application-key headers, or a valid user session). "403": - $ref: "#/components/responses/ForbiddenResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - "500": content: application/json: schema: - $ref: "#/components/schemas/HTTPCIAppErrors" - description: Internal Server Error + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Authenticated caller lacks the product_analytics_metrics_read permission. + "429": + $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] - summary: Get all deployment gates - tags: ["Deployment Gates"] + - AuthZ: + - product_analytics_metrics_read + summary: List metric SQL models + tags: + - Experiments x-permission: - operator: OR + operator: AND permissions: - - deployment_gates_read - x-unstable: |- - **Note**: This endpoint is in preview and may be subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + - product_analytics_metrics_read post: - description: |- - Endpoint to create a deployment gate. - operationId: CreateDeploymentGate + description: >- + Create a metric SQL model. Requires at least one subject type, whose subject_type_id must already exist for the organization (list them with GET /api/v2/experiments/subject-types). The model is created against the organization's warehouse connection, which is resolved server-side. Only customer-defined measures belong in measures. The response provides unique_subject_count_measure_id for each subject type and event_count_measure_id for use in metric aggregations. column_type is required for every measure and property. Certification is read-only and cannot be changed through this endpoint. + operationId: CreateMetricSQLModel requestBody: content: application/json: @@ -153675,16 +164584,25 @@ paths: value: data: attributes: - dry_run: false - env: production - identifier: pre - service: my-service - type: deployment_gate + date_partition_column: + description: + measures: + - column_name: revenue + column_type: FLOAT + description: + name: + name: Order facts + sql: SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + timestamp_column: created_at + type: metric-sql-models schema: - $ref: "#/components/schemas/CreateDeploymentGateParams" + $ref: "#/components/schemas/ExperimentsCreateMetricSQLModelV2Request" required: true responses: - "200": + "201": content: application/json: examples: @@ -153692,58 +164610,93 @@ paths: value: data: attributes: - created_at: "2024-01-01T00:00:00+00:00" - created_by: - handle: example-handle - id: 00000000-0000-0000-0000-000000000002 - name: Example Name - dry_run: false - env: production - identifier: pre - service: my-service - id: 00000000-0000-0000-0000-000000000001 - type: deployment_gate + created_at: "2024-01-01T12:00:00Z" + event_count_measure_id: 550e8400-e29b-41d4-a716-446655440024 + is_certified: false + measures: + - column_name: revenue + column_type: FLOAT + id: 550e8400-e29b-41d4-a716-446655440021 + name: revenue + name: Order facts + sql: SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + unique_subject_count_measure_id: 550e8400-e29b-41d4-a716-446655440022 + timestamp_column: created_at + updated_at: "2024-01-01T12:00:00Z" + id: 550e8400-e29b-41d4-a716-446655440020 + type: metric-sql-models schema: - $ref: "#/components/schemas/DeploymentGateResponse" - description: OK + $ref: "#/components/schemas/ExperimentsMetricSQLModelV2DTO" + description: Created "400": - $ref: "#/components/responses/HTTPCDGatesBadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: >- + Malformed body, validation failure, the SQL was rejected by the warehouse validator, or the organization has no warehouse connection. "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Missing or invalid authentication. "403": - $ref: "#/components/responses/ForbiddenResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - "500": content: application/json: schema: - $ref: "#/components/schemas/HTTPCIAppErrors" - description: Internal Server Error + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Authenticated caller lacks the product_analytics_warehouse_model_write permission. + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Another metric SQL model in this organization already uses one of these values. + "429": + $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] - summary: Create deployment gate - tags: ["Deployment Gates"] + - AuthZ: + - product_analytics_warehouse_model_write + summary: Create metric SQL model + tags: + - Experiments x-permission: - operator: OR + operator: AND permissions: - - deployment_gates_write - x-unstable: |- - **Note**: This endpoint is in preview and may be subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/deployment_gates/{gate_id}/rules: + - product_analytics_warehouse_model_write + /api/v2/experiments/metric-sql-models/{metric_sql_model_id}: get: - description: |- - Endpoint to get rules for a deployment gate. - operationId: GetDeploymentGateRules + description: >- + Get a metric SQL model. Returns a single model by its ID for the organization, including its subject types, measures and properties. + operationId: GetMetricSQLModel parameters: - - description: The ID of the deployment gate. + - description: |- + Optional fields to include. Repeat this parameter to request several fields. `counts` adds metric_count + and experiment_count. + in: query + name: include + schema: + description: |- + Optional fields to include. Repeat this parameter to request several fields. `counts` adds metric_count + and experiment_count. + items: + description: "Optional response field to include." + type: string + type: array + - description: "The UUID of the metric SQL model." in: path - name: gate_id + name: metric_sql_model_id required: true schema: + description: "The UUID of the metric SQL model." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid type: string responses: "200": @@ -153754,57 +164707,78 @@ paths: value: data: attributes: - rules: - - created_at: "2024-01-01T00:00:00+00:00" - created_by: - id: 00000000-0000-0000-0000-000000000012 - dry_run: false - gate_id: abc-123 - name: My deployment rule - options: - type: faulty_deployment_detection - id: 00000000-0000-0000-0000-000000000011 - type: list_deployment_rules + created_at: "2024-01-01T12:00:00Z" + event_count_measure_id: 550e8400-e29b-41d4-a716-446655440024 + is_certified: false + measures: + - column_name: revenue + column_type: FLOAT + id: 550e8400-e29b-41d4-a716-446655440021 + name: revenue + name: Order facts + sql: SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + unique_subject_count_measure_id: 550e8400-e29b-41d4-a716-446655440022 + timestamp_column: created_at + updated_at: "2024-01-01T12:00:00Z" + id: 550e8400-e29b-41d4-a716-446655440020 + type: metric-sql-models schema: - $ref: "#/components/schemas/DeploymentGateRulesResponse" + $ref: "#/components/schemas/ExperimentsMetricSQLModelV2DTO" description: OK "400": - $ref: "#/components/responses/HTTPCDGatesBadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Malformed metric SQL model ID (not a valid UUID), or unknown include value. "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Missing or invalid authentication. "403": - $ref: "#/components/responses/ForbiddenResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - "500": content: application/json: schema: - $ref: "#/components/schemas/HTTPCIAppErrors" - description: Internal Server Error + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Authenticated caller lacks the product_analytics_metrics_read permission. + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: No metric SQL model with this ID exists for the organization. + "429": + $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] - summary: Get rules for a deployment gate - tags: ["Deployment Gates"] + - AuthZ: + - product_analytics_metrics_read + summary: Get metric SQL model + tags: + - Experiments x-permission: - operator: OR + operator: AND permissions: - - deployment_gates_read - x-unstable: |- - **Note**: This endpoint is in preview and may be subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - post: - description: |- - Endpoint to create a deployment rule. A gate for the rule must already exist. - operationId: CreateDeploymentRule + - product_analytics_metrics_read + put: + description: >- + Replace a metric SQL model. This is a destructive full replace: subject types, customer-defined measures, and properties absent from the body are deleted, so send the complete set. Properties are matched by name; changing a property's column, type, or description preserves its ID. column_type is required for every measure and property. Removing a measure or property that an active metric references returns 409 Conflict. Server-generated IDs returned by GET are read-only and can be left in a replayed body. The response reports removals in meta.deleted_subject_types, meta.deleted_measures, and meta.deleted_properties. Certification is read-only. Certified models cannot be replaced through this endpoint. + operationId: UpdateMetricSQLModel parameters: - - description: The ID of the deployment gate. + - description: "The UUID of the metric SQL model." in: path - name: gate_id + name: metric_sql_model_id required: true schema: + description: "The UUID of the metric SQL model." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid type: string requestBody: content: @@ -153814,15 +164788,22 @@ paths: value: data: attributes: - dry_run: false - name: My deployment rule - options: - - resource1 - - resource2 - type: faulty_deployment_detection - type: deployment_rule + date_partition_column: + description: + measures: + - column_name: revenue + column_type: FLOAT + description: + name: + name: Order facts + sql: SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + timestamp_column: created_at + type: metric-sql-models schema: - $ref: "#/components/schemas/CreateDeploymentRuleParams" + $ref: "#/components/schemas/ExperimentsCreateMetricSQLModelV2Request" required: true responses: "200": @@ -153833,114 +164814,123 @@ paths: value: data: attributes: - created_at: "2024-01-01T00:00:00+00:00" - created_by: - handle: test-user - id: 00000000-0000-0000-0000-000000000010 - name: Test User - dry_run: false - gate_id: abc-123 - name: My deployment rule - options: - type: faulty_deployment_detection - id: 00000000-0000-0000-0000-000000000009 - type: deployment_rule + created_at: "2024-01-01T12:00:00Z" + event_count_measure_id: 550e8400-e29b-41d4-a716-446655440024 + is_certified: false + measures: + - column_name: revenue + column_type: FLOAT + id: 550e8400-e29b-41d4-a716-446655440021 + name: revenue + name: Order facts + sql: SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders + subject_types: + - column_name: user_id + subject_type_id: 550e8400-e29b-41d4-a716-446655440010 + unique_subject_count_measure_id: 550e8400-e29b-41d4-a716-446655440022 + timestamp_column: created_at + updated_at: "2024-01-01T12:00:00Z" + id: 550e8400-e29b-41d4-a716-446655440020 + type: metric-sql-models schema: - $ref: "#/components/schemas/DeploymentRuleResponse" + $ref: "#/components/schemas/ExperimentsUpdateMetricSQLModelV2Response" description: OK "400": - $ref: "#/components/responses/HTTPCDGatesBadRequestResponse" - "401": - $ref: "#/components/responses/UnauthorizedResponse" - "403": - $ref: "#/components/responses/ForbiddenResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - "500": content: application/json: schema: - $ref: "#/components/schemas/HTTPCIAppErrors" - description: Internal Server Error - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: [] - summary: Create deployment rule - tags: ["Deployment Gates"] - x-permission: - operator: OR - permissions: - - deployment_gates_write - x-unstable: |- - **Note**: This endpoint is in preview and may be subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/deployment_gates/{gate_id}/rules/{id}: - delete: - description: |- - Endpoint to delete a deployment rule. - operationId: DeleteDeploymentRule - parameters: - - description: The ID of the deployment gate. - in: path - name: gate_id - required: true - schema: - type: string - - description: The ID of the deployment rule. - in: path - name: id - required: true - schema: - type: string - responses: - "204": - description: No Content - "400": - $ref: "#/components/responses/HTTPCDGatesBadRequestResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Malformed ID or body, validation failure, or the SQL was rejected by the warehouse validator. "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Missing or invalid authentication. "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Authenticated caller lacks the product_analytics_warehouse_model_write permission. "404": - $ref: "#/components/responses/HTTPCDGatesNotFoundResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - "500": content: application/json: schema: - $ref: "#/components/schemas/HTTPCIAppErrors" - description: Internal Server Error + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: No metric SQL model with this ID exists for the organization. + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: >- + The model is certified or managed by metric sync, or the update would remove a measure or property still used by an active metric. + "429": + $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] - summary: Delete deployment rule - tags: ["Deployment Gates"] + - AuthZ: + - product_analytics_warehouse_model_write + summary: Update metric SQL model + tags: + - Experiments x-permission: - operator: OR + operator: AND permissions: - - deployment_gates_write - x-unstable: |- - **Note**: This endpoint is in preview and may be subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + - product_analytics_warehouse_model_write + /api/v2/experiments/metrics: get: - description: |- - Endpoint to get a deployment rule. - operationId: GetDeploymentRule + description: List metrics. Returns a paginated list of the experiment metrics defined for the organization. + operationId: ListMetrics parameters: - - description: The ID of the deployment gate. - in: path - name: gate_id - required: true + - description: |- + Optional fields to include. Repeat this parameter to request several fields. `counts` adds + experiment_count on each metric, which costs an extra aggregate query. + in: query + name: include + schema: + description: |- + Optional fields to include. Repeat this parameter to request several fields. `counts` adds + experiment_count on each metric, which costs an extra aggregate query. + items: + description: "Optional response field to include." + type: string + type: array + - description: >- + Maximum number of results to return. Defaults to 25 when omitted, and is capped at 50 (larger values are clamped to 50). The response includes meta.page (with total) and pagination links. + in: query + name: page[limit] + schema: + description: |- + Maximum number of results to return. Defaults to 25 when omitted, and is capped at 50 (larger values are + clamped to 50). The response includes meta.page (with total) and pagination links. + format: int64 + type: integer + - description: Number of results to skip for pagination. Defaults to 0 when omitted. + in: query + name: page[offset] + schema: + description: "Number of results to skip for pagination. Defaults to 0 when omitted." + format: int64 + type: integer + - description: "Find metrics whose names contain the search text, regardless of case." + in: query + name: search schema: + description: "Find metrics whose names contain the search text, regardless of case." type: string - - description: The ID of the deployment rule. - in: path - name: id - required: true + - description: |- + Sort field: name, created_at, or updated_at. Prefix with `-` for descending (for example, `-created_at`). + A single field only; a comma-separated list is rejected. Defaults to created_at descending. + in: query + name: sort schema: + description: |- + Sort field: name, created_at, or updated_at. Prefix with `-` for descending (for example, + `-created_at`). A single field only; a comma-separated list is rejected. Defaults to created_at + descending. type: string responses: "200": @@ -153950,66 +164940,65 @@ paths: default: value: data: - attributes: - created_at: "2024-01-01T00:00:00+00:00" - created_by: - id: 00000000-0000-0000-0000-000000000014 - dry_run: false - gate_id: abc-123 - name: My deployment rule - options: - type: faulty_deployment_detection - id: 00000000-0000-0000-0000-000000000013 - type: deployment_rule + - attributes: + created_at: "2024-01-01T12:00:00Z" + data_source_type: CUSTOMER_WAREHOUSE + description: Share of sessions that reach the order confirmation page + desired_change: METRIC_INCREASES + format_as_percent: true + metric_type: SIMPLE + name: Checkout conversion + numerator_aggregation: + operation: sum + pipeline_column_suffix: agg001 + timeframe_start_value: 0 + warehouse_metric_measure: + id: 550e8400-e29b-41d4-a716-446655440021 + pipeline_column_suffix: rev001 + reference_url: "" + updated_at: "2024-01-01T12:00:00Z" + id: 550e8400-e29b-41d4-a716-446655440002 + type: metrics schema: - $ref: "#/components/schemas/DeploymentRuleResponse" + $ref: "#/components/schemas/ExperimentsMetricV2DTOArray" description: OK "400": - $ref: "#/components/responses/HTTPCDGatesBadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: "Invalid query parameter: bad page[offset]/page[limit], or unknown sort field." "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: >- + Missing or invalid authentication (dd-api-key + dd-application-key headers, or a valid user session). "403": - $ref: "#/components/responses/ForbiddenResponse" - "404": - $ref: "#/components/responses/HTTPCDRulesNotFoundResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - "500": content: application/json: schema: - $ref: "#/components/schemas/HTTPCIAppErrors" - description: Internal Server Error + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Authenticated caller lacks the product_analytics_metrics_read permission. + "429": + $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] - summary: Get deployment rule - tags: ["Deployment Gates"] + - AuthZ: + - product_analytics_metrics_read + summary: List metrics + tags: + - Experiments x-permission: - operator: OR + operator: AND permissions: - - deployment_gates_read - x-unstable: |- - **Note**: This endpoint is in preview and may be subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - put: - description: |- - Endpoint to update a deployment rule. - operationId: UpdateDeploymentRule - parameters: - - description: The ID of the deployment gate. - in: path - name: gate_id - required: true - schema: - type: string - - description: The ID of the deployment rule. - in: path - name: id - required: true - schema: - type: string + - product_analytics_metrics_read + post: + description: >- + Create a metric. The metric's type is derived from the aggregation shape: a numerator alone is SIMPLE, a numerator with a denominator is RATIO, and a percentile aggregation is PERCENTILE. Warehouse aggregations reference measures by UUID. Property filters use property_id or measure_id UUIDs returned by the same metric SQL model; every reference must belong to the aggregation's data source. The is_certified attribute is rejected. Certification cannot be changed through this endpoint. + operationId: CreateMetric requestBody: content: application/json: @@ -154018,17 +165007,28 @@ paths: value: data: attributes: - dry_run: false - name: Updated deployment rule - options: - - resource1 - - resource2 - type: deployment_rule + data_source_type: CUSTOMER_WAREHOUSE + description: + desired_change: METRIC_INCREASES + format_as_percent: true + guardrail_cutoff_threshold: + name: Checkout conversion + numerator_aggregation: + operation: sum + property_filters: + - - operation: IS + property_id: 550e8400-e29b-41d4-a716-446655440023 + values: + - US + timeframe_start_value: 0 + warehouse_metric_measure: + id: 550e8400-e29b-41d4-a716-446655440021 + type: metrics schema: - $ref: "#/components/schemas/UpdateDeploymentRuleParams" + $ref: "#/components/schemas/ExperimentsCreateMetricV2Request" required: true responses: - "200": + "201": content: application/json: examples: @@ -154036,103 +165036,159 @@ paths: value: data: attributes: - created_at: "2024-01-01T00:00:00+00:00" - created_by: - id: 00000000-0000-0000-0000-000000000016 - dry_run: false - gate_id: abc-123 - name: Updated deployment rule - options: - - resource1 - type: faulty_deployment_detection - id: 00000000-0000-0000-0000-000000000015 - type: deployment_rule + created_at: "2024-01-01T12:00:00Z" + data_source_type: CUSTOMER_WAREHOUSE + description: Share of sessions that reach the order confirmation page + desired_change: METRIC_INCREASES + format_as_percent: true + metric_type: SIMPLE + name: Checkout conversion + numerator_aggregation: + operation: sum + pipeline_column_suffix: agg001 + timeframe_start_value: 0 + warehouse_metric_measure: + id: 550e8400-e29b-41d4-a716-446655440021 + pipeline_column_suffix: rev001 + reference_url: "" + updated_at: "2024-01-01T12:00:00Z" + id: 550e8400-e29b-41d4-a716-446655440002 + type: metrics schema: - $ref: "#/components/schemas/DeploymentRuleResponse" - description: OK + $ref: "#/components/schemas/ExperimentsMetricV2DTO" + description: Created "400": - $ref: "#/components/responses/HTTPCDGatesBadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Malformed body, validation failure, or an aggregation that does not match metric_type. "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Missing or invalid authentication. "403": - $ref: "#/components/responses/ForbiddenResponse" - "404": - $ref: "#/components/responses/HTTPCDRulesNotFoundResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - "500": content: application/json: schema: - $ref: "#/components/schemas/HTTPCIAppErrors" - description: Internal Server Error + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Caller lacks product_analytics_metrics_write. + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Another metric in this organization already uses one of these values. + "415": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Request body sent with a media type other than application/json or application/vnd.api+json. + "429": + $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] - summary: Update deployment rule - tags: ["Deployment Gates"] + - AuthZ: + - product_analytics_metrics_write + summary: Create metric + tags: + - Experiments x-permission: - operator: OR + operator: AND permissions: - - deployment_gates_write - x-unstable: |- - **Note**: This endpoint is in preview and may be subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/deployment_gates/{id}: + - product_analytics_metrics_write + /api/v2/experiments/metrics/{metric_id}: delete: - description: |- - Endpoint to delete a deployment gate. Rules associated with the gate are also deleted. - operationId: DeleteDeploymentGate + description: >- + Delete a metric. Certified metrics are read-only through this endpoint. The record is soft-deleted and stops appearing in reads. A metric still referenced by an experiment cannot be deleted; detach it from those experiments first. + operationId: DeleteMetric parameters: - - description: The ID of the deployment gate. + - description: "The UUID of the metric." in: path - name: id + name: metric_id required: true schema: + description: "The UUID of the metric." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid type: string responses: "204": - description: No Content + description: The metric was deleted. "400": - $ref: "#/components/responses/HTTPCDGatesBadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Malformed metric ID (not a valid UUID). "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Missing or invalid authentication. "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Caller lacks product_analytics_metrics_write or edit access to this specific metric. "404": - $ref: "#/components/responses/HTTPCDGatesNotFoundResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - "500": content: application/json: schema: - $ref: "#/components/schemas/HTTPCIAppErrors" - description: Internal Server Error + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: No metric with this ID exists for the organization. + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: >- + The metric is imported, certified, managed by metric sync, or still referenced by one or more experiments and cannot be deleted. + "429": + $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] - summary: Delete deployment gate - tags: ["Deployment Gates"] + - AuthZ: + - product_analytics_metrics_write + summary: Delete metric + tags: + - Experiments x-permission: - operator: OR + operator: AND permissions: - - deployment_gates_write - x-unstable: |- - **Note**: This endpoint is in preview and may be subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + - product_analytics_metrics_write get: - description: |- - Endpoint to get a deployment gate. - operationId: GetDeploymentGate + description: Get a metric. Returns a single experiment metric by its ID for the organization. + operationId: GetMetric parameters: - - description: The ID of the deployment gate. + - description: |- + Optional fields to include. Repeat this parameter to request several fields. `counts` adds + experiment_count: how many experiments currently reference this metric. + in: query + name: include + schema: + description: |- + Optional fields to include. Repeat this parameter to request several fields. `counts` adds + experiment_count: how many experiments currently reference this metric. + items: + description: "Optional response field to include." + type: string + type: array + - description: "The UUID of the metric." in: path - name: id + name: metric_id required: true schema: + description: "The UUID of the metric." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid type: string responses: "200": @@ -154143,57 +165199,78 @@ paths: value: data: attributes: - created_at: "2024-01-01T00:00:00+00:00" - created_by: - id: 00000000-0000-0000-0000-000000000006 - dry_run: false - env: production - identifier: pre - service: my-service - id: 00000000-0000-0000-0000-000000000005 - type: deployment_gate + created_at: "2024-01-01T12:00:00Z" + data_source_type: CUSTOMER_WAREHOUSE + description: Share of sessions that reach the order confirmation page + desired_change: METRIC_INCREASES + format_as_percent: true + metric_type: SIMPLE + name: Checkout conversion + numerator_aggregation: + operation: sum + pipeline_column_suffix: agg001 + timeframe_start_value: 0 + warehouse_metric_measure: + id: 550e8400-e29b-41d4-a716-446655440021 + pipeline_column_suffix: rev001 + reference_url: "" + updated_at: "2024-01-01T12:00:00Z" + id: 550e8400-e29b-41d4-a716-446655440002 + type: metrics schema: - $ref: "#/components/schemas/DeploymentGateResponse" + $ref: "#/components/schemas/ExperimentsMetricV2DTO" description: OK "400": - $ref: "#/components/responses/HTTPCDGatesBadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Malformed metric ID (not a valid UUID). "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Missing or invalid authentication. "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Authenticated caller lacks the product_analytics_metrics_read permission. "404": - $ref: "#/components/responses/HTTPCDGatesNotFoundResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - "500": content: application/json: schema: - $ref: "#/components/schemas/HTTPCIAppErrors" - description: Internal Server Error + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: No metric with this ID exists for the organization. + "429": + $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] - summary: Get deployment gate - tags: ["Deployment Gates"] + - AuthZ: + - product_analytics_metrics_read + summary: Get metric + tags: + - Experiments x-permission: - operator: OR + operator: AND permissions: - - deployment_gates_read - x-unstable: |- - **Note**: This endpoint is in preview and may be subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - put: - description: |- - Endpoint to update a deployment gate. - operationId: UpdateDeploymentGate + - product_analytics_metrics_read + patch: + description: >- + Update a metric. Certified metrics are read-only through this endpoint. This is a partial update: every attribute is optional and an omitted attribute keeps its stored value, so a body carrying only the fields being changed is enough. `guardrail_cutoff_threshold` is nullable -- send null to clear it, omit it to leave it alone. Omitting the aggregation leaves the metric's definition untouched; supplying one replaces it wholesale, and the metric's type is re-derived from the shape supplied. Property filters use property_id or measure_id UUIDs from the aggregation's data source. Attributes that are computed rather than stored (short_id, metric_type, certified_at, experiment_count, created_at, updated_at) are rejected rather than ignored, so a body copied from GET must have them removed. The is_certified attribute is rejected. Certification cannot be changed through this endpoint. + operationId: UpdateMetric parameters: - - description: The ID of the deployment gate. + - description: "The UUID of the metric." in: path - name: id + name: metric_id required: true schema: + description: "The UUID of the metric." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid type: string requestBody: content: @@ -154203,11 +165280,11 @@ paths: value: data: attributes: - dry_run: false - id: 12345678-1234-1234-1234-123456789012 - type: deployment_gate + name: Checkout conversion + id: 550e8400-e29b-41d4-a716-446655440020 + type: metrics schema: - $ref: "#/components/schemas/UpdateDeploymentGateParams" + $ref: "#/components/schemas/ExperimentsUpdateMetricV2Request" required: true responses: "200": @@ -154218,160 +165295,196 @@ paths: value: data: attributes: - created_at: "2024-01-01T00:00:00+00:00" - created_by: - id: 00000000-0000-0000-0000-000000000008 - dry_run: false - env: production - identifier: pre - service: my-service - id: 00000000-0000-0000-0000-000000000007 - type: deployment_gate + created_at: "2024-01-01T12:00:00Z" + data_source_type: CUSTOMER_WAREHOUSE + description: Share of sessions that reach the order confirmation page + desired_change: METRIC_INCREASES + format_as_percent: true + metric_type: SIMPLE + name: Checkout conversion + numerator_aggregation: + operation: sum + pipeline_column_suffix: agg001 + timeframe_start_value: 0 + warehouse_metric_measure: + id: 550e8400-e29b-41d4-a716-446655440021 + pipeline_column_suffix: rev001 + reference_url: "" + updated_at: "2024-01-01T12:00:00Z" + id: 550e8400-e29b-41d4-a716-446655440002 + type: metrics schema: - $ref: "#/components/schemas/DeploymentGateResponse" + $ref: "#/components/schemas/ExperimentsMetricV2DTO" description: OK "400": - $ref: "#/components/responses/HTTPCDGatesBadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Malformed ID or body, or validation failure. "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Missing or invalid authentication. "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Caller lacks product_analytics_metrics_write or edit access to this specific metric. "404": - $ref: "#/components/responses/HTTPCDGatesNotFoundResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - "500": content: application/json: schema: - $ref: "#/components/schemas/HTTPCIAppErrors" - description: Internal Server Error + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: No metric with this ID exists for the organization. + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: >- + The metric is imported, certified, or managed by metric sync, or another metric in this organization already uses one of these values. + "415": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Request body sent with a media type other than application/json or application/vnd.api+json. + "429": + $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] - summary: Update deployment gate - tags: ["Deployment Gates"] + - AuthZ: + - product_analytics_metrics_write + summary: Update metric + tags: + - Experiments x-permission: - operator: OR + operator: AND permissions: - - deployment_gates_write - x-unstable: |- - **Note**: This endpoint is in preview and may be subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/deployments/gates/evaluation: - post: - description: |- - Triggers an asynchronous deployment gate evaluation for the given service and environment. - Returns an evaluation ID that can be used to poll for the result via the - `GET /api/v2/deployments/gates/evaluation/{id}` endpoint. - - When the `configuration` attribute is provided, rules are evaluated inline from that configuration - and no pre-configured gate is required. When `configuration` is omitted, rules are resolved from the - gate pre-configured for the given service and environment through the Datadog UI, API, or Terraform. - operationId: TriggerDeploymentGatesEvaluation - requestBody: - content: - application/json: - examples: - default: - summary: Evaluate a preconfigured gate - value: - data: - attributes: - env: staging - identifier: pre-deploy - primary_tag: region:us-east-1 - service: transaction-backend - version: v1.2.3 - type: deployment_gates_evaluation_request - with-configuration: - summary: Evaluate with inline rule configuration - value: - data: - attributes: - configuration: - dry_run: false - rules: - - dry_run: false - name: error rate monitors - options: - duration: 300 - query: "service:transaction-backend env:production" - type: monitor - - dry_run: false - name: apm faulty deployment - options: - duration: 900 - excluded_resources: - - "GET /healthcheck" - type: faulty_deployment_detection - env: production - service: transaction-backend - version: 1.2.3 - type: deployment_gates_evaluation_request - schema: - $ref: "#/components/schemas/DeploymentGatesEvaluationRequest" - required: true + - product_analytics_metrics_write + /api/v2/experiments/protocols: + get: + description: >- + List draft, published, and archived experiment protocols. Omit filter[status] to return all statuses. Only published protocols can be used to create experiments. + operationId: ListExperimentProtocols + parameters: + - description: Filter by protocol status. Repeat this parameter to select more than one status. + explode: true + in: query + name: filter[status] + schema: + items: + $ref: "#/components/schemas/ExperimentsPublicProtocolResponseDataAttributesStatus" + type: array + style: form + - description: "Filter by the UUID of the primary metric in the protocol template." + in: query + name: filter[primary_metric_id] + schema: + description: "Filter by the UUID of the primary metric in the protocol template." + format: uuid + type: string + - description: |- + Find protocols whose names contain the search text, regardless of case. Leading and trailing spaces are + ignored. Blank values apply no filter. The maximum length is 1024 UTF-8 bytes. + in: query + name: filter[query] + schema: + description: |- + Find protocols whose names contain the search text, regardless of case. Leading and trailing spaces are + ignored. Blank values apply no filter. The maximum length is 1024 UTF-8 bytes. + type: string + - description: "Filter by the UUID of the subject type in the protocol template." + in: query + name: filter[subject_type_id] + schema: + description: "Filter by the UUID of the subject type in the protocol template." + format: uuid + type: string + - description: "Number of results per page. The default is 25. Values above 50 are reduced to 50." + in: query + name: page[limit] + schema: + description: "Number of results per page. The default is 25. Values above 50 are reduced to 50." + format: int64 + type: integer + - description: "Number of results to skip before returning this page." + in: query + name: page[offset] + schema: + description: "Number of results to skip before returning this page." + format: int64 + type: integer + - description: |- + Sort by `name`, `subject_type_name`, `primary_metric_name`, or `updated_at`. Prefix with `-` for + descending order. The default is `-updated_at`. + in: query + name: sort + schema: + description: |- + Sort by `name`, `subject_type_name`, `primary_metric_name`, or `updated_at`. Prefix with `-` for + descending order. The default is `-updated_at`. + type: string responses: - "202": + "200": content: application/json: examples: default: value: - data: - attributes: - evaluation_id: 00000000-0000-0000-0000-000000000001 - id: 00000000-0000-0000-0000-000000000001 - type: deployment_gates_evaluation_response + data: [] schema: - $ref: "#/components/schemas/DeploymentGatesEvaluationResponse" - description: Accepted + $ref: "#/components/schemas/ExperimentsPublicProtocolListResponseArray" + description: OK "400": - $ref: "#/components/responses/HTTPCDGatesBadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized "403": - $ref: "#/components/responses/ForbiddenResponse" - "404": - $ref: "#/components/responses/HTTPCDGatesNotFoundResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - "500": content: application/json: schema: - $ref: "#/components/schemas/HTTPCIAppErrors" - description: Internal Server Error + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "429": + $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] - summary: Trigger a deployment gate evaluation - tags: ["Deployment Gates"] + - AuthZ: + - product_analytics_experiments_read + summary: List experiment protocols + tags: + - Experiments x-permission: - operator: OR + operator: AND permissions: - - deployment_gates_evaluate - x-unstable: |- - **Note**: This endpoint is in preview and may be subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/deployments/gates/evaluation/{id}: + - product_analytics_experiments_read + /api/v2/experiments/protocols/{protocol_id}: get: - description: |- - Retrieves the result of a deployment gate evaluation by its evaluation ID. - If the evaluation is still in progress, `data.attributes.gate_status` will be `in_progress`; - continue polling until it returns `pass` or `fail`. - Polling every 10-20 seconds is recommended. - The endpoint may return a 404 if called too soon after triggering; retry after a few seconds. - operationId: GetDeploymentGatesEvaluationResult + description: Get a draft, published, or archived experiment protocol by ID. + operationId: GetExperimentProtocol parameters: - - description: The evaluation ID returned by the trigger endpoint. + - description: "The UUID of the protocol." in: path - name: id + name: protocol_id required: true schema: + description: "The UUID of the protocol." + example: 550e8400-e29b-41d4-a716-446655440000 format: uuid type: string responses: @@ -154383,105 +165496,184 @@ paths: value: data: attributes: - dry_run: false - evaluation_id: 00000000-0000-0000-0000-000000000001 - evaluation_url: https://app.datadoghq.com/ci/deployment-gates/evaluations?index=cdgates&query=level%3Agate+%40evaluation_id%3A00000000-0000-0000-0000-000000000001 - gate_id: 00000000-0000-0000-0000-000000000001 - gate_status: pass - rules: [] - id: 00000000-0000-0000-0000-000000000001 - type: deployment_gates_evaluation_result_response + description: Default settings for checkout experiments. + enforcement: + confidence_interval_method: LOCKED + confidence_level: EDITABLE + cuped_calculation: EDITABLE + default_duration: EDITABLE + environment: EDITABLE + flag_source: LOCKED + multiple_testing_correction: EDITABLE + notifications: EDITABLE + primary_metric: EDITABLE + secondary_metrics: EDITABLE + split_by_exploration_dimensions: EDITABLE + subject_type: LOCKED + targeting_rules: EDITABLE + traffic_exposure: EDITABLE + warehouse_exposure_source: EDITABLE + is_duration_required_to_start: false + is_equal_split_enforced: false + is_metric_limit_enabled: false + is_minimum_duration_enabled: false + metric_groups: [] + name: Checkout experiments + primary_metric: + id: b1a2c3d4-0000-0000-0000-000000000000 + name: Checkout conversion + primary_metric_id: b1a2c3d4-0000-0000-0000-000000000000 + published_at: "2026-07-31T12:00:00Z" + status: PUBLISHED + subject_type: + id: c2b3d4e5-0000-0000-0000-000000000000 + name: User + subject_type_id: c2b3d4e5-0000-0000-0000-000000000000 + updated_at: "2026-07-31T12:00:00Z" + id: e4d5f6a7-0000-0000-0000-000000000000 + type: protocols schema: - $ref: "#/components/schemas/DeploymentGatesEvaluationResultResponse" + $ref: "#/components/schemas/ExperimentsPublicProtocolResponse" description: OK "400": - $ref: "#/components/responses/HTTPCDGatesBadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "404": - $ref: "#/components/responses/HTTPCDGatesNotFoundResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - "500": content: application/json: schema: - $ref: "#/components/schemas/HTTPCIAppErrors" - description: Internal Server Error + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] - summary: Get a deployment gate evaluation result - tags: ["Deployment Gates"] + - AuthZ: + - product_analytics_experiments_read + summary: Get experiment protocol + tags: + - Experiments x-permission: - operator: OR + operator: AND permissions: - - deployment_gates_evaluate - x-unstable: |- - **Note**: This endpoint is in preview and may be subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/domain_allowlist: - get: - description: Get the domain allowlist for an organization. - operationId: GetDomainAllowlist + - product_analytics_experiments_read + /api/v2/experiments/results/refresh: + post: + description: >- + Trigger a results refresh across the organization's active experiments. Returns the count of experiments whose refresh was triggered (meta.experiments_updated) plus a per-experiment breakdown of what happened to each (meta.results). + operationId: RefreshExperimentResultsForOrg + parameters: + - description: Force a full warehouse rebuild. Defaults to false when omitted. + in: query + name: full_refresh + schema: + description: "Force a full warehouse rebuild. Defaults to false when omitted." + type: boolean responses: - "200": + "202": content: application/json: examples: default: value: - data: - attributes: - domains: - - "@example.com" - enabled: false - id: 00000000-0000-0000-0000-000000000002 - type: domain_allowlist + data: [] schema: - $ref: "#/components/schemas/DomainAllowlistResponse" - description: OK + $ref: "#/components/schemas/ExperimentsRefreshExperimentResultsV2DTOArray" + description: Accepted + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: The full_refresh query parameter is not a valid boolean. + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Missing or invalid authentication. + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Authenticated caller lacks the product_analytics_experiments_write permission. "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - org_management - - AuthZ: - - monitors_write - summary: Get Domain Allowlist + - product_analytics_experiments_write + summary: Refresh experiment results for org tags: - - Domain Allowlist - "x-permission": - operator: OR + - Experiments + x-permission: + operator: AND permissions: - - org_management - - monitors_write - - generate_dashboard_reports - - generate_log_reports - - manage_log_reports - patch: - description: Update the domain allowlist for an organization. - operationId: PatchDomainAllowlist - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - domains: - - "@static-test-domain.test" - enabled: false - type: domain_allowlist - schema: - $ref: "#/components/schemas/DomainAllowlistRequest" - required: true + - product_analytics_experiments_write + /api/v2/experiments/subject-types: + get: + description: List subject types. Returns a paginated list of the subject types defined for the organization. + operationId: ListSubjectTypes + parameters: + - description: >- + Set to `counts` to add experiment_count, exposure_source_count, metric_sql_model_count and protocol_count to each subject type. Each costs an extra query, so they are omitted unless asked for. + in: query + name: include + schema: + description: |- + Set to `counts` to add experiment_count, exposure_source_count, metric_sql_model_count and + protocol_count to each subject type. Each costs an extra query, so they are omitted unless asked for. + type: string + - description: >- + Maximum number of results to return. Defaults to 25 when omitted, and is capped at 50 (larger values are clamped to 50). The response includes meta.page (with total) and pagination links. + in: query + name: page[limit] + schema: + description: |- + Maximum number of results to return. Defaults to 25 when omitted, and is capped at 50 (larger values are + clamped to 50). The response includes meta.page (with total) and pagination links. + format: int64 + type: integer + - description: Number of results to skip for pagination. Defaults to 0 when omitted. + in: query + name: page[offset] + schema: + description: "Number of results to skip for pagination. Defaults to 0 when omitted." + format: int64 + type: integer + - description: "Find subject types whose names contain the search text, regardless of case." + in: query + name: search + schema: + description: "Find subject types whose names contain the search text, regardless of case." + type: string + - description: >- + Sort fields: name, created_at, or updated_at. Use a comma-separated list in priority order, for example name,-created_at. Prefix each field with `-` for descending. Defaults to created_at descending. + in: query + name: sort + schema: + description: |- + Sort fields: name, created_at, or updated_at. Use a comma-separated list in priority order, for example + name,-created_at. Prefix each field with `-` for descending. Defaults to created_at descending. + type: string responses: "200": content: @@ -154490,46 +165682,56 @@ paths: default: value: data: - attributes: - domains: - - "@example.com" - enabled: false - id: 00000000-0000-0000-0000-000000000001 - type: domain_allowlist + - attributes: + created_at: "2024-01-01T12:00:00Z" + is_default: true + name: User + product_analytics_attribute: "@usr.id" + updated_at: "2024-01-01T12:00:00Z" + warehouse_column_names: + - user_id + - customer_id + id: 550e8400-e29b-41d4-a716-446655440010 + type: subject-types schema: - $ref: "#/components/schemas/DomainAllowlistResponse" + $ref: "#/components/schemas/ExperimentsSubjectTypeV2DTOArray" description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: "Invalid query parameter: bad page[offset]/page[limit], or unknown sort field." + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: >- + Missing or invalid authentication (dd-api-key + dd-application-key headers, or a valid user session). + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Authenticated caller lacks the product_analytics_settings_read permission. "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - org_management - - AuthZ: - - monitors_write - summary: Sets Domain Allowlist + - product_analytics_settings_read + summary: List subject types tags: - - Domain Allowlist - "x-permission": - operator: OR + - Experiments + x-permission: + operator: AND permissions: - - org_management - - monitors_write - - generate_dashboard_reports - - generate_log_reports - - manage_log_reports - /api/v2/dora/deployment: + - product_analytics_settings_read post: - description: |- - Use this API endpoint to provide deployment data. - - This is necessary for: - - Deployment Frequency - - Change Lead Time - - Change Failure Rate - - Failed Deployment Recovery Time - operationId: CreateDORADeployment + description: Create a subject type for the organization. + operationId: CreateSubjectType requestBody: content: application/json: @@ -154538,148 +165740,229 @@ paths: value: data: attributes: - custom_tags: - - language:java - - department:engineering - env: staging - finished_at: 1693491984000000000 - git: - commit_sha: 66adc9350f2cc9b250b69abddab733dd55e1a588 - repository_url: https://github.com/organization/example-repository - service: test-service - started_at: 1693491974000000000 - team: backend - version: v1.12.07 + name: User + product_analytics_attribute: "@usr.id" + warehouse_column_names: + - user_id + - customer_id + type: subject-types schema: - $ref: "#/components/schemas/DORADeploymentRequest" + $ref: "#/components/schemas/ExperimentsCreateSubjectTypeV2Request" required: true responses: - "200": + "201": content: application/json: examples: default: value: data: - id: 4242fcdd31586083 - type: dora_deployment + attributes: + created_at: "2024-01-01T12:00:00Z" + is_default: true + name: User + product_analytics_attribute: "@usr.id" + updated_at: "2024-01-01T12:00:00Z" + warehouse_column_names: + - user_id + - customer_id + id: 550e8400-e29b-41d4-a716-446655440010 + type: subject-types schema: - $ref: "#/components/schemas/DORADeploymentResponse" - description: OK - "202": + $ref: "#/components/schemas/ExperimentsSubjectTypeV2DTO" + description: Created + "400": content: application/json: - examples: - default: - value: - data: - id: 4242fcdd31586083 - type: dora_deployment schema: - $ref: "#/components/schemas/DORADeploymentResponse" - description: OK - but delayed due to incident - "400": + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: >- + Malformed body, or validation failure on name, product_analytics_attribute, or warehouse_column_names. + "401": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + description: Missing or invalid authentication. "403": - $ref: "#/components/responses/NotAuthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Authenticated caller lacks the product_analytics_settings_write permission. "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] - summary: Send a deployment event - tags: ["DORA Metrics"] - x-codegen-request-body-name: body - /api/v2/dora/deployment/{deployment_id}: + appKeyAuth: [] + - AuthZ: + - product_analytics_settings_write + summary: Create subject type + tags: + - Experiments + x-permission: + operator: AND + permissions: + - product_analytics_settings_write + /api/v2/experiments/subject-types/{subject_type_id}: delete: - description: |- - Use this API endpoint to delete a deployment event. - operationId: DeleteDORADeployment + description: >- + Delete a subject type. The record is soft-deleted and stops appearing in reads. The call is idempotent: deleting the same subject type again also returns 204. The organization's default subject type cannot be deleted; make another one the default first. A subject type that experiments, exposure SQL models, metric SQL models or protocols still reference cannot be deleted either; the refusal names the blockers. + operationId: DeleteSubjectType parameters: - - description: The ID of the deployment event to delete. + - description: "The UUID of the subject type." in: path - name: deployment_id + name: subject_type_id required: true schema: + description: "The UUID of the subject type." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid type: string responses: - "202": - description: Accepted + "204": + description: The subject type was deleted. "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + description: Malformed subject type ID (not a valid UUID). + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Missing or invalid authentication. "403": - $ref: "#/components/responses/NotAuthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Authenticated caller lacks the product_analytics_settings_write permission. + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: No subject type with this ID exists for the organization. + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: >- + Either this subject type is the organization's default, or experiments, exposure SQL models, metric SQL models or protocols still reference it. When something references it, meta.blockers names them (capped per kind, with truncated set when more exist). "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] - summary: Delete a deployment event - tags: ["DORA Metrics"] + - AuthZ: + - product_analytics_settings_write + summary: Delete subject type + tags: + - Experiments x-permission: - operator: OR + operator: AND permissions: - - dora_metrics_write - /api/v2/dora/deployments: - patch: - description: |- - Update a deployment's change failure status, identifying the deployment by its service, environment, and version instead of its ID. Use this to mark a deployment as a change failure or back to stable. You can optionally include remediation details to enable failed deployment recovery time calculation. If multiple deployments match the given service, environment, and version, the most recently finished one is updated. - operationId: PatchDORADeploymentByVersion - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - change_failure: true - env: production - service: my-service - version: v1.2.3 - type: dora_deployment_patch_request - schema: - $ref: "#/components/schemas/DORADeploymentPatchByVersionRequest" - required: true + - product_analytics_settings_write + get: + description: Get a subject type. Returns a single subject type by its ID for the organization. + operationId: GetSubjectType + parameters: + - description: >- + Set to `counts` to add experiment_count, exposure_source_count, metric_sql_model_count and protocol_count. + in: query + name: include + schema: + description: |- + Set to `counts` to add experiment_count, exposure_source_count, metric_sql_model_count and + protocol_count. + type: string + - description: "The UUID of the subject type." + in: path + name: subject_type_id + required: true + schema: + description: "The UUID of the subject type." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid + type: string responses: - "202": - description: Accepted + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + created_at: "2024-01-01T12:00:00Z" + is_default: true + name: User + product_analytics_attribute: "@usr.id" + updated_at: "2024-01-01T12:00:00Z" + warehouse_column_names: + - user_id + - customer_id + id: 550e8400-e29b-41d4-a716-446655440010 + type: subject-types + schema: + $ref: "#/components/schemas/ExperimentsSubjectTypeV2DTO" + description: OK "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + description: Malformed subject type ID (not a valid UUID), or an unsupported include value. + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Missing or invalid authentication. "403": - $ref: "#/components/responses/NotAuthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Authenticated caller lacks the product_analytics_settings_read permission. + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: No subject type with this ID exists for the organization. "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] - summary: Patch a deployment event by version - tags: ["DORA Metrics"] - x-codegen-request-body-name: body + - AuthZ: + - product_analytics_settings_read + summary: Get subject type + tags: + - Experiments x-permission: - operator: OR + operator: AND permissions: - - dora_metrics_write - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - post: - description: |- - Use this API endpoint to get a list of deployment events. - operationId: ListDORADeployments + - product_analytics_settings_read + patch: + description: >- + Update mutable fields on a subject type. Only the fields present in the body are changed. Any subject type can be updated, including the organization's default one, but the is_default flag itself is read-only here: which subject type is the default cannot be changed through this endpoint. + operationId: PatchSubjectType + parameters: + - description: "The UUID of the subject type." + in: path + name: subject_type_id + required: true + schema: + description: "The UUID of the subject type." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid + type: string requestBody: content: application/json: @@ -154688,14 +165971,13 @@ paths: value: data: attributes: - from: "2025-01-01T00:00:00Z" - limit: 100 - query: service:(test-service OR api-service) env:production team:backend - sort: -finished_at - to: "2025-01-31T23:59:59Z" - type: dora_deployments_list_request + name: Updated User + product_analytics_attribute: "@usr.id" + warehouse_column_names: + - user_id + type: subject-types schema: - $ref: "#/components/schemas/DORAListDeploymentsRequest" + $ref: "#/components/schemas/ExperimentsPatchSubjectTypeV2Request" required: true responses: "200": @@ -154705,175 +165987,193 @@ paths: default: value: data: - - attributes: - env: production - finished_at: "2023-08-31T14:26:24Z" - service: test-service - started_at: "2023-08-31T14:26:14Z" - team: backend - id: abc-123 - type: dora_deployment + attributes: + created_at: "2024-01-01T12:00:00Z" + is_default: true + name: User + product_analytics_attribute: "@usr.id" + updated_at: "2024-01-01T12:00:00Z" + warehouse_column_names: + - user_id + - customer_id + id: 550e8400-e29b-41d4-a716-446655440010 + type: subject-types schema: - $ref: "#/components/schemas/DORADeploymentsListResponse" + $ref: "#/components/schemas/ExperimentsSubjectTypeV2DTO" description: OK "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + description: Malformed subject type ID, malformed body, or no updatable field supplied. + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Missing or invalid authentication. "403": - $ref: "#/components/responses/NotAuthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Authenticated caller lacks the product_analytics_settings_write permission. + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: No subject type with this ID exists for the organization. "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] - summary: Get a list of deployment events - tags: ["DORA Metrics"] - x-codegen-request-body-name: body + - AuthZ: + - product_analytics_settings_write + summary: Patch subject type + tags: + - Experiments x-permission: - operator: OR + operator: AND permissions: - - dora_metrics_read - /api/v2/dora/deployments/{deployment_id}: - get: - description: |- - Use this API endpoint to get a deployment event. - operationId: GetDORADeployment + - product_analytics_settings_write + /api/v2/experiments/subject-types/{subject_type_id}/default: + post: + description: >- + Make this subject type the organization's default. Experiment creation uses the default when the request names no subject type. Promoting one subject type demotes the previous default in the same transaction, so the organization always has exactly one. The call is idempotent: promoting the current default succeeds and changes nothing. There is no matching demote, because an organization cannot have no default; promote a different subject type instead. + operationId: SetDefaultSubjectType parameters: - - description: The ID of the deployment event. + - description: "The UUID of the subject type." in: path - name: deployment_id + name: subject_type_id required: true schema: + description: "The UUID of the subject type." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid type: string responses: - "200": + "204": + description: The subject type is now the organization's default. + "400": content: application/json: - examples: - default: - value: - data: - attributes: - env: production - finished_at: "2023-08-31T14:26:24Z" - service: test-service - started_at: "2023-08-31T14:26:14Z" - team: backend - id: abc-123 - type: dora_deployment schema: - $ref: "#/components/schemas/DORADeploymentFetchResponse" - description: OK - "400": + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Malformed subject type ID (not a valid UUID). + "401": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + description: Missing or invalid authentication. "403": - $ref: "#/components/responses/NotAuthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Authenticated caller lacks the product_analytics_settings_write permission. + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: No subject type with this ID exists for the organization. "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] - summary: Get a deployment event - tags: ["DORA Metrics"] - x-codegen-request-body-name: body + - AuthZ: + - product_analytics_settings_write + summary: Set default subject type + tags: + - Experiments x-permission: - operator: OR + operator: AND permissions: - - dora_metrics_read - patch: - description: |- - Update a deployment's change failure status. Use this to mark a deployment as a change failure or back to stable. You can optionally include remediation details to enable failed deployment recovery time calculation. - operationId: PatchDORADeployment + - product_analytics_settings_write + /api/v2/experiments/{experiment_id}: + delete: + description: >- + Delete an experiment and its linked feature flag allocations in one database transaction. After deletion, the experiment is no longer returned by the API. If the transaction fails, neither the experiment nor its allocations are deleted. Deleting an experiment cannot be undone. + operationId: DeleteExperiment parameters: - - description: The ID of the deployment event. + - description: "The UUID of the experiment." in: path - name: deployment_id + name: experiment_id required: true schema: + description: "The UUID of the experiment." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid type: string - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - change_failure: true - remediation: - id: eG42zNIkVjM - type: rollback - id: z_RwVLi7v4Y - type: dora_deployment_patch_request - schema: - $ref: "#/components/schemas/DORADeploymentPatchRequest" - required: true responses: - "202": - description: Accepted + "204": + description: The experiment was deleted. "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + description: Malformed experiment ID (not a valid UUID). + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: >- + Missing or invalid authentication (dd-api-key + dd-application-key headers, or a valid user session). "403": - $ref: "#/components/responses/NotAuthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: >- + Authenticated caller lacks the product_analytics_experiments_write permission, lacks permission to edit this experiment, or lacks contribute permission on a feature flag owning one of its allocations. + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: No experiment with this ID exists for the organization. + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: >- + The experiment has a published allocation on an archived flag, must be retained for selective holdout analysis, or its linked allocations changed during authorization. Nothing was deleted. "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] - summary: Patch a deployment event - tags: ["DORA Metrics"] - x-codegen-request-body-name: body + - AuthZ: + - product_analytics_experiments_write + summary: Delete experiment + tags: + - Experiments x-permission: - operator: OR + operator: AND permissions: - - dora_metrics_write - /api/v2/dora/failure: - post: - description: |- - Use this API endpoint to provide incident data for DORA Metrics. - Note that change failure rate and failed deployment recovery time are computed from change failures detected on deployments, not from incident events sent through this endpoint. - Tracking incidents gives a side-by-side view of how failed deployments translate into real-world incidents, including their severity and frequency. - operationId: CreateDORAFailure - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - custom_tags: - - language:java - - department:engineering - env: staging - finished_at: 1693491984000000000 - git: - commit_sha: 66adc9350f2cc9b250b69abddab733dd55e1a588 - repository_url: https://github.com/organization/example-repository - name: Webserver is down failing all requests. - services: - - test-service - severity: High - started_at: 1693491974000000000 - team: backend - version: v1.12.07 - schema: - $ref: "#/components/schemas/DORAFailureRequest" - required: true + - product_analytics_experiments_write + get: + description: >- + Get a complete experiment by ID. The response includes structured metadata, related links, and, when a complete setup exists, decision metrics, variants, `warehouse_exposure_configuration`, `datadog_flag_configuration`, STATIC or STEPS traffic exposure, and assignment and event dates. STEPS describes the configured plan rather than wall-clock history; Datadog step durations exclude pauses. The list endpoint omits these setup details. + operationId: GetExperiment + parameters: + - description: "The UUID of the experiment." + in: path + name: experiment_id + required: true + schema: + description: "The UUID of the experiment." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid + type: string responses: "200": content: @@ -154882,78 +166182,191 @@ paths: default: value: data: - id: 4242fcdd31586085 - type: dora_failure + attributes: + assignments_end_date: "2026-08-15T00:00:00Z" + assignments_start_date: "2026-08-01T00:00:00Z" + concluded_at: "2026-08-05T09:30:00Z" + conclusion: + decision_reason: The primary metric improved without material regressions + outcome: POSITIVE + summary: The treatment improved conversion + created_at: "2026-08-01T12:00:00Z" + datadog_flag_configuration: + decision_metrics: + - is_primary: true + metric_id: b1a2c3d4-0000-0000-0000-000000000000 + decision_variant_key: treatment + events_end_date: "2026-08-22T00:00:00Z" + events_start_date: "2026-08-01T00:00:00Z" + experiment_type: STANDARD + hypothesis: A clearer checkout button increases purchase conversion + name: Checkout button test + pipeline_table_suffix: a1b2c3d4 + protocol_id: e4d5f6a7-0000-0000-0000-000000000000 + related_links: + - id: d1d2d3d4-0000-0000-0000-000000000000 + title: Experiment design + url: https://docs.example.com/checkout-experiment + results_last_updated: "2026-08-05T09:25:00Z" + split_by_properties: [] + status: DECISION_MADE + structured_metadata: + - enum_values: + - beta + field_display_name: Launch stage + field_key: launch_stage + field_type: ENUM + - field_display_name: Notes + field_key: notes + field_type: FREETEXT + freetext_value: Checkout redesign + subject_type_id: c2b3d4e5-0000-0000-0000-000000000000 + summary: The treatment improved conversion + tags: + - growth + teams: + - growth + traffic_exposure: + fraction: 1 + mode: STATIC + updated_at: "2026-08-05T09:30:00Z" + variants: + - is_active: true + is_control: true + key: control + name: Control + weight: 50 + - is_active: true + is_control: false + key: treatment + name: Treatment + weight: 50 + warehouse_exposure_configuration: + entry_point: + experiment_key: checkout_button_test + exposure_sql_model_id: f5e6a7b8-0000-0000-0000-000000000000 + id: 550e8400-e29b-41d4-a716-446655440000 + type: experiments schema: - $ref: "#/components/schemas/DORAFailureResponse" + $ref: "#/components/schemas/ExperimentsExperimentV2DTO" description: OK - "202": + "400": content: application/json: - examples: - default: - value: - data: - id: 4242fcdd31586085 - type: dora_failure schema: - $ref: "#/components/schemas/DORAFailureResponse" - description: OK - but delayed due to incident - "400": + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Malformed experiment ID (not a valid UUID). + "401": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + description: >- + Missing or invalid authentication (dd-api-key + dd-application-key headers, or a valid user session). "403": - $ref: "#/components/responses/NotAuthorizedResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - summary: Send an incident event - tags: ["DORA Metrics"] - x-codegen-request-body-name: body - /api/v2/dora/failure/{failure_id}: - delete: - description: |- - Use this API endpoint to delete an incident event. - operationId: DeleteDORAFailure - parameters: - - description: The ID of the incident event to delete. - in: path - name: failure_id - required: true - schema: - type: string - responses: - "202": - description: Accepted - "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "403": - $ref: "#/components/responses/NotAuthorizedResponse" + description: >- + Authenticated caller lacks the product_analytics_experiments_read permission, or lacks feature-flag and environment read permissions for a Datadog-backed configuration. + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: No experiment with this ID exists for the organization. + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: >- + The stored assignment configuration cannot be represented losslessly by this API (unsupported_configuration). "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] - summary: Delete an incident event - tags: ["DORA Metrics"] + - AuthZ: + - product_analytics_experiments_read + summary: Get experiment + tags: + - Experiments x-permission: - operator: OR + operator: AND permissions: - - dora_metrics_write - /api/v2/dora/failures: - post: + - product_analytics_experiments_read + patch: description: |- - Use this API endpoint to get a list of incident events. - operationId: ListDORAFailures + Update mutable experiment fields. State and protocol restrictions apply. + + **PATCH behavior** + + - Omitted fields stay unchanged, including fields inside `datadog_flag_configuration`. + - Supplied `tags`, `teams`, `related_links`, `decision_metrics`, and `variants` replace their stored lists. + - Validation can return several field errors before saving any changes. The response is HTTP 400 if any error + concerns invalid input. It is HTTP 409 if all errors concern state or protocol conflicts. + + **Result refreshes** + + This endpoint does not start a pipeline run. `meta.needs_pipeline_refresh` states whether the edit requires a + run. When true, POST to `meta.refresh_endpoint` after finishing your edits. Its `full_refresh` query parameter + selects the run type. + + Keep refresh requirements across edits. A later false value does not clear an earlier requirement. Any + `full_refresh=true` requirement takes priority. + + After start, STATIC and STEPS exposure changes for warehouse experiments without a Datadog flag attempt to + recalculate stored results. Changes to decision metrics or the control variant also attempt recalculation when + results exist. If stored data is insufficient or recalculation fails, the edit stays saved and + `meta.needs_pipeline_refresh` is true. + + **Exposure rules** + + - Draft experiments can replace the full STATIC or STEPS plan through `traffic_exposure`. + - Warehouse steps start at `assignments_start_date` and can have different durations. + - Running warehouse experiments can replace step fractions, durations, and exposure mode. Retained variant + weights cannot change through this API. You can send unchanged values again. + - After a warehouse experiment ends, configuration replacement supports only STATIC fraction changes. + - New Datadog plans have at most five steps. The first fraction must be positive. All steps except the last + have equal durations. Durations exclude pauses. + - The last step has a null duration. Its fraction stays in effect until assignment ends. + - After start, use the experiment UI to change traffic exposure for experiments linked to a Datadog flag. + + **Metadata** + + `structured_metadata` updates fields by `field_key`. Use `freetext_value: ""` or `enum_values: []` to clear an + optional field. Omitted fields stay unchanged. A null or empty `structured_metadata` attribute makes no + change. + + **Flag changes** + + Before start, a Datadog update creates or edits the saved draft allocation. To add or replace a flag, send + `variants` and `traffic_exposure`. Inside `datadog_flag_configuration`, send `feature_flag_id`, + `environment_id`, `targeting_rules`, and `entry_point`. Use `targeting_rules: []` and `entry_point: null` when + unused. + + To replace a flag, also set `reset_on_feature_flag_change: true` inside that object. The server deletes the + old draft and creates a new one in the same transaction. The response includes a + `datadog_flag_configuration_reset` warning in `meta.warnings`. + + Set `datadog_flag_configuration: null` to delete the draft allocation. This also clears the experiment's flag + association, variants, assignment sources, and entry point. The experiment remains. + + Flag replacement and removal require a draft experiment without warehouse exposure. These actions do not + convert hybrid experiments. + operationId: PatchExperiment + parameters: + - description: "The UUID of the experiment." + in: path + name: experiment_id + required: true + schema: + description: "The UUID of the experiment." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid + type: string requestBody: content: application/json: @@ -154962,14 +166375,33 @@ paths: value: data: attributes: - from: "2025-01-01T00:00:00Z" - limit: 100 - query: severity:(SEV-1 OR SEV-2) env:production team:backend - sort: -started_at - to: "2025-01-31T23:59:59Z" - type: dora_failures_list_request + datadog_flag_configuration: + entry_point: + environment_id: 550e8400-e29b-41d4-a716-446655440005 + feature_flag_id: 550e8400-e29b-41d4-a716-446655440014 + reset_on_feature_flag_change: true + targeting_rules: [] + structured_metadata: + - enum_values: + - general_availability + field_key: launch_stage + traffic_exposure: + fraction: 1 + mode: STATIC + variants: + - feature_flag_variant_id: 550e8400-e29b-41d4-a716-446655440020 + is_active: true + is_control: true + key: control + weight: 50 + - feature_flag_variant_id: 550e8400-e29b-41d4-a716-446655440021 + is_active: true + is_control: false + key: treatment + weight: 50 + type: experiments schema: - $ref: "#/components/schemas/DORAListFailuresRequest" + $ref: "#/components/schemas/ExperimentsPatchExperimentV2Request" required: true responses: "200": @@ -154979,51 +166411,139 @@ paths: default: value: data: - - attributes: - env: production - name: Database outage - services: - - test-service - severity: SEV-1 - started_at: "2023-08-31T14:29:34Z" - team: backend - id: abc-123 - type: dora_failure + attributes: + assignments_end_date: "2026-08-15T00:00:00Z" + assignments_start_date: "2026-08-01T00:00:00Z" + concluded_at: + created_at: "2026-07-31T12:00:00Z" + datadog_flag_configuration: + allocation_key: 550e8400-e29b-41d4-a716-446655440031 + entry_point: + environment_id: 550e8400-e29b-41d4-a716-446655440005 + feature_flag_id: 550e8400-e29b-41d4-a716-446655440014 + targeting_rules: [] + decision_metrics: + - is_primary: true + metric_id: b1a2c3d4-0000-0000-0000-000000000000 + events_end_date: "2026-08-22T00:00:00Z" + events_start_date: "2026-08-01T00:00:00Z" + experiment_type: STANDARD + name: Checkout button test + pipeline_table_suffix: a1b2c3d4 + related_links: [] + results_last_updated: + split_by_properties: [] + status: DRAFT + structured_metadata: + - enum_values: + - general_availability + field_display_name: Launch stage + field_key: launch_stage + field_type: ENUM + - field_display_name: Notes + field_key: notes + field_type: FREETEXT + freetext_value: Checkout redesign + subject_type_id: c2b3d4e5-0000-0000-0000-000000000000 + tags: [] + teams: [] + traffic_exposure: + fraction: 1 + mode: STATIC + updated_at: "2026-07-31T13:00:00Z" + variants: + - feature_flag_variant_id: 550e8400-e29b-41d4-a716-446655440020 + is_active: true + is_control: true + key: control + name: Control + weight: 50 + - feature_flag_variant_id: 550e8400-e29b-41d4-a716-446655440021 + is_active: true + is_control: false + key: treatment + name: Treatment + weight: 50 + warehouse_exposure_configuration: + id: 550e8400-e29b-41d4-a716-446655440000 + type: experiments + meta: + needs_pipeline_refresh: false + warnings: + - code: datadog_flag_configuration_reset + detail: >- + Changing feature_flag_id created a new draft allocation with the supplied randomization settings. schema: - $ref: "#/components/schemas/DORAFailuresListResponse" + $ref: "#/components/schemas/ExperimentsPatchExperimentV2Response" description: OK "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + description: >- + Invalid request: malformed field, a read-only attribute was sent, a referenced ID doesn't exist, an allocation change is not supported after start, or the resulting analysis configuration is invalid. May return multiple errors. + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: >- + Missing or invalid authentication (dd-api-key + dd-application-key headers, or a valid user session). "403": - $ref: "#/components/responses/NotAuthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: >- + Authenticated caller lacks the product_analytics_experiments_write permission, lacks permission to edit this experiment, or lacks feature-flag and environment read permissions for a Datadog-backed configuration. + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: No experiment with this ID exists for the organization. + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: >- + The requested configuration is incompatible with the experiment, or a feature flag change requires explicit reset consent and a complete target configuration (codes: unsupported_configuration, feature_flag_change_requires_reset, or feature_flag_change_requires_complete_configuration). + "415": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Request body sent with a media type other than application/json or application/vnd.api+json. "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] - summary: Get a list of incident events - tags: ["DORA Metrics"] - x-codegen-request-body-name: body + - AuthZ: + - product_analytics_experiments_write + summary: Patch experiment + tags: + - Experiments x-permission: - operator: OR + operator: AND permissions: - - dora_metrics_read - /api/v2/dora/failures/{failure_id}: + - product_analytics_experiments_write + /api/v2/experiments/{experiment_id}/analysis-plan: get: - description: |- - Use this API endpoint to get an incident event. - operationId: GetDORAFailure + description: >- + Get the effective public statistical analysis settings for an experiment. has_custom_analysis_settings compares only settings the caller can edit; protocol-required differences from company defaults do not make the plan custom. + operationId: GetExperimentAnalysisPlan parameters: - - description: The ID of the incident event. + - description: "The UUID of the experiment." in: path - name: failure_id + name: experiment_id required: true schema: + description: "The UUID of the experiment." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid type: string responses: "200": @@ -155034,48 +166554,77 @@ paths: value: data: attributes: - env: production - name: Database outage - services: - - test-service - severity: SEV-1 - started_at: "2023-08-31T14:29:34Z" - team: backend - id: abc-123 - type: dora_failure + bayesian_prior: + degrees_of_freedom: + standard_deviation: 0.05 + confidence_interval_method: Bayesian + confidence_level: 0.95 + cuped_lookback_period_days: 30 + experiment_auto_end_days: 0 + experiment_min_duration: 0 + experiment_min_sample_size: 0 + has_custom_analysis_settings: false + is_cuped_enabled: true + is_multiple_testing_correction_enabled: false + preferential_bonferroni_primary_metric_weight: 0.5 + target_duration_days: 14 + id: 550e8400-e29b-41d4-a716-446655440000 + type: analysis-plans schema: - $ref: "#/components/schemas/DORAFailureFetchResponse" + $ref: "#/components/schemas/ExperimentsAnalysisPlanV2DTO" description: OK "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request + description: Malformed experiment ID. + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized "403": - $ref: "#/components/responses/NotAuthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] - summary: Get an incident event - tags: ["DORA Metrics"] - x-codegen-request-body-name: body + - AuthZ: + - product_analytics_experiments_read + summary: Get experiment analysis plan + tags: + - Experiments x-permission: - operator: OR + operator: AND permissions: - - dora_metrics_read - /api/v2/dora/incident: - post: - deprecated: true - description: |- - **Note**: This endpoint is deprecated. Please use `/api/v2/dora/failure` instead. - - Use this API endpoint to provide incident data. - Tracking incidents gives a side-by-side view of how failed deployments translate into real-world incidents. - operationId: CreateDORAIncident + - product_analytics_experiments_read + patch: + description: >- + Update selected statistical analysis settings. Omitted attributes remain unchanged and nullable attributes can be cleared with null. Protocol-locked settings cannot be changed. + operationId: UpdateExperimentAnalysisPlanAttributes + parameters: + - description: "The UUID of the experiment." + in: path + name: experiment_id + required: true + schema: + description: "The UUID of the experiment." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid + type: string requestBody: content: application/json: @@ -155084,23 +166633,23 @@ paths: value: data: attributes: - custom_tags: - - language:java - - department:engineering - env: staging - finished_at: 1693491984000000000 - git: - commit_sha: 66adc9350f2cc9b250b69abddab733dd55e1a588 - repository_url: https://github.com/organization/example-repository - name: Webserver is down failing all requests. - services: - - test-service - severity: High - started_at: 1693491974000000000 - team: backend - version: v1.12.07 + bayesian_prior: + degrees_of_freedom: + standard_deviation: 0.05 + confidence_interval_method: Bayesian + confidence_level: 0.95 + cuped_lookback_period_days: 30 + experiment_auto_end_days: 0 + experiment_min_duration: 0 + experiment_min_sample_size: 0 + is_cuped_enabled: true + is_multiple_testing_correction_enabled: false + preferential_bonferroni_primary_metric_weight: 0.5 + target_duration_days: 14 + id: 550e8400-e29b-41d4-a716-446655440000 + type: analysis-plans schema: - $ref: "#/components/schemas/DORAFailureRequest" + $ref: "#/components/schemas/ExperimentsAnalysisPlanWriteV2Request" required: true responses: "200": @@ -155110,128 +166659,99 @@ paths: default: value: data: - id: 4242fcdd31586085 - type: dora_failure + attributes: + bayesian_prior: + degrees_of_freedom: + standard_deviation: 0.05 + confidence_interval_method: Bayesian + confidence_level: 0.95 + cuped_lookback_period_days: 30 + experiment_auto_end_days: 0 + experiment_min_duration: 0 + experiment_min_sample_size: 0 + has_custom_analysis_settings: true + is_cuped_enabled: true + is_multiple_testing_correction_enabled: false + preferential_bonferroni_primary_metric_weight: 0.5 + target_duration_days: 14 + id: 550e8400-e29b-41d4-a716-446655440000 + type: analysis-plans + meta: + needs_pipeline_refresh: false schema: - $ref: "#/components/schemas/DORAFailureResponse" + $ref: "#/components/schemas/ExperimentsAnalysisPlanV2MutationResponse" description: OK - "202": - content: - application/json: - examples: - default: - value: - data: - id: 4242fcdd31586085 - type: dora_failure - schema: - $ref: "#/components/schemas/DORAFailureResponse" - description: OK - but delayed due to incident "400": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" description: Bad Request - "403": - $ref: "#/components/responses/NotAuthorizedResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - summary: Send an incident event (legacy) - tags: ["DORA Metrics"] - x-codegen-request-body-name: body - /api/v2/downtime: - get: - description: Get all scheduled downtimes. - operationId: ListDowntimes - parameters: - - description: Only return downtimes that are active when the request is made. - in: query - name: current_only - required: false - schema: - type: boolean - - description: |- - Comma-separated list of resource paths for related resources to include in the response. Supported resource - paths are `created_by` and `monitor`. - in: query - name: include - required: false - schema: - example: "created_by,monitor" - type: string - - $ref: "#/components/parameters/PageOffset" - - description: Maximum number of downtimes in the response. - example: 100 - in: query - name: page[limit] - required: false - schema: - default: 30 - format: int64 - type: integer - responses: - "200": + "401": content: application/json: - examples: - default: - value: - data: - - attributes: - created: "2024-01-01T00:00:00+00:00" - display_timezone: America/New_York - message: Message about the downtime - modified: "2024-01-01T00:00:00+00:00" - monitor_identifier: - monitor_tags: - - "*" - mute_first_recovery_notification: false - notify_end_states: - - alert - - warn - notify_end_types: - - canceled - - expired - scope: env:(staging OR prod) AND datacenter:us-east-1 - status: active - id: "00000000-0000-1234-0000-000000000000" - type: downtime - meta: - page: - total_filtered_count: 1 schema: - $ref: "#/components/schemas/ListDowntimesResponse" - description: OK + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized "403": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: The requested change conflicts with settings locked by the experiment protocol. + "415": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Request body sent with a media type other than application/json or application/vnd.api+json. "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - monitors_downtime - summary: Get all downtimes + - product_analytics_experiments_write + summary: Update experiment analysis plan attributes tags: - - Downtimes - x-pagination: - limitParam: page[limit] - pageOffsetParam: page[offset] - resultsPath: data - "x-permission": - operator: OR + - Experiments + x-permission: + operator: AND permissions: - - monitors_downtime + - product_analytics_experiments_write + /api/v2/experiments/{experiment_id}/cancel: post: - description: Schedule a downtime. - operationId: CreateDowntime + description: |- + Cancel an experiment, ending it without a winning variant. The experiment moves to CANCELLED status, the + supplied reason is recorded in its conclusion as the decision reason, and the experiment is unlinked from the + feature flag allocations that exposed it, which stops its exposure. An experiment that has already completed + its rollout, had its code removed, or been canceled cannot be canceled again. Canceling is not reversible: an + experiment cannot be returned to a running state afterward. It is also not idempotent: canceling an + already-canceled experiment returns 409, so a retry after a timeout cannot be distinguished from a + cancellation made by someone else. + operationId: CancelExperiment + parameters: + - description: "The UUID of the experiment." + in: path + name: experiment_id + required: true + schema: + description: "The UUID of the experiment." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid + type: string requestBody: content: application/json: @@ -155240,157 +166760,154 @@ paths: value: data: attributes: - display_timezone: America/New_York - message: Message about the downtime - monitor_identifier: - monitor_id: 123 - mute_first_recovery_notification: false - notify_end_states: - - alert - - warn - notify_end_types: - - canceled - - expired - schedule: - timezone: America/New_York - scope: env:(staging OR prod) AND datacenter:us-east-1 - type: downtime + reason: Experiment configuration was incorrect + type: cancel-experiment-request schema: - $ref: "#/components/schemas/DowntimeCreateRequest" - description: Schedule a downtime request body. + $ref: "#/components/schemas/ExperimentsCancelExperimentV2Request" required: true responses: - "200": + "204": + description: "The experiment was canceled and unlinked from its feature flag allocations." + "400": content: application/json: - examples: - default: - value: - data: - attributes: - created: "2024-01-01T00:00:00+00:00" - display_timezone: America/New_York - message: Message about the downtime - modified: "2024-01-01T00:00:00+00:00" - monitor_identifier: - monitor_tags: - - "*" - mute_first_recovery_notification: false - notify_end_states: - - alert - - warn - notify_end_types: - - canceled - - expired - scope: env:(staging OR prod) AND datacenter:us-east-1 - status: active - id: "00000000-0000-1234-0000-000000000000" - type: downtime schema: - $ref: "#/components/schemas/DowntimeResponse" - description: OK - "400": + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Malformed experiment ID, malformed request body, or a missing/blank reason. + "401": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: >- + Missing or invalid authentication (dd-api-key + dd-application-key headers, or a valid user session). "403": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: >- + Authenticated caller lacks the product_analytics_experiments_write permission, lacks permission to edit this experiment, or lacks contribute permission on the feature flag owning its allocation. + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: No experiment with this ID exists for the organization. + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: The experiment cannot be canceled in its current state. "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - monitors_downtime - summary: Schedule a downtime + - product_analytics_experiments_write + summary: Cancel experiment tags: - - Downtimes - x-codegen-request-body-name: body - "x-permission": - operator: OR + - Experiments + x-permission: + operator: AND permissions: - - monitors_downtime - /api/v2/downtime/{downtime_id}: - delete: - description: |- - Cancel a downtime. - - **Note**: Downtimes canceled through the API are no longer active, but are retained for approximately two days before being permanently removed. The downtime may still appear in search results until it is permanently removed. - operationId: CancelDowntime + - product_analytics_experiments_write + /api/v2/experiments/{experiment_id}/conclude: + post: + description: >- + Conclude an experiment on a winning variant. The experiment moves to DECISION_MADE status, the outcome is recorded in its conclusion, and for a flag-backed experiment the winning variant is rolled out to 100% of the linked feature flag allocation. `decision_variant_key` must match a variant in the experiment. Only an experiment that is currently running or ready for a decision can be concluded. Concluding is not reversible and is not idempotent: concluding an already-concluded experiment returns 409. + operationId: ConcludeExperiment parameters: - - description: ID of the downtime to cancel. + - description: "The UUID of the experiment." in: path - name: downtime_id + name: experiment_id required: true schema: - example: 00000000-0000-1234-0000-000000000000 + description: "The UUID of the experiment." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid type: string + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + decision_variant_key: treatment + type: conclude-experiment-request + schema: + $ref: "#/components/schemas/ExperimentsConcludeExperimentV2Request" + required: true responses: "204": - description: OK + description: >- + The experiment was concluded and the winning variant was rolled out to its linked feature flag allocation. + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Malformed experiment ID, malformed request body, or a missing decision_variant_key. + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: >- + Missing or invalid authentication (dd-api-key + dd-application-key headers, or a valid user session). "403": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: >- + Authenticated caller lacks the product_analytics_experiments_write permission, lacks permission to edit this experiment, or lacks contribute permission on the feature flag owning its allocation. "404": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Downtime not found + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: No experiment with this ID exists for the organization. + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: >- + The experiment is not running or ready for a decision, its linked feature flag environment requires an approval for the rollout this would perform, or that flag has a pending suggestion for its allocations. "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - monitors_downtime - summary: Cancel a downtime + - product_analytics_experiments_write + summary: Conclude experiment tags: - - Downtimes - "x-permission": - operator: OR + - Experiments + x-permission: + operator: AND permissions: - - monitors_downtime + - product_analytics_experiments_write + /api/v2/experiments/{experiment_id}/diagnostics: get: - description: Get downtime detail by `downtime_id`. - operationId: GetDowntime + description: >- + Get the diagnostics produced by an experiment's latest analysis run. Each diagnostic includes its category, and the response includes an overall diagnostic or pipeline lifecycle status. + operationId: GetExperimentDiagnostics parameters: - - description: ID of the downtime to fetch. + - description: "The UUID of the experiment." in: path - name: downtime_id + name: experiment_id required: true schema: - example: "00000000-0000-1234-0000-000000000000" - type: string - - description: |- - Comma-separated list of resource paths for related resources to include in the response. Supported resource - paths are `created_by` and `monitor`. - in: query - name: include - required: false - schema: - example: "created_by,monitor" + description: "The UUID of the experiment." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid type: string - - description: |- - If `true`, include the `run_as` attribute in the response, which lists the principals allowed to - act on behalf of the downtime. - - **Note**: This feature is currently in Preview and may not be available for all organizations. - in: query - name: with_run_as - required: false - schema: - default: false - type: boolean responses: "200": content: @@ -155400,98 +166917,69 @@ paths: value: data: attributes: - created: "2024-01-01T00:00:00+00:00" - display_timezone: America/New_York - message: Message about the downtime - modified: "2024-01-01T00:00:00+00:00" - monitor_identifier: - monitor_tags: - - "*" - mute_first_recovery_notification: false - notify_end_states: - - alert - - warn - notify_end_types: - - canceled - - expired - scope: env:(staging OR prod) AND datacenter:us-east-1 - status: active - id: "00000000-0000-1234-0000-000000000000" - type: downtime + diagnostics: [] + evaluated_at: "2026-08-05T09:25:00Z" + result: NO_DATA + state: COMPLETED + id: 550e8400-e29b-41d4-a716-446655440000 + type: experiment-diagnostics schema: - $ref: "#/components/schemas/DowntimeResponse" + $ref: "#/components/schemas/ExperimentsExperimentDiagnosticsV2DTO" description: OK "400": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Malformed experiment ID (not a valid UUID). + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Missing or invalid authentication. "403": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Authenticated caller lacks the product_analytics_experiments_read permission. "404": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Not Found + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: >- + No experiment with this ID exists for the organization. Lifecycle statuses in a successful response explain whether analysis has started, is running, or completed without diagnostics. "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - monitors_downtime - summary: Get a downtime + - product_analytics_experiments_read + summary: Get experiment diagnostics tags: - - Downtimes - "x-permission": - operator: OR + - Experiments + x-permission: + operator: AND permissions: - - monitors_downtime - patch: - description: Update a downtime by `downtime_id`. - operationId: UpdateDowntime + - product_analytics_experiments_read + /api/v2/experiments/{experiment_id}/metric-groups: + get: + description: >- + List every decision and non-decision metric group attached to an experiment. Metric references are returned in their stored order. An incomplete draft can have no decision group and returns only the groups that exist. + operationId: ListExperimentMetricGroups parameters: - - description: ID of the downtime to update. + - description: "The UUID of the experiment." in: path - name: downtime_id + name: experiment_id required: true schema: - example: "00e000000-0000-1234-0000-000000000000" + description: "The UUID of the experiment." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid type: string - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - display_timezone: America/New_York - message: Message about the downtime - monitor_identifier: - monitor_id: 123 - mute_first_recovery_notification: false - notify_end_states: - - alert - - warn - notify_end_types: - - canceled - - expired - schedule: - timezone: America/New_York - scope: env:(staging OR prod) AND datacenter:us-east-1 - id: 00000000-0000-1234-0000-000000000000 - type: downtime - schema: - $ref: "#/components/schemas/DowntimeUpdateRequest" - description: Update a downtime request body. - required: true responses: "200": content: @@ -155499,68 +166987,62 @@ paths: examples: default: value: - data: - attributes: - created: "2024-01-01T00:00:00+00:00" - display_timezone: America/New_York - message: Message about the downtime - modified: "2024-01-01T00:00:00+00:00" - monitor_identifier: - monitor_tags: - - "*" - mute_first_recovery_notification: false - notify_end_states: - - alert - - warn - notify_end_types: - - canceled - - expired - scope: env:(staging OR prod) AND datacenter:us-east-1 - status: active - id: "00000000-0000-1234-0000-000000000000" - type: downtime + data: [] schema: - $ref: "#/components/schemas/DowntimeResponse" + $ref: "#/components/schemas/ExperimentsExperimentMetricGroupV2DTOArray" description: OK "400": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Malformed experiment ID. + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Missing or invalid authentication. "403": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: The caller lacks the experiments read permission. "404": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Downtime not found + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: No experiment with this ID exists for the organization. "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - monitors_downtime - summary: Update a downtime + - product_analytics_experiments_read + summary: List experiment metric groups tags: - - Downtimes - x-codegen-request-body-name: body - "x-permission": - operator: OR + - Experiments + x-permission: + operator: AND permissions: - - monitors_downtime - /api/v2/error-tracking/issues/search: + - product_analytics_experiments_read post: - description: Search issues endpoint allows you to programmatically search for issues within your organization. This endpoint returns a list of issues that match a given search query, following the event search syntax. The search results are limited to a maximum of 100 issues per request. - operationId: SearchIssues + description: >- + Create a non-decision metric group. The optional metrics array is ordered. Decision groups remain managed through decision_metrics on the experiment resource. This operation does not synchronously recompute results. + operationId: CreateExperimentMetricGroup parameters: - - $ref: "#/components/parameters/SearchIssuesIncludeQueryParameter" + - description: "The UUID of the experiment." + in: path + name: experiment_id + required: true + schema: + description: "The UUID of the experiment." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid + type: string requestBody: content: application/json: @@ -155569,58 +167051,111 @@ paths: value: data: attributes: - from: 1671612804000 - order_by: IMPACTED_SESSIONS - persona: BACKEND - query: service:orders-* AND @language:go - to: 1671620004000 - type: search_request + metrics: + - metric_id: 550e8400-e29b-41d4-a716-446655440021 + name: Diagnostics + type: experiment-metric-groups schema: - $ref: "#/components/schemas/IssuesSearchRequest" - description: Search issues request payload. + $ref: "#/components/schemas/ExperimentsCreateExperimentMetricGroupV2Request" required: true responses: - "200": + "201": content: application/json: examples: default: value: data: - - attributes: - impacted_sessions: 12 - impacted_users: 4 - total_count: 82 - id: abc-123 - type: error_tracking_search_result + attributes: + is_decision: false + metrics: + - is_primary: false + metric_id: 550e8400-e29b-41d4-a716-446655440021 + metric_name: Checkout conversion + name: Diagnostics + id: 550e8400-e29b-41d4-a716-446655440022 + type: experiment-metric-groups + meta: + needs_pipeline_refresh: false schema: - $ref: "#/components/schemas/IssuesSearchResponse" - description: OK + $ref: "#/components/schemas/ExperimentsExperimentMetricGroupMutationV2" + description: Created "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Conflict + "415": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Request body sent with a media type other than application/json or application/vnd.api+json. "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - error_tracking_read - summary: Search error tracking issues + - product_analytics_experiments_write + summary: Create experiment metric group tags: - - Error Tracking - /api/v2/error-tracking/issues/{issue_id}: - get: - description: Retrieve the full details for a specific error tracking issue, including attributes and relationships. - operationId: GetIssue + - Experiments + x-permission: + operator: AND + permissions: + - product_analytics_experiments_write + /api/v2/experiments/{experiment_id}/metric-groups/from-collection/{metric_collection_id}: + post: + description: >- + Copy a metric collection into a new non-decision metric group. The group is a request-time snapshot: later changes to the collection do not affect the experiment. Metric order is preserved. The operation is not idempotent, and incompatible or empty collections are rejected without creating a group. + operationId: CreateExperimentMetricGroupFromCollection parameters: - - $ref: "#/components/parameters/IssueIDPathParameter" - - $ref: "#/components/parameters/GetIssueIncludeQueryParameter" + - description: "The UUID of the experiment." + in: path + name: experiment_id + required: true + schema: + description: "The UUID of the experiment." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid + type: string + - description: "The UUID of the metric collection." + in: path + name: metric_collection_id + required: true + schema: + description: "The UUID of the metric collection." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid + type: string responses: - "200": + "201": content: application/json: examples: @@ -155628,68 +167163,157 @@ paths: value: data: attributes: - error_message: "object of type 'NoneType' has no len()" - error_type: builtins.TypeError - service: test-service - state: OPEN - id: 00000000-0000-0000-0000-000000000001 - type: issue + is_decision: false + metrics: + - is_primary: false + metric_id: 550e8400-e29b-41d4-a716-446655440020 + metric_name: Checkout conversion + name: Checkout metrics + id: 550e8400-e29b-41d4-a716-446655440022 + type: experiment-metric-groups + meta: + needs_pipeline_refresh: false schema: - $ref: "#/components/schemas/IssueResponse" - description: OK + $ref: "#/components/schemas/ExperimentsExperimentMetricGroupMutationV2" + description: Created "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Conflict "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - error_tracking_read - summary: Get the details of an error tracking issue + - product_analytics_experiments_write + summary: Create experiment metric group from collection tags: - - Error Tracking - /api/v2/error-tracking/issues/{issue_id}/assignee: + - Experiments + x-permission: + operator: AND + permissions: + - product_analytics_experiments_write + /api/v2/experiments/{experiment_id}/metric-groups/{metric_group_id}: delete: - description: Remove the assignee of an issue by `issue_id`. - operationId: DeleteIssueAssignee + description: >- + Delete a non-decision metric group and its memberships. Decision groups remain managed through the experiment resource. This operation does not start a pipeline. Read experiment results after deletion to check stale metadata, then explicitly refresh results when required. + operationId: DeleteExperimentMetricGroup parameters: - - $ref: "#/components/parameters/IssueIDPathParameter" + - description: "The UUID of the experiment." + in: path + name: experiment_id + required: true + schema: + description: "The UUID of the experiment." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid + type: string + - description: "The UUID of the metric group." + in: path + name: metric_group_id + required: true + schema: + description: "The UUID of the metric group." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid + type: string responses: "204": description: No Content "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Conflict "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - error_tracking_read - - error_tracking_write - - cases_read - - cases_write - summary: Remove the assignee of an issue + - product_analytics_experiments_write + summary: Delete experiment metric group tags: - - Error Tracking - put: - description: Update the assignee of an issue by `issue_id`. - operationId: UpdateIssueAssignee + - Experiments + x-permission: + operator: AND + permissions: + - product_analytics_experiments_write + patch: + description: >- + Update a non-decision metric group. Omitted attributes are unchanged; a supplied metrics array is the complete ordered replacement. Decision groups remain managed through the experiment resource. This operation does not synchronously recompute results. + operationId: UpdateExperimentMetricGroup parameters: - - $ref: "#/components/parameters/IssueIDPathParameter" + - description: "The UUID of the experiment." + in: path + name: experiment_id + required: true + schema: + description: "The UUID of the experiment." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid + type: string + - description: "The UUID of the metric group." + in: path + name: metric_group_id + required: true + schema: + description: "The UUID of the metric group." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid + type: string requestBody: content: application/json: @@ -155697,11 +167321,14 @@ paths: default: value: data: - id: 87cb11a0-278c-440a-99fe-701223c80296 - type: assignee + attributes: + metrics: + - metric_id: 550e8400-e29b-41d4-a716-446655440021 + name: Reliability + id: 550e8400-e29b-41d4-a716-446655440022 + type: experiment-metric-groups schema: - $ref: "#/components/schemas/IssueUpdateAssigneeRequest" - description: Update issue assignee request payload. + $ref: "#/components/schemas/ExperimentsPatchExperimentMetricGroupV2Request" required: true responses: "200": @@ -155712,419 +167339,416 @@ paths: value: data: attributes: - error_message: "object of type 'NoneType' has no len()" - error_type: builtins.TypeError - service: test-service - state: OPEN - id: 00000000-0000-0000-0000-000000000003 - type: issue + is_decision: false + metrics: + - is_primary: false + metric_id: 550e8400-e29b-41d4-a716-446655440021 + metric_name: Checkout conversion + name: Reliability + id: 550e8400-e29b-41d4-a716-446655440022 + type: experiment-metric-groups + meta: + needs_pipeline_refresh: false schema: - $ref: "#/components/schemas/IssueResponse" + $ref: "#/components/schemas/ExperimentsExperimentMetricGroupMutationV2" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Conflict + "415": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Request body sent with a media type other than application/json or application/vnd.api+json. "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - error_tracking_read - - error_tracking_write - - cases_read - - cases_write - summary: Update the assignee of an issue + - product_analytics_experiments_write + summary: Update experiment metric group tags: - - Error Tracking - /api/v2/error-tracking/issues/{issue_id}/state: - put: - description: Update the state of an issue by `issue_id`. Use this endpoint to move an issue between states such as `OPEN`, `RESOLVED`, or `IGNORED`. - operationId: UpdateIssueState + - Experiments + x-permission: + operator: AND + permissions: + - product_analytics_experiments_write + /api/v2/experiments/{experiment_id}/results: + get: + description: >- + Get an experiment's computed results: per-variant statistical analysis for the latest successful run. A historical run cannot be selected. Unavailable analysis statistics, including `p_value` and `confidence_interval`, are omitted. The `numerator`, `denominator`, and `variant_metric_value` fields can be null when their values are unavailable. Do not treat an omitted or null value as zero. + operationId: GetExperimentResults parameters: - - $ref: "#/components/parameters/IssueIDPathParameter" - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - state: RESOLVED - id: c1726a66-1f64-11ee-b338-da7ad0900002 - type: error_tracking_issue - schema: - $ref: "#/components/schemas/IssueUpdateStateRequest" - description: Update issue state request payload. - required: true + - description: "The UUID of the experiment." + in: path + name: experiment_id + required: true + schema: + description: "The UUID of the experiment." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid + type: string responses: "200": content: application/json: examples: default: + description: >- + Selected fields from an illustrative response. Additional analyses, including control analyses, are omitted here. Conversion is 10% for control and 11% for treatment. The displayed fixed-sample absolute estimate of 0.01 means one percentage point. CUPED is not applied. Statistical values are rounded. + summary: Selected conversion result fields value: data: - attributes: - error_message: "object of type 'NoneType' has no len()" - error_type: builtins.TypeError - service: test-service - state: RESOLVED - id: 00000000-0000-0000-0000-000000000002 - type: issue + - attributes: + assignment_count: 10000 + experiment_id: 550e8400-e29b-41d4-a716-446655440000 + is_control: true + metrics: + - assignment_count: 10000 + denominator: 10000 + desired_change: METRIC_INCREASES + metric_id: 550e8400-e29b-41d4-a716-446655440002 + metric_name: Checkout conversion + numerator: 1000 + variant_key: control + variant_name: Control + id: 550e8400-e29b-41d4-a716-446655440000:control + type: experiment-variant-results + - attributes: + assignment_count: 10000 + experiment_id: 550e8400-e29b-41d4-a716-446655440000 + is_control: false + metrics: + - analyses: + - confidence_interval: + lower: 0.0015 + upper: 0.0185 + confidence_level: 0.95 + is_cuped_adjusted: false + is_unreliable: false + lift_type: ABSOLUTE + method: FIXED_SAMPLE + p_value: 0.021 + point_estimate: 0.01 + standard_error: 0.004335 + variant_metric_value: 0.11 + z_score: 2.307 + assignment_count: 10000 + denominator: 10000 + desired_change: METRIC_INCREASES + metric_id: 550e8400-e29b-41d4-a716-446655440002 + metric_name: Checkout conversion + numerator: 1100 + variant_key: treatment + variant_name: Treatment + id: 550e8400-e29b-41d4-a716-446655440000:treatment + type: experiment-variant-results + meta: + is_stale: false + results_last_updated: "2026-08-15T12:00:00Z" + stale_reasons: [] + simple_metric: + description: >- + Selected fields from an illustrative response for orders per assigned user. Additional analyses, including control analyses, are omitted here. This simple metric has no denominator aggregation, so denominator is null. With 10000 assigned users per variant, the totals of 20000 and 22000 orders give means of 2 and 2.2. The displayed absolute estimate is 0.2 orders per user. The interval uses the illustrative standard error of 0.02. + summary: Selected simple metric result fields + value: + data: + - attributes: + assignment_count: 10000 + experiment_id: 550e8400-e29b-41d4-a716-446655440000 + is_control: true + metrics: + - assignment_count: 10000 + denominator: + desired_change: METRIC_INCREASES + metric_id: 550e8400-e29b-41d4-a716-446655440003 + metric_name: Orders per assigned user + numerator: 20000 + variant_key: control + variant_name: Control + id: 550e8400-e29b-41d4-a716-446655440000:control + type: experiment-variant-results + - attributes: + assignment_count: 10000 + experiment_id: 550e8400-e29b-41d4-a716-446655440000 + is_control: false + metrics: + - analyses: + - confidence_interval: + lower: 0.1608 + upper: 0.2392 + confidence_level: 0.95 + is_cuped_adjusted: false + is_unreliable: false + lift_type: ABSOLUTE + method: FIXED_SAMPLE + point_estimate: 0.2 + standard_error: 0.02 + variant_metric_value: 2.2 + z_score: 10.0 + assignment_count: 10000 + denominator: + desired_change: METRIC_INCREASES + metric_id: 550e8400-e29b-41d4-a716-446655440003 + metric_name: Orders per assigned user + numerator: 22000 + variant_key: treatment + variant_name: Treatment + id: 550e8400-e29b-41d4-a716-446655440000:treatment + type: experiment-variant-results + meta: + is_stale: false + results_last_updated: "2026-08-15T12:00:00Z" + stale_reasons: [] schema: - $ref: "#/components/schemas/IssueResponse" + $ref: "#/components/schemas/ExperimentsVariantResultsV2DTOArray" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Malformed experiment ID (not a valid UUID), or the experiment is not configured for analysis. "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Missing or invalid authentication. "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Authenticated caller lacks the product_analytics_experiments_read permission. "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: No experiment with this ID exists, or results are not available for it yet. + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: The experiment's metrics are incompatible with analysis. "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - error_tracking_read - - error_tracking_write - summary: Update the state of an issue + - product_analytics_experiments_read + summary: Get experiment results tags: - - Error Tracking - /api/v2/events: - get: - description: |- - List endpoint returns events that match an events search query. - [Results are paginated similarly to logs](https://docs.datadoghq.com/logs/guide/collect-multiple-logs-with-pagination). - - Use this endpoint to see your latest events. - operationId: ListEvents + - Experiments + x-permission: + operator: AND + permissions: + - product_analytics_experiments_read + /api/v2/experiments/{experiment_id}/results/refresh: + post: + description: >- + Request a results refresh for one experiment. HTTP 202 confirms acceptance, not completed results. The response identifies the experiment and does not include a job ID. Read experiment results to check freshness. A request while a refresh is queued or running returns 409. After completion, another request can start another refresh. + operationId: RefreshExperimentResults parameters: - - description: Search query following events syntax. - in: query - name: filter[query] - required: false - schema: - type: string - - description: Minimum timestamp for requested events, in milliseconds. - in: query - name: filter[from] - required: false - schema: - type: string - - description: Maximum timestamp for requested events, in milliseconds. - in: query - name: filter[to] - required: false - schema: - type: string - - description: Order of events in results. - in: query - name: sort - required: false - schema: - $ref: "#/components/schemas/EventsSort" - - description: |- - List following results with a cursor provided in the previous query. - example: "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==" - in: query - name: page[cursor] - required: false + - description: "The UUID of the experiment." + in: path + name: experiment_id + required: true schema: + description: "The UUID of the experiment." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid type: string - - description: Maximum number of events in the response. - example: 25 + - description: Force a full warehouse rebuild. Defaults to false when omitted. in: query - name: page[limit] - required: false + name: full_refresh schema: - default: 10 - format: int32 - maximum: 1000 - type: integer + description: "Force a full warehouse rebuild. Defaults to false when omitted." + type: boolean responses: - "200": + "202": content: application/json: examples: default: value: data: - - attributes: - message: "Test event" - tags: - - "env:prod" - timestamp: "2019-01-02T09:42:36.320Z" - id: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA - type: event - meta: - request_id: MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR + attributes: + success: true + id: 550e8400-e29b-41d4-a716-446655440000 + type: experiment-results-refresh schema: - $ref: "#/components/schemas/EventsListResponse" - description: OK + $ref: "#/components/schemas/ExperimentsRefreshExperimentResultsV2DTO" + description: Accepted "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Malformed experiment ID (not a valid UUID), or full_refresh is not a valid boolean. + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Missing or invalid authentication. "403": - $ref: "#/components/responses/NotAuthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: >- + Authenticated caller lacks the product_analytics_experiments_write permission, or lacks edit permission on this experiment. + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: No experiment with this ID exists for the organization. + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: A refresh is already queued or running for this experiment. "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - events_read - summary: Get a list of events - tags: ["Events"] - x-pagination: - cursorParam: page[cursor] - cursorPath: meta.page.after - limitParam: page[limit] - resultsPath: data - "x-permission": - operator: OR + - product_analytics_experiments_write + summary: Refresh experiment results + tags: + - Experiments + x-permission: + operator: AND permissions: - - events_read + - product_analytics_experiments_write + /api/v2/experiments/{experiment_id}/start: post: - description: |- - This endpoint allows you to publish events. - - **Note:** To utilize this endpoint with our client libraries, please ensure you are using the latest version released on or after July 1, 2025. Earlier versions do not support this functionality. - - **Important:** Upgrade to the latest client library version to use the updated endpoint at `https://event-management-intake.{site}/api/v2/events`. Older client library versions of the Post an event (v2) API send requests to a deprecated endpoint (`https://api.{site}/api/v2/events`). - - ✅ **Only events with the `change` or `alert` category** are in General Availability. For change events, see [Change Tracking](https://docs.datadoghq.com/change_tracking) for more details. - - ❌ For use cases involving other event categories, use the V1 endpoint or reach out to [support](https://www.datadoghq.com/support/). - operationId: CreateEvent + description: >- + Start an experiment. The experiment is started exactly as it is configured; this endpoint accepts no attributes, and a request body carrying any is rejected rather than ignored. Set the run window, duration, or variants with PATCH /api/v2/experiments/{experiment_id} before starting. An unconfigured draft returns HTTP 409. Configure either warehouse_exposure_configuration or datadog_flag_configuration, plus the required experiment fields, before starting. Start validation errors can include meta.configuration_pointer to identify a field on the experiment to correct. For a flag-backed experiment this enables the linked feature flag's environment, clears any stored variant override on it, and starts the allocation's rollout. The request is idempotent: an experiment that is already running or ready for a decision still returns 204, so a retry after a timeout is safe. One exception: an experiment scheduled to start is accepted only when it is backed by your own feature flag; a Datadog-flag + experiment in that state returns 409 because its stored state and flag allocation disagree. Cancel and conclude are not idempotent and return 409 when repeated. + operationId: StartExperiment + parameters: + - description: "The UUID of the experiment." + in: path + name: experiment_id + required: true + schema: + description: "The UUID of the experiment." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid + type: string requestBody: content: application/json: examples: - alert-event: - description: Example of an alert event for tracking alerts and monitoring events. - summary: Alert Event - value: {"data": {"attributes": {"aggregation_key": "deduplication_key_here", "attributes": {"custom": {"my-object-attribute": {"my-array-attribute": [1, 2, 3], "my-array-object-attribute": ["name": "test-object-1", "name": "test-object-2"], "my-integer-attribute": 1}, "my-string-attribute": "my-custom-value"}, "links": [{"category": "runbook", "title": "Datadog website", "url": "https://datadoghq.com"}], "priority": "1", "status": "error"}, "category": "alert", "message": "Something is broken!", "tags": ["service:my-test-service", "datacenter:primary"], "title": "My Alerting Event"}, "type": "event"}} - change-event: - description: Example of a change event for tracking configuration or feature flag changes. - summary: Change Event - value: {"data": {"attributes": {"aggregation_key": "aggregation_key_123", "attributes": {"author": {"name": "example@datadog.com", "type": "user"}, "change_metadata": {"dd": {"team": "datadog_team", "user_email": "datadog@datadog.com", "user_id": "datadog_user_id", "user_name": "datadog_username"}, "resource_link": "datadog.com/feature/fallback_payments_test"}, "changed_resource": {"name": "fallback_payments_test", "type": "feature_flag"}, "impacted_resources": [{"name": "payments_api", "type": "service"}], "new_value": {"enabled": true, "percentage": "50%", "rule": {"datacenter": "devcycle.us1.prod"}}, "prev_value": {"enabled": true, "percentage": "10%", "rule": {"datacenter": "devcycle.us1.prod"}}}, "category": "change", "host": "hostname", "integration_id": "custom-events", "message": "payment_processed feature flag has been enabled", "tags": ["env:api_client_test"], "timestamp": "2020-01-01T01:30:15.010000Z", "title": "payment_processed feature flag updated"}, "type": "event"}} default: value: data: - attributes: - aggregation_key: aggregation_key_123 - attributes: - author: - name: example@datadog.com - type: user - change_metadata: - dd: - team: datadog_team - user_email: datadog@datadog.com - user_id: datadog_user_id - user_name: datadog_username - resource_link: datadog.com/feature/fallback_payments_test - changed_resource: - name: fallback_payments_test - type: feature_flag - impacted_resources: - - name: payments_api - type: service - new_value: - enabled: true - percentage: 50% - rule: - datacenter: devcycle.us1.prod - prev_value: - enabled: true - percentage: 10% - rule: - datacenter: devcycle.us1.prod - category: change - host: hostname - integration_id: custom-events - message: payment_processed feature flag has been enabled - tags: - - env:api_client_test - timestamp: "2020-01-01T01:30:15.010000Z" - title: payment_processed feature flag updated - type: event + type: start-experiment-request schema: - $ref: "#/components/schemas/EventCreateRequestPayload" - description: Event creation request payload. - required: true + $ref: "#/components/schemas/ExperimentsStartExperimentV2Request" + required: false responses: - "202": + "204": + description: The experiment was started. + "400": content: application/json: - examples: - default: - value: - data: - attributes: - attributes: - evt: - uid: abc-123 - type: event schema: - $ref: "#/components/schemas/EventCreateResponsePayload" - description: OK - "400": + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: >- + Malformed experiment ID, a request body carrying attributes this endpoint does not accept, or an experiment managed by a specialized workflow that cannot use this start endpoint. + "401": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad request + description: >- + Missing or invalid authentication (dd-api-key + dd-application-key headers, or a valid user session). "403": content: application/json: schema: $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: [] - servers: - - url: https://{subdomain}.{site} - variables: - site: - default: datadoghq.com - description: The regional site for customers. - enum: - - datadoghq.com - - us3.datadoghq.com - - us5.datadoghq.com - - ap1.datadoghq.com - - ap2.datadoghq.com - - uk1.datadoghq.com - - datadoghq.eu - - ddog-gov.com - - us2.ddog-gov.com - x-enum-varnames: - - US1 - - US3 - - US5 - - AP1 - - AP2 - - UK1 - - EU1 - - GOV - - US2_GOV - subdomain: - default: event-management-intake - description: The subdomain where the API is deployed. - - url: "{protocol}://{name}" - variables: - name: - default: event-management-intake.datadoghq.com - description: Full site DNS name. - protocol: - default: https - description: The protocol for accessing the API. - - url: https://{subdomain}.{site} - variables: - site: - default: datadoghq.com - description: Any Datadog deployment. - subdomain: - default: event-management-intake - description: The subdomain where the API is deployed. - summary: Post an event - tags: ["Events"] - x-codegen-request-body-name: body - /api/v2/events/search: - post: - description: |- - List endpoint returns events that match an events search query. - [Results are paginated similarly to logs](https://docs.datadoghq.com/logs/guide/collect-multiple-logs-with-pagination). - - Use this endpoint to build complex events filtering and search. - operationId: SearchEvents - requestBody: - content: - "application/json": - examples: - default: - value: - filter: - from: now-15m - query: service:web* AND @http.status_code:[200 TO 299] - to: now - options: - timezone: GMT - page: - cursor: eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ== - limit: 25 - sort: timestamp - schema: - $ref: "#/components/schemas/EventsListRequest" - required: false - responses: - "200": + description: >- + Authenticated caller lacks the product_analytics_experiments_write permission, lacks permission to edit this experiment, or lacks contribute permission on the feature flag owning its allocation. + "404": content: application/json: - examples: - default: - value: - data: - - attributes: - message: "Test event" - tags: - - "env:prod" - timestamp: "2019-01-02T09:42:36.320Z" - id: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA - type: event - meta: - request_id: MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR schema: - $ref: "#/components/schemas/EventsListResponse" - description: OK - "400": - $ref: "#/components/responses/BadRequestResponse" - "403": - $ref: "#/components/responses/NotAuthorizedResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: No experiment with this ID exists for the organization. + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: >- + The experiment cannot be started from its current state, its stored setup is incomplete (missing subject type, primary metric, variants, assignment source, or run window), its linked feature flag environment requires an approval, or that flag has a pending suggestion for a property this would change (environment status, override variant, rollout, or allocations). "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - events_read - summary: Search events - tags: ["Events"] - x-codegen-request-body-name: body - x-pagination: - cursorParam: body.page.cursor - cursorPath: meta.page.after - limitParam: body.page.limit - resultsPath: data - "x-permission": - operator: OR + - product_analytics_experiments_write + summary: Start experiment + tags: + - Experiments + x-permission: + operator: AND permissions: - - events_read - /api/v2/events/{event_id}: + - product_analytics_experiments_write + /api/v2/experiments/{experiment_id}/traffic-summary: get: description: >- - Get the details of an event by `event_id`. - operationId: GetEvent + Get an experiment's traffic summary: per-variant exposure counts and a sample-ratio-mismatch flag (is_traffic_imbalanced). SRM statistics live on the diagnostics endpoint. + operationId: GetExperimentTrafficSummary parameters: - - description: The UID of the event. + - description: "The UUID of the experiment." in: path - name: event_id + name: experiment_id required: true schema: + description: "The UUID of the experiment." + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid type: string responses: "200": @@ -156135,36 +167759,64 @@ paths: value: data: attributes: - message: "The event message" - tags: - - "env:api_client_test" - timestamp: "2017-01-15T01:30:15.010000Z" - id: abc-123 - type: event + is_traffic_imbalanced: false + total_subjects: 300 + variants: + - exposure_count: 150 + variant_key: control + variant_name: control + - exposure_count: 150 + variant_key: treatment + variant_name: treatment + id: traffic-summary-1785542400000-1785628800000 + type: traffic-summary schema: - $ref: "#/components/schemas/V2EventResponse" + $ref: "#/components/schemas/ExperimentsTrafficSummaryV2DTO" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Malformed experiment ID (not a valid UUID), or the experiment is not configured for analysis. "401": - $ref: "#/components/responses/UnauthorizedResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Missing or invalid authentication. "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Authenticated caller lacks the product_analytics_experiments_read permission. "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: No experiment with this ID exists for the organization. + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: The experiment's metrics are incompatible with analysis. "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: - - events_read - summary: Get an event - tags: ["Events"] - "x-permission": - operator: OR + - product_analytics_experiments_read + summary: Get experiment traffic summary + tags: + - Experiments + x-permission: + operator: AND permissions: - - events_read + - product_analytics_experiments_read /api/v2/feature-flags: get: description: |- @@ -233007,6 +244659,8 @@ tags: with a pattern of actions, and can scope that decision to specific Kubernetes namespaces, scripts, or remote shell paths. name: Execution Policy + - description: Create and manage experiments, metrics, subject types, SQL models, and protocols. + name: Experiments - description: |- Manage your Datadog Fastly integration accounts and services directly through the Datadog API. See the [Fastly integration page](https://docs.datadoghq.com/integrations/fastly/) for more information. name: Fastly Integration diff --git a/examples/v2/experiments/ArchiveExposureSQLModel.ts b/examples/v2/experiments/ArchiveExposureSQLModel.ts new file mode 100644 index 000000000000..26bf5308027e --- /dev/null +++ b/examples/v2/experiments/ArchiveExposureSQLModel.ts @@ -0,0 +1,28 @@ +/** + * Archive exposure SQL model returns "The exposure SQL model was archived. Archiving an already-archived model succeeds + * and leaves the original archive time in place." response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +const params: v2.ExperimentsApiArchiveExposureSQLModelRequest = { + exposureSqlModelId: "550e8400-e29b-41d4-a716-446655440000", +}; + +apiInstance + .archiveExposureSQLModel(params) + .then((data: any) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/CancelExperiment.ts b/examples/v2/experiments/CancelExperiment.ts new file mode 100644 index 000000000000..547df8e8fbc8 --- /dev/null +++ b/examples/v2/experiments/CancelExperiment.ts @@ -0,0 +1,38 @@ +/** + * Cancel experiment returns "The experiment was canceled and unlinked from its feature flag allocations." response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +// there is a valid "experiment" in the system +const EXPERIMENT_DATA_ID = process.env.EXPERIMENT_DATA_ID as string; + +const params: v2.ExperimentsApiCancelExperimentRequest = { + body: { + data: { + type: "cancel-experiment-request", + attributes: { + reason: "Cancel the test experiment", + }, + }, + }, + experimentId: EXPERIMENT_DATA_ID, +}; + +apiInstance + .cancelExperiment(params) + .then((data: any) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/ConcludeExperiment.ts b/examples/v2/experiments/ConcludeExperiment.ts new file mode 100644 index 000000000000..7072233630eb --- /dev/null +++ b/examples/v2/experiments/ConcludeExperiment.ts @@ -0,0 +1,36 @@ +/** + * Conclude experiment returns "The experiment was concluded and the winning variant was rolled out to its linked feature + * flag allocation." response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +const params: v2.ExperimentsApiConcludeExperimentRequest = { + body: { + data: { + attributes: { + decisionVariantKey: "treatment", + }, + type: "conclude-experiment-request", + }, + }, + experimentId: "550e8400-e29b-41d4-a716-446655440000", +}; + +apiInstance + .concludeExperiment(params) + .then((data: any) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/CreateExperiment.ts b/examples/v2/experiments/CreateExperiment.ts new file mode 100644 index 000000000000..228c0338e26e --- /dev/null +++ b/examples/v2/experiments/CreateExperiment.ts @@ -0,0 +1,34 @@ +/** + * Create experiment returns "Created" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +const params: v2.ExperimentsApiCreateExperimentRequest = { + body: { + data: { + type: "experiments", + attributes: { + name: "ex-14bb9543f523edde", + }, + }, + }, +}; + +apiInstance + .createExperiment(params) + .then((data: v2.ExperimentsExperimentV2DTO) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/CreateExperimentMetricGroup.ts b/examples/v2/experiments/CreateExperimentMetricGroup.ts new file mode 100644 index 000000000000..a1668ffdc4b9 --- /dev/null +++ b/examples/v2/experiments/CreateExperimentMetricGroup.ts @@ -0,0 +1,47 @@ +/** + * Create experiment metric group returns "Created" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +// there is a valid "experiment" in the system +const EXPERIMENT_DATA_ID = process.env.EXPERIMENT_DATA_ID as string; + +// there is a valid "experiment_metric" in the system +const EXPERIMENT_METRIC_DATA_ID = process.env + .EXPERIMENT_METRIC_DATA_ID as string; + +const params: v2.ExperimentsApiCreateExperimentMetricGroupRequest = { + body: { + data: { + type: "experiment-metric-groups", + attributes: { + name: "ex-14bb9543f523edde", + metrics: [ + { + metricId: EXPERIMENT_METRIC_DATA_ID, + }, + ], + }, + }, + }, + experimentId: EXPERIMENT_DATA_ID, +}; + +apiInstance + .createExperimentMetricGroup(params) + .then((data: v2.ExperimentsExperimentMetricGroupMutationV2) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/CreateExperimentMetricGroupFromCollection.ts b/examples/v2/experiments/CreateExperimentMetricGroupFromCollection.ts new file mode 100644 index 000000000000..5743f7e2e06b --- /dev/null +++ b/examples/v2/experiments/CreateExperimentMetricGroupFromCollection.ts @@ -0,0 +1,36 @@ +/** + * Create experiment metric group from collection returns "Created" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +// there is a valid "experiment" in the system +const EXPERIMENT_DATA_ID = process.env.EXPERIMENT_DATA_ID as string; + +// there is a valid "experiment_metric_collection_with_metric" in the system +const EXPERIMENT_METRIC_COLLECTION_WITH_METRIC_DATA_ID = process.env + .EXPERIMENT_METRIC_COLLECTION_WITH_METRIC_DATA_ID as string; + +const params: v2.ExperimentsApiCreateExperimentMetricGroupFromCollectionRequest = + { + experimentId: EXPERIMENT_DATA_ID, + metricCollectionId: EXPERIMENT_METRIC_COLLECTION_WITH_METRIC_DATA_ID, + }; + +apiInstance + .createExperimentMetricGroupFromCollection(params) + .then((data: v2.ExperimentsExperimentMetricGroupMutationV2) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/CreateExposureSQLModel.ts b/examples/v2/experiments/CreateExposureSQLModel.ts new file mode 100644 index 000000000000..3bf4cd27f172 --- /dev/null +++ b/examples/v2/experiments/CreateExposureSQLModel.ts @@ -0,0 +1,53 @@ +/** + * Create exposure SQL model returns "Created" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +const params: v2.ExperimentsApiCreateExposureSQLModelRequest = { + body: { + data: { + attributes: { + datePartitionColumn: undefined, + experimentColumn: "experiment_id", + name: "Exposure events", + properties: [ + { + columnName: "country", + columnType: "STRING", + description: undefined, + name: "country", + }, + ], + sql: "SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures", + subjectTypes: [ + { + columnName: "user_id", + subjectTypeId: "550e8400-e29b-41d4-a716-446655440010", + }, + ], + timestampColumn: "exposed_at", + variantColumn: "variant", + }, + type: "exposure-sql-models", + }, + }, +}; + +apiInstance + .createExposureSQLModel(params) + .then((data: v2.ExperimentsExposureSQLModelV2DTO) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/CreateMetric.ts b/examples/v2/experiments/CreateMetric.ts new file mode 100644 index 000000000000..647be05b7ffb --- /dev/null +++ b/examples/v2/experiments/CreateMetric.ts @@ -0,0 +1,46 @@ +/** + * Create metric returns "Created" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +const params: v2.ExperimentsApiCreateMetricRequest = { + body: { + data: { + type: "metrics", + attributes: { + name: "ex-14bb9543f523edde", + dataSourceType: "DATADOG", + desiredChange: "METRIC_INCREASES", + numeratorAggregation: { + operation: "sum", + datadogMetricMeasure: { + name: "ex-14bb9543f523edde view duration", + sourceType: "PRODUCT_ANALYTICS", + sourceSubtype: "RUM_VIEWS", + columnType: "double", + columnName: "@view.time_spent", + }, + }, + }, + }, + }, +}; + +apiInstance + .createMetric(params) + .then((data: v2.ExperimentsMetricV2DTO) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/CreateMetricCollection.ts b/examples/v2/experiments/CreateMetricCollection.ts new file mode 100644 index 000000000000..df041dac9402 --- /dev/null +++ b/examples/v2/experiments/CreateMetricCollection.ts @@ -0,0 +1,34 @@ +/** + * Create metric collection returns "Created" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +const params: v2.ExperimentsApiCreateMetricCollectionRequest = { + body: { + data: { + type: "metric-collections", + attributes: { + name: "ex-14bb9543f523edde", + }, + }, + }, +}; + +apiInstance + .createMetricCollection(params) + .then((data: v2.ExperimentsMetricCollectionV2DTO) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/CreateMetricSQLModel.ts b/examples/v2/experiments/CreateMetricSQLModel.ts new file mode 100644 index 000000000000..03016310082c --- /dev/null +++ b/examples/v2/experiments/CreateMetricSQLModel.ts @@ -0,0 +1,60 @@ +/** + * Create metric SQL model returns "Created" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +const params: v2.ExperimentsApiCreateMetricSQLModelRequest = { + body: { + data: { + attributes: { + datePartitionColumn: undefined, + description: undefined, + measures: [ + { + columnName: "revenue", + columnType: "FLOAT", + description: undefined, + name: undefined, + }, + ], + name: "Order facts", + properties: [ + { + columnName: "item_type", + columnType: "STRING", + description: undefined, + name: "item_type", + }, + ], + sql: "SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders", + subjectTypes: [ + { + columnName: "user_id", + subjectTypeId: "550e8400-e29b-41d4-a716-446655440010", + }, + ], + timestampColumn: "created_at", + }, + type: "metric-sql-models", + }, + }, +}; + +apiInstance + .createMetricSQLModel(params) + .then((data: v2.ExperimentsMetricSQLModelV2DTO) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/CreateSubjectType.ts b/examples/v2/experiments/CreateSubjectType.ts new file mode 100644 index 000000000000..d3828f5b3745 --- /dev/null +++ b/examples/v2/experiments/CreateSubjectType.ts @@ -0,0 +1,36 @@ +/** + * Create subject type returns "Created" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +const params: v2.ExperimentsApiCreateSubjectTypeRequest = { + body: { + data: { + type: "subject-types", + attributes: { + name: "ex-14bb9543f523edde", + productAnalyticsAttribute: "@account.id", + warehouseColumnNames: ["account_id"], + }, + }, + }, +}; + +apiInstance + .createSubjectType(params) + .then((data: v2.ExperimentsSubjectTypeV2DTO) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/DeleteExperiment.ts b/examples/v2/experiments/DeleteExperiment.ts new file mode 100644 index 000000000000..56f3c4db93cb --- /dev/null +++ b/examples/v2/experiments/DeleteExperiment.ts @@ -0,0 +1,27 @@ +/** + * Delete experiment returns "The experiment was deleted." response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +const params: v2.ExperimentsApiDeleteExperimentRequest = { + experimentId: "550e8400-e29b-41d4-a716-446655440000", +}; + +apiInstance + .deleteExperiment(params) + .then((data: any) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/DeleteExperimentMetricGroup.ts b/examples/v2/experiments/DeleteExperimentMetricGroup.ts new file mode 100644 index 000000000000..b488e97622ec --- /dev/null +++ b/examples/v2/experiments/DeleteExperimentMetricGroup.ts @@ -0,0 +1,35 @@ +/** + * Delete experiment metric group returns "No Content" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +// there is a valid "experiment" in the system +const EXPERIMENT_DATA_ID = process.env.EXPERIMENT_DATA_ID as string; + +// there is a valid "experiment_metric_group" in the system +const EXPERIMENT_METRIC_GROUP_DATA_ID = process.env + .EXPERIMENT_METRIC_GROUP_DATA_ID as string; + +const params: v2.ExperimentsApiDeleteExperimentMetricGroupRequest = { + experimentId: EXPERIMENT_DATA_ID, + metricGroupId: EXPERIMENT_METRIC_GROUP_DATA_ID, +}; + +apiInstance + .deleteExperimentMetricGroup(params) + .then((data: any) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/DeleteExperiment_2793607571.ts b/examples/v2/experiments/DeleteExperiment_2793607571.ts new file mode 100644 index 000000000000..e0d7d059a181 --- /dev/null +++ b/examples/v2/experiments/DeleteExperiment_2793607571.ts @@ -0,0 +1,30 @@ +/** + * Delete experiment returns "No Content" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +// there is a valid "experiment" in the system +const EXPERIMENT_DATA_ID = process.env.EXPERIMENT_DATA_ID as string; + +const params: v2.ExperimentsApiDeleteExperimentRequest = { + experimentId: EXPERIMENT_DATA_ID, +}; + +apiInstance + .deleteExperiment(params) + .then((data: any) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/DeleteMetric.ts b/examples/v2/experiments/DeleteMetric.ts new file mode 100644 index 000000000000..ce61b81f8484 --- /dev/null +++ b/examples/v2/experiments/DeleteMetric.ts @@ -0,0 +1,31 @@ +/** + * Delete metric returns "The metric was deleted." response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +// there is a valid "experiment_metric" in the system +const EXPERIMENT_METRIC_DATA_ID = process.env + .EXPERIMENT_METRIC_DATA_ID as string; + +const params: v2.ExperimentsApiDeleteMetricRequest = { + metricId: EXPERIMENT_METRIC_DATA_ID, +}; + +apiInstance + .deleteMetric(params) + .then((data: any) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/DeleteMetricCollection.ts b/examples/v2/experiments/DeleteMetricCollection.ts new file mode 100644 index 000000000000..fb956b1e3b42 --- /dev/null +++ b/examples/v2/experiments/DeleteMetricCollection.ts @@ -0,0 +1,31 @@ +/** + * Delete metric collection returns "No Content" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +// there is a valid "experiment_metric_collection" in the system +const EXPERIMENT_METRIC_COLLECTION_DATA_ID = process.env + .EXPERIMENT_METRIC_COLLECTION_DATA_ID as string; + +const params: v2.ExperimentsApiDeleteMetricCollectionRequest = { + metricCollectionId: EXPERIMENT_METRIC_COLLECTION_DATA_ID, +}; + +apiInstance + .deleteMetricCollection(params) + .then((data: any) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/DeleteSubjectType.ts b/examples/v2/experiments/DeleteSubjectType.ts new file mode 100644 index 000000000000..0cdfe8be87b7 --- /dev/null +++ b/examples/v2/experiments/DeleteSubjectType.ts @@ -0,0 +1,27 @@ +/** + * Delete subject type returns "The subject type was deleted." response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +const params: v2.ExperimentsApiDeleteSubjectTypeRequest = { + subjectTypeId: "550e8400-e29b-41d4-a716-446655440000", +}; + +apiInstance + .deleteSubjectType(params) + .then((data: any) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/DeleteSubjectType_3300790820.ts b/examples/v2/experiments/DeleteSubjectType_3300790820.ts new file mode 100644 index 000000000000..ad48ad8c6976 --- /dev/null +++ b/examples/v2/experiments/DeleteSubjectType_3300790820.ts @@ -0,0 +1,31 @@ +/** + * Delete subject type returns "No Content" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +// there is a valid "experiment_subject_type" in the system +const EXPERIMENT_SUBJECT_TYPE_DATA_ID = process.env + .EXPERIMENT_SUBJECT_TYPE_DATA_ID as string; + +const params: v2.ExperimentsApiDeleteSubjectTypeRequest = { + subjectTypeId: EXPERIMENT_SUBJECT_TYPE_DATA_ID, +}; + +apiInstance + .deleteSubjectType(params) + .then((data: any) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/GetExperiment.ts b/examples/v2/experiments/GetExperiment.ts new file mode 100644 index 000000000000..bbd09f80143e --- /dev/null +++ b/examples/v2/experiments/GetExperiment.ts @@ -0,0 +1,30 @@ +/** + * Get experiment returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +// there is a valid "experiment" in the system +const EXPERIMENT_DATA_ID = process.env.EXPERIMENT_DATA_ID as string; + +const params: v2.ExperimentsApiGetExperimentRequest = { + experimentId: EXPERIMENT_DATA_ID, +}; + +apiInstance + .getExperiment(params) + .then((data: v2.ExperimentsExperimentV2DTO) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/GetExperimentAnalysisPlan.ts b/examples/v2/experiments/GetExperimentAnalysisPlan.ts new file mode 100644 index 000000000000..bc3b43297ff9 --- /dev/null +++ b/examples/v2/experiments/GetExperimentAnalysisPlan.ts @@ -0,0 +1,30 @@ +/** + * Get experiment analysis plan returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +// there is a valid "experiment" in the system +const EXPERIMENT_DATA_ID = process.env.EXPERIMENT_DATA_ID as string; + +const params: v2.ExperimentsApiGetExperimentAnalysisPlanRequest = { + experimentId: EXPERIMENT_DATA_ID, +}; + +apiInstance + .getExperimentAnalysisPlan(params) + .then((data: v2.ExperimentsAnalysisPlanV2DTO) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/GetExperimentDiagnostics.ts b/examples/v2/experiments/GetExperimentDiagnostics.ts new file mode 100644 index 000000000000..2d9ca1623b18 --- /dev/null +++ b/examples/v2/experiments/GetExperimentDiagnostics.ts @@ -0,0 +1,30 @@ +/** + * Get experiment diagnostics returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +// there is a valid "experiment" in the system +const EXPERIMENT_DATA_ID = process.env.EXPERIMENT_DATA_ID as string; + +const params: v2.ExperimentsApiGetExperimentDiagnosticsRequest = { + experimentId: EXPERIMENT_DATA_ID, +}; + +apiInstance + .getExperimentDiagnostics(params) + .then((data: v2.ExperimentsExperimentDiagnosticsV2DTO) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/GetExperimentProtocol.ts b/examples/v2/experiments/GetExperimentProtocol.ts new file mode 100644 index 000000000000..1e62d7551589 --- /dev/null +++ b/examples/v2/experiments/GetExperimentProtocol.ts @@ -0,0 +1,27 @@ +/** + * Get experiment protocol returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +const params: v2.ExperimentsApiGetExperimentProtocolRequest = { + protocolId: "550e8400-e29b-41d4-a716-446655440000", +}; + +apiInstance + .getExperimentProtocol(params) + .then((data: v2.ExperimentsPublicProtocolResponse) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/GetExperimentResults.ts b/examples/v2/experiments/GetExperimentResults.ts new file mode 100644 index 000000000000..fd7839ad3014 --- /dev/null +++ b/examples/v2/experiments/GetExperimentResults.ts @@ -0,0 +1,27 @@ +/** + * Get experiment results returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +const params: v2.ExperimentsApiGetExperimentResultsRequest = { + experimentId: "550e8400-e29b-41d4-a716-446655440000", +}; + +apiInstance + .getExperimentResults(params) + .then((data: v2.ExperimentsVariantResultsV2DTOArray) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/GetExperimentTrafficSummary.ts b/examples/v2/experiments/GetExperimentTrafficSummary.ts new file mode 100644 index 000000000000..fc507447a878 --- /dev/null +++ b/examples/v2/experiments/GetExperimentTrafficSummary.ts @@ -0,0 +1,30 @@ +/** + * Get experiment traffic summary returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +// there is a valid "experiment" in the system +const EXPERIMENT_DATA_ID = process.env.EXPERIMENT_DATA_ID as string; + +const params: v2.ExperimentsApiGetExperimentTrafficSummaryRequest = { + experimentId: EXPERIMENT_DATA_ID, +}; + +apiInstance + .getExperimentTrafficSummary(params) + .then((data: v2.ExperimentsTrafficSummaryV2DTO) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/GetExposureSQLModel.ts b/examples/v2/experiments/GetExposureSQLModel.ts new file mode 100644 index 000000000000..18d93aca7b2d --- /dev/null +++ b/examples/v2/experiments/GetExposureSQLModel.ts @@ -0,0 +1,27 @@ +/** + * Get exposure SQL model returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +const params: v2.ExperimentsApiGetExposureSQLModelRequest = { + exposureSqlModelId: "550e8400-e29b-41d4-a716-446655440000", +}; + +apiInstance + .getExposureSQLModel(params) + .then((data: v2.ExperimentsExposureSQLModelV2DTO) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/GetMetric.ts b/examples/v2/experiments/GetMetric.ts new file mode 100644 index 000000000000..d65063879170 --- /dev/null +++ b/examples/v2/experiments/GetMetric.ts @@ -0,0 +1,31 @@ +/** + * Get metric returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +// there is a valid "experiment_metric" in the system +const EXPERIMENT_METRIC_DATA_ID = process.env + .EXPERIMENT_METRIC_DATA_ID as string; + +const params: v2.ExperimentsApiGetMetricRequest = { + metricId: EXPERIMENT_METRIC_DATA_ID, +}; + +apiInstance + .getMetric(params) + .then((data: v2.ExperimentsMetricV2DTO) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/GetMetricCollection.ts b/examples/v2/experiments/GetMetricCollection.ts new file mode 100644 index 000000000000..1ef9e47e0454 --- /dev/null +++ b/examples/v2/experiments/GetMetricCollection.ts @@ -0,0 +1,31 @@ +/** + * Get metric collection returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +// there is a valid "experiment_metric_collection" in the system +const EXPERIMENT_METRIC_COLLECTION_DATA_ID = process.env + .EXPERIMENT_METRIC_COLLECTION_DATA_ID as string; + +const params: v2.ExperimentsApiGetMetricCollectionRequest = { + metricCollectionId: EXPERIMENT_METRIC_COLLECTION_DATA_ID, +}; + +apiInstance + .getMetricCollection(params) + .then((data: v2.ExperimentsMetricCollectionV2DTO) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/GetMetricSQLModel.ts b/examples/v2/experiments/GetMetricSQLModel.ts new file mode 100644 index 000000000000..f79ca0113e7d --- /dev/null +++ b/examples/v2/experiments/GetMetricSQLModel.ts @@ -0,0 +1,27 @@ +/** + * Get metric SQL model returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +const params: v2.ExperimentsApiGetMetricSQLModelRequest = { + metricSqlModelId: "550e8400-e29b-41d4-a716-446655440000", +}; + +apiInstance + .getMetricSQLModel(params) + .then((data: v2.ExperimentsMetricSQLModelV2DTO) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/GetSubjectType.ts b/examples/v2/experiments/GetSubjectType.ts new file mode 100644 index 000000000000..4d2762078729 --- /dev/null +++ b/examples/v2/experiments/GetSubjectType.ts @@ -0,0 +1,31 @@ +/** + * Get subject type returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +// there is a valid "experiment_subject_type" in the system +const EXPERIMENT_SUBJECT_TYPE_DATA_ID = process.env + .EXPERIMENT_SUBJECT_TYPE_DATA_ID as string; + +const params: v2.ExperimentsApiGetSubjectTypeRequest = { + subjectTypeId: EXPERIMENT_SUBJECT_TYPE_DATA_ID, +}; + +apiInstance + .getSubjectType(params) + .then((data: v2.ExperimentsSubjectTypeV2DTO) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/ListExperimentMetricGroups.ts b/examples/v2/experiments/ListExperimentMetricGroups.ts new file mode 100644 index 000000000000..142e5f362e92 --- /dev/null +++ b/examples/v2/experiments/ListExperimentMetricGroups.ts @@ -0,0 +1,30 @@ +/** + * List experiment metric groups returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +// there is a valid "experiment" in the system +const EXPERIMENT_DATA_ID = process.env.EXPERIMENT_DATA_ID as string; + +const params: v2.ExperimentsApiListExperimentMetricGroupsRequest = { + experimentId: EXPERIMENT_DATA_ID, +}; + +apiInstance + .listExperimentMetricGroups(params) + .then((data: v2.ExperimentsExperimentMetricGroupV2DTOArray) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/ListExperimentProtocols.ts b/examples/v2/experiments/ListExperimentProtocols.ts new file mode 100644 index 000000000000..fbc4374777c5 --- /dev/null +++ b/examples/v2/experiments/ListExperimentProtocols.ts @@ -0,0 +1,23 @@ +/** + * List experiment protocols returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +apiInstance + .listExperimentProtocols() + .then((data: v2.ExperimentsPublicProtocolListResponseArray) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/ListExperiments.ts b/examples/v2/experiments/ListExperiments.ts new file mode 100644 index 000000000000..8b8a127685a0 --- /dev/null +++ b/examples/v2/experiments/ListExperiments.ts @@ -0,0 +1,23 @@ +/** + * List experiments returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +apiInstance + .listExperiments() + .then((data: v2.ExperimentsExperimentV2ListDTOArray) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/ListExposureSQLModels.ts b/examples/v2/experiments/ListExposureSQLModels.ts new file mode 100644 index 000000000000..8109b6bf510a --- /dev/null +++ b/examples/v2/experiments/ListExposureSQLModels.ts @@ -0,0 +1,23 @@ +/** + * List exposure SQL models returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +apiInstance + .listExposureSQLModels() + .then((data: v2.ExperimentsExposureSQLModelV2DTOArray) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/ListMetricCollections.ts b/examples/v2/experiments/ListMetricCollections.ts new file mode 100644 index 000000000000..469dd61dbafa --- /dev/null +++ b/examples/v2/experiments/ListMetricCollections.ts @@ -0,0 +1,23 @@ +/** + * List metric collections returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +apiInstance + .listMetricCollections() + .then((data: v2.ExperimentsMetricCollectionV2DTOArray) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/ListMetricSQLModels.ts b/examples/v2/experiments/ListMetricSQLModels.ts new file mode 100644 index 000000000000..d4d73079185a --- /dev/null +++ b/examples/v2/experiments/ListMetricSQLModels.ts @@ -0,0 +1,23 @@ +/** + * List metric SQL models returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +apiInstance + .listMetricSQLModels() + .then((data: v2.ExperimentsMetricSQLModelV2DTOArray) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/ListMetrics.ts b/examples/v2/experiments/ListMetrics.ts new file mode 100644 index 000000000000..d884eec84c4a --- /dev/null +++ b/examples/v2/experiments/ListMetrics.ts @@ -0,0 +1,23 @@ +/** + * List metrics returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +apiInstance + .listMetrics() + .then((data: v2.ExperimentsMetricV2DTOArray) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/ListSubjectTypes.ts b/examples/v2/experiments/ListSubjectTypes.ts new file mode 100644 index 000000000000..a8a99fdb4d2f --- /dev/null +++ b/examples/v2/experiments/ListSubjectTypes.ts @@ -0,0 +1,23 @@ +/** + * List subject types returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +apiInstance + .listSubjectTypes() + .then((data: v2.ExperimentsSubjectTypeV2DTOArray) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/PatchExperiment.ts b/examples/v2/experiments/PatchExperiment.ts new file mode 100644 index 000000000000..002292b0d0b4 --- /dev/null +++ b/examples/v2/experiments/PatchExperiment.ts @@ -0,0 +1,38 @@ +/** + * Patch experiment returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +// there is a valid "experiment" in the system +const EXPERIMENT_DATA_ID = process.env.EXPERIMENT_DATA_ID as string; + +const params: v2.ExperimentsApiPatchExperimentRequest = { + body: { + data: { + type: "experiments", + attributes: { + name: "ex-14bb9543f523edde updated", + }, + }, + }, + experimentId: EXPERIMENT_DATA_ID, +}; + +apiInstance + .patchExperiment(params) + .then((data: v2.ExperimentsPatchExperimentV2Response) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/PatchSubjectType.ts b/examples/v2/experiments/PatchSubjectType.ts new file mode 100644 index 000000000000..a2f484c9566e --- /dev/null +++ b/examples/v2/experiments/PatchSubjectType.ts @@ -0,0 +1,39 @@ +/** + * Patch subject type returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +// there is a valid "experiment_subject_type" in the system +const EXPERIMENT_SUBJECT_TYPE_DATA_ID = process.env + .EXPERIMENT_SUBJECT_TYPE_DATA_ID as string; + +const params: v2.ExperimentsApiPatchSubjectTypeRequest = { + body: { + data: { + type: "subject-types", + attributes: { + name: "ex-14bb9543f523edde updated", + }, + }, + }, + subjectTypeId: EXPERIMENT_SUBJECT_TYPE_DATA_ID, +}; + +apiInstance + .patchSubjectType(params) + .then((data: v2.ExperimentsSubjectTypeV2DTO) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/RefreshExperimentResults.ts b/examples/v2/experiments/RefreshExperimentResults.ts new file mode 100644 index 000000000000..700f0058c75e --- /dev/null +++ b/examples/v2/experiments/RefreshExperimentResults.ts @@ -0,0 +1,27 @@ +/** + * Refresh experiment results returns "Accepted" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +const params: v2.ExperimentsApiRefreshExperimentResultsRequest = { + experimentId: "550e8400-e29b-41d4-a716-446655440000", +}; + +apiInstance + .refreshExperimentResults(params) + .then((data: v2.ExperimentsRefreshExperimentResultsV2DTO) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/RefreshExperimentResultsForOrg.ts b/examples/v2/experiments/RefreshExperimentResultsForOrg.ts new file mode 100644 index 000000000000..a4550ec9a965 --- /dev/null +++ b/examples/v2/experiments/RefreshExperimentResultsForOrg.ts @@ -0,0 +1,23 @@ +/** + * Refresh experiment results for org returns "Accepted" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +apiInstance + .refreshExperimentResultsForOrg() + .then((data: v2.ExperimentsRefreshExperimentResultsV2DTOArray) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/SetDefaultSubjectType.ts b/examples/v2/experiments/SetDefaultSubjectType.ts new file mode 100644 index 000000000000..4b765ebb154f --- /dev/null +++ b/examples/v2/experiments/SetDefaultSubjectType.ts @@ -0,0 +1,27 @@ +/** + * Set default subject type returns "The subject type is now the organization's default." response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +const params: v2.ExperimentsApiSetDefaultSubjectTypeRequest = { + subjectTypeId: "550e8400-e29b-41d4-a716-446655440000", +}; + +apiInstance + .setDefaultSubjectType(params) + .then((data: any) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/StartExperiment.ts b/examples/v2/experiments/StartExperiment.ts new file mode 100644 index 000000000000..229f1e84d44e --- /dev/null +++ b/examples/v2/experiments/StartExperiment.ts @@ -0,0 +1,31 @@ +/** + * Start experiment returns "The experiment was started." response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +// there is a valid "configured_experiment" in the system +const CONFIGURED_EXPERIMENT_DATA_ID = process.env + .CONFIGURED_EXPERIMENT_DATA_ID as string; + +const params: v2.ExperimentsApiStartExperimentRequest = { + experimentId: CONFIGURED_EXPERIMENT_DATA_ID, +}; + +apiInstance + .startExperiment(params) + .then((data: any) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/UnarchiveExposureSQLModel.ts b/examples/v2/experiments/UnarchiveExposureSQLModel.ts new file mode 100644 index 000000000000..638374f063a4 --- /dev/null +++ b/examples/v2/experiments/UnarchiveExposureSQLModel.ts @@ -0,0 +1,28 @@ +/** + * Unarchive exposure SQL model returns "The exposure SQL model was unarchived. Unarchiving a model that is not archived + * succeeds and changes nothing." response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +const params: v2.ExperimentsApiUnarchiveExposureSQLModelRequest = { + exposureSqlModelId: "550e8400-e29b-41d4-a716-446655440000", +}; + +apiInstance + .unarchiveExposureSQLModel(params) + .then((data: any) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/UpdateExperimentAnalysisPlanAttributes.ts b/examples/v2/experiments/UpdateExperimentAnalysisPlanAttributes.ts new file mode 100644 index 000000000000..848963cd460a --- /dev/null +++ b/examples/v2/experiments/UpdateExperimentAnalysisPlanAttributes.ts @@ -0,0 +1,39 @@ +/** + * Update experiment analysis plan attributes returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +// there is a valid "experiment" in the system +const EXPERIMENT_DATA_ID = process.env.EXPERIMENT_DATA_ID as string; + +const params: v2.ExperimentsApiUpdateExperimentAnalysisPlanAttributesRequest = { + body: { + data: { + type: "analysis-plans", + id: EXPERIMENT_DATA_ID, + attributes: { + confidenceLevel: 0.9, + }, + }, + }, + experimentId: EXPERIMENT_DATA_ID, +}; + +apiInstance + .updateExperimentAnalysisPlanAttributes(params) + .then((data: v2.ExperimentsAnalysisPlanV2MutationResponse) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/UpdateExperimentMetricGroup.ts b/examples/v2/experiments/UpdateExperimentMetricGroup.ts new file mode 100644 index 000000000000..ed49c2756043 --- /dev/null +++ b/examples/v2/experiments/UpdateExperimentMetricGroup.ts @@ -0,0 +1,44 @@ +/** + * Update experiment metric group returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +// there is a valid "experiment" in the system +const EXPERIMENT_DATA_ID = process.env.EXPERIMENT_DATA_ID as string; + +// there is a valid "experiment_metric_group" in the system +const EXPERIMENT_METRIC_GROUP_DATA_ID = process.env + .EXPERIMENT_METRIC_GROUP_DATA_ID as string; + +const params: v2.ExperimentsApiUpdateExperimentMetricGroupRequest = { + body: { + data: { + type: "experiment-metric-groups", + id: EXPERIMENT_METRIC_GROUP_DATA_ID, + attributes: { + name: "ex-14bb9543f523edde updated", + }, + }, + }, + experimentId: EXPERIMENT_DATA_ID, + metricGroupId: EXPERIMENT_METRIC_GROUP_DATA_ID, +}; + +apiInstance + .updateExperimentMetricGroup(params) + .then((data: v2.ExperimentsExperimentMetricGroupMutationV2) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/UpdateExposureSQLModel.ts b/examples/v2/experiments/UpdateExposureSQLModel.ts new file mode 100644 index 000000000000..c4a399a4c5ee --- /dev/null +++ b/examples/v2/experiments/UpdateExposureSQLModel.ts @@ -0,0 +1,54 @@ +/** + * Update exposure SQL model returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +const params: v2.ExperimentsApiUpdateExposureSQLModelRequest = { + body: { + data: { + attributes: { + datePartitionColumn: undefined, + experimentColumn: "experiment_id", + name: "Exposure events", + properties: [ + { + columnName: "country", + columnType: "STRING", + description: undefined, + name: "country", + }, + ], + sql: "SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures", + subjectTypes: [ + { + columnName: "user_id", + subjectTypeId: "550e8400-e29b-41d4-a716-446655440010", + }, + ], + timestampColumn: "exposed_at", + variantColumn: "variant", + }, + type: "exposure-sql-models", + }, + }, + exposureSqlModelId: "550e8400-e29b-41d4-a716-446655440000", +}; + +apiInstance + .updateExposureSQLModel(params) + .then((data: v2.ExperimentsUpdateExposureSQLModelV2Response) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/UpdateMetric.ts b/examples/v2/experiments/UpdateMetric.ts new file mode 100644 index 000000000000..48c828317642 --- /dev/null +++ b/examples/v2/experiments/UpdateMetric.ts @@ -0,0 +1,40 @@ +/** + * Update metric returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +// there is a valid "experiment_metric" in the system +const EXPERIMENT_METRIC_DATA_ID = process.env + .EXPERIMENT_METRIC_DATA_ID as string; + +const params: v2.ExperimentsApiUpdateMetricRequest = { + body: { + data: { + type: "metrics", + id: EXPERIMENT_METRIC_DATA_ID, + attributes: { + name: "ex-14bb9543f523edde updated", + }, + }, + }, + metricId: EXPERIMENT_METRIC_DATA_ID, +}; + +apiInstance + .updateMetric(params) + .then((data: v2.ExperimentsMetricV2DTO) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/UpdateMetricCollection.ts b/examples/v2/experiments/UpdateMetricCollection.ts new file mode 100644 index 000000000000..1fbb9d1bb986 --- /dev/null +++ b/examples/v2/experiments/UpdateMetricCollection.ts @@ -0,0 +1,39 @@ +/** + * Update metric collection returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +// there is a valid "experiment_metric_collection" in the system +const EXPERIMENT_METRIC_COLLECTION_DATA_ID = process.env + .EXPERIMENT_METRIC_COLLECTION_DATA_ID as string; + +const params: v2.ExperimentsApiUpdateMetricCollectionRequest = { + body: { + data: { + type: "metric-collections", + attributes: { + name: "ex-14bb9543f523edde updated", + }, + }, + }, + metricCollectionId: EXPERIMENT_METRIC_COLLECTION_DATA_ID, +}; + +apiInstance + .updateMetricCollection(params) + .then((data: v2.ExperimentsMetricCollectionV2DTO) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/experiments/UpdateMetricSQLModel.ts b/examples/v2/experiments/UpdateMetricSQLModel.ts new file mode 100644 index 000000000000..74a40b553ea1 --- /dev/null +++ b/examples/v2/experiments/UpdateMetricSQLModel.ts @@ -0,0 +1,61 @@ +/** + * Update metric SQL model returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration({ + authMethods: { + AuthZ: { + accessToken: process.env.DD_BEARER_TOKEN as string, + }, + }, +}); +const apiInstance = new v2.ExperimentsApi(configuration); + +const params: v2.ExperimentsApiUpdateMetricSQLModelRequest = { + body: { + data: { + attributes: { + datePartitionColumn: undefined, + description: undefined, + measures: [ + { + columnName: "revenue", + columnType: "FLOAT", + description: undefined, + name: undefined, + }, + ], + name: "Order facts", + properties: [ + { + columnName: "item_type", + columnType: "STRING", + description: undefined, + name: "item_type", + }, + ], + sql: "SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders", + subjectTypes: [ + { + columnName: "user_id", + subjectTypeId: "550e8400-e29b-41d4-a716-446655440010", + }, + ], + timestampColumn: "created_at", + }, + type: "metric-sql-models", + }, + }, + metricSqlModelId: "550e8400-e29b-41d4-a716-446655440000", +}; + +apiInstance + .updateMetricSQLModel(params) + .then((data: v2.ExperimentsUpdateMetricSQLModelV2Response) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/features/generated-test/test-runner-data/manifest.json b/features/generated-test/test-runner-data/manifest.json index e4d81a2e76d8..4173266cfa15 100644 --- a/features/generated-test/test-runner-data/manifest.json +++ b/features/generated-test/test-runner-data/manifest.json @@ -5495,6 +5495,244 @@ "scenario": "Update an execution policy returns \"OK\" response", "version": "v2" }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/cancel-experiment-returns-the-experiment-was-canceled-and-unlinked-from-its-feature-flag-allocations-response.json", + "scenario": "Cancel experiment returns \"The experiment was canceled and unlinked from its feature flag allocations.\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/create-experiment-metric-group-from-collection-returns-created-response.json", + "scenario": "Create experiment metric group from collection returns \"Created\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/create-experiment-metric-group-returns-created-response.json", + "scenario": "Create experiment metric group returns \"Created\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/create-experiment-returns-created-response.json", + "scenario": "Create experiment returns \"Created\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/create-metric-collection-returns-created-response.json", + "scenario": "Create metric collection returns \"Created\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/create-metric-returns-created-response.json", + "scenario": "Create metric returns \"Created\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/create-subject-type-returns-created-response.json", + "scenario": "Create subject type returns \"Created\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/delete-experiment-metric-group-returns-no-content-response.json", + "scenario": "Delete experiment metric group returns \"No Content\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/delete-experiment-returns-no-content-response.json", + "scenario": "Delete experiment returns \"No Content\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/delete-metric-collection-returns-no-content-response.json", + "scenario": "Delete metric collection returns \"No Content\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/delete-metric-returns-the-metric-was-deleted-response.json", + "scenario": "Delete metric returns \"The metric was deleted.\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/delete-subject-type-returns-no-content-response.json", + "scenario": "Delete subject type returns \"No Content\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/get-experiment-analysis-plan-returns-ok-response.json", + "scenario": "Get experiment analysis plan returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/get-experiment-diagnostics-returns-ok-response.json", + "scenario": "Get experiment diagnostics returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/get-experiment-returns-ok-response.json", + "scenario": "Get experiment returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/get-experiment-traffic-summary-returns-ok-response.json", + "scenario": "Get experiment traffic summary returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/get-metric-collection-returns-ok-response.json", + "scenario": "Get metric collection returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/get-metric-returns-ok-response.json", + "scenario": "Get metric returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/get-subject-type-returns-ok-response.json", + "scenario": "Get subject type returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/list-experiment-metric-groups-returns-ok-response.json", + "scenario": "List experiment metric groups returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/list-experiment-protocols-returns-ok-response.json", + "scenario": "List experiment protocols returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/list-experiments-returns-ok-response.json", + "scenario": "List experiments returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/list-exposure-sql-models-returns-ok-response.json", + "scenario": "List exposure SQL models returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/list-metric-sql-models-returns-ok-response.json", + "scenario": "List metric SQL models returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/list-metric-collections-returns-ok-response.json", + "scenario": "List metric collections returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/list-metrics-returns-ok-response.json", + "scenario": "List metrics returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/list-subject-types-returns-ok-response.json", + "scenario": "List subject types returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/patch-experiment-returns-ok-response.json", + "scenario": "Patch experiment returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/patch-subject-type-returns-ok-response.json", + "scenario": "Patch subject type returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/start-experiment-returns-the-experiment-was-started-response.json", + "scenario": "Start experiment returns \"The experiment was started.\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/update-experiment-analysis-plan-attributes-returns-ok-response.json", + "scenario": "Update experiment analysis plan attributes returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/update-experiment-metric-group-returns-ok-response.json", + "scenario": "Update experiment metric group returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/update-metric-collection-returns-ok-response.json", + "scenario": "Update metric collection returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "feature_file": "../../v2/experiments.feature", + "file": "v2/experiments/update-metric-returns-ok-response.json", + "scenario": "Update metric returns \"OK\" response", + "version": "v2" + }, { "feature": "Fastly Integration", "feature_file": "../../v2/fastly_integration.feature", diff --git a/features/generated-test/test-runner-data/v2/experiments/cancel-experiment-returns-the-experiment-was-canceled-and-unlinked-from-its-feature-flag-allocations-response.json b/features/generated-test/test-runner-data/v2/experiments/cancel-experiment-returns-the-experiment-was-canceled-and-unlinked-from-its-feature-flag-allocations-response.json new file mode 100644 index 000000000000..b1e353f0d747 --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/cancel-experiment-returns-the-experiment-was-canceled-and-unlinked-from-its-feature-flag-allocations-response.json @@ -0,0 +1,50 @@ +{ + "api": "Experiments", + "expected_status": 204, + "feature": "Experiments", + "id": "v2/Experiments/Cancel experiment returns \"The experiment was canceled and unlinked from its feature flag allocations.\" response", + "operation_id": "CancelExperiment", + "request": { + "body": { + "schema": { + "format": null, + "ref": "ExperimentsCancelExperimentV2Request", + "type": "object" + }, + "source": "inline", + "value": { + "data": { + "attributes": { + "reason": "Cancel the test experiment" + }, + "type": "cancel-experiment-request" + } + } + }, + "content_type": "application/json", + "method": "POST", + "pagination": false, + "parameters": [ + { + "explode": null, + "in": "path", + "name": "experiment_id", + "required": true, + "schema": { + "format": "uuid", + "ref": null, + "type": "string" + }, + "source": { + "path": "experiment.data.id", + "type": "fixture" + }, + "style": null + } + ], + "path": "/api/v2/experiments/{experiment_id}/cancel" + }, + "scenario": "Cancel experiment returns \"The experiment was canceled and unlinked from its feature flag allocations.\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/create-experiment-metric-group-from-collection-returns-created-response.json b/features/generated-test/test-runner-data/v2/experiments/create-experiment-metric-group-from-collection-returns-created-response.json new file mode 100644 index 000000000000..bb2c032520d2 --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/create-experiment-metric-group-from-collection-returns-created-response.json @@ -0,0 +1,51 @@ +{ + "api": "Experiments", + "expected_status": 201, + "feature": "Experiments", + "id": "v2/Experiments/Create experiment metric group from collection returns \"Created\" response", + "operation_id": "CreateExperimentMetricGroupFromCollection", + "request": { + "body": null, + "content_type": null, + "method": "POST", + "pagination": false, + "parameters": [ + { + "explode": null, + "in": "path", + "name": "experiment_id", + "required": true, + "schema": { + "format": "uuid", + "ref": null, + "type": "string" + }, + "source": { + "path": "experiment.data.id", + "type": "fixture" + }, + "style": null + }, + { + "explode": null, + "in": "path", + "name": "metric_collection_id", + "required": true, + "schema": { + "format": "uuid", + "ref": null, + "type": "string" + }, + "source": { + "path": "experiment_metric_collection_with_metric.data.id", + "type": "fixture" + }, + "style": null + } + ], + "path": "/api/v2/experiments/{experiment_id}/metric-groups/from-collection/{metric_collection_id}" + }, + "scenario": "Create experiment metric group from collection returns \"Created\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/create-experiment-metric-group-returns-created-response.json b/features/generated-test/test-runner-data/v2/experiments/create-experiment-metric-group-returns-created-response.json new file mode 100644 index 000000000000..57c3f3f28498 --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/create-experiment-metric-group-returns-created-response.json @@ -0,0 +1,55 @@ +{ + "api": "Experiments", + "expected_status": 201, + "feature": "Experiments", + "id": "v2/Experiments/Create experiment metric group returns \"Created\" response", + "operation_id": "CreateExperimentMetricGroup", + "request": { + "body": { + "schema": { + "format": null, + "ref": "ExperimentsCreateExperimentMetricGroupV2Request", + "type": "object" + }, + "source": "inline", + "value": { + "data": { + "attributes": { + "metrics": [ + { + "metric_id": "{{ experiment_metric.data.id }}" + } + ], + "name": "ex-{{ unique_hash }}" + }, + "type": "experiment-metric-groups" + } + } + }, + "content_type": "application/json", + "method": "POST", + "pagination": false, + "parameters": [ + { + "explode": null, + "in": "path", + "name": "experiment_id", + "required": true, + "schema": { + "format": "uuid", + "ref": null, + "type": "string" + }, + "source": { + "path": "experiment.data.id", + "type": "fixture" + }, + "style": null + } + ], + "path": "/api/v2/experiments/{experiment_id}/metric-groups" + }, + "scenario": "Create experiment metric group returns \"Created\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/create-experiment-returns-created-response.json b/features/generated-test/test-runner-data/v2/experiments/create-experiment-returns-created-response.json new file mode 100644 index 000000000000..ccee63aef229 --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/create-experiment-returns-created-response.json @@ -0,0 +1,33 @@ +{ + "api": "Experiments", + "expected_status": 201, + "feature": "Experiments", + "id": "v2/Experiments/Create experiment returns \"Created\" response", + "operation_id": "CreateExperiment", + "request": { + "body": { + "schema": { + "format": null, + "ref": "ExperimentsCreateExperimentV2Request", + "type": "object" + }, + "source": "inline", + "value": { + "data": { + "attributes": { + "name": "ex-{{ unique_hash }}" + }, + "type": "experiments" + } + } + }, + "content_type": "application/json", + "method": "POST", + "pagination": false, + "parameters": [], + "path": "/api/v2/experiments" + }, + "scenario": "Create experiment returns \"Created\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/create-metric-collection-returns-created-response.json b/features/generated-test/test-runner-data/v2/experiments/create-metric-collection-returns-created-response.json new file mode 100644 index 000000000000..364547735d1f --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/create-metric-collection-returns-created-response.json @@ -0,0 +1,33 @@ +{ + "api": "Experiments", + "expected_status": 201, + "feature": "Experiments", + "id": "v2/Experiments/Create metric collection returns \"Created\" response", + "operation_id": "CreateMetricCollection", + "request": { + "body": { + "schema": { + "format": null, + "ref": "ExperimentsCreateMetricCollectionV2Request", + "type": "object" + }, + "source": "inline", + "value": { + "data": { + "attributes": { + "name": "ex-{{ unique_hash }}" + }, + "type": "metric-collections" + } + } + }, + "content_type": "application/json", + "method": "POST", + "pagination": false, + "parameters": [], + "path": "/api/v2/experiments/metric-collections" + }, + "scenario": "Create metric collection returns \"Created\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/create-metric-returns-created-response.json b/features/generated-test/test-runner-data/v2/experiments/create-metric-returns-created-response.json new file mode 100644 index 000000000000..e0030b03d721 --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/create-metric-returns-created-response.json @@ -0,0 +1,45 @@ +{ + "api": "Experiments", + "expected_status": 201, + "feature": "Experiments", + "id": "v2/Experiments/Create metric returns \"Created\" response", + "operation_id": "CreateMetric", + "request": { + "body": { + "schema": { + "format": null, + "ref": "ExperimentsCreateMetricV2Request", + "type": "object" + }, + "source": "inline", + "value": { + "data": { + "attributes": { + "data_source_type": "DATADOG", + "desired_change": "METRIC_INCREASES", + "name": "ex-{{ unique_hash }}", + "numerator_aggregation": { + "datadog_metric_measure": { + "column_name": "@view.time_spent", + "column_type": "double", + "name": "ex-{{ unique_hash }} view duration", + "source_subtype": "RUM_VIEWS", + "source_type": "PRODUCT_ANALYTICS" + }, + "operation": "sum" + } + }, + "type": "metrics" + } + } + }, + "content_type": "application/json", + "method": "POST", + "pagination": false, + "parameters": [], + "path": "/api/v2/experiments/metrics" + }, + "scenario": "Create metric returns \"Created\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/create-subject-type-returns-created-response.json b/features/generated-test/test-runner-data/v2/experiments/create-subject-type-returns-created-response.json new file mode 100644 index 000000000000..70b0f72ee98d --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/create-subject-type-returns-created-response.json @@ -0,0 +1,37 @@ +{ + "api": "Experiments", + "expected_status": 201, + "feature": "Experiments", + "id": "v2/Experiments/Create subject type returns \"Created\" response", + "operation_id": "CreateSubjectType", + "request": { + "body": { + "schema": { + "format": null, + "ref": "ExperimentsCreateSubjectTypeV2Request", + "type": "object" + }, + "source": "inline", + "value": { + "data": { + "attributes": { + "name": "ex-{{ unique_hash }}", + "product_analytics_attribute": "@account.id", + "warehouse_column_names": [ + "account_id" + ] + }, + "type": "subject-types" + } + } + }, + "content_type": "application/json", + "method": "POST", + "pagination": false, + "parameters": [], + "path": "/api/v2/experiments/subject-types" + }, + "scenario": "Create subject type returns \"Created\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/delete-experiment-metric-group-returns-no-content-response.json b/features/generated-test/test-runner-data/v2/experiments/delete-experiment-metric-group-returns-no-content-response.json new file mode 100644 index 000000000000..f6fbe261bc6c --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/delete-experiment-metric-group-returns-no-content-response.json @@ -0,0 +1,51 @@ +{ + "api": "Experiments", + "expected_status": 204, + "feature": "Experiments", + "id": "v2/Experiments/Delete experiment metric group returns \"No Content\" response", + "operation_id": "DeleteExperimentMetricGroup", + "request": { + "body": null, + "content_type": null, + "method": "DELETE", + "pagination": false, + "parameters": [ + { + "explode": null, + "in": "path", + "name": "experiment_id", + "required": true, + "schema": { + "format": "uuid", + "ref": null, + "type": "string" + }, + "source": { + "path": "experiment.data.id", + "type": "fixture" + }, + "style": null + }, + { + "explode": null, + "in": "path", + "name": "metric_group_id", + "required": true, + "schema": { + "format": "uuid", + "ref": null, + "type": "string" + }, + "source": { + "path": "experiment_metric_group.data.id", + "type": "fixture" + }, + "style": null + } + ], + "path": "/api/v2/experiments/{experiment_id}/metric-groups/{metric_group_id}" + }, + "scenario": "Delete experiment metric group returns \"No Content\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/delete-experiment-returns-no-content-response.json b/features/generated-test/test-runner-data/v2/experiments/delete-experiment-returns-no-content-response.json new file mode 100644 index 000000000000..e5677bc23595 --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/delete-experiment-returns-no-content-response.json @@ -0,0 +1,35 @@ +{ + "api": "Experiments", + "expected_status": 204, + "feature": "Experiments", + "id": "v2/Experiments/Delete experiment returns \"No Content\" response", + "operation_id": "DeleteExperiment", + "request": { + "body": null, + "content_type": null, + "method": "DELETE", + "pagination": false, + "parameters": [ + { + "explode": null, + "in": "path", + "name": "experiment_id", + "required": true, + "schema": { + "format": "uuid", + "ref": null, + "type": "string" + }, + "source": { + "path": "experiment.data.id", + "type": "fixture" + }, + "style": null + } + ], + "path": "/api/v2/experiments/{experiment_id}" + }, + "scenario": "Delete experiment returns \"No Content\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/delete-metric-collection-returns-no-content-response.json b/features/generated-test/test-runner-data/v2/experiments/delete-metric-collection-returns-no-content-response.json new file mode 100644 index 000000000000..9cffc1e4151c --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/delete-metric-collection-returns-no-content-response.json @@ -0,0 +1,35 @@ +{ + "api": "Experiments", + "expected_status": 204, + "feature": "Experiments", + "id": "v2/Experiments/Delete metric collection returns \"No Content\" response", + "operation_id": "DeleteMetricCollection", + "request": { + "body": null, + "content_type": null, + "method": "DELETE", + "pagination": false, + "parameters": [ + { + "explode": null, + "in": "path", + "name": "metric_collection_id", + "required": true, + "schema": { + "format": "uuid", + "ref": null, + "type": "string" + }, + "source": { + "path": "experiment_metric_collection.data.id", + "type": "fixture" + }, + "style": null + } + ], + "path": "/api/v2/experiments/metric-collections/{metric_collection_id}" + }, + "scenario": "Delete metric collection returns \"No Content\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/delete-metric-returns-the-metric-was-deleted-response.json b/features/generated-test/test-runner-data/v2/experiments/delete-metric-returns-the-metric-was-deleted-response.json new file mode 100644 index 000000000000..b5b1f21b5e80 --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/delete-metric-returns-the-metric-was-deleted-response.json @@ -0,0 +1,35 @@ +{ + "api": "Experiments", + "expected_status": 204, + "feature": "Experiments", + "id": "v2/Experiments/Delete metric returns \"The metric was deleted.\" response", + "operation_id": "DeleteMetric", + "request": { + "body": null, + "content_type": null, + "method": "DELETE", + "pagination": false, + "parameters": [ + { + "explode": null, + "in": "path", + "name": "metric_id", + "required": true, + "schema": { + "format": "uuid", + "ref": null, + "type": "string" + }, + "source": { + "path": "experiment_metric.data.id", + "type": "fixture" + }, + "style": null + } + ], + "path": "/api/v2/experiments/metrics/{metric_id}" + }, + "scenario": "Delete metric returns \"The metric was deleted.\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/delete-subject-type-returns-no-content-response.json b/features/generated-test/test-runner-data/v2/experiments/delete-subject-type-returns-no-content-response.json new file mode 100644 index 000000000000..2e204404925f --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/delete-subject-type-returns-no-content-response.json @@ -0,0 +1,35 @@ +{ + "api": "Experiments", + "expected_status": 204, + "feature": "Experiments", + "id": "v2/Experiments/Delete subject type returns \"No Content\" response", + "operation_id": "DeleteSubjectType", + "request": { + "body": null, + "content_type": null, + "method": "DELETE", + "pagination": false, + "parameters": [ + { + "explode": null, + "in": "path", + "name": "subject_type_id", + "required": true, + "schema": { + "format": "uuid", + "ref": null, + "type": "string" + }, + "source": { + "path": "experiment_subject_type.data.id", + "type": "fixture" + }, + "style": null + } + ], + "path": "/api/v2/experiments/subject-types/{subject_type_id}" + }, + "scenario": "Delete subject type returns \"No Content\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/get-experiment-analysis-plan-returns-ok-response.json b/features/generated-test/test-runner-data/v2/experiments/get-experiment-analysis-plan-returns-ok-response.json new file mode 100644 index 000000000000..84effe8efe3f --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/get-experiment-analysis-plan-returns-ok-response.json @@ -0,0 +1,35 @@ +{ + "api": "Experiments", + "expected_status": 200, + "feature": "Experiments", + "id": "v2/Experiments/Get experiment analysis plan returns \"OK\" response", + "operation_id": "GetExperimentAnalysisPlan", + "request": { + "body": null, + "content_type": null, + "method": "GET", + "pagination": false, + "parameters": [ + { + "explode": null, + "in": "path", + "name": "experiment_id", + "required": true, + "schema": { + "format": "uuid", + "ref": null, + "type": "string" + }, + "source": { + "path": "experiment.data.id", + "type": "fixture" + }, + "style": null + } + ], + "path": "/api/v2/experiments/{experiment_id}/analysis-plan" + }, + "scenario": "Get experiment analysis plan returns \"OK\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/get-experiment-diagnostics-returns-ok-response.json b/features/generated-test/test-runner-data/v2/experiments/get-experiment-diagnostics-returns-ok-response.json new file mode 100644 index 000000000000..f1a34391e080 --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/get-experiment-diagnostics-returns-ok-response.json @@ -0,0 +1,35 @@ +{ + "api": "Experiments", + "expected_status": 200, + "feature": "Experiments", + "id": "v2/Experiments/Get experiment diagnostics returns \"OK\" response", + "operation_id": "GetExperimentDiagnostics", + "request": { + "body": null, + "content_type": null, + "method": "GET", + "pagination": false, + "parameters": [ + { + "explode": null, + "in": "path", + "name": "experiment_id", + "required": true, + "schema": { + "format": "uuid", + "ref": null, + "type": "string" + }, + "source": { + "path": "experiment.data.id", + "type": "fixture" + }, + "style": null + } + ], + "path": "/api/v2/experiments/{experiment_id}/diagnostics" + }, + "scenario": "Get experiment diagnostics returns \"OK\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/get-experiment-returns-ok-response.json b/features/generated-test/test-runner-data/v2/experiments/get-experiment-returns-ok-response.json new file mode 100644 index 000000000000..0af8cb1bc544 --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/get-experiment-returns-ok-response.json @@ -0,0 +1,35 @@ +{ + "api": "Experiments", + "expected_status": 200, + "feature": "Experiments", + "id": "v2/Experiments/Get experiment returns \"OK\" response", + "operation_id": "GetExperiment", + "request": { + "body": null, + "content_type": null, + "method": "GET", + "pagination": false, + "parameters": [ + { + "explode": null, + "in": "path", + "name": "experiment_id", + "required": true, + "schema": { + "format": "uuid", + "ref": null, + "type": "string" + }, + "source": { + "path": "experiment.data.id", + "type": "fixture" + }, + "style": null + } + ], + "path": "/api/v2/experiments/{experiment_id}" + }, + "scenario": "Get experiment returns \"OK\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/get-experiment-traffic-summary-returns-ok-response.json b/features/generated-test/test-runner-data/v2/experiments/get-experiment-traffic-summary-returns-ok-response.json new file mode 100644 index 000000000000..db0865388bbf --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/get-experiment-traffic-summary-returns-ok-response.json @@ -0,0 +1,35 @@ +{ + "api": "Experiments", + "expected_status": 200, + "feature": "Experiments", + "id": "v2/Experiments/Get experiment traffic summary returns \"OK\" response", + "operation_id": "GetExperimentTrafficSummary", + "request": { + "body": null, + "content_type": null, + "method": "GET", + "pagination": false, + "parameters": [ + { + "explode": null, + "in": "path", + "name": "experiment_id", + "required": true, + "schema": { + "format": "uuid", + "ref": null, + "type": "string" + }, + "source": { + "path": "experiment.data.id", + "type": "fixture" + }, + "style": null + } + ], + "path": "/api/v2/experiments/{experiment_id}/traffic-summary" + }, + "scenario": "Get experiment traffic summary returns \"OK\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/get-metric-collection-returns-ok-response.json b/features/generated-test/test-runner-data/v2/experiments/get-metric-collection-returns-ok-response.json new file mode 100644 index 000000000000..e0996939ae3c --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/get-metric-collection-returns-ok-response.json @@ -0,0 +1,35 @@ +{ + "api": "Experiments", + "expected_status": 200, + "feature": "Experiments", + "id": "v2/Experiments/Get metric collection returns \"OK\" response", + "operation_id": "GetMetricCollection", + "request": { + "body": null, + "content_type": null, + "method": "GET", + "pagination": false, + "parameters": [ + { + "explode": null, + "in": "path", + "name": "metric_collection_id", + "required": true, + "schema": { + "format": "uuid", + "ref": null, + "type": "string" + }, + "source": { + "path": "experiment_metric_collection.data.id", + "type": "fixture" + }, + "style": null + } + ], + "path": "/api/v2/experiments/metric-collections/{metric_collection_id}" + }, + "scenario": "Get metric collection returns \"OK\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/get-metric-returns-ok-response.json b/features/generated-test/test-runner-data/v2/experiments/get-metric-returns-ok-response.json new file mode 100644 index 000000000000..4b8e2074a87e --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/get-metric-returns-ok-response.json @@ -0,0 +1,35 @@ +{ + "api": "Experiments", + "expected_status": 200, + "feature": "Experiments", + "id": "v2/Experiments/Get metric returns \"OK\" response", + "operation_id": "GetMetric", + "request": { + "body": null, + "content_type": null, + "method": "GET", + "pagination": false, + "parameters": [ + { + "explode": null, + "in": "path", + "name": "metric_id", + "required": true, + "schema": { + "format": "uuid", + "ref": null, + "type": "string" + }, + "source": { + "path": "experiment_metric.data.id", + "type": "fixture" + }, + "style": null + } + ], + "path": "/api/v2/experiments/metrics/{metric_id}" + }, + "scenario": "Get metric returns \"OK\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/get-subject-type-returns-ok-response.json b/features/generated-test/test-runner-data/v2/experiments/get-subject-type-returns-ok-response.json new file mode 100644 index 000000000000..53be4382b640 --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/get-subject-type-returns-ok-response.json @@ -0,0 +1,35 @@ +{ + "api": "Experiments", + "expected_status": 200, + "feature": "Experiments", + "id": "v2/Experiments/Get subject type returns \"OK\" response", + "operation_id": "GetSubjectType", + "request": { + "body": null, + "content_type": null, + "method": "GET", + "pagination": false, + "parameters": [ + { + "explode": null, + "in": "path", + "name": "subject_type_id", + "required": true, + "schema": { + "format": "uuid", + "ref": null, + "type": "string" + }, + "source": { + "path": "experiment_subject_type.data.id", + "type": "fixture" + }, + "style": null + } + ], + "path": "/api/v2/experiments/subject-types/{subject_type_id}" + }, + "scenario": "Get subject type returns \"OK\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/list-experiment-metric-groups-returns-ok-response.json b/features/generated-test/test-runner-data/v2/experiments/list-experiment-metric-groups-returns-ok-response.json new file mode 100644 index 000000000000..e6f5986663ff --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/list-experiment-metric-groups-returns-ok-response.json @@ -0,0 +1,35 @@ +{ + "api": "Experiments", + "expected_status": 200, + "feature": "Experiments", + "id": "v2/Experiments/List experiment metric groups returns \"OK\" response", + "operation_id": "ListExperimentMetricGroups", + "request": { + "body": null, + "content_type": null, + "method": "GET", + "pagination": false, + "parameters": [ + { + "explode": null, + "in": "path", + "name": "experiment_id", + "required": true, + "schema": { + "format": "uuid", + "ref": null, + "type": "string" + }, + "source": { + "path": "experiment.data.id", + "type": "fixture" + }, + "style": null + } + ], + "path": "/api/v2/experiments/{experiment_id}/metric-groups" + }, + "scenario": "List experiment metric groups returns \"OK\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/list-experiment-protocols-returns-ok-response.json b/features/generated-test/test-runner-data/v2/experiments/list-experiment-protocols-returns-ok-response.json new file mode 100644 index 000000000000..1530ea16a332 --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/list-experiment-protocols-returns-ok-response.json @@ -0,0 +1,18 @@ +{ + "api": "Experiments", + "expected_status": 200, + "feature": "Experiments", + "id": "v2/Experiments/List experiment protocols returns \"OK\" response", + "operation_id": "ListExperimentProtocols", + "request": { + "body": null, + "content_type": null, + "method": "GET", + "pagination": false, + "parameters": [], + "path": "/api/v2/experiments/protocols" + }, + "scenario": "List experiment protocols returns \"OK\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/list-experiments-returns-ok-response.json b/features/generated-test/test-runner-data/v2/experiments/list-experiments-returns-ok-response.json new file mode 100644 index 000000000000..cdbf69fb21bc --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/list-experiments-returns-ok-response.json @@ -0,0 +1,18 @@ +{ + "api": "Experiments", + "expected_status": 200, + "feature": "Experiments", + "id": "v2/Experiments/List experiments returns \"OK\" response", + "operation_id": "ListExperiments", + "request": { + "body": null, + "content_type": null, + "method": "GET", + "pagination": false, + "parameters": [], + "path": "/api/v2/experiments" + }, + "scenario": "List experiments returns \"OK\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/list-exposure-sql-models-returns-ok-response.json b/features/generated-test/test-runner-data/v2/experiments/list-exposure-sql-models-returns-ok-response.json new file mode 100644 index 000000000000..22be5bd638af --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/list-exposure-sql-models-returns-ok-response.json @@ -0,0 +1,18 @@ +{ + "api": "Experiments", + "expected_status": 200, + "feature": "Experiments", + "id": "v2/Experiments/List exposure SQL models returns \"OK\" response", + "operation_id": "ListExposureSQLModels", + "request": { + "body": null, + "content_type": null, + "method": "GET", + "pagination": false, + "parameters": [], + "path": "/api/v2/experiments/exposure-sql-models" + }, + "scenario": "List exposure SQL models returns \"OK\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/list-metric-collections-returns-ok-response.json b/features/generated-test/test-runner-data/v2/experiments/list-metric-collections-returns-ok-response.json new file mode 100644 index 000000000000..019d52429324 --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/list-metric-collections-returns-ok-response.json @@ -0,0 +1,18 @@ +{ + "api": "Experiments", + "expected_status": 200, + "feature": "Experiments", + "id": "v2/Experiments/List metric collections returns \"OK\" response", + "operation_id": "ListMetricCollections", + "request": { + "body": null, + "content_type": null, + "method": "GET", + "pagination": false, + "parameters": [], + "path": "/api/v2/experiments/metric-collections" + }, + "scenario": "List metric collections returns \"OK\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/list-metric-sql-models-returns-ok-response.json b/features/generated-test/test-runner-data/v2/experiments/list-metric-sql-models-returns-ok-response.json new file mode 100644 index 000000000000..6a6817048d0f --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/list-metric-sql-models-returns-ok-response.json @@ -0,0 +1,18 @@ +{ + "api": "Experiments", + "expected_status": 200, + "feature": "Experiments", + "id": "v2/Experiments/List metric SQL models returns \"OK\" response", + "operation_id": "ListMetricSQLModels", + "request": { + "body": null, + "content_type": null, + "method": "GET", + "pagination": false, + "parameters": [], + "path": "/api/v2/experiments/metric-sql-models" + }, + "scenario": "List metric SQL models returns \"OK\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/list-metrics-returns-ok-response.json b/features/generated-test/test-runner-data/v2/experiments/list-metrics-returns-ok-response.json new file mode 100644 index 000000000000..b9104fa17470 --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/list-metrics-returns-ok-response.json @@ -0,0 +1,18 @@ +{ + "api": "Experiments", + "expected_status": 200, + "feature": "Experiments", + "id": "v2/Experiments/List metrics returns \"OK\" response", + "operation_id": "ListMetrics", + "request": { + "body": null, + "content_type": null, + "method": "GET", + "pagination": false, + "parameters": [], + "path": "/api/v2/experiments/metrics" + }, + "scenario": "List metrics returns \"OK\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/list-subject-types-returns-ok-response.json b/features/generated-test/test-runner-data/v2/experiments/list-subject-types-returns-ok-response.json new file mode 100644 index 000000000000..e72ddfbea472 --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/list-subject-types-returns-ok-response.json @@ -0,0 +1,18 @@ +{ + "api": "Experiments", + "expected_status": 200, + "feature": "Experiments", + "id": "v2/Experiments/List subject types returns \"OK\" response", + "operation_id": "ListSubjectTypes", + "request": { + "body": null, + "content_type": null, + "method": "GET", + "pagination": false, + "parameters": [], + "path": "/api/v2/experiments/subject-types" + }, + "scenario": "List subject types returns \"OK\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/patch-experiment-returns-ok-response.json b/features/generated-test/test-runner-data/v2/experiments/patch-experiment-returns-ok-response.json new file mode 100644 index 000000000000..5b170a516f81 --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/patch-experiment-returns-ok-response.json @@ -0,0 +1,50 @@ +{ + "api": "Experiments", + "expected_status": 200, + "feature": "Experiments", + "id": "v2/Experiments/Patch experiment returns \"OK\" response", + "operation_id": "PatchExperiment", + "request": { + "body": { + "schema": { + "format": null, + "ref": "ExperimentsPatchExperimentV2Request", + "type": "object" + }, + "source": "inline", + "value": { + "data": { + "attributes": { + "name": "ex-{{ unique_hash }} updated" + }, + "type": "experiments" + } + } + }, + "content_type": "application/json", + "method": "PATCH", + "pagination": false, + "parameters": [ + { + "explode": null, + "in": "path", + "name": "experiment_id", + "required": true, + "schema": { + "format": "uuid", + "ref": null, + "type": "string" + }, + "source": { + "path": "experiment.data.id", + "type": "fixture" + }, + "style": null + } + ], + "path": "/api/v2/experiments/{experiment_id}" + }, + "scenario": "Patch experiment returns \"OK\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/patch-subject-type-returns-ok-response.json b/features/generated-test/test-runner-data/v2/experiments/patch-subject-type-returns-ok-response.json new file mode 100644 index 000000000000..b06e687a5ffc --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/patch-subject-type-returns-ok-response.json @@ -0,0 +1,50 @@ +{ + "api": "Experiments", + "expected_status": 200, + "feature": "Experiments", + "id": "v2/Experiments/Patch subject type returns \"OK\" response", + "operation_id": "PatchSubjectType", + "request": { + "body": { + "schema": { + "format": null, + "ref": "ExperimentsPatchSubjectTypeV2Request", + "type": "object" + }, + "source": "inline", + "value": { + "data": { + "attributes": { + "name": "ex-{{ unique_hash }} updated" + }, + "type": "subject-types" + } + } + }, + "content_type": "application/json", + "method": "PATCH", + "pagination": false, + "parameters": [ + { + "explode": null, + "in": "path", + "name": "subject_type_id", + "required": true, + "schema": { + "format": "uuid", + "ref": null, + "type": "string" + }, + "source": { + "path": "experiment_subject_type.data.id", + "type": "fixture" + }, + "style": null + } + ], + "path": "/api/v2/experiments/subject-types/{subject_type_id}" + }, + "scenario": "Patch subject type returns \"OK\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/start-experiment-returns-the-experiment-was-started-response.json b/features/generated-test/test-runner-data/v2/experiments/start-experiment-returns-the-experiment-was-started-response.json new file mode 100644 index 000000000000..36f965355810 --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/start-experiment-returns-the-experiment-was-started-response.json @@ -0,0 +1,35 @@ +{ + "api": "Experiments", + "expected_status": 204, + "feature": "Experiments", + "id": "v2/Experiments/Start experiment returns \"The experiment was started.\" response", + "operation_id": "StartExperiment", + "request": { + "body": null, + "content_type": "application/json", + "method": "POST", + "pagination": false, + "parameters": [ + { + "explode": null, + "in": "path", + "name": "experiment_id", + "required": true, + "schema": { + "format": "uuid", + "ref": null, + "type": "string" + }, + "source": { + "path": "configured_experiment.data.id", + "type": "fixture" + }, + "style": null + } + ], + "path": "/api/v2/experiments/{experiment_id}/start" + }, + "scenario": "Start experiment returns \"The experiment was started.\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/update-experiment-analysis-plan-attributes-returns-ok-response.json b/features/generated-test/test-runner-data/v2/experiments/update-experiment-analysis-plan-attributes-returns-ok-response.json new file mode 100644 index 000000000000..d21af8c60391 --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/update-experiment-analysis-plan-attributes-returns-ok-response.json @@ -0,0 +1,51 @@ +{ + "api": "Experiments", + "expected_status": 200, + "feature": "Experiments", + "id": "v2/Experiments/Update experiment analysis plan attributes returns \"OK\" response", + "operation_id": "UpdateExperimentAnalysisPlanAttributes", + "request": { + "body": { + "schema": { + "format": null, + "ref": "ExperimentsAnalysisPlanWriteV2Request", + "type": "object" + }, + "source": "inline", + "value": { + "data": { + "attributes": { + "confidence_level": 0.9 + }, + "id": "{{ experiment.data.id }}", + "type": "analysis-plans" + } + } + }, + "content_type": "application/json", + "method": "PATCH", + "pagination": false, + "parameters": [ + { + "explode": null, + "in": "path", + "name": "experiment_id", + "required": true, + "schema": { + "format": "uuid", + "ref": null, + "type": "string" + }, + "source": { + "path": "experiment.data.id", + "type": "fixture" + }, + "style": null + } + ], + "path": "/api/v2/experiments/{experiment_id}/analysis-plan" + }, + "scenario": "Update experiment analysis plan attributes returns \"OK\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/update-experiment-metric-group-returns-ok-response.json b/features/generated-test/test-runner-data/v2/experiments/update-experiment-metric-group-returns-ok-response.json new file mode 100644 index 000000000000..a77a4e39bf9a --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/update-experiment-metric-group-returns-ok-response.json @@ -0,0 +1,67 @@ +{ + "api": "Experiments", + "expected_status": 200, + "feature": "Experiments", + "id": "v2/Experiments/Update experiment metric group returns \"OK\" response", + "operation_id": "UpdateExperimentMetricGroup", + "request": { + "body": { + "schema": { + "format": null, + "ref": "ExperimentsPatchExperimentMetricGroupV2Request", + "type": "object" + }, + "source": "inline", + "value": { + "data": { + "attributes": { + "name": "ex-{{ unique_hash }} updated" + }, + "id": "{{ experiment_metric_group.data.id }}", + "type": "experiment-metric-groups" + } + } + }, + "content_type": "application/json", + "method": "PATCH", + "pagination": false, + "parameters": [ + { + "explode": null, + "in": "path", + "name": "experiment_id", + "required": true, + "schema": { + "format": "uuid", + "ref": null, + "type": "string" + }, + "source": { + "path": "experiment.data.id", + "type": "fixture" + }, + "style": null + }, + { + "explode": null, + "in": "path", + "name": "metric_group_id", + "required": true, + "schema": { + "format": "uuid", + "ref": null, + "type": "string" + }, + "source": { + "path": "experiment_metric_group.data.id", + "type": "fixture" + }, + "style": null + } + ], + "path": "/api/v2/experiments/{experiment_id}/metric-groups/{metric_group_id}" + }, + "scenario": "Update experiment metric group returns \"OK\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/update-metric-collection-returns-ok-response.json b/features/generated-test/test-runner-data/v2/experiments/update-metric-collection-returns-ok-response.json new file mode 100644 index 000000000000..16b6522612b9 --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/update-metric-collection-returns-ok-response.json @@ -0,0 +1,50 @@ +{ + "api": "Experiments", + "expected_status": 200, + "feature": "Experiments", + "id": "v2/Experiments/Update metric collection returns \"OK\" response", + "operation_id": "UpdateMetricCollection", + "request": { + "body": { + "schema": { + "format": null, + "ref": "ExperimentsPatchMetricCollectionV2Request", + "type": "object" + }, + "source": "inline", + "value": { + "data": { + "attributes": { + "name": "ex-{{ unique_hash }} updated" + }, + "type": "metric-collections" + } + } + }, + "content_type": "application/json", + "method": "PATCH", + "pagination": false, + "parameters": [ + { + "explode": null, + "in": "path", + "name": "metric_collection_id", + "required": true, + "schema": { + "format": "uuid", + "ref": null, + "type": "string" + }, + "source": { + "path": "experiment_metric_collection.data.id", + "type": "fixture" + }, + "style": null + } + ], + "path": "/api/v2/experiments/metric-collections/{metric_collection_id}" + }, + "scenario": "Update metric collection returns \"OK\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-runner-data/v2/experiments/update-metric-returns-ok-response.json b/features/generated-test/test-runner-data/v2/experiments/update-metric-returns-ok-response.json new file mode 100644 index 000000000000..0a5b56a09cf8 --- /dev/null +++ b/features/generated-test/test-runner-data/v2/experiments/update-metric-returns-ok-response.json @@ -0,0 +1,51 @@ +{ + "api": "Experiments", + "expected_status": 200, + "feature": "Experiments", + "id": "v2/Experiments/Update metric returns \"OK\" response", + "operation_id": "UpdateMetric", + "request": { + "body": { + "schema": { + "format": null, + "ref": "ExperimentsUpdateMetricV2Request", + "type": "object" + }, + "source": "inline", + "value": { + "data": { + "attributes": { + "name": "ex-{{ unique_hash }} updated" + }, + "id": "{{ experiment_metric.data.id }}", + "type": "metrics" + } + } + }, + "content_type": "application/json", + "method": "PATCH", + "pagination": false, + "parameters": [ + { + "explode": null, + "in": "path", + "name": "metric_id", + "required": true, + "schema": { + "format": "uuid", + "ref": null, + "type": "string" + }, + "source": { + "path": "experiment_metric.data.id", + "type": "fixture" + }, + "style": null + } + ], + "path": "/api/v2/experiments/metrics/{metric_id}" + }, + "scenario": "Update metric returns \"OK\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/features/generated-test/test-server-data/manifest.json b/features/generated-test/test-server-data/manifest.json index 77fd3c6d4260..3eaf315d4771 100644 --- a/features/generated-test/test-server-data/manifest.json +++ b/features/generated-test/test-server-data/manifest.json @@ -295,6 +295,11 @@ "file": "v2/execution-policy.json", "version": "v2" }, + { + "feature": "Experiments", + "file": "v2/experiments.json", + "version": "v2" + }, { "feature": "Fastly Integration", "file": "v2/fastly-integration.json", diff --git a/features/generated-test/test-server-data/v2/experiments.json b/features/generated-test/test-server-data/v2/experiments.json new file mode 100644 index 000000000000..a2b212b9ccc1 --- /dev/null +++ b/features/generated-test/test-server-data/v2/experiments.json @@ -0,0 +1,3263 @@ +{ + "feature": "Experiments", + "recordings": [ + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:00.715Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "name": "ex-d1ef1c09eac37619" + }, + "type": "experiments" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb120-5376-7000-b8b4-46eba92d4681\",\"type\":\"experiments\",\"attributes\":{\"assignments_end_date\":null,\"assignments_start_date\":null,\"concluded_at\":null,\"created_at\":\"2026-09-29T01:19:01.886749Z\",\"events_end_date\":null,\"events_start_date\":null,\"experiment_type\":\"STANDARD\",\"name\":\"ex-d1ef1c09eac37619\",\"pipeline_table_suffix\":\"r5m5ws\",\"related_links\":[],\"results_last_updated\":null,\"split_by_properties\":[],\"status\":\"DRAFT\",\"structured_metadata\":[],\"subject_type_id\":\"06abb0e8-33b2-7001-ad2f-70568bfbf6e9\",\"tags\":[],\"teams\":[],\"updated_at\":\"2026-09-29T01:19:01.905147Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "reason": "Cancel the test experiment" + }, + "type": "cancel-experiment-request" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments/06abb120-5376-7000-b8b4-46eba92d4681/cancel", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/06abb120-5376-7000-b8b4-46eba92d4681", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/06abb120-5376-7000-b8b4-46eba92d4681", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"errors\":[{\"status\":\"404\",\"title\":\"Not Found\",\"detail\":\"No experiment with this ID exists for the organization.\"}]}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Not Found", + "status": 404 + } + } + ], + "scenario": "Cancel experiment returns \"The experiment was canceled and unlinked from its feature flag allocations.\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:02.814Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "data_source_type": "DATADOG", + "desired_change": "METRIC_INCREASES", + "name": "ex-b29cca587e85de94", + "numerator_aggregation": { + "datadog_metric_measure": { + "column_name": "@view.time_spent", + "column_type": "double", + "name": "ex-b29cca587e85de94 view duration", + "source_subtype": "RUM_VIEWS", + "source_type": "PRODUCT_ANALYTICS" + }, + "operation": "sum" + } + }, + "type": "metrics" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments/metrics", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb120-700e-7000-9214-e323b83df155\",\"type\":\"metrics\",\"attributes\":{\"created_at\":\"2026-09-29T01:19:03.014929Z\",\"data_source_type\":\"DATADOG\",\"description\":\"\",\"desired_change\":\"METRIC_INCREASES\",\"format_as_percent\":false,\"metric_type\":\"SIMPLE\",\"name\":\"ex-b29cca587e85de94\",\"numerator_aggregation\":{\"operation\":\"sum\",\"timeframe_start_value\":0,\"winsorization_strategy\":\"all_assigned_subjects\",\"datadog_metric_measure\":{\"name\":\"ex-b29cca587e85de94 view duration\",\"source_type\":\"PRODUCT_ANALYTICS\",\"source_subtype\":\"RUM_VIEWS\",\"column_name\":\"@view.time_spent\",\"column_type\":\"double\",\"filters\":[],\"source_definition_filter\":[]}},\"reference_url\":\"\",\"updated_at\":\"2026-09-29T01:19:03.014929Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "metrics": [ + { + "metric_id": "06abb120-700e-7000-9214-e323b83df155" + } + ], + "name": "ex-b29cca587e85de94" + }, + "type": "metric-collections" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments/metric-collections", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb120-712c-7000-b063-25b16db2a261\",\"type\":\"metric-collections\",\"attributes\":{\"created_at\":\"2026-09-29T01:19:03.300740491Z\",\"description\":null,\"is_guardrail\":false,\"metrics\":[{\"metric_id\":\"06abb120-700e-7000-9214-e323b83df155\",\"metric_name\":\"ex-b29cca587e85de94\"}],\"name\":\"ex-b29cca587e85de94\",\"updated_at\":\"2026-09-29T01:19:03.300740491Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "name": "ex-b29cca587e85de94" + }, + "type": "experiments" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb120-7244-7000-922f-c77d0cea72b4\",\"type\":\"experiments\",\"attributes\":{\"assignments_end_date\":null,\"assignments_start_date\":null,\"concluded_at\":null,\"created_at\":\"2026-09-29T01:19:03.580592Z\",\"events_end_date\":null,\"events_start_date\":null,\"experiment_type\":\"STANDARD\",\"name\":\"ex-b29cca587e85de94\",\"pipeline_table_suffix\":\"e1ts3w\",\"related_links\":[],\"results_last_updated\":null,\"split_by_properties\":[],\"status\":\"DRAFT\",\"structured_metadata\":[],\"subject_type_id\":\"06abb0e8-33b2-7001-ad2f-70568bfbf6e9\",\"tags\":[],\"teams\":[],\"updated_at\":\"2026-09-29T01:19:03.603156Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "POST", + "path": "/api/v2/experiments/06abb120-7244-7000-922f-c77d0cea72b4/metric-groups/from-collection/06abb120-712c-7000-b063-25b16db2a261", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb120-73bf-7000-b2c3-66492d245957\",\"type\":\"experiment-metric-groups\",\"attributes\":{\"is_decision\":false,\"metrics\":[{\"metric_id\":\"06abb120-700e-7000-9214-e323b83df155\",\"metric_name\":\"ex-b29cca587e85de94\",\"is_primary\":false}],\"name\":\"ex-b29cca587e85de94\"}},\"meta\":{\"needs_pipeline_refresh\":false}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/06abb120-7244-7000-922f-c77d0cea72b4/metric-groups/06abb120-73bf-7000-b2c3-66492d245957", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/06abb120-7244-7000-922f-c77d0cea72b4", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/metric-collections/06abb120-712c-7000-b063-25b16db2a261", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/metrics/06abb120-700e-7000-9214-e323b83df155", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + } + ], + "scenario": "Create experiment metric group from collection returns \"Created\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:05.299Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "data_source_type": "DATADOG", + "desired_change": "METRIC_INCREASES", + "name": "ex-f2a7447c6abe8f22", + "numerator_aggregation": { + "datadog_metric_measure": { + "column_name": "@view.time_spent", + "column_type": "double", + "name": "ex-f2a7447c6abe8f22 view duration", + "source_subtype": "RUM_VIEWS", + "source_type": "PRODUCT_ANALYTICS" + }, + "operation": "sum" + } + }, + "type": "metrics" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments/metrics", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb120-91f1-7000-bf63-6db8157412b4\",\"type\":\"metrics\",\"attributes\":{\"created_at\":\"2026-09-29T01:19:05.497364Z\",\"data_source_type\":\"DATADOG\",\"description\":\"\",\"desired_change\":\"METRIC_INCREASES\",\"format_as_percent\":false,\"metric_type\":\"SIMPLE\",\"name\":\"ex-f2a7447c6abe8f22\",\"numerator_aggregation\":{\"operation\":\"sum\",\"timeframe_start_value\":0,\"winsorization_strategy\":\"all_assigned_subjects\",\"datadog_metric_measure\":{\"name\":\"ex-f2a7447c6abe8f22 view duration\",\"source_type\":\"PRODUCT_ANALYTICS\",\"source_subtype\":\"RUM_VIEWS\",\"column_name\":\"@view.time_spent\",\"column_type\":\"double\",\"filters\":[],\"source_definition_filter\":[]}},\"reference_url\":\"\",\"updated_at\":\"2026-09-29T01:19:05.497364Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "name": "ex-f2a7447c6abe8f22" + }, + "type": "experiments" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb120-930f-7000-bf87-0b2fe8733b2f\",\"type\":\"experiments\",\"attributes\":{\"assignments_end_date\":null,\"assignments_start_date\":null,\"concluded_at\":null,\"created_at\":\"2026-09-29T01:19:05.783415Z\",\"events_end_date\":null,\"events_start_date\":null,\"experiment_type\":\"STANDARD\",\"name\":\"ex-f2a7447c6abe8f22\",\"pipeline_table_suffix\":\"58x5ri\",\"related_links\":[],\"results_last_updated\":null,\"split_by_properties\":[],\"status\":\"DRAFT\",\"structured_metadata\":[],\"subject_type_id\":\"06abb0e8-33b2-7001-ad2f-70568bfbf6e9\",\"tags\":[],\"teams\":[],\"updated_at\":\"2026-09-29T01:19:05.805651Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "metrics": [ + { + "metric_id": "06abb120-91f1-7000-bf63-6db8157412b4" + } + ], + "name": "ex-f2a7447c6abe8f22" + }, + "type": "experiment-metric-groups" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments/06abb120-930f-7000-bf87-0b2fe8733b2f/metric-groups", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb120-a081-7000-99ff-164ae22811c7\",\"type\":\"experiment-metric-groups\",\"attributes\":{\"is_decision\":false,\"metrics\":[{\"metric_id\":\"06abb120-91f1-7000-bf63-6db8157412b4\",\"metric_name\":\"ex-f2a7447c6abe8f22\",\"is_primary\":false}],\"name\":\"ex-f2a7447c6abe8f22\"}},\"meta\":{\"needs_pipeline_refresh\":false}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/06abb120-930f-7000-bf87-0b2fe8733b2f/metric-groups/06abb120-a081-7000-99ff-164ae22811c7", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/06abb120-930f-7000-bf87-0b2fe8733b2f", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/metrics/06abb120-91f1-7000-bf63-6db8157412b4", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + } + ], + "scenario": "Create experiment metric group returns \"Created\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:07.122Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "name": "ex-70cd9dc4cef20aa2" + }, + "type": "experiments" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb120-b14a-7000-9221-0407cbc4292b\",\"type\":\"experiments\",\"attributes\":{\"assignments_end_date\":null,\"assignments_start_date\":null,\"concluded_at\":null,\"created_at\":\"2026-09-29T01:19:07.330736Z\",\"events_end_date\":null,\"events_start_date\":null,\"experiment_type\":\"STANDARD\",\"name\":\"ex-70cd9dc4cef20aa2\",\"pipeline_table_suffix\":\"wd6shh\",\"related_links\":[],\"results_last_updated\":null,\"split_by_properties\":[],\"status\":\"DRAFT\",\"structured_metadata\":[],\"subject_type_id\":\"06abb0e8-33b2-7001-ad2f-70568bfbf6e9\",\"tags\":[],\"teams\":[],\"updated_at\":\"2026-09-29T01:19:07.344161Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/06abb120-b14a-7000-9221-0407cbc4292b", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + } + ], + "scenario": "Create experiment returns \"Created\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:07.705Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "name": "ex-fae143fec38b5ba2" + }, + "type": "metric-collections" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments/metric-collections", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb120-b390-7000-ace2-9bf42b350fab\",\"type\":\"metric-collections\",\"attributes\":{\"created_at\":\"2026-09-29T01:19:07.912117899Z\",\"description\":null,\"is_guardrail\":false,\"metrics\":[],\"name\":\"ex-fae143fec38b5ba2\",\"updated_at\":\"2026-09-29T01:19:07.912117899Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/metric-collections/06abb120-b390-7000-ace2-9bf42b350fab", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + } + ], + "scenario": "Create metric collection returns \"Created\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:08.217Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "data_source_type": "DATADOG", + "desired_change": "METRIC_INCREASES", + "name": "ex-d0325fcdd566149a", + "numerator_aggregation": { + "datadog_metric_measure": { + "column_name": "@view.time_spent", + "column_type": "double", + "name": "ex-d0325fcdd566149a view duration", + "source_subtype": "RUM_VIEWS", + "source_type": "PRODUCT_ANALYTICS" + }, + "operation": "sum" + } + }, + "type": "metrics" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments/metrics", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb120-c19c-7000-8cdb-59c1d1653829\",\"type\":\"metrics\",\"attributes\":{\"created_at\":\"2026-09-29T01:19:08.412444Z\",\"data_source_type\":\"DATADOG\",\"description\":\"\",\"desired_change\":\"METRIC_INCREASES\",\"format_as_percent\":false,\"metric_type\":\"SIMPLE\",\"name\":\"ex-d0325fcdd566149a\",\"numerator_aggregation\":{\"operation\":\"sum\",\"timeframe_start_value\":0,\"winsorization_strategy\":\"all_assigned_subjects\",\"datadog_metric_measure\":{\"name\":\"ex-d0325fcdd566149a view duration\",\"source_type\":\"PRODUCT_ANALYTICS\",\"source_subtype\":\"RUM_VIEWS\",\"column_name\":\"@view.time_spent\",\"column_type\":\"double\",\"filters\":[],\"source_definition_filter\":[]}},\"reference_url\":\"\",\"updated_at\":\"2026-09-29T01:19:08.412444Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/metrics/06abb120-c19c-7000-8cdb-59c1d1653829", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + } + ], + "scenario": "Create metric returns \"Created\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:08.787Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "name": "ex-7257f1974d09ed08", + "product_analytics_attribute": "@account.id", + "warehouse_column_names": [ + "account_id" + ] + }, + "type": "subject-types" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments/subject-types", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb120-c3d7-7001-bd61-d70aa278714c\",\"type\":\"subject-types\",\"attributes\":{\"created_at\":\"2026-09-29T01:19:08.983034952Z\",\"is_default\":false,\"name\":\"ex-7257f1974d09ed08\",\"product_analytics_attribute\":\"@account.id\",\"updated_at\":\"2026-09-29T01:19:08.983034952Z\",\"warehouse_column_names\":[\"account_id\"]}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/subject-types/06abb120-c3d7-7001-bd61-d70aa278714c", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + } + ], + "scenario": "Create subject type returns \"Created\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:09.326Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "data_source_type": "DATADOG", + "desired_change": "METRIC_INCREASES", + "name": "ex-25665ef04b0f14d1", + "numerator_aggregation": { + "datadog_metric_measure": { + "column_name": "@view.time_spent", + "column_type": "double", + "name": "ex-25665ef04b0f14d1 view duration", + "source_subtype": "RUM_VIEWS", + "source_type": "PRODUCT_ANALYTICS" + }, + "operation": "sum" + } + }, + "type": "metrics" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments/metrics", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb120-d20c-7000-9628-380b5113f6c2\",\"type\":\"metrics\",\"attributes\":{\"created_at\":\"2026-09-29T01:19:09.524217Z\",\"data_source_type\":\"DATADOG\",\"description\":\"\",\"desired_change\":\"METRIC_INCREASES\",\"format_as_percent\":false,\"metric_type\":\"SIMPLE\",\"name\":\"ex-25665ef04b0f14d1\",\"numerator_aggregation\":{\"operation\":\"sum\",\"timeframe_start_value\":0,\"winsorization_strategy\":\"all_assigned_subjects\",\"datadog_metric_measure\":{\"name\":\"ex-25665ef04b0f14d1 view duration\",\"source_type\":\"PRODUCT_ANALYTICS\",\"source_subtype\":\"RUM_VIEWS\",\"column_name\":\"@view.time_spent\",\"column_type\":\"double\",\"filters\":[],\"source_definition_filter\":[]}},\"reference_url\":\"\",\"updated_at\":\"2026-09-29T01:19:09.524217Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "name": "ex-25665ef04b0f14d1" + }, + "type": "experiments" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb120-d317-7000-807c-b69ae3bb2980\",\"type\":\"experiments\",\"attributes\":{\"assignments_end_date\":null,\"assignments_start_date\":null,\"concluded_at\":null,\"created_at\":\"2026-09-29T01:19:09.791826Z\",\"events_end_date\":null,\"events_start_date\":null,\"experiment_type\":\"STANDARD\",\"name\":\"ex-25665ef04b0f14d1\",\"pipeline_table_suffix\":\"qehgia\",\"related_links\":[],\"results_last_updated\":null,\"split_by_properties\":[],\"status\":\"DRAFT\",\"structured_metadata\":[],\"subject_type_id\":\"06abb0e8-33b2-7001-ad2f-70568bfbf6e9\",\"tags\":[],\"teams\":[],\"updated_at\":\"2026-09-29T01:19:09.810621Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "metrics": [ + { + "metric_id": "06abb120-d20c-7000-9628-380b5113f6c2" + } + ], + "name": "ex-25665ef04b0f14d1" + }, + "type": "experiment-metric-groups" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments/06abb120-d317-7000-807c-b69ae3bb2980/metric-groups", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb120-e11b-7000-959d-3957a9c3a3f7\",\"type\":\"experiment-metric-groups\",\"attributes\":{\"is_decision\":false,\"metrics\":[{\"metric_id\":\"06abb120-d20c-7000-9628-380b5113f6c2\",\"metric_name\":\"ex-25665ef04b0f14d1\",\"is_primary\":false}],\"name\":\"ex-25665ef04b0f14d1\"}},\"meta\":{\"needs_pipeline_refresh\":false}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/06abb120-d317-7000-807c-b69ae3bb2980/metric-groups/06abb120-e11b-7000-959d-3957a9c3a3f7", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/06abb120-d317-7000-807c-b69ae3bb2980/metric-groups/06abb120-e11b-7000-959d-3957a9c3a3f7", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"errors\":[{\"status\":\"404\",\"title\":\"Not Found\",\"detail\":\"No experiment metric group with this ID exists for the organization.\"}]}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Not Found", + "status": 404 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/06abb120-d317-7000-807c-b69ae3bb2980", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/metrics/06abb120-d20c-7000-9628-380b5113f6c2", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + } + ], + "scenario": "Delete experiment metric group returns \"No Content\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:11.599Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "name": "ex-945ac087b045f1e8" + }, + "type": "experiments" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb120-f31f-7000-8ac6-441398943b25\",\"type\":\"experiments\",\"attributes\":{\"assignments_end_date\":null,\"assignments_start_date\":null,\"concluded_at\":null,\"created_at\":\"2026-09-29T01:19:11.799976Z\",\"events_end_date\":null,\"events_start_date\":null,\"experiment_type\":\"STANDARD\",\"name\":\"ex-945ac087b045f1e8\",\"pipeline_table_suffix\":\"avlpdt\",\"related_links\":[],\"results_last_updated\":null,\"split_by_properties\":[],\"status\":\"DRAFT\",\"structured_metadata\":[],\"subject_type_id\":\"06abb0e8-33b2-7001-ad2f-70568bfbf6e9\",\"tags\":[],\"teams\":[],\"updated_at\":\"2026-09-29T01:19:11.818165Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/06abb120-f31f-7000-8ac6-441398943b25", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/06abb120-f31f-7000-8ac6-441398943b25", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"errors\":[{\"status\":\"404\",\"title\":\"Not Found\",\"detail\":\"No experiment with this ID exists for the organization.\"}]}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Not Found", + "status": 404 + } + } + ], + "scenario": "Delete experiment returns \"No Content\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:12.515Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "name": "ex-0fa0b0ceb865c649" + }, + "type": "metric-collections" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments/metric-collections", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb121-02c7-7000-9710-529dde4b5f9c\",\"type\":\"metric-collections\",\"attributes\":{\"created_at\":\"2026-09-29T01:19:12.711473855Z\",\"description\":null,\"is_guardrail\":false,\"metrics\":[],\"name\":\"ex-0fa0b0ceb865c649\",\"updated_at\":\"2026-09-29T01:19:12.711473855Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/metric-collections/06abb121-02c7-7000-9710-529dde4b5f9c", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/metric-collections/06abb121-02c7-7000-9710-529dde4b5f9c", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"errors\":[{\"status\":\"404\",\"title\":\"Not Found\",\"detail\":\"No metric collection with this ID exists for the organization.\"}]}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Not Found", + "status": 404 + } + } + ], + "scenario": "Delete metric collection returns \"No Content\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:13.266Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "data_source_type": "DATADOG", + "desired_change": "METRIC_INCREASES", + "name": "ex-e922d20b6d4a1aeb", + "numerator_aggregation": { + "datadog_metric_measure": { + "column_name": "@view.time_spent", + "column_type": "double", + "name": "ex-e922d20b6d4a1aeb view duration", + "source_subtype": "RUM_VIEWS", + "source_type": "PRODUCT_ANALYTICS" + }, + "operation": "sum" + } + }, + "type": "metrics" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments/metrics", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb121-11d5-7000-8120-95e382c09b77\",\"type\":\"metrics\",\"attributes\":{\"created_at\":\"2026-09-29T01:19:13.469553Z\",\"data_source_type\":\"DATADOG\",\"description\":\"\",\"desired_change\":\"METRIC_INCREASES\",\"format_as_percent\":false,\"metric_type\":\"SIMPLE\",\"name\":\"ex-e922d20b6d4a1aeb\",\"numerator_aggregation\":{\"operation\":\"sum\",\"timeframe_start_value\":0,\"winsorization_strategy\":\"all_assigned_subjects\",\"datadog_metric_measure\":{\"name\":\"ex-e922d20b6d4a1aeb view duration\",\"source_type\":\"PRODUCT_ANALYTICS\",\"source_subtype\":\"RUM_VIEWS\",\"column_name\":\"@view.time_spent\",\"column_type\":\"double\",\"filters\":[],\"source_definition_filter\":[]}},\"reference_url\":\"\",\"updated_at\":\"2026-09-29T01:19:13.469553Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/metrics/06abb121-11d5-7000-8120-95e382c09b77", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/metrics/06abb121-11d5-7000-8120-95e382c09b77", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"errors\":[{\"status\":\"404\",\"title\":\"Not Found\",\"detail\":\"No metric with this ID exists for the organization.\"}]}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Not Found", + "status": 404 + } + } + ], + "scenario": "Delete metric returns \"The metric was deleted.\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:14.074Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "name": "ex-707aa356f263bfdd", + "product_analytics_attribute": "@account.id", + "warehouse_column_names": [ + "account_id" + ] + }, + "type": "subject-types" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments/subject-types", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb121-210e-7001-8d77-04715c54eed0\",\"type\":\"subject-types\",\"attributes\":{\"created_at\":\"2026-09-29T01:19:14.270565987Z\",\"is_default\":false,\"name\":\"ex-707aa356f263bfdd\",\"product_analytics_attribute\":\"@account.id\",\"updated_at\":\"2026-09-29T01:19:14.270565987Z\",\"warehouse_column_names\":[\"account_id\"]}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/subject-types/06abb121-210e-7001-8d77-04715c54eed0", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/subject-types/06abb121-210e-7001-8d77-04715c54eed0", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + } + ], + "scenario": "Delete subject type returns \"No Content\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:14.875Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "name": "ex-c7e0f14cf9254477" + }, + "type": "experiments" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb121-3065-7000-9ec5-86f4e3a37e24\",\"type\":\"experiments\",\"attributes\":{\"assignments_end_date\":null,\"assignments_start_date\":null,\"concluded_at\":null,\"created_at\":\"2026-09-29T01:19:15.10118Z\",\"events_end_date\":null,\"events_start_date\":null,\"experiment_type\":\"STANDARD\",\"name\":\"ex-c7e0f14cf9254477\",\"pipeline_table_suffix\":\"bin7as\",\"related_links\":[],\"results_last_updated\":null,\"split_by_properties\":[],\"status\":\"DRAFT\",\"structured_metadata\":[],\"subject_type_id\":\"06abb0e8-33b2-7001-ad2f-70568bfbf6e9\",\"tags\":[],\"teams\":[],\"updated_at\":\"2026-09-29T01:19:15.124394Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "GET", + "path": "/api/v2/experiments/06abb121-3065-7000-9ec5-86f4e3a37e24/analysis-plan", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb121-3065-7000-9ec5-86f4e3a37e24\",\"type\":\"analysis-plans\",\"attributes\":{\"bayesian_prior\":{\"standard_deviation\":0.05,\"degrees_of_freedom\":null},\"confidence_interval_method\":\"Sequential\",\"confidence_level\":0.95,\"cuped_lookback_period_days\":30,\"experiment_auto_end_days\":0,\"experiment_min_duration\":7,\"experiment_min_sample_size\":500,\"has_custom_analysis_settings\":false,\"is_cuped_enabled\":true,\"is_multiple_testing_correction_enabled\":false,\"preferential_bonferroni_primary_metric_weight\":0.5,\"target_duration_days\":null}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "OK", + "status": 200 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/06abb121-3065-7000-9ec5-86f4e3a37e24", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + } + ], + "scenario": "Get experiment analysis plan returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:15.743Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "name": "ex-6c1967cc7a69a3f4" + }, + "type": "experiments" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb121-33bb-7000-b9a1-964ce388fcf3\",\"type\":\"experiments\",\"attributes\":{\"assignments_end_date\":null,\"assignments_start_date\":null,\"concluded_at\":null,\"created_at\":\"2026-09-29T01:19:15.95523Z\",\"events_end_date\":null,\"events_start_date\":null,\"experiment_type\":\"STANDARD\",\"name\":\"ex-6c1967cc7a69a3f4\",\"pipeline_table_suffix\":\"iyxlgc\",\"related_links\":[],\"results_last_updated\":null,\"split_by_properties\":[],\"status\":\"DRAFT\",\"structured_metadata\":[],\"subject_type_id\":\"06abb0e8-33b2-7001-ad2f-70568bfbf6e9\",\"tags\":[],\"teams\":[],\"updated_at\":\"2026-09-29T01:19:15.9808Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "GET", + "path": "/api/v2/experiments/06abb121-33bb-7000-b9a1-964ce388fcf3/diagnostics", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb121-33bb-7000-b9a1-964ce388fcf3\",\"type\":\"experiment-diagnostics\",\"attributes\":{\"diagnostics\":[],\"evaluated_at\":null,\"result\":null,\"state\":\"NOT_STARTED\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "OK", + "status": 200 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/06abb121-33bb-7000-b9a1-964ce388fcf3", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + } + ], + "scenario": "Get experiment diagnostics returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:16.633Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "name": "ex-ec2a6b7a57a4440f" + }, + "type": "experiments" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb121-4341-7000-b43a-a5e72f70cf85\",\"type\":\"experiments\",\"attributes\":{\"assignments_end_date\":null,\"assignments_start_date\":null,\"concluded_at\":null,\"created_at\":\"2026-09-29T01:19:16.833715Z\",\"events_end_date\":null,\"events_start_date\":null,\"experiment_type\":\"STANDARD\",\"name\":\"ex-ec2a6b7a57a4440f\",\"pipeline_table_suffix\":\"unhsqj\",\"related_links\":[],\"results_last_updated\":null,\"split_by_properties\":[],\"status\":\"DRAFT\",\"structured_metadata\":[],\"subject_type_id\":\"06abb0e8-33b2-7001-ad2f-70568bfbf6e9\",\"tags\":[],\"teams\":[],\"updated_at\":\"2026-09-29T01:19:16.855173Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "GET", + "path": "/api/v2/experiments/06abb121-4341-7000-b43a-a5e72f70cf85", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb121-4341-7000-b43a-a5e72f70cf85\",\"type\":\"experiments\",\"attributes\":{\"assignments_end_date\":null,\"assignments_start_date\":null,\"concluded_at\":null,\"created_at\":\"2026-09-29T01:19:16.833715Z\",\"events_end_date\":null,\"events_start_date\":null,\"experiment_type\":\"STANDARD\",\"name\":\"ex-ec2a6b7a57a4440f\",\"pipeline_table_suffix\":\"unhsqj\",\"related_links\":[],\"results_last_updated\":null,\"split_by_properties\":[],\"status\":\"DRAFT\",\"structured_metadata\":[],\"subject_type_id\":\"06abb0e8-33b2-7001-ad2f-70568bfbf6e9\",\"tags\":[],\"teams\":[],\"updated_at\":\"2026-09-29T01:19:16.855173Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "OK", + "status": 200 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/06abb121-4341-7000-b43a-a5e72f70cf85", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + } + ], + "scenario": "Get experiment returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:17.546Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "name": "ex-6cf2909008f67a4b" + }, + "type": "experiments" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb121-52ed-7000-8350-8706d0cfd2d3\",\"type\":\"experiments\",\"attributes\":{\"assignments_end_date\":null,\"assignments_start_date\":null,\"concluded_at\":null,\"created_at\":\"2026-09-29T01:19:17.749747Z\",\"events_end_date\":null,\"events_start_date\":null,\"experiment_type\":\"STANDARD\",\"name\":\"ex-6cf2909008f67a4b\",\"pipeline_table_suffix\":\"52wd1g\",\"related_links\":[],\"results_last_updated\":null,\"split_by_properties\":[],\"status\":\"DRAFT\",\"structured_metadata\":[],\"subject_type_id\":\"06abb0e8-33b2-7001-ad2f-70568bfbf6e9\",\"tags\":[],\"teams\":[],\"updated_at\":\"2026-09-29T01:19:17.762752Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "GET", + "path": "/api/v2/experiments/06abb121-52ed-7000-8350-8706d0cfd2d3/traffic-summary", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb121-52ed-7000-8350-8706d0cfd2d3\",\"type\":\"traffic-summary\",\"attributes\":{\"is_traffic_imbalanced\":false,\"total_subjects\":0,\"variants\":[]}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "OK", + "status": 200 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/06abb121-52ed-7000-8350-8706d0cfd2d3", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + } + ], + "scenario": "Get experiment traffic summary returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:18.383Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "name": "ex-8ca42a5ab91829fb" + }, + "type": "metric-collections" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments/metric-collections", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb121-623e-7000-a5e3-334f00838b73\",\"type\":\"metric-collections\",\"attributes\":{\"created_at\":\"2026-09-29T01:19:18.574368381Z\",\"description\":null,\"is_guardrail\":false,\"metrics\":[],\"name\":\"ex-8ca42a5ab91829fb\",\"updated_at\":\"2026-09-29T01:19:18.574368381Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "GET", + "path": "/api/v2/experiments/metric-collections/06abb121-623e-7000-a5e3-334f00838b73", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb121-623e-7000-a5e3-334f00838b73\",\"type\":\"metric-collections\",\"attributes\":{\"created_at\":\"2026-09-29T01:19:18.574368Z\",\"description\":null,\"is_guardrail\":false,\"metrics\":[],\"name\":\"ex-8ca42a5ab91829fb\",\"updated_at\":\"2026-09-29T01:19:18.574368Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "OK", + "status": 200 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/metric-collections/06abb121-623e-7000-a5e3-334f00838b73", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + } + ], + "scenario": "Get metric collection returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:19.129Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "data_source_type": "DATADOG", + "desired_change": "METRIC_INCREASES", + "name": "ex-40ab2ae1b81782df", + "numerator_aggregation": { + "datadog_metric_measure": { + "column_name": "@view.time_spent", + "column_type": "double", + "name": "ex-40ab2ae1b81782df view duration", + "source_subtype": "RUM_VIEWS", + "source_type": "PRODUCT_ANALYTICS" + }, + "operation": "sum" + } + }, + "type": "metrics" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments/metrics", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb121-7149-7000-bcde-94a5ba1d34d7\",\"type\":\"metrics\",\"attributes\":{\"created_at\":\"2026-09-29T01:19:19.329948Z\",\"data_source_type\":\"DATADOG\",\"description\":\"\",\"desired_change\":\"METRIC_INCREASES\",\"format_as_percent\":false,\"metric_type\":\"SIMPLE\",\"name\":\"ex-40ab2ae1b81782df\",\"numerator_aggregation\":{\"operation\":\"sum\",\"timeframe_start_value\":0,\"winsorization_strategy\":\"all_assigned_subjects\",\"datadog_metric_measure\":{\"name\":\"ex-40ab2ae1b81782df view duration\",\"source_type\":\"PRODUCT_ANALYTICS\",\"source_subtype\":\"RUM_VIEWS\",\"column_name\":\"@view.time_spent\",\"column_type\":\"double\",\"filters\":[],\"source_definition_filter\":[]}},\"reference_url\":\"\",\"updated_at\":\"2026-09-29T01:19:19.329948Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "GET", + "path": "/api/v2/experiments/metrics/06abb121-7149-7000-bcde-94a5ba1d34d7", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb121-7149-7000-bcde-94a5ba1d34d7\",\"type\":\"metrics\",\"attributes\":{\"created_at\":\"2026-09-29T01:19:19.329948Z\",\"data_source_type\":\"DATADOG\",\"description\":\"\",\"desired_change\":\"METRIC_INCREASES\",\"format_as_percent\":false,\"metric_type\":\"SIMPLE\",\"name\":\"ex-40ab2ae1b81782df\",\"numerator_aggregation\":{\"operation\":\"sum\",\"timeframe_start_value\":0,\"winsorization_strategy\":\"all_assigned_subjects\",\"datadog_metric_measure\":{\"name\":\"ex-40ab2ae1b81782df view duration\",\"source_type\":\"PRODUCT_ANALYTICS\",\"source_subtype\":\"RUM_VIEWS\",\"column_name\":\"@view.time_spent\",\"column_type\":\"double\",\"filters\":[],\"source_definition_filter\":[]}},\"reference_url\":\"\",\"updated_at\":\"2026-09-29T01:19:19.329948Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "OK", + "status": 200 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/metrics/06abb121-7149-7000-bcde-94a5ba1d34d7", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + } + ], + "scenario": "Get metric returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:19.965Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "name": "ex-bcba4aaecfb6382d", + "product_analytics_attribute": "@account.id", + "warehouse_column_names": [ + "account_id" + ] + }, + "type": "subject-types" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments/subject-types", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb121-80a7-7001-ac37-107d0c9d9743\",\"type\":\"subject-types\",\"attributes\":{\"created_at\":\"2026-09-29T01:19:20.167354738Z\",\"is_default\":false,\"name\":\"ex-bcba4aaecfb6382d\",\"product_analytics_attribute\":\"@account.id\",\"updated_at\":\"2026-09-29T01:19:20.167354738Z\",\"warehouse_column_names\":[\"account_id\"]}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "GET", + "path": "/api/v2/experiments/subject-types/06abb121-80a7-7001-ac37-107d0c9d9743", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb121-80a7-7001-ac37-107d0c9d9743\",\"type\":\"subject-types\",\"attributes\":{\"created_at\":\"2026-09-29T01:19:20.167354Z\",\"is_default\":false,\"name\":\"ex-bcba4aaecfb6382d\",\"product_analytics_attribute\":\"@account.id\",\"updated_at\":\"2026-09-29T01:19:20.167354Z\",\"warehouse_column_names\":[\"account_id\"]}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "OK", + "status": 200 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/subject-types/06abb121-80a7-7001-ac37-107d0c9d9743", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + } + ], + "scenario": "Get subject type returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:20.780Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "name": "ex-1c9db922870e214d" + }, + "type": "experiments" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb121-83db-7000-98f8-c2eedc8f04c5\",\"type\":\"experiments\",\"attributes\":{\"assignments_end_date\":null,\"assignments_start_date\":null,\"concluded_at\":null,\"created_at\":\"2026-09-29T01:19:20.98764Z\",\"events_end_date\":null,\"events_start_date\":null,\"experiment_type\":\"STANDARD\",\"name\":\"ex-1c9db922870e214d\",\"pipeline_table_suffix\":\"tgb7nz\",\"related_links\":[],\"results_last_updated\":null,\"split_by_properties\":[],\"status\":\"DRAFT\",\"structured_metadata\":[],\"subject_type_id\":\"06abb0e8-33b2-7001-ad2f-70568bfbf6e9\",\"tags\":[],\"teams\":[],\"updated_at\":\"2026-09-29T01:19:21.009578Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "GET", + "path": "/api/v2/experiments/06abb121-83db-7000-98f8-c2eedc8f04c5/metric-groups", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":[]}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "OK", + "status": 200 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/06abb121-83db-7000-98f8-c2eedc8f04c5", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + } + ], + "scenario": "List experiment metric groups returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:21.616Z", + "interactions": [ + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "GET", + "path": "/api/v2/experiments/protocols", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":[],\"meta\":{\"page\":{\"type\":\"offset_limit\",\"offset\":0,\"limit\":25,\"total\":0,\"first_offset\":0,\"prev_offset\":null,\"next_offset\":null,\"last_offset\":0}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/experiments/protocols\",\"first\":\"https://api.datadoghq.com/api/v2/experiments/protocols?page%5Blimit%5D=25\\u0026page%5Boffset%5D=0\",\"last\":\"https://api.datadoghq.com/api/v2/experiments/protocols?page%5Blimit%5D=25\\u0026page%5Boffset%5D=0\"}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "OK", + "status": 200 + } + } + ], + "scenario": "List experiment protocols returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:21.852Z", + "interactions": [ + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "GET", + "path": "/api/v2/experiments", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":[{\"id\":\"06abb0e8-d038-7000-b558-1f976d546f4f\",\"type\":\"experiments\",\"attributes\":{\"assignments_end_date\":null,\"assignments_start_date\":null,\"concluded_at\":null,\"created_at\":\"2026-09-29T01:04:13.056868Z\",\"events_end_date\":null,\"events_start_date\":null,\"experiment_type\":\"STANDARD\",\"name\":\"Test-Get_experiment_returns_OK_response-1790643852\",\"pipeline_table_suffix\":\"segee9\",\"related_links\":[],\"results_last_updated\":null,\"status\":\"DRAFT\",\"structured_metadata\":[],\"subject_type_id\":\"06abb0e8-33b2-7001-ad2f-70568bfbf6e9\",\"tags\":[],\"teams\":[],\"updated_at\":\"2026-09-29T01:04:13.080761Z\"}},{\"id\":\"06abb0e8-c0ee-7000-b9a6-fc7f51fa4ed0\",\"type\":\"experiments\",\"attributes\":{\"assignments_end_date\":null,\"assignments_start_date\":null,\"concluded_at\":null,\"created_at\":\"2026-09-29T01:04:12.238774Z\",\"events_end_date\":null,\"events_start_date\":null,\"experiment_type\":\"STANDARD\",\"name\":\"Test-Get_experiment_diagnostics_returns_OK_response-1790643852\",\"pipeline_table_suffix\":\"h7xbsa\",\"related_links\":[],\"results_last_updated\":null,\"status\":\"DRAFT\",\"structured_metadata\":[],\"subject_type_id\":\"06abb0e8-33b2-7001-ad2f-70568bfbf6e9\",\"tags\":[],\"teams\":[],\"updated_at\":\"2026-09-29T01:04:12.256394Z\"}},{\"id\":\"06abb0e8-902f-7000-9f79-3668fc5ec0c6\",\"type\":\"experiments\",\"attributes\":{\"assignments_end_date\":null,\"assignments_start_date\":null,\"concluded_at\":null,\"created_at\":\"2026-09-29T01:04:09.047888Z\",\"events_end_date\":null,\"events_start_date\":null,\"experiment_type\":\"STANDARD\",\"name\":\"Test-Delete_experiment_metric_group_returns_No_Content_response-1790643848\",\"pipeline_table_suffix\":\"u4u1an\",\"related_links\":[],\"results_last_updated\":null,\"status\":\"DRAFT\",\"structured_metadata\":[],\"subject_type_id\":\"06abb0e8-33b2-7001-ad2f-70568bfbf6e9\",\"tags\":[],\"teams\":[],\"updated_at\":\"2026-09-29T01:04:09.065455Z\"}}],\"meta\":{\"page\":{\"type\":\"offset_limit\",\"offset\":0,\"limit\":25,\"total\":3,\"first_offset\":0,\"prev_offset\":null,\"next_offset\":null,\"last_offset\":0}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/experiments\",\"first\":\"https://api.datadoghq.com/api/v2/experiments?page%5Blimit%5D=25\\u0026page%5Boffset%5D=0\",\"last\":\"https://api.datadoghq.com/api/v2/experiments?page%5Blimit%5D=25\\u0026page%5Boffset%5D=0\"}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "OK", + "status": 200 + } + } + ], + "scenario": "List experiments returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:22.117Z", + "interactions": [ + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "GET", + "path": "/api/v2/experiments/exposure-sql-models", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":[],\"meta\":{\"page\":{\"type\":\"offset_limit\",\"offset\":0,\"limit\":25,\"total\":0,\"first_offset\":0,\"prev_offset\":null,\"next_offset\":null,\"last_offset\":0}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/experiments/exposure-sql-models\",\"first\":\"https://api.datadoghq.com/api/v2/experiments/exposure-sql-models?page%5Blimit%5D=25\\u0026page%5Boffset%5D=0\",\"last\":\"https://api.datadoghq.com/api/v2/experiments/exposure-sql-models?page%5Blimit%5D=25\\u0026page%5Boffset%5D=0\"}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "OK", + "status": 200 + } + } + ], + "scenario": "List exposure SQL models returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:22.363Z", + "interactions": [ + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "GET", + "path": "/api/v2/experiments/metric-sql-models", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":[],\"meta\":{\"page\":{\"type\":\"offset_limit\",\"offset\":0,\"limit\":25,\"total\":0,\"first_offset\":0,\"prev_offset\":null,\"next_offset\":null,\"last_offset\":0}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/experiments/metric-sql-models\",\"first\":\"https://api.datadoghq.com/api/v2/experiments/metric-sql-models?page%5Blimit%5D=25\\u0026page%5Boffset%5D=0\",\"last\":\"https://api.datadoghq.com/api/v2/experiments/metric-sql-models?page%5Blimit%5D=25\\u0026page%5Boffset%5D=0\"}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "OK", + "status": 200 + } + } + ], + "scenario": "List metric SQL models returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:22.605Z", + "interactions": [ + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "GET", + "path": "/api/v2/experiments/metric-collections", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":[],\"meta\":{\"page\":{\"type\":\"offset_limit\",\"offset\":0,\"limit\":25,\"total\":0,\"first_offset\":0,\"prev_offset\":null,\"next_offset\":null,\"last_offset\":0}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/experiments/metric-collections\",\"first\":\"https://api.datadoghq.com/api/v2/experiments/metric-collections?page%5Blimit%5D=25\\u0026page%5Boffset%5D=0\",\"last\":\"https://api.datadoghq.com/api/v2/experiments/metric-collections?page%5Blimit%5D=25\\u0026page%5Boffset%5D=0\"}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "OK", + "status": 200 + } + } + ], + "scenario": "List metric collections returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:22.848Z", + "interactions": [ + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "GET", + "path": "/api/v2/experiments/metrics", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":[{\"id\":\"06abb0e9-d22b-7000-b02f-69a3d1ab87eb\",\"type\":\"metrics\",\"attributes\":{\"created_at\":\"2026-09-29T01:04:29.555171Z\",\"data_source_type\":\"DATADOG\",\"description\":\"\",\"desired_change\":\"METRIC_INCREASES\",\"format_as_percent\":false,\"metric_type\":\"SIMPLE\",\"name\":\"Test-Update_metric_returns_OK_response-1790643869 updated\",\"numerator_aggregation\":{\"operation\":\"sum\",\"timeframe_start_value\":0,\"winsorization_strategy\":\"all_assigned_subjects\",\"datadog_metric_measure\":{\"name\":\"Test-Update_metric_returns_OK_response-1790643869 view duration\",\"source_type\":\"PRODUCT_ANALYTICS\",\"source_subtype\":\"RUM_VIEWS\",\"column_name\":\"@view.time_spent\",\"column_type\":\"double\",\"filters\":[],\"source_definition_filter\":[]}},\"reference_url\":\"\",\"updated_at\":\"2026-09-29T01:04:29.853841Z\"}},{\"id\":\"06abb0e9-c37d-7000-804d-b45001575ff0\",\"type\":\"metrics\",\"attributes\":{\"created_at\":\"2026-09-29T01:04:28.893484Z\",\"data_source_type\":\"DATADOG\",\"description\":\"\",\"desired_change\":\"METRIC_INCREASES\",\"format_as_percent\":false,\"metric_type\":\"SIMPLE\",\"name\":\"Test-Update_experiment_metric_group_returns_OK_response-1790643868\",\"numerator_aggregation\":{\"operation\":\"sum\",\"timeframe_start_value\":0,\"winsorization_strategy\":\"all_assigned_subjects\",\"datadog_metric_measure\":{\"name\":\"Test-Update_experiment_metric_group_returns_OK_response-1790643868 view duration\",\"source_type\":\"PRODUCT_ANALYTICS\",\"source_subtype\":\"RUM_VIEWS\",\"column_name\":\"@view.time_spent\",\"column_type\":\"double\",\"filters\":[],\"source_definition_filter\":[]}},\"reference_url\":\"\",\"updated_at\":\"2026-09-29T01:04:28.893484Z\"}},{\"id\":\"06abb0e8-832a-7000-9d06-d73a48411716\",\"type\":\"metrics\",\"attributes\":{\"created_at\":\"2026-09-29T01:04:08.810752Z\",\"data_source_type\":\"DATADOG\",\"description\":\"\",\"desired_change\":\"METRIC_INCREASES\",\"format_as_percent\":false,\"metric_type\":\"SIMPLE\",\"name\":\"Test-Delete_experiment_metric_group_returns_No_Content_response-1790643848\",\"numerator_aggregation\":{\"operation\":\"sum\",\"timeframe_start_value\":0,\"winsorization_strategy\":\"all_assigned_subjects\",\"datadog_metric_measure\":{\"name\":\"Test-Delete_experiment_metric_group_returns_No_Content_response-1790643848 view duration\",\"source_type\":\"PRODUCT_ANALYTICS\",\"source_subtype\":\"RUM_VIEWS\",\"column_name\":\"@view.time_spent\",\"column_type\":\"double\",\"filters\":[],\"source_definition_filter\":[]}},\"reference_url\":\"\",\"updated_at\":\"2026-09-29T01:04:08.810752Z\"}},{\"id\":\"06abb0e8-605c-7000-a21f-d4b76a065f9a\",\"type\":\"metrics\",\"attributes\":{\"created_at\":\"2026-09-29T01:04:06.092262Z\",\"data_source_type\":\"DATADOG\",\"description\":\"\",\"desired_change\":\"METRIC_INCREASES\",\"format_as_percent\":false,\"metric_type\":\"SIMPLE\",\"name\":\"Test-Create_experiment_metric_group_returns_Created_response-1790643845\",\"numerator_aggregation\":{\"operation\":\"sum\",\"timeframe_start_value\":0,\"winsorization_strategy\":\"all_assigned_subjects\",\"datadog_metric_measure\":{\"name\":\"Test-Create_experiment_metric_group_returns_Created_response-1790643845 view duration\",\"source_type\":\"PRODUCT_ANALYTICS\",\"source_subtype\":\"RUM_VIEWS\",\"column_name\":\"@view.time_spent\",\"column_type\":\"double\",\"filters\":[],\"source_definition_filter\":[]}},\"reference_url\":\"\",\"updated_at\":\"2026-09-29T01:04:06.092262Z\"}},{\"id\":\"06abb0e8-51c1-7000-9774-4a19a1f558c7\",\"type\":\"metrics\",\"attributes\":{\"created_at\":\"2026-09-29T01:04:05.449444Z\",\"data_source_type\":\"DATADOG\",\"description\":\"\",\"desired_change\":\"METRIC_INCREASES\",\"format_as_percent\":false,\"metric_type\":\"SIMPLE\",\"name\":\"Test-Create_experiment_metric_group_from_collection_returns_Created_response-1790643845\",\"numerator_aggregation\":{\"operation\":\"sum\",\"timeframe_start_value\":0,\"winsorization_strategy\":\"all_assigned_subjects\",\"datadog_metric_measure\":{\"name\":\"Test-Create_experiment_metric_group_from_collection_returns_Created_response-1790643845 view duration\",\"source_type\":\"PRODUCT_ANALYTICS\",\"source_subtype\":\"RUM_VIEWS\",\"column_name\":\"@view.time_spent\",\"column_type\":\"double\",\"filters\":[],\"source_definition_filter\":[]}},\"reference_url\":\"\",\"updated_at\":\"2026-09-29T01:04:05.449444Z\"}},{\"id\":\"069b1f0d-d378-7000-b8e4-016dced67fe0\",\"type\":\"metrics\",\"attributes\":{\"created_at\":\"2026-03-11T22:46:53.888417Z\",\"data_source_type\":\"DATADOG\",\"description\":\"\",\"desired_change\":\"METRIC_DECREASES\",\"format_as_percent\":false,\"guardrail_cutoff_threshold\":0.05,\"metric_type\":\"SIMPLE\",\"name\":\"[RUM] Long task count\",\"numerator_aggregation\":{\"operation\":\"sum\",\"timeframe_start_value\":0,\"winsorization_strategy\":\"all_assigned_subjects\",\"datadog_metric_measure\":{\"name\":\"Sum of @view.long_task.count\",\"source_type\":\"RUM\",\"source_subtype\":\"RUM_VIEWS\",\"column_name\":\"@view.long_task.count\",\"column_type\":\"double\",\"filters\":[],\"source_definition_filter\":[]}},\"reference_url\":\"\",\"updated_at\":\"2026-03-11T22:46:53.888417Z\"}},{\"id\":\"069b1f0d-d356-7000-8cd8-e7e497295920\",\"type\":\"metrics\",\"attributes\":{\"created_at\":\"2026-03-11T22:46:53.85493Z\",\"data_source_type\":\"DATADOG\",\"description\":\"\",\"desired_change\":\"METRIC_DECREASES\",\"format_as_percent\":false,\"guardrail_cutoff_threshold\":0.05,\"metric_type\":\"SIMPLE\",\"name\":\"[RUM] Error count\",\"numerator_aggregation\":{\"operation\":\"sum\",\"timeframe_start_value\":0,\"winsorization_strategy\":\"all_assigned_subjects\",\"datadog_metric_measure\":{\"name\":\"Sum of @view.error.count\",\"source_type\":\"RUM\",\"source_subtype\":\"RUM_VIEWS\",\"column_name\":\"@view.error.count\",\"column_type\":\"double\",\"filters\":[],\"source_definition_filter\":[]}},\"reference_url\":\"\",\"updated_at\":\"2026-03-11T22:46:53.85493Z\"}}],\"meta\":{\"page\":{\"type\":\"offset_limit\",\"offset\":0,\"limit\":25,\"total\":7,\"first_offset\":0,\"prev_offset\":null,\"next_offset\":null,\"last_offset\":0}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/experiments/metrics\",\"first\":\"https://api.datadoghq.com/api/v2/experiments/metrics?page%5Blimit%5D=25\\u0026page%5Boffset%5D=0\",\"last\":\"https://api.datadoghq.com/api/v2/experiments/metrics?page%5Blimit%5D=25\\u0026page%5Boffset%5D=0\"}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "OK", + "status": 200 + } + } + ], + "scenario": "List metrics returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:23.117Z", + "interactions": [ + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "GET", + "path": "/api/v2/experiments/subject-types", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":[{\"id\":\"06abb0e8-33b2-7001-ad2f-70568bfbf6e9\",\"type\":\"subject-types\",\"attributes\":{\"created_at\":\"2026-09-29T01:04:03.946949Z\",\"is_default\":true,\"name\":\"User\",\"product_analytics_attribute\":\"@usr.id\",\"updated_at\":\"2026-09-29T01:04:03.946949Z\"}}],\"meta\":{\"page\":{\"type\":\"offset_limit\",\"offset\":0,\"limit\":25,\"total\":1,\"first_offset\":0,\"prev_offset\":null,\"next_offset\":null,\"last_offset\":0}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/experiments/subject-types\",\"first\":\"https://api.datadoghq.com/api/v2/experiments/subject-types?page%5Blimit%5D=25\\u0026page%5Boffset%5D=0\",\"last\":\"https://api.datadoghq.com/api/v2/experiments/subject-types?page%5Blimit%5D=25\\u0026page%5Boffset%5D=0\"}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "OK", + "status": 200 + } + } + ], + "scenario": "List subject types returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:23.376Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "name": "ex-85284693960e2b3d" + }, + "type": "experiments" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb121-b264-7000-94e9-39634d59d788\",\"type\":\"experiments\",\"attributes\":{\"assignments_end_date\":null,\"assignments_start_date\":null,\"concluded_at\":null,\"created_at\":\"2026-09-29T01:19:23.61226Z\",\"events_end_date\":null,\"events_start_date\":null,\"experiment_type\":\"STANDARD\",\"name\":\"ex-85284693960e2b3d\",\"pipeline_table_suffix\":\"xed3pp\",\"related_links\":[],\"results_last_updated\":null,\"split_by_properties\":[],\"status\":\"DRAFT\",\"structured_metadata\":[],\"subject_type_id\":\"06abb0e8-33b2-7001-ad2f-70568bfbf6e9\",\"tags\":[],\"teams\":[],\"updated_at\":\"2026-09-29T01:19:23.629214Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "name": "ex-85284693960e2b3d updated" + }, + "type": "experiments" + } + } + }, + "content_type": "application/json", + "method": "PATCH", + "path": "/api/v2/experiments/06abb121-b264-7000-94e9-39634d59d788", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb121-b264-7000-94e9-39634d59d788\",\"type\":\"experiments\",\"attributes\":{\"assignments_end_date\":null,\"assignments_start_date\":null,\"concluded_at\":null,\"created_at\":\"2026-09-29T01:19:23.61226Z\",\"events_end_date\":null,\"events_start_date\":null,\"experiment_type\":\"STANDARD\",\"name\":\"ex-85284693960e2b3d updated\",\"pipeline_table_suffix\":\"xed3pp\",\"related_links\":[],\"results_last_updated\":null,\"split_by_properties\":[],\"status\":\"DRAFT\",\"structured_metadata\":[],\"subject_type_id\":\"06abb0e8-33b2-7001-ad2f-70568bfbf6e9\",\"tags\":[],\"teams\":[],\"updated_at\":\"2026-09-29T01:19:23.93135Z\"}},\"meta\":{\"needs_pipeline_refresh\":false}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "OK", + "status": 200 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/06abb121-b264-7000-94e9-39634d59d788", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + } + ], + "scenario": "Patch experiment returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:24.292Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "name": "ex-ca7000beab9c3edd", + "product_analytics_attribute": "@account.id", + "warehouse_column_names": [ + "account_id" + ] + }, + "type": "subject-types" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments/subject-types", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb121-c1eb-7001-a3e5-80e15810ab1c\",\"type\":\"subject-types\",\"attributes\":{\"created_at\":\"2026-09-29T01:19:24.491584406Z\",\"is_default\":false,\"name\":\"ex-ca7000beab9c3edd\",\"product_analytics_attribute\":\"@account.id\",\"updated_at\":\"2026-09-29T01:19:24.491584406Z\",\"warehouse_column_names\":[\"account_id\"]}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "name": "ex-ca7000beab9c3edd updated" + }, + "type": "subject-types" + } + } + }, + "content_type": "application/json", + "method": "PATCH", + "path": "/api/v2/experiments/subject-types/06abb121-c1eb-7001-a3e5-80e15810ab1c", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb121-c1eb-7001-a3e5-80e15810ab1c\",\"type\":\"subject-types\",\"attributes\":{\"created_at\":\"2026-09-29T01:19:24.491584Z\",\"is_default\":false,\"name\":\"ex-ca7000beab9c3edd updated\",\"product_analytics_attribute\":\"@account.id\",\"updated_at\":\"2026-09-29T01:19:24.751780063Z\",\"warehouse_column_names\":[\"account_id\"]}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "OK", + "status": 200 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/subject-types/06abb121-c1eb-7001-a3e5-80e15810ab1c", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + } + ], + "scenario": "Patch subject type returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:35:10.545Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "name": "Test Environment Test-Start_experiment_returns_The_experiment_was_started_response-1790645710", + "queries": [ + "test-Test-Start_experiment_returns_The_experiment_was_started_response-1790645710", + "env-Test-Start_experiment_returns_The_experiment_was_started_response-1790645710" + ] + }, + "type": "environments" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/feature-flags/environments", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"37039500-a6d3-4fb6-9416-e03c6f28bd23\",\"type\":\"environments\",\"attributes\":{\"is_production\":false,\"name\":\"Test Environment Test-Start_experiment_returns_The_experiment_was_started_response-1790645710\",\"observe_full_evaluation_data\":false,\"queries\":[\"test-Test-Start_experiment_returns_The_experiment_was_started_response-1790645710\",\"env-Test-Start_experiment_returns_The_experiment_was_started_response-1790645710\"],\"require_feature_flag_approval\":false}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "description": "Test feature flag for BDD scenarios", + "key": "test-feature-flag-Test-Start_experiment_returns_The_experiment_was_started_response-1790645710", + "name": "Test Feature Flag Test-Start_experiment_returns_The_experiment_was_started_response-1790645710", + "value_type": "BOOLEAN", + "variants": [ + { + "key": "variant-Test-Start_experiment_returns_The_experiment_was_started_response-1790645710-1", + "name": "Variant Test-Start_experiment_returns_The_experiment_was_started_response-1790645710 A", + "value": "true" + }, + { + "key": "variant-Test-Start_experiment_returns_The_experiment_was_started_response-1790645710-2", + "name": "Variant Test-Start_experiment_returns_The_experiment_was_started_response-1790645710 B", + "value": "false" + } + ] + }, + "type": "feature-flags" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/feature-flags", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"c893df62-0057-4581-88ac-e7a06bde4d5d\",\"type\":\"feature-flags\",\"attributes\":{\"archived_at\":null,\"created_at\":\"2026-09-29T01:35:18.083456Z\",\"created_by\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"description\":\"Test feature flag for BDD scenarios\",\"distribution_channel\":\"ALL\",\"feature_flag_environments\":[{\"environment_id\":\"37039500-a6d3-4fb6-9416-e03c6f28bd23\",\"environment_name\":\"Test Environment Test-Start_experiment_returns_The_experiment_was_started_response-1790645710\",\"environment_queries\":[\"test-Test-Start_experiment_returns_The_experiment_was_started_response-1790645710\",\"env-Test-Start_experiment_returns_The_experiment_was_started_response-1790645710\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-1f2fcaaff99a\",\"override_allocation_key\":\"allocation-override-1f2fcaaff99a\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"e8e58835-f563-46d6-8245-8c857b80e1f9\",\"environment_name\":\"Test Environment Test-Start_experiment_returns_The_experiment_was_started_Use_GET_api_v2_experiments_experiment_id_to_read-1790636903\",\"environment_queries\":[\"test-Test-Start_experiment_returns_The_experiment_was_started_Use_GET_api_v2_experiments_experiment_id_to_read-1790636903\",\"env-Test-Start_experiment_returns_The_experiment_was_started_Use_GET_api_v2_experiments_experiment_id_to_read-1790636903\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-736c768bbb93\",\"override_allocation_key\":\"allocation-override-736c768bbb93\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"c9a55fc3-932d-4a09-a370-6cb5d74838f5\",\"environment_name\":\"Test Environment Test-Start_experiment_returns_The_experiment_was_started_Use_GET_api_v2_experiments_experiment_id_to_read-1790638127\",\"environment_queries\":[\"test-Test-Start_experiment_returns_The_experiment_was_started_Use_GET_api_v2_experiments_experiment_id_to_read-1790638127\",\"env-Test-Start_experiment_returns_The_experiment_was_started_Use_GET_api_v2_experiments_experiment_id_to_read-1790638127\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-c4ba417c3e3e\",\"override_allocation_key\":\"allocation-override-c4ba417c3e3e\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"04031481-d370-4169-b498-40ccc7848b1c\",\"environment_name\":\"Test Environment Test-Start_experiment_returns_The_experiment_was_started_Use_GET_api_v2_experiments_experiment_id_to_read-1790643858\",\"environment_queries\":[\"test-Test-Start_experiment_returns_The_experiment_was_started_Use_GET_api_v2_experiments_experiment_id_to_read-1790643858\",\"env-Test-Start_experiment_returns_The_experiment_was_started_Use_GET_api_v2_experiments_experiment_id_to_read-1790643858\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-440a5700401a\",\"override_allocation_key\":\"allocation-override-440a5700401a\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"592600c2-8327-424d-960f-608c327ee96d\",\"environment_name\":\"Test Environment Test-Typescript-Create_allocation_for_a_flag_in_an_environment_returns_Created_response-1774470658\",\"environment_queries\":[\"test-Test-Typescript-Create_allocation_for_a_flag_in_an_environment_returns_Created_response-1774470658\",\"env-Test-Typescript-Create_allocation_for_a_flag_in_an_environment_returns_Created_response-1774470658\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-1f65c6a1e3a4\",\"override_allocation_key\":\"allocation-override-1f65c6a1e3a4\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"809cd83d-51ac-4f60-9ce5-cfad4d662114\",\"environment_name\":\"Test Environment Test-Typescript-Create_allocation_for_a_flag_in_an_environment_returns_Created_response-1774471346\",\"environment_queries\":[\"test-Test-Typescript-Create_allocation_for_a_flag_in_an_environment_returns_Created_response-1774471346\",\"env-Test-Typescript-Create_allocation_for_a_flag_in_an_environment_returns_Created_response-1774471346\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-2302ce2f410b\",\"override_allocation_key\":\"allocation-override-2302ce2f410b\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"21c84268-9fc7-4b6d-82ea-bb2090469aba\",\"environment_name\":\"Test Environment Test-Typescript-Create_allocation_for_a_flag_in_an_environment_returns_Created_response-1774472385\",\"environment_queries\":[\"test-Test-Typescript-Create_allocation_for_a_flag_in_an_environment_returns_Created_response-1774472385\",\"env-Test-Typescript-Create_allocation_for_a_flag_in_an_environment_returns_Created_response-1774472385\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-b62a5e16e7e1\",\"override_allocation_key\":\"allocation-override-b62a5e16e7e1\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"0b94dbaa-9efb-419d-8bd7-ef56f3828986\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1773321543\",\"environment_queries\":[\"test\",\"staging\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-81476ee27c02\",\"override_allocation_key\":\"allocation-override-81476ee27c02\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"afdaa512-6307-4965-bf92-62cc6bea5d00\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1773322166\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1773322166\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1773322166\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-eeeb0253aa14\",\"override_allocation_key\":\"allocation-override-eeeb0253aa14\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"04136d44-b58d-445b-b5c9-055f99575766\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1784893502\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1784893502\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1784893502\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-d4724838e4cc\",\"override_allocation_key\":\"allocation-override-d4724838e4cc\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"1203bcba-445f-4731-8842-a59d1073914f\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1785154419\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1785154419\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1785154419\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-15ebb2a5caa4\",\"override_allocation_key\":\"allocation-override-15ebb2a5caa4\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"3e2bf225-677f-49c2-8cab-d16c0f1b0d5f\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1785239524\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1785239524\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1785239524\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-0b0a8135630c\",\"override_allocation_key\":\"allocation-override-0b0a8135630c\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"5e00d2e3-2b06-4e60-a7ae-8c1a684a1fc5\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1785326063\",\"environment_queries\":[\"env-Test-Typescript-Create_an_environment_returns_Created_response-1785326063\",\"test-Test-Typescript-Create_an_environment_returns_Created_response-1785326063\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-dbb887ba0fe2\",\"override_allocation_key\":\"allocation-override-dbb887ba0fe2\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"895d6669-f281-40ca-905f-95764b063997\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1785412365\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1785412365\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1785412365\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-1a80acd212a7\",\"override_allocation_key\":\"allocation-override-1a80acd212a7\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"7477eea0-4499-452d-ad94-1e6188b8c5bc\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1785498929\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1785498929\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1785498929\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-6254c6dbf158\",\"override_allocation_key\":\"allocation-override-6254c6dbf158\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"ecfbcdb4-306b-4adb-8438-03f3afaff0c9\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1785759287\",\"environment_queries\":[\"env-Test-Typescript-Create_an_environment_returns_Created_response-1785759287\",\"test-Test-Typescript-Create_an_environment_returns_Created_response-1785759287\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-80d07746096f\",\"override_allocation_key\":\"allocation-override-80d07746096f\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"414342a5-9711-4cf2-b55e-9c573c669795\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1785844421\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1785844421\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1785844421\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-e0d4bd422eda\",\"override_allocation_key\":\"allocation-override-e0d4bd422eda\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"1b7521fe-8131-46e2-b56c-e089d0b7270c\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1785930926\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1785930926\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1785930926\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-7501b50a6600\",\"override_allocation_key\":\"allocation-override-7501b50a6600\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"230474f1-a11d-48b2-ba97-db27be150ae3\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1786017494\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1786017494\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1786017494\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-c7e43dd61d1b\",\"override_allocation_key\":\"allocation-override-c7e43dd61d1b\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"30dbdd46-0371-4d6f-9f0e-560900b80df9\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1786102241\",\"environment_queries\":[\"env-Test-Typescript-Create_an_environment_returns_Created_response-1786102241\",\"test-Test-Typescript-Create_an_environment_returns_Created_response-1786102241\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-baf73edfb447\",\"override_allocation_key\":\"allocation-override-baf73edfb447\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"838b7cae-0e39-4a49-a039-6192291e1180\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1786361780\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1786361780\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1786361780\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-1cc5f34411e1\",\"override_allocation_key\":\"allocation-override-1cc5f34411e1\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"4c533740-cb36-430b-8d53-afaefe2d3dc4\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1786447770\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1786447770\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1786447770\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-5aa5d0b6bd8b\",\"override_allocation_key\":\"allocation-override-5aa5d0b6bd8b\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"7aa8e8ee-921a-4f6c-aa22-81456ab65dcd\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1786534331\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1786534331\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1786534331\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-6f1ee188d437\",\"override_allocation_key\":\"allocation-override-6f1ee188d437\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"71abb17f-4f33-4fe7-9f78-5b8226fe3a50\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1786620629\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1786620629\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1786620629\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-621fdab30856\",\"override_allocation_key\":\"allocation-override-621fdab30856\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"bd2c54fd-df03-4601-bd6f-feb8ca885a68\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1786965433\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1786965433\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1786965433\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-368e9fae2eff\",\"override_allocation_key\":\"allocation-override-368e9fae2eff\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"16ad7487-026d-4296-8146-7732b292c39b\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1787051827\",\"environment_queries\":[\"env-Test-Typescript-Create_an_environment_returns_Created_response-1787051827\",\"test-Test-Typescript-Create_an_environment_returns_Created_response-1787051827\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-d1d5f2c34f4f\",\"override_allocation_key\":\"allocation-override-d1d5f2c34f4f\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"aac3bbe2-c293-459c-984f-b300c1ab6b9b\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1787138438\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1787138438\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1787138438\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-a25b0a476cb3\",\"override_allocation_key\":\"allocation-override-a25b0a476cb3\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"4e6acc4e-8d16-4370-88ae-6949e4504c76\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1787224738\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1787224738\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1787224738\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-092259568b97\",\"override_allocation_key\":\"allocation-override-092259568b97\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"10619bf6-816a-4398-9374-37e109da408c\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1787311300\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1787311300\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1787311300\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-0da979c685f6\",\"override_allocation_key\":\"allocation-override-0da979c685f6\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"b3a72aaf-ac8e-4363-a950-c1f944d57bfc\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1787570345\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1787570345\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1787570345\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-94fb6dd806ed\",\"override_allocation_key\":\"allocation-override-94fb6dd806ed\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"ea2a18a5-a1da-46fb-8425-42c4cf7a8c4e\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1787656842\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1787656842\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1787656842\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-51e75996a381\",\"override_allocation_key\":\"allocation-override-51e75996a381\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"0155c5a8-d08d-496e-b4a7-028c18518aa5\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1787743397\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1787743397\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1787743397\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-4bc182d642a5\",\"override_allocation_key\":\"allocation-override-4bc182d642a5\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"41deb27b-bb56-4782-9e3d-195016df1618\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1787842626\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1787842626\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1787842626\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-ec35e47a6eef\",\"override_allocation_key\":\"allocation-override-ec35e47a6eef\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"24ff0fa6-7426-47b4-9079-93be9293eb0e\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1787930141\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1787930141\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1787930141\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-a64f48ce921c\",\"override_allocation_key\":\"allocation-override-a64f48ce921c\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"03215015-6563-4254-912d-44e7e690a90c\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1788175357\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1788175357\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1788175357\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-9e6151189c60\",\"override_allocation_key\":\"allocation-override-9e6151189c60\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"b66a460d-d15d-4560-a4ea-830fb3aab80f\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1788261743\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1788261743\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1788261743\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-64df06541dc1\",\"override_allocation_key\":\"allocation-override-64df06541dc1\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"6bde6291-1c46-4179-9efd-da9fbedf3c8c\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1788348372\",\"environment_queries\":[\"env-Test-Typescript-Create_an_environment_returns_Created_response-1788348372\",\"test-Test-Typescript-Create_an_environment_returns_Created_response-1788348372\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-1d7744e97f77\",\"override_allocation_key\":\"allocation-override-1d7744e97f77\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"7953055f-82ea-40cd-a468-e02513074d69\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1788434523\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1788434523\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1788434523\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-0d69811a75c2\",\"override_allocation_key\":\"allocation-override-0d69811a75c2\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"c6a06d5b-5c14-488f-952d-573e3dc29b9f\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1788521058\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1788521058\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1788521058\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-463b63d3fa16\",\"override_allocation_key\":\"allocation-override-463b63d3fa16\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"5c6a3e5c-2f26-45b4-b127-5869afb3e9b5\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1788780304\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1788780304\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1788780304\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-54615da031fd\",\"override_allocation_key\":\"allocation-override-54615da031fd\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"79e08aed-2e7e-43bd-805c-be7b0e04a37c\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1788866780\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1788866780\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1788866780\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-28706c57d220\",\"override_allocation_key\":\"allocation-override-28706c57d220\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"741ad264-49d3-42a3-ad78-740f547d8579\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1788953224\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1788953224\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1788953224\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-b800326a2c0a\",\"override_allocation_key\":\"allocation-override-b800326a2c0a\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"e4d8231f-b4e8-435b-80df-fa3cc6e0077a\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1789039317\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1789039317\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1789039317\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-b4506611ef6f\",\"override_allocation_key\":\"allocation-override-b4506611ef6f\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"e89616f8-c432-4c28-afc2-828324027fe9\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1789125835\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1789125835\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1789125835\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-d48a1bb693cf\",\"override_allocation_key\":\"allocation-override-d48a1bb693cf\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"265ddd7b-bdec-4bf3-a030-7cb5474db93f\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1789385136\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1789385136\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1789385136\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-1b4082671da1\",\"override_allocation_key\":\"allocation-override-1b4082671da1\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"c0c047d2-05c8-49d9-a2c6-90e10d84c647\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1789471540\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1789471540\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1789471540\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-b0e7a130b6f4\",\"override_allocation_key\":\"allocation-override-b0e7a130b6f4\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"d718bb16-f460-494d-accf-9c5baf91f7a2\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1789557848\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1789557848\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1789557848\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-6ae7e718d30a\",\"override_allocation_key\":\"allocation-override-6ae7e718d30a\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"375a411e-bf21-4e89-be9f-7fb6a116c566\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1789644391\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1789644391\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1789644391\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-f5dc9d680ce1\",\"override_allocation_key\":\"allocation-override-f5dc9d680ce1\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"eabcfb16-0589-4880-a379-e15c43624194\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1789730566\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1789730566\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1789730566\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-f5db036f9dc6\",\"override_allocation_key\":\"allocation-override-f5db036f9dc6\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"f671286c-3c35-4bd4-9b35-e06cc53ec54a\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1789989955\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1789989955\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1789989955\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-ed6b78d70787\",\"override_allocation_key\":\"allocation-override-ed6b78d70787\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"c215f3c3-663b-4440-a852-a3a1740d8146\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1790076172\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1790076172\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1790076172\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-83473c9789ee\",\"override_allocation_key\":\"allocation-override-83473c9789ee\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"3a96103f-1a73-45b2-9ce4-137dd445d4c2\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1790162766\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1790162766\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1790162766\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-4f02464b0ba7\",\"override_allocation_key\":\"allocation-override-4f02464b0ba7\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"1b40c14f-53db-4617-ac95-2278ad6857f6\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1790249162\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1790249162\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1790249162\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-b54adf40138b\",\"override_allocation_key\":\"allocation-override-b54adf40138b\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"3ecec461-a497-42ed-aead-325544a60a87\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1790335423\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1790335423\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1790335423\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-e241b1ea85ba\",\"override_allocation_key\":\"allocation-override-e241b1ea85ba\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"d54426f4-62e6-4b77-9bea-e9b0b66ae2a0\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1790594709\",\"environment_queries\":[\"env-Test-Typescript-Create_an_environment_returns_Created_response-1790594709\",\"test-Test-Typescript-Create_an_environment_returns_Created_response-1790594709\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-0d5b11b186c6\",\"override_allocation_key\":\"allocation-override-0d5b11b186c6\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null}],\"is_favorite\":false,\"key\":\"test-feature-flag-Test-Start_experiment_returns_The_experiment_was_started_response-1790645710\",\"last_updated_by\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"Test Feature Flag Test-Start_experiment_returns_The_experiment_was_started_response-1790645710\",\"require_approval\":false,\"staleness_details\":{\"id\":\"c893df62-0057-4581-88ac-e7a06bde4d5d\",\"staleness_status\":\"ACTIVE\",\"stale_reason\":null,\"recommended_actions\":null,\"code_references\":null,\"skip_state_check_until\":null,\"dismissed_by\":null},\"staleness_status\":\"ACTIVE\",\"tags\":[],\"updated_at\":\"2026-09-29T01:35:18.083456Z\",\"value_type\":\"BOOLEAN\",\"variants\":[{\"id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"key\":\"variant-Test-Start_experiment_returns_The_experiment_was_started_response-1790645710-1\",\"name\":\"Variant Test-Start_experiment_returns_The_experiment_was_started_response-1790645710 A\",\"value\":\"true\",\"created_at\":\"2026-09-29T01:35:18.090845Z\",\"updated_at\":\"2026-09-29T01:35:18.090845Z\"},{\"id\":\"da2c6dc9-ffc6-48f1-95e1-31ea4849a128\",\"key\":\"variant-Test-Start_experiment_returns_The_experiment_was_started_response-1790645710-2\",\"name\":\"Variant Test-Start_experiment_returns_The_experiment_was_started_response-1790645710 B\",\"value\":\"false\",\"created_at\":\"2026-09-29T01:35:18.093942Z\",\"updated_at\":\"2026-09-29T01:35:18.093942Z\"}]}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "name": "ex-38ceeec26ec39a01", + "product_analytics_attribute": "@account.id", + "warehouse_column_names": [ + "account_id" + ] + }, + "type": "subject-types" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments/subject-types", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb15d-62ae-7001-87d1-06b1c006a57f\",\"type\":\"subject-types\",\"attributes\":{\"created_at\":\"2026-09-29T01:35:18.686514222Z\",\"is_default\":false,\"name\":\"ex-38ceeec26ec39a01\",\"product_analytics_attribute\":\"@account.id\",\"updated_at\":\"2026-09-29T01:35:18.686514222Z\",\"warehouse_column_names\":[\"account_id\"]}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "data_source_type": "DATADOG", + "desired_change": "METRIC_INCREASES", + "name": "ex-38ceeec26ec39a01", + "numerator_aggregation": { + "datadog_metric_measure": { + "column_name": "@view.time_spent", + "column_type": "double", + "name": "ex-38ceeec26ec39a01 view duration", + "source_subtype": "RUM_VIEWS", + "source_type": "PRODUCT_ANALYTICS" + }, + "operation": "sum" + } + }, + "type": "metrics" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments/metrics", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb15d-638d-7000-a01a-c54c312f9e87\",\"type\":\"metrics\",\"attributes\":{\"created_at\":\"2026-09-29T01:35:18.909238Z\",\"data_source_type\":\"DATADOG\",\"description\":\"\",\"desired_change\":\"METRIC_INCREASES\",\"format_as_percent\":false,\"metric_type\":\"SIMPLE\",\"name\":\"ex-38ceeec26ec39a01\",\"numerator_aggregation\":{\"operation\":\"sum\",\"timeframe_start_value\":0,\"winsorization_strategy\":\"all_assigned_subjects\",\"datadog_metric_measure\":{\"name\":\"ex-38ceeec26ec39a01 view duration\",\"source_type\":\"PRODUCT_ANALYTICS\",\"source_subtype\":\"RUM_VIEWS\",\"column_name\":\"@view.time_spent\",\"column_type\":\"double\",\"filters\":[],\"source_definition_filter\":[]}},\"reference_url\":\"\",\"updated_at\":\"2026-09-29T01:35:18.909238Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "assignments_end_date": null, + "assignments_start_date": null, + "datadog_flag_configuration": { + "entry_point": null, + "environment_id": "37039500-a6d3-4fb6-9416-e03c6f28bd23", + "feature_flag_id": "c893df62-0057-4581-88ac-e7a06bde4d5d", + "targeting_rules": [] + }, + "decision_metrics": [ + { + "is_primary": true, + "metric_id": "06abb15d-638d-7000-a01a-c54c312f9e87" + } + ], + "events_end_date": null, + "events_start_date": null, + "name": "ex-38ceeec26ec39a01", + "subject_type_id": "06abb15d-62ae-7001-87d1-06b1c006a57f", + "traffic_exposure": { + "fraction": 1, + "mode": "STATIC" + }, + "variants": [ + { + "feature_flag_variant_id": "0a48e1cb-b606-4c82-be1e-0b50195e4c53", + "is_active": true, + "is_control": true, + "key": "variant-Test-Start_experiment_returns_The_experiment_was_started_response-1790645710-1", + "name": "Variant Test-Start_experiment_returns_The_experiment_was_started_response-1790645710 A", + "weight": 50 + }, + { + "feature_flag_variant_id": "da2c6dc9-ffc6-48f1-95e1-31ea4849a128", + "is_active": true, + "is_control": false, + "key": "variant-Test-Start_experiment_returns_The_experiment_was_started_response-1790645710-2", + "name": "Variant Test-Start_experiment_returns_The_experiment_was_started_response-1790645710 B", + "weight": 50 + } + ] + }, + "type": "experiments" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb15d-709f-7000-970c-0cbaab8967ea\",\"type\":\"experiments\",\"attributes\":{\"assignments_end_date\":null,\"assignments_start_date\":null,\"concluded_at\":null,\"created_at\":\"2026-09-29T01:35:19.159836Z\",\"datadog_flag_configuration\":{\"feature_flag_id\":\"c893df62-0057-4581-88ac-e7a06bde4d5d\",\"environment_id\":\"37039500-a6d3-4fb6-9416-e03c6f28bd23\",\"allocation_key\":\"3fbdf0f9-3a29-4d5d-af14-da9848b971c0\",\"targeting_rules\":[],\"entry_point\":null},\"decision_metrics\":[{\"metric_id\":\"06abb15d-638d-7000-a01a-c54c312f9e87\",\"is_primary\":true}],\"events_end_date\":null,\"events_start_date\":null,\"experiment_type\":\"STANDARD\",\"name\":\"ex-38ceeec26ec39a01\",\"pipeline_table_suffix\":\"n6ssfy\",\"related_links\":[],\"results_last_updated\":null,\"split_by_properties\":[],\"status\":\"DRAFT\",\"structured_metadata\":[],\"subject_type_id\":\"06abb15d-62ae-7001-87d1-06b1c006a57f\",\"tags\":[],\"teams\":[],\"traffic_exposure\":{\"mode\":\"STATIC\",\"fraction\":1},\"updated_at\":\"2026-09-29T01:35:19.361231Z\",\"variants\":[{\"name\":\"Variant Test-Start_experiment_returns_The_experiment_was_started_response-1790645710 A\",\"key\":\"variant-Test-Start_experiment_returns_The_experiment_was_started_response-1790645710-1\",\"feature_flag_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"is_active\":true,\"is_control\":true,\"weight\":50},{\"name\":\"Variant Test-Start_experiment_returns_The_experiment_was_started_response-1790645710 B\",\"key\":\"variant-Test-Start_experiment_returns_The_experiment_was_started_response-1790645710-2\",\"feature_flag_variant_id\":\"da2c6dc9-ffc6-48f1-95e1-31ea4849a128\",\"is_active\":true,\"is_control\":false,\"weight\":50}],\"warehouse_exposure_configuration\":null}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "target_duration_days": 14 + }, + "type": "analysis-plans" + } + } + }, + "content_type": "application/json", + "method": "PATCH", + "path": "/api/v2/experiments/06abb15d-709f-7000-970c-0cbaab8967ea/analysis-plan", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb15d-709f-7000-970c-0cbaab8967ea\",\"type\":\"analysis-plans\",\"attributes\":{\"bayesian_prior\":{\"standard_deviation\":0.05,\"degrees_of_freedom\":null},\"confidence_interval_method\":\"Sequential\",\"confidence_level\":0.95,\"cuped_lookback_period_days\":30,\"experiment_auto_end_days\":0,\"experiment_min_duration\":7,\"experiment_min_sample_size\":500,\"has_custom_analysis_settings\":true,\"is_cuped_enabled\":true,\"is_multiple_testing_correction_enabled\":false,\"preferential_bonferroni_primary_metric_weight\":0.5,\"target_duration_days\":14}},\"meta\":{\"needs_pipeline_refresh\":false}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "OK", + "status": 200 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "POST", + "path": "/api/v2/experiments/06abb15d-709f-7000-970c-0cbaab8967ea/start", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/06abb15d-709f-7000-970c-0cbaab8967ea", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/metrics/06abb15d-638d-7000-a01a-c54c312f9e87", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/subject-types/06abb15d-62ae-7001-87d1-06b1c006a57f", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "POST", + "path": "/api/v2/feature-flags/c893df62-0057-4581-88ac-e7a06bde4d5d/archive", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"c893df62-0057-4581-88ac-e7a06bde4d5d\",\"type\":\"feature-flags\",\"attributes\":{\"archived_at\":\"2026-09-29T01:35:21.924195Z\",\"created_at\":\"2026-09-29T01:35:18.083456Z\",\"created_by\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"description\":\"Test feature flag for BDD scenarios\",\"distribution_channel\":\"ALL\",\"feature_flag_environments\":[{\"environment_id\":\"37039500-a6d3-4fb6-9416-e03c6f28bd23\",\"environment_name\":\"Test Environment Test-Start_experiment_returns_The_experiment_was_started_response-1790645710\",\"environment_queries\":[\"test-Test-Start_experiment_returns_The_experiment_was_started_response-1790645710\",\"env-Test-Start_experiment_returns_The_experiment_was_started_response-1790645710\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-1f2fcaaff99a\",\"override_allocation_key\":\"allocation-override-1f2fcaaff99a\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"e8e58835-f563-46d6-8245-8c857b80e1f9\",\"environment_name\":\"Test Environment Test-Start_experiment_returns_The_experiment_was_started_Use_GET_api_v2_experiments_experiment_id_to_read-1790636903\",\"environment_queries\":[\"test-Test-Start_experiment_returns_The_experiment_was_started_Use_GET_api_v2_experiments_experiment_id_to_read-1790636903\",\"env-Test-Start_experiment_returns_The_experiment_was_started_Use_GET_api_v2_experiments_experiment_id_to_read-1790636903\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-736c768bbb93\",\"override_allocation_key\":\"allocation-override-736c768bbb93\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"c9a55fc3-932d-4a09-a370-6cb5d74838f5\",\"environment_name\":\"Test Environment Test-Start_experiment_returns_The_experiment_was_started_Use_GET_api_v2_experiments_experiment_id_to_read-1790638127\",\"environment_queries\":[\"test-Test-Start_experiment_returns_The_experiment_was_started_Use_GET_api_v2_experiments_experiment_id_to_read-1790638127\",\"env-Test-Start_experiment_returns_The_experiment_was_started_Use_GET_api_v2_experiments_experiment_id_to_read-1790638127\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-c4ba417c3e3e\",\"override_allocation_key\":\"allocation-override-c4ba417c3e3e\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"04031481-d370-4169-b498-40ccc7848b1c\",\"environment_name\":\"Test Environment Test-Start_experiment_returns_The_experiment_was_started_Use_GET_api_v2_experiments_experiment_id_to_read-1790643858\",\"environment_queries\":[\"test-Test-Start_experiment_returns_The_experiment_was_started_Use_GET_api_v2_experiments_experiment_id_to_read-1790643858\",\"env-Test-Start_experiment_returns_The_experiment_was_started_Use_GET_api_v2_experiments_experiment_id_to_read-1790643858\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-440a5700401a\",\"override_allocation_key\":\"allocation-override-440a5700401a\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"592600c2-8327-424d-960f-608c327ee96d\",\"environment_name\":\"Test Environment Test-Typescript-Create_allocation_for_a_flag_in_an_environment_returns_Created_response-1774470658\",\"environment_queries\":[\"test-Test-Typescript-Create_allocation_for_a_flag_in_an_environment_returns_Created_response-1774470658\",\"env-Test-Typescript-Create_allocation_for_a_flag_in_an_environment_returns_Created_response-1774470658\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-1f65c6a1e3a4\",\"override_allocation_key\":\"allocation-override-1f65c6a1e3a4\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"809cd83d-51ac-4f60-9ce5-cfad4d662114\",\"environment_name\":\"Test Environment Test-Typescript-Create_allocation_for_a_flag_in_an_environment_returns_Created_response-1774471346\",\"environment_queries\":[\"test-Test-Typescript-Create_allocation_for_a_flag_in_an_environment_returns_Created_response-1774471346\",\"env-Test-Typescript-Create_allocation_for_a_flag_in_an_environment_returns_Created_response-1774471346\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-2302ce2f410b\",\"override_allocation_key\":\"allocation-override-2302ce2f410b\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"21c84268-9fc7-4b6d-82ea-bb2090469aba\",\"environment_name\":\"Test Environment Test-Typescript-Create_allocation_for_a_flag_in_an_environment_returns_Created_response-1774472385\",\"environment_queries\":[\"test-Test-Typescript-Create_allocation_for_a_flag_in_an_environment_returns_Created_response-1774472385\",\"env-Test-Typescript-Create_allocation_for_a_flag_in_an_environment_returns_Created_response-1774472385\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-b62a5e16e7e1\",\"override_allocation_key\":\"allocation-override-b62a5e16e7e1\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"0b94dbaa-9efb-419d-8bd7-ef56f3828986\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1773321543\",\"environment_queries\":[\"staging\",\"test\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-81476ee27c02\",\"override_allocation_key\":\"allocation-override-81476ee27c02\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"afdaa512-6307-4965-bf92-62cc6bea5d00\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1773322166\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1773322166\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1773322166\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-eeeb0253aa14\",\"override_allocation_key\":\"allocation-override-eeeb0253aa14\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"04136d44-b58d-445b-b5c9-055f99575766\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1784893502\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1784893502\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1784893502\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-d4724838e4cc\",\"override_allocation_key\":\"allocation-override-d4724838e4cc\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"1203bcba-445f-4731-8842-a59d1073914f\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1785154419\",\"environment_queries\":[\"env-Test-Typescript-Create_an_environment_returns_Created_response-1785154419\",\"test-Test-Typescript-Create_an_environment_returns_Created_response-1785154419\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-15ebb2a5caa4\",\"override_allocation_key\":\"allocation-override-15ebb2a5caa4\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"3e2bf225-677f-49c2-8cab-d16c0f1b0d5f\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1785239524\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1785239524\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1785239524\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-0b0a8135630c\",\"override_allocation_key\":\"allocation-override-0b0a8135630c\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"5e00d2e3-2b06-4e60-a7ae-8c1a684a1fc5\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1785326063\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1785326063\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1785326063\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-dbb887ba0fe2\",\"override_allocation_key\":\"allocation-override-dbb887ba0fe2\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"895d6669-f281-40ca-905f-95764b063997\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1785412365\",\"environment_queries\":[\"env-Test-Typescript-Create_an_environment_returns_Created_response-1785412365\",\"test-Test-Typescript-Create_an_environment_returns_Created_response-1785412365\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-1a80acd212a7\",\"override_allocation_key\":\"allocation-override-1a80acd212a7\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"7477eea0-4499-452d-ad94-1e6188b8c5bc\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1785498929\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1785498929\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1785498929\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-6254c6dbf158\",\"override_allocation_key\":\"allocation-override-6254c6dbf158\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"ecfbcdb4-306b-4adb-8438-03f3afaff0c9\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1785759287\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1785759287\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1785759287\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-80d07746096f\",\"override_allocation_key\":\"allocation-override-80d07746096f\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"414342a5-9711-4cf2-b55e-9c573c669795\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1785844421\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1785844421\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1785844421\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-e0d4bd422eda\",\"override_allocation_key\":\"allocation-override-e0d4bd422eda\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"1b7521fe-8131-46e2-b56c-e089d0b7270c\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1785930926\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1785930926\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1785930926\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-7501b50a6600\",\"override_allocation_key\":\"allocation-override-7501b50a6600\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"230474f1-a11d-48b2-ba97-db27be150ae3\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1786017494\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1786017494\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1786017494\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-c7e43dd61d1b\",\"override_allocation_key\":\"allocation-override-c7e43dd61d1b\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"30dbdd46-0371-4d6f-9f0e-560900b80df9\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1786102241\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1786102241\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1786102241\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-baf73edfb447\",\"override_allocation_key\":\"allocation-override-baf73edfb447\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"838b7cae-0e39-4a49-a039-6192291e1180\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1786361780\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1786361780\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1786361780\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-1cc5f34411e1\",\"override_allocation_key\":\"allocation-override-1cc5f34411e1\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"4c533740-cb36-430b-8d53-afaefe2d3dc4\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1786447770\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1786447770\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1786447770\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-5aa5d0b6bd8b\",\"override_allocation_key\":\"allocation-override-5aa5d0b6bd8b\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"7aa8e8ee-921a-4f6c-aa22-81456ab65dcd\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1786534331\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1786534331\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1786534331\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-6f1ee188d437\",\"override_allocation_key\":\"allocation-override-6f1ee188d437\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"71abb17f-4f33-4fe7-9f78-5b8226fe3a50\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1786620629\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1786620629\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1786620629\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-621fdab30856\",\"override_allocation_key\":\"allocation-override-621fdab30856\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"bd2c54fd-df03-4601-bd6f-feb8ca885a68\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1786965433\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1786965433\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1786965433\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-368e9fae2eff\",\"override_allocation_key\":\"allocation-override-368e9fae2eff\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"16ad7487-026d-4296-8146-7732b292c39b\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1787051827\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1787051827\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1787051827\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-d1d5f2c34f4f\",\"override_allocation_key\":\"allocation-override-d1d5f2c34f4f\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"aac3bbe2-c293-459c-984f-b300c1ab6b9b\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1787138438\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1787138438\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1787138438\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-a25b0a476cb3\",\"override_allocation_key\":\"allocation-override-a25b0a476cb3\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"4e6acc4e-8d16-4370-88ae-6949e4504c76\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1787224738\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1787224738\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1787224738\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-092259568b97\",\"override_allocation_key\":\"allocation-override-092259568b97\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"10619bf6-816a-4398-9374-37e109da408c\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1787311300\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1787311300\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1787311300\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-0da979c685f6\",\"override_allocation_key\":\"allocation-override-0da979c685f6\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"b3a72aaf-ac8e-4363-a950-c1f944d57bfc\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1787570345\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1787570345\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1787570345\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-94fb6dd806ed\",\"override_allocation_key\":\"allocation-override-94fb6dd806ed\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"ea2a18a5-a1da-46fb-8425-42c4cf7a8c4e\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1787656842\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1787656842\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1787656842\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-51e75996a381\",\"override_allocation_key\":\"allocation-override-51e75996a381\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"0155c5a8-d08d-496e-b4a7-028c18518aa5\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1787743397\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1787743397\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1787743397\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-4bc182d642a5\",\"override_allocation_key\":\"allocation-override-4bc182d642a5\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"41deb27b-bb56-4782-9e3d-195016df1618\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1787842626\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1787842626\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1787842626\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-ec35e47a6eef\",\"override_allocation_key\":\"allocation-override-ec35e47a6eef\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"24ff0fa6-7426-47b4-9079-93be9293eb0e\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1787930141\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1787930141\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1787930141\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-a64f48ce921c\",\"override_allocation_key\":\"allocation-override-a64f48ce921c\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"03215015-6563-4254-912d-44e7e690a90c\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1788175357\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1788175357\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1788175357\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-9e6151189c60\",\"override_allocation_key\":\"allocation-override-9e6151189c60\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"b66a460d-d15d-4560-a4ea-830fb3aab80f\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1788261743\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1788261743\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1788261743\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-64df06541dc1\",\"override_allocation_key\":\"allocation-override-64df06541dc1\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"6bde6291-1c46-4179-9efd-da9fbedf3c8c\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1788348372\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1788348372\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1788348372\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-1d7744e97f77\",\"override_allocation_key\":\"allocation-override-1d7744e97f77\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"7953055f-82ea-40cd-a468-e02513074d69\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1788434523\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1788434523\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1788434523\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-0d69811a75c2\",\"override_allocation_key\":\"allocation-override-0d69811a75c2\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"c6a06d5b-5c14-488f-952d-573e3dc29b9f\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1788521058\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1788521058\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1788521058\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-463b63d3fa16\",\"override_allocation_key\":\"allocation-override-463b63d3fa16\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"5c6a3e5c-2f26-45b4-b127-5869afb3e9b5\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1788780304\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1788780304\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1788780304\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-54615da031fd\",\"override_allocation_key\":\"allocation-override-54615da031fd\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"79e08aed-2e7e-43bd-805c-be7b0e04a37c\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1788866780\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1788866780\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1788866780\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-28706c57d220\",\"override_allocation_key\":\"allocation-override-28706c57d220\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"741ad264-49d3-42a3-ad78-740f547d8579\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1788953224\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1788953224\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1788953224\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-b800326a2c0a\",\"override_allocation_key\":\"allocation-override-b800326a2c0a\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"e4d8231f-b4e8-435b-80df-fa3cc6e0077a\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1789039317\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1789039317\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1789039317\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-b4506611ef6f\",\"override_allocation_key\":\"allocation-override-b4506611ef6f\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"e89616f8-c432-4c28-afc2-828324027fe9\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1789125835\",\"environment_queries\":[\"env-Test-Typescript-Create_an_environment_returns_Created_response-1789125835\",\"test-Test-Typescript-Create_an_environment_returns_Created_response-1789125835\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-d48a1bb693cf\",\"override_allocation_key\":\"allocation-override-d48a1bb693cf\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"265ddd7b-bdec-4bf3-a030-7cb5474db93f\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1789385136\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1789385136\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1789385136\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-1b4082671da1\",\"override_allocation_key\":\"allocation-override-1b4082671da1\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"c0c047d2-05c8-49d9-a2c6-90e10d84c647\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1789471540\",\"environment_queries\":[\"env-Test-Typescript-Create_an_environment_returns_Created_response-1789471540\",\"test-Test-Typescript-Create_an_environment_returns_Created_response-1789471540\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-b0e7a130b6f4\",\"override_allocation_key\":\"allocation-override-b0e7a130b6f4\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"d718bb16-f460-494d-accf-9c5baf91f7a2\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1789557848\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1789557848\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1789557848\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-6ae7e718d30a\",\"override_allocation_key\":\"allocation-override-6ae7e718d30a\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"375a411e-bf21-4e89-be9f-7fb6a116c566\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1789644391\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1789644391\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1789644391\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-f5dc9d680ce1\",\"override_allocation_key\":\"allocation-override-f5dc9d680ce1\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"eabcfb16-0589-4880-a379-e15c43624194\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1789730566\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1789730566\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1789730566\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-f5db036f9dc6\",\"override_allocation_key\":\"allocation-override-f5db036f9dc6\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"f671286c-3c35-4bd4-9b35-e06cc53ec54a\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1789989955\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1789989955\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1789989955\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-ed6b78d70787\",\"override_allocation_key\":\"allocation-override-ed6b78d70787\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"c215f3c3-663b-4440-a852-a3a1740d8146\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1790076172\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1790076172\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1790076172\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-83473c9789ee\",\"override_allocation_key\":\"allocation-override-83473c9789ee\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"3a96103f-1a73-45b2-9ce4-137dd445d4c2\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1790162766\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1790162766\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1790162766\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-4f02464b0ba7\",\"override_allocation_key\":\"allocation-override-4f02464b0ba7\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"1b40c14f-53db-4617-ac95-2278ad6857f6\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1790249162\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1790249162\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1790249162\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-b54adf40138b\",\"override_allocation_key\":\"allocation-override-b54adf40138b\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"3ecec461-a497-42ed-aead-325544a60a87\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1790335423\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1790335423\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1790335423\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-e241b1ea85ba\",\"override_allocation_key\":\"allocation-override-e241b1ea85ba\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null},{\"environment_id\":\"d54426f4-62e6-4b77-9bea-e9b0b66ae2a0\",\"environment_name\":\"Test Environment Test-Typescript-Create_an_environment_returns_Created_response-1790594709\",\"environment_queries\":[\"test-Test-Typescript-Create_an_environment_returns_Created_response-1790594709\",\"env-Test-Typescript-Create_an_environment_returns_Created_response-1790594709\"],\"status\":\"DISABLED\",\"default_variant_id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"override_variant_id\":null,\"default_allocation_key\":\"allocation-default-0d5b11b186c6\",\"override_allocation_key\":\"allocation-override-0d5b11b186c6\",\"allocations\":null,\"is_production\":false,\"require_feature_flag_approval\":false,\"observe_full_evaluation_data\":false,\"pending_suggestion_id\":null}],\"is_favorite\":false,\"key\":\"test-feature-flag-Test-Start_experiment_returns_The_experiment_was_started_response-1790645710\",\"last_updated_by\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"Test Feature Flag Test-Start_experiment_returns_The_experiment_was_started_response-1790645710\",\"require_approval\":false,\"staleness_details\":{\"id\":\"c893df62-0057-4581-88ac-e7a06bde4d5d\",\"staleness_status\":\"ACTIVE\",\"stale_reason\":null,\"recommended_actions\":null,\"code_references\":[],\"skip_state_check_until\":null,\"dismissed_by\":null},\"staleness_status\":\"ACTIVE\",\"tags\":[],\"updated_at\":\"2026-09-29T01:35:21.924195Z\",\"value_type\":\"BOOLEAN\",\"variants\":[{\"id\":\"0a48e1cb-b606-4c82-be1e-0b50195e4c53\",\"key\":\"variant-Test-Start_experiment_returns_The_experiment_was_started_response-1790645710-1\",\"name\":\"Variant Test-Start_experiment_returns_The_experiment_was_started_response-1790645710 A\",\"value\":\"true\",\"created_at\":\"2026-09-29T01:35:18.090845Z\",\"updated_at\":\"2026-09-29T01:35:18.090845Z\"},{\"id\":\"da2c6dc9-ffc6-48f1-95e1-31ea4849a128\",\"key\":\"variant-Test-Start_experiment_returns_The_experiment_was_started_response-1790645710-2\",\"name\":\"Variant Test-Start_experiment_returns_The_experiment_was_started_response-1790645710 B\",\"value\":\"false\",\"created_at\":\"2026-09-29T01:35:18.093942Z\",\"updated_at\":\"2026-09-29T01:35:18.093942Z\"}]}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "OK", + "status": 200 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/feature-flags/environments/37039500-a6d3-4fb6-9416-e03c6f28bd23", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + } + ], + "scenario": "Start experiment returns \"The experiment was started.\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T02:23:15.501Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "name": "ex-1484e81fe270cb88" + }, + "type": "experiments" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb211-5109-7000-bc48-f2955e955099\",\"type\":\"experiments\",\"attributes\":{\"assignments_end_date\":null,\"assignments_start_date\":null,\"concluded_at\":null,\"created_at\":\"2026-09-29T02:23:17.2659Z\",\"events_end_date\":null,\"events_start_date\":null,\"experiment_type\":\"STANDARD\",\"name\":\"ex-1484e81fe270cb88\",\"pipeline_table_suffix\":\"36yr8g\",\"related_links\":[],\"results_last_updated\":null,\"split_by_properties\":[],\"status\":\"DRAFT\",\"structured_metadata\":[],\"subject_type_id\":\"06abb0e8-33b2-7001-ad2f-70568bfbf6e9\",\"tags\":[],\"teams\":[],\"updated_at\":\"2026-09-29T02:23:17.291582Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "confidence_level": 0.9 + }, + "id": "06abb211-5109-7000-bc48-f2955e955099", + "type": "analysis-plans" + } + } + }, + "content_type": "application/json", + "method": "PATCH", + "path": "/api/v2/experiments/06abb211-5109-7000-bc48-f2955e955099/analysis-plan", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb211-5109-7000-bc48-f2955e955099\",\"type\":\"analysis-plans\",\"attributes\":{\"bayesian_prior\":{\"standard_deviation\":0.05,\"degrees_of_freedom\":null},\"confidence_interval_method\":\"Sequential\",\"confidence_level\":0.9,\"cuped_lookback_period_days\":30,\"experiment_auto_end_days\":0,\"experiment_min_duration\":7,\"experiment_min_sample_size\":500,\"has_custom_analysis_settings\":true,\"is_cuped_enabled\":true,\"is_multiple_testing_correction_enabled\":false,\"preferential_bonferroni_primary_metric_weight\":0.5,\"target_duration_days\":null}},\"meta\":{\"needs_pipeline_refresh\":false}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "OK", + "status": 200 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/06abb211-5109-7000-bc48-f2955e955099", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + } + ], + "scenario": "Update experiment analysis plan attributes returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T02:23:17.890Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "data_source_type": "DATADOG", + "desired_change": "METRIC_INCREASES", + "name": "ex-6bae51fc0c0d7263", + "numerator_aggregation": { + "datadog_metric_measure": { + "column_name": "@view.time_spent", + "column_type": "double", + "name": "ex-6bae51fc0c0d7263 view duration", + "source_subtype": "RUM_VIEWS", + "source_type": "PRODUCT_ANALYTICS" + }, + "operation": "sum" + } + }, + "type": "metrics" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments/metrics", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb211-6061-7000-ab9c-2f270fa1e7f9\",\"type\":\"metrics\",\"attributes\":{\"created_at\":\"2026-09-29T02:23:18.097497Z\",\"data_source_type\":\"DATADOG\",\"description\":\"\",\"desired_change\":\"METRIC_INCREASES\",\"format_as_percent\":false,\"metric_type\":\"SIMPLE\",\"name\":\"ex-6bae51fc0c0d7263\",\"numerator_aggregation\":{\"operation\":\"sum\",\"timeframe_start_value\":0,\"winsorization_strategy\":\"all_assigned_subjects\",\"datadog_metric_measure\":{\"name\":\"ex-6bae51fc0c0d7263 view duration\",\"source_type\":\"PRODUCT_ANALYTICS\",\"source_subtype\":\"RUM_VIEWS\",\"column_name\":\"@view.time_spent\",\"column_type\":\"double\",\"filters\":[],\"source_definition_filter\":[]}},\"reference_url\":\"\",\"updated_at\":\"2026-09-29T02:23:18.097497Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "name": "ex-6bae51fc0c0d7263" + }, + "type": "experiments" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb211-615d-7000-af74-226acd5578fa\",\"type\":\"experiments\",\"attributes\":{\"assignments_end_date\":null,\"assignments_start_date\":null,\"concluded_at\":null,\"created_at\":\"2026-09-29T02:23:18.349192Z\",\"events_end_date\":null,\"events_start_date\":null,\"experiment_type\":\"STANDARD\",\"name\":\"ex-6bae51fc0c0d7263\",\"pipeline_table_suffix\":\"sej21m\",\"related_links\":[],\"results_last_updated\":null,\"split_by_properties\":[],\"status\":\"DRAFT\",\"structured_metadata\":[],\"subject_type_id\":\"06abb0e8-33b2-7001-ad2f-70568bfbf6e9\",\"tags\":[],\"teams\":[],\"updated_at\":\"2026-09-29T02:23:18.363771Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "metrics": [ + { + "metric_id": "06abb211-6061-7000-ab9c-2f270fa1e7f9" + } + ], + "name": "ex-6bae51fc0c0d7263" + }, + "type": "experiment-metric-groups" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments/06abb211-615d-7000-af74-226acd5578fa/metric-groups", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb211-6273-7000-bcef-1a5c53b820fe\",\"type\":\"experiment-metric-groups\",\"attributes\":{\"is_decision\":false,\"metrics\":[{\"metric_id\":\"06abb211-6061-7000-ab9c-2f270fa1e7f9\",\"metric_name\":\"ex-6bae51fc0c0d7263\",\"is_primary\":false}],\"name\":\"ex-6bae51fc0c0d7263\"}},\"meta\":{\"needs_pipeline_refresh\":false}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "name": "ex-6bae51fc0c0d7263 updated" + }, + "id": "06abb211-6273-7000-bcef-1a5c53b820fe", + "type": "experiment-metric-groups" + } + } + }, + "content_type": "application/json", + "method": "PATCH", + "path": "/api/v2/experiments/06abb211-615d-7000-af74-226acd5578fa/metric-groups/06abb211-6273-7000-bcef-1a5c53b820fe", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb211-6273-7000-bcef-1a5c53b820fe\",\"type\":\"experiment-metric-groups\",\"attributes\":{\"is_decision\":false,\"metrics\":[{\"metric_id\":\"06abb211-6061-7000-ab9c-2f270fa1e7f9\",\"metric_name\":\"ex-6bae51fc0c0d7263\",\"is_primary\":false}],\"name\":\"ex-6bae51fc0c0d7263 updated\"}},\"meta\":{\"needs_pipeline_refresh\":false}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "OK", + "status": 200 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/06abb211-615d-7000-af74-226acd5578fa/metric-groups/06abb211-6273-7000-bcef-1a5c53b820fe", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/06abb211-615d-7000-af74-226acd5578fa", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/metrics/06abb211-6061-7000-ab9c-2f270fa1e7f9", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + } + ], + "scenario": "Update experiment metric group returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T01:19:38.737Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "name": "ex-dfa3de8bb8b5d4c7" + }, + "type": "metric-collections" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments/metric-collections", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb122-a3ad-7000-bfdf-4719446fb396\",\"type\":\"metric-collections\",\"attributes\":{\"created_at\":\"2026-09-29T01:19:38.94177384Z\",\"description\":null,\"is_guardrail\":false,\"metrics\":[],\"name\":\"ex-dfa3de8bb8b5d4c7\",\"updated_at\":\"2026-09-29T01:19:38.94177384Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "name": "ex-dfa3de8bb8b5d4c7 updated" + }, + "type": "metric-collections" + } + } + }, + "content_type": "application/json", + "method": "PATCH", + "path": "/api/v2/experiments/metric-collections/06abb122-a3ad-7000-bfdf-4719446fb396", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb122-a3ad-7000-bfdf-4719446fb396\",\"type\":\"metric-collections\",\"attributes\":{\"created_at\":\"2026-09-29T01:19:38.941773Z\",\"description\":null,\"is_guardrail\":false,\"metrics\":[],\"name\":\"ex-dfa3de8bb8b5d4c7 updated\",\"updated_at\":\"2026-09-29T01:19:39.195823Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "OK", + "status": 200 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/metric-collections/06abb122-a3ad-7000-bfdf-4719446fb396", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + } + ], + "scenario": "Update metric collection returns \"OK\" response", + "version": "v2" + }, + { + "feature": "Experiments", + "frozen_at": "2026-09-29T02:23:19.880Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "data_source_type": "DATADOG", + "desired_change": "METRIC_INCREASES", + "name": "ex-0045ae719c7f8d3f", + "numerator_aggregation": { + "datadog_metric_measure": { + "column_name": "@view.time_spent", + "column_type": "double", + "name": "ex-0045ae719c7f8d3f view duration", + "source_subtype": "RUM_VIEWS", + "source_type": "PRODUCT_ANALYTICS" + }, + "operation": "sum" + } + }, + "type": "metrics" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/experiments/metrics", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb211-802a-7000-83c2-077f3bfa0024\",\"type\":\"metrics\",\"attributes\":{\"created_at\":\"2026-09-29T02:23:20.042764Z\",\"data_source_type\":\"DATADOG\",\"description\":\"\",\"desired_change\":\"METRIC_INCREASES\",\"format_as_percent\":false,\"metric_type\":\"SIMPLE\",\"name\":\"ex-0045ae719c7f8d3f\",\"numerator_aggregation\":{\"operation\":\"sum\",\"timeframe_start_value\":0,\"winsorization_strategy\":\"all_assigned_subjects\",\"datadog_metric_measure\":{\"name\":\"ex-0045ae719c7f8d3f view duration\",\"source_type\":\"PRODUCT_ANALYTICS\",\"source_subtype\":\"RUM_VIEWS\",\"column_name\":\"@view.time_spent\",\"column_type\":\"double\",\"filters\":[],\"source_definition_filter\":[]}},\"reference_url\":\"\",\"updated_at\":\"2026-09-29T02:23:20.042764Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Created", + "status": 201 + } + }, + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "name": "ex-0045ae719c7f8d3f updated" + }, + "id": "06abb211-802a-7000-83c2-077f3bfa0024", + "type": "metrics" + } + } + }, + "content_type": "application/json", + "method": "PATCH", + "path": "/api/v2/experiments/metrics/06abb211-802a-7000-83c2-077f3bfa0024", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"06abb211-802a-7000-83c2-077f3bfa0024\",\"type\":\"metrics\",\"attributes\":{\"created_at\":\"2026-09-29T02:23:20.042764Z\",\"data_source_type\":\"DATADOG\",\"description\":\"\",\"desired_change\":\"METRIC_INCREASES\",\"format_as_percent\":false,\"metric_type\":\"SIMPLE\",\"name\":\"ex-0045ae719c7f8d3f updated\",\"numerator_aggregation\":{\"operation\":\"sum\",\"timeframe_start_value\":0,\"winsorization_strategy\":\"all_assigned_subjects\",\"datadog_metric_measure\":{\"name\":\"ex-0045ae719c7f8d3f view duration\",\"source_type\":\"PRODUCT_ANALYTICS\",\"source_subtype\":\"RUM_VIEWS\",\"column_name\":\"@view.time_spent\",\"column_type\":\"double\",\"filters\":[],\"source_definition_filter\":[]}},\"reference_url\":\"\",\"updated_at\":\"2026-09-29T02:23:20.335756Z\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "OK", + "status": 200 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/experiments/metrics/06abb211-802a-7000-83c2-077f3bfa0024", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "" + }, + "headers": {}, + "reason": "No Content", + "status": 204 + } + } + ], + "scenario": "Update metric returns \"OK\" response", + "version": "v2" + } + ], + "schema_version": 1, + "version": "v2" +} diff --git a/features/support/scenarios_model_mapping.ts b/features/support/scenarios_model_mapping.ts index 926fbf6674f9..b46bce900c70 100644 --- a/features/support/scenarios_model_mapping.ts +++ b/features/support/scenarios_model_mapping.ts @@ -9922,6 +9922,570 @@ export const ScenariosModelMappings: {[key: string]: {[key: string]: any}} = { }, "operationResponseType": "V2EventResponse", }, + "v2.ListExperiments": { + "concludedSince": { + "type": "Date", + "format": "date-time", + }, + "createdSince": { + "type": "Date", + "format": "date-time", + }, + "pageLimit": { + "type": "number", + "format": "int64", + }, + "pageOffset": { + "type": "number", + "format": "int64", + }, + "protocolId": { + "type": "Array", + "format": "", + }, + "resultsUpdatedBefore": { + "type": "Date", + "format": "date-time", + }, + "resultsUpdatedSince": { + "type": "Date", + "format": "date-time", + }, + "search": { + "type": "string", + "format": "", + }, + "sort": { + "type": "string", + "format": "", + }, + "status": { + "type": "Array", + "format": "", + }, + "tags": { + "type": "Array", + "format": "", + }, + "operationResponseType": "ExperimentsExperimentV2ListDTOArray", + }, + "v2.CreateExperiment": { + "body": { + "type": "ExperimentsCreateExperimentV2Request", + "format": "", + }, + "operationResponseType": "ExperimentsExperimentV2DTO", + }, + "v2.ListExposureSQLModels": { + "include": { + "type": "Array", + "format": "", + }, + "includeArchived": { + "type": "boolean", + "format": "", + }, + "pageLimit": { + "type": "number", + "format": "int64", + }, + "pageOffset": { + "type": "number", + "format": "int64", + }, + "search": { + "type": "string", + "format": "", + }, + "sort": { + "type": "string", + "format": "", + }, + "operationResponseType": "ExperimentsExposureSQLModelV2DTOArray", + }, + "v2.CreateExposureSQLModel": { + "body": { + "type": "ExperimentsCreateExposureSQLModelV2Request", + "format": "", + }, + "operationResponseType": "ExperimentsExposureSQLModelV2DTO", + }, + "v2.GetExposureSQLModel": { + "exposureSqlModelId": { + "type": "string", + "format": "uuid", + }, + "include": { + "type": "Array", + "format": "", + }, + "operationResponseType": "ExperimentsExposureSQLModelV2DTO", + }, + "v2.UpdateExposureSQLModel": { + "exposureSqlModelId": { + "type": "string", + "format": "uuid", + }, + "include": { + "type": "Array", + "format": "", + }, + "body": { + "type": "ExperimentsCreateExposureSQLModelV2Request", + "format": "", + }, + "operationResponseType": "ExperimentsUpdateExposureSQLModelV2Response", + }, + "v2.ArchiveExposureSQLModel": { + "exposureSqlModelId": { + "type": "string", + "format": "uuid", + }, + "operationResponseType": "{}", + }, + "v2.UnarchiveExposureSQLModel": { + "exposureSqlModelId": { + "type": "string", + "format": "uuid", + }, + "operationResponseType": "{}", + }, + "v2.ListMetricCollections": { + "include": { + "type": "Array", + "format": "", + }, + "pageLimit": { + "type": "number", + "format": "int64", + }, + "pageOffset": { + "type": "number", + "format": "int64", + }, + "search": { + "type": "string", + "format": "", + }, + "sort": { + "type": "string", + "format": "", + }, + "operationResponseType": "ExperimentsMetricCollectionV2DTOArray", + }, + "v2.CreateMetricCollection": { + "body": { + "type": "ExperimentsCreateMetricCollectionV2Request", + "format": "", + }, + "operationResponseType": "ExperimentsMetricCollectionV2DTO", + }, + "v2.GetMetricCollection": { + "metricCollectionId": { + "type": "string", + "format": "uuid", + }, + "operationResponseType": "ExperimentsMetricCollectionV2DTO", + }, + "v2.DeleteMetricCollection": { + "metricCollectionId": { + "type": "string", + "format": "uuid", + }, + "operationResponseType": "{}", + }, + "v2.UpdateMetricCollection": { + "metricCollectionId": { + "type": "string", + "format": "uuid", + }, + "body": { + "type": "ExperimentsPatchMetricCollectionV2Request", + "format": "", + }, + "operationResponseType": "ExperimentsMetricCollectionV2DTO", + }, + "v2.ListMetricSQLModels": { + "include": { + "type": "Array", + "format": "", + }, + "pageLimit": { + "type": "number", + "format": "int64", + }, + "pageOffset": { + "type": "number", + "format": "int64", + }, + "sort": { + "type": "string", + "format": "", + }, + "operationResponseType": "ExperimentsMetricSQLModelV2DTOArray", + }, + "v2.CreateMetricSQLModel": { + "body": { + "type": "ExperimentsCreateMetricSQLModelV2Request", + "format": "", + }, + "operationResponseType": "ExperimentsMetricSQLModelV2DTO", + }, + "v2.GetMetricSQLModel": { + "include": { + "type": "Array", + "format": "", + }, + "metricSqlModelId": { + "type": "string", + "format": "uuid", + }, + "operationResponseType": "ExperimentsMetricSQLModelV2DTO", + }, + "v2.UpdateMetricSQLModel": { + "metricSqlModelId": { + "type": "string", + "format": "uuid", + }, + "body": { + "type": "ExperimentsCreateMetricSQLModelV2Request", + "format": "", + }, + "operationResponseType": "ExperimentsUpdateMetricSQLModelV2Response", + }, + "v2.ListMetrics": { + "include": { + "type": "Array", + "format": "", + }, + "pageLimit": { + "type": "number", + "format": "int64", + }, + "pageOffset": { + "type": "number", + "format": "int64", + }, + "search": { + "type": "string", + "format": "", + }, + "sort": { + "type": "string", + "format": "", + }, + "operationResponseType": "ExperimentsMetricV2DTOArray", + }, + "v2.CreateMetric": { + "body": { + "type": "ExperimentsCreateMetricV2Request", + "format": "", + }, + "operationResponseType": "ExperimentsMetricV2DTO", + }, + "v2.GetMetric": { + "include": { + "type": "Array", + "format": "", + }, + "metricId": { + "type": "string", + "format": "uuid", + }, + "operationResponseType": "ExperimentsMetricV2DTO", + }, + "v2.DeleteMetric": { + "metricId": { + "type": "string", + "format": "uuid", + }, + "operationResponseType": "{}", + }, + "v2.UpdateMetric": { + "metricId": { + "type": "string", + "format": "uuid", + }, + "body": { + "type": "ExperimentsUpdateMetricV2Request", + "format": "", + }, + "operationResponseType": "ExperimentsMetricV2DTO", + }, + "v2.ListExperimentProtocols": { + "filterStatus": { + "type": "Array", + "format": "", + }, + "filterPrimaryMetricId": { + "type": "string", + "format": "uuid", + }, + "filterQuery": { + "type": "string", + "format": "", + }, + "filterSubjectTypeId": { + "type": "string", + "format": "uuid", + }, + "pageLimit": { + "type": "number", + "format": "int64", + }, + "pageOffset": { + "type": "number", + "format": "int64", + }, + "sort": { + "type": "string", + "format": "", + }, + "operationResponseType": "ExperimentsPublicProtocolListResponseArray", + }, + "v2.GetExperimentProtocol": { + "protocolId": { + "type": "string", + "format": "uuid", + }, + "operationResponseType": "ExperimentsPublicProtocolResponse", + }, + "v2.RefreshExperimentResultsForOrg": { + "fullRefresh": { + "type": "boolean", + "format": "", + }, + "operationResponseType": "ExperimentsRefreshExperimentResultsV2DTOArray", + }, + "v2.ListSubjectTypes": { + "include": { + "type": "string", + "format": "", + }, + "pageLimit": { + "type": "number", + "format": "int64", + }, + "pageOffset": { + "type": "number", + "format": "int64", + }, + "search": { + "type": "string", + "format": "", + }, + "sort": { + "type": "string", + "format": "", + }, + "operationResponseType": "ExperimentsSubjectTypeV2DTOArray", + }, + "v2.CreateSubjectType": { + "body": { + "type": "ExperimentsCreateSubjectTypeV2Request", + "format": "", + }, + "operationResponseType": "ExperimentsSubjectTypeV2DTO", + }, + "v2.GetSubjectType": { + "include": { + "type": "string", + "format": "", + }, + "subjectTypeId": { + "type": "string", + "format": "uuid", + }, + "operationResponseType": "ExperimentsSubjectTypeV2DTO", + }, + "v2.DeleteSubjectType": { + "subjectTypeId": { + "type": "string", + "format": "uuid", + }, + "operationResponseType": "{}", + }, + "v2.PatchSubjectType": { + "subjectTypeId": { + "type": "string", + "format": "uuid", + }, + "body": { + "type": "ExperimentsPatchSubjectTypeV2Request", + "format": "", + }, + "operationResponseType": "ExperimentsSubjectTypeV2DTO", + }, + "v2.SetDefaultSubjectType": { + "subjectTypeId": { + "type": "string", + "format": "uuid", + }, + "operationResponseType": "{}", + }, + "v2.GetExperiment": { + "experimentId": { + "type": "string", + "format": "uuid", + }, + "operationResponseType": "ExperimentsExperimentV2DTO", + }, + "v2.DeleteExperiment": { + "experimentId": { + "type": "string", + "format": "uuid", + }, + "operationResponseType": "{}", + }, + "v2.PatchExperiment": { + "experimentId": { + "type": "string", + "format": "uuid", + }, + "body": { + "type": "ExperimentsPatchExperimentV2Request", + "format": "", + }, + "operationResponseType": "ExperimentsPatchExperimentV2Response", + }, + "v2.GetExperimentAnalysisPlan": { + "experimentId": { + "type": "string", + "format": "uuid", + }, + "operationResponseType": "ExperimentsAnalysisPlanV2DTO", + }, + "v2.UpdateExperimentAnalysisPlanAttributes": { + "experimentId": { + "type": "string", + "format": "uuid", + }, + "body": { + "type": "ExperimentsAnalysisPlanWriteV2Request", + "format": "", + }, + "operationResponseType": "ExperimentsAnalysisPlanV2MutationResponse", + }, + "v2.CancelExperiment": { + "experimentId": { + "type": "string", + "format": "uuid", + }, + "body": { + "type": "ExperimentsCancelExperimentV2Request", + "format": "", + }, + "operationResponseType": "{}", + }, + "v2.ConcludeExperiment": { + "experimentId": { + "type": "string", + "format": "uuid", + }, + "body": { + "type": "ExperimentsConcludeExperimentV2Request", + "format": "", + }, + "operationResponseType": "{}", + }, + "v2.GetExperimentDiagnostics": { + "experimentId": { + "type": "string", + "format": "uuid", + }, + "operationResponseType": "ExperimentsExperimentDiagnosticsV2DTO", + }, + "v2.ListExperimentMetricGroups": { + "experimentId": { + "type": "string", + "format": "uuid", + }, + "operationResponseType": "ExperimentsExperimentMetricGroupV2DTOArray", + }, + "v2.CreateExperimentMetricGroup": { + "experimentId": { + "type": "string", + "format": "uuid", + }, + "body": { + "type": "ExperimentsCreateExperimentMetricGroupV2Request", + "format": "", + }, + "operationResponseType": "ExperimentsExperimentMetricGroupMutationV2", + }, + "v2.CreateExperimentMetricGroupFromCollection": { + "experimentId": { + "type": "string", + "format": "uuid", + }, + "metricCollectionId": { + "type": "string", + "format": "uuid", + }, + "operationResponseType": "ExperimentsExperimentMetricGroupMutationV2", + }, + "v2.DeleteExperimentMetricGroup": { + "experimentId": { + "type": "string", + "format": "uuid", + }, + "metricGroupId": { + "type": "string", + "format": "uuid", + }, + "operationResponseType": "{}", + }, + "v2.UpdateExperimentMetricGroup": { + "experimentId": { + "type": "string", + "format": "uuid", + }, + "metricGroupId": { + "type": "string", + "format": "uuid", + }, + "body": { + "type": "ExperimentsPatchExperimentMetricGroupV2Request", + "format": "", + }, + "operationResponseType": "ExperimentsExperimentMetricGroupMutationV2", + }, + "v2.GetExperimentResults": { + "experimentId": { + "type": "string", + "format": "uuid", + }, + "operationResponseType": "ExperimentsVariantResultsV2DTOArray", + }, + "v2.RefreshExperimentResults": { + "experimentId": { + "type": "string", + "format": "uuid", + }, + "fullRefresh": { + "type": "boolean", + "format": "", + }, + "operationResponseType": "ExperimentsRefreshExperimentResultsV2DTO", + }, + "v2.StartExperiment": { + "experimentId": { + "type": "string", + "format": "uuid", + }, + "body": { + "type": "ExperimentsStartExperimentV2Request", + "format": "", + }, + "operationResponseType": "{}", + }, + "v2.GetExperimentTrafficSummary": { + "experimentId": { + "type": "string", + "format": "uuid", + }, + "operationResponseType": "ExperimentsTrafficSummaryV2DTO", + }, "v2.ListFeatureFlags": { "key": { "type": "string", diff --git a/features/v2/experiments.feature b/features/v2/experiments.feature new file mode 100644 index 000000000000..c940ea75b12c --- /dev/null +++ b/features/v2/experiments.feature @@ -0,0 +1,1303 @@ +@endpoint(experiments) @endpoint(experiments-v2) +Feature: Experiments + Create and manage experiments, metrics, subject types, SQL models, and + protocols. + + Background: + Given a valid "apiKeyAuth" key in the system + And a valid "appKeyAuth" key in the system + And an instance of "Experiments" API + + @generated @skip @team:DataDog/experimentation + Scenario: Archive exposure SQL model returns "Malformed exposure SQL model ID (not a valid UUID)." response + Given new "ArchiveExposureSQLModel" request + And request contains "exposure_sql_model_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Malformed exposure SQL model ID (not a valid UUID). + + @generated @skip @team:DataDog/experimentation + Scenario: Archive exposure SQL model returns "No exposure SQL model with this ID exists for the organization." response + Given new "ArchiveExposureSQLModel" request + And request contains "exposure_sql_model_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 No exposure SQL model with this ID exists for the organization. + + @generated @skip @team:DataDog/experimentation + Scenario: Archive exposure SQL model returns "The exposure SQL model was archived. Archiving an already-archived model succeeds and leaves the original archive time in place." response + Given new "ArchiveExposureSQLModel" request + And request contains "exposure_sql_model_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 204 The exposure SQL model was archived. Archiving an already-archived model succeeds and leaves the original archive time in place. + + @generated @skip @team:DataDog/experimentation + Scenario: Cancel experiment returns "Malformed experiment ID, malformed request body, or a missing/blank reason." response + Given new "CancelExperiment" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"reason": "Experiment configuration was incorrect"}, "type": "cancel-experiment-request"}} + When the request is sent + Then the response status is 400 Malformed experiment ID, malformed request body, or a missing/blank reason. + + @generated @skip @team:DataDog/experimentation + Scenario: Cancel experiment returns "No experiment with this ID exists for the organization." response + Given new "CancelExperiment" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"reason": "Experiment configuration was incorrect"}, "type": "cancel-experiment-request"}} + When the request is sent + Then the response status is 404 No experiment with this ID exists for the organization. + + @generated @skip @team:DataDog/experimentation + Scenario: Cancel experiment returns "The experiment cannot be canceled in its current state." response + Given new "CancelExperiment" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"reason": "Experiment configuration was incorrect"}, "type": "cancel-experiment-request"}} + When the request is sent + Then the response status is 409 The experiment cannot be canceled in its current state. + + @team:DataDog/experimentation + Scenario: Cancel experiment returns "The experiment was canceled and unlinked from its feature flag allocations." response + Given new "CancelExperiment" request + And there is a valid "experiment" in the system + And request contains "experiment_id" parameter from "experiment.data.id" + And body with value {"data": {"type": "cancel-experiment-request", "attributes": {"reason": "Cancel the test experiment"}}} + When the request is sent + Then the response status is 204 The experiment was canceled and unlinked from its feature flag allocations. + + @generated @skip @team:DataDog/experimentation + Scenario: Conclude experiment returns "Malformed experiment ID, malformed request body, or a missing decision_variant_key." response + Given new "ConcludeExperiment" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"decision_variant_key": "treatment"}, "type": "conclude-experiment-request"}} + When the request is sent + Then the response status is 400 Malformed experiment ID, malformed request body, or a missing decision_variant_key. + + @generated @skip @team:DataDog/experimentation + Scenario: Conclude experiment returns "No experiment with this ID exists for the organization." response + Given new "ConcludeExperiment" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"decision_variant_key": "treatment"}, "type": "conclude-experiment-request"}} + When the request is sent + Then the response status is 404 No experiment with this ID exists for the organization. + + @generated @skip @team:DataDog/experimentation + Scenario: Conclude experiment returns "The experiment is not running or ready for a decision, its linked feature flag environment requires an approval for the rollout this would perform, or that flag has a pending suggestion for its allocations." response + Given new "ConcludeExperiment" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"decision_variant_key": "treatment"}, "type": "conclude-experiment-request"}} + When the request is sent + Then the response status is 409 The experiment is not running or ready for a decision, its linked feature flag environment requires an approval for the rollout this would perform, or that flag has a pending suggestion for its allocations. + + @generated @skip @team:DataDog/experimentation + Scenario: Conclude experiment returns "The experiment was concluded and the winning variant was rolled out to its linked feature flag allocation." response + Given new "ConcludeExperiment" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"decision_variant_key": "treatment"}, "type": "conclude-experiment-request"}} + When the request is sent + Then the response status is 204 The experiment was concluded and the winning variant was rolled out to its linked feature flag allocation. + + @generated @skip @team:DataDog/experimentation + Scenario: Create experiment metric group from collection returns "Bad Request" response + Given new "CreateExperimentMetricGroupFromCollection" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And request contains "metric_collection_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/experimentation + Scenario: Create experiment metric group from collection returns "Conflict" response + Given new "CreateExperimentMetricGroupFromCollection" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And request contains "metric_collection_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 409 Conflict + + @team:DataDog/experimentation + Scenario: Create experiment metric group from collection returns "Created" response + Given new "CreateExperimentMetricGroupFromCollection" request + And there is a valid "experiment_metric" in the system + And there is a valid "experiment_metric_collection_with_metric" in the system + And there is a valid "experiment" in the system + And request contains "experiment_id" parameter from "experiment.data.id" + And request contains "metric_collection_id" parameter from "experiment_metric_collection_with_metric.data.id" + When the request is sent + Then the response status is 201 Created + And the response "data.attributes.metrics" has length 1 + + @generated @skip @team:DataDog/experimentation + Scenario: Create experiment metric group from collection returns "Not Found" response + Given new "CreateExperimentMetricGroupFromCollection" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And request contains "metric_collection_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/experimentation + Scenario: Create experiment metric group returns "Bad Request" response + Given new "CreateExperimentMetricGroup" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"metrics": [{"metric_id": "550e8400-e29b-41d4-a716-446655440021"}], "name": "Diagnostics"}, "type": "experiment-metric-groups"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/experimentation + Scenario: Create experiment metric group returns "Conflict" response + Given new "CreateExperimentMetricGroup" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"metrics": [{"metric_id": "550e8400-e29b-41d4-a716-446655440021"}], "name": "Diagnostics"}, "type": "experiment-metric-groups"}} + When the request is sent + Then the response status is 409 Conflict + + @team:DataDog/experimentation + Scenario: Create experiment metric group returns "Created" response + Given new "CreateExperimentMetricGroup" request + And there is a valid "experiment_metric" in the system + And there is a valid "experiment" in the system + And request contains "experiment_id" parameter from "experiment.data.id" + And body with value {"data": {"type": "experiment-metric-groups", "attributes": {"name": "ex-{{ unique_hash }}", "metrics": [{"metric_id": "{{ experiment_metric.data.id }}"}]}}} + When the request is sent + Then the response status is 201 Created + And the response "data.attributes.metrics" has length 1 + + @generated @skip @team:DataDog/experimentation + Scenario: Create experiment metric group returns "Not Found" response + Given new "CreateExperimentMetricGroup" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"metrics": [{"metric_id": "550e8400-e29b-41d4-a716-446655440021"}], "name": "Diagnostics"}, "type": "experiment-metric-groups"}} + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/experimentation + Scenario: Create experiment metric group returns "Request body sent with a media type other than application/json or application/vnd.api+json." response + Given new "CreateExperimentMetricGroup" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"metrics": [{"metric_id": "550e8400-e29b-41d4-a716-446655440021"}], "name": "Diagnostics"}, "type": "experiment-metric-groups"}} + When the request is sent + Then the response status is 415 Request body sent with a media type other than application/json or application/vnd.api+json. + + @team:DataDog/experimentation + Scenario: Create experiment returns "Created" response + Given new "CreateExperiment" request + And body with value {"data": {"type": "experiments", "attributes": {"name": "ex-{{ unique_hash }}"}}} + When the request is sent + Then the response status is 201 Created + And the response "data.attributes.experiment_type" is equal to "STANDARD" + + @generated @skip @team:DataDog/experimentation + Scenario: Create experiment returns "Invalid request body: missing required field, malformed variants or decision_metrics, or an unresolvable analysis configuration." response + Given new "CreateExperiment" request + And body with value {"data": {"attributes": {"assignments_end_date": "2026-08-15T00:00:00Z", "assignments_start_date": "2026-08-01T00:00:00Z", "datadog_flag_configuration": {"entry_point": null, "environment_id": "550e8400-e29b-41d4-a716-446655440005", "feature_flag_id": "550e8400-e29b-41d4-a716-446655440004", "targeting_rules": []}, "decision_metrics": [{"is_primary": true, "metric_id": "b1a2c3d4-0000-0000-0000-000000000000"}], "events_end_date": "2026-08-22T00:00:00Z", "events_start_date": "2026-08-01T00:00:00Z", "name": "Checkout button test", "structured_metadata": [{"enum_values": ["beta"], "field_key": "launch_stage"}, {"field_key": "notes", "freetext_value": "Checkout redesign"}], "subject_type_id": "c2b3d4e5-0000-0000-0000-000000000000", "traffic_exposure": {"fraction": 1, "mode": "STATIC"}, "variants": [{"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440010", "is_active": true, "is_control": true, "key": "control", "weight": 50}, {"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440011", "is_active": true, "is_control": false, "key": "treatment", "weight": 50}]}, "type": "experiments"}} + When the request is sent + Then the response status is 400 Invalid request body: missing required field, malformed variants or decision_metrics, or an unresolvable analysis configuration. + + @generated @skip @team:DataDog/experimentation + Scenario: Create experiment returns "Request body sent with a media type other than application/json or application/vnd.api+json." response + Given new "CreateExperiment" request + And body with value {"data": {"attributes": {"assignments_end_date": "2026-08-15T00:00:00Z", "assignments_start_date": "2026-08-01T00:00:00Z", "datadog_flag_configuration": {"entry_point": null, "environment_id": "550e8400-e29b-41d4-a716-446655440005", "feature_flag_id": "550e8400-e29b-41d4-a716-446655440004", "targeting_rules": []}, "decision_metrics": [{"is_primary": true, "metric_id": "b1a2c3d4-0000-0000-0000-000000000000"}], "events_end_date": "2026-08-22T00:00:00Z", "events_start_date": "2026-08-01T00:00:00Z", "name": "Checkout button test", "structured_metadata": [{"enum_values": ["beta"], "field_key": "launch_stage"}, {"field_key": "notes", "freetext_value": "Checkout redesign"}], "subject_type_id": "c2b3d4e5-0000-0000-0000-000000000000", "traffic_exposure": {"fraction": 1, "mode": "STATIC"}, "variants": [{"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440010", "is_active": true, "is_control": true, "key": "control", "weight": 50}, {"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440011", "is_active": true, "is_control": false, "key": "treatment", "weight": 50}]}, "type": "experiments"}} + When the request is sent + Then the response status is 415 Request body sent with a media type other than application/json or application/vnd.api+json. + + @generated @skip @team:DataDog/experimentation + Scenario: Create experiment returns "The requested configuration is incompatible with the experiment (code: unsupported_configuration)." response + Given new "CreateExperiment" request + And body with value {"data": {"attributes": {"assignments_end_date": "2026-08-15T00:00:00Z", "assignments_start_date": "2026-08-01T00:00:00Z", "datadog_flag_configuration": {"entry_point": null, "environment_id": "550e8400-e29b-41d4-a716-446655440005", "feature_flag_id": "550e8400-e29b-41d4-a716-446655440004", "targeting_rules": []}, "decision_metrics": [{"is_primary": true, "metric_id": "b1a2c3d4-0000-0000-0000-000000000000"}], "events_end_date": "2026-08-22T00:00:00Z", "events_start_date": "2026-08-01T00:00:00Z", "name": "Checkout button test", "structured_metadata": [{"enum_values": ["beta"], "field_key": "launch_stage"}, {"field_key": "notes", "freetext_value": "Checkout redesign"}], "subject_type_id": "c2b3d4e5-0000-0000-0000-000000000000", "traffic_exposure": {"fraction": 1, "mode": "STATIC"}, "variants": [{"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440010", "is_active": true, "is_control": true, "key": "control", "weight": 50}, {"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440011", "is_active": true, "is_control": false, "key": "treatment", "weight": 50}]}, "type": "experiments"}} + When the request is sent + Then the response status is 409 The requested configuration is incompatible with the experiment (code: unsupported_configuration). + + @generated @skip @team:DataDog/experimentation + Scenario: Create experiment returns "The supplied protocol is a draft or archived protocol and cannot be applied to a new experiment." response + Given new "CreateExperiment" request + And body with value {"data": {"attributes": {"assignments_end_date": "2026-08-15T00:00:00Z", "assignments_start_date": "2026-08-01T00:00:00Z", "datadog_flag_configuration": {"entry_point": null, "environment_id": "550e8400-e29b-41d4-a716-446655440005", "feature_flag_id": "550e8400-e29b-41d4-a716-446655440004", "targeting_rules": []}, "decision_metrics": [{"is_primary": true, "metric_id": "b1a2c3d4-0000-0000-0000-000000000000"}], "events_end_date": "2026-08-22T00:00:00Z", "events_start_date": "2026-08-01T00:00:00Z", "name": "Checkout button test", "structured_metadata": [{"enum_values": ["beta"], "field_key": "launch_stage"}, {"field_key": "notes", "freetext_value": "Checkout redesign"}], "subject_type_id": "c2b3d4e5-0000-0000-0000-000000000000", "traffic_exposure": {"fraction": 1, "mode": "STATIC"}, "variants": [{"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440010", "is_active": true, "is_control": true, "key": "control", "weight": 50}, {"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440011", "is_active": true, "is_control": false, "key": "treatment", "weight": 50}]}, "type": "experiments"}} + When the request is sent + Then the response status is 422 The supplied protocol is a draft or archived protocol and cannot be applied to a new experiment. + + @generated @skip @team:DataDog/experimentation + Scenario: Create experiment returns "The supplied protocol_id does not identify a protocol in this organization." response + Given new "CreateExperiment" request + And body with value {"data": {"attributes": {"assignments_end_date": "2026-08-15T00:00:00Z", "assignments_start_date": "2026-08-01T00:00:00Z", "datadog_flag_configuration": {"entry_point": null, "environment_id": "550e8400-e29b-41d4-a716-446655440005", "feature_flag_id": "550e8400-e29b-41d4-a716-446655440004", "targeting_rules": []}, "decision_metrics": [{"is_primary": true, "metric_id": "b1a2c3d4-0000-0000-0000-000000000000"}], "events_end_date": "2026-08-22T00:00:00Z", "events_start_date": "2026-08-01T00:00:00Z", "name": "Checkout button test", "structured_metadata": [{"enum_values": ["beta"], "field_key": "launch_stage"}, {"field_key": "notes", "freetext_value": "Checkout redesign"}], "subject_type_id": "c2b3d4e5-0000-0000-0000-000000000000", "traffic_exposure": {"fraction": 1, "mode": "STATIC"}, "variants": [{"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440010", "is_active": true, "is_control": true, "key": "control", "weight": 50}, {"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440011", "is_active": true, "is_control": false, "key": "treatment", "weight": 50}]}, "type": "experiments"}} + When the request is sent + Then the response status is 404 The supplied protocol_id does not identify a protocol in this organization. + + @generated @skip @team:DataDog/experimentation + Scenario: Create exposure SQL model returns "Created" response + Given new "CreateExposureSQLModel" request + And body with value {"data": {"attributes": {"date_partition_column": null, "experiment_column": "experiment_id", "name": "Exposure events", "properties": [{"column_name": "country", "column_type": "STRING", "description": null, "name": "country"}], "sql": "SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures", "subject_types": [{"column_name": "user_id", "subject_type_id": "550e8400-e29b-41d4-a716-446655440010"}], "timestamp_column": "exposed_at", "variant_column": "variant"}, "type": "exposure-sql-models"}} + When the request is sent + Then the response status is 201 Created + + @generated @skip @team:DataDog/experimentation + Scenario: Create exposure SQL model returns "Malformed body, validation failure, or the SQL was rejected by the warehouse validator." response + Given new "CreateExposureSQLModel" request + And body with value {"data": {"attributes": {"date_partition_column": null, "experiment_column": "experiment_id", "name": "Exposure events", "properties": [{"column_name": "country", "column_type": "STRING", "description": null, "name": "country"}], "sql": "SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures", "subject_types": [{"column_name": "user_id", "subject_type_id": "550e8400-e29b-41d4-a716-446655440010"}], "timestamp_column": "exposed_at", "variant_column": "variant"}, "type": "exposure-sql-models"}} + When the request is sent + Then the response status is 400 Malformed body, validation failure, or the SQL was rejected by the warehouse validator. + + @generated @skip @team:DataDog/experimentation + Scenario: Create exposure SQL model returns "Request body sent with a media type other than application/json or application/vnd.api+json." response + Given new "CreateExposureSQLModel" request + And body with value {"data": {"attributes": {"date_partition_column": null, "experiment_column": "experiment_id", "name": "Exposure events", "properties": [{"column_name": "country", "column_type": "STRING", "description": null, "name": "country"}], "sql": "SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures", "subject_types": [{"column_name": "user_id", "subject_type_id": "550e8400-e29b-41d4-a716-446655440010"}], "timestamp_column": "exposed_at", "variant_column": "variant"}, "type": "exposure-sql-models"}} + When the request is sent + Then the response status is 415 Request body sent with a media type other than application/json or application/vnd.api+json. + + @generated @skip @team:DataDog/experimentation + Scenario: Create exposure SQL model returns "The write collided with an existing record for the organization." response + Given new "CreateExposureSQLModel" request + And body with value {"data": {"attributes": {"date_partition_column": null, "experiment_column": "experiment_id", "name": "Exposure events", "properties": [{"column_name": "country", "column_type": "STRING", "description": null, "name": "country"}], "sql": "SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures", "subject_types": [{"column_name": "user_id", "subject_type_id": "550e8400-e29b-41d4-a716-446655440010"}], "timestamp_column": "exposed_at", "variant_column": "variant"}, "type": "exposure-sql-models"}} + When the request is sent + Then the response status is 409 The write collided with an existing record for the organization. + + @generated @skip @team:DataDog/experimentation + Scenario: Create metric SQL model returns "Another metric SQL model in this organization already uses one of these values." response + Given new "CreateMetricSQLModel" request + And body with value {"data": {"attributes": {"date_partition_column": null, "description": null, "measures": [{"column_name": "revenue", "column_type": "FLOAT", "description": null, "name": null}], "name": "Order facts", "properties": [{"column_name": "item_type", "column_type": "STRING", "description": null, "name": "item_type"}], "sql": "SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders", "subject_types": [{"column_name": "user_id", "subject_type_id": "550e8400-e29b-41d4-a716-446655440010"}], "timestamp_column": "created_at"}, "type": "metric-sql-models"}} + When the request is sent + Then the response status is 409 Another metric SQL model in this organization already uses one of these values. + + @generated @skip @team:DataDog/experimentation + Scenario: Create metric SQL model returns "Created" response + Given new "CreateMetricSQLModel" request + And body with value {"data": {"attributes": {"date_partition_column": null, "description": null, "measures": [{"column_name": "revenue", "column_type": "FLOAT", "description": null, "name": null}], "name": "Order facts", "properties": [{"column_name": "item_type", "column_type": "STRING", "description": null, "name": "item_type"}], "sql": "SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders", "subject_types": [{"column_name": "user_id", "subject_type_id": "550e8400-e29b-41d4-a716-446655440010"}], "timestamp_column": "created_at"}, "type": "metric-sql-models"}} + When the request is sent + Then the response status is 201 Created + + @generated @skip @team:DataDog/experimentation + Scenario: Create metric SQL model returns "Malformed body, validation failure, the SQL was rejected by the warehouse validator, or the organization has no warehouse connection." response + Given new "CreateMetricSQLModel" request + And body with value {"data": {"attributes": {"date_partition_column": null, "description": null, "measures": [{"column_name": "revenue", "column_type": "FLOAT", "description": null, "name": null}], "name": "Order facts", "properties": [{"column_name": "item_type", "column_type": "STRING", "description": null, "name": "item_type"}], "sql": "SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders", "subject_types": [{"column_name": "user_id", "subject_type_id": "550e8400-e29b-41d4-a716-446655440010"}], "timestamp_column": "created_at"}, "type": "metric-sql-models"}} + When the request is sent + Then the response status is 400 Malformed body, validation failure, the SQL was rejected by the warehouse validator, or the organization has no warehouse connection. + + @generated @skip @team:DataDog/experimentation + Scenario: Create metric collection returns "Bad Request" response + Given new "CreateMetricCollection" request + And body with value {"data": {"attributes": {"name": "Activation"}, "type": "metric-collections"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/experimentation + Scenario: Create metric collection returns "Conflict" response + Given new "CreateMetricCollection" request + And body with value {"data": {"attributes": {"name": "Activation"}, "type": "metric-collections"}} + When the request is sent + Then the response status is 409 Conflict + + @team:DataDog/experimentation + Scenario: Create metric collection returns "Created" response + Given new "CreateMetricCollection" request + And body with value {"data": {"type": "metric-collections", "attributes": {"name": "ex-{{ unique_hash }}"}}} + When the request is sent + Then the response status is 201 Created + + @generated @skip @team:DataDog/experimentation + Scenario: Create metric collection returns "Request body sent with a media type other than application/json or application/vnd.api+json." response + Given new "CreateMetricCollection" request + And body with value {"data": {"attributes": {"name": "Activation"}, "type": "metric-collections"}} + When the request is sent + Then the response status is 415 Request body sent with a media type other than application/json or application/vnd.api+json. + + @generated @skip @team:DataDog/experimentation + Scenario: Create metric returns "Another metric in this organization already uses one of these values." response + Given new "CreateMetric" request + And body with value {"data": {"attributes": {"data_source_type": "CUSTOMER_WAREHOUSE", "description": null, "desired_change": "METRIC_INCREASES", "format_as_percent": true, "guardrail_cutoff_threshold": null, "name": "Checkout conversion", "numerator_aggregation": {"operation": "sum", "property_filters": [[{"operation": "IS", "property_id": "550e8400-e29b-41d4-a716-446655440023", "values": ["US"]}]], "timeframe_start_value": 0, "warehouse_metric_measure": {"id": "550e8400-e29b-41d4-a716-446655440021"}}}, "type": "metrics"}} + When the request is sent + Then the response status is 409 Another metric in this organization already uses one of these values. + + @team:DataDog/experimentation + Scenario: Create metric returns "Created" response + Given new "CreateMetric" request + And body with value {"data": {"type": "metrics", "attributes": {"name": "ex-{{ unique_hash }}", "data_source_type": "DATADOG", "desired_change": "METRIC_INCREASES", "numerator_aggregation": {"operation": "sum", "datadog_metric_measure": {"name": "ex-{{ unique_hash }} view duration", "source_type": "PRODUCT_ANALYTICS", "source_subtype": "RUM_VIEWS", "column_type": "double", "column_name": "@view.time_spent"}}}}} + When the request is sent + Then the response status is 201 Created + And the response "data.attributes.metric_type" is equal to "SIMPLE" + + @generated @skip @team:DataDog/experimentation + Scenario: Create metric returns "Malformed body, validation failure, or an aggregation that does not match metric_type." response + Given new "CreateMetric" request + And body with value {"data": {"attributes": {"data_source_type": "CUSTOMER_WAREHOUSE", "description": null, "desired_change": "METRIC_INCREASES", "format_as_percent": true, "guardrail_cutoff_threshold": null, "name": "Checkout conversion", "numerator_aggregation": {"operation": "sum", "property_filters": [[{"operation": "IS", "property_id": "550e8400-e29b-41d4-a716-446655440023", "values": ["US"]}]], "timeframe_start_value": 0, "warehouse_metric_measure": {"id": "550e8400-e29b-41d4-a716-446655440021"}}}, "type": "metrics"}} + When the request is sent + Then the response status is 400 Malformed body, validation failure, or an aggregation that does not match metric_type. + + @generated @skip @team:DataDog/experimentation + Scenario: Create metric returns "Request body sent with a media type other than application/json or application/vnd.api+json." response + Given new "CreateMetric" request + And body with value {"data": {"attributes": {"data_source_type": "CUSTOMER_WAREHOUSE", "description": null, "desired_change": "METRIC_INCREASES", "format_as_percent": true, "guardrail_cutoff_threshold": null, "name": "Checkout conversion", "numerator_aggregation": {"operation": "sum", "property_filters": [[{"operation": "IS", "property_id": "550e8400-e29b-41d4-a716-446655440023", "values": ["US"]}]], "timeframe_start_value": 0, "warehouse_metric_measure": {"id": "550e8400-e29b-41d4-a716-446655440021"}}}, "type": "metrics"}} + When the request is sent + Then the response status is 415 Request body sent with a media type other than application/json or application/vnd.api+json. + + @team:DataDog/experimentation + Scenario: Create subject type returns "Created" response + Given new "CreateSubjectType" request + And body with value {"data": {"type": "subject-types", "attributes": {"name": "ex-{{ unique_hash }}", "product_analytics_attribute": "@account.id", "warehouse_column_names": ["account_id"]}}} + When the request is sent + Then the response status is 201 Created + + @generated @skip @team:DataDog/experimentation + Scenario: Create subject type returns "Malformed body, or validation failure on name, product_analytics_attribute, or warehouse_column_names." response + Given new "CreateSubjectType" request + And body with value {"data": {"attributes": {"name": "User", "product_analytics_attribute": "@usr.id", "warehouse_column_names": ["user_id", "customer_id"]}, "type": "subject-types"}} + When the request is sent + Then the response status is 400 Malformed body, or validation failure on name, product_analytics_attribute, or warehouse_column_names. + + @generated @skip @team:DataDog/experimentation + Scenario: Delete experiment metric group returns "Bad Request" response + Given new "DeleteExperimentMetricGroup" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And request contains "metric_group_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/experimentation + Scenario: Delete experiment metric group returns "Conflict" response + Given new "DeleteExperimentMetricGroup" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And request contains "metric_group_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 409 Conflict + + @team:DataDog/experimentation + Scenario: Delete experiment metric group returns "No Content" response + Given new "DeleteExperimentMetricGroup" request + And there is a valid "experiment_metric" in the system + And there is a valid "experiment" in the system + And there is a valid "experiment_metric_group" in the system + And request contains "experiment_id" parameter from "experiment.data.id" + And request contains "metric_group_id" parameter from "experiment_metric_group.data.id" + When the request is sent + Then the response status is 204 No Content + + @generated @skip @team:DataDog/experimentation + Scenario: Delete experiment metric group returns "Not Found" response + Given new "DeleteExperimentMetricGroup" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And request contains "metric_group_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/experimentation + Scenario: Delete experiment returns "Malformed experiment ID (not a valid UUID)." response + Given new "DeleteExperiment" request + And request contains "experiment_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Malformed experiment ID (not a valid UUID). + + @team:DataDog/experimentation + Scenario: Delete experiment returns "No Content" response + Given new "DeleteExperiment" request + And there is a valid "experiment" in the system + And request contains "experiment_id" parameter from "experiment.data.id" + When the request is sent + Then the response status is 204 No Content + + @generated @skip @team:DataDog/experimentation + Scenario: Delete experiment returns "No experiment with this ID exists for the organization." response + Given new "DeleteExperiment" request + And request contains "experiment_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 No experiment with this ID exists for the organization. + + @generated @skip @team:DataDog/experimentation + Scenario: Delete experiment returns "The experiment has a published allocation on an archived flag, must be retained for selective holdout analysis, or its linked allocations changed during authorization. Nothing was deleted." response + Given new "DeleteExperiment" request + And request contains "experiment_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 409 The experiment has a published allocation on an archived flag, must be retained for selective holdout analysis, or its linked allocations changed during authorization. Nothing was deleted. + + @generated @skip @team:DataDog/experimentation + Scenario: Delete experiment returns "The experiment was deleted." response + Given new "DeleteExperiment" request + And request contains "experiment_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 204 The experiment was deleted. + + @generated @skip @team:DataDog/experimentation + Scenario: Delete metric collection returns "Bad Request" response + Given new "DeleteMetricCollection" request + And request contains "metric_collection_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @team:DataDog/experimentation + Scenario: Delete metric collection returns "No Content" response + Given new "DeleteMetricCollection" request + And there is a valid "experiment_metric_collection" in the system + And request contains "metric_collection_id" parameter from "experiment_metric_collection.data.id" + When the request is sent + Then the response status is 204 No Content + + @generated @skip @team:DataDog/experimentation + Scenario: Delete metric collection returns "Not Found" response + Given new "DeleteMetricCollection" request + And request contains "metric_collection_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/experimentation + Scenario: Delete metric returns "Malformed metric ID (not a valid UUID)." response + Given new "DeleteMetric" request + And request contains "metric_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Malformed metric ID (not a valid UUID). + + @generated @skip @team:DataDog/experimentation + Scenario: Delete metric returns "No metric with this ID exists for the organization." response + Given new "DeleteMetric" request + And request contains "metric_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 No metric with this ID exists for the organization. + + @generated @skip @team:DataDog/experimentation + Scenario: Delete metric returns "The metric is imported, certified, managed by metric sync, or still referenced by one or more experiments and cannot be deleted." response + Given new "DeleteMetric" request + And request contains "metric_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 409 The metric is imported, certified, managed by metric sync, or still referenced by one or more experiments and cannot be deleted. + + @team:DataDog/experimentation + Scenario: Delete metric returns "The metric was deleted." response + Given new "DeleteMetric" request + And there is a valid "experiment_metric" in the system + And request contains "metric_id" parameter from "experiment_metric.data.id" + When the request is sent + Then the response status is 204 The metric was deleted. + + @generated @skip @team:DataDog/experimentation + Scenario: Delete subject type returns "Either this subject type is the organization's default, or experiments, exposure SQL models, metric SQL models or protocols still reference it. When something references it, meta.blockers names them (capped per kind, with truncated set when more exist)." response + Given new "DeleteSubjectType" request + And request contains "subject_type_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 409 Either this subject type is the organization's default, or experiments, exposure SQL models, metric SQL models or protocols still reference it. When something references it, meta.blockers names them (capped per kind, with truncated set when more exist). + + @generated @skip @team:DataDog/experimentation + Scenario: Delete subject type returns "Malformed subject type ID (not a valid UUID)." response + Given new "DeleteSubjectType" request + And request contains "subject_type_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Malformed subject type ID (not a valid UUID). + + @team:DataDog/experimentation + Scenario: Delete subject type returns "No Content" response + Given new "DeleteSubjectType" request + And there is a valid "experiment_subject_type" in the system + And request contains "subject_type_id" parameter from "experiment_subject_type.data.id" + When the request is sent + Then the response status is 204 No Content + + @generated @skip @team:DataDog/experimentation + Scenario: Delete subject type returns "No subject type with this ID exists for the organization." response + Given new "DeleteSubjectType" request + And request contains "subject_type_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 No subject type with this ID exists for the organization. + + @generated @skip @team:DataDog/experimentation + Scenario: Delete subject type returns "The subject type was deleted." response + Given new "DeleteSubjectType" request + And request contains "subject_type_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 204 The subject type was deleted. + + @generated @skip @team:DataDog/experimentation + Scenario: Get experiment analysis plan returns "Malformed experiment ID." response + Given new "GetExperimentAnalysisPlan" request + And request contains "experiment_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Malformed experiment ID. + + @generated @skip @team:DataDog/experimentation + Scenario: Get experiment analysis plan returns "Not Found" response + Given new "GetExperimentAnalysisPlan" request + And request contains "experiment_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @team:DataDog/experimentation + Scenario: Get experiment analysis plan returns "OK" response + Given new "GetExperimentAnalysisPlan" request + And there is a valid "experiment" in the system + And request contains "experiment_id" parameter from "experiment.data.id" + When the request is sent + Then the response status is 200 OK + And the response "data.id" has the same value as "experiment.data.id" + And the response "data.type" is equal to "analysis-plans" + + @generated @skip @team:DataDog/experimentation + Scenario: Get experiment diagnostics returns "Malformed experiment ID (not a valid UUID)." response + Given new "GetExperimentDiagnostics" request + And request contains "experiment_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Malformed experiment ID (not a valid UUID). + + @generated @skip @team:DataDog/experimentation + Scenario: Get experiment diagnostics returns "No experiment with this ID exists for the organization. Lifecycle statuses in a successful response explain whether analysis has started, is running, or completed without diagnostics." response + Given new "GetExperimentDiagnostics" request + And request contains "experiment_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 No experiment with this ID exists for the organization. Lifecycle statuses in a successful response explain whether analysis has started, is running, or completed without diagnostics. + + @team:DataDog/experimentation + Scenario: Get experiment diagnostics returns "OK" response + Given new "GetExperimentDiagnostics" request + And there is a valid "experiment" in the system + And request contains "experiment_id" parameter from "experiment.data.id" + When the request is sent + Then the response status is 200 OK + And the response "data.attributes.state" is equal to "NOT_STARTED" + And the response "data.attributes.diagnostics" has length 0 + + @generated @skip @team:DataDog/experimentation + Scenario: Get experiment protocol returns "Bad Request" response + Given new "GetExperimentProtocol" request + And request contains "protocol_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/experimentation + Scenario: Get experiment protocol returns "Not Found" response + Given new "GetExperimentProtocol" request + And request contains "protocol_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/experimentation + Scenario: Get experiment protocol returns "OK" response + Given new "GetExperimentProtocol" request + And request contains "protocol_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/experimentation + Scenario: Get experiment results returns "Malformed experiment ID (not a valid UUID), or the experiment is not configured for analysis." response + Given new "GetExperimentResults" request + And request contains "experiment_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Malformed experiment ID (not a valid UUID), or the experiment is not configured for analysis. + + @generated @skip @team:DataDog/experimentation + Scenario: Get experiment results returns "No experiment with this ID exists, or results are not available for it yet." response + Given new "GetExperimentResults" request + And request contains "experiment_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 No experiment with this ID exists, or results are not available for it yet. + + @generated @skip @team:DataDog/experimentation + Scenario: Get experiment results returns "OK" response + Given new "GetExperimentResults" request + And request contains "experiment_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/experimentation + Scenario: Get experiment results returns "The experiment's metrics are incompatible with analysis." response + Given new "GetExperimentResults" request + And request contains "experiment_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 409 The experiment's metrics are incompatible with analysis. + + @generated @skip @team:DataDog/experimentation + Scenario: Get experiment returns "Malformed experiment ID (not a valid UUID)." response + Given new "GetExperiment" request + And request contains "experiment_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Malformed experiment ID (not a valid UUID). + + @generated @skip @team:DataDog/experimentation + Scenario: Get experiment returns "No experiment with this ID exists for the organization." response + Given new "GetExperiment" request + And request contains "experiment_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 No experiment with this ID exists for the organization. + + @team:DataDog/experimentation + Scenario: Get experiment returns "OK" response + Given new "GetExperiment" request + And there is a valid "experiment" in the system + And request contains "experiment_id" parameter from "experiment.data.id" + When the request is sent + Then the response status is 200 OK + And the response "data.attributes.experiment_type" is equal to "STANDARD" + + @generated @skip @team:DataDog/experimentation + Scenario: Get experiment returns "The stored assignment configuration cannot be represented losslessly by this API (unsupported_configuration)." response + Given new "GetExperiment" request + And request contains "experiment_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 409 The stored assignment configuration cannot be represented losslessly by this API (unsupported_configuration). + + @generated @skip @team:DataDog/experimentation + Scenario: Get experiment traffic summary returns "Malformed experiment ID (not a valid UUID), or the experiment is not configured for analysis." response + Given new "GetExperimentTrafficSummary" request + And request contains "experiment_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Malformed experiment ID (not a valid UUID), or the experiment is not configured for analysis. + + @generated @skip @team:DataDog/experimentation + Scenario: Get experiment traffic summary returns "No experiment with this ID exists for the organization." response + Given new "GetExperimentTrafficSummary" request + And request contains "experiment_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 No experiment with this ID exists for the organization. + + @team:DataDog/experimentation + Scenario: Get experiment traffic summary returns "OK" response + Given new "GetExperimentTrafficSummary" request + And there is a valid "experiment" in the system + And request contains "experiment_id" parameter from "experiment.data.id" + When the request is sent + Then the response status is 200 OK + And the response "data.attributes.total_subjects" is equal to 0 + And the response "data.attributes.variants" has length 0 + + @generated @skip @team:DataDog/experimentation + Scenario: Get experiment traffic summary returns "The experiment's metrics are incompatible with analysis." response + Given new "GetExperimentTrafficSummary" request + And request contains "experiment_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 409 The experiment's metrics are incompatible with analysis. + + @generated @skip @team:DataDog/experimentation + Scenario: Get exposure SQL model returns "Malformed exposure SQL model ID (not a valid UUID), or unknown include value." response + Given new "GetExposureSQLModel" request + And request contains "exposure_sql_model_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Malformed exposure SQL model ID (not a valid UUID), or unknown include value. + + @generated @skip @team:DataDog/experimentation + Scenario: Get exposure SQL model returns "No exposure SQL model with this ID exists for the organization." response + Given new "GetExposureSQLModel" request + And request contains "exposure_sql_model_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 No exposure SQL model with this ID exists for the organization. + + @generated @skip @team:DataDog/experimentation + Scenario: Get exposure SQL model returns "OK" response + Given new "GetExposureSQLModel" request + And request contains "exposure_sql_model_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/experimentation + Scenario: Get metric SQL model returns "Malformed metric SQL model ID (not a valid UUID), or unknown include value." response + Given new "GetMetricSQLModel" request + And request contains "metric_sql_model_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Malformed metric SQL model ID (not a valid UUID), or unknown include value. + + @generated @skip @team:DataDog/experimentation + Scenario: Get metric SQL model returns "No metric SQL model with this ID exists for the organization." response + Given new "GetMetricSQLModel" request + And request contains "metric_sql_model_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 No metric SQL model with this ID exists for the organization. + + @generated @skip @team:DataDog/experimentation + Scenario: Get metric SQL model returns "OK" response + Given new "GetMetricSQLModel" request + And request contains "metric_sql_model_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/experimentation + Scenario: Get metric collection returns "Bad Request" response + Given new "GetMetricCollection" request + And request contains "metric_collection_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/experimentation + Scenario: Get metric collection returns "Not Found" response + Given new "GetMetricCollection" request + And request contains "metric_collection_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @team:DataDog/experimentation + Scenario: Get metric collection returns "OK" response + Given new "GetMetricCollection" request + And there is a valid "experiment_metric_collection" in the system + And request contains "metric_collection_id" parameter from "experiment_metric_collection.data.id" + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/experimentation + Scenario: Get metric returns "Malformed metric ID (not a valid UUID)." response + Given new "GetMetric" request + And request contains "metric_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Malformed metric ID (not a valid UUID). + + @generated @skip @team:DataDog/experimentation + Scenario: Get metric returns "No metric with this ID exists for the organization." response + Given new "GetMetric" request + And request contains "metric_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 No metric with this ID exists for the organization. + + @team:DataDog/experimentation + Scenario: Get metric returns "OK" response + Given new "GetMetric" request + And there is a valid "experiment_metric" in the system + And request contains "metric_id" parameter from "experiment_metric.data.id" + When the request is sent + Then the response status is 200 OK + And the response "data.id" has the same value as "experiment_metric.data.id" + And the response "data.attributes.metric_type" is equal to "SIMPLE" + + @generated @skip @team:DataDog/experimentation + Scenario: Get subject type returns "Malformed subject type ID (not a valid UUID), or an unsupported include value." response + Given new "GetSubjectType" request + And request contains "subject_type_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Malformed subject type ID (not a valid UUID), or an unsupported include value. + + @generated @skip @team:DataDog/experimentation + Scenario: Get subject type returns "No subject type with this ID exists for the organization." response + Given new "GetSubjectType" request + And request contains "subject_type_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 No subject type with this ID exists for the organization. + + @team:DataDog/experimentation + Scenario: Get subject type returns "OK" response + Given new "GetSubjectType" request + And there is a valid "experiment_subject_type" in the system + And request contains "subject_type_id" parameter from "experiment_subject_type.data.id" + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/experimentation + Scenario: List experiment metric groups returns "Malformed experiment ID." response + Given new "ListExperimentMetricGroups" request + And request contains "experiment_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Malformed experiment ID. + + @generated @skip @team:DataDog/experimentation + Scenario: List experiment metric groups returns "No experiment with this ID exists for the organization." response + Given new "ListExperimentMetricGroups" request + And request contains "experiment_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 No experiment with this ID exists for the organization. + + @team:DataDog/experimentation + Scenario: List experiment metric groups returns "OK" response + Given new "ListExperimentMetricGroups" request + And there is a valid "experiment" in the system + And request contains "experiment_id" parameter from "experiment.data.id" + When the request is sent + Then the response status is 200 OK + And the response "data" has length 0 + + @generated @skip @team:DataDog/experimentation + Scenario: List experiment protocols returns "Bad Request" response + Given new "ListExperimentProtocols" request + When the request is sent + Then the response status is 400 Bad Request + + @team:DataDog/experimentation + Scenario: List experiment protocols returns "OK" response + Given new "ListExperimentProtocols" request + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/experimentation + Scenario: List experiments returns "Invalid query parameter: bad page[offset]/page[limit], unknown sort field, invalid status, malformed protocol_id UUID, invalid result timestamp range, or a timestamp filter that is not RFC3339." response + Given new "ListExperiments" request + When the request is sent + Then the response status is 400 Invalid query parameter: bad page[offset]/page[limit], unknown sort field, invalid status, malformed protocol_id UUID, invalid result timestamp range, or a timestamp filter that is not RFC3339. + + @team:DataDog/experimentation + Scenario: List experiments returns "OK" response + Given new "ListExperiments" request + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/experimentation + Scenario: List exposure SQL models returns "Invalid query parameter: bad page[offset]/page[limit], search longer than 1024 bytes, unknown sort field, non-boolean include_archived, or unknown include value." response + Given new "ListExposureSQLModels" request + When the request is sent + Then the response status is 400 Invalid query parameter: bad page[offset]/page[limit], search longer than 1024 bytes, unknown sort field, non-boolean include_archived, or unknown include value. + + @team:DataDog/experimentation + Scenario: List exposure SQL models returns "OK" response + Given new "ListExposureSQLModels" request + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/experimentation + Scenario: List metric SQL models returns "Invalid query parameter: bad page[offset]/page[limit], unknown sort field, or unknown include value." response + Given new "ListMetricSQLModels" request + When the request is sent + Then the response status is 400 Invalid query parameter: bad page[offset]/page[limit], unknown sort field, or unknown include value. + + @team:DataDog/experimentation + Scenario: List metric SQL models returns "OK" response + Given new "ListMetricSQLModels" request + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/experimentation + Scenario: List metric collections returns "Bad Request" response + Given new "ListMetricCollections" request + When the request is sent + Then the response status is 400 Bad Request + + @team:DataDog/experimentation + Scenario: List metric collections returns "OK" response + Given new "ListMetricCollections" request + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/experimentation + Scenario: List metrics returns "Invalid query parameter: bad page[offset]/page[limit], or unknown sort field." response + Given new "ListMetrics" request + When the request is sent + Then the response status is 400 Invalid query parameter: bad page[offset]/page[limit], or unknown sort field. + + @team:DataDog/experimentation + Scenario: List metrics returns "OK" response + Given new "ListMetrics" request + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/experimentation + Scenario: List subject types returns "Invalid query parameter: bad page[offset]/page[limit], or unknown sort field." response + Given new "ListSubjectTypes" request + When the request is sent + Then the response status is 400 Invalid query parameter: bad page[offset]/page[limit], or unknown sort field. + + @team:DataDog/experimentation + Scenario: List subject types returns "OK" response + Given new "ListSubjectTypes" request + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/experimentation + Scenario: Patch experiment returns "Invalid request: malformed field, a read-only attribute was sent, a referenced ID doesn't exist, an allocation change is not supported after start, or the resulting analysis configuration is invalid. May return multiple errors." response + Given new "PatchExperiment" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"datadog_flag_configuration": {"entry_point": null, "environment_id": "550e8400-e29b-41d4-a716-446655440005", "feature_flag_id": "550e8400-e29b-41d4-a716-446655440014", "reset_on_feature_flag_change": true, "targeting_rules": []}, "structured_metadata": [{"enum_values": ["general_availability"], "field_key": "launch_stage"}], "traffic_exposure": {"fraction": 1, "mode": "STATIC"}, "variants": [{"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440020", "is_active": true, "is_control": true, "key": "control", "weight": 50}, {"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440021", "is_active": true, "is_control": false, "key": "treatment", "weight": 50}]}, "type": "experiments"}} + When the request is sent + Then the response status is 400 Invalid request: malformed field, a read-only attribute was sent, a referenced ID doesn't exist, an allocation change is not supported after start, or the resulting analysis configuration is invalid. May return multiple errors. + + @generated @skip @team:DataDog/experimentation + Scenario: Patch experiment returns "No experiment with this ID exists for the organization." response + Given new "PatchExperiment" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"datadog_flag_configuration": {"entry_point": null, "environment_id": "550e8400-e29b-41d4-a716-446655440005", "feature_flag_id": "550e8400-e29b-41d4-a716-446655440014", "reset_on_feature_flag_change": true, "targeting_rules": []}, "structured_metadata": [{"enum_values": ["general_availability"], "field_key": "launch_stage"}], "traffic_exposure": {"fraction": 1, "mode": "STATIC"}, "variants": [{"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440020", "is_active": true, "is_control": true, "key": "control", "weight": 50}, {"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440021", "is_active": true, "is_control": false, "key": "treatment", "weight": 50}]}, "type": "experiments"}} + When the request is sent + Then the response status is 404 No experiment with this ID exists for the organization. + + @team:DataDog/experimentation + Scenario: Patch experiment returns "OK" response + Given new "PatchExperiment" request + And there is a valid "experiment" in the system + And request contains "experiment_id" parameter from "experiment.data.id" + And body with value {"data": {"type": "experiments", "attributes": {"name": "ex-{{ unique_hash }} updated"}}} + When the request is sent + Then the response status is 200 OK + And the response "data.attributes.experiment_type" is equal to "STANDARD" + + @generated @skip @team:DataDog/experimentation + Scenario: Patch experiment returns "Request body sent with a media type other than application/json or application/vnd.api+json." response + Given new "PatchExperiment" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"datadog_flag_configuration": {"entry_point": null, "environment_id": "550e8400-e29b-41d4-a716-446655440005", "feature_flag_id": "550e8400-e29b-41d4-a716-446655440014", "reset_on_feature_flag_change": true, "targeting_rules": []}, "structured_metadata": [{"enum_values": ["general_availability"], "field_key": "launch_stage"}], "traffic_exposure": {"fraction": 1, "mode": "STATIC"}, "variants": [{"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440020", "is_active": true, "is_control": true, "key": "control", "weight": 50}, {"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440021", "is_active": true, "is_control": false, "key": "treatment", "weight": 50}]}, "type": "experiments"}} + When the request is sent + Then the response status is 415 Request body sent with a media type other than application/json or application/vnd.api+json. + + @generated @skip @team:DataDog/experimentation + Scenario: Patch experiment returns "The requested configuration is incompatible with the experiment, or a feature flag change requires explicit reset consent and a complete target configuration (codes: unsupported_configuration, feature_flag_change_requires_reset, or feature_flag_change_requires_complete_configuration)." response + Given new "PatchExperiment" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"datadog_flag_configuration": {"entry_point": null, "environment_id": "550e8400-e29b-41d4-a716-446655440005", "feature_flag_id": "550e8400-e29b-41d4-a716-446655440014", "reset_on_feature_flag_change": true, "targeting_rules": []}, "structured_metadata": [{"enum_values": ["general_availability"], "field_key": "launch_stage"}], "traffic_exposure": {"fraction": 1, "mode": "STATIC"}, "variants": [{"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440020", "is_active": true, "is_control": true, "key": "control", "weight": 50}, {"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440021", "is_active": true, "is_control": false, "key": "treatment", "weight": 50}]}, "type": "experiments"}} + When the request is sent + Then the response status is 409 The requested configuration is incompatible with the experiment, or a feature flag change requires explicit reset consent and a complete target configuration (codes: unsupported_configuration, feature_flag_change_requires_reset, or feature_flag_change_requires_complete_configuration). + + @generated @skip @team:DataDog/experimentation + Scenario: Patch subject type returns "Malformed subject type ID, malformed body, or no updatable field supplied." response + Given new "PatchSubjectType" request + And request contains "subject_type_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"name": "Updated User", "product_analytics_attribute": "@usr.id", "warehouse_column_names": ["user_id"]}, "type": "subject-types"}} + When the request is sent + Then the response status is 400 Malformed subject type ID, malformed body, or no updatable field supplied. + + @generated @skip @team:DataDog/experimentation + Scenario: Patch subject type returns "No subject type with this ID exists for the organization." response + Given new "PatchSubjectType" request + And request contains "subject_type_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"name": "Updated User", "product_analytics_attribute": "@usr.id", "warehouse_column_names": ["user_id"]}, "type": "subject-types"}} + When the request is sent + Then the response status is 404 No subject type with this ID exists for the organization. + + @team:DataDog/experimentation + Scenario: Patch subject type returns "OK" response + Given new "PatchSubjectType" request + And there is a valid "experiment_subject_type" in the system + And request contains "subject_type_id" parameter from "experiment_subject_type.data.id" + And body with value {"data": {"type": "subject-types", "attributes": {"name": "ex-{{ unique_hash }} updated"}}} + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/experimentation + Scenario: Refresh experiment results for org returns "Accepted" response + Given new "RefreshExperimentResultsForOrg" request + When the request is sent + Then the response status is 202 Accepted + + @generated @skip @team:DataDog/experimentation + Scenario: Refresh experiment results for org returns "The full_refresh query parameter is not a valid boolean." response + Given new "RefreshExperimentResultsForOrg" request + When the request is sent + Then the response status is 400 The full_refresh query parameter is not a valid boolean. + + @generated @skip @team:DataDog/experimentation + Scenario: Refresh experiment results returns "A refresh is already queued or running for this experiment." response + Given new "RefreshExperimentResults" request + And request contains "experiment_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 409 A refresh is already queued or running for this experiment. + + @generated @skip @team:DataDog/experimentation + Scenario: Refresh experiment results returns "Accepted" response + Given new "RefreshExperimentResults" request + And request contains "experiment_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 202 Accepted + + @generated @skip @team:DataDog/experimentation + Scenario: Refresh experiment results returns "Malformed experiment ID (not a valid UUID), or full_refresh is not a valid boolean." response + Given new "RefreshExperimentResults" request + And request contains "experiment_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Malformed experiment ID (not a valid UUID), or full_refresh is not a valid boolean. + + @generated @skip @team:DataDog/experimentation + Scenario: Refresh experiment results returns "No experiment with this ID exists for the organization." response + Given new "RefreshExperimentResults" request + And request contains "experiment_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 No experiment with this ID exists for the organization. + + @generated @skip @team:DataDog/experimentation + Scenario: Set default subject type returns "Malformed subject type ID (not a valid UUID)." response + Given new "SetDefaultSubjectType" request + And request contains "subject_type_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Malformed subject type ID (not a valid UUID). + + @generated @skip @team:DataDog/experimentation + Scenario: Set default subject type returns "No subject type with this ID exists for the organization." response + Given new "SetDefaultSubjectType" request + And request contains "subject_type_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 No subject type with this ID exists for the organization. + + @generated @skip @team:DataDog/experimentation + Scenario: Set default subject type returns "The subject type is now the organization's default." response + Given new "SetDefaultSubjectType" request + And request contains "subject_type_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 204 The subject type is now the organization's default. + + @generated @skip @team:DataDog/experimentation + Scenario: Start experiment returns "Malformed experiment ID, a request body carrying attributes this endpoint does not accept, or an experiment managed by a specialized workflow that cannot use this start endpoint." response + Given new "StartExperiment" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And body with value {"data": {"type": "start-experiment-request"}} + When the request is sent + Then the response status is 400 Malformed experiment ID, a request body carrying attributes this endpoint does not accept, or an experiment managed by a specialized workflow that cannot use this start endpoint. + + @generated @skip @team:DataDog/experimentation + Scenario: Start experiment returns "No experiment with this ID exists for the organization." response + Given new "StartExperiment" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And body with value {"data": {"type": "start-experiment-request"}} + When the request is sent + Then the response status is 404 No experiment with this ID exists for the organization. + + @generated @skip @team:DataDog/experimentation + Scenario: Start experiment returns "The experiment cannot be started from its current state, its stored setup is incomplete (missing subject type, primary metric, variants, assignment source, or run window), its linked feature flag environment requires an approval, or that flag has a pending suggestion for a property this would change (environment status, override variant, rollout, or allocations)." response + Given new "StartExperiment" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And body with value {"data": {"type": "start-experiment-request"}} + When the request is sent + Then the response status is 409 The experiment cannot be started from its current state, its stored setup is incomplete (missing subject type, primary metric, variants, assignment source, or run window), its linked feature flag environment requires an approval, or that flag has a pending suggestion for a property this would change (environment status, override variant, rollout, or allocations). + + @team:DataDog/experimentation + Scenario: Start experiment returns "The experiment was started." response + Given new "StartExperiment" request + And there is a valid "environment" in the system + And there is a valid "feature_flag" in the system + And there is a valid "experiment_subject_type" in the system + And there is a valid "experiment_metric" in the system + And there is a valid "configured_experiment" in the system + And there is a valid "experiment_start_analysis_plan" in the system + And request contains "experiment_id" parameter from "configured_experiment.data.id" + When the request is sent + Then the response status is 204 The experiment was started. + + @generated @skip @team:DataDog/experimentation + Scenario: Unarchive exposure SQL model returns "Malformed exposure SQL model ID (not a valid UUID)." response + Given new "UnarchiveExposureSQLModel" request + And request contains "exposure_sql_model_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Malformed exposure SQL model ID (not a valid UUID). + + @generated @skip @team:DataDog/experimentation + Scenario: Unarchive exposure SQL model returns "No exposure SQL model with this ID exists for the organization." response + Given new "UnarchiveExposureSQLModel" request + And request contains "exposure_sql_model_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 No exposure SQL model with this ID exists for the organization. + + @generated @skip @team:DataDog/experimentation + Scenario: Unarchive exposure SQL model returns "The exposure SQL model was unarchived. Unarchiving a model that is not archived succeeds and changes nothing." response + Given new "UnarchiveExposureSQLModel" request + And request contains "exposure_sql_model_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 204 The exposure SQL model was unarchived. Unarchiving a model that is not archived succeeds and changes nothing. + + @generated @skip @team:DataDog/experimentation + Scenario: Update experiment analysis plan attributes returns "Bad Request" response + Given new "UpdateExperimentAnalysisPlanAttributes" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"bayesian_prior": {"degrees_of_freedom": null, "standard_deviation": 0.05}, "confidence_interval_method": "Bayesian", "confidence_level": 0.95, "cuped_lookback_period_days": 30, "experiment_auto_end_days": 0, "experiment_min_duration": 0, "experiment_min_sample_size": 0, "is_cuped_enabled": true, "is_multiple_testing_correction_enabled": false, "preferential_bonferroni_primary_metric_weight": 0.5, "target_duration_days": 14}, "id": "550e8400-e29b-41d4-a716-446655440000", "type": "analysis-plans"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/experimentation + Scenario: Update experiment analysis plan attributes returns "Not Found" response + Given new "UpdateExperimentAnalysisPlanAttributes" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"bayesian_prior": {"degrees_of_freedom": null, "standard_deviation": 0.05}, "confidence_interval_method": "Bayesian", "confidence_level": 0.95, "cuped_lookback_period_days": 30, "experiment_auto_end_days": 0, "experiment_min_duration": 0, "experiment_min_sample_size": 0, "is_cuped_enabled": true, "is_multiple_testing_correction_enabled": false, "preferential_bonferroni_primary_metric_weight": 0.5, "target_duration_days": 14}, "id": "550e8400-e29b-41d4-a716-446655440000", "type": "analysis-plans"}} + When the request is sent + Then the response status is 404 Not Found + + @team:DataDog/experimentation + Scenario: Update experiment analysis plan attributes returns "OK" response + Given new "UpdateExperimentAnalysisPlanAttributes" request + And there is a valid "experiment" in the system + And request contains "experiment_id" parameter from "experiment.data.id" + And body with value {"data": {"type": "analysis-plans", "id": "{{ experiment.data.id }}", "attributes": {"confidence_level": 0.9}}} + When the request is sent + Then the response status is 200 OK + And the response "data.id" has the same value as "experiment.data.id" + And the response "data.attributes.confidence_level" is equal to 0.9 + + @generated @skip @team:DataDog/experimentation + Scenario: Update experiment analysis plan attributes returns "Request body sent with a media type other than application/json or application/vnd.api+json." response + Given new "UpdateExperimentAnalysisPlanAttributes" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"bayesian_prior": {"degrees_of_freedom": null, "standard_deviation": 0.05}, "confidence_interval_method": "Bayesian", "confidence_level": 0.95, "cuped_lookback_period_days": 30, "experiment_auto_end_days": 0, "experiment_min_duration": 0, "experiment_min_sample_size": 0, "is_cuped_enabled": true, "is_multiple_testing_correction_enabled": false, "preferential_bonferroni_primary_metric_weight": 0.5, "target_duration_days": 14}, "id": "550e8400-e29b-41d4-a716-446655440000", "type": "analysis-plans"}} + When the request is sent + Then the response status is 415 Request body sent with a media type other than application/json or application/vnd.api+json. + + @generated @skip @team:DataDog/experimentation + Scenario: Update experiment analysis plan attributes returns "The requested change conflicts with settings locked by the experiment protocol." response + Given new "UpdateExperimentAnalysisPlanAttributes" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"bayesian_prior": {"degrees_of_freedom": null, "standard_deviation": 0.05}, "confidence_interval_method": "Bayesian", "confidence_level": 0.95, "cuped_lookback_period_days": 30, "experiment_auto_end_days": 0, "experiment_min_duration": 0, "experiment_min_sample_size": 0, "is_cuped_enabled": true, "is_multiple_testing_correction_enabled": false, "preferential_bonferroni_primary_metric_weight": 0.5, "target_duration_days": 14}, "id": "550e8400-e29b-41d4-a716-446655440000", "type": "analysis-plans"}} + When the request is sent + Then the response status is 409 The requested change conflicts with settings locked by the experiment protocol. + + @generated @skip @team:DataDog/experimentation + Scenario: Update experiment metric group returns "Bad Request" response + Given new "UpdateExperimentMetricGroup" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And request contains "metric_group_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"metrics": [{"metric_id": "550e8400-e29b-41d4-a716-446655440021"}], "name": "Reliability"}, "id": "550e8400-e29b-41d4-a716-446655440022", "type": "experiment-metric-groups"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/experimentation + Scenario: Update experiment metric group returns "Conflict" response + Given new "UpdateExperimentMetricGroup" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And request contains "metric_group_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"metrics": [{"metric_id": "550e8400-e29b-41d4-a716-446655440021"}], "name": "Reliability"}, "id": "550e8400-e29b-41d4-a716-446655440022", "type": "experiment-metric-groups"}} + When the request is sent + Then the response status is 409 Conflict + + @generated @skip @team:DataDog/experimentation + Scenario: Update experiment metric group returns "Not Found" response + Given new "UpdateExperimentMetricGroup" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And request contains "metric_group_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"metrics": [{"metric_id": "550e8400-e29b-41d4-a716-446655440021"}], "name": "Reliability"}, "id": "550e8400-e29b-41d4-a716-446655440022", "type": "experiment-metric-groups"}} + When the request is sent + Then the response status is 404 Not Found + + @team:DataDog/experimentation + Scenario: Update experiment metric group returns "OK" response + Given new "UpdateExperimentMetricGroup" request + And there is a valid "experiment_metric" in the system + And there is a valid "experiment" in the system + And there is a valid "experiment_metric_group" in the system + And request contains "experiment_id" parameter from "experiment.data.id" + And request contains "metric_group_id" parameter from "experiment_metric_group.data.id" + And body with value {"data": {"type": "experiment-metric-groups", "id": "{{ experiment_metric_group.data.id }}", "attributes": {"name": "ex-{{ unique_hash }} updated"}}} + When the request is sent + Then the response status is 200 OK + And the response "data.attributes.name" is equal to "ex-{{ unique_hash }} updated" + + @generated @skip @team:DataDog/experimentation + Scenario: Update experiment metric group returns "Request body sent with a media type other than application/json or application/vnd.api+json." response + Given new "UpdateExperimentMetricGroup" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And request contains "metric_group_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"metrics": [{"metric_id": "550e8400-e29b-41d4-a716-446655440021"}], "name": "Reliability"}, "id": "550e8400-e29b-41d4-a716-446655440022", "type": "experiment-metric-groups"}} + When the request is sent + Then the response status is 415 Request body sent with a media type other than application/json or application/vnd.api+json. + + @generated @skip @team:DataDog/experimentation + Scenario: Update exposure SQL model returns "Malformed exposure SQL model ID, malformed body, validation failure, or the SQL was rejected by the warehouse validator." response + Given new "UpdateExposureSQLModel" request + And request contains "exposure_sql_model_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"date_partition_column": null, "experiment_column": "experiment_id", "name": "Exposure events", "properties": [{"column_name": "country", "column_type": "STRING", "description": null, "name": "country"}], "sql": "SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures", "subject_types": [{"column_name": "user_id", "subject_type_id": "550e8400-e29b-41d4-a716-446655440010"}], "timestamp_column": "exposed_at", "variant_column": "variant"}, "type": "exposure-sql-models"}} + When the request is sent + Then the response status is 400 Malformed exposure SQL model ID, malformed body, validation failure, or the SQL was rejected by the warehouse validator. + + @generated @skip @team:DataDog/experimentation + Scenario: Update exposure SQL model returns "No exposure SQL model with this ID exists for the organization." response + Given new "UpdateExposureSQLModel" request + And request contains "exposure_sql_model_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"date_partition_column": null, "experiment_column": "experiment_id", "name": "Exposure events", "properties": [{"column_name": "country", "column_type": "STRING", "description": null, "name": "country"}], "sql": "SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures", "subject_types": [{"column_name": "user_id", "subject_type_id": "550e8400-e29b-41d4-a716-446655440010"}], "timestamp_column": "exposed_at", "variant_column": "variant"}, "type": "exposure-sql-models"}} + When the request is sent + Then the response status is 404 No exposure SQL model with this ID exists for the organization. + + @generated @skip @team:DataDog/experimentation + Scenario: Update exposure SQL model returns "OK" response + Given new "UpdateExposureSQLModel" request + And request contains "exposure_sql_model_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"date_partition_column": null, "experiment_column": "experiment_id", "name": "Exposure events", "properties": [{"column_name": "country", "column_type": "STRING", "description": null, "name": "country"}], "sql": "SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures", "subject_types": [{"column_name": "user_id", "subject_type_id": "550e8400-e29b-41d4-a716-446655440010"}], "timestamp_column": "exposed_at", "variant_column": "variant"}, "type": "exposure-sql-models"}} + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/experimentation + Scenario: Update exposure SQL model returns "Request body sent with a media type other than application/json or application/vnd.api+json." response + Given new "UpdateExposureSQLModel" request + And request contains "exposure_sql_model_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"date_partition_column": null, "experiment_column": "experiment_id", "name": "Exposure events", "properties": [{"column_name": "country", "column_type": "STRING", "description": null, "name": "country"}], "sql": "SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures", "subject_types": [{"column_name": "user_id", "subject_type_id": "550e8400-e29b-41d4-a716-446655440010"}], "timestamp_column": "exposed_at", "variant_column": "variant"}, "type": "exposure-sql-models"}} + When the request is sent + Then the response status is 415 Request body sent with a media type other than application/json or application/vnd.api+json. + + @generated @skip @team:DataDog/experimentation + Scenario: Update exposure SQL model returns "The write collided with an existing record for the organization." response + Given new "UpdateExposureSQLModel" request + And request contains "exposure_sql_model_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"date_partition_column": null, "experiment_column": "experiment_id", "name": "Exposure events", "properties": [{"column_name": "country", "column_type": "STRING", "description": null, "name": "country"}], "sql": "SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures", "subject_types": [{"column_name": "user_id", "subject_type_id": "550e8400-e29b-41d4-a716-446655440010"}], "timestamp_column": "exposed_at", "variant_column": "variant"}, "type": "exposure-sql-models"}} + When the request is sent + Then the response status is 409 The write collided with an existing record for the organization. + + @generated @skip @team:DataDog/experimentation + Scenario: Update metric SQL model returns "Malformed ID or body, validation failure, or the SQL was rejected by the warehouse validator." response + Given new "UpdateMetricSQLModel" request + And request contains "metric_sql_model_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"date_partition_column": null, "description": null, "measures": [{"column_name": "revenue", "column_type": "FLOAT", "description": null, "name": null}], "name": "Order facts", "properties": [{"column_name": "item_type", "column_type": "STRING", "description": null, "name": "item_type"}], "sql": "SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders", "subject_types": [{"column_name": "user_id", "subject_type_id": "550e8400-e29b-41d4-a716-446655440010"}], "timestamp_column": "created_at"}, "type": "metric-sql-models"}} + When the request is sent + Then the response status is 400 Malformed ID or body, validation failure, or the SQL was rejected by the warehouse validator. + + @generated @skip @team:DataDog/experimentation + Scenario: Update metric SQL model returns "No metric SQL model with this ID exists for the organization." response + Given new "UpdateMetricSQLModel" request + And request contains "metric_sql_model_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"date_partition_column": null, "description": null, "measures": [{"column_name": "revenue", "column_type": "FLOAT", "description": null, "name": null}], "name": "Order facts", "properties": [{"column_name": "item_type", "column_type": "STRING", "description": null, "name": "item_type"}], "sql": "SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders", "subject_types": [{"column_name": "user_id", "subject_type_id": "550e8400-e29b-41d4-a716-446655440010"}], "timestamp_column": "created_at"}, "type": "metric-sql-models"}} + When the request is sent + Then the response status is 404 No metric SQL model with this ID exists for the organization. + + @generated @skip @team:DataDog/experimentation + Scenario: Update metric SQL model returns "OK" response + Given new "UpdateMetricSQLModel" request + And request contains "metric_sql_model_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"date_partition_column": null, "description": null, "measures": [{"column_name": "revenue", "column_type": "FLOAT", "description": null, "name": null}], "name": "Order facts", "properties": [{"column_name": "item_type", "column_type": "STRING", "description": null, "name": "item_type"}], "sql": "SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders", "subject_types": [{"column_name": "user_id", "subject_type_id": "550e8400-e29b-41d4-a716-446655440010"}], "timestamp_column": "created_at"}, "type": "metric-sql-models"}} + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/experimentation + Scenario: Update metric SQL model returns "The model is certified or managed by metric sync, or the update would remove a measure or property still used by an active metric." response + Given new "UpdateMetricSQLModel" request + And request contains "metric_sql_model_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"date_partition_column": null, "description": null, "measures": [{"column_name": "revenue", "column_type": "FLOAT", "description": null, "name": null}], "name": "Order facts", "properties": [{"column_name": "item_type", "column_type": "STRING", "description": null, "name": "item_type"}], "sql": "SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders", "subject_types": [{"column_name": "user_id", "subject_type_id": "550e8400-e29b-41d4-a716-446655440010"}], "timestamp_column": "created_at"}, "type": "metric-sql-models"}} + When the request is sent + Then the response status is 409 The model is certified or managed by metric sync, or the update would remove a measure or property still used by an active metric. + + @generated @skip @team:DataDog/experimentation + Scenario: Update metric collection returns "Bad Request" response + Given new "UpdateMetricCollection" request + And request contains "metric_collection_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"metrics": []}, "type": "metric-collections"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/experimentation + Scenario: Update metric collection returns "Conflict" response + Given new "UpdateMetricCollection" request + And request contains "metric_collection_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"metrics": []}, "type": "metric-collections"}} + When the request is sent + Then the response status is 409 Conflict + + @generated @skip @team:DataDog/experimentation + Scenario: Update metric collection returns "Not Found" response + Given new "UpdateMetricCollection" request + And request contains "metric_collection_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"metrics": []}, "type": "metric-collections"}} + When the request is sent + Then the response status is 404 Not Found + + @team:DataDog/experimentation + Scenario: Update metric collection returns "OK" response + Given new "UpdateMetricCollection" request + And there is a valid "experiment_metric_collection" in the system + And request contains "metric_collection_id" parameter from "experiment_metric_collection.data.id" + And body with value {"data": {"type": "metric-collections", "attributes": {"name": "ex-{{ unique_hash }} updated"}}} + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/experimentation + Scenario: Update metric collection returns "Request body sent with a media type other than application/json or application/vnd.api+json." response + Given new "UpdateMetricCollection" request + And request contains "metric_collection_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"metrics": []}, "type": "metric-collections"}} + When the request is sent + Then the response status is 415 Request body sent with a media type other than application/json or application/vnd.api+json. + + @generated @skip @team:DataDog/experimentation + Scenario: Update metric returns "Malformed ID or body, or validation failure." response + Given new "UpdateMetric" request + And request contains "metric_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"name": "Checkout conversion"}, "id": "550e8400-e29b-41d4-a716-446655440020", "type": "metrics"}} + When the request is sent + Then the response status is 400 Malformed ID or body, or validation failure. + + @generated @skip @team:DataDog/experimentation + Scenario: Update metric returns "No metric with this ID exists for the organization." response + Given new "UpdateMetric" request + And request contains "metric_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"name": "Checkout conversion"}, "id": "550e8400-e29b-41d4-a716-446655440020", "type": "metrics"}} + When the request is sent + Then the response status is 404 No metric with this ID exists for the organization. + + @team:DataDog/experimentation + Scenario: Update metric returns "OK" response + Given new "UpdateMetric" request + And there is a valid "experiment_metric" in the system + And request contains "metric_id" parameter from "experiment_metric.data.id" + And body with value {"data": {"type": "metrics", "id": "{{ experiment_metric.data.id }}", "attributes": {"name": "ex-{{ unique_hash }} updated"}}} + When the request is sent + Then the response status is 200 OK + And the response "data.attributes.name" is equal to "ex-{{ unique_hash }} updated" + + @generated @skip @team:DataDog/experimentation + Scenario: Update metric returns "Request body sent with a media type other than application/json or application/vnd.api+json." response + Given new "UpdateMetric" request + And request contains "metric_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"name": "Checkout conversion"}, "id": "550e8400-e29b-41d4-a716-446655440020", "type": "metrics"}} + When the request is sent + Then the response status is 415 Request body sent with a media type other than application/json or application/vnd.api+json. + + @generated @skip @team:DataDog/experimentation + Scenario: Update metric returns "The metric is imported, certified, or managed by metric sync, or another metric in this organization already uses one of these values." response + Given new "UpdateMetric" request + And request contains "metric_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"name": "Checkout conversion"}, "id": "550e8400-e29b-41d4-a716-446655440020", "type": "metrics"}} + When the request is sent + Then the response status is 409 The metric is imported, certified, or managed by metric sync, or another metric in this organization already uses one of these values. diff --git a/features/v2/given.json b/features/v2/given.json index 0ec8fd544ff7..5ffa0551acfa 100644 --- a/features/v2/given.json +++ b/features/v2/given.json @@ -439,6 +439,110 @@ "tag": "Error Tracking", "operationId": "SearchIssues" }, + { + "parameters": [ + { + "name": "body", + "value": "{\"data\": {\"type\": \"experiments\", \"attributes\": {\"name\": \"ex-{{ unique_hash }}\", \"subject_type_id\": \"{{ experiment_subject_type.data.id }}\", \"decision_metrics\": [{\"metric_id\": \"{{ experiment_metric.data.id }}\", \"is_primary\": true}], \"assignments_start_date\": null, \"assignments_end_date\": null, \"events_start_date\": null, \"events_end_date\": null, \"datadog_flag_configuration\": {\"feature_flag_id\": \"{{ feature_flag.data.id }}\", \"environment_id\": \"{{ environment.data.id }}\", \"targeting_rules\": [], \"entry_point\": null}, \"variants\": [{\"feature_flag_variant_id\": \"{{ feature_flag.data.attributes.variants[0].id }}\", \"key\": \"{{ feature_flag.data.attributes.variants[0].key }}\", \"name\": \"{{ feature_flag.data.attributes.variants[0].name }}\", \"is_active\": true, \"is_control\": true, \"weight\": 50}, {\"feature_flag_variant_id\": \"{{ feature_flag.data.attributes.variants[1].id }}\", \"key\": \"{{ feature_flag.data.attributes.variants[1].key }}\", \"name\": \"{{ feature_flag.data.attributes.variants[1].name }}\", \"is_active\": true, \"is_control\": false, \"weight\": 50}], \"traffic_exposure\": {\"mode\": \"STATIC\", \"fraction\": 1}}}}" + } + ], + "step": "there is a valid \"configured_experiment\" in the system", + "key": "configured_experiment", + "tag": "Experiments", + "operationId": "CreateExperiment" + }, + { + "parameters": [ + { + "name": "body", + "value": "{\"data\": {\"type\": \"experiments\", \"attributes\": {\"name\": \"ex-{{ unique_hash }}\"}}}" + } + ], + "step": "there is a valid \"experiment\" in the system", + "key": "experiment", + "tag": "Experiments", + "operationId": "CreateExperiment" + }, + { + "parameters": [ + { + "name": "body", + "value": "{\"data\": {\"type\": \"metric-collections\", \"attributes\": {\"name\": \"ex-{{ unique_hash }}\"}}}" + } + ], + "step": "there is a valid \"experiment_metric_collection\" in the system", + "key": "experiment_metric_collection", + "tag": "Experiments", + "operationId": "CreateMetricCollection" + }, + { + "parameters": [ + { + "name": "body", + "value": "{\"data\": {\"type\": \"metric-collections\", \"attributes\": {\"name\": \"ex-{{ unique_hash }}\", \"metrics\": [{\"metric_id\": \"{{ experiment_metric.data.id }}\"}]}}}" + } + ], + "step": "there is a valid \"experiment_metric_collection_with_metric\" in the system", + "key": "experiment_metric_collection_with_metric", + "tag": "Experiments", + "operationId": "CreateMetricCollection" + }, + { + "parameters": [ + { + "name": "body", + "value": "{\"data\": {\"type\": \"metrics\", \"attributes\": {\"name\": \"ex-{{ unique_hash }}\", \"data_source_type\": \"DATADOG\", \"desired_change\": \"METRIC_INCREASES\", \"numerator_aggregation\": {\"operation\": \"sum\", \"datadog_metric_measure\": {\"name\": \"ex-{{ unique_hash }} view duration\", \"source_type\": \"PRODUCT_ANALYTICS\", \"source_subtype\": \"RUM_VIEWS\", \"column_type\": \"double\", \"column_name\": \"@view.time_spent\"}}}}}" + } + ], + "step": "there is a valid \"experiment_metric\" in the system", + "key": "experiment_metric", + "tag": "Experiments", + "operationId": "CreateMetric" + }, + { + "parameters": [ + { + "name": "body", + "value": "{\"data\": {\"type\": \"subject-types\", \"attributes\": {\"name\": \"ex-{{ unique_hash }}\", \"product_analytics_attribute\": \"@account.id\", \"warehouse_column_names\": [\"account_id\"]}}}" + } + ], + "step": "there is a valid \"experiment_subject_type\" in the system", + "key": "experiment_subject_type", + "tag": "Experiments", + "operationId": "CreateSubjectType" + }, + { + "parameters": [ + { + "name": "experiment_id", + "value": "\"{{ configured_experiment.data.id }}\"" + }, + { + "name": "body", + "value": "{\"data\": {\"type\": \"analysis-plans\", \"attributes\": {\"target_duration_days\": 14}}}" + } + ], + "step": "there is a valid \"experiment_start_analysis_plan\" in the system", + "key": "experiment_start_analysis_plan", + "tag": "Experiments", + "operationId": "UpdateExperimentAnalysisPlanAttributes" + }, + { + "parameters": [ + { + "name": "experiment_id", + "value": "\"{{ experiment.data.id }}\"" + }, + { + "name": "body", + "value": "{\"data\": {\"type\": \"experiment-metric-groups\", \"attributes\": {\"name\": \"ex-{{ unique_hash }}\", \"metrics\": [{\"metric_id\": \"{{ experiment_metric.data.id }}\"}]}}}" + } + ], + "step": "there is a valid \"experiment_metric_group\" in the system", + "key": "experiment_metric_group", + "tag": "Experiments", + "operationId": "CreateExperimentMetricGroup" + }, { "parameters": [ { diff --git a/features/v2/undo.json b/features/v2/undo.json index 0f86041e11e6..c65a1e0cbcb2 100644 --- a/features/v2/undo.json +++ b/features/v2/undo.json @@ -2723,6 +2723,362 @@ "type": "safe" } }, + "ListExperiments": { + "tag": "Experiments", + "undo": { + "type": "safe" + } + }, + "CreateExperiment": { + "tag": "Experiments", + "undo": { + "operationId": "DeleteExperiment", + "parameters": [ + { + "name": "experiment_id", + "source": "data.id" + } + ], + "type": "unsafe" + } + }, + "ListExposureSQLModels": { + "tag": "Experiments", + "undo": { + "type": "safe" + } + }, + "CreateExposureSQLModel": { + "tag": "Experiments", + "undo": { + "type": "unsafe" + } + }, + "GetExposureSQLModel": { + "tag": "Experiments", + "undo": { + "type": "safe" + } + }, + "UpdateExposureSQLModel": { + "tag": "Experiments", + "undo": { + "type": "idempotent" + } + }, + "ArchiveExposureSQLModel": { + "tag": "Experiments", + "undo": { + "type": "idempotent" + } + }, + "UnarchiveExposureSQLModel": { + "tag": "Experiments", + "undo": { + "type": "idempotent" + } + }, + "ListMetricCollections": { + "tag": "Experiments", + "undo": { + "type": "safe" + } + }, + "CreateMetricCollection": { + "tag": "Experiments", + "undo": { + "operationId": "DeleteMetricCollection", + "parameters": [ + { + "name": "metric_collection_id", + "source": "data.id" + } + ], + "type": "unsafe" + } + }, + "DeleteMetricCollection": { + "tag": "Experiments", + "undo": { + "type": "idempotent" + } + }, + "GetMetricCollection": { + "tag": "Experiments", + "undo": { + "type": "safe" + } + }, + "UpdateMetricCollection": { + "tag": "Experiments", + "undo": { + "type": "idempotent" + } + }, + "ListMetricSQLModels": { + "tag": "Experiments", + "undo": { + "type": "safe" + } + }, + "CreateMetricSQLModel": { + "tag": "Experiments", + "undo": { + "type": "unsafe" + } + }, + "GetMetricSQLModel": { + "tag": "Experiments", + "undo": { + "type": "safe" + } + }, + "UpdateMetricSQLModel": { + "tag": "Experiments", + "undo": { + "type": "idempotent" + } + }, + "ListMetrics": { + "tag": "Experiments", + "undo": { + "type": "safe" + } + }, + "CreateMetric": { + "tag": "Experiments", + "undo": { + "operationId": "DeleteMetric", + "parameters": [ + { + "name": "metric_id", + "source": "data.id" + } + ], + "type": "unsafe" + } + }, + "DeleteMetric": { + "tag": "Experiments", + "undo": { + "type": "idempotent" + } + }, + "GetMetric": { + "tag": "Experiments", + "undo": { + "type": "safe" + } + }, + "UpdateMetric": { + "tag": "Experiments", + "undo": { + "type": "idempotent" + } + }, + "ListExperimentProtocols": { + "tag": "Experiments", + "undo": { + "type": "safe" + } + }, + "GetExperimentProtocol": { + "tag": "Experiments", + "undo": { + "type": "safe" + } + }, + "RefreshExperimentResultsForOrg": { + "tag": "Experiments", + "undo": { + "type": "unsafe" + } + }, + "ListSubjectTypes": { + "tag": "Experiments", + "undo": { + "type": "safe" + } + }, + "CreateSubjectType": { + "tag": "Experiments", + "undo": { + "operationId": "DeleteSubjectType", + "parameters": [ + { + "name": "subject_type_id", + "source": "data.id" + } + ], + "type": "unsafe" + } + }, + "DeleteSubjectType": { + "tag": "Experiments", + "undo": { + "type": "idempotent" + } + }, + "GetSubjectType": { + "tag": "Experiments", + "undo": { + "type": "safe" + } + }, + "PatchSubjectType": { + "tag": "Experiments", + "undo": { + "type": "idempotent" + } + }, + "SetDefaultSubjectType": { + "tag": "Experiments", + "undo": { + "type": "idempotent" + } + }, + "DeleteExperiment": { + "tag": "Experiments", + "undo": { + "type": "idempotent" + } + }, + "GetExperiment": { + "tag": "Experiments", + "undo": { + "type": "safe" + } + }, + "PatchExperiment": { + "tag": "Experiments", + "undo": { + "type": "idempotent" + } + }, + "GetExperimentAnalysisPlan": { + "tag": "Experiments", + "undo": { + "type": "safe" + } + }, + "UpdateExperimentAnalysisPlanAttributes": { + "tag": "Experiments", + "undo": { + "type": "idempotent" + } + }, + "CancelExperiment": { + "tag": "Experiments", + "undo": { + "operationId": "DeleteExperiment", + "parameters": [ + { + "name": "experiment_id", + "origin": "path", + "source": "experiment_id" + } + ], + "type": "unsafe" + } + }, + "ConcludeExperiment": { + "tag": "Experiments", + "undo": { + "operationId": "DeleteExperiment", + "parameters": [ + { + "name": "experiment_id", + "origin": "path", + "source": "experiment_id" + } + ], + "type": "unsafe" + } + }, + "GetExperimentDiagnostics": { + "tag": "Experiments", + "undo": { + "type": "safe" + } + }, + "ListExperimentMetricGroups": { + "tag": "Experiments", + "undo": { + "type": "safe" + } + }, + "CreateExperimentMetricGroup": { + "tag": "Experiments", + "undo": { + "operationId": "DeleteExperimentMetricGroup", + "parameters": [ + { + "name": "experiment_id", + "origin": "path", + "source": "experiment_id" + }, + { + "name": "metric_group_id", + "source": "data.id" + } + ], + "type": "unsafe" + } + }, + "CreateExperimentMetricGroupFromCollection": { + "tag": "Experiments", + "undo": { + "operationId": "DeleteExperimentMetricGroup", + "parameters": [ + { + "name": "experiment_id", + "origin": "path", + "source": "experiment_id" + }, + { + "name": "metric_group_id", + "source": "data.id" + } + ], + "type": "unsafe" + } + }, + "DeleteExperimentMetricGroup": { + "tag": "Experiments", + "undo": { + "type": "idempotent" + } + }, + "UpdateExperimentMetricGroup": { + "tag": "Experiments", + "undo": { + "type": "idempotent" + } + }, + "GetExperimentResults": { + "tag": "Experiments", + "undo": { + "type": "safe" + } + }, + "RefreshExperimentResults": { + "tag": "Experiments", + "undo": { + "type": "unsafe" + } + }, + "StartExperiment": { + "tag": "Experiments", + "undo": { + "type": "idempotent" + } + }, + "GetExperimentTrafficSummary": { + "tag": "Experiments", + "undo": { + "type": "safe" + } + }, "ListFeatureFlags": { "tag": "Feature Flags", "undo": { diff --git a/packages/datadog-api-client-v2/apis/ExperimentsApi.ts b/packages/datadog-api-client-v2/apis/ExperimentsApi.ts new file mode 100644 index 000000000000..11e4eb0a1b79 --- /dev/null +++ b/packages/datadog-api-client-v2/apis/ExperimentsApi.ts @@ -0,0 +1,8607 @@ +import { + BaseAPIRequestFactory, + RequiredError, +} from "../../datadog-api-client-common/baseapi"; +import { + Configuration, + applySecurityAuthentication, +} from "../../datadog-api-client-common/configuration"; +import { + RequestContext, + HttpMethod, + ResponseContext, +} from "../../datadog-api-client-common/http/http"; + +import { logger } from "../../../logger"; +import { ObjectSerializer } from "../models/ObjectSerializer"; +import { ApiException } from "../../datadog-api-client-common/exception"; + +import { APIErrorResponse } from "../models/APIErrorResponse"; +import { ExperimentsAnalysisPlanV2DTO } from "../models/ExperimentsAnalysisPlanV2DTO"; +import { ExperimentsAnalysisPlanV2MutationResponse } from "../models/ExperimentsAnalysisPlanV2MutationResponse"; +import { ExperimentsAnalysisPlanWriteV2Request } from "../models/ExperimentsAnalysisPlanWriteV2Request"; +import { ExperimentsCancelExperimentV2Request } from "../models/ExperimentsCancelExperimentV2Request"; +import { ExperimentsConcludeExperimentV2Request } from "../models/ExperimentsConcludeExperimentV2Request"; +import { ExperimentsCreateExperimentMetricGroupV2Request } from "../models/ExperimentsCreateExperimentMetricGroupV2Request"; +import { ExperimentsCreateExperimentV2Request } from "../models/ExperimentsCreateExperimentV2Request"; +import { ExperimentsCreateExposureSQLModelV2Request } from "../models/ExperimentsCreateExposureSQLModelV2Request"; +import { ExperimentsCreateMetricCollectionV2Request } from "../models/ExperimentsCreateMetricCollectionV2Request"; +import { ExperimentsCreateMetricSQLModelV2Request } from "../models/ExperimentsCreateMetricSQLModelV2Request"; +import { ExperimentsCreateMetricV2Request } from "../models/ExperimentsCreateMetricV2Request"; +import { ExperimentsCreateSubjectTypeV2Request } from "../models/ExperimentsCreateSubjectTypeV2Request"; +import { ExperimentsExperimentDiagnosticsV2DTO } from "../models/ExperimentsExperimentDiagnosticsV2DTO"; +import { ExperimentsExperimentMetricGroupMutationV2 } from "../models/ExperimentsExperimentMetricGroupMutationV2"; +import { ExperimentsExperimentMetricGroupV2DTOArray } from "../models/ExperimentsExperimentMetricGroupV2DTOArray"; +import { ExperimentsExperimentV2DTO } from "../models/ExperimentsExperimentV2DTO"; +import { ExperimentsExperimentV2ListDTOArray } from "../models/ExperimentsExperimentV2ListDTOArray"; +import { ExperimentsExposureSQLModelV2DTO } from "../models/ExperimentsExposureSQLModelV2DTO"; +import { ExperimentsExposureSQLModelV2DTOArray } from "../models/ExperimentsExposureSQLModelV2DTOArray"; +import { ExperimentsMetricCollectionV2DTO } from "../models/ExperimentsMetricCollectionV2DTO"; +import { ExperimentsMetricCollectionV2DTOArray } from "../models/ExperimentsMetricCollectionV2DTOArray"; +import { ExperimentsMetricSQLModelV2DTO } from "../models/ExperimentsMetricSQLModelV2DTO"; +import { ExperimentsMetricSQLModelV2DTOArray } from "../models/ExperimentsMetricSQLModelV2DTOArray"; +import { ExperimentsMetricV2DTO } from "../models/ExperimentsMetricV2DTO"; +import { ExperimentsMetricV2DTOArray } from "../models/ExperimentsMetricV2DTOArray"; +import { ExperimentsPatchExperimentMetricGroupV2Request } from "../models/ExperimentsPatchExperimentMetricGroupV2Request"; +import { ExperimentsPatchExperimentV2Request } from "../models/ExperimentsPatchExperimentV2Request"; +import { ExperimentsPatchExperimentV2Response } from "../models/ExperimentsPatchExperimentV2Response"; +import { ExperimentsPatchMetricCollectionV2Request } from "../models/ExperimentsPatchMetricCollectionV2Request"; +import { ExperimentsPatchSubjectTypeV2Request } from "../models/ExperimentsPatchSubjectTypeV2Request"; +import { ExperimentsPublicProtocolListResponseArray } from "../models/ExperimentsPublicProtocolListResponseArray"; +import { ExperimentsPublicProtocolResponse } from "../models/ExperimentsPublicProtocolResponse"; +import { ExperimentsPublicProtocolResponseDataAttributesStatus } from "../models/ExperimentsPublicProtocolResponseDataAttributesStatus"; +import { ExperimentsRefreshExperimentResultsV2DTO } from "../models/ExperimentsRefreshExperimentResultsV2DTO"; +import { ExperimentsRefreshExperimentResultsV2DTOArray } from "../models/ExperimentsRefreshExperimentResultsV2DTOArray"; +import { ExperimentsStartExperimentV2Request } from "../models/ExperimentsStartExperimentV2Request"; +import { ExperimentsSubjectTypeV2DTO } from "../models/ExperimentsSubjectTypeV2DTO"; +import { ExperimentsSubjectTypeV2DTOArray } from "../models/ExperimentsSubjectTypeV2DTOArray"; +import { ExperimentsTrafficSummaryV2DTO } from "../models/ExperimentsTrafficSummaryV2DTO"; +import { ExperimentsUpdateExposureSQLModelV2Response } from "../models/ExperimentsUpdateExposureSQLModelV2Response"; +import { ExperimentsUpdateMetricSQLModelV2Response } from "../models/ExperimentsUpdateMetricSQLModelV2Response"; +import { ExperimentsUpdateMetricV2Request } from "../models/ExperimentsUpdateMetricV2Request"; +import { ExperimentsVariantResultsV2DTOArray } from "../models/ExperimentsVariantResultsV2DTOArray"; +import { JSONAPIErrorResponse } from "../models/JSONAPIErrorResponse"; + +export class ExperimentsApiRequestFactory extends BaseAPIRequestFactory { + public async archiveExposureSQLModel( + exposureSqlModelId: string, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'exposureSqlModelId' is not null or undefined + if (exposureSqlModelId === null || exposureSqlModelId === undefined) { + throw new RequiredError("exposureSqlModelId", "archiveExposureSQLModel"); + } + + // Path Params + const localVarPath = + "/api/v2/experiments/exposure-sql-models/{exposure_sql_model_id}/archive".replace( + "{exposure_sql_model_id}", + encodeURIComponent(String(exposureSqlModelId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.archiveExposureSQLModel") + .makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "*/*"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async cancelExperiment( + experimentId: string, + body: ExperimentsCancelExperimentV2Request, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'experimentId' is not null or undefined + if (experimentId === null || experimentId === undefined) { + throw new RequiredError("experimentId", "cancelExperiment"); + } + + // verify required parameter 'body' is not null or undefined + if (body === null || body === undefined) { + throw new RequiredError("body", "cancelExperiment"); + } + + // Path Params + const localVarPath = "/api/v2/experiments/{experiment_id}/cancel".replace( + "{experiment_id}", + encodeURIComponent(String(experimentId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.cancelExperiment") + .makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "*/*"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json", + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize( + body, + "ExperimentsCancelExperimentV2Request", + "" + ), + contentType + ); + requestContext.setBody(serializedBody); + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async concludeExperiment( + experimentId: string, + body: ExperimentsConcludeExperimentV2Request, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'experimentId' is not null or undefined + if (experimentId === null || experimentId === undefined) { + throw new RequiredError("experimentId", "concludeExperiment"); + } + + // verify required parameter 'body' is not null or undefined + if (body === null || body === undefined) { + throw new RequiredError("body", "concludeExperiment"); + } + + // Path Params + const localVarPath = "/api/v2/experiments/{experiment_id}/conclude".replace( + "{experiment_id}", + encodeURIComponent(String(experimentId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.concludeExperiment") + .makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "*/*"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json", + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize( + body, + "ExperimentsConcludeExperimentV2Request", + "" + ), + contentType + ); + requestContext.setBody(serializedBody); + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async createExperiment( + body: ExperimentsCreateExperimentV2Request, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'body' is not null or undefined + if (body === null || body === undefined) { + throw new RequiredError("body", "createExperiment"); + } + + // Path Params + const localVarPath = "/api/v2/experiments"; + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.createExperiment") + .makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json", + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize( + body, + "ExperimentsCreateExperimentV2Request", + "" + ), + contentType + ); + requestContext.setBody(serializedBody); + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async createExperimentMetricGroup( + experimentId: string, + body: ExperimentsCreateExperimentMetricGroupV2Request, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'experimentId' is not null or undefined + if (experimentId === null || experimentId === undefined) { + throw new RequiredError("experimentId", "createExperimentMetricGroup"); + } + + // verify required parameter 'body' is not null or undefined + if (body === null || body === undefined) { + throw new RequiredError("body", "createExperimentMetricGroup"); + } + + // Path Params + const localVarPath = + "/api/v2/experiments/{experiment_id}/metric-groups".replace( + "{experiment_id}", + encodeURIComponent(String(experimentId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.createExperimentMetricGroup") + .makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json", + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize( + body, + "ExperimentsCreateExperimentMetricGroupV2Request", + "" + ), + contentType + ); + requestContext.setBody(serializedBody); + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async createExperimentMetricGroupFromCollection( + experimentId: string, + metricCollectionId: string, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'experimentId' is not null or undefined + if (experimentId === null || experimentId === undefined) { + throw new RequiredError( + "experimentId", + "createExperimentMetricGroupFromCollection" + ); + } + + // verify required parameter 'metricCollectionId' is not null or undefined + if (metricCollectionId === null || metricCollectionId === undefined) { + throw new RequiredError( + "metricCollectionId", + "createExperimentMetricGroupFromCollection" + ); + } + + // Path Params + const localVarPath = + "/api/v2/experiments/{experiment_id}/metric-groups/from-collection/{metric_collection_id}" + .replace("{experiment_id}", encodeURIComponent(String(experimentId))) + .replace( + "{metric_collection_id}", + encodeURIComponent(String(metricCollectionId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.createExperimentMetricGroupFromCollection") + .makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async createExposureSQLModel( + body: ExperimentsCreateExposureSQLModelV2Request, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'body' is not null or undefined + if (body === null || body === undefined) { + throw new RequiredError("body", "createExposureSQLModel"); + } + + // Path Params + const localVarPath = "/api/v2/experiments/exposure-sql-models"; + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.createExposureSQLModel") + .makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json", + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize( + body, + "ExperimentsCreateExposureSQLModelV2Request", + "" + ), + contentType + ); + requestContext.setBody(serializedBody); + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async createMetric( + body: ExperimentsCreateMetricV2Request, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'body' is not null or undefined + if (body === null || body === undefined) { + throw new RequiredError("body", "createMetric"); + } + + // Path Params + const localVarPath = "/api/v2/experiments/metrics"; + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.createMetric") + .makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json", + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(body, "ExperimentsCreateMetricV2Request", ""), + contentType + ); + requestContext.setBody(serializedBody); + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async createMetricCollection( + body: ExperimentsCreateMetricCollectionV2Request, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'body' is not null or undefined + if (body === null || body === undefined) { + throw new RequiredError("body", "createMetricCollection"); + } + + // Path Params + const localVarPath = "/api/v2/experiments/metric-collections"; + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.createMetricCollection") + .makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json", + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize( + body, + "ExperimentsCreateMetricCollectionV2Request", + "" + ), + contentType + ); + requestContext.setBody(serializedBody); + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async createMetricSQLModel( + body: ExperimentsCreateMetricSQLModelV2Request, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'body' is not null or undefined + if (body === null || body === undefined) { + throw new RequiredError("body", "createMetricSQLModel"); + } + + // Path Params + const localVarPath = "/api/v2/experiments/metric-sql-models"; + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.createMetricSQLModel") + .makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json", + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize( + body, + "ExperimentsCreateMetricSQLModelV2Request", + "" + ), + contentType + ); + requestContext.setBody(serializedBody); + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async createSubjectType( + body: ExperimentsCreateSubjectTypeV2Request, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'body' is not null or undefined + if (body === null || body === undefined) { + throw new RequiredError("body", "createSubjectType"); + } + + // Path Params + const localVarPath = "/api/v2/experiments/subject-types"; + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.createSubjectType") + .makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json", + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize( + body, + "ExperimentsCreateSubjectTypeV2Request", + "" + ), + contentType + ); + requestContext.setBody(serializedBody); + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async deleteExperiment( + experimentId: string, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'experimentId' is not null or undefined + if (experimentId === null || experimentId === undefined) { + throw new RequiredError("experimentId", "deleteExperiment"); + } + + // Path Params + const localVarPath = "/api/v2/experiments/{experiment_id}".replace( + "{experiment_id}", + encodeURIComponent(String(experimentId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.deleteExperiment") + .makeRequestContext(localVarPath, HttpMethod.DELETE); + requestContext.setHeaderParam("Accept", "*/*"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async deleteExperimentMetricGroup( + experimentId: string, + metricGroupId: string, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'experimentId' is not null or undefined + if (experimentId === null || experimentId === undefined) { + throw new RequiredError("experimentId", "deleteExperimentMetricGroup"); + } + + // verify required parameter 'metricGroupId' is not null or undefined + if (metricGroupId === null || metricGroupId === undefined) { + throw new RequiredError("metricGroupId", "deleteExperimentMetricGroup"); + } + + // Path Params + const localVarPath = + "/api/v2/experiments/{experiment_id}/metric-groups/{metric_group_id}" + .replace("{experiment_id}", encodeURIComponent(String(experimentId))) + .replace( + "{metric_group_id}", + encodeURIComponent(String(metricGroupId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.deleteExperimentMetricGroup") + .makeRequestContext(localVarPath, HttpMethod.DELETE); + requestContext.setHeaderParam("Accept", "*/*"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async deleteMetric( + metricId: string, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'metricId' is not null or undefined + if (metricId === null || metricId === undefined) { + throw new RequiredError("metricId", "deleteMetric"); + } + + // Path Params + const localVarPath = "/api/v2/experiments/metrics/{metric_id}".replace( + "{metric_id}", + encodeURIComponent(String(metricId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.deleteMetric") + .makeRequestContext(localVarPath, HttpMethod.DELETE); + requestContext.setHeaderParam("Accept", "*/*"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async deleteMetricCollection( + metricCollectionId: string, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'metricCollectionId' is not null or undefined + if (metricCollectionId === null || metricCollectionId === undefined) { + throw new RequiredError("metricCollectionId", "deleteMetricCollection"); + } + + // Path Params + const localVarPath = + "/api/v2/experiments/metric-collections/{metric_collection_id}".replace( + "{metric_collection_id}", + encodeURIComponent(String(metricCollectionId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.deleteMetricCollection") + .makeRequestContext(localVarPath, HttpMethod.DELETE); + requestContext.setHeaderParam("Accept", "*/*"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async deleteSubjectType( + subjectTypeId: string, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'subjectTypeId' is not null or undefined + if (subjectTypeId === null || subjectTypeId === undefined) { + throw new RequiredError("subjectTypeId", "deleteSubjectType"); + } + + // Path Params + const localVarPath = + "/api/v2/experiments/subject-types/{subject_type_id}".replace( + "{subject_type_id}", + encodeURIComponent(String(subjectTypeId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.deleteSubjectType") + .makeRequestContext(localVarPath, HttpMethod.DELETE); + requestContext.setHeaderParam("Accept", "*/*"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async getExperiment( + experimentId: string, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'experimentId' is not null or undefined + if (experimentId === null || experimentId === undefined) { + throw new RequiredError("experimentId", "getExperiment"); + } + + // Path Params + const localVarPath = "/api/v2/experiments/{experiment_id}".replace( + "{experiment_id}", + encodeURIComponent(String(experimentId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.getExperiment") + .makeRequestContext(localVarPath, HttpMethod.GET); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async getExperimentAnalysisPlan( + experimentId: string, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'experimentId' is not null or undefined + if (experimentId === null || experimentId === undefined) { + throw new RequiredError("experimentId", "getExperimentAnalysisPlan"); + } + + // Path Params + const localVarPath = + "/api/v2/experiments/{experiment_id}/analysis-plan".replace( + "{experiment_id}", + encodeURIComponent(String(experimentId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.getExperimentAnalysisPlan") + .makeRequestContext(localVarPath, HttpMethod.GET); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async getExperimentDiagnostics( + experimentId: string, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'experimentId' is not null or undefined + if (experimentId === null || experimentId === undefined) { + throw new RequiredError("experimentId", "getExperimentDiagnostics"); + } + + // Path Params + const localVarPath = + "/api/v2/experiments/{experiment_id}/diagnostics".replace( + "{experiment_id}", + encodeURIComponent(String(experimentId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.getExperimentDiagnostics") + .makeRequestContext(localVarPath, HttpMethod.GET); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async getExperimentProtocol( + protocolId: string, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'protocolId' is not null or undefined + if (protocolId === null || protocolId === undefined) { + throw new RequiredError("protocolId", "getExperimentProtocol"); + } + + // Path Params + const localVarPath = "/api/v2/experiments/protocols/{protocol_id}".replace( + "{protocol_id}", + encodeURIComponent(String(protocolId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.getExperimentProtocol") + .makeRequestContext(localVarPath, HttpMethod.GET); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async getExperimentResults( + experimentId: string, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'experimentId' is not null or undefined + if (experimentId === null || experimentId === undefined) { + throw new RequiredError("experimentId", "getExperimentResults"); + } + + // Path Params + const localVarPath = "/api/v2/experiments/{experiment_id}/results".replace( + "{experiment_id}", + encodeURIComponent(String(experimentId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.getExperimentResults") + .makeRequestContext(localVarPath, HttpMethod.GET); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async getExperimentTrafficSummary( + experimentId: string, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'experimentId' is not null or undefined + if (experimentId === null || experimentId === undefined) { + throw new RequiredError("experimentId", "getExperimentTrafficSummary"); + } + + // Path Params + const localVarPath = + "/api/v2/experiments/{experiment_id}/traffic-summary".replace( + "{experiment_id}", + encodeURIComponent(String(experimentId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.getExperimentTrafficSummary") + .makeRequestContext(localVarPath, HttpMethod.GET); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async getExposureSQLModel( + exposureSqlModelId: string, + include?: Array, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'exposureSqlModelId' is not null or undefined + if (exposureSqlModelId === null || exposureSqlModelId === undefined) { + throw new RequiredError("exposureSqlModelId", "getExposureSQLModel"); + } + + // Path Params + const localVarPath = + "/api/v2/experiments/exposure-sql-models/{exposure_sql_model_id}".replace( + "{exposure_sql_model_id}", + encodeURIComponent(String(exposureSqlModelId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.getExposureSQLModel") + .makeRequestContext(localVarPath, HttpMethod.GET); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Query Params + if (include !== undefined) { + requestContext.setQueryParam( + "include", + ObjectSerializer.serialize(include, "Array", ""), + "multi" + ); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async getMetric( + metricId: string, + include?: Array, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'metricId' is not null or undefined + if (metricId === null || metricId === undefined) { + throw new RequiredError("metricId", "getMetric"); + } + + // Path Params + const localVarPath = "/api/v2/experiments/metrics/{metric_id}".replace( + "{metric_id}", + encodeURIComponent(String(metricId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.getMetric") + .makeRequestContext(localVarPath, HttpMethod.GET); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Query Params + if (include !== undefined) { + requestContext.setQueryParam( + "include", + ObjectSerializer.serialize(include, "Array", ""), + "multi" + ); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async getMetricCollection( + metricCollectionId: string, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'metricCollectionId' is not null or undefined + if (metricCollectionId === null || metricCollectionId === undefined) { + throw new RequiredError("metricCollectionId", "getMetricCollection"); + } + + // Path Params + const localVarPath = + "/api/v2/experiments/metric-collections/{metric_collection_id}".replace( + "{metric_collection_id}", + encodeURIComponent(String(metricCollectionId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.getMetricCollection") + .makeRequestContext(localVarPath, HttpMethod.GET); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async getMetricSQLModel( + metricSqlModelId: string, + include?: Array, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'metricSqlModelId' is not null or undefined + if (metricSqlModelId === null || metricSqlModelId === undefined) { + throw new RequiredError("metricSqlModelId", "getMetricSQLModel"); + } + + // Path Params + const localVarPath = + "/api/v2/experiments/metric-sql-models/{metric_sql_model_id}".replace( + "{metric_sql_model_id}", + encodeURIComponent(String(metricSqlModelId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.getMetricSQLModel") + .makeRequestContext(localVarPath, HttpMethod.GET); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Query Params + if (include !== undefined) { + requestContext.setQueryParam( + "include", + ObjectSerializer.serialize(include, "Array", ""), + "multi" + ); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async getSubjectType( + subjectTypeId: string, + include?: string, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'subjectTypeId' is not null or undefined + if (subjectTypeId === null || subjectTypeId === undefined) { + throw new RequiredError("subjectTypeId", "getSubjectType"); + } + + // Path Params + const localVarPath = + "/api/v2/experiments/subject-types/{subject_type_id}".replace( + "{subject_type_id}", + encodeURIComponent(String(subjectTypeId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.getSubjectType") + .makeRequestContext(localVarPath, HttpMethod.GET); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Query Params + if (include !== undefined) { + requestContext.setQueryParam( + "include", + ObjectSerializer.serialize(include, "string", ""), + "" + ); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async listExperimentMetricGroups( + experimentId: string, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'experimentId' is not null or undefined + if (experimentId === null || experimentId === undefined) { + throw new RequiredError("experimentId", "listExperimentMetricGroups"); + } + + // Path Params + const localVarPath = + "/api/v2/experiments/{experiment_id}/metric-groups".replace( + "{experiment_id}", + encodeURIComponent(String(experimentId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.listExperimentMetricGroups") + .makeRequestContext(localVarPath, HttpMethod.GET); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async listExperimentProtocols( + filterStatus?: Array, + filterPrimaryMetricId?: string, + filterQuery?: string, + filterSubjectTypeId?: string, + pageLimit?: number, + pageOffset?: number, + sort?: string, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // Path Params + const localVarPath = "/api/v2/experiments/protocols"; + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.listExperimentProtocols") + .makeRequestContext(localVarPath, HttpMethod.GET); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Query Params + if (filterStatus !== undefined) { + requestContext.setQueryParam( + "filter[status]", + ObjectSerializer.serialize( + filterStatus, + "Array", + "" + ), + "multi" + ); + } + if (filterPrimaryMetricId !== undefined) { + requestContext.setQueryParam( + "filter[primary_metric_id]", + ObjectSerializer.serialize(filterPrimaryMetricId, "string", "uuid"), + "" + ); + } + if (filterQuery !== undefined) { + requestContext.setQueryParam( + "filter[query]", + ObjectSerializer.serialize(filterQuery, "string", ""), + "" + ); + } + if (filterSubjectTypeId !== undefined) { + requestContext.setQueryParam( + "filter[subject_type_id]", + ObjectSerializer.serialize(filterSubjectTypeId, "string", "uuid"), + "" + ); + } + if (pageLimit !== undefined) { + requestContext.setQueryParam( + "page[limit]", + ObjectSerializer.serialize(pageLimit, "number", "int64"), + "" + ); + } + if (pageOffset !== undefined) { + requestContext.setQueryParam( + "page[offset]", + ObjectSerializer.serialize(pageOffset, "number", "int64"), + "" + ); + } + if (sort !== undefined) { + requestContext.setQueryParam( + "sort", + ObjectSerializer.serialize(sort, "string", ""), + "" + ); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async listExperiments( + concludedSince?: Date, + createdSince?: Date, + pageLimit?: number, + pageOffset?: number, + protocolId?: Array, + resultsUpdatedBefore?: Date, + resultsUpdatedSince?: Date, + search?: string, + sort?: string, + status?: Array, + tags?: Array, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // Path Params + const localVarPath = "/api/v2/experiments"; + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.listExperiments") + .makeRequestContext(localVarPath, HttpMethod.GET); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Query Params + if (concludedSince !== undefined) { + requestContext.setQueryParam( + "concluded_since", + ObjectSerializer.serialize(concludedSince, "Date", "date-time"), + "" + ); + } + if (createdSince !== undefined) { + requestContext.setQueryParam( + "created_since", + ObjectSerializer.serialize(createdSince, "Date", "date-time"), + "" + ); + } + if (pageLimit !== undefined) { + requestContext.setQueryParam( + "page[limit]", + ObjectSerializer.serialize(pageLimit, "number", "int64"), + "" + ); + } + if (pageOffset !== undefined) { + requestContext.setQueryParam( + "page[offset]", + ObjectSerializer.serialize(pageOffset, "number", "int64"), + "" + ); + } + if (protocolId !== undefined) { + requestContext.setQueryParam( + "protocol_id", + ObjectSerializer.serialize(protocolId, "Array", "uuid"), + "multi" + ); + } + if (resultsUpdatedBefore !== undefined) { + requestContext.setQueryParam( + "results_updated_before", + ObjectSerializer.serialize(resultsUpdatedBefore, "Date", "date-time"), + "" + ); + } + if (resultsUpdatedSince !== undefined) { + requestContext.setQueryParam( + "results_updated_since", + ObjectSerializer.serialize(resultsUpdatedSince, "Date", "date-time"), + "" + ); + } + if (search !== undefined) { + requestContext.setQueryParam( + "search", + ObjectSerializer.serialize(search, "string", ""), + "" + ); + } + if (sort !== undefined) { + requestContext.setQueryParam( + "sort", + ObjectSerializer.serialize(sort, "string", ""), + "" + ); + } + if (status !== undefined) { + requestContext.setQueryParam( + "status", + ObjectSerializer.serialize(status, "Array", ""), + "multi" + ); + } + if (tags !== undefined) { + requestContext.setQueryParam( + "tags", + ObjectSerializer.serialize(tags, "Array", ""), + "multi" + ); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async listExposureSQLModels( + include?: Array, + includeArchived?: boolean, + pageLimit?: number, + pageOffset?: number, + search?: string, + sort?: string, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // Path Params + const localVarPath = "/api/v2/experiments/exposure-sql-models"; + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.listExposureSQLModels") + .makeRequestContext(localVarPath, HttpMethod.GET); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Query Params + if (include !== undefined) { + requestContext.setQueryParam( + "include", + ObjectSerializer.serialize(include, "Array", ""), + "multi" + ); + } + if (includeArchived !== undefined) { + requestContext.setQueryParam( + "include_archived", + ObjectSerializer.serialize(includeArchived, "boolean", ""), + "" + ); + } + if (pageLimit !== undefined) { + requestContext.setQueryParam( + "page[limit]", + ObjectSerializer.serialize(pageLimit, "number", "int64"), + "" + ); + } + if (pageOffset !== undefined) { + requestContext.setQueryParam( + "page[offset]", + ObjectSerializer.serialize(pageOffset, "number", "int64"), + "" + ); + } + if (search !== undefined) { + requestContext.setQueryParam( + "search", + ObjectSerializer.serialize(search, "string", ""), + "" + ); + } + if (sort !== undefined) { + requestContext.setQueryParam( + "sort", + ObjectSerializer.serialize(sort, "string", ""), + "" + ); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async listMetricCollections( + include?: Array, + pageLimit?: number, + pageOffset?: number, + search?: string, + sort?: string, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // Path Params + const localVarPath = "/api/v2/experiments/metric-collections"; + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.listMetricCollections") + .makeRequestContext(localVarPath, HttpMethod.GET); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Query Params + if (include !== undefined) { + requestContext.setQueryParam( + "include", + ObjectSerializer.serialize(include, "Array", ""), + "multi" + ); + } + if (pageLimit !== undefined) { + requestContext.setQueryParam( + "page[limit]", + ObjectSerializer.serialize(pageLimit, "number", "int64"), + "" + ); + } + if (pageOffset !== undefined) { + requestContext.setQueryParam( + "page[offset]", + ObjectSerializer.serialize(pageOffset, "number", "int64"), + "" + ); + } + if (search !== undefined) { + requestContext.setQueryParam( + "search", + ObjectSerializer.serialize(search, "string", ""), + "" + ); + } + if (sort !== undefined) { + requestContext.setQueryParam( + "sort", + ObjectSerializer.serialize(sort, "string", ""), + "" + ); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async listMetrics( + include?: Array, + pageLimit?: number, + pageOffset?: number, + search?: string, + sort?: string, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // Path Params + const localVarPath = "/api/v2/experiments/metrics"; + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.listMetrics") + .makeRequestContext(localVarPath, HttpMethod.GET); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Query Params + if (include !== undefined) { + requestContext.setQueryParam( + "include", + ObjectSerializer.serialize(include, "Array", ""), + "multi" + ); + } + if (pageLimit !== undefined) { + requestContext.setQueryParam( + "page[limit]", + ObjectSerializer.serialize(pageLimit, "number", "int64"), + "" + ); + } + if (pageOffset !== undefined) { + requestContext.setQueryParam( + "page[offset]", + ObjectSerializer.serialize(pageOffset, "number", "int64"), + "" + ); + } + if (search !== undefined) { + requestContext.setQueryParam( + "search", + ObjectSerializer.serialize(search, "string", ""), + "" + ); + } + if (sort !== undefined) { + requestContext.setQueryParam( + "sort", + ObjectSerializer.serialize(sort, "string", ""), + "" + ); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async listMetricSQLModels( + include?: Array, + pageLimit?: number, + pageOffset?: number, + sort?: string, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // Path Params + const localVarPath = "/api/v2/experiments/metric-sql-models"; + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.listMetricSQLModels") + .makeRequestContext(localVarPath, HttpMethod.GET); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Query Params + if (include !== undefined) { + requestContext.setQueryParam( + "include", + ObjectSerializer.serialize(include, "Array", ""), + "multi" + ); + } + if (pageLimit !== undefined) { + requestContext.setQueryParam( + "page[limit]", + ObjectSerializer.serialize(pageLimit, "number", "int64"), + "" + ); + } + if (pageOffset !== undefined) { + requestContext.setQueryParam( + "page[offset]", + ObjectSerializer.serialize(pageOffset, "number", "int64"), + "" + ); + } + if (sort !== undefined) { + requestContext.setQueryParam( + "sort", + ObjectSerializer.serialize(sort, "string", ""), + "" + ); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async listSubjectTypes( + include?: string, + pageLimit?: number, + pageOffset?: number, + search?: string, + sort?: string, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // Path Params + const localVarPath = "/api/v2/experiments/subject-types"; + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.listSubjectTypes") + .makeRequestContext(localVarPath, HttpMethod.GET); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Query Params + if (include !== undefined) { + requestContext.setQueryParam( + "include", + ObjectSerializer.serialize(include, "string", ""), + "" + ); + } + if (pageLimit !== undefined) { + requestContext.setQueryParam( + "page[limit]", + ObjectSerializer.serialize(pageLimit, "number", "int64"), + "" + ); + } + if (pageOffset !== undefined) { + requestContext.setQueryParam( + "page[offset]", + ObjectSerializer.serialize(pageOffset, "number", "int64"), + "" + ); + } + if (search !== undefined) { + requestContext.setQueryParam( + "search", + ObjectSerializer.serialize(search, "string", ""), + "" + ); + } + if (sort !== undefined) { + requestContext.setQueryParam( + "sort", + ObjectSerializer.serialize(sort, "string", ""), + "" + ); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async patchExperiment( + experimentId: string, + body: ExperimentsPatchExperimentV2Request, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'experimentId' is not null or undefined + if (experimentId === null || experimentId === undefined) { + throw new RequiredError("experimentId", "patchExperiment"); + } + + // verify required parameter 'body' is not null or undefined + if (body === null || body === undefined) { + throw new RequiredError("body", "patchExperiment"); + } + + // Path Params + const localVarPath = "/api/v2/experiments/{experiment_id}".replace( + "{experiment_id}", + encodeURIComponent(String(experimentId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.patchExperiment") + .makeRequestContext(localVarPath, HttpMethod.PATCH); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json", + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize( + body, + "ExperimentsPatchExperimentV2Request", + "" + ), + contentType + ); + requestContext.setBody(serializedBody); + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async patchSubjectType( + subjectTypeId: string, + body: ExperimentsPatchSubjectTypeV2Request, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'subjectTypeId' is not null or undefined + if (subjectTypeId === null || subjectTypeId === undefined) { + throw new RequiredError("subjectTypeId", "patchSubjectType"); + } + + // verify required parameter 'body' is not null or undefined + if (body === null || body === undefined) { + throw new RequiredError("body", "patchSubjectType"); + } + + // Path Params + const localVarPath = + "/api/v2/experiments/subject-types/{subject_type_id}".replace( + "{subject_type_id}", + encodeURIComponent(String(subjectTypeId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.patchSubjectType") + .makeRequestContext(localVarPath, HttpMethod.PATCH); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json", + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize( + body, + "ExperimentsPatchSubjectTypeV2Request", + "" + ), + contentType + ); + requestContext.setBody(serializedBody); + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async refreshExperimentResults( + experimentId: string, + fullRefresh?: boolean, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'experimentId' is not null or undefined + if (experimentId === null || experimentId === undefined) { + throw new RequiredError("experimentId", "refreshExperimentResults"); + } + + // Path Params + const localVarPath = + "/api/v2/experiments/{experiment_id}/results/refresh".replace( + "{experiment_id}", + encodeURIComponent(String(experimentId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.refreshExperimentResults") + .makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Query Params + if (fullRefresh !== undefined) { + requestContext.setQueryParam( + "full_refresh", + ObjectSerializer.serialize(fullRefresh, "boolean", ""), + "" + ); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async refreshExperimentResultsForOrg( + fullRefresh?: boolean, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // Path Params + const localVarPath = "/api/v2/experiments/results/refresh"; + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.refreshExperimentResultsForOrg") + .makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Query Params + if (fullRefresh !== undefined) { + requestContext.setQueryParam( + "full_refresh", + ObjectSerializer.serialize(fullRefresh, "boolean", ""), + "" + ); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async setDefaultSubjectType( + subjectTypeId: string, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'subjectTypeId' is not null or undefined + if (subjectTypeId === null || subjectTypeId === undefined) { + throw new RequiredError("subjectTypeId", "setDefaultSubjectType"); + } + + // Path Params + const localVarPath = + "/api/v2/experiments/subject-types/{subject_type_id}/default".replace( + "{subject_type_id}", + encodeURIComponent(String(subjectTypeId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.setDefaultSubjectType") + .makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "*/*"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async startExperiment( + experimentId: string, + body?: ExperimentsStartExperimentV2Request, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'experimentId' is not null or undefined + if (experimentId === null || experimentId === undefined) { + throw new RequiredError("experimentId", "startExperiment"); + } + + // Path Params + const localVarPath = "/api/v2/experiments/{experiment_id}/start".replace( + "{experiment_id}", + encodeURIComponent(String(experimentId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.startExperiment") + .makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "*/*"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json", + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize( + body, + "ExperimentsStartExperimentV2Request", + "" + ), + contentType + ); + requestContext.setBody(serializedBody); + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async unarchiveExposureSQLModel( + exposureSqlModelId: string, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'exposureSqlModelId' is not null or undefined + if (exposureSqlModelId === null || exposureSqlModelId === undefined) { + throw new RequiredError( + "exposureSqlModelId", + "unarchiveExposureSQLModel" + ); + } + + // Path Params + const localVarPath = + "/api/v2/experiments/exposure-sql-models/{exposure_sql_model_id}/unarchive".replace( + "{exposure_sql_model_id}", + encodeURIComponent(String(exposureSqlModelId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.unarchiveExposureSQLModel") + .makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "*/*"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async updateExperimentAnalysisPlanAttributes( + experimentId: string, + body: ExperimentsAnalysisPlanWriteV2Request, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'experimentId' is not null or undefined + if (experimentId === null || experimentId === undefined) { + throw new RequiredError( + "experimentId", + "updateExperimentAnalysisPlanAttributes" + ); + } + + // verify required parameter 'body' is not null or undefined + if (body === null || body === undefined) { + throw new RequiredError("body", "updateExperimentAnalysisPlanAttributes"); + } + + // Path Params + const localVarPath = + "/api/v2/experiments/{experiment_id}/analysis-plan".replace( + "{experiment_id}", + encodeURIComponent(String(experimentId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.updateExperimentAnalysisPlanAttributes") + .makeRequestContext(localVarPath, HttpMethod.PATCH); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json", + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize( + body, + "ExperimentsAnalysisPlanWriteV2Request", + "" + ), + contentType + ); + requestContext.setBody(serializedBody); + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async updateExperimentMetricGroup( + experimentId: string, + metricGroupId: string, + body: ExperimentsPatchExperimentMetricGroupV2Request, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'experimentId' is not null or undefined + if (experimentId === null || experimentId === undefined) { + throw new RequiredError("experimentId", "updateExperimentMetricGroup"); + } + + // verify required parameter 'metricGroupId' is not null or undefined + if (metricGroupId === null || metricGroupId === undefined) { + throw new RequiredError("metricGroupId", "updateExperimentMetricGroup"); + } + + // verify required parameter 'body' is not null or undefined + if (body === null || body === undefined) { + throw new RequiredError("body", "updateExperimentMetricGroup"); + } + + // Path Params + const localVarPath = + "/api/v2/experiments/{experiment_id}/metric-groups/{metric_group_id}" + .replace("{experiment_id}", encodeURIComponent(String(experimentId))) + .replace( + "{metric_group_id}", + encodeURIComponent(String(metricGroupId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.updateExperimentMetricGroup") + .makeRequestContext(localVarPath, HttpMethod.PATCH); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json", + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize( + body, + "ExperimentsPatchExperimentMetricGroupV2Request", + "" + ), + contentType + ); + requestContext.setBody(serializedBody); + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async updateExposureSQLModel( + exposureSqlModelId: string, + body: ExperimentsCreateExposureSQLModelV2Request, + include?: Array, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'exposureSqlModelId' is not null or undefined + if (exposureSqlModelId === null || exposureSqlModelId === undefined) { + throw new RequiredError("exposureSqlModelId", "updateExposureSQLModel"); + } + + // verify required parameter 'body' is not null or undefined + if (body === null || body === undefined) { + throw new RequiredError("body", "updateExposureSQLModel"); + } + + // Path Params + const localVarPath = + "/api/v2/experiments/exposure-sql-models/{exposure_sql_model_id}".replace( + "{exposure_sql_model_id}", + encodeURIComponent(String(exposureSqlModelId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.updateExposureSQLModel") + .makeRequestContext(localVarPath, HttpMethod.PUT); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Query Params + if (include !== undefined) { + requestContext.setQueryParam( + "include", + ObjectSerializer.serialize(include, "Array", ""), + "multi" + ); + } + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json", + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize( + body, + "ExperimentsCreateExposureSQLModelV2Request", + "" + ), + contentType + ); + requestContext.setBody(serializedBody); + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async updateMetric( + metricId: string, + body: ExperimentsUpdateMetricV2Request, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'metricId' is not null or undefined + if (metricId === null || metricId === undefined) { + throw new RequiredError("metricId", "updateMetric"); + } + + // verify required parameter 'body' is not null or undefined + if (body === null || body === undefined) { + throw new RequiredError("body", "updateMetric"); + } + + // Path Params + const localVarPath = "/api/v2/experiments/metrics/{metric_id}".replace( + "{metric_id}", + encodeURIComponent(String(metricId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.updateMetric") + .makeRequestContext(localVarPath, HttpMethod.PATCH); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json", + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(body, "ExperimentsUpdateMetricV2Request", ""), + contentType + ); + requestContext.setBody(serializedBody); + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async updateMetricCollection( + metricCollectionId: string, + body: ExperimentsPatchMetricCollectionV2Request, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'metricCollectionId' is not null or undefined + if (metricCollectionId === null || metricCollectionId === undefined) { + throw new RequiredError("metricCollectionId", "updateMetricCollection"); + } + + // verify required parameter 'body' is not null or undefined + if (body === null || body === undefined) { + throw new RequiredError("body", "updateMetricCollection"); + } + + // Path Params + const localVarPath = + "/api/v2/experiments/metric-collections/{metric_collection_id}".replace( + "{metric_collection_id}", + encodeURIComponent(String(metricCollectionId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.updateMetricCollection") + .makeRequestContext(localVarPath, HttpMethod.PATCH); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json", + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize( + body, + "ExperimentsPatchMetricCollectionV2Request", + "" + ), + contentType + ); + requestContext.setBody(serializedBody); + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + + public async updateMetricSQLModel( + metricSqlModelId: string, + body: ExperimentsCreateMetricSQLModelV2Request, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'metricSqlModelId' is not null or undefined + if (metricSqlModelId === null || metricSqlModelId === undefined) { + throw new RequiredError("metricSqlModelId", "updateMetricSQLModel"); + } + + // verify required parameter 'body' is not null or undefined + if (body === null || body === undefined) { + throw new RequiredError("body", "updateMetricSQLModel"); + } + + // Path Params + const localVarPath = + "/api/v2/experiments/metric-sql-models/{metric_sql_model_id}".replace( + "{metric_sql_model_id}", + encodeURIComponent(String(metricSqlModelId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.ExperimentsApi.updateMetricSQLModel") + .makeRequestContext(localVarPath, HttpMethod.PUT); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json", + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize( + body, + "ExperimentsCreateMetricSQLModelV2Request", + "" + ), + contentType + ); + requestContext.setBody(serializedBody); + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } +} + +export class ExperimentsApiResponseProcessor { + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to archiveExposureSQLModel + * @throws ApiException if the response code was not in [200, 299] + */ + public async archiveExposureSQLModel( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 204) { + return; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + return; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to cancelExperiment + * @throws ApiException if the response code was not in [200, 299] + */ + public async cancelExperiment(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 204) { + return; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 || + response.httpStatusCode === 409 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + return; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to concludeExperiment + * @throws ApiException if the response code was not in [200, 299] + */ + public async concludeExperiment(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 204) { + return; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 || + response.httpStatusCode === 409 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + return; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createExperiment + * @throws ApiException if the response code was not in [200, 299] + */ + public async createExperiment( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 201) { + const body: ExperimentsExperimentV2DTO = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsExperimentV2DTO" + ) as ExperimentsExperimentV2DTO; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 || + response.httpStatusCode === 409 || + response.httpStatusCode === 415 || + response.httpStatusCode === 422 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsExperimentV2DTO = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsExperimentV2DTO", + "" + ) as ExperimentsExperimentV2DTO; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createExperimentMetricGroup + * @throws ApiException if the response code was not in [200, 299] + */ + public async createExperimentMetricGroup( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 201) { + const body: ExperimentsExperimentMetricGroupMutationV2 = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsExperimentMetricGroupMutationV2" + ) as ExperimentsExperimentMetricGroupMutationV2; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 || + response.httpStatusCode === 409 || + response.httpStatusCode === 415 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsExperimentMetricGroupMutationV2 = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsExperimentMetricGroupMutationV2", + "" + ) as ExperimentsExperimentMetricGroupMutationV2; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createExperimentMetricGroupFromCollection + * @throws ApiException if the response code was not in [200, 299] + */ + public async createExperimentMetricGroupFromCollection( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 201) { + const body: ExperimentsExperimentMetricGroupMutationV2 = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsExperimentMetricGroupMutationV2" + ) as ExperimentsExperimentMetricGroupMutationV2; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 || + response.httpStatusCode === 409 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsExperimentMetricGroupMutationV2 = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsExperimentMetricGroupMutationV2", + "" + ) as ExperimentsExperimentMetricGroupMutationV2; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createExposureSQLModel + * @throws ApiException if the response code was not in [200, 299] + */ + public async createExposureSQLModel( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 201) { + const body: ExperimentsExposureSQLModelV2DTO = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsExposureSQLModelV2DTO" + ) as ExperimentsExposureSQLModelV2DTO; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 409 || + response.httpStatusCode === 415 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsExposureSQLModelV2DTO = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsExposureSQLModelV2DTO", + "" + ) as ExperimentsExposureSQLModelV2DTO; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createMetric + * @throws ApiException if the response code was not in [200, 299] + */ + public async createMetric( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 201) { + const body: ExperimentsMetricV2DTO = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsMetricV2DTO" + ) as ExperimentsMetricV2DTO; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 409 || + response.httpStatusCode === 415 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsMetricV2DTO = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsMetricV2DTO", + "" + ) as ExperimentsMetricV2DTO; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createMetricCollection + * @throws ApiException if the response code was not in [200, 299] + */ + public async createMetricCollection( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 201) { + const body: ExperimentsMetricCollectionV2DTO = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsMetricCollectionV2DTO" + ) as ExperimentsMetricCollectionV2DTO; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 409 || + response.httpStatusCode === 415 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsMetricCollectionV2DTO = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsMetricCollectionV2DTO", + "" + ) as ExperimentsMetricCollectionV2DTO; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createMetricSQLModel + * @throws ApiException if the response code was not in [200, 299] + */ + public async createMetricSQLModel( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 201) { + const body: ExperimentsMetricSQLModelV2DTO = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsMetricSQLModelV2DTO" + ) as ExperimentsMetricSQLModelV2DTO; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 409 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsMetricSQLModelV2DTO = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsMetricSQLModelV2DTO", + "" + ) as ExperimentsMetricSQLModelV2DTO; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createSubjectType + * @throws ApiException if the response code was not in [200, 299] + */ + public async createSubjectType( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 201) { + const body: ExperimentsSubjectTypeV2DTO = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsSubjectTypeV2DTO" + ) as ExperimentsSubjectTypeV2DTO; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsSubjectTypeV2DTO = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsSubjectTypeV2DTO", + "" + ) as ExperimentsSubjectTypeV2DTO; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to deleteExperiment + * @throws ApiException if the response code was not in [200, 299] + */ + public async deleteExperiment(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 204) { + return; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 || + response.httpStatusCode === 409 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + return; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to deleteExperimentMetricGroup + * @throws ApiException if the response code was not in [200, 299] + */ + public async deleteExperimentMetricGroup( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 204) { + return; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 || + response.httpStatusCode === 409 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + return; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to deleteMetric + * @throws ApiException if the response code was not in [200, 299] + */ + public async deleteMetric(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 204) { + return; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 || + response.httpStatusCode === 409 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + return; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to deleteMetricCollection + * @throws ApiException if the response code was not in [200, 299] + */ + public async deleteMetricCollection( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 204) { + return; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + return; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to deleteSubjectType + * @throws ApiException if the response code was not in [200, 299] + */ + public async deleteSubjectType(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 204) { + return; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 || + response.httpStatusCode === 409 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + return; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getExperiment + * @throws ApiException if the response code was not in [200, 299] + */ + public async getExperiment( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: ExperimentsExperimentV2DTO = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsExperimentV2DTO" + ) as ExperimentsExperimentV2DTO; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 || + response.httpStatusCode === 409 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsExperimentV2DTO = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsExperimentV2DTO", + "" + ) as ExperimentsExperimentV2DTO; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getExperimentAnalysisPlan + * @throws ApiException if the response code was not in [200, 299] + */ + public async getExperimentAnalysisPlan( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: ExperimentsAnalysisPlanV2DTO = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsAnalysisPlanV2DTO" + ) as ExperimentsAnalysisPlanV2DTO; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsAnalysisPlanV2DTO = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsAnalysisPlanV2DTO", + "" + ) as ExperimentsAnalysisPlanV2DTO; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getExperimentDiagnostics + * @throws ApiException if the response code was not in [200, 299] + */ + public async getExperimentDiagnostics( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: ExperimentsExperimentDiagnosticsV2DTO = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsExperimentDiagnosticsV2DTO" + ) as ExperimentsExperimentDiagnosticsV2DTO; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsExperimentDiagnosticsV2DTO = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsExperimentDiagnosticsV2DTO", + "" + ) as ExperimentsExperimentDiagnosticsV2DTO; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getExperimentProtocol + * @throws ApiException if the response code was not in [200, 299] + */ + public async getExperimentProtocol( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: ExperimentsPublicProtocolResponse = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsPublicProtocolResponse" + ) as ExperimentsPublicProtocolResponse; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsPublicProtocolResponse = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsPublicProtocolResponse", + "" + ) as ExperimentsPublicProtocolResponse; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getExperimentResults + * @throws ApiException if the response code was not in [200, 299] + */ + public async getExperimentResults( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: ExperimentsVariantResultsV2DTOArray = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsVariantResultsV2DTOArray" + ) as ExperimentsVariantResultsV2DTOArray; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 || + response.httpStatusCode === 409 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsVariantResultsV2DTOArray = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsVariantResultsV2DTOArray", + "" + ) as ExperimentsVariantResultsV2DTOArray; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getExperimentTrafficSummary + * @throws ApiException if the response code was not in [200, 299] + */ + public async getExperimentTrafficSummary( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: ExperimentsTrafficSummaryV2DTO = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsTrafficSummaryV2DTO" + ) as ExperimentsTrafficSummaryV2DTO; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 || + response.httpStatusCode === 409 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsTrafficSummaryV2DTO = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsTrafficSummaryV2DTO", + "" + ) as ExperimentsTrafficSummaryV2DTO; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getExposureSQLModel + * @throws ApiException if the response code was not in [200, 299] + */ + public async getExposureSQLModel( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: ExperimentsExposureSQLModelV2DTO = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsExposureSQLModelV2DTO" + ) as ExperimentsExposureSQLModelV2DTO; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsExposureSQLModelV2DTO = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsExposureSQLModelV2DTO", + "" + ) as ExperimentsExposureSQLModelV2DTO; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getMetric + * @throws ApiException if the response code was not in [200, 299] + */ + public async getMetric( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: ExperimentsMetricV2DTO = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsMetricV2DTO" + ) as ExperimentsMetricV2DTO; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsMetricV2DTO = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsMetricV2DTO", + "" + ) as ExperimentsMetricV2DTO; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getMetricCollection + * @throws ApiException if the response code was not in [200, 299] + */ + public async getMetricCollection( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: ExperimentsMetricCollectionV2DTO = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsMetricCollectionV2DTO" + ) as ExperimentsMetricCollectionV2DTO; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsMetricCollectionV2DTO = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsMetricCollectionV2DTO", + "" + ) as ExperimentsMetricCollectionV2DTO; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getMetricSQLModel + * @throws ApiException if the response code was not in [200, 299] + */ + public async getMetricSQLModel( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: ExperimentsMetricSQLModelV2DTO = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsMetricSQLModelV2DTO" + ) as ExperimentsMetricSQLModelV2DTO; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsMetricSQLModelV2DTO = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsMetricSQLModelV2DTO", + "" + ) as ExperimentsMetricSQLModelV2DTO; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getSubjectType + * @throws ApiException if the response code was not in [200, 299] + */ + public async getSubjectType( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: ExperimentsSubjectTypeV2DTO = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsSubjectTypeV2DTO" + ) as ExperimentsSubjectTypeV2DTO; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsSubjectTypeV2DTO = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsSubjectTypeV2DTO", + "" + ) as ExperimentsSubjectTypeV2DTO; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to listExperimentMetricGroups + * @throws ApiException if the response code was not in [200, 299] + */ + public async listExperimentMetricGroups( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: ExperimentsExperimentMetricGroupV2DTOArray = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsExperimentMetricGroupV2DTOArray" + ) as ExperimentsExperimentMetricGroupV2DTOArray; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsExperimentMetricGroupV2DTOArray = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsExperimentMetricGroupV2DTOArray", + "" + ) as ExperimentsExperimentMetricGroupV2DTOArray; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to listExperimentProtocols + * @throws ApiException if the response code was not in [200, 299] + */ + public async listExperimentProtocols( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: ExperimentsPublicProtocolListResponseArray = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsPublicProtocolListResponseArray" + ) as ExperimentsPublicProtocolListResponseArray; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsPublicProtocolListResponseArray = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsPublicProtocolListResponseArray", + "" + ) as ExperimentsPublicProtocolListResponseArray; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to listExperiments + * @throws ApiException if the response code was not in [200, 299] + */ + public async listExperiments( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: ExperimentsExperimentV2ListDTOArray = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsExperimentV2ListDTOArray" + ) as ExperimentsExperimentV2ListDTOArray; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsExperimentV2ListDTOArray = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsExperimentV2ListDTOArray", + "" + ) as ExperimentsExperimentV2ListDTOArray; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to listExposureSQLModels + * @throws ApiException if the response code was not in [200, 299] + */ + public async listExposureSQLModels( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: ExperimentsExposureSQLModelV2DTOArray = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsExposureSQLModelV2DTOArray" + ) as ExperimentsExposureSQLModelV2DTOArray; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsExposureSQLModelV2DTOArray = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsExposureSQLModelV2DTOArray", + "" + ) as ExperimentsExposureSQLModelV2DTOArray; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to listMetricCollections + * @throws ApiException if the response code was not in [200, 299] + */ + public async listMetricCollections( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: ExperimentsMetricCollectionV2DTOArray = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsMetricCollectionV2DTOArray" + ) as ExperimentsMetricCollectionV2DTOArray; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsMetricCollectionV2DTOArray = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsMetricCollectionV2DTOArray", + "" + ) as ExperimentsMetricCollectionV2DTOArray; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to listMetrics + * @throws ApiException if the response code was not in [200, 299] + */ + public async listMetrics( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: ExperimentsMetricV2DTOArray = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsMetricV2DTOArray" + ) as ExperimentsMetricV2DTOArray; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsMetricV2DTOArray = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsMetricV2DTOArray", + "" + ) as ExperimentsMetricV2DTOArray; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to listMetricSQLModels + * @throws ApiException if the response code was not in [200, 299] + */ + public async listMetricSQLModels( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: ExperimentsMetricSQLModelV2DTOArray = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsMetricSQLModelV2DTOArray" + ) as ExperimentsMetricSQLModelV2DTOArray; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsMetricSQLModelV2DTOArray = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsMetricSQLModelV2DTOArray", + "" + ) as ExperimentsMetricSQLModelV2DTOArray; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to listSubjectTypes + * @throws ApiException if the response code was not in [200, 299] + */ + public async listSubjectTypes( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: ExperimentsSubjectTypeV2DTOArray = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsSubjectTypeV2DTOArray" + ) as ExperimentsSubjectTypeV2DTOArray; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsSubjectTypeV2DTOArray = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsSubjectTypeV2DTOArray", + "" + ) as ExperimentsSubjectTypeV2DTOArray; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to patchExperiment + * @throws ApiException if the response code was not in [200, 299] + */ + public async patchExperiment( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: ExperimentsPatchExperimentV2Response = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsPatchExperimentV2Response" + ) as ExperimentsPatchExperimentV2Response; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 || + response.httpStatusCode === 409 || + response.httpStatusCode === 415 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsPatchExperimentV2Response = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsPatchExperimentV2Response", + "" + ) as ExperimentsPatchExperimentV2Response; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to patchSubjectType + * @throws ApiException if the response code was not in [200, 299] + */ + public async patchSubjectType( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: ExperimentsSubjectTypeV2DTO = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsSubjectTypeV2DTO" + ) as ExperimentsSubjectTypeV2DTO; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsSubjectTypeV2DTO = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsSubjectTypeV2DTO", + "" + ) as ExperimentsSubjectTypeV2DTO; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to refreshExperimentResults + * @throws ApiException if the response code was not in [200, 299] + */ + public async refreshExperimentResults( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 202) { + const body: ExperimentsRefreshExperimentResultsV2DTO = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsRefreshExperimentResultsV2DTO" + ) as ExperimentsRefreshExperimentResultsV2DTO; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 || + response.httpStatusCode === 409 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsRefreshExperimentResultsV2DTO = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsRefreshExperimentResultsV2DTO", + "" + ) as ExperimentsRefreshExperimentResultsV2DTO; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to refreshExperimentResultsForOrg + * @throws ApiException if the response code was not in [200, 299] + */ + public async refreshExperimentResultsForOrg( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 202) { + const body: ExperimentsRefreshExperimentResultsV2DTOArray = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsRefreshExperimentResultsV2DTOArray" + ) as ExperimentsRefreshExperimentResultsV2DTOArray; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsRefreshExperimentResultsV2DTOArray = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsRefreshExperimentResultsV2DTOArray", + "" + ) as ExperimentsRefreshExperimentResultsV2DTOArray; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to setDefaultSubjectType + * @throws ApiException if the response code was not in [200, 299] + */ + public async setDefaultSubjectType(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 204) { + return; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + return; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to startExperiment + * @throws ApiException if the response code was not in [200, 299] + */ + public async startExperiment(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 204) { + return; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 || + response.httpStatusCode === 409 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + return; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to unarchiveExposureSQLModel + * @throws ApiException if the response code was not in [200, 299] + */ + public async unarchiveExposureSQLModel( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 204) { + return; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + return; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateExperimentAnalysisPlanAttributes + * @throws ApiException if the response code was not in [200, 299] + */ + public async updateExperimentAnalysisPlanAttributes( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: ExperimentsAnalysisPlanV2MutationResponse = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsAnalysisPlanV2MutationResponse" + ) as ExperimentsAnalysisPlanV2MutationResponse; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 || + response.httpStatusCode === 409 || + response.httpStatusCode === 415 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsAnalysisPlanV2MutationResponse = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsAnalysisPlanV2MutationResponse", + "" + ) as ExperimentsAnalysisPlanV2MutationResponse; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateExperimentMetricGroup + * @throws ApiException if the response code was not in [200, 299] + */ + public async updateExperimentMetricGroup( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: ExperimentsExperimentMetricGroupMutationV2 = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsExperimentMetricGroupMutationV2" + ) as ExperimentsExperimentMetricGroupMutationV2; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 || + response.httpStatusCode === 409 || + response.httpStatusCode === 415 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsExperimentMetricGroupMutationV2 = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsExperimentMetricGroupMutationV2", + "" + ) as ExperimentsExperimentMetricGroupMutationV2; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateExposureSQLModel + * @throws ApiException if the response code was not in [200, 299] + */ + public async updateExposureSQLModel( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: ExperimentsUpdateExposureSQLModelV2Response = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsUpdateExposureSQLModelV2Response" + ) as ExperimentsUpdateExposureSQLModelV2Response; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 || + response.httpStatusCode === 409 || + response.httpStatusCode === 415 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsUpdateExposureSQLModelV2Response = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsUpdateExposureSQLModelV2Response", + "" + ) as ExperimentsUpdateExposureSQLModelV2Response; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateMetric + * @throws ApiException if the response code was not in [200, 299] + */ + public async updateMetric( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: ExperimentsMetricV2DTO = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsMetricV2DTO" + ) as ExperimentsMetricV2DTO; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 || + response.httpStatusCode === 409 || + response.httpStatusCode === 415 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsMetricV2DTO = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsMetricV2DTO", + "" + ) as ExperimentsMetricV2DTO; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateMetricCollection + * @throws ApiException if the response code was not in [200, 299] + */ + public async updateMetricCollection( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: ExperimentsMetricCollectionV2DTO = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsMetricCollectionV2DTO" + ) as ExperimentsMetricCollectionV2DTO; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 || + response.httpStatusCode === 409 || + response.httpStatusCode === 415 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsMetricCollectionV2DTO = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsMetricCollectionV2DTO", + "" + ) as ExperimentsMetricCollectionV2DTO; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateMetricSQLModel + * @throws ApiException if the response code was not in [200, 299] + */ + public async updateMetricSQLModel( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: ExperimentsUpdateMetricSQLModelV2Response = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsUpdateMetricSQLModelV2Response" + ) as ExperimentsUpdateMetricSQLModelV2Response; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 401 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 || + response.httpStatusCode === 409 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: ExperimentsUpdateMetricSQLModelV2Response = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ExperimentsUpdateMetricSQLModelV2Response", + "" + ) as ExperimentsUpdateMetricSQLModelV2Response; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } +} + +export interface ExperimentsApiArchiveExposureSQLModelRequest { + /** + * The UUID of the exposure SQL model. + * @type string + */ + exposureSqlModelId: string; +} + +export interface ExperimentsApiCancelExperimentRequest { + /** + * The UUID of the experiment. + * @type string + */ + experimentId: string; + /** + * @type ExperimentsCancelExperimentV2Request + */ + body: ExperimentsCancelExperimentV2Request; +} + +export interface ExperimentsApiConcludeExperimentRequest { + /** + * The UUID of the experiment. + * @type string + */ + experimentId: string; + /** + * @type ExperimentsConcludeExperimentV2Request + */ + body: ExperimentsConcludeExperimentV2Request; +} + +export interface ExperimentsApiCreateExperimentRequest { + /** + * @type ExperimentsCreateExperimentV2Request + */ + body: ExperimentsCreateExperimentV2Request; +} + +export interface ExperimentsApiCreateExperimentMetricGroupRequest { + /** + * The UUID of the experiment. + * @type string + */ + experimentId: string; + /** + * @type ExperimentsCreateExperimentMetricGroupV2Request + */ + body: ExperimentsCreateExperimentMetricGroupV2Request; +} + +export interface ExperimentsApiCreateExperimentMetricGroupFromCollectionRequest { + /** + * The UUID of the experiment. + * @type string + */ + experimentId: string; + /** + * The UUID of the metric collection. + * @type string + */ + metricCollectionId: string; +} + +export interface ExperimentsApiCreateExposureSQLModelRequest { + /** + * @type ExperimentsCreateExposureSQLModelV2Request + */ + body: ExperimentsCreateExposureSQLModelV2Request; +} + +export interface ExperimentsApiCreateMetricRequest { + /** + * @type ExperimentsCreateMetricV2Request + */ + body: ExperimentsCreateMetricV2Request; +} + +export interface ExperimentsApiCreateMetricCollectionRequest { + /** + * @type ExperimentsCreateMetricCollectionV2Request + */ + body: ExperimentsCreateMetricCollectionV2Request; +} + +export interface ExperimentsApiCreateMetricSQLModelRequest { + /** + * @type ExperimentsCreateMetricSQLModelV2Request + */ + body: ExperimentsCreateMetricSQLModelV2Request; +} + +export interface ExperimentsApiCreateSubjectTypeRequest { + /** + * @type ExperimentsCreateSubjectTypeV2Request + */ + body: ExperimentsCreateSubjectTypeV2Request; +} + +export interface ExperimentsApiDeleteExperimentRequest { + /** + * The UUID of the experiment. + * @type string + */ + experimentId: string; +} + +export interface ExperimentsApiDeleteExperimentMetricGroupRequest { + /** + * The UUID of the experiment. + * @type string + */ + experimentId: string; + /** + * The UUID of the metric group. + * @type string + */ + metricGroupId: string; +} + +export interface ExperimentsApiDeleteMetricRequest { + /** + * The UUID of the metric. + * @type string + */ + metricId: string; +} + +export interface ExperimentsApiDeleteMetricCollectionRequest { + /** + * The UUID of the metric collection. + * @type string + */ + metricCollectionId: string; +} + +export interface ExperimentsApiDeleteSubjectTypeRequest { + /** + * The UUID of the subject type. + * @type string + */ + subjectTypeId: string; +} + +export interface ExperimentsApiGetExperimentRequest { + /** + * The UUID of the experiment. + * @type string + */ + experimentId: string; +} + +export interface ExperimentsApiGetExperimentAnalysisPlanRequest { + /** + * The UUID of the experiment. + * @type string + */ + experimentId: string; +} + +export interface ExperimentsApiGetExperimentDiagnosticsRequest { + /** + * The UUID of the experiment. + * @type string + */ + experimentId: string; +} + +export interface ExperimentsApiGetExperimentProtocolRequest { + /** + * The UUID of the protocol. + * @type string + */ + protocolId: string; +} + +export interface ExperimentsApiGetExperimentResultsRequest { + /** + * The UUID of the experiment. + * @type string + */ + experimentId: string; +} + +export interface ExperimentsApiGetExperimentTrafficSummaryRequest { + /** + * The UUID of the experiment. + * @type string + */ + experimentId: string; +} + +export interface ExperimentsApiGetExposureSQLModelRequest { + /** + * The UUID of the exposure SQL model. + * @type string + */ + exposureSqlModelId: string; + /** + * Optional fields to include. Repeat this parameter to request several fields. `counts` adds + * experiment_count. + * @type Array + */ + include?: Array; +} + +export interface ExperimentsApiGetMetricRequest { + /** + * The UUID of the metric. + * @type string + */ + metricId: string; + /** + * Optional fields to include. Repeat this parameter to request several fields. `counts` adds + * experiment_count: how many experiments currently reference this metric. + * @type Array + */ + include?: Array; +} + +export interface ExperimentsApiGetMetricCollectionRequest { + /** + * The UUID of the metric collection. + * @type string + */ + metricCollectionId: string; +} + +export interface ExperimentsApiGetMetricSQLModelRequest { + /** + * The UUID of the metric SQL model. + * @type string + */ + metricSqlModelId: string; + /** + * Optional fields to include. Repeat this parameter to request several fields. `counts` adds metric_count + * and experiment_count. + * @type Array + */ + include?: Array; +} + +export interface ExperimentsApiGetSubjectTypeRequest { + /** + * The UUID of the subject type. + * @type string + */ + subjectTypeId: string; + /** + * Set to `counts` to add experiment_count, exposure_source_count, metric_sql_model_count and protocol_count. + * @type string + */ + include?: string; +} + +export interface ExperimentsApiListExperimentMetricGroupsRequest { + /** + * The UUID of the experiment. + * @type string + */ + experimentId: string; +} + +export interface ExperimentsApiListExperimentProtocolsRequest { + /** + * Filter by protocol status. Repeat this parameter to select more than one status. + * @type Array + */ + filterStatus?: Array; + /** + * Filter by the UUID of the primary metric in the protocol template. + * @type string + */ + filterPrimaryMetricId?: string; + /** + * Find protocols whose names contain the search text, regardless of case. Leading and trailing spaces are + * ignored. Blank values apply no filter. The maximum length is 1024 UTF-8 bytes. + * @type string + */ + filterQuery?: string; + /** + * Filter by the UUID of the subject type in the protocol template. + * @type string + */ + filterSubjectTypeId?: string; + /** + * Number of results per page. The default is 25. Values above 50 are reduced to 50. + * @type number + */ + pageLimit?: number; + /** + * Number of results to skip before returning this page. + * @type number + */ + pageOffset?: number; + /** + * Sort by `name`, `subject_type_name`, `primary_metric_name`, or `updated_at`. Prefix with `-` for + * descending order. The default is `-updated_at`. + * @type string + */ + sort?: string; +} + +export interface ExperimentsApiListExperimentsRequest { + /** + * Return only experiments concluded at or after this RFC3339 timestamp. Inclusive, and excludes experiments that have not concluded. + * @type Date + */ + concludedSince?: Date; + /** + * Return only experiments created at or after this RFC3339 timestamp. Inclusive. + * @type Date + */ + createdSince?: Date; + /** + * Maximum number of results to return. Defaults to 25 when omitted, and is capped at 50 (larger values are clamped to 50). The response includes meta.page (with total) and pagination links. + * @type number + */ + pageLimit?: number; + /** + * Number of results to skip for pagination. Defaults to 0 when omitted. + * @type number + */ + pageOffset?: number; + /** + * Filter by protocol UUID. Repeat this parameter to supply several IDs. An experiment matches if it uses any + * listed protocol. + * @type Array + */ + protocolId?: Array; + /** + * Return only experiments whose results_last_updated is before this RFC3339 timestamp. results_last_updated is the later of the latest successful run completion and the latest stored result refresh. Exclusive, and excludes experiments without successful results. + * @type Date + */ + resultsUpdatedBefore?: Date; + /** + * Return only experiments whose results_last_updated is at or after this RFC3339 timestamp. results_last_updated is the later of the latest successful run completion and the latest stored result refresh. Inclusive, and excludes experiments without successful results. This filter does not include all metadata edits or deletions. + * @type Date + */ + resultsUpdatedSince?: Date; + /** + * Find experiments whose names contain the search text, regardless of case. + * @type string + */ + search?: string; + /** + * Sort fields: name, created_at, or updated_at. Use a comma-separated list in priority order, for example name,-created_at. Prefix each field with `-` for descending. Defaults to created_at descending. + * @type string + */ + sort?: string; + /** + * Filter by experiment status. Accepted values are DRAFT, SCHEDULED, IN_PROGRESS, READY_FOR_DECISION, + * DECISION_MADE, and CANCELLED. Repeat this parameter to select several statuses, for example + * `status=IN_PROGRESS&status=READY_FOR_DECISION`. + * @type Array + */ + status?: Array; + /** + * Filter by tag name. Repeat this parameter to supply several tags. An experiment matches if it has at least + * one listed tag. + * @type Array + */ + tags?: Array; +} + +export interface ExperimentsApiListExposureSQLModelsRequest { + /** + * Optional fields to include. Repeat this parameter to request several fields. `counts` adds + * experiment_count, which costs an extra aggregate query. + * @type Array + */ + include?: Array; + /** + * When true, archived models are included in the result. Defaults to false, so archived models are hidden. + * @type boolean + */ + includeArchived?: boolean; + /** + * Maximum number of results to return. Defaults to 25 when omitted, and is capped at 50 (larger values are clamped to 50). The response includes meta.page (with total) and pagination links. + * @type number + */ + pageLimit?: number; + /** + * Number of results to skip for pagination. Defaults to 0 when omitted. + * @type number + */ + pageOffset?: number; + /** + * Find exposure SQL models whose names contain the search text, regardless of case. + * @type string + */ + search?: string; + /** + * Sort field: name, created_at, or updated_at. Prefix with `-` for descending (for example, `-created_at`). + * Defaults to created_at descending. + * @type string + */ + sort?: string; +} + +export interface ExperimentsApiListMetricCollectionsRequest { + /** + * Optional fields to include. Repeat this parameter to request several fields. `counts` adds metric_count. + * @type Array + */ + include?: Array; + /** + * Number of results per page. The default is 25. Values above 50 are reduced to 50. + * @type number + */ + pageLimit?: number; + /** + * Number of results to skip before returning this page. + * @type number + */ + pageOffset?: number; + /** + * Find collections whose names contain the search text, regardless of case. Leading and trailing spaces are + * ignored. Blank values apply no filter. The maximum length is 1024 UTF-8 bytes. + * @type string + */ + search?: string; + /** + * Sort by one field: `name`, `created_at`, or `updated_at`. Prefix with `-` for descending order. The + * default is `-created_at`. + * @type string + */ + sort?: string; +} + +export interface ExperimentsApiListMetricsRequest { + /** + * Optional fields to include. Repeat this parameter to request several fields. `counts` adds + * experiment_count on each metric, which costs an extra aggregate query. + * @type Array + */ + include?: Array; + /** + * Maximum number of results to return. Defaults to 25 when omitted, and is capped at 50 (larger values are clamped to 50). The response includes meta.page (with total) and pagination links. + * @type number + */ + pageLimit?: number; + /** + * Number of results to skip for pagination. Defaults to 0 when omitted. + * @type number + */ + pageOffset?: number; + /** + * Find metrics whose names contain the search text, regardless of case. + * @type string + */ + search?: string; + /** + * Sort field: name, created_at, or updated_at. Prefix with `-` for descending (for example, `-created_at`). + * A single field only; a comma-separated list is rejected. Defaults to created_at descending. + * @type string + */ + sort?: string; +} + +export interface ExperimentsApiListMetricSQLModelsRequest { + /** + * Optional fields to include. Repeat this parameter to request several fields. `counts` adds metric_count + * and experiment_count, which cost an extra aggregate query. + * @type Array + */ + include?: Array; + /** + * Maximum number of results to return. Defaults to 25 when omitted, and is capped at 50 (larger values are clamped to 50). The response includes meta.page (with total) and pagination links. + * @type number + */ + pageLimit?: number; + /** + * Number of results to skip for pagination. Defaults to 0 when omitted. + * @type number + */ + pageOffset?: number; + /** + * Sort field: name, created_at, updated_at, metric_count, or experiment_count. A single field only; a + * comma-separated list is rejected. Prefix with `-` for descending (for example, `-created_at`). Defaults to + * created_at descending. + * @type string + */ + sort?: string; +} + +export interface ExperimentsApiListSubjectTypesRequest { + /** + * Set to `counts` to add experiment_count, exposure_source_count, metric_sql_model_count and protocol_count to each subject type. Each costs an extra query, so they are omitted unless asked for. + * @type string + */ + include?: string; + /** + * Maximum number of results to return. Defaults to 25 when omitted, and is capped at 50 (larger values are clamped to 50). The response includes meta.page (with total) and pagination links. + * @type number + */ + pageLimit?: number; + /** + * Number of results to skip for pagination. Defaults to 0 when omitted. + * @type number + */ + pageOffset?: number; + /** + * Find subject types whose names contain the search text, regardless of case. + * @type string + */ + search?: string; + /** + * Sort fields: name, created_at, or updated_at. Use a comma-separated list in priority order, for example name,-created_at. Prefix each field with `-` for descending. Defaults to created_at descending. + * @type string + */ + sort?: string; +} + +export interface ExperimentsApiPatchExperimentRequest { + /** + * The UUID of the experiment. + * @type string + */ + experimentId: string; + /** + * @type ExperimentsPatchExperimentV2Request + */ + body: ExperimentsPatchExperimentV2Request; +} + +export interface ExperimentsApiPatchSubjectTypeRequest { + /** + * The UUID of the subject type. + * @type string + */ + subjectTypeId: string; + /** + * @type ExperimentsPatchSubjectTypeV2Request + */ + body: ExperimentsPatchSubjectTypeV2Request; +} + +export interface ExperimentsApiRefreshExperimentResultsRequest { + /** + * The UUID of the experiment. + * @type string + */ + experimentId: string; + /** + * Force a full warehouse rebuild. Defaults to false when omitted. + * @type boolean + */ + fullRefresh?: boolean; +} + +export interface ExperimentsApiRefreshExperimentResultsForOrgRequest { + /** + * Force a full warehouse rebuild. Defaults to false when omitted. + * @type boolean + */ + fullRefresh?: boolean; +} + +export interface ExperimentsApiSetDefaultSubjectTypeRequest { + /** + * The UUID of the subject type. + * @type string + */ + subjectTypeId: string; +} + +export interface ExperimentsApiStartExperimentRequest { + /** + * The UUID of the experiment. + * @type string + */ + experimentId: string; + /** + * @type ExperimentsStartExperimentV2Request + */ + body?: ExperimentsStartExperimentV2Request; +} + +export interface ExperimentsApiUnarchiveExposureSQLModelRequest { + /** + * The UUID of the exposure SQL model. + * @type string + */ + exposureSqlModelId: string; +} + +export interface ExperimentsApiUpdateExperimentAnalysisPlanAttributesRequest { + /** + * The UUID of the experiment. + * @type string + */ + experimentId: string; + /** + * @type ExperimentsAnalysisPlanWriteV2Request + */ + body: ExperimentsAnalysisPlanWriteV2Request; +} + +export interface ExperimentsApiUpdateExperimentMetricGroupRequest { + /** + * The UUID of the experiment. + * @type string + */ + experimentId: string; + /** + * The UUID of the metric group. + * @type string + */ + metricGroupId: string; + /** + * @type ExperimentsPatchExperimentMetricGroupV2Request + */ + body: ExperimentsPatchExperimentMetricGroupV2Request; +} + +export interface ExperimentsApiUpdateExposureSQLModelRequest { + /** + * The UUID of the exposure SQL model. + * @type string + */ + exposureSqlModelId: string; + /** + * @type ExperimentsCreateExposureSQLModelV2Request + */ + body: ExperimentsCreateExposureSQLModelV2Request; + /** + * Optional fields to include. Repeat this parameter to request several fields. `counts` adds + * experiment_count to the updated model. + * @type Array + */ + include?: Array; +} + +export interface ExperimentsApiUpdateMetricRequest { + /** + * The UUID of the metric. + * @type string + */ + metricId: string; + /** + * @type ExperimentsUpdateMetricV2Request + */ + body: ExperimentsUpdateMetricV2Request; +} + +export interface ExperimentsApiUpdateMetricCollectionRequest { + /** + * The UUID of the metric collection. + * @type string + */ + metricCollectionId: string; + /** + * @type ExperimentsPatchMetricCollectionV2Request + */ + body: ExperimentsPatchMetricCollectionV2Request; +} + +export interface ExperimentsApiUpdateMetricSQLModelRequest { + /** + * The UUID of the metric SQL model. + * @type string + */ + metricSqlModelId: string; + /** + * @type ExperimentsCreateMetricSQLModelV2Request + */ + body: ExperimentsCreateMetricSQLModelV2Request; +} + +export class ExperimentsApi { + private requestFactory: ExperimentsApiRequestFactory; + private responseProcessor: ExperimentsApiResponseProcessor; + private configuration: Configuration; + + public constructor( + configuration: Configuration, + requestFactory?: ExperimentsApiRequestFactory, + responseProcessor?: ExperimentsApiResponseProcessor + ) { + this.configuration = configuration; + this.requestFactory = + requestFactory || new ExperimentsApiRequestFactory(configuration); + this.responseProcessor = + responseProcessor || new ExperimentsApiResponseProcessor(); + } + + /** + * Archive an exposure SQL model. Archived models are hidden from the default list and are no longer refreshed for new feature flags. Experiments already reading from the model keep working. Archiving is how a model that is in use by an experiment, and therefore cannot be deleted, is retired. + * @param param The request object + */ + public archiveExposureSQLModel( + param: ExperimentsApiArchiveExposureSQLModelRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.archiveExposureSQLModel( + param.exposureSqlModelId, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.archiveExposureSQLModel( + responseContext + ); + }); + }); + } + + /** + * Cancel an experiment, ending it without a winning variant. The experiment moves to CANCELLED status, the + * supplied reason is recorded in its conclusion as the decision reason, and the experiment is unlinked from the + * feature flag allocations that exposed it, which stops its exposure. An experiment that has already completed + * its rollout, had its code removed, or been canceled cannot be canceled again. Canceling is not reversible: an + * experiment cannot be returned to a running state afterward. It is also not idempotent: canceling an + * already-canceled experiment returns 409, so a retry after a timeout cannot be distinguished from a + * cancellation made by someone else. + * @param param The request object + */ + public cancelExperiment( + param: ExperimentsApiCancelExperimentRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.cancelExperiment( + param.experimentId, + param.body, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.cancelExperiment(responseContext); + }); + }); + } + + /** + * Conclude an experiment on a winning variant. The experiment moves to DECISION_MADE status, the outcome is recorded in its conclusion, and for a flag-backed experiment the winning variant is rolled out to 100% of the linked feature flag allocation. `decision_variant_key` must match a variant in the experiment. Only an experiment that is currently running or ready for a decision can be concluded. Concluding is not reversible and is not idempotent: concluding an already-concluded experiment returns 409. + * @param param The request object + */ + public concludeExperiment( + param: ExperimentsApiConcludeExperimentRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.concludeExperiment( + param.experimentId, + param.body, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.concludeExperiment(responseContext); + }); + }); + } + + /** + * Create a draft experiment. `name` is required. `structured_metadata` identifies each metadata field by `field_key`; use `freetext_value` for free-text fields and `enum_values` for enum fields. When this attribute is present, the request must include a value for every required metadata field. When `protocol_id` is present, the published protocol supplies the subject type, decision metrics, analysis-plan defaults, and configuration and enforcement baselines. The request may also include hypothesis, tags, teams, related links, and assignment or event date overrides that satisfy the protocol's duration rules; omit subject_type_id, decision_metrics, variants, warehouse_exposure_configuration, datadog_flag_configuration, traffic_exposure, split_by_properties, and structured_metadata. The protocol association cannot be changed after creation. Without `protocol_id`, a complete Warehouse or Datadog configuration saves the experiment and its configuration in one transaction. For Datadog flag configuration, send `name`, `subject_type_id`, `decision_metrics`, `variants`, `traffic_exposure`, `assignments_start_date`, `assignments_end_date`, `events_start_date`, and `events_end_date`. The four date fields can be null. Inside `datadog_flag_configuration`, send `feature_flag_id`, `environment_id`, `targeting_rules`, and `entry_point`. Use `targeting_rules: []` and `entry_point: null` when unused. This creates one saved draft allocation that does not serve traffic. Omit all configuration fields to create an experiment without an allocation. This endpoint is not idempotent. + * @param param The request object + */ + public createExperiment( + param: ExperimentsApiCreateExperimentRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.createExperiment( + param.body, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.createExperiment(responseContext); + }); + }); + } + + /** + * Create a non-decision metric group. The optional metrics array is ordered. Decision groups remain managed through decision_metrics on the experiment resource. This operation does not synchronously recompute results. + * @param param The request object + */ + public createExperimentMetricGroup( + param: ExperimentsApiCreateExperimentMetricGroupRequest, + options?: Configuration + ): Promise { + const requestContextPromise = + this.requestFactory.createExperimentMetricGroup( + param.experimentId, + param.body, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.createExperimentMetricGroup( + responseContext + ); + }); + }); + } + + /** + * Copy a metric collection into a new non-decision metric group. The group is a request-time snapshot: later changes to the collection do not affect the experiment. Metric order is preserved. The operation is not idempotent, and incompatible or empty collections are rejected without creating a group. + * @param param The request object + */ + public createExperimentMetricGroupFromCollection( + param: ExperimentsApiCreateExperimentMetricGroupFromCollectionRequest, + options?: Configuration + ): Promise { + const requestContextPromise = + this.requestFactory.createExperimentMetricGroupFromCollection( + param.experimentId, + param.metricCollectionId, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.createExperimentMetricGroupFromCollection( + responseContext + ); + }); + }); + } + + /** + * Create an exposure SQL model. Requires at least one subject type. The warehouse connection is resolved from the organization, which has exactly one. + * @param param The request object + */ + public createExposureSQLModel( + param: ExperimentsApiCreateExposureSQLModelRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.createExposureSQLModel( + param.body, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.createExposureSQLModel(responseContext); + }); + }); + } + + /** + * Create a metric. The metric's type is derived from the aggregation shape: a numerator alone is SIMPLE, a numerator with a denominator is RATIO, and a percentile aggregation is PERCENTILE. Warehouse aggregations reference measures by UUID. Property filters use property_id or measure_id UUIDs returned by the same metric SQL model; every reference must belong to the aggregation's data source. The is_certified attribute is rejected. Certification cannot be changed through this endpoint. + * @param param The request object + */ + public createMetric( + param: ExperimentsApiCreateMetricRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.createMetric( + param.body, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.createMetric(responseContext); + }); + }); + } + + /** + * Create metric collection. + * @param param The request object + */ + public createMetricCollection( + param: ExperimentsApiCreateMetricCollectionRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.createMetricCollection( + param.body, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.createMetricCollection(responseContext); + }); + }); + } + + /** + * Create a metric SQL model. Requires at least one subject type, whose subject_type_id must already exist for the organization (list them with GET /api/v2/experiments/subject-types). The model is created against the organization's warehouse connection, which is resolved server-side. Only customer-defined measures belong in measures. The response provides unique_subject_count_measure_id for each subject type and event_count_measure_id for use in metric aggregations. column_type is required for every measure and property. Certification is read-only and cannot be changed through this endpoint. + * @param param The request object + */ + public createMetricSQLModel( + param: ExperimentsApiCreateMetricSQLModelRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.createMetricSQLModel( + param.body, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.createMetricSQLModel(responseContext); + }); + }); + } + + /** + * Create a subject type for the organization. + * @param param The request object + */ + public createSubjectType( + param: ExperimentsApiCreateSubjectTypeRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.createSubjectType( + param.body, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.createSubjectType(responseContext); + }); + }); + } + + /** + * Delete an experiment and its linked feature flag allocations in one database transaction. After deletion, the experiment is no longer returned by the API. If the transaction fails, neither the experiment nor its allocations are deleted. Deleting an experiment cannot be undone. + * @param param The request object + */ + public deleteExperiment( + param: ExperimentsApiDeleteExperimentRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.deleteExperiment( + param.experimentId, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.deleteExperiment(responseContext); + }); + }); + } + + /** + * Delete a non-decision metric group and its memberships. Decision groups remain managed through the experiment resource. This operation does not start a pipeline. Read experiment results after deletion to check stale metadata, then explicitly refresh results when required. + * @param param The request object + */ + public deleteExperimentMetricGroup( + param: ExperimentsApiDeleteExperimentMetricGroupRequest, + options?: Configuration + ): Promise { + const requestContextPromise = + this.requestFactory.deleteExperimentMetricGroup( + param.experimentId, + param.metricGroupId, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.deleteExperimentMetricGroup( + responseContext + ); + }); + }); + } + + /** + * Delete a metric. Certified metrics are read-only through this endpoint. The record is soft-deleted and stops appearing in reads. A metric still referenced by an experiment cannot be deleted; detach it from those experiments first. + * @param param The request object + */ + public deleteMetric( + param: ExperimentsApiDeleteMetricRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.deleteMetric( + param.metricId, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.deleteMetric(responseContext); + }); + }); + } + + /** + * Delete metric collection. + * @param param The request object + */ + public deleteMetricCollection( + param: ExperimentsApiDeleteMetricCollectionRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.deleteMetricCollection( + param.metricCollectionId, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.deleteMetricCollection(responseContext); + }); + }); + } + + /** + * Delete a subject type. The record is soft-deleted and stops appearing in reads. The call is idempotent: deleting the same subject type again also returns 204. The organization's default subject type cannot be deleted; make another one the default first. A subject type that experiments, exposure SQL models, metric SQL models or protocols still reference cannot be deleted either; the refusal names the blockers. + * @param param The request object + */ + public deleteSubjectType( + param: ExperimentsApiDeleteSubjectTypeRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.deleteSubjectType( + param.subjectTypeId, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.deleteSubjectType(responseContext); + }); + }); + } + + /** + * Get a complete experiment by ID. The response includes structured metadata, related links, and, when a complete setup exists, decision metrics, variants, `warehouse_exposure_configuration`, `datadog_flag_configuration`, STATIC or STEPS traffic exposure, and assignment and event dates. STEPS describes the configured plan rather than wall-clock history; Datadog step durations exclude pauses. The list endpoint omits these setup details. + * @param param The request object + */ + public getExperiment( + param: ExperimentsApiGetExperimentRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.getExperiment( + param.experimentId, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.getExperiment(responseContext); + }); + }); + } + + /** + * Get the effective public statistical analysis settings for an experiment. has_custom_analysis_settings compares only settings the caller can edit; protocol-required differences from company defaults do not make the plan custom. + * @param param The request object + */ + public getExperimentAnalysisPlan( + param: ExperimentsApiGetExperimentAnalysisPlanRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.getExperimentAnalysisPlan( + param.experimentId, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.getExperimentAnalysisPlan( + responseContext + ); + }); + }); + } + + /** + * Get the diagnostics produced by an experiment's latest analysis run. Each diagnostic includes its category, and the response includes an overall diagnostic or pipeline lifecycle status. + * @param param The request object + */ + public getExperimentDiagnostics( + param: ExperimentsApiGetExperimentDiagnosticsRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.getExperimentDiagnostics( + param.experimentId, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.getExperimentDiagnostics( + responseContext + ); + }); + }); + } + + /** + * Get a draft, published, or archived experiment protocol by ID. + * @param param The request object + */ + public getExperimentProtocol( + param: ExperimentsApiGetExperimentProtocolRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.getExperimentProtocol( + param.protocolId, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.getExperimentProtocol(responseContext); + }); + }); + } + + /** + * Get an experiment's computed results: per-variant statistical analysis for the latest successful run. A historical run cannot be selected. Unavailable analysis statistics, including `p_value` and `confidence_interval`, are omitted. The `numerator`, `denominator`, and `variant_metric_value` fields can be null when their values are unavailable. Do not treat an omitted or null value as zero. + * @param param The request object + */ + public getExperimentResults( + param: ExperimentsApiGetExperimentResultsRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.getExperimentResults( + param.experimentId, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.getExperimentResults(responseContext); + }); + }); + } + + /** + * Get an experiment's traffic summary: per-variant exposure counts and a sample-ratio-mismatch flag (is_traffic_imbalanced). SRM statistics live on the diagnostics endpoint. + * @param param The request object + */ + public getExperimentTrafficSummary( + param: ExperimentsApiGetExperimentTrafficSummaryRequest, + options?: Configuration + ): Promise { + const requestContextPromise = + this.requestFactory.getExperimentTrafficSummary( + param.experimentId, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.getExperimentTrafficSummary( + responseContext + ); + }); + }); + } + + /** + * Get an exposure SQL model. Returns a single model by its ID for the organization, including its subject types and properties. + * @param param The request object + */ + public getExposureSQLModel( + param: ExperimentsApiGetExposureSQLModelRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.getExposureSQLModel( + param.exposureSqlModelId, + param.include, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.getExposureSQLModel(responseContext); + }); + }); + } + + /** + * Get a metric. Returns a single experiment metric by its ID for the organization. + * @param param The request object + */ + public getMetric( + param: ExperimentsApiGetMetricRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.getMetric( + param.metricId, + param.include, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.getMetric(responseContext); + }); + }); + } + + /** + * Get metric collection. + * @param param The request object + */ + public getMetricCollection( + param: ExperimentsApiGetMetricCollectionRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.getMetricCollection( + param.metricCollectionId, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.getMetricCollection(responseContext); + }); + }); + } + + /** + * Get a metric SQL model. Returns a single model by its ID for the organization, including its subject types, measures and properties. + * @param param The request object + */ + public getMetricSQLModel( + param: ExperimentsApiGetMetricSQLModelRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.getMetricSQLModel( + param.metricSqlModelId, + param.include, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.getMetricSQLModel(responseContext); + }); + }); + } + + /** + * Get a subject type. Returns a single subject type by its ID for the organization. + * @param param The request object + */ + public getSubjectType( + param: ExperimentsApiGetSubjectTypeRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.getSubjectType( + param.subjectTypeId, + param.include, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.getSubjectType(responseContext); + }); + }); + } + + /** + * List every decision and non-decision metric group attached to an experiment. Metric references are returned in their stored order. An incomplete draft can have no decision group and returns only the groups that exist. + * @param param The request object + */ + public listExperimentMetricGroups( + param: ExperimentsApiListExperimentMetricGroupsRequest, + options?: Configuration + ): Promise { + const requestContextPromise = + this.requestFactory.listExperimentMetricGroups( + param.experimentId, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.listExperimentMetricGroups( + responseContext + ); + }); + }); + } + + /** + * List draft, published, and archived experiment protocols. Omit filter[status] to return all statuses. Only published protocols can be used to create experiments. + * @param param The request object + */ + public listExperimentProtocols( + param: ExperimentsApiListExperimentProtocolsRequest = {}, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.listExperimentProtocols( + param.filterStatus, + param.filterPrimaryMetricId, + param.filterQuery, + param.filterSubjectTypeId, + param.pageLimit, + param.pageOffset, + param.sort, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.listExperimentProtocols( + responseContext + ); + }); + }); + } + + /** + * List experiments. Returns a paginated list of experiments and their structured metadata for the organization. Supports filtering and pagination. Use Get experiment for variants, decision metrics, traffic exposure, and assignment configuration. + * @param param The request object + */ + public listExperiments( + param: ExperimentsApiListExperimentsRequest = {}, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.listExperiments( + param.concludedSince, + param.createdSince, + param.pageLimit, + param.pageOffset, + param.protocolId, + param.resultsUpdatedBefore, + param.resultsUpdatedSince, + param.search, + param.sort, + param.status, + param.tags, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.listExperiments(responseContext); + }); + }); + } + + /** + * List exposure SQL models. Returns a paginated list of the SQL models that experiment exposures are read from for the organization. Models maintained by Datadog are not included: they cannot be modified and cannot be used as an experiment's assignment source. + * @param param The request object + */ + public listExposureSQLModels( + param: ExperimentsApiListExposureSQLModelsRequest = {}, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.listExposureSQLModels( + param.include, + param.includeArchived, + param.pageLimit, + param.pageOffset, + param.search, + param.sort, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.listExposureSQLModels(responseContext); + }); + }); + } + + /** + * List metric collections for the organization. Collections are reusable ordered metric sets; attaching one to an experiment creates an independent snapshot. + * @param param The request object + */ + public listMetricCollections( + param: ExperimentsApiListMetricCollectionsRequest = {}, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.listMetricCollections( + param.include, + param.pageLimit, + param.pageOffset, + param.search, + param.sort, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.listMetricCollections(responseContext); + }); + }); + } + + /** + * List metrics. Returns a paginated list of the experiment metrics defined for the organization. + * @param param The request object + */ + public listMetrics( + param: ExperimentsApiListMetricsRequest = {}, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.listMetrics( + param.include, + param.pageLimit, + param.pageOffset, + param.search, + param.sort, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.listMetrics(responseContext); + }); + }); + } + + /** + * List metric SQL models. Returns a paginated list of the SQL models that metrics are defined on for the organization. + * @param param The request object + */ + public listMetricSQLModels( + param: ExperimentsApiListMetricSQLModelsRequest = {}, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.listMetricSQLModels( + param.include, + param.pageLimit, + param.pageOffset, + param.sort, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.listMetricSQLModels(responseContext); + }); + }); + } + + /** + * List subject types. Returns a paginated list of the subject types defined for the organization. + * @param param The request object + */ + public listSubjectTypes( + param: ExperimentsApiListSubjectTypesRequest = {}, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.listSubjectTypes( + param.include, + param.pageLimit, + param.pageOffset, + param.search, + param.sort, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.listSubjectTypes(responseContext); + }); + }); + } + + /** + * Update mutable experiment fields. State and protocol restrictions apply. + * + * **PATCH behavior** + * + * - Omitted fields stay unchanged, including fields inside `datadog_flag_configuration`. + * - Supplied `tags`, `teams`, `related_links`, `decision_metrics`, and `variants` replace their stored lists. + * - Validation can return several field errors before saving any changes. The response is HTTP 400 if any error + * concerns invalid input. It is HTTP 409 if all errors concern state or protocol conflicts. + * + * **Result refreshes** + * + * This endpoint does not start a pipeline run. `meta.needs_pipeline_refresh` states whether the edit requires a + * run. When true, POST to `meta.refresh_endpoint` after finishing your edits. Its `full_refresh` query parameter + * selects the run type. + * + * Keep refresh requirements across edits. A later false value does not clear an earlier requirement. Any + * `full_refresh=true` requirement takes priority. + * + * After start, STATIC and STEPS exposure changes for warehouse experiments without a Datadog flag attempt to + * recalculate stored results. Changes to decision metrics or the control variant also attempt recalculation when + * results exist. If stored data is insufficient or recalculation fails, the edit stays saved and + * `meta.needs_pipeline_refresh` is true. + * + * **Exposure rules** + * + * - Draft experiments can replace the full STATIC or STEPS plan through `traffic_exposure`. + * - Warehouse steps start at `assignments_start_date` and can have different durations. + * - Running warehouse experiments can replace step fractions, durations, and exposure mode. Retained variant + * weights cannot change through this API. You can send unchanged values again. + * - After a warehouse experiment ends, configuration replacement supports only STATIC fraction changes. + * - New Datadog plans have at most five steps. The first fraction must be positive. All steps except the last + * have equal durations. Durations exclude pauses. + * - The last step has a null duration. Its fraction stays in effect until assignment ends. + * - After start, use the experiment UI to change traffic exposure for experiments linked to a Datadog flag. + * + * **Metadata** + * + * `structured_metadata` updates fields by `field_key`. Use `freetext_value: ""` or `enum_values: []` to clear an + * optional field. Omitted fields stay unchanged. A null or empty `structured_metadata` attribute makes no + * change. + * + * **Flag changes** + * + * Before start, a Datadog update creates or edits the saved draft allocation. To add or replace a flag, send + * `variants` and `traffic_exposure`. Inside `datadog_flag_configuration`, send `feature_flag_id`, + * `environment_id`, `targeting_rules`, and `entry_point`. Use `targeting_rules: []` and `entry_point: null` when + * unused. + * + * To replace a flag, also set `reset_on_feature_flag_change: true` inside that object. The server deletes the + * old draft and creates a new one in the same transaction. The response includes a + * `datadog_flag_configuration_reset` warning in `meta.warnings`. + * + * Set `datadog_flag_configuration: null` to delete the draft allocation. This also clears the experiment's flag + * association, variants, assignment sources, and entry point. The experiment remains. + * + * Flag replacement and removal require a draft experiment without warehouse exposure. These actions do not + * convert hybrid experiments. + * @param param The request object + */ + public patchExperiment( + param: ExperimentsApiPatchExperimentRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.patchExperiment( + param.experimentId, + param.body, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.patchExperiment(responseContext); + }); + }); + } + + /** + * Update mutable fields on a subject type. Only the fields present in the body are changed. Any subject type can be updated, including the organization's default one, but the is_default flag itself is read-only here: which subject type is the default cannot be changed through this endpoint. + * @param param The request object + */ + public patchSubjectType( + param: ExperimentsApiPatchSubjectTypeRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.patchSubjectType( + param.subjectTypeId, + param.body, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.patchSubjectType(responseContext); + }); + }); + } + + /** + * Request a results refresh for one experiment. HTTP 202 confirms acceptance, not completed results. The response identifies the experiment and does not include a job ID. Read experiment results to check freshness. A request while a refresh is queued or running returns 409. After completion, another request can start another refresh. + * @param param The request object + */ + public refreshExperimentResults( + param: ExperimentsApiRefreshExperimentResultsRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.refreshExperimentResults( + param.experimentId, + param.fullRefresh, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.refreshExperimentResults( + responseContext + ); + }); + }); + } + + /** + * Trigger a results refresh across the organization's active experiments. Returns the count of experiments whose refresh was triggered (meta.experiments_updated) plus a per-experiment breakdown of what happened to each (meta.results). + * @param param The request object + */ + public refreshExperimentResultsForOrg( + param: ExperimentsApiRefreshExperimentResultsForOrgRequest = {}, + options?: Configuration + ): Promise { + const requestContextPromise = + this.requestFactory.refreshExperimentResultsForOrg( + param.fullRefresh, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.refreshExperimentResultsForOrg( + responseContext + ); + }); + }); + } + + /** + * Make this subject type the organization's default. Experiment creation uses the default when the request names no subject type. Promoting one subject type demotes the previous default in the same transaction, so the organization always has exactly one. The call is idempotent: promoting the current default succeeds and changes nothing. There is no matching demote, because an organization cannot have no default; promote a different subject type instead. + * @param param The request object + */ + public setDefaultSubjectType( + param: ExperimentsApiSetDefaultSubjectTypeRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.setDefaultSubjectType( + param.subjectTypeId, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.setDefaultSubjectType(responseContext); + }); + }); + } + + /** + * Start an experiment. The experiment is started exactly as it is configured; this endpoint accepts no attributes, and a request body carrying any is rejected rather than ignored. Set the run window, duration, or variants with PATCH /api/v2/experiments/{experiment_id} before starting. An unconfigured draft returns HTTP 409. Configure either warehouse_exposure_configuration or datadog_flag_configuration, plus the required experiment fields, before starting. Start validation errors can include meta.configuration_pointer to identify a field on the experiment to correct. For a flag-backed experiment this enables the linked feature flag's environment, clears any stored variant override on it, and starts the allocation's rollout. The request is idempotent: an experiment that is already running or ready for a decision still returns 204, so a retry after a timeout is safe. One exception: an experiment scheduled to start is accepted only when it is backed by your own feature flag; a Datadog-flag experiment in that state returns 409 because its stored state and flag allocation disagree. Cancel and conclude are not idempotent and return 409 when repeated. + * @param param The request object + */ + public startExperiment( + param: ExperimentsApiStartExperimentRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.startExperiment( + param.experimentId, + param.body, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.startExperiment(responseContext); + }); + }); + } + + /** + * Unarchive an exposure SQL model. Restores an archived model to the default list. + * @param param The request object + */ + public unarchiveExposureSQLModel( + param: ExperimentsApiUnarchiveExposureSQLModelRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.unarchiveExposureSQLModel( + param.exposureSqlModelId, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.unarchiveExposureSQLModel( + responseContext + ); + }); + }); + } + + /** + * Update selected statistical analysis settings. Omitted attributes remain unchanged and nullable attributes can be cleared with null. Protocol-locked settings cannot be changed. + * @param param The request object + */ + public updateExperimentAnalysisPlanAttributes( + param: ExperimentsApiUpdateExperimentAnalysisPlanAttributesRequest, + options?: Configuration + ): Promise { + const requestContextPromise = + this.requestFactory.updateExperimentAnalysisPlanAttributes( + param.experimentId, + param.body, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.updateExperimentAnalysisPlanAttributes( + responseContext + ); + }); + }); + } + + /** + * Update a non-decision metric group. Omitted attributes are unchanged; a supplied metrics array is the complete ordered replacement. Decision groups remain managed through the experiment resource. This operation does not synchronously recompute results. + * @param param The request object + */ + public updateExperimentMetricGroup( + param: ExperimentsApiUpdateExperimentMetricGroupRequest, + options?: Configuration + ): Promise { + const requestContextPromise = + this.requestFactory.updateExperimentMetricGroup( + param.experimentId, + param.metricGroupId, + param.body, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.updateExperimentMetricGroup( + responseContext + ); + }); + }); + } + + /** + * Replace an exposure SQL model. This is a full replacement and is destructive: any subject type or property not present in the body is deleted, and properties are matched on name, column_name and column_type together, so changing one of those replaces the property rather than editing it. Send the complete set you want to keep. Anything removed is listed under meta.removed_subject_type_ids and meta.removed_property_names in the response. The warehouse connection is not settable and is left as stored. + * @param param The request object + */ + public updateExposureSQLModel( + param: ExperimentsApiUpdateExposureSQLModelRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.updateExposureSQLModel( + param.exposureSqlModelId, + param.body, + param.include, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.updateExposureSQLModel(responseContext); + }); + }); + } + + /** + * Update a metric. Certified metrics are read-only through this endpoint. This is a partial update: every attribute is optional and an omitted attribute keeps its stored value, so a body carrying only the fields being changed is enough. `guardrail_cutoff_threshold` is nullable -- send null to clear it, omit it to leave it alone. Omitting the aggregation leaves the metric's definition untouched; supplying one replaces it wholesale, and the metric's type is re-derived from the shape supplied. Property filters use property_id or measure_id UUIDs from the aggregation's data source. Attributes that are computed rather than stored (short_id, metric_type, certified_at, experiment_count, created_at, updated_at) are rejected rather than ignored, so a body copied from GET must have them removed. The is_certified attribute is rejected. Certification cannot be changed through this endpoint. + * @param param The request object + */ + public updateMetric( + param: ExperimentsApiUpdateMetricRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.updateMetric( + param.metricId, + param.body, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.updateMetric(responseContext); + }); + }); + } + + /** + * Update metric collection. + * @param param The request object + */ + public updateMetricCollection( + param: ExperimentsApiUpdateMetricCollectionRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.updateMetricCollection( + param.metricCollectionId, + param.body, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.updateMetricCollection(responseContext); + }); + }); + } + + /** + * Replace a metric SQL model. This is a destructive full replace: subject types, customer-defined measures, and properties absent from the body are deleted, so send the complete set. Properties are matched by name; changing a property's column, type, or description preserves its ID. column_type is required for every measure and property. Removing a measure or property that an active metric references returns 409 Conflict. Server-generated IDs returned by GET are read-only and can be left in a replayed body. The response reports removals in meta.deleted_subject_types, meta.deleted_measures, and meta.deleted_properties. Certification is read-only. Certified models cannot be replaced through this endpoint. + * @param param The request object + */ + public updateMetricSQLModel( + param: ExperimentsApiUpdateMetricSQLModelRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.updateMetricSQLModel( + param.metricSqlModelId, + param.body, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.updateMetricSQLModel(responseContext); + }); + }); + } +} diff --git a/packages/datadog-api-client-v2/index.ts b/packages/datadog-api-client-v2/index.ts index 58a67154901c..b996e7097fea 100644 --- a/packages/datadog-api-client-v2/index.ts +++ b/packages/datadog-api-client-v2/index.ts @@ -693,6 +693,58 @@ export { ExecutionPolicyApi, } from "./apis/ExecutionPolicyApi"; +export { + ExperimentsApiArchiveExposureSQLModelRequest, + ExperimentsApiCancelExperimentRequest, + ExperimentsApiConcludeExperimentRequest, + ExperimentsApiCreateExperimentRequest, + ExperimentsApiCreateExperimentMetricGroupRequest, + ExperimentsApiCreateExperimentMetricGroupFromCollectionRequest, + ExperimentsApiCreateExposureSQLModelRequest, + ExperimentsApiCreateMetricRequest, + ExperimentsApiCreateMetricCollectionRequest, + ExperimentsApiCreateMetricSQLModelRequest, + ExperimentsApiCreateSubjectTypeRequest, + ExperimentsApiDeleteExperimentRequest, + ExperimentsApiDeleteExperimentMetricGroupRequest, + ExperimentsApiDeleteMetricRequest, + ExperimentsApiDeleteMetricCollectionRequest, + ExperimentsApiDeleteSubjectTypeRequest, + ExperimentsApiGetExperimentRequest, + ExperimentsApiGetExperimentAnalysisPlanRequest, + ExperimentsApiGetExperimentDiagnosticsRequest, + ExperimentsApiGetExperimentProtocolRequest, + ExperimentsApiGetExperimentResultsRequest, + ExperimentsApiGetExperimentTrafficSummaryRequest, + ExperimentsApiGetExposureSQLModelRequest, + ExperimentsApiGetMetricRequest, + ExperimentsApiGetMetricCollectionRequest, + ExperimentsApiGetMetricSQLModelRequest, + ExperimentsApiGetSubjectTypeRequest, + ExperimentsApiListExperimentMetricGroupsRequest, + ExperimentsApiListExperimentProtocolsRequest, + ExperimentsApiListExperimentsRequest, + ExperimentsApiListExposureSQLModelsRequest, + ExperimentsApiListMetricCollectionsRequest, + ExperimentsApiListMetricSQLModelsRequest, + ExperimentsApiListMetricsRequest, + ExperimentsApiListSubjectTypesRequest, + ExperimentsApiPatchExperimentRequest, + ExperimentsApiPatchSubjectTypeRequest, + ExperimentsApiRefreshExperimentResultsRequest, + ExperimentsApiRefreshExperimentResultsForOrgRequest, + ExperimentsApiSetDefaultSubjectTypeRequest, + ExperimentsApiStartExperimentRequest, + ExperimentsApiUnarchiveExposureSQLModelRequest, + ExperimentsApiUpdateExperimentAnalysisPlanAttributesRequest, + ExperimentsApiUpdateExperimentMetricGroupRequest, + ExperimentsApiUpdateExposureSQLModelRequest, + ExperimentsApiUpdateMetricRequest, + ExperimentsApiUpdateMetricCollectionRequest, + ExperimentsApiUpdateMetricSQLModelRequest, + ExperimentsApi, +} from "./apis/ExperimentsApi"; + export { FastlyIntegrationApiCreateFastlyAccountRequest, FastlyIntegrationApiCreateFastlyServiceRequest, @@ -4399,6 +4451,240 @@ export { ExecutionPolicyType } from "./models/ExecutionPolicyType"; export { ExecutionPolicyUpdateRequest } from "./models/ExecutionPolicyUpdateRequest"; export { ExecutionPolicyUpdateRequestData } from "./models/ExecutionPolicyUpdateRequestData"; export { ExecutionPolicyWriteAttributes } from "./models/ExecutionPolicyWriteAttributes"; +export { ExperimentsAnalysisPlanV2DTO } from "./models/ExperimentsAnalysisPlanV2DTO"; +export { ExperimentsAnalysisPlanV2DTOData } from "./models/ExperimentsAnalysisPlanV2DTOData"; +export { ExperimentsAnalysisPlanV2DTODataAttributesConfidenceIntervalMethod } from "./models/ExperimentsAnalysisPlanV2DTODataAttributesConfidenceIntervalMethod"; +export { ExperimentsAnalysisPlanV2MutationResponse } from "./models/ExperimentsAnalysisPlanV2MutationResponse"; +export { ExperimentsAnalysisPlanV2MutationResponseDataAttributes } from "./models/ExperimentsAnalysisPlanV2MutationResponseDataAttributes"; +export { ExperimentsAnalysisPlanV2MutationResponseDataAttributesBayesianPrior } from "./models/ExperimentsAnalysisPlanV2MutationResponseDataAttributesBayesianPrior"; +export { ExperimentsAnalysisPlanWriteV2Request } from "./models/ExperimentsAnalysisPlanWriteV2Request"; +export { ExperimentsAnalysisPlanWriteV2RequestData } from "./models/ExperimentsAnalysisPlanWriteV2RequestData"; +export { ExperimentsAnalysisPlanWriteV2RequestDataAttributes } from "./models/ExperimentsAnalysisPlanWriteV2RequestDataAttributes"; +export { ExperimentsAnalysisPlanWriteV2RequestDataAttributesBayesianPrior } from "./models/ExperimentsAnalysisPlanWriteV2RequestDataAttributesBayesianPrior"; +export { ExperimentsAnalysisPlanWriteV2RequestDataType } from "./models/ExperimentsAnalysisPlanWriteV2RequestDataType"; +export { ExperimentsCancelExperimentV2Request } from "./models/ExperimentsCancelExperimentV2Request"; +export { ExperimentsCancelExperimentV2RequestData } from "./models/ExperimentsCancelExperimentV2RequestData"; +export { ExperimentsCancelExperimentV2RequestDataAttributes } from "./models/ExperimentsCancelExperimentV2RequestDataAttributes"; +export { ExperimentsCancelExperimentV2RequestDataType } from "./models/ExperimentsCancelExperimentV2RequestDataType"; +export { ExperimentsConcludeExperimentV2Request } from "./models/ExperimentsConcludeExperimentV2Request"; +export { ExperimentsConcludeExperimentV2RequestData } from "./models/ExperimentsConcludeExperimentV2RequestData"; +export { ExperimentsConcludeExperimentV2RequestDataAttributes } from "./models/ExperimentsConcludeExperimentV2RequestDataAttributes"; +export { ExperimentsConcludeExperimentV2RequestDataType } from "./models/ExperimentsConcludeExperimentV2RequestDataType"; +export { ExperimentsCreateExperimentMetricGroupV2Request } from "./models/ExperimentsCreateExperimentMetricGroupV2Request"; +export { ExperimentsCreateExperimentMetricGroupV2RequestData } from "./models/ExperimentsCreateExperimentMetricGroupV2RequestData"; +export { ExperimentsCreateExperimentMetricGroupV2RequestDataAttributes } from "./models/ExperimentsCreateExperimentMetricGroupV2RequestDataAttributes"; +export { ExperimentsCreateExperimentMetricGroupV2RequestDataAttributesMetricsItems } from "./models/ExperimentsCreateExperimentMetricGroupV2RequestDataAttributesMetricsItems"; +export { ExperimentsCreateExperimentV2Request } from "./models/ExperimentsCreateExperimentV2Request"; +export { ExperimentsCreateExperimentV2RequestData } from "./models/ExperimentsCreateExperimentV2RequestData"; +export { ExperimentsCreateExperimentV2RequestDataAttributes } from "./models/ExperimentsCreateExperimentV2RequestDataAttributes"; +export { ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfiguration } from "./models/ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfiguration"; +export { ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfigurationTargetingRulesItems } from "./models/ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfigurationTargetingRulesItems"; +export { ExperimentsCreateExperimentV2RequestDataAttributesDecisionMetricsItems } from "./models/ExperimentsCreateExperimentV2RequestDataAttributesDecisionMetricsItems"; +export { ExperimentsCreateExperimentV2RequestDataAttributesRelatedLinksItems } from "./models/ExperimentsCreateExperimentV2RequestDataAttributesRelatedLinksItems"; +export { ExperimentsCreateExperimentV2RequestDataAttributesSplitByPropertiesItems } from "./models/ExperimentsCreateExperimentV2RequestDataAttributesSplitByPropertiesItems"; +export { ExperimentsCreateExperimentV2RequestDataAttributesStructuredMetadataItems } from "./models/ExperimentsCreateExperimentV2RequestDataAttributesStructuredMetadataItems"; +export { ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureMode } from "./models/ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureMode"; +export { ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureStepsItems } from "./models/ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureStepsItems"; +export { ExperimentsCreateExperimentV2RequestDataAttributesVariantsItems } from "./models/ExperimentsCreateExperimentV2RequestDataAttributesVariantsItems"; +export { ExperimentsCreateExperimentV2RequestDataAttributesWarehouseExposureConfiguration } from "./models/ExperimentsCreateExperimentV2RequestDataAttributesWarehouseExposureConfiguration"; +export { ExperimentsCreateExposureSQLModelV2Request } from "./models/ExperimentsCreateExposureSQLModelV2Request"; +export { ExperimentsCreateExposureSQLModelV2RequestData } from "./models/ExperimentsCreateExposureSQLModelV2RequestData"; +export { ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType } from "./models/ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType"; +export { ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems } from "./models/ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems"; +export { ExperimentsCreateMetricCollectionV2Request } from "./models/ExperimentsCreateMetricCollectionV2Request"; +export { ExperimentsCreateMetricCollectionV2RequestData } from "./models/ExperimentsCreateMetricCollectionV2RequestData"; +export { ExperimentsCreateMetricCollectionV2RequestDataAttributes } from "./models/ExperimentsCreateMetricCollectionV2RequestDataAttributes"; +export { ExperimentsCreateMetricCollectionV2RequestDataAttributesMetricsItems } from "./models/ExperimentsCreateMetricCollectionV2RequestDataAttributesMetricsItems"; +export { ExperimentsCreateMetricNumeratorAttributes } from "./models/ExperimentsCreateMetricNumeratorAttributes"; +export { ExperimentsCreateMetricPercentileAttributes } from "./models/ExperimentsCreateMetricPercentileAttributes"; +export { ExperimentsCreateMetricSQLModelV2Request } from "./models/ExperimentsCreateMetricSQLModelV2Request"; +export { ExperimentsCreateMetricSQLModelV2RequestData } from "./models/ExperimentsCreateMetricSQLModelV2RequestData"; +export { ExperimentsCreateMetricSQLModelV2RequestDataAttributesMeasuresItems } from "./models/ExperimentsCreateMetricSQLModelV2RequestDataAttributesMeasuresItems"; +export { ExperimentsCreateMetricV2Request } from "./models/ExperimentsCreateMetricV2Request"; +export { ExperimentsCreateMetricV2RequestData } from "./models/ExperimentsCreateMetricV2RequestData"; +export { ExperimentsCreateMetricV2RequestDataAttributes } from "./models/ExperimentsCreateMetricV2RequestDataAttributes"; +export { ExperimentsCreateMetricV2RequestDataAttributesDataSourceType } from "./models/ExperimentsCreateMetricV2RequestDataAttributesDataSourceType"; +export { ExperimentsCreateMetricV2RequestDataAttributesDesiredChange } from "./models/ExperimentsCreateMetricV2RequestDataAttributesDesiredChange"; +export { ExperimentsCreateMetricV2RequestDataAttributesNumeratorAggregation } from "./models/ExperimentsCreateMetricV2RequestDataAttributesNumeratorAggregation"; +export { ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregation } from "./models/ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregation"; +export { ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregationWarehouseMetricMeasure } from "./models/ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregationWarehouseMetricMeasure"; +export { ExperimentsCreateSubjectTypeV2Request } from "./models/ExperimentsCreateSubjectTypeV2Request"; +export { ExperimentsCreateSubjectTypeV2RequestData } from "./models/ExperimentsCreateSubjectTypeV2RequestData"; +export { ExperimentsCreateSubjectTypeV2RequestDataAttributes } from "./models/ExperimentsCreateSubjectTypeV2RequestDataAttributes"; +export { ExperimentsDatadogEntryPointFilter } from "./models/ExperimentsDatadogEntryPointFilter"; +export { ExperimentsDatadogMetricAggregationInput } from "./models/ExperimentsDatadogMetricAggregationInput"; +export { ExperimentsDatadogMetricMeasureInput } from "./models/ExperimentsDatadogMetricMeasureInput"; +export { ExperimentsDatadogPercentileAggregationInput } from "./models/ExperimentsDatadogPercentileAggregationInput"; +export { ExperimentsDatadogPercentileMeasureInput } from "./models/ExperimentsDatadogPercentileMeasureInput"; +export { ExperimentsExperimentDiagnosticsV2DTO } from "./models/ExperimentsExperimentDiagnosticsV2DTO"; +export { ExperimentsExperimentDiagnosticsV2DTOData } from "./models/ExperimentsExperimentDiagnosticsV2DTOData"; +export { ExperimentsExperimentDiagnosticsV2DTODataAttributes } from "./models/ExperimentsExperimentDiagnosticsV2DTODataAttributes"; +export { ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItems } from "./models/ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItems"; +export { ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsSkippedReason } from "./models/ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsSkippedReason"; +export { ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsStatus } from "./models/ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsStatus"; +export { ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsType } from "./models/ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsType"; +export { ExperimentsExperimentDiagnosticsV2DTODataAttributesResult } from "./models/ExperimentsExperimentDiagnosticsV2DTODataAttributesResult"; +export { ExperimentsExperimentDiagnosticsV2DTODataAttributesState } from "./models/ExperimentsExperimentDiagnosticsV2DTODataAttributesState"; +export { ExperimentsExperimentDiagnosticsV2DTODataType } from "./models/ExperimentsExperimentDiagnosticsV2DTODataType"; +export { ExperimentsExperimentMetricGroupMutationV2 } from "./models/ExperimentsExperimentMetricGroupMutationV2"; +export { ExperimentsExperimentMetricGroupMutationV2Data } from "./models/ExperimentsExperimentMetricGroupMutationV2Data"; +export { ExperimentsExperimentMetricGroupMutationV2DataAttributesMetricsItems } from "./models/ExperimentsExperimentMetricGroupMutationV2DataAttributesMetricsItems"; +export { ExperimentsExperimentMetricGroupV2DTOArray } from "./models/ExperimentsExperimentMetricGroupV2DTOArray"; +export { ExperimentsExperimentMetricGroupV2DTODataAttributes } from "./models/ExperimentsExperimentMetricGroupV2DTODataAttributes"; +export { ExperimentsExperimentResultsV2MetaDTO } from "./models/ExperimentsExperimentResultsV2MetaDTO"; +export { ExperimentsExperimentV2DTO } from "./models/ExperimentsExperimentV2DTO"; +export { ExperimentsExperimentV2DTOData } from "./models/ExperimentsExperimentV2DTOData"; +export { ExperimentsExperimentV2DTODataAttributesConclusionOutcome } from "./models/ExperimentsExperimentV2DTODataAttributesConclusionOutcome"; +export { ExperimentsExperimentV2DTODataAttributesSplitByPropertiesItems } from "./models/ExperimentsExperimentV2DTODataAttributesSplitByPropertiesItems"; +export { ExperimentsExperimentV2DTODataAttributesStatus } from "./models/ExperimentsExperimentV2DTODataAttributesStatus"; +export { ExperimentsExperimentV2DTODataAttributesVariantsItems } from "./models/ExperimentsExperimentV2DTODataAttributesVariantsItems"; +export { ExperimentsExperimentV2ListDTOArray } from "./models/ExperimentsExperimentV2ListDTOArray"; +export { ExperimentsExperimentV2ListDTOData } from "./models/ExperimentsExperimentV2ListDTOData"; +export { ExperimentsExperimentV2ListDTODataAttributes } from "./models/ExperimentsExperimentV2ListDTODataAttributes"; +export { ExperimentsExposureSQLModelV2DTO } from "./models/ExperimentsExposureSQLModelV2DTO"; +export { ExperimentsExposureSQLModelV2DTOArray } from "./models/ExperimentsExposureSQLModelV2DTOArray"; +export { ExperimentsExposureSQLModelV2DTOData } from "./models/ExperimentsExposureSQLModelV2DTOData"; +export { ExperimentsExposureSQLModelV2DTODataAttributes } from "./models/ExperimentsExposureSQLModelV2DTODataAttributes"; +export { ExperimentsExposureSQLModelV2DTODataAttributesItems } from "./models/ExperimentsExposureSQLModelV2DTODataAttributesItems"; +export { ExperimentsInlineCondition } from "./models/ExperimentsInlineCondition"; +export { ExperimentsMeasureComparisonFilterInput } from "./models/ExperimentsMeasureComparisonFilterInput"; +export { ExperimentsMeasureComparisonFilterInputOperation } from "./models/ExperimentsMeasureComparisonFilterInputOperation"; +export { ExperimentsMeasureNullFilterInput } from "./models/ExperimentsMeasureNullFilterInput"; +export { ExperimentsMeasureRangeFilterInput } from "./models/ExperimentsMeasureRangeFilterInput"; +export { ExperimentsMeasureRangeFilterInputOperation } from "./models/ExperimentsMeasureRangeFilterInputOperation"; +export { ExperimentsMetricCollectionV2DTO } from "./models/ExperimentsMetricCollectionV2DTO"; +export { ExperimentsMetricCollectionV2DTOArray } from "./models/ExperimentsMetricCollectionV2DTOArray"; +export { ExperimentsMetricCollectionV2DTOData } from "./models/ExperimentsMetricCollectionV2DTOData"; +export { ExperimentsMetricCollectionV2DTODataAttributes } from "./models/ExperimentsMetricCollectionV2DTODataAttributes"; +export { ExperimentsMetricCollectionV2DTODataAttributesMetricsItems } from "./models/ExperimentsMetricCollectionV2DTODataAttributesMetricsItems"; +export { ExperimentsMetricPropertyFilter } from "./models/ExperimentsMetricPropertyFilter"; +export { ExperimentsMetricSQLModelPropertyInput } from "./models/ExperimentsMetricSQLModelPropertyInput"; +export { ExperimentsMetricSQLModelV2DTO } from "./models/ExperimentsMetricSQLModelV2DTO"; +export { ExperimentsMetricSQLModelV2DTOArray } from "./models/ExperimentsMetricSQLModelV2DTOArray"; +export { ExperimentsMetricSQLModelV2DTOData } from "./models/ExperimentsMetricSQLModelV2DTOData"; +export { ExperimentsMetricSQLModelV2DTODataAttributes } from "./models/ExperimentsMetricSQLModelV2DTODataAttributes"; +export { ExperimentsMetricSQLModelV2DTODataAttributesMeasuresItems } from "./models/ExperimentsMetricSQLModelV2DTODataAttributesMeasuresItems"; +export { ExperimentsMetricSQLModelV2DTODataAttributesSubjectTypesItems } from "./models/ExperimentsMetricSQLModelV2DTODataAttributesSubjectTypesItems"; +export { ExperimentsMetricV2DTO } from "./models/ExperimentsMetricV2DTO"; +export { ExperimentsMetricV2DTOArray } from "./models/ExperimentsMetricV2DTOArray"; +export { ExperimentsMetricV2DTOData } from "./models/ExperimentsMetricV2DTOData"; +export { ExperimentsMetricV2DTODataAttributes } from "./models/ExperimentsMetricV2DTODataAttributes"; +export { ExperimentsMetricV2DTODataAttributesDataSourceType } from "./models/ExperimentsMetricV2DTODataAttributesDataSourceType"; +export { ExperimentsMetricV2DTODataAttributesDesiredChange } from "./models/ExperimentsMetricV2DTODataAttributesDesiredChange"; +export { ExperimentsMetricV2DTODataAttributesMetricType } from "./models/ExperimentsMetricV2DTODataAttributesMetricType"; +export { ExperimentsMetricV2DTODataAttributesNumeratorAggregation } from "./models/ExperimentsMetricV2DTODataAttributesNumeratorAggregation"; +export { ExperimentsMetricV2DTODataAttributesPercentileAggregation } from "./models/ExperimentsMetricV2DTODataAttributesPercentileAggregation"; +export { ExperimentsMetricV2DTODataAttributesPercentileAggregationDatadogMetricMeasure } from "./models/ExperimentsMetricV2DTODataAttributesPercentileAggregationDatadogMetricMeasure"; +export { ExperimentsMetricV2DTODataAttributesPercentileAggregationWarehouseMetricMeasure } from "./models/ExperimentsMetricV2DTODataAttributesPercentileAggregationWarehouseMetricMeasure"; +export { ExperimentsNullableDatadogMetricMeasureInput } from "./models/ExperimentsNullableDatadogMetricMeasureInput"; +export { ExperimentsNullableDatadogPercentileMeasureInput } from "./models/ExperimentsNullableDatadogPercentileMeasureInput"; +export { ExperimentsNullableWarehouseMetricMeasureInput } from "./models/ExperimentsNullableWarehouseMetricMeasureInput"; +export { ExperimentsOffsetLinks } from "./models/ExperimentsOffsetLinks"; +export { ExperimentsOffsetMeta } from "./models/ExperimentsOffsetMeta"; +export { ExperimentsOffsetMetaPage } from "./models/ExperimentsOffsetMetaPage"; +export { ExperimentsPatchExperimentMetricGroupV2Request } from "./models/ExperimentsPatchExperimentMetricGroupV2Request"; +export { ExperimentsPatchExperimentMetricGroupV2RequestData } from "./models/ExperimentsPatchExperimentMetricGroupV2RequestData"; +export { ExperimentsPatchExperimentMetricGroupV2RequestDataAttributes } from "./models/ExperimentsPatchExperimentMetricGroupV2RequestDataAttributes"; +export { ExperimentsPatchExperimentMetricGroupV2RequestDataType } from "./models/ExperimentsPatchExperimentMetricGroupV2RequestDataType"; +export { ExperimentsPatchExperimentV2MetaDTO } from "./models/ExperimentsPatchExperimentV2MetaDTO"; +export { ExperimentsPatchExperimentV2MetaDTOWarningsItems } from "./models/ExperimentsPatchExperimentV2MetaDTOWarningsItems"; +export { ExperimentsPatchExperimentV2Request } from "./models/ExperimentsPatchExperimentV2Request"; +export { ExperimentsPatchExperimentV2RequestData } from "./models/ExperimentsPatchExperimentV2RequestData"; +export { ExperimentsPatchExperimentV2RequestDataAttributes } from "./models/ExperimentsPatchExperimentV2RequestDataAttributes"; +export { ExperimentsPatchExperimentV2RequestDataAttributesDatadogFlagConfiguration } from "./models/ExperimentsPatchExperimentV2RequestDataAttributesDatadogFlagConfiguration"; +export { ExperimentsPatchExperimentV2Response } from "./models/ExperimentsPatchExperimentV2Response"; +export { ExperimentsPatchExperimentV2ResponseDataAttributes } from "./models/ExperimentsPatchExperimentV2ResponseDataAttributes"; +export { ExperimentsPatchExperimentV2ResponseDataAttributesConclusion } from "./models/ExperimentsPatchExperimentV2ResponseDataAttributesConclusion"; +export { ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfiguration } from "./models/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfiguration"; +export { ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPoint } from "./models/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPoint"; +export { ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsColumnType } from "./models/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsColumnType"; +export { ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsOperation } from "./models/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsOperation"; +export { ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationTargetingRulesItemsConditionsItemsOperator } from "./models/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationTargetingRulesItemsConditionsItemsOperator"; +export { ExperimentsPatchExperimentV2ResponseDataAttributesSplitByPropertiesItemsColumnType } from "./models/ExperimentsPatchExperimentV2ResponseDataAttributesSplitByPropertiesItemsColumnType"; +export { ExperimentsPatchExperimentV2ResponseDataAttributesStructuredMetadataItemsFieldType } from "./models/ExperimentsPatchExperimentV2ResponseDataAttributesStructuredMetadataItemsFieldType"; +export { ExperimentsPatchExperimentV2ResponseDataAttributesTrafficExposure } from "./models/ExperimentsPatchExperimentV2ResponseDataAttributesTrafficExposure"; +export { ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfiguration } from "./models/ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfiguration"; +export { ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPoint } from "./models/ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPoint"; +export { ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPointFiltersItemsOperation } from "./models/ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPointFiltersItemsOperation"; +export { ExperimentsPatchExperimentV2ResponseDataType } from "./models/ExperimentsPatchExperimentV2ResponseDataType"; +export { ExperimentsPatchMetricCollectionV2Request } from "./models/ExperimentsPatchMetricCollectionV2Request"; +export { ExperimentsPatchMetricCollectionV2RequestData } from "./models/ExperimentsPatchMetricCollectionV2RequestData"; +export { ExperimentsPatchMetricCollectionV2RequestDataAttributes } from "./models/ExperimentsPatchMetricCollectionV2RequestDataAttributes"; +export { ExperimentsPatchMetricCollectionV2RequestDataType } from "./models/ExperimentsPatchMetricCollectionV2RequestDataType"; +export { ExperimentsPatchSubjectTypeV2Request } from "./models/ExperimentsPatchSubjectTypeV2Request"; +export { ExperimentsPatchSubjectTypeV2RequestData } from "./models/ExperimentsPatchSubjectTypeV2RequestData"; +export { ExperimentsPatchSubjectTypeV2RequestDataAttributes } from "./models/ExperimentsPatchSubjectTypeV2RequestDataAttributes"; +export { ExperimentsPropertyFilterInput } from "./models/ExperimentsPropertyFilterInput"; +export { ExperimentsPropertyNullFilterInput } from "./models/ExperimentsPropertyNullFilterInput"; +export { ExperimentsPropertyNullFilterInputOperation } from "./models/ExperimentsPropertyNullFilterInputOperation"; +export { ExperimentsPublicProtocolListResponseArray } from "./models/ExperimentsPublicProtocolListResponseArray"; +export { ExperimentsPublicProtocolListResponseData } from "./models/ExperimentsPublicProtocolListResponseData"; +export { ExperimentsPublicProtocolListResponseDataAttributes } from "./models/ExperimentsPublicProtocolListResponseDataAttributes"; +export { ExperimentsPublicProtocolResponse } from "./models/ExperimentsPublicProtocolResponse"; +export { ExperimentsPublicProtocolResponseData } from "./models/ExperimentsPublicProtocolResponseData"; +export { ExperimentsPublicProtocolResponseDataAttributes } from "./models/ExperimentsPublicProtocolResponseDataAttributes"; +export { ExperimentsPublicProtocolResponseDataAttributesAnalysisPlan } from "./models/ExperimentsPublicProtocolResponseDataAttributesAnalysisPlan"; +export { ExperimentsPublicProtocolResponseDataAttributesAssignmentSourceDefaultPropertiesItems } from "./models/ExperimentsPublicProtocolResponseDataAttributesAssignmentSourceDefaultPropertiesItems"; +export { ExperimentsPublicProtocolResponseDataAttributesEnforcement } from "./models/ExperimentsPublicProtocolResponseDataAttributesEnforcement"; +export { ExperimentsPublicProtocolResponseDataAttributesExposureSchedule } from "./models/ExperimentsPublicProtocolResponseDataAttributesExposureSchedule"; +export { ExperimentsPublicProtocolResponseDataAttributesExposureScheduleRolloutStepsItems } from "./models/ExperimentsPublicProtocolResponseDataAttributesExposureScheduleRolloutStepsItems"; +export { ExperimentsPublicProtocolResponseDataAttributesMetricGroupsItems } from "./models/ExperimentsPublicProtocolResponseDataAttributesMetricGroupsItems"; +export { ExperimentsPublicProtocolResponseDataAttributesStatus } from "./models/ExperimentsPublicProtocolResponseDataAttributesStatus"; +export { ExperimentsPublicProtocolResponseDataAttributesSubjectType } from "./models/ExperimentsPublicProtocolResponseDataAttributesSubjectType"; +export { ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItems } from "./models/ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItems"; +export { ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItemsConditionsItems } from "./models/ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItemsConditionsItems"; +export { ExperimentsPublicProtocolResponseDataType } from "./models/ExperimentsPublicProtocolResponseDataType"; +export { ExperimentsRefreshExperimentResultsBatchMetaV2DTO } from "./models/ExperimentsRefreshExperimentResultsBatchMetaV2DTO"; +export { ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItems } from "./models/ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItems"; +export { ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItemsOutcome } from "./models/ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItemsOutcome"; +export { ExperimentsRefreshExperimentResultsV2DTO } from "./models/ExperimentsRefreshExperimentResultsV2DTO"; +export { ExperimentsRefreshExperimentResultsV2DTOArray } from "./models/ExperimentsRefreshExperimentResultsV2DTOArray"; +export { ExperimentsRefreshExperimentResultsV2DTOData } from "./models/ExperimentsRefreshExperimentResultsV2DTOData"; +export { ExperimentsRefreshExperimentResultsV2DTODataAttributes } from "./models/ExperimentsRefreshExperimentResultsV2DTODataAttributes"; +export { ExperimentsRefreshExperimentResultsV2DTODataType } from "./models/ExperimentsRefreshExperimentResultsV2DTODataType"; +export { ExperimentsSavedFilterCondition } from "./models/ExperimentsSavedFilterCondition"; +export { ExperimentsSQLModelPropertyInput } from "./models/ExperimentsSQLModelPropertyInput"; +export { ExperimentsStartExperimentV2Request } from "./models/ExperimentsStartExperimentV2Request"; +export { ExperimentsStartExperimentV2RequestData } from "./models/ExperimentsStartExperimentV2RequestData"; +export { ExperimentsStartExperimentV2RequestDataType } from "./models/ExperimentsStartExperimentV2RequestDataType"; +export { ExperimentsStructuredMetadataResponse } from "./models/ExperimentsStructuredMetadataResponse"; +export { ExperimentsSubjectTypeV2DTO } from "./models/ExperimentsSubjectTypeV2DTO"; +export { ExperimentsSubjectTypeV2DTOArray } from "./models/ExperimentsSubjectTypeV2DTOArray"; +export { ExperimentsSubjectTypeV2DTOData } from "./models/ExperimentsSubjectTypeV2DTOData"; +export { ExperimentsSubjectTypeV2DTODataAttributes } from "./models/ExperimentsSubjectTypeV2DTODataAttributes"; +export { ExperimentsSubjectTypeV2DTODataType } from "./models/ExperimentsSubjectTypeV2DTODataType"; +export { ExperimentsTargetingRuleCondition } from "./models/ExperimentsTargetingRuleCondition"; +export { ExperimentsTrafficSummaryV2DTO } from "./models/ExperimentsTrafficSummaryV2DTO"; +export { ExperimentsTrafficSummaryV2DTOData } from "./models/ExperimentsTrafficSummaryV2DTOData"; +export { ExperimentsTrafficSummaryV2DTODataAttributes } from "./models/ExperimentsTrafficSummaryV2DTODataAttributes"; +export { ExperimentsTrafficSummaryV2DTODataAttributesVariantsItems } from "./models/ExperimentsTrafficSummaryV2DTODataAttributesVariantsItems"; +export { ExperimentsTrafficSummaryV2DTODataType } from "./models/ExperimentsTrafficSummaryV2DTODataType"; +export { ExperimentsUpdateExposureSQLModelV2RequestDataAttributes } from "./models/ExperimentsUpdateExposureSQLModelV2RequestDataAttributes"; +export { ExperimentsUpdateExposureSQLModelV2RequestDataType } from "./models/ExperimentsUpdateExposureSQLModelV2RequestDataType"; +export { ExperimentsUpdateExposureSQLModelV2Response } from "./models/ExperimentsUpdateExposureSQLModelV2Response"; +export { ExperimentsUpdateExposureSQLModelV2ResponseMeta } from "./models/ExperimentsUpdateExposureSQLModelV2ResponseMeta"; +export { ExperimentsUpdateMetricSQLModelV2RequestDataAttributes } from "./models/ExperimentsUpdateMetricSQLModelV2RequestDataAttributes"; +export { ExperimentsUpdateMetricSQLModelV2RequestDataType } from "./models/ExperimentsUpdateMetricSQLModelV2RequestDataType"; +export { ExperimentsUpdateMetricSQLModelV2Response } from "./models/ExperimentsUpdateMetricSQLModelV2Response"; +export { ExperimentsUpdateMetricSQLModelV2ResponseMeta } from "./models/ExperimentsUpdateMetricSQLModelV2ResponseMeta"; +export { ExperimentsUpdateMetricV2Request } from "./models/ExperimentsUpdateMetricV2Request"; +export { ExperimentsUpdateMetricV2RequestData } from "./models/ExperimentsUpdateMetricV2RequestData"; +export { ExperimentsUpdateMetricV2RequestDataAttributes } from "./models/ExperimentsUpdateMetricV2RequestDataAttributes"; +export { ExperimentsVariantResultsV2DTOArray } from "./models/ExperimentsVariantResultsV2DTOArray"; +export { ExperimentsVariantResultsV2DTOData } from "./models/ExperimentsVariantResultsV2DTOData"; +export { ExperimentsVariantResultsV2DTODataAttributes } from "./models/ExperimentsVariantResultsV2DTODataAttributes"; +export { ExperimentsVariantResultsV2DTODataAttributesMetricsItems } from "./models/ExperimentsVariantResultsV2DTODataAttributesMetricsItems"; +export { ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItems } from "./models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItems"; +export { ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsConfidenceInterval } from "./models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsConfidenceInterval"; +export { ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsLiftType } from "./models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsLiftType"; +export { ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsMethod } from "./models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsMethod"; +export { ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsUnreliableReason } from "./models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsUnreliableReason"; +export { ExperimentsVariantResultsV2DTODataAttributesMetricsItemsCoverageSummary } from "./models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsCoverageSummary"; +export { ExperimentsVariantResultsV2DTODataType } from "./models/ExperimentsVariantResultsV2DTODataType"; +export { ExperimentsWarehouseExposureFilter } from "./models/ExperimentsWarehouseExposureFilter"; +export { ExperimentsWarehouseFilterInput } from "./models/ExperimentsWarehouseFilterInput"; +export { ExperimentsWarehouseMetricAggregationInput } from "./models/ExperimentsWarehouseMetricAggregationInput"; +export { ExperimentsWarehousePercentileAggregationInput } from "./models/ExperimentsWarehousePercentileAggregationInput"; export { ExposureRolloutStepRequest } from "./models/ExposureRolloutStepRequest"; export { ExposureScheduleRequest } from "./models/ExposureScheduleRequest"; export { FacetInfoRequest } from "./models/FacetInfoRequest"; @@ -4450,6 +4736,9 @@ export { FeatureFlagListItemAttributes } from "./models/FeatureFlagListItemAttri export { FeatureFlagResponse } from "./models/FeatureFlagResponse"; export { FeatureFlagsPaginationMeta } from "./models/FeatureFlagsPaginationMeta"; export { FeatureFlagsPaginationMetaPage } from "./models/FeatureFlagsPaginationMetaPage"; +export { FeatureFlagStalenessCodeReference } from "./models/FeatureFlagStalenessCodeReference"; +export { FeatureFlagStalenessDetails } from "./models/FeatureFlagStalenessDetails"; +export { FeatureFlagStalenessRecommendedAction } from "./models/FeatureFlagStalenessRecommendedAction"; export { FeatureFlagStatus } from "./models/FeatureFlagStatus"; export { FileCoverageLines } from "./models/FileCoverageLines"; export { FilesCoverageAttributes } from "./models/FilesCoverageAttributes"; diff --git a/packages/datadog-api-client-v2/models/EnvironmentAttributes.ts b/packages/datadog-api-client-v2/models/EnvironmentAttributes.ts index e6bff2ffb3f2..f446ae5e5967 100644 --- a/packages/datadog-api-client-v2/models/EnvironmentAttributes.ts +++ b/packages/datadog-api-client-v2/models/EnvironmentAttributes.ts @@ -30,6 +30,10 @@ export class EnvironmentAttributes { * The name of the environment. */ "name": string; + /** + * Indicates whether feature flag evaluation events include original targeting identifiers and full evaluation context. + */ + "observeFullEvaluationData"?: boolean; /** * List of queries to define the environment scope. */ @@ -81,6 +85,10 @@ export class EnvironmentAttributes { type: "string", required: true, }, + observeFullEvaluationData: { + baseName: "observe_full_evaluation_data", + type: "boolean", + }, queries: { baseName: "queries", type: "Array", diff --git a/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanV2DTO.ts b/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanV2DTO.ts new file mode 100644 index 000000000000..9d29bbacd9d3 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanV2DTO.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsAnalysisPlanV2DTOData } from "./ExperimentsAnalysisPlanV2DTOData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Response containing the analysis settings for an experiment. + */ +export class ExperimentsAnalysisPlanV2DTO { + /** + * Analysis plan resource with its identifier and settings. + */ + "data": ExperimentsAnalysisPlanV2DTOData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsAnalysisPlanV2DTOData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsAnalysisPlanV2DTO.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanV2DTOData.ts b/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanV2DTOData.ts new file mode 100644 index 000000000000..ab3b39a43e1a --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanV2DTOData.ts @@ -0,0 +1,73 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsAnalysisPlanV2MutationResponseDataAttributes } from "./ExperimentsAnalysisPlanV2MutationResponseDataAttributes"; +import { ExperimentsAnalysisPlanWriteV2RequestDataType } from "./ExperimentsAnalysisPlanWriteV2RequestDataType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Analysis plan resource with its identifier and settings. + */ +export class ExperimentsAnalysisPlanV2DTOData { + /** + * Statistical settings and duration targets in the saved analysis plan. + */ + "attributes"?: ExperimentsAnalysisPlanV2MutationResponseDataAttributes; + /** + * Identifier of the experiment whose analysis plan is returned. + */ + "id": string; + /** + * Analysis plans resource type. + */ + "type": ExperimentsAnalysisPlanWriteV2RequestDataType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsAnalysisPlanV2MutationResponseDataAttributes", + }, + id: { + baseName: "id", + type: "string", + required: true, + format: "uuid", + }, + type: { + baseName: "type", + type: "ExperimentsAnalysisPlanWriteV2RequestDataType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsAnalysisPlanV2DTOData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanV2DTODataAttributesConfidenceIntervalMethod.ts b/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanV2DTODataAttributesConfidenceIntervalMethod.ts new file mode 100644 index 000000000000..75518b0b00ef --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanV2DTODataAttributesConfidenceIntervalMethod.ts @@ -0,0 +1,23 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Statistical method used to calculate the experiment results. + */ + +export type ExperimentsAnalysisPlanV2DTODataAttributesConfidenceIntervalMethod = + + | typeof SEQUENTIAL + | typeof FIXEDSAMPLE + | typeof BAYESIAN + | typeof SEQUENTIALFIXEDHYBRID + | UnparsedObject; +export const SEQUENTIAL = "Sequential"; +export const FIXEDSAMPLE = "FixedSample"; +export const BAYESIAN = "Bayesian"; +export const SEQUENTIALFIXEDHYBRID = "SequentialFixedHybrid"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanV2MutationResponse.ts b/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanV2MutationResponse.ts new file mode 100644 index 000000000000..c553f39ee898 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanV2MutationResponse.ts @@ -0,0 +1,63 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsAnalysisPlanV2DTOData } from "./ExperimentsAnalysisPlanV2DTOData"; +import { ExperimentsPatchExperimentV2MetaDTO } from "./ExperimentsPatchExperimentV2MetaDTO"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Response containing the saved analysis plan and result refresh information. + */ +export class ExperimentsAnalysisPlanV2MutationResponse { + /** + * Analysis plan resource with its identifier and settings. + */ + "data": ExperimentsAnalysisPlanV2DTOData; + /** + * Refresh requirements and warnings returned by an experiment update. + */ + "meta"?: ExperimentsPatchExperimentV2MetaDTO; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsAnalysisPlanV2DTOData", + required: true, + }, + meta: { + baseName: "meta", + type: "ExperimentsPatchExperimentV2MetaDTO", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsAnalysisPlanV2MutationResponse.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanV2MutationResponseDataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanV2MutationResponseDataAttributes.ts new file mode 100644 index 000000000000..25055d7e2678 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanV2MutationResponseDataAttributes.ts @@ -0,0 +1,149 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsAnalysisPlanV2DTODataAttributesConfidenceIntervalMethod } from "./ExperimentsAnalysisPlanV2DTODataAttributesConfidenceIntervalMethod"; +import { ExperimentsAnalysisPlanV2MutationResponseDataAttributesBayesianPrior } from "./ExperimentsAnalysisPlanV2MutationResponseDataAttributesBayesianPrior"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Statistical settings and duration targets in the saved analysis plan. + */ +export class ExperimentsAnalysisPlanV2MutationResponseDataAttributes { + /** + * Parameters of the prior distribution used for Bayesian analysis. + */ + "bayesianPrior"?: ExperimentsAnalysisPlanV2MutationResponseDataAttributesBayesianPrior; + /** + * Statistical method used to calculate the experiment results. + */ + "confidenceIntervalMethod"?: ExperimentsAnalysisPlanV2DTODataAttributesConfidenceIntervalMethod; + /** + * Confidence level used for statistical analysis, expressed as a fraction. + */ + "confidenceLevel"?: number; + /** + * Number of days of pre-experiment data used for CUPED variance reduction. + */ + "cupedLookbackPeriodDays"?: number; + /** + * Number of days configured for the experiment to end automatically. + */ + "experimentAutoEndDays"?: number; + /** + * Minimum experiment duration in days configured in the analysis plan. + */ + "experimentMinDuration"?: number; + /** + * Minimum sample size configured in the analysis plan. + */ + "experimentMinSampleSize"?: number; + /** + * Whether the experiment has custom analysis settings. + */ + "hasCustomAnalysisSettings"?: boolean; + /** + * Whether CUPED uses pre-experiment data to reduce variance in the analysis. + */ + "isCupedEnabled"?: boolean; + /** + * Whether the analysis adjusts for testing multiple hypotheses. + */ + "isMultipleTestingCorrectionEnabled"?: boolean; + /** + * Weight assigned to the primary metric in the preferential Bonferroni correction. + */ + "preferentialBonferroniPrimaryMetricWeight"?: number; + /** + * Planned experiment duration in days. + */ + "targetDurationDays"?: number; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + bayesianPrior: { + baseName: "bayesian_prior", + type: "ExperimentsAnalysisPlanV2MutationResponseDataAttributesBayesianPrior", + }, + confidenceIntervalMethod: { + baseName: "confidence_interval_method", + type: "ExperimentsAnalysisPlanV2DTODataAttributesConfidenceIntervalMethod", + }, + confidenceLevel: { + baseName: "confidence_level", + type: "number", + format: "double", + }, + cupedLookbackPeriodDays: { + baseName: "cuped_lookback_period_days", + type: "number", + format: "int64", + }, + experimentAutoEndDays: { + baseName: "experiment_auto_end_days", + type: "number", + format: "int64", + }, + experimentMinDuration: { + baseName: "experiment_min_duration", + type: "number", + format: "int64", + }, + experimentMinSampleSize: { + baseName: "experiment_min_sample_size", + type: "number", + format: "int64", + }, + hasCustomAnalysisSettings: { + baseName: "has_custom_analysis_settings", + type: "boolean", + }, + isCupedEnabled: { + baseName: "is_cuped_enabled", + type: "boolean", + }, + isMultipleTestingCorrectionEnabled: { + baseName: "is_multiple_testing_correction_enabled", + type: "boolean", + }, + preferentialBonferroniPrimaryMetricWeight: { + baseName: "preferential_bonferroni_primary_metric_weight", + type: "number", + format: "double", + }, + targetDurationDays: { + baseName: "target_duration_days", + type: "number", + format: "int64", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsAnalysisPlanV2MutationResponseDataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanV2MutationResponseDataAttributesBayesianPrior.ts b/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanV2MutationResponseDataAttributesBayesianPrior.ts new file mode 100644 index 000000000000..78a7ff691af3 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanV2MutationResponseDataAttributesBayesianPrior.ts @@ -0,0 +1,62 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Parameters of the prior distribution used for Bayesian analysis. + */ +export class ExperimentsAnalysisPlanV2MutationResponseDataAttributesBayesianPrior { + /** + * Degrees of freedom of the prior distribution. + */ + "degreesOfFreedom"?: number; + /** + * Standard deviation of the prior distribution. + */ + "standardDeviation"?: number; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + degreesOfFreedom: { + baseName: "degrees_of_freedom", + type: "number", + format: "double", + }, + standardDeviation: { + baseName: "standard_deviation", + type: "number", + format: "double", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsAnalysisPlanV2MutationResponseDataAttributesBayesianPrior.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanWriteV2Request.ts b/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanWriteV2Request.ts new file mode 100644 index 000000000000..fa2400daca01 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanWriteV2Request.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsAnalysisPlanWriteV2RequestData } from "./ExperimentsAnalysisPlanWriteV2RequestData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Request to update the analysis settings for an experiment. + */ +export class ExperimentsAnalysisPlanWriteV2Request { + /** + * Analysis plan resource to update. + */ + "data": ExperimentsAnalysisPlanWriteV2RequestData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsAnalysisPlanWriteV2RequestData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsAnalysisPlanWriteV2Request.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanWriteV2RequestData.ts b/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanWriteV2RequestData.ts new file mode 100644 index 000000000000..8eea6f819633 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanWriteV2RequestData.ts @@ -0,0 +1,72 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsAnalysisPlanWriteV2RequestDataAttributes } from "./ExperimentsAnalysisPlanWriteV2RequestDataAttributes"; +import { ExperimentsAnalysisPlanWriteV2RequestDataType } from "./ExperimentsAnalysisPlanWriteV2RequestDataType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Analysis plan resource to update. + */ +export class ExperimentsAnalysisPlanWriteV2RequestData { + /** + * Statistical settings and duration targets to apply to the experiment. + */ + "attributes"?: ExperimentsAnalysisPlanWriteV2RequestDataAttributes; + /** + * Identifier of the experiment. If supplied, it must match experiment_id in the path. + */ + "id"?: string; + /** + * Analysis plans resource type. + */ + "type": ExperimentsAnalysisPlanWriteV2RequestDataType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsAnalysisPlanWriteV2RequestDataAttributes", + }, + id: { + baseName: "id", + type: "string", + format: "uuid", + }, + type: { + baseName: "type", + type: "ExperimentsAnalysisPlanWriteV2RequestDataType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsAnalysisPlanWriteV2RequestData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanWriteV2RequestDataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanWriteV2RequestDataAttributes.ts new file mode 100644 index 000000000000..5abddb5c0577 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanWriteV2RequestDataAttributes.ts @@ -0,0 +1,141 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsAnalysisPlanV2DTODataAttributesConfidenceIntervalMethod } from "./ExperimentsAnalysisPlanV2DTODataAttributesConfidenceIntervalMethod"; +import { ExperimentsAnalysisPlanWriteV2RequestDataAttributesBayesianPrior } from "./ExperimentsAnalysisPlanWriteV2RequestDataAttributesBayesianPrior"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Statistical settings and duration targets to apply to the experiment. + */ +export class ExperimentsAnalysisPlanWriteV2RequestDataAttributes { + /** + * Parameters of the prior distribution to use for Bayesian analysis. + */ + "bayesianPrior"?: ExperimentsAnalysisPlanWriteV2RequestDataAttributesBayesianPrior; + /** + * Statistical method used to calculate the experiment results. + */ + "confidenceIntervalMethod"?: ExperimentsAnalysisPlanV2DTODataAttributesConfidenceIntervalMethod; + /** + * Confidence level used for statistical analysis, expressed as a fraction. + */ + "confidenceLevel"?: number; + /** + * Only a 30-day CUPED lookback is supported. + */ + "cupedLookbackPeriodDays"?: number; + /** + * Number of days configured for the experiment to end automatically. + */ + "experimentAutoEndDays"?: number; + /** + * Minimum experiment duration in days configured in the analysis plan. + */ + "experimentMinDuration"?: number; + /** + * Minimum sample size configured in the analysis plan. + */ + "experimentMinSampleSize"?: number; + /** + * Whether CUPED uses pre-experiment data to reduce variance in the analysis. + */ + "isCupedEnabled"?: boolean; + /** + * Whether the analysis adjusts for testing multiple hypotheses. + */ + "isMultipleTestingCorrectionEnabled"?: boolean; + /** + * Weight assigned to the primary metric in the preferential Bonferroni correction. + */ + "preferentialBonferroniPrimaryMetricWeight"?: number; + /** + * Planned experiment duration in days. + */ + "targetDurationDays"?: number; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + bayesianPrior: { + baseName: "bayesian_prior", + type: "ExperimentsAnalysisPlanWriteV2RequestDataAttributesBayesianPrior", + }, + confidenceIntervalMethod: { + baseName: "confidence_interval_method", + type: "ExperimentsAnalysisPlanV2DTODataAttributesConfidenceIntervalMethod", + }, + confidenceLevel: { + baseName: "confidence_level", + type: "number", + format: "double", + }, + cupedLookbackPeriodDays: { + baseName: "cuped_lookback_period_days", + type: "number", + format: "int64", + }, + experimentAutoEndDays: { + baseName: "experiment_auto_end_days", + type: "number", + format: "int64", + }, + experimentMinDuration: { + baseName: "experiment_min_duration", + type: "number", + format: "int64", + }, + experimentMinSampleSize: { + baseName: "experiment_min_sample_size", + type: "number", + format: "int64", + }, + isCupedEnabled: { + baseName: "is_cuped_enabled", + type: "boolean", + }, + isMultipleTestingCorrectionEnabled: { + baseName: "is_multiple_testing_correction_enabled", + type: "boolean", + }, + preferentialBonferroniPrimaryMetricWeight: { + baseName: "preferential_bonferroni_primary_metric_weight", + type: "number", + format: "double", + }, + targetDurationDays: { + baseName: "target_duration_days", + type: "number", + format: "int64", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsAnalysisPlanWriteV2RequestDataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanWriteV2RequestDataAttributesBayesianPrior.ts b/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanWriteV2RequestDataAttributesBayesianPrior.ts new file mode 100644 index 000000000000..0eb59ef380ff --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanWriteV2RequestDataAttributesBayesianPrior.ts @@ -0,0 +1,63 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Parameters of the prior distribution to use for Bayesian analysis. + */ +export class ExperimentsAnalysisPlanWriteV2RequestDataAttributesBayesianPrior { + /** + * Degrees of freedom of the prior distribution. + */ + "degreesOfFreedom"?: number; + /** + * Standard deviation of the prior distribution. + */ + "standardDeviation": number; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + degreesOfFreedom: { + baseName: "degrees_of_freedom", + type: "number", + format: "double", + }, + standardDeviation: { + baseName: "standard_deviation", + type: "number", + required: true, + format: "double", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsAnalysisPlanWriteV2RequestDataAttributesBayesianPrior.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanWriteV2RequestDataType.ts b/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanWriteV2RequestDataType.ts new file mode 100644 index 000000000000..46c5317a396b --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsAnalysisPlanWriteV2RequestDataType.ts @@ -0,0 +1,16 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Analysis plans resource type. + */ + +export type ExperimentsAnalysisPlanWriteV2RequestDataType = + | typeof ANALYSIS_PLANS + | UnparsedObject; +export const ANALYSIS_PLANS = "analysis-plans"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsCancelExperimentV2Request.ts b/packages/datadog-api-client-v2/models/ExperimentsCancelExperimentV2Request.ts new file mode 100644 index 000000000000..d019ecb3ae74 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCancelExperimentV2Request.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCancelExperimentV2RequestData } from "./ExperimentsCancelExperimentV2RequestData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Request to cancel an experiment and record a reason. + */ +export class ExperimentsCancelExperimentV2Request { + /** + * Experiment cancellation resource with the experiment identifier and reason. + */ + "data": ExperimentsCancelExperimentV2RequestData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsCancelExperimentV2RequestData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCancelExperimentV2Request.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCancelExperimentV2RequestData.ts b/packages/datadog-api-client-v2/models/ExperimentsCancelExperimentV2RequestData.ts new file mode 100644 index 000000000000..998c2bf8d59b --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCancelExperimentV2RequestData.ts @@ -0,0 +1,72 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCancelExperimentV2RequestDataAttributes } from "./ExperimentsCancelExperimentV2RequestDataAttributes"; +import { ExperimentsCancelExperimentV2RequestDataType } from "./ExperimentsCancelExperimentV2RequestDataType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Experiment cancellation resource with the experiment identifier and reason. + */ +export class ExperimentsCancelExperimentV2RequestData { + /** + * Reason to record when canceling the experiment. + */ + "attributes": ExperimentsCancelExperimentV2RequestDataAttributes; + /** + * Identifier of the experiment to cancel. + */ + "id"?: string; + /** + * Cancel experiment request resource type. + */ + "type": ExperimentsCancelExperimentV2RequestDataType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsCancelExperimentV2RequestDataAttributes", + required: true, + }, + id: { + baseName: "id", + type: "string", + }, + type: { + baseName: "type", + type: "ExperimentsCancelExperimentV2RequestDataType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCancelExperimentV2RequestData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCancelExperimentV2RequestDataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsCancelExperimentV2RequestDataAttributes.ts new file mode 100644 index 000000000000..53fc5a11014c --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCancelExperimentV2RequestDataAttributes.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Reason to record when canceling the experiment. + */ +export class ExperimentsCancelExperimentV2RequestDataAttributes { + /** + * Reason the experiment was canceled. Stored as the decision reason on the experiment conclusion. Must not + * be blank. + */ + "reason": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + reason: { + baseName: "reason", + type: "string", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCancelExperimentV2RequestDataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCancelExperimentV2RequestDataType.ts b/packages/datadog-api-client-v2/models/ExperimentsCancelExperimentV2RequestDataType.ts new file mode 100644 index 000000000000..55b21755b471 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCancelExperimentV2RequestDataType.ts @@ -0,0 +1,16 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Cancel experiment request resource type. + */ + +export type ExperimentsCancelExperimentV2RequestDataType = + | typeof CANCEL_EXPERIMENT_REQUEST + | UnparsedObject; +export const CANCEL_EXPERIMENT_REQUEST = "cancel-experiment-request"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsConcludeExperimentV2Request.ts b/packages/datadog-api-client-v2/models/ExperimentsConcludeExperimentV2Request.ts new file mode 100644 index 000000000000..e4c0e0529768 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsConcludeExperimentV2Request.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsConcludeExperimentV2RequestData } from "./ExperimentsConcludeExperimentV2RequestData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Request to conclude an experiment with a winning variant. + */ +export class ExperimentsConcludeExperimentV2Request { + /** + * Experiment conclusion resource with the experiment identifier and decision. + */ + "data": ExperimentsConcludeExperimentV2RequestData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsConcludeExperimentV2RequestData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsConcludeExperimentV2Request.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsConcludeExperimentV2RequestData.ts b/packages/datadog-api-client-v2/models/ExperimentsConcludeExperimentV2RequestData.ts new file mode 100644 index 000000000000..3062089eed8c --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsConcludeExperimentV2RequestData.ts @@ -0,0 +1,72 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsConcludeExperimentV2RequestDataAttributes } from "./ExperimentsConcludeExperimentV2RequestDataAttributes"; +import { ExperimentsConcludeExperimentV2RequestDataType } from "./ExperimentsConcludeExperimentV2RequestDataType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Experiment conclusion resource with the experiment identifier and decision. + */ +export class ExperimentsConcludeExperimentV2RequestData { + /** + * Decision to record when concluding the experiment. + */ + "attributes": ExperimentsConcludeExperimentV2RequestDataAttributes; + /** + * Identifier of the experiment to conclude. + */ + "id"?: string; + /** + * Conclude experiment request resource type. + */ + "type": ExperimentsConcludeExperimentV2RequestDataType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsConcludeExperimentV2RequestDataAttributes", + required: true, + }, + id: { + baseName: "id", + type: "string", + }, + type: { + baseName: "type", + type: "ExperimentsConcludeExperimentV2RequestDataType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsConcludeExperimentV2RequestData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsConcludeExperimentV2RequestDataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsConcludeExperimentV2RequestDataAttributes.ts new file mode 100644 index 000000000000..5818ca8ee088 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsConcludeExperimentV2RequestDataAttributes.ts @@ -0,0 +1,53 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Decision to record when concluding the experiment. + */ +export class ExperimentsConcludeExperimentV2RequestDataAttributes { + /** + * Key of the winning variant. Must match a variant on the experiment and must not be blank. + */ + "decisionVariantKey": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + decisionVariantKey: { + baseName: "decision_variant_key", + type: "string", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsConcludeExperimentV2RequestDataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsConcludeExperimentV2RequestDataType.ts b/packages/datadog-api-client-v2/models/ExperimentsConcludeExperimentV2RequestDataType.ts new file mode 100644 index 000000000000..1ec9bf9eceea --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsConcludeExperimentV2RequestDataType.ts @@ -0,0 +1,16 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Conclude experiment request resource type. + */ + +export type ExperimentsConcludeExperimentV2RequestDataType = + | typeof CONCLUDE_EXPERIMENT_REQUEST + | UnparsedObject; +export const CONCLUDE_EXPERIMENT_REQUEST = "conclude-experiment-request"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentMetricGroupV2Request.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentMetricGroupV2Request.ts new file mode 100644 index 000000000000..2474a44c9532 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentMetricGroupV2Request.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateExperimentMetricGroupV2RequestData } from "./ExperimentsCreateExperimentMetricGroupV2RequestData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Request to create a metric group on an experiment. + */ +export class ExperimentsCreateExperimentMetricGroupV2Request { + /** + * Metric group resource to create on the experiment. + */ + "data": ExperimentsCreateExperimentMetricGroupV2RequestData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsCreateExperimentMetricGroupV2RequestData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateExperimentMetricGroupV2Request.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentMetricGroupV2RequestData.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentMetricGroupV2RequestData.ts new file mode 100644 index 000000000000..b90631317e9e --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentMetricGroupV2RequestData.ts @@ -0,0 +1,72 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateExperimentMetricGroupV2RequestDataAttributes } from "./ExperimentsCreateExperimentMetricGroupV2RequestDataAttributes"; +import { ExperimentsPatchExperimentMetricGroupV2RequestDataType } from "./ExperimentsPatchExperimentMetricGroupV2RequestDataType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Metric group resource to create on the experiment. + */ +export class ExperimentsCreateExperimentMetricGroupV2RequestData { + /** + * Name and metric selection for the new experiment metric group. + */ + "attributes": ExperimentsCreateExperimentMetricGroupV2RequestDataAttributes; + /** + * Optional JSON:API resource identifier field. + */ + "id"?: string; + /** + * Experiment metric groups resource type. + */ + "type": ExperimentsPatchExperimentMetricGroupV2RequestDataType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsCreateExperimentMetricGroupV2RequestDataAttributes", + required: true, + }, + id: { + baseName: "id", + type: "string", + }, + type: { + baseName: "type", + type: "ExperimentsPatchExperimentMetricGroupV2RequestDataType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateExperimentMetricGroupV2RequestData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentMetricGroupV2RequestDataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentMetricGroupV2RequestDataAttributes.ts new file mode 100644 index 000000000000..95b22f56fc6c --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentMetricGroupV2RequestDataAttributes.ts @@ -0,0 +1,70 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateExperimentMetricGroupV2RequestDataAttributesMetricsItems } from "./ExperimentsCreateExperimentMetricGroupV2RequestDataAttributesMetricsItems"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Name and metric selection for the new experiment metric group. + */ +export class ExperimentsCreateExperimentMetricGroupV2RequestDataAttributes { + /** + * Metrics to include in the experiment metric group. + */ + "metrics"?: Array; + /** + * Metadata associated with migration of this resource. + */ + "migrationMetadata"?: any; + /** + * Display name of the experiment metric group. + */ + "name": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + metrics: { + baseName: "metrics", + type: "Array", + }, + migrationMetadata: { + baseName: "migration_metadata", + type: "any", + }, + name: { + baseName: "name", + type: "string", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateExperimentMetricGroupV2RequestDataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentMetricGroupV2RequestDataAttributesMetricsItems.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentMetricGroupV2RequestDataAttributesMetricsItems.ts new file mode 100644 index 000000000000..2f8d09717dfc --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentMetricGroupV2RequestDataAttributesMetricsItems.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Reference to a metric to include in the experiment metric group. + */ +export class ExperimentsCreateExperimentMetricGroupV2RequestDataAttributesMetricsItems { + /** + * Identifier of the metric to include in the group. + */ + "metricId": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + metricId: { + baseName: "metric_id", + type: "string", + required: true, + format: "uuid", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateExperimentMetricGroupV2RequestDataAttributesMetricsItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2Request.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2Request.ts new file mode 100644 index 000000000000..f78cf31037c3 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2Request.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateExperimentV2RequestData } from "./ExperimentsCreateExperimentV2RequestData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Request to create an experiment draft. + */ +export class ExperimentsCreateExperimentV2Request { + /** + * Experiment resource to create. + */ + "data": ExperimentsCreateExperimentV2RequestData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsCreateExperimentV2RequestData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateExperimentV2Request.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestData.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestData.ts new file mode 100644 index 000000000000..3280fdbedc43 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestData.ts @@ -0,0 +1,72 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateExperimentV2RequestDataAttributes } from "./ExperimentsCreateExperimentV2RequestDataAttributes"; +import { ExperimentsPatchExperimentV2ResponseDataType } from "./ExperimentsPatchExperimentV2ResponseDataType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Experiment resource to create. + */ +export class ExperimentsCreateExperimentV2RequestData { + /** + * Configuration and descriptive fields for the new experiment draft. + */ + "attributes": ExperimentsCreateExperimentV2RequestDataAttributes; + /** + * Optional JSON:API resource identifier field. + */ + "id"?: string; + /** + * Experiments resource type. + */ + "type": ExperimentsPatchExperimentV2ResponseDataType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsCreateExperimentV2RequestDataAttributes", + required: true, + }, + id: { + baseName: "id", + type: "string", + }, + type: { + baseName: "type", + type: "ExperimentsPatchExperimentV2ResponseDataType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateExperimentV2RequestData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributes.ts new file mode 100644 index 000000000000..53619955aca3 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributes.ts @@ -0,0 +1,218 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfiguration } from "./ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfiguration"; +import { ExperimentsCreateExperimentV2RequestDataAttributesDecisionMetricsItems } from "./ExperimentsCreateExperimentV2RequestDataAttributesDecisionMetricsItems"; +import { ExperimentsCreateExperimentV2RequestDataAttributesRelatedLinksItems } from "./ExperimentsCreateExperimentV2RequestDataAttributesRelatedLinksItems"; +import { ExperimentsCreateExperimentV2RequestDataAttributesSplitByPropertiesItems } from "./ExperimentsCreateExperimentV2RequestDataAttributesSplitByPropertiesItems"; +import { ExperimentsCreateExperimentV2RequestDataAttributesStructuredMetadataItems } from "./ExperimentsCreateExperimentV2RequestDataAttributesStructuredMetadataItems"; +import { ExperimentsCreateExperimentV2RequestDataAttributesVariantsItems } from "./ExperimentsCreateExperimentV2RequestDataAttributesVariantsItems"; +import { ExperimentsCreateExperimentV2RequestDataAttributesWarehouseExposureConfiguration } from "./ExperimentsCreateExperimentV2RequestDataAttributesWarehouseExposureConfiguration"; +import { ExperimentsPatchExperimentV2ResponseDataAttributesTrafficExposure } from "./ExperimentsPatchExperimentV2ResponseDataAttributesTrafficExposure"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Configuration and descriptive fields for the new experiment draft. + */ +export class ExperimentsCreateExperimentV2RequestDataAttributes { + /** + * End of the window assignments are read from. Optional; must be after assignments_start_date. + */ + "assignmentsEndDate"?: Date; + /** + * Start of the window assignments are read from. Optional. + */ + "assignmentsStartDate"?: Date; + /** + * Feature flag, environment, and targeting configuration for a Datadog experiment. + */ + "datadogFlagConfiguration"?: ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfiguration; + /** + * Metrics selected to support the experiment decision. + */ + "decisionMetrics"?: Array; + /** + * End of the window metric events are read from. Optional; must be after events_start_date. + */ + "eventsEndDate"?: Date; + /** + * Start of the window metric events are read from. Optional; must fall within the assignments window. + */ + "eventsStartDate"?: Date; + /** + * What the experiment is expected to show. Optional and free-form. + */ + "hypothesis"?: string; + /** + * Metadata associated with migration of this resource. + */ + "migrationMetadata"?: any; + /** + * Display name for the experiment. The only required attribute: a request carrying nothing but a name is accepted. + */ + "name": string; + /** + * Published protocol whose defaults create this draft. May be combined with hypothesis, tags, teams, related links, and date overrides. Omit subject_type_id, decision_metrics, variants, warehouse_exposure_configuration, datadog_flag_configuration, traffic_exposure, and structured_metadata. + */ + "protocolId"?: string; + /** + * External links associated with the experiment. + */ + "relatedLinks"?: Array; + /** + * Complete Datadog split-by selection. Identify each property by column_name. Omit this field to copy organization defaults. + */ + "splitByProperties"?: Array; + /** + * Custom metadata fields and their values for the experiment. + */ + "structuredMetadata"?: Array; + /** + * Canonical ID of an existing subject type. Optional; defaults to the organization default. + */ + "subjectTypeId"?: string; + /** + * Summary of the experiment. Optional and free-form. + */ + "summary"?: string; + /** + * Non-team tag names to apply. Optional. + */ + "tags"?: Array; + /** + * Team handles that own the experiment. Optional. + */ + "teams"?: Array; + /** + * Traffic exposure fraction or schedule configured for the experiment. + */ + "trafficExposure"?: ExperimentsPatchExperimentV2ResponseDataAttributesTrafficExposure; + /** + * Variants selected for the experiment and their traffic allocations. + */ + "variants"?: Array; + /** + * Warehouse model and experiment key used to read assignment data. + */ + "warehouseExposureConfiguration"?: ExperimentsCreateExperimentV2RequestDataAttributesWarehouseExposureConfiguration; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + assignmentsEndDate: { + baseName: "assignments_end_date", + type: "Date", + format: "date-time", + }, + assignmentsStartDate: { + baseName: "assignments_start_date", + type: "Date", + format: "date-time", + }, + datadogFlagConfiguration: { + baseName: "datadog_flag_configuration", + type: "ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfiguration", + }, + decisionMetrics: { + baseName: "decision_metrics", + type: "Array", + }, + eventsEndDate: { + baseName: "events_end_date", + type: "Date", + format: "date-time", + }, + eventsStartDate: { + baseName: "events_start_date", + type: "Date", + format: "date-time", + }, + hypothesis: { + baseName: "hypothesis", + type: "string", + }, + migrationMetadata: { + baseName: "migration_metadata", + type: "any", + }, + name: { + baseName: "name", + type: "string", + required: true, + }, + protocolId: { + baseName: "protocol_id", + type: "string", + }, + relatedLinks: { + baseName: "related_links", + type: "Array", + }, + splitByProperties: { + baseName: "split_by_properties", + type: "Array", + }, + structuredMetadata: { + baseName: "structured_metadata", + type: "Array", + }, + subjectTypeId: { + baseName: "subject_type_id", + type: "string", + format: "uuid", + }, + summary: { + baseName: "summary", + type: "string", + }, + tags: { + baseName: "tags", + type: "Array", + }, + teams: { + baseName: "teams", + type: "Array", + }, + trafficExposure: { + baseName: "traffic_exposure", + type: "ExperimentsPatchExperimentV2ResponseDataAttributesTrafficExposure", + }, + variants: { + baseName: "variants", + type: "Array", + }, + warehouseExposureConfiguration: { + baseName: "warehouse_exposure_configuration", + type: "ExperimentsCreateExperimentV2RequestDataAttributesWarehouseExposureConfiguration", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateExperimentV2RequestDataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfiguration.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfiguration.ts new file mode 100644 index 000000000000..2dd2ba387271 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfiguration.ts @@ -0,0 +1,92 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfigurationTargetingRulesItems } from "./ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfigurationTargetingRulesItems"; +import { ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPoint } from "./ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPoint"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Feature flag, environment, and targeting configuration for a Datadog experiment. + */ +export class ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfiguration { + /** + * Datadog measure and filters used to select analyzed subjects. + */ + "entryPoint": ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPoint | null; + /** + * Identifier of the feature flag environment. + */ + "environmentId": string; + /** + * Identifier of the Datadog feature flag used by the experiment. + */ + "featureFlagId": string; + /** + * Accepted on create but has no effect. + */ + "resetOnFeatureFlagChange"?: boolean; + /** + * Use an empty array when no targeting rules apply. + */ + "targetingRules": Array; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + entryPoint: { + baseName: "entry_point", + type: "ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPoint", + required: true, + }, + environmentId: { + baseName: "environment_id", + type: "string", + required: true, + format: "uuid", + }, + featureFlagId: { + baseName: "feature_flag_id", + type: "string", + required: true, + format: "uuid", + }, + resetOnFeatureFlagChange: { + baseName: "reset_on_feature_flag_change", + type: "boolean", + }, + targetingRules: { + baseName: "targeting_rules", + type: "Array", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfiguration.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfigurationTargetingRulesItems.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfigurationTargetingRulesItems.ts new file mode 100644 index 000000000000..eadf596d54fb --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfigurationTargetingRulesItems.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsTargetingRuleCondition } from "./ExperimentsTargetingRuleCondition"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Use an empty array when no targeting rules apply. + */ +export class ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfigurationTargetingRulesItems { + /** + * Conditions that must all match for this rule. Each condition must use exactly one shape: saved_filter_id alone or operator plus attribute plus value. + */ + "conditions": Array; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + conditions: { + baseName: "conditions", + type: "Array", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfigurationTargetingRulesItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesDecisionMetricsItems.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesDecisionMetricsItems.ts new file mode 100644 index 000000000000..387d8abede09 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesDecisionMetricsItems.ts @@ -0,0 +1,63 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Metric used to make an experiment decision, with its primary metric designation. + */ +export class ExperimentsCreateExperimentV2RequestDataAttributesDecisionMetricsItems { + /** + * Whether this is the experiment primary metric. + */ + "isPrimary": boolean; + /** + * Decision metric UUID. + */ + "metricId": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + isPrimary: { + baseName: "is_primary", + type: "boolean", + required: true, + }, + metricId: { + baseName: "metric_id", + type: "string", + required: true, + format: "uuid", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateExperimentV2RequestDataAttributesDecisionMetricsItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesRelatedLinksItems.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesRelatedLinksItems.ts new file mode 100644 index 000000000000..e71c4a84c4af --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesRelatedLinksItems.ts @@ -0,0 +1,69 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * External link associated with an experiment. + */ +export class ExperimentsCreateExperimentV2RequestDataAttributesRelatedLinksItems { + /** + * Link ID. Omit it when adding a link. + */ + "id"?: string; + /** + * Optional display title. + */ + "title"?: string; + /** + * Absolute URL. + */ + "url": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + id: { + baseName: "id", + type: "string", + }, + title: { + baseName: "title", + type: "string", + }, + url: { + baseName: "url", + type: "string", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateExperimentV2RequestDataAttributesRelatedLinksItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesSplitByPropertiesItems.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesSplitByPropertiesItems.ts new file mode 100644 index 000000000000..41d10a4bf4a8 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesSplitByPropertiesItems.ts @@ -0,0 +1,70 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsColumnType } from "./ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsColumnType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Complete Datadog split-by selection. Identify each property by column_name. Omit this field to copy organization defaults. + */ +export class ExperimentsCreateExperimentV2RequestDataAttributesSplitByPropertiesItems { + /** + * Exposure field that identifies the property. + */ + "columnName": string; + /** + * Data type of the column evaluated by the entry-point filter. + */ + "columnType"?: ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsColumnType; + /** + * Optional display name. Defaults to column_name for a new property. + */ + "name"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + columnName: { + baseName: "column_name", + type: "string", + required: true, + }, + columnType: { + baseName: "column_type", + type: "ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsColumnType", + }, + name: { + baseName: "name", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateExperimentV2RequestDataAttributesSplitByPropertiesItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesStructuredMetadataItems.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesStructuredMetadataItems.ts new file mode 100644 index 000000000000..bb84ba4e2179 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesStructuredMetadataItems.ts @@ -0,0 +1,69 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Metadata field key and values to set on the experiment. + */ +export class ExperimentsCreateExperimentV2RequestDataAttributesStructuredMetadataItems { + /** + * Selected values for an enumerated metadata field. + */ + "enumValues"?: Array; + /** + * Key that identifies the metadata field. + */ + "fieldKey": string; + /** + * Text value for a free-text metadata field. + */ + "freetextValue"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + enumValues: { + baseName: "enum_values", + type: "Array", + }, + fieldKey: { + baseName: "field_key", + type: "string", + required: true, + }, + freetextValue: { + baseName: "freetext_value", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateExperimentV2RequestDataAttributesStructuredMetadataItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureMode.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureMode.ts new file mode 100644 index 000000000000..5d07f43c7bbe --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureMode.ts @@ -0,0 +1,16 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Whether exposure uses a fixed fraction or a sequence of steps. + */ + +export type ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureMode = + typeof STATIC | typeof STEPS | UnparsedObject; +export const STATIC = "STATIC"; +export const STEPS = "STEPS"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureStepsItems.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureStepsItems.ts new file mode 100644 index 000000000000..60c68dd71f5c --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureStepsItems.ts @@ -0,0 +1,64 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Configured exposure plan rather than wall-clock history. At least two steps must have strictly increasing fractions and no gaps. Warehouse steps start at assignments_start_date and can use different durations. New Datadog plans have at most five steps and a first fraction above zero. Their nonfinal durations must be equal and exclude time paused. Datadog steps start with the experiment. Running warehouse experiments can replace step fractions, durations, and the exposure mode. After start, Datadog exposure plans cannot change through the public API. The final duration is null and its fraction holds until assignment ends. + */ +export class ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureStepsItems { + /** + * Positive step duration in milliseconds. Datadog durations exclude pauses. Send null for the final step. + */ + "durationMs": number | null; + /** + * Fraction of traffic exposed during this step. + */ + "fraction": number; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + durationMs: { + baseName: "duration_ms", + type: "number", + required: true, + format: "int64", + }, + fraction: { + baseName: "fraction", + type: "number", + required: true, + format: "double", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureStepsItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesVariantsItems.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesVariantsItems.ts new file mode 100644 index 000000000000..9da05729361f --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesVariantsItems.ts @@ -0,0 +1,97 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Variant selected for an experiment, with its identity and traffic allocation. + */ +export class ExperimentsCreateExperimentV2RequestDataAttributesVariantsItems { + /** + * Stable backing flag variant ID. Required for Datadog-backed experiments and omitted for Warehouse-only experiments. + */ + "featureFlagVariantId"?: string; + /** + * Whether this variant participates in the experiment. Responses always include this field. On writes an included variant defaults to active; omit its row to remove or unselect it. Explicit false supports sending an unchanged response back. + */ + "isActive"?: boolean; + /** + * Whether this is the single control variant. + */ + "isControl": boolean; + /** + * Assignment value. Datadog flag variant keys are server-owned. + */ + "key": string; + /** + * Display name. Datadog flag variant names are server-owned. + */ + "name"?: string; + /** + * Traffic allocation percentage. Existing variant weights cannot change through the public API after the experiment starts. + */ + "weight": number; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + featureFlagVariantId: { + baseName: "feature_flag_variant_id", + type: "string", + format: "uuid", + }, + isActive: { + baseName: "is_active", + type: "boolean", + }, + isControl: { + baseName: "is_control", + type: "boolean", + required: true, + }, + key: { + baseName: "key", + type: "string", + required: true, + }, + name: { + baseName: "name", + type: "string", + }, + weight: { + baseName: "weight", + type: "number", + required: true, + format: "double", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateExperimentV2RequestDataAttributesVariantsItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesWarehouseExposureConfiguration.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesWarehouseExposureConfiguration.ts new file mode 100644 index 000000000000..268932a698fb --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateExperimentV2RequestDataAttributesWarehouseExposureConfiguration.ts @@ -0,0 +1,72 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPoint } from "./ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPoint"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Warehouse model and experiment key used to read assignment data. + */ +export class ExperimentsCreateExperimentV2RequestDataAttributesWarehouseExposureConfiguration { + /** + * Optional Warehouse measure that scopes analyzed subjects. + */ + "entryPoint": ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPoint | null; + /** + * Warehouse experiment key. Must not be blank. + */ + "experimentKey": string; + /** + * ID of the exposure SQL model that provides assignment data. + */ + "exposureSqlModelId": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + entryPoint: { + baseName: "entry_point", + type: "ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPoint", + required: true, + }, + experimentKey: { + baseName: "experiment_key", + type: "string", + required: true, + }, + exposureSqlModelId: { + baseName: "exposure_sql_model_id", + type: "string", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateExperimentV2RequestDataAttributesWarehouseExposureConfiguration.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateExposureSQLModelV2Request.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateExposureSQLModelV2Request.ts new file mode 100644 index 000000000000..26bf7c76fc93 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateExposureSQLModelV2Request.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateExposureSQLModelV2RequestData } from "./ExperimentsCreateExposureSQLModelV2RequestData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Request to create a SQL model for experiment assignment data. + */ +export class ExperimentsCreateExposureSQLModelV2Request { + /** + * Exposure SQL model resource to create. + */ + "data": ExperimentsCreateExposureSQLModelV2RequestData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsCreateExposureSQLModelV2RequestData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateExposureSQLModelV2Request.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateExposureSQLModelV2RequestData.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateExposureSQLModelV2RequestData.ts new file mode 100644 index 000000000000..f578c5ade528 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateExposureSQLModelV2RequestData.ts @@ -0,0 +1,72 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsUpdateExposureSQLModelV2RequestDataAttributes } from "./ExperimentsUpdateExposureSQLModelV2RequestDataAttributes"; +import { ExperimentsUpdateExposureSQLModelV2RequestDataType } from "./ExperimentsUpdateExposureSQLModelV2RequestDataType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Exposure SQL model resource to create. + */ +export class ExperimentsCreateExposureSQLModelV2RequestData { + /** + * Complete column mappings and query used to replace the exposure SQL model. + */ + "attributes": ExperimentsUpdateExposureSQLModelV2RequestDataAttributes; + /** + * Optional JSON:API resource identifier field. + */ + "id"?: string; + /** + * Exposure SQL models resource type. + */ + "type": ExperimentsUpdateExposureSQLModelV2RequestDataType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsUpdateExposureSQLModelV2RequestDataAttributes", + required: true, + }, + id: { + baseName: "id", + type: "string", + }, + type: { + baseName: "type", + type: "ExperimentsUpdateExposureSQLModelV2RequestDataType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateExposureSQLModelV2RequestData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType.ts new file mode 100644 index 000000000000..54cd1a6d3d5e --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType.ts @@ -0,0 +1,27 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Data type of a column in the SQL model. + */ + +export type ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType = + + | typeof STRING + | typeof INTEGER + | typeof FLOAT + | typeof BOOLEAN + | typeof DATE + | typeof TIMESTAMP + | UnparsedObject; +export const STRING = "STRING"; +export const INTEGER = "INTEGER"; +export const FLOAT = "FLOAT"; +export const BOOLEAN = "BOOLEAN"; +export const DATE = "DATE"; +export const TIMESTAMP = "TIMESTAMP"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems.ts new file mode 100644 index 000000000000..5691bb2d6672 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems.ts @@ -0,0 +1,62 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Mapping between a subject type and its identifier column in the SQL model. + */ +export class ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems { + /** + * SQL result column that contains the subject identifier. + */ + "columnName": string; + /** + * Identifier of the subject type mapped to this column. + */ + "subjectTypeId": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + columnName: { + baseName: "column_name", + type: "string", + required: true, + }, + subjectTypeId: { + baseName: "subject_type_id", + type: "string", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateMetricCollectionV2Request.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricCollectionV2Request.ts new file mode 100644 index 000000000000..5bea780e48b0 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricCollectionV2Request.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateMetricCollectionV2RequestData } from "./ExperimentsCreateMetricCollectionV2RequestData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Request to create a reusable collection of metrics. + */ +export class ExperimentsCreateMetricCollectionV2Request { + /** + * Metric collection resource to create. + */ + "data": ExperimentsCreateMetricCollectionV2RequestData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsCreateMetricCollectionV2RequestData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateMetricCollectionV2Request.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateMetricCollectionV2RequestData.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricCollectionV2RequestData.ts new file mode 100644 index 000000000000..3c504d1a5b52 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricCollectionV2RequestData.ts @@ -0,0 +1,72 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateMetricCollectionV2RequestDataAttributes } from "./ExperimentsCreateMetricCollectionV2RequestDataAttributes"; +import { ExperimentsPatchMetricCollectionV2RequestDataType } from "./ExperimentsPatchMetricCollectionV2RequestDataType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Metric collection resource to create. + */ +export class ExperimentsCreateMetricCollectionV2RequestData { + /** + * Name, description, and metric selection for the new collection. + */ + "attributes": ExperimentsCreateMetricCollectionV2RequestDataAttributes; + /** + * Optional JSON:API resource identifier field. + */ + "id"?: string; + /** + * Metric collections resource type. + */ + "type": ExperimentsPatchMetricCollectionV2RequestDataType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsCreateMetricCollectionV2RequestDataAttributes", + required: true, + }, + id: { + baseName: "id", + type: "string", + }, + type: { + baseName: "type", + type: "ExperimentsPatchMetricCollectionV2RequestDataType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateMetricCollectionV2RequestData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateMetricCollectionV2RequestDataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricCollectionV2RequestDataAttributes.ts new file mode 100644 index 000000000000..0282ea5349d8 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricCollectionV2RequestDataAttributes.ts @@ -0,0 +1,78 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateMetricCollectionV2RequestDataAttributesMetricsItems } from "./ExperimentsCreateMetricCollectionV2RequestDataAttributesMetricsItems"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Name, description, and metric selection for the new collection. + */ +export class ExperimentsCreateMetricCollectionV2RequestDataAttributes { + /** + * Description of the metric collection. + */ + "description"?: string; + /** + * Whether the collection is designated as a guardrail collection. + */ + "isGuardrail"?: boolean; + /** + * Metrics to include in the collection. + */ + "metrics"?: Array; + /** + * Display name of the metric collection. + */ + "name": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + description: { + baseName: "description", + type: "string", + }, + isGuardrail: { + baseName: "is_guardrail", + type: "boolean", + }, + metrics: { + baseName: "metrics", + type: "Array", + }, + name: { + baseName: "name", + type: "string", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateMetricCollectionV2RequestDataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateMetricCollectionV2RequestDataAttributesMetricsItems.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricCollectionV2RequestDataAttributesMetricsItems.ts new file mode 100644 index 000000000000..2f6de74d9323 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricCollectionV2RequestDataAttributesMetricsItems.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Reference to a metric to include in the collection. + */ +export class ExperimentsCreateMetricCollectionV2RequestDataAttributesMetricsItems { + /** + * Identifier of the metric to include in the collection. + */ + "metricId": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + metricId: { + baseName: "metric_id", + type: "string", + required: true, + format: "uuid", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateMetricCollectionV2RequestDataAttributesMetricsItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateMetricNumeratorAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricNumeratorAttributes.ts new file mode 100644 index 000000000000..b1b88eaf8583 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricNumeratorAttributes.ts @@ -0,0 +1,113 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateMetricV2RequestDataAttributesDataSourceType } from "./ExperimentsCreateMetricV2RequestDataAttributesDataSourceType"; +import { ExperimentsCreateMetricV2RequestDataAttributesDesiredChange } from "./ExperimentsCreateMetricV2RequestDataAttributesDesiredChange"; +import { ExperimentsCreateMetricV2RequestDataAttributesNumeratorAggregation } from "./ExperimentsCreateMetricV2RequestDataAttributesNumeratorAggregation"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Configuration for a metric calculated from a numerator and an optional denominator. Omit percentile_aggregation. Omit denominator_aggregation when unused. + */ +export class ExperimentsCreateMetricNumeratorAttributes { + /** + * Source of the data backing this metric. + */ + "dataSourceType": ExperimentsCreateMetricV2RequestDataAttributesDataSourceType; + /** + * Measure and calculation settings for a numerator or denominator aggregation. Supply exactly one non-null measure. + */ + "denominatorAggregation"?: ExperimentsCreateMetricV2RequestDataAttributesNumeratorAggregation; + /** + * Description of the metric. Send null to leave it unset. + */ + "description"?: string; + /** + * Direction of change that represents an improvement for this metric. + */ + "desiredChange": ExperimentsCreateMetricV2RequestDataAttributesDesiredChange; + /** + * Whether results render as a percentage. Defaults to false when omitted. + */ + "formatAsPercent"?: boolean; + /** + * Guardrail cutoff threshold. Send null to leave it unset. + */ + "guardrailCutoffThreshold"?: number; + /** + * Metadata associated with migration of this resource. + */ + "migrationMetadata"?: any; + /** + * Name of the metric. + */ + "name": string; + /** + * Measure and calculation settings for a numerator or denominator aggregation. Supply exactly one non-null measure. + */ + "numeratorAggregation": ExperimentsCreateMetricV2RequestDataAttributesNumeratorAggregation; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + dataSourceType: { + baseName: "data_source_type", + type: "ExperimentsCreateMetricV2RequestDataAttributesDataSourceType", + required: true, + }, + denominatorAggregation: { + baseName: "denominator_aggregation", + type: "ExperimentsCreateMetricV2RequestDataAttributesNumeratorAggregation", + }, + description: { + baseName: "description", + type: "string", + }, + desiredChange: { + baseName: "desired_change", + type: "ExperimentsCreateMetricV2RequestDataAttributesDesiredChange", + required: true, + }, + formatAsPercent: { + baseName: "format_as_percent", + type: "boolean", + }, + guardrailCutoffThreshold: { + baseName: "guardrail_cutoff_threshold", + type: "number", + format: "double", + }, + migrationMetadata: { + baseName: "migration_metadata", + type: "any", + }, + name: { + baseName: "name", + type: "string", + required: true, + }, + numeratorAggregation: { + baseName: "numerator_aggregation", + type: "ExperimentsCreateMetricV2RequestDataAttributesNumeratorAggregation", + required: true, + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateMetricNumeratorAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateMetricPercentileAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricPercentileAttributes.ts new file mode 100644 index 000000000000..522da598fccf --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricPercentileAttributes.ts @@ -0,0 +1,105 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateMetricV2RequestDataAttributesDataSourceType } from "./ExperimentsCreateMetricV2RequestDataAttributesDataSourceType"; +import { ExperimentsCreateMetricV2RequestDataAttributesDesiredChange } from "./ExperimentsCreateMetricV2RequestDataAttributesDesiredChange"; +import { ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregation } from "./ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregation"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Configuration for a percentile metric. Omit numerator_aggregation and denominator_aggregation. + */ +export class ExperimentsCreateMetricPercentileAttributes { + /** + * Source of the data backing this metric. + */ + "dataSourceType": ExperimentsCreateMetricV2RequestDataAttributesDataSourceType; + /** + * Description of the metric. Send null to leave it unset. + */ + "description"?: string; + /** + * Direction of change that represents an improvement for this metric. + */ + "desiredChange": ExperimentsCreateMetricV2RequestDataAttributesDesiredChange; + /** + * Whether results render as a percentage. Defaults to false when omitted. + */ + "formatAsPercent"?: boolean; + /** + * Guardrail cutoff threshold. Send null to leave it unset. + */ + "guardrailCutoffThreshold"?: number; + /** + * Metadata associated with migration of this resource. + */ + "migrationMetadata"?: any; + /** + * Name of the metric. + */ + "name": string; + /** + * Measure and percentile to calculate for the metric. Supply exactly one non-null measure. + */ + "percentileAggregation": ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregation; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + dataSourceType: { + baseName: "data_source_type", + type: "ExperimentsCreateMetricV2RequestDataAttributesDataSourceType", + required: true, + }, + description: { + baseName: "description", + type: "string", + }, + desiredChange: { + baseName: "desired_change", + type: "ExperimentsCreateMetricV2RequestDataAttributesDesiredChange", + required: true, + }, + formatAsPercent: { + baseName: "format_as_percent", + type: "boolean", + }, + guardrailCutoffThreshold: { + baseName: "guardrail_cutoff_threshold", + type: "number", + format: "double", + }, + migrationMetadata: { + baseName: "migration_metadata", + type: "any", + }, + name: { + baseName: "name", + type: "string", + required: true, + }, + percentileAggregation: { + baseName: "percentile_aggregation", + type: "ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregation", + required: true, + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateMetricPercentileAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateMetricSQLModelV2Request.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricSQLModelV2Request.ts new file mode 100644 index 000000000000..e2a775451e7e --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricSQLModelV2Request.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateMetricSQLModelV2RequestData } from "./ExperimentsCreateMetricSQLModelV2RequestData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Request to create a SQL model that supplies metric data. + */ +export class ExperimentsCreateMetricSQLModelV2Request { + /** + * Metric SQL model resource to create. + */ + "data": ExperimentsCreateMetricSQLModelV2RequestData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsCreateMetricSQLModelV2RequestData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateMetricSQLModelV2Request.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateMetricSQLModelV2RequestData.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricSQLModelV2RequestData.ts new file mode 100644 index 000000000000..05ca39077533 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricSQLModelV2RequestData.ts @@ -0,0 +1,72 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsUpdateMetricSQLModelV2RequestDataAttributes } from "./ExperimentsUpdateMetricSQLModelV2RequestDataAttributes"; +import { ExperimentsUpdateMetricSQLModelV2RequestDataType } from "./ExperimentsUpdateMetricSQLModelV2RequestDataType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Metric SQL model resource to create. + */ +export class ExperimentsCreateMetricSQLModelV2RequestData { + /** + * Complete column mappings and query used to replace the metric SQL model. + */ + "attributes": ExperimentsUpdateMetricSQLModelV2RequestDataAttributes; + /** + * Optional JSON:API resource identifier field. + */ + "id"?: string; + /** + * Metric SQL models resource type. + */ + "type": ExperimentsUpdateMetricSQLModelV2RequestDataType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsUpdateMetricSQLModelV2RequestDataAttributes", + required: true, + }, + id: { + baseName: "id", + type: "string", + }, + type: { + baseName: "type", + type: "ExperimentsUpdateMetricSQLModelV2RequestDataType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateMetricSQLModelV2RequestData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateMetricSQLModelV2RequestDataAttributesMeasuresItems.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricSQLModelV2RequestDataAttributesMeasuresItems.ts new file mode 100644 index 000000000000..10a6c1d82db6 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricSQLModelV2RequestDataAttributesMeasuresItems.ts @@ -0,0 +1,87 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType } from "./ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Column in the SQL model that supplies values for a metric measure. + */ +export class ExperimentsCreateMetricSQLModelV2RequestDataAttributesMeasuresItems { + /** + * SQL result column that contains the measure values. + */ + "columnName": string; + /** + * Data type of a column in the SQL model. + */ + "columnType": ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType; + /** + * Description of the measure. + */ + "description"?: string; + /** + * Metadata associated with migration of this resource. + */ + "migrationMetadata"?: any; + /** + * Display name of the measure. + */ + "name"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + columnName: { + baseName: "column_name", + type: "string", + required: true, + }, + columnType: { + baseName: "column_type", + type: "ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType", + required: true, + }, + description: { + baseName: "description", + type: "string", + }, + migrationMetadata: { + baseName: "migration_metadata", + type: "any", + }, + name: { + baseName: "name", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateMetricSQLModelV2RequestDataAttributesMeasuresItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2Request.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2Request.ts new file mode 100644 index 000000000000..23d0bcf2407e --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2Request.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateMetricV2RequestData } from "./ExperimentsCreateMetricV2RequestData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Request to create an experiment metric. + */ +export class ExperimentsCreateMetricV2Request { + /** + * Metric resource to create. + */ + "data": ExperimentsCreateMetricV2RequestData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsCreateMetricV2RequestData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateMetricV2Request.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2RequestData.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2RequestData.ts new file mode 100644 index 000000000000..18ba52f693e7 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2RequestData.ts @@ -0,0 +1,64 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateMetricV2RequestDataAttributes } from "./ExperimentsCreateMetricV2RequestDataAttributes"; +import { MetricType } from "./MetricType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Metric resource to create. + */ +export class ExperimentsCreateMetricV2RequestData { + /** + * Configuration for the new metric. Supply either numerator_aggregation or percentile_aggregation. A denominator_aggregation requires numerator_aggregation. Omit unused aggregation fields; do not send them as null. + */ + "attributes": ExperimentsCreateMetricV2RequestDataAttributes; + /** + * The metric resource type. + */ + "type": MetricType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsCreateMetricV2RequestDataAttributes", + required: true, + }, + type: { + baseName: "type", + type: "MetricType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateMetricV2RequestData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2RequestDataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2RequestDataAttributes.ts new file mode 100644 index 000000000000..b92c55b44c40 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2RequestDataAttributes.ts @@ -0,0 +1,18 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateMetricNumeratorAttributes } from "./ExperimentsCreateMetricNumeratorAttributes"; +import { ExperimentsCreateMetricPercentileAttributes } from "./ExperimentsCreateMetricPercentileAttributes"; + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Configuration for the new metric. Supply either numerator_aggregation or percentile_aggregation. A denominator_aggregation requires numerator_aggregation. Omit unused aggregation fields; do not send them as null. + */ + +export type ExperimentsCreateMetricV2RequestDataAttributes = + | ExperimentsCreateMetricNumeratorAttributes + | ExperimentsCreateMetricPercentileAttributes + | UnparsedObject; diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2RequestDataAttributesDataSourceType.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2RequestDataAttributesDataSourceType.ts new file mode 100644 index 000000000000..788948667ed9 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2RequestDataAttributesDataSourceType.ts @@ -0,0 +1,20 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Source of the data backing this metric. + */ + +export type ExperimentsCreateMetricV2RequestDataAttributesDataSourceType = + | typeof DATADOG + | typeof DATADOG_REFERENCE_TABLE + | typeof CUSTOMER_WAREHOUSE + | UnparsedObject; +export const DATADOG = "DATADOG"; +export const DATADOG_REFERENCE_TABLE = "DATADOG_REFERENCE_TABLE"; +export const CUSTOMER_WAREHOUSE = "CUSTOMER_WAREHOUSE"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2RequestDataAttributesDesiredChange.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2RequestDataAttributesDesiredChange.ts new file mode 100644 index 000000000000..31959f0b4ddf --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2RequestDataAttributesDesiredChange.ts @@ -0,0 +1,18 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Direction of change that represents an improvement for this metric. + */ + +export type ExperimentsCreateMetricV2RequestDataAttributesDesiredChange = + | typeof METRIC_INCREASES + | typeof METRIC_DECREASES + | UnparsedObject; +export const METRIC_INCREASES = "METRIC_INCREASES"; +export const METRIC_DECREASES = "METRIC_DECREASES"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2RequestDataAttributesNumeratorAggregation.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2RequestDataAttributesNumeratorAggregation.ts new file mode 100644 index 000000000000..0e5f728fee33 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2RequestDataAttributesNumeratorAggregation.ts @@ -0,0 +1,19 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsDatadogMetricAggregationInput } from "./ExperimentsDatadogMetricAggregationInput"; +import { ExperimentsWarehouseMetricAggregationInput } from "./ExperimentsWarehouseMetricAggregationInput"; + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Measure and calculation settings for a numerator or denominator aggregation. Supply exactly one non-null measure. + */ + +export type ExperimentsCreateMetricV2RequestDataAttributesNumeratorAggregation = + + | ExperimentsWarehouseMetricAggregationInput + | ExperimentsDatadogMetricAggregationInput + | UnparsedObject; diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregation.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregation.ts new file mode 100644 index 000000000000..e7f99f85177a --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregation.ts @@ -0,0 +1,19 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsDatadogPercentileAggregationInput } from "./ExperimentsDatadogPercentileAggregationInput"; +import { ExperimentsWarehousePercentileAggregationInput } from "./ExperimentsWarehousePercentileAggregationInput"; + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Measure and percentile to calculate for the metric. Supply exactly one non-null measure. + */ + +export type ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregation = + + | ExperimentsWarehousePercentileAggregationInput + | ExperimentsDatadogPercentileAggregationInput + | UnparsedObject; diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregationWarehouseMetricMeasure.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregationWarehouseMetricMeasure.ts new file mode 100644 index 000000000000..db121c04b211 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregationWarehouseMetricMeasure.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Reference to a measure defined in a warehouse metric SQL model. + */ +export class ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregationWarehouseMetricMeasure { + /** + * Identifier of the warehouse metric measure. + */ + "id": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + id: { + baseName: "id", + type: "string", + required: true, + format: "uuid", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregationWarehouseMetricMeasure.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateSubjectTypeV2Request.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateSubjectTypeV2Request.ts new file mode 100644 index 000000000000..1b58eff980b0 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateSubjectTypeV2Request.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateSubjectTypeV2RequestData } from "./ExperimentsCreateSubjectTypeV2RequestData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Request to create a subject type for experiment assignments. + */ +export class ExperimentsCreateSubjectTypeV2Request { + /** + * Subject type resource to create. + */ + "data": ExperimentsCreateSubjectTypeV2RequestData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsCreateSubjectTypeV2RequestData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateSubjectTypeV2Request.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateSubjectTypeV2RequestData.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateSubjectTypeV2RequestData.ts new file mode 100644 index 000000000000..d91406b24f15 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateSubjectTypeV2RequestData.ts @@ -0,0 +1,72 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateSubjectTypeV2RequestDataAttributes } from "./ExperimentsCreateSubjectTypeV2RequestDataAttributes"; +import { ExperimentsSubjectTypeV2DTODataType } from "./ExperimentsSubjectTypeV2DTODataType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Subject type resource to create. + */ +export class ExperimentsCreateSubjectTypeV2RequestData { + /** + * Name and data field mappings for the new subject type. + */ + "attributes": ExperimentsCreateSubjectTypeV2RequestDataAttributes; + /** + * Optional JSON:API resource identifier field. + */ + "id"?: string; + /** + * Subject types resource type. + */ + "type": ExperimentsSubjectTypeV2DTODataType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsCreateSubjectTypeV2RequestDataAttributes", + required: true, + }, + id: { + baseName: "id", + type: "string", + }, + type: { + baseName: "type", + type: "ExperimentsSubjectTypeV2DTODataType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateSubjectTypeV2RequestData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsCreateSubjectTypeV2RequestDataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsCreateSubjectTypeV2RequestDataAttributes.ts new file mode 100644 index 000000000000..1d4d274306b4 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsCreateSubjectTypeV2RequestDataAttributes.ts @@ -0,0 +1,77 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Name and data field mappings for the new subject type. + */ +export class ExperimentsCreateSubjectTypeV2RequestDataAttributes { + /** + * Metadata associated with migration of this resource. + */ + "migrationMetadata"?: any; + /** + * Display name of the subject type. + */ + "name": string; + /** + * Product Analytics attribute used to identify subjects of this type. + */ + "productAnalyticsAttribute"?: string; + /** + * Warehouse column names associated with this subject type. + */ + "warehouseColumnNames"?: Array; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + migrationMetadata: { + baseName: "migration_metadata", + type: "any", + }, + name: { + baseName: "name", + type: "string", + required: true, + }, + productAnalyticsAttribute: { + baseName: "product_analytics_attribute", + type: "string", + }, + warehouseColumnNames: { + baseName: "warehouse_column_names", + type: "Array", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsCreateSubjectTypeV2RequestDataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsDatadogEntryPointFilter.ts b/packages/datadog-api-client-v2/models/ExperimentsDatadogEntryPointFilter.ts new file mode 100644 index 000000000000..7f744b0ae726 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsDatadogEntryPointFilter.ts @@ -0,0 +1,82 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsColumnType } from "./ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsColumnType"; +import { ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsOperation } from "./ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsOperation"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Complete Datadog OR-of-ANDs entry-point filter expression. + */ +export class ExperimentsDatadogEntryPointFilter { + /** + * Exposure field evaluated by the entry-point filter. + */ + "column": string; + /** + * Data type of the column evaluated by the entry-point filter. + */ + "columnType": ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsColumnType; + /** + * Comparison applied by the Datadog entry-point filter. + */ + "operation": ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsOperation; + /** + * Comparison values used by the filter operation. + */ + "values": Array; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + column: { + baseName: "column", + type: "string", + required: true, + }, + columnType: { + baseName: "column_type", + type: "ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsColumnType", + required: true, + }, + operation: { + baseName: "operation", + type: "ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsOperation", + required: true, + }, + values: { + baseName: "values", + type: "Array", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsDatadogEntryPointFilter.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsDatadogMetricAggregationInput.ts b/packages/datadog-api-client-v2/models/ExperimentsDatadogMetricAggregationInput.ts new file mode 100644 index 000000000000..c41f099205f3 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsDatadogMetricAggregationInput.ts @@ -0,0 +1,212 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsDatadogMetricMeasureInput } from "./ExperimentsDatadogMetricMeasureInput"; +import { ExperimentsNullableWarehouseMetricMeasureInput } from "./ExperimentsNullableWarehouseMetricMeasureInput"; +import { ExperimentsPropertyFilterInput } from "./ExperimentsPropertyFilterInput"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Settings for a metric aggregation that uses a Datadog measure. The other measure must be omitted or null. + */ +export class ExperimentsDatadogMetricAggregationInput { + /** + * Stored aging threshold in days. The subject aging filter uses the aggregation window end and unit. + */ + "agingThresholdDays"?: number; + /** + * Datadog source and query that supply values for the metric. + */ + "datadogMetricMeasure": ExperimentsDatadogMetricMeasureInput; + /** + * Whether to exclude subjects whose observation time is shorter than the aggregation window. + */ + "enableAgingSubjectFilter"?: boolean; + /** + * Calculation applied to the measure values, such as sum. + */ + "operation": string; + /** + * Property filters that select data for this aggregation. + */ + "propertyFilters"?: Array>; + /** + * Calculation used to evaluate the threshold. + */ + "thresholdAggregationType"?: string; + /** + * Value used to determine whether the threshold is breached. + */ + "thresholdBreachValue"?: number; + /** + * Operator used to compare the calculated value with the threshold. + */ + "thresholdComparisonOperator"?: string; + /** + * Time unit for the threshold evaluation window. Supports seconds, minutes, hours, days, calendar_days, and + * weeks. Calendar days start at midnight on the assignment day. Other units start at the assignment time. + */ + "thresholdTimeframeDimension"?: string; + /** + * End of the threshold evaluation window, measured from assignment in the configured time unit. + */ + "thresholdTimeframeValue"?: number; + /** + * End offset of the aggregation window from assignment, in timeframe_unit. + */ + "timeframeEndValue"?: number; + /** + * Start offset of the aggregation window from assignment, in timeframe_unit. + */ + "timeframeStartValue"?: number; + /** + * Time unit for the aggregation window. Calendar days are measured from midnight on the assignment day. + * Other units are measured from the assignment time. + */ + "timeframeUnit"?: string; + /** + * Optional warehouse measure. Use null when the other measure is selected. + */ + "warehouseMetricMeasure"?: ExperimentsNullableWarehouseMetricMeasureInput; + /** + * Fixed lower bound used to cap extreme measure values. + */ + "winsorLowerFixedValue"?: number; + /** + * Percentile used to determine the lower bound for extreme measure values. + */ + "winsorLowerPercentile"?: number; + /** + * Fixed upper bound used to cap extreme measure values. + */ + "winsorUpperFixedValue"?: number; + /** + * Percentile used to determine the upper bound for extreme measure values. + */ + "winsorUpperPercentile"?: number; + /** + * Method used to cap extreme measure values before aggregation. + */ + "winsorizationStrategy"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + agingThresholdDays: { + baseName: "aging_threshold_days", + type: "number", + format: "int64", + }, + datadogMetricMeasure: { + baseName: "datadog_metric_measure", + type: "ExperimentsDatadogMetricMeasureInput", + required: true, + }, + enableAgingSubjectFilter: { + baseName: "enable_aging_subject_filter", + type: "boolean", + }, + operation: { + baseName: "operation", + type: "string", + required: true, + }, + propertyFilters: { + baseName: "property_filters", + type: "Array>", + }, + thresholdAggregationType: { + baseName: "threshold_aggregation_type", + type: "string", + }, + thresholdBreachValue: { + baseName: "threshold_breach_value", + type: "number", + format: "double", + }, + thresholdComparisonOperator: { + baseName: "threshold_comparison_operator", + type: "string", + }, + thresholdTimeframeDimension: { + baseName: "threshold_timeframe_dimension", + type: "string", + }, + thresholdTimeframeValue: { + baseName: "threshold_timeframe_value", + type: "number", + format: "double", + }, + timeframeEndValue: { + baseName: "timeframe_end_value", + type: "number", + format: "double", + }, + timeframeStartValue: { + baseName: "timeframe_start_value", + type: "number", + format: "double", + }, + timeframeUnit: { + baseName: "timeframe_unit", + type: "string", + }, + warehouseMetricMeasure: { + baseName: "warehouse_metric_measure", + type: "ExperimentsNullableWarehouseMetricMeasureInput", + }, + winsorLowerFixedValue: { + baseName: "winsor_lower_fixed_value", + type: "number", + format: "double", + }, + winsorLowerPercentile: { + baseName: "winsor_lower_percentile", + type: "number", + format: "double", + }, + winsorUpperFixedValue: { + baseName: "winsor_upper_fixed_value", + type: "number", + format: "double", + }, + winsorUpperPercentile: { + baseName: "winsor_upper_percentile", + type: "number", + format: "double", + }, + winsorizationStrategy: { + baseName: "winsorization_strategy", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsDatadogMetricAggregationInput.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsDatadogMetricMeasureInput.ts b/packages/datadog-api-client-v2/models/ExperimentsDatadogMetricMeasureInput.ts new file mode 100644 index 000000000000..a1a7e27c2461 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsDatadogMetricMeasureInput.ts @@ -0,0 +1,112 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Datadog source and query that supply values for the metric. + */ +export class ExperimentsDatadogMetricMeasureInput { + /** + * Name of the Datadog event field used by this measure. + */ + "columnName"?: string; + /** + * Data type of the source column. + */ + "columnType": string; + /** + * Conditions used to select the metric's source data. + */ + "filters"?: any; + /** + * Display name of the Datadog measure. + */ + "name": string; + /** + * Query used to retrieve the Datadog measure. + */ + "query"?: string; + /** + * Filter applied to the Datadog source definition. + */ + "sourceDefinitionFilter"?: any; + /** + * Subtype of the Datadog data source. + */ + "sourceSubtype": string; + /** + * Type of Datadog data source used for the measure. + */ + "sourceType": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + columnName: { + baseName: "column_name", + type: "string", + }, + columnType: { + baseName: "column_type", + type: "string", + required: true, + }, + filters: { + baseName: "filters", + type: "any", + }, + name: { + baseName: "name", + type: "string", + required: true, + }, + query: { + baseName: "query", + type: "string", + }, + sourceDefinitionFilter: { + baseName: "source_definition_filter", + type: "any", + }, + sourceSubtype: { + baseName: "source_subtype", + type: "string", + required: true, + }, + sourceType: { + baseName: "source_type", + type: "string", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsDatadogMetricMeasureInput.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsDatadogPercentileAggregationInput.ts b/packages/datadog-api-client-v2/models/ExperimentsDatadogPercentileAggregationInput.ts new file mode 100644 index 000000000000..bacbbe298de3 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsDatadogPercentileAggregationInput.ts @@ -0,0 +1,82 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsDatadogPercentileMeasureInput } from "./ExperimentsDatadogPercentileMeasureInput"; +import { ExperimentsNullableWarehouseMetricMeasureInput } from "./ExperimentsNullableWarehouseMetricMeasureInput"; +import { ExperimentsPropertyFilterInput } from "./ExperimentsPropertyFilterInput"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Settings for a percentile aggregation that uses a Datadog measure. The other measure must be omitted or null. + */ +export class ExperimentsDatadogPercentileAggregationInput { + /** + * Datadog measure used to calculate a percentile. + */ + "datadogMetricMeasure": ExperimentsDatadogPercentileMeasureInput; + /** + * Percentile to calculate from the measure values. + */ + "percentile": number; + /** + * Property filters that select data for the percentile calculation. + */ + "propertyFilters"?: Array>; + /** + * Optional warehouse measure. Use null when the other measure is selected. + */ + "warehouseMetricMeasure"?: ExperimentsNullableWarehouseMetricMeasureInput; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + datadogMetricMeasure: { + baseName: "datadog_metric_measure", + type: "ExperimentsDatadogPercentileMeasureInput", + required: true, + }, + percentile: { + baseName: "percentile", + type: "number", + required: true, + format: "double", + }, + propertyFilters: { + baseName: "property_filters", + type: "Array>", + }, + warehouseMetricMeasure: { + baseName: "warehouse_metric_measure", + type: "ExperimentsNullableWarehouseMetricMeasureInput", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsDatadogPercentileAggregationInput.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsDatadogPercentileMeasureInput.ts b/packages/datadog-api-client-v2/models/ExperimentsDatadogPercentileMeasureInput.ts new file mode 100644 index 000000000000..ae1d757db28e --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsDatadogPercentileMeasureInput.ts @@ -0,0 +1,113 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Datadog measure used to calculate a percentile. + */ +export class ExperimentsDatadogPercentileMeasureInput { + /** + * Name of the Datadog event field used by this measure. + */ + "columnName": string; + /** + * Data type of the source column. + */ + "columnType": string; + /** + * Conditions used to select the metric's source data. + */ + "filters"?: any; + /** + * Display name of the Datadog measure. + */ + "name": string; + /** + * Query used to retrieve the Datadog measure. + */ + "query"?: string; + /** + * Filter applied to the Datadog source definition. + */ + "sourceDefinitionFilter"?: any; + /** + * Subtype of the Datadog data source. + */ + "sourceSubtype": string; + /** + * Type of Datadog data source used for the measure. + */ + "sourceType": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + columnName: { + baseName: "column_name", + type: "string", + required: true, + }, + columnType: { + baseName: "column_type", + type: "string", + required: true, + }, + filters: { + baseName: "filters", + type: "any", + }, + name: { + baseName: "name", + type: "string", + required: true, + }, + query: { + baseName: "query", + type: "string", + }, + sourceDefinitionFilter: { + baseName: "source_definition_filter", + type: "any", + }, + sourceSubtype: { + baseName: "source_subtype", + type: "string", + required: true, + }, + sourceType: { + baseName: "source_type", + type: "string", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsDatadogPercentileMeasureInput.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTO.ts b/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTO.ts new file mode 100644 index 000000000000..b79acd39209c --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTO.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsExperimentDiagnosticsV2DTOData } from "./ExperimentsExperimentDiagnosticsV2DTOData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Response containing the diagnostic checks for an experiment. + */ +export class ExperimentsExperimentDiagnosticsV2DTO { + /** + * Experiment diagnostics resource with its identifier and check results. + */ + "data": ExperimentsExperimentDiagnosticsV2DTOData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsExperimentDiagnosticsV2DTOData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsExperimentDiagnosticsV2DTO.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTOData.ts b/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTOData.ts new file mode 100644 index 000000000000..7d0463233967 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTOData.ts @@ -0,0 +1,73 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsExperimentDiagnosticsV2DTODataAttributes } from "./ExperimentsExperimentDiagnosticsV2DTODataAttributes"; +import { ExperimentsExperimentDiagnosticsV2DTODataType } from "./ExperimentsExperimentDiagnosticsV2DTODataType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Experiment diagnostics resource with its identifier and check results. + */ +export class ExperimentsExperimentDiagnosticsV2DTOData { + /** + * Diagnostic check results and their evaluation state. + */ + "attributes"?: ExperimentsExperimentDiagnosticsV2DTODataAttributes; + /** + * Identifier of the experiment whose diagnostics are returned. + */ + "id": string; + /** + * Experiment diagnostics resource type. + */ + "type": ExperimentsExperimentDiagnosticsV2DTODataType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsExperimentDiagnosticsV2DTODataAttributes", + }, + id: { + baseName: "id", + type: "string", + required: true, + format: "uuid", + }, + type: { + baseName: "type", + type: "ExperimentsExperimentDiagnosticsV2DTODataType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsExperimentDiagnosticsV2DTOData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataAttributes.ts new file mode 100644 index 000000000000..a79275611405 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataAttributes.ts @@ -0,0 +1,82 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItems } from "./ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItems"; +import { ExperimentsExperimentDiagnosticsV2DTODataAttributesResult } from "./ExperimentsExperimentDiagnosticsV2DTODataAttributesResult"; +import { ExperimentsExperimentDiagnosticsV2DTODataAttributesState } from "./ExperimentsExperimentDiagnosticsV2DTODataAttributesState"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Diagnostic check results and their evaluation state. + */ +export class ExperimentsExperimentDiagnosticsV2DTODataAttributes { + /** + * Results of individual diagnostic checks. + */ + "diagnostics": Array; + /** + * Time when the diagnostic checks were evaluated. + */ + "evaluatedAt"?: Date; + /** + * Overall result of the experiment diagnostic checks. + */ + "result"?: ExperimentsExperimentDiagnosticsV2DTODataAttributesResult; + /** + * Current state of the diagnostic evaluation. + */ + "state": ExperimentsExperimentDiagnosticsV2DTODataAttributesState; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + diagnostics: { + baseName: "diagnostics", + type: "Array", + required: true, + }, + evaluatedAt: { + baseName: "evaluated_at", + type: "Date", + format: "date-time", + }, + result: { + baseName: "result", + type: "ExperimentsExperimentDiagnosticsV2DTODataAttributesResult", + }, + state: { + baseName: "state", + type: "ExperimentsExperimentDiagnosticsV2DTODataAttributesState", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsExperimentDiagnosticsV2DTODataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItems.ts b/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItems.ts new file mode 100644 index 000000000000..9dcfbe538c8a --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItems.ts @@ -0,0 +1,98 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsSkippedReason } from "./ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsSkippedReason"; +import { ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsStatus } from "./ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsStatus"; +import { ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsType } from "./ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Result of one diagnostic check for an experiment. + */ +export class ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItems { + /** + * Explanation of the diagnostic check result. + */ + "message"?: string; + /** + * Identifier of the metric associated with this check. + */ + "metricId"?: string; + /** + * Reason the diagnostic check could not be evaluated. + */ + "skippedReason"?: ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsSkippedReason; + /** + * Outcome of an individual diagnostic check. + */ + "status": ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsStatus; + /** + * Short title of the diagnostic check. + */ + "title": string; + /** + * Kind of diagnostic check performed. + */ + "type": ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + message: { + baseName: "message", + type: "string", + }, + metricId: { + baseName: "metric_id", + type: "string", + }, + skippedReason: { + baseName: "skipped_reason", + type: "ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsSkippedReason", + }, + status: { + baseName: "status", + type: "ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsStatus", + required: true, + }, + title: { + baseName: "title", + type: "string", + required: true, + }, + type: { + baseName: "type", + type: "ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsSkippedReason.ts b/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsSkippedReason.ts new file mode 100644 index 000000000000..19390152c89c --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsSkippedReason.ts @@ -0,0 +1,23 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Reason the diagnostic check could not be evaluated. + */ + +export type ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsSkippedReason = + + | typeof NO_ASSIGNMENTS + | typeof NO_DIMENSIONAL_DATA + | typeof NO_METRIC_DATA + | typeof ZERO_VARIANCE + | UnparsedObject; +export const NO_ASSIGNMENTS = "NO_ASSIGNMENTS"; +export const NO_DIMENSIONAL_DATA = "NO_DIMENSIONAL_DATA"; +export const NO_METRIC_DATA = "NO_METRIC_DATA"; +export const ZERO_VARIANCE = "ZERO_VARIANCE"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsStatus.ts b/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsStatus.ts new file mode 100644 index 000000000000..7cac1375a31b --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsStatus.ts @@ -0,0 +1,25 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Outcome of an individual diagnostic check. + */ + +export type ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsStatus = + + | typeof PASS + | typeof FAIL + | typeof WARN + | typeof ERROR + | typeof SKIPPED + | UnparsedObject; +export const PASS = "PASS"; +export const FAIL = "FAIL"; +export const WARN = "WARN"; +export const ERROR = "ERROR"; +export const SKIPPED = "SKIPPED"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsType.ts b/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsType.ts new file mode 100644 index 000000000000..89623dc3870a --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsType.ts @@ -0,0 +1,48 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Kind of diagnostic check performed. + */ + +export type ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsType = + + | typeof EXPERIMENT_HAS_ASSIGNMENTS + | typeof METRIC_HAS_DATA + | typeof ASSIGNMENT_IMBALANCE + | typeof METRIC_WINSORIZE_ZERO + | typeof PRE_EXPERIMENT_IMBALANCE + | typeof MIXED_ASSIGNMENTS + | typeof DIMENSIONAL_ASSIGNMENT_IMBALANCE + | typeof FLAG_HAS_EVALUATIONS + | typeof IMPLAUSIBLE_PRIOR + | typeof DIMENSIONAL_DEGRADATION + | typeof PIPELINE_STATUS + | typeof MAPPED_ANALYSIS_CONFIGURATION + | typeof MAPPED_ANALYSIS_COVERAGE + | typeof MAPPED_ANALYSIS_COLLISIONS + | typeof MAPPED_ANALYSIS_FANOUT + | typeof MAPPED_ANALYSIS_CHANGE + | UnparsedObject; +export const EXPERIMENT_HAS_ASSIGNMENTS = "EXPERIMENT_HAS_ASSIGNMENTS"; +export const METRIC_HAS_DATA = "METRIC_HAS_DATA"; +export const ASSIGNMENT_IMBALANCE = "ASSIGNMENT_IMBALANCE"; +export const METRIC_WINSORIZE_ZERO = "METRIC_WINSORIZE_ZERO"; +export const PRE_EXPERIMENT_IMBALANCE = "PRE_EXPERIMENT_IMBALANCE"; +export const MIXED_ASSIGNMENTS = "MIXED_ASSIGNMENTS"; +export const DIMENSIONAL_ASSIGNMENT_IMBALANCE = + "DIMENSIONAL_ASSIGNMENT_IMBALANCE"; +export const FLAG_HAS_EVALUATIONS = "FLAG_HAS_EVALUATIONS"; +export const IMPLAUSIBLE_PRIOR = "IMPLAUSIBLE_PRIOR"; +export const DIMENSIONAL_DEGRADATION = "DIMENSIONAL_DEGRADATION"; +export const PIPELINE_STATUS = "PIPELINE_STATUS"; +export const MAPPED_ANALYSIS_CONFIGURATION = "MAPPED_ANALYSIS_CONFIGURATION"; +export const MAPPED_ANALYSIS_COVERAGE = "MAPPED_ANALYSIS_COVERAGE"; +export const MAPPED_ANALYSIS_COLLISIONS = "MAPPED_ANALYSIS_COLLISIONS"; +export const MAPPED_ANALYSIS_FANOUT = "MAPPED_ANALYSIS_FANOUT"; +export const MAPPED_ANALYSIS_CHANGE = "MAPPED_ANALYSIS_CHANGE"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataAttributesResult.ts b/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataAttributesResult.ts new file mode 100644 index 000000000000..f73d324afc93 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataAttributesResult.ts @@ -0,0 +1,22 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Overall result of the experiment diagnostic checks. + */ + +export type ExperimentsExperimentDiagnosticsV2DTODataAttributesResult = + | typeof PASS + | typeof FAIL + | typeof WARN + | typeof NO_DATA + | UnparsedObject; +export const PASS = "PASS"; +export const FAIL = "FAIL"; +export const WARN = "WARN"; +export const NO_DATA = "NO_DATA"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataAttributesState.ts b/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataAttributesState.ts new file mode 100644 index 000000000000..ab24d07df189 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataAttributesState.ts @@ -0,0 +1,22 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Current state of the diagnostic evaluation. + */ + +export type ExperimentsExperimentDiagnosticsV2DTODataAttributesState = + | typeof NOT_STARTED + | typeof RUNNING + | typeof COMPLETED + | typeof FAILED + | UnparsedObject; +export const NOT_STARTED = "NOT_STARTED"; +export const RUNNING = "RUNNING"; +export const COMPLETED = "COMPLETED"; +export const FAILED = "FAILED"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataType.ts b/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataType.ts new file mode 100644 index 000000000000..59d9e1a217a9 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExperimentDiagnosticsV2DTODataType.ts @@ -0,0 +1,16 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Experiment diagnostics resource type. + */ + +export type ExperimentsExperimentDiagnosticsV2DTODataType = + | typeof EXPERIMENT_DIAGNOSTICS + | UnparsedObject; +export const EXPERIMENT_DIAGNOSTICS = "experiment-diagnostics"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsExperimentMetricGroupMutationV2.ts b/packages/datadog-api-client-v2/models/ExperimentsExperimentMetricGroupMutationV2.ts new file mode 100644 index 000000000000..21bcfbaf9b22 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExperimentMetricGroupMutationV2.ts @@ -0,0 +1,63 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsExperimentMetricGroupMutationV2Data } from "./ExperimentsExperimentMetricGroupMutationV2Data"; +import { ExperimentsPatchExperimentV2MetaDTO } from "./ExperimentsPatchExperimentV2MetaDTO"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Response containing the saved experiment metric group and result refresh information. + */ +export class ExperimentsExperimentMetricGroupMutationV2 { + /** + * Experiment metric group resource with its identifier and metric selection. + */ + "data": ExperimentsExperimentMetricGroupMutationV2Data; + /** + * Refresh requirements and warnings returned by an experiment update. + */ + "meta"?: ExperimentsPatchExperimentV2MetaDTO; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsExperimentMetricGroupMutationV2Data", + required: true, + }, + meta: { + baseName: "meta", + type: "ExperimentsPatchExperimentV2MetaDTO", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsExperimentMetricGroupMutationV2.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsExperimentMetricGroupMutationV2Data.ts b/packages/datadog-api-client-v2/models/ExperimentsExperimentMetricGroupMutationV2Data.ts new file mode 100644 index 000000000000..dba7b115e1df --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExperimentMetricGroupMutationV2Data.ts @@ -0,0 +1,73 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsExperimentMetricGroupV2DTODataAttributes } from "./ExperimentsExperimentMetricGroupV2DTODataAttributes"; +import { ExperimentsPatchExperimentMetricGroupV2RequestDataType } from "./ExperimentsPatchExperimentMetricGroupV2RequestDataType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Experiment metric group resource with its identifier and metric selection. + */ +export class ExperimentsExperimentMetricGroupMutationV2Data { + /** + * Name, purpose, and selected metrics of an experiment metric group. + */ + "attributes"?: ExperimentsExperimentMetricGroupV2DTODataAttributes; + /** + * Identifier of the experiment metric group. + */ + "id": string; + /** + * Experiment metric groups resource type. + */ + "type": ExperimentsPatchExperimentMetricGroupV2RequestDataType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsExperimentMetricGroupV2DTODataAttributes", + }, + id: { + baseName: "id", + type: "string", + required: true, + format: "uuid", + }, + type: { + baseName: "type", + type: "ExperimentsPatchExperimentMetricGroupV2RequestDataType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsExperimentMetricGroupMutationV2Data.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsExperimentMetricGroupMutationV2DataAttributesMetricsItems.ts b/packages/datadog-api-client-v2/models/ExperimentsExperimentMetricGroupMutationV2DataAttributesMetricsItems.ts new file mode 100644 index 000000000000..c71199087a72 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExperimentMetricGroupMutationV2DataAttributesMetricsItems.ts @@ -0,0 +1,71 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Metric in an experiment metric group, with its name and primary metric designation. + */ +export class ExperimentsExperimentMetricGroupMutationV2DataAttributesMetricsItems { + /** + * Whether this is the experiment primary metric. + */ + "isPrimary": boolean; + /** + * Identifier of the metric in the group. + */ + "metricId": string; + /** + * Display name of the metric in the group. + */ + "metricName": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + isPrimary: { + baseName: "is_primary", + type: "boolean", + required: true, + }, + metricId: { + baseName: "metric_id", + type: "string", + required: true, + }, + metricName: { + baseName: "metric_name", + type: "string", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsExperimentMetricGroupMutationV2DataAttributesMetricsItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsExperimentMetricGroupV2DTOArray.ts b/packages/datadog-api-client-v2/models/ExperimentsExperimentMetricGroupV2DTOArray.ts new file mode 100644 index 000000000000..d867e38ee6c0 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExperimentMetricGroupV2DTOArray.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsExperimentMetricGroupMutationV2Data } from "./ExperimentsExperimentMetricGroupMutationV2Data"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Response containing the metric groups for an experiment. + */ +export class ExperimentsExperimentMetricGroupV2DTOArray { + /** + * Metric groups associated with the experiment. + */ + "data": Array; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "Array", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsExperimentMetricGroupV2DTOArray.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsExperimentMetricGroupV2DTODataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsExperimentMetricGroupV2DTODataAttributes.ts new file mode 100644 index 000000000000..1d64376e8bce --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExperimentMetricGroupV2DTODataAttributes.ts @@ -0,0 +1,77 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsExperimentMetricGroupMutationV2DataAttributesMetricsItems } from "./ExperimentsExperimentMetricGroupMutationV2DataAttributesMetricsItems"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Name, purpose, and selected metrics of an experiment metric group. + */ +export class ExperimentsExperimentMetricGroupV2DTODataAttributes { + /** + * Whether this group contains the experiment decision metrics. + */ + "isDecision"?: boolean; + /** + * Metrics selected for this experiment metric group. + */ + "metrics"?: Array; + /** + * Metadata associated with migration of this resource. + */ + "migrationMetadata"?: any; + /** + * Display name of the experiment metric group. + */ + "name"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + isDecision: { + baseName: "is_decision", + type: "boolean", + }, + metrics: { + baseName: "metrics", + type: "Array", + }, + migrationMetadata: { + baseName: "migration_metadata", + type: "any", + }, + name: { + baseName: "name", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsExperimentMetricGroupV2DTODataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsExperimentResultsV2MetaDTO.ts b/packages/datadog-api-client-v2/models/ExperimentsExperimentResultsV2MetaDTO.ts new file mode 100644 index 000000000000..72958fe5a70b --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExperimentResultsV2MetaDTO.ts @@ -0,0 +1,70 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Information about when experiment results were updated and whether they are stale. + */ +export class ExperimentsExperimentResultsV2MetaDTO { + /** + * Whether the saved results require a refresh or their freshness cannot be confirmed. See stale_reasons for + * details. + */ + "isStale"?: boolean; + /** + * Time when the experiment results were last updated. + */ + "resultsLastUpdated"?: Date; + /** + * Reasons the saved experiment results are stale. + */ + "staleReasons"?: Array; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + isStale: { + baseName: "is_stale", + type: "boolean", + }, + resultsLastUpdated: { + baseName: "results_last_updated", + type: "Date", + format: "date-time", + }, + staleReasons: { + baseName: "stale_reasons", + type: "Array", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsExperimentResultsV2MetaDTO.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsExperimentV2DTO.ts b/packages/datadog-api-client-v2/models/ExperimentsExperimentV2DTO.ts new file mode 100644 index 000000000000..7beba205ba5b --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExperimentV2DTO.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsExperimentV2DTOData } from "./ExperimentsExperimentV2DTOData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Response containing an experiment and its configuration. + */ +export class ExperimentsExperimentV2DTO { + /** + * Experiment resource with its identifier and configuration. + */ + "data": ExperimentsExperimentV2DTOData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsExperimentV2DTOData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsExperimentV2DTO.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsExperimentV2DTOData.ts b/packages/datadog-api-client-v2/models/ExperimentsExperimentV2DTOData.ts new file mode 100644 index 000000000000..6e16af9c6114 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExperimentV2DTOData.ts @@ -0,0 +1,73 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsPatchExperimentV2ResponseDataAttributes } from "./ExperimentsPatchExperimentV2ResponseDataAttributes"; +import { ExperimentsPatchExperimentV2ResponseDataType } from "./ExperimentsPatchExperimentV2ResponseDataType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Experiment resource with its identifier and configuration. + */ +export class ExperimentsExperimentV2DTOData { + /** + * Details of the experiment. + */ + "attributes"?: ExperimentsPatchExperimentV2ResponseDataAttributes; + /** + * Identifier of the experiment. + */ + "id": string; + /** + * Experiments resource type. + */ + "type": ExperimentsPatchExperimentV2ResponseDataType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsPatchExperimentV2ResponseDataAttributes", + }, + id: { + baseName: "id", + type: "string", + required: true, + format: "uuid", + }, + type: { + baseName: "type", + type: "ExperimentsPatchExperimentV2ResponseDataType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsExperimentV2DTOData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsExperimentV2DTODataAttributesConclusionOutcome.ts b/packages/datadog-api-client-v2/models/ExperimentsExperimentV2DTODataAttributesConclusionOutcome.ts new file mode 100644 index 000000000000..47cb96c6424e --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExperimentV2DTODataAttributesConclusionOutcome.ts @@ -0,0 +1,26 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Recorded experiment outcome. + */ + +export type ExperimentsExperimentV2DTODataAttributesConclusionOutcome = + | typeof POSITIVE + | typeof NEGATIVE + | typeof NEUTRAL + | typeof INCONCLUSIVE + | typeof MISCONFIGURED + | typeof UNKNOWN + | UnparsedObject; +export const POSITIVE = "POSITIVE"; +export const NEGATIVE = "NEGATIVE"; +export const NEUTRAL = "NEUTRAL"; +export const INCONCLUSIVE = "INCONCLUSIVE"; +export const MISCONFIGURED = "MISCONFIGURED"; +export const UNKNOWN = "UNKNOWN"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsExperimentV2DTODataAttributesSplitByPropertiesItems.ts b/packages/datadog-api-client-v2/models/ExperimentsExperimentV2DTODataAttributesSplitByPropertiesItems.ts new file mode 100644 index 000000000000..80130a3afc1b --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExperimentV2DTODataAttributesSplitByPropertiesItems.ts @@ -0,0 +1,81 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsPatchExperimentV2ResponseDataAttributesSplitByPropertiesItemsColumnType } from "./ExperimentsPatchExperimentV2ResponseDataAttributesSplitByPropertiesItemsColumnType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Property used to split experiment results into analysis dimensions. + */ +export class ExperimentsExperimentV2DTODataAttributesSplitByPropertiesItems { + /** + * Exposure field or Warehouse column used for the analysis dimension. + */ + "columnName": string; + /** + * Type of the Datadog exposure field or Warehouse column. + */ + "columnType": ExperimentsPatchExperimentV2ResponseDataAttributesSplitByPropertiesItemsColumnType; + /** + * Read-only property ID. Omit it from POST and PATCH; writes identify properties by column_name. + */ + "id": string; + /** + * Display name for the analysis dimension. + */ + "name": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + columnName: { + baseName: "column_name", + type: "string", + required: true, + }, + columnType: { + baseName: "column_type", + type: "ExperimentsPatchExperimentV2ResponseDataAttributesSplitByPropertiesItemsColumnType", + required: true, + }, + id: { + baseName: "id", + type: "string", + required: true, + }, + name: { + baseName: "name", + type: "string", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsExperimentV2DTODataAttributesSplitByPropertiesItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsExperimentV2DTODataAttributesStatus.ts b/packages/datadog-api-client-v2/models/ExperimentsExperimentV2DTODataAttributesStatus.ts new file mode 100644 index 000000000000..08aabb91788d --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExperimentV2DTODataAttributesStatus.ts @@ -0,0 +1,28 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Current stage in the experiment lifecycle. + */ + +export type ExperimentsExperimentV2DTODataAttributesStatus = + | typeof DRAFT + | typeof SCHEDULED + | typeof IN_PROGRESS + | typeof READY_FOR_DECISION + | typeof DECISION_MADE + | typeof CANCELLED + | typeof UNKNOWN + | UnparsedObject; +export const DRAFT = "DRAFT"; +export const SCHEDULED = "SCHEDULED"; +export const IN_PROGRESS = "IN_PROGRESS"; +export const READY_FOR_DECISION = "READY_FOR_DECISION"; +export const DECISION_MADE = "DECISION_MADE"; +export const CANCELLED = "CANCELLED"; +export const UNKNOWN = "UNKNOWN"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsExperimentV2DTODataAttributesVariantsItems.ts b/packages/datadog-api-client-v2/models/ExperimentsExperimentV2DTODataAttributesVariantsItems.ts new file mode 100644 index 000000000000..8a8ebac9b760 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExperimentV2DTODataAttributesVariantsItems.ts @@ -0,0 +1,97 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Variant in an experiment, with its identity and traffic allocation. + */ +export class ExperimentsExperimentV2DTODataAttributesVariantsItems { + /** + * Backing feature flag variant ID. Present for Datadog feature flag experiments and omitted for Warehouse experiments. + */ + "featureFlagVariantId"?: string; + /** + * Whether this variant participates in the experiment. + */ + "isActive": boolean; + /** + * Whether this is the single control variant. + */ + "isControl": boolean; + /** + * Value recorded in exposure data for this variant. + */ + "key": string; + /** + * Display name of the experiment variant. + */ + "name"?: string; + /** + * Traffic allocation percentage. + */ + "weight": number; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + featureFlagVariantId: { + baseName: "feature_flag_variant_id", + type: "string", + }, + isActive: { + baseName: "is_active", + type: "boolean", + required: true, + }, + isControl: { + baseName: "is_control", + type: "boolean", + required: true, + }, + key: { + baseName: "key", + type: "string", + required: true, + }, + name: { + baseName: "name", + type: "string", + }, + weight: { + baseName: "weight", + type: "number", + required: true, + format: "double", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsExperimentV2DTODataAttributesVariantsItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsExperimentV2ListDTOArray.ts b/packages/datadog-api-client-v2/models/ExperimentsExperimentV2ListDTOArray.ts new file mode 100644 index 000000000000..193ff0e29d4d --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExperimentV2ListDTOArray.ts @@ -0,0 +1,72 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsExperimentV2ListDTOData } from "./ExperimentsExperimentV2ListDTOData"; +import { ExperimentsOffsetLinks } from "./ExperimentsOffsetLinks"; +import { ExperimentsOffsetMeta } from "./ExperimentsOffsetMeta"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Response containing a page of experiment summaries. + */ +export class ExperimentsExperimentV2ListDTOArray { + /** + * Experiment summaries in the current page. + */ + "data": Array; + /** + * Links for navigating a paginated result set. + */ + "links"?: ExperimentsOffsetLinks; + /** + * Pagination information for a list response. + */ + "meta"?: ExperimentsOffsetMeta; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "Array", + required: true, + }, + links: { + baseName: "links", + type: "ExperimentsOffsetLinks", + }, + meta: { + baseName: "meta", + type: "ExperimentsOffsetMeta", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsExperimentV2ListDTOArray.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsExperimentV2ListDTOData.ts b/packages/datadog-api-client-v2/models/ExperimentsExperimentV2ListDTOData.ts new file mode 100644 index 000000000000..fa64bec19f66 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExperimentV2ListDTOData.ts @@ -0,0 +1,73 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsExperimentV2ListDTODataAttributes } from "./ExperimentsExperimentV2ListDTODataAttributes"; +import { ExperimentsPatchExperimentV2ResponseDataType } from "./ExperimentsPatchExperimentV2ResponseDataType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Experiment resource returned in a list. + */ +export class ExperimentsExperimentV2ListDTOData { + /** + * Summary fields for an experiment returned in a list. + */ + "attributes"?: ExperimentsExperimentV2ListDTODataAttributes; + /** + * Identifier of the experiment. + */ + "id": string; + /** + * Experiments resource type. + */ + "type": ExperimentsPatchExperimentV2ResponseDataType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsExperimentV2ListDTODataAttributes", + }, + id: { + baseName: "id", + type: "string", + required: true, + format: "uuid", + }, + type: { + baseName: "type", + type: "ExperimentsPatchExperimentV2ResponseDataType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsExperimentV2ListDTOData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsExperimentV2ListDTODataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsExperimentV2ListDTODataAttributes.ts new file mode 100644 index 000000000000..f8584c4a2139 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExperimentV2ListDTODataAttributes.ts @@ -0,0 +1,232 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateExperimentV2RequestDataAttributesRelatedLinksItems } from "./ExperimentsCreateExperimentV2RequestDataAttributesRelatedLinksItems"; +import { ExperimentsExperimentV2DTODataAttributesStatus } from "./ExperimentsExperimentV2DTODataAttributesStatus"; +import { ExperimentsPatchExperimentV2ResponseDataAttributesConclusion } from "./ExperimentsPatchExperimentV2ResponseDataAttributesConclusion"; +import { ExperimentsStructuredMetadataResponse } from "./ExperimentsStructuredMetadataResponse"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Summary fields for an experiment returned in a list. + */ +export class ExperimentsExperimentV2ListDTODataAttributes { + /** + * End of the window used to read experiment assignments. + */ + "assignmentsEndDate"?: Date; + /** + * Start of the window used to read experiment assignments. + */ + "assignmentsStartDate"?: Date; + /** + * Time when the experiment was concluded. + */ + "concludedAt"?: Date; + /** + * Outcome and supporting text recorded when the experiment is concluded. + */ + "conclusion"?: ExperimentsPatchExperimentV2ResponseDataAttributesConclusion; + /** + * Time when the experiment was created. + */ + "createdAt"?: Date; + /** + * End of the window used to read metric events. + */ + "eventsEndDate"?: Date; + /** + * Start of the window used to read metric events. + */ + "eventsStartDate"?: Date; + /** + * Kind of experiment. STANDARD is an ordinary experiment. Other values, such as CANARY and HOLDOUT, identify experiments owned by another workflow. New kinds may be added; treat unknown values as non-standard. + */ + "experimentType"?: string; + /** + * Expected effect that the experiment is designed to test. + */ + "hypothesis"?: string; + /** + * Metadata associated with migration of this resource. + */ + "migrationMetadata"?: any; + /** + * Display name of the experiment. + */ + "name"?: string; + /** + * Suffix used for the experiment tables in the analysis pipeline. + */ + "pipelineTableSuffix"?: string; + /** + * Identifier of the protocol associated with the experiment. + */ + "protocolId"?: string; + /** + * External links associated with the experiment. + */ + "relatedLinks"?: Array; + /** + * Time when the experiment results were last updated. + */ + "resultsLastUpdated"?: Date; + /** + * Current stage in the experiment lifecycle. + */ + "status"?: ExperimentsExperimentV2DTODataAttributesStatus; + /** + * Custom metadata fields and their values for the experiment. + */ + "structuredMetadata"?: Array; + /** + * Identifier of the subject type used for experiment assignments. + */ + "subjectTypeId"?: string; + /** + * Free-form summary of the experiment. + */ + "summary"?: string; + /** + * Tag names associated with the experiment. + */ + "tags"?: Array; + /** + * Team handles associated with the experiment. + */ + "teams"?: Array; + /** + * Time when the experiment was last updated. + */ + "updatedAt"?: Date; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + assignmentsEndDate: { + baseName: "assignments_end_date", + type: "Date", + format: "date-time", + }, + assignmentsStartDate: { + baseName: "assignments_start_date", + type: "Date", + format: "date-time", + }, + concludedAt: { + baseName: "concluded_at", + type: "Date", + format: "date-time", + }, + conclusion: { + baseName: "conclusion", + type: "ExperimentsPatchExperimentV2ResponseDataAttributesConclusion", + }, + createdAt: { + baseName: "created_at", + type: "Date", + format: "date-time", + }, + eventsEndDate: { + baseName: "events_end_date", + type: "Date", + format: "date-time", + }, + eventsStartDate: { + baseName: "events_start_date", + type: "Date", + format: "date-time", + }, + experimentType: { + baseName: "experiment_type", + type: "string", + }, + hypothesis: { + baseName: "hypothesis", + type: "string", + }, + migrationMetadata: { + baseName: "migration_metadata", + type: "any", + }, + name: { + baseName: "name", + type: "string", + }, + pipelineTableSuffix: { + baseName: "pipeline_table_suffix", + type: "string", + }, + protocolId: { + baseName: "protocol_id", + type: "string", + }, + relatedLinks: { + baseName: "related_links", + type: "Array", + }, + resultsLastUpdated: { + baseName: "results_last_updated", + type: "Date", + format: "date-time", + }, + status: { + baseName: "status", + type: "ExperimentsExperimentV2DTODataAttributesStatus", + }, + structuredMetadata: { + baseName: "structured_metadata", + type: "Array", + }, + subjectTypeId: { + baseName: "subject_type_id", + type: "string", + }, + summary: { + baseName: "summary", + type: "string", + }, + tags: { + baseName: "tags", + type: "Array", + }, + teams: { + baseName: "teams", + type: "Array", + }, + updatedAt: { + baseName: "updated_at", + type: "Date", + format: "date-time", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsExperimentV2ListDTODataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsExposureSQLModelV2DTO.ts b/packages/datadog-api-client-v2/models/ExperimentsExposureSQLModelV2DTO.ts new file mode 100644 index 000000000000..69bbdad6ca7f --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExposureSQLModelV2DTO.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsExposureSQLModelV2DTOData } from "./ExperimentsExposureSQLModelV2DTOData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Response containing a SQL model for experiment assignment data. + */ +export class ExperimentsExposureSQLModelV2DTO { + /** + * Exposure SQL model resource with its identifier and configuration. + */ + "data": ExperimentsExposureSQLModelV2DTOData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsExposureSQLModelV2DTOData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsExposureSQLModelV2DTO.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsExposureSQLModelV2DTOArray.ts b/packages/datadog-api-client-v2/models/ExperimentsExposureSQLModelV2DTOArray.ts new file mode 100644 index 000000000000..fd1b17a31a12 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExposureSQLModelV2DTOArray.ts @@ -0,0 +1,72 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsExposureSQLModelV2DTOData } from "./ExperimentsExposureSQLModelV2DTOData"; +import { ExperimentsOffsetLinks } from "./ExperimentsOffsetLinks"; +import { ExperimentsOffsetMeta } from "./ExperimentsOffsetMeta"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Response containing a page of exposure SQL models. + */ +export class ExperimentsExposureSQLModelV2DTOArray { + /** + * Exposure SQL models in the current page. + */ + "data": Array; + /** + * Links for navigating a paginated result set. + */ + "links"?: ExperimentsOffsetLinks; + /** + * Pagination information for a list response. + */ + "meta"?: ExperimentsOffsetMeta; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "Array", + required: true, + }, + links: { + baseName: "links", + type: "ExperimentsOffsetLinks", + }, + meta: { + baseName: "meta", + type: "ExperimentsOffsetMeta", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsExposureSQLModelV2DTOArray.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsExposureSQLModelV2DTOData.ts b/packages/datadog-api-client-v2/models/ExperimentsExposureSQLModelV2DTOData.ts new file mode 100644 index 000000000000..a03a3134e7f9 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExposureSQLModelV2DTOData.ts @@ -0,0 +1,73 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsExposureSQLModelV2DTODataAttributes } from "./ExperimentsExposureSQLModelV2DTODataAttributes"; +import { ExperimentsUpdateExposureSQLModelV2RequestDataType } from "./ExperimentsUpdateExposureSQLModelV2RequestDataType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Exposure SQL model resource with its identifier and configuration. + */ +export class ExperimentsExposureSQLModelV2DTOData { + /** + * Query and column mappings used to read experiment assignment data. + */ + "attributes"?: ExperimentsExposureSQLModelV2DTODataAttributes; + /** + * Identifier of the exposure SQL model. + */ + "id": string; + /** + * Exposure SQL models resource type. + */ + "type": ExperimentsUpdateExposureSQLModelV2RequestDataType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsExposureSQLModelV2DTODataAttributes", + }, + id: { + baseName: "id", + type: "string", + required: true, + format: "uuid", + }, + type: { + baseName: "type", + type: "ExperimentsUpdateExposureSQLModelV2RequestDataType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsExposureSQLModelV2DTOData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsExposureSQLModelV2DTODataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsExposureSQLModelV2DTODataAttributes.ts new file mode 100644 index 000000000000..76b66d33ea81 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExposureSQLModelV2DTODataAttributes.ts @@ -0,0 +1,154 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems } from "./ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems"; +import { ExperimentsExposureSQLModelV2DTODataAttributesItems } from "./ExperimentsExposureSQLModelV2DTODataAttributesItems"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Query and column mappings used to read experiment assignment data. + */ +export class ExperimentsExposureSQLModelV2DTODataAttributes { + /** + * Time when the exposure SQL model was archived. + */ + "archivedAt"?: Date; + /** + * Time when the exposure SQL model was created. + */ + "createdAt"?: Date; + /** + * Column used to identify date partitions in the exposure data. + */ + "datePartitionColumn"?: string; + /** + * SQL result column that contains the experiment key. + */ + "experimentColumn"?: string; + /** + * Number of experiments associated with the exposure SQL model. + */ + "experimentCount"?: number; + /** + * Metadata associated with migration of this resource. + */ + "migrationMetadata"?: any; + /** + * Display name of the exposure SQL model. + */ + "name"?: string; + /** + * Property columns available for filtering or splitting exposure data. + */ + "properties"?: Array; + /** + * SQL query that supplies the experiment assignment data. + */ + "sql"?: string; + /** + * Mappings between subject types and their identifier columns. + */ + "subjectTypes"?: Array; + /** + * SQL result column that contains the assignment timestamp. + */ + "timestampColumn"?: string; + /** + * Time when the exposure SQL model was last updated. + */ + "updatedAt"?: Date; + /** + * SQL result column that contains the assigned variant. + */ + "variantColumn"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + archivedAt: { + baseName: "archived_at", + type: "Date", + format: "date-time", + }, + createdAt: { + baseName: "created_at", + type: "Date", + format: "date-time", + }, + datePartitionColumn: { + baseName: "date_partition_column", + type: "string", + }, + experimentColumn: { + baseName: "experiment_column", + type: "string", + }, + experimentCount: { + baseName: "experiment_count", + type: "number", + format: "int64", + }, + migrationMetadata: { + baseName: "migration_metadata", + type: "any", + }, + name: { + baseName: "name", + type: "string", + }, + properties: { + baseName: "properties", + type: "Array", + }, + sql: { + baseName: "sql", + type: "string", + }, + subjectTypes: { + baseName: "subject_types", + type: "Array", + }, + timestampColumn: { + baseName: "timestamp_column", + type: "string", + }, + updatedAt: { + baseName: "updated_at", + type: "Date", + format: "date-time", + }, + variantColumn: { + baseName: "variant_column", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsExposureSQLModelV2DTODataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsExposureSQLModelV2DTODataAttributesItems.ts b/packages/datadog-api-client-v2/models/ExperimentsExposureSQLModelV2DTODataAttributesItems.ts new file mode 100644 index 000000000000..c4ee5e4d13e0 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsExposureSQLModelV2DTODataAttributesItems.ts @@ -0,0 +1,100 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Property column available from the exposure SQL model. + */ +export class ExperimentsExposureSQLModelV2DTODataAttributesItems { + /** + * SQL result column that contains this property. + */ + "columnName"?: string; + /** + * Data type of the property column. + */ + "columnType"?: string; + /** + * Description of the exposure property. + */ + "description"?: string; + /** + * Identifier of the exposure property. + */ + "id"?: string; + /** + * Metadata associated with migration of this resource. + */ + "migrationMetadata"?: any; + /** + * Display name of the exposure property. + */ + "name"?: string; + /** + * Suffix used for this property column in the analysis pipeline. + */ + "pipelineColumnSuffix"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + columnName: { + baseName: "column_name", + type: "string", + }, + columnType: { + baseName: "column_type", + type: "string", + }, + description: { + baseName: "description", + type: "string", + }, + id: { + baseName: "id", + type: "string", + }, + migrationMetadata: { + baseName: "migration_metadata", + type: "any", + }, + name: { + baseName: "name", + type: "string", + }, + pipelineColumnSuffix: { + baseName: "pipeline_column_suffix", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsExposureSQLModelV2DTODataAttributesItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsInlineCondition.ts b/packages/datadog-api-client-v2/models/ExperimentsInlineCondition.ts new file mode 100644 index 000000000000..dd583a9b4126 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsInlineCondition.ts @@ -0,0 +1,72 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationTargetingRulesItemsConditionsItemsOperator } from "./ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationTargetingRulesItemsConditionsItemsOperator"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * An inline condition. The saved_filter_id field must be omitted or null. + */ +export class ExperimentsInlineCondition { + /** + * Attribute to evaluate. + */ + "attribute": string; + /** + * Required with attribute and value for an inline condition; omit when saved_filter_id is set. + */ + "operator": ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationTargetingRulesItemsConditionsItemsOperator; + /** + * Values used by the operator. Every operator requires at least one value. + */ + "value": Array; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attribute: { + baseName: "attribute", + type: "string", + required: true, + }, + operator: { + baseName: "operator", + type: "ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationTargetingRulesItemsConditionsItemsOperator", + required: true, + }, + value: { + baseName: "value", + type: "Array", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsInlineCondition.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsMeasureComparisonFilterInput.ts b/packages/datadog-api-client-v2/models/ExperimentsMeasureComparisonFilterInput.ts new file mode 100644 index 000000000000..967fd47b12cb --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsMeasureComparisonFilterInput.ts @@ -0,0 +1,81 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsMeasureComparisonFilterInputOperation } from "./ExperimentsMeasureComparisonFilterInputOperation"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * A measure comparison for metric source data. + */ +export class ExperimentsMeasureComparisonFilterInput { + /** + * ID of the measure on the aggregation source. + */ + "measureId": string; + /** + * Comparison applied by this filter. + */ + "operation": ExperimentsMeasureComparisonFilterInputOperation; + /** + * Omit this target or use null or a blank string. + */ + "propertyId"?: string; + /** + * Values used by the comparison. + */ + "values": [string]; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + measureId: { + baseName: "measure_id", + type: "string", + required: true, + format: "uuid", + }, + operation: { + baseName: "operation", + type: "ExperimentsMeasureComparisonFilterInputOperation", + required: true, + }, + propertyId: { + baseName: "property_id", + type: "string", + }, + values: { + baseName: "values", + type: "[string]", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsMeasureComparisonFilterInput.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsMeasureComparisonFilterInputOperation.ts b/packages/datadog-api-client-v2/models/ExperimentsMeasureComparisonFilterInputOperation.ts new file mode 100644 index 000000000000..8a6f827e97fd --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsMeasureComparisonFilterInputOperation.ts @@ -0,0 +1,26 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Comparison applied by this filter. + */ + +export type ExperimentsMeasureComparisonFilterInputOperation = + | typeof EQ + | typeof NEQ + | typeof GT + | typeof GT_EQ + | typeof LT + | typeof LT_EQ + | UnparsedObject; +export const EQ = "="; +export const NEQ = "!="; +export const GT = ">"; +export const GT_EQ = ">="; +export const LT = "<"; +export const LT_EQ = "<="; diff --git a/packages/datadog-api-client-v2/models/ExperimentsMeasureNullFilterInput.ts b/packages/datadog-api-client-v2/models/ExperimentsMeasureNullFilterInput.ts new file mode 100644 index 000000000000..3bc8b6d72989 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsMeasureNullFilterInput.ts @@ -0,0 +1,80 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsPropertyNullFilterInputOperation } from "./ExperimentsPropertyNullFilterInputOperation"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * A measure comparison for metric source data. + */ +export class ExperimentsMeasureNullFilterInput { + /** + * ID of the measure on the aggregation source. + */ + "measureId": string; + /** + * Comparison applied by this filter. + */ + "operation": ExperimentsPropertyNullFilterInputOperation; + /** + * Omit this target or use null or a blank string. + */ + "propertyId"?: string; + /** + * Values used by the comparison. + */ + "values"?: Array; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + measureId: { + baseName: "measure_id", + type: "string", + required: true, + format: "uuid", + }, + operation: { + baseName: "operation", + type: "ExperimentsPropertyNullFilterInputOperation", + required: true, + }, + propertyId: { + baseName: "property_id", + type: "string", + }, + values: { + baseName: "values", + type: "Array", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsMeasureNullFilterInput.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsMeasureRangeFilterInput.ts b/packages/datadog-api-client-v2/models/ExperimentsMeasureRangeFilterInput.ts new file mode 100644 index 000000000000..d80c59f7e0e3 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsMeasureRangeFilterInput.ts @@ -0,0 +1,81 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsMeasureRangeFilterInputOperation } from "./ExperimentsMeasureRangeFilterInputOperation"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * A measure comparison for metric source data. + */ +export class ExperimentsMeasureRangeFilterInput { + /** + * ID of the measure on the aggregation source. + */ + "measureId": string; + /** + * Comparison applied by this filter. + */ + "operation": ExperimentsMeasureRangeFilterInputOperation; + /** + * Omit this target or use null or a blank string. + */ + "propertyId"?: string; + /** + * Values used by the comparison. + */ + "values": [string, string]; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + measureId: { + baseName: "measure_id", + type: "string", + required: true, + format: "uuid", + }, + operation: { + baseName: "operation", + type: "ExperimentsMeasureRangeFilterInputOperation", + required: true, + }, + propertyId: { + baseName: "property_id", + type: "string", + }, + values: { + baseName: "values", + type: "[string, string]", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsMeasureRangeFilterInput.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsMeasureRangeFilterInputOperation.ts b/packages/datadog-api-client-v2/models/ExperimentsMeasureRangeFilterInputOperation.ts new file mode 100644 index 000000000000..1be9a3780abb --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsMeasureRangeFilterInputOperation.ts @@ -0,0 +1,16 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Comparison applied by this filter. + */ + +export type ExperimentsMeasureRangeFilterInputOperation = + | typeof BETWEEN + | UnparsedObject; +export const BETWEEN = "BETWEEN"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsMetricCollectionV2DTO.ts b/packages/datadog-api-client-v2/models/ExperimentsMetricCollectionV2DTO.ts new file mode 100644 index 000000000000..0edc6a0b51e1 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsMetricCollectionV2DTO.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsMetricCollectionV2DTOData } from "./ExperimentsMetricCollectionV2DTOData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Response containing the metric collection. + */ +export class ExperimentsMetricCollectionV2DTO { + /** + * JSON:API resource containing the metric collection identity and fields. + */ + "data": ExperimentsMetricCollectionV2DTOData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsMetricCollectionV2DTOData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsMetricCollectionV2DTO.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsMetricCollectionV2DTOArray.ts b/packages/datadog-api-client-v2/models/ExperimentsMetricCollectionV2DTOArray.ts new file mode 100644 index 000000000000..db42b2296b54 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsMetricCollectionV2DTOArray.ts @@ -0,0 +1,72 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsMetricCollectionV2DTOData } from "./ExperimentsMetricCollectionV2DTOData"; +import { ExperimentsOffsetLinks } from "./ExperimentsOffsetLinks"; +import { ExperimentsOffsetMeta } from "./ExperimentsOffsetMeta"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * List of metric collection resources with pagination information. + */ +export class ExperimentsMetricCollectionV2DTOArray { + /** + * Resources returned in this response. + */ + "data": Array; + /** + * Links for navigating a paginated result set. + */ + "links"?: ExperimentsOffsetLinks; + /** + * Pagination information for a list response. + */ + "meta"?: ExperimentsOffsetMeta; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "Array", + required: true, + }, + links: { + baseName: "links", + type: "ExperimentsOffsetLinks", + }, + meta: { + baseName: "meta", + type: "ExperimentsOffsetMeta", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsMetricCollectionV2DTOArray.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsMetricCollectionV2DTOData.ts b/packages/datadog-api-client-v2/models/ExperimentsMetricCollectionV2DTOData.ts new file mode 100644 index 000000000000..ca6ae2888949 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsMetricCollectionV2DTOData.ts @@ -0,0 +1,73 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsMetricCollectionV2DTODataAttributes } from "./ExperimentsMetricCollectionV2DTODataAttributes"; +import { ExperimentsPatchMetricCollectionV2RequestDataType } from "./ExperimentsPatchMetricCollectionV2RequestDataType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * JSON:API resource containing the metric collection identity and fields. + */ +export class ExperimentsMetricCollectionV2DTOData { + /** + * Details of the metric collection. + */ + "attributes"?: ExperimentsMetricCollectionV2DTODataAttributes; + /** + * ID of the metric collection. + */ + "id": string; + /** + * Metric collections resource type. + */ + "type": ExperimentsPatchMetricCollectionV2RequestDataType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsMetricCollectionV2DTODataAttributes", + }, + id: { + baseName: "id", + type: "string", + required: true, + format: "uuid", + }, + type: { + baseName: "type", + type: "ExperimentsPatchMetricCollectionV2RequestDataType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsMetricCollectionV2DTOData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsMetricCollectionV2DTODataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsMetricCollectionV2DTODataAttributes.ts new file mode 100644 index 000000000000..3d632d0d5463 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsMetricCollectionV2DTODataAttributes.ts @@ -0,0 +1,104 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsMetricCollectionV2DTODataAttributesMetricsItems } from "./ExperimentsMetricCollectionV2DTODataAttributesMetricsItems"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Details of the metric collection. + */ +export class ExperimentsMetricCollectionV2DTODataAttributes { + /** + * Time when this resource was created. + */ + "createdAt"?: Date; + /** + * Text that explains the metric collection. + */ + "description"?: string; + /** + * Whether the collection is used for guardrail metrics. + */ + "isGuardrail"?: boolean; + /** + * Number of metrics in this collection. + */ + "metricCount"?: number; + /** + * Metrics included in this collection. + */ + "metrics"?: Array; + /** + * Display name of the metric collection. + */ + "name"?: string; + /** + * Time when this resource was last updated. + */ + "updatedAt"?: Date; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + createdAt: { + baseName: "created_at", + type: "Date", + format: "date-time", + }, + description: { + baseName: "description", + type: "string", + }, + isGuardrail: { + baseName: "is_guardrail", + type: "boolean", + }, + metricCount: { + baseName: "metric_count", + type: "number", + format: "int64", + }, + metrics: { + baseName: "metrics", + type: "Array", + }, + name: { + baseName: "name", + type: "string", + }, + updatedAt: { + baseName: "updated_at", + type: "Date", + format: "date-time", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsMetricCollectionV2DTODataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsMetricCollectionV2DTODataAttributesMetricsItems.ts b/packages/datadog-api-client-v2/models/ExperimentsMetricCollectionV2DTODataAttributesMetricsItems.ts new file mode 100644 index 000000000000..02bea351bcdf --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsMetricCollectionV2DTODataAttributesMetricsItems.ts @@ -0,0 +1,60 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * A metric included in the collection. + */ +export class ExperimentsMetricCollectionV2DTODataAttributesMetricsItems { + /** + * ID of the metric represented by this entry. + */ + "metricId"?: string; + /** + * Display name of the metric represented by this entry. + */ + "metricName"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + metricId: { + baseName: "metric_id", + type: "string", + }, + metricName: { + baseName: "metric_name", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsMetricCollectionV2DTODataAttributesMetricsItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsMetricPropertyFilter.ts b/packages/datadog-api-client-v2/models/ExperimentsMetricPropertyFilter.ts new file mode 100644 index 000000000000..740490c9e034 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsMetricPropertyFilter.ts @@ -0,0 +1,76 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * A comparison that selects metric data by a property or measure. + */ +export class ExperimentsMetricPropertyFilter { + /** + * ID of the measure evaluated by the filter. + */ + "measureId"?: string; + /** + * Comparison applied by the filter. + */ + "operation"?: string; + /** + * ID of the property evaluated by the filter. + */ + "propertyId"?: string; + /** + * Values used by the filter's comparison. + */ + "values"?: Array; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + measureId: { + baseName: "measure_id", + type: "string", + }, + operation: { + baseName: "operation", + type: "string", + }, + propertyId: { + baseName: "property_id", + type: "string", + }, + values: { + baseName: "values", + type: "Array", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsMetricPropertyFilter.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsMetricSQLModelPropertyInput.ts b/packages/datadog-api-client-v2/models/ExperimentsMetricSQLModelPropertyInput.ts new file mode 100644 index 000000000000..4e0637fa0bab --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsMetricSQLModelPropertyInput.ts @@ -0,0 +1,88 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType } from "./ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * A property column defined by a metric SQL model. + */ +export class ExperimentsMetricSQLModelPropertyInput { + /** + * Name of the SQL result column that supplies this property. + */ + "columnName": string; + /** + * Data type of a column in the SQL model. + */ + "columnType": ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType; + /** + * Optional text that explains what this property represents. + */ + "description"?: string; + /** + * Opaque metadata preserved when this property is migrated. + */ + "migrationMetadata"?: any; + /** + * Name used to identify the property in the model. + */ + "name": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + columnName: { + baseName: "column_name", + type: "string", + required: true, + }, + columnType: { + baseName: "column_type", + type: "ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType", + required: true, + }, + description: { + baseName: "description", + type: "string", + }, + migrationMetadata: { + baseName: "migration_metadata", + type: "any", + }, + name: { + baseName: "name", + type: "string", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsMetricSQLModelPropertyInput.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsMetricSQLModelV2DTO.ts b/packages/datadog-api-client-v2/models/ExperimentsMetricSQLModelV2DTO.ts new file mode 100644 index 000000000000..f1cb1e57dc31 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsMetricSQLModelV2DTO.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsMetricSQLModelV2DTOData } from "./ExperimentsMetricSQLModelV2DTOData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Response containing the metric SQL model. + */ +export class ExperimentsMetricSQLModelV2DTO { + /** + * JSON:API resource containing the metric SQL model identity and fields. + */ + "data": ExperimentsMetricSQLModelV2DTOData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsMetricSQLModelV2DTOData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsMetricSQLModelV2DTO.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsMetricSQLModelV2DTOArray.ts b/packages/datadog-api-client-v2/models/ExperimentsMetricSQLModelV2DTOArray.ts new file mode 100644 index 000000000000..4853217041f3 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsMetricSQLModelV2DTOArray.ts @@ -0,0 +1,72 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsMetricSQLModelV2DTOData } from "./ExperimentsMetricSQLModelV2DTOData"; +import { ExperimentsOffsetLinks } from "./ExperimentsOffsetLinks"; +import { ExperimentsOffsetMeta } from "./ExperimentsOffsetMeta"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * List of metric SQL model resources with pagination information. + */ +export class ExperimentsMetricSQLModelV2DTOArray { + /** + * Resources returned in this response. + */ + "data": Array; + /** + * Links for navigating a paginated result set. + */ + "links"?: ExperimentsOffsetLinks; + /** + * Pagination information for a list response. + */ + "meta"?: ExperimentsOffsetMeta; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "Array", + required: true, + }, + links: { + baseName: "links", + type: "ExperimentsOffsetLinks", + }, + meta: { + baseName: "meta", + type: "ExperimentsOffsetMeta", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsMetricSQLModelV2DTOArray.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsMetricSQLModelV2DTOData.ts b/packages/datadog-api-client-v2/models/ExperimentsMetricSQLModelV2DTOData.ts new file mode 100644 index 000000000000..842fe6a50bb7 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsMetricSQLModelV2DTOData.ts @@ -0,0 +1,73 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsMetricSQLModelV2DTODataAttributes } from "./ExperimentsMetricSQLModelV2DTODataAttributes"; +import { ExperimentsUpdateMetricSQLModelV2RequestDataType } from "./ExperimentsUpdateMetricSQLModelV2RequestDataType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * JSON:API resource containing the metric SQL model identity and fields. + */ +export class ExperimentsMetricSQLModelV2DTOData { + /** + * Details of the metric SQL model. + */ + "attributes"?: ExperimentsMetricSQLModelV2DTODataAttributes; + /** + * ID of the metric SQL model. + */ + "id": string; + /** + * Metric SQL models resource type. + */ + "type": ExperimentsUpdateMetricSQLModelV2RequestDataType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsMetricSQLModelV2DTODataAttributes", + }, + id: { + baseName: "id", + type: "string", + required: true, + format: "uuid", + }, + type: { + baseName: "type", + type: "ExperimentsUpdateMetricSQLModelV2RequestDataType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsMetricSQLModelV2DTOData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsMetricSQLModelV2DTODataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsMetricSQLModelV2DTODataAttributes.ts new file mode 100644 index 000000000000..d3dcca55b33a --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsMetricSQLModelV2DTODataAttributes.ts @@ -0,0 +1,179 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsMetricSQLModelV2DTODataAttributesMeasuresItems } from "./ExperimentsMetricSQLModelV2DTODataAttributesMeasuresItems"; +import { ExperimentsMetricSQLModelV2DTODataAttributesSubjectTypesItems } from "./ExperimentsMetricSQLModelV2DTODataAttributesSubjectTypesItems"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Details of the metric SQL model. + */ +export class ExperimentsMetricSQLModelV2DTODataAttributes { + /** + * Time when this resource was certified. + */ + "certifiedAt"?: Date; + /** + * Time when this resource was created. + */ + "createdAt"?: Date; + /** + * SQL column used to partition the source data by date. + */ + "datePartitionColumn"?: string; + /** + * Text that explains the metric SQL model. + */ + "description"?: string; + /** + * Read-only measure ID. Pass it as warehouse_metric_measure.id when the metric operation is count. + */ + "eventCountMeasureId"?: string; + /** + * Number of experiments that reference this resource. + */ + "experimentCount"?: number; + /** + * Whether this resource has been certified. + */ + "isCertified"?: boolean; + /** + * Measures available from the SQL model's result columns. + */ + "measures"?: Array; + /** + * Number of metrics that use this SQL model. + */ + "metricCount"?: number; + /** + * Metadata retained for resources imported from another system. + */ + "migrationMetadata"?: any; + /** + * Display name of the metric SQL model. + */ + "name"?: string; + /** + * Property columns exposed by the SQL model. + */ + "properties"?: Array; + /** + * SQL query that produces the model's source data. + */ + "sql"?: string; + /** + * Subject types mapped to columns in the SQL model. + */ + "subjectTypes"?: Array; + /** + * SQL column that supplies the event timestamp. + */ + "timestampColumn"?: string; + /** + * Time when this resource was last updated. + */ + "updatedAt"?: Date; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + certifiedAt: { + baseName: "certified_at", + type: "Date", + format: "date-time", + }, + createdAt: { + baseName: "created_at", + type: "Date", + format: "date-time", + }, + datePartitionColumn: { + baseName: "date_partition_column", + type: "string", + }, + description: { + baseName: "description", + type: "string", + }, + eventCountMeasureId: { + baseName: "event_count_measure_id", + type: "string", + }, + experimentCount: { + baseName: "experiment_count", + type: "number", + format: "int64", + }, + isCertified: { + baseName: "is_certified", + type: "boolean", + }, + measures: { + baseName: "measures", + type: "Array", + }, + metricCount: { + baseName: "metric_count", + type: "number", + format: "int64", + }, + migrationMetadata: { + baseName: "migration_metadata", + type: "any", + }, + name: { + baseName: "name", + type: "string", + }, + properties: { + baseName: "properties", + type: "Array", + }, + sql: { + baseName: "sql", + type: "string", + }, + subjectTypes: { + baseName: "subject_types", + type: "Array", + }, + timestampColumn: { + baseName: "timestamp_column", + type: "string", + }, + updatedAt: { + baseName: "updated_at", + type: "Date", + format: "date-time", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsMetricSQLModelV2DTODataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsMetricSQLModelV2DTODataAttributesMeasuresItems.ts b/packages/datadog-api-client-v2/models/ExperimentsMetricSQLModelV2DTODataAttributesMeasuresItems.ts new file mode 100644 index 000000000000..a37a7f7a92bf --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsMetricSQLModelV2DTODataAttributesMeasuresItems.ts @@ -0,0 +1,93 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType } from "./ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * A measure available from a metric SQL model column. + */ +export class ExperimentsMetricSQLModelV2DTODataAttributesMeasuresItems { + /** + * Name of the SQL result column that supplies this measure. + */ + "columnName"?: string; + /** + * Data type of a column in the SQL model. + */ + "columnType"?: ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType; + /** + * Text that explains the measure. + */ + "description"?: string; + /** + * ID of the measure. + */ + "id"?: string; + /** + * Metadata retained for resources imported from another system. + */ + "migrationMetadata"?: any; + /** + * Display name of the measure. + */ + "name"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + columnName: { + baseName: "column_name", + type: "string", + }, + columnType: { + baseName: "column_type", + type: "ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType", + }, + description: { + baseName: "description", + type: "string", + }, + id: { + baseName: "id", + type: "string", + }, + migrationMetadata: { + baseName: "migration_metadata", + type: "any", + }, + name: { + baseName: "name", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsMetricSQLModelV2DTODataAttributesMeasuresItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsMetricSQLModelV2DTODataAttributesSubjectTypesItems.ts b/packages/datadog-api-client-v2/models/ExperimentsMetricSQLModelV2DTODataAttributesSubjectTypesItems.ts new file mode 100644 index 000000000000..130bca103fc0 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsMetricSQLModelV2DTODataAttributesSubjectTypesItems.ts @@ -0,0 +1,68 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * A mapping between a subject type and its identifying SQL column. + */ +export class ExperimentsMetricSQLModelV2DTODataAttributesSubjectTypesItems { + /** + * Name of the SQL result column that identifies subjects of this type. + */ + "columnName"?: string; + /** + * ID of the subject type used by this configuration. + */ + "subjectTypeId"?: string; + /** + * Read-only measure ID. Pass it as warehouse_metric_measure.id when the metric operation is `uniqueSubjects`. + */ + "uniqueSubjectCountMeasureId"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + columnName: { + baseName: "column_name", + type: "string", + }, + subjectTypeId: { + baseName: "subject_type_id", + type: "string", + }, + uniqueSubjectCountMeasureId: { + baseName: "unique_subject_count_measure_id", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsMetricSQLModelV2DTODataAttributesSubjectTypesItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTO.ts b/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTO.ts new file mode 100644 index 000000000000..01ae06169b18 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTO.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsMetricV2DTOData } from "./ExperimentsMetricV2DTOData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Response containing the metric. + */ +export class ExperimentsMetricV2DTO { + /** + * JSON:API resource containing the metric identity and fields. + */ + "data": ExperimentsMetricV2DTOData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsMetricV2DTOData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsMetricV2DTO.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTOArray.ts b/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTOArray.ts new file mode 100644 index 000000000000..b86cadf99c43 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTOArray.ts @@ -0,0 +1,72 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsMetricV2DTOData } from "./ExperimentsMetricV2DTOData"; +import { ExperimentsOffsetLinks } from "./ExperimentsOffsetLinks"; +import { ExperimentsOffsetMeta } from "./ExperimentsOffsetMeta"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * List of metric resources with pagination information. + */ +export class ExperimentsMetricV2DTOArray { + /** + * Resources returned in this response. + */ + "data": Array; + /** + * Links for navigating a paginated result set. + */ + "links"?: ExperimentsOffsetLinks; + /** + * Pagination information for a list response. + */ + "meta"?: ExperimentsOffsetMeta; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "Array", + required: true, + }, + links: { + baseName: "links", + type: "ExperimentsOffsetLinks", + }, + meta: { + baseName: "meta", + type: "ExperimentsOffsetMeta", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsMetricV2DTOArray.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTOData.ts b/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTOData.ts new file mode 100644 index 000000000000..262cfce1f283 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTOData.ts @@ -0,0 +1,73 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsMetricV2DTODataAttributes } from "./ExperimentsMetricV2DTODataAttributes"; +import { MetricType } from "./MetricType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * JSON:API resource containing the metric identity and fields. + */ +export class ExperimentsMetricV2DTOData { + /** + * Details of the metric. + */ + "attributes"?: ExperimentsMetricV2DTODataAttributes; + /** + * ID of the metric. + */ + "id": string; + /** + * The metric resource type. + */ + "type": MetricType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsMetricV2DTODataAttributes", + }, + id: { + baseName: "id", + type: "string", + required: true, + format: "uuid", + }, + type: { + baseName: "type", + type: "MetricType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsMetricV2DTOData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributes.ts new file mode 100644 index 000000000000..4f87a8bfc687 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributes.ts @@ -0,0 +1,182 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsMetricV2DTODataAttributesDataSourceType } from "./ExperimentsMetricV2DTODataAttributesDataSourceType"; +import { ExperimentsMetricV2DTODataAttributesDesiredChange } from "./ExperimentsMetricV2DTODataAttributesDesiredChange"; +import { ExperimentsMetricV2DTODataAttributesMetricType } from "./ExperimentsMetricV2DTODataAttributesMetricType"; +import { ExperimentsMetricV2DTODataAttributesNumeratorAggregation } from "./ExperimentsMetricV2DTODataAttributesNumeratorAggregation"; +import { ExperimentsMetricV2DTODataAttributesPercentileAggregation } from "./ExperimentsMetricV2DTODataAttributesPercentileAggregation"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Details of the metric. + */ +export class ExperimentsMetricV2DTODataAttributes { + /** + * Time when this resource was certified. + */ + "certifiedAt"?: Date; + /** + * Time when this resource was created. + */ + "createdAt"?: Date; + /** + * Source of the data used to calculate the metric. + */ + "dataSourceType"?: ExperimentsMetricV2DTODataAttributesDataSourceType; + /** + * Source measure and aggregation settings for a metric value. + */ + "denominatorAggregation"?: ExperimentsMetricV2DTODataAttributesNumeratorAggregation; + /** + * Text that explains the metric. + */ + "description"?: string; + /** + * Direction of metric change considered desirable. + */ + "desiredChange"?: ExperimentsMetricV2DTODataAttributesDesiredChange; + /** + * Number of experiments that reference this resource. + */ + "experimentCount"?: number; + /** + * Whether to display the metric value as a percentage. + */ + "formatAsPercent"?: boolean; + /** + * Threshold used when evaluating this metric as a guardrail. + */ + "guardrailCutoffThreshold"?: number; + /** + * Type of metric calculation. + */ + "metricType"?: ExperimentsMetricV2DTODataAttributesMetricType; + /** + * Metadata retained for resources imported from another system. + */ + "migrationMetadata"?: any; + /** + * Display name of the metric. + */ + "name"?: string; + /** + * Source measure and aggregation settings for a metric value. + */ + "numeratorAggregation"?: ExperimentsMetricV2DTODataAttributesNumeratorAggregation; + /** + * Source measure and settings for a percentile metric. + */ + "percentileAggregation"?: ExperimentsMetricV2DTODataAttributesPercentileAggregation; + /** + * URL with supporting information about the metric. + */ + "referenceUrl"?: string; + /** + * Time when this resource was last updated. + */ + "updatedAt"?: Date; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + certifiedAt: { + baseName: "certified_at", + type: "Date", + format: "date-time", + }, + createdAt: { + baseName: "created_at", + type: "Date", + format: "date-time", + }, + dataSourceType: { + baseName: "data_source_type", + type: "ExperimentsMetricV2DTODataAttributesDataSourceType", + }, + denominatorAggregation: { + baseName: "denominator_aggregation", + type: "ExperimentsMetricV2DTODataAttributesNumeratorAggregation", + }, + description: { + baseName: "description", + type: "string", + }, + desiredChange: { + baseName: "desired_change", + type: "ExperimentsMetricV2DTODataAttributesDesiredChange", + }, + experimentCount: { + baseName: "experiment_count", + type: "number", + format: "int64", + }, + formatAsPercent: { + baseName: "format_as_percent", + type: "boolean", + }, + guardrailCutoffThreshold: { + baseName: "guardrail_cutoff_threshold", + type: "number", + format: "double", + }, + metricType: { + baseName: "metric_type", + type: "ExperimentsMetricV2DTODataAttributesMetricType", + }, + migrationMetadata: { + baseName: "migration_metadata", + type: "any", + }, + name: { + baseName: "name", + type: "string", + }, + numeratorAggregation: { + baseName: "numerator_aggregation", + type: "ExperimentsMetricV2DTODataAttributesNumeratorAggregation", + }, + percentileAggregation: { + baseName: "percentile_aggregation", + type: "ExperimentsMetricV2DTODataAttributesPercentileAggregation", + }, + referenceUrl: { + baseName: "reference_url", + type: "string", + }, + updatedAt: { + baseName: "updated_at", + type: "Date", + format: "date-time", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsMetricV2DTODataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributesDataSourceType.ts b/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributesDataSourceType.ts new file mode 100644 index 000000000000..d922e9660286 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributesDataSourceType.ts @@ -0,0 +1,24 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Source of the data used to calculate the metric. + */ + +export type ExperimentsMetricV2DTODataAttributesDataSourceType = + | typeof DATADOG + | typeof DATADOG_REFERENCE_TABLE + | typeof CUSTOMER_WAREHOUSE + | typeof IMPORTED + | typeof UNKNOWN + | UnparsedObject; +export const DATADOG = "DATADOG"; +export const DATADOG_REFERENCE_TABLE = "DATADOG_REFERENCE_TABLE"; +export const CUSTOMER_WAREHOUSE = "CUSTOMER_WAREHOUSE"; +export const IMPORTED = "IMPORTED"; +export const UNKNOWN = "UNKNOWN"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributesDesiredChange.ts b/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributesDesiredChange.ts new file mode 100644 index 000000000000..110f204f9879 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributesDesiredChange.ts @@ -0,0 +1,20 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Direction of metric change considered desirable. + */ + +export type ExperimentsMetricV2DTODataAttributesDesiredChange = + | typeof METRIC_INCREASES + | typeof METRIC_DECREASES + | typeof UNKNOWN + | UnparsedObject; +export const METRIC_INCREASES = "METRIC_INCREASES"; +export const METRIC_DECREASES = "METRIC_DECREASES"; +export const UNKNOWN = "UNKNOWN"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributesMetricType.ts b/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributesMetricType.ts new file mode 100644 index 000000000000..5fee4f4f7ff9 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributesMetricType.ts @@ -0,0 +1,22 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Type of metric calculation. + */ + +export type ExperimentsMetricV2DTODataAttributesMetricType = + | typeof SIMPLE + | typeof RATIO + | typeof PERCENTILE + | typeof UNKNOWN + | UnparsedObject; +export const SIMPLE = "SIMPLE"; +export const RATIO = "RATIO"; +export const PERCENTILE = "PERCENTILE"; +export const UNKNOWN = "UNKNOWN"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributesNumeratorAggregation.ts b/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributesNumeratorAggregation.ts new file mode 100644 index 000000000000..e4c634604cf2 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributesNumeratorAggregation.ts @@ -0,0 +1,216 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsMetricPropertyFilter } from "./ExperimentsMetricPropertyFilter"; +import { ExperimentsMetricV2DTODataAttributesPercentileAggregationDatadogMetricMeasure } from "./ExperimentsMetricV2DTODataAttributesPercentileAggregationDatadogMetricMeasure"; +import { ExperimentsMetricV2DTODataAttributesPercentileAggregationWarehouseMetricMeasure } from "./ExperimentsMetricV2DTODataAttributesPercentileAggregationWarehouseMetricMeasure"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Source measure and aggregation settings for a metric value. + */ +export class ExperimentsMetricV2DTODataAttributesNumeratorAggregation { + /** + * Stored aging threshold in days. The subject aging filter uses the aggregation window end and unit. + */ + "agingThresholdDays"?: number; + /** + * Datadog source and query that supply values for the metric. + */ + "datadogMetricMeasure"?: ExperimentsMetricV2DTODataAttributesPercentileAggregationDatadogMetricMeasure; + /** + * Whether to exclude subjects whose observation time is shorter than the aggregation window. + */ + "enableAgingSubjectFilter"?: boolean; + /** + * Aggregation applied to the selected measure. + */ + "operation"?: string; + /** + * Suffix used to identify this value in pipeline output columns. + */ + "pipelineColumnSuffix"?: string; + /** + * Filters applied to the metric aggregation. + */ + "propertyFilters"?: Array>; + /** + * Aggregation used to evaluate the threshold. + */ + "thresholdAggregationType"?: string; + /** + * Value used to determine whether the threshold is breached. + */ + "thresholdBreachValue"?: number; + /** + * Comparison applied between the aggregated value and the threshold. + */ + "thresholdComparisonOperator"?: string; + /** + * Time unit used for the threshold evaluation window. + */ + "thresholdTimeframeDimension"?: string; + /** + * Size of the threshold evaluation window. + */ + "thresholdTimeframeValue"?: number; + /** + * End of the aggregation window in the specified time unit. + */ + "timeframeEndValue"?: number; + /** + * Start of the aggregation window in the specified time unit. + */ + "timeframeStartValue"?: number; + /** + * Time unit used for the aggregation window. + */ + "timeframeUnit"?: string; + /** + * Warehouse measure that supplies values for the metric. + */ + "warehouseMetricMeasure"?: ExperimentsMetricV2DTODataAttributesPercentileAggregationWarehouseMetricMeasure; + /** + * Fixed lower bound used to cap metric values. + */ + "winsorLowerFixedValue"?: number; + /** + * Percentile used to determine the lower bound for capped metric values. + */ + "winsorLowerPercentile"?: number; + /** + * Fixed upper bound used to cap metric values. + */ + "winsorUpperFixedValue"?: number; + /** + * Percentile used to determine the upper bound for capped metric values. + */ + "winsorUpperPercentile"?: number; + /** + * Method used to cap extreme metric values. + */ + "winsorizationStrategy"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + agingThresholdDays: { + baseName: "aging_threshold_days", + type: "number", + format: "int64", + }, + datadogMetricMeasure: { + baseName: "datadog_metric_measure", + type: "ExperimentsMetricV2DTODataAttributesPercentileAggregationDatadogMetricMeasure", + }, + enableAgingSubjectFilter: { + baseName: "enable_aging_subject_filter", + type: "boolean", + }, + operation: { + baseName: "operation", + type: "string", + }, + pipelineColumnSuffix: { + baseName: "pipeline_column_suffix", + type: "string", + }, + propertyFilters: { + baseName: "property_filters", + type: "Array>", + }, + thresholdAggregationType: { + baseName: "threshold_aggregation_type", + type: "string", + }, + thresholdBreachValue: { + baseName: "threshold_breach_value", + type: "number", + format: "double", + }, + thresholdComparisonOperator: { + baseName: "threshold_comparison_operator", + type: "string", + }, + thresholdTimeframeDimension: { + baseName: "threshold_timeframe_dimension", + type: "string", + }, + thresholdTimeframeValue: { + baseName: "threshold_timeframe_value", + type: "number", + format: "double", + }, + timeframeEndValue: { + baseName: "timeframe_end_value", + type: "number", + format: "double", + }, + timeframeStartValue: { + baseName: "timeframe_start_value", + type: "number", + format: "double", + }, + timeframeUnit: { + baseName: "timeframe_unit", + type: "string", + }, + warehouseMetricMeasure: { + baseName: "warehouse_metric_measure", + type: "ExperimentsMetricV2DTODataAttributesPercentileAggregationWarehouseMetricMeasure", + }, + winsorLowerFixedValue: { + baseName: "winsor_lower_fixed_value", + type: "number", + format: "double", + }, + winsorLowerPercentile: { + baseName: "winsor_lower_percentile", + type: "number", + format: "double", + }, + winsorUpperFixedValue: { + baseName: "winsor_upper_fixed_value", + type: "number", + format: "double", + }, + winsorUpperPercentile: { + baseName: "winsor_upper_percentile", + type: "number", + format: "double", + }, + winsorizationStrategy: { + baseName: "winsorization_strategy", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsMetricV2DTODataAttributesNumeratorAggregation.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributesPercentileAggregation.ts b/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributesPercentileAggregation.ts new file mode 100644 index 000000000000..8b5b9c1ad089 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributesPercentileAggregation.ts @@ -0,0 +1,88 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsMetricPropertyFilter } from "./ExperimentsMetricPropertyFilter"; +import { ExperimentsMetricV2DTODataAttributesPercentileAggregationDatadogMetricMeasure } from "./ExperimentsMetricV2DTODataAttributesPercentileAggregationDatadogMetricMeasure"; +import { ExperimentsMetricV2DTODataAttributesPercentileAggregationWarehouseMetricMeasure } from "./ExperimentsMetricV2DTODataAttributesPercentileAggregationWarehouseMetricMeasure"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Source measure and settings for a percentile metric. + */ +export class ExperimentsMetricV2DTODataAttributesPercentileAggregation { + /** + * Datadog source and query that supply values for the metric. + */ + "datadogMetricMeasure"?: ExperimentsMetricV2DTODataAttributesPercentileAggregationDatadogMetricMeasure; + /** + * Percentile calculated from the selected measure. + */ + "percentile"?: number; + /** + * Suffix used to identify this value in pipeline output columns. + */ + "pipelineColumnSuffix"?: string; + /** + * Filters applied to the metric aggregation. + */ + "propertyFilters"?: Array>; + /** + * Warehouse measure that supplies values for the metric. + */ + "warehouseMetricMeasure"?: ExperimentsMetricV2DTODataAttributesPercentileAggregationWarehouseMetricMeasure; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + datadogMetricMeasure: { + baseName: "datadog_metric_measure", + type: "ExperimentsMetricV2DTODataAttributesPercentileAggregationDatadogMetricMeasure", + }, + percentile: { + baseName: "percentile", + type: "number", + format: "double", + }, + pipelineColumnSuffix: { + baseName: "pipeline_column_suffix", + type: "string", + }, + propertyFilters: { + baseName: "property_filters", + type: "Array>", + }, + warehouseMetricMeasure: { + baseName: "warehouse_metric_measure", + type: "ExperimentsMetricV2DTODataAttributesPercentileAggregationWarehouseMetricMeasure", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsMetricV2DTODataAttributesPercentileAggregation.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributesPercentileAggregationDatadogMetricMeasure.ts b/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributesPercentileAggregationDatadogMetricMeasure.ts new file mode 100644 index 000000000000..3fc533569ff5 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributesPercentileAggregationDatadogMetricMeasure.ts @@ -0,0 +1,108 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Datadog source and query that supply values for the metric. + */ +export class ExperimentsMetricV2DTODataAttributesPercentileAggregationDatadogMetricMeasure { + /** + * Name of the Datadog event field used by this measure. + */ + "columnName"?: string; + /** + * Data type of the source column. + */ + "columnType"?: string; + /** + * Conditions used to select the metric's source data. + */ + "filters"?: any; + /** + * Display name of the Datadog measure. + */ + "name"?: string; + /** + * Query used to retrieve the Datadog measure. + */ + "query"?: string; + /** + * Filter applied to the Datadog source definition. + */ + "sourceDefinitionFilter"?: any; + /** + * Subtype of the Datadog data source. + */ + "sourceSubtype"?: string; + /** + * Type of Datadog data source used for the measure. + */ + "sourceType"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + columnName: { + baseName: "column_name", + type: "string", + }, + columnType: { + baseName: "column_type", + type: "string", + }, + filters: { + baseName: "filters", + type: "any", + }, + name: { + baseName: "name", + type: "string", + }, + query: { + baseName: "query", + type: "string", + }, + sourceDefinitionFilter: { + baseName: "source_definition_filter", + type: "any", + }, + sourceSubtype: { + baseName: "source_subtype", + type: "string", + }, + sourceType: { + baseName: "source_type", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsMetricV2DTODataAttributesPercentileAggregationDatadogMetricMeasure.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributesPercentileAggregationWarehouseMetricMeasure.ts b/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributesPercentileAggregationWarehouseMetricMeasure.ts new file mode 100644 index 000000000000..67a1ba5c981e --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsMetricV2DTODataAttributesPercentileAggregationWarehouseMetricMeasure.ts @@ -0,0 +1,60 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Warehouse measure that supplies values for the metric. + */ +export class ExperimentsMetricV2DTODataAttributesPercentileAggregationWarehouseMetricMeasure { + /** + * ID of the measure. + */ + "id"?: string; + /** + * Suffix used to identify this value in pipeline output columns. + */ + "pipelineColumnSuffix"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + id: { + baseName: "id", + type: "string", + }, + pipelineColumnSuffix: { + baseName: "pipeline_column_suffix", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsMetricV2DTODataAttributesPercentileAggregationWarehouseMetricMeasure.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsNullableDatadogMetricMeasureInput.ts b/packages/datadog-api-client-v2/models/ExperimentsNullableDatadogMetricMeasureInput.ts new file mode 100644 index 000000000000..b6ca5e8bb09c --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsNullableDatadogMetricMeasureInput.ts @@ -0,0 +1,112 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Optional Datadog measure. Use null when the other measure is selected. + */ +export class ExperimentsNullableDatadogMetricMeasureInput { + /** + * Name of the Datadog event field used by this measure. + */ + "columnName"?: string; + /** + * Data type of the source column. + */ + "columnType": string; + /** + * Conditions used to select the metric's source data. + */ + "filters"?: any; + /** + * Display name of the Datadog measure. + */ + "name": string; + /** + * Query used to retrieve the Datadog measure. + */ + "query"?: string; + /** + * Filter applied to the Datadog source definition. + */ + "sourceDefinitionFilter"?: any; + /** + * Subtype of the Datadog data source. + */ + "sourceSubtype": string; + /** + * Type of Datadog data source used for the measure. + */ + "sourceType": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + columnName: { + baseName: "column_name", + type: "string", + }, + columnType: { + baseName: "column_type", + type: "string", + required: true, + }, + filters: { + baseName: "filters", + type: "any", + }, + name: { + baseName: "name", + type: "string", + required: true, + }, + query: { + baseName: "query", + type: "string", + }, + sourceDefinitionFilter: { + baseName: "source_definition_filter", + type: "any", + }, + sourceSubtype: { + baseName: "source_subtype", + type: "string", + required: true, + }, + sourceType: { + baseName: "source_type", + type: "string", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsNullableDatadogMetricMeasureInput.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsNullableDatadogPercentileMeasureInput.ts b/packages/datadog-api-client-v2/models/ExperimentsNullableDatadogPercentileMeasureInput.ts new file mode 100644 index 000000000000..fbac6030a223 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsNullableDatadogPercentileMeasureInput.ts @@ -0,0 +1,113 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Optional Datadog percentile measure. Use null when the warehouse measure is selected. + */ +export class ExperimentsNullableDatadogPercentileMeasureInput { + /** + * Name of the Datadog event field used by this measure. + */ + "columnName": string; + /** + * Data type of the source column. + */ + "columnType": string; + /** + * Conditions used to select the metric's source data. + */ + "filters"?: any; + /** + * Display name of the Datadog measure. + */ + "name": string; + /** + * Query used to retrieve the Datadog measure. + */ + "query"?: string; + /** + * Filter applied to the Datadog source definition. + */ + "sourceDefinitionFilter"?: any; + /** + * Subtype of the Datadog data source. + */ + "sourceSubtype": string; + /** + * Type of Datadog data source used for the measure. + */ + "sourceType": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + columnName: { + baseName: "column_name", + type: "string", + required: true, + }, + columnType: { + baseName: "column_type", + type: "string", + required: true, + }, + filters: { + baseName: "filters", + type: "any", + }, + name: { + baseName: "name", + type: "string", + required: true, + }, + query: { + baseName: "query", + type: "string", + }, + sourceDefinitionFilter: { + baseName: "source_definition_filter", + type: "any", + }, + sourceSubtype: { + baseName: "source_subtype", + type: "string", + required: true, + }, + sourceType: { + baseName: "source_type", + type: "string", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsNullableDatadogPercentileMeasureInput.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsNullableWarehouseMetricMeasureInput.ts b/packages/datadog-api-client-v2/models/ExperimentsNullableWarehouseMetricMeasureInput.ts new file mode 100644 index 000000000000..289c036f00c9 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsNullableWarehouseMetricMeasureInput.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Optional warehouse measure. Use null when the other measure is selected. + */ +export class ExperimentsNullableWarehouseMetricMeasureInput { + /** + * Identifier of the warehouse metric measure. + */ + "id": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + id: { + baseName: "id", + type: "string", + required: true, + format: "uuid", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsNullableWarehouseMetricMeasureInput.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsOffsetLinks.ts b/packages/datadog-api-client-v2/models/ExperimentsOffsetLinks.ts new file mode 100644 index 000000000000..6e731fe97637 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsOffsetLinks.ts @@ -0,0 +1,84 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Links for navigating a paginated result set. + */ +export class ExperimentsOffsetLinks { + /** + * URL of the first page of results. + */ + "first"?: string; + /** + * URL of the last page of results. + */ + "last"?: string; + /** + * URL of the next page of results. + */ + "next"?: string; + /** + * URL of the previous page of results. + */ + "prev"?: string; + /** + * URL of the current page of results. + */ + "self"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + first: { + baseName: "first", + type: "string", + }, + last: { + baseName: "last", + type: "string", + }, + next: { + baseName: "next", + type: "string", + }, + prev: { + baseName: "prev", + type: "string", + }, + self: { + baseName: "self", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsOffsetLinks.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsOffsetMeta.ts b/packages/datadog-api-client-v2/models/ExperimentsOffsetMeta.ts new file mode 100644 index 000000000000..3dc44616363e --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsOffsetMeta.ts @@ -0,0 +1,53 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsOffsetMetaPage } from "./ExperimentsOffsetMetaPage"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Pagination information for a list response. + */ +export class ExperimentsOffsetMeta { + /** + * Result counts and offsets for a page of results. + */ + "page"?: ExperimentsOffsetMetaPage; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + page: { + baseName: "page", + type: "ExperimentsOffsetMetaPage", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsOffsetMeta.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsOffsetMetaPage.ts b/packages/datadog-api-client-v2/models/ExperimentsOffsetMetaPage.ts new file mode 100644 index 000000000000..365f85326e2f --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsOffsetMetaPage.ts @@ -0,0 +1,115 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Result counts and offsets for a page of results. + */ +export class ExperimentsOffsetMetaPage { + /** + * Offset of the first page of results. + */ + "firstOffset"?: number; + /** + * Offset of the last page of results. + */ + "lastOffset"?: number; + /** + * Maximum number of results returned in one page. + */ + "limit"?: number; + /** + * Offset of the next page of results. + */ + "nextOffset"?: number; + /** + * Number of results skipped before this page. + */ + "offset"?: number; + /** + * Offset of the previous page of results. + */ + "prevOffset"?: number; + /** + * Total number of matching results across all pages. + */ + "total"?: number; + /** + * Pagination method used for this result set. + */ + "type"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + firstOffset: { + baseName: "first_offset", + type: "number", + format: "int64", + }, + lastOffset: { + baseName: "last_offset", + type: "number", + format: "int64", + }, + limit: { + baseName: "limit", + type: "number", + format: "int64", + }, + nextOffset: { + baseName: "next_offset", + type: "number", + format: "int64", + }, + offset: { + baseName: "offset", + type: "number", + format: "int64", + }, + prevOffset: { + baseName: "prev_offset", + type: "number", + format: "int64", + }, + total: { + baseName: "total", + type: "number", + format: "int64", + }, + type: { + baseName: "type", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsOffsetMetaPage.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentMetricGroupV2Request.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentMetricGroupV2Request.ts new file mode 100644 index 000000000000..2ce7e8a7a15b --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentMetricGroupV2Request.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsPatchExperimentMetricGroupV2RequestData } from "./ExperimentsPatchExperimentMetricGroupV2RequestData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Request to update the experiment metric group. + */ +export class ExperimentsPatchExperimentMetricGroupV2Request { + /** + * JSON:API resource containing the experiment metric group identity and fields. + */ + "data": ExperimentsPatchExperimentMetricGroupV2RequestData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsPatchExperimentMetricGroupV2RequestData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPatchExperimentMetricGroupV2Request.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentMetricGroupV2RequestData.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentMetricGroupV2RequestData.ts new file mode 100644 index 000000000000..6c721b1ff121 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentMetricGroupV2RequestData.ts @@ -0,0 +1,72 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsPatchExperimentMetricGroupV2RequestDataAttributes } from "./ExperimentsPatchExperimentMetricGroupV2RequestDataAttributes"; +import { ExperimentsPatchExperimentMetricGroupV2RequestDataType } from "./ExperimentsPatchExperimentMetricGroupV2RequestDataType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * JSON:API resource containing the experiment metric group identity and fields. + */ +export class ExperimentsPatchExperimentMetricGroupV2RequestData { + /** + * Fields supplied to update the experiment metric group. + */ + "attributes"?: ExperimentsPatchExperimentMetricGroupV2RequestDataAttributes; + /** + * ID of the experiment metric group. + */ + "id"?: string; + /** + * Experiment metric groups resource type. + */ + "type": ExperimentsPatchExperimentMetricGroupV2RequestDataType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsPatchExperimentMetricGroupV2RequestDataAttributes", + }, + id: { + baseName: "id", + type: "string", + format: "uuid", + }, + type: { + baseName: "type", + type: "ExperimentsPatchExperimentMetricGroupV2RequestDataType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPatchExperimentMetricGroupV2RequestData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentMetricGroupV2RequestDataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentMetricGroupV2RequestDataAttributes.ts new file mode 100644 index 000000000000..80d82ba82d1a --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentMetricGroupV2RequestDataAttributes.ts @@ -0,0 +1,69 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateExperimentMetricGroupV2RequestDataAttributesMetricsItems } from "./ExperimentsCreateExperimentMetricGroupV2RequestDataAttributesMetricsItems"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Fields supplied to update the experiment metric group. + */ +export class ExperimentsPatchExperimentMetricGroupV2RequestDataAttributes { + /** + * Metrics included in this group. + */ + "metrics"?: Array; + /** + * Metadata retained for resources imported from another system. + */ + "migrationMetadata"?: any; + /** + * Display name of the experiment metric group. + */ + "name"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + metrics: { + baseName: "metrics", + type: "Array", + }, + migrationMetadata: { + baseName: "migration_metadata", + type: "any", + }, + name: { + baseName: "name", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPatchExperimentMetricGroupV2RequestDataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentMetricGroupV2RequestDataType.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentMetricGroupV2RequestDataType.ts new file mode 100644 index 000000000000..c4d222960640 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentMetricGroupV2RequestDataType.ts @@ -0,0 +1,16 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Experiment metric groups resource type. + */ + +export type ExperimentsPatchExperimentMetricGroupV2RequestDataType = + | typeof EXPERIMENT_METRIC_GROUPS + | UnparsedObject; +export const EXPERIMENT_METRIC_GROUPS = "experiment-metric-groups"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2MetaDTO.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2MetaDTO.ts new file mode 100644 index 000000000000..02021b5848f3 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2MetaDTO.ts @@ -0,0 +1,70 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsPatchExperimentV2MetaDTOWarningsItems } from "./ExperimentsPatchExperimentV2MetaDTOWarningsItems"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Refresh requirements and warnings returned by an experiment update. + */ +export class ExperimentsPatchExperimentV2MetaDTO { + /** + * Whether this edit needs a full or non-full pipeline run. This operation does not start the run. A later false value does not clear a refresh required by an earlier edit. + */ + "needsPipelineRefresh": boolean; + /** + * POST to this endpoint after finishing your edits. The full_refresh query parameter selects the required run type. Across multiple edits any full_refresh=true requirement takes priority. + */ + "refreshEndpoint"?: string; + /** + * Warnings returned after the experiment update. + */ + "warnings"?: Array; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + needsPipelineRefresh: { + baseName: "needs_pipeline_refresh", + type: "boolean", + required: true, + }, + refreshEndpoint: { + baseName: "refresh_endpoint", + type: "string", + }, + warnings: { + baseName: "warnings", + type: "Array", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPatchExperimentV2MetaDTO.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2MetaDTOWarningsItems.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2MetaDTOWarningsItems.ts new file mode 100644 index 000000000000..ce9e2997bba1 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2MetaDTOWarningsItems.ts @@ -0,0 +1,62 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * A warning returned after an experiment update. + */ +export class ExperimentsPatchExperimentV2MetaDTOWarningsItems { + /** + * Code that identifies the warning. + */ + "code": string; + /** + * Explanation of the warning and its effect on the update. + */ + "detail": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + code: { + baseName: "code", + type: "string", + required: true, + }, + detail: { + baseName: "detail", + type: "string", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPatchExperimentV2MetaDTOWarningsItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2Request.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2Request.ts new file mode 100644 index 000000000000..8236e72805e1 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2Request.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsPatchExperimentV2RequestData } from "./ExperimentsPatchExperimentV2RequestData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Request to update the experiment. + */ +export class ExperimentsPatchExperimentV2Request { + /** + * JSON:API resource containing the experiment identity and fields. + */ + "data": ExperimentsPatchExperimentV2RequestData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsPatchExperimentV2RequestData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPatchExperimentV2Request.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2RequestData.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2RequestData.ts new file mode 100644 index 000000000000..597a20e300e7 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2RequestData.ts @@ -0,0 +1,71 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsPatchExperimentV2RequestDataAttributes } from "./ExperimentsPatchExperimentV2RequestDataAttributes"; +import { ExperimentsPatchExperimentV2ResponseDataType } from "./ExperimentsPatchExperimentV2ResponseDataType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * JSON:API resource containing the experiment identity and fields. + */ +export class ExperimentsPatchExperimentV2RequestData { + /** + * Fields supplied to update the experiment. + */ + "attributes"?: ExperimentsPatchExperimentV2RequestDataAttributes; + /** + * ID of the experiment. + */ + "id"?: string; + /** + * Experiments resource type. + */ + "type": ExperimentsPatchExperimentV2ResponseDataType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsPatchExperimentV2RequestDataAttributes", + }, + id: { + baseName: "id", + type: "string", + }, + type: { + baseName: "type", + type: "ExperimentsPatchExperimentV2ResponseDataType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPatchExperimentV2RequestData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2RequestDataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2RequestDataAttributes.ts new file mode 100644 index 000000000000..340c25a20d09 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2RequestDataAttributes.ts @@ -0,0 +1,208 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateExperimentV2RequestDataAttributesDecisionMetricsItems } from "./ExperimentsCreateExperimentV2RequestDataAttributesDecisionMetricsItems"; +import { ExperimentsCreateExperimentV2RequestDataAttributesRelatedLinksItems } from "./ExperimentsCreateExperimentV2RequestDataAttributesRelatedLinksItems"; +import { ExperimentsCreateExperimentV2RequestDataAttributesSplitByPropertiesItems } from "./ExperimentsCreateExperimentV2RequestDataAttributesSplitByPropertiesItems"; +import { ExperimentsCreateExperimentV2RequestDataAttributesStructuredMetadataItems } from "./ExperimentsCreateExperimentV2RequestDataAttributesStructuredMetadataItems"; +import { ExperimentsCreateExperimentV2RequestDataAttributesVariantsItems } from "./ExperimentsCreateExperimentV2RequestDataAttributesVariantsItems"; +import { ExperimentsCreateExperimentV2RequestDataAttributesWarehouseExposureConfiguration } from "./ExperimentsCreateExperimentV2RequestDataAttributesWarehouseExposureConfiguration"; +import { ExperimentsPatchExperimentV2RequestDataAttributesDatadogFlagConfiguration } from "./ExperimentsPatchExperimentV2RequestDataAttributesDatadogFlagConfiguration"; +import { ExperimentsPatchExperimentV2ResponseDataAttributesTrafficExposure } from "./ExperimentsPatchExperimentV2ResponseDataAttributesTrafficExposure"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Fields supplied to update the experiment. + */ +export class ExperimentsPatchExperimentV2RequestDataAttributes { + /** + * End of the time window for experiment assignments. + */ + "assignmentsEndDate"?: Date; + /** + * Start of the time window for experiment assignments. + */ + "assignmentsStartDate"?: Date; + /** + * Feature flag, environment, and targeting configuration for the experiment. + */ + "datadogFlagConfiguration"?: ExperimentsPatchExperimentV2RequestDataAttributesDatadogFlagConfiguration; + /** + * Metrics used to decide the experiment outcome. + */ + "decisionMetrics"?: Array; + /** + * End of the time window for metric events. + */ + "eventsEndDate"?: Date; + /** + * Start of the time window for metric events. + */ + "eventsStartDate"?: Date; + /** + * Expected effect that the experiment is intended to test. + */ + "hypothesis"?: string; + /** + * Metadata retained for resources imported from another system. + */ + "migrationMetadata"?: any; + /** + * Display name of the experiment. + */ + "name"?: string; + /** + * Links to supporting material for the experiment. + */ + "relatedLinks"?: Array; + /** + * Complete replacement for the Datadog split-by selection. Identify each property by column_name. Omit this field to leave the selection unchanged. + */ + "splitByProperties"?: Array; + /** + * Metadata values to update. Omit this field, send null, or send an empty array to leave metadata unchanged. + */ + "structuredMetadata"?: Array; + /** + * ID of the subject type used by this configuration. + */ + "subjectTypeId"?: string; + /** + * Summary text recorded for the experiment. + */ + "summary"?: string; + /** + * Tags attached to the experiment. + */ + "tags"?: Array; + /** + * Teams associated with the experiment. + */ + "teams"?: Array; + /** + * Traffic exposure fraction or schedule configured for the experiment. + */ + "trafficExposure"?: ExperimentsPatchExperimentV2ResponseDataAttributesTrafficExposure; + /** + * Variants configured for the experiment. + */ + "variants"?: Array; + /** + * Warehouse model and experiment key used to read assignment data. + */ + "warehouseExposureConfiguration"?: ExperimentsCreateExperimentV2RequestDataAttributesWarehouseExposureConfiguration; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + assignmentsEndDate: { + baseName: "assignments_end_date", + type: "Date", + format: "date-time", + }, + assignmentsStartDate: { + baseName: "assignments_start_date", + type: "Date", + format: "date-time", + }, + datadogFlagConfiguration: { + baseName: "datadog_flag_configuration", + type: "ExperimentsPatchExperimentV2RequestDataAttributesDatadogFlagConfiguration", + }, + decisionMetrics: { + baseName: "decision_metrics", + type: "Array", + }, + eventsEndDate: { + baseName: "events_end_date", + type: "Date", + format: "date-time", + }, + eventsStartDate: { + baseName: "events_start_date", + type: "Date", + format: "date-time", + }, + hypothesis: { + baseName: "hypothesis", + type: "string", + }, + migrationMetadata: { + baseName: "migration_metadata", + type: "any", + }, + name: { + baseName: "name", + type: "string", + }, + relatedLinks: { + baseName: "related_links", + type: "Array", + }, + splitByProperties: { + baseName: "split_by_properties", + type: "Array", + }, + structuredMetadata: { + baseName: "structured_metadata", + type: "Array", + }, + subjectTypeId: { + baseName: "subject_type_id", + type: "string", + }, + summary: { + baseName: "summary", + type: "string", + }, + tags: { + baseName: "tags", + type: "Array", + }, + teams: { + baseName: "teams", + type: "Array", + }, + trafficExposure: { + baseName: "traffic_exposure", + type: "ExperimentsPatchExperimentV2ResponseDataAttributesTrafficExposure", + }, + variants: { + baseName: "variants", + type: "Array", + }, + warehouseExposureConfiguration: { + baseName: "warehouse_exposure_configuration", + type: "ExperimentsCreateExperimentV2RequestDataAttributesWarehouseExposureConfiguration", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPatchExperimentV2RequestDataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2RequestDataAttributesDatadogFlagConfiguration.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2RequestDataAttributesDatadogFlagConfiguration.ts new file mode 100644 index 000000000000..131c95c2adba --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2RequestDataAttributesDatadogFlagConfiguration.ts @@ -0,0 +1,86 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfigurationTargetingRulesItems } from "./ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfigurationTargetingRulesItems"; +import { ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPoint } from "./ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPoint"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Feature flag, environment, and targeting configuration for the experiment. + */ +export class ExperimentsPatchExperimentV2RequestDataAttributesDatadogFlagConfiguration { + /** + * Datadog measure and filters used to select analyzed subjects. + */ + "entryPoint"?: ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPoint; + /** + * ID of the feature flag environment used by the experiment. + */ + "environmentId"?: string; + /** + * ID of the feature flag linked to the experiment. + */ + "featureFlagId"?: string; + /** + * Set true to replace an existing draft allocation when feature_flag_id changes. The replacement resets all flag-bound randomization state. + */ + "resetOnFeatureFlagChange"?: boolean; + /** + * Omit to keep the stored rules. Use an empty array to remove targeting rules. + */ + "targetingRules"?: Array; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + entryPoint: { + baseName: "entry_point", + type: "ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPoint", + }, + environmentId: { + baseName: "environment_id", + type: "string", + }, + featureFlagId: { + baseName: "feature_flag_id", + type: "string", + }, + resetOnFeatureFlagChange: { + baseName: "reset_on_feature_flag_change", + type: "boolean", + }, + targetingRules: { + baseName: "targeting_rules", + type: "Array", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPatchExperimentV2RequestDataAttributesDatadogFlagConfiguration.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2Response.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2Response.ts new file mode 100644 index 000000000000..03c6962ef9b1 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2Response.ts @@ -0,0 +1,63 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsExperimentV2DTOData } from "./ExperimentsExperimentV2DTOData"; +import { ExperimentsPatchExperimentV2MetaDTO } from "./ExperimentsPatchExperimentV2MetaDTO"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Response containing the updated experiment, refresh requirements, and warnings. + */ +export class ExperimentsPatchExperimentV2Response { + /** + * Experiment resource with its identifier and configuration. + */ + "data": ExperimentsExperimentV2DTOData; + /** + * Refresh requirements and warnings returned by an experiment update. + */ + "meta"?: ExperimentsPatchExperimentV2MetaDTO; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsExperimentV2DTOData", + required: true, + }, + meta: { + baseName: "meta", + type: "ExperimentsPatchExperimentV2MetaDTO", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPatchExperimentV2Response.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributes.ts new file mode 100644 index 000000000000..710c5e450ec0 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributes.ts @@ -0,0 +1,294 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateExperimentV2RequestDataAttributesDecisionMetricsItems } from "./ExperimentsCreateExperimentV2RequestDataAttributesDecisionMetricsItems"; +import { ExperimentsCreateExperimentV2RequestDataAttributesRelatedLinksItems } from "./ExperimentsCreateExperimentV2RequestDataAttributesRelatedLinksItems"; +import { ExperimentsExperimentV2DTODataAttributesSplitByPropertiesItems } from "./ExperimentsExperimentV2DTODataAttributesSplitByPropertiesItems"; +import { ExperimentsExperimentV2DTODataAttributesStatus } from "./ExperimentsExperimentV2DTODataAttributesStatus"; +import { ExperimentsExperimentV2DTODataAttributesVariantsItems } from "./ExperimentsExperimentV2DTODataAttributesVariantsItems"; +import { ExperimentsPatchExperimentV2ResponseDataAttributesConclusion } from "./ExperimentsPatchExperimentV2ResponseDataAttributesConclusion"; +import { ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfiguration } from "./ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfiguration"; +import { ExperimentsPatchExperimentV2ResponseDataAttributesTrafficExposure } from "./ExperimentsPatchExperimentV2ResponseDataAttributesTrafficExposure"; +import { ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfiguration } from "./ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfiguration"; +import { ExperimentsStructuredMetadataResponse } from "./ExperimentsStructuredMetadataResponse"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Details of the experiment. + */ +export class ExperimentsPatchExperimentV2ResponseDataAttributes { + /** + * End of the time window for experiment assignments. + */ + "assignmentsEndDate"?: Date; + /** + * Start of the time window for experiment assignments. + */ + "assignmentsStartDate"?: Date; + /** + * Time when the experiment was concluded. + */ + "concludedAt"?: Date; + /** + * Outcome and supporting text recorded when the experiment is concluded. + */ + "conclusion"?: ExperimentsPatchExperimentV2ResponseDataAttributesConclusion; + /** + * Time when this resource was created. + */ + "createdAt"?: Date; + /** + * Feature flag, environment, and targeting configuration for the experiment. + */ + "datadogFlagConfiguration"?: ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfiguration; + /** + * Metrics used to decide the experiment outcome. + */ + "decisionMetrics"?: Array; + /** + * Key of the variant selected in the experiment decision. + */ + "decisionVariantKey"?: string; + /** + * End of the time window for metric events. + */ + "eventsEndDate"?: Date; + /** + * Start of the time window for metric events. + */ + "eventsStartDate"?: Date; + /** + * Kind of experiment. STANDARD is an ordinary experiment. Other values, such as CANARY and HOLDOUT, identify experiments owned by another workflow. New kinds may be added; treat unknown values as non-standard. + */ + "experimentType"?: string; + /** + * Expected effect that the experiment is intended to test. + */ + "hypothesis"?: string; + /** + * Metadata retained for resources imported from another system. + */ + "migrationMetadata"?: any; + /** + * Display name of the experiment. + */ + "name"?: string; + /** + * Suffix used to identify the experiment's pipeline output table. + */ + "pipelineTableSuffix"?: string; + /** + * ID of the protocol associated with the experiment. + */ + "protocolId"?: string; + /** + * Links to supporting material for the experiment. + */ + "relatedLinks"?: Array; + /** + * Time of the most recent update to the experiment's results. + */ + "resultsLastUpdated"?: Date; + /** + * Properties used to split the experiment results into groups. + */ + "splitByProperties"?: Array; + /** + * Current stage in the experiment lifecycle. + */ + "status"?: ExperimentsExperimentV2DTODataAttributesStatus; + /** + * Values of structured metadata fields attached to the experiment. + */ + "structuredMetadata"?: Array; + /** + * ID of the subject type used by this configuration. + */ + "subjectTypeId"?: string; + /** + * Summary text recorded for the experiment. + */ + "summary"?: string; + /** + * Tags attached to the experiment. + */ + "tags"?: Array; + /** + * Teams associated with the experiment. + */ + "teams"?: Array; + /** + * Traffic exposure fraction or schedule configured for the experiment. + */ + "trafficExposure"?: ExperimentsPatchExperimentV2ResponseDataAttributesTrafficExposure; + /** + * Time when this resource was last updated. + */ + "updatedAt"?: Date; + /** + * Variants configured for the experiment. + */ + "variants"?: Array; + /** + * Warehouse exposure model and settings used to identify experiment assignments. + */ + "warehouseExposureConfiguration"?: ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfiguration; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + assignmentsEndDate: { + baseName: "assignments_end_date", + type: "Date", + format: "date-time", + }, + assignmentsStartDate: { + baseName: "assignments_start_date", + type: "Date", + format: "date-time", + }, + concludedAt: { + baseName: "concluded_at", + type: "Date", + format: "date-time", + }, + conclusion: { + baseName: "conclusion", + type: "ExperimentsPatchExperimentV2ResponseDataAttributesConclusion", + }, + createdAt: { + baseName: "created_at", + type: "Date", + format: "date-time", + }, + datadogFlagConfiguration: { + baseName: "datadog_flag_configuration", + type: "ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfiguration", + }, + decisionMetrics: { + baseName: "decision_metrics", + type: "Array", + }, + decisionVariantKey: { + baseName: "decision_variant_key", + type: "string", + }, + eventsEndDate: { + baseName: "events_end_date", + type: "Date", + format: "date-time", + }, + eventsStartDate: { + baseName: "events_start_date", + type: "Date", + format: "date-time", + }, + experimentType: { + baseName: "experiment_type", + type: "string", + }, + hypothesis: { + baseName: "hypothesis", + type: "string", + }, + migrationMetadata: { + baseName: "migration_metadata", + type: "any", + }, + name: { + baseName: "name", + type: "string", + }, + pipelineTableSuffix: { + baseName: "pipeline_table_suffix", + type: "string", + }, + protocolId: { + baseName: "protocol_id", + type: "string", + }, + relatedLinks: { + baseName: "related_links", + type: "Array", + }, + resultsLastUpdated: { + baseName: "results_last_updated", + type: "Date", + format: "date-time", + }, + splitByProperties: { + baseName: "split_by_properties", + type: "Array", + }, + status: { + baseName: "status", + type: "ExperimentsExperimentV2DTODataAttributesStatus", + }, + structuredMetadata: { + baseName: "structured_metadata", + type: "Array", + }, + subjectTypeId: { + baseName: "subject_type_id", + type: "string", + }, + summary: { + baseName: "summary", + type: "string", + }, + tags: { + baseName: "tags", + type: "Array", + }, + teams: { + baseName: "teams", + type: "Array", + }, + trafficExposure: { + baseName: "traffic_exposure", + type: "ExperimentsPatchExperimentV2ResponseDataAttributesTrafficExposure", + }, + updatedAt: { + baseName: "updated_at", + type: "Date", + format: "date-time", + }, + variants: { + baseName: "variants", + type: "Array", + }, + warehouseExposureConfiguration: { + baseName: "warehouse_exposure_configuration", + type: "ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfiguration", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPatchExperimentV2ResponseDataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesConclusion.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesConclusion.ts new file mode 100644 index 000000000000..e03389f05509 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesConclusion.ts @@ -0,0 +1,69 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsExperimentV2DTODataAttributesConclusionOutcome } from "./ExperimentsExperimentV2DTODataAttributesConclusionOutcome"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Outcome and supporting text recorded when the experiment is concluded. + */ +export class ExperimentsPatchExperimentV2ResponseDataAttributesConclusion { + /** + * Reason for the recorded decision. + */ + "decisionReason"?: string; + /** + * Recorded experiment outcome. + */ + "outcome"?: ExperimentsExperimentV2DTODataAttributesConclusionOutcome; + /** + * Summary of the experiment conclusion. + */ + "summary"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + decisionReason: { + baseName: "decision_reason", + type: "string", + }, + outcome: { + baseName: "outcome", + type: "ExperimentsExperimentV2DTODataAttributesConclusionOutcome", + }, + summary: { + baseName: "summary", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPatchExperimentV2ResponseDataAttributesConclusion.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfiguration.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfiguration.ts new file mode 100644 index 000000000000..5bf26dbd9c8c --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfiguration.ts @@ -0,0 +1,87 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfigurationTargetingRulesItems } from "./ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfigurationTargetingRulesItems"; +import { ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPoint } from "./ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPoint"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Feature flag, environment, and targeting configuration for the experiment. + */ +export class ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfiguration { + /** + * Key of the feature flag allocation linked to the experiment. + */ + "allocationKey"?: string; + /** + * Datadog measure and filters used to select analyzed subjects. + */ + "entryPoint": ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPoint | null; + /** + * ID of the feature flag environment used by the experiment. + */ + "environmentId"?: string; + /** + * ID of the feature flag linked to the experiment. + */ + "featureFlagId"?: string; + /** + * Rules that select subjects for the experiment. + */ + "targetingRules"?: Array; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + allocationKey: { + baseName: "allocation_key", + type: "string", + }, + entryPoint: { + baseName: "entry_point", + type: "ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPoint", + required: true, + }, + environmentId: { + baseName: "environment_id", + type: "string", + }, + featureFlagId: { + baseName: "feature_flag_id", + type: "string", + }, + targetingRules: { + baseName: "targeting_rules", + type: "Array", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfiguration.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPoint.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPoint.ts new file mode 100644 index 000000000000..40c67d9e0a79 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPoint.ts @@ -0,0 +1,63 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsDatadogEntryPointFilter } from "./ExperimentsDatadogEntryPointFilter"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Datadog measure and filters used to select analyzed subjects. + */ +export class ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPoint { + /** + * Complete Datadog OR-of-ANDs entry-point filter expression. + */ + "filters": Array>; + /** + * Datadog measure UUID. + */ + "measureId": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + filters: { + baseName: "filters", + type: "Array>", + required: true, + }, + measureId: { + baseName: "measure_id", + type: "string", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPoint.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsColumnType.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsColumnType.ts new file mode 100644 index 000000000000..b27a957dc6f7 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsColumnType.ts @@ -0,0 +1,31 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Data type of the column evaluated by the entry-point filter. + */ + +export type ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsColumnType = + + | typeof VARCHAR + | typeof INT + | typeof DOUBLE + | typeof BOOLEAN + | typeof VARCHAR_ARRAY + | typeof INT_ARRAY + | typeof DOUBLE_ARRAY + | typeof RAW + | UnparsedObject; +export const VARCHAR = "varchar"; +export const INT = "int"; +export const DOUBLE = "double"; +export const BOOLEAN = "boolean"; +export const VARCHAR_ARRAY = "varchar_array"; +export const INT_ARRAY = "int_array"; +export const DOUBLE_ARRAY = "double_array"; +export const RAW = "raw"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsOperation.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsOperation.ts new file mode 100644 index 000000000000..172e3ea49f7b --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsOperation.ts @@ -0,0 +1,31 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Comparison applied by the Datadog entry-point filter. + */ + +export type ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsOperation = + + | typeof EQ + | typeof IN + | typeof NEQ + | typeof NOT_IN + | typeof GTE + | typeof LTE + | typeof GT + | typeof LT + | UnparsedObject; +export const EQ = "eq"; +export const IN = "in"; +export const NEQ = "neq"; +export const NOT_IN = "not_in"; +export const GTE = "gte"; +export const LTE = "lte"; +export const GT = "gt"; +export const LT = "lt"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationTargetingRulesItemsConditionsItemsOperator.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationTargetingRulesItemsConditionsItemsOperator.ts new file mode 100644 index 000000000000..dca23cd1e901 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationTargetingRulesItemsConditionsItemsOperator.ts @@ -0,0 +1,47 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Required with attribute and value for an inline condition; omit when saved_filter_id is set. + */ + +export type ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationTargetingRulesItemsConditionsItemsOperator = + + | typeof LT + | typeof LTE + | typeof GT + | typeof GTE + | typeof MATCHES + | typeof NOT_MATCHES + | typeof ONE_OF + | typeof NOT_ONE_OF + | typeof IS_NULL + | typeof EQUALS + | typeof SEMVER_EQ + | typeof SEMVER_NEQ + | typeof SEMVER_LT + | typeof SEMVER_LTE + | typeof SEMVER_GT + | typeof SEMVER_GTE + | UnparsedObject; +export const LT = "LT"; +export const LTE = "LTE"; +export const GT = "GT"; +export const GTE = "GTE"; +export const MATCHES = "MATCHES"; +export const NOT_MATCHES = "NOT_MATCHES"; +export const ONE_OF = "ONE_OF"; +export const NOT_ONE_OF = "NOT_ONE_OF"; +export const IS_NULL = "IS_NULL"; +export const EQUALS = "EQUALS"; +export const SEMVER_EQ = "SEMVER_EQ"; +export const SEMVER_NEQ = "SEMVER_NEQ"; +export const SEMVER_LT = "SEMVER_LT"; +export const SEMVER_LTE = "SEMVER_LTE"; +export const SEMVER_GT = "SEMVER_GT"; +export const SEMVER_GTE = "SEMVER_GTE"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesSplitByPropertiesItemsColumnType.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesSplitByPropertiesItemsColumnType.ts new file mode 100644 index 000000000000..afafc4624354 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesSplitByPropertiesItemsColumnType.ts @@ -0,0 +1,43 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Type of the Datadog exposure field or Warehouse column. + */ + +export type ExperimentsPatchExperimentV2ResponseDataAttributesSplitByPropertiesItemsColumnType = + + | typeof VARCHAR + | typeof INT + | typeof DOUBLE + | typeof BOOLEAN_DATADOG + | typeof VARCHAR_ARRAY + | typeof INT_ARRAY + | typeof DOUBLE_ARRAY + | typeof RAW + | typeof STRING + | typeof INTEGER + | typeof FLOAT + | typeof BOOLEAN_WAREHOUSE + | typeof DATE + | typeof TIMESTAMP + | UnparsedObject; +export const VARCHAR = "varchar"; +export const INT = "int"; +export const DOUBLE = "double"; +export const BOOLEAN_DATADOG = "boolean"; +export const VARCHAR_ARRAY = "varchar_array"; +export const INT_ARRAY = "int_array"; +export const DOUBLE_ARRAY = "double_array"; +export const RAW = "raw"; +export const STRING = "STRING"; +export const INTEGER = "INTEGER"; +export const FLOAT = "FLOAT"; +export const BOOLEAN_WAREHOUSE = "BOOLEAN"; +export const DATE = "DATE"; +export const TIMESTAMP = "TIMESTAMP"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesStructuredMetadataItemsFieldType.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesStructuredMetadataItemsFieldType.ts new file mode 100644 index 000000000000..a71f20a820ca --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesStructuredMetadataItemsFieldType.ts @@ -0,0 +1,16 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Type of value stored in the structured metadata field. + */ + +export type ExperimentsPatchExperimentV2ResponseDataAttributesStructuredMetadataItemsFieldType = + typeof FREETEXT | typeof ENUM | UnparsedObject; +export const FREETEXT = "FREETEXT"; +export const ENUM = "ENUM"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesTrafficExposure.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesTrafficExposure.ts new file mode 100644 index 000000000000..278fdfd22fd4 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesTrafficExposure.ts @@ -0,0 +1,72 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureMode } from "./ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureMode"; +import { ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureStepsItems } from "./ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureStepsItems"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Traffic exposure fraction or schedule configured for the experiment. + */ +export class ExperimentsPatchExperimentV2ResponseDataAttributesTrafficExposure { + /** + * STATIC exposure fraction. Draft experiments can change this value. After start only warehouse experiments without a Datadog flag can change a STATIC fraction through the public API. + */ + "fraction"?: number; + /** + * Whether exposure uses a fixed fraction or a sequence of steps. + */ + "mode": ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureMode; + /** + * Configured exposure plan rather than wall-clock history. At least two steps must have strictly increasing fractions and no gaps. Warehouse steps start at assignments_start_date and can use different durations. New Datadog plans have at most five steps and a first fraction above zero. Their nonfinal durations must be equal and exclude time paused. Datadog steps start with the experiment. Running warehouse experiments can replace step fractions, durations, and the exposure mode. After start, Datadog exposure plans cannot change through the public API. The final duration is null and its fraction holds until assignment ends. + */ + "steps"?: Array; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + fraction: { + baseName: "fraction", + type: "number", + format: "double", + }, + mode: { + baseName: "mode", + type: "ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureMode", + required: true, + }, + steps: { + baseName: "steps", + type: "Array", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPatchExperimentV2ResponseDataAttributesTrafficExposure.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfiguration.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfiguration.ts new file mode 100644 index 000000000000..34ff95c9b59b --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfiguration.ts @@ -0,0 +1,72 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPoint } from "./ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPoint"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Warehouse exposure model and settings used to identify experiment assignments. + */ +export class ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfiguration { + /** + * Optional Warehouse measure that scopes analyzed subjects. + */ + "entryPoint": ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPoint | null; + /** + * Warehouse experiment key. Reads can return null for incomplete configuration; configuration writes require a value. + */ + "experimentKey": string | null; + /** + * ID of the exposure SQL model that provides assignment data. + */ + "exposureSqlModelId": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + entryPoint: { + baseName: "entry_point", + type: "ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPoint", + required: true, + }, + experimentKey: { + baseName: "experiment_key", + type: "string", + required: true, + }, + exposureSqlModelId: { + baseName: "exposure_sql_model_id", + type: "string", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfiguration.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPoint.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPoint.ts new file mode 100644 index 000000000000..eca7238532e0 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPoint.ts @@ -0,0 +1,63 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsWarehouseExposureFilter } from "./ExperimentsWarehouseExposureFilter"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Optional Warehouse measure that scopes analyzed subjects. + */ +export class ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPoint { + /** + * Complete ordered Warehouse entry-point filter set. + */ + "filters": Array; + /** + * Warehouse measure UUID. + */ + "measureId": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + filters: { + baseName: "filters", + type: "Array", + required: true, + }, + measureId: { + baseName: "measure_id", + type: "string", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPoint.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPointFiltersItemsOperation.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPointFiltersItemsOperation.ts new file mode 100644 index 000000000000..6f869ed8ceb7 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPointFiltersItemsOperation.ts @@ -0,0 +1,16 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Comparison applied by the warehouse entry-point filter. + */ + +export type ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPointFiltersItemsOperation = + typeof IS | typeof IS_NOT | UnparsedObject; +export const IS = "IS"; +export const IS_NOT = "IS_NOT"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataType.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataType.ts new file mode 100644 index 000000000000..cda3cc0811a9 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchExperimentV2ResponseDataType.ts @@ -0,0 +1,16 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Experiments resource type. + */ + +export type ExperimentsPatchExperimentV2ResponseDataType = + | typeof EXPERIMENTS + | UnparsedObject; +export const EXPERIMENTS = "experiments"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchMetricCollectionV2Request.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchMetricCollectionV2Request.ts new file mode 100644 index 000000000000..b0e045917d5b --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchMetricCollectionV2Request.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsPatchMetricCollectionV2RequestData } from "./ExperimentsPatchMetricCollectionV2RequestData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Request to update the metric collection. + */ +export class ExperimentsPatchMetricCollectionV2Request { + /** + * JSON:API resource containing the metric collection identity and fields. + */ + "data": ExperimentsPatchMetricCollectionV2RequestData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsPatchMetricCollectionV2RequestData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPatchMetricCollectionV2Request.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchMetricCollectionV2RequestData.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchMetricCollectionV2RequestData.ts new file mode 100644 index 000000000000..41b50f4acca4 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchMetricCollectionV2RequestData.ts @@ -0,0 +1,71 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsPatchMetricCollectionV2RequestDataAttributes } from "./ExperimentsPatchMetricCollectionV2RequestDataAttributes"; +import { ExperimentsPatchMetricCollectionV2RequestDataType } from "./ExperimentsPatchMetricCollectionV2RequestDataType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * JSON:API resource containing the metric collection identity and fields. + */ +export class ExperimentsPatchMetricCollectionV2RequestData { + /** + * Fields supplied to update the metric collection. + */ + "attributes"?: ExperimentsPatchMetricCollectionV2RequestDataAttributes; + /** + * ID of the metric collection. + */ + "id"?: string; + /** + * Metric collections resource type. + */ + "type": ExperimentsPatchMetricCollectionV2RequestDataType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsPatchMetricCollectionV2RequestDataAttributes", + }, + id: { + baseName: "id", + type: "string", + }, + type: { + baseName: "type", + type: "ExperimentsPatchMetricCollectionV2RequestDataType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPatchMetricCollectionV2RequestData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchMetricCollectionV2RequestDataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchMetricCollectionV2RequestDataAttributes.ts new file mode 100644 index 000000000000..6402c875600d --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchMetricCollectionV2RequestDataAttributes.ts @@ -0,0 +1,77 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateMetricCollectionV2RequestDataAttributesMetricsItems } from "./ExperimentsCreateMetricCollectionV2RequestDataAttributesMetricsItems"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Fields supplied to update the metric collection. + */ +export class ExperimentsPatchMetricCollectionV2RequestDataAttributes { + /** + * Text that explains the metric collection. + */ + "description"?: string; + /** + * Whether the collection is used for guardrail metrics. + */ + "isGuardrail"?: boolean; + /** + * Metrics included in this collection. + */ + "metrics"?: Array; + /** + * Display name of the metric collection. + */ + "name"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + description: { + baseName: "description", + type: "string", + }, + isGuardrail: { + baseName: "is_guardrail", + type: "boolean", + }, + metrics: { + baseName: "metrics", + type: "Array", + }, + name: { + baseName: "name", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPatchMetricCollectionV2RequestDataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchMetricCollectionV2RequestDataType.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchMetricCollectionV2RequestDataType.ts new file mode 100644 index 000000000000..1343eb92147a --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchMetricCollectionV2RequestDataType.ts @@ -0,0 +1,16 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Metric collections resource type. + */ + +export type ExperimentsPatchMetricCollectionV2RequestDataType = + | typeof METRIC_COLLECTIONS + | UnparsedObject; +export const METRIC_COLLECTIONS = "metric-collections"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchSubjectTypeV2Request.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchSubjectTypeV2Request.ts new file mode 100644 index 000000000000..81a2eb0d5ef2 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchSubjectTypeV2Request.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsPatchSubjectTypeV2RequestData } from "./ExperimentsPatchSubjectTypeV2RequestData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Request to update the subject type. + */ +export class ExperimentsPatchSubjectTypeV2Request { + /** + * JSON:API resource containing the subject type identity and fields. + */ + "data": ExperimentsPatchSubjectTypeV2RequestData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsPatchSubjectTypeV2RequestData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPatchSubjectTypeV2Request.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchSubjectTypeV2RequestData.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchSubjectTypeV2RequestData.ts new file mode 100644 index 000000000000..4fa064ed27cf --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchSubjectTypeV2RequestData.ts @@ -0,0 +1,72 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsPatchSubjectTypeV2RequestDataAttributes } from "./ExperimentsPatchSubjectTypeV2RequestDataAttributes"; +import { ExperimentsSubjectTypeV2DTODataType } from "./ExperimentsSubjectTypeV2DTODataType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * JSON:API resource containing the subject type identity and fields. + */ +export class ExperimentsPatchSubjectTypeV2RequestData { + /** + * Fields supplied to update the subject type. + */ + "attributes": ExperimentsPatchSubjectTypeV2RequestDataAttributes; + /** + * ID of the subject type. + */ + "id"?: string; + /** + * Subject types resource type. + */ + "type": ExperimentsSubjectTypeV2DTODataType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsPatchSubjectTypeV2RequestDataAttributes", + required: true, + }, + id: { + baseName: "id", + type: "string", + }, + type: { + baseName: "type", + type: "ExperimentsSubjectTypeV2DTODataType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPatchSubjectTypeV2RequestData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPatchSubjectTypeV2RequestDataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsPatchSubjectTypeV2RequestDataAttributes.ts new file mode 100644 index 000000000000..e7d97b6e5a06 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPatchSubjectTypeV2RequestDataAttributes.ts @@ -0,0 +1,76 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Fields supplied to update the subject type. + */ +export class ExperimentsPatchSubjectTypeV2RequestDataAttributes { + /** + * Metadata retained for resources imported from another system. + */ + "migrationMetadata"?: any; + /** + * Display name of the subject type. + */ + "name"?: string; + /** + * Product Analytics attribute used to identify subjects of this type. + */ + "productAnalyticsAttribute"?: string; + /** + * Warehouse columns that identify subjects of this type. + */ + "warehouseColumnNames"?: Array; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + migrationMetadata: { + baseName: "migration_metadata", + type: "any", + }, + name: { + baseName: "name", + type: "string", + }, + productAnalyticsAttribute: { + baseName: "product_analytics_attribute", + type: "string", + }, + warehouseColumnNames: { + baseName: "warehouse_column_names", + type: "Array", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPatchSubjectTypeV2RequestDataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPropertyFilterInput.ts b/packages/datadog-api-client-v2/models/ExperimentsPropertyFilterInput.ts new file mode 100644 index 000000000000..88b35f9a7352 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPropertyFilterInput.ts @@ -0,0 +1,81 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPointFiltersItemsOperation } from "./ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPointFiltersItemsOperation"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * A property comparison for metric source data. + */ +export class ExperimentsPropertyFilterInput { + /** + * Omit this target or use null or a blank string. + */ + "measureId"?: string; + /** + * Comparison applied by the warehouse entry-point filter. + */ + "operation": ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPointFiltersItemsOperation; + /** + * ID of the property on the aggregation source. + */ + "propertyId": string; + /** + * Values used by the comparison. + */ + "values": Array; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + measureId: { + baseName: "measure_id", + type: "string", + }, + operation: { + baseName: "operation", + type: "ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPointFiltersItemsOperation", + required: true, + }, + propertyId: { + baseName: "property_id", + type: "string", + required: true, + format: "uuid", + }, + values: { + baseName: "values", + type: "Array", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPropertyFilterInput.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPropertyNullFilterInput.ts b/packages/datadog-api-client-v2/models/ExperimentsPropertyNullFilterInput.ts new file mode 100644 index 000000000000..e50fc1c31f5d --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPropertyNullFilterInput.ts @@ -0,0 +1,80 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsPropertyNullFilterInputOperation } from "./ExperimentsPropertyNullFilterInputOperation"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * A property comparison for metric source data. + */ +export class ExperimentsPropertyNullFilterInput { + /** + * Omit this target or use null or a blank string. + */ + "measureId"?: string; + /** + * Comparison applied by this filter. + */ + "operation": ExperimentsPropertyNullFilterInputOperation; + /** + * ID of the property on the aggregation source. + */ + "propertyId": string; + /** + * Values used by the comparison. + */ + "values"?: Array; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + measureId: { + baseName: "measure_id", + type: "string", + }, + operation: { + baseName: "operation", + type: "ExperimentsPropertyNullFilterInputOperation", + required: true, + }, + propertyId: { + baseName: "property_id", + type: "string", + required: true, + format: "uuid", + }, + values: { + baseName: "values", + type: "Array", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPropertyNullFilterInput.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPropertyNullFilterInputOperation.ts b/packages/datadog-api-client-v2/models/ExperimentsPropertyNullFilterInputOperation.ts new file mode 100644 index 000000000000..416dce3b752c --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPropertyNullFilterInputOperation.ts @@ -0,0 +1,18 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Comparison applied by this filter. + */ + +export type ExperimentsPropertyNullFilterInputOperation = + | typeof IS_NULL + | typeof IS_NOT_NULL + | UnparsedObject; +export const IS_NULL = "IS_NULL"; +export const IS_NOT_NULL = "IS_NOT_NULL"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolListResponseArray.ts b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolListResponseArray.ts new file mode 100644 index 000000000000..a58d95a7b4d2 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolListResponseArray.ts @@ -0,0 +1,72 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsOffsetLinks } from "./ExperimentsOffsetLinks"; +import { ExperimentsOffsetMeta } from "./ExperimentsOffsetMeta"; +import { ExperimentsPublicProtocolListResponseData } from "./ExperimentsPublicProtocolListResponseData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * List of protocol resources with pagination information. + */ +export class ExperimentsPublicProtocolListResponseArray { + /** + * Resources returned in this response. + */ + "data": Array; + /** + * Links for navigating a paginated result set. + */ + "links"?: ExperimentsOffsetLinks; + /** + * Pagination information for a list response. + */ + "meta"?: ExperimentsOffsetMeta; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "Array", + required: true, + }, + links: { + baseName: "links", + type: "ExperimentsOffsetLinks", + }, + meta: { + baseName: "meta", + type: "ExperimentsOffsetMeta", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPublicProtocolListResponseArray.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolListResponseData.ts b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolListResponseData.ts new file mode 100644 index 000000000000..2e0d278f5d13 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolListResponseData.ts @@ -0,0 +1,73 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsPublicProtocolListResponseDataAttributes } from "./ExperimentsPublicProtocolListResponseDataAttributes"; +import { ExperimentsPublicProtocolResponseDataType } from "./ExperimentsPublicProtocolResponseDataType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * JSON:API resource containing the protocol identity and fields. + */ +export class ExperimentsPublicProtocolListResponseData { + /** + * Summary of the protocol and its selected subject type and primary metric. + */ + "attributes"?: ExperimentsPublicProtocolListResponseDataAttributes; + /** + * ID of the protocol. + */ + "id": string; + /** + * Protocols resource type. + */ + "type": ExperimentsPublicProtocolResponseDataType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsPublicProtocolListResponseDataAttributes", + }, + id: { + baseName: "id", + type: "string", + required: true, + format: "uuid", + }, + type: { + baseName: "type", + type: "ExperimentsPublicProtocolResponseDataType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPublicProtocolListResponseData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolListResponseDataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolListResponseDataAttributes.ts new file mode 100644 index 000000000000..a92f1c9b12c5 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolListResponseDataAttributes.ts @@ -0,0 +1,113 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsPublicProtocolResponseDataAttributesStatus } from "./ExperimentsPublicProtocolResponseDataAttributesStatus"; +import { ExperimentsPublicProtocolResponseDataAttributesSubjectType } from "./ExperimentsPublicProtocolResponseDataAttributesSubjectType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Summary of the protocol and its selected subject type and primary metric. + */ +export class ExperimentsPublicProtocolListResponseDataAttributes { + /** + * Text that explains the protocol. + */ + "description"?: string; + /** + * Display name of the protocol. + */ + "name": string; + /** + * Subject type selected by the protocol. + */ + "primaryMetric"?: ExperimentsPublicProtocolResponseDataAttributesSubjectType; + /** + * ID of the primary metric supplied by the protocol. + */ + "primaryMetricId"?: string; + /** + * Publication status of the protocol. + */ + "status": ExperimentsPublicProtocolResponseDataAttributesStatus; + /** + * Subject type selected by the protocol. + */ + "subjectType"?: ExperimentsPublicProtocolResponseDataAttributesSubjectType; + /** + * ID of the subject type used by this configuration. + */ + "subjectTypeId"?: string; + /** + * RFC3339 update time. Preserve all fractional seconds when passing this value as expected_updated_at. + */ + "updatedAt": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + description: { + baseName: "description", + type: "string", + }, + name: { + baseName: "name", + type: "string", + required: true, + }, + primaryMetric: { + baseName: "primary_metric", + type: "ExperimentsPublicProtocolResponseDataAttributesSubjectType", + }, + primaryMetricId: { + baseName: "primary_metric_id", + type: "string", + }, + status: { + baseName: "status", + type: "ExperimentsPublicProtocolResponseDataAttributesStatus", + required: true, + }, + subjectType: { + baseName: "subject_type", + type: "ExperimentsPublicProtocolResponseDataAttributesSubjectType", + }, + subjectTypeId: { + baseName: "subject_type_id", + type: "string", + }, + updatedAt: { + baseName: "updated_at", + type: "string", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPublicProtocolListResponseDataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponse.ts b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponse.ts new file mode 100644 index 000000000000..7f72fefa662d --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponse.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsPublicProtocolResponseData } from "./ExperimentsPublicProtocolResponseData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Response containing the protocol. + */ +export class ExperimentsPublicProtocolResponse { + /** + * JSON:API resource containing the protocol identity and fields. + */ + "data": ExperimentsPublicProtocolResponseData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsPublicProtocolResponseData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPublicProtocolResponse.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseData.ts b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseData.ts new file mode 100644 index 000000000000..5d514ee0c206 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseData.ts @@ -0,0 +1,73 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsPublicProtocolResponseDataAttributes } from "./ExperimentsPublicProtocolResponseDataAttributes"; +import { ExperimentsPublicProtocolResponseDataType } from "./ExperimentsPublicProtocolResponseDataType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * JSON:API resource containing the protocol identity and fields. + */ +export class ExperimentsPublicProtocolResponseData { + /** + * Settings and defaults supplied by the protocol. + */ + "attributes"?: ExperimentsPublicProtocolResponseDataAttributes; + /** + * ID of the protocol. + */ + "id": string; + /** + * Protocols resource type. + */ + "type": ExperimentsPublicProtocolResponseDataType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsPublicProtocolResponseDataAttributes", + }, + id: { + baseName: "id", + type: "string", + required: true, + format: "uuid", + }, + type: { + baseName: "type", + type: "ExperimentsPublicProtocolResponseDataType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPublicProtocolResponseData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributes.ts new file mode 100644 index 000000000000..7eefdb0ee7c4 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributes.ts @@ -0,0 +1,272 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsPublicProtocolResponseDataAttributesAnalysisPlan } from "./ExperimentsPublicProtocolResponseDataAttributesAnalysisPlan"; +import { ExperimentsPublicProtocolResponseDataAttributesAssignmentSourceDefaultPropertiesItems } from "./ExperimentsPublicProtocolResponseDataAttributesAssignmentSourceDefaultPropertiesItems"; +import { ExperimentsPublicProtocolResponseDataAttributesEnforcement } from "./ExperimentsPublicProtocolResponseDataAttributesEnforcement"; +import { ExperimentsPublicProtocolResponseDataAttributesExposureSchedule } from "./ExperimentsPublicProtocolResponseDataAttributesExposureSchedule"; +import { ExperimentsPublicProtocolResponseDataAttributesMetricGroupsItems } from "./ExperimentsPublicProtocolResponseDataAttributesMetricGroupsItems"; +import { ExperimentsPublicProtocolResponseDataAttributesStatus } from "./ExperimentsPublicProtocolResponseDataAttributesStatus"; +import { ExperimentsPublicProtocolResponseDataAttributesSubjectType } from "./ExperimentsPublicProtocolResponseDataAttributesSubjectType"; +import { ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItems } from "./ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItems"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Settings and defaults supplied by the protocol. + */ +export class ExperimentsPublicProtocolResponseDataAttributes { + /** + * Default statistical settings supplied by the protocol. + */ + "analysisPlan"?: ExperimentsPublicProtocolResponseDataAttributesAnalysisPlan; + /** + * Default properties supplied by the protocol's assignment source. + */ + "assignmentSourceDefaultProperties"?: Array; + /** + * ID of the assignment source selected by the protocol. + */ + "assignmentSourceId"?: string; + /** + * Default experiment duration supplied by the protocol, in days. + */ + "defaultDurationDays"?: number; + /** + * Text that explains the protocol. + */ + "description"?: string; + /** + * Controls that determine which protocol settings can be changed in an experiment. + */ + "enforcement"?: ExperimentsPublicProtocolResponseDataAttributesEnforcement; + /** + * ID of the feature flag environment used by the experiment. + */ + "environmentId"?: string; + /** + * Schedule that controls traffic exposure for experiments created from the protocol. + */ + "exposureSchedule"?: ExperimentsPublicProtocolResponseDataAttributesExposureSchedule; + /** + * Whether the protocol requires a duration before an experiment can start. + */ + "isDurationRequiredToStart": boolean; + /** + * Whether the protocol requires equal traffic allocation across variants. + */ + "isEqualSplitEnforced": boolean; + /** + * Whether the protocol limits the number of metrics. + */ + "isMetricLimitEnabled": boolean; + /** + * Whether the protocol enforces a minimum experiment duration. + */ + "isMinimumDurationEnabled": boolean; + /** + * Metric groups supplied by the protocol. + */ + "metricGroups": Array; + /** + * Maximum number of metrics allowed by the protocol. + */ + "metricLimit"?: number; + /** + * Metadata retained for resources imported from another system. + */ + "migrationMetadata"?: any; + /** + * Unit used to express the protocol's minimum duration. + */ + "minimumDurationUnit"?: string; + /** + * Minimum experiment duration in the specified unit. + */ + "minimumDurationValue"?: number; + /** + * Display name of the protocol. + */ + "name": string; + /** + * Subject type selected by the protocol. + */ + "primaryMetric"?: ExperimentsPublicProtocolResponseDataAttributesSubjectType; + /** + * ID of the primary metric supplied by the protocol. + */ + "primaryMetricId"?: string; + /** + * Time when the protocol was published. + */ + "publishedAt"?: Date; + /** + * Publication status of the protocol. + */ + "status": ExperimentsPublicProtocolResponseDataAttributesStatus; + /** + * Subject type selected by the protocol. + */ + "subjectType"?: ExperimentsPublicProtocolResponseDataAttributesSubjectType; + /** + * ID of the subject type used by this configuration. + */ + "subjectTypeId"?: string; + /** + * Rules that select subjects for the experiment. + */ + "targetingRules"?: Array; + /** + * RFC3339 update time. Preserve all fractional seconds when passing this value as expected_updated_at. + */ + "updatedAt": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + analysisPlan: { + baseName: "analysis_plan", + type: "ExperimentsPublicProtocolResponseDataAttributesAnalysisPlan", + }, + assignmentSourceDefaultProperties: { + baseName: "assignment_source_default_properties", + type: "Array", + }, + assignmentSourceId: { + baseName: "assignment_source_id", + type: "string", + }, + defaultDurationDays: { + baseName: "default_duration_days", + type: "number", + format: "int64", + }, + description: { + baseName: "description", + type: "string", + }, + enforcement: { + baseName: "enforcement", + type: "ExperimentsPublicProtocolResponseDataAttributesEnforcement", + }, + environmentId: { + baseName: "environment_id", + type: "string", + }, + exposureSchedule: { + baseName: "exposure_schedule", + type: "ExperimentsPublicProtocolResponseDataAttributesExposureSchedule", + }, + isDurationRequiredToStart: { + baseName: "is_duration_required_to_start", + type: "boolean", + required: true, + }, + isEqualSplitEnforced: { + baseName: "is_equal_split_enforced", + type: "boolean", + required: true, + }, + isMetricLimitEnabled: { + baseName: "is_metric_limit_enabled", + type: "boolean", + required: true, + }, + isMinimumDurationEnabled: { + baseName: "is_minimum_duration_enabled", + type: "boolean", + required: true, + }, + metricGroups: { + baseName: "metric_groups", + type: "Array", + required: true, + }, + metricLimit: { + baseName: "metric_limit", + type: "number", + format: "int64", + }, + migrationMetadata: { + baseName: "migration_metadata", + type: "any", + }, + minimumDurationUnit: { + baseName: "minimum_duration_unit", + type: "string", + }, + minimumDurationValue: { + baseName: "minimum_duration_value", + type: "number", + format: "int64", + }, + name: { + baseName: "name", + type: "string", + required: true, + }, + primaryMetric: { + baseName: "primary_metric", + type: "ExperimentsPublicProtocolResponseDataAttributesSubjectType", + }, + primaryMetricId: { + baseName: "primary_metric_id", + type: "string", + }, + publishedAt: { + baseName: "published_at", + type: "Date", + format: "date-time", + }, + status: { + baseName: "status", + type: "ExperimentsPublicProtocolResponseDataAttributesStatus", + required: true, + }, + subjectType: { + baseName: "subject_type", + type: "ExperimentsPublicProtocolResponseDataAttributesSubjectType", + }, + subjectTypeId: { + baseName: "subject_type_id", + type: "string", + }, + targetingRules: { + baseName: "targeting_rules", + type: "Array", + }, + updatedAt: { + baseName: "updated_at", + type: "string", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPublicProtocolResponseDataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesAnalysisPlan.ts b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesAnalysisPlan.ts new file mode 100644 index 000000000000..e1e49c124047 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesAnalysisPlan.ts @@ -0,0 +1,77 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Default statistical settings supplied by the protocol. + */ +export class ExperimentsPublicProtocolResponseDataAttributesAnalysisPlan { + /** + * Whether to use pre-experiment data to reduce variance with CUPED. + */ + "computeCuped"?: boolean; + /** + * Statistical method used to calculate confidence intervals. + */ + "confidenceIntervalMethod"?: string; + /** + * Confidence level used by the statistical analysis. + */ + "confidenceLevel"?: number; + /** + * Method used to adjust for testing multiple metrics. + */ + "multipleTestingCorrectionMethod"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + computeCuped: { + baseName: "compute_cuped", + type: "boolean", + }, + confidenceIntervalMethod: { + baseName: "confidence_interval_method", + type: "string", + }, + confidenceLevel: { + baseName: "confidence_level", + type: "number", + format: "double", + }, + multipleTestingCorrectionMethod: { + baseName: "multiple_testing_correction_method", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPublicProtocolResponseDataAttributesAnalysisPlan.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesAssignmentSourceDefaultPropertiesItems.ts b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesAssignmentSourceDefaultPropertiesItems.ts new file mode 100644 index 000000000000..e56962813b33 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesAssignmentSourceDefaultPropertiesItems.ts @@ -0,0 +1,68 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * A default property supplied by the protocol's assignment source. + */ +export class ExperimentsPublicProtocolResponseDataAttributesAssignmentSourceDefaultPropertiesItems { + /** + * Source column that supplies this assignment property. + */ + "columnName"?: string; + /** + * Data type of the source column. + */ + "columnType"?: string; + /** + * Display name of the assignment source property. + */ + "name"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + columnName: { + baseName: "column_name", + type: "string", + }, + columnType: { + baseName: "column_type", + type: "string", + }, + name: { + baseName: "name", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPublicProtocolResponseDataAttributesAssignmentSourceDefaultPropertiesItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesEnforcement.ts b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesEnforcement.ts new file mode 100644 index 000000000000..54b3586e85d1 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesEnforcement.ts @@ -0,0 +1,164 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Controls that determine which protocol settings can be changed in an experiment. + */ +export class ExperimentsPublicProtocolResponseDataAttributesEnforcement { + /** + * LOCKED prevents changes to confidence interval method. EDITABLE permits changes. + */ + "confidenceIntervalMethod"?: string; + /** + * LOCKED prevents changes to confidence level. EDITABLE permits changes. + */ + "confidenceLevel"?: string; + /** + * LOCKED prevents changes to CUPED variance reduction. EDITABLE permits changes. + */ + "cupedCalculation"?: string; + /** + * LOCKED prevents changes to default duration. EDITABLE permits changes. + */ + "defaultDuration"?: string; + /** + * LOCKED prevents changes to environment. EDITABLE permits changes. + */ + "environment"?: string; + /** + * LOCKED prevents changes to feature flag source. EDITABLE permits changes. + */ + "flagSource"?: string; + /** + * LOCKED prevents changes to multiple testing correction. EDITABLE permits changes. + */ + "multipleTestingCorrection"?: string; + /** + * LOCKED prevents changes to notifications. EDITABLE permits changes. + */ + "notifications"?: string; + /** + * LOCKED prevents changes to primary metric. EDITABLE permits changes. + */ + "primaryMetric"?: string; + /** + * LOCKED prevents changes to secondary metrics. EDITABLE permits changes. + */ + "secondaryMetrics"?: string; + /** + * LOCKED prevents changes to result exploration dimensions. EDITABLE permits changes. + */ + "splitByExplorationDimensions"?: string; + /** + * LOCKED prevents changes to subject type. EDITABLE permits changes. + */ + "subjectType"?: string; + /** + * LOCKED prevents changes to targeting rules. EDITABLE permits changes. + */ + "targetingRules"?: string; + /** + * LOCKED prevents changes to traffic exposure. EDITABLE permits changes. + */ + "trafficExposure"?: string; + /** + * LOCKED prevents changes to warehouse exposure source. EDITABLE permits changes. + */ + "warehouseExposureSource"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + confidenceIntervalMethod: { + baseName: "confidence_interval_method", + type: "string", + }, + confidenceLevel: { + baseName: "confidence_level", + type: "string", + }, + cupedCalculation: { + baseName: "cuped_calculation", + type: "string", + }, + defaultDuration: { + baseName: "default_duration", + type: "string", + }, + environment: { + baseName: "environment", + type: "string", + }, + flagSource: { + baseName: "flag_source", + type: "string", + }, + multipleTestingCorrection: { + baseName: "multiple_testing_correction", + type: "string", + }, + notifications: { + baseName: "notifications", + type: "string", + }, + primaryMetric: { + baseName: "primary_metric", + type: "string", + }, + secondaryMetrics: { + baseName: "secondary_metrics", + type: "string", + }, + splitByExplorationDimensions: { + baseName: "split_by_exploration_dimensions", + type: "string", + }, + subjectType: { + baseName: "subject_type", + type: "string", + }, + targetingRules: { + baseName: "targeting_rules", + type: "string", + }, + trafficExposure: { + baseName: "traffic_exposure", + type: "string", + }, + warehouseExposureSource: { + baseName: "warehouse_exposure_source", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPublicProtocolResponseDataAttributesEnforcement.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesExposureSchedule.ts b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesExposureSchedule.ts new file mode 100644 index 000000000000..3b691e9d2a2e --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesExposureSchedule.ts @@ -0,0 +1,86 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsPublicProtocolResponseDataAttributesExposureScheduleRolloutStepsItems } from "./ExperimentsPublicProtocolResponseDataAttributesExposureScheduleRolloutStepsItems"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Schedule that controls traffic exposure for experiments created from the protocol. + */ +export class ExperimentsPublicProtocolResponseDataAttributesExposureSchedule { + /** + * Whether the exposure schedule starts automatically. + */ + "autostart"?: boolean; + /** + * Action taken when a guardrail triggers during the exposure schedule. + */ + "guardrailTriggeredAction"?: string; + /** + * Ordered steps that define changes in traffic exposure. + */ + "rolloutSteps"?: Array; + /** + * Interval between traffic selections, in milliseconds. + */ + "selectionIntervalMs"?: number; + /** + * Method used to increase traffic exposure over the schedule. + */ + "strategy"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + autostart: { + baseName: "autostart", + type: "boolean", + }, + guardrailTriggeredAction: { + baseName: "guardrail_triggered_action", + type: "string", + }, + rolloutSteps: { + baseName: "rollout_steps", + type: "Array", + }, + selectionIntervalMs: { + baseName: "selection_interval_ms", + type: "number", + format: "int64", + }, + strategy: { + baseName: "strategy", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPublicProtocolResponseDataAttributesExposureSchedule.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesExposureScheduleRolloutStepsItems.ts b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesExposureScheduleRolloutStepsItems.ts new file mode 100644 index 000000000000..02c0f5c1e57f --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesExposureScheduleRolloutStepsItems.ts @@ -0,0 +1,88 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * One step in the protocol's traffic exposure schedule. + */ +export class ExperimentsPublicProtocolResponseDataAttributesExposureScheduleRolloutStepsItems { + /** + * Fraction of traffic exposed during this rollout step. + */ + "exposureRatio"?: number; + /** + * Index of the group that contains this rollout step. + */ + "groupedStepIndex"?: number; + /** + * Duration of this rollout step, in milliseconds. + */ + "intervalMs"?: number; + /** + * Whether this schedule entry represents a pause. + */ + "isPauseRecord"?: boolean; + /** + * Position of this entry in the ordered configuration. + */ + "orderPosition"?: number; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + exposureRatio: { + baseName: "exposure_ratio", + type: "number", + format: "double", + }, + groupedStepIndex: { + baseName: "grouped_step_index", + type: "number", + format: "int64", + }, + intervalMs: { + baseName: "interval_ms", + type: "number", + format: "int64", + }, + isPauseRecord: { + baseName: "is_pause_record", + type: "boolean", + }, + orderPosition: { + baseName: "order_position", + type: "number", + format: "int64", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPublicProtocolResponseDataAttributesExposureScheduleRolloutStepsItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesMetricGroupsItems.ts b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesMetricGroupsItems.ts new file mode 100644 index 000000000000..f76dc68c0f04 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesMetricGroupsItems.ts @@ -0,0 +1,69 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateMetricCollectionV2RequestDataAttributesMetricsItems } from "./ExperimentsCreateMetricCollectionV2RequestDataAttributesMetricsItems"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * A group of metrics supplied by the protocol. + */ +export class ExperimentsPublicProtocolResponseDataAttributesMetricGroupsItems { + /** + * Whether the group contains decision metrics. + */ + "isDecision"?: boolean; + /** + * Metrics included in this group. + */ + "metrics"?: Array; + /** + * Display name of the metric group. + */ + "name"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + isDecision: { + baseName: "is_decision", + type: "boolean", + }, + metrics: { + baseName: "metrics", + type: "Array", + }, + name: { + baseName: "name", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPublicProtocolResponseDataAttributesMetricGroupsItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesStatus.ts b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesStatus.ts new file mode 100644 index 000000000000..a1a70dcbca34 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesStatus.ts @@ -0,0 +1,20 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Publication status of the protocol. + */ + +export type ExperimentsPublicProtocolResponseDataAttributesStatus = + | typeof DRAFT + | typeof PUBLISHED + | typeof ARCHIVED + | UnparsedObject; +export const DRAFT = "DRAFT"; +export const PUBLISHED = "PUBLISHED"; +export const ARCHIVED = "ARCHIVED"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesSubjectType.ts b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesSubjectType.ts new file mode 100644 index 000000000000..ad423139900e --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesSubjectType.ts @@ -0,0 +1,60 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Subject type selected by the protocol. + */ +export class ExperimentsPublicProtocolResponseDataAttributesSubjectType { + /** + * ID of the subject type. + */ + "id"?: string; + /** + * Display name of the subject type. + */ + "name"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + id: { + baseName: "id", + type: "string", + }, + name: { + baseName: "name", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPublicProtocolResponseDataAttributesSubjectType.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItems.ts b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItems.ts new file mode 100644 index 000000000000..5f51cc5f38de --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItems.ts @@ -0,0 +1,53 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItemsConditionsItems } from "./ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItemsConditionsItems"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * A targeting rule supplied by the protocol. + */ +export class ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItems { + /** + * Conditions that define this targeting rule. + */ + "conditions"?: Array; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + conditions: { + baseName: "conditions", + type: "Array", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItemsConditionsItems.ts b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItemsConditionsItems.ts new file mode 100644 index 000000000000..263cf9dd5882 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItemsConditionsItems.ts @@ -0,0 +1,85 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * One condition in a protocol targeting rule. + */ +export class ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItemsConditionsItems { + /** + * Subject attribute evaluated by the targeting condition. + */ + "attribute"?: string; + /** + * Comparison applied to the subject attribute. + */ + "operator"?: string; + /** + * Position of this entry in the ordered configuration. + */ + "orderPosition"?: number; + /** + * ID of the saved filter used by this targeting condition. + */ + "savedFilterId"?: string; + /** + * Values compared with the subject attribute in this condition. + */ + "value"?: Array; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attribute: { + baseName: "attribute", + type: "string", + }, + operator: { + baseName: "operator", + type: "string", + }, + orderPosition: { + baseName: "order_position", + type: "number", + format: "int64", + }, + savedFilterId: { + baseName: "saved_filter_id", + type: "string", + }, + value: { + baseName: "value", + type: "Array", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItemsConditionsItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataType.ts b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataType.ts new file mode 100644 index 000000000000..f03f2314352c --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsPublicProtocolResponseDataType.ts @@ -0,0 +1,16 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Protocols resource type. + */ + +export type ExperimentsPublicProtocolResponseDataType = + | typeof PROTOCOLS + | UnparsedObject; +export const PROTOCOLS = "protocols"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsBatchMetaV2DTO.ts b/packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsBatchMetaV2DTO.ts new file mode 100644 index 000000000000..bc74f114f6d4 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsBatchMetaV2DTO.ts @@ -0,0 +1,62 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItems } from "./ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItems"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Summary of refresh outcomes across the organization's experiments. + */ +export class ExperimentsRefreshExperimentResultsBatchMetaV2DTO { + /** + * Number of experiments updated by the refresh request. + */ + "experimentsUpdated"?: number; + /** + * Refresh outcome reported for each experiment. + */ + "results"?: Array; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + experimentsUpdated: { + baseName: "experiments_updated", + type: "number", + format: "int64", + }, + results: { + baseName: "results", + type: "Array", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsRefreshExperimentResultsBatchMetaV2DTO.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItems.ts b/packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItems.ts new file mode 100644 index 000000000000..efe457335068 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItems.ts @@ -0,0 +1,61 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItemsOutcome } from "./ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItemsOutcome"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Refresh outcome for one experiment. + */ +export class ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItems { + /** + * ID of the experiment associated with this result. + */ + "experimentId"?: string; + /** + * Outcome of attempting to refresh one experiment. + */ + "outcome"?: ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItemsOutcome; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + experimentId: { + baseName: "experiment_id", + type: "string", + }, + outcome: { + baseName: "outcome", + type: "ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItemsOutcome", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItemsOutcome.ts b/packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItemsOutcome.ts new file mode 100644 index 000000000000..36d21ada4114 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItemsOutcome.ts @@ -0,0 +1,25 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Outcome of attempting to refresh one experiment. + */ + +export type ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItemsOutcome = + + | typeof TRIGGERED + | typeof SKIPPED_ALREADY_RUNNING + | typeof SKIPPED_NOT_EDITABLE + | typeof SKIPPED_ORG_AT_CAPACITY + | typeof FAILED + | UnparsedObject; +export const TRIGGERED = "TRIGGERED"; +export const SKIPPED_ALREADY_RUNNING = "SKIPPED_ALREADY_RUNNING"; +export const SKIPPED_NOT_EDITABLE = "SKIPPED_NOT_EDITABLE"; +export const SKIPPED_ORG_AT_CAPACITY = "SKIPPED_ORG_AT_CAPACITY"; +export const FAILED = "FAILED"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsV2DTO.ts b/packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsV2DTO.ts new file mode 100644 index 000000000000..dd71330cb570 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsV2DTO.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsRefreshExperimentResultsV2DTOData } from "./ExperimentsRefreshExperimentResultsV2DTOData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Response containing the experiment refresh result. + */ +export class ExperimentsRefreshExperimentResultsV2DTO { + /** + * JSON:API resource containing the experiment refresh result identity and fields. + */ + "data": ExperimentsRefreshExperimentResultsV2DTOData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsRefreshExperimentResultsV2DTOData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsRefreshExperimentResultsV2DTO.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsV2DTOArray.ts b/packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsV2DTOArray.ts new file mode 100644 index 000000000000..2928c52a8d58 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsV2DTOArray.ts @@ -0,0 +1,63 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsRefreshExperimentResultsBatchMetaV2DTO } from "./ExperimentsRefreshExperimentResultsBatchMetaV2DTO"; +import { ExperimentsRefreshExperimentResultsV2DTOData } from "./ExperimentsRefreshExperimentResultsV2DTOData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * List of experiment refresh result resources. + */ +export class ExperimentsRefreshExperimentResultsV2DTOArray { + /** + * Resources returned in this response. + */ + "data": Array; + /** + * Summary of refresh outcomes across the organization's experiments. + */ + "meta"?: ExperimentsRefreshExperimentResultsBatchMetaV2DTO; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "Array", + required: true, + }, + meta: { + baseName: "meta", + type: "ExperimentsRefreshExperimentResultsBatchMetaV2DTO", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsRefreshExperimentResultsV2DTOArray.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsV2DTOData.ts b/packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsV2DTOData.ts new file mode 100644 index 000000000000..a8210f92a1f4 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsV2DTOData.ts @@ -0,0 +1,73 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsRefreshExperimentResultsV2DTODataAttributes } from "./ExperimentsRefreshExperimentResultsV2DTODataAttributes"; +import { ExperimentsRefreshExperimentResultsV2DTODataType } from "./ExperimentsRefreshExperimentResultsV2DTODataType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * JSON:API resource containing the experiment refresh result identity and fields. + */ +export class ExperimentsRefreshExperimentResultsV2DTOData { + /** + * Details of the experiment refresh result. + */ + "attributes"?: ExperimentsRefreshExperimentResultsV2DTODataAttributes; + /** + * ID of the experiment whose results were refreshed. + */ + "id": string; + /** + * Experiment results refresh resource type. + */ + "type": ExperimentsRefreshExperimentResultsV2DTODataType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsRefreshExperimentResultsV2DTODataAttributes", + }, + id: { + baseName: "id", + type: "string", + required: true, + format: "uuid", + }, + type: { + baseName: "type", + type: "ExperimentsRefreshExperimentResultsV2DTODataType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsRefreshExperimentResultsV2DTOData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsV2DTODataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsV2DTODataAttributes.ts new file mode 100644 index 000000000000..c1d33ffc0575 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsV2DTODataAttributes.ts @@ -0,0 +1,52 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Details of the experiment refresh result. + */ +export class ExperimentsRefreshExperimentResultsV2DTODataAttributes { + /** + * Whether the refresh request succeeded. + */ + "success"?: boolean; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + success: { + baseName: "success", + type: "boolean", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsRefreshExperimentResultsV2DTODataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsV2DTODataType.ts b/packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsV2DTODataType.ts new file mode 100644 index 000000000000..48653b1509ef --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsRefreshExperimentResultsV2DTODataType.ts @@ -0,0 +1,16 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Experiment results refresh resource type. + */ + +export type ExperimentsRefreshExperimentResultsV2DTODataType = + | typeof EXPERIMENT_RESULTS_REFRESH + | UnparsedObject; +export const EXPERIMENT_RESULTS_REFRESH = "experiment-results-refresh"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsSQLModelPropertyInput.ts b/packages/datadog-api-client-v2/models/ExperimentsSQLModelPropertyInput.ts new file mode 100644 index 000000000000..0f6ce8968588 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsSQLModelPropertyInput.ts @@ -0,0 +1,87 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType } from "./ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * A property column defined by an exposure SQL model. + */ +export class ExperimentsSQLModelPropertyInput { + /** + * Name of the SQL result column that supplies this property. + */ + "columnName": string; + /** + * Data type of a column in the SQL model. + */ + "columnType"?: ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType; + /** + * Optional text that explains what this property represents. + */ + "description"?: string; + /** + * Opaque metadata preserved when this property is migrated. + */ + "migrationMetadata"?: any; + /** + * Name used to identify the property in the model. + */ + "name": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + columnName: { + baseName: "column_name", + type: "string", + required: true, + }, + columnType: { + baseName: "column_type", + type: "ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType", + }, + description: { + baseName: "description", + type: "string", + }, + migrationMetadata: { + baseName: "migration_metadata", + type: "any", + }, + name: { + baseName: "name", + type: "string", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsSQLModelPropertyInput.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsSavedFilterCondition.ts b/packages/datadog-api-client-v2/models/ExperimentsSavedFilterCondition.ts new file mode 100644 index 000000000000..5c07f066e9ef --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsSavedFilterCondition.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * A condition that uses a saved filter. Inline fields must be omitted or null. + */ +export class ExperimentsSavedFilterCondition { + /** + * Saved-filter UUID. + */ + "savedFilterId": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + savedFilterId: { + baseName: "saved_filter_id", + type: "string", + required: true, + format: "uuid", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsSavedFilterCondition.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsStartExperimentV2Request.ts b/packages/datadog-api-client-v2/models/ExperimentsStartExperimentV2Request.ts new file mode 100644 index 000000000000..0dfcb96a0394 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsStartExperimentV2Request.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsStartExperimentV2RequestData } from "./ExperimentsStartExperimentV2RequestData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Request to start the experiment. + */ +export class ExperimentsStartExperimentV2Request { + /** + * JSON:API resource containing the experiment identity. + */ + "data": ExperimentsStartExperimentV2RequestData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsStartExperimentV2RequestData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsStartExperimentV2Request.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsStartExperimentV2RequestData.ts b/packages/datadog-api-client-v2/models/ExperimentsStartExperimentV2RequestData.ts new file mode 100644 index 000000000000..a21277c56412 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsStartExperimentV2RequestData.ts @@ -0,0 +1,62 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsStartExperimentV2RequestDataType } from "./ExperimentsStartExperimentV2RequestDataType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * JSON:API resource containing the experiment identity. + */ +export class ExperimentsStartExperimentV2RequestData { + /** + * ID of the experiment. + */ + "id"?: string; + /** + * Start experiment request resource type. + */ + "type": ExperimentsStartExperimentV2RequestDataType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + id: { + baseName: "id", + type: "string", + }, + type: { + baseName: "type", + type: "ExperimentsStartExperimentV2RequestDataType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsStartExperimentV2RequestData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsStartExperimentV2RequestDataType.ts b/packages/datadog-api-client-v2/models/ExperimentsStartExperimentV2RequestDataType.ts new file mode 100644 index 000000000000..d41626075f0e --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsStartExperimentV2RequestDataType.ts @@ -0,0 +1,16 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Start experiment request resource type. + */ + +export type ExperimentsStartExperimentV2RequestDataType = + | typeof START_EXPERIMENT_REQUEST + | UnparsedObject; +export const START_EXPERIMENT_REQUEST = "start-experiment-request"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsStructuredMetadataResponse.ts b/packages/datadog-api-client-v2/models/ExperimentsStructuredMetadataResponse.ts new file mode 100644 index 000000000000..ee995b8fe126 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsStructuredMetadataResponse.ts @@ -0,0 +1,86 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsPatchExperimentV2ResponseDataAttributesStructuredMetadataItemsFieldType } from "./ExperimentsPatchExperimentV2ResponseDataAttributesStructuredMetadataItemsFieldType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Metadata field values with their display name and type. + */ +export class ExperimentsStructuredMetadataResponse { + /** + * Selected values for an enumerated metadata field. + */ + "enumValues"?: Array; + /** + * Display name of the metadata field. + */ + "fieldDisplayName"?: string; + /** + * Key that identifies the metadata field. + */ + "fieldKey": string; + /** + * Type of value stored in the structured metadata field. + */ + "fieldType"?: ExperimentsPatchExperimentV2ResponseDataAttributesStructuredMetadataItemsFieldType; + /** + * Text value for a free-text metadata field. + */ + "freetextValue"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + enumValues: { + baseName: "enum_values", + type: "Array", + }, + fieldDisplayName: { + baseName: "field_display_name", + type: "string", + }, + fieldKey: { + baseName: "field_key", + type: "string", + required: true, + }, + fieldType: { + baseName: "field_type", + type: "ExperimentsPatchExperimentV2ResponseDataAttributesStructuredMetadataItemsFieldType", + }, + freetextValue: { + baseName: "freetext_value", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsStructuredMetadataResponse.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsSubjectTypeV2DTO.ts b/packages/datadog-api-client-v2/models/ExperimentsSubjectTypeV2DTO.ts new file mode 100644 index 000000000000..b4ebf094cbc4 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsSubjectTypeV2DTO.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsSubjectTypeV2DTOData } from "./ExperimentsSubjectTypeV2DTOData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Response containing the subject type. + */ +export class ExperimentsSubjectTypeV2DTO { + /** + * JSON:API resource containing the subject type identity and fields. + */ + "data": ExperimentsSubjectTypeV2DTOData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsSubjectTypeV2DTOData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsSubjectTypeV2DTO.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsSubjectTypeV2DTOArray.ts b/packages/datadog-api-client-v2/models/ExperimentsSubjectTypeV2DTOArray.ts new file mode 100644 index 000000000000..0f8caa293b2b --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsSubjectTypeV2DTOArray.ts @@ -0,0 +1,72 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsOffsetLinks } from "./ExperimentsOffsetLinks"; +import { ExperimentsOffsetMeta } from "./ExperimentsOffsetMeta"; +import { ExperimentsSubjectTypeV2DTOData } from "./ExperimentsSubjectTypeV2DTOData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * List of subject type resources with pagination information. + */ +export class ExperimentsSubjectTypeV2DTOArray { + /** + * Resources returned in this response. + */ + "data": Array; + /** + * Links for navigating a paginated result set. + */ + "links"?: ExperimentsOffsetLinks; + /** + * Pagination information for a list response. + */ + "meta"?: ExperimentsOffsetMeta; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "Array", + required: true, + }, + links: { + baseName: "links", + type: "ExperimentsOffsetLinks", + }, + meta: { + baseName: "meta", + type: "ExperimentsOffsetMeta", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsSubjectTypeV2DTOArray.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsSubjectTypeV2DTOData.ts b/packages/datadog-api-client-v2/models/ExperimentsSubjectTypeV2DTOData.ts new file mode 100644 index 000000000000..3dce86837a9d --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsSubjectTypeV2DTOData.ts @@ -0,0 +1,73 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsSubjectTypeV2DTODataAttributes } from "./ExperimentsSubjectTypeV2DTODataAttributes"; +import { ExperimentsSubjectTypeV2DTODataType } from "./ExperimentsSubjectTypeV2DTODataType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * JSON:API resource containing the subject type identity and fields. + */ +export class ExperimentsSubjectTypeV2DTOData { + /** + * Details of the subject type. + */ + "attributes"?: ExperimentsSubjectTypeV2DTODataAttributes; + /** + * ID of the subject type. + */ + "id": string; + /** + * Subject types resource type. + */ + "type": ExperimentsSubjectTypeV2DTODataType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsSubjectTypeV2DTODataAttributes", + }, + id: { + baseName: "id", + type: "string", + required: true, + format: "uuid", + }, + type: { + baseName: "type", + type: "ExperimentsSubjectTypeV2DTODataType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsSubjectTypeV2DTOData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsSubjectTypeV2DTODataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsSubjectTypeV2DTODataAttributes.ts new file mode 100644 index 000000000000..2ead6da438b0 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsSubjectTypeV2DTODataAttributes.ts @@ -0,0 +1,138 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Details of the subject type. + */ +export class ExperimentsSubjectTypeV2DTODataAttributes { + /** + * Time when this resource was created. + */ + "createdAt"?: Date; + /** + * Number of experiments that reference this resource. + */ + "experimentCount"?: number; + /** + * Number of exposure sources that reference this subject type. + */ + "exposureSourceCount"?: number; + /** + * Whether this is the organization's default subject type. + */ + "isDefault"?: boolean; + /** + * Number of metric SQL models that reference this subject type. + */ + "metricSqlModelCount"?: number; + /** + * Metadata retained for resources imported from another system. + */ + "migrationMetadata"?: any; + /** + * Display name of the subject type. + */ + "name"?: string; + /** + * Product Analytics attribute used to identify subjects of this type. + */ + "productAnalyticsAttribute"?: string; + /** + * Number of protocols that reference this subject type. + */ + "protocolCount"?: number; + /** + * Time when this resource was last updated. + */ + "updatedAt"?: Date; + /** + * Warehouse columns that identify subjects of this type. + */ + "warehouseColumnNames"?: Array; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + createdAt: { + baseName: "created_at", + type: "Date", + format: "date-time", + }, + experimentCount: { + baseName: "experiment_count", + type: "number", + format: "int64", + }, + exposureSourceCount: { + baseName: "exposure_source_count", + type: "number", + format: "int64", + }, + isDefault: { + baseName: "is_default", + type: "boolean", + }, + metricSqlModelCount: { + baseName: "metric_sql_model_count", + type: "number", + format: "int64", + }, + migrationMetadata: { + baseName: "migration_metadata", + type: "any", + }, + name: { + baseName: "name", + type: "string", + }, + productAnalyticsAttribute: { + baseName: "product_analytics_attribute", + type: "string", + }, + protocolCount: { + baseName: "protocol_count", + type: "number", + format: "int64", + }, + updatedAt: { + baseName: "updated_at", + type: "Date", + format: "date-time", + }, + warehouseColumnNames: { + baseName: "warehouse_column_names", + type: "Array", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsSubjectTypeV2DTODataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsSubjectTypeV2DTODataType.ts b/packages/datadog-api-client-v2/models/ExperimentsSubjectTypeV2DTODataType.ts new file mode 100644 index 000000000000..22ed16046173 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsSubjectTypeV2DTODataType.ts @@ -0,0 +1,16 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Subject types resource type. + */ + +export type ExperimentsSubjectTypeV2DTODataType = + | typeof SUBJECT_TYPES + | UnparsedObject; +export const SUBJECT_TYPES = "subject-types"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsTargetingRuleCondition.ts b/packages/datadog-api-client-v2/models/ExperimentsTargetingRuleCondition.ts new file mode 100644 index 000000000000..97d48095157a --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsTargetingRuleCondition.ts @@ -0,0 +1,18 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsInlineCondition } from "./ExperimentsInlineCondition"; +import { ExperimentsSavedFilterCondition } from "./ExperimentsSavedFilterCondition"; + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * A saved-filter condition or a complete inline condition. The two forms cannot be combined. + */ + +export type ExperimentsTargetingRuleCondition = + | ExperimentsSavedFilterCondition + | ExperimentsInlineCondition + | UnparsedObject; diff --git a/packages/datadog-api-client-v2/models/ExperimentsTrafficSummaryV2DTO.ts b/packages/datadog-api-client-v2/models/ExperimentsTrafficSummaryV2DTO.ts new file mode 100644 index 000000000000..a9debd216aa4 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsTrafficSummaryV2DTO.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsTrafficSummaryV2DTOData } from "./ExperimentsTrafficSummaryV2DTOData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Response containing the experiment traffic summary. + */ +export class ExperimentsTrafficSummaryV2DTO { + /** + * JSON:API resource containing the experiment traffic summary identity and fields. + */ + "data": ExperimentsTrafficSummaryV2DTOData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsTrafficSummaryV2DTOData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsTrafficSummaryV2DTO.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsTrafficSummaryV2DTOData.ts b/packages/datadog-api-client-v2/models/ExperimentsTrafficSummaryV2DTOData.ts new file mode 100644 index 000000000000..423f4ae7067b --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsTrafficSummaryV2DTOData.ts @@ -0,0 +1,72 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsTrafficSummaryV2DTODataAttributes } from "./ExperimentsTrafficSummaryV2DTODataAttributes"; +import { ExperimentsTrafficSummaryV2DTODataType } from "./ExperimentsTrafficSummaryV2DTODataType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * JSON:API resource containing the experiment traffic summary identity and fields. + */ +export class ExperimentsTrafficSummaryV2DTOData { + /** + * Details of the experiment traffic summary. + */ + "attributes"?: ExperimentsTrafficSummaryV2DTODataAttributes; + /** + * Identifier of this traffic summary. + */ + "id": string; + /** + * Traffic summary resource type. + */ + "type": ExperimentsTrafficSummaryV2DTODataType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsTrafficSummaryV2DTODataAttributes", + }, + id: { + baseName: "id", + type: "string", + required: true, + }, + type: { + baseName: "type", + type: "ExperimentsTrafficSummaryV2DTODataType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsTrafficSummaryV2DTOData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsTrafficSummaryV2DTODataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsTrafficSummaryV2DTODataAttributes.ts new file mode 100644 index 000000000000..f8195c4cd7eb --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsTrafficSummaryV2DTODataAttributes.ts @@ -0,0 +1,70 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsTrafficSummaryV2DTODataAttributesVariantsItems } from "./ExperimentsTrafficSummaryV2DTODataAttributesVariantsItems"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Details of the experiment traffic summary. + */ +export class ExperimentsTrafficSummaryV2DTODataAttributes { + /** + * Whether the observed variant traffic is imbalanced. + */ + "isTrafficImbalanced"?: boolean; + /** + * Total number of subjects included in the traffic summary. + */ + "totalSubjects"?: number; + /** + * Exposure counts for each experiment variant. + */ + "variants"?: Array; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + isTrafficImbalanced: { + baseName: "is_traffic_imbalanced", + type: "boolean", + }, + totalSubjects: { + baseName: "total_subjects", + type: "number", + format: "int64", + }, + variants: { + baseName: "variants", + type: "Array", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsTrafficSummaryV2DTODataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsTrafficSummaryV2DTODataAttributesVariantsItems.ts b/packages/datadog-api-client-v2/models/ExperimentsTrafficSummaryV2DTODataAttributesVariantsItems.ts new file mode 100644 index 000000000000..9c9ab72a2a76 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsTrafficSummaryV2DTODataAttributesVariantsItems.ts @@ -0,0 +1,69 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Exposure count and identity of one experiment variant. + */ +export class ExperimentsTrafficSummaryV2DTODataAttributesVariantsItems { + /** + * Number of recorded exposures for this variant. + */ + "exposureCount"?: number; + /** + * Key that identifies the experiment variant. + */ + "variantKey"?: string; + /** + * Display name of the experiment variant. + */ + "variantName"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + exposureCount: { + baseName: "exposure_count", + type: "number", + format: "int64", + }, + variantKey: { + baseName: "variant_key", + type: "string", + }, + variantName: { + baseName: "variant_name", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsTrafficSummaryV2DTODataAttributesVariantsItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsTrafficSummaryV2DTODataType.ts b/packages/datadog-api-client-v2/models/ExperimentsTrafficSummaryV2DTODataType.ts new file mode 100644 index 000000000000..37a903ac9b14 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsTrafficSummaryV2DTODataType.ts @@ -0,0 +1,16 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Traffic summary resource type. + */ + +export type ExperimentsTrafficSummaryV2DTODataType = + | typeof TRAFFIC_SUMMARY + | UnparsedObject; +export const TRAFFIC_SUMMARY = "traffic-summary"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsUpdateExposureSQLModelV2RequestDataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsUpdateExposureSQLModelV2RequestDataAttributes.ts new file mode 100644 index 000000000000..f575065998c2 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsUpdateExposureSQLModelV2RequestDataAttributes.ts @@ -0,0 +1,124 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems } from "./ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems"; +import { ExperimentsSQLModelPropertyInput } from "./ExperimentsSQLModelPropertyInput"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Complete column mappings and query used to replace the exposure SQL model. + */ +export class ExperimentsUpdateExposureSQLModelV2RequestDataAttributes { + /** + * SQL column used to partition the source data by date. + */ + "datePartitionColumn"?: string; + /** + * SQL column that identifies the experiment for each exposure. + */ + "experimentColumn": string; + /** + * Metadata retained for resources imported from another system. + */ + "migrationMetadata"?: any; + /** + * Display name of the exposure SQL model. + */ + "name": string; + /** + * Property columns exposed by the SQL model. + */ + "properties"?: Array; + /** + * SQL query that produces the model's source data. + */ + "sql": string; + /** + * Subject types mapped to columns in the SQL model. + */ + "subjectTypes": Array; + /** + * SQL column that supplies the event timestamp. + */ + "timestampColumn": string; + /** + * SQL column that identifies the variant for each exposure. + */ + "variantColumn": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + datePartitionColumn: { + baseName: "date_partition_column", + type: "string", + }, + experimentColumn: { + baseName: "experiment_column", + type: "string", + required: true, + }, + migrationMetadata: { + baseName: "migration_metadata", + type: "any", + }, + name: { + baseName: "name", + type: "string", + required: true, + }, + properties: { + baseName: "properties", + type: "Array", + }, + sql: { + baseName: "sql", + type: "string", + required: true, + }, + subjectTypes: { + baseName: "subject_types", + type: "Array", + required: true, + }, + timestampColumn: { + baseName: "timestamp_column", + type: "string", + required: true, + }, + variantColumn: { + baseName: "variant_column", + type: "string", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsUpdateExposureSQLModelV2RequestDataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsUpdateExposureSQLModelV2RequestDataType.ts b/packages/datadog-api-client-v2/models/ExperimentsUpdateExposureSQLModelV2RequestDataType.ts new file mode 100644 index 000000000000..05040d18c68b --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsUpdateExposureSQLModelV2RequestDataType.ts @@ -0,0 +1,16 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Exposure SQL models resource type. + */ + +export type ExperimentsUpdateExposureSQLModelV2RequestDataType = + | typeof EXPOSURE_SQL_MODELS + | UnparsedObject; +export const EXPOSURE_SQL_MODELS = "exposure-sql-models"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsUpdateExposureSQLModelV2Response.ts b/packages/datadog-api-client-v2/models/ExperimentsUpdateExposureSQLModelV2Response.ts new file mode 100644 index 000000000000..5d0b169146c1 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsUpdateExposureSQLModelV2Response.ts @@ -0,0 +1,63 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsExposureSQLModelV2DTOData } from "./ExperimentsExposureSQLModelV2DTOData"; +import { ExperimentsUpdateExposureSQLModelV2ResponseMeta } from "./ExperimentsUpdateExposureSQLModelV2ResponseMeta"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Updated exposure SQL model and its removed entries. + */ +export class ExperimentsUpdateExposureSQLModelV2Response { + /** + * Exposure SQL model resource with its identifier and configuration. + */ + "data": ExperimentsExposureSQLModelV2DTOData; + /** + * Removed model entries. Present only when the update removes an entry. + */ + "meta"?: ExperimentsUpdateExposureSQLModelV2ResponseMeta; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsExposureSQLModelV2DTOData", + required: true, + }, + meta: { + baseName: "meta", + type: "ExperimentsUpdateExposureSQLModelV2ResponseMeta", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsUpdateExposureSQLModelV2Response.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsUpdateExposureSQLModelV2ResponseMeta.ts b/packages/datadog-api-client-v2/models/ExperimentsUpdateExposureSQLModelV2ResponseMeta.ts new file mode 100644 index 000000000000..7184a78b7e7b --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsUpdateExposureSQLModelV2ResponseMeta.ts @@ -0,0 +1,60 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Removed model entries. Present only when the update removes an entry. + */ +export class ExperimentsUpdateExposureSQLModelV2ResponseMeta { + /** + * Property names removed from the model. + */ + "removedPropertyNames"?: Array; + /** + * Subject type IDs removed from the model. + */ + "removedSubjectTypeIds"?: Array; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + removedPropertyNames: { + baseName: "removed_property_names", + type: "Array", + }, + removedSubjectTypeIds: { + baseName: "removed_subject_type_ids", + type: "Array", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsUpdateExposureSQLModelV2ResponseMeta.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsUpdateMetricSQLModelV2RequestDataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsUpdateMetricSQLModelV2RequestDataAttributes.ts new file mode 100644 index 000000000000..1e3ee9b0863e --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsUpdateMetricSQLModelV2RequestDataAttributes.ts @@ -0,0 +1,123 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems } from "./ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems"; +import { ExperimentsCreateMetricSQLModelV2RequestDataAttributesMeasuresItems } from "./ExperimentsCreateMetricSQLModelV2RequestDataAttributesMeasuresItems"; +import { ExperimentsMetricSQLModelPropertyInput } from "./ExperimentsMetricSQLModelPropertyInput"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Complete column mappings and query used to replace the metric SQL model. + */ +export class ExperimentsUpdateMetricSQLModelV2RequestDataAttributes { + /** + * SQL column used to partition the source data by date. + */ + "datePartitionColumn"?: string; + /** + * Text that explains the metric SQL model. + */ + "description"?: string; + /** + * Measures available from the SQL model's result columns. + */ + "measures"?: Array; + /** + * Metadata retained for resources imported from another system. + */ + "migrationMetadata"?: any; + /** + * Display name of the metric SQL model. + */ + "name": string; + /** + * Property columns exposed by the SQL model. + */ + "properties"?: Array; + /** + * SQL query that produces the model's source data. + */ + "sql": string; + /** + * Subject types mapped to columns in the SQL model. + */ + "subjectTypes": Array; + /** + * SQL column that supplies the event timestamp. + */ + "timestampColumn": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + datePartitionColumn: { + baseName: "date_partition_column", + type: "string", + }, + description: { + baseName: "description", + type: "string", + }, + measures: { + baseName: "measures", + type: "Array", + }, + migrationMetadata: { + baseName: "migration_metadata", + type: "any", + }, + name: { + baseName: "name", + type: "string", + required: true, + }, + properties: { + baseName: "properties", + type: "Array", + }, + sql: { + baseName: "sql", + type: "string", + required: true, + }, + subjectTypes: { + baseName: "subject_types", + type: "Array", + required: true, + }, + timestampColumn: { + baseName: "timestamp_column", + type: "string", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsUpdateMetricSQLModelV2RequestDataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsUpdateMetricSQLModelV2RequestDataType.ts b/packages/datadog-api-client-v2/models/ExperimentsUpdateMetricSQLModelV2RequestDataType.ts new file mode 100644 index 000000000000..59e0b2de7619 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsUpdateMetricSQLModelV2RequestDataType.ts @@ -0,0 +1,16 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Metric SQL models resource type. + */ + +export type ExperimentsUpdateMetricSQLModelV2RequestDataType = + | typeof METRIC_SQL_MODELS + | UnparsedObject; +export const METRIC_SQL_MODELS = "metric-sql-models"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsUpdateMetricSQLModelV2Response.ts b/packages/datadog-api-client-v2/models/ExperimentsUpdateMetricSQLModelV2Response.ts new file mode 100644 index 000000000000..25032320c53a --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsUpdateMetricSQLModelV2Response.ts @@ -0,0 +1,63 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsMetricSQLModelV2DTOData } from "./ExperimentsMetricSQLModelV2DTOData"; +import { ExperimentsUpdateMetricSQLModelV2ResponseMeta } from "./ExperimentsUpdateMetricSQLModelV2ResponseMeta"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Updated metric SQL model and its removed entries. + */ +export class ExperimentsUpdateMetricSQLModelV2Response { + /** + * JSON:API resource containing the metric SQL model identity and fields. + */ + "data": ExperimentsMetricSQLModelV2DTOData; + /** + * Model entries removed by the update. Empty arrays mean no entries were removed. + */ + "meta"?: ExperimentsUpdateMetricSQLModelV2ResponseMeta; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsMetricSQLModelV2DTOData", + required: true, + }, + meta: { + baseName: "meta", + type: "ExperimentsUpdateMetricSQLModelV2ResponseMeta", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsUpdateMetricSQLModelV2Response.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsUpdateMetricSQLModelV2ResponseMeta.ts b/packages/datadog-api-client-v2/models/ExperimentsUpdateMetricSQLModelV2ResponseMeta.ts new file mode 100644 index 000000000000..f30a2b159d50 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsUpdateMetricSQLModelV2ResponseMeta.ts @@ -0,0 +1,68 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Model entries removed by the update. Empty arrays mean no entries were removed. + */ +export class ExperimentsUpdateMetricSQLModelV2ResponseMeta { + /** + * Measure column names removed from the model. + */ + "deletedMeasures"?: Array; + /** + * Property names removed from the model. + */ + "deletedProperties"?: Array; + /** + * Subject type IDs removed from the model. + */ + "deletedSubjectTypes"?: Array; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + deletedMeasures: { + baseName: "deleted_measures", + type: "Array", + }, + deletedProperties: { + baseName: "deleted_properties", + type: "Array", + }, + deletedSubjectTypes: { + baseName: "deleted_subject_types", + type: "Array", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsUpdateMetricSQLModelV2ResponseMeta.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsUpdateMetricV2Request.ts b/packages/datadog-api-client-v2/models/ExperimentsUpdateMetricV2Request.ts new file mode 100644 index 000000000000..827b7e177476 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsUpdateMetricV2Request.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsUpdateMetricV2RequestData } from "./ExperimentsUpdateMetricV2RequestData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Request to update the metric. + */ +export class ExperimentsUpdateMetricV2Request { + /** + * JSON:API resource containing the metric identity and fields. + */ + "data": ExperimentsUpdateMetricV2RequestData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "ExperimentsUpdateMetricV2RequestData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsUpdateMetricV2Request.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsUpdateMetricV2RequestData.ts b/packages/datadog-api-client-v2/models/ExperimentsUpdateMetricV2RequestData.ts new file mode 100644 index 000000000000..2687ee259006 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsUpdateMetricV2RequestData.ts @@ -0,0 +1,72 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsUpdateMetricV2RequestDataAttributes } from "./ExperimentsUpdateMetricV2RequestDataAttributes"; +import { MetricType } from "./MetricType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * JSON:API resource containing the metric identity and fields. + */ +export class ExperimentsUpdateMetricV2RequestData { + /** + * Fields supplied to update the metric. Every attribute is optional; omit an attribute to leave it unchanged. + */ + "attributes"?: ExperimentsUpdateMetricV2RequestDataAttributes; + /** + * ID of the metric. + */ + "id"?: string; + /** + * The metric resource type. + */ + "type": MetricType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsUpdateMetricV2RequestDataAttributes", + }, + id: { + baseName: "id", + type: "string", + format: "uuid", + }, + type: { + baseName: "type", + type: "MetricType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsUpdateMetricV2RequestData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsUpdateMetricV2RequestDataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsUpdateMetricV2RequestDataAttributes.ts new file mode 100644 index 000000000000..2197bdf91d18 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsUpdateMetricV2RequestDataAttributes.ts @@ -0,0 +1,129 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateMetricV2RequestDataAttributesDataSourceType } from "./ExperimentsCreateMetricV2RequestDataAttributesDataSourceType"; +import { ExperimentsCreateMetricV2RequestDataAttributesDesiredChange } from "./ExperimentsCreateMetricV2RequestDataAttributesDesiredChange"; +import { ExperimentsCreateMetricV2RequestDataAttributesNumeratorAggregation } from "./ExperimentsCreateMetricV2RequestDataAttributesNumeratorAggregation"; +import { ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregation } from "./ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregation"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Fields supplied to update the metric. Every attribute is optional; omit an attribute to leave it unchanged. + */ +export class ExperimentsUpdateMetricV2RequestDataAttributes { + /** + * Source of the data backing this metric. + */ + "dataSourceType"?: ExperimentsCreateMetricV2RequestDataAttributesDataSourceType; + /** + * Measure and calculation settings for a numerator or denominator aggregation. Supply exactly one non-null measure. + */ + "denominatorAggregation"?: ExperimentsCreateMetricV2RequestDataAttributesNumeratorAggregation; + /** + * Send null to clear the description. Omit to leave it unchanged. + */ + "description"?: string; + /** + * Direction of change that represents an improvement for this metric. + */ + "desiredChange"?: ExperimentsCreateMetricV2RequestDataAttributesDesiredChange; + /** + * Whether results render as a percentage. Omit to leave it unchanged. + */ + "formatAsPercent"?: boolean; + /** + * Send null to clear a stored threshold. Omit to leave it unchanged. + */ + "guardrailCutoffThreshold"?: number; + /** + * Metadata retained for resources imported from another system. + */ + "migrationMetadata"?: any; + /** + * Name of the metric. Omit to leave it unchanged. + */ + "name"?: string; + /** + * Measure and calculation settings for a numerator or denominator aggregation. Supply exactly one non-null measure. + */ + "numeratorAggregation"?: ExperimentsCreateMetricV2RequestDataAttributesNumeratorAggregation; + /** + * Measure and percentile to calculate for the metric. Supply exactly one non-null measure. + */ + "percentileAggregation"?: ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregation; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + dataSourceType: { + baseName: "data_source_type", + type: "ExperimentsCreateMetricV2RequestDataAttributesDataSourceType", + }, + denominatorAggregation: { + baseName: "denominator_aggregation", + type: "ExperimentsCreateMetricV2RequestDataAttributesNumeratorAggregation", + }, + description: { + baseName: "description", + type: "string", + }, + desiredChange: { + baseName: "desired_change", + type: "ExperimentsCreateMetricV2RequestDataAttributesDesiredChange", + }, + formatAsPercent: { + baseName: "format_as_percent", + type: "boolean", + }, + guardrailCutoffThreshold: { + baseName: "guardrail_cutoff_threshold", + type: "number", + format: "double", + }, + migrationMetadata: { + baseName: "migration_metadata", + type: "any", + }, + name: { + baseName: "name", + type: "string", + }, + numeratorAggregation: { + baseName: "numerator_aggregation", + type: "ExperimentsCreateMetricV2RequestDataAttributesNumeratorAggregation", + }, + percentileAggregation: { + baseName: "percentile_aggregation", + type: "ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregation", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsUpdateMetricV2RequestDataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTOArray.ts b/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTOArray.ts new file mode 100644 index 000000000000..498714c821ba --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTOArray.ts @@ -0,0 +1,63 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsExperimentResultsV2MetaDTO } from "./ExperimentsExperimentResultsV2MetaDTO"; +import { ExperimentsVariantResultsV2DTOData } from "./ExperimentsVariantResultsV2DTOData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * List of variant result resources. + */ +export class ExperimentsVariantResultsV2DTOArray { + /** + * Resources returned in this response. + */ + "data": Array; + /** + * Information about when experiment results were updated and whether they are stale. + */ + "meta"?: ExperimentsExperimentResultsV2MetaDTO; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "Array", + required: true, + }, + meta: { + baseName: "meta", + type: "ExperimentsExperimentResultsV2MetaDTO", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsVariantResultsV2DTOArray.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTOData.ts b/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTOData.ts new file mode 100644 index 000000000000..6abc8d5a2e7f --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTOData.ts @@ -0,0 +1,72 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsVariantResultsV2DTODataAttributes } from "./ExperimentsVariantResultsV2DTODataAttributes"; +import { ExperimentsVariantResultsV2DTODataType } from "./ExperimentsVariantResultsV2DTODataType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * JSON:API resource containing the variant result identity and fields. + */ +export class ExperimentsVariantResultsV2DTOData { + /** + * Details of the variant result. + */ + "attributes"?: ExperimentsVariantResultsV2DTODataAttributes; + /** + * ID of the variant result. + */ + "id": string; + /** + * Experiment variant results resource type. + */ + "type": ExperimentsVariantResultsV2DTODataType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "ExperimentsVariantResultsV2DTODataAttributes", + }, + id: { + baseName: "id", + type: "string", + required: true, + }, + type: { + baseName: "type", + type: "ExperimentsVariantResultsV2DTODataType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsVariantResultsV2DTOData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributes.ts b/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributes.ts new file mode 100644 index 000000000000..7104f2a8bdf1 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributes.ts @@ -0,0 +1,94 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsVariantResultsV2DTODataAttributesMetricsItems } from "./ExperimentsVariantResultsV2DTODataAttributesMetricsItems"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Details of the variant result. + */ +export class ExperimentsVariantResultsV2DTODataAttributes { + /** + * Number of subjects assigned to this variant. + */ + "assignmentCount"?: number; + /** + * ID of the experiment associated with this result. + */ + "experimentId"?: string; + /** + * Whether this variant is the experiment's control. + */ + "isControl"?: boolean; + /** + * Metrics reported for this variant. + */ + "metrics"?: Array; + /** + * Key that identifies the experiment variant. + */ + "variantKey"?: string; + /** + * Display name of the experiment variant. + */ + "variantName"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + assignmentCount: { + baseName: "assignment_count", + type: "number", + format: "int64", + }, + experimentId: { + baseName: "experiment_id", + type: "string", + }, + isControl: { + baseName: "is_control", + type: "boolean", + }, + metrics: { + baseName: "metrics", + type: "Array", + }, + variantKey: { + baseName: "variant_key", + type: "string", + }, + variantName: { + baseName: "variant_name", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsVariantResultsV2DTODataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributesMetricsItems.ts b/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributesMetricsItems.ts new file mode 100644 index 000000000000..36d6eaac411c --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributesMetricsItems.ts @@ -0,0 +1,148 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsMetricV2DTODataAttributesDesiredChange } from "./ExperimentsMetricV2DTODataAttributesDesiredChange"; +import { ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItems } from "./ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItems"; +import { ExperimentsVariantResultsV2DTODataAttributesMetricsItemsCoverageSummary } from "./ExperimentsVariantResultsV2DTODataAttributesMetricsItemsCoverageSummary"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Metric values and statistical results for one variant. + */ +export class ExperimentsVariantResultsV2DTODataAttributesMetricsItems { + /** + * Statistical analyses calculated for this metric and variant. + */ + "analyses"?: Array; + /** + * Number of subjects assigned to this variant. + */ + "assignmentCount"?: number; + /** + * Estimated share of the global metric total from the eligible population if that population received + * control. The estimate can exceed 1. + */ + "coverage"?: number; + /** + * Population totals and allocation used to calculate metric coverage. + */ + "coverageSummary"?: ExperimentsVariantResultsV2DTODataAttributesMetricsItemsCoverageSummary; + /** + * Reason that metric coverage could not be calculated. + */ + "coverageUnavailableReason"?: string; + /** + * Aggregated denominator value for this metric and variant. + */ + "denominator"?: number; + /** + * Direction of metric change considered desirable. + */ + "desiredChange"?: ExperimentsMetricV2DTODataAttributesDesiredChange; + /** + * ID of the metric represented by this entry. + */ + "metricId"?: string; + /** + * Display name of the metric represented by this entry. + */ + "metricName"?: string; + /** + * Aggregated numerator value for this metric and variant. + */ + "numerator"?: number; + /** + * Name of the property used to split this metric result. + */ + "subMetricPropertyName"?: string; + /** + * Property value represented by this split metric result. + */ + "subMetricPropertyValue"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + analyses: { + baseName: "analyses", + type: "Array", + }, + assignmentCount: { + baseName: "assignment_count", + type: "number", + format: "int64", + }, + coverage: { + baseName: "coverage", + type: "number", + format: "double", + }, + coverageSummary: { + baseName: "coverage_summary", + type: "ExperimentsVariantResultsV2DTODataAttributesMetricsItemsCoverageSummary", + }, + coverageUnavailableReason: { + baseName: "coverage_unavailable_reason", + type: "string", + }, + denominator: { + baseName: "denominator", + type: "number", + format: "double", + }, + desiredChange: { + baseName: "desired_change", + type: "ExperimentsMetricV2DTODataAttributesDesiredChange", + }, + metricId: { + baseName: "metric_id", + type: "string", + }, + metricName: { + baseName: "metric_name", + type: "string", + }, + numerator: { + baseName: "numerator", + type: "number", + format: "double", + }, + subMetricPropertyName: { + baseName: "sub_metric_property_name", + type: "string", + }, + subMetricPropertyValue: { + baseName: "sub_metric_property_value", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsVariantResultsV2DTODataAttributesMetricsItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItems.ts b/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItems.ts new file mode 100644 index 000000000000..9278ac9eb153 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItems.ts @@ -0,0 +1,231 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsConfidenceInterval } from "./ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsConfidenceInterval"; +import { ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsLiftType } from "./ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsLiftType"; +import { ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsMethod } from "./ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsMethod"; +import { ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsUnreliableReason } from "./ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsUnreliableReason"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * One statistical comparison for a metric and variant. + */ +export class ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItems { + /** + * Lower and upper bounds of the reported statistical interval. + */ + "confidenceInterval"?: ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsConfidenceInterval; + /** + * Configured nominal confidence level. Interval bounds can use an adjusted level for multiple testing or hybrid methods. + */ + "confidenceLevel"?: number; + /** + * Expected reduction in minimum expected regret from collecting more sample data. + */ + "evsi"?: number; + /** + * Expected effect when the effect is positive. + */ + "expectationAboveZero"?: number; + /** + * Expected effect when the effect is negative. + */ + "expectationBelowZero"?: number; + /** + * Estimated lift across the population. Calculated as metric coverage multiplied by the experiment lift. + */ + "globalLift"?: number; + /** + * Lower bound of the estimated lift across the population. + */ + "globalLiftLowerBound"?: number; + /** + * Upper bound of the estimated lift across the population. + */ + "globalLiftUpperBound"?: number; + /** + * Whether CUPED used pre-experiment data to reduce variance in this result. + */ + "isCupedAdjusted"?: boolean; + /** + * Whether the statistical result is marked as unreliable. + */ + "isUnreliable"?: boolean; + /** + * Whether the reported lift is relative or absolute. + */ + "liftType"?: ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsLiftType; + /** + * Statistical method used to calculate this result. + */ + "method"?: ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsMethod; + /** + * The smaller expected opportunity cost of choosing treatment or control. + */ + "minimumExpectedRegret"?: number; + /** + * Probability, under the no-effect hypothesis, of a result at least as extreme as the observed result. + */ + "pValue"?: number; + /** + * Estimated difference between the variant and control for this metric. + */ + "pointEstimate"?: number; + /** + * Estimated probability that the effect is greater than zero. + */ + "probabilityAboveZero"?: number; + /** + * Estimated probability that the effect is less than zero. + */ + "probabilityBelowZero"?: number; + /** + * Estimated uncertainty in the effect estimate. + */ + "standardError"?: number; + /** + * Reason that the statistical result is marked as unreliable. + */ + "unreliableReason"?: ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsUnreliableReason; + /** + * Metric value calculated for this variant. + */ + "variantMetricValue"?: number; + /** + * Standardized statistic used to compare the observed effect with zero. + */ + "zScore"?: number; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + confidenceInterval: { + baseName: "confidence_interval", + type: "ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsConfidenceInterval", + }, + confidenceLevel: { + baseName: "confidence_level", + type: "number", + format: "double", + }, + evsi: { + baseName: "evsi", + type: "number", + format: "double", + }, + expectationAboveZero: { + baseName: "expectation_above_zero", + type: "number", + format: "double", + }, + expectationBelowZero: { + baseName: "expectation_below_zero", + type: "number", + format: "double", + }, + globalLift: { + baseName: "global_lift", + type: "number", + format: "double", + }, + globalLiftLowerBound: { + baseName: "global_lift_lower_bound", + type: "number", + format: "double", + }, + globalLiftUpperBound: { + baseName: "global_lift_upper_bound", + type: "number", + format: "double", + }, + isCupedAdjusted: { + baseName: "is_cuped_adjusted", + type: "boolean", + }, + isUnreliable: { + baseName: "is_unreliable", + type: "boolean", + }, + liftType: { + baseName: "lift_type", + type: "ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsLiftType", + }, + method: { + baseName: "method", + type: "ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsMethod", + }, + minimumExpectedRegret: { + baseName: "minimum_expected_regret", + type: "number", + format: "double", + }, + pValue: { + baseName: "p_value", + type: "number", + format: "double", + }, + pointEstimate: { + baseName: "point_estimate", + type: "number", + format: "double", + }, + probabilityAboveZero: { + baseName: "probability_above_zero", + type: "number", + format: "double", + }, + probabilityBelowZero: { + baseName: "probability_below_zero", + type: "number", + format: "double", + }, + standardError: { + baseName: "standard_error", + type: "number", + format: "double", + }, + unreliableReason: { + baseName: "unreliable_reason", + type: "ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsUnreliableReason", + }, + variantMetricValue: { + baseName: "variant_metric_value", + type: "number", + format: "double", + }, + zScore: { + baseName: "z_score", + type: "number", + format: "double", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsConfidenceInterval.ts b/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsConfidenceInterval.ts new file mode 100644 index 000000000000..a45aac968761 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsConfidenceInterval.ts @@ -0,0 +1,62 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Lower and upper bounds of the reported statistical interval. + */ +export class ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsConfidenceInterval { + /** + * Lower bound of the reported interval. + */ + "lower"?: number; + /** + * Upper bound of the reported interval. + */ + "upper"?: number; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + lower: { + baseName: "lower", + type: "number", + format: "double", + }, + upper: { + baseName: "upper", + type: "number", + format: "double", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsConfidenceInterval.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsLiftType.ts b/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsLiftType.ts new file mode 100644 index 000000000000..45004e7168fd --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsLiftType.ts @@ -0,0 +1,17 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Whether the reported lift is relative or absolute. + */ + +export type ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsLiftType = + typeof RELATIVE | typeof ABSOLUTE | typeof UNKNOWN | UnparsedObject; +export const RELATIVE = "RELATIVE"; +export const ABSOLUTE = "ABSOLUTE"; +export const UNKNOWN = "UNKNOWN"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsMethod.ts b/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsMethod.ts new file mode 100644 index 000000000000..1cfbd1dfc0f3 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsMethod.ts @@ -0,0 +1,25 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Statistical method used to calculate this result. + */ + +export type ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsMethod = + + | typeof FIXED_SAMPLE + | typeof BAYESIAN + | typeof SEQUENTIAL + | typeof SEQUENTIAL_FIXED_HYBRID + | typeof UNKNOWN + | UnparsedObject; +export const FIXED_SAMPLE = "FIXED_SAMPLE"; +export const BAYESIAN = "BAYESIAN"; +export const SEQUENTIAL = "SEQUENTIAL"; +export const SEQUENTIAL_FIXED_HYBRID = "SEQUENTIAL_FIXED_HYBRID"; +export const UNKNOWN = "UNKNOWN"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsUnreliableReason.ts b/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsUnreliableReason.ts new file mode 100644 index 000000000000..ea468a3ea905 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsUnreliableReason.ts @@ -0,0 +1,29 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Reason that the statistical result is marked as unreliable. + */ + +export type ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsUnreliableReason = + + | typeof CONTROL_DENOMINATOR_NEAR_ZERO + | typeof TREATMENT_DENOMINATOR_NEAR_ZERO + | typeof CONTROL_AND_TREATMENT_DENOMINATORS_NEAR_ZERO + | typeof CONTROL_MEAN_NEAR_ZERO + | typeof ZERO_VARIANCE + | typeof UNKNOWN + | UnparsedObject; +export const CONTROL_DENOMINATOR_NEAR_ZERO = "CONTROL_DENOMINATOR_NEAR_ZERO"; +export const TREATMENT_DENOMINATOR_NEAR_ZERO = + "TREATMENT_DENOMINATOR_NEAR_ZERO"; +export const CONTROL_AND_TREATMENT_DENOMINATORS_NEAR_ZERO = + "CONTROL_AND_TREATMENT_DENOMINATORS_NEAR_ZERO"; +export const CONTROL_MEAN_NEAR_ZERO = "CONTROL_MEAN_NEAR_ZERO"; +export const ZERO_VARIANCE = "ZERO_VARIANCE"; +export const UNKNOWN = "UNKNOWN"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsCoverageSummary.ts b/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsCoverageSummary.ts new file mode 100644 index 000000000000..9b24843f8c5e --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataAttributesMetricsItemsCoverageSummary.ts @@ -0,0 +1,107 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Population totals and allocation used to calculate metric coverage. + */ +export class ExperimentsVariantResultsV2DTODataAttributesMetricsItemsCoverageSummary { + /** + * Total metric value for the control population in the coverage calculation. + */ + "controlTotal"?: number; + /** + * Estimated share of the global metric total from the eligible population if that population received + * control. The estimate can exceed 1. + */ + "coverage"?: number; + /** + * Reason that metric coverage could not be calculated. + */ + "coverageUnavailableReason"?: string; + /** + * Estimated metric total for the eligible population if that population received control. + */ + "eligiblePopulationTotal"?: number; + /** + * Total metric value for the experiment population in the coverage calculation. + */ + "experimentTotal"?: number; + /** + * Observed metric total across subjects inside and outside the experiment. + */ + "globalMetricTotal"?: number; + /** + * Fraction of eligible traffic allocated to the experiment, weighted by time. + */ + "trafficAllocation"?: number; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + controlTotal: { + baseName: "control_total", + type: "number", + format: "double", + }, + coverage: { + baseName: "coverage", + type: "number", + format: "double", + }, + coverageUnavailableReason: { + baseName: "coverage_unavailable_reason", + type: "string", + }, + eligiblePopulationTotal: { + baseName: "eligible_population_total", + type: "number", + format: "double", + }, + experimentTotal: { + baseName: "experiment_total", + type: "number", + format: "double", + }, + globalMetricTotal: { + baseName: "global_metric_total", + type: "number", + format: "double", + }, + trafficAllocation: { + baseName: "traffic_allocation", + type: "number", + format: "double", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsVariantResultsV2DTODataAttributesMetricsItemsCoverageSummary.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataType.ts b/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataType.ts new file mode 100644 index 000000000000..16202bc7bf96 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsVariantResultsV2DTODataType.ts @@ -0,0 +1,16 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Experiment variant results resource type. + */ + +export type ExperimentsVariantResultsV2DTODataType = + | typeof EXPERIMENT_VARIANT_RESULTS + | UnparsedObject; +export const EXPERIMENT_VARIANT_RESULTS = "experiment-variant-results"; diff --git a/packages/datadog-api-client-v2/models/ExperimentsWarehouseExposureFilter.ts b/packages/datadog-api-client-v2/models/ExperimentsWarehouseExposureFilter.ts new file mode 100644 index 000000000000..1f806aa41ffa --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsWarehouseExposureFilter.ts @@ -0,0 +1,72 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPointFiltersItemsOperation } from "./ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPointFiltersItemsOperation"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * A comparison that selects warehouse exposure data by a property. + */ +export class ExperimentsWarehouseExposureFilter { + /** + * Comparison applied by the warehouse entry-point filter. + */ + "operation": ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPointFiltersItemsOperation; + /** + * Warehouse property UUID. + */ + "propertyId": string; + /** + * Ordered values used by the filter. + */ + "values": Array; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + operation: { + baseName: "operation", + type: "ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPointFiltersItemsOperation", + required: true, + }, + propertyId: { + baseName: "property_id", + type: "string", + required: true, + }, + values: { + baseName: "values", + type: "Array", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsWarehouseExposureFilter.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsWarehouseFilterInput.ts b/packages/datadog-api-client-v2/models/ExperimentsWarehouseFilterInput.ts new file mode 100644 index 000000000000..bc48d7725df8 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsWarehouseFilterInput.ts @@ -0,0 +1,24 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsMeasureComparisonFilterInput } from "./ExperimentsMeasureComparisonFilterInput"; +import { ExperimentsMeasureNullFilterInput } from "./ExperimentsMeasureNullFilterInput"; +import { ExperimentsMeasureRangeFilterInput } from "./ExperimentsMeasureRangeFilterInput"; +import { ExperimentsPropertyFilterInput } from "./ExperimentsPropertyFilterInput"; +import { ExperimentsPropertyNullFilterInput } from "./ExperimentsPropertyNullFilterInput"; + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * A property or measure comparison for a Warehouse numerator or denominator. Set exactly one target ID that is not blank. Measure comparisons require numeric measures and numeric values. BETWEEN bounds must be in ascending order. + */ + +export type ExperimentsWarehouseFilterInput = + | ExperimentsPropertyFilterInput + | ExperimentsPropertyNullFilterInput + | ExperimentsMeasureComparisonFilterInput + | ExperimentsMeasureRangeFilterInput + | ExperimentsMeasureNullFilterInput + | UnparsedObject; diff --git a/packages/datadog-api-client-v2/models/ExperimentsWarehouseMetricAggregationInput.ts b/packages/datadog-api-client-v2/models/ExperimentsWarehouseMetricAggregationInput.ts new file mode 100644 index 000000000000..7f77348c5eca --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsWarehouseMetricAggregationInput.ts @@ -0,0 +1,212 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregationWarehouseMetricMeasure } from "./ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregationWarehouseMetricMeasure"; +import { ExperimentsNullableDatadogMetricMeasureInput } from "./ExperimentsNullableDatadogMetricMeasureInput"; +import { ExperimentsWarehouseFilterInput } from "./ExperimentsWarehouseFilterInput"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Settings for a metric aggregation that uses a Warehouse measure. The other measure must be omitted or null. + */ +export class ExperimentsWarehouseMetricAggregationInput { + /** + * Stored aging threshold in days. The subject aging filter uses the aggregation window end and unit. + */ + "agingThresholdDays"?: number; + /** + * Optional Datadog measure. Use null when the other measure is selected. + */ + "datadogMetricMeasure"?: ExperimentsNullableDatadogMetricMeasureInput; + /** + * Whether to exclude subjects whose observation time is shorter than the aggregation window. + */ + "enableAgingSubjectFilter"?: boolean; + /** + * Calculation applied to the measure values, such as sum. + */ + "operation": string; + /** + * Property filters that select data for this aggregation. + */ + "propertyFilters"?: Array>; + /** + * Calculation used to evaluate the threshold. + */ + "thresholdAggregationType"?: string; + /** + * Value used to determine whether the threshold is breached. + */ + "thresholdBreachValue"?: number; + /** + * Operator used to compare the calculated value with the threshold. + */ + "thresholdComparisonOperator"?: string; + /** + * Time unit for the threshold evaluation window. Supports seconds, minutes, hours, days, calendar_days, and + * weeks. Calendar days start at midnight on the assignment day. Other units start at the assignment time. + */ + "thresholdTimeframeDimension"?: string; + /** + * End of the threshold evaluation window, measured from assignment in the configured time unit. + */ + "thresholdTimeframeValue"?: number; + /** + * End offset of the aggregation window from assignment, in timeframe_unit. + */ + "timeframeEndValue"?: number; + /** + * Start offset of the aggregation window from assignment, in timeframe_unit. + */ + "timeframeStartValue"?: number; + /** + * Time unit for the aggregation window. Calendar days are measured from midnight on the assignment day. + * Other units are measured from the assignment time. + */ + "timeframeUnit"?: string; + /** + * Reference to a measure defined in a warehouse metric SQL model. + */ + "warehouseMetricMeasure": ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregationWarehouseMetricMeasure; + /** + * Fixed lower bound used to cap extreme measure values. + */ + "winsorLowerFixedValue"?: number; + /** + * Percentile used to determine the lower bound for extreme measure values. + */ + "winsorLowerPercentile"?: number; + /** + * Fixed upper bound used to cap extreme measure values. + */ + "winsorUpperFixedValue"?: number; + /** + * Percentile used to determine the upper bound for extreme measure values. + */ + "winsorUpperPercentile"?: number; + /** + * Method used to cap extreme measure values before aggregation. + */ + "winsorizationStrategy"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + agingThresholdDays: { + baseName: "aging_threshold_days", + type: "number", + format: "int64", + }, + datadogMetricMeasure: { + baseName: "datadog_metric_measure", + type: "ExperimentsNullableDatadogMetricMeasureInput", + }, + enableAgingSubjectFilter: { + baseName: "enable_aging_subject_filter", + type: "boolean", + }, + operation: { + baseName: "operation", + type: "string", + required: true, + }, + propertyFilters: { + baseName: "property_filters", + type: "Array>", + }, + thresholdAggregationType: { + baseName: "threshold_aggregation_type", + type: "string", + }, + thresholdBreachValue: { + baseName: "threshold_breach_value", + type: "number", + format: "double", + }, + thresholdComparisonOperator: { + baseName: "threshold_comparison_operator", + type: "string", + }, + thresholdTimeframeDimension: { + baseName: "threshold_timeframe_dimension", + type: "string", + }, + thresholdTimeframeValue: { + baseName: "threshold_timeframe_value", + type: "number", + format: "double", + }, + timeframeEndValue: { + baseName: "timeframe_end_value", + type: "number", + format: "double", + }, + timeframeStartValue: { + baseName: "timeframe_start_value", + type: "number", + format: "double", + }, + timeframeUnit: { + baseName: "timeframe_unit", + type: "string", + }, + warehouseMetricMeasure: { + baseName: "warehouse_metric_measure", + type: "ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregationWarehouseMetricMeasure", + required: true, + }, + winsorLowerFixedValue: { + baseName: "winsor_lower_fixed_value", + type: "number", + format: "double", + }, + winsorLowerPercentile: { + baseName: "winsor_lower_percentile", + type: "number", + format: "double", + }, + winsorUpperFixedValue: { + baseName: "winsor_upper_fixed_value", + type: "number", + format: "double", + }, + winsorUpperPercentile: { + baseName: "winsor_upper_percentile", + type: "number", + format: "double", + }, + winsorizationStrategy: { + baseName: "winsorization_strategy", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsWarehouseMetricAggregationInput.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ExperimentsWarehousePercentileAggregationInput.ts b/packages/datadog-api-client-v2/models/ExperimentsWarehousePercentileAggregationInput.ts new file mode 100644 index 000000000000..e06cdfcec193 --- /dev/null +++ b/packages/datadog-api-client-v2/models/ExperimentsWarehousePercentileAggregationInput.ts @@ -0,0 +1,82 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregationWarehouseMetricMeasure } from "./ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregationWarehouseMetricMeasure"; +import { ExperimentsNullableDatadogPercentileMeasureInput } from "./ExperimentsNullableDatadogPercentileMeasureInput"; +import { ExperimentsPropertyFilterInput } from "./ExperimentsPropertyFilterInput"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Settings for a percentile aggregation that uses a Warehouse measure. The other measure must be omitted or null. + */ +export class ExperimentsWarehousePercentileAggregationInput { + /** + * Optional Datadog percentile measure. Use null when the warehouse measure is selected. + */ + "datadogMetricMeasure"?: ExperimentsNullableDatadogPercentileMeasureInput; + /** + * Percentile to calculate from the measure values. + */ + "percentile": number; + /** + * Property filters that select data for the percentile calculation. + */ + "propertyFilters"?: Array>; + /** + * Reference to a measure defined in a warehouse metric SQL model. + */ + "warehouseMetricMeasure": ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregationWarehouseMetricMeasure; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + datadogMetricMeasure: { + baseName: "datadog_metric_measure", + type: "ExperimentsNullableDatadogPercentileMeasureInput", + }, + percentile: { + baseName: "percentile", + type: "number", + required: true, + format: "double", + }, + propertyFilters: { + baseName: "property_filters", + type: "Array>", + }, + warehouseMetricMeasure: { + baseName: "warehouse_metric_measure", + type: "ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregationWarehouseMetricMeasure", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ExperimentsWarehousePercentileAggregationInput.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/FeatureFlagAttributes.ts b/packages/datadog-api-client-v2/models/FeatureFlagAttributes.ts index f57b8cf2069c..5f69769a1057 100644 --- a/packages/datadog-api-client-v2/models/FeatureFlagAttributes.ts +++ b/packages/datadog-api-client-v2/models/FeatureFlagAttributes.ts @@ -4,6 +4,7 @@ * Copyright 2020-Present Datadog, Inc. */ import { FeatureFlagEnvironment } from "./FeatureFlagEnvironment"; +import { FeatureFlagStalenessDetails } from "./FeatureFlagStalenessDetails"; import { ValueType } from "./ValueType"; import { Variant } from "./Variant"; @@ -37,6 +38,10 @@ export class FeatureFlagAttributes { * Environment-specific settings for the feature flag. */ "featureFlagEnvironments"?: Array; + /** + * Indicates whether the current user has marked the feature flag as a favorite. + */ + "isFavorite"?: boolean; /** * JSON schema for validation when value_type is JSON. */ @@ -57,6 +62,10 @@ export class FeatureFlagAttributes { * Indicates whether this feature flag requires approval for changes. */ "requireApproval"?: boolean; + /** + * The feature flag's current staleness state and suggested actions. + */ + "stalenessDetails"?: FeatureFlagStalenessDetails; /** * Indicates the whether a feature flag is stale or not. */ @@ -122,6 +131,10 @@ export class FeatureFlagAttributes { baseName: "feature_flag_environments", type: "Array", }, + isFavorite: { + baseName: "is_favorite", + type: "boolean", + }, jsonSchema: { baseName: "json_schema", type: "string", @@ -145,6 +158,10 @@ export class FeatureFlagAttributes { baseName: "require_approval", type: "boolean", }, + stalenessDetails: { + baseName: "staleness_details", + type: "FeatureFlagStalenessDetails", + }, stalenessStatus: { baseName: "staleness_status", type: "string", diff --git a/packages/datadog-api-client-v2/models/FeatureFlagEnvironment.ts b/packages/datadog-api-client-v2/models/FeatureFlagEnvironment.ts index ff4f799c99e7..db7056961636 100644 --- a/packages/datadog-api-client-v2/models/FeatureFlagEnvironment.ts +++ b/packages/datadog-api-client-v2/models/FeatureFlagEnvironment.ts @@ -39,6 +39,10 @@ export class FeatureFlagEnvironment { * Indicates whether the environment is production. */ "isProduction"?: boolean; + /** + * Indicates whether feature flag evaluation events include original targeting identifiers and full evaluation context. + */ + "observeFullEvaluationData"?: boolean; /** * The allocation key used for the override variant. */ @@ -106,6 +110,10 @@ export class FeatureFlagEnvironment { baseName: "is_production", type: "boolean", }, + observeFullEvaluationData: { + baseName: "observe_full_evaluation_data", + type: "boolean", + }, overrideAllocationKey: { baseName: "override_allocation_key", type: "string", diff --git a/packages/datadog-api-client-v2/models/FeatureFlagEnvironmentListItem.ts b/packages/datadog-api-client-v2/models/FeatureFlagEnvironmentListItem.ts index 509b067d64a3..fd762aa249c4 100644 --- a/packages/datadog-api-client-v2/models/FeatureFlagEnvironmentListItem.ts +++ b/packages/datadog-api-client-v2/models/FeatureFlagEnvironmentListItem.ts @@ -35,6 +35,10 @@ export class FeatureFlagEnvironmentListItem { * Indicates whether the environment is production. */ "isProduction"?: boolean; + /** + * Indicates whether feature flag evaluation events include original targeting identifiers and full evaluation context. + */ + "observeFullEvaluationData"?: boolean; /** * The allocation key used for the override variant. */ @@ -98,6 +102,10 @@ export class FeatureFlagEnvironmentListItem { baseName: "is_production", type: "boolean", }, + observeFullEvaluationData: { + baseName: "observe_full_evaluation_data", + type: "boolean", + }, overrideAllocationKey: { baseName: "override_allocation_key", type: "string", diff --git a/packages/datadog-api-client-v2/models/FeatureFlagListItemAttributes.ts b/packages/datadog-api-client-v2/models/FeatureFlagListItemAttributes.ts index 04ff0c766a9d..3e4f8704cb6a 100644 --- a/packages/datadog-api-client-v2/models/FeatureFlagListItemAttributes.ts +++ b/packages/datadog-api-client-v2/models/FeatureFlagListItemAttributes.ts @@ -4,6 +4,7 @@ * Copyright 2020-Present Datadog, Inc. */ import { FeatureFlagEnvironmentListItem } from "./FeatureFlagEnvironmentListItem"; +import { FeatureFlagStalenessDetails } from "./FeatureFlagStalenessDetails"; import { ValueType } from "./ValueType"; import { Variant } from "./Variant"; @@ -37,6 +38,10 @@ export class FeatureFlagListItemAttributes { * Environment-specific settings for the feature flag. */ "featureFlagEnvironments"?: Array; + /** + * Indicates whether the current user has marked the feature flag as a favorite. + */ + "isFavorite"?: boolean; /** * JSON schema for validation when value_type is JSON. */ @@ -57,6 +62,10 @@ export class FeatureFlagListItemAttributes { * Indicates whether this feature flag requires approval for changes. */ "requireApproval"?: boolean; + /** + * The feature flag's current staleness state and suggested actions. + */ + "stalenessDetails"?: FeatureFlagStalenessDetails; /** * Indicates the staleness status of the feature flag. */ @@ -122,6 +131,10 @@ export class FeatureFlagListItemAttributes { baseName: "feature_flag_environments", type: "Array", }, + isFavorite: { + baseName: "is_favorite", + type: "boolean", + }, jsonSchema: { baseName: "json_schema", type: "string", @@ -145,6 +158,10 @@ export class FeatureFlagListItemAttributes { baseName: "require_approval", type: "boolean", }, + stalenessDetails: { + baseName: "staleness_details", + type: "FeatureFlagStalenessDetails", + }, stalenessStatus: { baseName: "staleness_status", type: "string", diff --git a/packages/datadog-api-client-v2/models/FeatureFlagStalenessCodeReference.ts b/packages/datadog-api-client-v2/models/FeatureFlagStalenessCodeReference.ts new file mode 100644 index 000000000000..c242430efef3 --- /dev/null +++ b/packages/datadog-api-client-v2/models/FeatureFlagStalenessCodeReference.ts @@ -0,0 +1,68 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * A repository and its files that reference the feature flag. + */ +export class FeatureFlagStalenessCodeReference { + /** + * Paths of files that reference the feature flag in this repository. + */ + "files"?: Array; + /** + * The URL of the source code repository, when available. + */ + "repoUrl"?: string; + /** + * The identifier of the source code repository. + */ + "scmRepositoryId"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + files: { + baseName: "files", + type: "Array", + }, + repoUrl: { + baseName: "repo_url", + type: "string", + }, + scmRepositoryId: { + baseName: "scm_repository_id", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return FeatureFlagStalenessCodeReference.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/FeatureFlagStalenessDetails.ts b/packages/datadog-api-client-v2/models/FeatureFlagStalenessDetails.ts new file mode 100644 index 000000000000..56bbaaf4c57a --- /dev/null +++ b/packages/datadog-api-client-v2/models/FeatureFlagStalenessDetails.ts @@ -0,0 +1,103 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { FeatureFlagStalenessCodeReference } from "./FeatureFlagStalenessCodeReference"; +import { FeatureFlagStalenessRecommendedAction } from "./FeatureFlagStalenessRecommendedAction"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * The feature flag's current staleness state and suggested actions. + */ +export class FeatureFlagStalenessDetails { + /** + * Repositories and files where the flag is referenced in source code. + */ + "codeReferences"?: Array; + /** + * The ID of the user who dismissed the staleness recommendation. + */ + "dismissedBy"?: string; + /** + * The ID of the feature flag whose staleness state is returned. + */ + "id"?: string; + /** + * Suggested actions for the flag. The first action is the primary recommendation. + */ + "recommendedActions"?: Array; + /** + * Time until which staleness checks are paused for the flag. + */ + "skipStateCheckUntil"?: Date; + /** + * Why the flag is stale or has a manually selected state. Values include `FULLY_ROLLED_OUT`, `NO_EVALUATIONS`, `NO_ACTIVITY`, and `USER_SET`. + */ + "staleReason"?: string; + /** + * The current state, such as `ACTIVE`, `STALE`, or `PERMANENT`. + */ + "stalenessStatus"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + codeReferences: { + baseName: "code_references", + type: "Array", + }, + dismissedBy: { + baseName: "dismissed_by", + type: "string", + }, + id: { + baseName: "id", + type: "string", + }, + recommendedActions: { + baseName: "recommended_actions", + type: "Array", + }, + skipStateCheckUntil: { + baseName: "skip_state_check_until", + type: "Date", + format: "date-time", + }, + staleReason: { + baseName: "stale_reason", + type: "string", + }, + stalenessStatus: { + baseName: "staleness_status", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return FeatureFlagStalenessDetails.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/FeatureFlagStalenessRecommendedAction.ts b/packages/datadog-api-client-v2/models/FeatureFlagStalenessRecommendedAction.ts new file mode 100644 index 000000000000..7cdad0da6b4d --- /dev/null +++ b/packages/datadog-api-client-v2/models/FeatureFlagStalenessRecommendedAction.ts @@ -0,0 +1,60 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * An action suggested for a feature flag based on its staleness state. + */ +export class FeatureFlagStalenessRecommendedAction { + /** + * The action to consider. Values include `remove_from_code`, `archive_flag`, `mark_as_permanent`, `snooze`, and `check_sdk_config`. + */ + "action"?: string; + /** + * An explanation of the suggested action. + */ + "description"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + action: { + baseName: "action", + type: "string", + }, + description: { + baseName: "description", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return FeatureFlagStalenessRecommendedAction.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/ObjectSerializer.ts b/packages/datadog-api-client-v2/models/ObjectSerializer.ts index ab1bf3b1d5be..c94160e100ad 100644 --- a/packages/datadog-api-client-v2/models/ObjectSerializer.ts +++ b/packages/datadog-api-client-v2/models/ObjectSerializer.ts @@ -1830,6 +1830,191 @@ import { ExecutionPolicyTarget } from "./ExecutionPolicyTarget"; import { ExecutionPolicyUpdateRequest } from "./ExecutionPolicyUpdateRequest"; import { ExecutionPolicyUpdateRequestData } from "./ExecutionPolicyUpdateRequestData"; import { ExecutionPolicyWriteAttributes } from "./ExecutionPolicyWriteAttributes"; +import { ExperimentsAnalysisPlanV2DTO } from "./ExperimentsAnalysisPlanV2DTO"; +import { ExperimentsAnalysisPlanV2DTOData } from "./ExperimentsAnalysisPlanV2DTOData"; +import { ExperimentsAnalysisPlanV2MutationResponse } from "./ExperimentsAnalysisPlanV2MutationResponse"; +import { ExperimentsAnalysisPlanV2MutationResponseDataAttributes } from "./ExperimentsAnalysisPlanV2MutationResponseDataAttributes"; +import { ExperimentsAnalysisPlanV2MutationResponseDataAttributesBayesianPrior } from "./ExperimentsAnalysisPlanV2MutationResponseDataAttributesBayesianPrior"; +import { ExperimentsAnalysisPlanWriteV2Request } from "./ExperimentsAnalysisPlanWriteV2Request"; +import { ExperimentsAnalysisPlanWriteV2RequestData } from "./ExperimentsAnalysisPlanWriteV2RequestData"; +import { ExperimentsAnalysisPlanWriteV2RequestDataAttributes } from "./ExperimentsAnalysisPlanWriteV2RequestDataAttributes"; +import { ExperimentsAnalysisPlanWriteV2RequestDataAttributesBayesianPrior } from "./ExperimentsAnalysisPlanWriteV2RequestDataAttributesBayesianPrior"; +import { ExperimentsCancelExperimentV2Request } from "./ExperimentsCancelExperimentV2Request"; +import { ExperimentsCancelExperimentV2RequestData } from "./ExperimentsCancelExperimentV2RequestData"; +import { ExperimentsCancelExperimentV2RequestDataAttributes } from "./ExperimentsCancelExperimentV2RequestDataAttributes"; +import { ExperimentsConcludeExperimentV2Request } from "./ExperimentsConcludeExperimentV2Request"; +import { ExperimentsConcludeExperimentV2RequestData } from "./ExperimentsConcludeExperimentV2RequestData"; +import { ExperimentsConcludeExperimentV2RequestDataAttributes } from "./ExperimentsConcludeExperimentV2RequestDataAttributes"; +import { ExperimentsCreateExperimentMetricGroupV2Request } from "./ExperimentsCreateExperimentMetricGroupV2Request"; +import { ExperimentsCreateExperimentMetricGroupV2RequestData } from "./ExperimentsCreateExperimentMetricGroupV2RequestData"; +import { ExperimentsCreateExperimentMetricGroupV2RequestDataAttributes } from "./ExperimentsCreateExperimentMetricGroupV2RequestDataAttributes"; +import { ExperimentsCreateExperimentMetricGroupV2RequestDataAttributesMetricsItems } from "./ExperimentsCreateExperimentMetricGroupV2RequestDataAttributesMetricsItems"; +import { ExperimentsCreateExperimentV2Request } from "./ExperimentsCreateExperimentV2Request"; +import { ExperimentsCreateExperimentV2RequestData } from "./ExperimentsCreateExperimentV2RequestData"; +import { ExperimentsCreateExperimentV2RequestDataAttributes } from "./ExperimentsCreateExperimentV2RequestDataAttributes"; +import { ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfiguration } from "./ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfiguration"; +import { ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfigurationTargetingRulesItems } from "./ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfigurationTargetingRulesItems"; +import { ExperimentsCreateExperimentV2RequestDataAttributesDecisionMetricsItems } from "./ExperimentsCreateExperimentV2RequestDataAttributesDecisionMetricsItems"; +import { ExperimentsCreateExperimentV2RequestDataAttributesRelatedLinksItems } from "./ExperimentsCreateExperimentV2RequestDataAttributesRelatedLinksItems"; +import { ExperimentsCreateExperimentV2RequestDataAttributesSplitByPropertiesItems } from "./ExperimentsCreateExperimentV2RequestDataAttributesSplitByPropertiesItems"; +import { ExperimentsCreateExperimentV2RequestDataAttributesStructuredMetadataItems } from "./ExperimentsCreateExperimentV2RequestDataAttributesStructuredMetadataItems"; +import { ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureStepsItems } from "./ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureStepsItems"; +import { ExperimentsCreateExperimentV2RequestDataAttributesVariantsItems } from "./ExperimentsCreateExperimentV2RequestDataAttributesVariantsItems"; +import { ExperimentsCreateExperimentV2RequestDataAttributesWarehouseExposureConfiguration } from "./ExperimentsCreateExperimentV2RequestDataAttributesWarehouseExposureConfiguration"; +import { ExperimentsCreateExposureSQLModelV2Request } from "./ExperimentsCreateExposureSQLModelV2Request"; +import { ExperimentsCreateExposureSQLModelV2RequestData } from "./ExperimentsCreateExposureSQLModelV2RequestData"; +import { ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems } from "./ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems"; +import { ExperimentsCreateMetricCollectionV2Request } from "./ExperimentsCreateMetricCollectionV2Request"; +import { ExperimentsCreateMetricCollectionV2RequestData } from "./ExperimentsCreateMetricCollectionV2RequestData"; +import { ExperimentsCreateMetricCollectionV2RequestDataAttributes } from "./ExperimentsCreateMetricCollectionV2RequestDataAttributes"; +import { ExperimentsCreateMetricCollectionV2RequestDataAttributesMetricsItems } from "./ExperimentsCreateMetricCollectionV2RequestDataAttributesMetricsItems"; +import { ExperimentsCreateMetricNumeratorAttributes } from "./ExperimentsCreateMetricNumeratorAttributes"; +import { ExperimentsCreateMetricPercentileAttributes } from "./ExperimentsCreateMetricPercentileAttributes"; +import { ExperimentsCreateMetricSQLModelV2Request } from "./ExperimentsCreateMetricSQLModelV2Request"; +import { ExperimentsCreateMetricSQLModelV2RequestData } from "./ExperimentsCreateMetricSQLModelV2RequestData"; +import { ExperimentsCreateMetricSQLModelV2RequestDataAttributesMeasuresItems } from "./ExperimentsCreateMetricSQLModelV2RequestDataAttributesMeasuresItems"; +import { ExperimentsCreateMetricV2Request } from "./ExperimentsCreateMetricV2Request"; +import { ExperimentsCreateMetricV2RequestData } from "./ExperimentsCreateMetricV2RequestData"; +import { ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregationWarehouseMetricMeasure } from "./ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregationWarehouseMetricMeasure"; +import { ExperimentsCreateSubjectTypeV2Request } from "./ExperimentsCreateSubjectTypeV2Request"; +import { ExperimentsCreateSubjectTypeV2RequestData } from "./ExperimentsCreateSubjectTypeV2RequestData"; +import { ExperimentsCreateSubjectTypeV2RequestDataAttributes } from "./ExperimentsCreateSubjectTypeV2RequestDataAttributes"; +import { ExperimentsDatadogEntryPointFilter } from "./ExperimentsDatadogEntryPointFilter"; +import { ExperimentsDatadogMetricAggregationInput } from "./ExperimentsDatadogMetricAggregationInput"; +import { ExperimentsDatadogMetricMeasureInput } from "./ExperimentsDatadogMetricMeasureInput"; +import { ExperimentsDatadogPercentileAggregationInput } from "./ExperimentsDatadogPercentileAggregationInput"; +import { ExperimentsDatadogPercentileMeasureInput } from "./ExperimentsDatadogPercentileMeasureInput"; +import { ExperimentsExperimentDiagnosticsV2DTO } from "./ExperimentsExperimentDiagnosticsV2DTO"; +import { ExperimentsExperimentDiagnosticsV2DTOData } from "./ExperimentsExperimentDiagnosticsV2DTOData"; +import { ExperimentsExperimentDiagnosticsV2DTODataAttributes } from "./ExperimentsExperimentDiagnosticsV2DTODataAttributes"; +import { ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItems } from "./ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItems"; +import { ExperimentsExperimentMetricGroupMutationV2 } from "./ExperimentsExperimentMetricGroupMutationV2"; +import { ExperimentsExperimentMetricGroupMutationV2Data } from "./ExperimentsExperimentMetricGroupMutationV2Data"; +import { ExperimentsExperimentMetricGroupMutationV2DataAttributesMetricsItems } from "./ExperimentsExperimentMetricGroupMutationV2DataAttributesMetricsItems"; +import { ExperimentsExperimentMetricGroupV2DTOArray } from "./ExperimentsExperimentMetricGroupV2DTOArray"; +import { ExperimentsExperimentMetricGroupV2DTODataAttributes } from "./ExperimentsExperimentMetricGroupV2DTODataAttributes"; +import { ExperimentsExperimentResultsV2MetaDTO } from "./ExperimentsExperimentResultsV2MetaDTO"; +import { ExperimentsExperimentV2DTO } from "./ExperimentsExperimentV2DTO"; +import { ExperimentsExperimentV2DTOData } from "./ExperimentsExperimentV2DTOData"; +import { ExperimentsExperimentV2DTODataAttributesSplitByPropertiesItems } from "./ExperimentsExperimentV2DTODataAttributesSplitByPropertiesItems"; +import { ExperimentsExperimentV2DTODataAttributesVariantsItems } from "./ExperimentsExperimentV2DTODataAttributesVariantsItems"; +import { ExperimentsExperimentV2ListDTOArray } from "./ExperimentsExperimentV2ListDTOArray"; +import { ExperimentsExperimentV2ListDTOData } from "./ExperimentsExperimentV2ListDTOData"; +import { ExperimentsExperimentV2ListDTODataAttributes } from "./ExperimentsExperimentV2ListDTODataAttributes"; +import { ExperimentsExposureSQLModelV2DTO } from "./ExperimentsExposureSQLModelV2DTO"; +import { ExperimentsExposureSQLModelV2DTOArray } from "./ExperimentsExposureSQLModelV2DTOArray"; +import { ExperimentsExposureSQLModelV2DTOData } from "./ExperimentsExposureSQLModelV2DTOData"; +import { ExperimentsExposureSQLModelV2DTODataAttributes } from "./ExperimentsExposureSQLModelV2DTODataAttributes"; +import { ExperimentsExposureSQLModelV2DTODataAttributesItems } from "./ExperimentsExposureSQLModelV2DTODataAttributesItems"; +import { ExperimentsInlineCondition } from "./ExperimentsInlineCondition"; +import { ExperimentsMeasureComparisonFilterInput } from "./ExperimentsMeasureComparisonFilterInput"; +import { ExperimentsMeasureNullFilterInput } from "./ExperimentsMeasureNullFilterInput"; +import { ExperimentsMeasureRangeFilterInput } from "./ExperimentsMeasureRangeFilterInput"; +import { ExperimentsMetricCollectionV2DTO } from "./ExperimentsMetricCollectionV2DTO"; +import { ExperimentsMetricCollectionV2DTOArray } from "./ExperimentsMetricCollectionV2DTOArray"; +import { ExperimentsMetricCollectionV2DTOData } from "./ExperimentsMetricCollectionV2DTOData"; +import { ExperimentsMetricCollectionV2DTODataAttributes } from "./ExperimentsMetricCollectionV2DTODataAttributes"; +import { ExperimentsMetricCollectionV2DTODataAttributesMetricsItems } from "./ExperimentsMetricCollectionV2DTODataAttributesMetricsItems"; +import { ExperimentsMetricPropertyFilter } from "./ExperimentsMetricPropertyFilter"; +import { ExperimentsMetricSQLModelPropertyInput } from "./ExperimentsMetricSQLModelPropertyInput"; +import { ExperimentsMetricSQLModelV2DTO } from "./ExperimentsMetricSQLModelV2DTO"; +import { ExperimentsMetricSQLModelV2DTOArray } from "./ExperimentsMetricSQLModelV2DTOArray"; +import { ExperimentsMetricSQLModelV2DTOData } from "./ExperimentsMetricSQLModelV2DTOData"; +import { ExperimentsMetricSQLModelV2DTODataAttributes } from "./ExperimentsMetricSQLModelV2DTODataAttributes"; +import { ExperimentsMetricSQLModelV2DTODataAttributesMeasuresItems } from "./ExperimentsMetricSQLModelV2DTODataAttributesMeasuresItems"; +import { ExperimentsMetricSQLModelV2DTODataAttributesSubjectTypesItems } from "./ExperimentsMetricSQLModelV2DTODataAttributesSubjectTypesItems"; +import { ExperimentsMetricV2DTO } from "./ExperimentsMetricV2DTO"; +import { ExperimentsMetricV2DTOArray } from "./ExperimentsMetricV2DTOArray"; +import { ExperimentsMetricV2DTOData } from "./ExperimentsMetricV2DTOData"; +import { ExperimentsMetricV2DTODataAttributes } from "./ExperimentsMetricV2DTODataAttributes"; +import { ExperimentsMetricV2DTODataAttributesNumeratorAggregation } from "./ExperimentsMetricV2DTODataAttributesNumeratorAggregation"; +import { ExperimentsMetricV2DTODataAttributesPercentileAggregation } from "./ExperimentsMetricV2DTODataAttributesPercentileAggregation"; +import { ExperimentsMetricV2DTODataAttributesPercentileAggregationDatadogMetricMeasure } from "./ExperimentsMetricV2DTODataAttributesPercentileAggregationDatadogMetricMeasure"; +import { ExperimentsMetricV2DTODataAttributesPercentileAggregationWarehouseMetricMeasure } from "./ExperimentsMetricV2DTODataAttributesPercentileAggregationWarehouseMetricMeasure"; +import { ExperimentsNullableDatadogMetricMeasureInput } from "./ExperimentsNullableDatadogMetricMeasureInput"; +import { ExperimentsNullableDatadogPercentileMeasureInput } from "./ExperimentsNullableDatadogPercentileMeasureInput"; +import { ExperimentsNullableWarehouseMetricMeasureInput } from "./ExperimentsNullableWarehouseMetricMeasureInput"; +import { ExperimentsOffsetLinks } from "./ExperimentsOffsetLinks"; +import { ExperimentsOffsetMeta } from "./ExperimentsOffsetMeta"; +import { ExperimentsOffsetMetaPage } from "./ExperimentsOffsetMetaPage"; +import { ExperimentsPatchExperimentMetricGroupV2Request } from "./ExperimentsPatchExperimentMetricGroupV2Request"; +import { ExperimentsPatchExperimentMetricGroupV2RequestData } from "./ExperimentsPatchExperimentMetricGroupV2RequestData"; +import { ExperimentsPatchExperimentMetricGroupV2RequestDataAttributes } from "./ExperimentsPatchExperimentMetricGroupV2RequestDataAttributes"; +import { ExperimentsPatchExperimentV2MetaDTO } from "./ExperimentsPatchExperimentV2MetaDTO"; +import { ExperimentsPatchExperimentV2MetaDTOWarningsItems } from "./ExperimentsPatchExperimentV2MetaDTOWarningsItems"; +import { ExperimentsPatchExperimentV2Request } from "./ExperimentsPatchExperimentV2Request"; +import { ExperimentsPatchExperimentV2RequestData } from "./ExperimentsPatchExperimentV2RequestData"; +import { ExperimentsPatchExperimentV2RequestDataAttributes } from "./ExperimentsPatchExperimentV2RequestDataAttributes"; +import { ExperimentsPatchExperimentV2RequestDataAttributesDatadogFlagConfiguration } from "./ExperimentsPatchExperimentV2RequestDataAttributesDatadogFlagConfiguration"; +import { ExperimentsPatchExperimentV2Response } from "./ExperimentsPatchExperimentV2Response"; +import { ExperimentsPatchExperimentV2ResponseDataAttributes } from "./ExperimentsPatchExperimentV2ResponseDataAttributes"; +import { ExperimentsPatchExperimentV2ResponseDataAttributesConclusion } from "./ExperimentsPatchExperimentV2ResponseDataAttributesConclusion"; +import { ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfiguration } from "./ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfiguration"; +import { ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPoint } from "./ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPoint"; +import { ExperimentsPatchExperimentV2ResponseDataAttributesTrafficExposure } from "./ExperimentsPatchExperimentV2ResponseDataAttributesTrafficExposure"; +import { ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfiguration } from "./ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfiguration"; +import { ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPoint } from "./ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPoint"; +import { ExperimentsPatchMetricCollectionV2Request } from "./ExperimentsPatchMetricCollectionV2Request"; +import { ExperimentsPatchMetricCollectionV2RequestData } from "./ExperimentsPatchMetricCollectionV2RequestData"; +import { ExperimentsPatchMetricCollectionV2RequestDataAttributes } from "./ExperimentsPatchMetricCollectionV2RequestDataAttributes"; +import { ExperimentsPatchSubjectTypeV2Request } from "./ExperimentsPatchSubjectTypeV2Request"; +import { ExperimentsPatchSubjectTypeV2RequestData } from "./ExperimentsPatchSubjectTypeV2RequestData"; +import { ExperimentsPatchSubjectTypeV2RequestDataAttributes } from "./ExperimentsPatchSubjectTypeV2RequestDataAttributes"; +import { ExperimentsPropertyFilterInput } from "./ExperimentsPropertyFilterInput"; +import { ExperimentsPropertyNullFilterInput } from "./ExperimentsPropertyNullFilterInput"; +import { ExperimentsPublicProtocolListResponseArray } from "./ExperimentsPublicProtocolListResponseArray"; +import { ExperimentsPublicProtocolListResponseData } from "./ExperimentsPublicProtocolListResponseData"; +import { ExperimentsPublicProtocolListResponseDataAttributes } from "./ExperimentsPublicProtocolListResponseDataAttributes"; +import { ExperimentsPublicProtocolResponse } from "./ExperimentsPublicProtocolResponse"; +import { ExperimentsPublicProtocolResponseData } from "./ExperimentsPublicProtocolResponseData"; +import { ExperimentsPublicProtocolResponseDataAttributes } from "./ExperimentsPublicProtocolResponseDataAttributes"; +import { ExperimentsPublicProtocolResponseDataAttributesAnalysisPlan } from "./ExperimentsPublicProtocolResponseDataAttributesAnalysisPlan"; +import { ExperimentsPublicProtocolResponseDataAttributesAssignmentSourceDefaultPropertiesItems } from "./ExperimentsPublicProtocolResponseDataAttributesAssignmentSourceDefaultPropertiesItems"; +import { ExperimentsPublicProtocolResponseDataAttributesEnforcement } from "./ExperimentsPublicProtocolResponseDataAttributesEnforcement"; +import { ExperimentsPublicProtocolResponseDataAttributesExposureSchedule } from "./ExperimentsPublicProtocolResponseDataAttributesExposureSchedule"; +import { ExperimentsPublicProtocolResponseDataAttributesExposureScheduleRolloutStepsItems } from "./ExperimentsPublicProtocolResponseDataAttributesExposureScheduleRolloutStepsItems"; +import { ExperimentsPublicProtocolResponseDataAttributesMetricGroupsItems } from "./ExperimentsPublicProtocolResponseDataAttributesMetricGroupsItems"; +import { ExperimentsPublicProtocolResponseDataAttributesSubjectType } from "./ExperimentsPublicProtocolResponseDataAttributesSubjectType"; +import { ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItems } from "./ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItems"; +import { ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItemsConditionsItems } from "./ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItemsConditionsItems"; +import { ExperimentsRefreshExperimentResultsBatchMetaV2DTO } from "./ExperimentsRefreshExperimentResultsBatchMetaV2DTO"; +import { ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItems } from "./ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItems"; +import { ExperimentsRefreshExperimentResultsV2DTO } from "./ExperimentsRefreshExperimentResultsV2DTO"; +import { ExperimentsRefreshExperimentResultsV2DTOArray } from "./ExperimentsRefreshExperimentResultsV2DTOArray"; +import { ExperimentsRefreshExperimentResultsV2DTOData } from "./ExperimentsRefreshExperimentResultsV2DTOData"; +import { ExperimentsRefreshExperimentResultsV2DTODataAttributes } from "./ExperimentsRefreshExperimentResultsV2DTODataAttributes"; +import { ExperimentsSQLModelPropertyInput } from "./ExperimentsSQLModelPropertyInput"; +import { ExperimentsSavedFilterCondition } from "./ExperimentsSavedFilterCondition"; +import { ExperimentsStartExperimentV2Request } from "./ExperimentsStartExperimentV2Request"; +import { ExperimentsStartExperimentV2RequestData } from "./ExperimentsStartExperimentV2RequestData"; +import { ExperimentsStructuredMetadataResponse } from "./ExperimentsStructuredMetadataResponse"; +import { ExperimentsSubjectTypeV2DTO } from "./ExperimentsSubjectTypeV2DTO"; +import { ExperimentsSubjectTypeV2DTOArray } from "./ExperimentsSubjectTypeV2DTOArray"; +import { ExperimentsSubjectTypeV2DTOData } from "./ExperimentsSubjectTypeV2DTOData"; +import { ExperimentsSubjectTypeV2DTODataAttributes } from "./ExperimentsSubjectTypeV2DTODataAttributes"; +import { ExperimentsTrafficSummaryV2DTO } from "./ExperimentsTrafficSummaryV2DTO"; +import { ExperimentsTrafficSummaryV2DTOData } from "./ExperimentsTrafficSummaryV2DTOData"; +import { ExperimentsTrafficSummaryV2DTODataAttributes } from "./ExperimentsTrafficSummaryV2DTODataAttributes"; +import { ExperimentsTrafficSummaryV2DTODataAttributesVariantsItems } from "./ExperimentsTrafficSummaryV2DTODataAttributesVariantsItems"; +import { ExperimentsUpdateExposureSQLModelV2RequestDataAttributes } from "./ExperimentsUpdateExposureSQLModelV2RequestDataAttributes"; +import { ExperimentsUpdateExposureSQLModelV2Response } from "./ExperimentsUpdateExposureSQLModelV2Response"; +import { ExperimentsUpdateExposureSQLModelV2ResponseMeta } from "./ExperimentsUpdateExposureSQLModelV2ResponseMeta"; +import { ExperimentsUpdateMetricSQLModelV2RequestDataAttributes } from "./ExperimentsUpdateMetricSQLModelV2RequestDataAttributes"; +import { ExperimentsUpdateMetricSQLModelV2Response } from "./ExperimentsUpdateMetricSQLModelV2Response"; +import { ExperimentsUpdateMetricSQLModelV2ResponseMeta } from "./ExperimentsUpdateMetricSQLModelV2ResponseMeta"; +import { ExperimentsUpdateMetricV2Request } from "./ExperimentsUpdateMetricV2Request"; +import { ExperimentsUpdateMetricV2RequestData } from "./ExperimentsUpdateMetricV2RequestData"; +import { ExperimentsUpdateMetricV2RequestDataAttributes } from "./ExperimentsUpdateMetricV2RequestDataAttributes"; +import { ExperimentsVariantResultsV2DTOArray } from "./ExperimentsVariantResultsV2DTOArray"; +import { ExperimentsVariantResultsV2DTOData } from "./ExperimentsVariantResultsV2DTOData"; +import { ExperimentsVariantResultsV2DTODataAttributes } from "./ExperimentsVariantResultsV2DTODataAttributes"; +import { ExperimentsVariantResultsV2DTODataAttributesMetricsItems } from "./ExperimentsVariantResultsV2DTODataAttributesMetricsItems"; +import { ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItems } from "./ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItems"; +import { ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsConfidenceInterval } from "./ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsConfidenceInterval"; +import { ExperimentsVariantResultsV2DTODataAttributesMetricsItemsCoverageSummary } from "./ExperimentsVariantResultsV2DTODataAttributesMetricsItemsCoverageSummary"; +import { ExperimentsWarehouseExposureFilter } from "./ExperimentsWarehouseExposureFilter"; +import { ExperimentsWarehouseMetricAggregationInput } from "./ExperimentsWarehouseMetricAggregationInput"; +import { ExperimentsWarehousePercentileAggregationInput } from "./ExperimentsWarehousePercentileAggregationInput"; import { ExposureRolloutStepRequest } from "./ExposureRolloutStepRequest"; import { ExposureScheduleRequest } from "./ExposureScheduleRequest"; import { FacetInfoRequest } from "./FacetInfoRequest"; @@ -1870,6 +2055,9 @@ import { FeatureFlagEnvironmentListItem } from "./FeatureFlagEnvironmentListItem import { FeatureFlagListItem } from "./FeatureFlagListItem"; import { FeatureFlagListItemAttributes } from "./FeatureFlagListItemAttributes"; import { FeatureFlagResponse } from "./FeatureFlagResponse"; +import { FeatureFlagStalenessCodeReference } from "./FeatureFlagStalenessCodeReference"; +import { FeatureFlagStalenessDetails } from "./FeatureFlagStalenessDetails"; +import { FeatureFlagStalenessRecommendedAction } from "./FeatureFlagStalenessRecommendedAction"; import { FeatureFlagsPaginationMeta } from "./FeatureFlagsPaginationMeta"; import { FeatureFlagsPaginationMetaPage } from "./FeatureFlagsPaginationMetaPage"; import { FileCoverageLines } from "./FileCoverageLines"; @@ -7123,6 +7311,226 @@ const enumsMap: { [key: string]: any[] } = { ], ExecutionPolicyRemoteActionRshellAccess: ["read_only", "read_write"], ExecutionPolicyType: ["execution_policy"], + ExperimentsAnalysisPlanV2DTODataAttributesConfidenceIntervalMethod: [ + "Sequential", + "FixedSample", + "Bayesian", + "SequentialFixedHybrid", + ], + ExperimentsAnalysisPlanWriteV2RequestDataType: ["analysis-plans"], + ExperimentsCancelExperimentV2RequestDataType: ["cancel-experiment-request"], + ExperimentsConcludeExperimentV2RequestDataType: [ + "conclude-experiment-request", + ], + ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureMode: [ + "STATIC", + "STEPS", + ], + ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType: [ + "STRING", + "INTEGER", + "FLOAT", + "BOOLEAN", + "DATE", + "TIMESTAMP", + ], + ExperimentsCreateMetricV2RequestDataAttributesDataSourceType: [ + "DATADOG", + "DATADOG_REFERENCE_TABLE", + "CUSTOMER_WAREHOUSE", + ], + ExperimentsCreateMetricV2RequestDataAttributesDesiredChange: [ + "METRIC_INCREASES", + "METRIC_DECREASES", + ], + ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsSkippedReason: + [ + "NO_ASSIGNMENTS", + "NO_DIMENSIONAL_DATA", + "NO_METRIC_DATA", + "ZERO_VARIANCE", + ], + ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsStatus: [ + "PASS", + "FAIL", + "WARN", + "ERROR", + "SKIPPED", + ], + ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItemsType: [ + "EXPERIMENT_HAS_ASSIGNMENTS", + "METRIC_HAS_DATA", + "ASSIGNMENT_IMBALANCE", + "METRIC_WINSORIZE_ZERO", + "PRE_EXPERIMENT_IMBALANCE", + "MIXED_ASSIGNMENTS", + "DIMENSIONAL_ASSIGNMENT_IMBALANCE", + "FLAG_HAS_EVALUATIONS", + "IMPLAUSIBLE_PRIOR", + "DIMENSIONAL_DEGRADATION", + "PIPELINE_STATUS", + "MAPPED_ANALYSIS_CONFIGURATION", + "MAPPED_ANALYSIS_COVERAGE", + "MAPPED_ANALYSIS_COLLISIONS", + "MAPPED_ANALYSIS_FANOUT", + "MAPPED_ANALYSIS_CHANGE", + ], + ExperimentsExperimentDiagnosticsV2DTODataAttributesResult: [ + "PASS", + "FAIL", + "WARN", + "NO_DATA", + ], + ExperimentsExperimentDiagnosticsV2DTODataAttributesState: [ + "NOT_STARTED", + "RUNNING", + "COMPLETED", + "FAILED", + ], + ExperimentsExperimentDiagnosticsV2DTODataType: ["experiment-diagnostics"], + ExperimentsExperimentV2DTODataAttributesConclusionOutcome: [ + "POSITIVE", + "NEGATIVE", + "NEUTRAL", + "INCONCLUSIVE", + "MISCONFIGURED", + "UNKNOWN", + ], + ExperimentsExperimentV2DTODataAttributesStatus: [ + "DRAFT", + "SCHEDULED", + "IN_PROGRESS", + "READY_FOR_DECISION", + "DECISION_MADE", + "CANCELLED", + "UNKNOWN", + ], + ExperimentsMeasureComparisonFilterInputOperation: [ + "=", + "!=", + ">", + ">=", + "<", + "<=", + ], + ExperimentsMeasureRangeFilterInputOperation: ["BETWEEN"], + ExperimentsMetricV2DTODataAttributesDataSourceType: [ + "DATADOG", + "DATADOG_REFERENCE_TABLE", + "CUSTOMER_WAREHOUSE", + "IMPORTED", + "UNKNOWN", + ], + ExperimentsMetricV2DTODataAttributesDesiredChange: [ + "METRIC_INCREASES", + "METRIC_DECREASES", + "UNKNOWN", + ], + ExperimentsMetricV2DTODataAttributesMetricType: [ + "SIMPLE", + "RATIO", + "PERCENTILE", + "UNKNOWN", + ], + ExperimentsPatchExperimentMetricGroupV2RequestDataType: [ + "experiment-metric-groups", + ], + ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsColumnType: + [ + "varchar", + "int", + "double", + "boolean", + "varchar_array", + "int_array", + "double_array", + "raw", + ], + ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPointFiltersItemsItemsOperation: + ["eq", "in", "neq", "not_in", "gte", "lte", "gt", "lt"], + ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationTargetingRulesItemsConditionsItemsOperator: + [ + "LT", + "LTE", + "GT", + "GTE", + "MATCHES", + "NOT_MATCHES", + "ONE_OF", + "NOT_ONE_OF", + "IS_NULL", + "EQUALS", + "SEMVER_EQ", + "SEMVER_NEQ", + "SEMVER_LT", + "SEMVER_LTE", + "SEMVER_GT", + "SEMVER_GTE", + ], + ExperimentsPatchExperimentV2ResponseDataAttributesSplitByPropertiesItemsColumnType: + [ + "varchar", + "int", + "double", + "boolean", + "varchar_array", + "int_array", + "double_array", + "raw", + "STRING", + "INTEGER", + "FLOAT", + "BOOLEAN", + "DATE", + "TIMESTAMP", + ], + ExperimentsPatchExperimentV2ResponseDataAttributesStructuredMetadataItemsFieldType: + ["FREETEXT", "ENUM"], + ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPointFiltersItemsOperation: + ["IS", "IS_NOT"], + ExperimentsPatchExperimentV2ResponseDataType: ["experiments"], + ExperimentsPatchMetricCollectionV2RequestDataType: ["metric-collections"], + ExperimentsPropertyNullFilterInputOperation: ["IS_NULL", "IS_NOT_NULL"], + ExperimentsPublicProtocolResponseDataAttributesStatus: [ + "DRAFT", + "PUBLISHED", + "ARCHIVED", + ], + ExperimentsPublicProtocolResponseDataType: ["protocols"], + ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItemsOutcome: [ + "TRIGGERED", + "SKIPPED_ALREADY_RUNNING", + "SKIPPED_NOT_EDITABLE", + "SKIPPED_ORG_AT_CAPACITY", + "FAILED", + ], + ExperimentsRefreshExperimentResultsV2DTODataType: [ + "experiment-results-refresh", + ], + ExperimentsStartExperimentV2RequestDataType: ["start-experiment-request"], + ExperimentsSubjectTypeV2DTODataType: ["subject-types"], + ExperimentsTrafficSummaryV2DTODataType: ["traffic-summary"], + ExperimentsUpdateExposureSQLModelV2RequestDataType: ["exposure-sql-models"], + ExperimentsUpdateMetricSQLModelV2RequestDataType: ["metric-sql-models"], + ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsLiftType: + ["RELATIVE", "ABSOLUTE", "UNKNOWN"], + ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsMethod: [ + "FIXED_SAMPLE", + "BAYESIAN", + "SEQUENTIAL", + "SEQUENTIAL_FIXED_HYBRID", + "UNKNOWN", + ], + ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsUnreliableReason: + [ + "CONTROL_DENOMINATOR_NEAR_ZERO", + "TREATMENT_DENOMINATOR_NEAR_ZERO", + "CONTROL_AND_TREATMENT_DENOMINATORS_NEAR_ZERO", + "CONTROL_MEAN_NEAR_ZERO", + "ZERO_VARIANCE", + "UNKNOWN", + ], + ExperimentsVariantResultsV2DTODataType: ["experiment-variant-results"], FacetInfoRequestDataType: ["users_facet_info_request"], FacetInfoResponseDataType: ["users_facet_info"], FastlyAPIKeyType: ["FastlyAPIKey"], @@ -11824,6 +12232,318 @@ const typeMap: { [index: string]: any } = { ExecutionPolicyUpdateRequest: ExecutionPolicyUpdateRequest, ExecutionPolicyUpdateRequestData: ExecutionPolicyUpdateRequestData, ExecutionPolicyWriteAttributes: ExecutionPolicyWriteAttributes, + ExperimentsAnalysisPlanV2DTO: ExperimentsAnalysisPlanV2DTO, + ExperimentsAnalysisPlanV2DTOData: ExperimentsAnalysisPlanV2DTOData, + ExperimentsAnalysisPlanV2MutationResponse: + ExperimentsAnalysisPlanV2MutationResponse, + ExperimentsAnalysisPlanV2MutationResponseDataAttributes: + ExperimentsAnalysisPlanV2MutationResponseDataAttributes, + ExperimentsAnalysisPlanV2MutationResponseDataAttributesBayesianPrior: + ExperimentsAnalysisPlanV2MutationResponseDataAttributesBayesianPrior, + ExperimentsAnalysisPlanWriteV2Request: ExperimentsAnalysisPlanWriteV2Request, + ExperimentsAnalysisPlanWriteV2RequestData: + ExperimentsAnalysisPlanWriteV2RequestData, + ExperimentsAnalysisPlanWriteV2RequestDataAttributes: + ExperimentsAnalysisPlanWriteV2RequestDataAttributes, + ExperimentsAnalysisPlanWriteV2RequestDataAttributesBayesianPrior: + ExperimentsAnalysisPlanWriteV2RequestDataAttributesBayesianPrior, + ExperimentsCancelExperimentV2Request: ExperimentsCancelExperimentV2Request, + ExperimentsCancelExperimentV2RequestData: + ExperimentsCancelExperimentV2RequestData, + ExperimentsCancelExperimentV2RequestDataAttributes: + ExperimentsCancelExperimentV2RequestDataAttributes, + ExperimentsConcludeExperimentV2Request: + ExperimentsConcludeExperimentV2Request, + ExperimentsConcludeExperimentV2RequestData: + ExperimentsConcludeExperimentV2RequestData, + ExperimentsConcludeExperimentV2RequestDataAttributes: + ExperimentsConcludeExperimentV2RequestDataAttributes, + ExperimentsCreateExperimentMetricGroupV2Request: + ExperimentsCreateExperimentMetricGroupV2Request, + ExperimentsCreateExperimentMetricGroupV2RequestData: + ExperimentsCreateExperimentMetricGroupV2RequestData, + ExperimentsCreateExperimentMetricGroupV2RequestDataAttributes: + ExperimentsCreateExperimentMetricGroupV2RequestDataAttributes, + ExperimentsCreateExperimentMetricGroupV2RequestDataAttributesMetricsItems: + ExperimentsCreateExperimentMetricGroupV2RequestDataAttributesMetricsItems, + ExperimentsCreateExperimentV2Request: ExperimentsCreateExperimentV2Request, + ExperimentsCreateExperimentV2RequestData: + ExperimentsCreateExperimentV2RequestData, + ExperimentsCreateExperimentV2RequestDataAttributes: + ExperimentsCreateExperimentV2RequestDataAttributes, + ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfiguration: + ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfiguration, + ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfigurationTargetingRulesItems: + ExperimentsCreateExperimentV2RequestDataAttributesDatadogFlagConfigurationTargetingRulesItems, + ExperimentsCreateExperimentV2RequestDataAttributesDecisionMetricsItems: + ExperimentsCreateExperimentV2RequestDataAttributesDecisionMetricsItems, + ExperimentsCreateExperimentV2RequestDataAttributesRelatedLinksItems: + ExperimentsCreateExperimentV2RequestDataAttributesRelatedLinksItems, + ExperimentsCreateExperimentV2RequestDataAttributesSplitByPropertiesItems: + ExperimentsCreateExperimentV2RequestDataAttributesSplitByPropertiesItems, + ExperimentsCreateExperimentV2RequestDataAttributesStructuredMetadataItems: + ExperimentsCreateExperimentV2RequestDataAttributesStructuredMetadataItems, + ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureStepsItems: + ExperimentsCreateExperimentV2RequestDataAttributesTrafficExposureStepsItems, + ExperimentsCreateExperimentV2RequestDataAttributesVariantsItems: + ExperimentsCreateExperimentV2RequestDataAttributesVariantsItems, + ExperimentsCreateExperimentV2RequestDataAttributesWarehouseExposureConfiguration: + ExperimentsCreateExperimentV2RequestDataAttributesWarehouseExposureConfiguration, + ExperimentsCreateExposureSQLModelV2Request: + ExperimentsCreateExposureSQLModelV2Request, + ExperimentsCreateExposureSQLModelV2RequestData: + ExperimentsCreateExposureSQLModelV2RequestData, + ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems: + ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems, + ExperimentsCreateMetricCollectionV2Request: + ExperimentsCreateMetricCollectionV2Request, + ExperimentsCreateMetricCollectionV2RequestData: + ExperimentsCreateMetricCollectionV2RequestData, + ExperimentsCreateMetricCollectionV2RequestDataAttributes: + ExperimentsCreateMetricCollectionV2RequestDataAttributes, + ExperimentsCreateMetricCollectionV2RequestDataAttributesMetricsItems: + ExperimentsCreateMetricCollectionV2RequestDataAttributesMetricsItems, + ExperimentsCreateMetricNumeratorAttributes: + ExperimentsCreateMetricNumeratorAttributes, + ExperimentsCreateMetricPercentileAttributes: + ExperimentsCreateMetricPercentileAttributes, + ExperimentsCreateMetricSQLModelV2Request: + ExperimentsCreateMetricSQLModelV2Request, + ExperimentsCreateMetricSQLModelV2RequestData: + ExperimentsCreateMetricSQLModelV2RequestData, + ExperimentsCreateMetricSQLModelV2RequestDataAttributesMeasuresItems: + ExperimentsCreateMetricSQLModelV2RequestDataAttributesMeasuresItems, + ExperimentsCreateMetricV2Request: ExperimentsCreateMetricV2Request, + ExperimentsCreateMetricV2RequestData: ExperimentsCreateMetricV2RequestData, + ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregationWarehouseMetricMeasure: + ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregationWarehouseMetricMeasure, + ExperimentsCreateSubjectTypeV2Request: ExperimentsCreateSubjectTypeV2Request, + ExperimentsCreateSubjectTypeV2RequestData: + ExperimentsCreateSubjectTypeV2RequestData, + ExperimentsCreateSubjectTypeV2RequestDataAttributes: + ExperimentsCreateSubjectTypeV2RequestDataAttributes, + ExperimentsDatadogEntryPointFilter: ExperimentsDatadogEntryPointFilter, + ExperimentsDatadogMetricAggregationInput: + ExperimentsDatadogMetricAggregationInput, + ExperimentsDatadogMetricMeasureInput: ExperimentsDatadogMetricMeasureInput, + ExperimentsDatadogPercentileAggregationInput: + ExperimentsDatadogPercentileAggregationInput, + ExperimentsDatadogPercentileMeasureInput: + ExperimentsDatadogPercentileMeasureInput, + ExperimentsExperimentDiagnosticsV2DTO: ExperimentsExperimentDiagnosticsV2DTO, + ExperimentsExperimentDiagnosticsV2DTOData: + ExperimentsExperimentDiagnosticsV2DTOData, + ExperimentsExperimentDiagnosticsV2DTODataAttributes: + ExperimentsExperimentDiagnosticsV2DTODataAttributes, + ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItems: + ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItems, + ExperimentsExperimentMetricGroupMutationV2: + ExperimentsExperimentMetricGroupMutationV2, + ExperimentsExperimentMetricGroupMutationV2Data: + ExperimentsExperimentMetricGroupMutationV2Data, + ExperimentsExperimentMetricGroupMutationV2DataAttributesMetricsItems: + ExperimentsExperimentMetricGroupMutationV2DataAttributesMetricsItems, + ExperimentsExperimentMetricGroupV2DTOArray: + ExperimentsExperimentMetricGroupV2DTOArray, + ExperimentsExperimentMetricGroupV2DTODataAttributes: + ExperimentsExperimentMetricGroupV2DTODataAttributes, + ExperimentsExperimentResultsV2MetaDTO: ExperimentsExperimentResultsV2MetaDTO, + ExperimentsExperimentV2DTO: ExperimentsExperimentV2DTO, + ExperimentsExperimentV2DTOData: ExperimentsExperimentV2DTOData, + ExperimentsExperimentV2DTODataAttributesSplitByPropertiesItems: + ExperimentsExperimentV2DTODataAttributesSplitByPropertiesItems, + ExperimentsExperimentV2DTODataAttributesVariantsItems: + ExperimentsExperimentV2DTODataAttributesVariantsItems, + ExperimentsExperimentV2ListDTOArray: ExperimentsExperimentV2ListDTOArray, + ExperimentsExperimentV2ListDTOData: ExperimentsExperimentV2ListDTOData, + ExperimentsExperimentV2ListDTODataAttributes: + ExperimentsExperimentV2ListDTODataAttributes, + ExperimentsExposureSQLModelV2DTO: ExperimentsExposureSQLModelV2DTO, + ExperimentsExposureSQLModelV2DTOArray: ExperimentsExposureSQLModelV2DTOArray, + ExperimentsExposureSQLModelV2DTOData: ExperimentsExposureSQLModelV2DTOData, + ExperimentsExposureSQLModelV2DTODataAttributes: + ExperimentsExposureSQLModelV2DTODataAttributes, + ExperimentsExposureSQLModelV2DTODataAttributesItems: + ExperimentsExposureSQLModelV2DTODataAttributesItems, + ExperimentsInlineCondition: ExperimentsInlineCondition, + ExperimentsMeasureComparisonFilterInput: + ExperimentsMeasureComparisonFilterInput, + ExperimentsMeasureNullFilterInput: ExperimentsMeasureNullFilterInput, + ExperimentsMeasureRangeFilterInput: ExperimentsMeasureRangeFilterInput, + ExperimentsMetricCollectionV2DTO: ExperimentsMetricCollectionV2DTO, + ExperimentsMetricCollectionV2DTOArray: ExperimentsMetricCollectionV2DTOArray, + ExperimentsMetricCollectionV2DTOData: ExperimentsMetricCollectionV2DTOData, + ExperimentsMetricCollectionV2DTODataAttributes: + ExperimentsMetricCollectionV2DTODataAttributes, + ExperimentsMetricCollectionV2DTODataAttributesMetricsItems: + ExperimentsMetricCollectionV2DTODataAttributesMetricsItems, + ExperimentsMetricPropertyFilter: ExperimentsMetricPropertyFilter, + ExperimentsMetricSQLModelPropertyInput: + ExperimentsMetricSQLModelPropertyInput, + ExperimentsMetricSQLModelV2DTO: ExperimentsMetricSQLModelV2DTO, + ExperimentsMetricSQLModelV2DTOArray: ExperimentsMetricSQLModelV2DTOArray, + ExperimentsMetricSQLModelV2DTOData: ExperimentsMetricSQLModelV2DTOData, + ExperimentsMetricSQLModelV2DTODataAttributes: + ExperimentsMetricSQLModelV2DTODataAttributes, + ExperimentsMetricSQLModelV2DTODataAttributesMeasuresItems: + ExperimentsMetricSQLModelV2DTODataAttributesMeasuresItems, + ExperimentsMetricSQLModelV2DTODataAttributesSubjectTypesItems: + ExperimentsMetricSQLModelV2DTODataAttributesSubjectTypesItems, + ExperimentsMetricV2DTO: ExperimentsMetricV2DTO, + ExperimentsMetricV2DTOArray: ExperimentsMetricV2DTOArray, + ExperimentsMetricV2DTOData: ExperimentsMetricV2DTOData, + ExperimentsMetricV2DTODataAttributes: ExperimentsMetricV2DTODataAttributes, + ExperimentsMetricV2DTODataAttributesNumeratorAggregation: + ExperimentsMetricV2DTODataAttributesNumeratorAggregation, + ExperimentsMetricV2DTODataAttributesPercentileAggregation: + ExperimentsMetricV2DTODataAttributesPercentileAggregation, + ExperimentsMetricV2DTODataAttributesPercentileAggregationDatadogMetricMeasure: + ExperimentsMetricV2DTODataAttributesPercentileAggregationDatadogMetricMeasure, + ExperimentsMetricV2DTODataAttributesPercentileAggregationWarehouseMetricMeasure: + ExperimentsMetricV2DTODataAttributesPercentileAggregationWarehouseMetricMeasure, + ExperimentsNullableDatadogMetricMeasureInput: + ExperimentsNullableDatadogMetricMeasureInput, + ExperimentsNullableDatadogPercentileMeasureInput: + ExperimentsNullableDatadogPercentileMeasureInput, + ExperimentsNullableWarehouseMetricMeasureInput: + ExperimentsNullableWarehouseMetricMeasureInput, + ExperimentsOffsetLinks: ExperimentsOffsetLinks, + ExperimentsOffsetMeta: ExperimentsOffsetMeta, + ExperimentsOffsetMetaPage: ExperimentsOffsetMetaPage, + ExperimentsPatchExperimentMetricGroupV2Request: + ExperimentsPatchExperimentMetricGroupV2Request, + ExperimentsPatchExperimentMetricGroupV2RequestData: + ExperimentsPatchExperimentMetricGroupV2RequestData, + ExperimentsPatchExperimentMetricGroupV2RequestDataAttributes: + ExperimentsPatchExperimentMetricGroupV2RequestDataAttributes, + ExperimentsPatchExperimentV2MetaDTO: ExperimentsPatchExperimentV2MetaDTO, + ExperimentsPatchExperimentV2MetaDTOWarningsItems: + ExperimentsPatchExperimentV2MetaDTOWarningsItems, + ExperimentsPatchExperimentV2Request: ExperimentsPatchExperimentV2Request, + ExperimentsPatchExperimentV2RequestData: + ExperimentsPatchExperimentV2RequestData, + ExperimentsPatchExperimentV2RequestDataAttributes: + ExperimentsPatchExperimentV2RequestDataAttributes, + ExperimentsPatchExperimentV2RequestDataAttributesDatadogFlagConfiguration: + ExperimentsPatchExperimentV2RequestDataAttributesDatadogFlagConfiguration, + ExperimentsPatchExperimentV2Response: ExperimentsPatchExperimentV2Response, + ExperimentsPatchExperimentV2ResponseDataAttributes: + ExperimentsPatchExperimentV2ResponseDataAttributes, + ExperimentsPatchExperimentV2ResponseDataAttributesConclusion: + ExperimentsPatchExperimentV2ResponseDataAttributesConclusion, + ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfiguration: + ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfiguration, + ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPoint: + ExperimentsPatchExperimentV2ResponseDataAttributesDatadogFlagConfigurationEntryPoint, + ExperimentsPatchExperimentV2ResponseDataAttributesTrafficExposure: + ExperimentsPatchExperimentV2ResponseDataAttributesTrafficExposure, + ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfiguration: + ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfiguration, + ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPoint: + ExperimentsPatchExperimentV2ResponseDataAttributesWarehouseExposureConfigurationEntryPoint, + ExperimentsPatchMetricCollectionV2Request: + ExperimentsPatchMetricCollectionV2Request, + ExperimentsPatchMetricCollectionV2RequestData: + ExperimentsPatchMetricCollectionV2RequestData, + ExperimentsPatchMetricCollectionV2RequestDataAttributes: + ExperimentsPatchMetricCollectionV2RequestDataAttributes, + ExperimentsPatchSubjectTypeV2Request: ExperimentsPatchSubjectTypeV2Request, + ExperimentsPatchSubjectTypeV2RequestData: + ExperimentsPatchSubjectTypeV2RequestData, + ExperimentsPatchSubjectTypeV2RequestDataAttributes: + ExperimentsPatchSubjectTypeV2RequestDataAttributes, + ExperimentsPropertyFilterInput: ExperimentsPropertyFilterInput, + ExperimentsPropertyNullFilterInput: ExperimentsPropertyNullFilterInput, + ExperimentsPublicProtocolListResponseArray: + ExperimentsPublicProtocolListResponseArray, + ExperimentsPublicProtocolListResponseData: + ExperimentsPublicProtocolListResponseData, + ExperimentsPublicProtocolListResponseDataAttributes: + ExperimentsPublicProtocolListResponseDataAttributes, + ExperimentsPublicProtocolResponse: ExperimentsPublicProtocolResponse, + ExperimentsPublicProtocolResponseData: ExperimentsPublicProtocolResponseData, + ExperimentsPublicProtocolResponseDataAttributes: + ExperimentsPublicProtocolResponseDataAttributes, + ExperimentsPublicProtocolResponseDataAttributesAnalysisPlan: + ExperimentsPublicProtocolResponseDataAttributesAnalysisPlan, + ExperimentsPublicProtocolResponseDataAttributesAssignmentSourceDefaultPropertiesItems: + ExperimentsPublicProtocolResponseDataAttributesAssignmentSourceDefaultPropertiesItems, + ExperimentsPublicProtocolResponseDataAttributesEnforcement: + ExperimentsPublicProtocolResponseDataAttributesEnforcement, + ExperimentsPublicProtocolResponseDataAttributesExposureSchedule: + ExperimentsPublicProtocolResponseDataAttributesExposureSchedule, + ExperimentsPublicProtocolResponseDataAttributesExposureScheduleRolloutStepsItems: + ExperimentsPublicProtocolResponseDataAttributesExposureScheduleRolloutStepsItems, + ExperimentsPublicProtocolResponseDataAttributesMetricGroupsItems: + ExperimentsPublicProtocolResponseDataAttributesMetricGroupsItems, + ExperimentsPublicProtocolResponseDataAttributesSubjectType: + ExperimentsPublicProtocolResponseDataAttributesSubjectType, + ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItems: + ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItems, + ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItemsConditionsItems: + ExperimentsPublicProtocolResponseDataAttributesTargetingRulesItemsConditionsItems, + ExperimentsRefreshExperimentResultsBatchMetaV2DTO: + ExperimentsRefreshExperimentResultsBatchMetaV2DTO, + ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItems: + ExperimentsRefreshExperimentResultsBatchMetaV2DTOResultsItems, + ExperimentsRefreshExperimentResultsV2DTO: + ExperimentsRefreshExperimentResultsV2DTO, + ExperimentsRefreshExperimentResultsV2DTOArray: + ExperimentsRefreshExperimentResultsV2DTOArray, + ExperimentsRefreshExperimentResultsV2DTOData: + ExperimentsRefreshExperimentResultsV2DTOData, + ExperimentsRefreshExperimentResultsV2DTODataAttributes: + ExperimentsRefreshExperimentResultsV2DTODataAttributes, + ExperimentsSQLModelPropertyInput: ExperimentsSQLModelPropertyInput, + ExperimentsSavedFilterCondition: ExperimentsSavedFilterCondition, + ExperimentsStartExperimentV2Request: ExperimentsStartExperimentV2Request, + ExperimentsStartExperimentV2RequestData: + ExperimentsStartExperimentV2RequestData, + ExperimentsStructuredMetadataResponse: ExperimentsStructuredMetadataResponse, + ExperimentsSubjectTypeV2DTO: ExperimentsSubjectTypeV2DTO, + ExperimentsSubjectTypeV2DTOArray: ExperimentsSubjectTypeV2DTOArray, + ExperimentsSubjectTypeV2DTOData: ExperimentsSubjectTypeV2DTOData, + ExperimentsSubjectTypeV2DTODataAttributes: + ExperimentsSubjectTypeV2DTODataAttributes, + ExperimentsTrafficSummaryV2DTO: ExperimentsTrafficSummaryV2DTO, + ExperimentsTrafficSummaryV2DTOData: ExperimentsTrafficSummaryV2DTOData, + ExperimentsTrafficSummaryV2DTODataAttributes: + ExperimentsTrafficSummaryV2DTODataAttributes, + ExperimentsTrafficSummaryV2DTODataAttributesVariantsItems: + ExperimentsTrafficSummaryV2DTODataAttributesVariantsItems, + ExperimentsUpdateExposureSQLModelV2RequestDataAttributes: + ExperimentsUpdateExposureSQLModelV2RequestDataAttributes, + ExperimentsUpdateExposureSQLModelV2Response: + ExperimentsUpdateExposureSQLModelV2Response, + ExperimentsUpdateExposureSQLModelV2ResponseMeta: + ExperimentsUpdateExposureSQLModelV2ResponseMeta, + ExperimentsUpdateMetricSQLModelV2RequestDataAttributes: + ExperimentsUpdateMetricSQLModelV2RequestDataAttributes, + ExperimentsUpdateMetricSQLModelV2Response: + ExperimentsUpdateMetricSQLModelV2Response, + ExperimentsUpdateMetricSQLModelV2ResponseMeta: + ExperimentsUpdateMetricSQLModelV2ResponseMeta, + ExperimentsUpdateMetricV2Request: ExperimentsUpdateMetricV2Request, + ExperimentsUpdateMetricV2RequestData: ExperimentsUpdateMetricV2RequestData, + ExperimentsUpdateMetricV2RequestDataAttributes: + ExperimentsUpdateMetricV2RequestDataAttributes, + ExperimentsVariantResultsV2DTOArray: ExperimentsVariantResultsV2DTOArray, + ExperimentsVariantResultsV2DTOData: ExperimentsVariantResultsV2DTOData, + ExperimentsVariantResultsV2DTODataAttributes: + ExperimentsVariantResultsV2DTODataAttributes, + ExperimentsVariantResultsV2DTODataAttributesMetricsItems: + ExperimentsVariantResultsV2DTODataAttributesMetricsItems, + ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItems: + ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItems, + ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsConfidenceInterval: + ExperimentsVariantResultsV2DTODataAttributesMetricsItemsAnalysesItemsConfidenceInterval, + ExperimentsVariantResultsV2DTODataAttributesMetricsItemsCoverageSummary: + ExperimentsVariantResultsV2DTODataAttributesMetricsItemsCoverageSummary, + ExperimentsWarehouseExposureFilter: ExperimentsWarehouseExposureFilter, + ExperimentsWarehouseMetricAggregationInput: + ExperimentsWarehouseMetricAggregationInput, + ExperimentsWarehousePercentileAggregationInput: + ExperimentsWarehousePercentileAggregationInput, ExposureRolloutStepRequest: ExposureRolloutStepRequest, ExposureScheduleRequest: ExposureScheduleRequest, FacetInfoRequest: FacetInfoRequest, @@ -11867,6 +12587,9 @@ const typeMap: { [index: string]: any } = { FeatureFlagListItem: FeatureFlagListItem, FeatureFlagListItemAttributes: FeatureFlagListItemAttributes, FeatureFlagResponse: FeatureFlagResponse, + FeatureFlagStalenessCodeReference: FeatureFlagStalenessCodeReference, + FeatureFlagStalenessDetails: FeatureFlagStalenessDetails, + FeatureFlagStalenessRecommendedAction: FeatureFlagStalenessRecommendedAction, FeatureFlagsPaginationMeta: FeatureFlagsPaginationMeta, FeatureFlagsPaginationMetaPage: FeatureFlagsPaginationMetaPage, FileCoverageLines: FileCoverageLines, @@ -17588,6 +18311,29 @@ const oneOfMap: { [index: string]: string[] } = { "ChangeEventCustomAttributes", "AlertEventCustomAttributes", ], + ExperimentsCreateMetricV2RequestDataAttributes: [ + "ExperimentsCreateMetricNumeratorAttributes", + "ExperimentsCreateMetricPercentileAttributes", + ], + ExperimentsCreateMetricV2RequestDataAttributesNumeratorAggregation: [ + "ExperimentsWarehouseMetricAggregationInput", + "ExperimentsDatadogMetricAggregationInput", + ], + ExperimentsCreateMetricV2RequestDataAttributesPercentileAggregation: [ + "ExperimentsWarehousePercentileAggregationInput", + "ExperimentsDatadogPercentileAggregationInput", + ], + ExperimentsTargetingRuleCondition: [ + "ExperimentsSavedFilterCondition", + "ExperimentsInlineCondition", + ], + ExperimentsWarehouseFilterInput: [ + "ExperimentsPropertyFilterInput", + "ExperimentsPropertyNullFilterInput", + "ExperimentsMeasureComparisonFilterInput", + "ExperimentsMeasureRangeFilterInput", + "ExperimentsMeasureNullFilterInput", + ], FastlyCredentials: ["FastlyAPIKey"], FastlyCredentialsUpdate: ["FastlyAPIKeyUpdate"], FreshserviceCredentials: ["FreshserviceAPIKey"],