diff --git a/.github/scripts/run-simulator-tests.sh b/.github/scripts/run-simulator-tests.sh index 6ecb2a2..e39fed3 100755 --- a/.github/scripts/run-simulator-tests.sh +++ b/.github/scripts/run-simulator-tests.sh @@ -41,8 +41,10 @@ printf '{ "sdk": { "version": "%s", "rollForward": "latestFeature" } }\n' "${sdk # NuGet caches by package id + version, so rebuilding a version that was already restored once # silently reuses the stale copy. CI versions are unique, but locally you will re-pack the same # version repeatedly and test yesterday's bits without this. All eleven are cleared, not just the -# three referenced directly, because the rest arrive as transitive dependencies. -for package in objc core internal logs rum sessionreplay trace webviewtracking crashreporting crashreporter opentelemetryapi; do +# ones referenced directly, because the rest arrive as transitive dependencies. crashreporter +# is gone from the list: dd-sdk-ios 3.0 replaced PLCrashReporter with KSCrash, which is linked +# into DatadogCrashReporting rather than shipped as a package of its own. +for package in objc core internal logs rum sessionreplay trace webviewtracking crashreporting flags profiling opentelemetryapi; do rm -rf "${HOME}/.nuget/packages/datadognet.${package}.ios/${VERSION}" done diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 9fabce8..5460fef 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -91,7 +91,7 @@ jobs: { echo "### Published \`${{ needs.version.outputs.version }}\` to nuget.org" echo - for package in Objc Core Internal Logs RUM SessionReplay Trace WebViewTracking CrashReporting CrashReporter OpenTelemetryApi; do + for package in Core RUM Logs Trace SessionReplay WebViewTracking CrashReporting Flags Profiling Internal OpenTelemetryApi Objc; do id="DatadogNet.${package}.iOS" echo "- [${id}](https://www.nuget.org/packages/${id}/${{ needs.version.outputs.version }})" done diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 67ccfde..efb38e4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -152,21 +152,23 @@ jobs: id="DatadogNet.${package}.iOS" echo "| \`${id}\` | \`${framework}\` | [${VERSION}](https://www.nuget.org/packages/${id}/${VERSION}) |" done <<'PACKAGES' - Objc:DatadogObjc Core:DatadogCore - Internal:DatadogInternal - Logs:DatadogLogs RUM:DatadogRUM - SessionReplay:DatadogSessionReplay + Logs:DatadogLogs Trace:DatadogTrace + SessionReplay:DatadogSessionReplay WebViewTracking:DatadogWebViewTracking CrashReporting:DatadogCrashReporting - CrashReporter:CrashReporter + Flags:DatadogFlags + Profiling:DatadogProfiling + Internal:DatadogInternal OpenTelemetryApi:OpenTelemetryApi + Objc:(compatibility meta-package) PACKAGES echo echo "\`\`\`" - echo "dotnet add package DatadogNet.Objc.iOS --version ${VERSION}" + echo "dotnet add package DatadogNet.Core.iOS --version ${VERSION}" + echo "dotnet add package DatadogNet.RUM.iOS --version ${VERSION}" echo "\`\`\`" echo echo "## Licensing" diff --git a/DatadogNet.sln b/DatadogNet.sln index df72786..f8b2e21 100644 --- a/DatadogNet.sln +++ b/DatadogNet.sln @@ -7,8 +7,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{827E0CD3-B72 EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DatadogNet.Core.iOS", "src\DatadogNet.Core.iOS\DatadogNet.Core.iOS.csproj", "{2AC96ED9-BE17-4201-A89F-8832C23C07E0}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DatadogNet.CrashReporter.iOS", "src\DatadogNet.CrashReporter.iOS\DatadogNet.CrashReporter.iOS.csproj", "{0A67D329-FA08-4301-89CC-17AB1581D5A3}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DatadogNet.CrashReporting.iOS", "src\DatadogNet.CrashReporting.iOS\DatadogNet.CrashReporting.iOS.csproj", "{F5AFA73D-050C-46CF-8345-537B15CA8022}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DatadogNet.Internal.iOS", "src\DatadogNet.Internal.iOS\DatadogNet.Internal.iOS.csproj", "{CB4B3CFE-99F1-4228-944B-F51F17E2CFA5}" @@ -31,6 +29,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DatadogNet.iOS.DeviceTests" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DatadogNet.iOS.PackageTests", "tests\DatadogNet.iOS.PackageTests\DatadogNet.iOS.PackageTests.csproj", "{06A389A7-C3A1-4376-9A70-9CDC8523B026}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DatadogNet.Flags.iOS", "src\DatadogNet.Flags.iOS\DatadogNet.Flags.iOS.csproj", "{573CD60D-C97D-4DDF-AA99-4437660167B3}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DatadogNet.Profiling.iOS", "src\DatadogNet.Profiling.iOS\DatadogNet.Profiling.iOS.csproj", "{463E235B-6173-498D-A78B-4BE9A6834A6E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -53,18 +55,6 @@ Global {2AC96ED9-BE17-4201-A89F-8832C23C07E0}.Release|x64.Build.0 = Release|Any CPU {2AC96ED9-BE17-4201-A89F-8832C23C07E0}.Release|x86.ActiveCfg = Release|Any CPU {2AC96ED9-BE17-4201-A89F-8832C23C07E0}.Release|x86.Build.0 = Release|Any CPU - {0A67D329-FA08-4301-89CC-17AB1581D5A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0A67D329-FA08-4301-89CC-17AB1581D5A3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0A67D329-FA08-4301-89CC-17AB1581D5A3}.Debug|x64.ActiveCfg = Debug|Any CPU - {0A67D329-FA08-4301-89CC-17AB1581D5A3}.Debug|x64.Build.0 = Debug|Any CPU - {0A67D329-FA08-4301-89CC-17AB1581D5A3}.Debug|x86.ActiveCfg = Debug|Any CPU - {0A67D329-FA08-4301-89CC-17AB1581D5A3}.Debug|x86.Build.0 = Debug|Any CPU - {0A67D329-FA08-4301-89CC-17AB1581D5A3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0A67D329-FA08-4301-89CC-17AB1581D5A3}.Release|Any CPU.Build.0 = Release|Any CPU - {0A67D329-FA08-4301-89CC-17AB1581D5A3}.Release|x64.ActiveCfg = Release|Any CPU - {0A67D329-FA08-4301-89CC-17AB1581D5A3}.Release|x64.Build.0 = Release|Any CPU - {0A67D329-FA08-4301-89CC-17AB1581D5A3}.Release|x86.ActiveCfg = Release|Any CPU - {0A67D329-FA08-4301-89CC-17AB1581D5A3}.Release|x86.Build.0 = Release|Any CPU {F5AFA73D-050C-46CF-8345-537B15CA8022}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F5AFA73D-050C-46CF-8345-537B15CA8022}.Debug|Any CPU.Build.0 = Debug|Any CPU {F5AFA73D-050C-46CF-8345-537B15CA8022}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -197,13 +187,36 @@ Global {06A389A7-C3A1-4376-9A70-9CDC8523B026}.Release|x64.Build.0 = Release|Any CPU {06A389A7-C3A1-4376-9A70-9CDC8523B026}.Release|x86.ActiveCfg = Release|Any CPU {06A389A7-C3A1-4376-9A70-9CDC8523B026}.Release|x86.Build.0 = Release|Any CPU + {573CD60D-C97D-4DDF-AA99-4437660167B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {573CD60D-C97D-4DDF-AA99-4437660167B3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {573CD60D-C97D-4DDF-AA99-4437660167B3}.Debug|x64.ActiveCfg = Debug|Any CPU + {573CD60D-C97D-4DDF-AA99-4437660167B3}.Debug|x64.Build.0 = Debug|Any CPU + {573CD60D-C97D-4DDF-AA99-4437660167B3}.Debug|x86.ActiveCfg = Debug|Any CPU + {573CD60D-C97D-4DDF-AA99-4437660167B3}.Debug|x86.Build.0 = Debug|Any CPU + {573CD60D-C97D-4DDF-AA99-4437660167B3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {573CD60D-C97D-4DDF-AA99-4437660167B3}.Release|Any CPU.Build.0 = Release|Any CPU + {573CD60D-C97D-4DDF-AA99-4437660167B3}.Release|x64.ActiveCfg = Release|Any CPU + {573CD60D-C97D-4DDF-AA99-4437660167B3}.Release|x64.Build.0 = Release|Any CPU + {573CD60D-C97D-4DDF-AA99-4437660167B3}.Release|x86.ActiveCfg = Release|Any CPU + {573CD60D-C97D-4DDF-AA99-4437660167B3}.Release|x86.Build.0 = Release|Any CPU + {463E235B-6173-498D-A78B-4BE9A6834A6E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {463E235B-6173-498D-A78B-4BE9A6834A6E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {463E235B-6173-498D-A78B-4BE9A6834A6E}.Debug|x64.ActiveCfg = Debug|Any CPU + {463E235B-6173-498D-A78B-4BE9A6834A6E}.Debug|x64.Build.0 = Debug|Any CPU + {463E235B-6173-498D-A78B-4BE9A6834A6E}.Debug|x86.ActiveCfg = Debug|Any CPU + {463E235B-6173-498D-A78B-4BE9A6834A6E}.Debug|x86.Build.0 = Debug|Any CPU + {463E235B-6173-498D-A78B-4BE9A6834A6E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {463E235B-6173-498D-A78B-4BE9A6834A6E}.Release|Any CPU.Build.0 = Release|Any CPU + {463E235B-6173-498D-A78B-4BE9A6834A6E}.Release|x64.ActiveCfg = Release|Any CPU + {463E235B-6173-498D-A78B-4BE9A6834A6E}.Release|x64.Build.0 = Release|Any CPU + {463E235B-6173-498D-A78B-4BE9A6834A6E}.Release|x86.ActiveCfg = Release|Any CPU + {463E235B-6173-498D-A78B-4BE9A6834A6E}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution {2AC96ED9-BE17-4201-A89F-8832C23C07E0} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B} - {0A67D329-FA08-4301-89CC-17AB1581D5A3} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B} {F5AFA73D-050C-46CF-8345-537B15CA8022} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B} {CB4B3CFE-99F1-4228-944B-F51F17E2CFA5} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B} {D01DE9B5-315C-47A1-88BC-705999DD3140} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B} @@ -215,5 +228,7 @@ Global {36B2500C-19EB-4736-A112-10796ADFDA7A} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B} {57699435-10EC-4CA1-983D-9E2E3A43AF47} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B} {06A389A7-C3A1-4376-9A70-9CDC8523B026} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B} + {573CD60D-C97D-4DDF-AA99-4437660167B3} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B} + {463E235B-6173-498D-A78B-4BE9A6834A6E} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B} EndGlobalSection EndGlobal diff --git a/Directory.Build.props b/Directory.Build.props index f843958..4b55054 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -15,7 +15,7 @@ DataDog-SDK-iOS-net repository versioned CrashReporter.iOS as 1.11.2.1 instead; that made it impossible to tell which Datadog release a given CrashReporter package belonged to. --> - 2.30.2 + 3.14.0 1 $(DatadogNativeVersion).$(DatadogBindingRevision) diff --git a/README.md b/README.md index 5c46a41..3d7547f 100644 --- a/README.md +++ b/README.md @@ -7,22 +7,28 @@ Enable Datadog Real User Monitoring, Logs, Trace, Session Replay, WebView tracki reporting from C#, in a `net8.0-ios`, `net9.0-ios` or `net10.0-ios` app. ```bash -dotnet add package DatadogNet.Objc.iOS +dotnet add package DatadogNet.Core.iOS +dotnet add package DatadogNet.RUM.iOS ``` ```csharp -using DatadogObjc; +using DatadogCore; +using DatadogRUM; var configuration = new DDConfiguration(clientToken: "", env: "production") { Service = "my-app", - Site = DDSite.Us1, + Site = DDSite.Us1(), }; -DDDatadog.InitializeWithConfiguration(configuration, DDTrackingConsent.Granted); +DDDatadog.InitializeWithConfiguration(configuration, DDTrackingConsent.Granted()); DDRUM.EnableWith(new DDRUMConfiguration(applicationID: "")); ``` +Built against **dd-sdk-ios 3.14.0**. Coming from the 2.x packages? See +[Migrating from 2.x](#migrating-from-2x) — the types moved namespace, so it is not a version bump +alone. + --- ## Contents @@ -31,8 +37,7 @@ DDRUM.EnableWith(new DDRUMConfiguration(applicationID: "")); - [Installing](#installing) - [Usage](#usage) - [Convenience API](#convenience-api) -- [API coverage](#api-coverage) -- [Migrating from `DatadogCore.iOS` / `DatadogObjc.iOS`](#migrating-from-datadogcoreios--datadogobjcios) +- [Migrating from 2.x](#migrating-from-2x) - [How this repository works](#how-this-repository-works) - [Building locally](#building-locally) - [Upgrading the Datadog SDK](#upgrading-the-datadog-sdk) @@ -44,43 +49,41 @@ DDRUM.EnableWith(new DDRUMConfiguration(applicationID: "")); ## Packages -Eleven packages, one per native framework in the Datadog release. Versions are -`.` — `2.30.2.1` is dd-sdk-ios **2.30.2**, binding revision -**2**. The fourth component belongs to this repository and advances when the bindings or packaging +Twelve packages, one per native framework, plus a compatibility meta-package. Versions are +`.` — `3.14.0.1` is dd-sdk-ios **3.14.0**, binding revision +**1**. The fourth component belongs to this repository and advances when the bindings or packaging change while the native binaries stay put. | Package | Wraps | Depends on | What it is for | | --- | --- | --- | --- | -| **`DatadogNet.Objc.iOS`** | `DatadogObjc` | Core, Internal, Logs, RUM, SessionReplay, Trace | **The one you install.** The whole `DD*` API — configuration, RUM, Logs, Trace, Session Replay, tracing headers — and it pulls in every feature module. | -| `DatadogNet.Core.iOS` | `DatadogCore` | Internal | SDK initialization, consent, user and account info. | -| `DatadogNet.Internal.iOS` | `DatadogInternal` | — | Shared foundation every other module is built on. | +| **`DatadogNet.Core.iOS`** | `DatadogCore` | Internal | SDK init, consent, user/account info, URLSession instrumentation. **Always needed.** | +| **`DatadogNet.RUM.iOS`** | `DatadogRUM` | Core, Internal | Real User Monitoring — the whole `DDRUM*` API. | | `DatadogNet.Logs.iOS` | `DatadogLogs` | Core, Internal | Log collection. | -| `DatadogNet.RUM.iOS` | `DatadogRUM` | Core, Internal | Real User Monitoring. | | `DatadogNet.Trace.iOS` | `DatadogTrace` | Core, Internal, OpenTelemetryApi | Distributed tracing (APM). | | `DatadogNet.SessionReplay.iOS` | `DatadogSessionReplay` | Core, Internal | Session Replay. Requires RUM. | -| `DatadogNet.WebViewTracking.iOS` | `DatadogWebViewTracking` | Core, Internal | Bridges RUM/Logs out of a `WKWebView`. Opt-in. | -| `DatadogNet.CrashReporting.iOS` | `DatadogCrashReporting` | Core, Internal, CrashReporter | Native crash capture. Opt-in. | -| `DatadogNet.CrashReporter.iOS` | `CrashReporter` | — | PLCrashReporter, the engine underneath crash reporting. | -| `DatadogNet.OpenTelemetryApi.iOS` | `OpenTelemetryApi` | — | OpenTelemetry API types used by trace propagation. | - -Most apps need one line: - -```xml - -``` - -Add `DatadogNet.CrashReporting.iOS` for crash reporting and `DatadogNet.WebViewTracking.iOS` for -hybrid apps. Both are separate on purpose — crash reporting installs a signal handler, and neither -is something an app that only wanted RUM should pay for. +| `DatadogNet.WebViewTracking.iOS` | `DatadogWebViewTracking` | Core, Internal | Bridges RUM/Logs out of a `WKWebView`. | +| `DatadogNet.CrashReporting.iOS` | `DatadogCrashReporting` | Core, Internal | Native crash capture (KSCrash). Reports through RUM. | +| `DatadogNet.Flags.iOS` | `DatadogFlags` | Core, Internal | Feature flags. **No C# API yet** — see below. | +| `DatadogNet.Profiling.iOS` | `DatadogProfiling` | Core, Internal | Continuous profiling. **No C# API yet** — see below. | +| `DatadogNet.Internal.iOS` | `DatadogInternal` | — | Shared foundation. Pulled in transitively. | +| `DatadogNet.OpenTelemetryApi.iOS` | `OpenTelemetryApi` | — | OpenTelemetry API types for trace propagation. | +| `DatadogNet.Objc.iOS` | — (meta-package) | Core, RUM, Logs, Trace, SessionReplay | **Compatibility only.** Redirects an existing 2.x `PackageReference`. New apps ignore it. | + +Reference the modules you use. A typical app takes `DatadogNet.Core.iOS` plus `DatadogNet.RUM.iOS`, +and adds `Logs`, `Trace`, `SessionReplay`, `CrashReporting` or `WebViewTracking` as needed. + +> **`DatadogNet.Flags.iOS` and `DatadogNet.Profiling.iOS` expose no callable API.** Upstream ships +> these modules but has not projected them into Objective-C, so there is nothing for C# to bind. +> The packages exist so the set mirrors the SDK and so adding the API later is a version bump. There +> is no reason to reference them today. > **The dependency graph is the real one**, read off the frameworks' Mach-O load commands. -> `DatadogInternal` is the root: `DatadogCore` and `DatadogTrace` depend on *it*, not the other way -> round. The previous `DataDog-SDK-iOS-net` packages declared the reverse, and `DatadogTrace.iOS` -> did not declare `OpenTelemetryApi.iOS` at all — so referencing Trace alone did not link. +> `DatadogInternal` is the root; every product module depends on it, and `DatadogTrace` also on +> `OpenTelemetryApi`. **Target frameworks**: `net8.0-ios18.0`, `net9.0-ios18.0`, `net10.0-ios26.0`. **Minimum deployment target**: iOS **12.2** — the Datadog frameworks are Swift and use the -OS-provided Swift runtime, which is only ABI-stable from 12.2. +OS-provided Swift runtime, ABI-stable from 12.2. --- @@ -88,66 +91,66 @@ OS-provided Swift runtime, which is only ABI-stable from 12.2. ```xml - + + ``` -```xml -12.2 -``` - -The packages are iOS-only. In a multi-targeted MAUI project, guard the reference so an Android or -Windows head does not try to restore them: +In a multi-targeted MAUI project, guard the references so an Android or Windows head does not try to +restore them: ```xml - + + ``` +```xml +12.2 +``` + --- ## Usage -The C# names are the Objective-C selectors projected into C#, so -`initializeWithConfiguration:trackingConsent:` becomes -`InitializeWithConfiguration(configuration, consent)`. Everything is in the `DatadogObjc` -namespace. - -[`samples/DatadogNet.iOS.Example`](samples/DatadogNet.iOS.Example) is a working MAUI app that does -all of the below; [`Datadog.cs`](samples/DatadogNet.iOS.Example/Datadog.cs) is the setup in one file. +The C# names are the Objective-C selectors projected into C#. Each feature is in its own namespace +now — one `using` per module. [`samples/DatadogNet.iOS.Example`](samples/DatadogNet.iOS.Example) is +a working MAUI app that does all of the below; +[`Datadog.cs`](samples/DatadogNet.iOS.Example/Datadog.cs) is the setup in one file. ### Initialize -Once, as early as possible. In MAUI that means `MauiProgram.CreateMauiApp` before the builder runs — -crash reporting only covers what happens after it is enabled, and startup crashes are the ones -worth catching. +Once, as early as possible — in MAUI, in `MauiProgram.CreateMauiApp` before the builder runs, so +crash reporting and startup metrics cover the whole launch. ```csharp +using DatadogCore; +using DatadogInternal; // DDCoreLoggerLevel + var configuration = new DDConfiguration(clientToken: "", env: "production") { Service = "my-app", - Site = DDSite.Us1, // Us1, Us3, Us5, Eu1, Ap1, Us1_fed + Site = DDSite.Us1(), // Us1, Us3, Us5, Eu1, Ap1, Ap2, Us1_fed }; -DDDatadog.InitializeWithConfiguration(configuration, DDTrackingConsent.Granted); -DDDatadog.VerbosityLevel = DDSDKVerbosityLevel.Warn; // SDK problems to the Xcode console +DDDatadog.InitializeWithConfiguration(configuration, DDTrackingConsent.Granted()); +DDDatadog.SetVerbosityLevel(DDCoreLoggerLevel.Warn); // SDK problems to the Xcode console ``` -`DDConfiguration` also exposes `BatchSize`, `UploadFrequency`, `BatchProcessingLevel`, -`ProxyConfiguration`, `AdditionalConfiguration`, and hooks for custom encryption and server-date -providers. +`DDSite` and `DDTrackingConsent` are classes of static factory methods, so the values are called: +`DDSite.Us1()`, `DDTrackingConsent.Granted()`. ### RUM ```csharp +using DatadogRUM; + var rum = new DDRUMConfiguration(applicationID: "") { SessionSampleRate = 100, TrackFrustrations = true, - TrackBackgroundEvents = true, - // Automatic UIKit instrumentation. MAUI renders through UIKit, so these report views and - // taps with no per-page code. + TrackMemoryWarnings = true, // new in 3.0 UiKitViewsPredicate = new DDDefaultUIKitRUMViewsPredicate(), UiKitActionsPredicate = new DDDefaultUIKitRUMActionsPredicate(), }; @@ -155,17 +158,18 @@ var rum = new DDRUMConfiguration(applicationID: "") DDRUM.EnableWith(rum); ``` -Manual reporting through `DDRUMMonitor.Shared`: +Manual reporting through `DDRUMMonitor.Shared()`: ```csharp -var monitor = DDRUMMonitor.Shared; +var monitor = DDRUMMonitor.Shared(); using (monitor.StartView("checkout", "Checkout")) { - monitor.AddAction(DDRUMActionType.Tap, "pay", new Dictionary - { - ["cart.total"] = 42.50m, - }); + // View-level attributes propagate to the actions, resources and errors recorded here - a 3.0 + // change that removes the need to repeat them on every call. + monitor.AddViewAttributes(new Dictionary { ["cart.total"] = 42.50m }); + + monitor.AddAction(DDRUMActionType.Tap, "pay"); try { /* ... */ } catch (Exception exception) { monitor.AddError(exception); } @@ -175,6 +179,8 @@ using (monitor.StartView("checkout", "Checkout")) ### Logs ```csharp +using DatadogLogs; + DDLogs.Enable(); var logger = DDLogger.Create(name: "app", bundleWithRumEnabled: true); @@ -186,11 +192,23 @@ logger.Log(DDLogLevel.Error, "payment failed", exception, new Dictionary +{ + logEvent.Message = Redact(logEvent.Message); + return logEvent; // or return null to drop the event +}); +DDLogs.EnableWith(configuration); +``` ### Trace ```csharp +using DatadogTrace; + DDTrace.EnableWith(new DDTraceConfiguration { SampleRate = 100, @@ -199,10 +217,25 @@ DDTrace.EnableWith(new DDTraceConfiguration }); ``` -For distributed tracing across your backend, attach `DDNSURLSessionDelegate` to your -`NSUrlSession`, or use the `DDRUMURLSessionTracking` / `DDTraceURLSessionTracking` first-party-host -helpers. Propagation style is chosen with `DDTracingHeaderType` — `Datadog`, `B3`, `B3multi` or -`Tracecontext`. +Header writers for distributed tracing — `DDHTTPHeadersWriter` (Datadog), `DDB3HTTPHeadersWriter` +(B3) and `DDW3CHTTPHeadersWriter` (W3C `tracecontext`). None takes a sampling argument in 3.x; +sampling is derived from the RUM `session.id`. + +### Network instrumentation + +Automatic RUM resource collection and trace propagation, from 3.0 through the unified +`DDURLSessionInstrumentation`. This binding resolves the delegate class for you: + +```csharp +using DatadogCore; + +DDURLSessionInstrumentation.Enable(); +// ... +DDURLSessionInstrumentation.Disable(); +``` + +`MySessionDelegate` must be an `NSObject` implementing `INSUrlSessionDataDelegate` with a +`[Register]` attribute. Attach it to your `NSUrlSession` as usual. ### Session Replay @@ -216,11 +249,8 @@ DDSessionReplay.EnableWith(new DDSessionReplayConfiguration( touchPrivacyLevel: DDTouchPrivacyLevel.Hide)); ``` -Requires RUM. The three levels decide what is redacted *on the device*, before anything is -uploaded, and the initializer requires all three so the choice is never left implicit. Loosen them -deliberately. - -A single view can override the session-wide levels: +Requires RUM. The three levels are required arguments, so what gets redacted *on the device* is +always an explicit choice. A single view can override them: ```csharp var overrides = myView.GetDdSessionReplayPrivacyOverrides(); @@ -228,9 +258,6 @@ overrides.TextAndInputPrivacy = DDTextAndInputPrivacyLevelOverride.MaskAll; overrides.Hide = new NSNumber(true); ``` -Set `StartRecordingImmediately = false` to enable the feature without recording, then call -`DDSessionReplay.StartRecording()` once the user has consented, and `StopRecording()` to pause. - ### Crash reporting Add `DatadogNet.CrashReporting.iOS`, then enable it **after** initializing the SDK: @@ -241,155 +268,80 @@ using DatadogCrashReporting; DDCrashReporter.Enable(); ``` -Crashes are reported on the next launch, as RUM errors and logs. Upload your app's dSYMs to Datadog -for symbolication. +The engine is KSCrash. Crashes are reported on the next launch as **RUM errors** — enable RUM too, +or they are not delivered. Upload your app's dSYMs to Datadog for symbolication. -### WebView tracking - -```csharp -using DatadogWebViewTracking; - -DDWebViewTracking.EnableWithWebView(webView, new NSSet((NSString)"example.com"), logsSampleRate: 100); -DDWebViewTracking.DisableWithWebView(webView); // on teardown -``` - -### User info and consent +### User, account and consent ```csharp DDDatadog.SetUserInfo("user-123", "Ada Lovelace", "ada@example.com"); +DDDatadog.SetAccountInfo("acct-42", "Acme Corp"); DDDatadog.SetTrackingConsent(TrackingConsent.Pending); ``` -`Pending` collects events but holds them on the device until consent is granted or refused — which -is what a prompt-on-first-launch flow wants. - --- ## Convenience API The generated binding is a faithful projection of Objective-C, which makes some things clumsy in -C#. `DatadogNet.Objc.iOS` adds a small hand-written layer over it. The generated members are all -still there; nothing is hidden or renamed. +C#. Each product module adds a small hand-written layer over it. The generated members are all still +there; nothing is hidden or renamed. | Instead of | Write | | --- | --- | -| `monitor.StartViewWithKey("k", "Name", new NSDictionary())` … `StopViewWithKey` | `using (monitor.StartView("k", "Name"))` | -| `new NSDictionary(...)` with hand-wrapped `NSObject` values | `new Dictionary { ["k"] = 42 }` on any overload below | +| `monitor.StartViewWithKey(...)` … `StopViewWithKey(...)` matched by key | `using (monitor.StartView("k", "Name"))` | +| `new NSDictionary(...)` with hand-wrapped values | `new Dictionary { ["k"] = 42 }` on any overload below | | `monitor.AddActionWithType(type, name, attributes)` | `monitor.AddAction(type, name, attributes?)` | | `monitor.AddErrorWithMessage(...)` with an `NSError` you do not have | `monitor.AddError(exception)` | -| `DDLogs.EnableWith(new DDLogsConfiguration(null))` | `DDLogs.Enable()` | +| `monitor.AddViewAttributes(nsDictionary)` | `monitor.AddViewAttributes(dictionary)` / `RemoveViewAttributes(params keys)` | +| six log methods per level, plus an `NSError` you do not have | `logger.Log(level, message, exception?, attributes?)` | | `new DDLoggerConfiguration(service, name, bool, bool, bool, float, level, bool)` | `DDLogger.Create(name: "app")` | -| six methods per level, plus an `NSError` you do not have | `logger.Log(level, message, exception?, attributes?)` | -| `DDDatadog.SetUserInfoWithId(id, null, null, empty)` | `DDDatadog.SetUserInfo(id)` | -| `DDTrackingConsent.Granted` (a class, not an enum) | `DDDatadog.SetTrackingConsent(TrackingConsent.Granted)` | -| `DDURLSessionInstrumentation.EnableWithConfiguration(...)` with a `Class` as a raw `IntPtr` | `DDURLSessionInstrumentation.Enable()` | - -The view scope is the one worth adopting everywhere: the raw API is a `StartViewWithKey` / -`StopViewWithKey` pair matched by string key, and a view left open by an early return or an -exception captures every later action and error in the session. +| `DDDatadog.SetUserInfoWithUserId(id, null, null, empty)` | `DDDatadog.SetUserInfo(id)` | +| `DDTrackingConsent.Granted()` (a factory, not an enum) | `DDDatadog.SetTrackingConsent(TrackingConsent.Granted)` | +| `DDURLSessionInstrumentation.EnableWithConfiguration(...)` with a raw `Class` handle | `DDURLSessionInstrumentation.Enable()` | Attribute values may be strings, any numeric type, `bool`, `DateTime`, `DateTimeOffset`, `Guid`, -enums, `NSObject`s, arrays, and nested dictionaries. Anything else throws `ArgumentException` -rather than being silently dropped. - -### Redacting events before upload - -Both RUM and Logs let you rewrite or drop events on the device, before anything is uploaded. This -is the supported way to keep PII out of Datadog. - -```csharp -var logs = new DDLogsConfiguration(customEndpoint: null); -logs.SetEventMapper(logEvent => -{ - logEvent.Message = Redact(logEvent.Message); - return logEvent; // or return null to drop the event entirely -}); -DDLogs.EnableWith(logs); -``` - -RUM has five equivalents — `SetViewEventMapper`, `SetActionEventMapper`, `SetResourceEventMapper`, -`SetErrorEventMapper` and `SetLongTaskEventMapper` — registered on `DDRUMConfiguration` before -`DDRUM.EnableWith`. Mappers can only be set at configuration time. - -### Network instrumentation - -```csharp -DDURLSessionInstrumentation.Enable(); -``` - -`MySessionDelegate` must be an `NSObject` implementing `INSUrlSessionDataDelegate` and carrying a -`[Register]` attribute. The raw binding takes the delegate class as an `IntPtr`, which accepts -`IntPtr.Zero` happily and then instruments nothing; the generic form resolves the Objective-C class -and throws if it does not exist. +enums, `NSObject`s, arrays, and nested dictionaries. Anything else throws `ArgumentException` rather +than being silently dropped. `DatadogAttributes` lives in `DatadogCore`. --- -## API coverage - -Every public Objective-C type Datadog declares for 2.30.2 is bound except one, and every documented -feature is reachable from C#. Measured by parsing the `-Swift.h` header each xcframework ships and -diffing it against the bound selectors — not by reading the documentation. - -The unbound type is **`DDRUMLongTaskEventLongTaskScripts`**, with the `scripts` property that -returns it. It describes JavaScript long tasks, is reachable only from inside a RUM long-task event -mapper, and a native iOS app does not produce them. - -Three further groups of *members* are deliberately not bound: - -- **Four `DDTelemetryConfigurationEventTelemetryConfiguration` properties** named after the Session - Replay privacy levels. These are read-only fields on a *telemetry* event, describing what the SDK - reported about its own configuration; they are not knobs. The real ones are on - `DDSessionReplayConfiguration`, and all of those are bound. -- **`initWithSamplingRate:` and `initWithSamplingRate:injectEncoding:` on the tracing header - writers** — deprecated upstream, and differing from the bound `initWithSampleRate:` forms only by - argument label, which Objective Sharpie cannot project as two separate initializers. -- **Three `URLSession` overloads on `DatadogURLSessionDelegate`** — see - [the note in that binding](src/DatadogNet.Internal.iOS/ApiDefinitions.cs); binding them crashes - every consuming app at startup, and they remain callable under their inherited names. +## Migrating from 2.x ---- - -## Migrating from `DatadogCore.iOS` / `DatadogObjc.iOS` +The 2.x packages (`2.30.2.1` and earlier) bound dd-sdk-ios 2.x, where every `DD*` type lived in a +single `DatadogObjc` namespace. **dd-sdk-ios 3.0 deleted that framework and moved the types into the +module each belongs to**, so migration is a code change, not a version bump. -The package IDs changed; **the namespaces and the API did not**. Migration is a `PackageReference` -edit — no `using` directive and no call site changes. +**Namespaces.** Replace `using DatadogObjc;` with a per-feature set: ```diff -- -+ +-using DatadogObjc; ++using DatadogCore; // DDDatadog, DDConfiguration, DDSite, DDTrackingConsent ++using DatadogRUM; // DDRUM, DDRUMMonitor, DDRUMConfiguration, RUM event models ++using DatadogLogs; // DDLogs, DDLogger, DDLoggerConfiguration ++using DatadogTrace; // DDTrace, DDTracer, header writers ++using DatadogInternal; // DDCoreLoggerLevel, DDTracingHeaderType ``` -| Old | New | -| --- | --- | -| `DatadogObjc.iOS` | `DatadogNet.Objc.iOS` | -| `DatadogCore.iOS` | `DatadogNet.Core.iOS` | -| `DatadogInternal.iOS` | `DatadogNet.Internal.iOS` | -| `DatadogLogs.iOS` | `DatadogNet.Logs.iOS` | -| `DatadogRUM.iOS` | `DatadogNet.RUM.iOS` | -| `DatadogTrace.iOS` | `DatadogNet.Trace.iOS` | -| `DatadogSessionReplay.iOS` | `DatadogNet.SessionReplay.iOS` | -| `DatadogWebViewTracking.iOS` | `DatadogNet.WebViewTracking.iOS` | -| `DatadogCrashReporting.iOS` | `DatadogNet.CrashReporting.iOS` | -| `CrashReporter.iOS` | `DatadogNet.CrashReporter.iOS` | -| `OpenTelemetryApi.iOS` | `DatadogNet.OpenTelemetryApi.iOS` | - -Three things genuinely changed: - -**A startup crash is fixed.** The old `DatadogInternal.iOS` bound three `URLSession` overloads that -`INSUrlSessionDataDelegate` already declares, registering each selector twice. Any app that loaded -the package died during assembly registration before running a line of its own code: +**Packages.** If you referenced `DatadogNet.Objc.iOS`, it still resolves — it is now a +dependency-only meta-package pulling Core, RUM, Logs, Trace and SessionReplay — but prefer moving to +the product modules directly. `DatadogNet.CrashReporter.iOS` is retired (KSCrash replaced +PLCrashReporter and is part of `DatadogNet.CrashReporting.iOS`). -``` -Could not register the selector 'URLSession:task:didFinishCollectingMetrics:' … because the -selector is already registered on the member 'DidFinishCollectingMetrics'. -``` +**API changes**, all upstream: -**`CrashReporter` is versioned with everything else.** It was `1.11.2.1`, tracking PLCrashReporter -upstream; it is now `2.30.2.1` like the rest, because it ships inside the same Datadog release and -the old numbering made it impossible to tell which Datadog build a given package belonged to. +| 2.x | 3.x | +| --- | --- | +| `DDSite.Us1` (property) | `DDSite.Us1()` (factory method) | +| `DDTrackingConsent.Granted` | `DDTrackingConsent.Granted()` | +| `DatadogURLSessionDelegate` / `DDNSURLSessionDelegate` | `DDURLSessionInstrumentation.Enable()` | +| `DDOTelHTTPHeadersWriter` | `DDW3CHTTPHeadersWriter` | +| `new DDHTTPHeadersWriter(samplingStrategy, injection)` | `new DDHTTPHeadersWriter(injection)` | +| `RUMView(path:)` | `RUMView(name:)` | +| crashes via Logs | crashes via RUM error tracking | -**`net7.0-ios` is gone, `net9`/`net10` are new.** The old packages targeted `net7.0-ios16.1` and -`net8.0-ios17.2`. +If you cannot make these changes yet, **stay on `2.30.2.1`** — it remains on nuget.org. Note that +the 2.x line receives no further upstream fixes. --- @@ -413,24 +365,19 @@ pinned in [`build/checksums.txt`](build/checksums.txt), and strips it to the two **Why the two-pass build.** Each .NET SDK's iOS workload supports the current target framework and the previous one — the .NET 9 band builds net8 + net9, the .NET 10 band builds net9 + net10. No single SDK builds all three, so `BuildNugets.sh` packs twice and -[`merge-packages.py`](build/merge-packages.py) grafts the net10 assets into the net9 packages, -carrying the dependency group across with them. - -**Why the slices are stripped.** The upstream archive carries tvOS for every framework, plus -macCatalyst, macOS, watchOS and visionOS for two of them, and a full set of dSYMs. None of it is -reachable from a `net*-ios` binding, and the whole xcframework is embedded in each assembly's -payload once per target framework. Stripping takes the eleven packages from roughly a gigabyte to -about 74 MB. +[`merge-packages.py`](build/merge-packages.py) grafts the net10 assets and dependency groups into +the net9 packages. ### Layout | Path | What | | --- | --- | -| `src/DatadogNet.*.iOS/` | One binding project per framework. `ApiDefinitions.cs` and `StructsAndEnums.cs` are committed sources, not generated at build time. | -| `src/Datadog.Binding.props` | Everything the eleven projects share, so each `.csproj` is a dozen lines. | -| `src/DatadogNet.Objc.iOS/Additions/` | The hand-written [convenience API](#convenience-api). | +| `src/DatadogNet.*.iOS/` | One binding project per framework. `ApiDefinitions.cs` and `StructsAndEnums.cs` are committed sources. | +| `src/Datadog.Binding.props` | Everything the binding projects share, so each `.csproj` is a dozen lines. | +| `src/DatadogNet.*.iOS/Additions/` | The hand-written [convenience API](#convenience-api), in Core, RUM and Logs. | +| `src/DatadogNet.Objc.iOS/` | The compatibility meta-package: dependencies, no assembly. | | `build/` | Fetch, pack, merge and binding-regeneration scripts, plus the checksum pins. | -| `tests/DatadogNet.iOS.PackageTests/` | Asserts the shape of the packed `.nupkg`s — 123 checks over layout, slices, manifests, dependencies and metadata. | +| `tests/DatadogNet.iOS.PackageTests/` | Asserts the shape of the packed `.nupkg`s — 127 checks. | | `tests/DatadogNet.iOS.DeviceTests/` | An iOS app that consumes the **packed packages** and drives the real SDK on a simulator. | | `samples/DatadogNet.iOS.Example/` | A MAUI app doing the same, the way an app would. | @@ -438,10 +385,10 @@ The tests consume the packed `.nupkg`s from `artifacts/` rather than referencing they exercise what actually gets published — including the inter-package dependencies, which a `ProjectReference` would bypass entirely. -`DatadogNet.sln` deliberately contains the binding projects and the tests but **not** the sample. -A solution-wide `Release` build would AOT-compile the MAUI app for device across both of its target -frameworks, which takes longer than everything else in the repository put together. Build the -sample directly, as the command in the previous section does. +`DatadogNet.sln` deliberately contains the binding projects and the tests but **not** the sample. A +solution-wide `Release` build would AOT-compile the MAUI app for device across both of its target +frameworks, which takes longer than everything else in the repository put together. Build the sample +directly, as the command in the next section does. --- @@ -450,15 +397,15 @@ sample directly, as the command in the previous section does. Requires macOS, Xcode, and the .NET 9 and .NET 10 SDKs with the `ios` workload. ```bash -./build/FetchXcFrameworks.sh # ~100 MB, verified against build/checksums.txt -./build/BuildNugets.sh # packs all eleven into artifacts/ +./build/FetchXcFrameworks.sh # ~200 MB, verified against build/checksums.txt +./build/BuildNugets.sh # packs all twelve into artifacts/ dotnet test tests/DatadogNet.iOS.PackageTests ``` Run the on-simulator smoke tests against the packed packages: ```bash -./.github/scripts/run-simulator-tests.sh 2.30.2.1 net9.0-ios18.0 +./.github/scripts/run-simulator-tests.sh 3.14.0.1 net9.0-ios18.0 ``` Build and run the sample: @@ -479,7 +426,7 @@ dotnet build samples/DatadogNet.iOS.Example/DatadogNetExample.csproj -p:RuntimeI 1. Record the new archive's hash in [`build/checksums.txt`](build/checksums.txt): ```bash - v=2.18.0 + v=3.15.0 curl -fsSL -O "https://github.com/DataDog/dd-sdk-ios/releases/download/$v/Datadog.xcframework.zip" shasum -a 256 Datadog.xcframework.zip ``` @@ -496,17 +443,18 @@ If Datadog adds or removes a framework, `FetchXcFrameworks.sh` fails loudly rath dropping a package — update the `FRAMEWORKS` list, add or remove the binding project, and update `Packages.All` in the package tests. -> **Note for 3.x.** dd-sdk-ios 3.0 removed `DatadogObjc` entirely — the `DD*` types moved into each -> feature module — dropped PLCrashReporter for KSCrash, and added `DatadogFlags` and -> `DatadogProfiling`. Moving to 3.x is a re-layout of the package set, not a version bump. +> **Note.** Objective Sharpie 3.5.116 cannot currently generate these bindings — its bundled clang +> fails on recent iOS SDK module maps. The committed sources were produced by parsing the shipped +> `-Swift.h` headers directly; `GenerateBindings.sh` documents the problem and honours a `SHARPIE` +> override for when it is fixed. --- ## Releasing -Tag it. `v2.30.2.1` builds, tests, publishes all eleven packages to nuget.org via trusted -publishing, and creates a GitHub release. The tag drives which native SDK is bound, so an older -line can be released by tagging it. +Tag it. `v3.14.0.1` builds, tests, publishes every package to nuget.org via trusted publishing, and +creates a GitHub release. The tag drives which native SDK is bound, so an older line can be released +by tagging it. Pull requests publish a `-beta..` prerelease of the whole set. @@ -516,28 +464,27 @@ Curated notes in `docs/release-notes/.md` replace the generated commit ## Troubleshooting -**Nothing appears in Datadog.** Check `Site` matches your organisation's region — this is the most -common cause. Set `DDDatadog.VerbosityLevel = DDSDKVerbosityLevel.Debug` to see the SDK's own -diagnostics in the Xcode console. +**`DDDatadog`/`DDRUMMonitor`/`DDLogger` could not be found.** The types moved namespace in 3.0. Add +the per-module `using` — see [Migrating from 2.x](#migrating-from-2x). -**`DDSessionReplay` could not be found.** It moved out of the `DatadogObjc` namespace in -dd-sdk-ios 2.19.0 and now lives only in `DatadogSessionReplay`. Add `using DatadogSessionReplay;`. +**Nothing appears in Datadog.** Check `Site` matches your organisation's region — the most common +cause. Set `DDDatadog.SetVerbosityLevel(DDCoreLoggerLevel.Debug)` to see the SDK's own diagnostics +in the Xcode console. + +**Crashes do not show up.** Crash reports are delivered through RUM in 3.x, so RUM must be enabled +alongside Crash Reporting, and dSYMs uploaded for symbolication. **`This version of .NET for iOS requires Xcode 26.0`.** Only affects `net10.0-ios26.0`. See [Building locally](#building-locally). -**Restore fails on Windows with a path-length error.** Should not happen — the native payload ships -as a single compressed file precisely to avoid it. Please file an issue. - **A framework fails to load at runtime.** Usually a partially restored package. Clear the cached -copies and restore again: -`rm -rf ~/.nuget/packages/datadognet.*`. +copies and restore again: `rm -rf ~/.nuget/packages/datadognet.*`. --- ## Licence The binding code in this repository is [MIT](LICENSE). The native binaries the packages ship are -built and published by Datadog and are Apache-2.0 — which covers `dd-sdk-ios`, PLCrashReporter and +built and published by Datadog and are Apache-2.0 — which covers `dd-sdk-ios`, KSCrash and opentelemetry-swift alike. Every package declares `MIT AND Apache-2.0` and carries both texts under `licenses/`. diff --git a/build/BuildNugets.sh b/build/BuildNugets.sh index 5cee111..d062ecc 100755 --- a/build/BuildNugets.sh +++ b/build/BuildNugets.sh @@ -2,7 +2,7 @@ set -e -# Builds and packs all eleven Datadog binding packages. Run ./FetchXcFrameworks.sh first. +# Builds and packs all twelve Datadog binding packages. Run ./FetchXcFrameworks.sh first. # # Usage: # ./BuildNugets.sh # version from Directory.Build.props @@ -32,8 +32,9 @@ PASS2_SDK="10.0.100" # Packed in dependency order. Nothing requires it - ProjectReference means MSBuild builds each # package's dependencies on demand - but it keeps the log readable and means a failure in a base -# package is reported before the ten packages built on top of it repeat the same error. -PACKAGES="Internal Core CrashReporter OpenTelemetryApi Trace Logs RUM SessionReplay WebViewTracking CrashReporting Objc" +# package is reported before the packages built on top of it repeat the same error. Objc is last: +# it is a dependency-only meta-package covering the modules DatadogObjc used to hold. +PACKAGES="Internal OpenTelemetryApi Core Trace Logs RUM SessionReplay WebViewTracking CrashReporting Flags Profiling Objc" VERSION_ARG="" if [ -n "$VERSION" ]; then diff --git a/build/FetchXcFrameworks.sh b/build/FetchXcFrameworks.sh index b9ccc92..47658bc 100755 --- a/build/FetchXcFrameworks.sh +++ b/build/FetchXcFrameworks.sh @@ -47,9 +47,11 @@ case "$DATADOG_VERSION" in esac # The eleven frameworks the archive ships. Listed rather than globbed so that a framework -# appearing or disappearing upstream - as DatadogObjc did in 3.0, and DatadogFlags in 3.x - is a -# loud failure here rather than a package that silently stops being built. -FRAMEWORKS="CrashReporter DatadogCore DatadogCrashReporting DatadogInternal DatadogLogs DatadogObjc DatadogRUM DatadogSessionReplay DatadogTrace DatadogWebViewTracking OpenTelemetryApi" +# appearing or disappearing upstream is a loud failure here rather than a package that silently +# stops being built. 3.0 exercised exactly that: DatadogObjc was removed and its contents folded +# into the product modules, CrashReporter went away when KSCrash replaced PLCrashReporter, and +# DatadogFlags and DatadogProfiling appeared. +FRAMEWORKS="DatadogCore DatadogCrashReporting DatadogFlags DatadogInternal DatadogLogs DatadogProfiling DatadogRUM DatadogSessionReplay DatadogTrace DatadogWebViewTracking OpenTelemetryApi" expected=$(sed -n "s/^$DATADOG_VERSION[[:space:]]\{1,\}\([0-9a-f]\{64\}\).*/\1/p" "$CHECKSUMS" | head -1) if [ -z "$expected" ]; then diff --git a/build/GenerateBindings.sh b/build/GenerateBindings.sh index 74e9afc..78baf28 100755 --- a/build/GenerateBindings.sh +++ b/build/GenerateBindings.sh @@ -74,7 +74,7 @@ fi FRAMEWORKS="$1" if [ -z "$FRAMEWORKS" ]; then - FRAMEWORKS="CrashReporter DatadogCore DatadogCrashReporting DatadogInternal DatadogLogs DatadogObjc DatadogRUM DatadogSessionReplay DatadogTrace DatadogWebViewTracking OpenTelemetryApi" + FRAMEWORKS="DatadogCore DatadogCrashReporting DatadogFlags DatadogInternal DatadogLogs DatadogProfiling DatadogRUM DatadogSessionReplay DatadogTrace DatadogWebViewTracking OpenTelemetryApi" fi # The SDK the headers are parsed against. Nothing is compiled here, so this only has to be a diff --git a/build/checksums.txt b/build/checksums.txt index a1f34c3..c7bde9d 100644 --- a/build/checksums.txt +++ b/build/checksums.txt @@ -19,3 +19,4 @@ 2.17.0 e948375d758527118550e5a5f89a332264309b19c96e3ec56e2bf84789b6f5f9 2.30.2 0f944182502801c7bf7e47ddc2a6a3be54fcc6067fb7f9ef8a495a86361baaa7 +3.14.0 db190871593e0bd38bb8fc2bf9c9e01b06b8d43b41460bffec658e9321d9ce6d diff --git a/build/merge-packages.py b/build/merge-packages.py index d502c77..c1f0018 100644 --- a/build/merge-packages.py +++ b/build/merge-packages.py @@ -6,9 +6,12 @@ therefore built in two passes (see BuildNugets.sh) and merged here into one package per id. For every package in PRIMARY, any lib// tree that exists in the matching ADDITIONAL package -but not in PRIMARY is copied across, and the matching is lifted out -of ADDITIONAL's nuspec so NuGet advertises the new target framework. Everything else comes from -PRIMARY unchanged. +but not in PRIMARY is copied across, and any ADDITIONAL declares and +PRIMARY does not is lifted across too. Everything else comes from PRIMARY unchanged. + +The two are tracked independently on purpose: DatadogNet.Objc.iOS is a dependency-only +meta-package with no lib/ folders, so deciding what to merge from lib/ alone left it declaring no +dependencies at all for net10. The dependency group is copied rather than synthesised as an empty one. Ten of the eleven packages here declare dependencies on their siblings, and an empty group would tell NuGet that a net10.0-ios @@ -76,37 +79,50 @@ def add_dependency_groups(nuspec: str, groups: list[str]) -> str: def merge(primary_path: Path, additional_path: Path, output_path: Path) -> list[str]: with zipfile.ZipFile(primary_path) as primary, zipfile.ZipFile(additional_path) as additional: - missing = sorted(target_frameworks(additional) - target_frameworks(primary)) - if not missing: - shutil.copy2(primary_path, output_path) - return [] - - carried = [ - name - for name in additional.namelist() - if any(name.startswith(f"lib/{tfm}/") for tfm in missing) - ] + missing_libs = sorted(target_frameworks(additional) - target_frameworks(primary)) - # Symbol packages carry no nuspec dependencies worth merging, but they do carry lib/ - # trees, so they go through the same path with whatever groups they happen to have. + # Symbol packages carry no nuspec dependencies worth merging, but they do carry lib/ trees, + # so they go through the same path with whatever groups they happen to have. additional_nuspec = next( (n for n in additional.namelist() if n.endswith(".nuspec")), None ) + primary_nuspec = next((n for n in primary.namelist() if n.endswith(".nuspec")), None) available = ( dependency_groups(additional.read(additional_nuspec).decode("utf-8-sig")) if additional_nuspec else {} ) + already = ( + dependency_groups(primary.read(primary_nuspec).decode("utf-8-sig")) + if primary_nuspec + else {} + ) - groups = [] - for tfm in missing: - group = available.get(tfm) - if group is None: + # Dependency groups are merged on their own account, not as a side effect of carrying a + # lib/ tree. A dependency-only meta-package has no lib/ folders at all, so keying the merge + # off those alone left it advertising net8 and net9 and silently offering a net10 consumer + # no dependencies whatsoever. + missing_groups = sorted(set(available) - set(already)) + + if not missing_libs and not missing_groups: + shutil.copy2(primary_path, output_path) + return [] + + carried = [ + name + for name in additional.namelist() + if any(name.startswith(f"lib/{tfm}/") for tfm in missing_libs) + ] + + for tfm in missing_libs: + if tfm not in available: raise SystemExit( f"error: {additional_path.name} ships lib/{tfm}/ but its nuspec declares no " f"dependency group for {tfm}; refusing to guess what a {tfm} consumer needs" ) - groups.append(group) + + groups = [available[tfm] for tfm in missing_groups] + missing = sorted(set(missing_libs) | set(missing_groups)) with zipfile.ZipFile(output_path, "w", zipfile.ZIP_DEFLATED) as merged: for item in primary.infolist(): diff --git a/docs/release-notes/3.14.0.1.md b/docs/release-notes/3.14.0.1.md new file mode 100644 index 0000000..fa6de94 --- /dev/null +++ b/docs/release-notes/3.14.0.1.md @@ -0,0 +1,157 @@ +## What's changed + +Moves to **dd-sdk-ios 3.14.0**, the current release, from 2.30.2. This is the 2.x → 3.x major +upgrade, and it restructures the package set: `DatadogObjc` and `CrashReporter` are gone upstream, +`DatadogFlags` and `DatadogProfiling` are new, and the `DD*` types that all lived in one namespace +now live in the module each belongs to. + +**Every app has to change code**, not just a version number. The migration table below covers it. + +> **Package versions are `.`.** `3.14.0.1` is dd-sdk-ios +> `3.14.0`, binding revision `1`. + +## ⚠️ Breaking changes + +**The `DatadogObjc` namespace is gone.** Upstream deleted the framework and moved its types into +the product modules, so a single `using DatadogObjc;` becomes one import per feature: + +```diff +-using DatadogObjc; ++using DatadogCore; // DDDatadog, DDConfiguration, DDSite, DDTrackingConsent ++using DatadogRUM; // DDRUM, DDRUMMonitor, DDRUMConfiguration, the RUM event models ++using DatadogLogs; // DDLogs, DDLogger, DDLoggerConfiguration, DDLogEvent ++using DatadogTrace; // DDTrace, DDTracer, the header writers +``` + +`DDCoreLoggerLevel` and `DDTracingHeaderType` live in `DatadogInternal`, which every module already +depends on — add `using DatadogInternal;` if you touch either. + +| Type | 2.30.2 namespace | 3.14.0 namespace | +| --- | --- | --- | +| `DDDatadog`, `DDConfiguration`, `DDSite`, `DDTrackingConsent`, `DDURLSessionInstrumentation` | `DatadogObjc` | `DatadogCore` | +| `DDRUM`, `DDRUMMonitor`, `DDRUMConfiguration`, `DDRUMView`, all RUM event models | `DatadogObjc` | `DatadogRUM` | +| `DDLogs`, `DDLogger`, `DDLoggerConfiguration`, `DDLogEvent` | `DatadogObjc` | `DatadogLogs` | +| `DDTrace`, `DDTracer`, `DDHTTPHeadersWriter`, `DDB3HTTPHeadersWriter` | `DatadogObjc` | `DatadogTrace` | +| `DDCoreLoggerLevel`, `DDTracingHeaderType` | `DatadogObjc` | `DatadogInternal` | +| `DDSessionReplay` and friends | `DatadogSessionReplay` | unchanged | + +**`DatadogNet.CrashReporter.iOS` is retired.** dd-sdk-ios 3.0 replaced PLCrashReporter with +KSCrash, which is linked into `DatadogCrashReporting` rather than shipped separately — the binary +defines 912 KSCrash symbols and no PLCrash ones. Drop the reference; `DatadogNet.CrashReporting.iOS` +is self-contained now. Every `PLCrashReporter*` type is gone with it. + +Crash reports are now delivered through **RUM error tracking only**. The Logs product no longer +reports fatal errors, so RUM and Crash Reporting must both be enabled to see crashes. + +**`DatadogNet.Objc.iOS` is now a compatibility meta-package.** It ships no assembly — just +dependencies on Core, RUM, Logs, Trace and SessionReplay — so an existing `PackageReference` still +restores a working set after a version bump. It does not spare you the namespace changes above. +New apps should reference the product modules directly and ignore it. + +**Tracing header writers changed.** `DDOTelHTTPHeadersWriter` is replaced by +`DDW3CHTTPHeadersWriter`, and all of them lost their sampling argument — trace sampling is now +derived from the RUM `session.id` so a trace and its session agree. + +```diff +-var writer = new DDHTTPHeadersWriter(DDTraceSamplingStrategy.CustomWithSampleRate(100), DDTraceContextInjection.All); ++var writer = new DDHTTPHeadersWriter(DDTraceContextInjection.All); +``` + +**URLSession instrumentation is unified.** `DatadogURLSessionDelegate`, `DDURLSessionDelegate` and +`DDNSURLSessionDelegate` are all gone, replaced by `DDURLSessionInstrumentation`. This binding's +convenience overloads carry over unchanged: + +```csharp +DDURLSessionInstrumentation.Enable(); +``` + +**`RUMView(path:)` became `RUMView(name:)`.** The `DDRUMView` initializer now takes a name and an +optional `isUntrackedModal` flag. + +**Session Replay's `defaultPrivacyLevel` is gone for good.** It was deprecated in 2.19.0 and +removed in 3.0; the three fine-grained levels are required initializer arguments. If you are coming +straight from 2.17.0, see the 2.30.2.1 notes for that change. + +## Added + +**`DatadogNet.Flags.iOS` and `DatadogNet.Profiling.iOS`**, for the two new SDK modules. Both ship +the native framework but **expose no Objective-C API at all** — upstream has not projected them +into Objective-C yet, so there is nothing callable from C#. They are published so the package set +mirrors the SDK and so adding the API later is a version bump rather than a new package id. + +**View-level RUM attributes** (the headline 3.0 RUM change) — attributes set on a view now +propagate to the resources, actions, errors and long tasks recorded while it is active, instead of +having to be repeated on every call: + +```csharp +using (Datadog.Rum.StartView("checkout")) +{ + Datadog.Rum.AddViewAttributes(new Dictionary { ["cart.size"] = 3 }); + Datadog.Rum.AddAction(DDRUMActionType.Tap, "pay"); // inherits cart.size + Datadog.Rum.RemoveViewAttributes("cart.size"); +} +``` + +`AddViewAttributeForKey`, `AddViewAttributes`, `RemoveViewAttributeForKey` and +`RemoveViewAttributesForKeys` are all bound, with C#-dictionary and `params` overloads. + +**`DDRUMConfiguration.TrackMemoryWarnings`**, reporting memory warnings as RUM errors. + +**Multi-instance overloads throughout.** Nearly every entry point gained an `instanceName:` +variant, so a host app and an embedded SDK can run separate Datadog instances. + +**`DDW3CHTTPHeadersWriter`** for W3C `tracecontext` propagation. + +## Fixed + +The generator that produces these bindings was rewritten for the 3.x layout, and several classes of +defect were found and fixed along the way. Each would have compiled cleanly and failed at runtime or +corrupted a call: + +- **`extraInfo` was bound as an `out` parameter.** The pointer-to-pointer heuristic counted the `*` + inside `NSDictionary *`, so `setUserInfo`, `addUserExtraInfo` and several others + took `out` dictionaries that callers could never populate. +- **`[NullAllowed]` was missing everywhere.** Nullability is expressed in the Objective-C *type*, + not the property attribute list, so every nullable property was bound as non-null. +- **`@protocol DDFoo;` forward declarations swallowed the next interface.** `DDDataEncryption` was + bound with `DDConfiguration`'s entire member list. +- **`+ initializeWithConfiguration:trackingConsent:` was bound as a constructor** because its + selector starts with "init"; it is a static void method. Constructors are now identified by + returning `instancetype` on an instance method. +- **Swift class properties were bound twice** — once as the property and once as its `+` getter — + producing duplicate C# members. +- **Block parameters were mangled.** A naive paren match read `(void (^)(NSTimeInterval))` as the + type `void (^`; all ten block-taking methods, including every event mapper, are now `Action<>` / + `Func<>`. + +**The meta-package would have shipped without net10 dependencies.** `merge-packages.py` decided what +to merge from `lib/` folders, and a dependency-only package has none — so `DatadogNet.Objc.iOS` +advertised net8 and net9 only, and a net10 consumer would have restored it and got nothing at all. +Dependency groups are now merged independently of lib assets. + +## Tests + +The on-simulator suite is **17 checks**, run against the packed packages on both `net9.0-ios18.0` +and `net10.0-ios26.0`. It covers the new surface: view-attribute propagation, the unified URLSession +instrumentation by type, KSCrash-backed crash reporting, fine-grained Session Replay privacy with +per-view overrides, and both the RUM and Logs event mappers actually firing. + +The framework-loaded check now expects **eleven dynamic frameworks** and asserts KSCrash resolves as +a class — 3.x removes the one static-archive special case the 2.x bindings had to carry. + +Package layout tests are **127 checks**, including a new one asserting the meta-package ships +dependencies for every target framework and no assembly or payload. + +## Notes + +**Packages total about 67 MB**, up from 50 MB on 2.30.2 — the frameworks themselves grew. The +largest is `DatadogNet.Internal.iOS` at 20.7 MB, comfortably under the 250 MB nuget.org limit. + +**Objective Sharpie still cannot be used.** Version 3.5.116 bundles a clang that fails on recent +iOS SDK module maps. The bindings were generated by parsing the shipped `-Swift.h` headers directly; +`build/GenerateBindings.sh` documents the problem and honours a `SHARPIE` override for when it is +fixed. + +**The 2.x line ends at 2.30.2.1.** It remains on nuget.org and is unaffected by this release. If you +cannot take the namespace changes yet, stay there — but note that 2.x receives no further upstream +fixes. diff --git a/samples/DatadogNet.iOS.Example/Datadog.cs b/samples/DatadogNet.iOS.Example/Datadog.cs index 16770ae..bdb7828 100644 --- a/samples/DatadogNet.iOS.Example/Datadog.cs +++ b/samples/DatadogNet.iOS.Example/Datadog.cs @@ -1,6 +1,11 @@ +using DatadogCore; using DatadogCrashReporting; -using DatadogObjc; +// DDCoreLoggerLevel is declared in DatadogInternal, which every module depends on. +using DatadogInternal; +using DatadogLogs; +using DatadogRUM; using DatadogSessionReplay; +using DatadogTrace; namespace DatadogNetExample; @@ -11,6 +16,11 @@ namespace DatadogNetExample; /// This is the shape most apps end up with: one method called once at startup that configures the /// SDK and turns on the features the app uses. Everything after that goes through /// and . +/// +/// Note the using list. Up to dd-sdk-ios 2.x every DD* type lived in one DatadogObjc +/// namespace; 3.0 moved them into the module each belongs to, so a per-feature import is now the +/// norm. +/// /// public static class Datadog { @@ -25,7 +35,7 @@ public static class Datadog private static DDLogger? logger; /// The RUM monitor, for reporting views, actions and errors. - public static DDRUMMonitor Rum => DDRUMMonitor.Shared; + public static DDRUMMonitor Rum => DDRUMMonitor.Shared(); /// The app's logger. public static DDLogger Logger => @@ -40,19 +50,19 @@ public static void Initialize() var configuration = new DDConfiguration(clientToken: ClientToken, env: "sample") { Service = "datadognet-ios-example", - // Pick the site your Datadog organisation is on - Us1, Us3, Us5, Eu1, Ap1 or Us1_fed. - // Sending to the wrong one is the most common reason events never show up. - Site = DDSite.Us1, + // Pick the site your Datadog organisation is on - Us1, Us3, Us5, Eu1, Ap1, Ap2 or + // Us1_fed. Sending to the wrong one is the most common reason events never show up. + Site = DDSite.Us1(), }; // Consent must be set before, or as part of, initialization. Pending collects events but // holds them on the device until consent is granted or refused, which is what a GDPR // prompt-on-first-launch flow wants. - DDDatadog.InitializeWithConfiguration(configuration, DDTrackingConsent.Granted); + DDDatadog.InitializeWithConfiguration(configuration, DDTrackingConsent.Granted()); // Logs SDK problems to the Xcode console. Worth leaving on while integrating - it is how // you find out that, say, the client token is wrong. - DDDatadog.VerbosityLevel = DDSDKVerbosityLevel.Warn; + DDDatadog.SetVerbosityLevel(DDCoreLoggerLevel.Warn); EnableRum(); EnableLogs(); @@ -60,7 +70,8 @@ public static void Initialize() EnableSessionReplay(); // Crash reporting is enabled after the SDK is initialized, never before: it attaches to - // the RUM and Logs features to report the crash on the next launch. + // RUM to report the crash on the next launch. From 3.0 the engine is KSCrash, and crashes + // are reported through RUM error tracking rather than Logs. DDCrashReporter.Enable(); } @@ -73,6 +84,8 @@ private static void EnableRum() // Detects rage taps, dead clicks and error taps. TrackFrustrations = true, TrackBackgroundEvents = true, + // New in 3.0: reports memory warnings as RUM errors. + TrackMemoryWarnings = true, // Automatic UIKit instrumentation. MAUI renders through UIKit, so these report views // and taps without any per-page code - the manual StartView calls in MainPage are @@ -114,13 +127,10 @@ private static void EnableSessionReplay() { // Session Replay requires RUM, so it is enabled last. // - // From dd-sdk-ios 2.19.0 the single defaultPrivacyLevel is replaced by three independent - // levels, and they are required by the initializer rather than defaulted - so the choice - // is made deliberately rather than inherited. Replay records the screen, and these decide - // what is redacted *on the device*, before anything is uploaded. - // - // These are the most private settings: mask every text and input, mask every image, and - // hide touches. Loosen them deliberately, not by accident. + // The three privacy levels are required arguments, so the choice is never implicit. Replay + // records the screen, and these decide what is redacted *on the device*, before anything is + // uploaded. These are the most private settings: mask every text and input, mask every + // image, hide touches. Loosen them deliberately, not by accident. DDSessionReplay.EnableWith(new DDSessionReplayConfiguration( replaySampleRate: 100, textAndInputPrivacyLevel: DDTextAndInputPrivacyLevel.MaskAll, diff --git a/samples/DatadogNet.iOS.Example/DatadogNetExample.csproj b/samples/DatadogNet.iOS.Example/DatadogNetExample.csproj index 93ec2dc..9dbb2ab 100644 --- a/samples/DatadogNet.iOS.Example/DatadogNetExample.csproj +++ b/samples/DatadogNet.iOS.Example/DatadogNetExample.csproj @@ -47,18 +47,23 @@ $(VersionPrefix) - + + + + + diff --git a/samples/DatadogNet.iOS.Example/MainPage.xaml.cs b/samples/DatadogNet.iOS.Example/MainPage.xaml.cs index b7feedc..82d8247 100644 --- a/samples/DatadogNet.iOS.Example/MainPage.xaml.cs +++ b/samples/DatadogNet.iOS.Example/MainPage.xaml.cs @@ -1,4 +1,5 @@ -using DatadogObjc; +using DatadogLogs; +using DatadogRUM; namespace DatadogNetExample; diff --git a/src/DatadogNet.Objc.iOS/Additions/Attributes.cs b/src/DatadogNet.Core.iOS/Additions/Attributes.cs similarity index 94% rename from src/DatadogNet.Objc.iOS/Additions/Attributes.cs rename to src/DatadogNet.Core.iOS/Additions/Attributes.cs index afdc654..4b7db7f 100644 --- a/src/DatadogNet.Objc.iOS/Additions/Attributes.cs +++ b/src/DatadogNet.Core.iOS/Additions/Attributes.cs @@ -7,18 +7,21 @@ using System.Collections.Generic; using Foundation; -namespace DatadogObjc +namespace DatadogCore { /// /// Converts C# attribute dictionaries into the NSDictionary<NSString, NSObject> /// the Datadog API takes. /// /// - /// Almost every RUM and Logs call ends in an attributes parameter, and the bound signature + /// Lives in DatadogCore because RUM, Logs and Trace all need it and all depend on Core. +/// +/// Almost every RUM and Logs call ends in an attributes parameter, and the bound signature /// requires one even when there is nothing to attach - so the raw binding forces /// new NSDictionary<NSString, NSObject>() at hundreds of call sites, and forces /// callers to hand-wrap every value in an NSObject. These helpers are what the - /// convenience overloads throughout this assembly are built on. + /// convenience overloads across these packages are built on. + /// /// public static class DatadogAttributes { diff --git a/src/DatadogNet.Objc.iOS/Additions/DDDatadog.Ergonomics.cs b/src/DatadogNet.Core.iOS/Additions/DDDatadog.Ergonomics.cs similarity index 53% rename from src/DatadogNet.Objc.iOS/Additions/DDDatadog.Ergonomics.cs rename to src/DatadogNet.Core.iOS/Additions/DDDatadog.Ergonomics.cs index bf1ba01..28607f7 100644 --- a/src/DatadogNet.Objc.iOS/Additions/DDDatadog.Ergonomics.cs +++ b/src/DatadogNet.Core.iOS/Additions/DDDatadog.Ergonomics.cs @@ -1,36 +1,48 @@ -// Nullable annotations are enabled per file rather than for the project: the generated -// binding sources are not written against a nullable context, and switching the whole -// project over would bury real warnings here under hundreds of generated ones. +// Nullable annotations are enabled per file rather than for the project: the generated binding +// sources are not written against a nullable context, and switching the whole project over would +// bury real warnings here under hundreds of generated ones. #nullable enable using System; using System.Collections.Generic; using Foundation; -namespace DatadogObjc +namespace DatadogCore { public partial class DDDatadog { /// Sets the current user, so events can be attributed to them. - /// Your identifier for the user. + /// Your identifier for the user. Required from dd-sdk-ios 2.24.0. /// The user's display name, if you have one. /// The user's email address, if you have one. /// Any further attributes to attach to the user. /// - /// The bound takes all four arguments and no defaults, so - /// setting only an id means passing two nulls and an empty dictionary. Every argument here - /// but the id is optional. + /// The bound SetUserInfoWithUserId takes all four arguments and no defaults, + /// so setting only an id means passing two nulls and an empty dictionary. /// public static void SetUserInfo ( - string id, + string userId, string? name = null, string? email = null, IReadOnlyDictionary? extraInfo = null) { - if (id is null) - throw new ArgumentNullException (nameof (id)); + if (userId is null) + throw new ArgumentNullException (nameof (userId)); - SetUserInfoWithId (id, name, email, DatadogAttributes.From (extraInfo)); + SetUserInfoWithUserId (userId, name, email, DatadogAttributes.From (extraInfo)); + } + + /// Sets the account the user belongs to. + /// Added upstream in 2.29.0. Account details propagate to Logs, RUM and Trace. + public static void SetAccountInfo ( + string accountId, + string? name = null, + IReadOnlyDictionary? extraInfo = null) + { + if (accountId is null) + throw new ArgumentNullException (nameof (accountId)); + + SetAccountInfoWithAccountId (accountId, name, DatadogAttributes.From (extraInfo)); } /// Adds attributes to the current user without replacing the ones already set. @@ -42,19 +54,19 @@ public static void AddUserExtraInfo (IReadOnlyDictionary extraI AddUserExtraInfo (DatadogAttributes.From (extraInfo)); } - /// The current tracking consent, as a C# enum. + /// Sets tracking consent from a C# enum. /// - /// is bound as a class with three static instances rather - /// than an enum, because that is how it crosses from Swift into Objective-C. That makes it - /// awkward to store, compare or switch on from C#, so mirrors - /// it as a real enum and accepts it. + /// is bound as a class with three static factory methods + /// rather than an enum, because that is how it crosses from Swift into Objective-C. That + /// makes it awkward to store, compare or switch on, so + /// mirrors it as a real enum. /// public static void SetTrackingConsent (TrackingConsent consent) { SetTrackingConsentWithConsent (consent switch { - TrackingConsent.Granted => DDTrackingConsent.Granted, - TrackingConsent.NotGranted => DDTrackingConsent.NotGranted, - TrackingConsent.Pending => DDTrackingConsent.Pending, + TrackingConsent.Granted => DDTrackingConsent.Granted (), + TrackingConsent.NotGranted => DDTrackingConsent.NotGranted (), + TrackingConsent.Pending => DDTrackingConsent.Pending (), _ => throw new ArgumentOutOfRangeException (nameof (consent), consent, "Unknown tracking consent."), }); } @@ -62,8 +74,8 @@ public static void SetTrackingConsent (TrackingConsent consent) /// Whether the user has consented to data being collected and sent to Datadog. /// - /// A C# mirror of , which is a class of static instances rather - /// than an enum. See . + /// A C# mirror of , which is a class of static factory methods + /// rather than an enum. See . /// public enum TrackingConsent { diff --git a/src/DatadogNet.Core.iOS/Additions/DDURLSessionInstrumentation.Ergonomics.cs b/src/DatadogNet.Core.iOS/Additions/DDURLSessionInstrumentation.Ergonomics.cs new file mode 100644 index 0000000..0ea9ee7 --- /dev/null +++ b/src/DatadogNet.Core.iOS/Additions/DDURLSessionInstrumentation.Ergonomics.cs @@ -0,0 +1,85 @@ +// Nullable annotations are enabled per file rather than for the project: the generated binding +// sources are not written against a nullable context, and switching the whole project over would +// bury real warnings here under hundreds of generated ones. +#nullable enable + +using System; +using Foundation; +using ObjCRuntime; + +namespace DatadogCore +{ + public partial class DDURLSessionInstrumentationConfiguration + { + /// Creates a configuration for instrumenting . + /// + /// Your NSUrlSession delegate. It must derive from , implement + /// , and carry a so + /// the Objective-C runtime knows about it. + /// + public static DDURLSessionInstrumentationConfiguration Create () + where TDelegate : NSObject, INSUrlSessionDataDelegate + => new (ClassHandleOf (typeof (TDelegate))); + + /// + public static DDURLSessionInstrumentationConfiguration Create (Type delegateType) + => new (ClassHandleOf (delegateType)); + + /// The delegate class being instrumented, as a managed . + public Type? DelegateType => Class.Lookup (new Class (DelegateClass)); + + /// + /// Resolves a managed type to its Objective-C class handle, failing loudly if it has none. + /// + /// + /// This is the whole reason these overloads exist. The native API takes an Objective-C + /// Class, which reaches C# as a bare - nothing in the generated + /// signature suggests you are meant to pass Class.GetHandle(typeof(T)), and passing + /// is accepted silently and then instruments nothing at all. + /// + internal static IntPtr ClassHandleOf (Type delegateType) + { + if (delegateType is null) + throw new ArgumentNullException (nameof (delegateType)); + + var handle = Class.GetHandle (delegateType); + if (handle == IntPtr.Zero) { + throw new ArgumentException ( + $"'{delegateType.FullName}' is not registered with the Objective-C runtime. " + + "A URLSession delegate must derive from NSObject, implement " + + "INSUrlSessionDataDelegate, and carry a [Register] attribute.", + nameof (delegateType)); + } + + return handle; + } + } + + public partial class DDURLSessionInstrumentation + { + /// Instruments for RUM resources and tracing. + /// + /// This is the API Datadog documents for automatic network tracking from 3.0 onwards; the + /// DatadogURLSessionDelegate and DDNSURLSessionDelegate types it replaced are + /// gone. Attach the delegate to your NSUrlSession as usual - instrumentation is + /// installed on the class, not on an instance. + /// + public static void Enable () + where TDelegate : NSObject, INSUrlSessionDataDelegate + => EnableWithConfiguration (DDURLSessionInstrumentationConfiguration.Create ()); + + /// + public static void Enable (Type delegateType) + => EnableWithConfiguration (DDURLSessionInstrumentationConfiguration.Create (delegateType)); + + /// Stops instrumenting . + public static void Disable () + where TDelegate : NSObject, INSUrlSessionDataDelegate + => DisableWithDelegateClass ( + DDURLSessionInstrumentationConfiguration.ClassHandleOf (typeof (TDelegate))); + + /// + public static void Disable (Type delegateType) + => DisableWithDelegateClass (DDURLSessionInstrumentationConfiguration.ClassHandleOf (delegateType)); + } +} diff --git a/src/DatadogNet.Core.iOS/ApiDefinitions.cs b/src/DatadogNet.Core.iOS/ApiDefinitions.cs index 5a21430..a8b5848 100644 --- a/src/DatadogNet.Core.iOS/ApiDefinitions.cs +++ b/src/DatadogNet.Core.iOS/ApiDefinitions.cs @@ -1,53 +1,363 @@ using System; -using DatadogCore; +using DatadogInternal; using Foundation; using ObjCRuntime; +using UIKit; namespace DatadogCore { - // @interface __dd_private_AppLaunchHandler : NSObject + // typedef void (^UIApplicationNotificationCallback)(NSDate * _Nullable didFinishLaunchingTimeInterval, + delegate void UIApplicationNotificationCallback ([NullAllowed] NSDate didFinishLaunchingTimeInterval, [NullAllowed] NSDate didBecomeActiveTimeInterval); + + partial interface IDDDataEncryption {} + + // @protocol DDDataEncryption + [Model, Protocol] + [BaseType (typeof(NSObject))] + interface DDDataEncryption + { + [Abstract] + [Export ("encryptWithData:error:")] + NSData EncryptWithData (NSData data, [NullAllowed] out NSError error); + + [Abstract] + [Export ("decryptWithData:error:")] + NSData DecryptWithData (NSData data, [NullAllowed] out NSError error); + } + + partial interface IDDServerDateProvider {} + + // @protocol DDServerDateProvider + [Model, Protocol] + [BaseType (typeof(NSObject))] + interface DDServerDateProvider + { + [Abstract] + [Export ("synchronizeWithUpdate:")] + void SynchronizeWithUpdate (Action update); + } + + // @interface DDConfiguration + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDConfiguration + { + [Export ("clientToken", ArgumentSemantic.Copy)] + string ClientToken { get; set; } + + [Export ("env", ArgumentSemantic.Copy)] + string Env { get; set; } + + [Export ("site", ArgumentSemantic.Strong)] + DDSite Site { get; set; } + + [NullAllowed, Export ("service", ArgumentSemantic.Copy)] + string Service { get; set; } + + [NullAllowed, Export ("version", ArgumentSemantic.Copy)] + string Version { get; set; } + + [Export ("batchSize")] + DDBatchSize BatchSize { get; set; } + + [Export ("uploadFrequency")] + DDUploadFrequency UploadFrequency { get; set; } + + [Export ("batchProcessingLevel")] + DDBatchProcessingLevel BatchProcessingLevel { get; set; } + + [NullAllowed, Export ("proxyConfiguration", ArgumentSemantic.Copy)] + NSDictionary ProxyConfiguration { get; set; } + + [Export ("bundle", ArgumentSemantic.Strong)] + NSBundle Bundle { get; set; } + + [Export ("additionalConfiguration", ArgumentSemantic.Copy)] + NSDictionary AdditionalConfiguration { get; set; } + + [Export ("backgroundTasksEnabled")] + bool BackgroundTasksEnabled { get; set; } + + [Export ("setEncryption:")] + void SetEncryption (IDDDataEncryption encryption); + + [Export ("setServerDateProvider:")] + void SetServerDateProvider (IDDServerDateProvider serverDateProvider); + + [Export ("initWithClientToken:env:")] + NativeHandle Constructor (string clientToken, string env); + } + + // @interface DDCrossPlatformExtension + [BaseType (typeof(NSObject))] + interface DDCrossPlatformExtension + { + [Static] + [Export ("subscribeToSharedContext:")] + void SubscribeToSharedContext (Action toSharedContext); + + [Static] + [Export ("unsubscribeFromSharedContext")] + void UnsubscribeFromSharedContext (); + } + + // @interface DDDatadog + [BaseType (typeof(NSObject))] + interface DDDatadog + { + [Static] + [Export ("initializeWithConfiguration:trackingConsent:")] + void InitializeWithConfiguration (DDConfiguration configuration, DDTrackingConsent trackingConsent); + + [Static] + [Export ("initializeWithConfiguration:trackingConsent:instanceName:")] + void InitializeWithConfiguration (DDConfiguration configuration, DDTrackingConsent trackingConsent, string instanceName); + + [Static] + [Export ("setVerbosityLevel:")] + void SetVerbosityLevel (DDCoreLoggerLevel verbosityLevel); + + [Static] + [Export ("verbosityLevel")] + DDCoreLoggerLevel VerbosityLevel (); + + [Static] + [Export ("setUserInfoWithUserId:name:email:extraInfo:")] + void SetUserInfoWithUserId (string userId, [NullAllowed] string name, [NullAllowed] string email, NSDictionary extraInfo); + + [Static] + [Export ("setUserInfoWithUserId:instanceName:name:email:extraInfo:")] + void SetUserInfoWithUserId (string userId, [NullAllowed] string instanceName, [NullAllowed] string name, [NullAllowed] string email, NSDictionary extraInfo); + + [Static] + [Export ("clearUserInfo")] + void ClearUserInfo (); + + [Static] + [Export ("clearUserInfoWithInstanceName:")] + void ClearUserInfoWithInstanceName ([NullAllowed] string instanceName); + + [Static] + [Export ("addUserExtraInfo:")] + void AddUserExtraInfo (NSDictionary extraInfo); + + [Static] + [Export ("addUserExtraInfo:instanceName:")] + void AddUserExtraInfo (NSDictionary extraInfo, [NullAllowed] string instanceName); + + [Static] + [Export ("setAccountInfoWithAccountId:name:extraInfo:")] + void SetAccountInfoWithAccountId (string accountId, [NullAllowed] string name, NSDictionary extraInfo); + + [Static] + [Export ("setAccountInfoWithAccountId:instanceName:name:extraInfo:")] + void SetAccountInfoWithAccountId (string accountId, [NullAllowed] string instanceName, [NullAllowed] string name, NSDictionary extraInfo); + + [Static] + [Export ("addAccountExtraInfo:")] + void AddAccountExtraInfo (NSDictionary extraInfo); + + [Static] + [Export ("addAccountExtraInfo:instanceName:")] + void AddAccountExtraInfo (NSDictionary extraInfo, [NullAllowed] string instanceName); + + [Static] + [Export ("clearAccountInfo")] + void ClearAccountInfo (); + + [Static] + [Export ("clearAccountInfoWithInstanceName:")] + void ClearAccountInfoWithInstanceName ([NullAllowed] string instanceName); + + [Static] + [Export ("setTrackingConsentWithConsent:")] + void SetTrackingConsentWithConsent (DDTrackingConsent consent); + + [Static] + [Export ("setTrackingConsentWithConsent:instanceName:")] + void SetTrackingConsentWithConsent (DDTrackingConsent consent, [NullAllowed] string instanceName); + + [Static] + [Export ("isInitialized")] + bool IsInitialized (); + + [Static] + [Export ("isInitializedWithInstanceName:")] + bool IsInitializedWithInstanceName ([NullAllowed] string instanceName); + + [Static] + [Export ("stopInstance")] + void StopInstance (); + + [Static] + [Export ("stopInstanceWithInstanceName:")] + void StopInstanceWithInstanceName ([NullAllowed] string instanceName); + + [Static] + [Export ("clearAllData")] + void ClearAllData (); + + [Static] + [Export ("clearAllDataWithInstanceName:")] + void ClearAllDataWithInstanceName ([NullAllowed] string instanceName); + } + + // @interface DDSharedContext + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDSharedContext + { + [NullAllowed, Export ("userId", ArgumentSemantic.Copy)] + string UserId { get; } + + [NullAllowed, Export ("accountId", ArgumentSemantic.Copy)] + string AccountId { get; } + } + + // @interface DDSite [BaseType (typeof(NSObject))] [DisableDefaultCtor] + interface DDSite + { + [Static] + [Export ("us1")] + DDSite Us1 (); + + [Static] + [Export ("us3")] + DDSite Us3 (); + + [Static] + [Export ("us5")] + DDSite Us5 (); + + [Static] + [Export ("eu1")] + DDSite Eu1 (); + + [Static] + [Export ("ap1")] + DDSite Ap1 (); + + [Static] + [Export ("ap2")] + DDSite Ap2 (); + + [Static] + [Export ("us1_fed")] + DDSite Us1_fed (); + + [Static] + [Export ("us2_fed")] + DDSite Us2_fed (); + } + + // @interface DDTrackingConsent + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTrackingConsent + { + [Static] + [Export ("granted")] + DDTrackingConsent Granted (); + + [Static] + [Export ("notGranted")] + DDTrackingConsent NotGranted (); + + [Static] + [Export ("pending")] + DDTrackingConsent Pending (); + } + + // @interface DDURLSessionInstrumentation + [BaseType (typeof(NSObject))] + interface DDURLSessionInstrumentation + { + [Static] + [Export ("enableDurationBreakdownWith:")] + void EnableDurationBreakdownWith (DDURLSessionInstrumentationConfiguration configuration); + + [Static] + [Export ("enableDurationBreakdownWith:instanceName:")] + void EnableDurationBreakdownWith (DDURLSessionInstrumentationConfiguration configuration, [NullAllowed] string instanceName); + + [Static] + [Export ("enableWithConfiguration:")] + void EnableWithConfiguration (DDURLSessionInstrumentationConfiguration configuration); + + [Static] + [Export ("enableWithConfiguration:instanceName:")] + void EnableWithConfiguration (DDURLSessionInstrumentationConfiguration configuration, [NullAllowed] string instanceName); + + [Static] + [Export ("disableWithDelegateClass:")] + void DisableWithDelegateClass (IntPtr delegateClass); + + [Static] + [Export ("disableWithDelegateClass:instanceName:")] + void DisableWithDelegateClass (IntPtr delegateClass, [NullAllowed] string instanceName); + } + + // @interface DDURLSessionInstrumentationConfiguration + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDURLSessionInstrumentationConfiguration + { + [Export ("delegateClass")] + IntPtr DelegateClass { get; set; } + + [Export ("initWithDelegateClass:")] + NativeHandle Constructor (IntPtr delegateClass); + + [Export ("setFirstPartyHostsTracing:")] + void SetFirstPartyHostsTracing (DDURLSessionInstrumentationFirstPartyHostsTracing firstPartyHostsTracing); + } + + // @interface DDURLSessionInstrumentationFirstPartyHostsTracing + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDURLSessionInstrumentationFirstPartyHostsTracing + { + [Export ("initWithHostsWithHeaderTypes:")] + NativeHandle Constructor (NSDictionary> hostsWithHeaderTypes); + + [Export ("initWithHosts:")] + NativeHandle Constructor (NSSet hosts); + } + + // @interface __dd_private_AppLaunchHandler + [BaseType (typeof(NSObject))] interface __dd_private_AppLaunchHandler { - // @property (readonly, class) __dd_private_AppLaunchHandler * _Nonnull shared; [Static] [Export ("shared")] __dd_private_AppLaunchHandler Shared { get; } - // @property (readonly, atomic) NSDate * _Nonnull launchDate; - [Export ("launchDate")] - NSDate LaunchDate { get; } + [Export ("taskPolicyRole")] + nint TaskPolicyRole { get; } - // @property (readonly, atomic) NSNumber * _Nullable launchTime; - [NullAllowed, Export ("launchTime")] - NSNumber LaunchTime { get; } + [Export ("processLaunchDate")] + NSDate ProcessLaunchDate { get; } - // @property (readonly, atomic) BOOL isActivePrewarm; - [Export ("isActivePrewarm")] - bool IsActivePrewarm { get; } + [Export ("runtimeLoadDate")] + NSDate RuntimeLoadDate { get; } - // -(instancetype _Nonnull)initWithProcessInfo:(NSProcessInfo * _Nonnull)processInfo; - [Export ("initWithProcessInfo:")] - NativeHandle Constructor (NSProcessInfo processInfo); + [Export ("runtimePreMainDate")] + NSDate RuntimePreMainDate { get; } - // -(void)observeNotificationCenter:(NSNotificationCenter * _Nonnull)notificationCenter; [Export ("observeNotificationCenter:")] void ObserveNotificationCenter (NSNotificationCenter notificationCenter); - // -(void)setApplicationDidBecomeActiveCallback:(UIApplicationDidBecomeActiveCallback _Nonnull)callback; - [Export ("setApplicationDidBecomeActiveCallback:")] - void SetApplicationDidBecomeActiveCallback (UIApplicationDidBecomeActiveCallback callback); + [Export ("setApplicationNotificationCallback:")] + void SetApplicationNotificationCallback (UIApplicationNotificationCallback callback); } - // typedef void (^UIApplicationDidBecomeActiveCallback)(NSTimeInterval); - delegate void UIApplicationDidBecomeActiveCallback (double arg0); - - // @interface __dd_private_ObjcExceptionHandler : NSObject + // @interface __dd_private_ObjcExceptionHandler [BaseType (typeof(NSObject))] + [DisableDefaultCtor] interface __dd_private_ObjcExceptionHandler { - // +(BOOL)catchException:(void (^ _Nonnull)(void))tryBlock error:(NSError * _Nullable * _Nullable)error __attribute__((swift_name("rethrow(_:)"))); [Static] [Export ("catchException:error:")] bool CatchException (Action tryBlock, [NullAllowed] out NSError error); diff --git a/src/DatadogNet.Core.iOS/StructsAndEnums.cs b/src/DatadogNet.Core.iOS/StructsAndEnums.cs new file mode 100644 index 0000000..d050674 --- /dev/null +++ b/src/DatadogNet.Core.iOS/StructsAndEnums.cs @@ -0,0 +1,28 @@ +using ObjCRuntime; + +namespace DatadogCore +{ + [Native] + public enum DDBatchProcessingLevel : long + { + Low = 0, + Medium = 1, + High = 2 + } + + [Native] + public enum DDBatchSize : long + { + Small = 0, + Medium = 1, + Large = 2 + } + + [Native] + public enum DDUploadFrequency : long + { + Frequent = 0, + Average = 1, + Rare = 2 + } +} diff --git a/src/DatadogNet.CrashReporter.iOS/ApiDefinitions.cs b/src/DatadogNet.CrashReporter.iOS/ApiDefinitions.cs deleted file mode 100644 index d8cd0df..0000000 --- a/src/DatadogNet.CrashReporter.iOS/ApiDefinitions.cs +++ /dev/null @@ -1,593 +0,0 @@ -using System; -using CoreFoundation; -using CrashReporter; -using Foundation; -using ObjCRuntime; - -namespace CrashReporter -{ - // @interface PLCrashReporterConfig : NSObject - [BaseType (typeof(NSObject))] - interface PLCrashReporterConfig - { - // +(instancetype)defaultConfiguration; - [Static] - [Export ("defaultConfiguration")] - PLCrashReporterConfig DefaultConfiguration (); - - // -(instancetype)initWithBasePath:(NSString *)basePath; - [Export ("initWithBasePath:")] - NativeHandle Constructor (string basePath); - - // -(instancetype)initWithSignalHandlerType:(PLCrashReporterSignalHandlerType)signalHandlerType symbolicationStrategy:(PLCrashReporterSymbolicationStrategy)symbolicationStrategy; - [Export ("initWithSignalHandlerType:symbolicationStrategy:")] - NativeHandle Constructor (PLCrashReporterSignalHandlerType signalHandlerType, PLCrashReporterSymbolicationStrategy symbolicationStrategy); - - // -(instancetype)initWithSignalHandlerType:(PLCrashReporterSignalHandlerType)signalHandlerType symbolicationStrategy:(PLCrashReporterSymbolicationStrategy)symbolicationStrategy basePath:(NSString *)basePath; - [Export ("initWithSignalHandlerType:symbolicationStrategy:basePath:")] - NativeHandle Constructor (PLCrashReporterSignalHandlerType signalHandlerType, PLCrashReporterSymbolicationStrategy symbolicationStrategy, string basePath); - - // -(instancetype)initWithSignalHandlerType:(PLCrashReporterSignalHandlerType)signalHandlerType symbolicationStrategy:(PLCrashReporterSymbolicationStrategy)symbolicationStrategy shouldRegisterUncaughtExceptionHandler:(BOOL)shouldRegisterUncaughtExceptionHandler; - [Export ("initWithSignalHandlerType:symbolicationStrategy:shouldRegisterUncaughtExceptionHandler:")] - NativeHandle Constructor (PLCrashReporterSignalHandlerType signalHandlerType, PLCrashReporterSymbolicationStrategy symbolicationStrategy, bool shouldRegisterUncaughtExceptionHandler); - - // -(instancetype)initWithSignalHandlerType:(PLCrashReporterSignalHandlerType)signalHandlerType symbolicationStrategy:(PLCrashReporterSymbolicationStrategy)symbolicationStrategy shouldRegisterUncaughtExceptionHandler:(BOOL)shouldRegisterUncaughtExceptionHandler basePath:(NSString *)basePath; - [Export ("initWithSignalHandlerType:symbolicationStrategy:shouldRegisterUncaughtExceptionHandler:basePath:")] - NativeHandle Constructor (PLCrashReporterSignalHandlerType signalHandlerType, PLCrashReporterSymbolicationStrategy symbolicationStrategy, bool shouldRegisterUncaughtExceptionHandler, string basePath); - - // -(instancetype)initWithSignalHandlerType:symbolicationStrategy: - // shouldRegisterUncaughtExceptionHandler:basePath:maxReportBytes: - // Added in PLCrashReporter 1.12, shipped from dd-sdk-ios 2.25.0. - [Export ("initWithSignalHandlerType:symbolicationStrategy:shouldRegisterUncaughtExceptionHandler:basePath:maxReportBytes:")] - NativeHandle Constructor (PLCrashReporterSignalHandlerType signalHandlerType, PLCrashReporterSymbolicationStrategy symbolicationStrategy, bool shouldRegisterUncaughtExceptionHandler, string basePath, nuint maxReportBytes); - - // @property (readonly, nonatomic) NSUInteger maxReportBytes; - // The cap on a generated crash report. Reports above it are truncated rather than dropped. - [Export ("maxReportBytes")] - nuint MaxReportBytes { get; } - - // @property (readonly, nonatomic) NSString * basePath; - [Export ("basePath")] - string BasePath { get; } - - // @property (readonly, nonatomic) PLCrashReporterSignalHandlerType signalHandlerType; - [Export ("signalHandlerType")] - PLCrashReporterSignalHandlerType SignalHandlerType { get; } - - // @property (readonly, nonatomic) PLCrashReporterSymbolicationStrategy symbolicationStrategy; - [Export ("symbolicationStrategy")] - PLCrashReporterSymbolicationStrategy SymbolicationStrategy { get; } - - // @property (readonly, nonatomic) BOOL shouldRegisterUncaughtExceptionHandler; - [Export ("shouldRegisterUncaughtExceptionHandler")] - bool ShouldRegisterUncaughtExceptionHandler { get; } - } - - // @interface PLCrashReporter : NSObject - [BaseType (typeof(NSObject))] - interface PLCrashReporter - { - // +(PLCrashReporter *)sharedReporter __attribute__((deprecated(""))); - [Static] - [Export ("sharedReporter")] - PLCrashReporter SharedReporter(); - - // -(instancetype)initWithConfiguration:(PLCrashReporterConfig *)config; - [Export ("initWithConfiguration:")] - NativeHandle Constructor (PLCrashReporterConfig config); - - // -(BOOL)hasPendingCrashReport; - [Export ("hasPendingCrashReport")] - bool HasPendingCrashReport(); - - // -(NSData *)loadPendingCrashReportData; - [Export ("loadPendingCrashReportData")] - NSData LoadPendingCrashReportData(); - - // -(NSData *)loadPendingCrashReportDataAndReturnError:(NSError **)outError; - [Export ("loadPendingCrashReportDataAndReturnError:")] - NSData LoadPendingCrashReportDataAndReturnError (out NSError outError); - - // -(NSData *)generateLiveReportWithThread:(thread_t)thread; - [Export ("generateLiveReportWithThread:")] - NSData GenerateLiveReportWithThread (uint thread); - - // -(NSData *)generateLiveReportWithThread:(thread_t)thread error:(NSError **)outError; - [Export ("generateLiveReportWithThread:error:")] - NSData GenerateLiveReportWithThread (uint thread, out NSError outError); - - // -(NSData *)generateLiveReportWithThread:(thread_t)thread exception:(NSException *)exception error:(NSError **)outError; - [Export ("generateLiveReportWithThread:exception:error:")] - NSData GenerateLiveReportWithThread (uint thread, NSException exception, out NSError outError); - - // -(NSData *)generateLiveReport; - [Export ("generateLiveReport")] - NSData GenerateLiveReport (); - - // -(NSData *)generateLiveReportAndReturnError:(NSError **)outError; - [Export ("generateLiveReportAndReturnError:")] - NSData GenerateLiveReportAndReturnError (out NSError outError); - - // -(NSData *)generateLiveReportWithException:(NSException *)exception error:(NSError **)outError; - [Export ("generateLiveReportWithException:error:")] - NSData GenerateLiveReportWithException (NSException exception, out NSError outError); - - // -(BOOL)purgePendingCrashReport; - [Export ("purgePendingCrashReport")] - bool PurgePendingCrashReport (); - - // -(BOOL)purgePendingCrashReportAndReturnError:(NSError **)outError; - [Export ("purgePendingCrashReportAndReturnError:")] - bool PurgePendingCrashReportAndReturnError (out NSError outError); - - // -(BOOL)enableCrashReporter; - [Export ("enableCrashReporter")] - bool EnableCrashReporter (); - - // -(BOOL)enableCrashReporterAndReturnError:(NSError **)outError; - [Export ("enableCrashReporterAndReturnError:")] - bool EnableCrashReporterAndReturnError (out NSError outError); - - // -(void)setCrashCallbacks:(PLCrashReporterCallbacks *)callbacks; - [Export ("setCrashCallbacks:")] - unsafe void SetCrashCallbacks (PLCrashReporterCallbacks callbacks); - - // -(NSString *)crashReportPath; - [Export ("crashReportPath")] - string CrashReportPath (); - - // @property (nonatomic, strong) NSData * customData; - [Export ("customData", ArgumentSemantic.Strong)] - NSData CustomData { get; set; } - } - - // @interface PLCrashReportApplicationInfo : NSObject - [BaseType (typeof(NSObject))] - interface PLCrashReportApplicationInfo - { - // -(id)initWithApplicationIdentifier:(NSString *)applicationIdentifier applicationVersion:(NSString *)applicationVersion applicationMarketingVersion:(NSString *)applicationMarketingVersion; - [Export ("initWithApplicationIdentifier:applicationVersion:applicationMarketingVersion:")] - NativeHandle Constructor (string applicationIdentifier, string applicationVersion, string applicationMarketingVersion); - - // @property (readonly, nonatomic, strong) NSString * applicationIdentifier; - [Export ("applicationIdentifier", ArgumentSemantic.Strong)] - string ApplicationIdentifier { get; } - - // @property (readonly, nonatomic, strong) NSString * applicationVersion; - [Export ("applicationVersion", ArgumentSemantic.Strong)] - string ApplicationVersion { get; } - - // @property (readonly, nonatomic, strong) NSString * applicationMarketingVersion; - [Export ("applicationMarketingVersion", ArgumentSemantic.Strong)] - string ApplicationMarketingVersion { get; } - } - - // @interface PLCrashReportProcessorInfo : NSObject - [BaseType (typeof(NSObject))] - interface PLCrashReportProcessorInfo - { - // -(id)initWithTypeEncoding:(PLCrashReportProcessorTypeEncoding)typeEncoding type:(uint64_t)type subtype:(uint64_t)subtype; - [Export ("initWithTypeEncoding:type:subtype:")] - NativeHandle Constructor (PLCrashReportProcessorTypeEncoding typeEncoding, ulong type, ulong subtype); - - // @property (readonly, nonatomic) PLCrashReportProcessorTypeEncoding typeEncoding; - [Export ("typeEncoding")] - PLCrashReportProcessorTypeEncoding TypeEncoding { get; } - - // @property (readonly, nonatomic) uint64_t type; - [Export ("type")] - ulong Type { get; } - - // @property (readonly, nonatomic) uint64_t subtype; - [Export ("subtype")] - ulong Subtype { get; } - } - - // @interface PLCrashReportBinaryImageInfo : NSObject - [BaseType (typeof(NSObject))] - interface PLCrashReportBinaryImageInfo - { - // -(id)initWithCodeType:(PLCrashReportProcessorInfo *)processorInfo baseAddress:(uint64_t)baseAddress size:(uint64_t)imageSize name:(NSString *)imageName uuid:(NSData *)uuid; - [Export ("initWithCodeType:baseAddress:size:name:uuid:")] - NativeHandle Constructor (PLCrashReportProcessorInfo processorInfo, ulong baseAddress, ulong imageSize, string imageName, NSData uuid); - - // @property (readonly, nonatomic, strong) PLCrashReportProcessorInfo * codeType; - [Export ("codeType", ArgumentSemantic.Strong)] - PLCrashReportProcessorInfo CodeType { get; } - - // @property (readonly, nonatomic) uint64_t imageBaseAddress; - [Export ("imageBaseAddress")] - ulong ImageBaseAddress { get; } - - // @property (readonly, nonatomic) uint64_t imageSize; - [Export ("imageSize")] - ulong ImageSize { get; } - - // @property (readonly, nonatomic, strong) NSString * imageName; - [Export ("imageName", ArgumentSemantic.Strong)] - string ImageName { get; } - - // @property (readonly, nonatomic) BOOL hasImageUUID; - [Export ("hasImageUUID")] - bool HasImageUUID { get; } - - // @property (readonly, nonatomic, strong) NSString * imageUUID; - [Export ("imageUUID", ArgumentSemantic.Strong)] - string ImageUUID { get; } - } - - // @interface PLCrashReportSymbolInfo : NSObject - [BaseType (typeof(NSObject))] - interface PLCrashReportSymbolInfo - { - // -(id)initWithSymbolName:(NSString *)symbolName startAddress:(uint64_t)startAddress endAddress:(uint64_t)endAddress; - [Export ("initWithSymbolName:startAddress:endAddress:")] - NativeHandle Constructor (string symbolName, ulong startAddress, ulong endAddress); - - // @property (readonly, nonatomic, strong) NSString * symbolName; - [Export ("symbolName", ArgumentSemantic.Strong)] - string SymbolName { get; } - - // @property (readonly, nonatomic) uint64_t startAddress; - [Export ("startAddress")] - ulong StartAddress { get; } - - // @property (readonly, nonatomic) uint64_t endAddress; - [Export ("endAddress")] - ulong EndAddress { get; } - } - - // @interface PLCrashReportStackFrameInfo : NSObject - [BaseType (typeof(NSObject))] - interface PLCrashReportStackFrameInfo - { - // -(id)initWithInstructionPointer:(uint64_t)instructionPointer symbolInfo:(PLCrashReportSymbolInfo *)symbolInfo; - [Export ("initWithInstructionPointer:symbolInfo:")] - NativeHandle Constructor (ulong instructionPointer, PLCrashReportSymbolInfo symbolInfo); - - // @property (readonly, nonatomic) uint64_t instructionPointer; - [Export ("instructionPointer")] - ulong InstructionPointer { get; } - - // @property (readonly, nonatomic) PLCrashReportSymbolInfo * symbolInfo; - [Export ("symbolInfo")] - PLCrashReportSymbolInfo SymbolInfo { get; } - } - - // @interface PLCrashReportRegisterInfo : NSObject - [BaseType (typeof(NSObject))] - interface PLCrashReportRegisterInfo - { - // -(id)initWithRegisterName:(NSString *)registerName registerValue:(uint64_t)registerValue; - [Export ("initWithRegisterName:registerValue:")] - NativeHandle Constructor (string registerName, ulong registerValue); - - // @property (readonly, nonatomic, strong) NSString * registerName; - [Export ("registerName", ArgumentSemantic.Strong)] - string RegisterName { get; } - - // @property (readonly, nonatomic) uint64_t registerValue; - [Export ("registerValue")] - ulong RegisterValue { get; } - } - - // @interface PLCrashReportThreadInfo : NSObject - [BaseType (typeof(NSObject))] - interface PLCrashReportThreadInfo - { - // -(id)initWithThreadNumber:(NSInteger)threadNumber stackFrames:(NSArray *)stackFrames crashed:(BOOL)crashed registers:(NSArray *)registers; - [Export ("initWithThreadNumber:stackFrames:crashed:registers:")] - NativeHandle Constructor (nint threadNumber, NSObject[] stackFrames, bool crashed, NSObject[] registers); - - // @property (readonly, nonatomic) NSInteger threadNumber; - [Export ("threadNumber")] - nint ThreadNumber { get; } - - // @property (readonly, nonatomic, strong) NSArray * stackFrames; - [Export ("stackFrames", ArgumentSemantic.Strong)] - NSObject[] StackFrames { get; } - - // @property (readonly, nonatomic) BOOL crashed; - [Export ("crashed")] - bool Crashed { get; } - - // @property (readonly, nonatomic, strong) NSArray * registers; - [Export ("registers", ArgumentSemantic.Strong)] - NSObject[] Registers { get; } - } - - // @interface PLCrashReportExceptionInfo : NSObject - [BaseType (typeof(NSObject))] - interface PLCrashReportExceptionInfo - { - // -(id)initWithExceptionName:(NSString *)name reason:(NSString *)reason; - [Export ("initWithExceptionName:reason:")] - NativeHandle Constructor (string name, string reason); - - // -(id)initWithExceptionName:(NSString *)name reason:(NSString *)reason stackFrames:(NSArray *)stackFrames; - [Export ("initWithExceptionName:reason:stackFrames:")] - NativeHandle Constructor (string name, string reason, NSObject[] stackFrames); - - // @property (readonly, nonatomic, strong) NSString * exceptionName; - [Export ("exceptionName", ArgumentSemantic.Strong)] - string ExceptionName { get; } - - // @property (readonly, nonatomic, strong) NSString * exceptionReason; - [Export ("exceptionReason", ArgumentSemantic.Strong)] - string ExceptionReason { get; } - - // @property (readonly, nonatomic, strong) NSArray * stackFrames; - [Export ("stackFrames", ArgumentSemantic.Strong)] - NSObject[] StackFrames { get; } - } - - // @interface PLCrashReportMachineInfo : NSObject - [BaseType (typeof(NSObject))] - interface PLCrashReportMachineInfo - { - // -(id)initWithModelName:(NSString *)modelName processorInfo:(PLCrashReportProcessorInfo *)processorInfo processorCount:(NSUInteger)processorCount logicalProcessorCount:(NSUInteger)logicalProcessorCount; - [Export ("initWithModelName:processorInfo:processorCount:logicalProcessorCount:")] - NativeHandle Constructor (string modelName, PLCrashReportProcessorInfo processorInfo, nuint processorCount, nuint logicalProcessorCount); - - // @property (readonly, nonatomic, strong) NSString * modelName; - [Export ("modelName", ArgumentSemantic.Strong)] - string ModelName { get; } - - // @property (readonly, nonatomic, strong) PLCrashReportProcessorInfo * processorInfo; - [Export ("processorInfo", ArgumentSemantic.Strong)] - PLCrashReportProcessorInfo ProcessorInfo { get; } - - // @property (readonly, nonatomic) NSUInteger processorCount; - [Export ("processorCount")] - nuint ProcessorCount { get; } - - // @property (readonly, nonatomic) NSUInteger logicalProcessorCount; - [Export ("logicalProcessorCount")] - nuint LogicalProcessorCount { get; } - } - - // @interface PLCrashReportMachExceptionInfo : NSObject - [BaseType (typeof(NSObject))] - interface PLCrashReportMachExceptionInfo - { - // -(id)initWithType:(uint64_t)type codes:(NSArray *)codes; - [Export ("initWithType:codes:")] - NativeHandle Constructor (ulong type, NSObject[] codes); - - // @property (readonly, nonatomic) uint64_t type; - [Export ("type")] - ulong Type { get; } - - // @property (readonly, nonatomic, strong) NSArray * codes; - [Export ("codes", ArgumentSemantic.Strong)] - NSObject[] Codes { get; } - } - - // @interface PLCrashReportProcessInfo : NSObject - [BaseType (typeof(NSObject))] - interface PLCrashReportProcessInfo - { - // -(id)initWithProcessName:(NSString *)processName processID:(NSUInteger)processID processPath:(NSString *)processPath processStartTime:(NSDate *)processStartTime parentProcessName:(NSString *)parentProcessName parentProcessID:(NSUInteger)parentProcessID native:(BOOL)native; - [Export ("initWithProcessName:processID:processPath:processStartTime:parentProcessName:parentProcessID:native:")] - NativeHandle Constructor (string processName, nuint processID, string processPath, NSDate processStartTime, string parentProcessName, nuint parentProcessID, bool native); - - // @property (readonly, nonatomic, strong) NSString * processName; - [Export ("processName", ArgumentSemantic.Strong)] - string ProcessName { get; } - - // @property (readonly, nonatomic) NSUInteger processID; - [Export ("processID")] - nuint ProcessID { get; } - - // @property (readonly, nonatomic, strong) NSString * processPath; - [Export ("processPath", ArgumentSemantic.Strong)] - string ProcessPath { get; } - - // @property (readonly, nonatomic, strong) NSDate * processStartTime; - [Export ("processStartTime", ArgumentSemantic.Strong)] - NSDate ProcessStartTime { get; } - - // @property (readonly, nonatomic, strong) NSString * parentProcessName; - [Export ("parentProcessName", ArgumentSemantic.Strong)] - string ParentProcessName { get; } - - // @property (readonly, nonatomic) NSUInteger parentProcessID; - [Export ("parentProcessID")] - nuint ParentProcessID { get; } - - // @property (readonly, nonatomic) BOOL native; - [Export ("native")] - bool Native { get; } - } - - // @interface PLCrashReportSignalInfo : NSObject - [BaseType (typeof(NSObject))] - interface PLCrashReportSignalInfo - { - // -(id)initWithSignalName:(NSString *)name code:(NSString *)code address:(uint64_t)address; - [Export ("initWithSignalName:code:address:")] - NativeHandle Constructor (string name, string code, ulong address); - - // @property (readonly, nonatomic, strong) NSString * name; - [Export ("name", ArgumentSemantic.Strong)] - string Name { get; } - - // @property (readonly, nonatomic, strong) NSString * code; - [Export ("code", ArgumentSemantic.Strong)] - string Code { get; } - - // @property (readonly, nonatomic) uint64_t address; - [Export ("address")] - ulong Address { get; } - } - - [Static] - partial interface Constants - { - // extern PLCrashReportOperatingSystem PLCrashReportHostOperatingSystem; - [Field ("PLCrashReportHostOperatingSystem", "__Internal")] - PLCrashReportOperatingSystem PLCrashReportHostOperatingSystem { get; } - - // extern PLCrashReportArchitecture PLCrashReportHostArchitecture __attribute__((deprecated(""))); - [Field ("PLCrashReportHostArchitecture", "__Internal")] - PLCrashReportArchitecture PLCrashReportHostArchitecture { get; } - } - - // @interface PLCrashReportSystemInfo : NSObject - [BaseType (typeof(NSObject))] - interface PLCrashReportSystemInfo - { - // -(id)initWithOperatingSystem:(PLCrashReportOperatingSystem)operatingSystem operatingSystemVersion:(NSString *)operatingSystemVersion architecture:(PLCrashReportArchitecture)architecture timestamp:(NSDate *)timestamp __attribute__((deprecated(""))); - [Export ("initWithOperatingSystem:operatingSystemVersion:architecture:timestamp:")] - NativeHandle Constructor (PLCrashReportOperatingSystem operatingSystem, string operatingSystemVersion, PLCrashReportArchitecture architecture, NSDate timestamp); - - // -(id)initWithOperatingSystem:(PLCrashReportOperatingSystem)operatingSystem operatingSystemVersion:(NSString *)operatingSystemVersion operatingSystemBuild:(NSString *)operatingSystemBuild architecture:(PLCrashReportArchitecture)architecture timestamp:(NSDate *)timestamp __attribute__((deprecated(""))); - [Export ("initWithOperatingSystem:operatingSystemVersion:operatingSystemBuild:architecture:timestamp:")] - NativeHandle Constructor (PLCrashReportOperatingSystem operatingSystem, string operatingSystemVersion, string operatingSystemBuild, PLCrashReportArchitecture architecture, NSDate timestamp); - - // -(id)initWithOperatingSystem:(PLCrashReportOperatingSystem)operatingSystem operatingSystemVersion:(NSString *)operatingSystemVersion operatingSystemBuild:(NSString *)operatingSystemBuild architecture:(PLCrashReportArchitecture)architecture processorInfo:(PLCrashReportProcessorInfo *)processorInfo timestamp:(NSDate *)timestamp; - [Export ("initWithOperatingSystem:operatingSystemVersion:operatingSystemBuild:architecture:processorInfo:timestamp:")] - NativeHandle Constructor (PLCrashReportOperatingSystem operatingSystem, string operatingSystemVersion, string operatingSystemBuild, PLCrashReportArchitecture architecture, PLCrashReportProcessorInfo processorInfo, NSDate timestamp); - - // @property (readonly, nonatomic) PLCrashReportOperatingSystem operatingSystem; - [Export ("operatingSystem")] - PLCrashReportOperatingSystem OperatingSystem { get; } - - // @property (readonly, nonatomic, strong) NSString * operatingSystemVersion; - [Export ("operatingSystemVersion", ArgumentSemantic.Strong)] - string OperatingSystemVersion { get; } - - // @property (readonly, nonatomic, strong) NSString * operatingSystemBuild; - [Export ("operatingSystemBuild", ArgumentSemantic.Strong)] - string OperatingSystemBuild { get; } - - // @property (readonly, nonatomic) PLCrashReportArchitecture architecture __attribute__((deprecated(""))); - [Export ("architecture")] - PLCrashReportArchitecture Architecture { get; } - - // @property (readonly, nonatomic, strong) NSDate * timestamp; - [Export ("timestamp", ArgumentSemantic.Strong)] - NSDate Timestamp { get; } - - // @property (readonly, nonatomic, strong) PLCrashReportProcessorInfo * processorInfo; - [Export ("processorInfo", ArgumentSemantic.Strong)] - PLCrashReportProcessorInfo ProcessorInfo { get; } - } - - // @interface PLCrashReport : NSObject - [BaseType (typeof(NSObject))] - interface PLCrashReport - { - // -(id)initWithData:(NSData *)encodedData error:(NSError **)outError; - [Export ("initWithData:error:")] - NativeHandle Constructor (NSData encodedData, out NSError outError); - - // -(PLCrashReportBinaryImageInfo *)imageForAddress:(uint64_t)address; - [Export ("imageForAddress:")] - PLCrashReportBinaryImageInfo ImageForAddress (ulong address); - - // @property (readonly, nonatomic, strong) PLCrashReportSystemInfo * systemInfo; - [Export ("systemInfo", ArgumentSemantic.Strong)] - PLCrashReportSystemInfo SystemInfo { get; } - - // @property (readonly, nonatomic) BOOL hasMachineInfo; - [Export ("hasMachineInfo")] - bool HasMachineInfo { get; } - - // @property (readonly, nonatomic, strong) PLCrashReportMachineInfo * machineInfo; - [Export ("machineInfo", ArgumentSemantic.Strong)] - PLCrashReportMachineInfo MachineInfo { get; } - - // @property (readonly, nonatomic, strong) PLCrashReportApplicationInfo * applicationInfo; - [Export ("applicationInfo", ArgumentSemantic.Strong)] - PLCrashReportApplicationInfo ApplicationInfo { get; } - - // @property (readonly, nonatomic) BOOL hasProcessInfo; - [Export ("hasProcessInfo")] - bool HasProcessInfo { get; } - - // @property (readonly, nonatomic, strong) PLCrashReportProcessInfo * processInfo; - [Export ("processInfo", ArgumentSemantic.Strong)] - PLCrashReportProcessInfo ProcessInfo { get; } - - // @property (readonly, nonatomic, strong) PLCrashReportSignalInfo * signalInfo; - [Export ("signalInfo", ArgumentSemantic.Strong)] - PLCrashReportSignalInfo SignalInfo { get; } - - // @property (readonly, nonatomic, strong) PLCrashReportMachExceptionInfo * machExceptionInfo; - [Export ("machExceptionInfo", ArgumentSemantic.Strong)] - PLCrashReportMachExceptionInfo MachExceptionInfo { get; } - - // @property (readonly, nonatomic, strong) NSArray * threads; - [Export ("threads", ArgumentSemantic.Strong)] - NSObject[] Threads { get; } - - // @property (readonly, nonatomic, strong) NSArray * images; - [Export ("images", ArgumentSemantic.Strong)] - NSObject[] Images { get; } - - // @property (readonly, nonatomic) BOOL hasExceptionInfo; - [Export ("hasExceptionInfo")] - bool HasExceptionInfo { get; } - - // @property (readonly, nonatomic, strong) PLCrashReportExceptionInfo * exceptionInfo; - [Export ("exceptionInfo", ArgumentSemantic.Strong)] - PLCrashReportExceptionInfo ExceptionInfo { get; } - - // @property (readonly, nonatomic, strong) NSData * customData; - [Export ("customData", ArgumentSemantic.Strong)] - NSData CustomData { get; } - - // @property (readonly, nonatomic) CFUUIDRef uuidRef; - [Export ("uuidRef")] - unsafe NSUuid UuidRef { get; } - } - - // @protocol PLCrashReportFormatter - /* - Check whether adding [Model] to this declaration is appropriate. - [Model] is used to generate a C# class that implements this protocol, - and might be useful for protocols that consumers are supposed to implement, - since consumers can subclass the generated class instead of implementing - the generated interface. If consumers are not supposed to implement this - protocol, then [Model] is redundant and will generate code that will never - be used. -*/ - partial interface IPLCrashReportFormatter {} - - [Model, Protocol] - [BaseType(typeof(NSObject))] - interface PLCrashReportFormatter - { - // @required -(NSData *)formatReport:(PLCrashReport *)report error:(NSError **)outError; - [Abstract] - [Export ("formatReport:error:")] - NSData Error (PLCrashReport report, out NSError outError); - } - - // @interface PLCrashReportTextFormatter : NSObject - [BaseType (typeof(NSObject))] - interface PLCrashReportTextFormatter : PLCrashReportFormatter - { - // +(NSString *)stringValueForCrashReport:(PLCrashReport *)report withTextFormat:(PLCrashReportTextFormat)textFormat; - [Static] - [Export ("stringValueForCrashReport:withTextFormat:")] - string StringValueForCrashReport (PLCrashReport report, PLCrashReportTextFormat textFormat); - - // -(id)initWithTextFormat:(PLCrashReportTextFormat)textFormat stringEncoding:(NSStringEncoding)stringEncoding; - [Export ("initWithTextFormat:stringEncoding:")] - NativeHandle Constructor (PLCrashReportTextFormat textFormat, nuint stringEncoding); - } - - // [Static] - partial interface Constants - { - // extern NSString * PLCrashReporterException; - [Field ("PLCrashReporterException", "__Internal")] - NSString PLCrashReporterException { get; } - - // extern NSString * PLCrashReporterErrorDomain; - [Field ("PLCrashReporterErrorDomain", "__Internal")] - NSString PLCrashReporterErrorDomain { get; } - } -} diff --git a/src/DatadogNet.CrashReporter.iOS/DatadogNet.CrashReporter.iOS.csproj b/src/DatadogNet.CrashReporter.iOS/DatadogNet.CrashReporter.iOS.csproj deleted file mode 100644 index 166a903..0000000 --- a/src/DatadogNet.CrashReporter.iOS/DatadogNet.CrashReporter.iOS.csproj +++ /dev/null @@ -1,20 +0,0 @@ - - - - CrashReporter - CrashReporter - .NET for iOS / .NET MAUI bindings for PLCrashReporter, the crash-capture engine Datadog crash reporting is built on, as shipped inside the Datadog iOS SDK $(DatadogNativeVersion) release. Reference DatadogNet.CrashReporting.iOS to enable Datadog crash reporting; this package is its engine and is pulled in automatically. - plcrashreporter;crash-reporting - - - - - - - diff --git a/src/DatadogNet.CrashReporter.iOS/StructsAndEnums.cs b/src/DatadogNet.CrashReporter.iOS/StructsAndEnums.cs deleted file mode 100644 index 87f47a3..0000000 --- a/src/DatadogNet.CrashReporter.iOS/StructsAndEnums.cs +++ /dev/null @@ -1,83 +0,0 @@ -using System; -using System.Runtime.InteropServices; -using ObjCRuntime; - -namespace CrashReporter -{ - [Native] - public enum PLCrashReporterSignalHandlerType : ulong - { - Bsd = 0, - Mach = 1 - } - - [Flags] - [Native] - public enum PLCrashReporterSymbolicationStrategy : ulong - { - None = 0x0, - SymbolTable = 1uL << 0, - ObjC = 1uL << 1, - All = (SymbolTable | ObjC) - } - - [StructLayout (LayoutKind.Sequential)] - public struct PLCrashReporterCallbacks - { - public ushort version; - - public unsafe IntPtr context; - - public unsafe IntPtr handleSignal; - } - - public enum PLCrashReportProcessorTypeEncoding : uint - { - Unknown = 0, - Mach = 1 - } - - public enum PLCrashReportOperatingSystem : uint - { - MacOSX = 0, - iPhoneOS = 1, - iPhoneSimulator = 2, - Unknown = 3, - AppleTVOS = 4 - } - - public enum PLCrashReportArchitecture : uint - { - X8632 = 0, - X8664 = 1, - ARMv6 = 2, - Arm = ARMv6, - Ppc = 3, - Ppc64 = 4, - ARMv7 = 5, - Unknown = 6 - } - - [StructLayout (LayoutKind.Sequential)] - public struct PLCrashReportFileHeader - { - public sbyte[] magic; - - public byte version; - - public byte[] data; - } - - public enum PLCrashReportTextFormat : uint - { - PLCrashReportTextFormatiOS = 0 - } - - public enum PLCrashReporterError : uint - { - Unknown = 0, - OperatingSystem = 1, - CrashReportInvalid = 2, - ResourceBusy = 3 - } -} diff --git a/src/DatadogNet.CrashReporting.iOS/ApiDefinitions.cs b/src/DatadogNet.CrashReporting.iOS/ApiDefinitions.cs index f298990..6c9e3d4 100644 --- a/src/DatadogNet.CrashReporting.iOS/ApiDefinitions.cs +++ b/src/DatadogNet.CrashReporting.iOS/ApiDefinitions.cs @@ -1,24 +1,14 @@ +using System; +using DatadogInternal; using Foundation; +using ObjCRuntime; namespace DatadogCrashReporting { - [Static] - partial interface Constants - { - // extern double DatadogCrashReportingVersionNumber; - [Field ("DatadogCrashReportingVersionNumber", "__Internal")] - double DatadogCrashReportingVersionNumber { get; } - - // extern const unsigned char[] DatadogCrashReportingVersionString; - [Field ("DatadogCrashReportingVersionString", "__Internal")] - NSString DatadogCrashReportingVersionString { get; } - } - - // @interface DDCrashReporter : NSObject + // @interface DDCrashReporter [BaseType (typeof(NSObject))] interface DDCrashReporter { - // +(void)enable; [Static] [Export ("enable")] void Enable (); diff --git a/src/DatadogNet.CrashReporting.iOS/DatadogNet.CrashReporting.iOS.csproj b/src/DatadogNet.CrashReporting.iOS/DatadogNet.CrashReporting.iOS.csproj index 9398f00..8918b0b 100644 --- a/src/DatadogNet.CrashReporting.iOS/DatadogNet.CrashReporting.iOS.csproj +++ b/src/DatadogNet.CrashReporting.iOS/DatadogNet.CrashReporting.iOS.csproj @@ -3,7 +3,7 @@ DatadogCrashReporting CrashReporting - .NET for iOS / .NET MAUI bindings for the native Datadog iOS SDK's DatadogCrashReporting framework: captures native crashes and reports them as RUM errors and logs on the next launch. Built against dd-sdk-ios $(DatadogNativeVersion). Enable it after initializing the SDK; upload your app's dSYMs to Datadog for symbolication. + .NET for iOS / .NET MAUI bindings for the native Datadog iOS SDK's DatadogCrashReporting framework: captures native crashes and reports them as RUM errors on the next launch. From dd-sdk-ios 3.0 the crash engine is KSCrash, linked into this framework, so there is no separate CrashReporter package any more. Built against dd-sdk-ios $(DatadogNativeVersion). Enable it after initializing the SDK; upload your app's dSYMs to Datadog for symbolication. datadog-crash-reporting;crash-reporting @@ -19,7 +19,6 @@ - diff --git a/src/DatadogNet.Flags.iOS/ApiDefinitions.cs b/src/DatadogNet.Flags.iOS/ApiDefinitions.cs new file mode 100644 index 0000000..c47aeb0 --- /dev/null +++ b/src/DatadogNet.Flags.iOS/ApiDefinitions.cs @@ -0,0 +1,13 @@ +// DatadogFlags exposes no Objective-C API in dd-sdk-ios 3.14.0. +// +// Every type in it is Swift-only, so there is nothing for Objective Sharpie to project and nothing +// a C# caller can invoke. The package exists to ship the native framework - so that the module is +// present if another Datadog framework starts linking it, and so that adding the API later is a +// version bump rather than a new package id. +// +// This file is deliberately empty apart from the namespace: a binding project does not build +// without an ObjcBindingApiDefinition. + +namespace DatadogFlags +{ +} diff --git a/src/DatadogNet.Flags.iOS/DatadogNet.Flags.iOS.csproj b/src/DatadogNet.Flags.iOS/DatadogNet.Flags.iOS.csproj new file mode 100644 index 0000000..00ebdca --- /dev/null +++ b/src/DatadogNet.Flags.iOS/DatadogNet.Flags.iOS.csproj @@ -0,0 +1,17 @@ + + + + DatadogFlags + Flags + .NET for iOS / .NET MAUI bindings for the native Datadog iOS SDK's DatadogFlags framework: feature-flag evaluation and exposure reporting. Built against dd-sdk-ios $(DatadogNativeVersion). NOTE: upstream exposes no Objective-C API for this module yet, so it ships the native framework but no callable C# surface - see the package README. + datadog-flags;feature-flags + + + + + + + + + + diff --git a/src/DatadogNet.Internal.iOS/ApiDefinitions.cs b/src/DatadogNet.Internal.iOS/ApiDefinitions.cs index ac76c28..520e3bc 100644 --- a/src/DatadogNet.Internal.iOS/ApiDefinitions.cs +++ b/src/DatadogNet.Internal.iOS/ApiDefinitions.cs @@ -1,69 +1,45 @@ -using DatadogInternal; +using System; using Foundation; using ObjCRuntime; namespace DatadogInternal { - // @interface DatadogURLSessionDelegate : NSObject - [BaseType (typeof(NSObject), Name = "_TtC15DatadogInternal25DatadogURLSessionDelegate")] - interface DatadogURLSessionDelegate : INSUrlSessionDataDelegate + // @interface DDInternalLogger + [BaseType (typeof(NSObject))] + interface DDInternalLogger { - // -(instancetype _Nonnull)initWithAdditionalFirstPartyHosts:(NSSet * _Nonnull)additionalFirstPartyHosts; - [Export ("initWithAdditionalFirstPartyHosts:")] - NativeHandle Constructor (NSSet additionalFirstPartyHosts); + [Static] + [Export ("consolePrint:")] + void ConsolePrint (string message); - // Objective Sharpie also emitted three URLSession overloads here, for the selectors - // - // URLSession:task:didFinishCollectingMetrics: - // URLSession:dataTask:didReceiveData: - // URLSession:task:didCompleteWithError: - // - // They are deliberately not bound. INSUrlSessionDataDelegate, which this interface derives - // from, already declares all three - as DidFinishCollectingMetrics, DidReceiveData and - // DidCompleteWithError - so binding them again registers each selector twice. That is not a - // compile error: it fails at startup, when the runtime registers the assembly, and takes - // down *every* app that loads the package before a line of its own code runs: - // - // Could not register the selector 'URLSession:task:didFinishCollectingMetrics:' of the - // member 'DatadogInternal.DatadogURLSessionDelegate.URLSession' because the selector is - // already registered on the member 'DidFinishCollectingMetrics'. - // - // The methods are still callable through the inherited names, and the native class still - // implements the selectors - dropping the duplicates removes nothing but the collision. + [Static] + [Export ("telemetryDebugWithId:message:")] + void TelemetryDebugWithId (string id, string message); + + [Static] + [Export ("telemetryErrorWithId:message:kind:stack:")] + void TelemetryErrorWithId (string id, string message, [NullAllowed] string kind, [NullAllowed] string stack); } - // @protocol __URLSessionDelegateProviding - /* - Check whether adding [Model] to this declaration is appropriate. - [Model] is used to generate a C# class that implements this protocol, - and might be useful for protocols that consumers are supposed to implement, - since consumers can subclass the generated class instead of implementing - the generated interface. If consumers are not supposed to implement this - protocol, then [Model] is redundant and will generate code that will never - be used. -*/[Protocol (Name = "_TtP15DatadogInternal29__URLSessionDelegateProviding_")] - [BaseType(typeof(NSObject))] - interface __URLSessionDelegateProviding : INSUrlSessionDelegate + // @interface DDTracingHeaderType + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTracingHeaderType { - [Wrap ("WeakDdURLSessionDelegate"), Abstract] - DatadogURLSessionDelegate DdURLSessionDelegate { get; } + [Static] + [Export ("datadog", ArgumentSemantic.Strong)] + DDTracingHeaderType Datadog { get; } - // @required @property (readonly, nonatomic, strong) DatadogURLSessionDelegate * _Nonnull ddURLSessionDelegate; - [Abstract] - [NullAllowed, Export ("ddURLSessionDelegate", ArgumentSemantic.Strong)] - NSObject WeakDdURLSessionDelegate { get; } - } + [Static] + [Export ("b3multi", ArgumentSemantic.Strong)] + DDTracingHeaderType B3multi { get; } - // @interface DatadogInternal_Swift_716 (DatadogURLSessionDelegate) <__URLSessionDelegateProviding> - [Protocol, Model] - [BaseType (typeof(DatadogURLSessionDelegate))] - interface DatadogURLSessionDelegate_DatadogInternal_Swift_716 : __URLSessionDelegateProviding - { - [Wrap ("WeakDdURLSessionDelegate")] - DatadogURLSessionDelegate DdURLSessionDelegate { get; } + [Static] + [Export ("b3", ArgumentSemantic.Strong)] + DDTracingHeaderType B3 { get; } - // @property (readonly, nonatomic, strong) DatadogURLSessionDelegate * _Nonnull ddURLSessionDelegate; - [NullAllowed, Export ("ddURLSessionDelegate", ArgumentSemantic.Strong)] - NSObject WeakDdURLSessionDelegate { get; } + [Static] + [Export ("tracecontext", ArgumentSemantic.Strong)] + DDTracingHeaderType Tracecontext { get; } } } diff --git a/src/DatadogNet.Internal.iOS/StructsAndEnums.cs b/src/DatadogNet.Internal.iOS/StructsAndEnums.cs new file mode 100644 index 0000000..13b7128 --- /dev/null +++ b/src/DatadogNet.Internal.iOS/StructsAndEnums.cs @@ -0,0 +1,14 @@ +using ObjCRuntime; + +namespace DatadogInternal +{ + [Native] + public enum DDCoreLoggerLevel : long + { + None = 0, + Debug = 1, + Warn = 2, + Error = 3, + Critical = 4 + } +} diff --git a/src/DatadogNet.Objc.iOS/Additions/DDLogger.Ergonomics.cs b/src/DatadogNet.Logs.iOS/Additions/DDLogger.Ergonomics.cs similarity index 79% rename from src/DatadogNet.Objc.iOS/Additions/DDLogger.Ergonomics.cs rename to src/DatadogNet.Logs.iOS/Additions/DDLogger.Ergonomics.cs index b81dcbd..fd3dee5 100644 --- a/src/DatadogNet.Objc.iOS/Additions/DDLogger.Ergonomics.cs +++ b/src/DatadogNet.Logs.iOS/Additions/DDLogger.Ergonomics.cs @@ -1,13 +1,14 @@ -// Nullable annotations are enabled per file rather than for the project: the generated -// binding sources are not written against a nullable context, and switching the whole -// project over would bury real warnings here under hundreds of generated ones. +// Nullable annotations are enabled per file rather than for the project: the generated binding +// sources are not written against a nullable context, and switching the whole project over would +// bury real warnings here under hundreds of generated ones. #nullable enable using System; using System.Collections.Generic; +using DatadogCore; using Foundation; -namespace DatadogObjc +namespace DatadogLogs { public partial class DDLoggerConfiguration { @@ -23,8 +24,7 @@ public partial class DDLoggerConfiguration /// /// The generated type only has the designated initializer, which takes all eight settings /// positionally with no defaults - so configuring just a name means spelling out seven more - /// arguments and knowing what Datadog's defaults are. The defaults here are the ones the - /// native Logger.Configuration declares. + /// arguments and knowing what Datadog's defaults are. /// public static DDLoggerConfiguration Create ( string? name = null, @@ -54,10 +54,6 @@ public partial class DDLogs /// /// Where logs are sent. Leave null for the intake of the site the SDK was configured with. /// - /// - /// Saves constructing a only to pass null to it, which is - /// what enabling Logs with default settings otherwise requires. - /// public static void Enable (NSUrl? customEndpoint = null) => EnableWith (new DDLogsConfiguration (customEndpoint)); } @@ -65,7 +61,6 @@ public static void Enable (NSUrl? customEndpoint = null) => public partial class DDLogger { /// Creates a logger, with Datadog's own defaults for anything unset. - /// Shorthand for DDLogger.CreateWith (DDLoggerConfiguration.Create (...)). public static DDLogger Create ( string? name = null, string? service = null, @@ -89,11 +84,10 @@ public static DDLogger Create ( /// Logs at the given level, with attributes and an optional exception. /// - /// The bound API is six methods per level - one per overload of message, error and - /// attributes - and the error parameter is an , which a managed - /// exception is not. This takes the level as an argument, so a level chosen at runtime does - /// not need a switch over six method names, and accepts an by - /// folding its type, message and stack trace into the log's attributes. + /// The bound API is six methods per level and an parameter that a + /// managed exception is not. This takes the level as an argument, so a level chosen at + /// runtime does not need a switch over six method names, and folds an + /// into the log's attributes. /// public void Log ( DDLogLevel level, @@ -129,8 +123,7 @@ public void Log ( // The (message, attributes) overload, not (message, error, attributes): the native // error parameter is _Nonnull, so the generated binding throws ArgumentNullException - // rather than passing nil, and there is nothing to pass anyway - the exception has - // already been folded into the attributes above. + // rather than passing nil, and the exception has already been folded in above. switch (level) { case DDLogLevel.Debug: Debug (message, native); diff --git a/src/DatadogNet.Logs.iOS/ApiDefinitions.cs b/src/DatadogNet.Logs.iOS/ApiDefinitions.cs index e69de29..4cb98d6 100644 --- a/src/DatadogNet.Logs.iOS/ApiDefinitions.cs +++ b/src/DatadogNet.Logs.iOS/ApiDefinitions.cs @@ -0,0 +1,462 @@ +using System; +using DatadogInternal; +using Foundation; +using ObjCRuntime; + +namespace DatadogLogs +{ + // @interface DDLogEvent + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDLogEvent + { + [Export ("date", ArgumentSemantic.Copy)] + NSDate Date { get; } + + [Export ("status")] + DDLogEventStatus Status { get; } + + [Export ("message", ArgumentSemantic.Copy)] + string Message { get; set; } + + [NullAllowed, Export ("error", ArgumentSemantic.Strong)] + DDLogEventError Error { get; } + + [Export ("serviceName", ArgumentSemantic.Copy)] + string ServiceName { get; } + + [Export ("environment", ArgumentSemantic.Copy)] + string Environment { get; } + + [Export ("loggerName", ArgumentSemantic.Copy)] + string LoggerName { get; } + + [Export ("loggerVersion", ArgumentSemantic.Copy)] + string LoggerVersion { get; } + + [NullAllowed, Export ("threadName", ArgumentSemantic.Copy)] + string ThreadName { get; } + + [Export ("applicationVersion", ArgumentSemantic.Copy)] + string ApplicationVersion { get; } + + [Export ("applicationBuildNumber", ArgumentSemantic.Copy)] + string ApplicationBuildNumber { get; } + + [NullAllowed, Export ("buildId", ArgumentSemantic.Copy)] + string BuildId { get; } + + [NullAllowed, Export ("variant", ArgumentSemantic.Copy)] + string Variant { get; } + + [Export ("dd", ArgumentSemantic.Strong)] + DDLogEventDd Dd { get; } + + [Export ("device", ArgumentSemantic.Strong)] + DDLogEventDevice Device { get; } + + [Export ("os", ArgumentSemantic.Strong)] + DDLogEventOperatingSystem Os { get; } + + [Export ("userInfo", ArgumentSemantic.Strong)] + DDLogEventUserInfo UserInfo { get; } + + [NullAllowed, Export ("accountInfo", ArgumentSemantic.Strong)] + DDLogEventAccountInfo AccountInfo { get; } + + [NullAllowed, Export ("networkConnectionInfo", ArgumentSemantic.Strong)] + DDLogEventNetworkConnectionInfo NetworkConnectionInfo { get; } + + [NullAllowed, Export ("mobileCarrierInfo", ArgumentSemantic.Strong)] + DDLogEventCarrierInfo MobileCarrierInfo { get; } + + [Export ("attributes", ArgumentSemantic.Strong)] + DDLogEventAttributes Attributes { get; } + + [NullAllowed, Export ("tags", ArgumentSemantic.Copy)] + string[] Tags { get; set; } + } + + // @interface DDLogEventAccountInfo + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDLogEventAccountInfo + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("extraInfo", ArgumentSemantic.Copy)] + NSDictionary ExtraInfo { get; set; } + } + + // @interface DDLogEventAttributes + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDLogEventAttributes + { + [Export ("userAttributes", ArgumentSemantic.Copy)] + NSDictionary UserAttributes { get; set; } + } + + // @interface DDLogEventBinaryImage + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDLogEventBinaryImage + { + [NullAllowed, Export ("arch", ArgumentSemantic.Copy)] + string Arch { get; } + + [Export ("isSystem")] + bool IsSystem { get; } + + [NullAllowed, Export ("loadAddress", ArgumentSemantic.Copy)] + string LoadAddress { get; } + + [NullAllowed, Export ("maxAddress", ArgumentSemantic.Copy)] + string MaxAddress { get; } + + [Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("uuid", ArgumentSemantic.Copy)] + string Uuid { get; } + } + + // @interface DDLogEventCarrierInfo + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDLogEventCarrierInfo + { + [NullAllowed, Export ("carrierName", ArgumentSemantic.Copy)] + string CarrierName { get; } + + [NullAllowed, Export ("carrierISOCountryCode", ArgumentSemantic.Copy)] + string CarrierISOCountryCode { get; } + + [Export ("carrierAllowsVOIP")] + bool CarrierAllowsVOIP { get; } + + [Export ("radioAccessTechnology")] + DDLogEventRadioAccessTechnology RadioAccessTechnology { get; } + } + + // @interface DDLogEventDDDevice + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDLogEventDDDevice + { + [Export ("architecture", ArgumentSemantic.Copy)] + string Architecture { get; } + } + + // @interface DDLogEventDd + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDLogEventDd + { + [Export ("device", ArgumentSemantic.Strong)] + DDLogEventDDDevice Device { get; } + } + + // @interface DDLogEventDevice + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDLogEventDevice + { + [NullAllowed, Export ("architecture", ArgumentSemantic.Copy)] + string Architecture { get; } + + [NullAllowed, Export ("batteryLevel", ArgumentSemantic.Strong)] + NSNumber BatteryLevel { get; } + + [NullAllowed, Export ("brand", ArgumentSemantic.Copy)] + string Brand { get; } + + [NullAllowed, Export ("brightnessLevel", ArgumentSemantic.Strong)] + NSNumber BrightnessLevel { get; } + + [NullAllowed, Export ("isLowRam", ArgumentSemantic.Strong)] + NSNumber IsLowRam { get; } + + [NullAllowed, Export ("locale", ArgumentSemantic.Copy)] + string Locale { get; } + + [NullAllowed, Export ("locales", ArgumentSemantic.Copy)] + string[] Locales { get; } + + [NullAllowed, Export ("logicalCpuCount", ArgumentSemantic.Strong)] + NSNumber LogicalCpuCount { get; } + + [NullAllowed, Export ("model", ArgumentSemantic.Copy)] + string Model { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [NullAllowed, Export ("powerSavingMode", ArgumentSemantic.Strong)] + NSNumber PowerSavingMode { get; } + + [NullAllowed, Export ("timeZone", ArgumentSemantic.Copy)] + string TimeZone { get; } + + [NullAllowed, Export ("totalRam", ArgumentSemantic.Strong)] + NSNumber TotalRam { get; } + + [Export ("type")] + DDLogEventDeviceDeviceType Type { get; } + } + + // @interface DDLogEventError + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDLogEventError + { + [NullAllowed, Export ("kind", ArgumentSemantic.Copy)] + string Kind { get; set; } + + [NullAllowed, Export ("message", ArgumentSemantic.Copy)] + string Message { get; set; } + + [NullAllowed, Export ("stack", ArgumentSemantic.Copy)] + string Stack { get; set; } + + [Export ("sourceType", ArgumentSemantic.Copy)] + string SourceType { get; set; } + + [NullAllowed, Export ("fingerprint", ArgumentSemantic.Copy)] + string Fingerprint { get; set; } + + [NullAllowed, Export ("binaryImages", ArgumentSemantic.Copy)] + DDLogEventBinaryImage[] BinaryImages { get; set; } + } + + // @interface DDLogEventNetworkConnectionInfo + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDLogEventNetworkConnectionInfo + { + [Export ("reachability")] + DDLogEventReachability Reachability { get; } + + [NullAllowed, Export ("availableInterfaces", ArgumentSemantic.Copy)] + NSNumber[] AvailableInterfaces { get; } + + [NullAllowed, Export ("supportsIPv4", ArgumentSemantic.Strong)] + NSNumber SupportsIPv4 { get; } + + [NullAllowed, Export ("supportsIPv6", ArgumentSemantic.Strong)] + NSNumber SupportsIPv6 { get; } + + [NullAllowed, Export ("isExpensive", ArgumentSemantic.Strong)] + NSNumber IsExpensive { get; } + + [NullAllowed, Export ("isConstrained", ArgumentSemantic.Strong)] + NSNumber IsConstrained { get; } + + [Export ("linkQuality")] + DDLogEventLinkQuality LinkQuality { get; } + } + + // @interface DDLogEventOperatingSystem + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDLogEventOperatingSystem + { + [Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("version", ArgumentSemantic.Copy)] + string Version { get; } + + [NullAllowed, Export ("build", ArgumentSemantic.Copy)] + string Build { get; } + + [Export ("versionMajor", ArgumentSemantic.Copy)] + string VersionMajor { get; } + } + + // @interface DDLogEventUserInfo + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDLogEventUserInfo + { + [NullAllowed, Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [NullAllowed, Export ("email", ArgumentSemantic.Copy)] + string Email { get; } + + [NullAllowed, Export ("anonymousId", ArgumentSemantic.Copy)] + string AnonymousId { get; } + + [Export ("extraInfo", ArgumentSemantic.Copy)] + NSDictionary ExtraInfo { get; set; } + } + + // @interface DDLogger + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDLogger + { + [Export ("debug:")] + void Debug (string message); + + [Export ("debug:attributes:")] + void Debug (string message, NSDictionary attributes); + + [Export ("debug:error:attributes:")] + void Debug (string message, NSError error, NSDictionary attributes); + + [Export ("info:")] + void Info (string message); + + [Export ("info:attributes:")] + void Info (string message, NSDictionary attributes); + + [Export ("info:error:attributes:")] + void Info (string message, NSError error, NSDictionary attributes); + + [Export ("notice:")] + void Notice (string message); + + [Export ("notice:attributes:")] + void Notice (string message, NSDictionary attributes); + + [Export ("notice:error:attributes:")] + void Notice (string message, NSError error, NSDictionary attributes); + + [Export ("warn:")] + void Warn (string message); + + [Export ("warn:attributes:")] + void Warn (string message, NSDictionary attributes); + + [Export ("warn:error:attributes:")] + void Warn (string message, NSError error, NSDictionary attributes); + + [Export ("error:")] + void Error (string message); + + [Export ("error:attributes:")] + void Error (string message, NSDictionary attributes); + + [Export ("error:error:attributes:")] + void Error (string message, NSError error, NSDictionary attributes); + + [Export ("critical:")] + void Critical (string message); + + [Export ("critical:attributes:")] + void Critical (string message, NSDictionary attributes); + + [Export ("critical:error:attributes:")] + void Critical (string message, NSError error, NSDictionary attributes); + + [Export ("addAttributeForKey:value:")] + void AddAttributeForKey (string key, NSObject value); + + [Export ("removeAttributeForKey:")] + void RemoveAttributeForKey (string key); + + [Export ("addTagWithKey:value:")] + void AddTagWithKey (string key, string value); + + [Export ("removeTagWithKey:")] + void RemoveTagWithKey (string key); + + [Export ("addWithTag:")] + void AddWithTag (string tag); + + [Export ("removeWithTag:")] + void RemoveWithTag (string tag); + + [Static] + [Export ("createWith:")] + DDLogger CreateWith (DDLoggerConfiguration configuration); + + [Static] + [Export ("createWith:instanceName:")] + DDLogger CreateWith (DDLoggerConfiguration configuration, [NullAllowed] string instanceName); + } + + // @interface DDLoggerConfiguration + [BaseType (typeof(NSObject))] + interface DDLoggerConfiguration + { + [NullAllowed, Export ("service", ArgumentSemantic.Copy)] + string Service { get; set; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; set; } + + [Export ("networkInfoEnabled")] + bool NetworkInfoEnabled { get; set; } + + [Export ("bundleWithRumEnabled")] + bool BundleWithRumEnabled { get; set; } + + [Export ("bundleWithTraceEnabled")] + bool BundleWithTraceEnabled { get; set; } + + [Export ("remoteSampleRate")] + float RemoteSampleRate { get; set; } + + [Export ("printLogsToConsole")] + bool PrintLogsToConsole { get; set; } + + [Export ("remoteLogThreshold")] + DDLogLevel RemoteLogThreshold { get; set; } + + [Export ("initWithService:name:networkInfoEnabled:bundleWithRumEnabled:bundleWithTraceEnabled:remoteSampleRate:remoteLogThreshold:printLogsToConsole:")] + NativeHandle Constructor ([NullAllowed] string service, [NullAllowed] string name, bool networkInfoEnabled, bool bundleWithRumEnabled, bool bundleWithTraceEnabled, float remoteSampleRate, DDLogLevel remoteLogThreshold, bool printLogsToConsole); + } + + // @interface DDLogs + [BaseType (typeof(NSObject))] + interface DDLogs + { + [Static] + [Export ("enableWith:")] + void EnableWith (DDLogsConfiguration configuration); + + [Static] + [Export ("enableWith:instanceName:")] + void EnableWith (DDLogsConfiguration configuration, [NullAllowed] string instanceName); + + [Static] + [Export ("addAttributeForKey:value:")] + void AddAttributeForKey (string key, NSObject value); + + [Static] + [Export ("addAttributeForKey:value:instanceName:")] + void AddAttributeForKey (string key, NSObject value, [NullAllowed] string instanceName); + + [Static] + [Export ("removeAttributeForKey:")] + void RemoveAttributeForKey (string key); + + [Static] + [Export ("removeAttributeForKey:instanceName:")] + void RemoveAttributeForKey (string key, [NullAllowed] string instanceName); + } + + // @interface DDLogsConfiguration + [BaseType (typeof(NSObject))] + interface DDLogsConfiguration + { + [NullAllowed, Export ("customEndpoint", ArgumentSemantic.Copy)] + NSUrl CustomEndpoint { get; set; } + + [Export ("initWithCustomEndpoint:")] + NativeHandle Constructor ([NullAllowed] NSUrl customEndpoint); + + [Export ("setEventMapper:")] + void SetEventMapper (Func mapper); + } +} diff --git a/src/DatadogNet.Logs.iOS/StructsAndEnums.cs b/src/DatadogNet.Logs.iOS/StructsAndEnums.cs new file mode 100644 index 0000000..4723b5e --- /dev/null +++ b/src/DatadogNet.Logs.iOS/StructsAndEnums.cs @@ -0,0 +1,85 @@ +using ObjCRuntime; + +namespace DatadogLogs +{ + [Native] + public enum DDLogEventDeviceDeviceType : long + { + None = 0, + Mobile = 1, + Desktop = 2, + Tablet = 3, + Tv = 4, + GamingConsole = 5, + Bot = 6, + Other = 7 + } + + [Native] + public enum DDLogEventInterface : long + { + Wifi = 0, + WiredEthernet = 1, + Cellular = 2, + Loopback = 3, + Other = 4 + } + + [Native] + public enum DDLogEventLinkQuality : long + { + None = 0, + Good = 1, + Minimal = 2, + Moderate = 3, + Unknown = 4 + } + + [Native] + public enum DDLogEventRadioAccessTechnology : long + { + GPRS = 0, + Edge = 1, + WCDMA = 2, + HSDPA = 3, + HSUPA = 4, + CDMA1x = 5, + CDMAEVDORev0 = 6, + CDMAEVDORevA = 7, + CDMAEVDORevB = 8, + EHRPD = 9, + LTE = 10, + Unknown = 11 + } + + [Native] + public enum DDLogEventReachability : long + { + Yes = 0, + Maybe = 1, + No = 2 + } + + [Native] + public enum DDLogEventStatus : long + { + Debug = 0, + Info = 1, + Notice = 2, + Warn = 3, + Error = 4, + Critical = 5, + Emergency = 6 + } + + [Native] + public enum DDLogLevel : long + { + Debug = 0, + Info = 1, + Notice = 2, + Warn = 3, + Error = 4, + Critical = 5 + } +} diff --git a/src/DatadogNet.Objc.iOS/Additions/DDURLSessionInstrumentation.Ergonomics.cs b/src/DatadogNet.Objc.iOS/Additions/DDURLSessionInstrumentation.Ergonomics.cs deleted file mode 100644 index ba7edf4..0000000 --- a/src/DatadogNet.Objc.iOS/Additions/DDURLSessionInstrumentation.Ergonomics.cs +++ /dev/null @@ -1,97 +0,0 @@ -// Nullable annotations are enabled per file rather than for the project: the generated -// binding sources are not written against a nullable context, and switching the whole -// project over would bury real warnings here under hundreds of generated ones. -#nullable enable - -using System; -using Foundation; -using ObjCRuntime; - -namespace DatadogObjc -{ - public partial class DDURLSessionInstrumentationConfiguration - { - /// - /// Creates a configuration that instruments the given NSUrlSessionDataDelegate type. - /// - /// - /// The delegate class to instrument. Must be an subclass that - /// implements and is registered with the - /// Objective-C runtime. - /// - /// - /// The native initializer takes an Objective-C Class, which reaches C# as a bare - /// . Passing the right value means knowing to call - /// Class.GetHandle (typeof (T)) - which nothing in the generated signature hints at, - /// and which silently yields for a type the runtime does not know, - /// leaving instrumentation quietly disabled rather than failing. - /// - /// - /// is not a registered Objective-C class. - /// - public static DDURLSessionInstrumentationConfiguration Create (Type delegateType) => - new DDURLSessionInstrumentationConfiguration (HandleFor (delegateType, nameof (delegateType))); - - /// - /// The delegate class to instrument. - public static DDURLSessionInstrumentationConfiguration Create () - where TDelegate : NSObject, INSUrlSessionDataDelegate => - Create (typeof (TDelegate)); - - /// The delegate class being instrumented. - /// - /// The typed view of , which is an holding - /// an Objective-C Class. Returns if the class does not map - /// back to a managed type. - /// - public Type? DelegateType { - get => DelegateClass == IntPtr.Zero ? null : Class.Lookup (new Class (DelegateClass)); - set => DelegateClass = value is null ? IntPtr.Zero : HandleFor (value, nameof (value)); - } - - internal static IntPtr HandleFor (Type delegateType, string parameterName) - { - if (delegateType is null) - throw new ArgumentNullException (parameterName); - - var handle = Class.GetHandle (delegateType); - if (handle == IntPtr.Zero) { - throw new ArgumentException ( - $"'{delegateType.FullName}' is not a registered Objective-C class. It must derive from " + - "NSObject, implement INSUrlSessionDataDelegate, and carry a [Register] attribute.", - parameterName); - } - - return handle; - } - } - - public partial class DDURLSessionInstrumentation - { - /// Starts instrumenting the given delegate type for RUM resource and trace collection. - /// - /// Shorthand for - /// EnableWithConfiguration (DDURLSessionInstrumentationConfiguration.Create (delegateType)). - /// Enable this once, before creating the NSUrlSession that uses the delegate. - /// - public static void Enable (Type delegateType) => - EnableWithConfiguration (DDURLSessionInstrumentationConfiguration.Create (delegateType)); - - /// - /// The delegate class to instrument. - public static void Enable () - where TDelegate : NSObject, INSUrlSessionDataDelegate => - Enable (typeof (TDelegate)); - - /// Stops instrumenting the given delegate type. - public static void Disable (Type delegateType) => - DisableWithDelegateClass ( - DDURLSessionInstrumentationConfiguration.HandleFor (delegateType, nameof (delegateType))); - - /// - /// The delegate class to stop instrumenting. - public static void Disable () - where TDelegate : NSObject, INSUrlSessionDataDelegate => - Disable (typeof (TDelegate)); - } -} diff --git a/src/DatadogNet.Objc.iOS/ApiDefinitions.cs b/src/DatadogNet.Objc.iOS/ApiDefinitions.cs deleted file mode 100644 index 2675624..0000000 --- a/src/DatadogNet.Objc.iOS/ApiDefinitions.cs +++ /dev/null @@ -1,6675 +0,0 @@ -using System; -using DatadogObjc; -using Foundation; -using ObjCRuntime; -using UIKit; - -namespace DatadogObjc -{ - // @interface DDB3HTTPHeadersWriter : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc21DDB3HTTPHeadersWriter")] - [DisableDefaultCtor] - interface DDB3HTTPHeadersWriter - { - // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull traceHeaderFields; - [Export ("traceHeaderFields", ArgumentSemantic.Copy)] - NSDictionary TraceHeaderFields { get; } - - // -(instancetype _Nonnull)initWithSamplingRate:(float)samplingRate injectEncoding:(enum DDInjectEncoding)injectEncoding __attribute__((deprecated("This will be removed in future versions of the SDK. Use `init(samplingStrategy: .custom(sampleRate:))` instead."))); - //[Export ("initWithSamplingRate:injectEncoding:")] - //NativeHandle Constructor (float samplingRate, DDInjectEncoding injectEncoding); - - // -(instancetype _Nonnull)initWithSampleRate:(float)sampleRate injectEncoding:(enum DDInjectEncoding)injectEncoding __attribute__((objc_designated_initializer)) __attribute__((deprecated("This will be removed in future versions of the SDK. Use `init(samplingStrategy: .custom(sampleRate:))` instead."))); - [Export ("initWithSampleRate:injectEncoding:")] - [DesignatedInitializer] - NativeHandle Constructor (float sampleRate, DDInjectEncoding injectEncoding); - - // -(instancetype _Nonnull)initWithSamplingStrategy:(DDTraceSamplingStrategy * _Nonnull)samplingStrategy injectEncoding:(enum DDInjectEncoding)injectEncoding traceContextInjection:(enum DDTraceContextInjection)traceContextInjection __attribute__((objc_designated_initializer)); - [Export ("initWithSamplingStrategy:injectEncoding:traceContextInjection:")] - [DesignatedInitializer] - NativeHandle Constructor (DDTraceSamplingStrategy samplingStrategy, DDInjectEncoding injectEncoding, DDTraceContextInjection traceContextInjection); - } - - // @interface DDConfiguration : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc15DDConfiguration")] - [DisableDefaultCtor] - interface DDConfiguration - { - // @property (copy, nonatomic) NSString * _Nonnull clientToken; - [Export ("clientToken")] - string ClientToken { get; set; } - - // @property (copy, nonatomic) NSString * _Nonnull env; - [Export ("env")] - string Env { get; set; } - - // @property (nonatomic, strong) DDSite * _Nonnull site; - [Export ("site", ArgumentSemantic.Strong)] - DDSite Site { get; set; } - - // @property (copy, nonatomic) NSString * _Nullable service; - [NullAllowed, Export ("service")] - string Service { get; set; } - - // @property (nonatomic) enum DDBatchSize batchSize; - [Export ("batchSize", ArgumentSemantic.Assign)] - DDBatchSize BatchSize { get; set; } - - // @property (nonatomic) enum DDUploadFrequency uploadFrequency; - [Export ("uploadFrequency", ArgumentSemantic.Assign)] - DDUploadFrequency UploadFrequency { get; set; } - - // @property (nonatomic) enum DDBatchProcessingLevel batchProcessingLevel; - [Export ("batchProcessingLevel", ArgumentSemantic.Assign)] - DDBatchProcessingLevel BatchProcessingLevel { get; set; } - - // @property (copy, nonatomic) NSDictionary * _Nullable proxyConfiguration; - [NullAllowed, Export ("proxyConfiguration", ArgumentSemantic.Copy)] - NSDictionary ProxyConfiguration { get; set; } - - // -(void)setEncryption:(id _Nonnull)encryption; - [Export ("setEncryption:")] - void SetEncryption (DDDataEncryption encryption); - - // -(void)setServerDateProvider:(id _Nonnull)serverDateProvider; - [Export ("setServerDateProvider:")] - void SetServerDateProvider (DDServerDateProvider serverDateProvider); - - // @property (nonatomic, strong) NSBundle * _Nonnull bundle; - [Export ("bundle", ArgumentSemantic.Strong)] - NSBundle Bundle { get; set; } - - // @property (copy, nonatomic) NSDictionary * _Nonnull additionalConfiguration; - [Export ("additionalConfiguration", ArgumentSemantic.Copy)] - NSDictionary AdditionalConfiguration { get; set; } - - // -(instancetype _Nonnull)initWithClientToken:(NSString * _Nonnull)clientToken env:(NSString * _Nonnull)env __attribute__((objc_designated_initializer)); - [Export ("initWithClientToken:env:")] - [DesignatedInitializer] - NativeHandle Constructor (string clientToken, string env); - - [Export ("backgroundTasksEnabled")] - bool BackgroundTasksEnabled { get; set; } - } - - partial interface IDDDataEncryption { } - // @protocol DDDataEncryption - /* - Check whether adding [Model] to this declaration is appropriate. - [Model] is used to generate a C# class that implements this protocol, - and might be useful for protocols that consumers are supposed to implement, - since consumers can subclass the generated class instead of implementing - the generated interface. If consumers are not supposed to implement this - protocol, then [Model] is redundant and will generate code that will never - be used. -*/ - partial interface IDDDataEncryption {} - - [Protocol (Name = "_TtP11DatadogObjc16DDDataEncryption_")] - [BaseType(typeof(NSObject))] - interface DDDataEncryption - { - // @required -(NSData * _Nullable)encryptWithData:(NSData * _Nonnull)data error:(NSError * _Nullable * _Nullable)error __attribute__((warn_unused_result(""))); - [Abstract] - [Export ("encryptWithData:error:")] - [return: NullAllowed] - NSData EncryptWithData (NSData data, [NullAllowed] out NSError error); - - // @required -(NSData * _Nullable)decryptWithData:(NSData * _Nonnull)data error:(NSError * _Nullable * _Nullable)error __attribute__((warn_unused_result(""))); - [Abstract] - [Export ("decryptWithData:error:")] - [return: NullAllowed] - NSData DecryptWithData (NSData data, [NullAllowed] out NSError error); - } - - // @interface DDDatadog : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc9DDDatadog")] - interface DDDatadog - { - // +(void)initializeWithConfiguration:(DDConfiguration * _Nonnull)configuration trackingConsent:(DDTrackingConsent * _Nonnull)trackingConsent; - [Static] - [Export ("initializeWithConfiguration:trackingConsent:")] - void InitializeWithConfiguration (DDConfiguration configuration, DDTrackingConsent trackingConsent); - - // +(enum DDSDKVerbosityLevel)verbosityLevel __attribute__((warn_unused_result(""))); - // +(void)setVerbosityLevel:(enum DDSDKVerbosityLevel)verbosityLevel; - [Static] - [Export ("verbosityLevel")] - DDSDKVerbosityLevel VerbosityLevel { get; set; } - - // +(void)setUserInfoWithId:(NSString * _Nullable)id name:(NSString * _Nullable)name email:(NSString * _Nullable)email extraInfo:(NSDictionary * _Nonnull)extraInfo; - [Static] - [Export ("setUserInfoWithId:name:email:extraInfo:")] - void SetUserInfoWithId ([NullAllowed] string id, [NullAllowed] string name, [NullAllowed] string email, NSDictionary extraInfo); - - // +(void)addUserExtraInfo:(NSDictionary * _Nonnull)extraInfo; - [Static] - [Export ("addUserExtraInfo:")] - void AddUserExtraInfo (NSDictionary extraInfo); - - // +(void)setTrackingConsentWithConsent:(DDTrackingConsent * _Nonnull)consent; - [Static] - [Export ("setTrackingConsentWithConsent:")] - void SetTrackingConsentWithConsent (DDTrackingConsent consent); - - // +(BOOL)isInitialized __attribute__((warn_unused_result(""))); - [Static] - [Export ("isInitialized")] - bool IsInitialized { get; } - - // +(void)stopInstance; - [Static] - [Export ("stopInstance")] - void StopInstance (); - - // +(void)clearAllData; - [Static] - [Export ("clearAllData")] - void ClearAllData (); - - [Static] - [Export ("setUserInfoWithUserId:name:email:extraInfo:")] - void SetUserInfoWithUserId (string userId, [NullAllowed] string name, [NullAllowed] string email, NSDictionary extraInfo); - - [Static] - [Export ("clearUserInfo")] - void ClearUserInfo (); - - [Static] - [Export ("setAccountInfoWithAccountId:name:extraInfo:")] - void SetAccountInfoWithAccountId (string accountId, [NullAllowed] string name, NSDictionary extraInfo); - - [Static] - [Export ("addAccountExtraInfo:")] - void AddAccountExtraInfo (NSDictionary extraInfo); - - [Static] - [Export ("clearAccountInfo")] - void ClearAccountInfo (); - } - - // @protocol DDUITouchRUMActionsPredicate - /* - Check whether adding [Model] to this declaration is appropriate. - [Model] is used to generate a C# class that implements this protocol, - and might be useful for protocols that consumers are supposed to implement, - since consumers can subclass the generated class instead of implementing - the generated interface. If consumers are not supposed to implement this - protocol, then [Model] is redundant and will generate code that will never - be used. -*/ - partial interface IDDUITouchRUMActionsPredicate {} - - [Model, Protocol (Name = "_TtP11DatadogObjc28DDUITouchRUMActionsPredicate_")] - [BaseType(typeof(NSObject))] - interface DDUITouchRUMActionsPredicate - { - // @required -(DDRUMAction * _Nullable)rumActionWithTargetView:(UIView * _Nonnull)targetView __attribute__((warn_unused_result(""))); - [Abstract] - [Export ("rumActionWithTargetView:")] - [return: NullAllowed] - DDRUMAction RumActionWithTargetView (UIView targetView); - } - - // @protocol DDUIKitRUMActionsPredicate - /* - Check whether adding [Model] to this declaration is appropriate. - [Model] is used to generate a C# class that implements this protocol, - and might be useful for protocols that consumers are supposed to implement, - since consumers can subclass the generated class instead of implementing - the generated interface. If consumers are not supposed to implement this - protocol, then [Model] is redundant and will generate code that will never - be used. -*/ - partial interface IDDUIKitRUMActionsPredicate {} - - [Model, Protocol (Name = "_TtP11DatadogObjc26DDUIKitRUMActionsPredicate_")] - [BaseType(typeof(NSObject))] - interface DDUIKitRUMActionsPredicate : DDUITouchRUMActionsPredicate - { - } - - // @interface DDDefaultUIKitRUMActionsPredicate : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc33DDDefaultUIKitRUMActionsPredicate")] - interface DDDefaultUIKitRUMActionsPredicate : DDUIKitRUMActionsPredicate - { - // -(DDRUMAction * _Nullable)rumActionWithTargetView:(UIView * _Nonnull)targetView __attribute__((warn_unused_result(""))); - [Export ("rumActionWithTargetView:")] - [return: NullAllowed] - DDRUMAction RumActionWithTargetView (UIView targetView); - } - - // @protocol DDUIKitRUMViewsPredicate - /* - Check whether adding [Model] to this declaration is appropriate. - [Model] is used to generate a C# class that implements this protocol, - and might be useful for protocols that consumers are supposed to implement, - since consumers can subclass the generated class instead of implementing - the generated interface. If consumers are not supposed to implement this - protocol, then [Model] is redundant and will generate code that will never - be used. -*/ - partial interface IDDUIKitRUMViewsPredicate {} - - [Model, Protocol (Name = "_TtP11DatadogObjc24DDUIKitRUMViewsPredicate_")] - [BaseType(typeof(NSObject))] - interface DDUIKitRUMViewsPredicate - { - // @required -(DDRUMView * _Nullable)rumViewFor:(UIViewController * _Nonnull)viewController __attribute__((warn_unused_result(""))); - [Abstract] - [Export ("rumViewFor:")] - [return: NullAllowed] - DDRUMView RumViewFor (UIViewController viewController); - } - - // @interface DDDefaultUIKitRUMViewsPredicate : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc31DDDefaultUIKitRUMViewsPredicate")] - interface DDDefaultUIKitRUMViewsPredicate : DDUIKitRUMViewsPredicate - { - // -(DDRUMView * _Nullable)rumViewFor:(UIViewController * _Nonnull)viewController __attribute__((warn_unused_result(""))); - [Export ("rumViewFor:")] - [return: NullAllowed] - DDRUMView RumViewFor (UIViewController viewController); - } - - // @interface DDHTTPHeadersWriter : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc19DDHTTPHeadersWriter")] - [DisableDefaultCtor] - interface DDHTTPHeadersWriter - { - // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull traceHeaderFields; - [Export ("traceHeaderFields", ArgumentSemantic.Copy)] - NSDictionary TraceHeaderFields { get; } - - // -(instancetype _Nonnull)initWithSamplingRate:(float)samplingRate __attribute__((deprecated("This will be removed in future versions of the SDK. Use `init(samplingStrategy: .custom(sampleRate:))` instead."))); - //[Export ("initWithSamplingRate:")] - //NativeHandle Constructor (float samplingRate); - - // -(instancetype _Nonnull)initWithSampleRate:(float)sampleRate __attribute__((objc_designated_initializer)) __attribute__((deprecated("This will be removed in future versions of the SDK. Use `init(samplingStrategy: .custom(sampleRate:))` instead."))); - [Export ("initWithSampleRate:")] - [DesignatedInitializer] - NativeHandle Constructor (float sampleRate); - - // -(instancetype _Nonnull)initWithSamplingStrategy:(DDTraceSamplingStrategy * _Nonnull)samplingStrategy traceContextInjection:(enum DDTraceContextInjection)traceContextInjection __attribute__((objc_designated_initializer)); - [Export ("initWithSamplingStrategy:traceContextInjection:")] - [DesignatedInitializer] - NativeHandle Constructor (DDTraceSamplingStrategy samplingStrategy, DDTraceContextInjection traceContextInjection); - } - - // @interface DDLogger : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc8DDLogger")] - [DisableDefaultCtor] - interface DDLogger - { - // -(void)debug:(NSString * _Nonnull)message; - [Export ("debug:")] - void Debug (string message); - - // -(void)debug:(NSString * _Nonnull)message attributes:(NSDictionary * _Nonnull)attributes; - [Export ("debug:attributes:")] - void Debug (string message, NSDictionary attributes); - - // -(void)debug:(NSString * _Nonnull)message error:(NSError * _Nonnull)error attributes:(NSDictionary * _Nonnull)attributes; - [Export ("debug:error:attributes:")] - void Debug (string message, NSError error, NSDictionary attributes); - - // -(void)info:(NSString * _Nonnull)message; - [Export ("info:")] - void Info (string message); - - // -(void)info:(NSString * _Nonnull)message attributes:(NSDictionary * _Nonnull)attributes; - [Export ("info:attributes:")] - void Info (string message, NSDictionary attributes); - - // -(void)info:(NSString * _Nonnull)message error:(NSError * _Nonnull)error attributes:(NSDictionary * _Nonnull)attributes; - [Export ("info:error:attributes:")] - void Info (string message, NSError error, NSDictionary attributes); - - // -(void)notice:(NSString * _Nonnull)message; - [Export ("notice:")] - void Notice (string message); - - // -(void)notice:(NSString * _Nonnull)message attributes:(NSDictionary * _Nonnull)attributes; - [Export ("notice:attributes:")] - void Notice (string message, NSDictionary attributes); - - // -(void)notice:(NSString * _Nonnull)message error:(NSError * _Nonnull)error attributes:(NSDictionary * _Nonnull)attributes; - [Export ("notice:error:attributes:")] - void Notice (string message, NSError error, NSDictionary attributes); - - // -(void)warn:(NSString * _Nonnull)message; - [Export ("warn:")] - void Warn (string message); - - // -(void)warn:(NSString * _Nonnull)message attributes:(NSDictionary * _Nonnull)attributes; - [Export ("warn:attributes:")] - void Warn (string message, NSDictionary attributes); - - // -(void)warn:(NSString * _Nonnull)message error:(NSError * _Nonnull)error attributes:(NSDictionary * _Nonnull)attributes; - [Export ("warn:error:attributes:")] - void Warn (string message, NSError error, NSDictionary attributes); - - // -(void)error:(NSString * _Nonnull)message; - [Export ("error:")] - void Error (string message); - - // -(void)error:(NSString * _Nonnull)message attributes:(NSDictionary * _Nonnull)attributes; - [Export ("error:attributes:")] - void Error (string message, NSDictionary attributes); - - // -(void)error:(NSString * _Nonnull)message error:(NSError * _Nonnull)error attributes:(NSDictionary * _Nonnull)attributes; - [Export ("error:error:attributes:")] - void Error (string message, NSError error, NSDictionary attributes); - - // -(void)critical:(NSString * _Nonnull)message; - [Export ("critical:")] - void Critical (string message); - - // -(void)critical:(NSString * _Nonnull)message attributes:(NSDictionary * _Nonnull)attributes; - [Export ("critical:attributes:")] - void Critical (string message, NSDictionary attributes); - - // -(void)critical:(NSString * _Nonnull)message error:(NSError * _Nonnull)error attributes:(NSDictionary * _Nonnull)attributes; - [Export ("critical:error:attributes:")] - void Critical (string message, NSError error, NSDictionary attributes); - - // -(void)addAttributeForKey:(NSString * _Nonnull)key value:(id _Nonnull)value; - [Export ("addAttributeForKey:value:")] - void AddAttributeForKey (string key, NSObject value); - - // -(void)removeAttributeForKey:(NSString * _Nonnull)key; - [Export ("removeAttributeForKey:")] - void RemoveAttributeForKey (string key); - - // -(void)addTagWithKey:(NSString * _Nonnull)key value:(NSString * _Nonnull)value; - [Export ("addTagWithKey:value:")] - void AddTagWithKey (string key, string value); - - // -(void)removeTagWithKey:(NSString * _Nonnull)key; - [Export ("removeTagWithKey:")] - void RemoveTagWithKey (string key); - - // -(void)addWithTag:(NSString * _Nonnull)tag; - [Export ("addWithTag:")] - void AddWithTag (string tag); - - // -(void)removeWithTag:(NSString * _Nonnull)tag; - [Export ("removeWithTag:")] - void RemoveWithTag (string tag); - - // +(DDLogger * _Nonnull)createWith:(DDLoggerConfiguration * _Nonnull)configuration __attribute__((warn_unused_result(""))); - [Static] - [Export ("createWith:")] - DDLogger CreateWith (DDLoggerConfiguration configuration); - } - - // @interface DDLoggerConfiguration : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc21DDLoggerConfiguration")] - [DisableDefaultCtor] - interface DDLoggerConfiguration - { - // @property (copy, nonatomic) NSString * _Nullable service; - [NullAllowed, Export ("service")] - string Service { get; set; } - - // @property (copy, nonatomic) NSString * _Nullable name; - [NullAllowed, Export ("name")] - string Name { get; set; } - - // @property (nonatomic) BOOL networkInfoEnabled; - [Export ("networkInfoEnabled")] - bool NetworkInfoEnabled { get; set; } - - // @property (nonatomic) BOOL bundleWithRumEnabled; - [Export ("bundleWithRumEnabled")] - bool BundleWithRumEnabled { get; set; } - - // @property (nonatomic) BOOL bundleWithTraceEnabled; - [Export ("bundleWithTraceEnabled")] - bool BundleWithTraceEnabled { get; set; } - - // @property (nonatomic) float remoteSampleRate; - [Export ("remoteSampleRate")] - float RemoteSampleRate { get; set; } - - // @property (nonatomic) BOOL printLogsToConsole; - [Export ("printLogsToConsole")] - bool PrintLogsToConsole { get; set; } - - // @property (nonatomic) enum DDLogLevel remoteLogThreshold; - [Export ("remoteLogThreshold", ArgumentSemantic.Assign)] - DDLogLevel RemoteLogThreshold { get; set; } - - // -(instancetype _Nonnull)initWithService:(NSString * _Nullable)service name:(NSString * _Nullable)name networkInfoEnabled:(BOOL)networkInfoEnabled bundleWithRumEnabled:(BOOL)bundleWithRumEnabled bundleWithTraceEnabled:(BOOL)bundleWithTraceEnabled remoteSampleRate:(float)remoteSampleRate remoteLogThreshold:(enum DDLogLevel)remoteLogThreshold printLogsToConsole:(BOOL)printLogsToConsole __attribute__((objc_designated_initializer)); - [Export ("initWithService:name:networkInfoEnabled:bundleWithRumEnabled:bundleWithTraceEnabled:remoteSampleRate:remoteLogThreshold:printLogsToConsole:")] - [DesignatedInitializer] - NativeHandle Constructor ([NullAllowed] string service, [NullAllowed] string name, bool networkInfoEnabled, bool bundleWithRumEnabled, bool bundleWithTraceEnabled, float remoteSampleRate, DDLogLevel remoteLogThreshold, bool printLogsToConsole); - } - - // @interface DDLogs : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc6DDLogs")] - interface DDLogs - { - // +(void)enableWith:(DDLogsConfiguration * _Nonnull)configuration; - [Static] - [Export ("enableWith:")] - void EnableWith (DDLogsConfiguration configuration); - - // +(void)addAttributeForKey:(NSString * _Nonnull)key value:(id _Nonnull)value; - [Static] - [Export ("addAttributeForKey:value:")] - void AddAttributeForKey (string key, NSObject value); - - // +(void)removeAttributeForKey:(NSString * _Nonnull)key; - [Static] - [Export ("removeAttributeForKey:")] - void RemoveAttributeForKey (string key); - } - - // @interface DDLogsConfiguration : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc19DDLogsConfiguration")] - [DisableDefaultCtor] - interface DDLogsConfiguration - { - // @property (copy, nonatomic) NSURL * _Nullable customEndpoint; - [NullAllowed, Export ("customEndpoint", ArgumentSemantic.Copy)] - NSUrl CustomEndpoint { get; set; } - - // -(instancetype _Nonnull)initWithCustomEndpoint:(NSURL * _Nullable)customEndpoint __attribute__((objc_designated_initializer)); - [Export ("initWithCustomEndpoint:")] - [DesignatedInitializer] - NativeHandle Constructor ([NullAllowed] NSUrl customEndpoint); - - // -(void)setEventMapper:(DDLogEvent * _Nullable (^ _Nonnull)(DDLogEvent * _Nonnull))mapper; - // Return the event to keep it, a modified event to rewrite it, or null to drop it entirely. - // This is the Logs counterpart of DDRUMConfiguration's five event mappers, and the only - // supported way to redact a log before it leaves the device. - [Export ("setEventMapper:")] - void SetEventMapper (Func mapper); - } - - // @interface DDNSURLSessionDelegate : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc22DDNSURLSessionDelegate")] - interface DDNSURLSessionDelegate : INSUrlSessionDataDelegate - { - // -(instancetype _Nonnull)initWithAdditionalFirstPartyHostsWithHeaderTypes:(NSDictionary *> * _Nonnull)additionalFirstPartyHostsWithHeaderTypes __attribute__((objc_designated_initializer)); - [Export ("initWithAdditionalFirstPartyHostsWithHeaderTypes:")] - [DesignatedInitializer] - NativeHandle Constructor (NSDictionary> additionalFirstPartyHostsWithHeaderTypes); - - // -(instancetype _Nonnull)initWithAdditionalFirstPartyHosts:(NSSet * _Nonnull)additionalFirstPartyHosts; - [Export ("initWithAdditionalFirstPartyHosts:")] - NativeHandle Constructor (NSSet additionalFirstPartyHosts); - } - - // @interface DDOTelHTTPHeadersWriter : DDB3HTTPHeadersWriter - [BaseType (typeof(DDB3HTTPHeadersWriter), Name = "_TtC11DatadogObjc23DDOTelHTTPHeadersWriter")] - interface DDOTelHTTPHeadersWriter - { - // -(instancetype _Nonnull)initWithSampleRate:(float)sampleRate injectEncoding:(enum DDInjectEncoding)injectEncoding __attribute__((objc_designated_initializer)) __attribute__((deprecated("This will be removed in future versions of the SDK. Use `init(samplingStrategy: .custom(sampleRate:))` instead.", "DDB3HTTPHeadersWriter"))); - [Export ("initWithSampleRate:injectEncoding:")] - [DesignatedInitializer] - NativeHandle Constructor (float sampleRate, DDInjectEncoding injectEncoding); - - // -(instancetype _Nonnull)initWithSamplingStrategy:(DDTraceSamplingStrategy * _Nonnull)samplingStrategy injectEncoding:(enum DDInjectEncoding)injectEncoding traceContextInjection:(enum DDTraceContextInjection)traceContextInjection __attribute__((objc_designated_initializer)); - [Export ("initWithSamplingStrategy:injectEncoding:traceContextInjection:")] - [DesignatedInitializer] - NativeHandle Constructor (DDTraceSamplingStrategy samplingStrategy, DDInjectEncoding injectEncoding, DDTraceContextInjection traceContextInjection); - } - - // @interface DDRUM : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc5DDRUM")] - interface DDRUM - { - // +(void)enableWith:(DDRUMConfiguration * _Nonnull)configuration; - [Static] - [Export ("enableWith:")] - void EnableWith (DDRUMConfiguration configuration); - } - - // @interface DDRUMAction : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc11DDRUMAction")] - [DisableDefaultCtor] - interface DDRUMAction - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull name; - [Export ("name")] - string Name { get; } - - // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull attributes; - [Export ("attributes", ArgumentSemantic.Copy)] - NSDictionary Attributes { get; } - - // -(instancetype _Nonnull)initWithName:(NSString * _Nonnull)name attributes:(NSDictionary * _Nonnull)attributes __attribute__((objc_designated_initializer)); - [Export ("initWithName:attributes:")] - [DesignatedInitializer] - NativeHandle Constructor (string name, NSDictionary attributes); - } - - // @interface DDRUMActionEvent : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc16DDRUMActionEvent")] - [DisableDefaultCtor] - interface DDRUMActionEvent - { - // @property (readonly, nonatomic, strong) DDRUMActionEventDD * _Nonnull dd; - [Export ("dd", ArgumentSemantic.Strong)] - DDRUMActionEventDD Dd { get; } - - // @property (readonly, nonatomic, strong) DDRUMActionEventAction * _Nonnull action; - [Export ("action", ArgumentSemantic.Strong)] - DDRUMActionEventAction Action { get; } - - // @property (readonly, nonatomic, strong) DDRUMActionEventApplication * _Nonnull application; - [Export ("application", ArgumentSemantic.Strong)] - DDRUMActionEventApplication Application { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable buildId; - [NullAllowed, Export ("buildId")] - string BuildId { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable buildVersion; - [NullAllowed, Export ("buildVersion")] - string BuildVersion { get; } - - // @property (readonly, nonatomic, strong) DDRUMActionEventRUMCITest * _Nullable ciTest; - [NullAllowed, Export ("ciTest", ArgumentSemantic.Strong)] - DDRUMActionEventRUMCITest CiTest { get; } - - // @property (readonly, nonatomic, strong) DDRUMActionEventRUMConnectivity * _Nullable connectivity; - [NullAllowed, Export ("connectivity", ArgumentSemantic.Strong)] - DDRUMActionEventRUMConnectivity Connectivity { get; } - - // @property (readonly, nonatomic, strong) DDRUMActionEventContainer * _Nullable container; - [NullAllowed, Export ("container", ArgumentSemantic.Strong)] - DDRUMActionEventContainer Container { get; } - - // @property (readonly, nonatomic, strong) DDRUMActionEventRUMEventAttributes * _Nullable context; - [NullAllowed, Export ("context", ArgumentSemantic.Strong)] - DDRUMActionEventRUMEventAttributes Context { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull date; - [Export ("date", ArgumentSemantic.Strong)] - NSNumber Date { get; } - - // @property (readonly, nonatomic, strong) DDRUMActionEventRUMDevice * _Nullable device; - [NullAllowed, Export ("device", ArgumentSemantic.Strong)] - DDRUMActionEventRUMDevice Device { get; } - - // @property (readonly, nonatomic, strong) DDRUMActionEventDisplay * _Nullable display; - [NullAllowed, Export ("display", ArgumentSemantic.Strong)] - DDRUMActionEventDisplay Display { get; } - - // @property (readonly, nonatomic, strong) DDRUMActionEventRUMOperatingSystem * _Nullable os; - [NullAllowed, Export ("os", ArgumentSemantic.Strong)] - DDRUMActionEventRUMOperatingSystem Os { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable service; - [NullAllowed, Export ("service")] - string Service { get; } - - // @property (readonly, nonatomic, strong) DDRUMActionEventSession * _Nonnull session; - [Export ("session", ArgumentSemantic.Strong)] - DDRUMActionEventSession Session { get; } - - // @property (readonly, nonatomic) enum DDRUMActionEventSource source; - [Export ("source")] - DDRUMActionEventSource Source { get; } - - // @property (readonly, nonatomic, strong) DDRUMActionEventRUMSyntheticsTest * _Nullable synthetics; - [NullAllowed, Export ("synthetics", ArgumentSemantic.Strong)] - DDRUMActionEventRUMSyntheticsTest Synthetics { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull type; - [Export ("type")] - string Type { get; } - - // @property (readonly, nonatomic, strong) DDRUMActionEventRUMUser * _Nullable usr; - [NullAllowed, Export ("usr", ArgumentSemantic.Strong)] - DDRUMActionEventRUMUser Usr { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable version; - [NullAllowed, Export ("version")] - string Version { get; } - - // @property (readonly, nonatomic, strong) DDRUMActionEventView * _Nonnull view; - [Export ("view", ArgumentSemantic.Strong)] - DDRUMActionEventView View { get; } - - [Export ("account", ArgumentSemantic.Strong)] - DDRUMActionEventRUMAccount Account { get; } - - [Export ("ddtags", ArgumentSemantic.Copy)] - string Ddtags { get; } - } - - // @interface DDRUMActionEventAction : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc22DDRUMActionEventAction")] - [DisableDefaultCtor] - interface DDRUMActionEventAction - { - // @property (readonly, nonatomic, strong) DDRUMActionEventActionCrash * _Nullable crash; - [NullAllowed, Export ("crash", ArgumentSemantic.Strong)] - DDRUMActionEventActionCrash Crash { get; } - - // @property (readonly, nonatomic, strong) DDRUMActionEventActionError * _Nullable error; - [NullAllowed, Export ("error", ArgumentSemantic.Strong)] - DDRUMActionEventActionError Error { get; } - - // @property (readonly, nonatomic, strong) DDRUMActionEventActionFrustration * _Nullable frustration; - [NullAllowed, Export ("frustration", ArgumentSemantic.Strong)] - DDRUMActionEventActionFrustration Frustration { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable id; - [NullAllowed, Export ("id")] - string Id { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable loadingTime; - [NullAllowed, Export ("loadingTime", ArgumentSemantic.Strong)] - NSNumber LoadingTime { get; } - - // @property (readonly, nonatomic, strong) DDRUMActionEventActionLongTask * _Nullable longTask; - [NullAllowed, Export ("longTask", ArgumentSemantic.Strong)] - DDRUMActionEventActionLongTask LongTask { get; } - - // @property (readonly, nonatomic, strong) DDRUMActionEventActionResource * _Nullable resource; - [NullAllowed, Export ("resource", ArgumentSemantic.Strong)] - DDRUMActionEventActionResource Resource { get; } - - // @property (readonly, nonatomic, strong) DDRUMActionEventActionTarget * _Nullable target; - [NullAllowed, Export ("target", ArgumentSemantic.Strong)] - DDRUMActionEventActionTarget Target { get; } - - // @property (readonly, nonatomic) enum DDRUMActionEventActionActionType type; - [Export ("type")] - DDRUMActionEventActionActionType Type { get; } - } - - // @interface DDRUMActionEventActionCrash : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc27DDRUMActionEventActionCrash")] - [DisableDefaultCtor] - interface DDRUMActionEventActionCrash - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull count; - [Export ("count", ArgumentSemantic.Strong)] - NSNumber Count { get; } - } - - // @interface DDRUMActionEventActionError : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc27DDRUMActionEventActionError")] - [DisableDefaultCtor] - interface DDRUMActionEventActionError - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull count; - [Export ("count", ArgumentSemantic.Strong)] - NSNumber Count { get; } - } - - // @interface DDRUMActionEventActionFrustration : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc33DDRUMActionEventActionFrustration")] - [DisableDefaultCtor] - interface DDRUMActionEventActionFrustration - { - // @property (readonly, copy, nonatomic) NSArray * _Nonnull type; - [Export ("type", ArgumentSemantic.Copy)] - NSNumber[] Type { get; } - } - - // @interface DDRUMActionEventActionLongTask : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc30DDRUMActionEventActionLongTask")] - [DisableDefaultCtor] - interface DDRUMActionEventActionLongTask - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull count; - [Export ("count", ArgumentSemantic.Strong)] - NSNumber Count { get; } - } - - // @interface DDRUMActionEventActionResource : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc30DDRUMActionEventActionResource")] - [DisableDefaultCtor] - interface DDRUMActionEventActionResource - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull count; - [Export ("count", ArgumentSemantic.Strong)] - NSNumber Count { get; } - } - - // @interface DDRUMActionEventActionTarget : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc28DDRUMActionEventActionTarget")] - [DisableDefaultCtor] - interface DDRUMActionEventActionTarget - { - // @property (copy, nonatomic) NSString * _Nonnull name; - [Export ("name")] - string Name { get; set; } - } - - // @interface DDRUMActionEventApplication : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc27DDRUMActionEventApplication")] - [DisableDefaultCtor] - interface DDRUMActionEventApplication - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - - [Export ("currentLocale", ArgumentSemantic.Copy)] - string CurrentLocale { get; } - } - - // @interface DDRUMActionEventContainer : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc25DDRUMActionEventContainer")] - [DisableDefaultCtor] - interface DDRUMActionEventContainer - { - // @property (readonly, nonatomic) enum DDRUMActionEventContainerSource source; - [Export ("source")] - DDRUMActionEventContainerSource Source { get; } - - // @property (readonly, nonatomic, strong) DDRUMActionEventContainerView * _Nonnull view; - [Export ("view", ArgumentSemantic.Strong)] - DDRUMActionEventContainerView View { get; } - } - - // @interface DDRUMActionEventContainerView : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc29DDRUMActionEventContainerView")] - [DisableDefaultCtor] - interface DDRUMActionEventContainerView - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - } - - // @interface DDRUMActionEventDD : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc18DDRUMActionEventDD")] - [DisableDefaultCtor] - interface DDRUMActionEventDD - { - // @property (readonly, nonatomic, strong) DDRUMActionEventDDAction * _Nullable action; - [NullAllowed, Export ("action", ArgumentSemantic.Strong)] - DDRUMActionEventDDAction Action { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable browserSdkVersion; - [NullAllowed, Export ("browserSdkVersion")] - string BrowserSdkVersion { get; } - - // @property (readonly, nonatomic, strong) DDRUMActionEventDDConfiguration * _Nullable configuration; - [NullAllowed, Export ("configuration", ArgumentSemantic.Strong)] - DDRUMActionEventDDConfiguration Configuration { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull formatVersion; - [Export ("formatVersion", ArgumentSemantic.Strong)] - NSNumber FormatVersion { get; } - - // @property (readonly, nonatomic, strong) DDRUMActionEventDDSession * _Nullable session; - [NullAllowed, Export ("session", ArgumentSemantic.Strong)] - DDRUMActionEventDDSession Session { get; } - - [Export ("sdkName", ArgumentSemantic.Copy)] - string SdkName { get; } - } - - // @interface DDRUMActionEventDDAction : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc24DDRUMActionEventDDAction")] - [DisableDefaultCtor] - interface DDRUMActionEventDDAction - { - // @property (readonly, nonatomic, strong) DDRUMActionEventDDActionPosition * _Nullable position; - [NullAllowed, Export ("position", ArgumentSemantic.Strong)] - DDRUMActionEventDDActionPosition Position { get; } - - // @property (readonly, nonatomic, strong) DDRUMActionEventDDActionTarget * _Nullable target; - [NullAllowed, Export ("target", ArgumentSemantic.Strong)] - DDRUMActionEventDDActionTarget Target { get; } - - [Export ("nameSource")] - DDRUMActionEventDDActionNameSource NameSource { get; set; } - } - - // @interface DDRUMActionEventDDActionPosition : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc32DDRUMActionEventDDActionPosition")] - [DisableDefaultCtor] - interface DDRUMActionEventDDActionPosition - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull x; - [Export ("x", ArgumentSemantic.Strong)] - NSNumber X { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull y; - [Export ("y", ArgumentSemantic.Strong)] - NSNumber Y { get; } - } - - // @interface DDRUMActionEventDDActionTarget : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc30DDRUMActionEventDDActionTarget")] - [DisableDefaultCtor] - interface DDRUMActionEventDDActionTarget - { - // @property (readonly, nonatomic, strong) NSNumber * _Nullable height; - [NullAllowed, Export ("height", ArgumentSemantic.Strong)] - NSNumber Height { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable selector; - [NullAllowed, Export ("selector")] - string TargetSelector { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable width; - [NullAllowed, Export ("width", ArgumentSemantic.Strong)] - NSNumber Width { get; } - } - - // @interface DDRUMActionEventDDConfiguration : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc31DDRUMActionEventDDConfiguration")] - [DisableDefaultCtor] - interface DDRUMActionEventDDConfiguration - { - // @property (readonly, nonatomic, strong) NSNumber * _Nullable sessionReplaySampleRate; - [NullAllowed, Export ("sessionReplaySampleRate", ArgumentSemantic.Strong)] - NSNumber SessionReplaySampleRate { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull sessionSampleRate; - [Export ("sessionSampleRate", ArgumentSemantic.Strong)] - NSNumber SessionSampleRate { get; } - - [Export ("profilingSampleRate", ArgumentSemantic.Strong)] - NSNumber ProfilingSampleRate { get; } - } - - // @interface DDRUMActionEventDDSession : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc25DDRUMActionEventDDSession")] - [DisableDefaultCtor] - interface DDRUMActionEventDDSession - { - // @property (readonly, nonatomic) enum DDRUMActionEventDDSessionPlan plan; - [Export ("plan")] - DDRUMActionEventDDSessionPlan Plan { get; } - - // @property (readonly, nonatomic) enum DDRUMActionEventDDSessionRUMSessionPrecondition sessionPrecondition; - [Export ("sessionPrecondition")] - DDRUMActionEventDDSessionRUMSessionPrecondition SessionPrecondition { get; } - } - - // @interface DDRUMActionEventDisplay : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc23DDRUMActionEventDisplay")] - [DisableDefaultCtor] - interface DDRUMActionEventDisplay - { - // @property (readonly, nonatomic, strong) DDRUMActionEventDisplayViewport * _Nullable viewport; - [NullAllowed, Export ("viewport", ArgumentSemantic.Strong)] - DDRUMActionEventDisplayViewport Viewport { get; } - } - - // @interface DDRUMActionEventDisplayViewport : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc31DDRUMActionEventDisplayViewport")] - [DisableDefaultCtor] - interface DDRUMActionEventDisplayViewport - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull height; - [Export ("height", ArgumentSemantic.Strong)] - NSNumber Height { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull width; - [Export ("width", ArgumentSemantic.Strong)] - NSNumber Width { get; } - } - - // @interface DDRUMActionEventRUMCITest : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc25DDRUMActionEventRUMCITest")] - [DisableDefaultCtor] - interface DDRUMActionEventRUMCITest - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull testExecutionId; - [Export ("testExecutionId")] - string TestExecutionId { get; } - } - - // @interface DDRUMActionEventRUMConnectivity : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc31DDRUMActionEventRUMConnectivity")] - [DisableDefaultCtor] - interface DDRUMActionEventRUMConnectivity - { - // @property (readonly, nonatomic, strong) DDRUMActionEventRUMConnectivityCellular * _Nullable cellular; - [NullAllowed, Export ("cellular", ArgumentSemantic.Strong)] - DDRUMActionEventRUMConnectivityCellular Cellular { get; } - - // @property (readonly, nonatomic) enum DDRUMActionEventRUMConnectivityEffectiveType effectiveType; - [Export ("effectiveType")] - DDRUMActionEventRUMConnectivityEffectiveType EffectiveType { get; } - - // @property (readonly, copy, nonatomic) NSArray * _Nullable interfaces; - [NullAllowed, Export ("interfaces", ArgumentSemantic.Copy)] - NSNumber[] Interfaces { get; } - - // @property (readonly, nonatomic) enum DDRUMActionEventRUMConnectivityStatus status; - [Export ("status")] - DDRUMActionEventRUMConnectivityStatus Status { get; } - } - - // @interface DDRUMActionEventRUMConnectivityCellular : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc39DDRUMActionEventRUMConnectivityCellular")] - [DisableDefaultCtor] - interface DDRUMActionEventRUMConnectivityCellular - { - // @property (readonly, copy, nonatomic) NSString * _Nullable carrierName; - [NullAllowed, Export ("carrierName")] - string CarrierName { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable technology; - [NullAllowed, Export ("technology")] - string Technology { get; } - } - - // @interface DDRUMActionEventRUMDevice : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc25DDRUMActionEventRUMDevice")] - [DisableDefaultCtor] - interface DDRUMActionEventRUMDevice - { - // @property (readonly, copy, nonatomic) NSString * _Nullable architecture; - [NullAllowed, Export ("architecture")] - string Architecture { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable brand; - [NullAllowed, Export ("brand")] - string Brand { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable model; - [NullAllowed, Export ("model")] - string Model { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable name; - [NullAllowed, Export ("name")] - string Name { get; } - - // @property (readonly, nonatomic) enum DDRUMActionEventRUMDeviceRUMDeviceType type; - [Export ("type")] - DDRUMActionEventRUMDeviceRUMDeviceType Type { get; } - - [Export ("batteryLevel", ArgumentSemantic.Strong)] - NSNumber BatteryLevel { get; } - - [Export ("brightnessLevel", ArgumentSemantic.Strong)] - NSNumber BrightnessLevel { get; } - - [Export ("locale", ArgumentSemantic.Copy)] - string Locale { get; } - - [Export ("locales", ArgumentSemantic.Copy)] - string[] Locales { get; } - - [Export ("powerSavingMode", ArgumentSemantic.Strong)] - NSNumber PowerSavingMode { get; } - - [Export ("timeZone", ArgumentSemantic.Copy)] - string TimeZone { get; } - } - - // @interface DDRUMActionEventRUMEventAttributes : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc34DDRUMActionEventRUMEventAttributes")] - [DisableDefaultCtor] - interface DDRUMActionEventRUMEventAttributes - { - // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull contextInfo; - [Export ("contextInfo", ArgumentSemantic.Copy)] - NSDictionary ContextInfo { get; } - } - - // @interface DDRUMActionEventRUMOperatingSystem : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc34DDRUMActionEventRUMOperatingSystem")] - [DisableDefaultCtor] - interface DDRUMActionEventRUMOperatingSystem - { - // @property (readonly, copy, nonatomic) NSString * _Nullable build; - [NullAllowed, Export ("build")] - string Build { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull name; - [Export ("name")] - string Name { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull version; - [Export ("version")] - string Version { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull versionMajor; - [Export ("versionMajor")] - string VersionMajor { get; } - } - - // @interface DDRUMActionEventRUMSyntheticsTest : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc33DDRUMActionEventRUMSyntheticsTest")] - [DisableDefaultCtor] - interface DDRUMActionEventRUMSyntheticsTest - { - // @property (readonly, nonatomic, strong) NSNumber * _Nullable injected; - [NullAllowed, Export ("injected", ArgumentSemantic.Strong)] - NSNumber Injected { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull resultId; - [Export ("resultId")] - string ResultId { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull testId; - [Export ("testId")] - string TestId { get; } - } - - // @interface DDRUMActionEventRUMUser : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc23DDRUMActionEventRUMUser")] - [DisableDefaultCtor] - interface DDRUMActionEventRUMUser - { - // @property (readonly, copy, nonatomic) NSString * _Nullable email; - [NullAllowed, Export ("email")] - string Email { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable id; - [NullAllowed, Export ("id")] - string Id { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable name; - [NullAllowed, Export ("name")] - string Name { get; } - - // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull usrInfo; - [Export ("usrInfo", ArgumentSemantic.Copy)] - NSDictionary UsrInfo { get; } - - [Export ("anonymousId", ArgumentSemantic.Copy)] - string AnonymousId { get; } - } - - // @interface DDRUMActionEventSession : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc23DDRUMActionEventSession")] - [DisableDefaultCtor] - interface DDRUMActionEventSession - { - // @property (readonly, nonatomic, strong) NSNumber * _Nullable hasReplay; - [NullAllowed, Export ("hasReplay", ArgumentSemantic.Strong)] - NSNumber HasReplay { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - - // @property (readonly, nonatomic) enum DDRUMActionEventSessionRUMSessionType type; - [Export ("type")] - DDRUMActionEventSessionRUMSessionType Type { get; } - } - - // @interface DDRUMActionEventView : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc20DDRUMActionEventView")] - [DisableDefaultCtor] - interface DDRUMActionEventView - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable inForeground; - [NullAllowed, Export ("inForeground", ArgumentSemantic.Strong)] - NSNumber InForeground { get; } - - // @property (copy, nonatomic) NSString * _Nullable name; - [NullAllowed, Export ("name")] - string Name { get; set; } - - // @property (copy, nonatomic) NSString * _Nullable referrer; - [NullAllowed, Export ("referrer")] - string Referrer { get; set; } - - // @property (copy, nonatomic) NSString * _Nonnull url; - [Export ("url")] - string Url { get; set; } - } - - // @interface DDRUMConfiguration : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc18DDRUMConfiguration")] - [DisableDefaultCtor] - interface DDRUMConfiguration - { - // -(instancetype _Nonnull)initWithApplicationID:(NSString * _Nonnull)applicationID __attribute__((objc_designated_initializer)); - [Export ("initWithApplicationID:")] - [DesignatedInitializer] - NativeHandle Constructor (string applicationID); - - // @property (readonly, copy, nonatomic) NSString * _Nonnull applicationID; - [Export ("applicationID")] - string ApplicationID { get; } - - // @property (nonatomic) float sessionSampleRate; - [Export ("sessionSampleRate")] - float SessionSampleRate { get; set; } - - // @property (nonatomic) float telemetrySampleRate; - [Export ("telemetrySampleRate")] - float TelemetrySampleRate { get; set; } - - // @property (nonatomic, strong) id _Nullable uiKitViewsPredicate; - [NullAllowed, Export ("uiKitViewsPredicate", ArgumentSemantic.Strong)] - IDDUIKitRUMViewsPredicate UiKitViewsPredicate { get; set; } - - // @property (nonatomic, strong) id _Nullable uiKitActionsPredicate; - [NullAllowed, Export ("uiKitActionsPredicate", ArgumentSemantic.Strong)] - IDDUIKitRUMActionsPredicate UiKitActionsPredicate { get; set; } - - // -(void)setURLSessionTracking:(DDRUMURLSessionTracking * _Nonnull)tracking; - [Export ("setURLSessionTracking:")] - void SetURLSessionTracking (DDRUMURLSessionTracking tracking); - - // @property (nonatomic) BOOL trackFrustrations; - [Export ("trackFrustrations")] - bool TrackFrustrations { get; set; } - - // @property (nonatomic) BOOL trackBackgroundEvents; - [Export ("trackBackgroundEvents")] - bool TrackBackgroundEvents { get; set; } - - // @property (nonatomic) BOOL trackWatchdogTerminations; - [Export ("trackWatchdogTerminations")] - bool TrackWatchdogTerminations { get; set; } - - // @property (nonatomic) NSTimeInterval longTaskThreshold; - [Export ("longTaskThreshold")] - double LongTaskThreshold { get; set; } - - // @property (nonatomic) NSTimeInterval appHangThreshold; - [Export ("appHangThreshold")] - double AppHangThreshold { get; set; } - - // @property (nonatomic) enum DDRUMVitalsFrequency vitalsUpdateFrequency; - [Export ("vitalsUpdateFrequency", ArgumentSemantic.Assign)] - DDRUMVitalsFrequency VitalsUpdateFrequency { get; set; } - - // -(void)setViewEventMapper:(DDRUMViewEvent * _Nonnull (^ _Nonnull)(DDRUMViewEvent * _Nonnull))mapper; - [Export ("setViewEventMapper:")] - void SetViewEventMapper (Func mapper); - - // -(void)setResourceEventMapper:(DDRUMResourceEvent * _Nullable (^ _Nonnull)(DDRUMResourceEvent * _Nonnull))mapper; - [Export ("setResourceEventMapper:")] - void SetResourceEventMapper (Func mapper); - - // -(void)setActionEventMapper:(DDRUMActionEvent * _Nullable (^ _Nonnull)(DDRUMActionEvent * _Nonnull))mapper; - [Export ("setActionEventMapper:")] - void SetActionEventMapper (Func mapper); - - // -(void)setErrorEventMapper:(DDRUMErrorEvent * _Nullable (^ _Nonnull)(DDRUMErrorEvent * _Nonnull))mapper; - [Export ("setErrorEventMapper:")] - void SetErrorEventMapper (Func mapper); - - // -(void)setLongTaskEventMapper:(DDRUMLongTaskEvent * _Nullable (^ _Nonnull)(DDRUMLongTaskEvent * _Nonnull))mapper; - [Export ("setLongTaskEventMapper:")] - void SetLongTaskEventMapper (Func mapper); - - // @property (copy, nonatomic) void (^ _Nullable)(NSString * _Nonnull, BOOL) onSessionStart; - [NullAllowed, Export ("onSessionStart", ArgumentSemantic.Copy)] - Action OnSessionStart { get; set; } - - // @property (copy, nonatomic) NSURL * _Nullable customEndpoint; - [NullAllowed, Export ("customEndpoint", ArgumentSemantic.Copy)] - NSUrl CustomEndpoint { get; set; } - - [Export ("swiftUIViewsPredicate", ArgumentSemantic.Strong)] - IDDSwiftUIRUMViewsPredicate SwiftUIViewsPredicate { get; set; } - - [Export ("swiftUIActionsPredicate", ArgumentSemantic.Strong)] - IDDSwiftUIRUMActionsPredicate SwiftUIActionsPredicate { get; set; } - - [Export ("trackAnonymousUser")] - bool TrackAnonymousUser { get; set; } - } - - // @interface DDRUMErrorEvent : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc15DDRUMErrorEvent")] - [DisableDefaultCtor] - interface DDRUMErrorEvent - { - // @property (readonly, nonatomic, strong) DDRUMErrorEventDD * _Nonnull dd; - [Export ("dd", ArgumentSemantic.Strong)] - DDRUMErrorEventDD Dd { get; } - - // @property (readonly, nonatomic, strong) DDRUMErrorEventAction * _Nullable action; - [NullAllowed, Export ("action", ArgumentSemantic.Strong)] - DDRUMErrorEventAction Action { get; } - - // @property (readonly, nonatomic, strong) DDRUMErrorEventApplication * _Nonnull application; - [Export ("application", ArgumentSemantic.Strong)] - DDRUMErrorEventApplication Application { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable buildId; - [NullAllowed, Export ("buildId")] - string BuildId { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable buildVersion; - [NullAllowed, Export ("buildVersion")] - string BuildVersion { get; } - - // @property (readonly, nonatomic, strong) DDRUMErrorEventRUMCITest * _Nullable ciTest; - [NullAllowed, Export ("ciTest", ArgumentSemantic.Strong)] - DDRUMErrorEventRUMCITest CiTest { get; } - - // @property (readonly, nonatomic, strong) DDRUMErrorEventRUMConnectivity * _Nullable connectivity; - [NullAllowed, Export ("connectivity", ArgumentSemantic.Strong)] - DDRUMErrorEventRUMConnectivity Connectivity { get; } - - // @property (readonly, nonatomic, strong) DDRUMErrorEventContainer * _Nullable container; - [NullAllowed, Export ("container", ArgumentSemantic.Strong)] - DDRUMErrorEventContainer Container { get; } - - // @property (readonly, nonatomic, strong) DDRUMErrorEventRUMEventAttributes * _Nullable context; - [NullAllowed, Export ("context", ArgumentSemantic.Strong)] - DDRUMErrorEventRUMEventAttributes Context { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull date; - [Export ("date", ArgumentSemantic.Strong)] - NSNumber Date { get; } - - // @property (readonly, nonatomic, strong) DDRUMErrorEventRUMDevice * _Nullable device; - [NullAllowed, Export ("device", ArgumentSemantic.Strong)] - DDRUMErrorEventRUMDevice Device { get; } - - // @property (readonly, nonatomic, strong) DDRUMErrorEventDisplay * _Nullable display; - [NullAllowed, Export ("display", ArgumentSemantic.Strong)] - DDRUMErrorEventDisplay Display { get; } - - // @property (readonly, nonatomic, strong) DDRUMErrorEventError * _Nonnull error; - [Export ("error", ArgumentSemantic.Strong)] - DDRUMErrorEventError Error { get; } - - // @property (readonly, nonatomic, strong) DDRUMErrorEventFeatureFlags * _Nullable featureFlags; - [NullAllowed, Export ("featureFlags", ArgumentSemantic.Strong)] - DDRUMErrorEventFeatureFlags FeatureFlags { get; } - - // @property (readonly, nonatomic, strong) DDRUMErrorEventFreeze * _Nullable freeze; - [NullAllowed, Export ("freeze", ArgumentSemantic.Strong)] - DDRUMErrorEventFreeze Freeze { get; } - - // @property (readonly, nonatomic, strong) DDRUMErrorEventRUMOperatingSystem * _Nullable os; - [NullAllowed, Export ("os", ArgumentSemantic.Strong)] - DDRUMErrorEventRUMOperatingSystem Os { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable service; - [NullAllowed, Export ("service")] - string Service { get; } - - // @property (readonly, nonatomic, strong) DDRUMErrorEventSession * _Nonnull session; - [Export ("session", ArgumentSemantic.Strong)] - DDRUMErrorEventSession Session { get; } - - // @property (readonly, nonatomic) enum DDRUMErrorEventSource source; - [Export ("source")] - DDRUMErrorEventSource Source { get; } - - // @property (readonly, nonatomic, strong) DDRUMErrorEventRUMSyntheticsTest * _Nullable synthetics; - [NullAllowed, Export ("synthetics", ArgumentSemantic.Strong)] - DDRUMErrorEventRUMSyntheticsTest Synthetics { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull type; - [Export ("type")] - string Type { get; } - - // @property (readonly, nonatomic, strong) DDRUMErrorEventRUMUser * _Nullable usr; - [NullAllowed, Export ("usr", ArgumentSemantic.Strong)] - DDRUMErrorEventRUMUser Usr { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable version; - [NullAllowed, Export ("version")] - string Version { get; } - - // @property (readonly, nonatomic, strong) DDRUMErrorEventView * _Nonnull view; - [Export ("view", ArgumentSemantic.Strong)] - DDRUMErrorEventView View { get; } - - [Export ("account", ArgumentSemantic.Strong)] - DDRUMErrorEventRUMAccount Account { get; } - - [Export ("ddtags", ArgumentSemantic.Copy)] - string Ddtags { get; } - } - - // @interface DDRUMErrorEventAction : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc21DDRUMErrorEventAction")] - [DisableDefaultCtor] - interface DDRUMErrorEventAction - { - // @property (readonly, nonatomic, strong) DDRUMErrorEventActionRUMActionID * _Nonnull id; - [Export ("id", ArgumentSemantic.Strong)] - DDRUMErrorEventActionRUMActionID Id { get; } - } - - // @interface DDRUMErrorEventActionRUMActionID : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc32DDRUMErrorEventActionRUMActionID")] - [DisableDefaultCtor] - interface DDRUMErrorEventActionRUMActionID - { - // @property (readonly, copy, nonatomic) NSString * _Nullable string; - [NullAllowed, Export ("string")] - string String { get; } - - // @property (readonly, copy, nonatomic) NSArray * _Nullable stringsArray; - [NullAllowed, Export ("stringsArray", ArgumentSemantic.Copy)] - string[] StringsArray { get; } - } - - // @interface DDRUMErrorEventApplication : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc26DDRUMErrorEventApplication")] - [DisableDefaultCtor] - interface DDRUMErrorEventApplication - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - - [Export ("currentLocale", ArgumentSemantic.Copy)] - string CurrentLocale { get; } - } - - // @interface DDRUMErrorEventContainer : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc24DDRUMErrorEventContainer")] - [DisableDefaultCtor] - interface DDRUMErrorEventContainer - { - // @property (readonly, nonatomic) enum DDRUMErrorEventContainerSource source; - [Export ("source")] - DDRUMErrorEventContainerSource Source { get; } - - // @property (readonly, nonatomic, strong) DDRUMErrorEventContainerView * _Nonnull view; - [Export ("view", ArgumentSemantic.Strong)] - DDRUMErrorEventContainerView View { get; } - } - - // @interface DDRUMErrorEventContainerView : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc28DDRUMErrorEventContainerView")] - [DisableDefaultCtor] - interface DDRUMErrorEventContainerView - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - } - - // @interface DDRUMErrorEventDD : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc17DDRUMErrorEventDD")] - [DisableDefaultCtor] - interface DDRUMErrorEventDD - { - // @property (readonly, copy, nonatomic) NSString * _Nullable browserSdkVersion; - [NullAllowed, Export ("browserSdkVersion")] - string BrowserSdkVersion { get; } - - // @property (readonly, nonatomic, strong) DDRUMErrorEventDDConfiguration * _Nullable configuration; - [NullAllowed, Export ("configuration", ArgumentSemantic.Strong)] - DDRUMErrorEventDDConfiguration Configuration { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull formatVersion; - [Export ("formatVersion", ArgumentSemantic.Strong)] - NSNumber FormatVersion { get; } - - // @property (readonly, nonatomic, strong) DDRUMErrorEventDDSession * _Nullable session; - [NullAllowed, Export ("session", ArgumentSemantic.Strong)] - DDRUMErrorEventDDSession Session { get; } - - [Export ("sdkName", ArgumentSemantic.Copy)] - string SdkName { get; } - } - - // @interface DDRUMErrorEventDDConfiguration : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc30DDRUMErrorEventDDConfiguration")] - [DisableDefaultCtor] - interface DDRUMErrorEventDDConfiguration - { - // @property (readonly, nonatomic, strong) NSNumber * _Nullable sessionReplaySampleRate; - [NullAllowed, Export ("sessionReplaySampleRate", ArgumentSemantic.Strong)] - NSNumber SessionReplaySampleRate { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull sessionSampleRate; - [Export ("sessionSampleRate", ArgumentSemantic.Strong)] - NSNumber SessionSampleRate { get; } - - [Export ("profilingSampleRate", ArgumentSemantic.Strong)] - NSNumber ProfilingSampleRate { get; } - } - - // @interface DDRUMErrorEventDDSession : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc24DDRUMErrorEventDDSession")] - [DisableDefaultCtor] - interface DDRUMErrorEventDDSession - { - // @property (readonly, nonatomic) enum DDRUMErrorEventDDSessionPlan plan; - [Export ("plan")] - DDRUMErrorEventDDSessionPlan Plan { get; } - - // @property (readonly, nonatomic) enum DDRUMErrorEventDDSessionRUMSessionPrecondition sessionPrecondition; - [Export ("sessionPrecondition")] - DDRUMErrorEventDDSessionRUMSessionPrecondition SessionPrecondition { get; } - } - - // @interface DDRUMErrorEventDisplay : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc22DDRUMErrorEventDisplay")] - [DisableDefaultCtor] - interface DDRUMErrorEventDisplay - { - // @property (readonly, nonatomic, strong) DDRUMErrorEventDisplayViewport * _Nullable viewport; - [NullAllowed, Export ("viewport", ArgumentSemantic.Strong)] - DDRUMErrorEventDisplayViewport Viewport { get; } - } - - // @interface DDRUMErrorEventDisplayViewport : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc30DDRUMErrorEventDisplayViewport")] - [DisableDefaultCtor] - interface DDRUMErrorEventDisplayViewport - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull height; - [Export ("height", ArgumentSemantic.Strong)] - NSNumber Height { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull width; - [Export ("width", ArgumentSemantic.Strong)] - NSNumber Width { get; } - } - - // @interface DDRUMErrorEventError : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc20DDRUMErrorEventError")] - [DisableDefaultCtor] - interface DDRUMErrorEventError - { - // @property (readonly, copy, nonatomic) NSArray * _Nullable binaryImages; - [NullAllowed, Export ("binaryImages", ArgumentSemantic.Copy)] - DDRUMErrorEventErrorBinaryImages[] BinaryImages { get; } - - // @property (readonly, nonatomic) enum DDRUMErrorEventErrorCategory category; - [Export ("category")] - DDRUMErrorEventErrorCategory Category { get; } - - // @property (copy, nonatomic) NSArray * _Nullable causes; - [NullAllowed, Export ("causes", ArgumentSemantic.Copy)] - DDRUMErrorEventErrorCauses[] Causes { get; set; } - - // @property (readonly, nonatomic, strong) DDRUMErrorEventErrorCSP * _Nullable csp; - [NullAllowed, Export ("csp", ArgumentSemantic.Strong)] - DDRUMErrorEventErrorCSP Csp { get; } - - // @property (copy, nonatomic) NSString * _Nullable fingerprint; - [NullAllowed, Export ("fingerprint")] - string Fingerprint { get; set; } - - // @property (readonly, nonatomic) enum DDRUMErrorEventErrorHandling handling; - [Export ("handling")] - DDRUMErrorEventErrorHandling Handling { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable handlingStack; - [NullAllowed, Export ("handlingStack")] - string HandlingStack { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable id; - [NullAllowed, Export ("id")] - string Id { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable isCrash; - [NullAllowed, Export ("isCrash", ArgumentSemantic.Strong)] - NSNumber IsCrash { get; } - - // @property (copy, nonatomic) NSString * _Nonnull message; - [Export ("message")] - string Message { get; set; } - - // @property (readonly, nonatomic, strong) DDRUMErrorEventErrorMeta * _Nullable meta; - [NullAllowed, Export ("meta", ArgumentSemantic.Strong)] - DDRUMErrorEventErrorMeta Meta { get; } - - // @property (readonly, nonatomic, strong) DDRUMErrorEventErrorResource * _Nullable resource; - [NullAllowed, Export ("resource", ArgumentSemantic.Strong)] - DDRUMErrorEventErrorResource Resource { get; } - - // @property (readonly, nonatomic) enum DDRUMErrorEventErrorSource source; - [Export ("source")] - DDRUMErrorEventErrorSource Source { get; } - - // @property (readonly, nonatomic) enum DDRUMErrorEventErrorSourceType sourceType; - [Export ("sourceType")] - DDRUMErrorEventErrorSourceType SourceType { get; } - - // @property (copy, nonatomic) NSString * _Nullable stack; - [NullAllowed, Export ("stack")] - string Stack { get; set; } - - // @property (readonly, copy, nonatomic) NSArray * _Nullable threads; - [NullAllowed, Export ("threads", ArgumentSemantic.Copy)] - DDRUMErrorEventErrorThreads[] Threads { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable timeSinceAppStart; - [NullAllowed, Export ("timeSinceAppStart", ArgumentSemantic.Strong)] - NSNumber TimeSinceAppStart { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable type; - [NullAllowed, Export ("type")] - string Type { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable wasTruncated; - [NullAllowed, Export ("wasTruncated", ArgumentSemantic.Strong)] - NSNumber WasTruncated { get; } - } - - // @interface DDRUMErrorEventErrorBinaryImages : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc32DDRUMErrorEventErrorBinaryImages")] - [DisableDefaultCtor] - interface DDRUMErrorEventErrorBinaryImages - { - // @property (readonly, copy, nonatomic) NSString * _Nullable arch; - [NullAllowed, Export ("arch")] - string Arch { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull isSystem; - [Export ("isSystem", ArgumentSemantic.Strong)] - NSNumber IsSystem { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable loadAddress; - [NullAllowed, Export ("loadAddress")] - string LoadAddress { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable maxAddress; - [NullAllowed, Export ("maxAddress")] - string MaxAddress { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull name; - [Export ("name")] - string Name { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull uuid; - [Export ("uuid")] - string Uuid { get; } - } - - // @interface DDRUMErrorEventErrorCSP : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc23DDRUMErrorEventErrorCSP")] - [DisableDefaultCtor] - interface DDRUMErrorEventErrorCSP - { - // @property (readonly, nonatomic) enum DDRUMErrorEventErrorCSPDisposition disposition; - [Export ("disposition")] - DDRUMErrorEventErrorCSPDisposition Disposition { get; } - } - - // @interface DDRUMErrorEventErrorCauses : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc26DDRUMErrorEventErrorCauses")] - [DisableDefaultCtor] - interface DDRUMErrorEventErrorCauses - { - // @property (copy, nonatomic) NSString * _Nonnull message; - [Export ("message")] - string Message { get; set; } - - // @property (readonly, nonatomic) enum DDRUMErrorEventErrorCausesSource source; - [Export ("source")] - DDRUMErrorEventErrorCausesSource Source { get; } - - // @property (copy, nonatomic) NSString * _Nullable stack; - [NullAllowed, Export ("stack")] - string Stack { get; set; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable type; - [NullAllowed, Export ("type")] - string Type { get; } - } - - // @interface DDRUMErrorEventErrorMeta : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc24DDRUMErrorEventErrorMeta")] - [DisableDefaultCtor] - interface DDRUMErrorEventErrorMeta - { - // @property (readonly, copy, nonatomic) NSString * _Nullable codeType; - [NullAllowed, Export ("codeType")] - string CodeType { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable exceptionCodes; - [NullAllowed, Export ("exceptionCodes")] - string ExceptionCodes { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable exceptionType; - [NullAllowed, Export ("exceptionType")] - string ExceptionType { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable incidentIdentifier; - [NullAllowed, Export ("incidentIdentifier")] - string IncidentIdentifier { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable parentProcess; - [NullAllowed, Export ("parentProcess")] - string ParentProcess { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable path; - [NullAllowed, Export ("path")] - string Path { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable process; - [NullAllowed, Export ("process")] - string Process { get; } - } - - // @interface DDRUMErrorEventErrorResource : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc28DDRUMErrorEventErrorResource")] - [DisableDefaultCtor] - interface DDRUMErrorEventErrorResource - { - // @property (readonly, nonatomic) enum DDRUMErrorEventErrorResourceRUMMethod method; - [Export ("method")] - DDRUMErrorEventErrorResourceRUMMethod Method { get; } - - // @property (readonly, nonatomic, strong) DDRUMErrorEventErrorResourceProvider * _Nullable provider; - [NullAllowed, Export ("provider", ArgumentSemantic.Strong)] - DDRUMErrorEventErrorResourceProvider Provider { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull statusCode; - [Export ("statusCode", ArgumentSemantic.Strong)] - NSNumber StatusCode { get; } - - // @property (copy, nonatomic) NSString * _Nonnull url; - [Export ("url")] - string Url { get; set; } - } - - // @interface DDRUMErrorEventErrorResourceProvider : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc36DDRUMErrorEventErrorResourceProvider")] - [DisableDefaultCtor] - interface DDRUMErrorEventErrorResourceProvider - { - // @property (readonly, copy, nonatomic) NSString * _Nullable domain; - [NullAllowed, Export ("domain")] - string Domain { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable name; - [NullAllowed, Export ("name")] - string Name { get; } - - // @property (readonly, nonatomic) enum DDRUMErrorEventErrorResourceProviderProviderType type; - [Export ("type")] - DDRUMErrorEventErrorResourceProviderProviderType Type { get; } - } - - // @interface DDRUMErrorEventErrorThreads : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc27DDRUMErrorEventErrorThreads")] - [DisableDefaultCtor] - interface DDRUMErrorEventErrorThreads - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull crashed; - [Export ("crashed", ArgumentSemantic.Strong)] - NSNumber Crashed { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull name; - [Export ("name")] - string Name { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull stack; - [Export ("stack")] - string Stack { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable state; - [NullAllowed, Export ("state")] - string State { get; } - } - - // @interface DDRUMErrorEventFeatureFlags : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc27DDRUMErrorEventFeatureFlags")] - [DisableDefaultCtor] - interface DDRUMErrorEventFeatureFlags - { - // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull featureFlagsInfo; - [Export ("featureFlagsInfo", ArgumentSemantic.Copy)] - NSDictionary FeatureFlagsInfo { get; } - } - - // @interface DDRUMErrorEventFreeze : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc21DDRUMErrorEventFreeze")] - [DisableDefaultCtor] - interface DDRUMErrorEventFreeze - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull duration; - [Export ("duration", ArgumentSemantic.Strong)] - NSNumber Duration { get; } - } - - // @interface DDRUMErrorEventRUMCITest : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc24DDRUMErrorEventRUMCITest")] - [DisableDefaultCtor] - interface DDRUMErrorEventRUMCITest - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull testExecutionId; - [Export ("testExecutionId")] - string TestExecutionId { get; } - } - - // @interface DDRUMErrorEventRUMConnectivity : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc30DDRUMErrorEventRUMConnectivity")] - [DisableDefaultCtor] - interface DDRUMErrorEventRUMConnectivity - { - // @property (readonly, nonatomic, strong) DDRUMErrorEventRUMConnectivityCellular * _Nullable cellular; - [NullAllowed, Export ("cellular", ArgumentSemantic.Strong)] - DDRUMErrorEventRUMConnectivityCellular Cellular { get; } - - // @property (readonly, nonatomic) enum DDRUMErrorEventRUMConnectivityEffectiveType effectiveType; - [Export ("effectiveType")] - DDRUMErrorEventRUMConnectivityEffectiveType EffectiveType { get; } - - // @property (readonly, copy, nonatomic) NSArray * _Nullable interfaces; - [NullAllowed, Export ("interfaces", ArgumentSemantic.Copy)] - NSNumber[] Interfaces { get; } - - // @property (readonly, nonatomic) enum DDRUMErrorEventRUMConnectivityStatus status; - [Export ("status")] - DDRUMErrorEventRUMConnectivityStatus Status { get; } - } - - // @interface DDRUMErrorEventRUMConnectivityCellular : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc38DDRUMErrorEventRUMConnectivityCellular")] - [DisableDefaultCtor] - interface DDRUMErrorEventRUMConnectivityCellular - { - // @property (readonly, copy, nonatomic) NSString * _Nullable carrierName; - [NullAllowed, Export ("carrierName")] - string CarrierName { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable technology; - [NullAllowed, Export ("technology")] - string Technology { get; } - } - - // @interface DDRUMErrorEventRUMDevice : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc24DDRUMErrorEventRUMDevice")] - [DisableDefaultCtor] - interface DDRUMErrorEventRUMDevice - { - // @property (readonly, copy, nonatomic) NSString * _Nullable architecture; - [NullAllowed, Export ("architecture")] - string Architecture { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable brand; - [NullAllowed, Export ("brand")] - string Brand { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable model; - [NullAllowed, Export ("model")] - string Model { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable name; - [NullAllowed, Export ("name")] - string Name { get; } - - // @property (readonly, nonatomic) enum DDRUMErrorEventRUMDeviceRUMDeviceType type; - [Export ("type")] - DDRUMErrorEventRUMDeviceRUMDeviceType Type { get; } - - [Export ("batteryLevel", ArgumentSemantic.Strong)] - NSNumber BatteryLevel { get; } - - [Export ("brightnessLevel", ArgumentSemantic.Strong)] - NSNumber BrightnessLevel { get; } - - [Export ("locale", ArgumentSemantic.Copy)] - string Locale { get; } - - [Export ("locales", ArgumentSemantic.Copy)] - string[] Locales { get; } - - [Export ("powerSavingMode", ArgumentSemantic.Strong)] - NSNumber PowerSavingMode { get; } - - [Export ("timeZone", ArgumentSemantic.Copy)] - string TimeZone { get; } - } - - // @interface DDRUMErrorEventRUMEventAttributes : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc33DDRUMErrorEventRUMEventAttributes")] - [DisableDefaultCtor] - interface DDRUMErrorEventRUMEventAttributes - { - // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull contextInfo; - [Export ("contextInfo", ArgumentSemantic.Copy)] - NSDictionary ContextInfo { get; } - } - - // @interface DDRUMErrorEventRUMOperatingSystem : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc33DDRUMErrorEventRUMOperatingSystem")] - [DisableDefaultCtor] - interface DDRUMErrorEventRUMOperatingSystem - { - // @property (readonly, copy, nonatomic) NSString * _Nullable build; - [NullAllowed, Export ("build")] - string Build { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull name; - [Export ("name")] - string Name { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull version; - [Export ("version")] - string Version { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull versionMajor; - [Export ("versionMajor")] - string VersionMajor { get; } - } - - // @interface DDRUMErrorEventRUMSyntheticsTest : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc32DDRUMErrorEventRUMSyntheticsTest")] - [DisableDefaultCtor] - interface DDRUMErrorEventRUMSyntheticsTest - { - // @property (readonly, nonatomic, strong) NSNumber * _Nullable injected; - [NullAllowed, Export ("injected", ArgumentSemantic.Strong)] - NSNumber Injected { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull resultId; - [Export ("resultId")] - string ResultId { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull testId; - [Export ("testId")] - string TestId { get; } - } - - // @interface DDRUMErrorEventRUMUser : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc22DDRUMErrorEventRUMUser")] - [DisableDefaultCtor] - interface DDRUMErrorEventRUMUser - { - // @property (readonly, copy, nonatomic) NSString * _Nullable email; - [NullAllowed, Export ("email")] - string Email { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable id; - [NullAllowed, Export ("id")] - string Id { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable name; - [NullAllowed, Export ("name")] - string Name { get; } - - // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull usrInfo; - [Export ("usrInfo", ArgumentSemantic.Copy)] - NSDictionary UsrInfo { get; } - - [Export ("anonymousId", ArgumentSemantic.Copy)] - string AnonymousId { get; } - } - - // @interface DDRUMErrorEventSession : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc22DDRUMErrorEventSession")] - [DisableDefaultCtor] - interface DDRUMErrorEventSession - { - // @property (readonly, nonatomic, strong) NSNumber * _Nullable hasReplay; - [NullAllowed, Export ("hasReplay", ArgumentSemantic.Strong)] - NSNumber HasReplay { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - - // @property (readonly, nonatomic) enum DDRUMErrorEventSessionRUMSessionType type; - [Export ("type")] - DDRUMErrorEventSessionRUMSessionType Type { get; } - } - - // @interface DDRUMErrorEventView : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc19DDRUMErrorEventView")] - [DisableDefaultCtor] - interface DDRUMErrorEventView - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable inForeground; - [NullAllowed, Export ("inForeground", ArgumentSemantic.Strong)] - NSNumber InForeground { get; } - - // @property (copy, nonatomic) NSString * _Nullable name; - [NullAllowed, Export ("name")] - string Name { get; set; } - - // @property (copy, nonatomic) NSString * _Nullable referrer; - [NullAllowed, Export ("referrer")] - string Referrer { get; set; } - - // @property (copy, nonatomic) NSString * _Nonnull url; - [Export ("url")] - string Url { get; set; } - } - - // @interface DDRUMFirstPartyHostsTracing : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc27DDRUMFirstPartyHostsTracing")] - [DisableDefaultCtor] - interface DDRUMFirstPartyHostsTracing - { - // -(instancetype _Nonnull)initWithHostsWithHeaderTypes:(NSDictionary *> * _Nonnull)hostsWithHeaderTypes __attribute__((objc_designated_initializer)); - [Export ("initWithHostsWithHeaderTypes:")] - [DesignatedInitializer] - NativeHandle Constructor (NSDictionary> hostsWithHeaderTypes); - - // -(instancetype _Nonnull)initWithHostsWithHeaderTypes:(NSDictionary *> * _Nonnull)hostsWithHeaderTypes sampleRate:(float)sampleRate __attribute__((objc_designated_initializer)); - [Export ("initWithHostsWithHeaderTypes:sampleRate:")] - [DesignatedInitializer] - NativeHandle Constructor (NSDictionary> hostsWithHeaderTypes, float sampleRate); - - // -(instancetype _Nonnull)initWithHosts:(NSSet * _Nonnull)hosts __attribute__((objc_designated_initializer)); - [Export ("initWithHosts:")] - [DesignatedInitializer] - NativeHandle Constructor (NSSet hosts); - - // -(instancetype _Nonnull)initWithHosts:(NSSet * _Nonnull)hosts sampleRate:(float)sampleRate __attribute__((objc_designated_initializer)); - [Export ("initWithHosts:sampleRate:")] - [DesignatedInitializer] - NativeHandle Constructor (NSSet hosts, float sampleRate); - } - - // @interface DDRUMLongTaskEvent : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc18DDRUMLongTaskEvent")] - [DisableDefaultCtor] - interface DDRUMLongTaskEvent - { - // @property (readonly, nonatomic, strong) DDRUMLongTaskEventDD * _Nonnull dd; - [Export ("dd", ArgumentSemantic.Strong)] - DDRUMLongTaskEventDD Dd { get; } - - // @property (readonly, nonatomic, strong) DDRUMLongTaskEventAction * _Nullable action; - [NullAllowed, Export ("action", ArgumentSemantic.Strong)] - DDRUMLongTaskEventAction Action { get; } - - // @property (readonly, nonatomic, strong) DDRUMLongTaskEventApplication * _Nonnull application; - [Export ("application", ArgumentSemantic.Strong)] - DDRUMLongTaskEventApplication Application { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable buildId; - [NullAllowed, Export ("buildId")] - string BuildId { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable buildVersion; - [NullAllowed, Export ("buildVersion")] - string BuildVersion { get; } - - // @property (readonly, nonatomic, strong) DDRUMLongTaskEventRUMCITest * _Nullable ciTest; - [NullAllowed, Export ("ciTest", ArgumentSemantic.Strong)] - DDRUMLongTaskEventRUMCITest CiTest { get; } - - // @property (readonly, nonatomic, strong) DDRUMLongTaskEventRUMConnectivity * _Nullable connectivity; - [NullAllowed, Export ("connectivity", ArgumentSemantic.Strong)] - DDRUMLongTaskEventRUMConnectivity Connectivity { get; } - - // @property (readonly, nonatomic, strong) DDRUMLongTaskEventContainer * _Nullable container; - [NullAllowed, Export ("container", ArgumentSemantic.Strong)] - DDRUMLongTaskEventContainer Container { get; } - - // @property (readonly, nonatomic, strong) DDRUMLongTaskEventRUMEventAttributes * _Nullable context; - [NullAllowed, Export ("context", ArgumentSemantic.Strong)] - DDRUMLongTaskEventRUMEventAttributes Context { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull date; - [Export ("date", ArgumentSemantic.Strong)] - NSNumber Date { get; } - - // @property (readonly, nonatomic, strong) DDRUMLongTaskEventRUMDevice * _Nullable device; - [NullAllowed, Export ("device", ArgumentSemantic.Strong)] - DDRUMLongTaskEventRUMDevice Device { get; } - - // @property (readonly, nonatomic, strong) DDRUMLongTaskEventDisplay * _Nullable display; - [NullAllowed, Export ("display", ArgumentSemantic.Strong)] - DDRUMLongTaskEventDisplay Display { get; } - - // @property (readonly, nonatomic, strong) DDRUMLongTaskEventLongTask * _Nonnull longTask; - [Export ("longTask", ArgumentSemantic.Strong)] - DDRUMLongTaskEventLongTask LongTask { get; } - - // @property (readonly, nonatomic, strong) DDRUMLongTaskEventRUMOperatingSystem * _Nullable os; - [NullAllowed, Export ("os", ArgumentSemantic.Strong)] - DDRUMLongTaskEventRUMOperatingSystem Os { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable service; - [NullAllowed, Export ("service")] - string Service { get; } - - // @property (readonly, nonatomic, strong) DDRUMLongTaskEventSession * _Nonnull session; - [Export ("session", ArgumentSemantic.Strong)] - DDRUMLongTaskEventSession Session { get; } - - // @property (readonly, nonatomic) enum DDRUMLongTaskEventSource source; - [Export ("source")] - DDRUMLongTaskEventSource Source { get; } - - // @property (readonly, nonatomic, strong) DDRUMLongTaskEventRUMSyntheticsTest * _Nullable synthetics; - [NullAllowed, Export ("synthetics", ArgumentSemantic.Strong)] - DDRUMLongTaskEventRUMSyntheticsTest Synthetics { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull type; - [Export ("type")] - string Type { get; } - - // @property (readonly, nonatomic, strong) DDRUMLongTaskEventRUMUser * _Nullable usr; - [NullAllowed, Export ("usr", ArgumentSemantic.Strong)] - DDRUMLongTaskEventRUMUser Usr { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable version; - [NullAllowed, Export ("version")] - string Version { get; } - - // @property (readonly, nonatomic, strong) DDRUMLongTaskEventView * _Nonnull view; - [Export ("view", ArgumentSemantic.Strong)] - DDRUMLongTaskEventView View { get; } - - [Export ("account", ArgumentSemantic.Strong)] - DDRUMLongTaskEventRUMAccount Account { get; } - - [Export ("ddtags", ArgumentSemantic.Copy)] - string Ddtags { get; } - } - - // @interface DDRUMLongTaskEventAction : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc24DDRUMLongTaskEventAction")] - [DisableDefaultCtor] - interface DDRUMLongTaskEventAction - { - // @property (readonly, nonatomic, strong) DDRUMLongTaskEventActionRUMActionID * _Nonnull id; - [Export ("id", ArgumentSemantic.Strong)] - DDRUMLongTaskEventActionRUMActionID Id { get; } - } - - // @interface DDRUMLongTaskEventActionRUMActionID : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc35DDRUMLongTaskEventActionRUMActionID")] - [DisableDefaultCtor] - interface DDRUMLongTaskEventActionRUMActionID - { - // @property (readonly, copy, nonatomic) NSString * _Nullable string; - [NullAllowed, Export ("string")] - string String { get; } - - // @property (readonly, copy, nonatomic) NSArray * _Nullable stringsArray; - [NullAllowed, Export ("stringsArray", ArgumentSemantic.Copy)] - string[] StringsArray { get; } - } - - // @interface DDRUMLongTaskEventApplication : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc29DDRUMLongTaskEventApplication")] - [DisableDefaultCtor] - interface DDRUMLongTaskEventApplication - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - - [Export ("currentLocale", ArgumentSemantic.Copy)] - string CurrentLocale { get; } - } - - // @interface DDRUMLongTaskEventContainer : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc27DDRUMLongTaskEventContainer")] - [DisableDefaultCtor] - interface DDRUMLongTaskEventContainer - { - // @property (readonly, nonatomic) enum DDRUMLongTaskEventContainerSource source; - [Export ("source")] - DDRUMLongTaskEventContainerSource Source { get; } - - // @property (readonly, nonatomic, strong) DDRUMLongTaskEventContainerView * _Nonnull view; - [Export ("view", ArgumentSemantic.Strong)] - DDRUMLongTaskEventContainerView View { get; } - } - - // @interface DDRUMLongTaskEventContainerView : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc31DDRUMLongTaskEventContainerView")] - [DisableDefaultCtor] - interface DDRUMLongTaskEventContainerView - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - } - - // @interface DDRUMLongTaskEventDD : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc20DDRUMLongTaskEventDD")] - [DisableDefaultCtor] - interface DDRUMLongTaskEventDD - { - // @property (readonly, copy, nonatomic) NSString * _Nullable browserSdkVersion; - [NullAllowed, Export ("browserSdkVersion")] - string BrowserSdkVersion { get; } - - // @property (readonly, nonatomic, strong) DDRUMLongTaskEventDDConfiguration * _Nullable configuration; - [NullAllowed, Export ("configuration", ArgumentSemantic.Strong)] - DDRUMLongTaskEventDDConfiguration Configuration { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable discarded; - [NullAllowed, Export ("discarded", ArgumentSemantic.Strong)] - NSNumber Discarded { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull formatVersion; - [Export ("formatVersion", ArgumentSemantic.Strong)] - NSNumber FormatVersion { get; } - - // @property (readonly, nonatomic, strong) DDRUMLongTaskEventDDSession * _Nullable session; - [NullAllowed, Export ("session", ArgumentSemantic.Strong)] - DDRUMLongTaskEventDDSession Session { get; } - - [Export ("profiling", ArgumentSemantic.Strong)] - DDRUMLongTaskEventDDProfiling Profiling { get; } - - [Export ("sdkName", ArgumentSemantic.Copy)] - string SdkName { get; } - } - - // @interface DDRUMLongTaskEventDDConfiguration : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc33DDRUMLongTaskEventDDConfiguration")] - [DisableDefaultCtor] - interface DDRUMLongTaskEventDDConfiguration - { - // @property (readonly, nonatomic, strong) NSNumber * _Nullable sessionReplaySampleRate; - [NullAllowed, Export ("sessionReplaySampleRate", ArgumentSemantic.Strong)] - NSNumber SessionReplaySampleRate { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull sessionSampleRate; - [Export ("sessionSampleRate", ArgumentSemantic.Strong)] - NSNumber SessionSampleRate { get; } - - [Export ("profilingSampleRate", ArgumentSemantic.Strong)] - NSNumber ProfilingSampleRate { get; } - } - - // @interface DDRUMLongTaskEventDDSession : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc27DDRUMLongTaskEventDDSession")] - [DisableDefaultCtor] - interface DDRUMLongTaskEventDDSession - { - // @property (readonly, nonatomic) enum DDRUMLongTaskEventDDSessionPlan plan; - [Export ("plan")] - DDRUMLongTaskEventDDSessionPlan Plan { get; } - - // @property (readonly, nonatomic) enum DDRUMLongTaskEventDDSessionRUMSessionPrecondition sessionPrecondition; - [Export ("sessionPrecondition")] - DDRUMLongTaskEventDDSessionRUMSessionPrecondition SessionPrecondition { get; } - } - - // @interface DDRUMLongTaskEventDisplay : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc25DDRUMLongTaskEventDisplay")] - [DisableDefaultCtor] - interface DDRUMLongTaskEventDisplay - { - // @property (readonly, nonatomic, strong) DDRUMLongTaskEventDisplayViewport * _Nullable viewport; - [NullAllowed, Export ("viewport", ArgumentSemantic.Strong)] - DDRUMLongTaskEventDisplayViewport Viewport { get; } - } - - // @interface DDRUMLongTaskEventDisplayViewport : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc33DDRUMLongTaskEventDisplayViewport")] - [DisableDefaultCtor] - interface DDRUMLongTaskEventDisplayViewport - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull height; - [Export ("height", ArgumentSemantic.Strong)] - NSNumber Height { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull width; - [Export ("width", ArgumentSemantic.Strong)] - NSNumber Width { get; } - } - - // @interface DDRUMLongTaskEventLongTask : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc26DDRUMLongTaskEventLongTask")] - [DisableDefaultCtor] - interface DDRUMLongTaskEventLongTask - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull duration; - [Export ("duration", ArgumentSemantic.Strong)] - NSNumber Duration { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable id; - [NullAllowed, Export ("id")] - string Id { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable isFrozenFrame; - [NullAllowed, Export ("isFrozenFrame", ArgumentSemantic.Strong)] - NSNumber IsFrozenFrame { get; } - - [Export ("startTime", ArgumentSemantic.Strong)] - NSNumber StartTime { get; } - } - - // @interface DDRUMLongTaskEventRUMCITest : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc27DDRUMLongTaskEventRUMCITest")] - [DisableDefaultCtor] - interface DDRUMLongTaskEventRUMCITest - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull testExecutionId; - [Export ("testExecutionId")] - string TestExecutionId { get; } - } - - // @interface DDRUMLongTaskEventRUMConnectivity : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc33DDRUMLongTaskEventRUMConnectivity")] - [DisableDefaultCtor] - interface DDRUMLongTaskEventRUMConnectivity - { - // @property (readonly, nonatomic, strong) DDRUMLongTaskEventRUMConnectivityCellular * _Nullable cellular; - [NullAllowed, Export ("cellular", ArgumentSemantic.Strong)] - DDRUMLongTaskEventRUMConnectivityCellular Cellular { get; } - - // @property (readonly, nonatomic) enum DDRUMLongTaskEventRUMConnectivityEffectiveType effectiveType; - [Export ("effectiveType")] - DDRUMLongTaskEventRUMConnectivityEffectiveType EffectiveType { get; } - - // @property (readonly, copy, nonatomic) NSArray * _Nullable interfaces; - [NullAllowed, Export ("interfaces", ArgumentSemantic.Copy)] - NSNumber[] Interfaces { get; } - - // @property (readonly, nonatomic) enum DDRUMLongTaskEventRUMConnectivityStatus status; - [Export ("status")] - DDRUMLongTaskEventRUMConnectivityStatus Status { get; } - } - - // @interface DDRUMLongTaskEventRUMConnectivityCellular : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc41DDRUMLongTaskEventRUMConnectivityCellular")] - [DisableDefaultCtor] - interface DDRUMLongTaskEventRUMConnectivityCellular - { - // @property (readonly, copy, nonatomic) NSString * _Nullable carrierName; - [NullAllowed, Export ("carrierName")] - string CarrierName { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable technology; - [NullAllowed, Export ("technology")] - string Technology { get; } - } - - // @interface DDRUMLongTaskEventRUMDevice : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc27DDRUMLongTaskEventRUMDevice")] - [DisableDefaultCtor] - interface DDRUMLongTaskEventRUMDevice - { - // @property (readonly, copy, nonatomic) NSString * _Nullable architecture; - [NullAllowed, Export ("architecture")] - string Architecture { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable brand; - [NullAllowed, Export ("brand")] - string Brand { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable model; - [NullAllowed, Export ("model")] - string Model { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable name; - [NullAllowed, Export ("name")] - string Name { get; } - - // @property (readonly, nonatomic) enum DDRUMLongTaskEventRUMDeviceRUMDeviceType type; - [Export ("type")] - DDRUMLongTaskEventRUMDeviceRUMDeviceType Type { get; } - - [Export ("batteryLevel", ArgumentSemantic.Strong)] - NSNumber BatteryLevel { get; } - - [Export ("brightnessLevel", ArgumentSemantic.Strong)] - NSNumber BrightnessLevel { get; } - - [Export ("locale", ArgumentSemantic.Copy)] - string Locale { get; } - - [Export ("locales", ArgumentSemantic.Copy)] - string[] Locales { get; } - - [Export ("powerSavingMode", ArgumentSemantic.Strong)] - NSNumber PowerSavingMode { get; } - - [Export ("timeZone", ArgumentSemantic.Copy)] - string TimeZone { get; } - } - - // @interface DDRUMLongTaskEventRUMEventAttributes : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc36DDRUMLongTaskEventRUMEventAttributes")] - [DisableDefaultCtor] - interface DDRUMLongTaskEventRUMEventAttributes - { - // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull contextInfo; - [Export ("contextInfo", ArgumentSemantic.Copy)] - NSDictionary ContextInfo { get; } - } - - // @interface DDRUMLongTaskEventRUMOperatingSystem : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc36DDRUMLongTaskEventRUMOperatingSystem")] - [DisableDefaultCtor] - interface DDRUMLongTaskEventRUMOperatingSystem - { - // @property (readonly, copy, nonatomic) NSString * _Nullable build; - [NullAllowed, Export ("build")] - string Build { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull name; - [Export ("name")] - string Name { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull version; - [Export ("version")] - string Version { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull versionMajor; - [Export ("versionMajor")] - string VersionMajor { get; } - } - - // @interface DDRUMLongTaskEventRUMSyntheticsTest : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc35DDRUMLongTaskEventRUMSyntheticsTest")] - [DisableDefaultCtor] - interface DDRUMLongTaskEventRUMSyntheticsTest - { - // @property (readonly, nonatomic, strong) NSNumber * _Nullable injected; - [NullAllowed, Export ("injected", ArgumentSemantic.Strong)] - NSNumber Injected { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull resultId; - [Export ("resultId")] - string ResultId { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull testId; - [Export ("testId")] - string TestId { get; } - } - - // @interface DDRUMLongTaskEventRUMUser : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc25DDRUMLongTaskEventRUMUser")] - [DisableDefaultCtor] - interface DDRUMLongTaskEventRUMUser - { - // @property (readonly, copy, nonatomic) NSString * _Nullable email; - [NullAllowed, Export ("email")] - string Email { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable id; - [NullAllowed, Export ("id")] - string Id { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable name; - [NullAllowed, Export ("name")] - string Name { get; } - - // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull usrInfo; - [Export ("usrInfo", ArgumentSemantic.Copy)] - NSDictionary UsrInfo { get; } - - [Export ("anonymousId", ArgumentSemantic.Copy)] - string AnonymousId { get; } - } - - // @interface DDRUMLongTaskEventSession : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc25DDRUMLongTaskEventSession")] - [DisableDefaultCtor] - interface DDRUMLongTaskEventSession - { - // @property (readonly, nonatomic, strong) NSNumber * _Nullable hasReplay; - [NullAllowed, Export ("hasReplay", ArgumentSemantic.Strong)] - NSNumber HasReplay { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - - // @property (readonly, nonatomic) enum DDRUMLongTaskEventSessionRUMSessionType type; - [Export ("type")] - DDRUMLongTaskEventSessionRUMSessionType Type { get; } - } - - // @interface DDRUMLongTaskEventView : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc22DDRUMLongTaskEventView")] - [DisableDefaultCtor] - interface DDRUMLongTaskEventView - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - - // @property (copy, nonatomic) NSString * _Nullable name; - [NullAllowed, Export ("name")] - string Name { get; set; } - - // @property (copy, nonatomic) NSString * _Nullable referrer; - [NullAllowed, Export ("referrer")] - string Referrer { get; set; } - - // @property (copy, nonatomic) NSString * _Nonnull url; - [Export ("url")] - string Url { get; set; } - } - - // @interface DDRUMMonitor : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc12DDRUMMonitor")] - [DisableDefaultCtor] - interface DDRUMMonitor - { - // +(DDRUMMonitor * _Nonnull)shared __attribute__((warn_unused_result(""))); - [Static] - [Export ("shared")] - DDRUMMonitor Shared { get; } - - // -(void)currentSessionIDWithCompletion:(void (^ _Nonnull)(NSString * _Nullable))completion; - [Export ("currentSessionIDWithCompletion:")] - void CurrentSessionIDWithCompletion (Action completion); - - // -(void)stopSession; - [Export ("stopSession")] - void StopSession (); - - // -(void)startViewWithViewController:(UIViewController * _Nonnull)viewController name:(NSString * _Nullable)name attributes:(NSDictionary * _Nonnull)attributes; - [Export ("startViewWithViewController:name:attributes:")] - void StartViewWithViewController (UIViewController viewController, [NullAllowed] string name, NSDictionary attributes); - - // -(void)stopViewWithViewController:(UIViewController * _Nonnull)viewController attributes:(NSDictionary * _Nonnull)attributes; - [Export ("stopViewWithViewController:attributes:")] - void StopViewWithViewController (UIViewController viewController, NSDictionary attributes); - - // -(void)startViewWithKey:(NSString * _Nonnull)key name:(NSString * _Nullable)name attributes:(NSDictionary * _Nonnull)attributes; - [Export ("startViewWithKey:name:attributes:")] - void StartViewWithKey (string key, [NullAllowed] string name, NSDictionary attributes); - - // -(void)stopViewWithKey:(NSString * _Nonnull)key attributes:(NSDictionary * _Nonnull)attributes; - [Export ("stopViewWithKey:attributes:")] - void StopViewWithKey (string key, NSDictionary attributes); - - // -(void)addTimingWithName:(NSString * _Nonnull)name; - [Export ("addTimingWithName:")] - void AddTimingWithName (string name); - - // -(void)addErrorWithMessage:(NSString * _Nonnull)message stack:(NSString * _Nullable)stack source:(enum DDRUMErrorSource)source attributes:(NSDictionary * _Nonnull)attributes; - [Export ("addErrorWithMessage:stack:source:attributes:")] - void AddErrorWithMessage (string message, [NullAllowed] string stack, DDRUMErrorSource source, NSDictionary attributes); - - // -(void)addErrorWithError:(NSError * _Nonnull)error source:(enum DDRUMErrorSource)source attributes:(NSDictionary * _Nonnull)attributes; - [Export ("addErrorWithError:source:attributes:")] - void AddErrorWithError (NSError error, DDRUMErrorSource source, NSDictionary attributes); - - // -(void)startResourceWithResourceKey:(NSString * _Nonnull)resourceKey request:(NSURLRequest * _Nonnull)request attributes:(NSDictionary * _Nonnull)attributes; - [Export ("startResourceWithResourceKey:request:attributes:")] - void StartResourceWithResourceKey (string resourceKey, NSUrlRequest request, NSDictionary attributes); - - // -(void)startResourceWithResourceKey:(NSString * _Nonnull)resourceKey url:(NSURL * _Nonnull)url attributes:(NSDictionary * _Nonnull)attributes; - [Export ("startResourceWithResourceKey:url:attributes:")] - void StartResourceWithResourceKey (string resourceKey, NSUrl url, NSDictionary attributes); - - // -(void)startResourceWithResourceKey:(NSString * _Nonnull)resourceKey httpMethod:(enum DDRUMMethod)httpMethod urlString:(NSString * _Nonnull)urlString attributes:(NSDictionary * _Nonnull)attributes; - [Export ("startResourceWithResourceKey:httpMethod:urlString:attributes:")] - void StartResourceWithResourceKey (string resourceKey, DDRUMMethod httpMethod, string urlString, NSDictionary attributes); - - // -(void)addResourceMetricsWithResourceKey:(NSString * _Nonnull)resourceKey metrics:(NSURLSessionTaskMetrics * _Nonnull)metrics attributes:(NSDictionary * _Nonnull)attributes; - [Export ("addResourceMetricsWithResourceKey:metrics:attributes:")] - void AddResourceMetricsWithResourceKey (string resourceKey, NSUrlSessionTaskMetrics metrics, NSDictionary attributes); - - // -(void)stopResourceWithResourceKey:(NSString * _Nonnull)resourceKey response:(NSURLResponse * _Nonnull)response size:(NSNumber * _Nullable)size attributes:(NSDictionary * _Nonnull)attributes; - [Export ("stopResourceWithResourceKey:response:size:attributes:")] - void StopResourceWithResourceKey (string resourceKey, NSUrlResponse response, [NullAllowed] NSNumber size, NSDictionary attributes); - - // -(void)stopResourceWithResourceKey:(NSString * _Nonnull)resourceKey statusCode:(NSNumber * _Nullable)statusCode kind:(enum DDRUMResourceType)kind size:(NSNumber * _Nullable)size attributes:(NSDictionary * _Nonnull)attributes; - [Export ("stopResourceWithResourceKey:statusCode:kind:size:attributes:")] - void StopResourceWithResourceKey (string resourceKey, [NullAllowed] NSNumber statusCode, DDRUMResourceType kind, [NullAllowed] NSNumber size, NSDictionary attributes); - - // -(void)stopResourceWithErrorWithResourceKey:(NSString * _Nonnull)resourceKey error:(NSError * _Nonnull)error response:(NSURLResponse * _Nullable)response attributes:(NSDictionary * _Nonnull)attributes; - [Export ("stopResourceWithErrorWithResourceKey:error:response:attributes:")] - void StopResourceWithErrorWithResourceKey (string resourceKey, NSError error, [NullAllowed] NSUrlResponse response, NSDictionary attributes); - - // -(void)stopResourceWithErrorWithResourceKey:(NSString * _Nonnull)resourceKey message:(NSString * _Nonnull)message response:(NSURLResponse * _Nullable)response attributes:(NSDictionary * _Nonnull)attributes; - [Export ("stopResourceWithErrorWithResourceKey:message:response:attributes:")] - void StopResourceWithErrorWithResourceKey (string resourceKey, string message, [NullAllowed] NSUrlResponse response, NSDictionary attributes); - - // -(void)startActionWithType:(enum DDRUMActionType)type name:(NSString * _Nonnull)name attributes:(NSDictionary * _Nonnull)attributes; - [Export ("startActionWithType:name:attributes:")] - void StartActionWithType (DDRUMActionType type, string name, NSDictionary attributes); - - // -(void)stopActionWithType:(enum DDRUMActionType)type name:(NSString * _Nullable)name attributes:(NSDictionary * _Nonnull)attributes; - [Export ("stopActionWithType:name:attributes:")] - void StopActionWithType (DDRUMActionType type, [NullAllowed] string name, NSDictionary attributes); - - // -(void)addActionWithType:(enum DDRUMActionType)type name:(NSString * _Nonnull)name attributes:(NSDictionary * _Nonnull)attributes; - [Export ("addActionWithType:name:attributes:")] - void AddActionWithType (DDRUMActionType type, string name, NSDictionary attributes); - - // -(void)addAttributeForKey:(NSString * _Nonnull)key value:(id _Nonnull)value; - [Export ("addAttributeForKey:value:")] - void AddAttributeForKey (string key, NSObject value); - - // -(void)removeAttributeForKey:(NSString * _Nonnull)key; - [Export ("removeAttributeForKey:")] - void RemoveAttributeForKey (string key); - - // -(void)addFeatureFlagEvaluationWithName:(NSString * _Nonnull)name value:(id _Nonnull)value; - [Export ("addFeatureFlagEvaluationWithName:value:")] - void AddFeatureFlagEvaluationWithName (string name, NSObject value); - - // @property (nonatomic) BOOL debug; - [Export ("debug")] - bool Debug { get; set; } - - [Export ("addAttributes:")] - void AddAttributes (NSDictionary attributes); - - [Export ("removeAttributesForKeys:")] - void RemoveAttributesForKeys (string[] keys); - } - - // @interface DDRUMResourceEvent : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc18DDRUMResourceEvent")] - [DisableDefaultCtor] - interface DDRUMResourceEvent - { - // @property (readonly, nonatomic, strong) DDRUMResourceEventDD * _Nonnull dd; - [Export ("dd", ArgumentSemantic.Strong)] - DDRUMResourceEventDD Dd { get; } - - // @property (readonly, nonatomic, strong) DDRUMResourceEventAction * _Nullable action; - [NullAllowed, Export ("action", ArgumentSemantic.Strong)] - DDRUMResourceEventAction Action { get; } - - // @property (readonly, nonatomic, strong) DDRUMResourceEventApplication * _Nonnull application; - [Export ("application", ArgumentSemantic.Strong)] - DDRUMResourceEventApplication Application { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable buildId; - [NullAllowed, Export ("buildId")] - string BuildId { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable buildVersion; - [NullAllowed, Export ("buildVersion")] - string BuildVersion { get; } - - // @property (readonly, nonatomic, strong) DDRUMResourceEventRUMCITest * _Nullable ciTest; - [NullAllowed, Export ("ciTest", ArgumentSemantic.Strong)] - DDRUMResourceEventRUMCITest CiTest { get; } - - // @property (readonly, nonatomic, strong) DDRUMResourceEventRUMConnectivity * _Nullable connectivity; - [NullAllowed, Export ("connectivity", ArgumentSemantic.Strong)] - DDRUMResourceEventRUMConnectivity Connectivity { get; } - - // @property (readonly, nonatomic, strong) DDRUMResourceEventContainer * _Nullable container; - [NullAllowed, Export ("container", ArgumentSemantic.Strong)] - DDRUMResourceEventContainer Container { get; } - - // @property (readonly, nonatomic, strong) DDRUMResourceEventRUMEventAttributes * _Nullable context; - [NullAllowed, Export ("context", ArgumentSemantic.Strong)] - DDRUMResourceEventRUMEventAttributes Context { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull date; - [Export ("date", ArgumentSemantic.Strong)] - NSNumber Date { get; } - - // @property (readonly, nonatomic, strong) DDRUMResourceEventRUMDevice * _Nullable device; - [NullAllowed, Export ("device", ArgumentSemantic.Strong)] - DDRUMResourceEventRUMDevice Device { get; } - - // @property (readonly, nonatomic, strong) DDRUMResourceEventDisplay * _Nullable display; - [NullAllowed, Export ("display", ArgumentSemantic.Strong)] - DDRUMResourceEventDisplay Display { get; } - - // @property (readonly, nonatomic, strong) DDRUMResourceEventRUMOperatingSystem * _Nullable os; - [NullAllowed, Export ("os", ArgumentSemantic.Strong)] - DDRUMResourceEventRUMOperatingSystem Os { get; } - - // @property (readonly, nonatomic, strong) DDRUMResourceEventResource * _Nonnull resource; - [Export ("resource", ArgumentSemantic.Strong)] - DDRUMResourceEventResource Resource { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable service; - [NullAllowed, Export ("service")] - string Service { get; } - - // @property (readonly, nonatomic, strong) DDRUMResourceEventSession * _Nonnull session; - [Export ("session", ArgumentSemantic.Strong)] - DDRUMResourceEventSession Session { get; } - - // @property (readonly, nonatomic) enum DDRUMResourceEventSource source; - [Export ("source")] - DDRUMResourceEventSource Source { get; } - - // @property (readonly, nonatomic, strong) DDRUMResourceEventRUMSyntheticsTest * _Nullable synthetics; - [NullAllowed, Export ("synthetics", ArgumentSemantic.Strong)] - DDRUMResourceEventRUMSyntheticsTest Synthetics { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull type; - [Export ("type")] - string Type { get; } - - // @property (readonly, nonatomic, strong) DDRUMResourceEventRUMUser * _Nullable usr; - [NullAllowed, Export ("usr", ArgumentSemantic.Strong)] - DDRUMResourceEventRUMUser Usr { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable version; - [NullAllowed, Export ("version")] - string Version { get; } - - // @property (readonly, nonatomic, strong) DDRUMResourceEventView * _Nonnull view; - [Export ("view", ArgumentSemantic.Strong)] - DDRUMResourceEventView View { get; } - - [Export ("account", ArgumentSemantic.Strong)] - DDRUMResourceEventRUMAccount Account { get; } - - [Export ("ddtags", ArgumentSemantic.Copy)] - string Ddtags { get; } - } - - // @interface DDRUMResourceEventAction : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc24DDRUMResourceEventAction")] - [DisableDefaultCtor] - interface DDRUMResourceEventAction - { - // @property (readonly, nonatomic, strong) DDRUMResourceEventActionRUMActionID * _Nonnull id; - [Export ("id", ArgumentSemantic.Strong)] - DDRUMResourceEventActionRUMActionID Id { get; } - } - - // @interface DDRUMResourceEventActionRUMActionID : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc35DDRUMResourceEventActionRUMActionID")] - [DisableDefaultCtor] - interface DDRUMResourceEventActionRUMActionID - { - // @property (readonly, copy, nonatomic) NSString * _Nullable string; - [NullAllowed, Export ("string")] - string String { get; } - - // @property (readonly, copy, nonatomic) NSArray * _Nullable stringsArray; - [NullAllowed, Export ("stringsArray", ArgumentSemantic.Copy)] - string[] StringsArray { get; } - } - - // @interface DDRUMResourceEventApplication : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc29DDRUMResourceEventApplication")] - [DisableDefaultCtor] - interface DDRUMResourceEventApplication - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - - [Export ("currentLocale", ArgumentSemantic.Copy)] - string CurrentLocale { get; } - } - - // @interface DDRUMResourceEventContainer : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc27DDRUMResourceEventContainer")] - [DisableDefaultCtor] - interface DDRUMResourceEventContainer - { - // @property (readonly, nonatomic) enum DDRUMResourceEventContainerSource source; - [Export ("source")] - DDRUMResourceEventContainerSource Source { get; } - - // @property (readonly, nonatomic, strong) DDRUMResourceEventContainerView * _Nonnull view; - [Export ("view", ArgumentSemantic.Strong)] - DDRUMResourceEventContainerView View { get; } - } - - // @interface DDRUMResourceEventContainerView : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc31DDRUMResourceEventContainerView")] - [DisableDefaultCtor] - interface DDRUMResourceEventContainerView - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - } - - // @interface DDRUMResourceEventDD : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc20DDRUMResourceEventDD")] - [DisableDefaultCtor] - interface DDRUMResourceEventDD - { - // @property (readonly, copy, nonatomic) NSString * _Nullable browserSdkVersion; - [NullAllowed, Export ("browserSdkVersion")] - string BrowserSdkVersion { get; } - - // @property (readonly, nonatomic, strong) DDRUMResourceEventDDConfiguration * _Nullable configuration; - [NullAllowed, Export ("configuration", ArgumentSemantic.Strong)] - DDRUMResourceEventDDConfiguration Configuration { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable discarded; - [NullAllowed, Export ("discarded", ArgumentSemantic.Strong)] - NSNumber Discarded { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull formatVersion; - [Export ("formatVersion", ArgumentSemantic.Strong)] - NSNumber FormatVersion { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable rulePsr; - [NullAllowed, Export ("rulePsr", ArgumentSemantic.Strong)] - NSNumber RulePsr { get; } - - // @property (readonly, nonatomic, strong) DDRUMResourceEventDDSession * _Nullable session; - [NullAllowed, Export ("session", ArgumentSemantic.Strong)] - DDRUMResourceEventDDSession Session { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable spanId; - [NullAllowed, Export ("spanId")] - string SpanId { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable traceId; - [NullAllowed, Export ("traceId")] - string TraceId { get; } - - [Export ("parentSpanId", ArgumentSemantic.Copy)] - string ParentSpanId { get; } - - [Export ("sdkName", ArgumentSemantic.Copy)] - string SdkName { get; } - } - - // @interface DDRUMResourceEventDDConfiguration : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc33DDRUMResourceEventDDConfiguration")] - [DisableDefaultCtor] - interface DDRUMResourceEventDDConfiguration - { - // @property (readonly, nonatomic, strong) NSNumber * _Nullable sessionReplaySampleRate; - [NullAllowed, Export ("sessionReplaySampleRate", ArgumentSemantic.Strong)] - NSNumber SessionReplaySampleRate { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull sessionSampleRate; - [Export ("sessionSampleRate", ArgumentSemantic.Strong)] - NSNumber SessionSampleRate { get; } - - [Export ("profilingSampleRate", ArgumentSemantic.Strong)] - NSNumber ProfilingSampleRate { get; } - } - - // @interface DDRUMResourceEventDDSession : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc27DDRUMResourceEventDDSession")] - [DisableDefaultCtor] - interface DDRUMResourceEventDDSession - { - // @property (readonly, nonatomic) enum DDRUMResourceEventDDSessionPlan plan; - [Export ("plan")] - DDRUMResourceEventDDSessionPlan Plan { get; } - - // @property (readonly, nonatomic) enum DDRUMResourceEventDDSessionRUMSessionPrecondition sessionPrecondition; - [Export ("sessionPrecondition")] - DDRUMResourceEventDDSessionRUMSessionPrecondition SessionPrecondition { get; } - } - - // @interface DDRUMResourceEventDisplay : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc25DDRUMResourceEventDisplay")] - [DisableDefaultCtor] - interface DDRUMResourceEventDisplay - { - // @property (readonly, nonatomic, strong) DDRUMResourceEventDisplayViewport * _Nullable viewport; - [NullAllowed, Export ("viewport", ArgumentSemantic.Strong)] - DDRUMResourceEventDisplayViewport Viewport { get; } - } - - // @interface DDRUMResourceEventDisplayViewport : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc33DDRUMResourceEventDisplayViewport")] - [DisableDefaultCtor] - interface DDRUMResourceEventDisplayViewport - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull height; - [Export ("height", ArgumentSemantic.Strong)] - NSNumber Height { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull width; - [Export ("width", ArgumentSemantic.Strong)] - NSNumber Width { get; } - } - - // @interface DDRUMResourceEventRUMCITest : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc27DDRUMResourceEventRUMCITest")] - [DisableDefaultCtor] - interface DDRUMResourceEventRUMCITest - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull testExecutionId; - [Export ("testExecutionId")] - string TestExecutionId { get; } - } - - // @interface DDRUMResourceEventRUMConnectivity : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc33DDRUMResourceEventRUMConnectivity")] - [DisableDefaultCtor] - interface DDRUMResourceEventRUMConnectivity - { - // @property (readonly, nonatomic, strong) DDRUMResourceEventRUMConnectivityCellular * _Nullable cellular; - [NullAllowed, Export ("cellular", ArgumentSemantic.Strong)] - DDRUMResourceEventRUMConnectivityCellular Cellular { get; } - - // @property (readonly, nonatomic) enum DDRUMResourceEventRUMConnectivityEffectiveType effectiveType; - [Export ("effectiveType")] - DDRUMResourceEventRUMConnectivityEffectiveType EffectiveType { get; } - - // @property (readonly, copy, nonatomic) NSArray * _Nullable interfaces; - [NullAllowed, Export ("interfaces", ArgumentSemantic.Copy)] - NSNumber[] Interfaces { get; } - - // @property (readonly, nonatomic) enum DDRUMResourceEventRUMConnectivityStatus status; - [Export ("status")] - DDRUMResourceEventRUMConnectivityStatus Status { get; } - } - - // @interface DDRUMResourceEventRUMConnectivityCellular : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc41DDRUMResourceEventRUMConnectivityCellular")] - [DisableDefaultCtor] - interface DDRUMResourceEventRUMConnectivityCellular - { - // @property (readonly, copy, nonatomic) NSString * _Nullable carrierName; - [NullAllowed, Export ("carrierName")] - string CarrierName { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable technology; - [NullAllowed, Export ("technology")] - string Technology { get; } - } - - // @interface DDRUMResourceEventRUMDevice : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc27DDRUMResourceEventRUMDevice")] - [DisableDefaultCtor] - interface DDRUMResourceEventRUMDevice - { - // @property (readonly, copy, nonatomic) NSString * _Nullable architecture; - [NullAllowed, Export ("architecture")] - string Architecture { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable brand; - [NullAllowed, Export ("brand")] - string Brand { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable model; - [NullAllowed, Export ("model")] - string Model { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable name; - [NullAllowed, Export ("name")] - string Name { get; } - - // @property (readonly, nonatomic) enum DDRUMResourceEventRUMDeviceRUMDeviceType type; - [Export ("type")] - DDRUMResourceEventRUMDeviceRUMDeviceType Type { get; } - - [Export ("batteryLevel", ArgumentSemantic.Strong)] - NSNumber BatteryLevel { get; } - - [Export ("brightnessLevel", ArgumentSemantic.Strong)] - NSNumber BrightnessLevel { get; } - - [Export ("locale", ArgumentSemantic.Copy)] - string Locale { get; } - - [Export ("locales", ArgumentSemantic.Copy)] - string[] Locales { get; } - - [Export ("powerSavingMode", ArgumentSemantic.Strong)] - NSNumber PowerSavingMode { get; } - - [Export ("timeZone", ArgumentSemantic.Copy)] - string TimeZone { get; } - } - - // @interface DDRUMResourceEventRUMEventAttributes : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc36DDRUMResourceEventRUMEventAttributes")] - [DisableDefaultCtor] - interface DDRUMResourceEventRUMEventAttributes - { - // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull contextInfo; - [Export ("contextInfo", ArgumentSemantic.Copy)] - NSDictionary ContextInfo { get; } - } - - // @interface DDRUMResourceEventRUMOperatingSystem : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc36DDRUMResourceEventRUMOperatingSystem")] - [DisableDefaultCtor] - interface DDRUMResourceEventRUMOperatingSystem - { - // @property (readonly, copy, nonatomic) NSString * _Nullable build; - [NullAllowed, Export ("build")] - string Build { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull name; - [Export ("name")] - string Name { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull version; - [Export ("version")] - string Version { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull versionMajor; - [Export ("versionMajor")] - string VersionMajor { get; } - } - - // @interface DDRUMResourceEventRUMSyntheticsTest : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc35DDRUMResourceEventRUMSyntheticsTest")] - [DisableDefaultCtor] - interface DDRUMResourceEventRUMSyntheticsTest - { - // @property (readonly, nonatomic, strong) NSNumber * _Nullable injected; - [NullAllowed, Export ("injected", ArgumentSemantic.Strong)] - NSNumber Injected { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull resultId; - [Export ("resultId")] - string ResultId { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull testId; - [Export ("testId")] - string TestId { get; } - } - - // @interface DDRUMResourceEventRUMUser : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc25DDRUMResourceEventRUMUser")] - [DisableDefaultCtor] - interface DDRUMResourceEventRUMUser - { - // @property (readonly, copy, nonatomic) NSString * _Nullable email; - [NullAllowed, Export ("email")] - string Email { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable id; - [NullAllowed, Export ("id")] - string Id { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable name; - [NullAllowed, Export ("name")] - string Name { get; } - - // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull usrInfo; - [Export ("usrInfo", ArgumentSemantic.Copy)] - NSDictionary UsrInfo { get; } - - [Export ("anonymousId", ArgumentSemantic.Copy)] - string AnonymousId { get; } - } - - // @interface DDRUMResourceEventResource : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc26DDRUMResourceEventResource")] - [DisableDefaultCtor] - interface DDRUMResourceEventResource - { - // @property (readonly, nonatomic, strong) DDRUMResourceEventResourceConnect * _Nullable connect; - [NullAllowed, Export ("connect", ArgumentSemantic.Strong)] - DDRUMResourceEventResourceConnect Connect { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable decodedBodySize; - [NullAllowed, Export ("decodedBodySize", ArgumentSemantic.Strong)] - NSNumber DecodedBodySize { get; } - - // @property (readonly, nonatomic, strong) DDRUMResourceEventResourceDNS * _Nullable dns; - [NullAllowed, Export ("dns", ArgumentSemantic.Strong)] - DDRUMResourceEventResourceDNS Dns { get; } - - // @property (readonly, nonatomic, strong) DDRUMResourceEventResourceDownload * _Nullable download; - [NullAllowed, Export ("download", ArgumentSemantic.Strong)] - DDRUMResourceEventResourceDownload Download { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable duration; - [NullAllowed, Export ("duration", ArgumentSemantic.Strong)] - NSNumber Duration { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable encodedBodySize; - [NullAllowed, Export ("encodedBodySize", ArgumentSemantic.Strong)] - NSNumber EncodedBodySize { get; } - - // @property (readonly, nonatomic, strong) DDRUMResourceEventResourceFirstByte * _Nullable firstByte; - [NullAllowed, Export ("firstByte", ArgumentSemantic.Strong)] - DDRUMResourceEventResourceFirstByte FirstByte { get; } - - // @property (readonly, nonatomic, strong) DDRUMResourceEventResourceGraphql * _Nullable graphql; - [NullAllowed, Export ("graphql", ArgumentSemantic.Strong)] - DDRUMResourceEventResourceGraphql Graphql { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable id; - [NullAllowed, Export ("id")] - string Id { get; } - - // @property (readonly, nonatomic) enum DDRUMResourceEventResourceRUMMethod method; - [Export ("method")] - DDRUMResourceEventResourceRUMMethod Method { get; } - - // @property (readonly, nonatomic, strong) DDRUMResourceEventResourceProvider * _Nullable provider; - [NullAllowed, Export ("provider", ArgumentSemantic.Strong)] - DDRUMResourceEventResourceProvider Provider { get; } - - // @property (readonly, nonatomic, strong) DDRUMResourceEventResourceRedirect * _Nullable redirect; - [NullAllowed, Export ("redirect", ArgumentSemantic.Strong)] - DDRUMResourceEventResourceRedirect Redirect { get; } - - // @property (readonly, nonatomic) enum DDRUMResourceEventResourceRenderBlockingStatus renderBlockingStatus; - [Export ("renderBlockingStatus")] - DDRUMResourceEventResourceRenderBlockingStatus RenderBlockingStatus { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable size; - [NullAllowed, Export ("size", ArgumentSemantic.Strong)] - NSNumber Size { get; } - - // @property (readonly, nonatomic, strong) DDRUMResourceEventResourceSSL * _Nullable ssl; - [NullAllowed, Export ("ssl", ArgumentSemantic.Strong)] - DDRUMResourceEventResourceSSL Ssl { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable statusCode; - [NullAllowed, Export ("statusCode", ArgumentSemantic.Strong)] - NSNumber StatusCode { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable transferSize; - [NullAllowed, Export ("transferSize", ArgumentSemantic.Strong)] - NSNumber TransferSize { get; } - - // @property (readonly, nonatomic) enum DDRUMResourceEventResourceResourceType type; - [Export ("type")] - DDRUMResourceEventResourceResourceType Type { get; } - - // @property (copy, nonatomic) NSString * _Nonnull url; - [Export ("url")] - string Url { get; set; } - - [Export ("deliveryType")] - DDRUMResourceEventResourceDeliveryType DeliveryType { get; } - - [Export ("protocol", ArgumentSemantic.Copy)] - string Protocol { get; } - - [Export ("worker", ArgumentSemantic.Strong)] - DDRUMResourceEventResourceWorker Worker { get; } - } - - // @interface DDRUMResourceEventResourceConnect : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc33DDRUMResourceEventResourceConnect")] - [DisableDefaultCtor] - interface DDRUMResourceEventResourceConnect - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull duration; - [Export ("duration", ArgumentSemantic.Strong)] - NSNumber Duration { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull start; - [Export ("start", ArgumentSemantic.Strong)] - NSNumber Start { get; } - } - - // @interface DDRUMResourceEventResourceDNS : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc29DDRUMResourceEventResourceDNS")] - [DisableDefaultCtor] - interface DDRUMResourceEventResourceDNS - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull duration; - [Export ("duration", ArgumentSemantic.Strong)] - NSNumber Duration { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull start; - [Export ("start", ArgumentSemantic.Strong)] - NSNumber Start { get; } - } - - // @interface DDRUMResourceEventResourceDownload : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc34DDRUMResourceEventResourceDownload")] - [DisableDefaultCtor] - interface DDRUMResourceEventResourceDownload - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull duration; - [Export ("duration", ArgumentSemantic.Strong)] - NSNumber Duration { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull start; - [Export ("start", ArgumentSemantic.Strong)] - NSNumber Start { get; } - } - - // @interface DDRUMResourceEventResourceFirstByte : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc35DDRUMResourceEventResourceFirstByte")] - [DisableDefaultCtor] - interface DDRUMResourceEventResourceFirstByte - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull duration; - [Export ("duration", ArgumentSemantic.Strong)] - NSNumber Duration { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull start; - [Export ("start", ArgumentSemantic.Strong)] - NSNumber Start { get; } - } - - // @interface DDRUMResourceEventResourceGraphql : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc33DDRUMResourceEventResourceGraphql")] - [DisableDefaultCtor] - interface DDRUMResourceEventResourceGraphql - { - // @property (readonly, copy, nonatomic) NSString * _Nullable operationName; - [NullAllowed, Export ("operationName")] - string OperationName { get; } - - // @property (readonly, nonatomic) enum DDRUMResourceEventResourceGraphqlOperationType operationType; - [Export ("operationType")] - DDRUMResourceEventResourceGraphqlOperationType OperationType { get; } - - // @property (copy, nonatomic) NSString * _Nullable payload; - [NullAllowed, Export ("payload")] - string Payload { get; set; } - - // @property (copy, nonatomic) NSString * _Nullable variables; - [NullAllowed, Export ("variables")] - string Variables { get; set; } - } - - // @interface DDRUMResourceEventResourceProvider : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc34DDRUMResourceEventResourceProvider")] - [DisableDefaultCtor] - interface DDRUMResourceEventResourceProvider - { - // @property (readonly, copy, nonatomic) NSString * _Nullable domain; - [NullAllowed, Export ("domain")] - string Domain { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable name; - [NullAllowed, Export ("name")] - string Name { get; } - - // @property (readonly, nonatomic) enum DDRUMResourceEventResourceProviderProviderType type; - [Export ("type")] - DDRUMResourceEventResourceProviderProviderType Type { get; } - } - - // @interface DDRUMResourceEventResourceRedirect : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc34DDRUMResourceEventResourceRedirect")] - [DisableDefaultCtor] - interface DDRUMResourceEventResourceRedirect - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull duration; - [Export ("duration", ArgumentSemantic.Strong)] - NSNumber Duration { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull start; - [Export ("start", ArgumentSemantic.Strong)] - NSNumber Start { get; } - } - - // @interface DDRUMResourceEventResourceSSL : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc29DDRUMResourceEventResourceSSL")] - [DisableDefaultCtor] - interface DDRUMResourceEventResourceSSL - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull duration; - [Export ("duration", ArgumentSemantic.Strong)] - NSNumber Duration { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull start; - [Export ("start", ArgumentSemantic.Strong)] - NSNumber Start { get; } - } - - // @interface DDRUMResourceEventSession : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc25DDRUMResourceEventSession")] - [DisableDefaultCtor] - interface DDRUMResourceEventSession - { - // @property (readonly, nonatomic, strong) NSNumber * _Nullable hasReplay; - [NullAllowed, Export ("hasReplay", ArgumentSemantic.Strong)] - NSNumber HasReplay { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - - // @property (readonly, nonatomic) enum DDRUMResourceEventSessionRUMSessionType type; - [Export ("type")] - DDRUMResourceEventSessionRUMSessionType Type { get; } - } - - // @interface DDRUMResourceEventView : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc22DDRUMResourceEventView")] - [DisableDefaultCtor] - interface DDRUMResourceEventView - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - - // @property (copy, nonatomic) NSString * _Nullable name; - [NullAllowed, Export ("name")] - string Name { get; set; } - - // @property (copy, nonatomic) NSString * _Nullable referrer; - [NullAllowed, Export ("referrer")] - string Referrer { get; set; } - - // @property (copy, nonatomic) NSString * _Nonnull url; - [Export ("url")] - string Url { get; set; } - } - - // @interface DDRUMURLSessionTracking : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc23DDRUMURLSessionTracking")] - interface DDRUMURLSessionTracking - { - // -(void)setFirstPartyHostsTracing:(DDRUMFirstPartyHostsTracing * _Nonnull)firstPartyHostsTracing; - [Export ("setFirstPartyHostsTracing:")] - void SetFirstPartyHostsTracing (DDRUMFirstPartyHostsTracing firstPartyHostsTracing); - - // -(void)setResourceAttributesProvider:(NSDictionary * _Nullable (^ _Nonnull)(NSURLRequest * _Nonnull, NSURLResponse * _Nullable, NSData * _Nullable, NSError * _Nullable))provider; - [Export ("setResourceAttributesProvider:")] - void SetResourceAttributesProvider (Func> provider); - } - - // @interface DDRUMView : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc9DDRUMView")] - [DisableDefaultCtor] - interface DDRUMView - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull name; - [Export ("name")] - string Name { get; } - - // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull attributes; - [Export ("attributes", ArgumentSemantic.Copy)] - NSDictionary Attributes { get; } - - // -(instancetype _Nonnull)initWithName:(NSString * _Nonnull)name attributes:(NSDictionary * _Nonnull)attributes __attribute__((objc_designated_initializer)); - [Export ("initWithName:attributes:")] - [DesignatedInitializer] - NativeHandle Constructor (string name, NSDictionary attributes); - } - - // @interface DDRUMViewEvent : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc14DDRUMViewEvent")] - [DisableDefaultCtor] - interface DDRUMViewEvent - { - // @property (readonly, nonatomic, strong) DDRUMViewEventDD * _Nonnull dd; - [Export ("dd", ArgumentSemantic.Strong)] - DDRUMViewEventDD Dd { get; } - - // @property (readonly, nonatomic, strong) DDRUMViewEventApplication * _Nonnull application; - [Export ("application", ArgumentSemantic.Strong)] - DDRUMViewEventApplication Application { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable buildId; - [NullAllowed, Export ("buildId")] - string BuildId { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable buildVersion; - [NullAllowed, Export ("buildVersion")] - string BuildVersion { get; } - - // @property (readonly, nonatomic, strong) DDRUMViewEventRUMCITest * _Nullable ciTest; - [NullAllowed, Export ("ciTest", ArgumentSemantic.Strong)] - DDRUMViewEventRUMCITest CiTest { get; } - - // @property (readonly, nonatomic, strong) DDRUMViewEventRUMConnectivity * _Nullable connectivity; - [NullAllowed, Export ("connectivity", ArgumentSemantic.Strong)] - DDRUMViewEventRUMConnectivity Connectivity { get; } - - // @property (readonly, nonatomic, strong) DDRUMViewEventContainer * _Nullable container; - [NullAllowed, Export ("container", ArgumentSemantic.Strong)] - DDRUMViewEventContainer Container { get; } - - // @property (readonly, nonatomic, strong) DDRUMViewEventRUMEventAttributes * _Nullable context; - [NullAllowed, Export ("context", ArgumentSemantic.Strong)] - DDRUMViewEventRUMEventAttributes Context { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull date; - [Export ("date", ArgumentSemantic.Strong)] - NSNumber Date { get; } - - // @property (readonly, nonatomic, strong) DDRUMViewEventRUMDevice * _Nullable device; - [NullAllowed, Export ("device", ArgumentSemantic.Strong)] - DDRUMViewEventRUMDevice Device { get; } - - // @property (readonly, nonatomic, strong) DDRUMViewEventDisplay * _Nullable display; - [NullAllowed, Export ("display", ArgumentSemantic.Strong)] - DDRUMViewEventDisplay Display { get; } - - // @property (readonly, nonatomic, strong) DDRUMViewEventFeatureFlags * _Nullable featureFlags; - [NullAllowed, Export ("featureFlags", ArgumentSemantic.Strong)] - DDRUMViewEventFeatureFlags FeatureFlags { get; } - - // @property (readonly, nonatomic, strong) DDRUMViewEventRUMOperatingSystem * _Nullable os; - [NullAllowed, Export ("os", ArgumentSemantic.Strong)] - DDRUMViewEventRUMOperatingSystem Os { get; } - - // @property (readonly, nonatomic, strong) DDRUMViewEventPrivacy * _Nullable privacy; - [NullAllowed, Export ("privacy", ArgumentSemantic.Strong)] - DDRUMViewEventPrivacy Privacy { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable service; - [NullAllowed, Export ("service")] - string Service { get; } - - // @property (readonly, nonatomic, strong) DDRUMViewEventSession * _Nonnull session; - [Export ("session", ArgumentSemantic.Strong)] - DDRUMViewEventSession Session { get; } - - // @property (readonly, nonatomic) enum DDRUMViewEventSource source; - [Export ("source")] - DDRUMViewEventSource Source { get; } - - // @property (readonly, nonatomic, strong) DDRUMViewEventRUMSyntheticsTest * _Nullable synthetics; - [NullAllowed, Export ("synthetics", ArgumentSemantic.Strong)] - DDRUMViewEventRUMSyntheticsTest Synthetics { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull type; - [Export ("type")] - string Type { get; } - - // @property (readonly, nonatomic, strong) DDRUMViewEventRUMUser * _Nullable usr; - [NullAllowed, Export ("usr", ArgumentSemantic.Strong)] - DDRUMViewEventRUMUser Usr { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable version; - [NullAllowed, Export ("version")] - string Version { get; } - - // @property (readonly, nonatomic, strong) DDRUMViewEventView * _Nonnull view; - [Export ("view", ArgumentSemantic.Strong)] - DDRUMViewEventView View { get; } - - [Export ("account", ArgumentSemantic.Strong)] - DDRUMViewEventRUMAccount Account { get; } - - [Export ("ddtags", ArgumentSemantic.Copy)] - string Ddtags { get; } - } - - // @interface DDRUMViewEventApplication : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc25DDRUMViewEventApplication")] - [DisableDefaultCtor] - interface DDRUMViewEventApplication - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - - [Export ("currentLocale", ArgumentSemantic.Copy)] - string CurrentLocale { get; } - } - - // @interface DDRUMViewEventContainer : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc23DDRUMViewEventContainer")] - [DisableDefaultCtor] - interface DDRUMViewEventContainer - { - // @property (readonly, nonatomic) enum DDRUMViewEventContainerSource source; - [Export ("source")] - DDRUMViewEventContainerSource Source { get; } - - // @property (readonly, nonatomic, strong) DDRUMViewEventContainerView * _Nonnull view; - [Export ("view", ArgumentSemantic.Strong)] - DDRUMViewEventContainerView View { get; } - } - - // @interface DDRUMViewEventContainerView : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc27DDRUMViewEventContainerView")] - [DisableDefaultCtor] - interface DDRUMViewEventContainerView - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - } - - // @interface DDRUMViewEventDD : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc16DDRUMViewEventDD")] - [DisableDefaultCtor] - interface DDRUMViewEventDD - { - // @property (readonly, copy, nonatomic) NSString * _Nullable browserSdkVersion; - [NullAllowed, Export ("browserSdkVersion")] - string BrowserSdkVersion { get; } - - // @property (readonly, nonatomic, strong) DDRUMViewEventDDConfiguration * _Nullable configuration; - [NullAllowed, Export ("configuration", ArgumentSemantic.Strong)] - DDRUMViewEventDDConfiguration Configuration { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull documentVersion; - [Export ("documentVersion", ArgumentSemantic.Strong)] - NSNumber DocumentVersion { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull formatVersion; - [Export ("formatVersion", ArgumentSemantic.Strong)] - NSNumber FormatVersion { get; } - - // @property (readonly, copy, nonatomic) NSArray * _Nullable pageStates; - [NullAllowed, Export ("pageStates", ArgumentSemantic.Copy)] - DDRUMViewEventDDPageStates[] PageStates { get; } - - // @property (readonly, nonatomic, strong) DDRUMViewEventDDReplayStats * _Nullable replayStats; - [NullAllowed, Export ("replayStats", ArgumentSemantic.Strong)] - DDRUMViewEventDDReplayStats ReplayStats { get; } - - // @property (readonly, nonatomic, strong) DDRUMViewEventDDSession * _Nullable session; - [NullAllowed, Export ("session", ArgumentSemantic.Strong)] - DDRUMViewEventDDSession Session { get; } - - [Export ("cls", ArgumentSemantic.Strong)] - DDRUMViewEventDDCLS Cls { get; } - - [Export ("profiling", ArgumentSemantic.Strong)] - DDRUMViewEventDDProfiling Profiling { get; } - - [Export ("sdkName", ArgumentSemantic.Copy)] - string SdkName { get; } - } - - // @interface DDRUMViewEventDDConfiguration : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc29DDRUMViewEventDDConfiguration")] - [DisableDefaultCtor] - interface DDRUMViewEventDDConfiguration - { - // @property (readonly, nonatomic, strong) NSNumber * _Nullable sessionReplaySampleRate; - [NullAllowed, Export ("sessionReplaySampleRate", ArgumentSemantic.Strong)] - NSNumber SessionReplaySampleRate { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull sessionSampleRate; - [Export ("sessionSampleRate", ArgumentSemantic.Strong)] - NSNumber SessionSampleRate { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable startSessionReplayRecordingManually; - [NullAllowed, Export ("startSessionReplayRecordingManually", ArgumentSemantic.Strong)] - NSNumber StartSessionReplayRecordingManually { get; } - - [Export ("profilingSampleRate", ArgumentSemantic.Strong)] - NSNumber ProfilingSampleRate { get; } - } - - // @interface DDRUMViewEventDDPageStates : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc26DDRUMViewEventDDPageStates")] - [DisableDefaultCtor] - interface DDRUMViewEventDDPageStates - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull start; - [Export ("start", ArgumentSemantic.Strong)] - NSNumber Start { get; } - - // @property (readonly, nonatomic) enum DDRUMViewEventDDPageStatesState state; - [Export ("state")] - DDRUMViewEventDDPageStatesState State { get; } - } - - // @interface DDRUMViewEventDDReplayStats : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc27DDRUMViewEventDDReplayStats")] - [DisableDefaultCtor] - interface DDRUMViewEventDDReplayStats - { - // @property (readonly, nonatomic, strong) NSNumber * _Nullable recordsCount; - [NullAllowed, Export ("recordsCount", ArgumentSemantic.Strong)] - NSNumber RecordsCount { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable segmentsCount; - [NullAllowed, Export ("segmentsCount", ArgumentSemantic.Strong)] - NSNumber SegmentsCount { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable segmentsTotalRawSize; - [NullAllowed, Export ("segmentsTotalRawSize", ArgumentSemantic.Strong)] - NSNumber SegmentsTotalRawSize { get; } - } - - // @interface DDRUMViewEventDDSession : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc23DDRUMViewEventDDSession")] - [DisableDefaultCtor] - interface DDRUMViewEventDDSession - { - // @property (readonly, nonatomic) enum DDRUMViewEventDDSessionPlan plan; - [Export ("plan")] - DDRUMViewEventDDSessionPlan Plan { get; } - - // @property (readonly, nonatomic) enum DDRUMViewEventDDSessionRUMSessionPrecondition sessionPrecondition; - [Export ("sessionPrecondition")] - DDRUMViewEventDDSessionRUMSessionPrecondition SessionPrecondition { get; } - } - - // @interface DDRUMViewEventDisplay : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc21DDRUMViewEventDisplay")] - [DisableDefaultCtor] - interface DDRUMViewEventDisplay - { - // @property (readonly, nonatomic, strong) DDRUMViewEventDisplayScroll * _Nullable scroll; - [NullAllowed, Export ("scroll", ArgumentSemantic.Strong)] - DDRUMViewEventDisplayScroll Scroll { get; } - - // @property (readonly, nonatomic, strong) DDRUMViewEventDisplayViewport * _Nullable viewport; - [NullAllowed, Export ("viewport", ArgumentSemantic.Strong)] - DDRUMViewEventDisplayViewport Viewport { get; } - } - - // @interface DDRUMViewEventDisplayScroll : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc27DDRUMViewEventDisplayScroll")] - [DisableDefaultCtor] - interface DDRUMViewEventDisplayScroll - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull maxDepth; - [Export ("maxDepth", ArgumentSemantic.Strong)] - NSNumber MaxDepth { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull maxDepthScrollTop; - [Export ("maxDepthScrollTop", ArgumentSemantic.Strong)] - NSNumber MaxDepthScrollTop { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull maxScrollHeight; - [Export ("maxScrollHeight", ArgumentSemantic.Strong)] - NSNumber MaxScrollHeight { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull maxScrollHeightTime; - [Export ("maxScrollHeightTime", ArgumentSemantic.Strong)] - NSNumber MaxScrollHeightTime { get; } - } - - // @interface DDRUMViewEventDisplayViewport : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc29DDRUMViewEventDisplayViewport")] - [DisableDefaultCtor] - interface DDRUMViewEventDisplayViewport - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull height; - [Export ("height", ArgumentSemantic.Strong)] - NSNumber Height { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull width; - [Export ("width", ArgumentSemantic.Strong)] - NSNumber Width { get; } - } - - // @interface DDRUMViewEventFeatureFlags : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc26DDRUMViewEventFeatureFlags")] - [DisableDefaultCtor] - interface DDRUMViewEventFeatureFlags - { - // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull featureFlagsInfo; - [Export ("featureFlagsInfo", ArgumentSemantic.Copy)] - NSDictionary FeatureFlagsInfo { get; } - } - - // @interface DDRUMViewEventPrivacy : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc21DDRUMViewEventPrivacy")] - [DisableDefaultCtor] - interface DDRUMViewEventPrivacy - { - // @property (readonly, nonatomic) enum DDRUMViewEventPrivacyReplayLevel replayLevel; - [Export ("replayLevel")] - DDRUMViewEventPrivacyReplayLevel ReplayLevel { get; } - } - - // @interface DDRUMViewEventRUMCITest : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc23DDRUMViewEventRUMCITest")] - [DisableDefaultCtor] - interface DDRUMViewEventRUMCITest - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull testExecutionId; - [Export ("testExecutionId")] - string TestExecutionId { get; } - } - - // @interface DDRUMViewEventRUMConnectivity : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc29DDRUMViewEventRUMConnectivity")] - [DisableDefaultCtor] - interface DDRUMViewEventRUMConnectivity - { - // @property (readonly, nonatomic, strong) DDRUMViewEventRUMConnectivityCellular * _Nullable cellular; - [NullAllowed, Export ("cellular", ArgumentSemantic.Strong)] - DDRUMViewEventRUMConnectivityCellular Cellular { get; } - - // @property (readonly, nonatomic) enum DDRUMViewEventRUMConnectivityEffectiveType effectiveType; - [Export ("effectiveType")] - DDRUMViewEventRUMConnectivityEffectiveType EffectiveType { get; } - - // @property (readonly, copy, nonatomic) NSArray * _Nullable interfaces; - [NullAllowed, Export ("interfaces", ArgumentSemantic.Copy)] - NSNumber[] Interfaces { get; } - - // @property (readonly, nonatomic) enum DDRUMViewEventRUMConnectivityStatus status; - [Export ("status")] - DDRUMViewEventRUMConnectivityStatus Status { get; } - } - - // @interface DDRUMViewEventRUMConnectivityCellular : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc37DDRUMViewEventRUMConnectivityCellular")] - [DisableDefaultCtor] - interface DDRUMViewEventRUMConnectivityCellular - { - // @property (readonly, copy, nonatomic) NSString * _Nullable carrierName; - [NullAllowed, Export ("carrierName")] - string CarrierName { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable technology; - [NullAllowed, Export ("technology")] - string Technology { get; } - } - - // @interface DDRUMViewEventRUMDevice : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc23DDRUMViewEventRUMDevice")] - [DisableDefaultCtor] - interface DDRUMViewEventRUMDevice - { - // @property (readonly, copy, nonatomic) NSString * _Nullable architecture; - [NullAllowed, Export ("architecture")] - string Architecture { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable brand; - [NullAllowed, Export ("brand")] - string Brand { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable model; - [NullAllowed, Export ("model")] - string Model { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable name; - [NullAllowed, Export ("name")] - string Name { get; } - - // @property (readonly, nonatomic) enum DDRUMViewEventRUMDeviceRUMDeviceType type; - [Export ("type")] - DDRUMViewEventRUMDeviceRUMDeviceType Type { get; } - - [Export ("batteryLevel", ArgumentSemantic.Strong)] - NSNumber BatteryLevel { get; } - - [Export ("brightnessLevel", ArgumentSemantic.Strong)] - NSNumber BrightnessLevel { get; } - - [Export ("locale", ArgumentSemantic.Copy)] - string Locale { get; } - - [Export ("locales", ArgumentSemantic.Copy)] - string[] Locales { get; } - - [Export ("powerSavingMode", ArgumentSemantic.Strong)] - NSNumber PowerSavingMode { get; } - - [Export ("timeZone", ArgumentSemantic.Copy)] - string TimeZone { get; } - } - - // @interface DDRUMViewEventRUMEventAttributes : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc32DDRUMViewEventRUMEventAttributes")] - [DisableDefaultCtor] - interface DDRUMViewEventRUMEventAttributes - { - // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull contextInfo; - [Export ("contextInfo", ArgumentSemantic.Copy)] - NSDictionary ContextInfo { get; } - } - - // @interface DDRUMViewEventRUMOperatingSystem : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc32DDRUMViewEventRUMOperatingSystem")] - [DisableDefaultCtor] - interface DDRUMViewEventRUMOperatingSystem - { - // @property (readonly, copy, nonatomic) NSString * _Nullable build; - [NullAllowed, Export ("build")] - string Build { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull name; - [Export ("name")] - string Name { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull version; - [Export ("version")] - string Version { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull versionMajor; - [Export ("versionMajor")] - string VersionMajor { get; } - } - - // @interface DDRUMViewEventRUMSyntheticsTest : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc31DDRUMViewEventRUMSyntheticsTest")] - [DisableDefaultCtor] - interface DDRUMViewEventRUMSyntheticsTest - { - // @property (readonly, nonatomic, strong) NSNumber * _Nullable injected; - [NullAllowed, Export ("injected", ArgumentSemantic.Strong)] - NSNumber Injected { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull resultId; - [Export ("resultId")] - string ResultId { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull testId; - [Export ("testId")] - string TestId { get; } - } - - // @interface DDRUMViewEventRUMUser : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc21DDRUMViewEventRUMUser")] - [DisableDefaultCtor] - interface DDRUMViewEventRUMUser - { - // @property (readonly, copy, nonatomic) NSString * _Nullable email; - [NullAllowed, Export ("email")] - string Email { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable id; - [NullAllowed, Export ("id")] - string Id { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable name; - [NullAllowed, Export ("name")] - string Name { get; } - - // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull usrInfo; - [Export ("usrInfo", ArgumentSemantic.Copy)] - NSDictionary UsrInfo { get; } - - [Export ("anonymousId", ArgumentSemantic.Copy)] - string AnonymousId { get; } - } - - // @interface DDRUMViewEventSession : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc21DDRUMViewEventSession")] - [DisableDefaultCtor] - interface DDRUMViewEventSession - { - // @property (readonly, nonatomic, strong) NSNumber * _Nullable hasReplay; - [NullAllowed, Export ("hasReplay", ArgumentSemantic.Strong)] - NSNumber HasReplay { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable isActive; - [NullAllowed, Export ("isActive", ArgumentSemantic.Strong)] - NSNumber IsActive { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable sampledForReplay; - [NullAllowed, Export ("sampledForReplay", ArgumentSemantic.Strong)] - NSNumber SampledForReplay { get; } - - // @property (readonly, nonatomic) enum DDRUMViewEventSessionRUMSessionType type; - [Export ("type")] - DDRUMViewEventSessionRUMSessionType Type { get; } - } - - // @interface DDRUMViewEventView : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc18DDRUMViewEventView")] - [DisableDefaultCtor] - interface DDRUMViewEventView - { - // @property (readonly, nonatomic, strong) DDRUMViewEventViewAction * _Nonnull action; - [Export ("action", ArgumentSemantic.Strong)] - DDRUMViewEventViewAction Action { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable cpuTicksCount; - [NullAllowed, Export ("cpuTicksCount", ArgumentSemantic.Strong)] - NSNumber CpuTicksCount { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable cpuTicksPerSecond; - [NullAllowed, Export ("cpuTicksPerSecond", ArgumentSemantic.Strong)] - NSNumber CpuTicksPerSecond { get; } - - // @property (readonly, nonatomic, strong) DDRUMViewEventViewCrash * _Nullable crash; - [NullAllowed, Export ("crash", ArgumentSemantic.Strong)] - DDRUMViewEventViewCrash Crash { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable cumulativeLayoutShift; - [NullAllowed, Export ("cumulativeLayoutShift", ArgumentSemantic.Strong)] - NSNumber CumulativeLayoutShift { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable cumulativeLayoutShiftTargetSelector; - [NullAllowed, Export ("cumulativeLayoutShiftTargetSelector")] - string CumulativeLayoutShiftTargetSelector { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable cumulativeLayoutShiftTime; - [NullAllowed, Export ("cumulativeLayoutShiftTime", ArgumentSemantic.Strong)] - NSNumber CumulativeLayoutShiftTime { get; } - - // @property (readonly, copy, nonatomic) NSDictionary * _Nullable customTimings; - [NullAllowed, Export ("customTimings", ArgumentSemantic.Copy)] - NSDictionary CustomTimings { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable domComplete; - [NullAllowed, Export ("domComplete", ArgumentSemantic.Strong)] - NSNumber DomComplete { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable domContentLoaded; - [NullAllowed, Export ("domContentLoaded", ArgumentSemantic.Strong)] - NSNumber DomContentLoaded { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable domInteractive; - [NullAllowed, Export ("domInteractive", ArgumentSemantic.Strong)] - NSNumber DomInteractive { get; } - - // @property (readonly, nonatomic, strong) DDRUMViewEventViewError * _Nonnull error; - [Export ("error", ArgumentSemantic.Strong)] - DDRUMViewEventViewError Error { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable firstByte; - [NullAllowed, Export ("firstByte", ArgumentSemantic.Strong)] - NSNumber FirstByte { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable firstContentfulPaint; - [NullAllowed, Export ("firstContentfulPaint", ArgumentSemantic.Strong)] - NSNumber FirstContentfulPaint { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable firstInputDelay; - [NullAllowed, Export ("firstInputDelay", ArgumentSemantic.Strong)] - NSNumber FirstInputDelay { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable firstInputTargetSelector; - [NullAllowed, Export ("firstInputTargetSelector")] - string FirstInputTargetSelector { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable firstInputTime; - [NullAllowed, Export ("firstInputTime", ArgumentSemantic.Strong)] - NSNumber FirstInputTime { get; } - - // @property (readonly, nonatomic, strong) DDRUMViewEventViewFlutterBuildTime * _Nullable flutterBuildTime; - [NullAllowed, Export ("flutterBuildTime", ArgumentSemantic.Strong)] - DDRUMViewEventViewFlutterBuildTime FlutterBuildTime { get; } - - // @property (readonly, nonatomic, strong) DDRUMViewEventViewFlutterRasterTime * _Nullable flutterRasterTime; - [NullAllowed, Export ("flutterRasterTime", ArgumentSemantic.Strong)] - DDRUMViewEventViewFlutterRasterTime FlutterRasterTime { get; } - - // @property (readonly, nonatomic, strong) DDRUMViewEventViewFrozenFrame * _Nullable frozenFrame; - [NullAllowed, Export ("frozenFrame", ArgumentSemantic.Strong)] - DDRUMViewEventViewFrozenFrame FrozenFrame { get; } - - // @property (readonly, nonatomic, strong) DDRUMViewEventViewFrustration * _Nullable frustration; - [NullAllowed, Export ("frustration", ArgumentSemantic.Strong)] - DDRUMViewEventViewFrustration Frustration { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - - // @property (readonly, copy, nonatomic) NSArray * _Nullable inForegroundPeriods; - [NullAllowed, Export ("inForegroundPeriods", ArgumentSemantic.Copy)] - DDRUMViewEventViewInForegroundPeriods[] InForegroundPeriods { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable interactionToNextPaint; - [NullAllowed, Export ("interactionToNextPaint", ArgumentSemantic.Strong)] - NSNumber InteractionToNextPaint { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable interactionToNextPaintTargetSelector; - [NullAllowed, Export ("interactionToNextPaintTargetSelector")] - string InteractionToNextPaintTargetSelector { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable interactionToNextPaintTime; - [NullAllowed, Export ("interactionToNextPaintTime", ArgumentSemantic.Strong)] - NSNumber InteractionToNextPaintTime { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable isActive; - [NullAllowed, Export ("isActive", ArgumentSemantic.Strong)] - NSNumber IsActive { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable isSlowRendered; - [NullAllowed, Export ("isSlowRendered", ArgumentSemantic.Strong)] - NSNumber IsSlowRendered { get; } - - // @property (readonly, nonatomic, strong) DDRUMViewEventViewJsRefreshRate * _Nullable jsRefreshRate; - [NullAllowed, Export ("jsRefreshRate", ArgumentSemantic.Strong)] - DDRUMViewEventViewJsRefreshRate JsRefreshRate { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable largestContentfulPaint; - [NullAllowed, Export ("largestContentfulPaint", ArgumentSemantic.Strong)] - NSNumber LargestContentfulPaint { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable largestContentfulPaintTargetSelector; - [NullAllowed, Export ("largestContentfulPaintTargetSelector")] - string LargestContentfulPaintTargetSelector { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable loadEvent; - [NullAllowed, Export ("loadEvent", ArgumentSemantic.Strong)] - NSNumber LoadEvent { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable loadingTime; - [NullAllowed, Export ("loadingTime", ArgumentSemantic.Strong)] - NSNumber LoadingTime { get; } - - // @property (readonly, nonatomic) enum DDRUMViewEventViewLoadingType loadingType; - [Export ("loadingType")] - DDRUMViewEventViewLoadingType LoadingType { get; } - - // @property (readonly, nonatomic, strong) DDRUMViewEventViewLongTask * _Nullable longTask; - [NullAllowed, Export ("longTask", ArgumentSemantic.Strong)] - DDRUMViewEventViewLongTask LongTask { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable memoryAverage; - [NullAllowed, Export ("memoryAverage", ArgumentSemantic.Strong)] - NSNumber MemoryAverage { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable memoryMax; - [NullAllowed, Export ("memoryMax", ArgumentSemantic.Strong)] - NSNumber MemoryMax { get; } - - // @property (copy, nonatomic) NSString * _Nullable name; - [NullAllowed, Export ("name")] - string Name { get; set; } - - // @property (copy, nonatomic) NSString * _Nullable referrer; - [NullAllowed, Export ("referrer")] - string Referrer { get; set; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable refreshRateAverage; - [NullAllowed, Export ("refreshRateAverage", ArgumentSemantic.Strong)] - NSNumber RefreshRateAverage { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable refreshRateMin; - [NullAllowed, Export ("refreshRateMin", ArgumentSemantic.Strong)] - NSNumber RefreshRateMin { get; } - - // @property (readonly, nonatomic, strong) DDRUMViewEventViewResource * _Nonnull resource; - [Export ("resource", ArgumentSemantic.Strong)] - DDRUMViewEventViewResource Resource { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull timeSpent; - [Export ("timeSpent", ArgumentSemantic.Strong)] - NSNumber TimeSpent { get; } - - // @property (copy, nonatomic) NSString * _Nonnull url; - [Export ("url")] - string Url { get; set; } - - [Export ("accessibility", ArgumentSemantic.Strong)] - DDRUMViewEventViewAccessibility Accessibility { get; } - - [Export ("freezeRate", ArgumentSemantic.Strong)] - NSNumber FreezeRate { get; } - - [Export ("interactionToNextViewTime", ArgumentSemantic.Strong)] - NSNumber InteractionToNextViewTime { get; } - - [Export ("networkSettledTime", ArgumentSemantic.Strong)] - NSNumber NetworkSettledTime { get; } - - [Export ("performance", ArgumentSemantic.Strong)] - DDRUMViewEventViewPerformance Performance { get; } - - [Export ("slowFrames", ArgumentSemantic.Copy)] - DDRUMViewEventViewSlowFrames[] SlowFrames { get; } - - [Export ("slowFramesRate", ArgumentSemantic.Strong)] - NSNumber SlowFramesRate { get; } - } - - // @interface DDRUMViewEventViewAction : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc24DDRUMViewEventViewAction")] - [DisableDefaultCtor] - interface DDRUMViewEventViewAction - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull count; - [Export ("count", ArgumentSemantic.Strong)] - NSNumber Count { get; } - } - - // @interface DDRUMViewEventViewCrash : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc23DDRUMViewEventViewCrash")] - [DisableDefaultCtor] - interface DDRUMViewEventViewCrash - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull count; - [Export ("count", ArgumentSemantic.Strong)] - NSNumber Count { get; } - } - - // @interface DDRUMViewEventViewError : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc23DDRUMViewEventViewError")] - [DisableDefaultCtor] - interface DDRUMViewEventViewError - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull count; - [Export ("count", ArgumentSemantic.Strong)] - NSNumber Count { get; } - } - - // @interface DDRUMViewEventViewFlutterBuildTime : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc34DDRUMViewEventViewFlutterBuildTime")] - [DisableDefaultCtor] - interface DDRUMViewEventViewFlutterBuildTime - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull average; - [Export ("average", ArgumentSemantic.Strong)] - NSNumber Average { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull max; - [Export ("max", ArgumentSemantic.Strong)] - NSNumber Max { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable metricMax; - [NullAllowed, Export ("metricMax", ArgumentSemantic.Strong)] - NSNumber MetricMax { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull min; - [Export ("min", ArgumentSemantic.Strong)] - NSNumber Min { get; } - } - - // @interface DDRUMViewEventViewFlutterRasterTime : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc35DDRUMViewEventViewFlutterRasterTime")] - [DisableDefaultCtor] - interface DDRUMViewEventViewFlutterRasterTime - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull average; - [Export ("average", ArgumentSemantic.Strong)] - NSNumber Average { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull max; - [Export ("max", ArgumentSemantic.Strong)] - NSNumber Max { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable metricMax; - [NullAllowed, Export ("metricMax", ArgumentSemantic.Strong)] - NSNumber MetricMax { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull min; - [Export ("min", ArgumentSemantic.Strong)] - NSNumber Min { get; } - } - - // @interface DDRUMViewEventViewFrozenFrame : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc29DDRUMViewEventViewFrozenFrame")] - [DisableDefaultCtor] - interface DDRUMViewEventViewFrozenFrame - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull count; - [Export ("count", ArgumentSemantic.Strong)] - NSNumber Count { get; } - } - - // @interface DDRUMViewEventViewFrustration : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc29DDRUMViewEventViewFrustration")] - [DisableDefaultCtor] - interface DDRUMViewEventViewFrustration - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull count; - [Export ("count", ArgumentSemantic.Strong)] - NSNumber Count { get; } - } - - // @interface DDRUMViewEventViewInForegroundPeriods : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc37DDRUMViewEventViewInForegroundPeriods")] - [DisableDefaultCtor] - interface DDRUMViewEventViewInForegroundPeriods - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull duration; - [Export ("duration", ArgumentSemantic.Strong)] - NSNumber Duration { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull start; - [Export ("start", ArgumentSemantic.Strong)] - NSNumber Start { get; } - } - - // @interface DDRUMViewEventViewJsRefreshRate : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc31DDRUMViewEventViewJsRefreshRate")] - [DisableDefaultCtor] - interface DDRUMViewEventViewJsRefreshRate - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull average; - [Export ("average", ArgumentSemantic.Strong)] - NSNumber Average { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull max; - [Export ("max", ArgumentSemantic.Strong)] - NSNumber Max { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable metricMax; - [NullAllowed, Export ("metricMax", ArgumentSemantic.Strong)] - NSNumber MetricMax { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull min; - [Export ("min", ArgumentSemantic.Strong)] - NSNumber Min { get; } - } - - // @interface DDRUMViewEventViewLongTask : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc26DDRUMViewEventViewLongTask")] - [DisableDefaultCtor] - interface DDRUMViewEventViewLongTask - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull count; - [Export ("count", ArgumentSemantic.Strong)] - NSNumber Count { get; } - } - - // @interface DDRUMViewEventViewResource : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc26DDRUMViewEventViewResource")] - [DisableDefaultCtor] - interface DDRUMViewEventViewResource - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull count; - [Export ("count", ArgumentSemantic.Strong)] - NSNumber Count { get; } - } - - // @interface DDRUMVitalEvent : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc15DDRUMVitalEvent")] - [DisableDefaultCtor] - interface DDRUMVitalEvent - { - // @property (readonly, nonatomic, strong) DDRUMVitalEventDD * _Nonnull dd; - [Export ("dd", ArgumentSemantic.Strong)] - DDRUMVitalEventDD Dd { get; } - - // @property (readonly, nonatomic, strong) DDRUMVitalEventApplication * _Nonnull application; - [Export ("application", ArgumentSemantic.Strong)] - DDRUMVitalEventApplication Application { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable buildId; - [NullAllowed, Export ("buildId")] - string BuildId { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable buildVersion; - [NullAllowed, Export ("buildVersion")] - string BuildVersion { get; } - - // @property (readonly, nonatomic, strong) DDRUMVitalEventRUMCITest * _Nullable ciTest; - [NullAllowed, Export ("ciTest", ArgumentSemantic.Strong)] - DDRUMVitalEventRUMCITest CiTest { get; } - - // @property (readonly, nonatomic, strong) DDRUMVitalEventRUMConnectivity * _Nullable connectivity; - [NullAllowed, Export ("connectivity", ArgumentSemantic.Strong)] - DDRUMVitalEventRUMConnectivity Connectivity { get; } - - // @property (readonly, nonatomic, strong) DDRUMVitalEventContainer * _Nullable container; - [NullAllowed, Export ("container", ArgumentSemantic.Strong)] - DDRUMVitalEventContainer Container { get; } - - // @property (readonly, nonatomic, strong) DDRUMVitalEventRUMEventAttributes * _Nullable context; - [NullAllowed, Export ("context", ArgumentSemantic.Strong)] - DDRUMVitalEventRUMEventAttributes Context { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull date; - [Export ("date", ArgumentSemantic.Strong)] - NSNumber Date { get; } - - // @property (readonly, nonatomic, strong) DDRUMVitalEventRUMDevice * _Nullable device; - [NullAllowed, Export ("device", ArgumentSemantic.Strong)] - DDRUMVitalEventRUMDevice Device { get; } - - // @property (readonly, nonatomic, strong) DDRUMVitalEventDisplay * _Nullable display; - [NullAllowed, Export ("display", ArgumentSemantic.Strong)] - DDRUMVitalEventDisplay Display { get; } - - // @property (readonly, nonatomic, strong) DDRUMVitalEventRUMOperatingSystem * _Nullable os; - [NullAllowed, Export ("os", ArgumentSemantic.Strong)] - DDRUMVitalEventRUMOperatingSystem Os { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable service; - [NullAllowed, Export ("service")] - string Service { get; } - - // @property (readonly, nonatomic, strong) DDRUMVitalEventSession * _Nonnull session; - [Export ("session", ArgumentSemantic.Strong)] - DDRUMVitalEventSession Session { get; } - - // @property (readonly, nonatomic) enum DDRUMVitalEventSource source; - [Export ("source")] - DDRUMVitalEventSource Source { get; } - - // @property (readonly, nonatomic, strong) DDRUMVitalEventRUMSyntheticsTest * _Nullable synthetics; - [NullAllowed, Export ("synthetics", ArgumentSemantic.Strong)] - DDRUMVitalEventRUMSyntheticsTest Synthetics { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull type; - [Export ("type")] - string Type { get; } - - // @property (readonly, nonatomic, strong) DDRUMVitalEventRUMUser * _Nullable usr; - [NullAllowed, Export ("usr", ArgumentSemantic.Strong)] - DDRUMVitalEventRUMUser Usr { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable version; - [NullAllowed, Export ("version")] - string Version { get; } - - // @property (readonly, nonatomic, strong) DDRUMVitalEventView * _Nonnull view; - [Export ("view", ArgumentSemantic.Strong)] - DDRUMVitalEventView View { get; } - - // @property (readonly, nonatomic, strong) DDRUMVitalEventVital * _Nonnull vital; - [Export ("vital", ArgumentSemantic.Strong)] - DDRUMVitalEventVital Vital { get; } - - [Export ("account", ArgumentSemantic.Strong)] - DDRUMVitalEventRUMAccount Account { get; } - - [Export ("ddtags", ArgumentSemantic.Copy)] - string Ddtags { get; } - } - - // @interface DDRUMVitalEventApplication : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc26DDRUMVitalEventApplication")] - [DisableDefaultCtor] - interface DDRUMVitalEventApplication - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - - [Export ("currentLocale", ArgumentSemantic.Copy)] - string CurrentLocale { get; } - } - - // @interface DDRUMVitalEventContainer : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc24DDRUMVitalEventContainer")] - [DisableDefaultCtor] - interface DDRUMVitalEventContainer - { - // @property (readonly, nonatomic) enum DDRUMVitalEventContainerSource source; - [Export ("source")] - DDRUMVitalEventContainerSource Source { get; } - - // @property (readonly, nonatomic, strong) DDRUMVitalEventContainerView * _Nonnull view; - [Export ("view", ArgumentSemantic.Strong)] - DDRUMVitalEventContainerView View { get; } - } - - // @interface DDRUMVitalEventContainerView : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc28DDRUMVitalEventContainerView")] - [DisableDefaultCtor] - interface DDRUMVitalEventContainerView - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - } - - // @interface DDRUMVitalEventDD : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc17DDRUMVitalEventDD")] - [DisableDefaultCtor] - interface DDRUMVitalEventDD - { - // @property (readonly, copy, nonatomic) NSString * _Nullable browserSdkVersion; - [NullAllowed, Export ("browserSdkVersion")] - string BrowserSdkVersion { get; } - - // @property (readonly, nonatomic, strong) DDRUMVitalEventDDConfiguration * _Nullable configuration; - [NullAllowed, Export ("configuration", ArgumentSemantic.Strong)] - DDRUMVitalEventDDConfiguration Configuration { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull formatVersion; - [Export ("formatVersion", ArgumentSemantic.Strong)] - NSNumber FormatVersion { get; } - - // @property (readonly, nonatomic, strong) DDRUMVitalEventDDSession * _Nullable session; - [NullAllowed, Export ("session", ArgumentSemantic.Strong)] - DDRUMVitalEventDDSession Session { get; } - - // @property (readonly, nonatomic, strong) DDRUMVitalEventDDVital * _Nullable vital; - [NullAllowed, Export ("vital", ArgumentSemantic.Strong)] - DDRUMVitalEventDDVital Vital { get; } - - [Export ("sdkName", ArgumentSemantic.Copy)] - string SdkName { get; } - } - - // @interface DDRUMVitalEventDDConfiguration : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc30DDRUMVitalEventDDConfiguration")] - [DisableDefaultCtor] - interface DDRUMVitalEventDDConfiguration - { - // @property (readonly, nonatomic, strong) NSNumber * _Nullable sessionReplaySampleRate; - [NullAllowed, Export ("sessionReplaySampleRate", ArgumentSemantic.Strong)] - NSNumber SessionReplaySampleRate { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull sessionSampleRate; - [Export ("sessionSampleRate", ArgumentSemantic.Strong)] - NSNumber SessionSampleRate { get; } - - [Export ("profilingSampleRate", ArgumentSemantic.Strong)] - NSNumber ProfilingSampleRate { get; } - } - - // @interface DDRUMVitalEventDDSession : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc24DDRUMVitalEventDDSession")] - [DisableDefaultCtor] - interface DDRUMVitalEventDDSession - { - // @property (readonly, nonatomic) enum DDRUMVitalEventDDSessionPlan plan; - [Export ("plan")] - DDRUMVitalEventDDSessionPlan Plan { get; } - - // @property (readonly, nonatomic) enum DDRUMVitalEventDDSessionRUMSessionPrecondition sessionPrecondition; - [Export ("sessionPrecondition")] - DDRUMVitalEventDDSessionRUMSessionPrecondition SessionPrecondition { get; } - } - - // @interface DDRUMVitalEventDDVital : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc22DDRUMVitalEventDDVital")] - [DisableDefaultCtor] - interface DDRUMVitalEventDDVital - { - // @property (readonly, nonatomic, strong) NSNumber * _Nullable computedValue; - [NullAllowed, Export ("computedValue", ArgumentSemantic.Strong)] - NSNumber ComputedValue { get; } - } - - // @interface DDRUMVitalEventDisplay : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc22DDRUMVitalEventDisplay")] - [DisableDefaultCtor] - interface DDRUMVitalEventDisplay - { - // @property (readonly, nonatomic, strong) DDRUMVitalEventDisplayViewport * _Nullable viewport; - [NullAllowed, Export ("viewport", ArgumentSemantic.Strong)] - DDRUMVitalEventDisplayViewport Viewport { get; } - } - - // @interface DDRUMVitalEventDisplayViewport : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc30DDRUMVitalEventDisplayViewport")] - [DisableDefaultCtor] - interface DDRUMVitalEventDisplayViewport - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull height; - [Export ("height", ArgumentSemantic.Strong)] - NSNumber Height { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull width; - [Export ("width", ArgumentSemantic.Strong)] - NSNumber Width { get; } - } - - // @interface DDRUMVitalEventRUMCITest : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc24DDRUMVitalEventRUMCITest")] - [DisableDefaultCtor] - interface DDRUMVitalEventRUMCITest - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull testExecutionId; - [Export ("testExecutionId")] - string TestExecutionId { get; } - } - - // @interface DDRUMVitalEventRUMConnectivity : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc30DDRUMVitalEventRUMConnectivity")] - [DisableDefaultCtor] - interface DDRUMVitalEventRUMConnectivity - { - // @property (readonly, nonatomic, strong) DDRUMVitalEventRUMConnectivityCellular * _Nullable cellular; - [NullAllowed, Export ("cellular", ArgumentSemantic.Strong)] - DDRUMVitalEventRUMConnectivityCellular Cellular { get; } - - // @property (readonly, nonatomic) enum DDRUMVitalEventRUMConnectivityEffectiveType effectiveType; - [Export ("effectiveType")] - DDRUMVitalEventRUMConnectivityEffectiveType EffectiveType { get; } - - // @property (readonly, copy, nonatomic) NSArray * _Nullable interfaces; - [NullAllowed, Export ("interfaces", ArgumentSemantic.Copy)] - NSNumber[] Interfaces { get; } - - // @property (readonly, nonatomic) enum DDRUMVitalEventRUMConnectivityStatus status; - [Export ("status")] - DDRUMVitalEventRUMConnectivityStatus Status { get; } - } - - // @interface DDRUMVitalEventRUMConnectivityCellular : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc38DDRUMVitalEventRUMConnectivityCellular")] - [DisableDefaultCtor] - interface DDRUMVitalEventRUMConnectivityCellular - { - // @property (readonly, copy, nonatomic) NSString * _Nullable carrierName; - [NullAllowed, Export ("carrierName")] - string CarrierName { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable technology; - [NullAllowed, Export ("technology")] - string Technology { get; } - } - - // @interface DDRUMVitalEventRUMDevice : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc24DDRUMVitalEventRUMDevice")] - [DisableDefaultCtor] - interface DDRUMVitalEventRUMDevice - { - // @property (readonly, copy, nonatomic) NSString * _Nullable architecture; - [NullAllowed, Export ("architecture")] - string Architecture { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable brand; - [NullAllowed, Export ("brand")] - string Brand { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable model; - [NullAllowed, Export ("model")] - string Model { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable name; - [NullAllowed, Export ("name")] - string Name { get; } - - // @property (readonly, nonatomic) enum DDRUMVitalEventRUMDeviceRUMDeviceType type; - [Export ("type")] - DDRUMVitalEventRUMDeviceRUMDeviceType Type { get; } - - [Export ("batteryLevel", ArgumentSemantic.Strong)] - NSNumber BatteryLevel { get; } - - [Export ("brightnessLevel", ArgumentSemantic.Strong)] - NSNumber BrightnessLevel { get; } - - [Export ("locale", ArgumentSemantic.Copy)] - string Locale { get; } - - [Export ("locales", ArgumentSemantic.Copy)] - string[] Locales { get; } - - [Export ("powerSavingMode", ArgumentSemantic.Strong)] - NSNumber PowerSavingMode { get; } - - [Export ("timeZone", ArgumentSemantic.Copy)] - string TimeZone { get; } - } - - // @interface DDRUMVitalEventRUMEventAttributes : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc33DDRUMVitalEventRUMEventAttributes")] - [DisableDefaultCtor] - interface DDRUMVitalEventRUMEventAttributes - { - // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull contextInfo; - [Export ("contextInfo", ArgumentSemantic.Copy)] - NSDictionary ContextInfo { get; } - } - - // @interface DDRUMVitalEventRUMOperatingSystem : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc33DDRUMVitalEventRUMOperatingSystem")] - [DisableDefaultCtor] - interface DDRUMVitalEventRUMOperatingSystem - { - // @property (readonly, copy, nonatomic) NSString * _Nullable build; - [NullAllowed, Export ("build")] - string Build { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull name; - [Export ("name")] - string Name { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull version; - [Export ("version")] - string Version { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull versionMajor; - [Export ("versionMajor")] - string VersionMajor { get; } - } - - // @interface DDRUMVitalEventRUMSyntheticsTest : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc32DDRUMVitalEventRUMSyntheticsTest")] - [DisableDefaultCtor] - interface DDRUMVitalEventRUMSyntheticsTest - { - // @property (readonly, nonatomic, strong) NSNumber * _Nullable injected; - [NullAllowed, Export ("injected", ArgumentSemantic.Strong)] - NSNumber Injected { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull resultId; - [Export ("resultId")] - string ResultId { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull testId; - [Export ("testId")] - string TestId { get; } - } - - // @interface DDRUMVitalEventRUMUser : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc22DDRUMVitalEventRUMUser")] - [DisableDefaultCtor] - interface DDRUMVitalEventRUMUser - { - // @property (readonly, copy, nonatomic) NSString * _Nullable email; - [NullAllowed, Export ("email")] - string Email { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable id; - [NullAllowed, Export ("id")] - string Id { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable name; - [NullAllowed, Export ("name")] - string Name { get; } - - // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull usrInfo; - [Export ("usrInfo", ArgumentSemantic.Copy)] - NSDictionary UsrInfo { get; } - - [Export ("anonymousId", ArgumentSemantic.Copy)] - string AnonymousId { get; } - } - - // @interface DDRUMVitalEventSession : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc22DDRUMVitalEventSession")] - [DisableDefaultCtor] - interface DDRUMVitalEventSession - { - // @property (readonly, nonatomic, strong) NSNumber * _Nullable hasReplay; - [NullAllowed, Export ("hasReplay", ArgumentSemantic.Strong)] - NSNumber HasReplay { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - - // @property (readonly, nonatomic) enum DDRUMVitalEventSessionRUMSessionType type; - [Export ("type")] - DDRUMVitalEventSessionRUMSessionType Type { get; } - } - - // @interface DDRUMVitalEventView : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc19DDRUMVitalEventView")] - [DisableDefaultCtor] - interface DDRUMVitalEventView - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - - // @property (copy, nonatomic) NSString * _Nullable name; - [NullAllowed, Export ("name")] - string Name { get; set; } - - // @property (copy, nonatomic) NSString * _Nullable referrer; - [NullAllowed, Export ("referrer")] - string Referrer { get; set; } - - // @property (copy, nonatomic) NSString * _Nonnull url; - [Export ("url")] - string Url { get; set; } - } - - // @interface DDRUMVitalEventVital : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc20DDRUMVitalEventVital")] - [DisableDefaultCtor] - interface DDRUMVitalEventVital - { - // @property (readonly, copy, nonatomic) NSDictionary * _Nullable custom; - [NullAllowed, Export ("custom", ArgumentSemantic.Copy)] - NSDictionary Custom { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable name; - [NullAllowed, Export ("name")] - string Name { get; } - - // @property (readonly, nonatomic) enum DDRUMVitalEventVitalVitalType type; - [Export ("type")] - DDRUMVitalEventVitalVitalType Type { get; } - - [Export ("vitalDescription", ArgumentSemantic.Copy)] - string VitalDescription { get; } - - [Export ("failureReason")] - DDRUMVitalEventVitalFailureReason FailureReason { get; } - - [Export ("parentId", ArgumentSemantic.Copy)] - string ParentId { get; } - - [Export ("stepType")] - DDRUMVitalEventVitalStepType StepType { get; } - } - - // @protocol DDServerDateProvider - /* - Check whether adding [Model] to this declaration is appropriate. - [Model] is used to generate a C# class that implements this protocol, - and might be useful for protocols that consumers are supposed to implement, - since consumers can subclass the generated class instead of implementing - the generated interface. If consumers are not supposed to implement this - protocol, then [Model] is redundant and will generate code that will never - be used. -*/[Protocol (Name = "_TtP11DatadogObjc20DDServerDateProvider_")] - [BaseType(typeof(NSObject))] - interface DDServerDateProvider - { - // @required -(void)synchronizeWithUpdate:(void (^ _Nonnull)(NSTimeInterval))update; - [Abstract] - [Export ("synchronizeWithUpdate:")] - void SynchronizeWithUpdate (Action update); - } - - - - // @interface DDSite : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc6DDSite")] - [DisableDefaultCtor] - public interface DDSite - { - // +(DDSite * _Nonnull)us1 __attribute__((warn_unused_result(""))); - [Static] - [Export ("us1")] - DDSite Us1 { get; } - - // +(DDSite * _Nonnull)us3 __attribute__((warn_unused_result(""))); - [Static] - [Export ("us3")] - DDSite Us3 { get; } - - // +(DDSite * _Nonnull)us5 __attribute__((warn_unused_result(""))); - [Static] - [Export ("us5")] - DDSite Us5 { get; } - - // +(DDSite * _Nonnull)eu1 __attribute__((warn_unused_result(""))); - [Static] - [Export ("eu1")] - DDSite Eu1 { get; } - - // +(DDSite * _Nonnull)ap1 __attribute__((warn_unused_result(""))); - [Static] - [Export ("ap1")] - DDSite Ap1 { get; } - - // +(DDSite * _Nonnull)us1_fed __attribute__((warn_unused_result(""))); - [Static] - [Export ("us1_fed")] - DDSite Us1_fed { get; } - - [Static] - [Export ("ap2")] - DDSite Ap2 { get; } - } - - // @interface DDTelemetryConfigurationEvent : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc29DDTelemetryConfigurationEvent")] - [DisableDefaultCtor] - interface DDTelemetryConfigurationEvent - { - // @property (readonly, nonatomic, strong) DDTelemetryConfigurationEventDD * _Nonnull dd; - [Export ("dd", ArgumentSemantic.Strong)] - DDTelemetryConfigurationEventDD Dd { get; } - - // @property (readonly, nonatomic, strong) DDTelemetryConfigurationEventAction * _Nullable action; - [NullAllowed, Export ("action", ArgumentSemantic.Strong)] - DDTelemetryConfigurationEventAction Action { get; } - - // @property (readonly, nonatomic, strong) DDTelemetryConfigurationEventApplication * _Nullable application; - [NullAllowed, Export ("application", ArgumentSemantic.Strong)] - DDTelemetryConfigurationEventApplication Application { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull date; - [Export ("date", ArgumentSemantic.Strong)] - NSNumber Date { get; } - - // @property (readonly, copy, nonatomic) NSArray * _Nullable experimentalFeatures; - [NullAllowed, Export ("experimentalFeatures", ArgumentSemantic.Copy)] - string[] ExperimentalFeatures { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull service; - [Export ("service")] - string Service { get; } - - // @property (readonly, nonatomic, strong) DDTelemetryConfigurationEventSession * _Nullable session; - [NullAllowed, Export ("session", ArgumentSemantic.Strong)] - DDTelemetryConfigurationEventSession Session { get; } - - // @property (readonly, nonatomic) enum DDTelemetryConfigurationEventSource source; - [Export ("source")] - DDTelemetryConfigurationEventSource Source { get; } - - // @property (readonly, nonatomic, strong) DDTelemetryConfigurationEventTelemetry * _Nonnull telemetry; - [Export ("telemetry", ArgumentSemantic.Strong)] - DDTelemetryConfigurationEventTelemetry Telemetry { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull type; - [Export ("type")] - string Type { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull version; - [Export ("version")] - string Version { get; } - - // @property (readonly, nonatomic, strong) DDTelemetryConfigurationEventView * _Nullable view; - [NullAllowed, Export ("view", ArgumentSemantic.Strong)] - DDTelemetryConfigurationEventView View { get; } - - [Export ("effectiveSampleRate", ArgumentSemantic.Strong)] - NSNumber EffectiveSampleRate { get; } - } - - // @interface DDTelemetryConfigurationEventAction : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc35DDTelemetryConfigurationEventAction")] - [DisableDefaultCtor] - interface DDTelemetryConfigurationEventAction - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - } - - // @interface DDTelemetryConfigurationEventApplication : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc40DDTelemetryConfigurationEventApplication")] - [DisableDefaultCtor] - interface DDTelemetryConfigurationEventApplication - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - } - - // @interface DDTelemetryConfigurationEventDD : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc31DDTelemetryConfigurationEventDD")] - [DisableDefaultCtor] - interface DDTelemetryConfigurationEventDD - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull formatVersion; - [Export ("formatVersion", ArgumentSemantic.Strong)] - NSNumber FormatVersion { get; } - } - - // @interface DDTelemetryConfigurationEventSession : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc36DDTelemetryConfigurationEventSession")] - [DisableDefaultCtor] - interface DDTelemetryConfigurationEventSession - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - } - - // @interface DDTelemetryConfigurationEventTelemetry : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc38DDTelemetryConfigurationEventTelemetry")] - [DisableDefaultCtor] - interface DDTelemetryConfigurationEventTelemetry - { - // @property (readonly, nonatomic, strong) DDTelemetryConfigurationEventTelemetryConfiguration * _Nonnull configuration; - [Export ("configuration", ArgumentSemantic.Strong)] - DDTelemetryConfigurationEventTelemetryConfiguration Configuration { get; } - - // @property (readonly, nonatomic, strong) DDTelemetryConfigurationEventTelemetryRUMTelemetryDevice * _Nullable device; - [NullAllowed, Export ("device", ArgumentSemantic.Strong)] - DDTelemetryConfigurationEventTelemetryRUMTelemetryDevice Device { get; } - - // @property (readonly, nonatomic, strong) DDTelemetryConfigurationEventTelemetryRUMTelemetryOperatingSystem * _Nullable os; - [NullAllowed, Export ("os", ArgumentSemantic.Strong)] - DDTelemetryConfigurationEventTelemetryRUMTelemetryOperatingSystem Os { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull type; - [Export ("type")] - string Type { get; } - - // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull telemetryInfo; - [Export ("telemetryInfo", ArgumentSemantic.Copy)] - NSDictionary TelemetryInfo { get; } - } - - // @interface DDTelemetryConfigurationEventTelemetryConfiguration : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc51DDTelemetryConfigurationEventTelemetryConfiguration")] - [DisableDefaultCtor] - interface DDTelemetryConfigurationEventTelemetryConfiguration - { - // @property (readonly, copy, nonatomic) NSString * _Nullable actionNameAttribute; - [NullAllowed, Export ("actionNameAttribute")] - string ActionNameAttribute { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable allowFallbackToLocalStorage; - [NullAllowed, Export ("allowFallbackToLocalStorage", ArgumentSemantic.Strong)] - NSNumber AllowFallbackToLocalStorage { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable allowUntrustedEvents; - [NullAllowed, Export ("allowUntrustedEvents", ArgumentSemantic.Strong)] - NSNumber AllowUntrustedEvents { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable appHangThreshold; - [NullAllowed, Export ("appHangThreshold", ArgumentSemantic.Strong)] - NSNumber AppHangThreshold { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable backgroundTasksEnabled; - [NullAllowed, Export ("backgroundTasksEnabled", ArgumentSemantic.Strong)] - NSNumber BackgroundTasksEnabled { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable batchProcessingLevel; - [NullAllowed, Export ("batchProcessingLevel", ArgumentSemantic.Strong)] - NSNumber BatchProcessingLevel { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable batchSize; - [NullAllowed, Export ("batchSize", ArgumentSemantic.Strong)] - NSNumber BatchSize { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable batchUploadFrequency; - [NullAllowed, Export ("batchUploadFrequency", ArgumentSemantic.Strong)] - NSNumber BatchUploadFrequency { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable compressIntakeRequests; - [NullAllowed, Export ("compressIntakeRequests", ArgumentSemantic.Strong)] - NSNumber CompressIntakeRequests { get; } - - // @property (copy, nonatomic) NSString * _Nullable dartVersion; - [NullAllowed, Export ("dartVersion")] - string DartVersion { get; set; } - - // @property (copy, nonatomic) NSString * _Nullable defaultPrivacyLevel; - [NullAllowed, Export ("defaultPrivacyLevel")] - string DefaultPrivacyLevel { get; set; } - - // @property (nonatomic, strong) NSNumber * _Nullable enablePrivacyForActionName; - [NullAllowed, Export ("enablePrivacyForActionName", ArgumentSemantic.Strong)] - NSNumber EnablePrivacyForActionName { get; set; } - - // @property (readonly, nonatomic, strong) DDTelemetryConfigurationEventTelemetryConfigurationForwardConsoleLogs * _Nullable forwardConsoleLogs; - [NullAllowed, Export ("forwardConsoleLogs", ArgumentSemantic.Strong)] - DDTelemetryConfigurationEventTelemetryConfigurationForwardConsoleLogs ForwardConsoleLogs { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable forwardErrorsToLogs; - [NullAllowed, Export ("forwardErrorsToLogs", ArgumentSemantic.Strong)] - NSNumber ForwardErrorsToLogs { get; } - - // @property (readonly, nonatomic, strong) DDTelemetryConfigurationEventTelemetryConfigurationForwardReports * _Nullable forwardReports; - [NullAllowed, Export ("forwardReports", ArgumentSemantic.Strong)] - DDTelemetryConfigurationEventTelemetryConfigurationForwardReports ForwardReports { get; } - - // @property (copy, nonatomic) NSString * _Nullable initializationType; - [NullAllowed, Export ("initializationType")] - string InitializationType { get; set; } - - // @property (nonatomic, strong) NSNumber * _Nullable mobileVitalsUpdatePeriod; - [NullAllowed, Export ("mobileVitalsUpdatePeriod", ArgumentSemantic.Strong)] - NSNumber MobileVitalsUpdatePeriod { get; set; } - - // @property (readonly, copy, nonatomic) NSArray * _Nullable plugins; - [NullAllowed, Export ("plugins", ArgumentSemantic.Copy)] - DDTelemetryConfigurationEventTelemetryConfigurationPlugins[] Plugins { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable premiumSampleRate; - [NullAllowed, Export ("premiumSampleRate", ArgumentSemantic.Strong)] - NSNumber PremiumSampleRate { get; } - - // @property (copy, nonatomic) NSString * _Nullable reactNativeVersion; - [NullAllowed, Export ("reactNativeVersion")] - string ReactNativeVersion { get; set; } - - // @property (copy, nonatomic) NSString * _Nullable reactVersion; - [NullAllowed, Export ("reactVersion")] - string ReactVersion { get; set; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable replaySampleRate; - [NullAllowed, Export ("replaySampleRate", ArgumentSemantic.Strong)] - NSNumber ReplaySampleRate { get; } - - // @property (readonly, copy, nonatomic) NSArray * _Nullable selectedTracingPropagators; - [NullAllowed, Export ("selectedTracingPropagators", ArgumentSemantic.Copy)] - NSNumber[] SelectedTracingPropagators { get; } - - // @property (nonatomic, strong) NSNumber * _Nullable sendLogsAfterSessionExpiration; - [NullAllowed, Export ("sendLogsAfterSessionExpiration", ArgumentSemantic.Strong)] - NSNumber SendLogsAfterSessionExpiration { get; set; } - - // @property (nonatomic, strong) NSNumber * _Nullable sessionReplaySampleRate; - [NullAllowed, Export ("sessionReplaySampleRate", ArgumentSemantic.Strong)] - NSNumber SessionReplaySampleRate { get; set; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable sessionSampleRate; - [NullAllowed, Export ("sessionSampleRate", ArgumentSemantic.Strong)] - NSNumber SessionSampleRate { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable silentMultipleInit; - [NullAllowed, Export ("silentMultipleInit", ArgumentSemantic.Strong)] - NSNumber SilentMultipleInit { get; } - - // @property (nonatomic, strong) NSNumber * _Nullable startSessionReplayRecordingManually; - [NullAllowed, Export ("startSessionReplayRecordingManually", ArgumentSemantic.Strong)] - NSNumber StartSessionReplayRecordingManually { get; set; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable storeContextsAcrossPages; - [NullAllowed, Export ("storeContextsAcrossPages", ArgumentSemantic.Strong)] - NSNumber StoreContextsAcrossPages { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable telemetryConfigurationSampleRate; - [NullAllowed, Export ("telemetryConfigurationSampleRate", ArgumentSemantic.Strong)] - NSNumber TelemetryConfigurationSampleRate { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable telemetrySampleRate; - [NullAllowed, Export ("telemetrySampleRate", ArgumentSemantic.Strong)] - NSNumber TelemetrySampleRate { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable telemetryUsageSampleRate; - [NullAllowed, Export ("telemetryUsageSampleRate", ArgumentSemantic.Strong)] - NSNumber TelemetryUsageSampleRate { get; } - - // @property (nonatomic) enum DDTelemetryConfigurationEventTelemetryConfigurationTraceContextInjection traceContextInjection; - [Export ("traceContextInjection", ArgumentSemantic.Assign)] - DDTelemetryConfigurationEventTelemetryConfigurationTraceContextInjection TraceContextInjection { get; set; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable traceSampleRate; - [NullAllowed, Export ("traceSampleRate", ArgumentSemantic.Strong)] - NSNumber TraceSampleRate { get; } - - // @property (copy, nonatomic) NSString * _Nullable tracerApi; - [NullAllowed, Export ("tracerApi")] - string TracerApi { get; set; } - - // @property (copy, nonatomic) NSString * _Nullable tracerApiVersion; - [NullAllowed, Export ("tracerApiVersion")] - string TracerApiVersion { get; set; } - - // @property (nonatomic, strong) NSNumber * _Nullable trackBackgroundEvents; - [NullAllowed, Export ("trackBackgroundEvents", ArgumentSemantic.Strong)] - NSNumber TrackBackgroundEvents { get; set; } - - // @property (nonatomic, strong) NSNumber * _Nullable trackCrossPlatformLongTasks; - [NullAllowed, Export ("trackCrossPlatformLongTasks", ArgumentSemantic.Strong)] - NSNumber TrackCrossPlatformLongTasks { get; set; } - - // @property (nonatomic, strong) NSNumber * _Nullable trackErrors; - [NullAllowed, Export ("trackErrors", ArgumentSemantic.Strong)] - NSNumber TrackErrors { get; set; } - - // @property (nonatomic, strong) NSNumber * _Nullable trackFlutterPerformance; - [NullAllowed, Export ("trackFlutterPerformance", ArgumentSemantic.Strong)] - NSNumber TrackFlutterPerformance { get; set; } - - // @property (nonatomic, strong) NSNumber * _Nullable trackFrustrations; - [NullAllowed, Export ("trackFrustrations", ArgumentSemantic.Strong)] - NSNumber TrackFrustrations { get; set; } - - // @property (nonatomic, strong) NSNumber * _Nullable trackInteractions; - [NullAllowed, Export ("trackInteractions", ArgumentSemantic.Strong)] - NSNumber TrackInteractions { get; set; } - - // @property (nonatomic, strong) NSNumber * _Nullable trackLongTask; - [NullAllowed, Export ("trackLongTask", ArgumentSemantic.Strong)] - NSNumber TrackLongTask { get; set; } - - // @property (nonatomic, strong) NSNumber * _Nullable trackNativeErrors; - [NullAllowed, Export ("trackNativeErrors", ArgumentSemantic.Strong)] - NSNumber TrackNativeErrors { get; set; } - - // @property (nonatomic, strong) NSNumber * _Nullable trackNativeLongTasks; - [NullAllowed, Export ("trackNativeLongTasks", ArgumentSemantic.Strong)] - NSNumber TrackNativeLongTasks { get; set; } - - // @property (nonatomic, strong) NSNumber * _Nullable trackNativeViews; - [NullAllowed, Export ("trackNativeViews", ArgumentSemantic.Strong)] - NSNumber TrackNativeViews { get; set; } - - // @property (nonatomic, strong) NSNumber * _Nullable trackNetworkRequests; - [NullAllowed, Export ("trackNetworkRequests", ArgumentSemantic.Strong)] - NSNumber TrackNetworkRequests { get; set; } - - // @property (nonatomic, strong) NSNumber * _Nullable trackResources; - [NullAllowed, Export ("trackResources", ArgumentSemantic.Strong)] - NSNumber TrackResources { get; set; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable trackSessionAcrossSubdomains; - [NullAllowed, Export ("trackSessionAcrossSubdomains", ArgumentSemantic.Strong)] - NSNumber TrackSessionAcrossSubdomains { get; } - - // @property (nonatomic, strong) NSNumber * _Nullable trackUserInteractions; - [NullAllowed, Export ("trackUserInteractions", ArgumentSemantic.Strong)] - NSNumber TrackUserInteractions { get; set; } - - // @property (nonatomic, strong) NSNumber * _Nullable trackViewsManually; - [NullAllowed, Export ("trackViewsManually", ArgumentSemantic.Strong)] - NSNumber TrackViewsManually { get; set; } - - // @property (readonly, nonatomic) enum DDTelemetryConfigurationEventTelemetryConfigurationTrackingConsent trackingConsent; - [Export ("trackingConsent")] - DDTelemetryConfigurationEventTelemetryConfigurationTrackingConsent TrackingConsent { get; } - - // @property (copy, nonatomic) NSString * _Nullable unityVersion; - [NullAllowed, Export ("unityVersion")] - string UnityVersion { get; set; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable useAllowedTracingOrigins; - [NullAllowed, Export ("useAllowedTracingOrigins", ArgumentSemantic.Strong)] - NSNumber UseAllowedTracingOrigins { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable useAllowedTracingUrls; - [NullAllowed, Export ("useAllowedTracingUrls", ArgumentSemantic.Strong)] - NSNumber UseAllowedTracingUrls { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable useBeforeSend; - [NullAllowed, Export ("useBeforeSend", ArgumentSemantic.Strong)] - NSNumber UseBeforeSend { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable useCrossSiteSessionCookie; - [NullAllowed, Export ("useCrossSiteSessionCookie", ArgumentSemantic.Strong)] - NSNumber UseCrossSiteSessionCookie { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable useExcludedActivityUrls; - [NullAllowed, Export ("useExcludedActivityUrls", ArgumentSemantic.Strong)] - NSNumber UseExcludedActivityUrls { get; } - - // @property (nonatomic, strong) NSNumber * _Nullable useFirstPartyHosts; - [NullAllowed, Export ("useFirstPartyHosts", ArgumentSemantic.Strong)] - NSNumber UseFirstPartyHosts { get; set; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable useLocalEncryption; - [NullAllowed, Export ("useLocalEncryption", ArgumentSemantic.Strong)] - NSNumber UseLocalEncryption { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable usePartitionedCrossSiteSessionCookie; - [NullAllowed, Export ("usePartitionedCrossSiteSessionCookie", ArgumentSemantic.Strong)] - NSNumber UsePartitionedCrossSiteSessionCookie { get; } - - // @property (nonatomic, strong) NSNumber * _Nullable usePciIntake; - [NullAllowed, Export ("usePciIntake", ArgumentSemantic.Strong)] - NSNumber UsePciIntake { get; set; } - - // @property (nonatomic, strong) NSNumber * _Nullable useProxy; - [NullAllowed, Export ("useProxy", ArgumentSemantic.Strong)] - NSNumber UseProxy { get; set; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable useSecureSessionCookie; - [NullAllowed, Export ("useSecureSessionCookie", ArgumentSemantic.Strong)] - NSNumber UseSecureSessionCookie { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable useTracing; - [NullAllowed, Export ("useTracing", ArgumentSemantic.Strong)] - NSNumber UseTracing { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nullable useWorkerUrl; - [NullAllowed, Export ("useWorkerUrl", ArgumentSemantic.Strong)] - NSNumber UseWorkerUrl { get; } - - // @property (readonly, nonatomic) enum DDTelemetryConfigurationEventTelemetryConfigurationViewTrackingStrategy viewTrackingStrategy; - [Export ("viewTrackingStrategy")] - DDTelemetryConfigurationEventTelemetryConfigurationViewTrackingStrategy ViewTrackingStrategy { get; } - - [Export ("invTimeThresholdMs", ArgumentSemantic.Strong)] - NSNumber InvTimeThresholdMs { get; } - - [Export ("isMainProcess", ArgumentSemantic.Strong)] - NSNumber IsMainProcess { get; } - - [Export ("numberOfDisplays", ArgumentSemantic.Strong)] - NSNumber NumberOfDisplays { get; } - - [Export ("sessionPersistence")] - DDTelemetryConfigurationEventTelemetryConfigurationSessionPersistence SessionPersistence { get; } - - [Export ("swiftuiActionTrackingEnabled", ArgumentSemantic.Strong)] - NSNumber SwiftuiActionTrackingEnabled { get; set; } - - [Export ("swiftuiViewTrackingEnabled", ArgumentSemantic.Strong)] - NSNumber SwiftuiViewTrackingEnabled { get; set; } - - [Export ("tnsTimeThresholdMs", ArgumentSemantic.Strong)] - NSNumber TnsTimeThresholdMs { get; } - - [Export ("trackAnonymousUser", ArgumentSemantic.Strong)] - NSNumber TrackAnonymousUser { get; set; } - - [Export ("trackBfcacheViews", ArgumentSemantic.Strong)] - NSNumber TrackBfcacheViews { get; set; } - - [Export ("trackFeatureFlagsForEvents", ArgumentSemantic.Copy)] - NSNumber[] TrackFeatureFlagsForEvents { get; } - - [Export ("useAllowedTrackingOrigins", ArgumentSemantic.Strong)] - NSNumber UseAllowedTrackingOrigins { get; set; } - } - - // @interface DDTelemetryConfigurationEventTelemetryConfigurationForwardConsoleLogs : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc69DDTelemetryConfigurationEventTelemetryConfigurationForwardConsoleLogs")] - [DisableDefaultCtor] - interface DDTelemetryConfigurationEventTelemetryConfigurationForwardConsoleLogs - { - // @property (readonly, copy, nonatomic) NSArray * _Nullable stringsArray; - [NullAllowed, Export ("stringsArray", ArgumentSemantic.Copy)] - string[] StringsArray { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable string; - [NullAllowed, Export ("string")] - string String { get; } - } - - // @interface DDTelemetryConfigurationEventTelemetryConfigurationForwardReports : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc65DDTelemetryConfigurationEventTelemetryConfigurationForwardReports")] - [DisableDefaultCtor] - interface DDTelemetryConfigurationEventTelemetryConfigurationForwardReports - { - // @property (readonly, copy, nonatomic) NSArray * _Nullable stringsArray; - [NullAllowed, Export ("stringsArray", ArgumentSemantic.Copy)] - string[] StringsArray { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable string; - [NullAllowed, Export ("string")] - string String { get; } - } - - // @interface DDTelemetryConfigurationEventTelemetryConfigurationPlugins : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc58DDTelemetryConfigurationEventTelemetryConfigurationPlugins")] - [DisableDefaultCtor] - interface DDTelemetryConfigurationEventTelemetryConfigurationPlugins - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull name; - [Export ("name")] - string Name { get; } - - // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull pluginsInfo; - [Export ("pluginsInfo", ArgumentSemantic.Copy)] - NSDictionary PluginsInfo { get; } - } - - // @interface DDTelemetryConfigurationEventTelemetryRUMTelemetryDevice : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc56DDTelemetryConfigurationEventTelemetryRUMTelemetryDevice")] - [DisableDefaultCtor] - interface DDTelemetryConfigurationEventTelemetryRUMTelemetryDevice - { - // @property (readonly, copy, nonatomic) NSString * _Nullable architecture; - [NullAllowed, Export ("architecture")] - string Architecture { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable brand; - [NullAllowed, Export ("brand")] - string Brand { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable model; - [NullAllowed, Export ("model")] - string Model { get; } - } - - // @interface DDTelemetryConfigurationEventTelemetryRUMTelemetryOperatingSystem : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc65DDTelemetryConfigurationEventTelemetryRUMTelemetryOperatingSystem")] - [DisableDefaultCtor] - interface DDTelemetryConfigurationEventTelemetryRUMTelemetryOperatingSystem - { - // @property (readonly, copy, nonatomic) NSString * _Nullable build; - [NullAllowed, Export ("build")] - string Build { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable name; - [NullAllowed, Export ("name")] - string Name { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable version; - [NullAllowed, Export ("version")] - string Version { get; } - } - - // @interface DDTelemetryConfigurationEventView : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc33DDTelemetryConfigurationEventView")] - [DisableDefaultCtor] - interface DDTelemetryConfigurationEventView - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - } - - // @interface DDTelemetryDebugEvent : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc21DDTelemetryDebugEvent")] - [DisableDefaultCtor] - interface DDTelemetryDebugEvent - { - // @property (readonly, nonatomic, strong) DDTelemetryDebugEventDD * _Nonnull dd; - [Export ("dd", ArgumentSemantic.Strong)] - DDTelemetryDebugEventDD Dd { get; } - - // @property (readonly, nonatomic, strong) DDTelemetryDebugEventAction * _Nullable action; - [NullAllowed, Export ("action", ArgumentSemantic.Strong)] - DDTelemetryDebugEventAction Action { get; } - - // @property (readonly, nonatomic, strong) DDTelemetryDebugEventApplication * _Nullable application; - [NullAllowed, Export ("application", ArgumentSemantic.Strong)] - DDTelemetryDebugEventApplication Application { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull date; - [Export ("date", ArgumentSemantic.Strong)] - NSNumber Date { get; } - - // @property (readonly, copy, nonatomic) NSArray * _Nullable experimentalFeatures; - [NullAllowed, Export ("experimentalFeatures", ArgumentSemantic.Copy)] - string[] ExperimentalFeatures { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull service; - [Export ("service")] - string Service { get; } - - // @property (readonly, nonatomic, strong) DDTelemetryDebugEventSession * _Nullable session; - [NullAllowed, Export ("session", ArgumentSemantic.Strong)] - DDTelemetryDebugEventSession Session { get; } - - // @property (readonly, nonatomic) enum DDTelemetryDebugEventSource source; - [Export ("source")] - DDTelemetryDebugEventSource Source { get; } - - // @property (readonly, nonatomic, strong) DDTelemetryDebugEventTelemetry * _Nonnull telemetry; - [Export ("telemetry", ArgumentSemantic.Strong)] - DDTelemetryDebugEventTelemetry Telemetry { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull type; - [Export ("type")] - string Type { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull version; - [Export ("version")] - string Version { get; } - - // @property (readonly, nonatomic, strong) DDTelemetryDebugEventView * _Nullable view; - [NullAllowed, Export ("view", ArgumentSemantic.Strong)] - DDTelemetryDebugEventView View { get; } - - [Export ("effectiveSampleRate", ArgumentSemantic.Strong)] - NSNumber EffectiveSampleRate { get; } - } - - // @interface DDTelemetryDebugEventAction : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc27DDTelemetryDebugEventAction")] - [DisableDefaultCtor] - interface DDTelemetryDebugEventAction - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - } - - // @interface DDTelemetryDebugEventApplication : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc32DDTelemetryDebugEventApplication")] - [DisableDefaultCtor] - interface DDTelemetryDebugEventApplication - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - } - - // @interface DDTelemetryDebugEventDD : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc23DDTelemetryDebugEventDD")] - [DisableDefaultCtor] - interface DDTelemetryDebugEventDD - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull formatVersion; - [Export ("formatVersion", ArgumentSemantic.Strong)] - NSNumber FormatVersion { get; } - } - - // @interface DDTelemetryDebugEventSession : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc28DDTelemetryDebugEventSession")] - [DisableDefaultCtor] - interface DDTelemetryDebugEventSession - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - } - - // @interface DDTelemetryDebugEventTelemetry : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc30DDTelemetryDebugEventTelemetry")] - [DisableDefaultCtor] - interface DDTelemetryDebugEventTelemetry - { - // @property (readonly, nonatomic, strong) DDTelemetryDebugEventTelemetryRUMTelemetryDevice * _Nullable device; - [NullAllowed, Export ("device", ArgumentSemantic.Strong)] - DDTelemetryDebugEventTelemetryRUMTelemetryDevice Device { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull message; - [Export ("message")] - string Message { get; } - - // @property (readonly, nonatomic, strong) DDTelemetryDebugEventTelemetryRUMTelemetryOperatingSystem * _Nullable os; - [NullAllowed, Export ("os", ArgumentSemantic.Strong)] - DDTelemetryDebugEventTelemetryRUMTelemetryOperatingSystem Os { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull status; - [Export ("status")] - string Status { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable type; - [NullAllowed, Export ("type")] - string Type { get; } - - // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull telemetryInfo; - [Export ("telemetryInfo", ArgumentSemantic.Copy)] - NSDictionary TelemetryInfo { get; } - } - - // @interface DDTelemetryDebugEventTelemetryRUMTelemetryDevice : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc48DDTelemetryDebugEventTelemetryRUMTelemetryDevice")] - [DisableDefaultCtor] - interface DDTelemetryDebugEventTelemetryRUMTelemetryDevice - { - // @property (readonly, copy, nonatomic) NSString * _Nullable architecture; - [NullAllowed, Export ("architecture")] - string Architecture { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable brand; - [NullAllowed, Export ("brand")] - string Brand { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable model; - [NullAllowed, Export ("model")] - string Model { get; } - } - - // @interface DDTelemetryDebugEventTelemetryRUMTelemetryOperatingSystem : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc57DDTelemetryDebugEventTelemetryRUMTelemetryOperatingSystem")] - [DisableDefaultCtor] - interface DDTelemetryDebugEventTelemetryRUMTelemetryOperatingSystem - { - // @property (readonly, copy, nonatomic) NSString * _Nullable build; - [NullAllowed, Export ("build")] - string Build { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable name; - [NullAllowed, Export ("name")] - string Name { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable version; - [NullAllowed, Export ("version")] - string Version { get; } - } - - // @interface DDTelemetryDebugEventView : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc25DDTelemetryDebugEventView")] - [DisableDefaultCtor] - interface DDTelemetryDebugEventView - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - } - - // @interface DDTelemetryErrorEvent : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc21DDTelemetryErrorEvent")] - [DisableDefaultCtor] - interface DDTelemetryErrorEvent - { - // @property (readonly, nonatomic, strong) DDTelemetryErrorEventDD * _Nonnull dd; - [Export ("dd", ArgumentSemantic.Strong)] - DDTelemetryErrorEventDD Dd { get; } - - // @property (readonly, nonatomic, strong) DDTelemetryErrorEventAction * _Nullable action; - [NullAllowed, Export ("action", ArgumentSemantic.Strong)] - DDTelemetryErrorEventAction Action { get; } - - // @property (readonly, nonatomic, strong) DDTelemetryErrorEventApplication * _Nullable application; - [NullAllowed, Export ("application", ArgumentSemantic.Strong)] - DDTelemetryErrorEventApplication Application { get; } - - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull date; - [Export ("date", ArgumentSemantic.Strong)] - NSNumber Date { get; } - - // @property (readonly, copy, nonatomic) NSArray * _Nullable experimentalFeatures; - [NullAllowed, Export ("experimentalFeatures", ArgumentSemantic.Copy)] - string[] ExperimentalFeatures { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull service; - [Export ("service")] - string Service { get; } - - // @property (readonly, nonatomic, strong) DDTelemetryErrorEventSession * _Nullable session; - [NullAllowed, Export ("session", ArgumentSemantic.Strong)] - DDTelemetryErrorEventSession Session { get; } - - // @property (readonly, nonatomic) enum DDTelemetryErrorEventSource source; - [Export ("source")] - DDTelemetryErrorEventSource Source { get; } - - // @property (readonly, nonatomic, strong) DDTelemetryErrorEventTelemetry * _Nonnull telemetry; - [Export ("telemetry", ArgumentSemantic.Strong)] - DDTelemetryErrorEventTelemetry Telemetry { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull type; - [Export ("type")] - string Type { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull version; - [Export ("version")] - string Version { get; } - - // @property (readonly, nonatomic, strong) DDTelemetryErrorEventView * _Nullable view; - [NullAllowed, Export ("view", ArgumentSemantic.Strong)] - DDTelemetryErrorEventView View { get; } - - [Export ("effectiveSampleRate", ArgumentSemantic.Strong)] - NSNumber EffectiveSampleRate { get; } - } - - // @interface DDTelemetryErrorEventAction : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc27DDTelemetryErrorEventAction")] - [DisableDefaultCtor] - interface DDTelemetryErrorEventAction - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - } - - // @interface DDTelemetryErrorEventApplication : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc32DDTelemetryErrorEventApplication")] - [DisableDefaultCtor] - interface DDTelemetryErrorEventApplication - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - } - - // @interface DDTelemetryErrorEventDD : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc23DDTelemetryErrorEventDD")] - [DisableDefaultCtor] - interface DDTelemetryErrorEventDD - { - // @property (readonly, nonatomic, strong) NSNumber * _Nonnull formatVersion; - [Export ("formatVersion", ArgumentSemantic.Strong)] - NSNumber FormatVersion { get; } - } - - // @interface DDTelemetryErrorEventSession : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc28DDTelemetryErrorEventSession")] - [DisableDefaultCtor] - interface DDTelemetryErrorEventSession - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - } - - // @interface DDTelemetryErrorEventTelemetry : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc30DDTelemetryErrorEventTelemetry")] - [DisableDefaultCtor] - interface DDTelemetryErrorEventTelemetry - { - // @property (readonly, nonatomic, strong) DDTelemetryErrorEventTelemetryRUMTelemetryDevice * _Nullable device; - [NullAllowed, Export ("device", ArgumentSemantic.Strong)] - DDTelemetryErrorEventTelemetryRUMTelemetryDevice Device { get; } - - // @property (readonly, nonatomic, strong) DDTelemetryErrorEventTelemetryError * _Nullable error; - [NullAllowed, Export ("error", ArgumentSemantic.Strong)] - DDTelemetryErrorEventTelemetryError Error { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull message; - [Export ("message")] - string Message { get; } - - // @property (readonly, nonatomic, strong) DDTelemetryErrorEventTelemetryRUMTelemetryOperatingSystem * _Nullable os; - [NullAllowed, Export ("os", ArgumentSemantic.Strong)] - DDTelemetryErrorEventTelemetryRUMTelemetryOperatingSystem Os { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull status; - [Export ("status")] - string Status { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable type; - [NullAllowed, Export ("type")] - string Type { get; } - - // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull telemetryInfo; - [Export ("telemetryInfo", ArgumentSemantic.Copy)] - NSDictionary TelemetryInfo { get; } - } - - // @interface DDTelemetryErrorEventTelemetryError : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc35DDTelemetryErrorEventTelemetryError")] - [DisableDefaultCtor] - interface DDTelemetryErrorEventTelemetryError - { - // @property (readonly, copy, nonatomic) NSString * _Nullable kind; - [NullAllowed, Export ("kind")] - string Kind { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable stack; - [NullAllowed, Export ("stack")] - string Stack { get; } - } - - // @interface DDTelemetryErrorEventTelemetryRUMTelemetryDevice : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc48DDTelemetryErrorEventTelemetryRUMTelemetryDevice")] - [DisableDefaultCtor] - interface DDTelemetryErrorEventTelemetryRUMTelemetryDevice - { - // @property (readonly, copy, nonatomic) NSString * _Nullable architecture; - [NullAllowed, Export ("architecture")] - string Architecture { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable brand; - [NullAllowed, Export ("brand")] - string Brand { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable model; - [NullAllowed, Export ("model")] - string Model { get; } - } - - // @interface DDTelemetryErrorEventTelemetryRUMTelemetryOperatingSystem : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc57DDTelemetryErrorEventTelemetryRUMTelemetryOperatingSystem")] - [DisableDefaultCtor] - interface DDTelemetryErrorEventTelemetryRUMTelemetryOperatingSystem - { - // @property (readonly, copy, nonatomic) NSString * _Nullable build; - [NullAllowed, Export ("build")] - string Build { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable name; - [NullAllowed, Export ("name")] - string Name { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable version; - [NullAllowed, Export ("version")] - string Version { get; } - } - - // @interface DDTelemetryErrorEventView : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc25DDTelemetryErrorEventView")] - [DisableDefaultCtor] - interface DDTelemetryErrorEventView - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull id; - [Export ("id")] - string Id { get; } - } - - // @interface DDTrace : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc7DDTrace")] - interface DDTrace - { - // +(void)enableWith:(DDTraceConfiguration * _Nonnull)configuration; - [Static] - [Export ("enableWith:")] - void EnableWith (DDTraceConfiguration configuration); - } - - // @interface DDTraceConfiguration : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc20DDTraceConfiguration")] - interface DDTraceConfiguration - { - // @property (nonatomic) float sampleRate; - [Export ("sampleRate")] - float SampleRate { get; set; } - - // @property (copy, nonatomic) NSString * _Nullable service; - [NullAllowed, Export ("service")] - string Service { get; set; } - - // @property (copy, nonatomic) NSDictionary * _Nullable tags; - [NullAllowed, Export ("tags", ArgumentSemantic.Copy)] - NSDictionary Tags { get; set; } - - // -(void)setURLSessionTracking:(DDTraceURLSessionTracking * _Nonnull)tracking; - [Export ("setURLSessionTracking:")] - void SetURLSessionTracking (DDTraceURLSessionTracking tracking); - - // @property (nonatomic) BOOL bundleWithRumEnabled; - [Export ("bundleWithRumEnabled")] - bool BundleWithRumEnabled { get; set; } - - // @property (nonatomic) BOOL networkInfoEnabled; - [Export ("networkInfoEnabled")] - bool NetworkInfoEnabled { get; set; } - - // @property (copy, nonatomic) NSURL * _Nullable customEndpoint; - [NullAllowed, Export ("customEndpoint", ArgumentSemantic.Copy)] - NSUrl CustomEndpoint { get; set; } - } - - // @interface DDTraceFirstPartyHostsTracing : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc29DDTraceFirstPartyHostsTracing")] - [DisableDefaultCtor] - interface DDTraceFirstPartyHostsTracing - { - // -(instancetype _Nonnull)initWithHostsWithHeaderTypes:(NSDictionary *> * _Nonnull)hostsWithHeaderTypes __attribute__((objc_designated_initializer)); - [Export ("initWithHostsWithHeaderTypes:")] - [DesignatedInitializer] - NativeHandle Constructor (NSDictionary> hostsWithHeaderTypes); - - // -(instancetype _Nonnull)initWithHostsWithHeaderTypes:(NSDictionary *> * _Nonnull)hostsWithHeaderTypes sampleRate:(float)sampleRate __attribute__((objc_designated_initializer)); - [Export ("initWithHostsWithHeaderTypes:sampleRate:")] - [DesignatedInitializer] - NativeHandle Constructor (NSDictionary> hostsWithHeaderTypes, float sampleRate); - - // -(instancetype _Nonnull)initWithHosts:(NSSet * _Nonnull)hosts __attribute__((objc_designated_initializer)); - [Export ("initWithHosts:")] - [DesignatedInitializer] - NativeHandle Constructor (NSSet hosts); - - // -(instancetype _Nonnull)initWithHosts:(NSSet * _Nonnull)hosts sampleRate:(float)sampleRate __attribute__((objc_designated_initializer)); - [Export ("initWithHosts:sampleRate:")] - [DesignatedInitializer] - NativeHandle Constructor (NSSet hosts, float sampleRate); - } - - // @interface DDTraceSamplingStrategy : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc23DDTraceSamplingStrategy")] - [DisableDefaultCtor] - interface DDTraceSamplingStrategy - { - // +(DDTraceSamplingStrategy * _Nonnull)headBased __attribute__((warn_unused_result(""))); - [Static] - [Export ("headBased")] - DDTraceSamplingStrategy HeadBased { get; } - - // +(DDTraceSamplingStrategy * _Nonnull)customWithSampleRate:(float)sampleRate __attribute__((warn_unused_result(""))); - [Static] - [Export ("customWithSampleRate:")] - DDTraceSamplingStrategy CustomWithSampleRate (float sampleRate); - } - - // @interface DDTraceURLSessionTracking : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc25DDTraceURLSessionTracking")] - [DisableDefaultCtor] - interface DDTraceURLSessionTracking - { - // -(instancetype _Nonnull)initWithFirstPartyHostsTracing:(DDTraceFirstPartyHostsTracing * _Nonnull)firstPartyHostsTracing __attribute__((objc_designated_initializer)); - [Export ("initWithFirstPartyHostsTracing:")] - [DesignatedInitializer] - NativeHandle Constructor (DDTraceFirstPartyHostsTracing firstPartyHostsTracing); - - // -(void)setFirstPartyHostsTracing:(DDTraceFirstPartyHostsTracing * _Nonnull)firstPartyHostsTracing; - [Export ("setFirstPartyHostsTracing:")] - void SetFirstPartyHostsTracing (DDTraceFirstPartyHostsTracing firstPartyHostsTracing); - } - - // @protocol OTTracer - /* - Check whether adding [Model] to this declaration is appropriate. - [Model] is used to generate a C# class that implements this protocol, - and might be useful for protocols that consumers are supposed to implement, - since consumers can subclass the generated class instead of implementing - the generated interface. If consumers are not supposed to implement this - protocol, then [Model] is redundant and will generate code that will never - be used. -*/[Protocol (Name = "_TtP11DatadogObjc8OTTracer_")] -[BaseType(typeof(NSObject))] - partial interface OTTracer - { - // @required -(id _Nonnull)startSpan:(NSString * _Nonnull)operationName __attribute__((warn_unused_result(""))); - [Abstract] - [Export ("startSpan:")] - OTSpan StartSpan (string operationName); - - // @required -(id _Nonnull)startSpan:(NSString * _Nonnull)operationName tags:(NSDictionary * _Nullable)tags __attribute__((warn_unused_result(""))); - [Abstract] - [Export ("startSpan:tags:")] - OTSpan StartSpan (string operationName, [NullAllowed] NSDictionary tags); - - // @required -(id _Nonnull)startSpan:(NSString * _Nonnull)operationName childOf:(id _Nullable)parent __attribute__((warn_unused_result(""))); - [Abstract] - [Export ("startSpan:childOf:")] - OTSpan StartSpan (string operationName, [NullAllowed] OTSpanContext parent); - - // @required -(id _Nonnull)startSpan:(NSString * _Nonnull)operationName childOf:(id _Nullable)parent tags:(NSDictionary * _Nullable)tags __attribute__((warn_unused_result(""))); - [Abstract] - [Export ("startSpan:childOf:tags:")] - OTSpan StartSpan (string operationName, [NullAllowed] OTSpanContext parent, [NullAllowed] NSDictionary tags); - - // @required -(id _Nonnull)startSpan:(NSString * _Nonnull)operationName childOf:(id _Nullable)parent tags:(NSDictionary * _Nullable)tags startTime:(NSDate * _Nullable)startTime __attribute__((warn_unused_result(""))); - [Abstract] - [Export ("startSpan:childOf:tags:startTime:")] - OTSpan StartSpan (string operationName, [NullAllowed] OTSpanContext parent, [NullAllowed] NSDictionary tags, [NullAllowed] NSDate startTime); - - // @required -(BOOL)inject:(id _Nonnull)spanContext format:(NSString * _Nonnull)format carrier:(id _Nonnull)carrier error:(NSError * _Nullable * _Nullable)error; - [Abstract] - [Export ("inject:format:carrier:error:")] - bool Inject (OTSpanContext spanContext, string format, NSObject carrier, [NullAllowed] out NSError error); - - // @required -(BOOL)extractWithFormat:(NSString * _Nonnull)format carrier:(id _Nonnull)carrier error:(NSError * _Nullable * _Nullable)error; - [Abstract] - [Export ("extractWithFormat:carrier:error:")] - bool ExtractWithFormat (string format, NSObject carrier, [NullAllowed] out NSError error); - } - - // @interface DDTracer : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc8DDTracer")] - [DisableDefaultCtor] - interface DDTracer : OTTracer - { - // +(id _Nonnull)shared __attribute__((warn_unused_result(""))); - [Static] - [Export ("shared")] - OTTracer Shared { get; } - - // -(id _Nonnull)startSpan:(NSString * _Nonnull)operationName __attribute__((warn_unused_result(""))); - [Export ("startSpan:")] - OTSpan StartSpan (string operationName); - - // -(id _Nonnull)startSpan:(NSString * _Nonnull)operationName tags:(NSDictionary * _Nullable)tags __attribute__((warn_unused_result(""))); - [Export ("startSpan:tags:")] - OTSpan StartSpan (string operationName, [NullAllowed] NSDictionary tags); - - // -(id _Nonnull)startSpan:(NSString * _Nonnull)operationName childOf:(id _Nullable)parent __attribute__((warn_unused_result(""))); - [Export ("startSpan:childOf:")] - OTSpan StartSpan (string operationName, [NullAllowed] OTSpanContext parent); - - // -(id _Nonnull)startSpan:(NSString * _Nonnull)operationName childOf:(id _Nullable)parent tags:(NSDictionary * _Nullable)tags __attribute__((warn_unused_result(""))); - [Export ("startSpan:childOf:tags:")] - OTSpan StartSpan (string operationName, [NullAllowed] OTSpanContext parent, [NullAllowed] NSDictionary tags); - - // -(id _Nonnull)startSpan:(NSString * _Nonnull)operationName childOf:(id _Nullable)parent tags:(NSDictionary * _Nullable)tags startTime:(NSDate * _Nullable)startTime __attribute__((warn_unused_result(""))); - [Export ("startSpan:childOf:tags:startTime:")] - OTSpan StartSpan (string operationName, [NullAllowed] OTSpanContext parent, [NullAllowed] NSDictionary tags, [NullAllowed] NSDate startTime); - - // -(BOOL)inject:(id _Nonnull)spanContext format:(NSString * _Nonnull)format carrier:(id _Nonnull)carrier error:(NSError * _Nullable * _Nullable)error; - [Export ("inject:format:carrier:error:")] - bool Inject (OTSpanContext spanContext, string format, NSObject carrier, [NullAllowed] out NSError error); - - // -(BOOL)extractWithFormat:(NSString * _Nonnull)format carrier:(id _Nonnull)carrier error:(NSError * _Nullable * _Nullable)error; - [Export ("extractWithFormat:carrier:error:")] - bool ExtractWithFormat (string format, NSObject carrier, [NullAllowed] out NSError error); - } - - // @interface DDTracingHeaderType : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc19DDTracingHeaderType")] - [DisableDefaultCtor] - interface DDTracingHeaderType : INativeObject - { - // @property (readonly, nonatomic, strong, class) DDTracingHeaderType * _Nonnull datadog; - [Static] - [Export ("datadog", ArgumentSemantic.Strong)] - DDTracingHeaderType Datadog { get; } - - // @property (readonly, nonatomic, strong, class) DDTracingHeaderType * _Nonnull b3multi; - [Static] - [Export ("b3multi", ArgumentSemantic.Strong)] - DDTracingHeaderType B3multi { get; } - - // @property (readonly, nonatomic, strong, class) DDTracingHeaderType * _Nonnull b3; - [Static] - [Export ("b3", ArgumentSemantic.Strong)] - DDTracingHeaderType B3 { get; } - - // @property (readonly, nonatomic, strong, class) DDTracingHeaderType * _Nonnull tracecontext; - [Static] - [Export ("tracecontext", ArgumentSemantic.Strong)] - DDTracingHeaderType Tracecontext { get; } - } - - // @interface DDTrackingConsent : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc17DDTrackingConsent")] - [DisableDefaultCtor] - interface DDTrackingConsent - { - // +(DDTrackingConsent * _Nonnull)granted __attribute__((warn_unused_result(""))); - [Static] - [Export ("granted")] - DDTrackingConsent Granted { get; } - - // +(DDTrackingConsent * _Nonnull)notGranted __attribute__((warn_unused_result(""))); - [Static] - [Export ("notGranted")] - DDTrackingConsent NotGranted { get; } - - // +(DDTrackingConsent * _Nonnull)pending __attribute__((warn_unused_result(""))); - [Static] - [Export ("pending")] - DDTrackingConsent Pending { get; } - } - - // @protocol DDUIPressRUMActionsPredicate - /* - Check whether adding [Model] to this declaration is appropriate. - [Model] is used to generate a C# class that implements this protocol, - and might be useful for protocols that consumers are supposed to implement, - since consumers can subclass the generated class instead of implementing - the generated interface. If consumers are not supposed to implement this - protocol, then [Model] is redundant and will generate code that will never - be used. -*/[Protocol (Name = "_TtP11DatadogObjc28DDUIPressRUMActionsPredicate_")] - interface DDUIPressRUMActionsPredicate - { - // @required -(DDRUMAction * _Nullable)rumActionWithPress:(enum UIPressType)type targetView:(UIView * _Nonnull)targetView __attribute__((warn_unused_result(""))); - [Abstract] - [Export ("rumActionWithPress:targetView:")] - [return: NullAllowed] - DDRUMAction TargetView (UIPressType type, UIView targetView); - } - - // @interface DDURLSessionInstrumentation : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc27DDURLSessionInstrumentation")] - interface DDURLSessionInstrumentation - { - // +(void)enableWithConfiguration:(DDURLSessionInstrumentationConfiguration * _Nonnull)configuration; - [Static] - [Export ("enableWithConfiguration:")] - void EnableWithConfiguration (DDURLSessionInstrumentationConfiguration configuration); - - // +(void)disableWithDelegateClass:(Class _Nonnull)delegateClass; - [Static] - [Export ("disableWithDelegateClass:")] - void DisableWithDelegateClass (IntPtr delegateClass); - } - - // @interface DDURLSessionInstrumentationConfiguration : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc40DDURLSessionInstrumentationConfiguration")] - [DisableDefaultCtor] - interface DDURLSessionInstrumentationConfiguration - { - // -(instancetype _Nonnull)initWithDelegateClass:(Class _Nonnull)delegateClass __attribute__((objc_designated_initializer)); - [Export ("initWithDelegateClass:")] - [DesignatedInitializer] - NativeHandle Constructor (IntPtr delegateClass); - - // -(void)setFirstPartyHostsTracing:(DDURLSessionInstrumentationFirstPartyHostsTracing * _Nonnull)firstPartyHostsTracing; - [Export ("setFirstPartyHostsTracing:")] - void SetFirstPartyHostsTracing (DDURLSessionInstrumentationFirstPartyHostsTracing firstPartyHostsTracing); - - // @property (nonatomic) Class _Nonnull delegateClass; - [Export ("delegateClass", ArgumentSemantic.Assign)] - IntPtr DelegateClass { get; set; } - } - - // @interface DDURLSessionInstrumentationFirstPartyHostsTracing : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc49DDURLSessionInstrumentationFirstPartyHostsTracing")] - [DisableDefaultCtor] - interface DDURLSessionInstrumentationFirstPartyHostsTracing - { - // -(instancetype _Nonnull)initWithHostsWithHeaderTypes:(NSDictionary *> * _Nonnull)hostsWithHeaderTypes __attribute__((objc_designated_initializer)); - [Export ("initWithHostsWithHeaderTypes:")] - [DesignatedInitializer] - NativeHandle Constructor (NSDictionary> hostsWithHeaderTypes); - - // -(instancetype _Nonnull)initWithHosts:(NSSet * _Nonnull)hosts __attribute__((objc_designated_initializer)); - [Export ("initWithHosts:")] - [DesignatedInitializer] - NativeHandle Constructor (NSSet hosts); - } - - // @interface DDW3CHTTPHeadersWriter : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc22DDW3CHTTPHeadersWriter")] - [DisableDefaultCtor] - interface DDW3CHTTPHeadersWriter - { - // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull traceHeaderFields; - [Export ("traceHeaderFields", ArgumentSemantic.Copy)] - NSDictionary TraceHeaderFields { get; } - - // -(instancetype _Nonnull)initWithSamplingRate:(float)samplingRate __attribute__((deprecated("This will be removed in future versions of the SDK. Use `init(samplingStrategy: .custom(sampleRate:))` instead."))); - //[Export ("initWithSamplingRate:")] - //NativeHandle Constructor (float samplingRate); - - // -(instancetype _Nonnull)initWithSampleRate:(float)sampleRate __attribute__((objc_designated_initializer)) __attribute__((deprecated("This will be removed in future versions of the SDK. Use `init(samplingStrategy: .custom(sampleRate:))` instead."))); - [Export ("initWithSampleRate:")] - [DesignatedInitializer] - NativeHandle Constructor (float sampleRate); - - // -(instancetype _Nonnull)initWithSamplingStrategy:(DDTraceSamplingStrategy * _Nonnull)samplingStrategy traceContextInjection:(enum DDTraceContextInjection)traceContextInjection __attribute__((objc_designated_initializer)); - [Export ("initWithSamplingStrategy:traceContextInjection:")] - [DesignatedInitializer] - NativeHandle Constructor (DDTraceSamplingStrategy samplingStrategy, DDTraceContextInjection traceContextInjection); - } - - // @interface OT : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc2OT")] - interface OT - { - // @property (readonly, copy, nonatomic, class) NSString * _Nonnull formatTextMap; - [Static] - [Export ("formatTextMap")] - string FormatTextMap { get; } - } - - // @protocol OTSpan - /* - Check whether adding [Model] to this declaration is appropriate. - [Model] is used to generate a C# class that implements this protocol, - and might be useful for protocols that consumers are supposed to implement, - since consumers can subclass the generated class instead of implementing - the generated interface. If consumers are not supposed to implement this - protocol, then [Model] is redundant and will generate code that will never - be used. -*/[Protocol (Name = "_TtP11DatadogObjc6OTSpan_")] -[BaseType(typeof(NSObject))] - interface OTSpan - { - // @required @property (readonly, nonatomic, strong) id _Nonnull context; - [Abstract] - [Export ("context", ArgumentSemantic.Strong)] - OTSpanContext Context { get; } - - // @required @property (readonly, nonatomic, strong) id _Nonnull tracer; - [Abstract] - [Export ("tracer", ArgumentSemantic.Strong)] - OTTracer Tracer { get; } - - // @required -(void)setOperationName:(NSString * _Nonnull)operationName; - [Abstract] - [Export ("setOperationName:")] - void SetOperationName (string operationName); - - // @required -(void)setTag:(NSString * _Nonnull)key value:(NSString * _Nonnull)value; - [Abstract] - [Export ("setTag:value:")] - void SetTag (string key, string value); - - // @required -(void)setTag:(NSString * _Nonnull)key numberValue:(NSNumber * _Nonnull)numberValue; - [Abstract] - [Export ("setTag:numberValue:")] - void SetTag (string key, NSNumber numberValue); - - // @required -(void)setTag:(NSString * _Nonnull)key boolValue:(BOOL)boolValue; - [Abstract] - [Export ("setTag:boolValue:")] - void SetTag (string key, bool boolValue); - - // @required -(void)log:(NSDictionary * _Nonnull)fields; - [Abstract] - [Export ("log:")] - void Log (NSDictionary fields); - - // @required -(void)log:(NSDictionary * _Nonnull)fields timestamp:(NSDate * _Nullable)timestamp; - [Abstract] - [Export ("log:timestamp:")] - void Log (NSDictionary fields, [NullAllowed] NSDate timestamp); - - // @required -(id _Nonnull)setBaggageItem:(NSString * _Nonnull)key value:(NSString * _Nonnull)value __attribute__((warn_unused_result(""))); - [Abstract] - [Export ("setBaggageItem:value:")] - OTSpan SetBaggageItem (string key, string value); - - // @required -(NSString * _Nullable)getBaggageItem:(NSString * _Nonnull)key __attribute__((warn_unused_result(""))); - [Abstract] - [Export ("getBaggageItem:")] - [return: NullAllowed] - string GetBaggageItem (string key); - - // @required -(void)setError:(NSError * _Nonnull)error; - [Abstract] - [Export ("setError:")] - void SetError (NSError error); - - // @required -(void)setErrorWithKind:(NSString * _Nonnull)kind message:(NSString * _Nonnull)message stack:(NSString * _Nullable)stack; - [Abstract] - [Export ("setErrorWithKind:message:stack:")] - void SetErrorWithKind (string kind, string message, [NullAllowed] string stack); - - // @required -(void)finish; - [Abstract] - [Export ("finish")] - void Finish (); - - // @required -(void)finishWithTime:(NSDate * _Nullable)finishTime; - [Abstract] - [Export ("finishWithTime:")] - void FinishWithTime ([NullAllowed] NSDate finishTime); - - // @required -(id _Nonnull)setActive; - [Abstract] - [Export ("setActive")] - OTSpan SetActive { get; } - } - - // @protocol OTSpanContext - /* - Check whether adding [Model] to this declaration is appropriate. - [Model] is used to generate a C# class that implements this protocol, - and might be useful for protocols that consumers are supposed to implement, - since consumers can subclass the generated class instead of implementing - the generated interface. If consumers are not supposed to implement this - protocol, then [Model] is redundant and will generate code that will never - be used. -*/[Protocol (Name = "_TtP11DatadogObjc13OTSpanContext_")] -[BaseType(typeof(NSObject))] - partial interface OTSpanContext - { - // @required -(void)forEachBaggageItem:(BOOL (^ _Nonnull)(NSString * _Nonnull, NSString * _Nonnull))callback; - [Abstract] - [Export ("forEachBaggageItem:")] - void ForEachBaggageItem (Func callback); - } - - // --------------------------------------------------------------------------------------- - // Log event model, reached through DDLogsConfiguration.SetEventMapper. - // - // Objective Sharpie emitted none of this - not the ten DDLogEvent* classes, not the three - // enums, and not setEventMapper: itself - so the previous bindings could not redact or drop a - // log before it was uploaded, even though RUM had all five of its mappers. Transcribed by hand - // from DatadogObjc-Swift.h. - // - // Only the properties the header declares as writable are bound with setters; the rest are - // read-only there, and making them settable here would compile but silently do nothing. - // --------------------------------------------------------------------------------------- - - // @interface DDLogEventAttributes : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc20DDLogEventAttributes")] - [DisableDefaultCtor] - interface DDLogEventAttributes - { - // @property (copy, nonatomic) NSDictionary * _Nonnull userAttributes; - [Export ("userAttributes", ArgumentSemantic.Copy)] - NSDictionary UserAttributes { get; set; } - - [Export ("accountInfo", ArgumentSemantic.Strong)] - DDLogEventAccountInfo AccountInfo { get; } - } - - // @interface DDLogEventBinaryImage : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc21DDLogEventBinaryImage")] - [DisableDefaultCtor] - interface DDLogEventBinaryImage - { - [NullAllowed, Export ("arch")] - string Arch { get; } - - [Export ("isSystem")] - bool IsSystem { get; } - - [NullAllowed, Export ("loadAddress")] - string LoadAddress { get; } - - [NullAllowed, Export ("maxAddress")] - string MaxAddress { get; } - - [Export ("name")] - string Name { get; } - - [Export ("uuid")] - string Uuid { get; } - } - - // @interface DDLogEventError : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc15DDLogEventError")] - [DisableDefaultCtor] - interface DDLogEventError - { - [NullAllowed, Export ("kind")] - string Kind { get; set; } - - [NullAllowed, Export ("message")] - string Message { get; set; } - - [NullAllowed, Export ("stack")] - string Stack { get; set; } - - [Export ("sourceType")] - string SourceType { get; set; } - - [NullAllowed, Export ("fingerprint")] - string Fingerprint { get; set; } - - [NullAllowed, Export ("binaryImages", ArgumentSemantic.Copy)] - DDLogEventBinaryImage[] BinaryImages { get; set; } - } - - // @interface DDLogEventCarrierInfo : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc21DDLogEventCarrierInfo")] - [DisableDefaultCtor] - interface DDLogEventCarrierInfo - { - [NullAllowed, Export ("carrierName")] - string CarrierName { get; } - - [NullAllowed, Export ("carrierISOCountryCode")] - string CarrierIsoCountryCode { get; } - - [Export ("carrierAllowsVOIP")] - bool CarrierAllowsVoip { get; } - - [Export ("radioAccessTechnology")] - DDLogEventRadioAccessTechnology RadioAccessTechnology { get; } - } - - // @interface DDLogEventDeviceInfo : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc20DDLogEventDeviceInfo")] - [DisableDefaultCtor] - interface DDLogEventDeviceInfo - { - [Export ("brand")] - string Brand { get; } - - [Export ("name")] - string Name { get; } - - [Export ("model")] - string Model { get; } - - [Export ("architecture")] - string Architecture { get; } - } - - // @interface DDLogEventDd : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc12DDLogEventDd")] - [DisableDefaultCtor] - interface DDLogEventDd - { - [Export ("device", ArgumentSemantic.Strong)] - DDLogEventDeviceInfo Device { get; } - } - - // @interface DDLogEventNetworkConnectionInfo : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc31DDLogEventNetworkConnectionInfo")] - [DisableDefaultCtor] - interface DDLogEventNetworkConnectionInfo - { - [Export ("reachability")] - DDLogEventReachability Reachability { get; } - - [NullAllowed, Export ("availableInterfaces", ArgumentSemantic.Copy)] - NSNumber[] AvailableInterfaces { get; } - - [NullAllowed, Export ("supportsIPv4", ArgumentSemantic.Strong)] - NSNumber SupportsIPv4 { get; } - - [NullAllowed, Export ("supportsIPv6", ArgumentSemantic.Strong)] - NSNumber SupportsIPv6 { get; } - - [NullAllowed, Export ("isExpensive", ArgumentSemantic.Strong)] - NSNumber IsExpensive { get; } - - [NullAllowed, Export ("isConstrained", ArgumentSemantic.Strong)] - NSNumber IsConstrained { get; } - } - - // @interface DDLogEventOperatingSystem : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc25DDLogEventOperatingSystem")] - [DisableDefaultCtor] - interface DDLogEventOperatingSystem - { - [Export ("name")] - string Name { get; } - - [Export ("version")] - string Version { get; } - - [NullAllowed, Export ("build")] - string Build { get; } - } - - // @interface DDLogEventUserInfo : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc18DDLogEventUserInfo")] - [DisableDefaultCtor] - interface DDLogEventUserInfo - { - [NullAllowed, Export ("id")] - string Id { get; } - - [NullAllowed, Export ("name")] - string Name { get; } - - [NullAllowed, Export ("email")] - string Email { get; } - - [Export ("extraInfo", ArgumentSemantic.Copy)] - NSDictionary ExtraInfo { get; set; } - } - - // @interface DDLogEvent : NSObject - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc10DDLogEvent")] - [DisableDefaultCtor] - interface DDLogEvent - { - [Export ("date", ArgumentSemantic.Copy)] - NSDate Date { get; } - - [Export ("status")] - DDLogEventStatus Status { get; } - - // One of the two properties worth writing to: redacting a message in place is the common - // reason to install a log mapper at all. - [Export ("message")] - string Message { get; set; } - - [NullAllowed, Export ("error", ArgumentSemantic.Strong)] - DDLogEventError Error { get; } - - [Export ("serviceName")] - string ServiceName { get; } - - [Export ("environment")] - string Environment { get; } - - [Export ("loggerName")] - string LoggerName { get; } - - [Export ("loggerVersion")] - string LoggerVersion { get; } - - [NullAllowed, Export ("threadName")] - string ThreadName { get; } - - [Export ("applicationVersion")] - string ApplicationVersion { get; } - - [Export ("applicationBuildNumber")] - string ApplicationBuildNumber { get; } - - [NullAllowed, Export ("buildId")] - string BuildId { get; } - - [NullAllowed, Export ("variant")] - string Variant { get; } - - [Export ("dd", ArgumentSemantic.Strong)] - DDLogEventDd Dd { get; } - - [Export ("os", ArgumentSemantic.Strong)] - DDLogEventOperatingSystem Os { get; } - - [Export ("userInfo", ArgumentSemantic.Strong)] - DDLogEventUserInfo UserInfo { get; } - - [NullAllowed, Export ("networkConnectionInfo", ArgumentSemantic.Strong)] - DDLogEventNetworkConnectionInfo NetworkConnectionInfo { get; } - - [NullAllowed, Export ("mobileCarrierInfo", ArgumentSemantic.Strong)] - DDLogEventCarrierInfo MobileCarrierInfo { get; } - - [Export ("attributes", ArgumentSemantic.Strong)] - DDLogEventAttributes Attributes { get; } - - [NullAllowed, Export ("tags", ArgumentSemantic.Copy)] - string[] Tags { get; set; } - } - - // --------------------------------------------------------------------------------------- - // Types added between dd-sdk-ios 2.17.0 and 2.30.2. - // - // The SwiftUI predicates come from the SwiftUI auto-tracking added in 2.29.0, the account - // types from the account-info API in the same release, and the rest is RUM event-model - // detail reachable through the event mappers. - // --------------------------------------------------------------------------------------- - - // @interface DDDefaultSwiftUIRUMActionsPredicate - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc35DDDefaultSwiftUIRUMActionsPredicate")] - interface DDDefaultSwiftUIRUMActionsPredicate : DDSwiftUIRUMActionsPredicate - { - [Export ("initWithIsLegacyDetectionEnabled:")] - NativeHandle Constructor (bool isLegacyDetectionEnabled); - - [Export ("rumActionWith:")] - DDRUMAction RumActionWith (string componentName); - } - - // @interface DDDefaultSwiftUIRUMViewsPredicate - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc33DDDefaultSwiftUIRUMViewsPredicate")] - interface DDDefaultSwiftUIRUMViewsPredicate : DDSwiftUIRUMViewsPredicate - { - [Export ("rumViewFor:")] - DDRUMView RumViewFor (string extractedViewName); - } - - // @interface DDInternalLogger - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc16DDInternalLogger")] - interface DDInternalLogger - { - [Static] - [Export ("consolePrint:")] - void ConsolePrint (string message); - - [Static] - [Export ("telemetryDebugWithId:message:")] - void TelemetryDebugWithId (string id, string message); - - [Static] - [Export ("telemetryErrorWithId:message:kind:stack:")] - void TelemetryErrorWithId (string id, string message, [NullAllowed] string kind, [NullAllowed] string stack); - } - - // @interface DDLogEventAccountInfo - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc21DDLogEventAccountInfo")] - [DisableDefaultCtor] - interface DDLogEventAccountInfo - { - [Export ("id", ArgumentSemantic.Copy)] - string Id { get; } - - [Export ("name", ArgumentSemantic.Copy)] - string Name { get; } - - [Export ("extraInfo", ArgumentSemantic.Copy)] - NSDictionary ExtraInfo { get; set; } - } - - // @interface DDRUMActionEventRUMAccount - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc26DDRUMActionEventRUMAccount")] - [DisableDefaultCtor] - interface DDRUMActionEventRUMAccount - { - [Export ("id", ArgumentSemantic.Copy)] - string Id { get; } - - [Export ("name", ArgumentSemantic.Copy)] - string Name { get; } - - [Export ("accountInfo", ArgumentSemantic.Copy)] - NSDictionary AccountInfo { get; set; } - } - - // @interface DDRUMErrorEventRUMAccount - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc25DDRUMErrorEventRUMAccount")] - [DisableDefaultCtor] - interface DDRUMErrorEventRUMAccount - { - [Export ("id", ArgumentSemantic.Copy)] - string Id { get; } - - [Export ("name", ArgumentSemantic.Copy)] - string Name { get; } - - [Export ("accountInfo", ArgumentSemantic.Copy)] - NSDictionary AccountInfo { get; set; } - } - - // @interface DDRUMLongTaskEventDDProfiling - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc29DDRUMLongTaskEventDDProfiling")] - [DisableDefaultCtor] - interface DDRUMLongTaskEventDDProfiling - { - [Export ("errorReason")] - DDRUMLongTaskEventDDProfilingErrorReason ErrorReason { get; } - - [Export ("status")] - DDRUMLongTaskEventDDProfilingStatus Status { get; } - } - - // @interface DDRUMLongTaskEventRUMAccount - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc28DDRUMLongTaskEventRUMAccount")] - [DisableDefaultCtor] - interface DDRUMLongTaskEventRUMAccount - { - [Export ("id", ArgumentSemantic.Copy)] - string Id { get; } - - [Export ("name", ArgumentSemantic.Copy)] - string Name { get; } - - [Export ("accountInfo", ArgumentSemantic.Copy)] - NSDictionary AccountInfo { get; set; } - } - - // @interface DDRUMResourceEventRUMAccount - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc28DDRUMResourceEventRUMAccount")] - [DisableDefaultCtor] - interface DDRUMResourceEventRUMAccount - { - [Export ("id", ArgumentSemantic.Copy)] - string Id { get; } - - [Export ("name", ArgumentSemantic.Copy)] - string Name { get; } - - [Export ("accountInfo", ArgumentSemantic.Copy)] - NSDictionary AccountInfo { get; set; } - } - - // @interface DDRUMResourceEventResourceWorker - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc32DDRUMResourceEventResourceWorker")] - [DisableDefaultCtor] - interface DDRUMResourceEventResourceWorker - { - [Export ("duration", ArgumentSemantic.Strong)] - NSNumber Duration { get; } - - [Export ("start", ArgumentSemantic.Strong)] - NSNumber Start { get; } - } - - // @interface DDRUMViewEventDDCLS - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc19DDRUMViewEventDDCLS")] - [DisableDefaultCtor] - interface DDRUMViewEventDDCLS - { - [Export ("devicePixelRatio", ArgumentSemantic.Strong)] - NSNumber DevicePixelRatio { get; } - } - - // @interface DDRUMViewEventDDProfiling - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc25DDRUMViewEventDDProfiling")] - [DisableDefaultCtor] - interface DDRUMViewEventDDProfiling - { - [Export ("errorReason")] - DDRUMViewEventDDProfilingErrorReason ErrorReason { get; } - - [Export ("status")] - DDRUMViewEventDDProfilingStatus Status { get; } - } - - // @interface DDRUMViewEventRUMAccount - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc24DDRUMViewEventRUMAccount")] - [DisableDefaultCtor] - interface DDRUMViewEventRUMAccount - { - [Export ("id", ArgumentSemantic.Copy)] - string Id { get; } - - [Export ("name", ArgumentSemantic.Copy)] - string Name { get; } - - [Export ("accountInfo", ArgumentSemantic.Copy)] - NSDictionary AccountInfo { get; set; } - } - - // @interface DDRUMViewEventViewAccessibility - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc31DDRUMViewEventViewAccessibility")] - [DisableDefaultCtor] - interface DDRUMViewEventViewAccessibility - { - [Export ("assistiveSwitchEnabled", ArgumentSemantic.Strong)] - NSNumber AssistiveSwitchEnabled { get; } - - [Export ("assistiveTouchEnabled", ArgumentSemantic.Strong)] - NSNumber AssistiveTouchEnabled { get; } - - [Export ("boldTextEnabled", ArgumentSemantic.Strong)] - NSNumber BoldTextEnabled { get; } - - [Export ("buttonShapesEnabled", ArgumentSemantic.Strong)] - NSNumber ButtonShapesEnabled { get; } - - [Export ("closedCaptioningEnabled", ArgumentSemantic.Strong)] - NSNumber ClosedCaptioningEnabled { get; } - - [Export ("grayscaleEnabled", ArgumentSemantic.Strong)] - NSNumber GrayscaleEnabled { get; } - - [Export ("increaseContrastEnabled", ArgumentSemantic.Strong)] - NSNumber IncreaseContrastEnabled { get; } - - [Export ("invertColorsEnabled", ArgumentSemantic.Strong)] - NSNumber InvertColorsEnabled { get; } - - [Export ("monoAudioEnabled", ArgumentSemantic.Strong)] - NSNumber MonoAudioEnabled { get; } - - [Export ("onOffSwitchLabelsEnabled", ArgumentSemantic.Strong)] - NSNumber OnOffSwitchLabelsEnabled { get; } - - [Export ("reduceMotionEnabled", ArgumentSemantic.Strong)] - NSNumber ReduceMotionEnabled { get; } - - [Export ("reduceTransparencyEnabled", ArgumentSemantic.Strong)] - NSNumber ReduceTransparencyEnabled { get; } - - [Export ("reducedAnimationsEnabled", ArgumentSemantic.Strong)] - NSNumber ReducedAnimationsEnabled { get; } - - [Export ("screenReaderEnabled", ArgumentSemantic.Strong)] - NSNumber ScreenReaderEnabled { get; } - - [Export ("shakeToUndoEnabled", ArgumentSemantic.Strong)] - NSNumber ShakeToUndoEnabled { get; } - - [Export ("shouldDifferentiateWithoutColor", ArgumentSemantic.Strong)] - NSNumber ShouldDifferentiateWithoutColor { get; } - - [Export ("singleAppModeEnabled", ArgumentSemantic.Strong)] - NSNumber SingleAppModeEnabled { get; } - - [Export ("speakScreenEnabled", ArgumentSemantic.Strong)] - NSNumber SpeakScreenEnabled { get; } - - [Export ("speakSelectionEnabled", ArgumentSemantic.Strong)] - NSNumber SpeakSelectionEnabled { get; } - - [Export ("textSize", ArgumentSemantic.Copy)] - string TextSize { get; } - - [Export ("videoAutoplayEnabled", ArgumentSemantic.Strong)] - NSNumber VideoAutoplayEnabled { get; } - } - - // @interface DDRUMViewEventViewPerformance - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc29DDRUMViewEventViewPerformance")] - [DisableDefaultCtor] - interface DDRUMViewEventViewPerformance - { - [Export ("cls", ArgumentSemantic.Strong)] - DDRUMViewEventViewPerformanceCLS Cls { get; } - - [Export ("fbc", ArgumentSemantic.Strong)] - DDRUMViewEventViewPerformanceFBC Fbc { get; } - - [Export ("fcp", ArgumentSemantic.Strong)] - DDRUMViewEventViewPerformanceFCP Fcp { get; } - - [Export ("fid", ArgumentSemantic.Strong)] - DDRUMViewEventViewPerformanceFID Fid { get; } - - [Export ("inp", ArgumentSemantic.Strong)] - DDRUMViewEventViewPerformanceINP Inp { get; } - - [Export ("lcp", ArgumentSemantic.Strong)] - DDRUMViewEventViewPerformanceLCP Lcp { get; } - } - - // @interface DDRUMViewEventViewPerformanceCLS - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc32DDRUMViewEventViewPerformanceCLS")] - [DisableDefaultCtor] - interface DDRUMViewEventViewPerformanceCLS - { - [Export ("currentRect", ArgumentSemantic.Strong)] - DDRUMViewEventViewPerformanceCLSCurrentRect CurrentRect { get; } - - [Export ("previousRect", ArgumentSemantic.Strong)] - DDRUMViewEventViewPerformanceCLSPreviousRect PreviousRect { get; } - - [Export ("score", ArgumentSemantic.Strong)] - NSNumber Score { get; } - - [Export ("targetSelector", ArgumentSemantic.Copy)] - string TargetSelector { get; } - - [Export ("timestamp", ArgumentSemantic.Strong)] - NSNumber Timestamp { get; } - } - - // @interface DDRUMViewEventViewPerformanceCLSCurrentRect - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc43DDRUMViewEventViewPerformanceCLSCurrentRect")] - [DisableDefaultCtor] - interface DDRUMViewEventViewPerformanceCLSCurrentRect - { - [Export ("height", ArgumentSemantic.Strong)] - NSNumber Height { get; } - - [Export ("width", ArgumentSemantic.Strong)] - NSNumber Width { get; } - - [Export ("x", ArgumentSemantic.Strong)] - NSNumber X { get; } - - [Export ("y", ArgumentSemantic.Strong)] - NSNumber Y { get; } - } - - // @interface DDRUMViewEventViewPerformanceCLSPreviousRect - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc44DDRUMViewEventViewPerformanceCLSPreviousRect")] - [DisableDefaultCtor] - interface DDRUMViewEventViewPerformanceCLSPreviousRect - { - [Export ("height", ArgumentSemantic.Strong)] - NSNumber Height { get; } - - [Export ("width", ArgumentSemantic.Strong)] - NSNumber Width { get; } - - [Export ("x", ArgumentSemantic.Strong)] - NSNumber X { get; } - - [Export ("y", ArgumentSemantic.Strong)] - NSNumber Y { get; } - } - - // @interface DDRUMViewEventViewPerformanceFBC - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc32DDRUMViewEventViewPerformanceFBC")] - [DisableDefaultCtor] - interface DDRUMViewEventViewPerformanceFBC - { - [Export ("timestamp", ArgumentSemantic.Strong)] - NSNumber Timestamp { get; } - } - - // @interface DDRUMViewEventViewPerformanceFCP - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc32DDRUMViewEventViewPerformanceFCP")] - [DisableDefaultCtor] - interface DDRUMViewEventViewPerformanceFCP - { - [Export ("timestamp", ArgumentSemantic.Strong)] - NSNumber Timestamp { get; } - } - - // @interface DDRUMViewEventViewPerformanceFID - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc32DDRUMViewEventViewPerformanceFID")] - [DisableDefaultCtor] - interface DDRUMViewEventViewPerformanceFID - { - [Export ("duration", ArgumentSemantic.Strong)] - NSNumber Duration { get; } - - [Export ("targetSelector", ArgumentSemantic.Copy)] - string TargetSelector { get; } - - [Export ("timestamp", ArgumentSemantic.Strong)] - NSNumber Timestamp { get; } - } - - // @interface DDRUMViewEventViewPerformanceINP - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc32DDRUMViewEventViewPerformanceINP")] - [DisableDefaultCtor] - interface DDRUMViewEventViewPerformanceINP - { - [Export ("duration", ArgumentSemantic.Strong)] - NSNumber Duration { get; } - - [Export ("targetSelector", ArgumentSemantic.Copy)] - string TargetSelector { get; } - - [Export ("timestamp", ArgumentSemantic.Strong)] - NSNumber Timestamp { get; } - } - - // @interface DDRUMViewEventViewPerformanceLCP - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc32DDRUMViewEventViewPerformanceLCP")] - [DisableDefaultCtor] - interface DDRUMViewEventViewPerformanceLCP - { - [Export ("resourceUrl", ArgumentSemantic.Copy)] - string ResourceUrl { get; set; } - - [Export ("targetSelector", ArgumentSemantic.Copy)] - string TargetSelector { get; } - - [Export ("timestamp", ArgumentSemantic.Strong)] - NSNumber Timestamp { get; } - } - - // @interface DDRUMViewEventViewSlowFrames - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc28DDRUMViewEventViewSlowFrames")] - [DisableDefaultCtor] - interface DDRUMViewEventViewSlowFrames - { - [Export ("duration", ArgumentSemantic.Strong)] - NSNumber Duration { get; } - - [Export ("start", ArgumentSemantic.Strong)] - NSNumber Start { get; } - } - - // @interface DDRUMVitalEventRUMAccount - [BaseType (typeof(NSObject), Name = "_TtC11DatadogObjc25DDRUMVitalEventRUMAccount")] - [DisableDefaultCtor] - interface DDRUMVitalEventRUMAccount - { - [Export ("id", ArgumentSemantic.Copy)] - string Id { get; } - - [Export ("name", ArgumentSemantic.Copy)] - string Name { get; } - - [Export ("accountInfo", ArgumentSemantic.Copy)] - NSDictionary AccountInfo { get; set; } - } - - partial interface IDDSwiftUIRUMActionsPredicate {} - - // @protocol DDSwiftUIRUMActionsPredicate - // [Model] like the UIKit predicates, so an app can subclass the generated class instead of - // implementing the interface. - [Model, Protocol (Name = "_TtP11DatadogObjc28DDSwiftUIRUMActionsPredicate_")] - [BaseType (typeof(NSObject))] - interface DDSwiftUIRUMActionsPredicate - { - // @required -(DDRUMAction * _Nullable)rumActionWith:(NSString * _Nonnull)componentName; - [Abstract] - [Export ("rumActionWith:")] - [return: NullAllowed] - DDRUMAction RumActionWith (string componentName); - } - - partial interface IDDSwiftUIRUMViewsPredicate {} - - // @protocol DDSwiftUIRUMViewsPredicate - // [Model] like the UIKit predicates, so an app can subclass the generated class instead of - // implementing the interface. - [Model, Protocol (Name = "_TtP11DatadogObjc26DDSwiftUIRUMViewsPredicate_")] - [BaseType (typeof(NSObject))] - interface DDSwiftUIRUMViewsPredicate - { - // @required -(DDRUMView * _Nullable)rumViewFor:(NSString * _Nonnull)extractedViewName; - [Abstract] - [Export ("rumViewFor:")] - [return: NullAllowed] - DDRUMView RumViewFor (string extractedViewName); - } -} diff --git a/src/DatadogNet.Objc.iOS/DatadogNet.Objc.iOS.csproj b/src/DatadogNet.Objc.iOS/DatadogNet.Objc.iOS.csproj index 7fd6c44..1fc3015 100644 --- a/src/DatadogNet.Objc.iOS/DatadogNet.Objc.iOS.csproj +++ b/src/DatadogNet.Objc.iOS/DatadogNet.Objc.iOS.csproj @@ -1,36 +1,58 @@ + - DatadogObjc - Objc - .NET for iOS / .NET MAUI bindings for the Datadog iOS SDK's DatadogObjc framework - the package to install. Exposes the whole DD* API from C#: SDK configuration and lifecycle, RUM views/actions/resources/errors, Logs, Trace, Session Replay and tracing-header propagation, and pulls in every feature module it needs. Built against dd-sdk-ios $(DatadogNativeVersion). Add DatadogNet.CrashReporting.iOS for crash reporting and DatadogNet.WebViewTracking.iOS for hybrid apps. - datadog;rum;logs;tracing;session-replay + net9 + net8.0-ios18.0;net9.0-ios18.0 + net10.0-ios26.0 + false + false + 12.2 + + + false + false + + $(NoWarn);NU5128 + + true + DatadogNet.Objc.iOS + Compatibility meta-package for apps upgrading from DatadogNet.Objc.iOS 2.x. + Dependency-only compatibility meta-package for the Datadog iOS SDK bindings. dd-sdk-ios 3.0 removed the DatadogObjc framework and moved its DD* types into the product modules, so this package now just pulls in DatadogNet.Core.iOS, DatadogNet.RUM.iOS, DatadogNet.Logs.iOS, DatadogNet.Trace.iOS and DatadogNet.SessionReplay.iOS. Namespaces changed with the move, so code needs updating - see the migration table in the README. New apps should reference the product modules directly. + datadog;migration;meta-package;iOS;MAUI - + + + + + + - + - - - + + diff --git a/src/DatadogNet.Profiling.iOS/ApiDefinitions.cs b/src/DatadogNet.Profiling.iOS/ApiDefinitions.cs new file mode 100644 index 0000000..c9369eb --- /dev/null +++ b/src/DatadogNet.Profiling.iOS/ApiDefinitions.cs @@ -0,0 +1,13 @@ +// DatadogProfiling exposes no Objective-C API in dd-sdk-ios 3.14.0. +// +// Every type in it is Swift-only, so there is nothing for Objective Sharpie to project and nothing +// a C# caller can invoke. The package exists to ship the native framework - so that the module is +// present if another Datadog framework starts linking it, and so that adding the API later is a +// version bump rather than a new package id. +// +// This file is deliberately empty apart from the namespace: a binding project does not build +// without an ObjcBindingApiDefinition. + +namespace DatadogProfiling +{ +} diff --git a/src/DatadogNet.Profiling.iOS/DatadogNet.Profiling.iOS.csproj b/src/DatadogNet.Profiling.iOS/DatadogNet.Profiling.iOS.csproj new file mode 100644 index 0000000..04b5f33 --- /dev/null +++ b/src/DatadogNet.Profiling.iOS/DatadogNet.Profiling.iOS.csproj @@ -0,0 +1,17 @@ + + + + DatadogProfiling + Profiling + .NET for iOS / .NET MAUI bindings for the native Datadog iOS SDK's DatadogProfiling framework: continuous profiling of the app's threads. Built against dd-sdk-ios $(DatadogNativeVersion). NOTE: upstream exposes no Objective-C API for this module yet, so it ships the native framework but no callable C# surface - see the package README. + datadog-profiling;profiler + + + + + + + + + + diff --git a/src/DatadogNet.Objc.iOS/Additions/DDRUMMonitor.Ergonomics.cs b/src/DatadogNet.RUM.iOS/Additions/DDRUMMonitor.Ergonomics.cs similarity index 67% rename from src/DatadogNet.Objc.iOS/Additions/DDRUMMonitor.Ergonomics.cs rename to src/DatadogNet.RUM.iOS/Additions/DDRUMMonitor.Ergonomics.cs index 2c274e8..14d4eab 100644 --- a/src/DatadogNet.Objc.iOS/Additions/DDRUMMonitor.Ergonomics.cs +++ b/src/DatadogNet.RUM.iOS/Additions/DDRUMMonitor.Ergonomics.cs @@ -1,13 +1,14 @@ -// Nullable annotations are enabled per file rather than for the project: the generated -// binding sources are not written against a nullable context, and switching the whole -// project over would bury real warnings here under hundreds of generated ones. +// Nullable annotations are enabled per file rather than for the project: the generated binding +// sources are not written against a nullable context, and switching the whole project over would +// bury real warnings here under hundreds of generated ones. #nullable enable using System; using System.Collections.Generic; +using DatadogCore; using Foundation; -namespace DatadogObjc +namespace DatadogRUM { public partial class DDRUMMonitor { @@ -17,20 +18,18 @@ public partial class DDRUMMonitor /// Attributes attached to the view. /// A scope that stops the view when disposed. /// - /// The bound API is a pair of calls that have to be matched by key, and a view left open by - /// an early return or an exception stays open for the rest of the session - every - /// subsequent action and error is attributed to it. A statement - /// makes that structurally impossible: + /// The bound API is a pair of calls matched by key, and a view left open by an early return + /// or an exception stays open for the rest of the session - every subsequent action and + /// error is attributed to it. A statement makes that structurally + /// impossible: /// /// using (RUM.Monitor.StartView ("checkout")) { /// // ... work; the view is stopped however this block is left /// } /// - /// The scope stops the view with no attributes. To attach attributes at stop time - a - /// checkout total, say, which is not known when the view opens - call - /// yourself instead of - /// disposing the scope; disposing it afterwards is harmless, since the scope stops only - /// once. + /// The scope stops the view with no attributes. To attach attributes at stop time, call + /// yourself; disposing + /// the scope afterwards is harmless, since it stops only once. /// public RUMViewScope StartView (string key, string? name = null, IReadOnlyDictionary? attributes = null) { @@ -60,10 +59,6 @@ public void AddAction (DDRUMActionType type, string name, IReadOnlyDictionaryRecords an error from a message. - /// What went wrong. - /// Where the error came from. Defaults to . - /// An optional stack trace. - /// Attributes attached to the error. public void AddError ( string message, DDRUMErrorSource source = DDRUMErrorSource.Source, @@ -76,12 +71,12 @@ public void AddError ( AddErrorWithMessage (message, stack, source, DatadogAttributes.From (attributes)); } - /// Records an error from a . + /// Records an error from an . /// /// The bound AddErrorWithError takes an , which a managed /// exception is not. This reports the exception's type and message, and passes - /// as the stack so the error is grouped by where it was - /// thrown rather than lumped together with every other error of the same message. + /// as the stack so errors group by where they were + /// thrown rather than by message alone. /// public void AddError ( Exception exception, @@ -97,11 +92,32 @@ public void AddError ( source, DatadogAttributes.From (attributes)); } + + /// Adds attributes to the active view, which propagate to its child events. + /// + /// New in dd-sdk-ios 3.0: view-level attributes are inherited by the resources, actions, + /// errors and long tasks recorded while the view is active, so they no longer have to be + /// repeated on every call. + /// + public void AddViewAttributes (IReadOnlyDictionary attributes) + { + if (attributes is null) + throw new ArgumentNullException (nameof (attributes)); + + AddViewAttributes (DatadogAttributes.From (attributes)); + } + + /// Removes view-level attributes previously added. + public void RemoveViewAttributes (params string[] keys) + { + if (keys is null) + throw new ArgumentNullException (nameof (keys)); + + RemoveViewAttributesForKeys (keys); + } } - /// - /// Keeps a RUM view open for the lifetime of a block. - /// + /// Keeps a RUM view open for the lifetime of a block. /// /// Returned by . Disposing stops the view; disposing again /// does nothing, so stopping the view by hand first and then letting the scope fall out of diff --git a/src/DatadogNet.RUM.iOS/ApiDefinitions.cs b/src/DatadogNet.RUM.iOS/ApiDefinitions.cs index e69de29..e2cc4f7 100644 --- a/src/DatadogNet.RUM.iOS/ApiDefinitions.cs +++ b/src/DatadogNet.RUM.iOS/ApiDefinitions.cs @@ -0,0 +1,7401 @@ +using System; +using DatadogInternal; +using Foundation; +using ObjCRuntime; +using UIKit; + +namespace DatadogRUM +{ + partial interface IDDNetworkSettledResourcePredicate {} + + // @protocol DDNetworkSettledResourcePredicate + [Model, Protocol] + [BaseType (typeof(NSObject))] + interface DDNetworkSettledResourcePredicate + { + [Abstract] + [Export ("isInitialResourceFrom:")] + bool IsInitialResourceFrom (DDTNSResourceParams resourceParams); + } + + partial interface IDDNextViewActionPredicate {} + + // @protocol DDNextViewActionPredicate + [Model, Protocol] + [BaseType (typeof(NSObject))] + interface DDNextViewActionPredicate + { + [Abstract] + [Export ("isLastActionFrom:")] + bool IsLastActionFrom (DDINVActionParams actionParams); + } + + partial interface IDDSwiftUIRUMActionsPredicate {} + + // @protocol DDSwiftUIRUMActionsPredicate + [Model, Protocol] + [BaseType (typeof(NSObject))] + interface DDSwiftUIRUMActionsPredicate + { + [Abstract] + [Export ("rumActionWith:")] + DDRUMAction RumActionWith (string componentName); + } + + partial interface IDDSwiftUIRUMViewsPredicate {} + + // @protocol DDSwiftUIRUMViewsPredicate + [Model, Protocol] + [BaseType (typeof(NSObject))] + interface DDSwiftUIRUMViewsPredicate + { + [Abstract] + [Export ("rumViewFor:")] + DDRUMView RumViewFor (string extractedViewName); + } + + partial interface IDDUIKitRUMActionsPredicate {} + + // @protocol DDUIKitRUMActionsPredicate + [Model, Protocol] + [BaseType (typeof(NSObject))] + interface DDUIKitRUMActionsPredicate + { + } + + partial interface IDDUIKitRUMViewsPredicate {} + + // @protocol DDUIKitRUMViewsPredicate + [Model, Protocol] + [BaseType (typeof(NSObject))] + interface DDUIKitRUMViewsPredicate + { + [Abstract] + [Export ("rumViewFor:")] + DDRUMView RumViewFor (UIViewController viewController); + } + + partial interface IDDUIPressRUMActionsPredicate {} + + // @protocol DDUIPressRUMActionsPredicate + [Model, Protocol] + [BaseType (typeof(NSObject))] + interface DDUIPressRUMActionsPredicate + { + [Abstract] + [Export ("rumActionWithPress:targetView:")] + DDRUMAction RumActionWithPress (UIPressType type, UIView targetView); + } + + partial interface IDDUITouchRUMActionsPredicate {} + + // @protocol DDUITouchRUMActionsPredicate + [Model, Protocol] + [BaseType (typeof(NSObject))] + interface DDUITouchRUMActionsPredicate + { + [Abstract] + [Export ("rumActionWithTargetView:")] + DDRUMAction RumActionWithTargetView (UIView targetView); + } + + // @interface DDDefaultSwiftUIRUMActionsPredicate + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDDefaultSwiftUIRUMActionsPredicate : DDSwiftUIRUMActionsPredicate + { + [Export ("initWithIsLegacyDetectionEnabled:")] + NativeHandle Constructor (bool isLegacyDetectionEnabled); + + [Export ("rumActionWith:")] + DDRUMAction RumActionWith (string componentName); + } + + // @interface DDDefaultSwiftUIRUMViewsPredicate + [BaseType (typeof(NSObject))] + interface DDDefaultSwiftUIRUMViewsPredicate : DDSwiftUIRUMViewsPredicate + { + [Export ("rumViewFor:")] + DDRUMView RumViewFor (string extractedViewName); + } + + // @interface DDDefaultUIKitRUMActionsPredicate + [BaseType (typeof(NSObject))] + interface DDDefaultUIKitRUMActionsPredicate : DDUIKitRUMActionsPredicate + { + [Export ("rumActionWithTargetView:")] + DDRUMAction RumActionWithTargetView (UIView targetView); + } + + // @interface DDDefaultUIKitRUMViewsPredicate + [BaseType (typeof(NSObject))] + interface DDDefaultUIKitRUMViewsPredicate : DDUIKitRUMViewsPredicate + { + [Export ("rumViewFor:")] + DDRUMView RumViewFor (UIViewController viewController); + } + + // @interface DDINVActionParams + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDINVActionParams + { + [Export ("type")] + DDRUMActionType Type { get; } + + [Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("timeToNextView")] + double TimeToNextView { get; } + + [Export ("nextViewName", ArgumentSemantic.Copy)] + string NextViewName { get; } + } + + // @interface DDOperationOptions + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDOperationOptions + { + } + + // @interface DDProfilingOptions + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDProfilingOptions + { + [Export ("initWithSampleRate:")] + NativeHandle Constructor (float sampleRate); + } + + // @interface DDRUM + [BaseType (typeof(NSObject))] + interface DDRUM + { + [Static] + [Export ("enableWith:")] + void EnableWith (DDRUMConfiguration configuration); + + [Static] + [Export ("enableWith:instanceName:")] + void EnableWith (DDRUMConfiguration configuration, [NullAllowed] string instanceName); + } + + // @interface DDRUMAction + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMAction + { + [Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("attributes", ArgumentSemantic.Copy)] + NSDictionary Attributes { get; } + + [Export ("initWithName:attributes:")] + NativeHandle Constructor (string name, NSDictionary attributes); + } + + // @interface DDRUMActionEvent + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEvent + { + [Export ("dd", ArgumentSemantic.Strong)] + DDRUMActionEventDD Dd { get; } + + [NullAllowed, Export ("account", ArgumentSemantic.Strong)] + DDRUMActionEventRUMAccount Account { get; } + + [Export ("action", ArgumentSemantic.Strong)] + DDRUMActionEventAction Action { get; } + + [Export ("application", ArgumentSemantic.Strong)] + DDRUMActionEventApplication Application { get; } + + [NullAllowed, Export ("buildId", ArgumentSemantic.Copy)] + string BuildId { get; } + + [NullAllowed, Export ("buildVersion", ArgumentSemantic.Copy)] + string BuildVersion { get; } + + [NullAllowed, Export ("ciTest", ArgumentSemantic.Strong)] + DDRUMActionEventRUMCITest CiTest { get; } + + [NullAllowed, Export ("connectivity", ArgumentSemantic.Strong)] + DDRUMActionEventRUMConnectivity Connectivity { get; } + + [NullAllowed, Export ("container", ArgumentSemantic.Strong)] + DDRUMActionEventContainer Container { get; } + + [NullAllowed, Export ("context", ArgumentSemantic.Strong)] + DDRUMActionEventRUMEventAttributes Context { get; } + + [Export ("date", ArgumentSemantic.Strong)] + NSNumber Date { get; } + + [NullAllowed, Export ("ddtags", ArgumentSemantic.Copy)] + string Ddtags { get; } + + [NullAllowed, Export ("device", ArgumentSemantic.Strong)] + DDRUMActionEventDevice Device { get; } + + [NullAllowed, Export ("display", ArgumentSemantic.Strong)] + DDRUMActionEventDisplay Display { get; } + + [NullAllowed, Export ("os", ArgumentSemantic.Strong)] + DDRUMActionEventOperatingSystem Os { get; } + + [NullAllowed, Export ("service", ArgumentSemantic.Copy)] + string Service { get; } + + [Export ("session", ArgumentSemantic.Strong)] + DDRUMActionEventSession Session { get; } + + [Export ("source")] + DDRUMActionEventSource Source { get; } + + [NullAllowed, Export ("stream", ArgumentSemantic.Strong)] + DDRUMActionEventStream Stream { get; } + + [NullAllowed, Export ("synthetics", ArgumentSemantic.Strong)] + DDRUMActionEventRUMSyntheticsTest Synthetics { get; } + + [NullAllowed, Export ("tab", ArgumentSemantic.Strong)] + DDRUMActionEventTAB Tab { get; } + + [Export ("type", ArgumentSemantic.Copy)] + string Type { get; } + + [NullAllowed, Export ("usr", ArgumentSemantic.Strong)] + DDRUMActionEventRUMUser Usr { get; } + + [NullAllowed, Export ("version", ArgumentSemantic.Copy)] + string Version { get; } + + [Export ("view", ArgumentSemantic.Strong)] + DDRUMActionEventView View { get; } + } + + // @interface DDRUMActionEventAction + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventAction + { + [NullAllowed, Export ("crash", ArgumentSemantic.Strong)] + DDRUMActionEventActionCrash Crash { get; } + + [NullAllowed, Export ("error", ArgumentSemantic.Strong)] + DDRUMActionEventActionError Error { get; } + + [NullAllowed, Export ("frustration", ArgumentSemantic.Strong)] + DDRUMActionEventActionFrustration Frustration { get; } + + [NullAllowed, Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("loadingTime", ArgumentSemantic.Strong)] + NSNumber LoadingTime { get; } + + [NullAllowed, Export ("longTask", ArgumentSemantic.Strong)] + DDRUMActionEventActionLongTask LongTask { get; } + + [NullAllowed, Export ("resource", ArgumentSemantic.Strong)] + DDRUMActionEventActionResource Resource { get; } + + [NullAllowed, Export ("target", ArgumentSemantic.Strong)] + DDRUMActionEventActionTarget Target { get; } + + [Export ("type")] + DDRUMActionEventActionActionType Type { get; } + } + + // @interface DDRUMActionEventActionCrash + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventActionCrash + { + [Export ("count", ArgumentSemantic.Strong)] + NSNumber Count { get; } + } + + // @interface DDRUMActionEventActionError + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventActionError + { + [Export ("count", ArgumentSemantic.Strong)] + NSNumber Count { get; } + } + + // @interface DDRUMActionEventActionFrustration + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventActionFrustration + { + [Export ("type", ArgumentSemantic.Copy)] + NSNumber[] Type { get; } + } + + // @interface DDRUMActionEventActionLongTask + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventActionLongTask + { + [Export ("count", ArgumentSemantic.Strong)] + NSNumber Count { get; } + } + + // @interface DDRUMActionEventActionResource + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventActionResource + { + [Export ("count", ArgumentSemantic.Strong)] + NSNumber Count { get; } + } + + // @interface DDRUMActionEventActionTarget + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventActionTarget + { + [Export ("name", ArgumentSemantic.Copy)] + string Name { get; set; } + } + + // @interface DDRUMActionEventApplication + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventApplication + { + [NullAllowed, Export ("currentLocale", ArgumentSemantic.Copy)] + string CurrentLocale { get; } + + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMActionEventContainer + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventContainer + { + [Export ("source")] + DDRUMActionEventContainerSource Source { get; } + + [Export ("view", ArgumentSemantic.Strong)] + DDRUMActionEventContainerView View { get; } + } + + // @interface DDRUMActionEventContainerView + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventContainerView + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMActionEventDD + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventDD + { + [NullAllowed, Export ("action", ArgumentSemantic.Strong)] + DDRUMActionEventDDAction Action { get; } + + [NullAllowed, Export ("browserSdkVersion", ArgumentSemantic.Copy)] + string BrowserSdkVersion { get; } + + [NullAllowed, Export ("configuration", ArgumentSemantic.Strong)] + DDRUMActionEventDDConfiguration Configuration { get; } + + [Export ("formatVersion", ArgumentSemantic.Strong)] + NSNumber FormatVersion { get; } + + [NullAllowed, Export ("sdkName", ArgumentSemantic.Copy)] + string SdkName { get; } + + [NullAllowed, Export ("session", ArgumentSemantic.Strong)] + DDRUMActionEventDDSession Session { get; } + } + + // @interface DDRUMActionEventDDAction + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventDDAction + { + [Export ("nameSource")] + DDRUMActionEventDDActionNameSource NameSource { get; set; } + + [NullAllowed, Export ("position", ArgumentSemantic.Strong)] + DDRUMActionEventDDActionPosition Position { get; } + + [NullAllowed, Export ("target", ArgumentSemantic.Strong)] + DDRUMActionEventDDActionTarget Target { get; } + } + + // @interface DDRUMActionEventDDActionPosition + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventDDActionPosition + { + [Export ("x", ArgumentSemantic.Strong)] + NSNumber X { get; } + + [Export ("y", ArgumentSemantic.Strong)] + NSNumber Y { get; } + } + + // @interface DDRUMActionEventDDActionTarget + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventDDActionTarget + { + [NullAllowed, Export ("composedPathSelector", ArgumentSemantic.Copy)] + string ComposedPathSelector { get; } + + [NullAllowed, Export ("height", ArgumentSemantic.Strong)] + NSNumber Height { get; } + + [NullAllowed, Export ("permanentId", ArgumentSemantic.Copy)] + string PermanentId { get; } + + [NullAllowed, Export ("selector", ArgumentSemantic.Copy)] + string SelectorName { get; } + + [NullAllowed, Export ("width", ArgumentSemantic.Strong)] + NSNumber Width { get; } + } + + // @interface DDRUMActionEventDDConfiguration + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventDDConfiguration + { + [NullAllowed, Export ("profilingSampleRate", ArgumentSemantic.Strong)] + NSNumber ProfilingSampleRate { get; } + + [NullAllowed, Export ("sessionReplaySampleRate", ArgumentSemantic.Strong)] + NSNumber SessionReplaySampleRate { get; } + + [Export ("sessionSampleRate", ArgumentSemantic.Strong)] + NSNumber SessionSampleRate { get; } + + [NullAllowed, Export ("traceSampleRate", ArgumentSemantic.Strong)] + NSNumber TraceSampleRate { get; } + } + + // @interface DDRUMActionEventDDSession + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventDDSession + { + [Export ("plan")] + DDRUMActionEventDDSessionPlan Plan { get; } + + [Export ("sessionPrecondition")] + DDRUMActionEventDDSessionRUMSessionPrecondition SessionPrecondition { get; } + } + + // @interface DDRUMActionEventDevice + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventDevice + { + [NullAllowed, Export ("architecture", ArgumentSemantic.Copy)] + string Architecture { get; } + + [NullAllowed, Export ("batteryLevel", ArgumentSemantic.Strong)] + NSNumber BatteryLevel { get; } + + [NullAllowed, Export ("brand", ArgumentSemantic.Copy)] + string Brand { get; } + + [NullAllowed, Export ("brightnessLevel", ArgumentSemantic.Strong)] + NSNumber BrightnessLevel { get; } + + [NullAllowed, Export ("isLowRam", ArgumentSemantic.Strong)] + NSNumber IsLowRam { get; } + + [NullAllowed, Export ("locale", ArgumentSemantic.Copy)] + string Locale { get; } + + [NullAllowed, Export ("locales", ArgumentSemantic.Copy)] + string[] Locales { get; } + + [NullAllowed, Export ("logicalCpuCount", ArgumentSemantic.Strong)] + NSNumber LogicalCpuCount { get; } + + [NullAllowed, Export ("model", ArgumentSemantic.Copy)] + string Model { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [NullAllowed, Export ("powerSavingMode", ArgumentSemantic.Strong)] + NSNumber PowerSavingMode { get; } + + [NullAllowed, Export ("timeZone", ArgumentSemantic.Copy)] + string TimeZone { get; } + + [NullAllowed, Export ("totalRam", ArgumentSemantic.Strong)] + NSNumber TotalRam { get; } + + [Export ("type")] + DDRUMActionEventDeviceDeviceType Type { get; } + } + + // @interface DDRUMActionEventDisplay + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventDisplay + { + [NullAllowed, Export ("viewport", ArgumentSemantic.Strong)] + DDRUMActionEventDisplayViewport Viewport { get; } + } + + // @interface DDRUMActionEventDisplayViewport + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventDisplayViewport + { + [Export ("height", ArgumentSemantic.Strong)] + NSNumber Height { get; } + + [Export ("width", ArgumentSemantic.Strong)] + NSNumber Width { get; } + } + + // @interface DDRUMActionEventOperatingSystem + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventOperatingSystem + { + [NullAllowed, Export ("build", ArgumentSemantic.Copy)] + string Build { get; } + + [Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("version", ArgumentSemantic.Copy)] + string Version { get; } + + [Export ("versionMajor", ArgumentSemantic.Copy)] + string VersionMajor { get; } + } + + // @interface DDRUMActionEventRUMAccount + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventRUMAccount + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("accountInfo", ArgumentSemantic.Copy)] + NSDictionary AccountInfo { get; set; } + } + + // @interface DDRUMActionEventRUMCITest + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventRUMCITest + { + [Export ("testExecutionId", ArgumentSemantic.Copy)] + string TestExecutionId { get; } + } + + // @interface DDRUMActionEventRUMConnectivity + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventRUMConnectivity + { + [NullAllowed, Export ("cellular", ArgumentSemantic.Strong)] + DDRUMActionEventRUMConnectivityCellular Cellular { get; } + + [Export ("effectiveType")] + DDRUMActionEventRUMConnectivityEffectiveType EffectiveType { get; } + + [NullAllowed, Export ("interfaces", ArgumentSemantic.Copy)] + NSNumber[] Interfaces { get; } + + [Export ("status")] + DDRUMActionEventRUMConnectivityStatus Status { get; } + } + + // @interface DDRUMActionEventRUMConnectivityCellular + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventRUMConnectivityCellular + { + [NullAllowed, Export ("carrierName", ArgumentSemantic.Copy)] + string CarrierName { get; } + + [NullAllowed, Export ("technology", ArgumentSemantic.Copy)] + string Technology { get; } + } + + // @interface DDRUMActionEventRUMEventAttributes + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventRUMEventAttributes + { + [Export ("contextInfo", ArgumentSemantic.Copy)] + NSDictionary ContextInfo { get; set; } + } + + // @interface DDRUMActionEventRUMSyntheticsTest + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventRUMSyntheticsTest + { + [NullAllowed, Export ("injected", ArgumentSemantic.Strong)] + NSNumber Injected { get; } + + [Export ("resultId", ArgumentSemantic.Copy)] + string ResultId { get; } + + [Export ("testId", ArgumentSemantic.Copy)] + string TestId { get; } + + [Export ("syntheticsInfo", ArgumentSemantic.Copy)] + NSDictionary SyntheticsInfo { get; set; } + } + + // @interface DDRUMActionEventRUMUser + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventRUMUser + { + [NullAllowed, Export ("anonymousId", ArgumentSemantic.Copy)] + string AnonymousId { get; } + + [NullAllowed, Export ("email", ArgumentSemantic.Copy)] + string Email { get; } + + [NullAllowed, Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("usrInfo", ArgumentSemantic.Copy)] + NSDictionary UsrInfo { get; set; } + } + + // @interface DDRUMActionEventSession + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventSession + { + [NullAllowed, Export ("hasReplay", ArgumentSemantic.Strong)] + NSNumber HasReplay { get; } + + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [Export ("type")] + DDRUMActionEventSessionRUMSessionType Type { get; } + } + + // @interface DDRUMActionEventStream + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventStream + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMActionEventTAB + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventTAB + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMActionEventView + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMActionEventView + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("inForeground", ArgumentSemantic.Strong)] + NSNumber InForeground { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; set; } + + [NullAllowed, Export ("referrer", ArgumentSemantic.Copy)] + string Referrer { get; set; } + + [Export ("url", ArgumentSemantic.Copy)] + string Url { get; set; } + } + + // @interface DDRUMConfiguration + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMConfiguration + { + [Export ("applicationID", ArgumentSemantic.Copy)] + string ApplicationID { get; } + + [Export ("sessionSampleRate")] + float SessionSampleRate { get; set; } + + [Export ("telemetrySampleRate")] + float TelemetrySampleRate { get; set; } + + [NullAllowed, Export ("uiKitViewsPredicate", ArgumentSemantic.Strong)] + IDDUIKitRUMViewsPredicate UiKitViewsPredicate { get; set; } + + [NullAllowed, Export ("uiKitActionsPredicate", ArgumentSemantic.Strong)] + IDDUIKitRUMActionsPredicate UiKitActionsPredicate { get; set; } + + [NullAllowed, Export ("swiftUIViewsPredicate", ArgumentSemantic.Strong)] + IDDSwiftUIRUMViewsPredicate SwiftUIViewsPredicate { get; set; } + + [NullAllowed, Export ("swiftUIActionsPredicate", ArgumentSemantic.Strong)] + IDDSwiftUIRUMActionsPredicate SwiftUIActionsPredicate { get; set; } + + [Export ("trackMemoryWarnings")] + bool TrackMemoryWarnings { get; set; } + + [Export ("collectAccessibility")] + bool CollectAccessibility { get; set; } + + [Export ("networkSettledResourcePredicate", ArgumentSemantic.Strong)] + IDDNetworkSettledResourcePredicate NetworkSettledResourcePredicate { get; set; } + + [NullAllowed, Export ("nextViewActionPredicate", ArgumentSemantic.Strong)] + IDDNextViewActionPredicate NextViewActionPredicate { get; set; } + + [Export ("trackFrustrations")] + bool TrackFrustrations { get; set; } + + [Export ("trackBackgroundEvents")] + bool TrackBackgroundEvents { get; set; } + + [Export ("trackWatchdogTerminations")] + bool TrackWatchdogTerminations { get; set; } + + [Export ("longTaskThreshold")] + double LongTaskThreshold { get; set; } + + [Export ("appHangThreshold")] + double AppHangThreshold { get; set; } + + [Export ("vitalsUpdateFrequency")] + DDRUMVitalsFrequency VitalsUpdateFrequency { get; set; } + + [NullAllowed, Export ("customEndpoint", ArgumentSemantic.Copy)] + NSUrl CustomEndpoint { get; set; } + + [Export ("trackAnonymousUser")] + bool TrackAnonymousUser { get; set; } + + [Export ("initWithApplicationID:")] + NativeHandle Constructor (string applicationID); + + [Export ("setURLSessionTracking:")] + void SetURLSessionTracking (DDRUMURLSessionTracking tracking); + + [Export ("setViewEventMapper:")] + void SetViewEventMapper (Func mapper); + + [Export ("setResourceEventMapper:")] + void SetResourceEventMapper (Func mapper); + + [Export ("setActionEventMapper:")] + void SetActionEventMapper (Func mapper); + + [Export ("setErrorEventMapper:")] + void SetErrorEventMapper (Func mapper); + + [Export ("setLongTaskEventMapper:")] + void SetLongTaskEventMapper (Func mapper); + } + + // @interface DDRUMErrorEvent + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEvent + { + [Export ("dd", ArgumentSemantic.Strong)] + DDRUMErrorEventDD Dd { get; } + + [NullAllowed, Export ("account", ArgumentSemantic.Strong)] + DDRUMErrorEventRUMAccount Account { get; } + + [NullAllowed, Export ("action", ArgumentSemantic.Strong)] + DDRUMErrorEventAction Action { get; } + + [Export ("application", ArgumentSemantic.Strong)] + DDRUMErrorEventApplication Application { get; } + + [NullAllowed, Export ("buildId", ArgumentSemantic.Copy)] + string BuildId { get; } + + [NullAllowed, Export ("buildVersion", ArgumentSemantic.Copy)] + string BuildVersion { get; } + + [NullAllowed, Export ("ciTest", ArgumentSemantic.Strong)] + DDRUMErrorEventRUMCITest CiTest { get; } + + [NullAllowed, Export ("connectivity", ArgumentSemantic.Strong)] + DDRUMErrorEventRUMConnectivity Connectivity { get; } + + [NullAllowed, Export ("container", ArgumentSemantic.Strong)] + DDRUMErrorEventContainer Container { get; } + + [NullAllowed, Export ("context", ArgumentSemantic.Strong)] + DDRUMErrorEventRUMEventAttributes Context { get; } + + [Export ("date", ArgumentSemantic.Strong)] + NSNumber Date { get; } + + [NullAllowed, Export ("ddtags", ArgumentSemantic.Copy)] + string Ddtags { get; } + + [NullAllowed, Export ("device", ArgumentSemantic.Strong)] + DDRUMErrorEventDevice Device { get; } + + [NullAllowed, Export ("display", ArgumentSemantic.Strong)] + DDRUMErrorEventDisplay Display { get; } + + [Export ("error", ArgumentSemantic.Strong)] + DDRUMErrorEventError Error { get; } + + [NullAllowed, Export ("featureFlags", ArgumentSemantic.Strong)] + DDRUMErrorEventFeatureFlags FeatureFlags { get; } + + [NullAllowed, Export ("freeze", ArgumentSemantic.Strong)] + DDRUMErrorEventFreeze Freeze { get; } + + [NullAllowed, Export ("os", ArgumentSemantic.Strong)] + DDRUMErrorEventOperatingSystem Os { get; } + + [NullAllowed, Export ("service", ArgumentSemantic.Copy)] + string Service { get; } + + [Export ("session", ArgumentSemantic.Strong)] + DDRUMErrorEventSession Session { get; } + + [Export ("source")] + DDRUMErrorEventSource Source { get; } + + [NullAllowed, Export ("stream", ArgumentSemantic.Strong)] + DDRUMErrorEventStream Stream { get; } + + [NullAllowed, Export ("synthetics", ArgumentSemantic.Strong)] + DDRUMErrorEventRUMSyntheticsTest Synthetics { get; } + + [NullAllowed, Export ("tab", ArgumentSemantic.Strong)] + DDRUMErrorEventTAB Tab { get; } + + [Export ("type", ArgumentSemantic.Copy)] + string Type { get; } + + [NullAllowed, Export ("usr", ArgumentSemantic.Strong)] + DDRUMErrorEventRUMUser Usr { get; } + + [NullAllowed, Export ("version", ArgumentSemantic.Copy)] + string Version { get; } + + [Export ("view", ArgumentSemantic.Strong)] + DDRUMErrorEventView View { get; } + } + + // @interface DDRUMErrorEventAction + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventAction + { + [Export ("id", ArgumentSemantic.Strong)] + DDRUMErrorEventActionRUMActionID Id { get; } + } + + // @interface DDRUMErrorEventActionRUMActionID + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventActionRUMActionID + { + [NullAllowed, Export ("string", ArgumentSemantic.Copy)] + string String { get; } + + [NullAllowed, Export ("stringsArray", ArgumentSemantic.Copy)] + string[] StringsArray { get; } + } + + // @interface DDRUMErrorEventApplication + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventApplication + { + [NullAllowed, Export ("currentLocale", ArgumentSemantic.Copy)] + string CurrentLocale { get; } + + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMErrorEventContainer + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventContainer + { + [Export ("source")] + DDRUMErrorEventContainerSource Source { get; } + + [Export ("view", ArgumentSemantic.Strong)] + DDRUMErrorEventContainerView View { get; } + } + + // @interface DDRUMErrorEventContainerView + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventContainerView + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMErrorEventDD + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventDD + { + [NullAllowed, Export ("browserSdkVersion", ArgumentSemantic.Copy)] + string BrowserSdkVersion { get; } + + [NullAllowed, Export ("configuration", ArgumentSemantic.Strong)] + DDRUMErrorEventDDConfiguration Configuration { get; } + + [Export ("formatVersion", ArgumentSemantic.Strong)] + NSNumber FormatVersion { get; } + + [NullAllowed, Export ("parentSpanId", ArgumentSemantic.Copy)] + string ParentSpanId { get; } + + [NullAllowed, Export ("profiling", ArgumentSemantic.Strong)] + DDRUMErrorEventDDProfiling Profiling { get; } + + [NullAllowed, Export ("rulePsr", ArgumentSemantic.Strong)] + NSNumber RulePsr { get; } + + [NullAllowed, Export ("sdkName", ArgumentSemantic.Copy)] + string SdkName { get; } + + [NullAllowed, Export ("session", ArgumentSemantic.Strong)] + DDRUMErrorEventDDSession Session { get; } + + [NullAllowed, Export ("spanId", ArgumentSemantic.Copy)] + string SpanId { get; } + + [NullAllowed, Export ("traceId", ArgumentSemantic.Copy)] + string TraceId { get; } + } + + // @interface DDRUMErrorEventDDConfiguration + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventDDConfiguration + { + [NullAllowed, Export ("profilingSampleRate", ArgumentSemantic.Strong)] + NSNumber ProfilingSampleRate { get; } + + [NullAllowed, Export ("sessionReplaySampleRate", ArgumentSemantic.Strong)] + NSNumber SessionReplaySampleRate { get; } + + [Export ("sessionSampleRate", ArgumentSemantic.Strong)] + NSNumber SessionSampleRate { get; } + + [NullAllowed, Export ("traceSampleRate", ArgumentSemantic.Strong)] + NSNumber TraceSampleRate { get; } + } + + // @interface DDRUMErrorEventDDProfiling + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventDDProfiling + { + [Export ("errorReason")] + DDRUMErrorEventDDProfilingErrorReason ErrorReason { get; } + + [Export ("quotaReason")] + DDRUMErrorEventDDProfilingQuotaReason QuotaReason { get; } + + [Export ("status")] + DDRUMErrorEventDDProfilingStatus Status { get; } + } + + // @interface DDRUMErrorEventDDSession + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventDDSession + { + [Export ("plan")] + DDRUMErrorEventDDSessionPlan Plan { get; } + + [Export ("sessionPrecondition")] + DDRUMErrorEventDDSessionRUMSessionPrecondition SessionPrecondition { get; } + } + + // @interface DDRUMErrorEventDevice + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventDevice + { + [NullAllowed, Export ("architecture", ArgumentSemantic.Copy)] + string Architecture { get; } + + [NullAllowed, Export ("batteryLevel", ArgumentSemantic.Strong)] + NSNumber BatteryLevel { get; } + + [NullAllowed, Export ("brand", ArgumentSemantic.Copy)] + string Brand { get; } + + [NullAllowed, Export ("brightnessLevel", ArgumentSemantic.Strong)] + NSNumber BrightnessLevel { get; } + + [NullAllowed, Export ("isLowRam", ArgumentSemantic.Strong)] + NSNumber IsLowRam { get; } + + [NullAllowed, Export ("locale", ArgumentSemantic.Copy)] + string Locale { get; } + + [NullAllowed, Export ("locales", ArgumentSemantic.Copy)] + string[] Locales { get; } + + [NullAllowed, Export ("logicalCpuCount", ArgumentSemantic.Strong)] + NSNumber LogicalCpuCount { get; } + + [NullAllowed, Export ("model", ArgumentSemantic.Copy)] + string Model { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [NullAllowed, Export ("powerSavingMode", ArgumentSemantic.Strong)] + NSNumber PowerSavingMode { get; } + + [NullAllowed, Export ("timeZone", ArgumentSemantic.Copy)] + string TimeZone { get; } + + [NullAllowed, Export ("totalRam", ArgumentSemantic.Strong)] + NSNumber TotalRam { get; } + + [Export ("type")] + DDRUMErrorEventDeviceDeviceType Type { get; } + } + + // @interface DDRUMErrorEventDisplay + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventDisplay + { + [NullAllowed, Export ("viewport", ArgumentSemantic.Strong)] + DDRUMErrorEventDisplayViewport Viewport { get; } + } + + // @interface DDRUMErrorEventDisplayViewport + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventDisplayViewport + { + [Export ("height", ArgumentSemantic.Strong)] + NSNumber Height { get; } + + [Export ("width", ArgumentSemantic.Strong)] + NSNumber Width { get; } + } + + // @interface DDRUMErrorEventError + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventError + { + [NullAllowed, Export ("binaryImages", ArgumentSemantic.Copy)] + DDRUMErrorEventErrorBinaryImages[] BinaryImages { get; } + + [Export ("category")] + DDRUMErrorEventErrorCategory Category { get; } + + [NullAllowed, Export ("causes", ArgumentSemantic.Copy)] + DDRUMErrorEventErrorCauses[] Causes { get; set; } + + [NullAllowed, Export ("csp", ArgumentSemantic.Strong)] + DDRUMErrorEventErrorCSP Csp { get; } + + [NullAllowed, Export ("fingerprint", ArgumentSemantic.Copy)] + string Fingerprint { get; set; } + + [Export ("handling")] + DDRUMErrorEventErrorHandling Handling { get; } + + [NullAllowed, Export ("handlingStack", ArgumentSemantic.Copy)] + string HandlingStack { get; set; } + + [NullAllowed, Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("isCrash", ArgumentSemantic.Strong)] + NSNumber IsCrash { get; } + + [Export ("message", ArgumentSemantic.Copy)] + string Message { get; set; } + + [NullAllowed, Export ("meta", ArgumentSemantic.Strong)] + DDRUMErrorEventErrorMetaInfo Meta { get; } + + [NullAllowed, Export ("resource", ArgumentSemantic.Strong)] + DDRUMErrorEventErrorResource Resource { get; } + + [Export ("source")] + DDRUMErrorEventErrorSource Source { get; } + + [Export ("sourceType")] + DDRUMErrorEventErrorSourceType SourceType { get; } + + [NullAllowed, Export ("stack", ArgumentSemantic.Copy)] + string Stack { get; set; } + + [NullAllowed, Export ("threads", ArgumentSemantic.Copy)] + DDRUMErrorEventErrorThreads[] Threads { get; } + + [NullAllowed, Export ("timeSinceAppStart", ArgumentSemantic.Strong)] + NSNumber TimeSinceAppStart { get; } + + [NullAllowed, Export ("type", ArgumentSemantic.Copy)] + string Type { get; } + + [NullAllowed, Export ("wasTruncated", ArgumentSemantic.Strong)] + NSNumber WasTruncated { get; } + } + + // @interface DDRUMErrorEventErrorBinaryImages + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventErrorBinaryImages + { + [NullAllowed, Export ("arch", ArgumentSemantic.Copy)] + string Arch { get; } + + [Export ("isSystem", ArgumentSemantic.Strong)] + NSNumber IsSystem { get; } + + [NullAllowed, Export ("loadAddress", ArgumentSemantic.Copy)] + string LoadAddress { get; } + + [NullAllowed, Export ("maxAddress", ArgumentSemantic.Copy)] + string MaxAddress { get; } + + [Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("uuid", ArgumentSemantic.Copy)] + string Uuid { get; } + } + + // @interface DDRUMErrorEventErrorCSP + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventErrorCSP + { + [Export ("disposition")] + DDRUMErrorEventErrorCSPDisposition Disposition { get; } + } + + // @interface DDRUMErrorEventErrorCauses + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventErrorCauses + { + [Export ("message", ArgumentSemantic.Copy)] + string Message { get; set; } + + [Export ("source")] + DDRUMErrorEventErrorCausesSource Source { get; } + + [NullAllowed, Export ("stack", ArgumentSemantic.Copy)] + string Stack { get; set; } + + [NullAllowed, Export ("type", ArgumentSemantic.Copy)] + string Type { get; } + } + + // @interface DDRUMErrorEventErrorMetaInfo + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventErrorMetaInfo + { + [NullAllowed, Export ("codeType", ArgumentSemantic.Copy)] + string CodeType { get; } + + [NullAllowed, Export ("exceptionCodes", ArgumentSemantic.Copy)] + string ExceptionCodes { get; } + + [NullAllowed, Export ("exceptionType", ArgumentSemantic.Copy)] + string ExceptionType { get; } + + [NullAllowed, Export ("incidentIdentifier", ArgumentSemantic.Copy)] + string IncidentIdentifier { get; } + + [NullAllowed, Export ("parentProcess", ArgumentSemantic.Copy)] + string ParentProcess { get; } + + [NullAllowed, Export ("path", ArgumentSemantic.Copy)] + string Path { get; } + + [NullAllowed, Export ("process", ArgumentSemantic.Copy)] + string Process { get; } + } + + // @interface DDRUMErrorEventErrorResource + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventErrorResource + { + [NullAllowed, Export ("graphql", ArgumentSemantic.Strong)] + DDRUMErrorEventErrorResourceRUMGraphql Graphql { get; } + + [Export ("method")] + DDRUMErrorEventErrorResourceRUMMethod Method { get; } + + [NullAllowed, Export ("provider", ArgumentSemantic.Strong)] + DDRUMErrorEventErrorResourceProvider Provider { get; } + + [Export ("statusCode", ArgumentSemantic.Strong)] + NSNumber StatusCode { get; } + + [Export ("url", ArgumentSemantic.Copy)] + string Url { get; set; } + } + + // @interface DDRUMErrorEventErrorResourceProvider + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventErrorResourceProvider + { + [NullAllowed, Export ("domain", ArgumentSemantic.Copy)] + string Domain { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("type")] + DDRUMErrorEventErrorResourceProviderProviderType Type { get; } + } + + // @interface DDRUMErrorEventErrorResourceRUMGraphql + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventErrorResourceRUMGraphql + { + [NullAllowed, Export ("errorCount", ArgumentSemantic.Strong)] + NSNumber ErrorCount { get; } + + [NullAllowed, Export ("errors", ArgumentSemantic.Copy)] + DDRUMErrorEventErrorResourceRUMGraphqlErrors[] Errors { get; } + + [NullAllowed, Export ("operationName", ArgumentSemantic.Copy)] + string OperationName { get; } + + [Export ("operationType")] + DDRUMErrorEventErrorResourceRUMGraphqlOperationType OperationType { get; } + + [NullAllowed, Export ("payload", ArgumentSemantic.Copy)] + string Payload { get; set; } + + [NullAllowed, Export ("variables", ArgumentSemantic.Copy)] + string Variables { get; set; } + } + + // @interface DDRUMErrorEventErrorResourceRUMGraphqlErrors + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventErrorResourceRUMGraphqlErrors + { + [NullAllowed, Export ("code", ArgumentSemantic.Copy)] + string Code { get; } + + [NullAllowed, Export ("locations", ArgumentSemantic.Copy)] + DDRUMErrorEventErrorResourceRUMGraphqlErrorsLocations[] Locations { get; } + + [Export ("message", ArgumentSemantic.Copy)] + string Message { get; } + + [NullAllowed, Export ("path", ArgumentSemantic.Copy)] + DDRUMErrorEventErrorResourceRUMGraphqlErrorsPath[] Path { get; } + } + + // @interface DDRUMErrorEventErrorResourceRUMGraphqlErrorsLocations + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventErrorResourceRUMGraphqlErrorsLocations + { + [Export ("column", ArgumentSemantic.Strong)] + NSNumber Column { get; } + + [Export ("line", ArgumentSemantic.Strong)] + NSNumber Line { get; } + } + + // @interface DDRUMErrorEventErrorResourceRUMGraphqlErrorsPath + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventErrorResourceRUMGraphqlErrorsPath + { + [NullAllowed, Export ("string", ArgumentSemantic.Copy)] + string String { get; } + + [NullAllowed, Export ("integer", ArgumentSemantic.Strong)] + NSNumber Integer { get; } + } + + // @interface DDRUMErrorEventErrorThreads + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventErrorThreads + { + [Export ("crashed", ArgumentSemantic.Strong)] + NSNumber Crashed { get; } + + [Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("stack", ArgumentSemantic.Copy)] + string Stack { get; } + + [NullAllowed, Export ("state", ArgumentSemantic.Copy)] + string State { get; } + } + + // @interface DDRUMErrorEventFeatureFlags + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventFeatureFlags + { + [Export ("featureFlagsInfo", ArgumentSemantic.Copy)] + NSDictionary FeatureFlagsInfo { get; set; } + } + + // @interface DDRUMErrorEventFreeze + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventFreeze + { + [Export ("duration", ArgumentSemantic.Strong)] + NSNumber Duration { get; } + } + + // @interface DDRUMErrorEventOperatingSystem + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventOperatingSystem + { + [NullAllowed, Export ("build", ArgumentSemantic.Copy)] + string Build { get; } + + [Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("version", ArgumentSemantic.Copy)] + string Version { get; } + + [Export ("versionMajor", ArgumentSemantic.Copy)] + string VersionMajor { get; } + } + + // @interface DDRUMErrorEventRUMAccount + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventRUMAccount + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("accountInfo", ArgumentSemantic.Copy)] + NSDictionary AccountInfo { get; set; } + } + + // @interface DDRUMErrorEventRUMCITest + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventRUMCITest + { + [Export ("testExecutionId", ArgumentSemantic.Copy)] + string TestExecutionId { get; } + } + + // @interface DDRUMErrorEventRUMConnectivity + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventRUMConnectivity + { + [NullAllowed, Export ("cellular", ArgumentSemantic.Strong)] + DDRUMErrorEventRUMConnectivityCellular Cellular { get; } + + [Export ("effectiveType")] + DDRUMErrorEventRUMConnectivityEffectiveType EffectiveType { get; } + + [NullAllowed, Export ("interfaces", ArgumentSemantic.Copy)] + NSNumber[] Interfaces { get; } + + [Export ("status")] + DDRUMErrorEventRUMConnectivityStatus Status { get; } + } + + // @interface DDRUMErrorEventRUMConnectivityCellular + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventRUMConnectivityCellular + { + [NullAllowed, Export ("carrierName", ArgumentSemantic.Copy)] + string CarrierName { get; } + + [NullAllowed, Export ("technology", ArgumentSemantic.Copy)] + string Technology { get; } + } + + // @interface DDRUMErrorEventRUMEventAttributes + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventRUMEventAttributes + { + [Export ("contextInfo", ArgumentSemantic.Copy)] + NSDictionary ContextInfo { get; set; } + } + + // @interface DDRUMErrorEventRUMSyntheticsTest + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventRUMSyntheticsTest + { + [NullAllowed, Export ("injected", ArgumentSemantic.Strong)] + NSNumber Injected { get; } + + [Export ("resultId", ArgumentSemantic.Copy)] + string ResultId { get; } + + [Export ("testId", ArgumentSemantic.Copy)] + string TestId { get; } + + [Export ("syntheticsInfo", ArgumentSemantic.Copy)] + NSDictionary SyntheticsInfo { get; set; } + } + + // @interface DDRUMErrorEventRUMUser + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventRUMUser + { + [NullAllowed, Export ("anonymousId", ArgumentSemantic.Copy)] + string AnonymousId { get; } + + [NullAllowed, Export ("email", ArgumentSemantic.Copy)] + string Email { get; } + + [NullAllowed, Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("usrInfo", ArgumentSemantic.Copy)] + NSDictionary UsrInfo { get; set; } + } + + // @interface DDRUMErrorEventSession + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventSession + { + [NullAllowed, Export ("hasReplay", ArgumentSemantic.Strong)] + NSNumber HasReplay { get; } + + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [Export ("type")] + DDRUMErrorEventSessionRUMSessionType Type { get; } + } + + // @interface DDRUMErrorEventStream + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventStream + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMErrorEventTAB + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventTAB + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMErrorEventView + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMErrorEventView + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("inForeground", ArgumentSemantic.Strong)] + NSNumber InForeground { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; set; } + + [NullAllowed, Export ("referrer", ArgumentSemantic.Copy)] + string Referrer { get; set; } + + [Export ("url", ArgumentSemantic.Copy)] + string Url { get; set; } + } + + // @interface DDRUMFirstPartyHostsTracing + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMFirstPartyHostsTracing + { + [Export ("initWithHostsWithHeaderTypes:")] + NativeHandle Constructor (NSDictionary> hostsWithHeaderTypes); + + [Export ("initWithHostsWithHeaderTypes:sampleRate:")] + NativeHandle Constructor (NSDictionary> hostsWithHeaderTypes, float sampleRate); + + [Export ("initWithHosts:")] + NativeHandle Constructor (NSSet hosts); + + [Export ("initWithHosts:sampleRate:")] + NativeHandle Constructor (NSSet hosts, float sampleRate); + } + + // @interface DDRUMHeaderCaptureRule + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMHeaderCaptureRule + { + [Static] + [Export ("defaults", ArgumentSemantic.Strong)] + DDRUMHeaderCaptureRule Defaults { get; } + + [Static] + [Export ("matchHeaders:")] + DDRUMHeaderCaptureRule MatchHeaders (string[] names); + } + + // @interface DDRUMLongTaskEvent + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMLongTaskEvent + { + [Export ("dd", ArgumentSemantic.Strong)] + DDRUMLongTaskEventDD Dd { get; } + + [NullAllowed, Export ("account", ArgumentSemantic.Strong)] + DDRUMLongTaskEventRUMAccount Account { get; } + + [NullAllowed, Export ("action", ArgumentSemantic.Strong)] + DDRUMLongTaskEventAction Action { get; } + + [Export ("application", ArgumentSemantic.Strong)] + DDRUMLongTaskEventApplication Application { get; } + + [NullAllowed, Export ("buildId", ArgumentSemantic.Copy)] + string BuildId { get; } + + [NullAllowed, Export ("buildVersion", ArgumentSemantic.Copy)] + string BuildVersion { get; } + + [NullAllowed, Export ("ciTest", ArgumentSemantic.Strong)] + DDRUMLongTaskEventRUMCITest CiTest { get; } + + [NullAllowed, Export ("connectivity", ArgumentSemantic.Strong)] + DDRUMLongTaskEventRUMConnectivity Connectivity { get; } + + [NullAllowed, Export ("container", ArgumentSemantic.Strong)] + DDRUMLongTaskEventContainer Container { get; } + + [NullAllowed, Export ("context", ArgumentSemantic.Strong)] + DDRUMLongTaskEventRUMEventAttributes Context { get; } + + [Export ("date", ArgumentSemantic.Strong)] + NSNumber Date { get; } + + [NullAllowed, Export ("ddtags", ArgumentSemantic.Copy)] + string Ddtags { get; } + + [NullAllowed, Export ("device", ArgumentSemantic.Strong)] + DDRUMLongTaskEventDevice Device { get; } + + [NullAllowed, Export ("display", ArgumentSemantic.Strong)] + DDRUMLongTaskEventDisplay Display { get; } + + [Export ("longTask", ArgumentSemantic.Strong)] + DDRUMLongTaskEventLongTask LongTask { get; } + + [NullAllowed, Export ("os", ArgumentSemantic.Strong)] + DDRUMLongTaskEventOperatingSystem Os { get; } + + [NullAllowed, Export ("service", ArgumentSemantic.Copy)] + string Service { get; } + + [Export ("session", ArgumentSemantic.Strong)] + DDRUMLongTaskEventSession Session { get; } + + [Export ("source")] + DDRUMLongTaskEventSource Source { get; } + + [NullAllowed, Export ("stream", ArgumentSemantic.Strong)] + DDRUMLongTaskEventStream Stream { get; } + + [NullAllowed, Export ("synthetics", ArgumentSemantic.Strong)] + DDRUMLongTaskEventRUMSyntheticsTest Synthetics { get; } + + [NullAllowed, Export ("tab", ArgumentSemantic.Strong)] + DDRUMLongTaskEventTAB Tab { get; } + + [Export ("type", ArgumentSemantic.Copy)] + string Type { get; } + + [NullAllowed, Export ("usr", ArgumentSemantic.Strong)] + DDRUMLongTaskEventRUMUser Usr { get; } + + [NullAllowed, Export ("version", ArgumentSemantic.Copy)] + string Version { get; } + + [Export ("view", ArgumentSemantic.Strong)] + DDRUMLongTaskEventView View { get; } + } + + // @interface DDRUMLongTaskEventAction + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMLongTaskEventAction + { + [Export ("id", ArgumentSemantic.Strong)] + DDRUMLongTaskEventActionRUMActionID Id { get; } + } + + // @interface DDRUMLongTaskEventActionRUMActionID + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMLongTaskEventActionRUMActionID + { + [NullAllowed, Export ("string", ArgumentSemantic.Copy)] + string String { get; } + + [NullAllowed, Export ("stringsArray", ArgumentSemantic.Copy)] + string[] StringsArray { get; } + } + + // @interface DDRUMLongTaskEventApplication + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMLongTaskEventApplication + { + [NullAllowed, Export ("currentLocale", ArgumentSemantic.Copy)] + string CurrentLocale { get; } + + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMLongTaskEventContainer + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMLongTaskEventContainer + { + [Export ("source")] + DDRUMLongTaskEventContainerSource Source { get; } + + [Export ("view", ArgumentSemantic.Strong)] + DDRUMLongTaskEventContainerView View { get; } + } + + // @interface DDRUMLongTaskEventContainerView + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMLongTaskEventContainerView + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMLongTaskEventDD + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMLongTaskEventDD + { + [NullAllowed, Export ("browserSdkVersion", ArgumentSemantic.Copy)] + string BrowserSdkVersion { get; } + + [NullAllowed, Export ("configuration", ArgumentSemantic.Strong)] + DDRUMLongTaskEventDDConfiguration Configuration { get; } + + [NullAllowed, Export ("discarded", ArgumentSemantic.Strong)] + NSNumber Discarded { get; } + + [Export ("formatVersion", ArgumentSemantic.Strong)] + NSNumber FormatVersion { get; } + + [NullAllowed, Export ("profiling", ArgumentSemantic.Strong)] + DDRUMLongTaskEventDDProfiling Profiling { get; } + + [NullAllowed, Export ("sdkName", ArgumentSemantic.Copy)] + string SdkName { get; } + + [NullAllowed, Export ("session", ArgumentSemantic.Strong)] + DDRUMLongTaskEventDDSession Session { get; } + } + + // @interface DDRUMLongTaskEventDDConfiguration + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMLongTaskEventDDConfiguration + { + [NullAllowed, Export ("profilingSampleRate", ArgumentSemantic.Strong)] + NSNumber ProfilingSampleRate { get; } + + [NullAllowed, Export ("sessionReplaySampleRate", ArgumentSemantic.Strong)] + NSNumber SessionReplaySampleRate { get; } + + [Export ("sessionSampleRate", ArgumentSemantic.Strong)] + NSNumber SessionSampleRate { get; } + + [NullAllowed, Export ("traceSampleRate", ArgumentSemantic.Strong)] + NSNumber TraceSampleRate { get; } + } + + // @interface DDRUMLongTaskEventDDProfiling + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMLongTaskEventDDProfiling + { + [Export ("errorReason")] + DDRUMLongTaskEventDDProfilingErrorReason ErrorReason { get; } + + [Export ("quotaReason")] + DDRUMLongTaskEventDDProfilingQuotaReason QuotaReason { get; } + + [Export ("status")] + DDRUMLongTaskEventDDProfilingStatus Status { get; } + } + + // @interface DDRUMLongTaskEventDDSession + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMLongTaskEventDDSession + { + [Export ("plan")] + DDRUMLongTaskEventDDSessionPlan Plan { get; } + + [Export ("sessionPrecondition")] + DDRUMLongTaskEventDDSessionRUMSessionPrecondition SessionPrecondition { get; } + } + + // @interface DDRUMLongTaskEventDevice + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMLongTaskEventDevice + { + [NullAllowed, Export ("architecture", ArgumentSemantic.Copy)] + string Architecture { get; } + + [NullAllowed, Export ("batteryLevel", ArgumentSemantic.Strong)] + NSNumber BatteryLevel { get; } + + [NullAllowed, Export ("brand", ArgumentSemantic.Copy)] + string Brand { get; } + + [NullAllowed, Export ("brightnessLevel", ArgumentSemantic.Strong)] + NSNumber BrightnessLevel { get; } + + [NullAllowed, Export ("isLowRam", ArgumentSemantic.Strong)] + NSNumber IsLowRam { get; } + + [NullAllowed, Export ("locale", ArgumentSemantic.Copy)] + string Locale { get; } + + [NullAllowed, Export ("locales", ArgumentSemantic.Copy)] + string[] Locales { get; } + + [NullAllowed, Export ("logicalCpuCount", ArgumentSemantic.Strong)] + NSNumber LogicalCpuCount { get; } + + [NullAllowed, Export ("model", ArgumentSemantic.Copy)] + string Model { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [NullAllowed, Export ("powerSavingMode", ArgumentSemantic.Strong)] + NSNumber PowerSavingMode { get; } + + [NullAllowed, Export ("timeZone", ArgumentSemantic.Copy)] + string TimeZone { get; } + + [NullAllowed, Export ("totalRam", ArgumentSemantic.Strong)] + NSNumber TotalRam { get; } + + [Export ("type")] + DDRUMLongTaskEventDeviceDeviceType Type { get; } + } + + // @interface DDRUMLongTaskEventDisplay + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMLongTaskEventDisplay + { + [NullAllowed, Export ("viewport", ArgumentSemantic.Strong)] + DDRUMLongTaskEventDisplayViewport Viewport { get; } + } + + // @interface DDRUMLongTaskEventDisplayViewport + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMLongTaskEventDisplayViewport + { + [Export ("height", ArgumentSemantic.Strong)] + NSNumber Height { get; } + + [Export ("width", ArgumentSemantic.Strong)] + NSNumber Width { get; } + } + + // @interface DDRUMLongTaskEventLongTask + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMLongTaskEventLongTask + { + [NullAllowed, Export ("blockingDuration", ArgumentSemantic.Strong)] + NSNumber BlockingDuration { get; } + + [Export ("duration", ArgumentSemantic.Strong)] + NSNumber Duration { get; } + + [Export ("entryType")] + DDRUMLongTaskEventLongTaskEntryType EntryType { get; } + + [NullAllowed, Export ("firstUiEventTimestamp", ArgumentSemantic.Strong)] + NSNumber FirstUiEventTimestamp { get; } + + [NullAllowed, Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("isFrozenFrame", ArgumentSemantic.Strong)] + NSNumber IsFrozenFrame { get; } + + [NullAllowed, Export ("renderStart", ArgumentSemantic.Strong)] + NSNumber RenderStart { get; } + + [NullAllowed, Export ("scripts", ArgumentSemantic.Copy)] + DDRUMLongTaskEventLongTaskScripts[] Scripts { get; } + + [NullAllowed, Export ("startTime", ArgumentSemantic.Strong)] + NSNumber StartTime { get; } + + [NullAllowed, Export ("styleAndLayoutStart", ArgumentSemantic.Strong)] + NSNumber StyleAndLayoutStart { get; } + } + + // @interface DDRUMLongTaskEventLongTaskScripts + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMLongTaskEventLongTaskScripts + { + [NullAllowed, Export ("duration", ArgumentSemantic.Strong)] + NSNumber Duration { get; } + + [NullAllowed, Export ("executionStart", ArgumentSemantic.Strong)] + NSNumber ExecutionStart { get; } + + [NullAllowed, Export ("forcedStyleAndLayoutDuration", ArgumentSemantic.Strong)] + NSNumber ForcedStyleAndLayoutDuration { get; } + + [NullAllowed, Export ("invoker", ArgumentSemantic.Copy)] + string Invoker { get; } + + [Export ("invokerType")] + DDRUMLongTaskEventLongTaskScriptsInvokerType InvokerType { get; } + + [NullAllowed, Export ("pauseDuration", ArgumentSemantic.Strong)] + NSNumber PauseDuration { get; } + + [NullAllowed, Export ("sourceCharPosition", ArgumentSemantic.Strong)] + NSNumber SourceCharPosition { get; } + + [NullAllowed, Export ("sourceFunctionName", ArgumentSemantic.Copy)] + string SourceFunctionName { get; } + + [NullAllowed, Export ("sourceUrl", ArgumentSemantic.Copy)] + string SourceUrl { get; } + + [NullAllowed, Export ("startTime", ArgumentSemantic.Strong)] + NSNumber StartTime { get; } + + [NullAllowed, Export ("windowAttribution", ArgumentSemantic.Copy)] + string WindowAttribution { get; } + } + + // @interface DDRUMLongTaskEventOperatingSystem + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMLongTaskEventOperatingSystem + { + [NullAllowed, Export ("build", ArgumentSemantic.Copy)] + string Build { get; } + + [Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("version", ArgumentSemantic.Copy)] + string Version { get; } + + [Export ("versionMajor", ArgumentSemantic.Copy)] + string VersionMajor { get; } + } + + // @interface DDRUMLongTaskEventRUMAccount + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMLongTaskEventRUMAccount + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("accountInfo", ArgumentSemantic.Copy)] + NSDictionary AccountInfo { get; set; } + } + + // @interface DDRUMLongTaskEventRUMCITest + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMLongTaskEventRUMCITest + { + [Export ("testExecutionId", ArgumentSemantic.Copy)] + string TestExecutionId { get; } + } + + // @interface DDRUMLongTaskEventRUMConnectivity + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMLongTaskEventRUMConnectivity + { + [NullAllowed, Export ("cellular", ArgumentSemantic.Strong)] + DDRUMLongTaskEventRUMConnectivityCellular Cellular { get; } + + [Export ("effectiveType")] + DDRUMLongTaskEventRUMConnectivityEffectiveType EffectiveType { get; } + + [NullAllowed, Export ("interfaces", ArgumentSemantic.Copy)] + NSNumber[] Interfaces { get; } + + [Export ("status")] + DDRUMLongTaskEventRUMConnectivityStatus Status { get; } + } + + // @interface DDRUMLongTaskEventRUMConnectivityCellular + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMLongTaskEventRUMConnectivityCellular + { + [NullAllowed, Export ("carrierName", ArgumentSemantic.Copy)] + string CarrierName { get; } + + [NullAllowed, Export ("technology", ArgumentSemantic.Copy)] + string Technology { get; } + } + + // @interface DDRUMLongTaskEventRUMEventAttributes + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMLongTaskEventRUMEventAttributes + { + [Export ("contextInfo", ArgumentSemantic.Copy)] + NSDictionary ContextInfo { get; set; } + } + + // @interface DDRUMLongTaskEventRUMSyntheticsTest + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMLongTaskEventRUMSyntheticsTest + { + [NullAllowed, Export ("injected", ArgumentSemantic.Strong)] + NSNumber Injected { get; } + + [Export ("resultId", ArgumentSemantic.Copy)] + string ResultId { get; } + + [Export ("testId", ArgumentSemantic.Copy)] + string TestId { get; } + + [Export ("syntheticsInfo", ArgumentSemantic.Copy)] + NSDictionary SyntheticsInfo { get; set; } + } + + // @interface DDRUMLongTaskEventRUMUser + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMLongTaskEventRUMUser + { + [NullAllowed, Export ("anonymousId", ArgumentSemantic.Copy)] + string AnonymousId { get; } + + [NullAllowed, Export ("email", ArgumentSemantic.Copy)] + string Email { get; } + + [NullAllowed, Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("usrInfo", ArgumentSemantic.Copy)] + NSDictionary UsrInfo { get; set; } + } + + // @interface DDRUMLongTaskEventSession + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMLongTaskEventSession + { + [NullAllowed, Export ("hasReplay", ArgumentSemantic.Strong)] + NSNumber HasReplay { get; } + + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [Export ("type")] + DDRUMLongTaskEventSessionRUMSessionType Type { get; } + } + + // @interface DDRUMLongTaskEventStream + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMLongTaskEventStream + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMLongTaskEventTAB + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMLongTaskEventTAB + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMLongTaskEventView + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMLongTaskEventView + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; set; } + + [NullAllowed, Export ("referrer", ArgumentSemantic.Copy)] + string Referrer { get; set; } + + [Export ("url", ArgumentSemantic.Copy)] + string Url { get; set; } + } + + // @interface DDRUMMonitor + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMMonitor + { + [Export ("debug")] + bool Debug { get; set; } + + [Static] + [Export ("shared")] + DDRUMMonitor Shared (); + + [Static] + [Export ("sharedWithInstanceName:")] + DDRUMMonitor SharedWithInstanceName ([NullAllowed] string instanceName); + + [Export ("currentSessionIDWithCompletion:")] + void CurrentSessionIDWithCompletion (Action completion); + + [Export ("stopSession")] + void StopSession (); + + [Export ("reportAppFullyDisplayed")] + void ReportAppFullyDisplayed (); + + [Export ("addViewAttributeForKey:value:")] + void AddViewAttributeForKey (string key, NSObject value); + + [Export ("addViewAttributes:")] + void AddViewAttributes (NSDictionary attributes); + + [Export ("removeViewAttributeForKey:")] + void RemoveViewAttributeForKey (string key); + + [Export ("removeViewAttributesForKeys:")] + void RemoveViewAttributesForKeys (string[] keys); + + [Export ("startViewWithViewController:name:attributes:")] + void StartViewWithViewController (UIViewController viewController, [NullAllowed] string name, NSDictionary attributes); + + [Export ("stopViewWithViewController:attributes:")] + void StopViewWithViewController (UIViewController viewController, NSDictionary attributes); + + [Export ("startViewWithKey:name:attributes:")] + void StartViewWithKey (string key, [NullAllowed] string name, NSDictionary attributes); + + [Export ("stopViewWithKey:attributes:")] + void StopViewWithKey (string key, NSDictionary attributes); + + [Export ("addViewLoadingTimeWithOverwrite:")] + void AddViewLoadingTimeWithOverwrite (bool overwrite); + + [Export ("addTimingWithName:")] + void AddTimingWithName (string name); + + [Export ("addErrorWithMessage:stack:source:attributes:")] + void AddErrorWithMessage (string message, [NullAllowed] string stack, DDRUMErrorSource source, NSDictionary attributes); + + [Export ("addErrorWithError:source:attributes:")] + void AddErrorWithError (NSError error, DDRUMErrorSource source, NSDictionary attributes); + + [Export ("startResourceWithResourceKey:request:attributes:")] + void StartResourceWithResourceKey (string resourceKey, NSUrlRequest request, NSDictionary attributes); + + [Export ("startResourceWithResourceKey:url:attributes:")] + void StartResourceWithResourceKey (string resourceKey, NSUrl url, NSDictionary attributes); + + [Export ("startResourceWithResourceKey:httpMethod:urlString:attributes:")] + void StartResourceWithResourceKey (string resourceKey, DDRUMMethod httpMethod, string urlString, NSDictionary attributes); + + [Export ("addResourceMetricsWithResourceKey:metrics:attributes:")] + void AddResourceMetricsWithResourceKey (string resourceKey, NSUrlSessionTaskMetrics metrics, NSDictionary attributes); + + [Export ("stopResourceWithResourceKey:response:size:attributes:")] + void StopResourceWithResourceKey (string resourceKey, NSUrlResponse response, [NullAllowed] NSNumber size, NSDictionary attributes); + + [Export ("stopResourceWithResourceKey:statusCode:kind:size:attributes:")] + void StopResourceWithResourceKey (string resourceKey, [NullAllowed] NSNumber statusCode, DDRUMResourceType kind, [NullAllowed] NSNumber size, NSDictionary attributes); + + [Export ("stopResourceWithErrorWithResourceKey:error:response:attributes:")] + void StopResourceWithErrorWithResourceKey (string resourceKey, NSError error, [NullAllowed] NSUrlResponse response, NSDictionary attributes); + + [Export ("stopResourceWithErrorWithResourceKey:message:response:attributes:")] + void StopResourceWithErrorWithResourceKey (string resourceKey, string message, [NullAllowed] NSUrlResponse response, NSDictionary attributes); + + [Export ("startActionWithType:name:attributes:")] + void StartActionWithType (DDRUMActionType type, string name, NSDictionary attributes); + + [Export ("stopActionWithType:name:attributes:")] + void StopActionWithType (DDRUMActionType type, [NullAllowed] string name, NSDictionary attributes); + + [Export ("addActionWithType:name:attributes:")] + void AddActionWithType (DDRUMActionType type, string name, NSDictionary attributes); + + [Export ("addAttributeForKey:value:")] + void AddAttributeForKey (string key, NSObject value); + + [Export ("addAttributes:")] + void AddAttributes (NSDictionary attributes); + + [Export ("removeAttributeForKey:")] + void RemoveAttributeForKey (string key); + + [Export ("removeAttributesForKeys:")] + void RemoveAttributesForKeys (string[] keys); + + [Export ("addFeatureFlagEvaluationWithName:value:")] + void AddFeatureFlagEvaluationWithName (string name, NSObject value); + + [Export ("startOperationWithName:operationKey:attributes:options:")] + void StartOperationWithName (string name, [NullAllowed] string operationKey, NSDictionary attributes, [NullAllowed] DDOperationOptions options); + + [Export ("startFeatureOperationWithName:operationKey:attributes:")] + void StartFeatureOperationWithName (string name, [NullAllowed] string operationKey, NSDictionary attributes); + + [Export ("succeedOperationWithName:operationKey:attributes:")] + void SucceedOperationWithName (string name, [NullAllowed] string operationKey, NSDictionary attributes); + + [Export ("succeedFeatureOperationWithName:operationKey:attributes:")] + void SucceedFeatureOperationWithName (string name, [NullAllowed] string operationKey, NSDictionary attributes); + + [Export ("failOperationWithName:operationKey:reason:attributes:")] + void FailOperationWithName (string name, [NullAllowed] string operationKey, DDRUMFeatureOperationFailureReason reason, NSDictionary attributes); + + [Export ("failFeatureOperationWithName:operationKey:reason:attributes:")] + void FailFeatureOperationWithName (string name, [NullAllowed] string operationKey, DDRUMFeatureOperationFailureReason reason, NSDictionary attributes); + } + + // @interface DDRUMResourceEvent + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEvent + { + [Export ("dd", ArgumentSemantic.Strong)] + DDRUMResourceEventDD Dd { get; } + + [NullAllowed, Export ("account", ArgumentSemantic.Strong)] + DDRUMResourceEventRUMAccount Account { get; } + + [NullAllowed, Export ("action", ArgumentSemantic.Strong)] + DDRUMResourceEventAction Action { get; } + + [Export ("application", ArgumentSemantic.Strong)] + DDRUMResourceEventApplication Application { get; } + + [NullAllowed, Export ("buildId", ArgumentSemantic.Copy)] + string BuildId { get; } + + [NullAllowed, Export ("buildVersion", ArgumentSemantic.Copy)] + string BuildVersion { get; } + + [NullAllowed, Export ("ciTest", ArgumentSemantic.Strong)] + DDRUMResourceEventRUMCITest CiTest { get; } + + [NullAllowed, Export ("connectivity", ArgumentSemantic.Strong)] + DDRUMResourceEventRUMConnectivity Connectivity { get; } + + [NullAllowed, Export ("container", ArgumentSemantic.Strong)] + DDRUMResourceEventContainer Container { get; } + + [NullAllowed, Export ("context", ArgumentSemantic.Strong)] + DDRUMResourceEventRUMEventAttributes Context { get; } + + [Export ("date", ArgumentSemantic.Strong)] + NSNumber Date { get; } + + [NullAllowed, Export ("ddtags", ArgumentSemantic.Copy)] + string Ddtags { get; } + + [NullAllowed, Export ("device", ArgumentSemantic.Strong)] + DDRUMResourceEventDevice Device { get; } + + [NullAllowed, Export ("display", ArgumentSemantic.Strong)] + DDRUMResourceEventDisplay Display { get; } + + [NullAllowed, Export ("os", ArgumentSemantic.Strong)] + DDRUMResourceEventOperatingSystem Os { get; } + + [Export ("resource", ArgumentSemantic.Strong)] + DDRUMResourceEventResource Resource { get; } + + [NullAllowed, Export ("service", ArgumentSemantic.Copy)] + string Service { get; } + + [Export ("session", ArgumentSemantic.Strong)] + DDRUMResourceEventSession Session { get; } + + [Export ("source")] + DDRUMResourceEventSource Source { get; } + + [NullAllowed, Export ("stream", ArgumentSemantic.Strong)] + DDRUMResourceEventStream Stream { get; } + + [NullAllowed, Export ("synthetics", ArgumentSemantic.Strong)] + DDRUMResourceEventRUMSyntheticsTest Synthetics { get; } + + [NullAllowed, Export ("tab", ArgumentSemantic.Strong)] + DDRUMResourceEventTAB Tab { get; } + + [Export ("type", ArgumentSemantic.Copy)] + string Type { get; } + + [NullAllowed, Export ("usr", ArgumentSemantic.Strong)] + DDRUMResourceEventRUMUser Usr { get; } + + [NullAllowed, Export ("version", ArgumentSemantic.Copy)] + string Version { get; } + + [Export ("view", ArgumentSemantic.Strong)] + DDRUMResourceEventView View { get; } + } + + // @interface DDRUMResourceEventAction + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventAction + { + [Export ("id", ArgumentSemantic.Strong)] + DDRUMResourceEventActionRUMActionID Id { get; } + } + + // @interface DDRUMResourceEventActionRUMActionID + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventActionRUMActionID + { + [NullAllowed, Export ("string", ArgumentSemantic.Copy)] + string String { get; } + + [NullAllowed, Export ("stringsArray", ArgumentSemantic.Copy)] + string[] StringsArray { get; } + } + + // @interface DDRUMResourceEventApplication + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventApplication + { + [NullAllowed, Export ("currentLocale", ArgumentSemantic.Copy)] + string CurrentLocale { get; } + + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMResourceEventContainer + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventContainer + { + [Export ("source")] + DDRUMResourceEventContainerSource Source { get; } + + [Export ("view", ArgumentSemantic.Strong)] + DDRUMResourceEventContainerView View { get; } + } + + // @interface DDRUMResourceEventContainerView + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventContainerView + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMResourceEventDD + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventDD + { + [NullAllowed, Export ("browserSdkVersion", ArgumentSemantic.Copy)] + string BrowserSdkVersion { get; } + + [NullAllowed, Export ("configuration", ArgumentSemantic.Strong)] + DDRUMResourceEventDDConfiguration Configuration { get; } + + [NullAllowed, Export ("discarded", ArgumentSemantic.Strong)] + NSNumber Discarded { get; } + + [Export ("formatVersion", ArgumentSemantic.Strong)] + NSNumber FormatVersion { get; } + + [NullAllowed, Export ("parentSpanId", ArgumentSemantic.Copy)] + string ParentSpanId { get; } + + [NullAllowed, Export ("rulePsr", ArgumentSemantic.Strong)] + NSNumber RulePsr { get; } + + [NullAllowed, Export ("sdkName", ArgumentSemantic.Copy)] + string SdkName { get; } + + [NullAllowed, Export ("session", ArgumentSemantic.Strong)] + DDRUMResourceEventDDSession Session { get; } + + [NullAllowed, Export ("spanId", ArgumentSemantic.Copy)] + string SpanId { get; } + + [NullAllowed, Export ("traceId", ArgumentSemantic.Copy)] + string TraceId { get; } + } + + // @interface DDRUMResourceEventDDConfiguration + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventDDConfiguration + { + [NullAllowed, Export ("profilingSampleRate", ArgumentSemantic.Strong)] + NSNumber ProfilingSampleRate { get; } + + [NullAllowed, Export ("sessionReplaySampleRate", ArgumentSemantic.Strong)] + NSNumber SessionReplaySampleRate { get; } + + [Export ("sessionSampleRate", ArgumentSemantic.Strong)] + NSNumber SessionSampleRate { get; } + + [NullAllowed, Export ("traceSampleRate", ArgumentSemantic.Strong)] + NSNumber TraceSampleRate { get; } + } + + // @interface DDRUMResourceEventDDSession + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventDDSession + { + [Export ("plan")] + DDRUMResourceEventDDSessionPlan Plan { get; } + + [Export ("sessionPrecondition")] + DDRUMResourceEventDDSessionRUMSessionPrecondition SessionPrecondition { get; } + } + + // @interface DDRUMResourceEventDevice + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventDevice + { + [NullAllowed, Export ("architecture", ArgumentSemantic.Copy)] + string Architecture { get; } + + [NullAllowed, Export ("batteryLevel", ArgumentSemantic.Strong)] + NSNumber BatteryLevel { get; } + + [NullAllowed, Export ("brand", ArgumentSemantic.Copy)] + string Brand { get; } + + [NullAllowed, Export ("brightnessLevel", ArgumentSemantic.Strong)] + NSNumber BrightnessLevel { get; } + + [NullAllowed, Export ("isLowRam", ArgumentSemantic.Strong)] + NSNumber IsLowRam { get; } + + [NullAllowed, Export ("locale", ArgumentSemantic.Copy)] + string Locale { get; } + + [NullAllowed, Export ("locales", ArgumentSemantic.Copy)] + string[] Locales { get; } + + [NullAllowed, Export ("logicalCpuCount", ArgumentSemantic.Strong)] + NSNumber LogicalCpuCount { get; } + + [NullAllowed, Export ("model", ArgumentSemantic.Copy)] + string Model { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [NullAllowed, Export ("powerSavingMode", ArgumentSemantic.Strong)] + NSNumber PowerSavingMode { get; } + + [NullAllowed, Export ("timeZone", ArgumentSemantic.Copy)] + string TimeZone { get; } + + [NullAllowed, Export ("totalRam", ArgumentSemantic.Strong)] + NSNumber TotalRam { get; } + + [Export ("type")] + DDRUMResourceEventDeviceDeviceType Type { get; } + } + + // @interface DDRUMResourceEventDisplay + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventDisplay + { + [NullAllowed, Export ("viewport", ArgumentSemantic.Strong)] + DDRUMResourceEventDisplayViewport Viewport { get; } + } + + // @interface DDRUMResourceEventDisplayViewport + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventDisplayViewport + { + [Export ("height", ArgumentSemantic.Strong)] + NSNumber Height { get; } + + [Export ("width", ArgumentSemantic.Strong)] + NSNumber Width { get; } + } + + // @interface DDRUMResourceEventOperatingSystem + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventOperatingSystem + { + [NullAllowed, Export ("build", ArgumentSemantic.Copy)] + string Build { get; } + + [Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("version", ArgumentSemantic.Copy)] + string Version { get; } + + [Export ("versionMajor", ArgumentSemantic.Copy)] + string VersionMajor { get; } + } + + // @interface DDRUMResourceEventRUMAccount + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventRUMAccount + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("accountInfo", ArgumentSemantic.Copy)] + NSDictionary AccountInfo { get; set; } + } + + // @interface DDRUMResourceEventRUMCITest + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventRUMCITest + { + [Export ("testExecutionId", ArgumentSemantic.Copy)] + string TestExecutionId { get; } + } + + // @interface DDRUMResourceEventRUMConnectivity + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventRUMConnectivity + { + [NullAllowed, Export ("cellular", ArgumentSemantic.Strong)] + DDRUMResourceEventRUMConnectivityCellular Cellular { get; } + + [Export ("effectiveType")] + DDRUMResourceEventRUMConnectivityEffectiveType EffectiveType { get; } + + [NullAllowed, Export ("interfaces", ArgumentSemantic.Copy)] + NSNumber[] Interfaces { get; } + + [Export ("status")] + DDRUMResourceEventRUMConnectivityStatus Status { get; } + } + + // @interface DDRUMResourceEventRUMConnectivityCellular + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventRUMConnectivityCellular + { + [NullAllowed, Export ("carrierName", ArgumentSemantic.Copy)] + string CarrierName { get; } + + [NullAllowed, Export ("technology", ArgumentSemantic.Copy)] + string Technology { get; } + } + + // @interface DDRUMResourceEventRUMEventAttributes + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventRUMEventAttributes + { + [Export ("contextInfo", ArgumentSemantic.Copy)] + NSDictionary ContextInfo { get; set; } + } + + // @interface DDRUMResourceEventRUMSyntheticsTest + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventRUMSyntheticsTest + { + [NullAllowed, Export ("injected", ArgumentSemantic.Strong)] + NSNumber Injected { get; } + + [Export ("resultId", ArgumentSemantic.Copy)] + string ResultId { get; } + + [Export ("testId", ArgumentSemantic.Copy)] + string TestId { get; } + + [Export ("syntheticsInfo", ArgumentSemantic.Copy)] + NSDictionary SyntheticsInfo { get; set; } + } + + // @interface DDRUMResourceEventRUMUser + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventRUMUser + { + [NullAllowed, Export ("anonymousId", ArgumentSemantic.Copy)] + string AnonymousId { get; } + + [NullAllowed, Export ("email", ArgumentSemantic.Copy)] + string Email { get; } + + [NullAllowed, Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("usrInfo", ArgumentSemantic.Copy)] + NSDictionary UsrInfo { get; set; } + } + + // @interface DDRUMResourceEventResource + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventResource + { + [NullAllowed, Export ("connect", ArgumentSemantic.Strong)] + DDRUMResourceEventResourceConnect Connect { get; } + + [NullAllowed, Export ("decodedBodySize", ArgumentSemantic.Strong)] + NSNumber DecodedBodySize { get; } + + [Export ("deliveryType")] + DDRUMResourceEventResourceDeliveryType DeliveryType { get; } + + [NullAllowed, Export ("dns", ArgumentSemantic.Strong)] + DDRUMResourceEventResourceDNS Dns { get; } + + [NullAllowed, Export ("download", ArgumentSemantic.Strong)] + DDRUMResourceEventResourceDownload Download { get; } + + [NullAllowed, Export ("duration", ArgumentSemantic.Strong)] + NSNumber Duration { get; } + + [NullAllowed, Export ("encodedBodySize", ArgumentSemantic.Strong)] + NSNumber EncodedBodySize { get; } + + [NullAllowed, Export ("firstByte", ArgumentSemantic.Strong)] + DDRUMResourceEventResourceFirstByte FirstByte { get; } + + [NullAllowed, Export ("graphql", ArgumentSemantic.Strong)] + DDRUMResourceEventResourceRUMGraphql Graphql { get; } + + [NullAllowed, Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [Export ("method")] + DDRUMResourceEventResourceRUMMethod Method { get; } + + [NullAllowed, Export ("protocol", ArgumentSemantic.Copy)] + string Protocol { get; } + + [NullAllowed, Export ("provider", ArgumentSemantic.Strong)] + DDRUMResourceEventResourceProvider Provider { get; } + + [NullAllowed, Export ("redirect", ArgumentSemantic.Strong)] + DDRUMResourceEventResourceRedirect Redirect { get; } + + [Export ("renderBlockingStatus")] + DDRUMResourceEventResourceRenderBlockingStatus RenderBlockingStatus { get; } + + [NullAllowed, Export ("request", ArgumentSemantic.Strong)] + DDRUMResourceEventResourceRequest Request { get; } + + [NullAllowed, Export ("response", ArgumentSemantic.Strong)] + DDRUMResourceEventResourceResponse Response { get; } + + [NullAllowed, Export ("size", ArgumentSemantic.Strong)] + NSNumber Size { get; } + + [NullAllowed, Export ("ssl", ArgumentSemantic.Strong)] + DDRUMResourceEventResourceSSL Ssl { get; } + + [NullAllowed, Export ("statusCode", ArgumentSemantic.Strong)] + NSNumber StatusCode { get; } + + [NullAllowed, Export ("transferSize", ArgumentSemantic.Strong)] + NSNumber TransferSize { get; } + + [Export ("type")] + DDRUMResourceEventResourceResourceType Type { get; } + + [Export ("url", ArgumentSemantic.Copy)] + string Url { get; set; } + + [NullAllowed, Export ("worker", ArgumentSemantic.Strong)] + DDRUMResourceEventResourceWorker Worker { get; } + } + + // @interface DDRUMResourceEventResourceConnect + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventResourceConnect + { + [Export ("duration", ArgumentSemantic.Strong)] + NSNumber Duration { get; } + + [Export ("start", ArgumentSemantic.Strong)] + NSNumber Start { get; } + } + + // @interface DDRUMResourceEventResourceDNS + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventResourceDNS + { + [Export ("duration", ArgumentSemantic.Strong)] + NSNumber Duration { get; } + + [Export ("start", ArgumentSemantic.Strong)] + NSNumber Start { get; } + } + + // @interface DDRUMResourceEventResourceDownload + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventResourceDownload + { + [Export ("duration", ArgumentSemantic.Strong)] + NSNumber Duration { get; } + + [Export ("start", ArgumentSemantic.Strong)] + NSNumber Start { get; } + } + + // @interface DDRUMResourceEventResourceFirstByte + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventResourceFirstByte + { + [Export ("duration", ArgumentSemantic.Strong)] + NSNumber Duration { get; } + + [Export ("start", ArgumentSemantic.Strong)] + NSNumber Start { get; } + } + + // @interface DDRUMResourceEventResourceProvider + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventResourceProvider + { + [NullAllowed, Export ("domain", ArgumentSemantic.Copy)] + string Domain { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("type")] + DDRUMResourceEventResourceProviderProviderType Type { get; } + } + + // @interface DDRUMResourceEventResourceRUMGraphql + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventResourceRUMGraphql + { + [NullAllowed, Export ("errorCount", ArgumentSemantic.Strong)] + NSNumber ErrorCount { get; } + + [NullAllowed, Export ("errors", ArgumentSemantic.Copy)] + DDRUMResourceEventResourceRUMGraphqlErrors[] Errors { get; } + + [NullAllowed, Export ("operationName", ArgumentSemantic.Copy)] + string OperationName { get; } + + [Export ("operationType")] + DDRUMResourceEventResourceRUMGraphqlOperationType OperationType { get; } + + [NullAllowed, Export ("payload", ArgumentSemantic.Copy)] + string Payload { get; set; } + + [NullAllowed, Export ("variables", ArgumentSemantic.Copy)] + string Variables { get; set; } + } + + // @interface DDRUMResourceEventResourceRUMGraphqlErrors + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventResourceRUMGraphqlErrors + { + [NullAllowed, Export ("code", ArgumentSemantic.Copy)] + string Code { get; } + + [NullAllowed, Export ("locations", ArgumentSemantic.Copy)] + DDRUMResourceEventResourceRUMGraphqlErrorsLocations[] Locations { get; } + + [Export ("message", ArgumentSemantic.Copy)] + string Message { get; } + + [NullAllowed, Export ("path", ArgumentSemantic.Copy)] + DDRUMResourceEventResourceRUMGraphqlErrorsPath[] Path { get; } + } + + // @interface DDRUMResourceEventResourceRUMGraphqlErrorsLocations + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventResourceRUMGraphqlErrorsLocations + { + [Export ("column", ArgumentSemantic.Strong)] + NSNumber Column { get; } + + [Export ("line", ArgumentSemantic.Strong)] + NSNumber Line { get; } + } + + // @interface DDRUMResourceEventResourceRUMGraphqlErrorsPath + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventResourceRUMGraphqlErrorsPath + { + [NullAllowed, Export ("string", ArgumentSemantic.Copy)] + string String { get; } + + [NullAllowed, Export ("integer", ArgumentSemantic.Strong)] + NSNumber Integer { get; } + } + + // @interface DDRUMResourceEventResourceRedirect + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventResourceRedirect + { + [Export ("duration", ArgumentSemantic.Strong)] + NSNumber Duration { get; } + + [Export ("start", ArgumentSemantic.Strong)] + NSNumber Start { get; } + } + + // @interface DDRUMResourceEventResourceRequest + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventResourceRequest + { + [NullAllowed, Export ("decodedBodySize", ArgumentSemantic.Strong)] + NSNumber DecodedBodySize { get; } + + [NullAllowed, Export ("encodedBodySize", ArgumentSemantic.Strong)] + NSNumber EncodedBodySize { get; } + + [NullAllowed, Export ("headers", ArgumentSemantic.Strong)] + DDRUMResourceEventResourceRequestHeaders Headers { get; } + } + + // @interface DDRUMResourceEventResourceRequestHeaders + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventResourceRequestHeaders + { + [Export ("headersInfo", ArgumentSemantic.Copy)] + NSDictionary HeadersInfo { get; set; } + } + + // @interface DDRUMResourceEventResourceResponse + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventResourceResponse + { + [NullAllowed, Export ("headers", ArgumentSemantic.Strong)] + DDRUMResourceEventResourceResponseHeaders Headers { get; } + } + + // @interface DDRUMResourceEventResourceResponseHeaders + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventResourceResponseHeaders + { + [Export ("headersInfo", ArgumentSemantic.Copy)] + NSDictionary HeadersInfo { get; set; } + } + + // @interface DDRUMResourceEventResourceSSL + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventResourceSSL + { + [Export ("duration", ArgumentSemantic.Strong)] + NSNumber Duration { get; } + + [Export ("start", ArgumentSemantic.Strong)] + NSNumber Start { get; } + } + + // @interface DDRUMResourceEventResourceWorker + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventResourceWorker + { + [Export ("duration", ArgumentSemantic.Strong)] + NSNumber Duration { get; } + + [Export ("start", ArgumentSemantic.Strong)] + NSNumber Start { get; } + } + + // @interface DDRUMResourceEventSession + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventSession + { + [NullAllowed, Export ("hasReplay", ArgumentSemantic.Strong)] + NSNumber HasReplay { get; } + + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [Export ("type")] + DDRUMResourceEventSessionRUMSessionType Type { get; } + } + + // @interface DDRUMResourceEventStream + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventStream + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMResourceEventTAB + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventTAB + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMResourceEventView + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMResourceEventView + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; set; } + + [NullAllowed, Export ("referrer", ArgumentSemantic.Copy)] + string Referrer { get; set; } + + [Export ("url", ArgumentSemantic.Copy)] + string Url { get; set; } + } + + // @interface DDRUMTrackResourceHeaders + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMTrackResourceHeaders + { + [Static] + [Export ("disabled", ArgumentSemantic.Strong)] + DDRUMTrackResourceHeaders Disabled { get; } + + [Static] + [Export ("defaults", ArgumentSemantic.Strong)] + DDRUMTrackResourceHeaders Defaults { get; } + + [Static] + [Export ("custom:")] + DDRUMTrackResourceHeaders Custom (DDRUMHeaderCaptureRule[] rules); + } + + // @interface DDRUMURLSessionTracking + [BaseType (typeof(NSObject))] + interface DDRUMURLSessionTracking + { + [Export ("setFirstPartyHostsTracing:")] + void SetFirstPartyHostsTracing (DDRUMFirstPartyHostsTracing firstPartyHostsTracing); + + [Export ("setResourceAttributesProvider:")] + void SetResourceAttributesProvider (Func> provider); + + [Export ("setTrackResourceHeaders:")] + void SetTrackResourceHeaders (DDRUMTrackResourceHeaders trackResourceHeaders); + } + + // @interface DDRUMView + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMView + { + [Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("attributes", ArgumentSemantic.Copy)] + NSDictionary Attributes { get; } + + [Export ("initWithName:attributes:")] + NativeHandle Constructor (string name, NSDictionary attributes); + } + + // @interface DDRUMViewEvent + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEvent + { + [Export ("dd", ArgumentSemantic.Strong)] + DDRUMViewEventDD Dd { get; } + + [NullAllowed, Export ("account", ArgumentSemantic.Strong)] + DDRUMViewEventRUMAccount Account { get; } + + [Export ("application", ArgumentSemantic.Strong)] + DDRUMViewEventApplication Application { get; } + + [NullAllowed, Export ("buildId", ArgumentSemantic.Copy)] + string BuildId { get; } + + [NullAllowed, Export ("buildVersion", ArgumentSemantic.Copy)] + string BuildVersion { get; } + + [NullAllowed, Export ("ciTest", ArgumentSemantic.Strong)] + DDRUMViewEventRUMCITest CiTest { get; } + + [NullAllowed, Export ("connectivity", ArgumentSemantic.Strong)] + DDRUMViewEventRUMConnectivity Connectivity { get; } + + [NullAllowed, Export ("container", ArgumentSemantic.Strong)] + DDRUMViewEventContainer Container { get; } + + [NullAllowed, Export ("context", ArgumentSemantic.Strong)] + DDRUMViewEventRUMEventAttributes Context { get; } + + [Export ("date", ArgumentSemantic.Strong)] + NSNumber Date { get; } + + [NullAllowed, Export ("ddtags", ArgumentSemantic.Copy)] + string Ddtags { get; } + + [NullAllowed, Export ("device", ArgumentSemantic.Strong)] + DDRUMViewEventDevice Device { get; } + + [NullAllowed, Export ("display", ArgumentSemantic.Strong)] + DDRUMViewEventDisplay Display { get; } + + [NullAllowed, Export ("featureFlags", ArgumentSemantic.Strong)] + DDRUMViewEventFeatureFlags FeatureFlags { get; } + + [NullAllowed, Export ("os", ArgumentSemantic.Strong)] + DDRUMViewEventOperatingSystem Os { get; } + + [NullAllowed, Export ("privacy", ArgumentSemantic.Strong)] + DDRUMViewEventPrivacy Privacy { get; } + + [NullAllowed, Export ("service", ArgumentSemantic.Copy)] + string Service { get; } + + [Export ("session", ArgumentSemantic.Strong)] + DDRUMViewEventSession Session { get; } + + [Export ("source")] + DDRUMViewEventSource Source { get; } + + [NullAllowed, Export ("stream", ArgumentSemantic.Strong)] + DDRUMViewEventStream Stream { get; } + + [NullAllowed, Export ("synthetics", ArgumentSemantic.Strong)] + DDRUMViewEventRUMSyntheticsTest Synthetics { get; } + + [NullAllowed, Export ("tab", ArgumentSemantic.Strong)] + DDRUMViewEventTAB Tab { get; } + + [Export ("type", ArgumentSemantic.Copy)] + string Type { get; } + + [NullAllowed, Export ("usr", ArgumentSemantic.Strong)] + DDRUMViewEventRUMUser Usr { get; } + + [NullAllowed, Export ("version", ArgumentSemantic.Copy)] + string Version { get; } + + [Export ("view", ArgumentSemantic.Strong)] + DDRUMViewEventView View { get; } + } + + // @interface DDRUMViewEventApplication + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventApplication + { + [NullAllowed, Export ("currentLocale", ArgumentSemantic.Copy)] + string CurrentLocale { get; } + + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMViewEventContainer + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventContainer + { + [Export ("source")] + DDRUMViewEventContainerSource Source { get; } + + [Export ("view", ArgumentSemantic.Strong)] + DDRUMViewEventContainerView View { get; } + } + + // @interface DDRUMViewEventContainerView + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventContainerView + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMViewEventDD + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventDD + { + [NullAllowed, Export ("browserSdkVersion", ArgumentSemantic.Copy)] + string BrowserSdkVersion { get; } + + [NullAllowed, Export ("cls", ArgumentSemantic.Strong)] + DDRUMViewEventDDCLS Cls { get; } + + [NullAllowed, Export ("configuration", ArgumentSemantic.Strong)] + DDRUMViewEventDDConfiguration Configuration { get; } + + [Export ("documentVersion", ArgumentSemantic.Strong)] + NSNumber DocumentVersion { get; } + + [Export ("formatVersion", ArgumentSemantic.Strong)] + NSNumber FormatVersion { get; } + + [NullAllowed, Export ("pageStates", ArgumentSemantic.Copy)] + DDRUMViewEventDDPageStates[] PageStates { get; } + + [NullAllowed, Export ("profiling", ArgumentSemantic.Strong)] + DDRUMViewEventDDProfiling Profiling { get; } + + [NullAllowed, Export ("replayStats", ArgumentSemantic.Strong)] + DDRUMViewEventDDReplayStats ReplayStats { get; } + + [NullAllowed, Export ("sdkName", ArgumentSemantic.Copy)] + string SdkName { get; } + + [NullAllowed, Export ("session", ArgumentSemantic.Strong)] + DDRUMViewEventDDSession Session { get; } + } + + // @interface DDRUMViewEventDDCLS + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventDDCLS + { + [NullAllowed, Export ("devicePixelRatio", ArgumentSemantic.Strong)] + NSNumber DevicePixelRatio { get; } + } + + // @interface DDRUMViewEventDDConfiguration + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventDDConfiguration + { + [NullAllowed, Export ("profilingSampleRate", ArgumentSemantic.Strong)] + NSNumber ProfilingSampleRate { get; } + + [NullAllowed, Export ("sessionReplaySampleRate", ArgumentSemantic.Strong)] + NSNumber SessionReplaySampleRate { get; } + + [Export ("sessionSampleRate", ArgumentSemantic.Strong)] + NSNumber SessionSampleRate { get; } + + [NullAllowed, Export ("startSessionReplayRecordingManually", ArgumentSemantic.Strong)] + NSNumber StartSessionReplayRecordingManually { get; } + + [NullAllowed, Export ("traceSampleRate", ArgumentSemantic.Strong)] + NSNumber TraceSampleRate { get; } + } + + // @interface DDRUMViewEventDDPageStates + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventDDPageStates + { + [Export ("start", ArgumentSemantic.Strong)] + NSNumber Start { get; } + + [Export ("state")] + DDRUMViewEventDDPageStatesState State { get; } + } + + // @interface DDRUMViewEventDDProfiling + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventDDProfiling + { + [Export ("errorReason")] + DDRUMViewEventDDProfilingErrorReason ErrorReason { get; } + + [Export ("quotaReason")] + DDRUMViewEventDDProfilingQuotaReason QuotaReason { get; } + + [Export ("status")] + DDRUMViewEventDDProfilingStatus Status { get; } + } + + // @interface DDRUMViewEventDDReplayStats + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventDDReplayStats + { + [NullAllowed, Export ("recordsCount", ArgumentSemantic.Strong)] + NSNumber RecordsCount { get; } + + [NullAllowed, Export ("segmentsCount", ArgumentSemantic.Strong)] + NSNumber SegmentsCount { get; } + + [NullAllowed, Export ("segmentsTotalRawSize", ArgumentSemantic.Strong)] + NSNumber SegmentsTotalRawSize { get; } + } + + // @interface DDRUMViewEventDDSession + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventDDSession + { + [Export ("plan")] + DDRUMViewEventDDSessionPlan Plan { get; } + + [Export ("sessionPrecondition")] + DDRUMViewEventDDSessionRUMSessionPrecondition SessionPrecondition { get; } + } + + // @interface DDRUMViewEventDevice + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventDevice + { + [NullAllowed, Export ("architecture", ArgumentSemantic.Copy)] + string Architecture { get; } + + [NullAllowed, Export ("batteryLevel", ArgumentSemantic.Strong)] + NSNumber BatteryLevel { get; } + + [NullAllowed, Export ("brand", ArgumentSemantic.Copy)] + string Brand { get; } + + [NullAllowed, Export ("brightnessLevel", ArgumentSemantic.Strong)] + NSNumber BrightnessLevel { get; } + + [NullAllowed, Export ("isLowRam", ArgumentSemantic.Strong)] + NSNumber IsLowRam { get; } + + [NullAllowed, Export ("locale", ArgumentSemantic.Copy)] + string Locale { get; } + + [NullAllowed, Export ("locales", ArgumentSemantic.Copy)] + string[] Locales { get; } + + [NullAllowed, Export ("logicalCpuCount", ArgumentSemantic.Strong)] + NSNumber LogicalCpuCount { get; } + + [NullAllowed, Export ("model", ArgumentSemantic.Copy)] + string Model { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [NullAllowed, Export ("powerSavingMode", ArgumentSemantic.Strong)] + NSNumber PowerSavingMode { get; } + + [NullAllowed, Export ("timeZone", ArgumentSemantic.Copy)] + string TimeZone { get; } + + [NullAllowed, Export ("totalRam", ArgumentSemantic.Strong)] + NSNumber TotalRam { get; } + + [Export ("type")] + DDRUMViewEventDeviceDeviceType Type { get; } + } + + // @interface DDRUMViewEventDisplay + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventDisplay + { + [NullAllowed, Export ("scroll", ArgumentSemantic.Strong)] + DDRUMViewEventDisplayScroll Scroll { get; } + + [NullAllowed, Export ("viewport", ArgumentSemantic.Strong)] + DDRUMViewEventDisplayViewport Viewport { get; } + } + + // @interface DDRUMViewEventDisplayScroll + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventDisplayScroll + { + [Export ("maxDepth", ArgumentSemantic.Strong)] + NSNumber MaxDepth { get; } + + [Export ("maxDepthScrollTop", ArgumentSemantic.Strong)] + NSNumber MaxDepthScrollTop { get; } + + [Export ("maxScrollHeight", ArgumentSemantic.Strong)] + NSNumber MaxScrollHeight { get; } + + [Export ("maxScrollHeightTime", ArgumentSemantic.Strong)] + NSNumber MaxScrollHeightTime { get; } + } + + // @interface DDRUMViewEventDisplayViewport + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventDisplayViewport + { + [Export ("height", ArgumentSemantic.Strong)] + NSNumber Height { get; } + + [Export ("width", ArgumentSemantic.Strong)] + NSNumber Width { get; } + } + + // @interface DDRUMViewEventFeatureFlags + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventFeatureFlags + { + [Export ("featureFlagsInfo", ArgumentSemantic.Copy)] + NSDictionary FeatureFlagsInfo { get; set; } + } + + // @interface DDRUMViewEventOperatingSystem + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventOperatingSystem + { + [NullAllowed, Export ("build", ArgumentSemantic.Copy)] + string Build { get; } + + [Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("version", ArgumentSemantic.Copy)] + string Version { get; } + + [Export ("versionMajor", ArgumentSemantic.Copy)] + string VersionMajor { get; } + } + + // @interface DDRUMViewEventPrivacy + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventPrivacy + { + [Export ("replayLevel")] + DDRUMViewEventPrivacyReplayLevel ReplayLevel { get; } + } + + // @interface DDRUMViewEventRUMAccount + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventRUMAccount + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("accountInfo", ArgumentSemantic.Copy)] + NSDictionary AccountInfo { get; set; } + } + + // @interface DDRUMViewEventRUMCITest + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventRUMCITest + { + [Export ("testExecutionId", ArgumentSemantic.Copy)] + string TestExecutionId { get; } + } + + // @interface DDRUMViewEventRUMConnectivity + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventRUMConnectivity + { + [NullAllowed, Export ("cellular", ArgumentSemantic.Strong)] + DDRUMViewEventRUMConnectivityCellular Cellular { get; } + + [Export ("effectiveType")] + DDRUMViewEventRUMConnectivityEffectiveType EffectiveType { get; } + + [NullAllowed, Export ("interfaces", ArgumentSemantic.Copy)] + NSNumber[] Interfaces { get; } + + [Export ("status")] + DDRUMViewEventRUMConnectivityStatus Status { get; } + } + + // @interface DDRUMViewEventRUMConnectivityCellular + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventRUMConnectivityCellular + { + [NullAllowed, Export ("carrierName", ArgumentSemantic.Copy)] + string CarrierName { get; } + + [NullAllowed, Export ("technology", ArgumentSemantic.Copy)] + string Technology { get; } + } + + // @interface DDRUMViewEventRUMEventAttributes + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventRUMEventAttributes + { + [Export ("contextInfo", ArgumentSemantic.Copy)] + NSDictionary ContextInfo { get; set; } + } + + // @interface DDRUMViewEventRUMSyntheticsTest + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventRUMSyntheticsTest + { + [NullAllowed, Export ("injected", ArgumentSemantic.Strong)] + NSNumber Injected { get; } + + [Export ("resultId", ArgumentSemantic.Copy)] + string ResultId { get; } + + [Export ("testId", ArgumentSemantic.Copy)] + string TestId { get; } + + [Export ("syntheticsInfo", ArgumentSemantic.Copy)] + NSDictionary SyntheticsInfo { get; set; } + } + + // @interface DDRUMViewEventRUMUser + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventRUMUser + { + [NullAllowed, Export ("anonymousId", ArgumentSemantic.Copy)] + string AnonymousId { get; } + + [NullAllowed, Export ("email", ArgumentSemantic.Copy)] + string Email { get; } + + [NullAllowed, Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("usrInfo", ArgumentSemantic.Copy)] + NSDictionary UsrInfo { get; set; } + } + + // @interface DDRUMViewEventSession + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventSession + { + [NullAllowed, Export ("hasReplay", ArgumentSemantic.Strong)] + NSNumber HasReplay { get; } + + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("isActive", ArgumentSemantic.Strong)] + NSNumber IsActive { get; } + + [NullAllowed, Export ("sampledForReplay", ArgumentSemantic.Strong)] + NSNumber SampledForReplay { get; } + + [Export ("type")] + DDRUMViewEventSessionRUMSessionType Type { get; } + } + + // @interface DDRUMViewEventStream + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventStream + { + [NullAllowed, Export ("bitrate", ArgumentSemantic.Strong)] + NSNumber Bitrate { get; } + + [NullAllowed, Export ("completionPercent", ArgumentSemantic.Strong)] + NSNumber CompletionPercent { get; } + + [NullAllowed, Export ("duration", ArgumentSemantic.Strong)] + NSNumber Duration { get; } + + [NullAllowed, Export ("format", ArgumentSemantic.Copy)] + string Format { get; } + + [NullAllowed, Export ("fps", ArgumentSemantic.Strong)] + NSNumber Fps { get; } + + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("resolution", ArgumentSemantic.Copy)] + string Resolution { get; } + + [NullAllowed, Export ("timestamp", ArgumentSemantic.Strong)] + NSNumber Timestamp { get; } + + [NullAllowed, Export ("watchTime", ArgumentSemantic.Strong)] + NSNumber WatchTime { get; } + } + + // @interface DDRUMViewEventTAB + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventTAB + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMViewEventView + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventView + { + [NullAllowed, Export ("accessibility", ArgumentSemantic.Strong)] + DDRUMViewEventViewAccessibility Accessibility { get; } + + [Export ("action", ArgumentSemantic.Strong)] + DDRUMViewEventViewAction Action { get; } + + [NullAllowed, Export ("cpuTicksCount", ArgumentSemantic.Strong)] + NSNumber CpuTicksCount { get; } + + [NullAllowed, Export ("cpuTicksPerSecond", ArgumentSemantic.Strong)] + NSNumber CpuTicksPerSecond { get; } + + [NullAllowed, Export ("crash", ArgumentSemantic.Strong)] + DDRUMViewEventViewCrash Crash { get; } + + [NullAllowed, Export ("cumulativeLayoutShift", ArgumentSemantic.Strong)] + NSNumber CumulativeLayoutShift { get; } + + [NullAllowed, Export ("cumulativeLayoutShiftTargetSelector", ArgumentSemantic.Copy)] + string CumulativeLayoutShiftTargetSelector { get; } + + [NullAllowed, Export ("cumulativeLayoutShiftTime", ArgumentSemantic.Strong)] + NSNumber CumulativeLayoutShiftTime { get; } + + [NullAllowed, Export ("customTimings", ArgumentSemantic.Strong)] + DDRUMViewEventViewCustomTimings CustomTimings { get; } + + [NullAllowed, Export ("domComplete", ArgumentSemantic.Strong)] + NSNumber DomComplete { get; } + + [NullAllowed, Export ("domContentLoaded", ArgumentSemantic.Strong)] + NSNumber DomContentLoaded { get; } + + [NullAllowed, Export ("domInteractive", ArgumentSemantic.Strong)] + NSNumber DomInteractive { get; } + + [Export ("error", ArgumentSemantic.Strong)] + DDRUMViewEventViewError Error { get; } + + [NullAllowed, Export ("firstByte", ArgumentSemantic.Strong)] + NSNumber FirstByte { get; } + + [NullAllowed, Export ("firstContentfulPaint", ArgumentSemantic.Strong)] + NSNumber FirstContentfulPaint { get; } + + [NullAllowed, Export ("firstInputDelay", ArgumentSemantic.Strong)] + NSNumber FirstInputDelay { get; } + + [NullAllowed, Export ("firstInputTargetSelector", ArgumentSemantic.Copy)] + string FirstInputTargetSelector { get; } + + [NullAllowed, Export ("firstInputTime", ArgumentSemantic.Strong)] + NSNumber FirstInputTime { get; } + + [NullAllowed, Export ("flutterBuildTime", ArgumentSemantic.Strong)] + DDRUMViewEventViewFlutterBuildTime FlutterBuildTime { get; } + + [NullAllowed, Export ("flutterRasterTime", ArgumentSemantic.Strong)] + DDRUMViewEventViewFlutterRasterTime FlutterRasterTime { get; } + + [NullAllowed, Export ("freezeRate", ArgumentSemantic.Strong)] + NSNumber FreezeRate { get; } + + [NullAllowed, Export ("frozenFrame", ArgumentSemantic.Strong)] + DDRUMViewEventViewFrozenFrame FrozenFrame { get; } + + [NullAllowed, Export ("frustration", ArgumentSemantic.Strong)] + DDRUMViewEventViewFrustration Frustration { get; } + + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("inForegroundPeriods", ArgumentSemantic.Copy)] + DDRUMViewEventViewInForegroundPeriods[] InForegroundPeriods { get; } + + [NullAllowed, Export ("interactionToNextPaint", ArgumentSemantic.Strong)] + NSNumber InteractionToNextPaint { get; } + + [NullAllowed, Export ("interactionToNextPaintTargetSelector", ArgumentSemantic.Copy)] + string InteractionToNextPaintTargetSelector { get; } + + [NullAllowed, Export ("interactionToNextPaintTime", ArgumentSemantic.Strong)] + NSNumber InteractionToNextPaintTime { get; } + + [NullAllowed, Export ("interactionToNextViewTime", ArgumentSemantic.Strong)] + NSNumber InteractionToNextViewTime { get; } + + [NullAllowed, Export ("isActive", ArgumentSemantic.Strong)] + NSNumber IsActive { get; } + + [NullAllowed, Export ("isSlowRendered", ArgumentSemantic.Strong)] + NSNumber IsSlowRendered { get; } + + [NullAllowed, Export ("jsRefreshRate", ArgumentSemantic.Strong)] + DDRUMViewEventViewJsRefreshRate JsRefreshRate { get; } + + [NullAllowed, Export ("largestContentfulPaint", ArgumentSemantic.Strong)] + NSNumber LargestContentfulPaint { get; } + + [NullAllowed, Export ("largestContentfulPaintTargetSelector", ArgumentSemantic.Copy)] + string LargestContentfulPaintTargetSelector { get; } + + [NullAllowed, Export ("loadEvent", ArgumentSemantic.Strong)] + NSNumber LoadEvent { get; } + + [NullAllowed, Export ("loadingTime", ArgumentSemantic.Strong)] + NSNumber LoadingTime { get; } + + [Export ("loadingType")] + DDRUMViewEventViewLoadingType LoadingType { get; } + + [NullAllowed, Export ("longTask", ArgumentSemantic.Strong)] + DDRUMViewEventViewLongTask LongTask { get; } + + [NullAllowed, Export ("memoryAverage", ArgumentSemantic.Strong)] + NSNumber MemoryAverage { get; } + + [NullAllowed, Export ("memoryMax", ArgumentSemantic.Strong)] + NSNumber MemoryMax { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; set; } + + [NullAllowed, Export ("networkSettledTime", ArgumentSemantic.Strong)] + NSNumber NetworkSettledTime { get; } + + [NullAllowed, Export ("performance", ArgumentSemantic.Strong)] + DDRUMViewEventViewPerformance Performance { get; } + + [NullAllowed, Export ("referrer", ArgumentSemantic.Copy)] + string Referrer { get; set; } + + [NullAllowed, Export ("refreshRateAverage", ArgumentSemantic.Strong)] + NSNumber RefreshRateAverage { get; } + + [NullAllowed, Export ("refreshRateMin", ArgumentSemantic.Strong)] + NSNumber RefreshRateMin { get; } + + [Export ("resource", ArgumentSemantic.Strong)] + DDRUMViewEventViewResource Resource { get; } + + [NullAllowed, Export ("slowFrames", ArgumentSemantic.Copy)] + DDRUMViewEventViewSlowFrames[] SlowFrames { get; } + + [NullAllowed, Export ("slowFramesRate", ArgumentSemantic.Strong)] + NSNumber SlowFramesRate { get; } + + [Export ("timeSpent", ArgumentSemantic.Strong)] + NSNumber TimeSpent { get; } + + [Export ("url", ArgumentSemantic.Copy)] + string Url { get; set; } + } + + // @interface DDRUMViewEventViewAccessibility + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventViewAccessibility + { + [NullAllowed, Export ("assistiveSwitchEnabled", ArgumentSemantic.Strong)] + NSNumber AssistiveSwitchEnabled { get; } + + [NullAllowed, Export ("assistiveTouchEnabled", ArgumentSemantic.Strong)] + NSNumber AssistiveTouchEnabled { get; } + + [NullAllowed, Export ("boldTextEnabled", ArgumentSemantic.Strong)] + NSNumber BoldTextEnabled { get; } + + [NullAllowed, Export ("buttonShapesEnabled", ArgumentSemantic.Strong)] + NSNumber ButtonShapesEnabled { get; } + + [NullAllowed, Export ("closedCaptioningEnabled", ArgumentSemantic.Strong)] + NSNumber ClosedCaptioningEnabled { get; } + + [NullAllowed, Export ("grayscaleEnabled", ArgumentSemantic.Strong)] + NSNumber GrayscaleEnabled { get; } + + [NullAllowed, Export ("increaseContrastEnabled", ArgumentSemantic.Strong)] + NSNumber IncreaseContrastEnabled { get; } + + [NullAllowed, Export ("invertColorsEnabled", ArgumentSemantic.Strong)] + NSNumber InvertColorsEnabled { get; } + + [NullAllowed, Export ("monoAudioEnabled", ArgumentSemantic.Strong)] + NSNumber MonoAudioEnabled { get; } + + [NullAllowed, Export ("onOffSwitchLabelsEnabled", ArgumentSemantic.Strong)] + NSNumber OnOffSwitchLabelsEnabled { get; } + + [NullAllowed, Export ("reduceMotionEnabled", ArgumentSemantic.Strong)] + NSNumber ReduceMotionEnabled { get; } + + [NullAllowed, Export ("reduceTransparencyEnabled", ArgumentSemantic.Strong)] + NSNumber ReduceTransparencyEnabled { get; } + + [NullAllowed, Export ("reducedAnimationsEnabled", ArgumentSemantic.Strong)] + NSNumber ReducedAnimationsEnabled { get; } + + [NullAllowed, Export ("rtlEnabled", ArgumentSemantic.Strong)] + NSNumber RtlEnabled { get; } + + [NullAllowed, Export ("screenReaderEnabled", ArgumentSemantic.Strong)] + NSNumber ScreenReaderEnabled { get; } + + [NullAllowed, Export ("shakeToUndoEnabled", ArgumentSemantic.Strong)] + NSNumber ShakeToUndoEnabled { get; } + + [NullAllowed, Export ("shouldDifferentiateWithoutColor", ArgumentSemantic.Strong)] + NSNumber ShouldDifferentiateWithoutColor { get; } + + [NullAllowed, Export ("singleAppModeEnabled", ArgumentSemantic.Strong)] + NSNumber SingleAppModeEnabled { get; } + + [NullAllowed, Export ("speakScreenEnabled", ArgumentSemantic.Strong)] + NSNumber SpeakScreenEnabled { get; } + + [NullAllowed, Export ("speakSelectionEnabled", ArgumentSemantic.Strong)] + NSNumber SpeakSelectionEnabled { get; } + + [NullAllowed, Export ("textSize", ArgumentSemantic.Copy)] + string TextSize { get; } + + [NullAllowed, Export ("videoAutoplayEnabled", ArgumentSemantic.Strong)] + NSNumber VideoAutoplayEnabled { get; } + } + + // @interface DDRUMViewEventViewAction + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventViewAction + { + [Export ("count", ArgumentSemantic.Strong)] + NSNumber Count { get; } + } + + // @interface DDRUMViewEventViewCrash + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventViewCrash + { + [Export ("count", ArgumentSemantic.Strong)] + NSNumber Count { get; } + } + + // @interface DDRUMViewEventViewCustomTimings + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventViewCustomTimings + { + [Export ("customTimingsInfo", ArgumentSemantic.Copy)] + NSDictionary CustomTimingsInfo { get; set; } + } + + // @interface DDRUMViewEventViewError + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventViewError + { + [Export ("count", ArgumentSemantic.Strong)] + NSNumber Count { get; } + } + + // @interface DDRUMViewEventViewFlutterBuildTime + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventViewFlutterBuildTime + { + [Export ("average", ArgumentSemantic.Strong)] + NSNumber Average { get; } + + [Export ("max", ArgumentSemantic.Strong)] + NSNumber Max { get; } + + [NullAllowed, Export ("metricMax", ArgumentSemantic.Strong)] + NSNumber MetricMax { get; } + + [Export ("min", ArgumentSemantic.Strong)] + NSNumber Min { get; } + } + + // @interface DDRUMViewEventViewFlutterRasterTime + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventViewFlutterRasterTime + { + [Export ("average", ArgumentSemantic.Strong)] + NSNumber Average { get; } + + [Export ("max", ArgumentSemantic.Strong)] + NSNumber Max { get; } + + [NullAllowed, Export ("metricMax", ArgumentSemantic.Strong)] + NSNumber MetricMax { get; } + + [Export ("min", ArgumentSemantic.Strong)] + NSNumber Min { get; } + } + + // @interface DDRUMViewEventViewFrozenFrame + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventViewFrozenFrame + { + [Export ("count", ArgumentSemantic.Strong)] + NSNumber Count { get; } + } + + // @interface DDRUMViewEventViewFrustration + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventViewFrustration + { + [Export ("count", ArgumentSemantic.Strong)] + NSNumber Count { get; } + } + + // @interface DDRUMViewEventViewInForegroundPeriods + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventViewInForegroundPeriods + { + [Export ("duration", ArgumentSemantic.Strong)] + NSNumber Duration { get; } + + [Export ("start", ArgumentSemantic.Strong)] + NSNumber Start { get; } + } + + // @interface DDRUMViewEventViewJsRefreshRate + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventViewJsRefreshRate + { + [Export ("average", ArgumentSemantic.Strong)] + NSNumber Average { get; } + + [Export ("max", ArgumentSemantic.Strong)] + NSNumber Max { get; } + + [NullAllowed, Export ("metricMax", ArgumentSemantic.Strong)] + NSNumber MetricMax { get; } + + [Export ("min", ArgumentSemantic.Strong)] + NSNumber Min { get; } + } + + // @interface DDRUMViewEventViewLongTask + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventViewLongTask + { + [Export ("count", ArgumentSemantic.Strong)] + NSNumber Count { get; } + } + + // @interface DDRUMViewEventViewPerformance + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventViewPerformance + { + [NullAllowed, Export ("cls", ArgumentSemantic.Strong)] + DDRUMViewEventViewPerformanceCLS Cls { get; } + + [NullAllowed, Export ("fbc", ArgumentSemantic.Strong)] + DDRUMViewEventViewPerformanceFBC Fbc { get; } + + [NullAllowed, Export ("fcp", ArgumentSemantic.Strong)] + DDRUMViewEventViewPerformanceFCP Fcp { get; } + + [NullAllowed, Export ("fid", ArgumentSemantic.Strong)] + DDRUMViewEventViewPerformanceFID Fid { get; } + + [NullAllowed, Export ("inp", ArgumentSemantic.Strong)] + DDRUMViewEventViewPerformanceINP Inp { get; } + + [NullAllowed, Export ("lcp", ArgumentSemantic.Strong)] + DDRUMViewEventViewPerformanceLCP Lcp { get; } + } + + // @interface DDRUMViewEventViewPerformanceCLS + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventViewPerformanceCLS + { + [NullAllowed, Export ("currentRect", ArgumentSemantic.Strong)] + DDRUMViewEventViewPerformanceCLSCurrentRect CurrentRect { get; } + + [NullAllowed, Export ("previousRect", ArgumentSemantic.Strong)] + DDRUMViewEventViewPerformanceCLSPreviousRect PreviousRect { get; } + + [Export ("score", ArgumentSemantic.Strong)] + NSNumber Score { get; } + + [NullAllowed, Export ("targetSelector", ArgumentSemantic.Copy)] + string TargetSelector { get; } + + [NullAllowed, Export ("timestamp", ArgumentSemantic.Strong)] + NSNumber Timestamp { get; } + } + + // @interface DDRUMViewEventViewPerformanceCLSCurrentRect + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventViewPerformanceCLSCurrentRect + { + [Export ("height", ArgumentSemantic.Strong)] + NSNumber Height { get; } + + [Export ("width", ArgumentSemantic.Strong)] + NSNumber Width { get; } + + [Export ("x", ArgumentSemantic.Strong)] + NSNumber X { get; } + + [Export ("y", ArgumentSemantic.Strong)] + NSNumber Y { get; } + } + + // @interface DDRUMViewEventViewPerformanceCLSPreviousRect + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventViewPerformanceCLSPreviousRect + { + [Export ("height", ArgumentSemantic.Strong)] + NSNumber Height { get; } + + [Export ("width", ArgumentSemantic.Strong)] + NSNumber Width { get; } + + [Export ("x", ArgumentSemantic.Strong)] + NSNumber X { get; } + + [Export ("y", ArgumentSemantic.Strong)] + NSNumber Y { get; } + } + + // @interface DDRUMViewEventViewPerformanceFBC + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventViewPerformanceFBC + { + [Export ("timestamp", ArgumentSemantic.Strong)] + NSNumber Timestamp { get; } + } + + // @interface DDRUMViewEventViewPerformanceFCP + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventViewPerformanceFCP + { + [Export ("timestamp", ArgumentSemantic.Strong)] + NSNumber Timestamp { get; } + } + + // @interface DDRUMViewEventViewPerformanceFID + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventViewPerformanceFID + { + [Export ("duration", ArgumentSemantic.Strong)] + NSNumber Duration { get; } + + [NullAllowed, Export ("targetSelector", ArgumentSemantic.Copy)] + string TargetSelector { get; } + + [Export ("timestamp", ArgumentSemantic.Strong)] + NSNumber Timestamp { get; } + } + + // @interface DDRUMViewEventViewPerformanceINP + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventViewPerformanceINP + { + [Export ("duration", ArgumentSemantic.Strong)] + NSNumber Duration { get; } + + [NullAllowed, Export ("subParts", ArgumentSemantic.Strong)] + DDRUMViewEventViewPerformanceINPSubParts SubParts { get; } + + [NullAllowed, Export ("targetSelector", ArgumentSemantic.Copy)] + string TargetSelector { get; } + + [NullAllowed, Export ("timestamp", ArgumentSemantic.Strong)] + NSNumber Timestamp { get; } + } + + // @interface DDRUMViewEventViewPerformanceINPSubParts + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventViewPerformanceINPSubParts + { + [Export ("inputDelay", ArgumentSemantic.Strong)] + NSNumber InputDelay { get; } + + [Export ("presentationDelay", ArgumentSemantic.Strong)] + NSNumber PresentationDelay { get; } + + [Export ("processingDuration", ArgumentSemantic.Strong)] + NSNumber ProcessingDuration { get; } + } + + // @interface DDRUMViewEventViewPerformanceLCP + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventViewPerformanceLCP + { + [NullAllowed, Export ("resourceUrl", ArgumentSemantic.Copy)] + string ResourceUrl { get; set; } + + [NullAllowed, Export ("subParts", ArgumentSemantic.Strong)] + DDRUMViewEventViewPerformanceLCPSubParts SubParts { get; } + + [NullAllowed, Export ("targetSelector", ArgumentSemantic.Copy)] + string TargetSelector { get; } + + [Export ("timestamp", ArgumentSemantic.Strong)] + NSNumber Timestamp { get; } + } + + // @interface DDRUMViewEventViewPerformanceLCPSubParts + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventViewPerformanceLCPSubParts + { + [Export ("loadDelay", ArgumentSemantic.Strong)] + NSNumber LoadDelay { get; } + + [Export ("loadTime", ArgumentSemantic.Strong)] + NSNumber LoadTime { get; } + + [Export ("renderDelay", ArgumentSemantic.Strong)] + NSNumber RenderDelay { get; } + } + + // @interface DDRUMViewEventViewResource + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventViewResource + { + [Export ("count", ArgumentSemantic.Strong)] + NSNumber Count { get; } + } + + // @interface DDRUMViewEventViewSlowFrames + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewEventViewSlowFrames + { + [Export ("duration", ArgumentSemantic.Strong)] + NSNumber Duration { get; } + + [Export ("start", ArgumentSemantic.Strong)] + NSNumber Start { get; } + } + + // @interface DDRUMViewUpdateEvent + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEvent + { + [Export ("dd", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventDD Dd { get; } + + [NullAllowed, Export ("account", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventRUMAccount Account { get; } + + [Export ("application", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventApplication Application { get; } + + [NullAllowed, Export ("buildId", ArgumentSemantic.Copy)] + string BuildId { get; } + + [NullAllowed, Export ("buildVersion", ArgumentSemantic.Copy)] + string BuildVersion { get; } + + [NullAllowed, Export ("ciTest", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventRUMCITest CiTest { get; } + + [NullAllowed, Export ("connectivity", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventRUMConnectivity Connectivity { get; } + + [NullAllowed, Export ("container", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventContainer Container { get; } + + [NullAllowed, Export ("context", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventRUMEventAttributes Context { get; } + + [Export ("date", ArgumentSemantic.Strong)] + NSNumber Date { get; } + + [NullAllowed, Export ("ddtags", ArgumentSemantic.Copy)] + string Ddtags { get; } + + [NullAllowed, Export ("device", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventDevice Device { get; } + + [NullAllowed, Export ("display", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventDisplay Display { get; } + + [NullAllowed, Export ("featureFlags", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventFeatureFlags FeatureFlags { get; } + + [NullAllowed, Export ("os", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventOperatingSystem Os { get; } + + [NullAllowed, Export ("privacy", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventPrivacy Privacy { get; } + + [NullAllowed, Export ("service", ArgumentSemantic.Copy)] + string Service { get; } + + [Export ("session", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventSession Session { get; } + + [Export ("source")] + DDRUMViewUpdateEventSource Source { get; } + + [NullAllowed, Export ("stream", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventStream Stream { get; } + + [NullAllowed, Export ("synthetics", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventRUMSyntheticsTest Synthetics { get; } + + [NullAllowed, Export ("tab", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventTAB Tab { get; } + + [Export ("type", ArgumentSemantic.Copy)] + string Type { get; } + + [NullAllowed, Export ("usr", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventRUMUser Usr { get; } + + [NullAllowed, Export ("version", ArgumentSemantic.Copy)] + string Version { get; } + + [Export ("view", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventView View { get; } + } + + // @interface DDRUMViewUpdateEventApplication + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventApplication + { + [NullAllowed, Export ("currentLocale", ArgumentSemantic.Copy)] + string CurrentLocale { get; } + + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMViewUpdateEventContainer + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventContainer + { + [Export ("source")] + DDRUMViewUpdateEventContainerSource Source { get; } + + [Export ("view", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventContainerView View { get; } + } + + // @interface DDRUMViewUpdateEventContainerView + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventContainerView + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMViewUpdateEventDD + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventDD + { + [NullAllowed, Export ("browserSdkVersion", ArgumentSemantic.Copy)] + string BrowserSdkVersion { get; } + + [NullAllowed, Export ("configuration", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventDDConfiguration Configuration { get; } + + [Export ("documentVersion", ArgumentSemantic.Strong)] + NSNumber DocumentVersion { get; } + + [Export ("formatVersion", ArgumentSemantic.Strong)] + NSNumber FormatVersion { get; } + + [NullAllowed, Export ("sdkName", ArgumentSemantic.Copy)] + string SdkName { get; } + + [NullAllowed, Export ("session", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventDDSession Session { get; } + } + + // @interface DDRUMViewUpdateEventDDConfiguration + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventDDConfiguration + { + [NullAllowed, Export ("profilingSampleRate", ArgumentSemantic.Strong)] + NSNumber ProfilingSampleRate { get; } + + [NullAllowed, Export ("sessionReplaySampleRate", ArgumentSemantic.Strong)] + NSNumber SessionReplaySampleRate { get; } + + [Export ("sessionSampleRate", ArgumentSemantic.Strong)] + NSNumber SessionSampleRate { get; } + + [NullAllowed, Export ("traceSampleRate", ArgumentSemantic.Strong)] + NSNumber TraceSampleRate { get; } + } + + // @interface DDRUMViewUpdateEventDDSession + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventDDSession + { + [Export ("plan")] + DDRUMViewUpdateEventDDSessionPlan Plan { get; } + + [Export ("sessionPrecondition")] + DDRUMViewUpdateEventDDSessionRUMSessionPrecondition SessionPrecondition { get; } + } + + // @interface DDRUMViewUpdateEventDevice + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventDevice + { + [NullAllowed, Export ("architecture", ArgumentSemantic.Copy)] + string Architecture { get; } + + [NullAllowed, Export ("batteryLevel", ArgumentSemantic.Strong)] + NSNumber BatteryLevel { get; } + + [NullAllowed, Export ("brand", ArgumentSemantic.Copy)] + string Brand { get; } + + [NullAllowed, Export ("brightnessLevel", ArgumentSemantic.Strong)] + NSNumber BrightnessLevel { get; } + + [NullAllowed, Export ("isLowRam", ArgumentSemantic.Strong)] + NSNumber IsLowRam { get; } + + [NullAllowed, Export ("locale", ArgumentSemantic.Copy)] + string Locale { get; } + + [NullAllowed, Export ("locales", ArgumentSemantic.Copy)] + string[] Locales { get; } + + [NullAllowed, Export ("logicalCpuCount", ArgumentSemantic.Strong)] + NSNumber LogicalCpuCount { get; } + + [NullAllowed, Export ("model", ArgumentSemantic.Copy)] + string Model { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [NullAllowed, Export ("powerSavingMode", ArgumentSemantic.Strong)] + NSNumber PowerSavingMode { get; } + + [NullAllowed, Export ("timeZone", ArgumentSemantic.Copy)] + string TimeZone { get; } + + [NullAllowed, Export ("totalRam", ArgumentSemantic.Strong)] + NSNumber TotalRam { get; } + + [Export ("type")] + DDRUMViewUpdateEventDeviceDeviceType Type { get; } + } + + // @interface DDRUMViewUpdateEventDisplay + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventDisplay + { + [NullAllowed, Export ("scroll", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventDisplayScroll Scroll { get; } + + [NullAllowed, Export ("viewport", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventDisplayViewport Viewport { get; } + } + + // @interface DDRUMViewUpdateEventDisplayScroll + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventDisplayScroll + { + [Export ("maxDepth", ArgumentSemantic.Strong)] + NSNumber MaxDepth { get; } + + [Export ("maxDepthScrollTop", ArgumentSemantic.Strong)] + NSNumber MaxDepthScrollTop { get; } + + [Export ("maxScrollHeight", ArgumentSemantic.Strong)] + NSNumber MaxScrollHeight { get; } + + [Export ("maxScrollHeightTime", ArgumentSemantic.Strong)] + NSNumber MaxScrollHeightTime { get; } + } + + // @interface DDRUMViewUpdateEventDisplayViewport + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventDisplayViewport + { + [Export ("height", ArgumentSemantic.Strong)] + NSNumber Height { get; } + + [Export ("width", ArgumentSemantic.Strong)] + NSNumber Width { get; } + } + + // @interface DDRUMViewUpdateEventFeatureFlags + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventFeatureFlags + { + [Export ("featureFlagsInfo", ArgumentSemantic.Copy)] + NSDictionary FeatureFlagsInfo { get; set; } + } + + // @interface DDRUMViewUpdateEventOperatingSystem + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventOperatingSystem + { + [NullAllowed, Export ("build", ArgumentSemantic.Copy)] + string Build { get; } + + [Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("version", ArgumentSemantic.Copy)] + string Version { get; } + + [Export ("versionMajor", ArgumentSemantic.Copy)] + string VersionMajor { get; } + } + + // @interface DDRUMViewUpdateEventPrivacy + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventPrivacy + { + [Export ("replayLevel")] + DDRUMViewUpdateEventPrivacyReplayLevel ReplayLevel { get; } + } + + // @interface DDRUMViewUpdateEventRUMAccount + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventRUMAccount + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("accountInfo", ArgumentSemantic.Copy)] + NSDictionary AccountInfo { get; set; } + } + + // @interface DDRUMViewUpdateEventRUMCITest + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventRUMCITest + { + [Export ("testExecutionId", ArgumentSemantic.Copy)] + string TestExecutionId { get; } + } + + // @interface DDRUMViewUpdateEventRUMConnectivity + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventRUMConnectivity + { + [NullAllowed, Export ("cellular", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventRUMConnectivityCellular Cellular { get; } + + [Export ("effectiveType")] + DDRUMViewUpdateEventRUMConnectivityEffectiveType EffectiveType { get; } + + [NullAllowed, Export ("interfaces", ArgumentSemantic.Copy)] + NSNumber[] Interfaces { get; } + + [Export ("status")] + DDRUMViewUpdateEventRUMConnectivityStatus Status { get; } + } + + // @interface DDRUMViewUpdateEventRUMConnectivityCellular + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventRUMConnectivityCellular + { + [NullAllowed, Export ("carrierName", ArgumentSemantic.Copy)] + string CarrierName { get; } + + [NullAllowed, Export ("technology", ArgumentSemantic.Copy)] + string Technology { get; } + } + + // @interface DDRUMViewUpdateEventRUMEventAttributes + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventRUMEventAttributes + { + [Export ("contextInfo", ArgumentSemantic.Copy)] + NSDictionary ContextInfo { get; set; } + } + + // @interface DDRUMViewUpdateEventRUMSyntheticsTest + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventRUMSyntheticsTest + { + [NullAllowed, Export ("injected", ArgumentSemantic.Strong)] + NSNumber Injected { get; } + + [Export ("resultId", ArgumentSemantic.Copy)] + string ResultId { get; } + + [Export ("testId", ArgumentSemantic.Copy)] + string TestId { get; } + + [Export ("syntheticsInfo", ArgumentSemantic.Copy)] + NSDictionary SyntheticsInfo { get; set; } + } + + // @interface DDRUMViewUpdateEventRUMUser + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventRUMUser + { + [NullAllowed, Export ("anonymousId", ArgumentSemantic.Copy)] + string AnonymousId { get; } + + [NullAllowed, Export ("email", ArgumentSemantic.Copy)] + string Email { get; } + + [NullAllowed, Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("usrInfo", ArgumentSemantic.Copy)] + NSDictionary UsrInfo { get; set; } + } + + // @interface DDRUMViewUpdateEventSession + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventSession + { + [NullAllowed, Export ("hasReplay", ArgumentSemantic.Strong)] + NSNumber HasReplay { get; } + + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("isActive", ArgumentSemantic.Strong)] + NSNumber IsActive { get; } + + [NullAllowed, Export ("sampledForReplay", ArgumentSemantic.Strong)] + NSNumber SampledForReplay { get; } + + [Export ("type")] + DDRUMViewUpdateEventSessionRUMSessionType Type { get; } + } + + // @interface DDRUMViewUpdateEventStream + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventStream + { + [NullAllowed, Export ("bitrate", ArgumentSemantic.Strong)] + NSNumber Bitrate { get; } + + [NullAllowed, Export ("completionPercent", ArgumentSemantic.Strong)] + NSNumber CompletionPercent { get; } + + [NullAllowed, Export ("duration", ArgumentSemantic.Strong)] + NSNumber Duration { get; } + + [NullAllowed, Export ("format", ArgumentSemantic.Copy)] + string Format { get; } + + [NullAllowed, Export ("fps", ArgumentSemantic.Strong)] + NSNumber Fps { get; } + + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("resolution", ArgumentSemantic.Copy)] + string Resolution { get; } + + [NullAllowed, Export ("timestamp", ArgumentSemantic.Strong)] + NSNumber Timestamp { get; } + + [NullAllowed, Export ("watchTime", ArgumentSemantic.Strong)] + NSNumber WatchTime { get; } + } + + // @interface DDRUMViewUpdateEventTAB + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventTAB + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMViewUpdateEventView + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventView + { + [NullAllowed, Export ("accessibility", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventViewAccessibility Accessibility { get; } + + [NullAllowed, Export ("action", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventViewAction Action { get; } + + [NullAllowed, Export ("cpuTicksCount", ArgumentSemantic.Strong)] + NSNumber CpuTicksCount { get; } + + [NullAllowed, Export ("cpuTicksPerSecond", ArgumentSemantic.Strong)] + NSNumber CpuTicksPerSecond { get; } + + [NullAllowed, Export ("crash", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventViewCrash Crash { get; } + + [NullAllowed, Export ("cumulativeLayoutShift", ArgumentSemantic.Strong)] + NSNumber CumulativeLayoutShift { get; } + + [NullAllowed, Export ("cumulativeLayoutShiftTargetSelector", ArgumentSemantic.Copy)] + string CumulativeLayoutShiftTargetSelector { get; } + + [NullAllowed, Export ("cumulativeLayoutShiftTime", ArgumentSemantic.Strong)] + NSNumber CumulativeLayoutShiftTime { get; } + + [NullAllowed, Export ("customTimings", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventViewCustomTimings CustomTimings { get; } + + [NullAllowed, Export ("domComplete", ArgumentSemantic.Strong)] + NSNumber DomComplete { get; } + + [NullAllowed, Export ("domContentLoaded", ArgumentSemantic.Strong)] + NSNumber DomContentLoaded { get; } + + [NullAllowed, Export ("domInteractive", ArgumentSemantic.Strong)] + NSNumber DomInteractive { get; } + + [NullAllowed, Export ("error", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventViewError Error { get; } + + [NullAllowed, Export ("firstByte", ArgumentSemantic.Strong)] + NSNumber FirstByte { get; } + + [NullAllowed, Export ("firstContentfulPaint", ArgumentSemantic.Strong)] + NSNumber FirstContentfulPaint { get; } + + [NullAllowed, Export ("firstInputDelay", ArgumentSemantic.Strong)] + NSNumber FirstInputDelay { get; } + + [NullAllowed, Export ("firstInputTargetSelector", ArgumentSemantic.Copy)] + string FirstInputTargetSelector { get; } + + [NullAllowed, Export ("firstInputTime", ArgumentSemantic.Strong)] + NSNumber FirstInputTime { get; } + + [NullAllowed, Export ("flutterBuildTime", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventViewFlutterBuildTime FlutterBuildTime { get; } + + [NullAllowed, Export ("flutterRasterTime", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventViewFlutterRasterTime FlutterRasterTime { get; } + + [NullAllowed, Export ("freezeRate", ArgumentSemantic.Strong)] + NSNumber FreezeRate { get; } + + [NullAllowed, Export ("frozenFrame", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventViewFrozenFrame FrozenFrame { get; } + + [NullAllowed, Export ("frustration", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventViewFrustration Frustration { get; } + + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("inForegroundPeriods", ArgumentSemantic.Copy)] + DDRUMViewUpdateEventViewInForegroundPeriods[] InForegroundPeriods { get; } + + [NullAllowed, Export ("interactionToNextPaint", ArgumentSemantic.Strong)] + NSNumber InteractionToNextPaint { get; } + + [NullAllowed, Export ("interactionToNextPaintTargetSelector", ArgumentSemantic.Copy)] + string InteractionToNextPaintTargetSelector { get; } + + [NullAllowed, Export ("interactionToNextPaintTime", ArgumentSemantic.Strong)] + NSNumber InteractionToNextPaintTime { get; } + + [NullAllowed, Export ("interactionToNextViewTime", ArgumentSemantic.Strong)] + NSNumber InteractionToNextViewTime { get; } + + [NullAllowed, Export ("isActive", ArgumentSemantic.Strong)] + NSNumber IsActive { get; } + + [NullAllowed, Export ("isSlowRendered", ArgumentSemantic.Strong)] + NSNumber IsSlowRendered { get; } + + [NullAllowed, Export ("jsRefreshRate", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventViewJsRefreshRate JsRefreshRate { get; } + + [NullAllowed, Export ("largestContentfulPaint", ArgumentSemantic.Strong)] + NSNumber LargestContentfulPaint { get; } + + [NullAllowed, Export ("largestContentfulPaintTargetSelector", ArgumentSemantic.Copy)] + string LargestContentfulPaintTargetSelector { get; } + + [NullAllowed, Export ("loadEvent", ArgumentSemantic.Strong)] + NSNumber LoadEvent { get; } + + [NullAllowed, Export ("loadingTime", ArgumentSemantic.Strong)] + NSNumber LoadingTime { get; } + + [Export ("loadingType")] + DDRUMViewUpdateEventViewLoadingType LoadingType { get; } + + [NullAllowed, Export ("longTask", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventViewLongTask LongTask { get; } + + [NullAllowed, Export ("memoryAverage", ArgumentSemantic.Strong)] + NSNumber MemoryAverage { get; } + + [NullAllowed, Export ("memoryMax", ArgumentSemantic.Strong)] + NSNumber MemoryMax { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; set; } + + [NullAllowed, Export ("networkSettledTime", ArgumentSemantic.Strong)] + NSNumber NetworkSettledTime { get; } + + [NullAllowed, Export ("performance", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventViewPerformance Performance { get; } + + [NullAllowed, Export ("referrer", ArgumentSemantic.Copy)] + string Referrer { get; set; } + + [NullAllowed, Export ("refreshRateAverage", ArgumentSemantic.Strong)] + NSNumber RefreshRateAverage { get; } + + [NullAllowed, Export ("refreshRateMin", ArgumentSemantic.Strong)] + NSNumber RefreshRateMin { get; } + + [NullAllowed, Export ("resource", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventViewResource Resource { get; } + + [NullAllowed, Export ("slowFrames", ArgumentSemantic.Copy)] + DDRUMViewUpdateEventViewSlowFrames[] SlowFrames { get; } + + [NullAllowed, Export ("slowFramesRate", ArgumentSemantic.Strong)] + NSNumber SlowFramesRate { get; } + + [NullAllowed, Export ("timeSpent", ArgumentSemantic.Strong)] + NSNumber TimeSpent { get; } + + [Export ("url", ArgumentSemantic.Copy)] + string Url { get; set; } + } + + // @interface DDRUMViewUpdateEventViewAccessibility + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventViewAccessibility + { + [NullAllowed, Export ("assistiveSwitchEnabled", ArgumentSemantic.Strong)] + NSNumber AssistiveSwitchEnabled { get; } + + [NullAllowed, Export ("assistiveTouchEnabled", ArgumentSemantic.Strong)] + NSNumber AssistiveTouchEnabled { get; } + + [NullAllowed, Export ("boldTextEnabled", ArgumentSemantic.Strong)] + NSNumber BoldTextEnabled { get; } + + [NullAllowed, Export ("buttonShapesEnabled", ArgumentSemantic.Strong)] + NSNumber ButtonShapesEnabled { get; } + + [NullAllowed, Export ("closedCaptioningEnabled", ArgumentSemantic.Strong)] + NSNumber ClosedCaptioningEnabled { get; } + + [NullAllowed, Export ("grayscaleEnabled", ArgumentSemantic.Strong)] + NSNumber GrayscaleEnabled { get; } + + [NullAllowed, Export ("increaseContrastEnabled", ArgumentSemantic.Strong)] + NSNumber IncreaseContrastEnabled { get; } + + [NullAllowed, Export ("invertColorsEnabled", ArgumentSemantic.Strong)] + NSNumber InvertColorsEnabled { get; } + + [NullAllowed, Export ("monoAudioEnabled", ArgumentSemantic.Strong)] + NSNumber MonoAudioEnabled { get; } + + [NullAllowed, Export ("onOffSwitchLabelsEnabled", ArgumentSemantic.Strong)] + NSNumber OnOffSwitchLabelsEnabled { get; } + + [NullAllowed, Export ("reduceMotionEnabled", ArgumentSemantic.Strong)] + NSNumber ReduceMotionEnabled { get; } + + [NullAllowed, Export ("reduceTransparencyEnabled", ArgumentSemantic.Strong)] + NSNumber ReduceTransparencyEnabled { get; } + + [NullAllowed, Export ("reducedAnimationsEnabled", ArgumentSemantic.Strong)] + NSNumber ReducedAnimationsEnabled { get; } + + [NullAllowed, Export ("rtlEnabled", ArgumentSemantic.Strong)] + NSNumber RtlEnabled { get; } + + [NullAllowed, Export ("screenReaderEnabled", ArgumentSemantic.Strong)] + NSNumber ScreenReaderEnabled { get; } + + [NullAllowed, Export ("shakeToUndoEnabled", ArgumentSemantic.Strong)] + NSNumber ShakeToUndoEnabled { get; } + + [NullAllowed, Export ("shouldDifferentiateWithoutColor", ArgumentSemantic.Strong)] + NSNumber ShouldDifferentiateWithoutColor { get; } + + [NullAllowed, Export ("singleAppModeEnabled", ArgumentSemantic.Strong)] + NSNumber SingleAppModeEnabled { get; } + + [NullAllowed, Export ("speakScreenEnabled", ArgumentSemantic.Strong)] + NSNumber SpeakScreenEnabled { get; } + + [NullAllowed, Export ("speakSelectionEnabled", ArgumentSemantic.Strong)] + NSNumber SpeakSelectionEnabled { get; } + + [NullAllowed, Export ("textSize", ArgumentSemantic.Copy)] + string TextSize { get; } + + [NullAllowed, Export ("videoAutoplayEnabled", ArgumentSemantic.Strong)] + NSNumber VideoAutoplayEnabled { get; } + } + + // @interface DDRUMViewUpdateEventViewAction + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventViewAction + { + [Export ("count", ArgumentSemantic.Strong)] + NSNumber Count { get; } + } + + // @interface DDRUMViewUpdateEventViewCrash + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventViewCrash + { + [Export ("count", ArgumentSemantic.Strong)] + NSNumber Count { get; } + } + + // @interface DDRUMViewUpdateEventViewCustomTimings + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventViewCustomTimings + { + [Export ("customTimingsInfo", ArgumentSemantic.Copy)] + NSDictionary CustomTimingsInfo { get; set; } + } + + // @interface DDRUMViewUpdateEventViewError + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventViewError + { + [Export ("count", ArgumentSemantic.Strong)] + NSNumber Count { get; } + } + + // @interface DDRUMViewUpdateEventViewFlutterBuildTime + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventViewFlutterBuildTime + { + [Export ("average", ArgumentSemantic.Strong)] + NSNumber Average { get; } + + [Export ("max", ArgumentSemantic.Strong)] + NSNumber Max { get; } + + [NullAllowed, Export ("metricMax", ArgumentSemantic.Strong)] + NSNumber MetricMax { get; } + + [Export ("min", ArgumentSemantic.Strong)] + NSNumber Min { get; } + } + + // @interface DDRUMViewUpdateEventViewFlutterRasterTime + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventViewFlutterRasterTime + { + [Export ("average", ArgumentSemantic.Strong)] + NSNumber Average { get; } + + [Export ("max", ArgumentSemantic.Strong)] + NSNumber Max { get; } + + [NullAllowed, Export ("metricMax", ArgumentSemantic.Strong)] + NSNumber MetricMax { get; } + + [Export ("min", ArgumentSemantic.Strong)] + NSNumber Min { get; } + } + + // @interface DDRUMViewUpdateEventViewFrozenFrame + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventViewFrozenFrame + { + [Export ("count", ArgumentSemantic.Strong)] + NSNumber Count { get; } + } + + // @interface DDRUMViewUpdateEventViewFrustration + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventViewFrustration + { + [Export ("count", ArgumentSemantic.Strong)] + NSNumber Count { get; } + } + + // @interface DDRUMViewUpdateEventViewInForegroundPeriods + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventViewInForegroundPeriods + { + [Export ("duration", ArgumentSemantic.Strong)] + NSNumber Duration { get; } + + [Export ("start", ArgumentSemantic.Strong)] + NSNumber Start { get; } + } + + // @interface DDRUMViewUpdateEventViewJsRefreshRate + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventViewJsRefreshRate + { + [Export ("average", ArgumentSemantic.Strong)] + NSNumber Average { get; } + + [Export ("max", ArgumentSemantic.Strong)] + NSNumber Max { get; } + + [NullAllowed, Export ("metricMax", ArgumentSemantic.Strong)] + NSNumber MetricMax { get; } + + [Export ("min", ArgumentSemantic.Strong)] + NSNumber Min { get; } + } + + // @interface DDRUMViewUpdateEventViewLongTask + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventViewLongTask + { + [Export ("count", ArgumentSemantic.Strong)] + NSNumber Count { get; } + } + + // @interface DDRUMViewUpdateEventViewPerformance + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventViewPerformance + { + [NullAllowed, Export ("cls", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventViewPerformanceCLS Cls { get; } + + [NullAllowed, Export ("fbc", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventViewPerformanceFBC Fbc { get; } + + [NullAllowed, Export ("fcp", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventViewPerformanceFCP Fcp { get; } + + [NullAllowed, Export ("fid", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventViewPerformanceFID Fid { get; } + + [NullAllowed, Export ("inp", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventViewPerformanceINP Inp { get; } + + [NullAllowed, Export ("lcp", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventViewPerformanceLCP Lcp { get; } + } + + // @interface DDRUMViewUpdateEventViewPerformanceCLS + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventViewPerformanceCLS + { + [NullAllowed, Export ("currentRect", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventViewPerformanceCLSCurrentRect CurrentRect { get; } + + [NullAllowed, Export ("previousRect", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventViewPerformanceCLSPreviousRect PreviousRect { get; } + + [Export ("score", ArgumentSemantic.Strong)] + NSNumber Score { get; } + + [NullAllowed, Export ("targetSelector", ArgumentSemantic.Copy)] + string TargetSelector { get; } + + [NullAllowed, Export ("timestamp", ArgumentSemantic.Strong)] + NSNumber Timestamp { get; } + } + + // @interface DDRUMViewUpdateEventViewPerformanceCLSCurrentRect + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventViewPerformanceCLSCurrentRect + { + [Export ("height", ArgumentSemantic.Strong)] + NSNumber Height { get; } + + [Export ("width", ArgumentSemantic.Strong)] + NSNumber Width { get; } + + [Export ("x", ArgumentSemantic.Strong)] + NSNumber X { get; } + + [Export ("y", ArgumentSemantic.Strong)] + NSNumber Y { get; } + } + + // @interface DDRUMViewUpdateEventViewPerformanceCLSPreviousRect + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventViewPerformanceCLSPreviousRect + { + [Export ("height", ArgumentSemantic.Strong)] + NSNumber Height { get; } + + [Export ("width", ArgumentSemantic.Strong)] + NSNumber Width { get; } + + [Export ("x", ArgumentSemantic.Strong)] + NSNumber X { get; } + + [Export ("y", ArgumentSemantic.Strong)] + NSNumber Y { get; } + } + + // @interface DDRUMViewUpdateEventViewPerformanceFBC + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventViewPerformanceFBC + { + [Export ("timestamp", ArgumentSemantic.Strong)] + NSNumber Timestamp { get; } + } + + // @interface DDRUMViewUpdateEventViewPerformanceFCP + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventViewPerformanceFCP + { + [Export ("timestamp", ArgumentSemantic.Strong)] + NSNumber Timestamp { get; } + } + + // @interface DDRUMViewUpdateEventViewPerformanceFID + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventViewPerformanceFID + { + [Export ("duration", ArgumentSemantic.Strong)] + NSNumber Duration { get; } + + [NullAllowed, Export ("targetSelector", ArgumentSemantic.Copy)] + string TargetSelector { get; } + + [Export ("timestamp", ArgumentSemantic.Strong)] + NSNumber Timestamp { get; } + } + + // @interface DDRUMViewUpdateEventViewPerformanceINP + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventViewPerformanceINP + { + [Export ("duration", ArgumentSemantic.Strong)] + NSNumber Duration { get; } + + [NullAllowed, Export ("subParts", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventViewPerformanceINPSubParts SubParts { get; } + + [NullAllowed, Export ("targetSelector", ArgumentSemantic.Copy)] + string TargetSelector { get; } + + [NullAllowed, Export ("timestamp", ArgumentSemantic.Strong)] + NSNumber Timestamp { get; } + } + + // @interface DDRUMViewUpdateEventViewPerformanceINPSubParts + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventViewPerformanceINPSubParts + { + [Export ("inputDelay", ArgumentSemantic.Strong)] + NSNumber InputDelay { get; } + + [Export ("presentationDelay", ArgumentSemantic.Strong)] + NSNumber PresentationDelay { get; } + + [Export ("processingDuration", ArgumentSemantic.Strong)] + NSNumber ProcessingDuration { get; } + } + + // @interface DDRUMViewUpdateEventViewPerformanceLCP + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventViewPerformanceLCP + { + [NullAllowed, Export ("resourceUrl", ArgumentSemantic.Copy)] + string ResourceUrl { get; set; } + + [NullAllowed, Export ("subParts", ArgumentSemantic.Strong)] + DDRUMViewUpdateEventViewPerformanceLCPSubParts SubParts { get; } + + [NullAllowed, Export ("targetSelector", ArgumentSemantic.Copy)] + string TargetSelector { get; } + + [Export ("timestamp", ArgumentSemantic.Strong)] + NSNumber Timestamp { get; } + } + + // @interface DDRUMViewUpdateEventViewPerformanceLCPSubParts + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventViewPerformanceLCPSubParts + { + [Export ("loadDelay", ArgumentSemantic.Strong)] + NSNumber LoadDelay { get; } + + [Export ("loadTime", ArgumentSemantic.Strong)] + NSNumber LoadTime { get; } + + [Export ("renderDelay", ArgumentSemantic.Strong)] + NSNumber RenderDelay { get; } + } + + // @interface DDRUMViewUpdateEventViewResource + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventViewResource + { + [Export ("count", ArgumentSemantic.Strong)] + NSNumber Count { get; } + } + + // @interface DDRUMViewUpdateEventViewSlowFrames + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMViewUpdateEventViewSlowFrames + { + [Export ("duration", ArgumentSemantic.Strong)] + NSNumber Duration { get; } + + [Export ("start", ArgumentSemantic.Strong)] + NSNumber Start { get; } + } + + // @interface DDRUMVitalAppLaunchEvent + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalAppLaunchEvent + { + [Export ("dd", ArgumentSemantic.Strong)] + DDRUMVitalAppLaunchEventDD Dd { get; } + + [NullAllowed, Export ("account", ArgumentSemantic.Strong)] + DDRUMVitalAppLaunchEventRUMAccount Account { get; } + + [Export ("application", ArgumentSemantic.Strong)] + DDRUMVitalAppLaunchEventApplication Application { get; } + + [NullAllowed, Export ("buildId", ArgumentSemantic.Copy)] + string BuildId { get; } + + [NullAllowed, Export ("buildVersion", ArgumentSemantic.Copy)] + string BuildVersion { get; } + + [NullAllowed, Export ("ciTest", ArgumentSemantic.Strong)] + DDRUMVitalAppLaunchEventRUMCITest CiTest { get; } + + [NullAllowed, Export ("connectivity", ArgumentSemantic.Strong)] + DDRUMVitalAppLaunchEventRUMConnectivity Connectivity { get; } + + [NullAllowed, Export ("container", ArgumentSemantic.Strong)] + DDRUMVitalAppLaunchEventContainer Container { get; } + + [NullAllowed, Export ("context", ArgumentSemantic.Strong)] + DDRUMVitalAppLaunchEventRUMEventAttributes Context { get; } + + [Export ("date", ArgumentSemantic.Strong)] + NSNumber Date { get; } + + [NullAllowed, Export ("ddtags", ArgumentSemantic.Copy)] + string Ddtags { get; } + + [NullAllowed, Export ("device", ArgumentSemantic.Strong)] + DDRUMVitalAppLaunchEventDevice Device { get; } + + [NullAllowed, Export ("display", ArgumentSemantic.Strong)] + DDRUMVitalAppLaunchEventDisplay Display { get; } + + [NullAllowed, Export ("os", ArgumentSemantic.Strong)] + DDRUMVitalAppLaunchEventOperatingSystem Os { get; } + + [NullAllowed, Export ("service", ArgumentSemantic.Copy)] + string Service { get; } + + [Export ("session", ArgumentSemantic.Strong)] + DDRUMVitalAppLaunchEventSession Session { get; } + + [Export ("source")] + DDRUMVitalAppLaunchEventSource Source { get; } + + [NullAllowed, Export ("stream", ArgumentSemantic.Strong)] + DDRUMVitalAppLaunchEventStream Stream { get; } + + [NullAllowed, Export ("synthetics", ArgumentSemantic.Strong)] + DDRUMVitalAppLaunchEventRUMSyntheticsTest Synthetics { get; } + + [NullAllowed, Export ("tab", ArgumentSemantic.Strong)] + DDRUMVitalAppLaunchEventTAB Tab { get; } + + [Export ("type", ArgumentSemantic.Copy)] + string Type { get; } + + [NullAllowed, Export ("usr", ArgumentSemantic.Strong)] + DDRUMVitalAppLaunchEventRUMUser Usr { get; } + + [NullAllowed, Export ("version", ArgumentSemantic.Copy)] + string Version { get; } + + [Export ("view", ArgumentSemantic.Strong)] + DDRUMVitalAppLaunchEventView View { get; } + + [Export ("vital", ArgumentSemantic.Strong)] + DDRUMVitalAppLaunchEventVital Vital { get; } + } + + // @interface DDRUMVitalAppLaunchEventApplication + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalAppLaunchEventApplication + { + [NullAllowed, Export ("currentLocale", ArgumentSemantic.Copy)] + string CurrentLocale { get; } + + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMVitalAppLaunchEventContainer + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalAppLaunchEventContainer + { + [Export ("source")] + DDRUMVitalAppLaunchEventContainerSource Source { get; } + + [Export ("view", ArgumentSemantic.Strong)] + DDRUMVitalAppLaunchEventContainerView View { get; } + } + + // @interface DDRUMVitalAppLaunchEventContainerView + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalAppLaunchEventContainerView + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMVitalAppLaunchEventDD + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalAppLaunchEventDD + { + [NullAllowed, Export ("browserSdkVersion", ArgumentSemantic.Copy)] + string BrowserSdkVersion { get; } + + [NullAllowed, Export ("configuration", ArgumentSemantic.Strong)] + DDRUMVitalAppLaunchEventDDConfiguration Configuration { get; } + + [Export ("formatVersion", ArgumentSemantic.Strong)] + NSNumber FormatVersion { get; } + + [NullAllowed, Export ("profiling", ArgumentSemantic.Strong)] + DDRUMVitalAppLaunchEventDDProfiling Profiling { get; } + + [NullAllowed, Export ("sdkName", ArgumentSemantic.Copy)] + string SdkName { get; } + + [NullAllowed, Export ("session", ArgumentSemantic.Strong)] + DDRUMVitalAppLaunchEventDDSession Session { get; } + } + + // @interface DDRUMVitalAppLaunchEventDDConfiguration + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalAppLaunchEventDDConfiguration + { + [NullAllowed, Export ("profilingSampleRate", ArgumentSemantic.Strong)] + NSNumber ProfilingSampleRate { get; } + + [NullAllowed, Export ("sessionReplaySampleRate", ArgumentSemantic.Strong)] + NSNumber SessionReplaySampleRate { get; } + + [Export ("sessionSampleRate", ArgumentSemantic.Strong)] + NSNumber SessionSampleRate { get; } + + [NullAllowed, Export ("traceSampleRate", ArgumentSemantic.Strong)] + NSNumber TraceSampleRate { get; } + } + + // @interface DDRUMVitalAppLaunchEventDDProfiling + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalAppLaunchEventDDProfiling + { + [Export ("errorReason")] + DDRUMVitalAppLaunchEventDDProfilingErrorReason ErrorReason { get; } + + [Export ("quotaReason")] + DDRUMVitalAppLaunchEventDDProfilingQuotaReason QuotaReason { get; } + + [Export ("status")] + DDRUMVitalAppLaunchEventDDProfilingStatus Status { get; } + } + + // @interface DDRUMVitalAppLaunchEventDDSession + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalAppLaunchEventDDSession + { + [Export ("plan")] + DDRUMVitalAppLaunchEventDDSessionPlan Plan { get; } + + [Export ("sessionPrecondition")] + DDRUMVitalAppLaunchEventDDSessionRUMSessionPrecondition SessionPrecondition { get; } + } + + // @interface DDRUMVitalAppLaunchEventDevice + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalAppLaunchEventDevice + { + [NullAllowed, Export ("architecture", ArgumentSemantic.Copy)] + string Architecture { get; } + + [NullAllowed, Export ("batteryLevel", ArgumentSemantic.Strong)] + NSNumber BatteryLevel { get; } + + [NullAllowed, Export ("brand", ArgumentSemantic.Copy)] + string Brand { get; } + + [NullAllowed, Export ("brightnessLevel", ArgumentSemantic.Strong)] + NSNumber BrightnessLevel { get; } + + [NullAllowed, Export ("isLowRam", ArgumentSemantic.Strong)] + NSNumber IsLowRam { get; } + + [NullAllowed, Export ("locale", ArgumentSemantic.Copy)] + string Locale { get; } + + [NullAllowed, Export ("locales", ArgumentSemantic.Copy)] + string[] Locales { get; } + + [NullAllowed, Export ("logicalCpuCount", ArgumentSemantic.Strong)] + NSNumber LogicalCpuCount { get; } + + [NullAllowed, Export ("model", ArgumentSemantic.Copy)] + string Model { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [NullAllowed, Export ("powerSavingMode", ArgumentSemantic.Strong)] + NSNumber PowerSavingMode { get; } + + [NullAllowed, Export ("timeZone", ArgumentSemantic.Copy)] + string TimeZone { get; } + + [NullAllowed, Export ("totalRam", ArgumentSemantic.Strong)] + NSNumber TotalRam { get; } + + [Export ("type")] + DDRUMVitalAppLaunchEventDeviceDeviceType Type { get; } + } + + // @interface DDRUMVitalAppLaunchEventDisplay + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalAppLaunchEventDisplay + { + [NullAllowed, Export ("viewport", ArgumentSemantic.Strong)] + DDRUMVitalAppLaunchEventDisplayViewport Viewport { get; } + } + + // @interface DDRUMVitalAppLaunchEventDisplayViewport + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalAppLaunchEventDisplayViewport + { + [Export ("height", ArgumentSemantic.Strong)] + NSNumber Height { get; } + + [Export ("width", ArgumentSemantic.Strong)] + NSNumber Width { get; } + } + + // @interface DDRUMVitalAppLaunchEventOperatingSystem + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalAppLaunchEventOperatingSystem + { + [NullAllowed, Export ("build", ArgumentSemantic.Copy)] + string Build { get; } + + [Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("version", ArgumentSemantic.Copy)] + string Version { get; } + + [Export ("versionMajor", ArgumentSemantic.Copy)] + string VersionMajor { get; } + } + + // @interface DDRUMVitalAppLaunchEventRUMAccount + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalAppLaunchEventRUMAccount + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("accountInfo", ArgumentSemantic.Copy)] + NSDictionary AccountInfo { get; set; } + } + + // @interface DDRUMVitalAppLaunchEventRUMCITest + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalAppLaunchEventRUMCITest + { + [Export ("testExecutionId", ArgumentSemantic.Copy)] + string TestExecutionId { get; } + } + + // @interface DDRUMVitalAppLaunchEventRUMConnectivity + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalAppLaunchEventRUMConnectivity + { + [NullAllowed, Export ("cellular", ArgumentSemantic.Strong)] + DDRUMVitalAppLaunchEventRUMConnectivityCellular Cellular { get; } + + [Export ("effectiveType")] + DDRUMVitalAppLaunchEventRUMConnectivityEffectiveType EffectiveType { get; } + + [NullAllowed, Export ("interfaces", ArgumentSemantic.Copy)] + NSNumber[] Interfaces { get; } + + [Export ("status")] + DDRUMVitalAppLaunchEventRUMConnectivityStatus Status { get; } + } + + // @interface DDRUMVitalAppLaunchEventRUMConnectivityCellular + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalAppLaunchEventRUMConnectivityCellular + { + [NullAllowed, Export ("carrierName", ArgumentSemantic.Copy)] + string CarrierName { get; } + + [NullAllowed, Export ("technology", ArgumentSemantic.Copy)] + string Technology { get; } + } + + // @interface DDRUMVitalAppLaunchEventRUMEventAttributes + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalAppLaunchEventRUMEventAttributes + { + [Export ("contextInfo", ArgumentSemantic.Copy)] + NSDictionary ContextInfo { get; set; } + } + + // @interface DDRUMVitalAppLaunchEventRUMSyntheticsTest + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalAppLaunchEventRUMSyntheticsTest + { + [NullAllowed, Export ("injected", ArgumentSemantic.Strong)] + NSNumber Injected { get; } + + [Export ("resultId", ArgumentSemantic.Copy)] + string ResultId { get; } + + [Export ("testId", ArgumentSemantic.Copy)] + string TestId { get; } + + [Export ("syntheticsInfo", ArgumentSemantic.Copy)] + NSDictionary SyntheticsInfo { get; set; } + } + + // @interface DDRUMVitalAppLaunchEventRUMUser + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalAppLaunchEventRUMUser + { + [NullAllowed, Export ("anonymousId", ArgumentSemantic.Copy)] + string AnonymousId { get; } + + [NullAllowed, Export ("email", ArgumentSemantic.Copy)] + string Email { get; } + + [NullAllowed, Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("usrInfo", ArgumentSemantic.Copy)] + NSDictionary UsrInfo { get; set; } + } + + // @interface DDRUMVitalAppLaunchEventSession + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalAppLaunchEventSession + { + [NullAllowed, Export ("hasReplay", ArgumentSemantic.Strong)] + NSNumber HasReplay { get; } + + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [Export ("type")] + DDRUMVitalAppLaunchEventSessionRUMSessionType Type { get; } + } + + // @interface DDRUMVitalAppLaunchEventStream + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalAppLaunchEventStream + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMVitalAppLaunchEventTAB + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalAppLaunchEventTAB + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMVitalAppLaunchEventView + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalAppLaunchEventView + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; set; } + + [NullAllowed, Export ("referrer", ArgumentSemantic.Copy)] + string Referrer { get; set; } + + [Export ("url", ArgumentSemantic.Copy)] + string Url { get; set; } + } + + // @interface DDRUMVitalAppLaunchEventVital + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalAppLaunchEventVital + { + [Export ("appLaunchMetric")] + DDRUMVitalAppLaunchEventVitalAppLaunchMetric AppLaunchMetric { get; } + + [NullAllowed, Export ("vitalDescription", ArgumentSemantic.Copy)] + string VitalDescription { get; } + + [Export ("duration", ArgumentSemantic.Strong)] + NSNumber Duration { get; } + + [NullAllowed, Export ("hasSavedInstanceStateBundle", ArgumentSemantic.Strong)] + NSNumber HasSavedInstanceStateBundle { get; } + + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("isPrewarmed", ArgumentSemantic.Strong)] + NSNumber IsPrewarmed { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("startupType")] + DDRUMVitalAppLaunchEventVitalStartupType StartupType { get; } + + [Export ("type", ArgumentSemantic.Copy)] + string Type { get; } + } + + // @interface DDRUMVitalDurationEvent + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalDurationEvent + { + [Export ("dd", ArgumentSemantic.Strong)] + DDRUMVitalDurationEventDD Dd { get; } + + [NullAllowed, Export ("account", ArgumentSemantic.Strong)] + DDRUMVitalDurationEventRUMAccount Account { get; } + + [Export ("application", ArgumentSemantic.Strong)] + DDRUMVitalDurationEventApplication Application { get; } + + [NullAllowed, Export ("buildId", ArgumentSemantic.Copy)] + string BuildId { get; } + + [NullAllowed, Export ("buildVersion", ArgumentSemantic.Copy)] + string BuildVersion { get; } + + [NullAllowed, Export ("ciTest", ArgumentSemantic.Strong)] + DDRUMVitalDurationEventRUMCITest CiTest { get; } + + [NullAllowed, Export ("connectivity", ArgumentSemantic.Strong)] + DDRUMVitalDurationEventRUMConnectivity Connectivity { get; } + + [NullAllowed, Export ("container", ArgumentSemantic.Strong)] + DDRUMVitalDurationEventContainer Container { get; } + + [NullAllowed, Export ("context", ArgumentSemantic.Strong)] + DDRUMVitalDurationEventRUMEventAttributes Context { get; } + + [Export ("date", ArgumentSemantic.Strong)] + NSNumber Date { get; } + + [NullAllowed, Export ("ddtags", ArgumentSemantic.Copy)] + string Ddtags { get; } + + [NullAllowed, Export ("device", ArgumentSemantic.Strong)] + DDRUMVitalDurationEventDevice Device { get; } + + [NullAllowed, Export ("display", ArgumentSemantic.Strong)] + DDRUMVitalDurationEventDisplay Display { get; } + + [NullAllowed, Export ("os", ArgumentSemantic.Strong)] + DDRUMVitalDurationEventOperatingSystem Os { get; } + + [NullAllowed, Export ("service", ArgumentSemantic.Copy)] + string Service { get; } + + [Export ("session", ArgumentSemantic.Strong)] + DDRUMVitalDurationEventSession Session { get; } + + [Export ("source")] + DDRUMVitalDurationEventSource Source { get; } + + [NullAllowed, Export ("stream", ArgumentSemantic.Strong)] + DDRUMVitalDurationEventStream Stream { get; } + + [NullAllowed, Export ("synthetics", ArgumentSemantic.Strong)] + DDRUMVitalDurationEventRUMSyntheticsTest Synthetics { get; } + + [NullAllowed, Export ("tab", ArgumentSemantic.Strong)] + DDRUMVitalDurationEventTAB Tab { get; } + + [Export ("type", ArgumentSemantic.Copy)] + string Type { get; } + + [NullAllowed, Export ("usr", ArgumentSemantic.Strong)] + DDRUMVitalDurationEventRUMUser Usr { get; } + + [NullAllowed, Export ("version", ArgumentSemantic.Copy)] + string Version { get; } + + [Export ("view", ArgumentSemantic.Strong)] + DDRUMVitalDurationEventView View { get; } + + [Export ("vital", ArgumentSemantic.Strong)] + DDRUMVitalDurationEventVital Vital { get; } + } + + // @interface DDRUMVitalDurationEventApplication + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalDurationEventApplication + { + [NullAllowed, Export ("currentLocale", ArgumentSemantic.Copy)] + string CurrentLocale { get; } + + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMVitalDurationEventContainer + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalDurationEventContainer + { + [Export ("source")] + DDRUMVitalDurationEventContainerSource Source { get; } + + [Export ("view", ArgumentSemantic.Strong)] + DDRUMVitalDurationEventContainerView View { get; } + } + + // @interface DDRUMVitalDurationEventContainerView + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalDurationEventContainerView + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMVitalDurationEventDD + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalDurationEventDD + { + [NullAllowed, Export ("browserSdkVersion", ArgumentSemantic.Copy)] + string BrowserSdkVersion { get; } + + [NullAllowed, Export ("configuration", ArgumentSemantic.Strong)] + DDRUMVitalDurationEventDDConfiguration Configuration { get; } + + [Export ("formatVersion", ArgumentSemantic.Strong)] + NSNumber FormatVersion { get; } + + [NullAllowed, Export ("profiling", ArgumentSemantic.Strong)] + DDRUMVitalDurationEventDDProfiling Profiling { get; } + + [NullAllowed, Export ("sdkName", ArgumentSemantic.Copy)] + string SdkName { get; } + + [NullAllowed, Export ("session", ArgumentSemantic.Strong)] + DDRUMVitalDurationEventDDSession Session { get; } + } + + // @interface DDRUMVitalDurationEventDDConfiguration + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalDurationEventDDConfiguration + { + [NullAllowed, Export ("profilingSampleRate", ArgumentSemantic.Strong)] + NSNumber ProfilingSampleRate { get; } + + [NullAllowed, Export ("sessionReplaySampleRate", ArgumentSemantic.Strong)] + NSNumber SessionReplaySampleRate { get; } + + [Export ("sessionSampleRate", ArgumentSemantic.Strong)] + NSNumber SessionSampleRate { get; } + + [NullAllowed, Export ("traceSampleRate", ArgumentSemantic.Strong)] + NSNumber TraceSampleRate { get; } + } + + // @interface DDRUMVitalDurationEventDDProfiling + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalDurationEventDDProfiling + { + [Export ("errorReason")] + DDRUMVitalDurationEventDDProfilingErrorReason ErrorReason { get; } + + [Export ("quotaReason")] + DDRUMVitalDurationEventDDProfilingQuotaReason QuotaReason { get; } + + [Export ("status")] + DDRUMVitalDurationEventDDProfilingStatus Status { get; } + } + + // @interface DDRUMVitalDurationEventDDSession + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalDurationEventDDSession + { + [Export ("plan")] + DDRUMVitalDurationEventDDSessionPlan Plan { get; } + + [Export ("sessionPrecondition")] + DDRUMVitalDurationEventDDSessionRUMSessionPrecondition SessionPrecondition { get; } + } + + // @interface DDRUMVitalDurationEventDevice + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalDurationEventDevice + { + [NullAllowed, Export ("architecture", ArgumentSemantic.Copy)] + string Architecture { get; } + + [NullAllowed, Export ("batteryLevel", ArgumentSemantic.Strong)] + NSNumber BatteryLevel { get; } + + [NullAllowed, Export ("brand", ArgumentSemantic.Copy)] + string Brand { get; } + + [NullAllowed, Export ("brightnessLevel", ArgumentSemantic.Strong)] + NSNumber BrightnessLevel { get; } + + [NullAllowed, Export ("isLowRam", ArgumentSemantic.Strong)] + NSNumber IsLowRam { get; } + + [NullAllowed, Export ("locale", ArgumentSemantic.Copy)] + string Locale { get; } + + [NullAllowed, Export ("locales", ArgumentSemantic.Copy)] + string[] Locales { get; } + + [NullAllowed, Export ("logicalCpuCount", ArgumentSemantic.Strong)] + NSNumber LogicalCpuCount { get; } + + [NullAllowed, Export ("model", ArgumentSemantic.Copy)] + string Model { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [NullAllowed, Export ("powerSavingMode", ArgumentSemantic.Strong)] + NSNumber PowerSavingMode { get; } + + [NullAllowed, Export ("timeZone", ArgumentSemantic.Copy)] + string TimeZone { get; } + + [NullAllowed, Export ("totalRam", ArgumentSemantic.Strong)] + NSNumber TotalRam { get; } + + [Export ("type")] + DDRUMVitalDurationEventDeviceDeviceType Type { get; } + } + + // @interface DDRUMVitalDurationEventDisplay + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalDurationEventDisplay + { + [NullAllowed, Export ("viewport", ArgumentSemantic.Strong)] + DDRUMVitalDurationEventDisplayViewport Viewport { get; } + } + + // @interface DDRUMVitalDurationEventDisplayViewport + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalDurationEventDisplayViewport + { + [Export ("height", ArgumentSemantic.Strong)] + NSNumber Height { get; } + + [Export ("width", ArgumentSemantic.Strong)] + NSNumber Width { get; } + } + + // @interface DDRUMVitalDurationEventOperatingSystem + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalDurationEventOperatingSystem + { + [NullAllowed, Export ("build", ArgumentSemantic.Copy)] + string Build { get; } + + [Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("version", ArgumentSemantic.Copy)] + string Version { get; } + + [Export ("versionMajor", ArgumentSemantic.Copy)] + string VersionMajor { get; } + } + + // @interface DDRUMVitalDurationEventRUMAccount + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalDurationEventRUMAccount + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("accountInfo", ArgumentSemantic.Copy)] + NSDictionary AccountInfo { get; set; } + } + + // @interface DDRUMVitalDurationEventRUMCITest + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalDurationEventRUMCITest + { + [Export ("testExecutionId", ArgumentSemantic.Copy)] + string TestExecutionId { get; } + } + + // @interface DDRUMVitalDurationEventRUMConnectivity + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalDurationEventRUMConnectivity + { + [NullAllowed, Export ("cellular", ArgumentSemantic.Strong)] + DDRUMVitalDurationEventRUMConnectivityCellular Cellular { get; } + + [Export ("effectiveType")] + DDRUMVitalDurationEventRUMConnectivityEffectiveType EffectiveType { get; } + + [NullAllowed, Export ("interfaces", ArgumentSemantic.Copy)] + NSNumber[] Interfaces { get; } + + [Export ("status")] + DDRUMVitalDurationEventRUMConnectivityStatus Status { get; } + } + + // @interface DDRUMVitalDurationEventRUMConnectivityCellular + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalDurationEventRUMConnectivityCellular + { + [NullAllowed, Export ("carrierName", ArgumentSemantic.Copy)] + string CarrierName { get; } + + [NullAllowed, Export ("technology", ArgumentSemantic.Copy)] + string Technology { get; } + } + + // @interface DDRUMVitalDurationEventRUMEventAttributes + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalDurationEventRUMEventAttributes + { + [Export ("contextInfo", ArgumentSemantic.Copy)] + NSDictionary ContextInfo { get; set; } + } + + // @interface DDRUMVitalDurationEventRUMSyntheticsTest + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalDurationEventRUMSyntheticsTest + { + [NullAllowed, Export ("injected", ArgumentSemantic.Strong)] + NSNumber Injected { get; } + + [Export ("resultId", ArgumentSemantic.Copy)] + string ResultId { get; } + + [Export ("testId", ArgumentSemantic.Copy)] + string TestId { get; } + + [Export ("syntheticsInfo", ArgumentSemantic.Copy)] + NSDictionary SyntheticsInfo { get; set; } + } + + // @interface DDRUMVitalDurationEventRUMUser + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalDurationEventRUMUser + { + [NullAllowed, Export ("anonymousId", ArgumentSemantic.Copy)] + string AnonymousId { get; } + + [NullAllowed, Export ("email", ArgumentSemantic.Copy)] + string Email { get; } + + [NullAllowed, Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("usrInfo", ArgumentSemantic.Copy)] + NSDictionary UsrInfo { get; set; } + } + + // @interface DDRUMVitalDurationEventSession + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalDurationEventSession + { + [NullAllowed, Export ("hasReplay", ArgumentSemantic.Strong)] + NSNumber HasReplay { get; } + + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [Export ("type")] + DDRUMVitalDurationEventSessionRUMSessionType Type { get; } + } + + // @interface DDRUMVitalDurationEventStream + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalDurationEventStream + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMVitalDurationEventTAB + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalDurationEventTAB + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMVitalDurationEventView + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalDurationEventView + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; set; } + + [NullAllowed, Export ("referrer", ArgumentSemantic.Copy)] + string Referrer { get; set; } + + [Export ("url", ArgumentSemantic.Copy)] + string Url { get; set; } + } + + // @interface DDRUMVitalDurationEventVital + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalDurationEventVital + { + [NullAllowed, Export ("vitalDescription", ArgumentSemantic.Copy)] + string VitalDescription { get; } + + [Export ("duration", ArgumentSemantic.Strong)] + NSNumber Duration { get; } + + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("type", ArgumentSemantic.Copy)] + string Type { get; } + } + + // @interface DDRUMVitalOperationStepEvent + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalOperationStepEvent + { + [Export ("dd", ArgumentSemantic.Strong)] + DDRUMVitalOperationStepEventDD Dd { get; } + + [NullAllowed, Export ("account", ArgumentSemantic.Strong)] + DDRUMVitalOperationStepEventRUMAccount Account { get; } + + [Export ("application", ArgumentSemantic.Strong)] + DDRUMVitalOperationStepEventApplication Application { get; } + + [NullAllowed, Export ("buildId", ArgumentSemantic.Copy)] + string BuildId { get; } + + [NullAllowed, Export ("buildVersion", ArgumentSemantic.Copy)] + string BuildVersion { get; } + + [NullAllowed, Export ("ciTest", ArgumentSemantic.Strong)] + DDRUMVitalOperationStepEventRUMCITest CiTest { get; } + + [NullAllowed, Export ("connectivity", ArgumentSemantic.Strong)] + DDRUMVitalOperationStepEventRUMConnectivity Connectivity { get; } + + [NullAllowed, Export ("container", ArgumentSemantic.Strong)] + DDRUMVitalOperationStepEventContainer Container { get; } + + [NullAllowed, Export ("context", ArgumentSemantic.Strong)] + DDRUMVitalOperationStepEventRUMEventAttributes Context { get; } + + [Export ("date", ArgumentSemantic.Strong)] + NSNumber Date { get; } + + [NullAllowed, Export ("ddtags", ArgumentSemantic.Copy)] + string Ddtags { get; } + + [NullAllowed, Export ("device", ArgumentSemantic.Strong)] + DDRUMVitalOperationStepEventDevice Device { get; } + + [NullAllowed, Export ("display", ArgumentSemantic.Strong)] + DDRUMVitalOperationStepEventDisplay Display { get; } + + [NullAllowed, Export ("os", ArgumentSemantic.Strong)] + DDRUMVitalOperationStepEventOperatingSystem Os { get; } + + [NullAllowed, Export ("service", ArgumentSemantic.Copy)] + string Service { get; } + + [Export ("session", ArgumentSemantic.Strong)] + DDRUMVitalOperationStepEventSession Session { get; } + + [Export ("source")] + DDRUMVitalOperationStepEventSource Source { get; } + + [NullAllowed, Export ("stream", ArgumentSemantic.Strong)] + DDRUMVitalOperationStepEventStream Stream { get; } + + [NullAllowed, Export ("synthetics", ArgumentSemantic.Strong)] + DDRUMVitalOperationStepEventRUMSyntheticsTest Synthetics { get; } + + [NullAllowed, Export ("tab", ArgumentSemantic.Strong)] + DDRUMVitalOperationStepEventTAB Tab { get; } + + [Export ("type", ArgumentSemantic.Copy)] + string Type { get; } + + [NullAllowed, Export ("usr", ArgumentSemantic.Strong)] + DDRUMVitalOperationStepEventRUMUser Usr { get; } + + [NullAllowed, Export ("version", ArgumentSemantic.Copy)] + string Version { get; } + + [Export ("view", ArgumentSemantic.Strong)] + DDRUMVitalOperationStepEventView View { get; } + + [Export ("vital", ArgumentSemantic.Strong)] + DDRUMVitalOperationStepEventVital Vital { get; } + } + + // @interface DDRUMVitalOperationStepEventApplication + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalOperationStepEventApplication + { + [NullAllowed, Export ("currentLocale", ArgumentSemantic.Copy)] + string CurrentLocale { get; } + + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMVitalOperationStepEventContainer + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalOperationStepEventContainer + { + [Export ("source")] + DDRUMVitalOperationStepEventContainerSource Source { get; } + + [Export ("view", ArgumentSemantic.Strong)] + DDRUMVitalOperationStepEventContainerView View { get; } + } + + // @interface DDRUMVitalOperationStepEventContainerView + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalOperationStepEventContainerView + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMVitalOperationStepEventDD + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalOperationStepEventDD + { + [NullAllowed, Export ("browserSdkVersion", ArgumentSemantic.Copy)] + string BrowserSdkVersion { get; } + + [NullAllowed, Export ("configuration", ArgumentSemantic.Strong)] + DDRUMVitalOperationStepEventDDConfiguration Configuration { get; } + + [Export ("formatVersion", ArgumentSemantic.Strong)] + NSNumber FormatVersion { get; } + + [NullAllowed, Export ("profiling", ArgumentSemantic.Strong)] + DDRUMVitalOperationStepEventDDProfiling Profiling { get; } + + [NullAllowed, Export ("sdkName", ArgumentSemantic.Copy)] + string SdkName { get; } + + [NullAllowed, Export ("session", ArgumentSemantic.Strong)] + DDRUMVitalOperationStepEventDDSession Session { get; } + } + + // @interface DDRUMVitalOperationStepEventDDConfiguration + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalOperationStepEventDDConfiguration + { + [NullAllowed, Export ("profilingSampleRate", ArgumentSemantic.Strong)] + NSNumber ProfilingSampleRate { get; } + + [NullAllowed, Export ("sessionReplaySampleRate", ArgumentSemantic.Strong)] + NSNumber SessionReplaySampleRate { get; } + + [Export ("sessionSampleRate", ArgumentSemantic.Strong)] + NSNumber SessionSampleRate { get; } + + [NullAllowed, Export ("traceSampleRate", ArgumentSemantic.Strong)] + NSNumber TraceSampleRate { get; } + } + + // @interface DDRUMVitalOperationStepEventDDProfiling + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalOperationStepEventDDProfiling + { + [Export ("errorReason")] + DDRUMVitalOperationStepEventDDProfilingErrorReason ErrorReason { get; } + + [Export ("quotaReason")] + DDRUMVitalOperationStepEventDDProfilingQuotaReason QuotaReason { get; } + + [Export ("status")] + DDRUMVitalOperationStepEventDDProfilingStatus Status { get; } + } + + // @interface DDRUMVitalOperationStepEventDDSession + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalOperationStepEventDDSession + { + [Export ("plan")] + DDRUMVitalOperationStepEventDDSessionPlan Plan { get; } + + [Export ("sessionPrecondition")] + DDRUMVitalOperationStepEventDDSessionRUMSessionPrecondition SessionPrecondition { get; } + } + + // @interface DDRUMVitalOperationStepEventDevice + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalOperationStepEventDevice + { + [NullAllowed, Export ("architecture", ArgumentSemantic.Copy)] + string Architecture { get; } + + [NullAllowed, Export ("batteryLevel", ArgumentSemantic.Strong)] + NSNumber BatteryLevel { get; } + + [NullAllowed, Export ("brand", ArgumentSemantic.Copy)] + string Brand { get; } + + [NullAllowed, Export ("brightnessLevel", ArgumentSemantic.Strong)] + NSNumber BrightnessLevel { get; } + + [NullAllowed, Export ("isLowRam", ArgumentSemantic.Strong)] + NSNumber IsLowRam { get; } + + [NullAllowed, Export ("locale", ArgumentSemantic.Copy)] + string Locale { get; } + + [NullAllowed, Export ("locales", ArgumentSemantic.Copy)] + string[] Locales { get; } + + [NullAllowed, Export ("logicalCpuCount", ArgumentSemantic.Strong)] + NSNumber LogicalCpuCount { get; } + + [NullAllowed, Export ("model", ArgumentSemantic.Copy)] + string Model { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [NullAllowed, Export ("powerSavingMode", ArgumentSemantic.Strong)] + NSNumber PowerSavingMode { get; } + + [NullAllowed, Export ("timeZone", ArgumentSemantic.Copy)] + string TimeZone { get; } + + [NullAllowed, Export ("totalRam", ArgumentSemantic.Strong)] + NSNumber TotalRam { get; } + + [Export ("type")] + DDRUMVitalOperationStepEventDeviceDeviceType Type { get; } + } + + // @interface DDRUMVitalOperationStepEventDisplay + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalOperationStepEventDisplay + { + [NullAllowed, Export ("viewport", ArgumentSemantic.Strong)] + DDRUMVitalOperationStepEventDisplayViewport Viewport { get; } + } + + // @interface DDRUMVitalOperationStepEventDisplayViewport + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalOperationStepEventDisplayViewport + { + [Export ("height", ArgumentSemantic.Strong)] + NSNumber Height { get; } + + [Export ("width", ArgumentSemantic.Strong)] + NSNumber Width { get; } + } + + // @interface DDRUMVitalOperationStepEventOperatingSystem + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalOperationStepEventOperatingSystem + { + [NullAllowed, Export ("build", ArgumentSemantic.Copy)] + string Build { get; } + + [Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("version", ArgumentSemantic.Copy)] + string Version { get; } + + [Export ("versionMajor", ArgumentSemantic.Copy)] + string VersionMajor { get; } + } + + // @interface DDRUMVitalOperationStepEventRUMAccount + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalOperationStepEventRUMAccount + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("accountInfo", ArgumentSemantic.Copy)] + NSDictionary AccountInfo { get; set; } + } + + // @interface DDRUMVitalOperationStepEventRUMCITest + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalOperationStepEventRUMCITest + { + [Export ("testExecutionId", ArgumentSemantic.Copy)] + string TestExecutionId { get; } + } + + // @interface DDRUMVitalOperationStepEventRUMConnectivity + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalOperationStepEventRUMConnectivity + { + [NullAllowed, Export ("cellular", ArgumentSemantic.Strong)] + DDRUMVitalOperationStepEventRUMConnectivityCellular Cellular { get; } + + [Export ("effectiveType")] + DDRUMVitalOperationStepEventRUMConnectivityEffectiveType EffectiveType { get; } + + [NullAllowed, Export ("interfaces", ArgumentSemantic.Copy)] + NSNumber[] Interfaces { get; } + + [Export ("status")] + DDRUMVitalOperationStepEventRUMConnectivityStatus Status { get; } + } + + // @interface DDRUMVitalOperationStepEventRUMConnectivityCellular + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalOperationStepEventRUMConnectivityCellular + { + [NullAllowed, Export ("carrierName", ArgumentSemantic.Copy)] + string CarrierName { get; } + + [NullAllowed, Export ("technology", ArgumentSemantic.Copy)] + string Technology { get; } + } + + // @interface DDRUMVitalOperationStepEventRUMEventAttributes + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalOperationStepEventRUMEventAttributes + { + [Export ("contextInfo", ArgumentSemantic.Copy)] + NSDictionary ContextInfo { get; set; } + } + + // @interface DDRUMVitalOperationStepEventRUMSyntheticsTest + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalOperationStepEventRUMSyntheticsTest + { + [NullAllowed, Export ("injected", ArgumentSemantic.Strong)] + NSNumber Injected { get; } + + [Export ("resultId", ArgumentSemantic.Copy)] + string ResultId { get; } + + [Export ("testId", ArgumentSemantic.Copy)] + string TestId { get; } + + [Export ("syntheticsInfo", ArgumentSemantic.Copy)] + NSDictionary SyntheticsInfo { get; set; } + } + + // @interface DDRUMVitalOperationStepEventRUMUser + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalOperationStepEventRUMUser + { + [NullAllowed, Export ("anonymousId", ArgumentSemantic.Copy)] + string AnonymousId { get; } + + [NullAllowed, Export ("email", ArgumentSemantic.Copy)] + string Email { get; } + + [NullAllowed, Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("usrInfo", ArgumentSemantic.Copy)] + NSDictionary UsrInfo { get; set; } + } + + // @interface DDRUMVitalOperationStepEventSession + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalOperationStepEventSession + { + [NullAllowed, Export ("hasReplay", ArgumentSemantic.Strong)] + NSNumber HasReplay { get; } + + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [Export ("type")] + DDRUMVitalOperationStepEventSessionRUMSessionType Type { get; } + } + + // @interface DDRUMVitalOperationStepEventStream + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalOperationStepEventStream + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMVitalOperationStepEventTAB + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalOperationStepEventTAB + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDRUMVitalOperationStepEventView + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalOperationStepEventView + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; set; } + + [NullAllowed, Export ("referrer", ArgumentSemantic.Copy)] + string Referrer { get; set; } + + [Export ("url", ArgumentSemantic.Copy)] + string Url { get; set; } + } + + // @interface DDRUMVitalOperationStepEventVital + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDRUMVitalOperationStepEventVital + { + [NullAllowed, Export ("vitalDescription", ArgumentSemantic.Copy)] + string VitalDescription { get; } + + [Export ("failureReason")] + DDRUMVitalOperationStepEventVitalFailureReason FailureReason { get; } + + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [NullAllowed, Export ("operationKey", ArgumentSemantic.Copy)] + string OperationKey { get; } + + [Export ("stepType")] + DDRUMVitalOperationStepEventVitalStepType StepType { get; } + + [Export ("type", ArgumentSemantic.Copy)] + string Type { get; } + } + + // @interface DDTNSResourceParams + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTNSResourceParams + { + [Export ("url", ArgumentSemantic.Copy)] + string Url { get; } + + [Export ("timeSinceViewStart")] + double TimeSinceViewStart { get; } + + [Export ("viewName", ArgumentSemantic.Copy)] + string ViewName { get; } + } + + // @interface DDTelemetryConfigurationEvent + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryConfigurationEvent + { + [Export ("dd", ArgumentSemantic.Strong)] + DDTelemetryConfigurationEventDD Dd { get; } + + [NullAllowed, Export ("action", ArgumentSemantic.Strong)] + DDTelemetryConfigurationEventAction Action { get; } + + [NullAllowed, Export ("application", ArgumentSemantic.Strong)] + DDTelemetryConfigurationEventApplication Application { get; } + + [Export ("date", ArgumentSemantic.Strong)] + NSNumber Date { get; } + + [NullAllowed, Export ("effectiveSampleRate", ArgumentSemantic.Strong)] + NSNumber EffectiveSampleRate { get; } + + [NullAllowed, Export ("experimentalFeatures", ArgumentSemantic.Copy)] + string[] ExperimentalFeatures { get; } + + [Export ("service", ArgumentSemantic.Copy)] + string Service { get; } + + [NullAllowed, Export ("session", ArgumentSemantic.Strong)] + DDTelemetryConfigurationEventSession Session { get; } + + [Export ("source")] + DDTelemetryConfigurationEventSource Source { get; } + + [Export ("telemetry", ArgumentSemantic.Strong)] + DDTelemetryConfigurationEventTelemetry Telemetry { get; } + + [Export ("type", ArgumentSemantic.Copy)] + string Type { get; } + + [Export ("version", ArgumentSemantic.Copy)] + string Version { get; } + + [NullAllowed, Export ("view", ArgumentSemantic.Strong)] + DDTelemetryConfigurationEventView View { get; } + } + + // @interface DDTelemetryConfigurationEventAction + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryConfigurationEventAction + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [Export ("idValue", ArgumentSemantic.Strong)] + DDTelemetryConfigurationEventActionRUMActionID IdValue { get; } + } + + // @interface DDTelemetryConfigurationEventActionRUMActionID + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryConfigurationEventActionRUMActionID + { + [NullAllowed, Export ("string", ArgumentSemantic.Copy)] + string String { get; } + + [NullAllowed, Export ("stringsArray", ArgumentSemantic.Copy)] + string[] StringsArray { get; } + } + + // @interface DDTelemetryConfigurationEventApplication + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryConfigurationEventApplication + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDTelemetryConfigurationEventDD + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryConfigurationEventDD + { + [Export ("formatVersion", ArgumentSemantic.Strong)] + NSNumber FormatVersion { get; } + } + + // @interface DDTelemetryConfigurationEventSession + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryConfigurationEventSession + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDTelemetryConfigurationEventTelemetry + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryConfigurationEventTelemetry + { + [Export ("configuration", ArgumentSemantic.Strong)] + DDTelemetryConfigurationEventTelemetryConfiguration Configuration { get; } + + [NullAllowed, Export ("device", ArgumentSemantic.Strong)] + DDTelemetryConfigurationEventTelemetryRUMTelemetryDevice Device { get; } + + [NullAllowed, Export ("os", ArgumentSemantic.Strong)] + DDTelemetryConfigurationEventTelemetryRUMTelemetryOperatingSystem Os { get; } + + [Export ("type", ArgumentSemantic.Copy)] + string Type { get; } + + [Export ("telemetryInfo", ArgumentSemantic.Copy)] + NSDictionary TelemetryInfo { get; set; } + } + + // @interface DDTelemetryConfigurationEventTelemetryConfiguration + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryConfigurationEventTelemetryConfiguration + { + [NullAllowed, Export ("actionNameAttribute", ArgumentSemantic.Copy)] + string ActionNameAttribute { get; } + + [NullAllowed, Export ("allowFallbackToLocalStorage", ArgumentSemantic.Strong)] + NSNumber AllowFallbackToLocalStorage { get; } + + [NullAllowed, Export ("allowUntrustedEvents", ArgumentSemantic.Strong)] + NSNumber AllowUntrustedEvents { get; } + + [NullAllowed, Export ("appHangThreshold", ArgumentSemantic.Strong)] + NSNumber AppHangThreshold { get; } + + [NullAllowed, Export ("backgroundTasksEnabled", ArgumentSemantic.Strong)] + NSNumber BackgroundTasksEnabled { get; } + + [NullAllowed, Export ("batchProcessingLevel", ArgumentSemantic.Strong)] + NSNumber BatchProcessingLevel { get; } + + [NullAllowed, Export ("batchSize", ArgumentSemantic.Strong)] + NSNumber BatchSize { get; } + + [NullAllowed, Export ("batchUploadFrequency", ArgumentSemantic.Strong)] + NSNumber BatchUploadFrequency { get; } + + [NullAllowed, Export ("betaEncodeCookieOptions", ArgumentSemantic.Strong)] + NSNumber BetaEncodeCookieOptions { get; set; } + + [NullAllowed, Export ("compressIntakeRequests", ArgumentSemantic.Strong)] + NSNumber CompressIntakeRequests { get; } + + [NullAllowed, Export ("dartVersion", ArgumentSemantic.Copy)] + string DartVersion { get; set; } + + [NullAllowed, Export ("defaultPrivacyLevel", ArgumentSemantic.Copy)] + string DefaultPrivacyLevel { get; set; } + + [NullAllowed, Export ("enablePrivacyForActionName", ArgumentSemantic.Strong)] + NSNumber EnablePrivacyForActionName { get; set; } + + [NullAllowed, Export ("forwardConsoleLogs", ArgumentSemantic.Strong)] + DDTelemetryConfigurationEventTelemetryConfigurationForwardConsoleLogs ForwardConsoleLogs { get; } + + [NullAllowed, Export ("forwardErrorsToLogs", ArgumentSemantic.Strong)] + NSNumber ForwardErrorsToLogs { get; } + + [NullAllowed, Export ("forwardReports", ArgumentSemantic.Strong)] + DDTelemetryConfigurationEventTelemetryConfigurationForwardReports ForwardReports { get; } + + [NullAllowed, Export ("imagePrivacyLevel", ArgumentSemantic.Copy)] + string ImagePrivacyLevel { get; set; } + + [NullAllowed, Export ("initializationType", ArgumentSemantic.Copy)] + string InitializationType { get; set; } + + [NullAllowed, Export ("invTimeThresholdMs", ArgumentSemantic.Strong)] + NSNumber InvTimeThresholdMs { get; } + + [NullAllowed, Export ("isMainProcess", ArgumentSemantic.Strong)] + NSNumber IsMainProcess { get; } + + [NullAllowed, Export ("mauiVersion", ArgumentSemantic.Copy)] + string MauiVersion { get; set; } + + [NullAllowed, Export ("mobileVitalsUpdatePeriod", ArgumentSemantic.Strong)] + NSNumber MobileVitalsUpdatePeriod { get; set; } + + [NullAllowed, Export ("numberOfDisplays", ArgumentSemantic.Strong)] + NSNumber NumberOfDisplays { get; } + + [NullAllowed, Export ("plugins", ArgumentSemantic.Copy)] + DDTelemetryConfigurationEventTelemetryConfigurationPlugins[] Plugins { get; set; } + + [NullAllowed, Export ("premiumSampleRate", ArgumentSemantic.Strong)] + NSNumber PremiumSampleRate { get; } + + [NullAllowed, Export ("profilingSampleRate", ArgumentSemantic.Strong)] + NSNumber ProfilingSampleRate { get; set; } + + [NullAllowed, Export ("propagateTraceBaggage", ArgumentSemantic.Strong)] + NSNumber PropagateTraceBaggage { get; set; } + + [NullAllowed, Export ("reactNativeVersion", ArgumentSemantic.Copy)] + string ReactNativeVersion { get; set; } + + [NullAllowed, Export ("reactVersion", ArgumentSemantic.Copy)] + string ReactVersion { get; set; } + + [NullAllowed, Export ("remoteConfigurationId", ArgumentSemantic.Copy)] + string RemoteConfigurationId { get; set; } + + [NullAllowed, Export ("replaySampleRate", ArgumentSemantic.Strong)] + NSNumber ReplaySampleRate { get; } + + [NullAllowed, Export ("sdkVersion", ArgumentSemantic.Copy)] + string SdkVersion { get; set; } + + [NullAllowed, Export ("selectedTracingPropagators", ArgumentSemantic.Copy)] + NSNumber[] SelectedTracingPropagators { get; } + + [NullAllowed, Export ("sendLogsAfterSessionExpiration", ArgumentSemantic.Strong)] + NSNumber SendLogsAfterSessionExpiration { get; set; } + + [Export ("sessionPersistence")] + DDTelemetryConfigurationEventTelemetryConfigurationSessionPersistence SessionPersistence { get; } + + [NullAllowed, Export ("sessionReplaySampleRate", ArgumentSemantic.Strong)] + NSNumber SessionReplaySampleRate { get; set; } + + [NullAllowed, Export ("sessionSampleRate", ArgumentSemantic.Strong)] + NSNumber SessionSampleRate { get; } + + [NullAllowed, Export ("silentMultipleInit", ArgumentSemantic.Strong)] + NSNumber SilentMultipleInit { get; } + + [NullAllowed, Export ("source", ArgumentSemantic.Copy)] + string Source { get; set; } + + [NullAllowed, Export ("startRecordingImmediately", ArgumentSemantic.Strong)] + NSNumber StartRecordingImmediately { get; set; } + + [NullAllowed, Export ("startSessionReplayRecordingManually", ArgumentSemantic.Strong)] + NSNumber StartSessionReplayRecordingManually { get; set; } + + [NullAllowed, Export ("storeContextsAcrossPages", ArgumentSemantic.Strong)] + NSNumber StoreContextsAcrossPages { get; } + + [NullAllowed, Export ("swiftuiActionTrackingEnabled", ArgumentSemantic.Strong)] + NSNumber SwiftuiActionTrackingEnabled { get; set; } + + [NullAllowed, Export ("swiftuiViewTrackingEnabled", ArgumentSemantic.Strong)] + NSNumber SwiftuiViewTrackingEnabled { get; set; } + + [NullAllowed, Export ("telemetryConfigurationSampleRate", ArgumentSemantic.Strong)] + NSNumber TelemetryConfigurationSampleRate { get; } + + [NullAllowed, Export ("telemetrySampleRate", ArgumentSemantic.Strong)] + NSNumber TelemetrySampleRate { get; } + + [NullAllowed, Export ("telemetryUsageSampleRate", ArgumentSemantic.Strong)] + NSNumber TelemetryUsageSampleRate { get; } + + [NullAllowed, Export ("textAndInputPrivacyLevel", ArgumentSemantic.Copy)] + string TextAndInputPrivacyLevel { get; set; } + + [NullAllowed, Export ("tnsTimeThresholdMs", ArgumentSemantic.Strong)] + NSNumber TnsTimeThresholdMs { get; } + + [NullAllowed, Export ("touchPrivacyLevel", ArgumentSemantic.Copy)] + string TouchPrivacyLevel { get; set; } + + [Export ("traceContextInjection")] + DDTelemetryConfigurationEventTelemetryConfigurationTraceContextInjection TraceContextInjection { get; set; } + + [NullAllowed, Export ("traceSampleRate", ArgumentSemantic.Strong)] + NSNumber TraceSampleRate { get; } + + [NullAllowed, Export ("tracerApi", ArgumentSemantic.Copy)] + string TracerApi { get; set; } + + [NullAllowed, Export ("tracerApiVersion", ArgumentSemantic.Copy)] + string TracerApiVersion { get; set; } + + [NullAllowed, Export ("trackAnonymousUser", ArgumentSemantic.Strong)] + NSNumber TrackAnonymousUser { get; set; } + + [NullAllowed, Export ("trackBackgroundEvents", ArgumentSemantic.Strong)] + NSNumber TrackBackgroundEvents { get; set; } + + [NullAllowed, Export ("trackBfcacheViews", ArgumentSemantic.Strong)] + NSNumber TrackBfcacheViews { get; set; } + + [NullAllowed, Export ("trackCrossPlatformLongTasks", ArgumentSemantic.Strong)] + NSNumber TrackCrossPlatformLongTasks { get; set; } + + [NullAllowed, Export ("trackEarlyRequests", ArgumentSemantic.Strong)] + NSNumber TrackEarlyRequests { get; set; } + + [NullAllowed, Export ("trackErrors", ArgumentSemantic.Strong)] + NSNumber TrackErrors { get; set; } + + [NullAllowed, Export ("trackFeatureFlagsForEvents", ArgumentSemantic.Copy)] + NSNumber[] TrackFeatureFlagsForEvents { get; } + + [NullAllowed, Export ("trackFlutterPerformance", ArgumentSemantic.Strong)] + NSNumber TrackFlutterPerformance { get; set; } + + [NullAllowed, Export ("trackFrustrations", ArgumentSemantic.Strong)] + NSNumber TrackFrustrations { get; set; } + + [NullAllowed, Export ("trackInteractions", ArgumentSemantic.Strong)] + NSNumber TrackInteractions { get; set; } + + [NullAllowed, Export ("trackLongTask", ArgumentSemantic.Strong)] + NSNumber TrackLongTask { get; set; } + + [NullAllowed, Export ("trackNativeErrors", ArgumentSemantic.Strong)] + NSNumber TrackNativeErrors { get; set; } + + [NullAllowed, Export ("trackNativeLongTasks", ArgumentSemantic.Strong)] + NSNumber TrackNativeLongTasks { get; set; } + + [NullAllowed, Export ("trackNativeViews", ArgumentSemantic.Strong)] + NSNumber TrackNativeViews { get; set; } + + [NullAllowed, Export ("trackNetworkRequests", ArgumentSemantic.Strong)] + NSNumber TrackNetworkRequests { get; set; } + + [Export ("trackResourceHeaders")] + DDTelemetryConfigurationEventTelemetryConfigurationTrackResourceHeaders TrackResourceHeaders { get; set; } + + [NullAllowed, Export ("trackResources", ArgumentSemantic.Strong)] + NSNumber TrackResources { get; set; } + + [NullAllowed, Export ("trackSessionAcrossSubdomains", ArgumentSemantic.Strong)] + NSNumber TrackSessionAcrossSubdomains { get; } + + [NullAllowed, Export ("trackUserInteractions", ArgumentSemantic.Strong)] + NSNumber TrackUserInteractions { get; set; } + + [NullAllowed, Export ("trackViewsManually", ArgumentSemantic.Strong)] + NSNumber TrackViewsManually { get; set; } + + [Export ("trackingConsent")] + DDTelemetryConfigurationEventTelemetryConfigurationTrackingConsent TrackingConsent { get; } + + [NullAllowed, Export ("unityVersion", ArgumentSemantic.Copy)] + string UnityVersion { get; set; } + + [NullAllowed, Export ("useAllowedGraphQlUrls", ArgumentSemantic.Strong)] + NSNumber UseAllowedGraphQlUrls { get; } + + [NullAllowed, Export ("useAllowedTracingOrigins", ArgumentSemantic.Strong)] + NSNumber UseAllowedTracingOrigins { get; } + + [NullAllowed, Export ("useAllowedTracingUrls", ArgumentSemantic.Strong)] + NSNumber UseAllowedTracingUrls { get; } + + [NullAllowed, Export ("useAllowedTrackingOrigins", ArgumentSemantic.Strong)] + NSNumber UseAllowedTrackingOrigins { get; set; } + + [NullAllowed, Export ("useBeforeSend", ArgumentSemantic.Strong)] + NSNumber UseBeforeSend { get; } + + [NullAllowed, Export ("useCrossSiteSessionCookie", ArgumentSemantic.Strong)] + NSNumber UseCrossSiteSessionCookie { get; } + + [NullAllowed, Export ("useExcludedActivityUrls", ArgumentSemantic.Strong)] + NSNumber UseExcludedActivityUrls { get; } + + [NullAllowed, Export ("useFirstPartyHosts", ArgumentSemantic.Strong)] + NSNumber UseFirstPartyHosts { get; set; } + + [NullAllowed, Export ("useLocalEncryption", ArgumentSemantic.Strong)] + NSNumber UseLocalEncryption { get; } + + [NullAllowed, Export ("usePartitionedCrossSiteSessionCookie", ArgumentSemantic.Strong)] + NSNumber UsePartitionedCrossSiteSessionCookie { get; } + + [NullAllowed, Export ("usePciIntake", ArgumentSemantic.Strong)] + NSNumber UsePciIntake { get; set; } + + [NullAllowed, Export ("useProxy", ArgumentSemantic.Strong)] + NSNumber UseProxy { get; set; } + + [NullAllowed, Export ("useRemoteConfigurationProxy", ArgumentSemantic.Strong)] + NSNumber UseRemoteConfigurationProxy { get; set; } + + [NullAllowed, Export ("useSecureSessionCookie", ArgumentSemantic.Strong)] + NSNumber UseSecureSessionCookie { get; } + + [NullAllowed, Export ("useTracing", ArgumentSemantic.Strong)] + NSNumber UseTracing { get; } + + [NullAllowed, Export ("useTrackGraphQlPayload", ArgumentSemantic.Strong)] + NSNumber UseTrackGraphQlPayload { get; } + + [NullAllowed, Export ("useTrackGraphQlResponseErrors", ArgumentSemantic.Strong)] + NSNumber UseTrackGraphQlResponseErrors { get; } + + [NullAllowed, Export ("useWorkerUrl", ArgumentSemantic.Strong)] + NSNumber UseWorkerUrl { get; } + + [NullAllowed, Export ("variant", ArgumentSemantic.Copy)] + string Variant { get; set; } + + [Export ("viewTrackingStrategy")] + DDTelemetryConfigurationEventTelemetryConfigurationViewTrackingStrategy ViewTrackingStrategy { get; } + } + + // @interface DDTelemetryConfigurationEventTelemetryConfigurationForwardConsoleLogs + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryConfigurationEventTelemetryConfigurationForwardConsoleLogs + { + [NullAllowed, Export ("stringsArray", ArgumentSemantic.Copy)] + string[] StringsArray { get; } + + [NullAllowed, Export ("string", ArgumentSemantic.Copy)] + string String { get; } + } + + // @interface DDTelemetryConfigurationEventTelemetryConfigurationForwardReports + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryConfigurationEventTelemetryConfigurationForwardReports + { + [NullAllowed, Export ("stringsArray", ArgumentSemantic.Copy)] + string[] StringsArray { get; } + + [NullAllowed, Export ("string", ArgumentSemantic.Copy)] + string String { get; } + } + + // @interface DDTelemetryConfigurationEventTelemetryConfigurationPlugins + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryConfigurationEventTelemetryConfigurationPlugins + { + [Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [Export ("pluginsInfo", ArgumentSemantic.Copy)] + NSDictionary PluginsInfo { get; set; } + } + + // @interface DDTelemetryConfigurationEventTelemetryRUMTelemetryDevice + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryConfigurationEventTelemetryRUMTelemetryDevice + { + [NullAllowed, Export ("architecture", ArgumentSemantic.Copy)] + string Architecture { get; } + + [NullAllowed, Export ("brand", ArgumentSemantic.Copy)] + string Brand { get; } + + [NullAllowed, Export ("isLowRam", ArgumentSemantic.Strong)] + NSNumber IsLowRam { get; } + + [NullAllowed, Export ("logicalCpuCount", ArgumentSemantic.Strong)] + NSNumber LogicalCpuCount { get; } + + [NullAllowed, Export ("model", ArgumentSemantic.Copy)] + string Model { get; } + + [NullAllowed, Export ("totalRam", ArgumentSemantic.Strong)] + NSNumber TotalRam { get; } + } + + // @interface DDTelemetryConfigurationEventTelemetryRUMTelemetryOperatingSystem + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryConfigurationEventTelemetryRUMTelemetryOperatingSystem + { + [NullAllowed, Export ("build", ArgumentSemantic.Copy)] + string Build { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [NullAllowed, Export ("version", ArgumentSemantic.Copy)] + string Version { get; } + } + + // @interface DDTelemetryConfigurationEventView + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryConfigurationEventView + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDTelemetryDebugEvent + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryDebugEvent + { + [Export ("dd", ArgumentSemantic.Strong)] + DDTelemetryDebugEventDD Dd { get; } + + [NullAllowed, Export ("action", ArgumentSemantic.Strong)] + DDTelemetryDebugEventAction Action { get; } + + [NullAllowed, Export ("application", ArgumentSemantic.Strong)] + DDTelemetryDebugEventApplication Application { get; } + + [Export ("date", ArgumentSemantic.Strong)] + NSNumber Date { get; } + + [NullAllowed, Export ("effectiveSampleRate", ArgumentSemantic.Strong)] + NSNumber EffectiveSampleRate { get; } + + [NullAllowed, Export ("experimentalFeatures", ArgumentSemantic.Copy)] + string[] ExperimentalFeatures { get; } + + [Export ("service", ArgumentSemantic.Copy)] + string Service { get; } + + [NullAllowed, Export ("session", ArgumentSemantic.Strong)] + DDTelemetryDebugEventSession Session { get; } + + [Export ("source")] + DDTelemetryDebugEventSource Source { get; } + + [Export ("telemetry", ArgumentSemantic.Strong)] + DDTelemetryDebugEventTelemetry Telemetry { get; } + + [Export ("type", ArgumentSemantic.Copy)] + string Type { get; } + + [Export ("version", ArgumentSemantic.Copy)] + string Version { get; } + + [NullAllowed, Export ("view", ArgumentSemantic.Strong)] + DDTelemetryDebugEventView View { get; } + } + + // @interface DDTelemetryDebugEventAction + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryDebugEventAction + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [Export ("idValue", ArgumentSemantic.Strong)] + DDTelemetryDebugEventActionRUMActionID IdValue { get; } + } + + // @interface DDTelemetryDebugEventActionRUMActionID + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryDebugEventActionRUMActionID + { + [NullAllowed, Export ("string", ArgumentSemantic.Copy)] + string String { get; } + + [NullAllowed, Export ("stringsArray", ArgumentSemantic.Copy)] + string[] StringsArray { get; } + } + + // @interface DDTelemetryDebugEventApplication + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryDebugEventApplication + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDTelemetryDebugEventDD + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryDebugEventDD + { + [Export ("formatVersion", ArgumentSemantic.Strong)] + NSNumber FormatVersion { get; } + } + + // @interface DDTelemetryDebugEventSession + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryDebugEventSession + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDTelemetryDebugEventTelemetry + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryDebugEventTelemetry + { + [NullAllowed, Export ("device", ArgumentSemantic.Strong)] + DDTelemetryDebugEventTelemetryRUMTelemetryDevice Device { get; } + + [Export ("message", ArgumentSemantic.Copy)] + string Message { get; } + + [NullAllowed, Export ("os", ArgumentSemantic.Strong)] + DDTelemetryDebugEventTelemetryRUMTelemetryOperatingSystem Os { get; } + + [Export ("status", ArgumentSemantic.Copy)] + string Status { get; } + + [NullAllowed, Export ("type", ArgumentSemantic.Copy)] + string Type { get; } + + [Export ("telemetryInfo", ArgumentSemantic.Copy)] + NSDictionary TelemetryInfo { get; set; } + } + + // @interface DDTelemetryDebugEventTelemetryRUMTelemetryDevice + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryDebugEventTelemetryRUMTelemetryDevice + { + [NullAllowed, Export ("architecture", ArgumentSemantic.Copy)] + string Architecture { get; } + + [NullAllowed, Export ("brand", ArgumentSemantic.Copy)] + string Brand { get; } + + [NullAllowed, Export ("isLowRam", ArgumentSemantic.Strong)] + NSNumber IsLowRam { get; } + + [NullAllowed, Export ("logicalCpuCount", ArgumentSemantic.Strong)] + NSNumber LogicalCpuCount { get; } + + [NullAllowed, Export ("model", ArgumentSemantic.Copy)] + string Model { get; } + + [NullAllowed, Export ("totalRam", ArgumentSemantic.Strong)] + NSNumber TotalRam { get; } + } + + // @interface DDTelemetryDebugEventTelemetryRUMTelemetryOperatingSystem + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryDebugEventTelemetryRUMTelemetryOperatingSystem + { + [NullAllowed, Export ("build", ArgumentSemantic.Copy)] + string Build { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [NullAllowed, Export ("version", ArgumentSemantic.Copy)] + string Version { get; } + } + + // @interface DDTelemetryDebugEventView + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryDebugEventView + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDTelemetryErrorEvent + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryErrorEvent + { + [Export ("dd", ArgumentSemantic.Strong)] + DDTelemetryErrorEventDD Dd { get; } + + [NullAllowed, Export ("action", ArgumentSemantic.Strong)] + DDTelemetryErrorEventAction Action { get; } + + [NullAllowed, Export ("application", ArgumentSemantic.Strong)] + DDTelemetryErrorEventApplication Application { get; } + + [Export ("date", ArgumentSemantic.Strong)] + NSNumber Date { get; } + + [NullAllowed, Export ("effectiveSampleRate", ArgumentSemantic.Strong)] + NSNumber EffectiveSampleRate { get; } + + [NullAllowed, Export ("experimentalFeatures", ArgumentSemantic.Copy)] + string[] ExperimentalFeatures { get; } + + [Export ("service", ArgumentSemantic.Copy)] + string Service { get; } + + [NullAllowed, Export ("session", ArgumentSemantic.Strong)] + DDTelemetryErrorEventSession Session { get; } + + [Export ("source")] + DDTelemetryErrorEventSource Source { get; } + + [Export ("telemetry", ArgumentSemantic.Strong)] + DDTelemetryErrorEventTelemetry Telemetry { get; } + + [Export ("type", ArgumentSemantic.Copy)] + string Type { get; } + + [Export ("version", ArgumentSemantic.Copy)] + string Version { get; } + + [NullAllowed, Export ("view", ArgumentSemantic.Strong)] + DDTelemetryErrorEventView View { get; } + } + + // @interface DDTelemetryErrorEventAction + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryErrorEventAction + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + + [Export ("idValue", ArgumentSemantic.Strong)] + DDTelemetryErrorEventActionRUMActionID IdValue { get; } + } + + // @interface DDTelemetryErrorEventActionRUMActionID + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryErrorEventActionRUMActionID + { + [NullAllowed, Export ("string", ArgumentSemantic.Copy)] + string String { get; } + + [NullAllowed, Export ("stringsArray", ArgumentSemantic.Copy)] + string[] StringsArray { get; } + } + + // @interface DDTelemetryErrorEventApplication + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryErrorEventApplication + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDTelemetryErrorEventDD + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryErrorEventDD + { + [Export ("formatVersion", ArgumentSemantic.Strong)] + NSNumber FormatVersion { get; } + } + + // @interface DDTelemetryErrorEventSession + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryErrorEventSession + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDTelemetryErrorEventTelemetry + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryErrorEventTelemetry + { + [NullAllowed, Export ("device", ArgumentSemantic.Strong)] + DDTelemetryErrorEventTelemetryRUMTelemetryDevice Device { get; } + + [NullAllowed, Export ("error", ArgumentSemantic.Strong)] + DDTelemetryErrorEventTelemetryError Error { get; } + + [Export ("message", ArgumentSemantic.Copy)] + string Message { get; } + + [NullAllowed, Export ("os", ArgumentSemantic.Strong)] + DDTelemetryErrorEventTelemetryRUMTelemetryOperatingSystem Os { get; } + + [Export ("status", ArgumentSemantic.Copy)] + string Status { get; } + + [NullAllowed, Export ("type", ArgumentSemantic.Copy)] + string Type { get; } + + [Export ("telemetryInfo", ArgumentSemantic.Copy)] + NSDictionary TelemetryInfo { get; set; } + } + + // @interface DDTelemetryErrorEventTelemetryError + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryErrorEventTelemetryError + { + [NullAllowed, Export ("kind", ArgumentSemantic.Copy)] + string Kind { get; } + + [NullAllowed, Export ("stack", ArgumentSemantic.Copy)] + string Stack { get; } + } + + // @interface DDTelemetryErrorEventTelemetryRUMTelemetryDevice + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryErrorEventTelemetryRUMTelemetryDevice + { + [NullAllowed, Export ("architecture", ArgumentSemantic.Copy)] + string Architecture { get; } + + [NullAllowed, Export ("brand", ArgumentSemantic.Copy)] + string Brand { get; } + + [NullAllowed, Export ("isLowRam", ArgumentSemantic.Strong)] + NSNumber IsLowRam { get; } + + [NullAllowed, Export ("logicalCpuCount", ArgumentSemantic.Strong)] + NSNumber LogicalCpuCount { get; } + + [NullAllowed, Export ("model", ArgumentSemantic.Copy)] + string Model { get; } + + [NullAllowed, Export ("totalRam", ArgumentSemantic.Strong)] + NSNumber TotalRam { get; } + } + + // @interface DDTelemetryErrorEventTelemetryRUMTelemetryOperatingSystem + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryErrorEventTelemetryRUMTelemetryOperatingSystem + { + [NullAllowed, Export ("build", ArgumentSemantic.Copy)] + string Build { get; } + + [NullAllowed, Export ("name", ArgumentSemantic.Copy)] + string Name { get; } + + [NullAllowed, Export ("version", ArgumentSemantic.Copy)] + string Version { get; } + } + + // @interface DDTelemetryErrorEventView + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTelemetryErrorEventView + { + [Export ("id", ArgumentSemantic.Copy)] + string Id { get; } + } + + // @interface DDTimeBasedINVActionPredicate + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTimeBasedINVActionPredicate : DDNextViewActionPredicate + { + [Static] + [Export ("defaultMaxTimeToNextView")] + double DefaultMaxTimeToNextView { get; } + + [Export ("initWithMaxTimeToNextView:")] + NativeHandle Constructor (double maxTimeToNextView); + + [Export ("isLastActionFrom:")] + bool IsLastActionFrom (DDINVActionParams actionParams); + } + + // @interface DDTimeBasedTNSResourcePredicate + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTimeBasedTNSResourcePredicate : DDNetworkSettledResourcePredicate + { + [Static] + [Export ("defaultThreshold")] + double DefaultThreshold { get; } + + [Export ("initWithThreshold:")] + NativeHandle Constructor (double threshold); + + [Export ("isInitialResourceFrom:")] + bool IsInitialResourceFrom (DDTNSResourceParams resourceParams); + } + + // @interface __dd_private_DDForwardingProxyBase + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface __dd_private_DDForwardingProxyBase + { + [Export ("forwardingTargetOrNil")] + NSObject ForwardingTargetOrNil (); + } +} diff --git a/src/DatadogNet.Objc.iOS/StructsAndEnums.cs b/src/DatadogNet.RUM.iOS/StructsAndEnums.cs similarity index 54% rename from src/DatadogNet.Objc.iOS/StructsAndEnums.cs rename to src/DatadogNet.RUM.iOS/StructsAndEnums.cs index 19c8674..6e35c7a 100644 --- a/src/DatadogNet.Objc.iOS/StructsAndEnums.cs +++ b/src/DatadogNet.RUM.iOS/StructsAndEnums.cs @@ -1,41 +1,7 @@ using ObjCRuntime; -namespace DatadogObjc +namespace DatadogRUM { - [Native] - public enum DDBatchProcessingLevel : long - { - Low = 0, - Medium = 1, - High = 2 - } - - [Native] - public enum DDBatchSize : long - { - Small = 0, - Medium = 1, - Large = 2 - } - - [Native] - public enum DDInjectEncoding : long - { - Multiple = 0, - Single = 1 - } - - [Native] - public enum DDLogLevel : long - { - Debug = 0, - Info = 1, - Notice = 2, - Warn = 3, - Error = 4, - Critical = 5 - } - [Native] public enum DDRUMActionEventActionActionType : long { @@ -68,7 +34,22 @@ public enum DDRUMActionEventContainerSource : long ReactNative = 4, Roku = 5, Unity = 6, - KotlinMultiplatform = 7 + KotlinMultiplatform = 7, + Electron = 8, + RumCpp = 9, + Maui = 10 + } + + [Native] + public enum DDRUMActionEventDDActionNameSource : long + { + None = 0, + CustomAttribute = 1, + MaskPlaceholder = 2, + StandardAttribute = 3, + TextContent = 4, + MaskDisallowed = 5, + Blank = 6 } [Native] @@ -92,6 +73,19 @@ public enum DDRUMActionEventDDSessionRUMSessionPrecondition : long ExplicitStop = 7 } + [Native] + public enum DDRUMActionEventDeviceDeviceType : long + { + None = 0, + Mobile = 1, + Desktop = 2, + Tablet = 3, + Tv = 4, + GamingConsole = 5, + Bot = 6, + Other = 7 + } + [Native] public enum DDRUMActionEventRUMConnectivityEffectiveType : long { @@ -125,18 +119,6 @@ public enum DDRUMActionEventRUMConnectivityStatus : long Maybe = 2 } - [Native] - public enum DDRUMActionEventRUMDeviceRUMDeviceType : long - { - Mobile = 0, - Desktop = 1, - Tablet = 2, - Tv = 3, - GamingConsole = 4, - Bot = 5, - Other = 6 - } - [Native] public enum DDRUMActionEventSessionRUMSessionType : long { @@ -156,7 +138,10 @@ public enum DDRUMActionEventSource : long ReactNative = 5, Roku = 6, Unity = 7, - KotlinMultiplatform = 8 + KotlinMultiplatform = 8, + Electron = 9, + RumCpp = 10, + Maui = 11 } [Native] @@ -165,7 +150,8 @@ public enum DDRUMActionType : long Tap = 0, Scroll = 1, Swipe = 2, - Custom = 3 + Custom = 3, + Click = 4 } [Native] @@ -178,7 +164,43 @@ public enum DDRUMErrorEventContainerSource : long ReactNative = 4, Roku = 5, Unity = 6, - KotlinMultiplatform = 7 + KotlinMultiplatform = 7, + Electron = 8, + RumCpp = 9, + Maui = 10 + } + + [Native] + public enum DDRUMErrorEventDDProfilingErrorReason : long + { + None = 0, + NotSupportedByBrowser = 1, + FailedToLazyLoad = 2, + MissingDocumentPolicyHeader = 3, + UnexpectedException = 4 + } + + [Native] + public enum DDRUMErrorEventDDProfilingQuotaReason : long + { + None = 0, + QuotaOk = 1, + QuotaExceeded = 2, + OrgDisabled = 3, + BackendUnavailable = 4, + Undefined = 5, + Timeout = 6, + ApiError = 7 + } + + [Native] + public enum DDRUMErrorEventDDProfilingStatus : long + { + None = 0, + Starting = 1, + Running = 2, + Stopped = 3, + Error = 4 } [Native] @@ -202,6 +224,19 @@ public enum DDRUMErrorEventDDSessionRUMSessionPrecondition : long ExplicitStop = 7 } + [Native] + public enum DDRUMErrorEventDeviceDeviceType : long + { + None = 0, + Mobile = 1, + Desktop = 2, + Tablet = 3, + Tv = 4, + GamingConsole = 5, + Bot = 6, + Other = 7 + } + [Native] public enum DDRUMErrorEventErrorCSPDisposition : long { @@ -214,10 +249,12 @@ public enum DDRUMErrorEventErrorCSPDisposition : long public enum DDRUMErrorEventErrorCategory : long { None = 0, - Anr = 1, + ANR = 1, AppHang = 2, Exception = 3, - WatchdogTermination = 4 + WatchdogTermination = 4, + MemoryWarning = 5, + Network = 6 } [Native] @@ -261,6 +298,15 @@ public enum DDRUMErrorEventErrorResourceProviderProviderType : long Video = 14 } + [Native] + public enum DDRUMErrorEventErrorResourceRUMGraphqlOperationType : long + { + None = 0, + Query = 1, + Mutation = 2, + Subscription = 3 + } + [Native] public enum DDRUMErrorEventErrorResourceRUMMethod : long { @@ -300,7 +346,11 @@ public enum DDRUMErrorEventErrorSourceType : long Roku = 6, Ndk = 7, IosIl2cpp = 8, - NdkIl2cpp = 9 + NdkIl2cpp = 9, + Windows = 10, + Macos = 11, + Linux = 12, + Maui = 13 } [Native] @@ -336,18 +386,6 @@ public enum DDRUMErrorEventRUMConnectivityStatus : long Maybe = 2 } - [Native] - public enum DDRUMErrorEventRUMDeviceRUMDeviceType : long - { - Mobile = 0, - Desktop = 1, - Tablet = 2, - Tv = 3, - GamingConsole = 4, - Bot = 5, - Other = 6 - } - [Native] public enum DDRUMErrorEventSessionRUMSessionType : long { @@ -367,7 +405,10 @@ public enum DDRUMErrorEventSource : long ReactNative = 5, Roku = 6, Unity = 7, - KotlinMultiplatform = 8 + KotlinMultiplatform = 8, + Electron = 9, + RumCpp = 10, + Maui = 11 } [Native] @@ -377,7 +418,16 @@ public enum DDRUMErrorSource : long Network = 1, Webview = 2, Console = 3, - Custom = 4 + Custom = 4, + Logger = 5 + } + + [Native] + public enum DDRUMFeatureOperationFailureReason : long + { + Error = 0, + Abandoned = 1, + Other = 2 } [Native] @@ -390,7 +440,43 @@ public enum DDRUMLongTaskEventContainerSource : long ReactNative = 4, Roku = 5, Unity = 6, - KotlinMultiplatform = 7 + KotlinMultiplatform = 7, + Electron = 8, + RumCpp = 9, + Maui = 10 + } + + [Native] + public enum DDRUMLongTaskEventDDProfilingErrorReason : long + { + None = 0, + NotSupportedByBrowser = 1, + FailedToLazyLoad = 2, + MissingDocumentPolicyHeader = 3, + UnexpectedException = 4 + } + + [Native] + public enum DDRUMLongTaskEventDDProfilingQuotaReason : long + { + None = 0, + QuotaOk = 1, + QuotaExceeded = 2, + OrgDisabled = 3, + BackendUnavailable = 4, + Undefined = 5, + Timeout = 6, + ApiError = 7 + } + + [Native] + public enum DDRUMLongTaskEventDDProfilingStatus : long + { + None = 0, + Starting = 1, + Running = 2, + Stopped = 3, + Error = 4 } [Native] @@ -414,6 +500,39 @@ public enum DDRUMLongTaskEventDDSessionRUMSessionPrecondition : long ExplicitStop = 7 } + [Native] + public enum DDRUMLongTaskEventDeviceDeviceType : long + { + None = 0, + Mobile = 1, + Desktop = 2, + Tablet = 3, + Tv = 4, + GamingConsole = 5, + Bot = 6, + Other = 7 + } + + [Native] + public enum DDRUMLongTaskEventLongTaskEntryType : long + { + None = 0, + LongTask = 1, + LongAnimationFrame = 2 + } + + [Native] + public enum DDRUMLongTaskEventLongTaskScriptsInvokerType : long + { + None = 0, + UserCallback = 1, + EventListener = 2, + ResolvePromise = 3, + RejectPromise = 4, + ClassicScript = 5, + ModuleScript = 6 + } + [Native] public enum DDRUMLongTaskEventRUMConnectivityEffectiveType : long { @@ -447,18 +566,6 @@ public enum DDRUMLongTaskEventRUMConnectivityStatus : long Maybe = 2 } - [Native] - public enum DDRUMLongTaskEventRUMDeviceRUMDeviceType : long - { - Mobile = 0, - Desktop = 1, - Tablet = 2, - Tv = 3, - GamingConsole = 4, - Bot = 5, - Other = 6 - } - [Native] public enum DDRUMLongTaskEventSessionRUMSessionType : long { @@ -478,7 +585,10 @@ public enum DDRUMLongTaskEventSource : long ReactNative = 5, Roku = 6, Unity = 7, - KotlinMultiplatform = 8 + KotlinMultiplatform = 8, + Electron = 9, + RumCpp = 10, + Maui = 11 } [Native] @@ -505,7 +615,10 @@ public enum DDRUMResourceEventContainerSource : long ReactNative = 4, Roku = 5, Unity = 6, - KotlinMultiplatform = 7 + KotlinMultiplatform = 7, + Electron = 8, + RumCpp = 9, + Maui = 10 } [Native] @@ -529,6 +642,19 @@ public enum DDRUMResourceEventDDSessionRUMSessionPrecondition : long ExplicitStop = 7 } + [Native] + public enum DDRUMResourceEventDeviceDeviceType : long + { + None = 0, + Mobile = 1, + Desktop = 2, + Tablet = 3, + Tv = 4, + GamingConsole = 5, + Bot = 6, + Other = 7 + } + [Native] public enum DDRUMResourceEventRUMConnectivityEffectiveType : long { @@ -563,23 +689,12 @@ public enum DDRUMResourceEventRUMConnectivityStatus : long } [Native] - public enum DDRUMResourceEventRUMDeviceRUMDeviceType : long - { - Mobile = 0, - Desktop = 1, - Tablet = 2, - Tv = 3, - GamingConsole = 4, - Bot = 5, - Other = 6 - } - - [Native] - public enum DDRUMResourceEventResourceGraphqlOperationType : long + public enum DDRUMResourceEventResourceDeliveryType : long { - Query = 0, - Mutation = 1, - Subscription = 2 + None = 0, + Cache = 1, + NavigationalPrefetch = 2, + Other = 3 } [Native] @@ -602,6 +717,15 @@ public enum DDRUMResourceEventResourceProviderProviderType : long Video = 14 } + [Native] + public enum DDRUMResourceEventResourceRUMGraphqlOperationType : long + { + None = 0, + Query = 1, + Mutation = 2, + Subscription = 3 + } + [Native] public enum DDRUMResourceEventResourceRUMMethod : long { @@ -660,7 +784,10 @@ public enum DDRUMResourceEventSource : long ReactNative = 5, Roku = 6, Unity = 7, - KotlinMultiplatform = 8 + KotlinMultiplatform = 8, + Electron = 9, + RumCpp = 10, + Maui = 11 } [Native] @@ -689,7 +816,10 @@ public enum DDRUMViewEventContainerSource : long ReactNative = 4, Roku = 5, Unity = 6, - KotlinMultiplatform = 7 + KotlinMultiplatform = 7, + Electron = 8, + RumCpp = 9, + Maui = 10 } [Native] @@ -702,6 +832,39 @@ public enum DDRUMViewEventDDPageStatesState : long Terminated = 4 } + [Native] + public enum DDRUMViewEventDDProfilingErrorReason : long + { + None = 0, + NotSupportedByBrowser = 1, + FailedToLazyLoad = 2, + MissingDocumentPolicyHeader = 3, + UnexpectedException = 4 + } + + [Native] + public enum DDRUMViewEventDDProfilingQuotaReason : long + { + None = 0, + QuotaOk = 1, + QuotaExceeded = 2, + OrgDisabled = 3, + BackendUnavailable = 4, + Undefined = 5, + Timeout = 6, + ApiError = 7 + } + + [Native] + public enum DDRUMViewEventDDProfilingStatus : long + { + None = 0, + Starting = 1, + Running = 2, + Stopped = 3, + Error = 4 + } + [Native] public enum DDRUMViewEventDDSessionPlan : long { @@ -723,6 +886,19 @@ public enum DDRUMViewEventDDSessionRUMSessionPrecondition : long ExplicitStop = 7 } + [Native] + public enum DDRUMViewEventDeviceDeviceType : long + { + None = 0, + Mobile = 1, + Desktop = 2, + Tablet = 3, + Tv = 4, + GamingConsole = 5, + Bot = 6, + Other = 7 + } + [Native] public enum DDRUMViewEventPrivacyReplayLevel : long { @@ -764,18 +940,6 @@ public enum DDRUMViewEventRUMConnectivityStatus : long Maybe = 2 } - [Native] - public enum DDRUMViewEventRUMDeviceRUMDeviceType : long - { - Mobile = 0, - Desktop = 1, - Tablet = 2, - Tv = 3, - GamingConsole = 4, - Bot = 5, - Other = 6 - } - [Native] public enum DDRUMViewEventSessionRUMSessionType : long { @@ -795,7 +959,10 @@ public enum DDRUMViewEventSource : long ReactNative = 5, Roku = 6, Unity = 7, - KotlinMultiplatform = 8 + KotlinMultiplatform = 8, + Electron = 9, + RumCpp = 10, + Maui = 11 } [Native] @@ -809,11 +976,13 @@ public enum DDRUMViewEventViewLoadingType : long FragmentDisplay = 5, FragmentRedisplay = 6, ViewControllerDisplay = 7, - ViewControllerRedisplay = 8 + ViewControllerRedisplay = 8, + SessionRenewal = 9, + BfCache = 10 } [Native] - public enum DDRUMVitalEventContainerSource : long + public enum DDRUMViewUpdateEventContainerSource : long { Android = 0, Ios = 1, @@ -822,11 +991,14 @@ public enum DDRUMVitalEventContainerSource : long ReactNative = 4, Roku = 5, Unity = 6, - KotlinMultiplatform = 7 + KotlinMultiplatform = 7, + Electron = 8, + RumCpp = 9, + Maui = 10 } [Native] - public enum DDRUMVitalEventDDSessionPlan : long + public enum DDRUMViewUpdateEventDDSessionPlan : long { None = 0, Plan1 = 1, @@ -834,7 +1006,7 @@ public enum DDRUMVitalEventDDSessionPlan : long } [Native] - public enum DDRUMVitalEventDDSessionRUMSessionPrecondition : long + public enum DDRUMViewUpdateEventDDSessionRUMSessionPrecondition : long { None = 0, UserAppLaunch = 1, @@ -847,7 +1019,28 @@ public enum DDRUMVitalEventDDSessionRUMSessionPrecondition : long } [Native] - public enum DDRUMVitalEventRUMConnectivityEffectiveType : long + public enum DDRUMViewUpdateEventDeviceDeviceType : long + { + None = 0, + Mobile = 1, + Desktop = 2, + Tablet = 3, + Tv = 4, + GamingConsole = 5, + Bot = 6, + Other = 7 + } + + [Native] + public enum DDRUMViewUpdateEventPrivacyReplayLevel : long + { + Allow = 0, + Mask = 1, + MaskUserInput = 2 + } + + [Native] + public enum DDRUMViewUpdateEventRUMConnectivityEffectiveType : long { None = 0, Slow2g = 1, @@ -857,7 +1050,7 @@ public enum DDRUMVitalEventRUMConnectivityEffectiveType : long } [Native] - public enum DDRUMVitalEventRUMConnectivityInterfaces : long + public enum DDRUMViewUpdateEventRUMConnectivityInterfaces : long { None = 0, Bluetooth = 1, @@ -872,7 +1065,7 @@ public enum DDRUMVitalEventRUMConnectivityInterfaces : long } [Native] - public enum DDRUMVitalEventRUMConnectivityStatus : long + public enum DDRUMViewUpdateEventRUMConnectivityStatus : long { Connected = 0, NotConnected = 1, @@ -880,19 +1073,7 @@ public enum DDRUMVitalEventRUMConnectivityStatus : long } [Native] - public enum DDRUMVitalEventRUMDeviceRUMDeviceType : long - { - Mobile = 0, - Desktop = 1, - Tablet = 2, - Tv = 3, - GamingConsole = 4, - Bot = 5, - Other = 6 - } - - [Native] - public enum DDRUMVitalEventSessionRUMSessionType : long + public enum DDRUMViewUpdateEventSessionRUMSessionType : long { User = 0, Synthetics = 1, @@ -900,7 +1081,7 @@ public enum DDRUMVitalEventSessionRUMSessionType : long } [Native] - public enum DDRUMVitalEventSource : long + public enum DDRUMViewUpdateEventSource : long { None = 0, Android = 1, @@ -910,207 +1091,343 @@ public enum DDRUMVitalEventSource : long ReactNative = 5, Roku = 6, Unity = 7, - KotlinMultiplatform = 8 + KotlinMultiplatform = 8, + Electron = 9, + RumCpp = 10, + Maui = 11 } [Native] - public enum DDRUMVitalEventVitalVitalType : long + public enum DDRUMViewUpdateEventViewLoadingType : long { - DDRUMVitalEventVitalVitalTypeDuration = 0 + None = 0, + InitialLoad = 1, + RouteChange = 2, + ActivityDisplay = 3, + ActivityRedisplay = 4, + FragmentDisplay = 5, + FragmentRedisplay = 6, + ViewControllerDisplay = 7, + ViewControllerRedisplay = 8, + SessionRenewal = 9, + BfCache = 10 } [Native] - public enum DDRUMVitalsFrequency : long + public enum DDRUMVitalAppLaunchEventContainerSource : long { - Frequent = 0, - Average = 1, - Rare = 2, - Never = 3 + Android = 0, + Ios = 1, + Browser = 2, + Flutter = 3, + ReactNative = 4, + Roku = 5, + Unity = 6, + KotlinMultiplatform = 7, + Electron = 8, + RumCpp = 9, + Maui = 10 } [Native] - public enum DDSDKVerbosityLevel : long + public enum DDRUMVitalAppLaunchEventDDProfilingErrorReason : long { None = 0, - Debug = 1, - Warn = 2, - Error = 3, - Critical = 4 + NotSupportedByBrowser = 1, + FailedToLazyLoad = 2, + MissingDocumentPolicyHeader = 3, + UnexpectedException = 4 } - [Native] - public enum DDTelemetryConfigurationEventSource : long + public enum DDRUMVitalAppLaunchEventDDProfilingQuotaReason : long { - Android = 0, - Ios = 1, - Browser = 2, - Flutter = 3, - ReactNative = 4, - Unity = 5, - KotlinMultiplatform = 6 + None = 0, + QuotaOk = 1, + QuotaExceeded = 2, + OrgDisabled = 3, + BackendUnavailable = 4, + Undefined = 5, + Timeout = 6, + ApiError = 7 } [Native] - public enum DDTelemetryConfigurationEventTelemetryConfigurationSelectedTracingPropagators : long + public enum DDRUMVitalAppLaunchEventDDProfilingStatus : long { None = 0, - Datadog = 1, - B3 = 2, - B3multi = 3, - Tracecontext = 4 + Starting = 1, + Running = 2, + Stopped = 3, + Error = 4 } [Native] - public enum DDTelemetryConfigurationEventTelemetryConfigurationTraceContextInjection : long + public enum DDRUMVitalAppLaunchEventDDSessionPlan : long { None = 0, - All = 1, - Sampled = 2 + Plan1 = 1, + Plan2 = 2 } [Native] - public enum DDTelemetryConfigurationEventTelemetryConfigurationTrackingConsent : long + public enum DDRUMVitalAppLaunchEventDDSessionRUMSessionPrecondition : long { None = 0, - Granted = 1, - NotGranted = 2, - Pending = 3 + UserAppLaunch = 1, + InactivityTimeout = 2, + MaxDuration = 3, + BackgroundLaunch = 4, + Prewarm = 5, + FromNonInteractiveSession = 6, + ExplicitStop = 7 } [Native] - public enum DDTelemetryConfigurationEventTelemetryConfigurationViewTrackingStrategy : long + public enum DDRUMVitalAppLaunchEventDeviceDeviceType : long { None = 0, - ActivityViewTrackingStrategy = 1, - FragmentViewTrackingStrategy = 2, - MixedViewTrackingStrategy = 3, - NavigationViewTrackingStrategy = 4 + Mobile = 1, + Desktop = 2, + Tablet = 3, + Tv = 4, + GamingConsole = 5, + Bot = 6, + Other = 7 } [Native] - public enum DDTelemetryDebugEventSource : long + public enum DDRUMVitalAppLaunchEventRUMConnectivityEffectiveType : long { - Android = 0, - Ios = 1, - Browser = 2, - Flutter = 3, - ReactNative = 4, - Unity = 5, - KotlinMultiplatform = 6 + None = 0, + Slow2g = 1, + EffectiveType2g = 2, + EffectiveType3g = 3, + EffectiveType4g = 4 } [Native] - public enum DDTelemetryErrorEventSource : long + public enum DDRUMVitalAppLaunchEventRUMConnectivityInterfaces : long + { + None = 0, + Bluetooth = 1, + Cellular = 2, + Ethernet = 3, + Wifi = 4, + Wimax = 5, + Mixed = 6, + Other = 7, + Unknown = 8, + InterfacesNone = 9 + } + + [Native] + public enum DDRUMVitalAppLaunchEventRUMConnectivityStatus : long + { + Connected = 0, + NotConnected = 1, + Maybe = 2 + } + + [Native] + public enum DDRUMVitalAppLaunchEventSessionRUMSessionType : long + { + User = 0, + Synthetics = 1, + CiTest = 2 + } + + [Native] + public enum DDRUMVitalAppLaunchEventSource : long + { + None = 0, + Android = 1, + Ios = 2, + Browser = 3, + Flutter = 4, + ReactNative = 5, + Roku = 6, + Unity = 7, + KotlinMultiplatform = 8, + Electron = 9, + RumCpp = 10, + Maui = 11 + } + + [Native] + public enum DDRUMVitalAppLaunchEventVitalAppLaunchMetric : long + { + Ttid = 0, + Ttfd = 1 + } + + [Native] + public enum DDRUMVitalAppLaunchEventVitalStartupType : long + { + None = 0, + ColdStart = 1, + WarmStart = 2 + } + + [Native] + public enum DDRUMVitalDurationEventContainerSource : long { Android = 0, Ios = 1, Browser = 2, Flutter = 3, ReactNative = 4, - Unity = 5, - KotlinMultiplatform = 6 + Roku = 5, + Unity = 6, + KotlinMultiplatform = 7, + Electron = 8, + RumCpp = 9, + Maui = 10 } [Native] - public enum DDTraceContextInjection : long + public enum DDRUMVitalDurationEventDDProfilingErrorReason : long { - All = 0, - Sampled = 1 + None = 0, + NotSupportedByBrowser = 1, + FailedToLazyLoad = 2, + MissingDocumentPolicyHeader = 3, + UnexpectedException = 4 } [Native] - public enum DDUploadFrequency : long + public enum DDRUMVitalDurationEventDDProfilingQuotaReason : long { - Frequent = 0, - Average = 1, - Rare = 2 + None = 0, + QuotaOk = 1, + QuotaExceeded = 2, + OrgDisabled = 3, + BackendUnavailable = 4, + Undefined = 5, + Timeout = 6, + ApiError = 7 } - // The log-event model reached by DDLogsConfiguration.SetEventMapper. Objective Sharpie omitted - // the whole family, so the previous bindings had no way to inspect or redact a log before - // upload; these are transcribed from DatadogObjc-Swift.h. + [Native] + public enum DDRUMVitalDurationEventDDProfilingStatus : long + { + None = 0, + Starting = 1, + Running = 2, + Stopped = 3, + Error = 4 + } [Native] - public enum DDLogEventStatus : long + public enum DDRUMVitalDurationEventDDSessionPlan : long { - Debug = 0, - Info = 1, - Notice = 2, - Warn = 3, - Error = 4, - Critical = 5, - Emergency = 6 + None = 0, + Plan1 = 1, + Plan2 = 2 } [Native] - public enum DDLogEventReachability : long + public enum DDRUMVitalDurationEventDDSessionRUMSessionPrecondition : long { - Yes = 0, - Maybe = 1, - No = 2 + None = 0, + UserAppLaunch = 1, + InactivityTimeout = 2, + MaxDuration = 3, + BackgroundLaunch = 4, + Prewarm = 5, + FromNonInteractiveSession = 6, + ExplicitStop = 7 } [Native] - public enum DDLogEventRadioAccessTechnology : long + public enum DDRUMVitalDurationEventDeviceDeviceType : long { - Gprs = 0, - Edge = 1, - Wcdma = 2, - Hsdpa = 3, - Hsupa = 4, - Cdma1x = 5, - CdmaEvdoRev0 = 6, - CdmaEvdoRevA = 7, - CdmaEvdoRevB = 8, - Ehrpd = 9, - Lte = 10, - Unknown = 11 + None = 0, + Mobile = 1, + Desktop = 2, + Tablet = 3, + Tv = 4, + GamingConsole = 5, + Bot = 6, + Other = 7 + } + + [Native] + public enum DDRUMVitalDurationEventRUMConnectivityEffectiveType : long + { + None = 0, + Slow2g = 1, + EffectiveType2g = 2, + EffectiveType3g = 3, + EffectiveType4g = 4 } - /// Network interface kinds reported in DDLogEventNetworkConnectionInfo.AvailableInterfaces. - /// - /// That property is an NSNumber[] because Objective-C has no typed enum arrays, so the - /// values only mean anything once cast to this. - /// [Native] - public enum DDLogEventInterface : long + public enum DDRUMVitalDurationEventRUMConnectivityInterfaces : long { - Wifi = 0, - WiredEthernet = 1, + None = 0, + Bluetooth = 1, Cellular = 2, - Loopback = 3, - Other = 4 + Ethernet = 3, + Wifi = 4, + Wimax = 5, + Mixed = 6, + Other = 7, + Unknown = 8, + InterfacesNone = 9 } - // --------------------------------------------------------------------------------------- - // Added by dd-sdk-ios 2.30.2. Mostly RUM event-model detail reached through the event - // mappers; DDCoreLoggerLevel belongs to the internal-telemetry logger added in 2.19.0. - // --------------------------------------------------------------------------------------- + [Native] + public enum DDRUMVitalDurationEventRUMConnectivityStatus : long + { + Connected = 0, + NotConnected = 1, + Maybe = 2 + } [Native] - public enum DDCoreLoggerLevel : long + public enum DDRUMVitalDurationEventSessionRUMSessionType : long { - Debug = 0, - Warn = 1, - Error = 2, - Critical = 3 + User = 0, + Synthetics = 1, + CiTest = 2 } [Native] - public enum DDRUMActionEventDDActionNameSource : long + public enum DDRUMVitalDurationEventSource : long { None = 0, - CustomAttribute = 1, - MaskPlaceholder = 2, - StandardAttribute = 3, - TextContent = 4, - MaskDisallowed = 5, - Blank = 6 + Android = 1, + Ios = 2, + Browser = 3, + Flutter = 4, + ReactNative = 5, + Roku = 6, + Unity = 7, + KotlinMultiplatform = 8, + Electron = 9, + RumCpp = 10, + Maui = 11 } [Native] - public enum DDRUMLongTaskEventDDProfilingErrorReason : long + public enum DDRUMVitalOperationStepEventContainerSource : long + { + Android = 0, + Ios = 1, + Browser = 2, + Flutter = 3, + ReactNative = 4, + Roku = 5, + Unity = 6, + KotlinMultiplatform = 7, + Electron = 8, + RumCpp = 9, + Maui = 10 + } + + [Native] + public enum DDRUMVitalOperationStepEventDDProfilingErrorReason : long { None = 0, NotSupportedByBrowser = 1, @@ -1120,7 +1437,20 @@ public enum DDRUMLongTaskEventDDProfilingErrorReason : long } [Native] - public enum DDRUMLongTaskEventDDProfilingStatus : long + public enum DDRUMVitalOperationStepEventDDProfilingQuotaReason : long + { + None = 0, + QuotaOk = 1, + QuotaExceeded = 2, + OrgDisabled = 3, + BackendUnavailable = 4, + Undefined = 5, + Timeout = 6, + ApiError = 7 + } + + [Native] + public enum DDRUMVitalOperationStepEventDDProfilingStatus : long { None = 0, Starting = 1, @@ -1130,36 +1460,99 @@ public enum DDRUMLongTaskEventDDProfilingStatus : long } [Native] - public enum DDRUMResourceEventResourceDeliveryType : long + public enum DDRUMVitalOperationStepEventDDSessionPlan : long { None = 0, - Cache = 1, - NavigationalPrefetch = 2, - Other = 3 + Plan1 = 1, + Plan2 = 2 } [Native] - public enum DDRUMViewEventDDProfilingErrorReason : long + public enum DDRUMVitalOperationStepEventDDSessionRUMSessionPrecondition : long { None = 0, - NotSupportedByBrowser = 1, - FailedToLazyLoad = 2, - MissingDocumentPolicyHeader = 3, - UnexpectedException = 4 + UserAppLaunch = 1, + InactivityTimeout = 2, + MaxDuration = 3, + BackgroundLaunch = 4, + Prewarm = 5, + FromNonInteractiveSession = 6, + ExplicitStop = 7 } [Native] - public enum DDRUMViewEventDDProfilingStatus : long + public enum DDRUMVitalOperationStepEventDeviceDeviceType : long { None = 0, - Starting = 1, - Running = 2, - Stopped = 3, - Error = 4 + Mobile = 1, + Desktop = 2, + Tablet = 3, + Tv = 4, + GamingConsole = 5, + Bot = 6, + Other = 7 + } + + [Native] + public enum DDRUMVitalOperationStepEventRUMConnectivityEffectiveType : long + { + None = 0, + Slow2g = 1, + EffectiveType2g = 2, + EffectiveType3g = 3, + EffectiveType4g = 4 + } + + [Native] + public enum DDRUMVitalOperationStepEventRUMConnectivityInterfaces : long + { + None = 0, + Bluetooth = 1, + Cellular = 2, + Ethernet = 3, + Wifi = 4, + Wimax = 5, + Mixed = 6, + Other = 7, + Unknown = 8, + InterfacesNone = 9 + } + + [Native] + public enum DDRUMVitalOperationStepEventRUMConnectivityStatus : long + { + Connected = 0, + NotConnected = 1, + Maybe = 2 + } + + [Native] + public enum DDRUMVitalOperationStepEventSessionRUMSessionType : long + { + User = 0, + Synthetics = 1, + CiTest = 2 } [Native] - public enum DDRUMVitalEventVitalFailureReason : long + public enum DDRUMVitalOperationStepEventSource : long + { + None = 0, + Android = 1, + Ios = 2, + Browser = 3, + Flutter = 4, + ReactNative = 5, + Roku = 6, + Unity = 7, + KotlinMultiplatform = 8, + Electron = 9, + RumCpp = 10, + Maui = 11 + } + + [Native] + public enum DDRUMVitalOperationStepEventVitalFailureReason : long { None = 0, Error = 1, @@ -1168,13 +1561,46 @@ public enum DDRUMVitalEventVitalFailureReason : long } [Native] - public enum DDRUMVitalEventVitalStepType : long + public enum DDRUMVitalOperationStepEventVitalStepType : long + { + Start = 0, + Update = 1, + Retry = 2, + End = 3 + } + + [Native] + public enum DDRUMVitalsFrequency : long + { + Frequent = 0, + Average = 1, + Rare = 2, + Never = 3 + } + + [Native] + public enum DDTelemetryConfigurationEventSource : long + { + Android = 0, + Ios = 1, + Browser = 2, + Flutter = 3, + ReactNative = 4, + Unity = 5, + KotlinMultiplatform = 6, + Electron = 7, + RumCpp = 8, + Maui = 9 + } + + [Native] + public enum DDTelemetryConfigurationEventTelemetryConfigurationSelectedTracingPropagators : long { None = 0, - Start = 1, - Update = 2, - Retry = 3, - End = 4 + Datadog = 1, + B3 = 2, + B3multi = 3, + Tracecontext = 4 } [Native] @@ -1182,7 +1608,16 @@ public enum DDTelemetryConfigurationEventTelemetryConfigurationSessionPersistenc { None = 0, LocalStorage = 1, - Cookie = 2 + Cookie = 2, + Memory = 3 + } + + [Native] + public enum DDTelemetryConfigurationEventTelemetryConfigurationTraceContextInjection : long + { + None = 0, + All = 1, + Sampled = 2 } [Native] @@ -1194,4 +1629,61 @@ public enum DDTelemetryConfigurationEventTelemetryConfigurationTrackFeatureFlags Action = 3, LongTask = 4 } + + [Native] + public enum DDTelemetryConfigurationEventTelemetryConfigurationTrackResourceHeaders : long + { + None = 0, + DefaultHeaders = 1, + Custom = 2 + } + + [Native] + public enum DDTelemetryConfigurationEventTelemetryConfigurationTrackingConsent : long + { + None = 0, + Granted = 1, + NotGranted = 2, + Pending = 3 + } + + [Native] + public enum DDTelemetryConfigurationEventTelemetryConfigurationViewTrackingStrategy : long + { + None = 0, + ActivityViewTrackingStrategy = 1, + FragmentViewTrackingStrategy = 2, + MixedViewTrackingStrategy = 3, + NavigationViewTrackingStrategy = 4 + } + + [Native] + public enum DDTelemetryDebugEventSource : long + { + Android = 0, + Ios = 1, + Browser = 2, + Flutter = 3, + ReactNative = 4, + Unity = 5, + KotlinMultiplatform = 6, + Electron = 7, + RumCpp = 8, + Maui = 9 + } + + [Native] + public enum DDTelemetryErrorEventSource : long + { + Android = 0, + Ios = 1, + Browser = 2, + Flutter = 3, + ReactNative = 4, + Unity = 5, + KotlinMultiplatform = 6, + Electron = 7, + RumCpp = 8, + Maui = 9 + } } diff --git a/src/DatadogNet.SessionReplay.iOS/ApiDefinitions.cs b/src/DatadogNet.SessionReplay.iOS/ApiDefinitions.cs index 7960733..6b83230 100644 --- a/src/DatadogNet.SessionReplay.iOS/ApiDefinitions.cs +++ b/src/DatadogNet.SessionReplay.iOS/ApiDefinitions.cs @@ -1,147 +1,100 @@ using System; -using DatadogSessionReplay; +using DatadogInternal; using Foundation; using ObjCRuntime; using UIKit; namespace DatadogSessionReplay { - // NOTE ON RUNTIME NAMES - // - // Through 2.17.0 these classes were declared SWIFT_CLASS("_TtC20DatadogSessionReplay..."), - // which sets objc_runtime_name to the mangled Swift symbol, so the binding had to spell that - // mangled name out in [BaseType (Name = ...)]. - // - // From 2.19.0 they are declared SWIFT_CLASS_NAMED("objc_SessionReplay"), which expands to - // swift_name(...) only - a compile-time alias - and leaves the runtime name as the plain - // @interface name. The binary confirms it: it exports _OBJC_CLASS_$_DDSessionReplay, not - // _OBJC_CLASS_$__TtC20DatadogSessionReplay15DDSessionReplay. - // - // So Name= is deliberately absent here. Keeping the old mangled name would compile happily and - // then fail to resolve the class at runtime. - - // @interface DDSessionReplay : NSObject + // @interface DDSessionReplay [BaseType (typeof(NSObject))] [DisableDefaultCtor] interface DDSessionReplay { - // +(void)enableWith:(DDSessionReplayConfiguration * _Nonnull)configuration; [Static] [Export ("enableWith:")] void EnableWith (DDSessionReplayConfiguration configuration); - // +(void)startRecording; - // Only needed when StartRecordingImmediately was set to false; recording otherwise begins - // as soon as the feature is enabled. + [Static] + [Export ("enableWith:instanceName:")] + void EnableWith (DDSessionReplayConfiguration configuration, [NullAllowed] string instanceName); + [Static] [Export ("startRecording")] void StartRecording (); - // +(void)stopRecording; + [Static] + [Export ("startRecordingWithInstanceName:")] + void StartRecordingWithInstanceName ([NullAllowed] string instanceName); + [Static] [Export ("stopRecording")] void StopRecording (); + + [Static] + [Export ("stopRecordingWithInstanceName:")] + void StopRecordingWithInstanceName ([NullAllowed] string instanceName); } - // @interface DDSessionReplayConfiguration : NSObject + // @interface DDSessionReplayConfiguration [BaseType (typeof(NSObject))] [DisableDefaultCtor] interface DDSessionReplayConfiguration { - // @property (nonatomic) float replaySampleRate; [Export ("replaySampleRate")] float ReplaySampleRate { get; set; } - // @property (nonatomic) enum DDTextAndInputPrivacyLevel textAndInputPrivacyLevel; - [Export ("textAndInputPrivacyLevel", ArgumentSemantic.Assign)] + [Export ("textAndInputPrivacyLevel")] DDTextAndInputPrivacyLevel TextAndInputPrivacyLevel { get; set; } - // @property (nonatomic) enum DDImagePrivacyLevel imagePrivacyLevel; - [Export ("imagePrivacyLevel", ArgumentSemantic.Assign)] + [Export ("imagePrivacyLevel")] DDImagePrivacyLevel ImagePrivacyLevel { get; set; } - // @property (nonatomic) enum DDTouchPrivacyLevel touchPrivacyLevel; - [Export ("touchPrivacyLevel", ArgumentSemantic.Assign)] + [Export ("touchPrivacyLevel")] DDTouchPrivacyLevel TouchPrivacyLevel { get; set; } - // @property (nonatomic) BOOL startRecordingImmediately; [Export ("startRecordingImmediately")] bool StartRecordingImmediately { get; set; } - // @property (copy, nonatomic) NSURL * _Nullable customEndpoint; [NullAllowed, Export ("customEndpoint", ArgumentSemantic.Copy)] NSUrl CustomEndpoint { get; set; } - // @property (copy, nonatomic) NSDictionary * _Nonnull featureFlags; [Export ("featureFlags", ArgumentSemantic.Copy)] NSDictionary FeatureFlags { get; set; } - // @property (nonatomic) enum DDSessionReplayConfigurationPrivacyLevel defaultPrivacyLevel - // SWIFT_DEPRECATED_MSG("... Use the new privacy levels instead."); - [Export ("defaultPrivacyLevel", ArgumentSemantic.Assign)] - DDSessionReplayConfigurationPrivacyLevel DefaultPrivacyLevel { get; set; } - - // -(instancetype)initWithReplaySampleRate:(float)replaySampleRate - // textAndInputPrivacyLevel:(enum DDTextAndInputPrivacyLevel)textAndInputPrivacyLevel - // imagePrivacyLevel:(enum DDImagePrivacyLevel)imagePrivacyLevel - // touchPrivacyLevel:(enum DDTouchPrivacyLevel)touchPrivacyLevel; - [Export ("initWithReplaySampleRate:textAndInputPrivacyLevel:imagePrivacyLevel:touchPrivacyLevel:")] - [DesignatedInitializer] - NativeHandle Constructor (float replaySampleRate, DDTextAndInputPrivacyLevel textAndInputPrivacyLevel, DDImagePrivacyLevel imagePrivacyLevel, DDTouchPrivacyLevel touchPrivacyLevel); - - // ... featureFlags:(NSDictionary * _Nullable)featureFlags; [Export ("initWithReplaySampleRate:textAndInputPrivacyLevel:imagePrivacyLevel:touchPrivacyLevel:featureFlags:")] NativeHandle Constructor (float replaySampleRate, DDTextAndInputPrivacyLevel textAndInputPrivacyLevel, DDImagePrivacyLevel imagePrivacyLevel, DDTouchPrivacyLevel touchPrivacyLevel, [NullAllowed] NSDictionary featureFlags); - // -(instancetype)initWithReplaySampleRate:(float)replaySampleRate - // SWIFT_DEPRECATED_MSG("... Use init(replaySampleRate:textAndInputPrivacyLevel:...) instead."); - // - // Still bound so code written against 2.17.0 keeps compiling. It applies the SDK's own - // defaults for the three fine-grained levels. - [Export ("initWithReplaySampleRate:")] - NativeHandle Constructor (float replaySampleRate); + [Export ("initWithReplaySampleRate:textAndInputPrivacyLevel:imagePrivacyLevel:touchPrivacyLevel:")] + NativeHandle Constructor (float replaySampleRate, DDTextAndInputPrivacyLevel textAndInputPrivacyLevel, DDImagePrivacyLevel imagePrivacyLevel, DDTouchPrivacyLevel touchPrivacyLevel); } - // @interface DDSessionReplayPrivacyOverrides : NSObject - // - // Per-view privacy, overriding the session-wide levels. Reached through the UIView category - // below rather than constructed directly in normal use. + // @interface DDSessionReplayPrivacyOverrides [BaseType (typeof(NSObject))] [DisableDefaultCtor] interface DDSessionReplayPrivacyOverrides { - // -(instancetype _Nonnull)initWithView:(UIView * _Nonnull)view; - [Export ("initWithView:")] - [DesignatedInitializer] - NativeHandle Constructor (UIView view); - - // @property (nonatomic) enum DDTextAndInputPrivacyLevelOverride textAndInputPrivacy; - [Export ("textAndInputPrivacy", ArgumentSemantic.Assign)] + [Export ("textAndInputPrivacy")] DDTextAndInputPrivacyLevelOverride TextAndInputPrivacy { get; set; } - // @property (nonatomic) enum DDImagePrivacyLevelOverride imagePrivacy; - [Export ("imagePrivacy", ArgumentSemantic.Assign)] + [Export ("imagePrivacy")] DDImagePrivacyLevelOverride ImagePrivacy { get; set; } - // @property (nonatomic) enum DDTouchPrivacyLevelOverride touchPrivacy; - [Export ("touchPrivacy", ArgumentSemantic.Assign)] + [Export ("touchPrivacy")] DDTouchPrivacyLevelOverride TouchPrivacy { get; set; } - // @property (strong, nonatomic) NSNumber * _Nullable hide; - // NSNumber rather than bool: nil means "inherit", which a bool cannot express. [NullAllowed, Export ("hide", ArgumentSemantic.Strong)] NSNumber Hide { get; set; } + + [Export ("initWithView:")] + NativeHandle Constructor (UIView view); } // @interface UIView (SWIFT_EXTENSION(DatadogSessionReplay)) - // - // A category on UIView, so it is bound as a Category rather than as a type of its own. This is - // how per-view privacy is set: view.DdSessionReplayPrivacyOverrides().ImagePrivacy = ... [Category] [BaseType (typeof(UIView))] interface UIView_DatadogSessionReplay { - // @property (readonly, nonatomic, strong) DDSessionReplayPrivacyOverrides * _Nonnull ddSessionReplayPrivacyOverrides; [Export ("ddSessionReplayPrivacyOverrides")] DDSessionReplayPrivacyOverrides GetDdSessionReplayPrivacyOverrides (); } diff --git a/src/DatadogNet.SessionReplay.iOS/StructsAndEnums.cs b/src/DatadogNet.SessionReplay.iOS/StructsAndEnums.cs index b3dae5f..9039f99 100644 --- a/src/DatadogNet.SessionReplay.iOS/StructsAndEnums.cs +++ b/src/DatadogNet.SessionReplay.iOS/StructsAndEnums.cs @@ -1,9 +1,7 @@ using ObjCRuntime; - namespace DatadogSessionReplay { - /// Session-wide masking for images. [Native] public enum DDImagePrivacyLevel : long { @@ -12,7 +10,6 @@ public enum DDImagePrivacyLevel : long MaskNone = 2 } - /// Per-view override of . None inherits the session-wide level. [Native] public enum DDImagePrivacyLevelOverride : long { @@ -22,16 +19,6 @@ public enum DDImagePrivacyLevelOverride : long MaskAll = 3 } - /// The single session-wide privacy level used before 2.19.0. Deprecated upstream in favour of the three fine-grained levels; still accepted for now. - [Native] - public enum DDSessionReplayConfigurationPrivacyLevel : long - { - Allow = 0, - Mask = 1, - MaskUserInput = 2 - } - - /// Session-wide masking for text and user input. [Native] public enum DDTextAndInputPrivacyLevel : long { @@ -40,7 +27,6 @@ public enum DDTextAndInputPrivacyLevel : long MaskAll = 2 } - /// Per-view override of . None inherits the session-wide level. [Native] public enum DDTextAndInputPrivacyLevelOverride : long { @@ -50,7 +36,6 @@ public enum DDTextAndInputPrivacyLevelOverride : long MaskAll = 3 } - /// Session-wide masking for touch interactions. [Native] public enum DDTouchPrivacyLevel : long { @@ -58,7 +43,6 @@ public enum DDTouchPrivacyLevel : long Hide = 1 } - /// Per-view override of . None inherits the session-wide level. [Native] public enum DDTouchPrivacyLevelOverride : long { @@ -66,5 +50,4 @@ public enum DDTouchPrivacyLevelOverride : long Show = 1, Hide = 2 } - } diff --git a/src/DatadogNet.Trace.iOS/ApiDefinitions.cs b/src/DatadogNet.Trace.iOS/ApiDefinitions.cs index e69de29..f40d79c 100644 --- a/src/DatadogNet.Trace.iOS/ApiDefinitions.cs +++ b/src/DatadogNet.Trace.iOS/ApiDefinitions.cs @@ -0,0 +1,290 @@ +using System; +using DatadogInternal; +using Foundation; +using ObjCRuntime; + +namespace DatadogTrace +{ + partial interface IOTSpan {} + + // @protocol OTSpan + [Model, Protocol] + [BaseType (typeof(NSObject))] + interface OTSpan + { + [Abstract] + [Export ("context", ArgumentSemantic.Strong)] + IOTSpanContext Context { get; } + + [Abstract] + [Export ("tracer", ArgumentSemantic.Strong)] + IOTTracer Tracer { get; } + + [Abstract] + [Export ("setOperationName:")] + void SetOperationName (string operationName); + + [Abstract] + [Export ("setTag:value:")] + void SetTag (string key, string value); + + [Abstract] + [Export ("setTag:numberValue:")] + void SetTag (string key, NSNumber numberValue); + + [Abstract] + [Export ("setTag:boolValue:")] + void SetTag (string key, bool boolValue); + + [Abstract] + [Export ("log:")] + void Log (NSDictionary fields); + + [Abstract] + [Export ("log:timestamp:")] + void Log (NSDictionary fields, [NullAllowed] NSDate timestamp); + + [Abstract] + [Export ("setBaggageItem:value:")] + IOTSpan SetBaggageItem (string key, string value); + + [Abstract] + [Export ("getBaggageItem:")] + string GetBaggageItem (string key); + + [Abstract] + [Export ("setError:")] + void SetError (NSError error); + + [Abstract] + [Export ("setErrorWithKind:message:stack:")] + void SetErrorWithKind (string kind, string message, [NullAllowed] string stack); + + [Abstract] + [Export ("keepTrace")] + void KeepTrace (); + + [Abstract] + [Export ("dropTrace")] + void DropTrace (); + + [Abstract] + [Export ("finish")] + void Finish (); + + [Abstract] + [Export ("finishWithTime:")] + void FinishWithTime ([NullAllowed] NSDate finishTime); + + [Abstract] + [Export ("setActive")] + IOTSpan SetActive (); + } + + partial interface IOTSpanContext {} + + // @protocol OTSpanContext + [Model, Protocol] + [BaseType (typeof(NSObject))] + interface OTSpanContext + { + [Abstract] + [Export ("forEachBaggageItem:")] + void ForEachBaggageItem (Func callback); + } + + partial interface IOTTracer {} + + // @protocol OTTracer + [Model, Protocol] + [BaseType (typeof(NSObject))] + interface OTTracer + { + [Abstract] + [Export ("startSpan:")] + IOTSpan StartSpan (string operationName); + + [Abstract] + [Export ("startSpan:tags:")] + IOTSpan StartSpan (string operationName, [NullAllowed] NSDictionary tags); + + [Abstract] + [Export ("startSpan:childOf:")] + IOTSpan StartSpan (string operationName, [NullAllowed] IOTSpanContext parent); + + [Abstract] + [Export ("startSpan:childOf:tags:")] + IOTSpan StartSpan (string operationName, [NullAllowed] IOTSpanContext parent, [NullAllowed] NSDictionary tags); + + [Abstract] + [Export ("startSpan:childOf:tags:startTime:")] + IOTSpan StartSpan (string operationName, [NullAllowed] IOTSpanContext parent, [NullAllowed] NSDictionary tags, [NullAllowed] NSDate startTime); + + [Abstract] + [Export ("startRootSpan:tags:startTime:customSampleRate:")] + IOTSpan StartRootSpan (string operationName, [NullAllowed] NSDictionary tags, [NullAllowed] NSDate startTime, [NullAllowed] NSNumber customSampleRate); + + [Abstract] + [Export ("inject:format:carrier:error:")] + bool Inject (IOTSpanContext spanContext, string format, NSObject carrier, [NullAllowed] out NSError error); + + [Abstract] + [Export ("extractWithFormat:carrier:error:")] + bool ExtractWithFormat (string format, NSObject carrier, [NullAllowed] out NSError error); + } + + // @interface DDB3HTTPHeadersWriter + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDB3HTTPHeadersWriter + { + [Export ("traceHeaderFields", ArgumentSemantic.Copy)] + NSDictionary TraceHeaderFields { get; } + + [Export ("initWithInjectEncoding:traceContextInjection:")] + NativeHandle Constructor (DDInjectEncoding injectEncoding, DDTraceContextInjection traceContextInjection); + } + + // @interface DDHTTPHeadersWriter + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDHTTPHeadersWriter + { + [Export ("traceHeaderFields", ArgumentSemantic.Copy)] + NSDictionary TraceHeaderFields { get; } + + [Export ("initWithTraceContextInjection:")] + NativeHandle Constructor (DDTraceContextInjection traceContextInjection); + } + + // @interface DDTrace + [BaseType (typeof(NSObject))] + interface DDTrace + { + [Static] + [Export ("enableWith:")] + void EnableWith (DDTraceConfiguration configuration); + + [Static] + [Export ("enableWith:instanceName:")] + void EnableWith (DDTraceConfiguration configuration, [NullAllowed] string instanceName); + } + + // @interface DDTraceConfiguration + [BaseType (typeof(NSObject))] + interface DDTraceConfiguration + { + [Export ("sampleRate")] + float SampleRate { get; set; } + + [NullAllowed, Export ("service", ArgumentSemantic.Copy)] + string Service { get; set; } + + [NullAllowed, Export ("tags", ArgumentSemantic.Copy)] + NSDictionary Tags { get; set; } + + [Export ("bundleWithRumEnabled")] + bool BundleWithRumEnabled { get; set; } + + [Export ("networkInfoEnabled")] + bool NetworkInfoEnabled { get; set; } + + [NullAllowed, Export ("customEndpoint", ArgumentSemantic.Copy)] + NSUrl CustomEndpoint { get; set; } + + [Export ("setURLSessionTracking:")] + void SetURLSessionTracking (DDTraceURLSessionTracking tracking); + } + + // @interface DDTraceFirstPartyHostsTracing + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTraceFirstPartyHostsTracing + { + [Export ("initWithHostsWithHeaderTypes:")] + NativeHandle Constructor (NSDictionary> hostsWithHeaderTypes); + + [Export ("initWithHostsWithHeaderTypes:sampleRate:")] + NativeHandle Constructor (NSDictionary> hostsWithHeaderTypes, float sampleRate); + + [Export ("initWithHosts:")] + NativeHandle Constructor (NSSet hosts); + + [Export ("initWithHosts:sampleRate:")] + NativeHandle Constructor (NSSet hosts, float sampleRate); + } + + // @interface DDTraceURLSessionTracking + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTraceURLSessionTracking + { + [Export ("initWithFirstPartyHostsTracing:")] + NativeHandle Constructor (DDTraceFirstPartyHostsTracing firstPartyHostsTracing); + + [Export ("setFirstPartyHostsTracing:")] + void SetFirstPartyHostsTracing (DDTraceFirstPartyHostsTracing firstPartyHostsTracing); + + [Export ("setRedactedStatusCodes:")] + void SetRedactedStatusCodes (NSNumber[] codes); + } + + // @interface DDTracer + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDTracer + { + [Static] + [Export ("shared")] + IOTTracer Shared (); + + [Static] + [Export ("sharedWithInstanceName:")] + IOTTracer SharedWithInstanceName ([NullAllowed] string instanceName); + + [Export ("startSpan:")] + IOTSpan StartSpan (string operationName); + + [Export ("startSpan:tags:")] + IOTSpan StartSpan (string operationName, [NullAllowed] NSDictionary tags); + + [Export ("startSpan:childOf:")] + IOTSpan StartSpan (string operationName, [NullAllowed] IOTSpanContext parent); + + [Export ("startSpan:childOf:tags:")] + IOTSpan StartSpan (string operationName, [NullAllowed] IOTSpanContext parent, [NullAllowed] NSDictionary tags); + + [Export ("startSpan:childOf:tags:startTime:")] + IOTSpan StartSpan (string operationName, [NullAllowed] IOTSpanContext parent, [NullAllowed] NSDictionary tags, [NullAllowed] NSDate startTime); + + [Export ("startRootSpan:tags:startTime:customSampleRate:")] + IOTSpan StartRootSpan (string operationName, [NullAllowed] NSDictionary tags, [NullAllowed] NSDate startTime, [NullAllowed] NSNumber customSampleRate); + + [Export ("inject:format:carrier:error:")] + bool Inject (IOTSpanContext spanContext, string format, NSObject carrier, [NullAllowed] out NSError error); + + [Export ("extractWithFormat:carrier:error:")] + bool ExtractWithFormat (string format, NSObject carrier, [NullAllowed] out NSError error); + } + + // @interface DDW3CHTTPHeadersWriter + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface DDW3CHTTPHeadersWriter + { + [Export ("traceHeaderFields", ArgumentSemantic.Copy)] + NSDictionary TraceHeaderFields { get; } + + [Export ("initWithTraceContextInjection:")] + NativeHandle Constructor (DDTraceContextInjection traceContextInjection); + } + + // @interface OT + [BaseType (typeof(NSObject), Name = "_TtC12DatadogTrace2OT")] + interface OT + { + [Static] + [Export ("formatTextMap", ArgumentSemantic.Copy)] + string FormatTextMap { get; } + } +} diff --git a/src/DatadogNet.Trace.iOS/StructsAndEnums.cs b/src/DatadogNet.Trace.iOS/StructsAndEnums.cs new file mode 100644 index 0000000..619a1e9 --- /dev/null +++ b/src/DatadogNet.Trace.iOS/StructsAndEnums.cs @@ -0,0 +1,18 @@ +using ObjCRuntime; + +namespace DatadogTrace +{ + [Native] + public enum DDInjectEncoding : long + { + Multiple = 0, + Single = 1 + } + + [Native] + public enum DDTraceContextInjection : long + { + All = 0, + Sampled = 1 + } +} diff --git a/src/DatadogNet.WebViewTracking.iOS/ApiDefinitions.cs b/src/DatadogNet.WebViewTracking.iOS/ApiDefinitions.cs index e50c513..c7ebd32 100644 --- a/src/DatadogNet.WebViewTracking.iOS/ApiDefinitions.cs +++ b/src/DatadogNet.WebViewTracking.iOS/ApiDefinitions.cs @@ -1,19 +1,24 @@ +using System; +using DatadogInternal; using Foundation; +using ObjCRuntime; using WebKit; namespace DatadogWebViewTracking { - // @interface DDWebViewTracking : NSObject + // @interface DDWebViewTracking [BaseType (typeof(NSObject))] [DisableDefaultCtor] interface DDWebViewTracking { - // +(void)enableWithWebView:(WKWebView * _Nonnull)webView hosts:(NSSet * _Nonnull)hosts logsSampleRate:(float)logsSampleRate; [Static] [Export ("enableWithWebView:hosts:logsSampleRate:")] void EnableWithWebView (WKWebView webView, NSSet hosts, float logsSampleRate); - // +(void)disableWithWebView:(WKWebView * _Nonnull)webView; + [Static] + [Export ("enableWithWebView:instanceName:hosts:logsSampleRate:")] + void EnableWithWebView (WKWebView webView, [NullAllowed] string instanceName, NSSet hosts, float logsSampleRate); + [Static] [Export ("disableWithWebView:")] void DisableWithWebView (WKWebView webView); diff --git a/src/DatadogNet.WebViewTracking.iOS/StructsAndEnums.cs b/src/DatadogNet.WebViewTracking.iOS/StructsAndEnums.cs deleted file mode 100644 index 60509bc..0000000 --- a/src/DatadogNet.WebViewTracking.iOS/StructsAndEnums.cs +++ /dev/null @@ -1,12 +0,0 @@ -using ObjCRuntime; - -namespace DatadogWebViewTracking -{ - [Native] - public enum DDPrivacyLevel : long - { - Allow = 0, - Mask = 1, - MaskUserInput = 2 - } -} diff --git a/tests/DatadogNet.iOS.DeviceTests/DatadogNet.iOS.DeviceTests.csproj b/tests/DatadogNet.iOS.DeviceTests/DatadogNet.iOS.DeviceTests.csproj index 352f4ae..88b0ef6 100644 --- a/tests/DatadogNet.iOS.DeviceTests/DatadogNet.iOS.DeviceTests.csproj +++ b/tests/DatadogNet.iOS.DeviceTests/DatadogNet.iOS.DeviceTests.csproj @@ -33,10 +33,12 @@ dependencies, which is the part a ProjectReference would prove nothing about. See NuGet.config for the local feed. - These three references reach all eleven packages: Objc pulls Core, Internal, Logs, RUM, - SessionReplay and Trace (and OpenTelemetryApi through Trace), CrashReporting pulls - CrashReporter, and WebViewTracking is the last standalone one. If that stops being true, the - "every framework is linked" check below fails rather than silently testing less. + These five references reach all eleven native frameworks. DatadogNet.Objc.iOS is the + compatibility meta-package, referenced here rather than the modules it covers so that the + meta-package itself is exercised: it pulls Core, RUM, Logs, Trace and SessionReplay (and + Internal and OpenTelemetryApi through them). CrashReporting, WebViewTracking, Flags and + Profiling are separate opt-ins. If that stops being true, the "every framework is linked" check + fails rather than silently testing less. --> $(VersionPrefix) @@ -46,6 +48,8 @@ + + diff --git a/tests/DatadogNet.iOS.DeviceTests/SmokeTests.cs b/tests/DatadogNet.iOS.DeviceTests/SmokeTests.cs index dd8affe..2cd0d07 100644 --- a/tests/DatadogNet.iOS.DeviceTests/SmokeTests.cs +++ b/tests/DatadogNet.iOS.DeviceTests/SmokeTests.cs @@ -1,12 +1,13 @@ +#nullable enable using System.Collections.ObjectModel; -using CrashReporter; +using System.Runtime.InteropServices; +using DatadogCore; using DatadogCrashReporting; using DatadogInternal; -using DatadogObjc; -// Session Replay lives only in DatadogSessionReplay from dd-sdk-ios 2.19.0 onwards; DatadogObjc -// used to declare a parallel set of DD* Session Replay types and no longer does, so there is -// nothing left to disambiguate. +using DatadogLogs; +using DatadogRUM; using DatadogSessionReplay; +using DatadogTrace; using DatadogWebViewTracking; using Foundation; using ObjCRuntime; @@ -24,9 +25,9 @@ public sealed record SmokeTest(string Name, Action Execute); /// Datadog frameworks out of the packaged xcframeworks and drive the real SDK. /// /// -/// Nothing here reaches Datadog. The client token is fake and every feature is pointed at a -/// custom endpoint on localhost, so the SDK batches events to disk and its uploads fail locally -/// rather than sending junk to a real intake from CI. +/// Nothing here reaches Datadog. The client token is fake and every feature is pointed at a custom +/// endpoint on localhost, so the SDK batches events to disk and its uploads fail locally rather +/// than sending junk to a real intake from CI. /// /// The checks are ordered: the SDK has to be initialised before a feature can be enabled, and a /// feature has to be enabled before it can be driven. A failure early on therefore cascades, which @@ -48,6 +49,11 @@ public static class SmokeTests private static void Report(string message) => Reporter(message); + /// Counts mapper invocations, incremented from the blocks registered in . + private static int viewEventsMapped; + private static int actionEventsMapped; + private static int logEventsMapped; + public static SmokeTest[] All => [ new("every native framework is linked and loadable", EveryFrameworkIsLinked), @@ -55,204 +61,38 @@ public static class SmokeTests new("sets verbosity, consent, user and account info", SetsSdkLevelState), new("enables RUM", EnablesRum), new("drives a RUM view, action and error", DrivesRum), + new("propagates view-level attributes to child events", ViewAttributesPropagate), new("enables Logs and writes every level", EnablesLogsAndWritesEveryLevel), new("enables Trace", EnablesTrace), new("enables Session Replay", EnablesSessionReplay), new("applies per-view Session Replay privacy overrides", SessionReplayPrivacyOverridesApply), - new("sets and clears account and user info", SetsAccountInfo), - new("exposes the new RUM attribute APIs and the AP2 site", NewRumAndSiteApis), new("enables crash reporting", EnablesCrashReporting), - new("constructs a URLSession delegate for first-party tracing", ConstructsUrlSessionDelegate), new("exposes WebView tracking", ExposesWebViewTracking), - new("exposes PLCrashReporter", ExposesCrashReporter), - new("drives RUM and Logs through the ergonomic overloads", ErgonomicOverloadsWork), - new("invokes a RUM event mapper", EventMapperIsInvoked), - new("invokes a Logs event mapper and redacts a message", LogEventMapperRedacts), new("instruments a URLSession delegate by type", InstrumentsUrlSessionByType), + new("drives RUM and Logs through the ergonomic overloads", ErgonomicOverloadsWork), + new("invokes a RUM event mapper", RumEventMapperIsInvoked), + new("invokes a Logs event mapper and redacts a message", LogsEventMapperRedacts), new("stops the RUM session and the SDK instance", StopsCleanly), ]; - /// - /// Exercises the hand-written convenience layer, which the generated binding knows nothing - /// about and which no other check would touch. - /// - private static void ErgonomicOverloadsWork() - { - var monitor = DDRUMMonitor.Shared; - - // The scope form: the view is stopped when the using block is left, whatever happens in it. - using (var view = monitor.StartView("ergonomic-view", "Ergonomic View")) - { - Assert(view.Key == "ergonomic-view", $"Scope reported the wrong key: {view.Key}"); - - monitor.AddAction(DDRUMActionType.Tap, "ergonomic-action", new Dictionary - { - ["string"] = "text", - ["int"] = 42, - ["double"] = 1.5, - ["bool"] = true, - ["null"] = null, - ["date"] = new DateTime(2026, 1, 1, 0, 0, 0, DateTimeKind.Utc), - ["list"] = new[] { 1, 2, 3 }, - ["nested"] = new Dictionary { ["inner"] = "value" }, - }); - - monitor.AddError(new InvalidOperationException("ergonomic failure")); - } - - // Disposing a scope whose view was already stopped by hand must not stop a second time. - var second = monitor.StartView("ergonomic-view-2"); - monitor.StopView("ergonomic-view-2"); - second.Dispose(); - - // An attribute type with no Objective-C representation must be rejected loudly rather than - // silently dropped, since a missing attribute is invisible until someone queries for it. - var rejected = false; - try - { - DatadogAttributes.From(new Dictionary { ["bad"] = new object() }); - } - catch (ArgumentException) - { - rejected = true; - } - - Assert(rejected, "An unconvertible attribute value was accepted instead of throwing."); - - // The logger convenience form, including the exception overload that folds error.kind, - // error.message and error.stack into the payload. - var logger = DDLogger.Create(name: "ergonomics", printLogsToConsole: false); - logger.Log(DDLogLevel.Info, "ergonomic info"); - logger.Log(DDLogLevel.Error, "ergonomic error", new InvalidOperationException("boom")); - - // A read-only dictionary that is deliberately not an IDictionary, which is what the naive - // copy in the exception path used to throw on. - IReadOnlyDictionary readOnly = - new ReadOnlyDictionary(new Dictionary { ["k"] = "v" }); - logger.Log(DDLogLevel.Warn, "ergonomic warn", new Exception("boom"), readOnly); - - DDDatadog.SetUserInfo("ergonomic-user"); - DDDatadog.SetTrackingConsent(TrackingConsent.Granted); - - Report("view scopes, attribute conversion, logger and consent helpers all behaved"); - } - - /// Counts mapper invocations, incremented from the blocks registered when features are enabled. - private static int viewEventsMapped; - private static int actionEventsMapped; - private static int logEventsMapped; - private static int logEventsRedacted; - - /// - /// An NSUrlSession delegate for to instrument. - /// - /// - /// [Register] matters: DDURLSessionInstrumentation takes an Objective-C Class, so the type has - /// to be visible to the Objective-C runtime for the lookup to resolve to anything. - /// - [Register(nameof(InstrumentedSessionDelegate))] - private sealed class InstrumentedSessionDelegate : NSUrlSessionDataDelegate - { - } - - /// - /// Checks that the RUM event mappers actually fire, and that an event can be handed back to - /// Swift from managed code. - /// - /// - /// Mappers are how an app redacts or drops events before they are uploaded, so they are the - /// mechanism behind every "scrub the PII out of this" requirement. They are also the only part - /// of the binding that passes a managed delegate into Swift and gets a Swift object back out, - /// so if block marshalling is wrong anywhere it is wrong here - and the failure mode is a crash - /// inside the SDK's event-writing path, long after the call that registered the mapper. - /// - /// The mappers are registered on the real configuration in , before - /// RUM is enabled, because that is the only time they can be set. This check then runs after - /// has produced events and asserts the blocks were actually reached. - /// - /// - private static void EventMapperIsInvoked() - { - // Events are mapped on the SDK's own queue as they are written, not synchronously with the - // call that produced them, so give that queue a moment before concluding anything. - var deadline = DateTime.UtcNow.AddSeconds(5); - while (DateTime.UtcNow < deadline && (viewEventsMapped == 0 || actionEventsMapped == 0)) - { - Thread.Sleep(100); - } - - Assert(viewEventsMapped > 0, "The view event mapper was never invoked."); - Assert(actionEventsMapped > 0, "The action event mapper was never invoked."); - - Report($"mappers invoked: {viewEventsMapped} view, {actionEventsMapped} action"); - } - - /// - /// Checks that a Logs event mapper fires and that a rewritten message survives back into Swift. - /// - private static void LogEventMapperRedacts() - { - var deadline = DateTime.UtcNow.AddSeconds(5); - while (DateTime.UtcNow < deadline && logEventsRedacted == 0) - { - Thread.Sleep(100); - } - - Assert(logEventsMapped > 0, "The log event mapper was never invoked."); - Assert(logEventsRedacted > 0, "The log event mapper never saw the message it was meant to redact."); - - Report($"log events mapped: {logEventsMapped}, redacted: {logEventsRedacted}"); - } - - /// - /// Checks the type-based URLSession instrumentation helpers. - /// + /// Every framework the packages ship. All eleven are dynamic in 3.x. /// - /// This is the API Datadog documents for automatic resource tracking, and the raw binding takes - /// the delegate class as a bare IntPtr - a signature that accepts IntPtr.Zero happily and then - /// instruments nothing. The helpers resolve the Objective-C class from a managed Type and throw - /// if it does not exist, which is what this checks in both directions. + /// CrashReporter is absent from this list because it no longer exists: dd-sdk-ios 3.0 replaced + /// PLCrashReporter with KSCrash, which is linked into DatadogCrashReporting rather than shipped + /// as a framework of its own. That also removes the one static-archive special case the 2.x + /// bindings had to carry. /// - private static void InstrumentsUrlSessionByType() - { - DDURLSessionInstrumentation.Enable(); - - var configuration = DDURLSessionInstrumentationConfiguration.Create(); - Assert(configuration.DelegateClass != IntPtr.Zero, "The configuration resolved a null delegate class."); - Assert( - configuration.DelegateType == typeof(InstrumentedSessionDelegate), - $"DelegateType round-tripped to {configuration.DelegateType?.Name ?? "null"}."); - - // A type the Objective-C runtime has never heard of must be rejected rather than silently - // instrumenting nothing. - var rejected = false; - try - { - DDURLSessionInstrumentation.Enable(typeof(SmokeTests)); - } - catch (ArgumentException) - { - rejected = true; - } - - Assert(rejected, "A non-Objective-C type was accepted as a session delegate."); - - DDURLSessionInstrumentation.Disable(); - Report("instrumented and disabled a URLSession delegate by type"); - } - - /// Every framework shipped as a dynamic framework, which is all but CrashReporter. - private static readonly string[] DynamicFrameworks = + private static readonly string[] Frameworks = [ - "DatadogCore", "DatadogCrashReporting", "DatadogInternal", "DatadogLogs", "DatadogObjc", - "DatadogRUM", "DatadogSessionReplay", "DatadogTrace", "DatadogWebViewTracking", - "OpenTelemetryApi", + "DatadogCore", "DatadogCrashReporting", "DatadogFlags", "DatadogInternal", "DatadogLogs", + "DatadogProfiling", "DatadogRUM", "DatadogSessionReplay", "DatadogTrace", + "DatadogWebViewTracking", "OpenTelemetryApi", ]; - [System.Runtime.InteropServices.DllImport("/usr/lib/libSystem.dylib")] + [DllImport("/usr/lib/libSystem.dylib")] private static extern uint _dyld_image_count(); - [System.Runtime.InteropServices.DllImport("/usr/lib/libSystem.dylib")] + [DllImport("/usr/lib/libSystem.dylib")] private static extern IntPtr _dyld_get_image_name(uint index); /// @@ -263,13 +103,8 @@ private static void InstrumentsUrlSessionByType() /// assembly reaches its native framework only through selector strings, so a package whose /// .resources.zip was empty, or whose xcframework manifest advertised a slice that had been /// stripped, still compiles and links - and then fails at runtime the first time a type is - /// touched. Four of the eleven packages (Logs, RUM, Trace, OpenTelemetryApi) bind no managed - /// types at all, so for those there is no C# type whose use would reveal the problem. - /// - /// Asking dyld what is loaded covers all of them uniformly, and does not depend on guessing - /// Swift's mangled Objective-C class names - which encode the module name and its length, and - /// are easy to get subtly wrong. - /// + /// touched. DatadogFlags, DatadogProfiling and OpenTelemetryApi bind no managed types at all, + /// so for those there is no C# type whose use would reveal the problem. /// private static void EveryFrameworkIsLinked() { @@ -277,14 +112,14 @@ private static void EveryFrameworkIsLinked() var count = _dyld_image_count(); for (uint i = 0; i < count; i++) { - var name = System.Runtime.InteropServices.Marshal.PtrToStringUTF8(_dyld_get_image_name(i)); + var name = Marshal.PtrToStringUTF8(_dyld_get_image_name(i)); if (name is not null) { images.Add(name); } } - var missing = DynamicFrameworks + var missing = Frameworks .Where(framework => !images.Any(image => image.EndsWith($"/{framework}.framework/{framework}", StringComparison.Ordinal))) .ToList(); @@ -293,16 +128,13 @@ private static void EveryFrameworkIsLinked() missing.Count == 0, $"these frameworks were not loaded into the process: {string.Join(", ", missing)}"); - // CrashReporter is the one framework that ships as a static archive rather than a dynamic - // framework, so it never appears as a loaded image - its code is linked straight into the - // app binary. Resolving one of its Objective-C classes is what proves it arrived, and is - // also what proves ForceLoad did its job: without it the linker drops the archive's - // Objective-C metadata and this returns null. + // KSCrash is statically linked into DatadogCrashReporting rather than shipped separately, + // so it never appears as an image. Resolving one of its classes is what proves it arrived. Assert( - Class.GetHandle("PLCrashReporter") != IntPtr.Zero, - "CrashReporter did not link: the PLCrashReporter class does not exist."); + Class.GetHandle("KSCrash") != IntPtr.Zero, + "KSCrash did not link: the KSCrash class does not exist."); - Report($"all {DynamicFrameworks.Length} dynamic frameworks loaded, CrashReporter statically linked"); + Report($"all {Frameworks.Length} frameworks loaded, KSCrash statically linked"); } private static void InitializesTheSdk() @@ -310,35 +142,31 @@ private static void InitializesTheSdk() var configuration = new DDConfiguration(clientToken: ClientToken, env: "e2e") { Service = "datadognet-ios-devicetests", - Site = DDSite.Us1, + Site = DDSite.Us1(), }; - DDDatadog.InitializeWithConfiguration(configuration, DDTrackingConsent.Granted); + DDDatadog.InitializeWithConfiguration(configuration, DDTrackingConsent.Granted()); - Assert(DDDatadog.IsInitialized, "DDDatadog.IsInitialized was false after initialization."); + Assert(DDDatadog.IsInitialized(), "DDDatadog.IsInitialized was false after initialization."); Report($"initialized service={configuration.Service} env={configuration.Env}"); } private static void SetsSdkLevelState() { - DDDatadog.VerbosityLevel = DDSDKVerbosityLevel.Debug; - Assert( - DDDatadog.VerbosityLevel == DDSDKVerbosityLevel.Debug, - $"VerbosityLevel did not round-trip: {DDDatadog.VerbosityLevel}"); + DDDatadog.SetVerbosityLevel(DDCoreLoggerLevel.Debug); - DDDatadog.SetTrackingConsentWithConsent(DDTrackingConsent.Pending); - DDDatadog.SetTrackingConsentWithConsent(DDTrackingConsent.Granted); + DDDatadog.SetTrackingConsent(TrackingConsent.Pending); + DDDatadog.SetTrackingConsent(TrackingConsent.Granted); - DDDatadog.SetUserInfoWithId( - "e2e-user", - "E2E User", - "e2e@example.invalid", - new NSDictionary()); + DDDatadog.SetUserInfo("e2e-user", "E2E User", "e2e@example.invalid"); + DDDatadog.AddUserExtraInfo(new Dictionary { ["origin"] = "device-tests" }); - DDDatadog.AddUserExtraInfo( - new NSDictionary(new NSString("origin"), new NSString("device-tests"))); + // Account info arrived in 2.29.0 and propagates to Logs, RUM and Trace. + DDDatadog.SetAccountInfo("acct-1", "Test Account"); + DDDatadog.ClearAccountInfo(); + DDDatadog.ClearUserInfo(); - Report("verbosity, consent and user info all accepted"); + Report("verbosity, consent, user and account info all accepted"); } private static void EnablesRum() @@ -348,15 +176,14 @@ private static void EnablesRum() SessionSampleRate = 100, TrackFrustrations = true, TrackBackgroundEvents = true, + // New in 3.0: reports memory warnings as RUM errors. + TrackMemoryWarnings = true, CustomEndpoint = LocalEndpoint, - // The default UIKit predicates are what a real app wires up, and constructing them - // exercises two more bound types. UiKitViewsPredicate = new DDDefaultUIKitRUMViewsPredicate(), UiKitActionsPredicate = new DDDefaultUIKitRUMActionsPredicate(), }; // Registered before EnableWith, which is the only point at which mappers can be set. - // Returning the event unchanged is the identity case; returning null would drop it. configuration.SetViewEventMapper(view => { Interlocked.Increment(ref viewEventsMapped); @@ -371,46 +198,63 @@ private static void EnablesRum() DDRUM.EnableWith(configuration); - Assert(DDRUMMonitor.Shared is not null, "DDRUMMonitor.Shared was null after enabling RUM."); + Assert(DDRUMMonitor.Shared() is not null, "DDRUMMonitor.Shared was null after enabling RUM."); Report($"RUM enabled for application {configuration.ApplicationID}"); } private static void DrivesRum() { - var monitor = DDRUMMonitor.Shared; - var attributes = new NSDictionary(); + var monitor = DDRUMMonitor.Shared(); + var attributes = DatadogAttributes.Empty; monitor.StartViewWithKey("e2e-view", "E2E View", attributes); monitor.AddActionWithType(DDRUMActionType.Tap, "e2e-action", attributes); monitor.AddErrorWithMessage("e2e-error", null, DDRUMErrorSource.Source, attributes); - monitor.AddTimingWithName("e2e-timing"); - // A resource is started and stopped so the resource path is exercised too - that is the - // part of RUM most apps get through URLSession instrumentation rather than by hand. monitor.StartResourceWithResourceKey("e2e-resource", DDRUMMethod.Get, "https://example.invalid/thing", attributes); monitor.StopResourceWithResourceKey("e2e-resource", new NSNumber(200), DDRUMResourceType.Fetch, new NSNumber(0), attributes); monitor.StopViewWithKey("e2e-view", attributes); - Report("started and stopped a view with an action, error, timing and resource"); + Report("started and stopped a view with an action, error and resource"); + } + + /// + /// The view-attribute APIs added in 3.0, which are the headline RUM change of the release. + /// + private static void ViewAttributesPropagate() + { + var monitor = DDRUMMonitor.Shared(); + + using (monitor.StartView("attributed-view")) + { + monitor.AddViewAttributeForKey("checkout.step", new NSString("payment")); + monitor.AddViewAttributes(new Dictionary + { + ["cart.size"] = 3, + ["cart.currency"] = "GBP", + }); + + // Recorded while the attributes are set, so upstream attaches them to this action too - + // that propagation is the whole point of the new API. + monitor.AddAction(DDRUMActionType.Tap, "pay"); + + monitor.RemoveViewAttributeForKey("checkout.step"); + monitor.RemoveViewAttributes("cart.size", "cart.currency"); + } + + Report("view attributes added, inherited by a child action, and removed"); } private static void EnablesLogsAndWritesEveryLevel() { var logsConfiguration = new DDLogsConfiguration(LocalEndpoint); - - // Registered before EnableWith, the only point at which a mapper can be set. Neither the - // DDLogEvent model nor setEventMapper: was bound before - Objective Sharpie omitted the - // whole family - so this is the first release in which a log can be redacted or dropped - // before upload. logsConfiguration.SetEventMapper(logEvent => { Interlocked.Increment(ref logEventsMapped); - - if (logEvent.Message.Contains("secret", StringComparison.Ordinal)) + if (logEvent.Message == "e2e redact me") { logEvent.Message = "[redacted]"; - Interlocked.Increment(ref logEventsRedacted); } return logEvent; @@ -418,18 +262,8 @@ private static void EnablesLogsAndWritesEveryLevel() DDLogs.EnableWith(logsConfiguration); - // The designated initializer takes all eight settings; there is no parameterless form. - var logger = DDLogger.CreateWith(new DDLoggerConfiguration( - service: "datadognet-ios-devicetests", - name: "e2e", - networkInfoEnabled: true, - bundleWithRumEnabled: true, - bundleWithTraceEnabled: true, - remoteSampleRate: 100, - remoteLogThreshold: DDLogLevel.Debug, - printLogsToConsole: false)); - - Assert(logger is not null, "DDLogger.CreateWith returned null."); + var logger = DDLogger.Create(name: "e2e", printLogsToConsole: false); + Assert(logger is not null, "DDLogger.Create returned null."); logger.Debug("e2e debug"); logger.Info("e2e info"); @@ -443,9 +277,6 @@ private static void EnablesLogsAndWritesEveryLevel() logger.RemoveTagWithKey("suite"); logger.RemoveAttributeForKey("attempt"); - // Picked up by the mapper registered above and rewritten to "[redacted]". - logger.Info("this contains a secret value"); - Report("wrote six levels and round-tripped a tag and an attribute"); } @@ -459,27 +290,22 @@ private static void EnablesTrace() CustomEndpoint = LocalEndpoint, }); - // The header writers are the part of tracing an app touches directly, and each is bound - // from a different Swift type - DDOTelHTTPHeadersWriter in particular is the one that only - // links if OpenTelemetryApi.xcframework made it into the package. - var sampling = DDTraceSamplingStrategy.CustomWithSampleRate(100); - - var datadogWriter = new DDHTTPHeadersWriter(sampling, DDTraceContextInjection.All); - var b3Writer = new DDB3HTTPHeadersWriter(sampling, DDInjectEncoding.Multiple, DDTraceContextInjection.All); - var otelWriter = new DDOTelHTTPHeadersWriter(sampling, DDInjectEncoding.Multiple, DDTraceContextInjection.All); + // The header writers are what an app touches directly. All three lost their sampling + // argument in 3.0 - sampling is now derived from the RUM session id so that a trace and its + // session agree - and DDOTelHTTPHeadersWriter was replaced by DDW3CHTTPHeadersWriter. + var datadogWriter = new DDHTTPHeadersWriter(DDTraceContextInjection.All); + var b3Writer = new DDB3HTTPHeadersWriter(DDInjectEncoding.Multiple, DDTraceContextInjection.All); + var w3cWriter = new DDW3CHTTPHeadersWriter(DDTraceContextInjection.All); Assert(datadogWriter.TraceHeaderFields is not null, "Datadog header writer produced no fields."); Assert(b3Writer.TraceHeaderFields is not null, "B3 header writer produced no fields."); - Assert(otelWriter.TraceHeaderFields is not null, "OpenTelemetry header writer produced no fields."); + Assert(w3cWriter.TraceHeaderFields is not null, "W3C header writer produced no fields."); - Report("Trace enabled; Datadog, B3 and OpenTelemetry header writers all constructed"); + Report("Trace enabled; Datadog, B3 and W3C header writers all constructed"); } private static void EnablesSessionReplay() { - - // The three fine-grained levels replaced the single defaultPrivacyLevel in 2.19.0, and the - // initializer requires them, so the choice cannot be left implicit. var configuration = new DDSessionReplayConfiguration( replaySampleRate: 100, textAndInputPrivacyLevel: DDTextAndInputPrivacyLevel.MaskAll, @@ -487,8 +313,6 @@ private static void EnablesSessionReplay() touchPrivacyLevel: DDTouchPrivacyLevel.Hide) { CustomEndpoint = LocalEndpoint, - // Recording is started explicitly below rather than on enable, which is what an app - // does when it wants replay only after consent or a particular screen. StartRecordingImmediately = false, }; @@ -497,9 +321,6 @@ private static void EnablesSessionReplay() Assert( configuration.TextAndInputPrivacyLevel == DDTextAndInputPrivacyLevel.MaskAll, "textAndInputPrivacyLevel did not round-trip."); - Assert( - configuration.TouchPrivacyLevel == DDTouchPrivacyLevel.Hide, - "touchPrivacyLevel did not round-trip."); DDSessionReplay.StartRecording(); DDSessionReplay.StopRecording(); @@ -507,9 +328,6 @@ private static void EnablesSessionReplay() Report("Session Replay enabled with fine-grained privacy, then started and stopped"); } - /// - /// Per-view privacy overrides, added in 2.19.0 as a category on UIView. - /// private static void SessionReplayPrivacyOverridesApply() { var view = new UIView(); @@ -522,8 +340,6 @@ private static void SessionReplayPrivacyOverridesApply() overrides.TouchPrivacy = DDTouchPrivacyLevelOverride.Hide; overrides.Hide = new NSNumber(true); - // Read back through a fresh accessor call: the override object is attached to the view, so - // a value set through one handle must be visible through another. var again = view.GetDdSessionReplayPrivacyOverrides(); Assert( again.TextAndInputPrivacy == DDTextAndInputPrivacyLevelOverride.MaskAll, @@ -533,94 +349,195 @@ private static void SessionReplayPrivacyOverridesApply() Report("per-view privacy overrides set and read back"); } - /// Account info and the user-info clearing APIs, added in 2.29.0 and 2.30.0. - private static void SetsAccountInfo() + private static void EnablesCrashReporting() { - DDDatadog.SetAccountInfoWithAccountId("acct-1", "Test Account", DatadogAttributes.Empty); - DDDatadog.AddAccountExtraInfo( - new NSDictionary(new NSString("tier"), new NSString("premium"))); - DDDatadog.ClearAccountInfo(); - - // setUserInfo requires an id from 2.24.0, and clearUserInfo arrived in 2.30.0. - DDDatadog.SetUserInfoWithUserId("user-2", "User Two", "user2@example.invalid", DatadogAttributes.Empty); - DDDatadog.ClearUserInfo(); + // Installs the KSCrash signal handlers. The app is not crashed afterwards - that would take + // the test host with it - so this proves the framework links and the handler installs, not + // that a report round-trips to Datadog. + DDCrashReporter.Enable(); - Report("account info set, extended and cleared; user info cleared"); + Report("crash reporting enabled (KSCrash)"); } - /// Attribute APIs added to the RUM monitor in 2.23.0, and the AP2 site added in 2.29.0. - private static void NewRumAndSiteApis() + private static void ExposesWebViewTracking() { - var monitor = DDRUMMonitor.Shared; - - monitor.AddAttributes( - new NSDictionary(new NSString("build.channel"), new NSString("e2e"))); - monitor.RemoveAttributesForKeys(["build.channel"]); - - Assert(DDSite.Ap2 is not null, "DDSite.Ap2 is missing."); + // A WKWebView is not created here: instantiating one spins up the whole web content + // process, which is slow and flaky in CI for no added coverage. + Assert( + Class.GetHandle(typeof(DDWebViewTracking)) != IntPtr.Zero, + "DDWebViewTracking did not resolve to a native class."); - Report("RUM addAttributes/removeAttributes and DDSite.Ap2 available"); + Report("DDWebViewTracking is available"); } - private static void EnablesCrashReporting() + /// + /// The unified URLSession instrumentation that replaced the delegate types in 3.0. + /// + private static void InstrumentsUrlSessionByType() { - // Enabling installs a signal handler. The app is not crashed afterwards - a crash would - // take the test host with it - so this proves the framework links and the handler installs, - // not that a report round-trips to Datadog. - DDCrashReporter.Enable(); + DDURLSessionInstrumentation.Enable(); + DDURLSessionInstrumentation.Disable(); - Report("crash reporting enabled"); + // A type the Objective-C runtime has never heard of must be rejected rather than silently + // instrumenting nothing, which is what passing IntPtr.Zero to the native API does. + var rejected = false; + try + { + DDURLSessionInstrumentation.Enable(typeof(string)); + } + catch (ArgumentException) + { + rejected = true; + } + + Assert(rejected, "An unregistered delegate type was accepted instead of throwing."); + Report("instrumented and disabled a URLSession delegate by type"); } - private static void ConstructsUrlSessionDelegate() + private static void ErgonomicOverloadsWork() { - var hosts = new NSSet(new NSString("example.invalid")); - using var internalDelegate = new DatadogURLSessionDelegate(hosts); + var monitor = DDRUMMonitor.Shared(); + + using (var view = monitor.StartView("ergonomic-view", "Ergonomic View")) + { + Assert(view.Key == "ergonomic-view", $"Scope reported the wrong key: {view.Key}"); + + monitor.AddAction(DDRUMActionType.Tap, "ergonomic-action", new Dictionary + { + ["string"] = "text", + ["int"] = 42, + ["double"] = 1.5, + ["bool"] = true, + ["null"] = null, + ["date"] = new DateTime(2026, 1, 1, 0, 0, 0, DateTimeKind.Utc), + ["list"] = new[] { 1, 2, 3 }, + ["nested"] = new Dictionary { ["inner"] = "value" }, + }); + + monitor.AddError(new InvalidOperationException("ergonomic failure")); + } - Assert(internalDelegate.Handle != IntPtr.Zero, "DatadogURLSessionDelegate has a null handle."); + // Disposing a scope whose view was already stopped by hand must not stop a second time. + var second = monitor.StartView("ergonomic-view-2"); + monitor.StopView("ergonomic-view-2"); + second.Dispose(); - var headerTypes = new NSDictionary>( - new NSString("example.invalid"), - new NSSet(DDTracingHeaderType.Datadog)); - using var objcDelegate = new DDNSURLSessionDelegate(headerTypes); + var rejected = false; + try + { + DatadogAttributes.From(new Dictionary { ["bad"] = new object() }); + } + catch (ArgumentException) + { + rejected = true; + } - Assert(objcDelegate.Handle != IntPtr.Zero, "DDNSURLSessionDelegate has a null handle."); + Assert(rejected, "An unconvertible attribute value was accepted instead of throwing."); - Report("both URLSession delegates constructed"); + var logger = DDLogger.Create(name: "ergonomics", printLogsToConsole: false); + logger.Log(DDLogLevel.Info, "ergonomic info"); + logger.Log(DDLogLevel.Error, "ergonomic error", new InvalidOperationException("boom")); + + IReadOnlyDictionary readOnly = + new ReadOnlyDictionary(new Dictionary { ["k"] = "v" }); + logger.Log(DDLogLevel.Warn, "ergonomic warn", new Exception("boom"), readOnly); + + Report("view scopes, attribute conversion, logger and consent helpers all behaved"); } - private static void ExposesWebViewTracking() + /// + /// Checks that the RUM event mappers fire, and that an event survives the round trip back into + /// Swift. + /// + /// + /// Mappers are how an app redacts or drops events before upload, and they are the only part of + /// the binding that passes a managed delegate into Swift and gets a Swift object back - so if + /// block marshalling is wrong anywhere it is wrong here, and the failure surfaces as a crash + /// inside the SDK's event-writing path rather than at the call that registered the mapper. + /// + private static void RumEventMapperIsInvoked() { - // A WKWebView is not created here: instantiating one on a simulator spins up the whole web - // content process, which is slow and flaky in CI for no added coverage. That the class - // resolves proves the framework is linked, which is what this package contributes. - Assert( - Class.GetHandle(typeof(DDWebViewTracking)) != IntPtr.Zero, - "DDWebViewTracking did not resolve to a native class."); + // Mappers run on the SDK's own write queue, so this waits rather than asserting straight + // away - and keeps producing events while it waits, instead of hoping the ones already + // queued drain in time. A fixed short deadline over a single batch is what made this flaky: + // it passed locally in milliseconds and timed out at five seconds on a loaded CI runner + // whose simulator had taken 46 seconds just to boot. + var elapsed = WaitForAsyncWork( + () => viewEventsMapped > 0 && actionEventsMapped > 0, + nudge: attempt => + { + var monitor = DDRUMMonitor.Shared(); + monitor.StartViewWithKey($"mapper-nudge-{attempt}", "Mapper Nudge", DatadogAttributes.Empty); + monitor.AddActionWithType(DDRUMActionType.Tap, $"mapper-nudge-{attempt}", DatadogAttributes.Empty); + monitor.StopViewWithKey($"mapper-nudge-{attempt}", DatadogAttributes.Empty); + }); - Report("DDWebViewTracking is available"); + Assert(viewEventsMapped > 0, $"The view event mapper was never invoked (waited {elapsed:0.0}s)."); + Assert(actionEventsMapped > 0, $"The action event mapper was never invoked (waited {elapsed:0.0}s)."); + + Report($"mappers invoked after {elapsed:0.0}s: {viewEventsMapped} view, {actionEventsMapped} action"); } - private static void ExposesCrashReporter() + private static void LogsEventMapperRedacts() { - // PLCrashReporter is the engine underneath DatadogCrashReporting, and the one framework in - // the set that ships as a static archive rather than a dynamic framework - so it is the one - // most sensitive to the ForceLoad/SmartLink settings on the NativeReference. - var configuration = new PLCrashReporterConfig( - PLCrashReporterSignalHandlerType.Bsd, - PLCrashReporterSymbolicationStrategy.None); - - Assert(configuration.Handle != IntPtr.Zero, "PLCrashReporterConfig has a null handle."); - Report("PLCrashReporter is available and configurable"); + var elapsed = WaitForAsyncWork( + () => logEventsMapped > 0, + nudge: attempt => DDLogger + .Create(name: "redaction", printLogsToConsole: false) + .Log(DDLogLevel.Info, attempt == 0 ? "e2e redact me" : $"e2e mapper nudge {attempt}")); + + Assert(logEventsMapped > 0, $"The Logs event mapper was never invoked (waited {elapsed:0.0}s)."); + Report($"log events mapped after {elapsed:0.0}s: {logEventsMapped}"); + } + + /// + /// Waits for an asynchronous SDK side effect, re-driving it periodically, and returns how long + /// it took. + /// + /// Checked between attempts; the wait ends as soon as it is true. + /// + /// Produces more of the work being waited on. Called once per second with an increasing + /// attempt number. + /// + /// + /// The generous ceiling is deliberate. Nothing here is expected to take anywhere near it - the + /// wait ends the moment the condition holds, so a healthy run costs milliseconds - but a CI + /// runner under contention is far slower than a developer's machine, and a mapper that never + /// fires is a real defect worth failing on rather than a timeout worth shrugging at. + /// + private static double WaitForAsyncWork(Func satisfied, Action nudge) + { + var started = DateTime.UtcNow; + var deadline = started.AddSeconds(30); + var attempt = 0; + + while (!satisfied()) + { + if (DateTime.UtcNow >= deadline) + { + break; + } + + nudge(attempt++); + + // Re-checked at a finer interval than it is nudged, so a healthy run returns promptly + // rather than always paying a full second. + for (var i = 0; i < 10 && !satisfied(); i++) + { + Thread.Sleep(100); + } + } + + return (DateTime.UtcNow - started).TotalSeconds; } private static void StopsCleanly() { - DDRUMMonitor.Shared.StopSession(); + DDRUMMonitor.Shared().StopSession(); DDDatadog.ClearAllData(); DDDatadog.StopInstance(); - Assert(!DDDatadog.IsInitialized, "DDDatadog.IsInitialized was still true after StopInstance."); + Assert(!DDDatadog.IsInitialized(), "DDDatadog.IsInitialized was still true after StopInstance."); Report("session stopped, data cleared and instance torn down"); } @@ -632,3 +549,15 @@ private static void Assert(bool condition, string message) } } } + +/// +/// A minimal URLSession delegate for . +/// +/// +/// [Register] matters: the instrumentation is installed on the Objective-C class, so the type has +/// to be visible to that runtime by name. +/// +[Register(nameof(E2EUrlSessionDelegate))] +public sealed class E2EUrlSessionDelegate : NSObject, INSUrlSessionDataDelegate +{ +} diff --git a/tests/DatadogNet.iOS.PackageTests/PackageLayoutTests.cs b/tests/DatadogNet.iOS.PackageTests/PackageLayoutTests.cs index 9d5fb70..945536f 100644 --- a/tests/DatadogNet.iOS.PackageTests/PackageLayoutTests.cs +++ b/tests/DatadogNet.iOS.PackageTests/PackageLayoutTests.cs @@ -17,7 +17,7 @@ public class PackageLayoutTests private const string PayloadTargetFramework = "net8.0-ios18.0"; [Theory] - [MemberData(nameof(Packages.Names), MemberType = typeof(Packages))] + [MemberData(nameof(Packages.BindingNames), MemberType = typeof(Packages))] public void Package_carries_a_binding_assembly_for_every_target_framework(string name) { using var package = Packages.OpenPackage(name); @@ -32,7 +32,7 @@ public void Package_carries_a_binding_assembly_for_every_target_framework(string } [Theory] - [MemberData(nameof(Packages.Names), MemberType = typeof(Packages))] + [MemberData(nameof(Packages.BindingNames), MemberType = typeof(Packages))] public void Package_carries_the_native_payload_for_every_target_framework(string name) { using var package = Packages.OpenPackage(name); @@ -57,7 +57,7 @@ public void Package_carries_the_native_payload_for_every_target_framework(string } [Theory] - [MemberData(nameof(Packages.Names), MemberType = typeof(Packages))] + [MemberData(nameof(Packages.BindingNames), MemberType = typeof(Packages))] public void Native_payload_is_the_same_across_target_frameworks(string name) { using var package = Packages.OpenPackage(name); @@ -90,10 +90,11 @@ public void Native_payload_is_the_same_across_target_frameworks(string name) } [Theory] - [MemberData(nameof(Packages.Names), MemberType = typeof(Packages))] + [MemberData(nameof(Packages.BindingNames), MemberType = typeof(Packages))] public void Native_payload_carries_exactly_its_own_xcframework(string name) { var spec = Packages.Spec(name); + var framework = spec.Framework!; // BindingNames excludes the meta-package using var package = Packages.OpenPackage(name); using var payload = Packages.OpenNativePayload(package, name, PayloadTargetFramework); @@ -107,19 +108,20 @@ public void Native_payload_carries_exactly_its_own_xcframework(string name) // One package, one framework. A package that shipped two would mean the shared libs/ // directory leaked into a NativeReference glob, and consumers would end up with the same // framework embedded twice from two packages - a duplicate-symbol link failure. - Assert.Equal([$"{spec.Framework}.xcframework"], present); + Assert.Equal([$"{framework}.xcframework"], present); } [Theory] - [MemberData(nameof(Packages.Names), MemberType = typeof(Packages))] + [MemberData(nameof(Packages.BindingNames), MemberType = typeof(Packages))] public void Native_payload_carries_ios_slices_only(string name) { var spec = Packages.Spec(name); + var framework = spec.Framework!; // BindingNames excludes the meta-package using var package = Packages.OpenPackage(name); using var payload = Packages.OpenNativePayload(package, name, PayloadTargetFramework); - var slices = SlicesOf(payload, spec.Framework); + var slices = SlicesOf(payload, framework); // Device and simulator, and nothing else. The upstream archive also ships tvOS for every // framework, plus macCatalyst, macOS, watchOS and visionOS for CrashReporter and @@ -127,17 +129,18 @@ public void Native_payload_carries_ios_slices_only(string name) // net*-ios binding can never reach. Assert.All(slices, slice => Assert.True( Packages.IsIosSlice(slice), - $"{spec.Framework}.xcframework carries a non-iOS slice '{slice}'.")); + $"{framework}.xcframework carries a non-iOS slice '{slice}'.")); Assert.Single(slices, Packages.IsSimulatorSlice); Assert.Single(slices, slice => !Packages.IsSimulatorSlice(slice)); } [Theory] - [MemberData(nameof(Packages.Names), MemberType = typeof(Packages))] + [MemberData(nameof(Packages.BindingNames), MemberType = typeof(Packages))] public void Native_payload_carries_no_debug_symbols(string name) { var spec = Packages.Spec(name); + var framework = spec.Framework!; // BindingNames excludes the meta-package using var package = Packages.OpenPackage(name); using var payload = Packages.OpenNativePayload(package, name, PayloadTargetFramework); @@ -154,16 +157,17 @@ public void Native_payload_carries_no_debug_symbols(string name) } [Theory] - [MemberData(nameof(Packages.Names), MemberType = typeof(Packages))] + [MemberData(nameof(Packages.BindingNames), MemberType = typeof(Packages))] public void Xcframework_manifest_matches_the_slices_actually_shipped(string name) { var spec = Packages.Spec(name); + var framework = spec.Framework!; // BindingNames excludes the meta-package using var package = Packages.OpenPackage(name); using var payload = Packages.OpenNativePayload(package, name, PayloadTargetFramework); - var manifest = payload.GetEntry($"{spec.Framework}.xcframework/Info.plist"); - Assert.True(manifest is not null, $"{spec.Framework}.xcframework has no Info.plist."); + var manifest = payload.GetEntry($"{framework}.xcframework/Info.plist"); + Assert.True(manifest is not null, $"{framework}.xcframework has no Info.plist."); using var reader = new StreamReader(manifest!.Open()); var text = reader.ReadToEnd(); @@ -177,7 +181,7 @@ public void Xcframework_manifest_matches_the_slices_actually_shipped(string name } // Every slice present on disk must be advertised, whatever upstream named it. - foreach (var slice in SlicesOf(payload, spec.Framework)) + foreach (var slice in SlicesOf(payload, framework)) { Assert.Contains(slice, text, StringComparison.Ordinal); } @@ -191,6 +195,7 @@ public void Xcframework_manifest_matches_the_slices_actually_shipped(string name public void Package_declares_the_expected_dependencies_for_every_target_framework(string name) { var spec = Packages.Spec(name); + var framework = spec.Framework!; // BindingNames excludes the meta-package var expected = spec.DependsOn.Select(Packages.PackageId).OrderBy(id => id).ToList(); using var package = Packages.OpenPackage(name); @@ -236,8 +241,17 @@ string Value(string element) => nuspec.Descendants() Assert.Equal("README.md", Value("readme")); // The description names the framework the package wraps, which is what tells a reader on - // nuget.org which of the eleven they want. - Assert.Contains(Packages.Spec(name).Framework, Value("description"), StringComparison.Ordinal); + // nuget.org which of the twelve they want. The meta-package wraps none, so it has to say + // what it is instead. + var framework = Packages.Spec(name).Framework; + if (framework is not null) + { + Assert.Contains(framework, Value("description"), StringComparison.Ordinal); + } + else + { + Assert.Contains("meta", Value("description"), StringComparison.OrdinalIgnoreCase); + } } [Theory] @@ -259,7 +273,7 @@ public void Package_ships_the_icon_readme_and_both_licence_texts(string name) } [Theory] - [MemberData(nameof(Packages.Names), MemberType = typeof(Packages))] + [MemberData(nameof(Packages.BindingNames), MemberType = typeof(Packages))] public void Symbol_package_is_produced(string name) { using var symbols = Packages.OpenPackage(name, ".snupkg"); @@ -291,6 +305,33 @@ public void Every_package_is_packed_with_the_same_version() Assert.Single(versions); } + [Fact] + public void Meta_package_ships_dependencies_and_nothing_else() + { + using var package = Packages.OpenPackage(Packages.MetaPackage); + + // DatadogNet.Objc.iOS exists only to redirect an existing PackageReference at the modules + // that replaced the deleted DatadogObjc framework. Shipping an assembly or a native + // payload would mean it had quietly become a real package again - and, worse, would embed + // a second copy of frameworks its dependencies already carry. + Assert.DoesNotContain(package.Entries, entry => entry.FullName.StartsWith("lib/", StringComparison.Ordinal)); + + var nuspec = Packages.ReadNuspec(package, Packages.MetaPackage); + var groups = nuspec.Descendants() + .Where(element => element.Name.LocalName == "group") + .ToList(); + + // Every target framework still needs a dependency group. A net10 consumer that matched no + // group would restore the package and get nothing at all, which is exactly what happened + // before merge-packages.py learned to merge groups independently of lib/ assets. + Assert.Equal( + Packages.ExpectedTargetFrameworks.OrderBy(tfm => tfm), + groups.Select(group => group.Attribute("targetFramework")?.Value).OrderBy(tfm => tfm)); + + Assert.All(groups, group => Assert.Contains( + group.Elements(), element => element.Name.LocalName == "dependency")); + } + [Fact] public void Every_expected_package_was_built_and_nothing_else() { diff --git a/tests/DatadogNet.iOS.PackageTests/Packages.cs b/tests/DatadogNet.iOS.PackageTests/Packages.cs index fd7f801..2463ddc 100644 --- a/tests/DatadogNet.iOS.PackageTests/Packages.cs +++ b/tests/DatadogNet.iOS.PackageTests/Packages.cs @@ -22,16 +22,22 @@ public static class Packages public static readonly PackageSpec[] All = [ new("Internal", "DatadogInternal", []), - new("Core", "DatadogCore", ["Internal"]), - new("CrashReporter", "CrashReporter", []), new("OpenTelemetryApi", "OpenTelemetryApi", []), + new("Core", "DatadogCore", ["Internal"]), new("Trace", "DatadogTrace", ["Core", "Internal", "OpenTelemetryApi"]), new("Logs", "DatadogLogs", ["Core", "Internal"]), new("RUM", "DatadogRUM", ["Core", "Internal"]), new("SessionReplay", "DatadogSessionReplay", ["Core", "Internal"]), new("WebViewTracking", "DatadogWebViewTracking", ["Core", "Internal"]), - new("CrashReporting", "DatadogCrashReporting", ["Core", "Internal", "CrashReporter"]), - new("Objc", "DatadogObjc", ["Core", "Internal", "Logs", "RUM", "SessionReplay", "Trace"]), + new("CrashReporting", "DatadogCrashReporting", ["Core", "Internal"]), + new("Flags", "DatadogFlags", ["Core", "Internal"]), + new("Profiling", "DatadogProfiling", ["Core", "Internal"]), + + // The compatibility meta-package. It wraps no framework and ships no assembly - it exists + // so an app referencing DatadogNet.Objc.iOS still restores a working set now that + // dd-sdk-ios has deleted the DatadogObjc framework and spread its types across the product + // modules. + new("Objc", Framework: null, ["Core", "Logs", "RUM", "SessionReplay", "Trace"]), ]; /// Target frameworks every package must carry a binding assembly for. @@ -58,6 +64,24 @@ public static TheoryData Names public static PackageSpec Spec(string name) => All.Single(package => package.Name == name); + /// Packages that ship a native framework, i.e. everything but the meta-package. + public static TheoryData BindingNames + { + get + { + var data = new TheoryData(); + foreach (var package in All.Where(package => package.Framework is not null)) + { + data.Add(package.Name); + } + + return data; + } + } + + /// The dependency-only compatibility package, which has no assembly or payload. + public const string MetaPackage = "Objc"; + public static string PackageId(string name) => $"DatadogNet.{name}.iOS"; /// The assembly name, which is also the prefix of the native payload entry. @@ -162,6 +186,9 @@ public static bool IsSimulatorSlice(string slice) => /// What one package is expected to be. /// The middle segment of the id: DatadogNet..iOS. -/// The native xcframework the package ships. +/// +/// The native xcframework the package ships, or for a dependency-only +/// meta-package. +/// /// The s of the packages it must depend on. -public sealed record PackageSpec(string Name, string Framework, string[] DependsOn); +public sealed record PackageSpec(string Name, string? Framework, string[] DependsOn);