Skip to content

Commit 3372c61

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Add Product Scales support to RUM v2 Applications API (#3069)
Co-authored-by: ci.datadog-api-spec <[email protected]>
1 parent 695d846 commit 3372c61

26 files changed

+1216
-38
lines changed

.generated-info

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
2-
"spec_repo_commit": "fde8b90",
3-
"generated": "2025-08-18 20:34:00.694"
2+
"spec_repo_commit": "4413e63",
3+
"generated": "2025-08-19 20:29:58.463"
44
}

.generator/schemas/v2/openapi.yaml

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32160,6 +32160,8 @@ components:
3216032160
format: int32
3216132161
maximum: 2147483647
3216232162
type: integer
32163+
product_scales:
32164+
$ref: '#/components/schemas/RUMProductScales'
3216332165
type:
3216432166
description: Type of the RUM application. Supported values are `browser`,
3216532167
`ios`, `android`, `react-native`, `flutter`, `roku`, `electron`, `unity`,
@@ -32204,6 +32206,10 @@ components:
3220432206
description: Name of the RUM application.
3220532207
example: my_new_rum_application
3220632208
type: string
32209+
product_analytics_retention_state:
32210+
$ref: '#/components/schemas/RUMProductAnalyticsRetentionState'
32211+
rum_event_processing_state:
32212+
$ref: '#/components/schemas/RUMEventProcessingState'
3220732213
type:
3220832214
description: Type of the RUM application. Supported values are `browser`,
3220932215
`ios`, `android`, `react-native`, `flutter`, `roku`, `electron`, `unity`,
@@ -32278,6 +32284,8 @@ components:
3227832284
format: int32
3227932285
maximum: 2147483647
3228032286
type: integer
32287+
product_scales:
32288+
$ref: '#/components/schemas/RUMProductScales'
3228132289
type:
3228232290
description: Type of the RUM application. Supported values are `browser`,
3228332291
`ios`, `android`, `react-native`, `flutter`, `roku`, `electron`, `unity`,
@@ -32349,6 +32357,10 @@ components:
3234932357
description: Name of the RUM application.
3235032358
example: updated_name_for_my_existing_rum_application
3235132359
type: string
32360+
product_analytics_retention_state:
32361+
$ref: '#/components/schemas/RUMProductAnalyticsRetentionState'
32362+
rum_event_processing_state:
32363+
$ref: '#/components/schemas/RUMEventProcessingState'
3235232364
type:
3235332365
description: Type of the RUM application. Supported values are `browser`,
3235432366
`ios`, `android`, `react-native`, `flutter`, `roku`, `electron`, `unity`,
@@ -32477,6 +32489,33 @@ components:
3247732489
format: date-time
3247832490
type: string
3247932491
type: object
32492+
RUMEventProcessingScale:
32493+
description: RUM event processing scale configuration.
32494+
properties:
32495+
last_modified_at:
32496+
description: Timestamp in milliseconds when this scale was last modified.
32497+
example: 1721897494108
32498+
format: int64
32499+
type: integer
32500+
state:
32501+
$ref: '#/components/schemas/RUMEventProcessingState'
32502+
type: object
32503+
RUMEventProcessingState:
32504+
description: Configures which RUM events are processed and stored for the application.
32505+
enum:
32506+
- ALL
32507+
- ERROR_FOCUSED_MODE
32508+
- NONE
32509+
example: ALL
32510+
type: string
32511+
x-enum-descriptions:
32512+
- Process and store all RUM events (sessions, views, actions, resources, errors)
32513+
- Process and store only error events and related critical events
32514+
- "Disable RUM event processing\u2014no events are stored"
32515+
x-enum-varnames:
32516+
- ALL
32517+
- ERROR_FOCUSED_MODE
32518+
- NONE
3248032519
RUMEventType:
3248132520
default: rum
3248232521
description: Type of the event.
@@ -32583,6 +32622,39 @@ components:
3258332622
RUMGroupByTotalString:
3258432623
description: A string to use as the key value for the total bucket.
3258532624
type: string
32625+
RUMProductAnalyticsRetentionScale:
32626+
description: Product Analytics retention scale configuration.
32627+
properties:
32628+
last_modified_at:
32629+
description: Timestamp in milliseconds when this scale was last modified.
32630+
example: 1747922145974
32631+
format: int64
32632+
type: integer
32633+
state:
32634+
$ref: '#/components/schemas/RUMProductAnalyticsRetentionState'
32635+
type: object
32636+
RUMProductAnalyticsRetentionState:
32637+
description: Controls the retention policy for Product Analytics data derived
32638+
from RUM events.
32639+
enum:
32640+
- MAX
32641+
- NONE
32642+
example: MAX
32643+
type: string
32644+
x-enum-descriptions:
32645+
- Store Product Analytics data for the maximum available retention period
32646+
- Do not store Product Analytics data
32647+
x-enum-varnames:
32648+
- MAX
32649+
- NONE
32650+
RUMProductScales:
32651+
description: Product Scales configuration for the RUM application.
32652+
properties:
32653+
product_analytics_retention_scale:
32654+
$ref: '#/components/schemas/RUMProductAnalyticsRetentionScale'
32655+
rum_event_processing_scale:
32656+
$ref: '#/components/schemas/RUMEventProcessingScale'
32657+
type: object
3258632658
RUMQueryFilter:
3258732659
description: The search and filter query settings.
3258832660
properties:
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
// Create a new RUM application with Product Scales returns "OK" response
2+
3+
import com.datadog.api.client.ApiClient;
4+
import com.datadog.api.client.ApiException;
5+
import com.datadog.api.client.v2.api.RumApi;
6+
import com.datadog.api.client.v2.model.RUMApplicationCreate;
7+
import com.datadog.api.client.v2.model.RUMApplicationCreateAttributes;
8+
import com.datadog.api.client.v2.model.RUMApplicationCreateRequest;
9+
import com.datadog.api.client.v2.model.RUMApplicationCreateType;
10+
import com.datadog.api.client.v2.model.RUMApplicationResponse;
11+
import com.datadog.api.client.v2.model.RUMEventProcessingState;
12+
import com.datadog.api.client.v2.model.RUMProductAnalyticsRetentionState;
13+
14+
public class Example {
15+
public static void main(String[] args) {
16+
ApiClient defaultClient = ApiClient.getDefaultApiClient();
17+
RumApi apiInstance = new RumApi(defaultClient);
18+
19+
RUMApplicationCreateRequest body =
20+
new RUMApplicationCreateRequest()
21+
.data(
22+
new RUMApplicationCreate()
23+
.attributes(
24+
new RUMApplicationCreateAttributes()
25+
.name("test-rum-with-product-scales-5c67ebb32077e1d9")
26+
.type("browser")
27+
.rumEventProcessingState(RUMEventProcessingState.ERROR_FOCUSED_MODE)
28+
.productAnalyticsRetentionState(RUMProductAnalyticsRetentionState.NONE))
29+
.type(RUMApplicationCreateType.RUM_APPLICATION_CREATE));
30+
31+
try {
32+
RUMApplicationResponse result = apiInstance.createRUMApplication(body);
33+
System.out.println(result);
34+
} catch (ApiException e) {
35+
System.err.println("Exception when calling RumApi#createRUMApplication");
36+
System.err.println("Status code: " + e.getCode());
37+
System.err.println("Reason: " + e.getResponseBody());
38+
System.err.println("Response headers: " + e.getResponseHeaders());
39+
e.printStackTrace();
40+
}
41+
}
42+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
// Update a RUM application with Product Scales returns "OK" response
2+
3+
import com.datadog.api.client.ApiClient;
4+
import com.datadog.api.client.ApiException;
5+
import com.datadog.api.client.v2.api.RumApi;
6+
import com.datadog.api.client.v2.model.RUMApplicationResponse;
7+
import com.datadog.api.client.v2.model.RUMApplicationUpdate;
8+
import com.datadog.api.client.v2.model.RUMApplicationUpdateAttributes;
9+
import com.datadog.api.client.v2.model.RUMApplicationUpdateRequest;
10+
import com.datadog.api.client.v2.model.RUMApplicationUpdateType;
11+
import com.datadog.api.client.v2.model.RUMEventProcessingState;
12+
import com.datadog.api.client.v2.model.RUMProductAnalyticsRetentionState;
13+
14+
public class Example {
15+
public static void main(String[] args) {
16+
ApiClient defaultClient = ApiClient.getDefaultApiClient();
17+
RumApi apiInstance = new RumApi(defaultClient);
18+
19+
// there is a valid "rum_application" in the system
20+
String RUM_APPLICATION_DATA_ID = System.getenv("RUM_APPLICATION_DATA_ID");
21+
22+
RUMApplicationUpdateRequest body =
23+
new RUMApplicationUpdateRequest()
24+
.data(
25+
new RUMApplicationUpdate()
26+
.attributes(
27+
new RUMApplicationUpdateAttributes()
28+
.name("updated_rum_with_product_scales")
29+
.rumEventProcessingState(RUMEventProcessingState.ALL)
30+
.productAnalyticsRetentionState(RUMProductAnalyticsRetentionState.MAX))
31+
.id(RUM_APPLICATION_DATA_ID)
32+
.type(RUMApplicationUpdateType.RUM_APPLICATION_UPDATE));
33+
34+
try {
35+
RUMApplicationResponse result =
36+
apiInstance.updateRUMApplication(RUM_APPLICATION_DATA_ID, body);
37+
System.out.println(result);
38+
} catch (ApiException e) {
39+
System.err.println("Exception when calling RumApi#updateRUMApplication");
40+
System.err.println("Status code: " + e.getCode());
41+
System.err.println("Reason: " + e.getResponseBody());
42+
System.err.println("Response headers: " + e.getResponseHeaders());
43+
e.printStackTrace();
44+
}
45+
}
46+
}

src/main/java/com/datadog/api/client/v2/model/RUMApplicationAttributes.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
RUMApplicationAttributes.JSON_PROPERTY_IS_ACTIVE,
2828
RUMApplicationAttributes.JSON_PROPERTY_NAME,
2929
RUMApplicationAttributes.JSON_PROPERTY_ORG_ID,
30+
RUMApplicationAttributes.JSON_PROPERTY_PRODUCT_SCALES,
3031
RUMApplicationAttributes.JSON_PROPERTY_TYPE,
3132
RUMApplicationAttributes.JSON_PROPERTY_UPDATED_AT,
3233
RUMApplicationAttributes.JSON_PROPERTY_UPDATED_BY_HANDLE
@@ -59,6 +60,9 @@ public class RUMApplicationAttributes {
5960
public static final String JSON_PROPERTY_ORG_ID = "org_id";
6061
private Integer orgId;
6162

63+
public static final String JSON_PROPERTY_PRODUCT_SCALES = "product_scales";
64+
private RUMProductScales productScales;
65+
6266
public static final String JSON_PROPERTY_TYPE = "type";
6367
private String type;
6468

@@ -256,6 +260,28 @@ public void setOrgId(Integer orgId) {
256260
this.orgId = orgId;
257261
}
258262

263+
public RUMApplicationAttributes productScales(RUMProductScales productScales) {
264+
this.productScales = productScales;
265+
this.unparsed |= productScales.unparsed;
266+
return this;
267+
}
268+
269+
/**
270+
* Product Scales configuration for the RUM application.
271+
*
272+
* @return productScales
273+
*/
274+
@jakarta.annotation.Nullable
275+
@JsonProperty(JSON_PROPERTY_PRODUCT_SCALES)
276+
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
277+
public RUMProductScales getProductScales() {
278+
return productScales;
279+
}
280+
281+
public void setProductScales(RUMProductScales productScales) {
282+
this.productScales = productScales;
283+
}
284+
259285
public RUMApplicationAttributes type(String type) {
260286
this.type = type;
261287
return this;
@@ -382,6 +408,7 @@ public boolean equals(Object o) {
382408
&& Objects.equals(this.isActive, rumApplicationAttributes.isActive)
383409
&& Objects.equals(this.name, rumApplicationAttributes.name)
384410
&& Objects.equals(this.orgId, rumApplicationAttributes.orgId)
411+
&& Objects.equals(this.productScales, rumApplicationAttributes.productScales)
385412
&& Objects.equals(this.type, rumApplicationAttributes.type)
386413
&& Objects.equals(this.updatedAt, rumApplicationAttributes.updatedAt)
387414
&& Objects.equals(this.updatedByHandle, rumApplicationAttributes.updatedByHandle)
@@ -399,6 +426,7 @@ public int hashCode() {
399426
isActive,
400427
name,
401428
orgId,
429+
productScales,
402430
type,
403431
updatedAt,
404432
updatedByHandle,
@@ -417,6 +445,7 @@ public String toString() {
417445
sb.append(" isActive: ").append(toIndentedString(isActive)).append("\n");
418446
sb.append(" name: ").append(toIndentedString(name)).append("\n");
419447
sb.append(" orgId: ").append(toIndentedString(orgId)).append("\n");
448+
sb.append(" productScales: ").append(toIndentedString(productScales)).append("\n");
420449
sb.append(" type: ").append(toIndentedString(type)).append("\n");
421450
sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n");
422451
sb.append(" updatedByHandle: ").append(toIndentedString(updatedByHandle)).append("\n");

0 commit comments

Comments
 (0)