public typealias AttributeKey = String
public typealias AttributeValue = Encodable
public enum TrackingConsent
 case granted
 case notGranted
 case pending
public class DDRUMMonitor
 public func startView(viewController: UIViewController,path: String? = nil,attributes: [AttributeKey: AttributeValue] = [:])
 public func stopView(viewController: UIViewController,attributes: [AttributeKey: AttributeValue] = [:])
 public func startView(key: String,path: String? = nil,attributes: [AttributeKey: AttributeValue] = [:])
 public func stopView(key: String,attributes: [AttributeKey: AttributeValue] = [:])
 public func addTiming(name: String)
 public func addError(message: String,source: RUMErrorSource = .custom,stack: String? = nil,attributes: [AttributeKey: AttributeValue] = [:],file: StaticString? = #file,line: UInt? = #line)
 public func addError(error: Error,source: RUMErrorSource = .custom,attributes: [AttributeKey: AttributeValue] = [:])
 public func startResourceLoading(resourceKey: String,request: URLRequest,attributes: [AttributeKey: AttributeValue] = [:])
 public func startResourceLoading(resourceKey: String,url: URL,attributes: [AttributeKey: AttributeValue] = [:])
 public func startResourceLoading(resourceKey: String,httpMethod: String,urlString: String,attributes: [AttributeKey: AttributeValue] = [:])
 public func addResourceMetrics(resourceKey: String,metrics: URLSessionTaskMetrics,attributes: [AttributeKey: AttributeValue] = [:])
 public func stopResourceLoading(resourceKey: String,response: URLResponse,size: Int64? = nil,attributes: [AttributeKey: AttributeValue] = [:])
 public func stopResourceLoading(resourceKey: String,statusCode: Int?,kind: RUMResourceKind,size: Int64? = nil,attributes: [AttributeKey: AttributeValue] = [:])
 public func stopResourceLoadingWithError(resourceKey: String,error: Error,response: URLResponse? = nil,attributes: [AttributeKey: AttributeValue] = [:])
 public func stopResourceLoadingWithError(resourceKey: String,errorMessage: String,response: URLResponse? = nil,attributes: [AttributeKey: AttributeValue] = [:])
 public func startUserAction(type: RUMUserActionType,name: String,attributes: [AttributeKey: AttributeValue] = [:])
 public func stopUserAction(type: RUMUserActionType,name: String? = nil,attributes: [AttributeKey: AttributeValue] = [:])
 public func addUserAction(type: RUMUserActionType,name: String,attributes: [AttributeKey: AttributeValue] = [:])
 public func addAttribute(forKey key: AttributeKey, value: AttributeValue)
 public func removeAttribute(forKey key: AttributeKey)
public class Datadog
 public struct AppContext
  public init(mainBundle: Bundle = Bundle.main)
 public static func initialize(appContext: AppContext, configuration: Configuration)
 public static func initialize(appContext: AppContext,trackingConsent: TrackingConsent,configuration: Configuration)
 public static var verbosityLevel: LogLevel? = nil
 public static var debugRUM: Bool = false
 public static func setUserInfo(id: String? = nil,name: String? = nil,email: String? = nil,extraInfo: [AttributeKey: AttributeValue] = [:])
 public static func set(trackingConsent: TrackingConsent)
 public struct Configuration
  public enum BatchSize
   case small
   case medium
   case large
  public enum UploadFrequency
   case frequent
   case average
   case rare
  public enum DatadogEndpoint
   case us
   case eu
   case gov
  public enum LogsEndpoint
   case us
   case eu
   case gov
   case custom(url: String)
  public enum TracesEndpoint
   case us
   case eu
   case gov
   case custom(url: String)
  public enum RUMEndpoint
   case us
   case eu
   case gov
   case custom(url: String)
  public static func builderUsing(rumApplicationID: String, clientToken: String, environment: String) -> Builder
  public static func builderUsing(clientToken: String, environment: String) -> Builder
  public class Builder
   public func set(endpoint: DatadogEndpoint) -> Builder
   public func set(customLogsEndpoint: URL) -> Builder
   public func set(customTracesEndpoint: URL) -> Builder
   public func set(customRUMEndpoint: URL) -> Builder
   public func enableLogging(_ enabled: Bool) -> Builder
   public func set(logsEndpoint: LogsEndpoint) -> Builder
   public func enableTracing(_ enabled: Bool) -> Builder
   public func set(tracesEndpoint: TracesEndpoint) -> Builder
   public func set(tracedHosts: Set<String>) -> Builder
   public func track(firstPartyHosts: Set<String>) -> Builder
   public func enableRUM(_ enabled: Bool) -> Builder
   public func set(rumEndpoint: RUMEndpoint) -> Builder
   public func set(rumSessionsSamplingRate: Float) -> Builder
   public func trackUIKitRUMViews(using predicate: UIKitRUMViewsPredicate = DefaultUIKitRUMViewsPredicate()) -> Builder
   public func trackUIKitActions(_ enabled: Bool = true) -> Builder
   public func set(serviceName: String) -> Builder
   public func set(batchSize: BatchSize) -> Builder
   public func set(uploadFrequency: UploadFrequency) -> Builder
   public func build() -> Configuration
public typealias DDGlobal = Global
public struct Global
 public static var sharedTracer: OTTracer = DDNoopGlobals.tracer
 public static var rum: DDRUMMonitor = DDNoopRUMMonitor()
public enum LogLevel: Int, Codable
 case debug
 case info
 case notice
 case warn
 case error
 case critical
public typealias DDLogger = Logger
public class Logger
 public func debug(_ message: String, error: Error? = nil, attributes: [AttributeKey: AttributeValue]? = nil)
 public func info(_ message: String, error: Error? = nil, attributes: [AttributeKey: AttributeValue]? = nil)
 public func notice(_ message: String, error: Error? = nil, attributes: [AttributeKey: AttributeValue]? = nil)
 public func warn(_ message: String, error: Error? = nil, attributes: [AttributeKey: AttributeValue]? = nil)
 public func error(_ message: String, error: Error? = nil, attributes: [AttributeKey: AttributeValue]? = nil)
 public func critical(_ message: String, error: Error? = nil, attributes: [AttributeKey: AttributeValue]? = nil)
 public func addAttribute(forKey key: AttributeKey, value: AttributeValue)
 public func removeAttribute(forKey key: AttributeKey)
 public func addTag(withKey key: String, value: String)
 public func removeTag(withKey key: String)
 public func add(tag: String)
 public func remove(tag: String)
 public static var builder: Builder
 public class Builder
  public func set(serviceName: String) -> Builder
  public func set(loggerName: String) -> Builder
  public func sendNetworkInfo(_ enabled: Bool) -> Builder
  public func bundleWithRUM(_ enabled: Bool) -> Builder
  public func bundleWithTrace(_ enabled: Bool) -> Builder
  public func sendLogsToDatadog(_ enabled: Bool) -> Builder
  public enum ConsoleLogFormat
   case short
   case shortWith(prefix: String)
   case json
   case jsonWith(prefix: String)
  public func printLogsToConsole(_ enabled: Bool, usingFormat format: ConsoleLogFormat = .short) -> Builder
  public func build() -> Logger
public struct OTTags
 public static let component = "component"
 public static let dbInstance = "db.instance"
 public static let dbStatement = "db.statement"
 public static let dbType = "db.type"
 public static let dbUser = "db.user"
 public static let error = "error"
 public static let httpMethod = "http.method"
 public static let httpStatusCode = "http.status_code"
 public static let httpUrl = "http.url"
 public static let messageBusDestination = "message_bus.destination"
 public static let peerAddress = "peer.address"
 public static let peerHostname = "peer.hostname"
 public static let peerIPv4 = "peer.ipv4"
 public static let peerIPv6 = "peer.ipv6"
 public static let peerPort = "peer.port"
 public static let peerService = "peer.service"
 public static let samplingPriority = "sampling.priority"
 public static let spanKind = "span.kind"
public struct OTLogFields
 public static let errorKind = "error.kind"
 public static let event = "event"
 public static let message = "message"
 public static let stack = "stack"
public protocol OTFormatReader: OTCustomFormatReader
public protocol OTFormatWriter: OTCustomFormatWriter
public protocol OTTextMapReader: OTFormatReader
public protocol OTTextMapWriter: OTFormatWriter
public protocol OTHTTPHeadersReader: OTTextMapReader
public protocol OTHTTPHeadersWriter: OTTextMapWriter
public protocol OTCustomFormatReader
 func extract() -> OTSpanContext?
public protocol OTCustomFormatWriter
 func inject(spanContext: OTSpanContext)
public struct OTReference
 public let type: OTReferenceType
 public let context: OTSpanContext
 public static func child(of parent: OTSpanContext) -> OTReference
 public static func follows(from precedingContext: OTSpanContext) -> OTReference
public enum OTReferenceType: String
 case childOf = "CHILD_OF"
 case followsFrom = "FOLLOWS_FROM"
public protocol OTSpan
 var context: OTSpanContext
 func tracer() -> OTTracer
 func setOperationName(_ operationName: String)
 func setTag(key: String, value: Encodable)
 func log(fields: [String: Encodable], timestamp: Date)
 func setBaggageItem(key: String, value: String)
 func baggageItem(withKey key: String) -> String?
 func finish(at time: Date)
 func setActive() -> OTSpan
public extension OTSpan
 func log(fields: [String: Encodable])
 func finish()
public protocol OTSpanContext
 func forEachBaggageItem(callback: (_ key: String, _ value: String) -> Bool)
public protocol OTTracer
 func startSpan(operationName: String,references: [OTReference]?,tags: [String: Encodable]?,startTime: Date?) -> OTSpan
 func startRootSpan(operationName: String,tags: [String: Encodable]?,startTime: Date?) -> OTSpan
 func inject(spanContext: OTSpanContext, writer: OTFormatWriter)
 func extract(reader: OTFormatReader) -> OTSpanContext?
 var activeSpan: OTSpan?
public extension OTTracer
 func startSpan(operationName: String,childOf parent: OTSpanContext? = nil,tags: [String: Encodable]? = nil,startTime: Date? = nil) -> OTSpan
 func startRootSpan(operationName: String,tags: [String: Encodable]? = nil,startTime: Date? = nil) -> OTSpan
public struct RUMView
 public var path: String
 public var attributes: [AttributeKey: AttributeValue]
 public init(path: String, attributes: [AttributeKey: AttributeValue] = [:])
public protocol UIKitRUMViewsPredicate
 func rumView(for viewController: UIViewController) -> RUMView?
public struct DefaultUIKitRUMViewsPredicate: UIKitRUMViewsPredicate
 public init ()
 public func rumView(for viewController: UIViewController) -> RUMView?
public struct RUMViewEvent: RUMDataModel
 public let dd: DD
 public let application: Application
 public let connectivity: RUMConnectivity?
 public let date: Int64
 public let service: String?
 public let session: Session
 public let type: String = "view"
 public let usr: RUMUser?
 public var view: View
 public struct DD: Codable
  public let documentVersion: Int64
  public let formatVersion: Int64 = 2
 public struct Application: Codable
  public let id: String
 public struct Session: Codable
  public let id: String
  public let type: SessionType
  public enum SessionType: String, Codable
   case user = "user"
   case synthetics = "synthetics"
 public struct View: Codable
  public let action: Action
  public let crash: Crash?
  public let cumulativeLayoutShift: Double?
  public let domComplete: Int64?
  public let domContentLoaded: Int64?
  public let domInteractive: Int64?
  public let error: Error
  public let firstContentfulPaint: Int64?
  public let firstInputDelay: Int64?
  public let id: String
  public let isActive: Bool?
  public let largestContentfulPaint: Int64?
  public let loadEvent: Int64?
  public let loadingTime: Int64?
  public let loadingType: LoadingType?
  public let longTask: LongTask?
  public var referrer: String?
  public let resource: Resource
  public let timeSpent: Int64
  public var url: String
  public struct Action: Codable
   public let count: Int64
  public struct Crash: Codable
   public let count: Int64
  public struct Error: Codable
   public let count: Int64
  public enum LoadingType: String, Codable
   case initialLoad = "initial_load"
   case routeChange = "route_change"
   case activityDisplay = "activity_display"
   case activityRedisplay = "activity_redisplay"
   case fragmentDisplay = "fragment_display"
   case fragmentRedisplay = "fragment_redisplay"
   case viewControllerDisplay = "view_controller_display"
   case viewControllerRedisplay = "view_controller_redisplay"
  public struct LongTask: Codable
   public let count: Int64
  public struct Resource: Codable
   public let count: Int64
public struct RUMResourceEvent: RUMDataModel
 public let dd: DD
 public let action: Action?
 public let application: Application
 public let connectivity: RUMConnectivity?
 public let date: Int64
 public var resource: Resource
 public let service: String?
 public let session: Session
 public let type: String = "resource"
 public let usr: RUMUser?
 public var view: View
 public struct DD: Codable
  public let formatVersion: Int64 = 2
  public let spanId: String?
  public let traceId: String?
 public struct Action: Codable
  public let id: String
 public struct Application: Codable
  public let id: String
 public struct Resource: Codable
  public let connect: Connect?
  public let dns: DNS?
  public let download: Download?
  public let duration: Int64
  public let firstByte: FirstByte?
  public let id: String?
  public let method: RUMMethod?
  public let provider: Provider?
  public let redirect: Redirect?
  public let size: Int64?
  public let ssl: SSL?
  public let statusCode: Int64?
  public let type: ResourceType
  public var url: String
  public struct Connect: Codable
   public let duration: Int64
   public let start: Int64
  public struct DNS: Codable
   public let duration: Int64
   public let start: Int64
  public struct Download: Codable
   public let duration: Int64
   public let start: Int64
  public struct FirstByte: Codable
   public let duration: Int64
   public let start: Int64
  public struct Provider: Codable
   public let domain: String?
   public let name: String?
   public let type: ProviderType?
   public enum ProviderType: String, Codable
    case ad = "ad"
    case advertising = "advertising"
    case analytics = "analytics"
    case cdn = "cdn"
    case content = "content"
    case customerSuccess = "customer-success"
    case firstParty = "first party"
    case hosting = "hosting"
    case marketing = "marketing"
    case other = "other"
    case social = "social"
    case tagManager = "tag-manager"
    case utility = "utility"
    case video = "video"
  public struct Redirect: Codable
   public let duration: Int64
   public let start: Int64
  public struct SSL: Codable
   public let duration: Int64
   public let start: Int64
  public enum ResourceType: String, Codable
   case document = "document"
   case xhr = "xhr"
   case beacon = "beacon"
   case fetch = "fetch"
   case css = "css"
   case js = "js"
   case image = "image"
   case font = "font"
   case media = "media"
   case other = "other"
 public struct Session: Codable
  public let id: String
  public let type: SessionType
  public enum SessionType: String, Codable
   case user = "user"
   case synthetics = "synthetics"
 public struct View: Codable
  public let id: String
  public var referrer: String?
  public var url: String
public struct RUMActionEvent: RUMDataModel
 public let dd: DD
 public var action: Action
 public let application: Application
 public let connectivity: RUMConnectivity?
 public let date: Int64
 public let service: String?
 public let session: Session
 public let type: String = "action"
 public let usr: RUMUser?
 public var view: View
 public struct DD: Codable
  public let formatVersion: Int64 = 2
 public struct Action: Codable
  public let crash: Crash?
  public let error: Error?
  public let id: String?
  public let loadingTime: Int64?
  public let longTask: LongTask?
  public let resource: Resource?
  public var target: Target?
  public let type: ActionType
  public struct Crash: Codable
   public let count: Int64
  public struct Error: Codable
   public let count: Int64
  public struct LongTask: Codable
   public let count: Int64
  public struct Resource: Codable
   public let count: Int64
  public struct Target: Codable
   public var name: String
  public enum ActionType: String, Codable
   case custom = "custom"
   case click = "click"
   case tap = "tap"
   case scroll = "scroll"
   case swipe = "swipe"
   case applicationStart = "application_start"
   case back = "back"
 public struct Application: Codable
  public let id: String
 public struct Session: Codable
  public let id: String
  public let type: SessionType
  public enum SessionType: String, Codable
   case user = "user"
   case synthetics = "synthetics"
 public struct View: Codable
  public let id: String
  public var referrer: String?
  public var url: String
public struct RUMErrorEvent: RUMDataModel
 public let dd: DD
 public let action: Action?
 public let application: Application
 public let connectivity: RUMConnectivity?
 public let date: Int64
 public var error: Error
 public let service: String?
 public let session: Session
 public let type: String = "error"
 public let usr: RUMUser?
 public var view: View
 public struct DD: Codable
  public let formatVersion: Int64 = 2
 public struct Action: Codable
  public let id: String
 public struct Application: Codable
  public let id: String
 public struct Error: Codable
  public let isCrash: Bool?
  public var message: String
  public var resource: Resource?
  public let source: Source
  public var stack: String?
  public struct Resource: Codable
   public let method: RUMMethod
   public let provider: Provider?
   public let statusCode: Int64
   public var url: String
   public struct Provider: Codable
    public let domain: String?
    public let name: String?
    public let type: ProviderType?
    public enum ProviderType: String, Codable
     case ad = "ad"
     case advertising = "advertising"
     case analytics = "analytics"
     case cdn = "cdn"
     case content = "content"
     case customerSuccess = "customer-success"
     case firstParty = "first party"
     case hosting = "hosting"
     case marketing = "marketing"
     case other = "other"
     case social = "social"
     case tagManager = "tag-manager"
     case utility = "utility"
     case video = "video"
  public enum Source: String, Codable
   case network = "network"
   case source = "source"
   case console = "console"
   case logger = "logger"
   case agent = "agent"
   case webview = "webview"
   case custom = "custom"
 public struct Session: Codable
  public let id: String
  public let type: SessionType
  public enum SessionType: String, Codable
   case user = "user"
   case synthetics = "synthetics"
 public struct View: Codable
  public let id: String
  public var referrer: String?
  public var url: String
public struct RUMConnectivity: Codable
 public let cellular: Cellular?
 public let interfaces: [Interfaces]
 public let status: Status
 public struct Cellular: Codable
  public let carrierName: String?
  public let technology: String?
 public enum Interfaces: String, Codable
  case bluetooth = "bluetooth"
  case cellular = "cellular"
  case ethernet = "ethernet"
  case wifi = "wifi"
  case wimax = "wimax"
  case mixed = "mixed"
  case other = "other"
  case unknown = "unknown"
  case none = "none"
 public enum Status: String, Codable
  case connected = "connected"
  case notConnected = "not_connected"
  case maybe = "maybe"
public struct RUMUser: Codable
 public let email: String?
 public let id: String?
 public let name: String?
public enum RUMMethod: String, Codable
 case post = "POST"
 case get = "GET"
 case head = "HEAD"
 case put = "PUT"
 case delete = "DELETE"
 case patch = "PATCH"
public enum RUMResourceKind
 case image
 case xhr
 case beacon
 case css
 case document
 case fetch
 case font
 case js
 case media
 case other
public enum RUMUserActionType
 case tap
 case scroll
 case swipe
 case custom
public enum RUMErrorSource
 case source
 case network
 case webview
 case custom
public class RUMMonitor: DDRUMMonitor, RUMCommandSubscriber
 public static func initialize() -> DDRUMMonitor
 override public func startView(viewController: UIViewController,path: String?,attributes: [AttributeKey: AttributeValue])
 override public func stopView(viewController: UIViewController,attributes: [AttributeKey: AttributeValue])
 override public func startView(key: String,path: String?,attributes: [AttributeKey: AttributeValue])
 override public func stopView(key: String,attributes: [AttributeKey: AttributeValue])
 override public func addTiming(name: String)
 override public func addError(message: String,source: RUMErrorSource,stack: String?,attributes: [AttributeKey: AttributeValue],file: StaticString?,line: UInt?)
 override public func addError(error: Error,source: RUMErrorSource,attributes: [AttributeKey: AttributeValue])
 override public func startResourceLoading(resourceKey: String,request: URLRequest,attributes: [AttributeKey: AttributeValue])
 override public func startResourceLoading(resourceKey: String,url: URL,attributes: [AttributeKey: AttributeValue])
 override public func startResourceLoading(resourceKey: String,httpMethod: String,urlString: String,attributes: [AttributeKey: AttributeValue] = [:])
 override public func addResourceMetrics(resourceKey: String,metrics: URLSessionTaskMetrics,attributes: [AttributeKey: AttributeValue])
 override public func stopResourceLoading(resourceKey: String,response: URLResponse,size: Int64?,attributes: [AttributeKey: AttributeValue])
 override public func stopResourceLoading(resourceKey: String,statusCode: Int?,kind: RUMResourceKind,size: Int64? = nil,attributes: [AttributeKey: AttributeValue] = [:])
 override public func stopResourceLoadingWithError(resourceKey: String,error: Error,response: URLResponse?,attributes: [AttributeKey: AttributeValue])
 override public func stopResourceLoadingWithError(resourceKey: String,errorMessage: String,response: URLResponse?,attributes: [AttributeKey: AttributeValue])
 override public func startUserAction(type: RUMUserActionType, name: String, attributes: [AttributeKey: AttributeValue])
 override public func stopUserAction(type: RUMUserActionType, name: String?, attributes: [AttributeKey: AttributeValue])
 override public func addUserAction(type: RUMUserActionType, name: String, attributes: [AttributeKey: AttributeValue])
 override public func addAttribute(forKey key: AttributeKey, value: AttributeValue)
 override public func removeAttribute(forKey key: AttributeKey)
public struct DDTags
 public static let resource = "resource.name"
public typealias DDTracer = Tracer
public class Tracer: OTTracer
 public static func initialize(configuration: Configuration) -> OTTracer
 public func startSpan(operationName: String, references: [OTReference]? = nil, tags: [String: Encodable]? = nil, startTime: Date? = nil) -> OTSpan
 public func startRootSpan(operationName: String, tags: [String: Encodable]? = nil, startTime: Date? = nil) -> OTSpan
 public func inject(spanContext: OTSpanContext, writer: OTFormatWriter)
 public func extract(reader: OTFormatReader) -> OTSpanContext?
 public var activeSpan: OTSpan?
 public struct Configuration
  public var serviceName: String?
  public var sendNetworkInfo: Bool
  public var globalTags: [String: Encodable]?
  public var bundleWithRUM: Bool
  public init(serviceName: String? = nil,sendNetworkInfo: Bool = false,bundleWithRUM: Bool = true,globalTags: [String: Encodable]? = nil)
public class HTTPHeadersWriter: OTHTTPHeadersWriter
 public init()
 public private(set) var tracePropagationHTTPHeaders: [String: String] = [:]
 public func inject(spanContext: OTSpanContext)
 override public init()
public class URLSessionInterceptor: URLSessionInterceptorType
 public static var shared: URLSessionInterceptor?
 public func modify(request: URLRequest) -> URLRequest
 public func taskCreated(task: URLSessionTask)
 public func taskMetricsCollected(task: URLSessionTask, metrics: URLSessionTaskMetrics)
 public func taskCompleted(task: URLSessionTask, error: Error?)
