Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions .generator/schemas/v2/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -142692,7 +142692,7 @@ paths:
- apiKeyAuth: []
summary: Send AI tool user activity
tags:
- AI Impact
- DORA Metrics
x-codegen-request-body-name: body
/api/v2/annotation:
get:
Expand Down Expand Up @@ -246906,9 +246906,6 @@ servers:
default: api
description: The subdomain where the API is deployed.
tags:
- description: |-
Send AI coding tool usage data to measure the impact of AI tools on software delivery.
name: AI Impact
- description: |-
Configure your API endpoints through the Datadog API.
name: API Management
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"""

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.ai_impact_api import AIImpactApi
from datadog_api_client.v2.api.dora_metrics_api import DORAMetricsApi
from datadog_api_client.v2.model.ai_impact_user_activity_attributes import AIImpactUserActivityAttributes
from datadog_api_client.v2.model.ai_impact_user_activity_data import AIImpactUserActivityData
from datadog_api_client.v2.model.ai_impact_user_activity_request import AIImpactUserActivityRequest
Expand Down Expand Up @@ -32,5 +32,5 @@

configuration = Configuration()
with ApiClient(configuration) as api_client:
api_instance = AIImpactApi(api_client)
api_instance = DORAMetricsApi(api_client)
api_instance.create_ai_impact_user_activity(body=body)
60 changes: 0 additions & 60 deletions src/datadog_api_client/v2/api/ai_impact_api.py

This file was deleted.

40 changes: 40 additions & 0 deletions src/datadog_api_client/v2/api/dora_metrics_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

from datadog_api_client.api_client import ApiClient, Endpoint as _Endpoint
from datadog_api_client.configuration import Configuration
from datadog_api_client.v2.model.ai_impact_user_activity_request import AIImpactUserActivityRequest
from datadog_api_client.v2.model.dora_deployment_response import DORADeploymentResponse
from datadog_api_client.v2.model.dora_deployment_request import DORADeploymentRequest
from datadog_api_client.v2.model.dora_deployment_patch_by_version_request import DORADeploymentPatchByVersionRequest
Expand All @@ -34,6 +35,26 @@ def __init__(self, api_client=None):
api_client = ApiClient(Configuration())
self.api_client = api_client

self._create_ai_impact_user_activity_endpoint = _Endpoint(
settings={
"response_type": None,
"auth": ["apiKeyAuth"],
"endpoint_path": "/api/v2/ai_impact/user_activity",
"operation_id": "create_ai_impact_user_activity",
"http_method": "POST",
"version": "v2",
},
params_map={
"body": {
"required": True,
"openapi_types": (AIImpactUserActivityRequest,),
"location": "body",
},
},
headers_map={"accept": ["*/*"], "content_type": ["application/json"]},
api_client=api_client,
)

self._create_dora_deployment_endpoint = _Endpoint(
settings={
"response_type": (DORADeploymentResponse,),
Expand Down Expand Up @@ -272,6 +293,25 @@ def __init__(self, api_client=None):
api_client=api_client,
)

def create_ai_impact_user_activity(
self,
body: AIImpactUserActivityRequest,
) -> None:
"""Send AI tool user activity.

Send daily AI coding tool activity for one or more users. Each entry records whether a
user was active on a given day, along with the AI tools and models they used. An entry
is stored once per tool, and sending the same user, day, and tool again overwrites the
previous value.

:type body: AIImpactUserActivityRequest
:rtype: None
"""
kwargs: Dict[str, Any] = {}
kwargs["body"] = body

return self._create_ai_impact_user_activity_endpoint.call_with_http_info(**kwargs)

def create_dora_deployment(
self,
body: DORADeploymentRequest,
Expand Down
2 changes: 0 additions & 2 deletions src/datadog_api_client/v2/apis/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from datadog_api_client.v2.api.ai_impact_api import AIImpactApi
from datadog_api_client.v2.api.api_management_api import APIManagementApi
from datadog_api_client.v2.api.apm_api import APMApi
from datadog_api_client.v2.api.apm_retention_filters_api import APMRetentionFiltersApi
Expand Down Expand Up @@ -156,7 +155,6 @@


__all__ = [
"AIImpactApi",
"APIManagementApi",
"APMApi",
"APMRetentionFiltersApi",
Expand Down
20 changes: 0 additions & 20 deletions tests/v2/features/ai_impact.feature

This file was deleted.

14 changes: 14 additions & 0 deletions tests/v2/features/dora_metrics.feature
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,20 @@ Feature: DORA Metrics
When the request is sent
Then the response status is 400 Bad Request

@generated @skip @team:ddoghq/ci-app-backend
Scenario: Send AI tool user activity returns "Bad Request: the batch is empty, has more than 1,000 entries, or contains an invalid entry." response
Given new "CreateAIImpactUserActivity" request
And body with value {"data": [{"attributes": {"day": "2026-05-26", "is_active": true, "models": ["claude-sonnet-4.5", "gpt-5"], "tools": ["Claude Code", "Cursor"], "user_email": "user@example.com"}, "type": "ai_impact_user_activity"}]}
When the request is sent
Then the response status is 400 Bad Request: the batch is empty, has more than 1,000 entries, or contains an invalid entry.

@generated @skip @team:ddoghq/ci-app-backend
Scenario: Send AI tool user activity returns "OK" response
Given new "CreateAIImpactUserActivity" request
And body with value {"data": [{"attributes": {"day": "2026-05-26", "is_active": true, "models": ["claude-sonnet-4.5", "gpt-5"], "tools": ["Claude Code", "Cursor"], "user_email": "user@example.com"}, "type": "ai_impact_user_activity"}]}
When the request is sent
Then the response status is 200 OK

@skip @team:ddoghq/ci-app-backend
Scenario: Send a deployment event returns "Bad Request" response
Given new "CreateDORADeployment" request
Expand Down
2 changes: 1 addition & 1 deletion tests/v2/features/undo.json
Original file line number Diff line number Diff line change
Expand Up @@ -369,7 +369,7 @@
}
},
"CreateAIImpactUserActivity": {
"tag": "AI Impact",
"tag": "DORA Metrics",
"undo": {
"type": "idempotent"
}
Expand Down
Loading