Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
0642884
add plan for DatadogTimeseries standalone business logic
barboraplasovska Apr 14, 2026
1a615f7
add git rules override for timeseries pod
barboraplasovska Apr 14, 2026
c3a19ff
add Package.swift scaffolding for DatadogTimeseries
barboraplasovska Apr 14, 2026
67ef551
implement models with explicit CodingKeys for JSON serialization
barboraplasovska Apr 14, 2026
dac302e
add TimeseriesConfig for RUM context injection
barboraplasovska Apr 14, 2026
1ca099a
add DataProvider protocol and CSVDataProvider with tests
barboraplasovska Apr 14, 2026
f36dac5
implement TimeseriesBatcher with configurable batch size
barboraplasovska Apr 14, 2026
0672ce8
implement TimeseriesEventBuilder with config injection
barboraplasovska Apr 14, 2026
fa62e57
implement TimeseriesEncoder with sorted keys output
barboraplasovska Apr 14, 2026
351e179
add CSV test fixture with 10 memory and 10 CPU samples
barboraplasovska Apr 14, 2026
4da23e4
add expected JSON fixtures for E2E verification
barboraplasovska Apr 14, 2026
4451706
implement TimeseriesPipeline orchestrator
barboraplasovska Apr 14, 2026
dbdc896
add end-to-end verification tests with UUID masking
barboraplasovska Apr 14, 2026
d02d977
add skip-sample error handling tests for gap behavior
barboraplasovska Apr 14, 2026
afe0397
remove placeholder files after full test suite is in place
barboraplasovska Apr 14, 2026
11412dc
fix pod rules
barboraplasovska Apr 14, 2026
bab85a6
add plan 2 for platform-agnostic integration wiring
barboraplasovska Apr 14, 2026
898b797
move plans and demo into pod/ directory
barboraplasovska Apr 15, 2026
837665f
rename demo script to 01-demo-18-04
barboraplasovska Apr 15, 2026
34bb2ca
add SampleFilter protocol and filter implementations
barboraplasovska Apr 16, 2026
7e480e5
wire SampleFilter into TimeseriesPipeline and expose public API
barboraplasovska Apr 16, 2026
53562ed
add DatadogTimeseriesRunner executable target
barboraplasovska Apr 16, 2026
be54262
add filter unit tests and realistic 60-second fixture
barboraplasovska Apr 16, 2026
3ad2bf7
add fixture generator and pipeline runner scripts
barboraplasovska Apr 16, 2026
18038f7
add plan 3 for sampling filters research
barboraplasovska Apr 16, 2026
b42366f
update demo script with sampling strategies section
barboraplasovska Apr 16, 2026
5c60967
add plan 4 for iOS SDK integration
barboraplasovska Apr 20, 2026
13ec25f
update plan 4 to use rum-events-format generated model instead of han…
barboraplasovska Apr 20, 2026
1e661c7
update plan 4 to use bplasovska/timeseries branch on rum-events-forma…
barboraplasovska Apr 20, 2026
8c804b6
update plan 4 with criticism findings: Schema C shape, two generated …
barboraplasovska Apr 20, 2026
1bfbcd3
add verification strategy to plan 4
barboraplasovska Apr 20, 2026
e041eb7
generate RUMTimeseriesMemoryEvent and RUMTimeseriesCpuEvent from rum-…
barboraplasovska Apr 20, 2026
593f243
migrate standalone package DataPoint to Schema C nested data_point fo…
barboraplasovska Apr 20, 2026
9a0fa9d
add TimeseriesSessionCollector and wire it into RUM session lifecycle
barboraplasovska Apr 20, 2026
e41a3c8
add Android timeseries SDK integration plan
barboraplasovska Apr 21, 2026
363951f
add delta compression implementation plan
barboraplasovska Apr 23, 2026
04b2d4d
add delta compression behind enableDeltaCompression flag to Timeserie…
barboraplasovska Apr 23, 2026
d3defb9
RUM-13949 implement dual-flush with object and delta schemas for time…
barboraplasovska Apr 27, 2026
1b64494
RUM-13949 replace dual-flush with per-session coin flip for schema se…
barboraplasovska Apr 28, 2026
e7e4160
fix function_default_parameter_at_end lint violation in RUMScopeDepen…
barboraplasovska Apr 28, 2026
4bb1df8
add license headers to DatadogTimeseries source and test files
barboraplasovska Apr 28, 2026
264c21c
Fix: rum events format
barboraplasovska Apr 28, 2026
8806dda
fix ObjC generator to stop at array-item boundaries for nested struct…
barboraplasovska Apr 29, 2026
5579ad2
RUM-13949 revert staging intake URL override in DatadogSite
barboraplasovska Apr 29, 2026
cf629d2
RUM-13949 add enableTimeseries to watchOS platform initializer in RUM…
barboraplasovska Apr 29, 2026
06ab652
RUM-13949 fix non-deterministic TimeseriesSessionCollector tests by p…
barboraplasovska Apr 29, 2026
0a742bb
Fix wachos run
barboraplasovska Apr 29, 2026
830d9be
Fix Swift 6 SPM Build
barboraplasovska Apr 29, 2026
e57b16a
RUM-13949 add delta encoder for timeseries compression
barboraplasovska May 5, 2026
599a859
RUM-13949 address review: overflow safety, test throws, remove pbxpro…
barboraplasovska May 28, 2026
7aac22b
Apply PR suggestions
barboraplasovska Jun 2, 2026
18ad8f6
Remove more xcode project mess
barboraplasovska Jun 2, 2026
ef51103
Add TimeseriesSessionCollector with memory and CPU collection
barboraplasovska May 5, 2026
5aa78a7
Register timeseries source and test files in Xcode project
barboraplasovska May 5, 2026
3747ff3
Add pause/resume lifecycle support to TimeseriesSessionCollector
barboraplasovska May 22, 2026
9b177b5
Overflow safety on timestamp and try! in tests
barboraplasovska Jun 3, 2026
43e915e
Apply CR Suggestions
barboraplasovska Jun 10, 2026
14f152d
Apply CR Suggestions
barboraplasovska Jun 10, 2026
c3a72b2
RUM-13949 wire timeseries pause/resume to app lifecycle in RUMSession…
barboraplasovska May 22, 2026
e4e22dc
Added possibility to change batch size of Timeseries event
barboraplasovska Jun 2, 2026
9c69c41
Removed duplicate and ran api-surface
barboraplasovska Jun 11, 2026
5b54bc8
Fix tautological session type assertion in timeseries collector test
barboraplasovska Jun 11, 2026
b2a7945
Rename memory_max to memory_footprint in timeseries schema and regene…
barboraplasovska Jun 12, 2026
3b28e9a
Address Codex review comments on timeseries session wiring
barboraplasovska Jun 16, 2026
19af1b2
Clamp timeseriesBatchSize to minimum of 2 instead of precondition
barboraplasovska Jun 16, 2026
7bdb6bc
Add tests for unsampled session and background-created session collec…
barboraplasovska Jun 16, 2026
da04f94
Fix Timeseries file registration in Datadog.xcodeproj
barboraplasovska Jul 10, 2026
d47cad9
Update timeseries models to object-v2 schema, remove delta compression
barboraplasovska Jul 9, 2026
141a82c
Remove unused DatadogTimeseries POC package
barboraplasovska Jul 10, 2026
0956a52
Extract timeseriesBatchSize default into defaultTimeseriesBatchSize c…
barboraplasovska Jul 10, 2026
efdefc4
Regenerate API surface after object-v2 schema migration
barboraplasovska Jul 10, 2026
cf677ad
Apply CR suggestions
barboraplasovska Jul 10, 2026
606d8b7
Fix ObjC generator to resolve root swift type via swiftTypeName
barboraplasovska Jul 10, 2026
342a714
Regenerate RUM models and API surface from object-v2 schema
barboraplasovska Jul 10, 2026
6c59e8f
Regenerate RUM models from timeseries common schema fix
barboraplasovska Jul 23, 2026
4766c9c
Attach active view context to timeseries events now required by schema
barboraplasovska Jul 23, 2026
704751c
Attribute timeseries batches to the view they were sampled under, not…
barboraplasovska Jul 23, 2026
4f3216a
Regenerate API surface for timeseries schema changes
barboraplasovska Jul 23, 2026
91264ec
Cache active view from message bus instead of polling context per sam…
barboraplasovska Jul 27, 2026
d671d2a
Populate common RUM schema fields on timeseries events
barboraplasovska Jul 27, 2026
843fbf5
Populate context field on timeseries events from monitor global attri…
barboraplasovska Jul 27, 2026
c3e4ec7
Populate has_replay, session_sample_rate, and view name on timeseries…
barboraplasovska Jul 27, 2026
8744491
Unify timeseries active-view and global-attributes reads behind RUMAc…
barboraplasovska Jul 29, 2026
bf1c4e2
Remove leftover DatadogTimeseries POC planning and demo scripts
barboraplasovska Jul 29, 2026
27d2a03
Add experimental availability to Timeseries
barboraplasovska Jul 29, 2026
362b620
Mark enableTimeseries with @_spi(Experimental) instead of @available
barboraplasovska Aug 3, 2026
547762f
Apply CR suggestions
barboraplasovska Aug 3, 2026
dfcb918
Regenerate RUM models from rum-events-format optional-view schema
barboraplasovska Aug 5, 2026
3270457
Write timeseries batches with no view instead of dropping them
barboraplasovska Aug 5, 2026
215bab3
Remove enableTimeseries initializer parameter to enforce SPI-only opt-in
barboraplasovska Aug 5, 2026
7f8a359
update api surface reference after removing enableTimeseries init par…
barboraplasovska Aug 5, 2026
3855dab
RUM-17879 Tie TimeseriesSessionCollector lifecycle to RUM session lif…
barboraplasovska Aug 5, 2026
117ed8a
RUM-17879 Remove stale enableTimeseries doc comment
barboraplasovska Aug 5, 2026
51fafca
RUM-17879 Address remaining PR review feedback on timeseries collection
barboraplasovska Aug 6, 2026
d31133b
RUM-17879 Fix noteActivity race with self-stop on inactivity timeout
barboraplasovska Aug 6, 2026
1d48f23
RUM-17879 Address remaining Codex review findings on timeseries lifec…
barboraplasovska Aug 7, 2026
2c758d9
RUM-17879 Record paused state after inactivity self-stop so foregroun…
barboraplasovska Aug 7, 2026
ada6fef
RUM-17879 Type timeseries collector against its protocol and use toRU…
barboraplasovska Aug 10, 2026
86220b4
RUM-17879 Replace pushed session activity state with a pulled RUMSess…
barboraplasovska Aug 10, 2026
2b5f03e
RUM-17879 Merge session-activity reader into active-context reader an…
barboraplasovska Aug 11, 2026
9811f84
Fix lint, api surface and SPI docs
barboraplasovska Aug 12, 2026
7ba76c1
Regenerate RUM models from rum-events-format master schema
barboraplasovska Aug 12, 2026
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
26 changes: 26 additions & 0 deletions Datadog/Datadog.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
objects = {

/* Begin PBXBuildFile section */
A0A0A0A0A0A0A0A0A0A00004 /* TimeseriesSessionCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0A0A0A0A0A0A0A0A0A00003 /* TimeseriesSessionCollector.swift */; };
A0A0A0A0A0A0A0A0A0A00008 /* TimeseriesSessionCollectorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0A0A0A0A0A0A0A0A0A00007 /* TimeseriesSessionCollectorTests.swift */; };
05B9B20299CF44BB97F4A7C8 /* HeatmapIdentifierTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 048E335C84F4B41E3ACA3B91 /* HeatmapIdentifierTests.swift */; };
0904F9F42EE1DA6800ED9A22 /* UIKitExtensionsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0904F9F32EE1DA6800ED9A22 /* UIKitExtensionsTests.swift */; };
0904F9F62EE1DA6800ED9A22 /* UIKitExtensionsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0904F9F32EE1DA6800ED9A22 /* UIKitExtensionsTests.swift */; };
Expand Down Expand Up @@ -76,6 +78,7 @@
1166C59E2F76D840008E34BC /* TTIDMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1166C59D2F76D839008E34BC /* TTIDMessage.swift */; };
1166C5A22F76EBCD008E34BC /* ProfilingOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1166C5A02F76EBC1008E34BC /* ProfilingOptions.swift */; };
1166C5A52F76EC0B008E34BC /* OperationOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1166C5A32F76EC05008E34BC /* OperationOptions.swift */; };
1166C5AA2F76ED7A008E34BC /* ProfilingOptions+objc.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1166C5A92F76ED6F008E34BC /* ProfilingOptions+objc.swift */; };
116F84062CFDD06700705755 /* SampleRateTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 116F84052CFDD06700705755 /* SampleRateTests.swift */; };
117ADDD92EAA8A90008BD9D8 /* StartupTypeHandlerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 117ADDD82EAA8A90008BD9D8 /* StartupTypeHandlerTests.swift */; };
117E52222D91A61A00A8E930 /* DatadogSessionReplay.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6133D1F52A6ED9E100384BEF /* DatadogSessionReplay.framework */; platformFilter = ios; settings = {ATTRIBUTES = (Weak, ); }; };
Expand Down Expand Up @@ -1881,6 +1884,8 @@
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
A0A0A0A0A0A0A0A0A0A00003 /* TimeseriesSessionCollector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeseriesSessionCollector.swift; sourceTree = "<group>"; };
A0A0A0A0A0A0A0A0A0A00007 /* TimeseriesSessionCollectorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeseriesSessionCollectorTests.swift; sourceTree = "<group>"; };
048E335C84F4B41E3ACA3B91 /* HeatmapIdentifierTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeatmapIdentifierTests.swift; sourceTree = "<group>"; };
0904F9F32EE1DA6800ED9A22 /* UIKitExtensionsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIKitExtensionsTests.swift; sourceTree = "<group>"; };
093AC3282F56F8AA00267CE1 /* ActiveSpanProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActiveSpanProvider.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -1944,6 +1949,7 @@
1166C59D2F76D839008E34BC /* TTIDMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TTIDMessage.swift; sourceTree = "<group>"; };
1166C5A02F76EBC1008E34BC /* ProfilingOptions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfilingOptions.swift; sourceTree = "<group>"; };
1166C5A32F76EC05008E34BC /* OperationOptions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OperationOptions.swift; sourceTree = "<group>"; };
1166C5A92F76ED6F008E34BC /* ProfilingOptions+objc.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ProfilingOptions+objc.swift"; sourceTree = "<group>"; };
116F84052CFDD06700705755 /* SampleRateTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SampleRateTests.swift; sourceTree = "<group>"; };
117ADDD82EAA8A90008BD9D8 /* StartupTypeHandlerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StartupTypeHandlerTests.swift; sourceTree = "<group>"; };
118246772D90416A00E3D16F /* DirectoriesStub.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DirectoriesStub.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -3447,6 +3453,22 @@
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
A0A0A0A0A0A0A0A0A0A00001 /* Timeseries */ = {
isa = PBXGroup;
children = (
A0A0A0A0A0A0A0A0A0A00003 /* TimeseriesSessionCollector.swift */,
);
path = Timeseries;
sourceTree = "<group>";
};
A0A0A0A0A0A0A0A0A0A00002 /* Timeseries */ = {
isa = PBXGroup;
children = (
A0A0A0A0A0A0A0A0A0A00007 /* TimeseriesSessionCollectorTests.swift */,
);
path = Timeseries;
sourceTree = "<group>";
};
095AE9512F7D30BD00C332AE /* Sampling */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -6750,6 +6772,7 @@
D29A9F8B29DD860A005C54A4 /* Utils */,
618DCFD524C7264100589570 /* UUIDs */,
EEC7BD4A3480C5A3191E7A22 /* Heatmaps */,
A0A0A0A0A0A0A0A0A0A00001 /* Timeseries */,
);
name = DatadogRUM;
path = ../DatadogRUM/Sources;
Expand Down Expand Up @@ -6777,6 +6800,7 @@
6174D6182BFE447600EC7469 /* SDKMetrics */,
61411B0E24EC15940012EAB2 /* Utils */,
67B718E85203992292E96407 /* Heatmaps */,
A0A0A0A0A0A0A0A0A0A00002 /* Timeseries */,
);
name = DatadogRUMTests;
path = ../DatadogRUM/Tests;
Expand Down Expand Up @@ -9271,6 +9295,7 @@
buildActionMask = 2147483647;
files = (
6167E6D32B7F8B3300C3CA2D /* AppHangsMonitor.swift in Sources */,
A0A0A0A0A0A0A0A0A0A00004 /* TimeseriesSessionCollector.swift in Sources */,
615E2B8E2D39444300D85243 /* ViewEndedController.swift in Sources */,
D29A9F8029DD85BB005C54A4 /* UIViewControllerHandler.swift in Sources */,
D29A9F5929DD85BB005C54A4 /* RUMCommand.swift in Sources */,
Expand Down Expand Up @@ -9405,6 +9430,7 @@
buildActionMask = 2147483647;
files = (
6188697C2A4376F700E8996B /* RUMConfigurationTests.swift in Sources */,
A0A0A0A0A0A0A0A0A0A00008 /* TimeseriesSessionCollectorTests.swift in Sources */,
61DCC8472C05CD0000CB59E5 /* SessionEndedMetricControllerTests.swift in Sources */,
D29A9FA629DDB483005C54A4 /* RUMOffViewEventsHandlingRuleTests.swift in Sources */,
61C4534A2C0A0BBF00CC4C17 /* TelemetryInterceptorTests.swift in Sources */,
Expand Down
8 changes: 7 additions & 1 deletion DatadogInternal/Sources/Models/RUM/RUMCoreContext.swift
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ public struct RUMCoreContext: AdditionalContext, Equatable {
/// Current RUM view path
public let viewPath: String?

/// Current RUM view user defined name
public let viewName: String?

/// Creates a RUM context.
///
/// - Parameters:
Expand All @@ -37,14 +40,16 @@ public struct RUMCoreContext: AdditionalContext, Equatable {
/// - userActionID: The ID of current RUM action (standard UUID `String`, lowercased).
/// - viewServerTimeOffset: Current view related server time offset
/// - viewPath: Current RUM view path
/// - viewName: Current RUM view user defined name
public init(
applicationID: String,
sessionID: String,
sessionSampler: DeterministicSampler,
viewID: String? = nil,
userActionID: String? = nil,
viewServerTimeOffset: TimeInterval? = nil,
viewPath: String? = nil
viewPath: String? = nil,
viewName: String? = nil
) {
self.applicationID = applicationID
self.sessionID = sessionID
Expand All @@ -53,6 +58,7 @@ public struct RUMCoreContext: AdditionalContext, Equatable {
self.userActionID = userActionID
self.viewServerTimeOffset = viewServerTimeOffset
self.viewPath = viewPath
self.viewName = viewName
}
}

Expand Down
64 changes: 63 additions & 1 deletion DatadogInternal/Sources/Models/RUM/RUMDataModels.swift
Original file line number Diff line number Diff line change
Expand Up @@ -13103,6 +13103,9 @@ public struct TelemetryConfigurationEvent: RUMDataModel {
/// The version of React used in a ReactNative application
public var reactVersion: String?

/// Metadata of the remote configuration currently applied for this session
public var remoteConfiguration: RemoteConfiguration?

/// The id of the remote configuration
public var remoteConfigurationId: String?

Expand Down Expand Up @@ -13339,6 +13342,7 @@ public struct TelemetryConfigurationEvent: RUMDataModel {
case propagateTraceBaggage = "propagate_trace_baggage"
case reactNativeVersion = "react_native_version"
case reactVersion = "react_version"
case remoteConfiguration = "remote_configuration"
case remoteConfigurationId = "remote_configuration_id"
case replaySampleRate = "replay_sample_rate"
case sdkVersion = "sdk_version"
Expand Down Expand Up @@ -13443,6 +13447,7 @@ public struct TelemetryConfigurationEvent: RUMDataModel {
/// - propagateTraceBaggage: Whether trace baggage is propagated to child spans
/// - reactNativeVersion: The version of ReactNative used in a ReactNative application
/// - reactVersion: The version of React used in a ReactNative application
/// - remoteConfiguration: Metadata of the remote configuration currently applied for this session
/// - remoteConfigurationId: The id of the remote configuration
/// - replaySampleRate: The percentage of sessions with Browser RUM & Session Replay pricing tracked (deprecated in favor of session_replay_sample_rate)
/// - sdkVersion: The version of the SDK that is running.
Expand Down Expand Up @@ -13543,6 +13548,7 @@ public struct TelemetryConfigurationEvent: RUMDataModel {
propagateTraceBaggage: Bool? = nil,
reactNativeVersion: String? = nil,
reactVersion: String? = nil,
remoteConfiguration: RemoteConfiguration? = nil,
remoteConfigurationId: String? = nil,
replaySampleRate: Int64? = nil,
sdkVersion: String? = nil,
Expand Down Expand Up @@ -13643,6 +13649,7 @@ public struct TelemetryConfigurationEvent: RUMDataModel {
self.propagateTraceBaggage = propagateTraceBaggage
self.reactNativeVersion = reactNativeVersion
self.reactVersion = reactVersion
self.remoteConfiguration = remoteConfiguration
self.remoteConfigurationId = remoteConfigurationId
self.replaySampleRate = replaySampleRate
self.sdkVersion = sdkVersion
Expand Down Expand Up @@ -13820,6 +13827,61 @@ public struct TelemetryConfigurationEvent: RUMDataModel {
}
}

/// Metadata of the remote configuration currently applied for this session
public struct RemoteConfiguration: Codable {
/// Identifier of the remote configuration bundle this metadata belongs to
public var configId: String?

/// Timestamp at which this configuration version was first observed as applied by the device, in ms from epoch. Stamped once and reused on every subsequent session that runs on the same version
public var firstApplied: Int64?

/// CDN publish timestamp of the applied configuration, in ms from epoch
public var lastModified: Int64?

/// Timestamp at which the device fetched and cached this configuration version, in ms from epoch
public var lastSynced: Int64?

/// Identifier of the sync that produced this configuration version, used to deduplicate repeat sessions from the same device without a persistent identifier
public var syncId: String?

/// CDN version identifier of the applied configuration
public var versionId: String?

public enum CodingKeys: String, CodingKey {
case configId = "config_id"
case firstApplied = "first_applied"
case lastModified = "last_modified"
case lastSynced = "last_synced"
case syncId = "sync_id"
case versionId = "version_id"
}

/// Metadata of the remote configuration currently applied for this session
///
/// - Parameters:
/// - configId: Identifier of the remote configuration bundle this metadata belongs to
/// - firstApplied: Timestamp at which this configuration version was first observed as applied by the device, in ms from epoch. Stamped once and reused on every subsequent session that runs on the same version
/// - lastModified: CDN publish timestamp of the applied configuration, in ms from epoch
/// - lastSynced: Timestamp at which the device fetched and cached this configuration version, in ms from epoch
/// - syncId: Identifier of the sync that produced this configuration version, used to deduplicate repeat sessions from the same device without a persistent identifier
/// - versionId: CDN version identifier of the applied configuration
public init(
configId: String? = nil,
firstApplied: Int64? = nil,
lastModified: Int64? = nil,
lastSynced: Int64? = nil,
syncId: String? = nil,
versionId: String? = nil
) {
self.configId = configId
self.firstApplied = firstApplied
self.lastModified = lastModified
self.lastSynced = lastSynced
self.syncId = syncId
self.versionId = versionId
}
}

public enum SelectedTracingPropagators: String, Codable {
case datadog = "datadog"
case b3 = "b3"
Expand Down Expand Up @@ -15570,4 +15632,4 @@ extension TelemetryUsageEvent.Telemetry {
}
}

// Generated from https://github.com/DataDog/rum-events-format/tree/00d5005015e04067bc591e618640de06ecbf7d23
// Generated from https://github.com/DataDog/rum-events-format/tree/7e92fa29cb294a0a069e9212bc0f0dd76ec8432d
47 changes: 46 additions & 1 deletion DatadogRUM/Sources/DataModels/RUMDataModels+objc.swift
Original file line number Diff line number Diff line change
Expand Up @@ -16197,6 +16197,10 @@ public class objc_TelemetryConfigurationEventTelemetryConfiguration: NSObject {
get { root.swiftModel.telemetry.configuration.reactVersion }
}

public var remoteConfiguration: objc_TelemetryConfigurationEventTelemetryConfigurationRemoteConfiguration? {
root.swiftModel.telemetry.configuration.remoteConfiguration != nil ? objc_TelemetryConfigurationEventTelemetryConfigurationRemoteConfiguration(root: root) : nil
}

public var remoteConfigurationId: String? {
set { root.swiftModel.telemetry.configuration.remoteConfigurationId = newValue }
get { root.swiftModel.telemetry.configuration.remoteConfigurationId }
Expand Down Expand Up @@ -16580,6 +16584,47 @@ public class objc_TelemetryConfigurationEventTelemetryConfigurationPlugins: NSOb
}
}

@objc(DDTelemetryConfigurationEventTelemetryConfigurationRemoteConfiguration)
@objcMembers
@_spi(objc)
public class objc_TelemetryConfigurationEventTelemetryConfigurationRemoteConfiguration: NSObject {
internal let root: objc_TelemetryConfigurationEvent

internal init(root: objc_TelemetryConfigurationEvent) {
self.root = root
}

public var configId: String? {
set { root.swiftModel.telemetry.configuration.remoteConfiguration!.configId = newValue }
get { root.swiftModel.telemetry.configuration.remoteConfiguration!.configId }
}

public var firstApplied: NSNumber? {
set { root.swiftModel.telemetry.configuration.remoteConfiguration!.firstApplied = newValue?.int64Value }
get { root.swiftModel.telemetry.configuration.remoteConfiguration!.firstApplied as NSNumber? }
}

public var lastModified: NSNumber? {
set { root.swiftModel.telemetry.configuration.remoteConfiguration!.lastModified = newValue?.int64Value }
get { root.swiftModel.telemetry.configuration.remoteConfiguration!.lastModified as NSNumber? }
}

public var lastSynced: NSNumber? {
set { root.swiftModel.telemetry.configuration.remoteConfiguration!.lastSynced = newValue?.int64Value }
get { root.swiftModel.telemetry.configuration.remoteConfiguration!.lastSynced as NSNumber? }
}

public var syncId: String? {
set { root.swiftModel.telemetry.configuration.remoteConfiguration!.syncId = newValue }
get { root.swiftModel.telemetry.configuration.remoteConfiguration!.syncId }
}

public var versionId: String? {
set { root.swiftModel.telemetry.configuration.remoteConfiguration!.versionId = newValue }
get { root.swiftModel.telemetry.configuration.remoteConfiguration!.versionId }
}
}

@objc(DDTelemetryConfigurationEventTelemetryConfigurationSelectedTracingPropagators)
@_spi(objc)
public enum objc_TelemetryConfigurationEventTelemetryConfigurationSelectedTracingPropagators: Int {
Expand Down Expand Up @@ -17494,4 +17539,4 @@ public class objc_TelemetryErrorEventView: NSObject {

// swiftlint:enable force_unwrapping

// Generated from https://github.com/DataDog/rum-events-format/tree/00d5005015e04067bc591e618640de06ecbf7d23
// Generated from https://github.com/DataDog/rum-events-format/tree/7e92fa29cb294a0a069e9212bc0f0dd76ec8432d
Loading