PerfMetric.pbobjc.h 42 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108
  1. // Copyright 2020 Google LLC
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. // Generated by the protocol buffer compiler. DO NOT EDIT!
  15. // source: perf_metric.proto
  16. // This CPP symbol can be defined to use imports that match up to the framework
  17. // imports needed when using CocoaPods.
  18. #if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
  19. #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
  20. #endif
  21. #if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
  22. #import <Protobuf/GPBProtocolBuffers.h>
  23. #else
  24. #import "GPBProtocolBuffers.h"
  25. #endif
  26. #if GOOGLE_PROTOBUF_OBJC_VERSION < 30004
  27. #error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources.
  28. #endif
  29. #if 30004 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION
  30. #error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources.
  31. #endif
  32. // @@protoc_insertion_point(imports)
  33. #pragma clang diagnostic push
  34. #pragma clang diagnostic ignored "-Wdeprecated-declarations"
  35. CF_EXTERN_C_BEGIN
  36. @class FPRMSGAndroidApplicationInfo;
  37. @class FPRMSGAndroidMemoryReading;
  38. @class FPRMSGApplicationInfo;
  39. @class FPRMSGCpuMetricReading;
  40. @class FPRMSGGaugeMetadata;
  41. @class FPRMSGGaugeMetric;
  42. @class FPRMSGIosApplicationInfo;
  43. @class FPRMSGIosMemoryReading;
  44. @class FPRMSGNetworkConnectionInfo;
  45. @class FPRMSGNetworkRequestMetric;
  46. @class FPRMSGPerfSession;
  47. @class FPRMSGTraceMetric;
  48. @class FPRMSGTransportInfo;
  49. @class FPRMSGWebApplicationInfo;
  50. NS_ASSUME_NONNULL_BEGIN
  51. #pragma mark - Enum FPRMSGApplicationProcessState
  52. /** Metadata about the state of application process during metrics collection. */
  53. typedef GPB_ENUM(FPRMSGApplicationProcessState) {
  54. /** Unspecified application process state. */
  55. FPRMSGApplicationProcessState_ApplicationProcessStateUnknown = 0,
  56. /** Application process was in foreground */
  57. FPRMSGApplicationProcessState_Foreground = 1,
  58. /** Application process was in background */
  59. FPRMSGApplicationProcessState_Background = 2,
  60. /**
  61. * Application process was both in foreground and background for the duration
  62. * of metrics collection.
  63. **/
  64. FPRMSGApplicationProcessState_ForegroundBackground = 3,
  65. };
  66. GPBEnumDescriptor *FPRMSGApplicationProcessState_EnumDescriptor(void);
  67. /**
  68. * Checks to see if the given value is defined by the enum or was not known at
  69. * the time this source was generated.
  70. **/
  71. BOOL FPRMSGApplicationProcessState_IsValidValue(int32_t value);
  72. #pragma mark - Enum FPRMSGSessionVerbosity
  73. /**
  74. * The level of detailed information that is captured in a Perf Session, known
  75. * as a session's verbosity. For different session we collect different levels
  76. * of detailed information (or none at all) to avoid penalizing the same device
  77. * constantly.
  78. **/
  79. typedef GPB_ENUM(FPRMSGSessionVerbosity) {
  80. /** Session doesn't have detailed information. */
  81. FPRMSGSessionVerbosity_SessionVerbosityNone = 0,
  82. /**
  83. * Session has gauges and system events information.
  84. **/
  85. FPRMSGSessionVerbosity_GaugesAndSystemEvents = 1,
  86. };
  87. GPBEnumDescriptor *FPRMSGSessionVerbosity_EnumDescriptor(void);
  88. /**
  89. * Checks to see if the given value is defined by the enum or was not known at
  90. * the time this source was generated.
  91. **/
  92. BOOL FPRMSGSessionVerbosity_IsValidValue(int32_t value);
  93. #pragma mark - Enum FPRMSGVisibilityState
  94. /** Visibility state for a web page. */
  95. typedef GPB_ENUM(FPRMSGVisibilityState) {
  96. /** Unspecified visibility state. */
  97. FPRMSGVisibilityState_VisibilityStateUnknown = 0,
  98. /**
  99. * The page is at least partially visible. In practice this means the page
  100. * is in the foreground tab of a non-minimized window.
  101. **/
  102. FPRMSGVisibilityState_Visible = 1,
  103. /** The page's content is not visible to the user. */
  104. FPRMSGVisibilityState_Hidden = 2,
  105. /** The page's content is being prerendered and is not visible to the user. */
  106. FPRMSGVisibilityState_Prerender = 3,
  107. /** The page is in the process of being unloaded from memory. */
  108. FPRMSGVisibilityState_Unloaded = 4,
  109. };
  110. GPBEnumDescriptor *FPRMSGVisibilityState_EnumDescriptor(void);
  111. /**
  112. * Checks to see if the given value is defined by the enum or was not known at
  113. * the time this source was generated.
  114. **/
  115. BOOL FPRMSGVisibilityState_IsValidValue(int32_t value);
  116. #pragma mark - Enum FPRMSGServiceWorkerStatus
  117. /** Service worker status for a web page. */
  118. typedef GPB_ENUM(FPRMSGServiceWorkerStatus) {
  119. /** Unspecified service worker status. */
  120. FPRMSGServiceWorkerStatus_ServiceWorkerStatusUnknown = 0,
  121. /** Service worker not supported by the browser. */
  122. FPRMSGServiceWorkerStatus_Unsupported = 1,
  123. /** Service worker controlled page. */
  124. FPRMSGServiceWorkerStatus_Controlled = 2,
  125. /** Page not controlled by a service worker. */
  126. FPRMSGServiceWorkerStatus_Uncontrolled = 3,
  127. };
  128. GPBEnumDescriptor *FPRMSGServiceWorkerStatus_EnumDescriptor(void);
  129. /**
  130. * Checks to see if the given value is defined by the enum or was not known at
  131. * the time this source was generated.
  132. **/
  133. BOOL FPRMSGServiceWorkerStatus_IsValidValue(int32_t value);
  134. #pragma mark - Enum FPRMSGEffectiveConnectionType
  135. /**
  136. * Effective connection type for a web application, defined from
  137. * https://wicg.github.io/netinfo/#effective-connection-types
  138. **/
  139. typedef GPB_ENUM(FPRMSGEffectiveConnectionType) {
  140. FPRMSGEffectiveConnectionType_EffectiveConnectionTypeUnknown = 0,
  141. /** Maximum downlink speed 50kbs */
  142. FPRMSGEffectiveConnectionType_EffectiveConnectionTypeSlow2G = 1,
  143. /** Maximum downlink speed 70kbs */
  144. FPRMSGEffectiveConnectionType_EffectiveConnectionType2G = 2,
  145. /** Maximum downlink speed 700kbs */
  146. FPRMSGEffectiveConnectionType_EffectiveConnectionType3G = 3,
  147. /** Maximum downlink speed Infinity */
  148. FPRMSGEffectiveConnectionType_EffectiveConnectionType4G = 4,
  149. };
  150. GPBEnumDescriptor *FPRMSGEffectiveConnectionType_EnumDescriptor(void);
  151. /**
  152. * Checks to see if the given value is defined by the enum or was not known at
  153. * the time this source was generated.
  154. **/
  155. BOOL FPRMSGEffectiveConnectionType_IsValidValue(int32_t value);
  156. #pragma mark - Enum FPRMSGNetworkRequestMetric_HttpMethod
  157. /**
  158. * Supported HTTP methods for aggregating network requests. All network
  159. * requests that can not be classified into the 9 methods below should be set
  160. * to HTTP_METHOD_UNKNOWN.
  161. **/
  162. typedef GPB_ENUM(FPRMSGNetworkRequestMetric_HttpMethod) {
  163. FPRMSGNetworkRequestMetric_HttpMethod_HTTPMethodUnknown = 0,
  164. FPRMSGNetworkRequestMetric_HttpMethod_Get = 1,
  165. FPRMSGNetworkRequestMetric_HttpMethod_Put = 2,
  166. FPRMSGNetworkRequestMetric_HttpMethod_Post = 3,
  167. FPRMSGNetworkRequestMetric_HttpMethod_Delete = 4,
  168. FPRMSGNetworkRequestMetric_HttpMethod_Head = 5,
  169. FPRMSGNetworkRequestMetric_HttpMethod_Patch = 6,
  170. FPRMSGNetworkRequestMetric_HttpMethod_Options = 7,
  171. FPRMSGNetworkRequestMetric_HttpMethod_Trace = 8,
  172. FPRMSGNetworkRequestMetric_HttpMethod_Connect = 9,
  173. };
  174. GPBEnumDescriptor *FPRMSGNetworkRequestMetric_HttpMethod_EnumDescriptor(void);
  175. /**
  176. * Checks to see if the given value is defined by the enum or was not known at
  177. * the time this source was generated.
  178. **/
  179. BOOL FPRMSGNetworkRequestMetric_HttpMethod_IsValidValue(int32_t value);
  180. #pragma mark - Enum FPRMSGNetworkRequestMetric_NetworkClientErrorReason
  181. /** Info about the type of client error during network call. */
  182. typedef GPB_ENUM(FPRMSGNetworkRequestMetric_NetworkClientErrorReason) {
  183. /** Unspecified Network Client Error Reason. */
  184. FPRMSGNetworkRequestMetric_NetworkClientErrorReason_NetworkClientErrorReasonUnknown = 0,
  185. /** No attempt made to classify the error. */
  186. FPRMSGNetworkRequestMetric_NetworkClientErrorReason_GenericClientError = 1,
  187. };
  188. GPBEnumDescriptor *FPRMSGNetworkRequestMetric_NetworkClientErrorReason_EnumDescriptor(void);
  189. /**
  190. * Checks to see if the given value is defined by the enum or was not known at
  191. * the time this source was generated.
  192. **/
  193. BOOL FPRMSGNetworkRequestMetric_NetworkClientErrorReason_IsValidValue(int32_t value);
  194. #pragma mark - Enum FPRMSGNetworkConnectionInfo_NetworkType
  195. typedef GPB_ENUM(FPRMSGNetworkConnectionInfo_NetworkType) {
  196. FPRMSGNetworkConnectionInfo_NetworkType_None = -1,
  197. FPRMSGNetworkConnectionInfo_NetworkType_Mobile = 0,
  198. FPRMSGNetworkConnectionInfo_NetworkType_Wifi = 1,
  199. FPRMSGNetworkConnectionInfo_NetworkType_MobileMms = 2,
  200. FPRMSGNetworkConnectionInfo_NetworkType_MobileSupl = 3,
  201. FPRMSGNetworkConnectionInfo_NetworkType_MobileDun = 4,
  202. FPRMSGNetworkConnectionInfo_NetworkType_MobileHipri = 5,
  203. FPRMSGNetworkConnectionInfo_NetworkType_Wimax = 6,
  204. FPRMSGNetworkConnectionInfo_NetworkType_Bluetooth = 7,
  205. FPRMSGNetworkConnectionInfo_NetworkType_Dummy = 8,
  206. FPRMSGNetworkConnectionInfo_NetworkType_Ethernet = 9,
  207. FPRMSGNetworkConnectionInfo_NetworkType_MobileFota = 10,
  208. FPRMSGNetworkConnectionInfo_NetworkType_MobileIms = 11,
  209. FPRMSGNetworkConnectionInfo_NetworkType_MobileCbs = 12,
  210. FPRMSGNetworkConnectionInfo_NetworkType_WifiP2P = 13,
  211. FPRMSGNetworkConnectionInfo_NetworkType_MobileIa = 14,
  212. FPRMSGNetworkConnectionInfo_NetworkType_MobileEmergency = 15,
  213. FPRMSGNetworkConnectionInfo_NetworkType_Proxy = 16,
  214. FPRMSGNetworkConnectionInfo_NetworkType_Vpn = 17,
  215. };
  216. GPBEnumDescriptor *FPRMSGNetworkConnectionInfo_NetworkType_EnumDescriptor(void);
  217. /**
  218. * Checks to see if the given value is defined by the enum or was not known at
  219. * the time this source was generated.
  220. **/
  221. BOOL FPRMSGNetworkConnectionInfo_NetworkType_IsValidValue(int32_t value);
  222. #pragma mark - Enum FPRMSGNetworkConnectionInfo_MobileSubtype
  223. typedef GPB_ENUM(FPRMSGNetworkConnectionInfo_MobileSubtype) {
  224. FPRMSGNetworkConnectionInfo_MobileSubtype_UnknownMobileSubtype = 0,
  225. FPRMSGNetworkConnectionInfo_MobileSubtype_Gprs = 1,
  226. FPRMSGNetworkConnectionInfo_MobileSubtype_Edge = 2,
  227. FPRMSGNetworkConnectionInfo_MobileSubtype_Umts = 3,
  228. FPRMSGNetworkConnectionInfo_MobileSubtype_Cdma = 4,
  229. FPRMSGNetworkConnectionInfo_MobileSubtype_Evdo0 = 5,
  230. FPRMSGNetworkConnectionInfo_MobileSubtype_EvdoA = 6,
  231. FPRMSGNetworkConnectionInfo_MobileSubtype_Rtt = 7,
  232. FPRMSGNetworkConnectionInfo_MobileSubtype_Hsdpa = 8,
  233. FPRMSGNetworkConnectionInfo_MobileSubtype_Hsupa = 9,
  234. FPRMSGNetworkConnectionInfo_MobileSubtype_Hspa = 10,
  235. FPRMSGNetworkConnectionInfo_MobileSubtype_Iden = 11,
  236. FPRMSGNetworkConnectionInfo_MobileSubtype_EvdoB = 12,
  237. FPRMSGNetworkConnectionInfo_MobileSubtype_Lte = 13,
  238. FPRMSGNetworkConnectionInfo_MobileSubtype_Ehrpd = 14,
  239. FPRMSGNetworkConnectionInfo_MobileSubtype_Hspap = 15,
  240. FPRMSGNetworkConnectionInfo_MobileSubtype_Gsm = 16,
  241. FPRMSGNetworkConnectionInfo_MobileSubtype_TdScdma = 17,
  242. FPRMSGNetworkConnectionInfo_MobileSubtype_Iwlan = 18,
  243. FPRMSGNetworkConnectionInfo_MobileSubtype_LteCa = 19,
  244. /**
  245. * COMBINED has value -1 in NetworkIdentity.java, but is given the value
  246. * 100 here to save (disk) space. The value -1 takes up the full 10 bytes in
  247. * a varint for enums, but the value 100 only takes up 1 byte.
  248. **/
  249. FPRMSGNetworkConnectionInfo_MobileSubtype_Combined = 100,
  250. };
  251. GPBEnumDescriptor *FPRMSGNetworkConnectionInfo_MobileSubtype_EnumDescriptor(void);
  252. /**
  253. * Checks to see if the given value is defined by the enum or was not known at
  254. * the time this source was generated.
  255. **/
  256. BOOL FPRMSGNetworkConnectionInfo_MobileSubtype_IsValidValue(int32_t value);
  257. #pragma mark - Enum FPRMSGTransportInfo_DispatchDestination
  258. /** Dispatch destination for the event. */
  259. typedef GPB_ENUM(FPRMSGTransportInfo_DispatchDestination) {
  260. /** Reserved */
  261. FPRMSGTransportInfo_DispatchDestination_SourceUnknown = 0,
  262. /** Firelog legacy endpoint */
  263. FPRMSGTransportInfo_DispatchDestination_FlLegacyV1 = 1,
  264. };
  265. GPBEnumDescriptor *FPRMSGTransportInfo_DispatchDestination_EnumDescriptor(void);
  266. /**
  267. * Checks to see if the given value is defined by the enum or was not known at
  268. * the time this source was generated.
  269. **/
  270. BOOL FPRMSGTransportInfo_DispatchDestination_IsValidValue(int32_t value);
  271. #pragma mark - FPRMSGPerfMetricRoot
  272. /**
  273. * Exposes the extension registry for this file.
  274. *
  275. * The base class provides:
  276. * @code
  277. * + (GPBExtensionRegistry *)extensionRegistry;
  278. * @endcode
  279. * which is a @c GPBExtensionRegistry that includes all the extensions defined by
  280. * this file and all files that it depends on.
  281. **/
  282. GPB_FINAL @interface FPRMSGPerfMetricRoot : GPBRootObject
  283. @end
  284. #pragma mark - FPRMSGPerfMetric
  285. typedef GPB_ENUM(FPRMSGPerfMetric_FieldNumber) {
  286. FPRMSGPerfMetric_FieldNumber_ApplicationInfo = 1,
  287. FPRMSGPerfMetric_FieldNumber_TraceMetric = 2,
  288. FPRMSGPerfMetric_FieldNumber_NetworkRequestMetric = 3,
  289. FPRMSGPerfMetric_FieldNumber_GaugeMetric = 4,
  290. FPRMSGPerfMetric_FieldNumber_TransportInfo = 5,
  291. };
  292. /**
  293. * Single unit of performance data collected from firebase integrated 3P apps by
  294. * the firebase performance sdk. This will be an an extension to
  295. * GWSLogEntryProto and will correspond to one record in the RecordIO logs
  296. * generated by clearcut. Every firebase performance related event logged to
  297. * clearcut/Firelog by the sdk will encapsulate one instance of this object.
  298. *
  299. * Next tag: 6
  300. **/
  301. GPB_FINAL @interface FPRMSGPerfMetric : GPBMessage
  302. /**
  303. * Additional metadata about an application and its state (including state of
  304. * the device at runtime) that is not provided by clearcut.
  305. **/
  306. @property(nonatomic, readwrite, strong, null_resettable) FPRMSGApplicationInfo *applicationInfo;
  307. /** Test to see if @c applicationInfo has been set. */
  308. @property(nonatomic, readwrite) BOOL hasApplicationInfo;
  309. /**
  310. * A metric which represents the performance statistics collected within an
  311. * instrumented trace.
  312. **/
  313. @property(nonatomic, readwrite, strong, null_resettable) FPRMSGTraceMetric *traceMetric;
  314. /** Test to see if @c traceMetric has been set. */
  315. @property(nonatomic, readwrite) BOOL hasTraceMetric;
  316. /**
  317. * A metric which represents the network latency, bandwidth and network
  318. * connection info about a network request captured by the firebase sdk.
  319. **/
  320. @property(nonatomic, readwrite, strong, null_resettable) FPRMSGNetworkRequestMetric *networkRequestMetric;
  321. /** Test to see if @c networkRequestMetric has been set. */
  322. @property(nonatomic, readwrite) BOOL hasNetworkRequestMetric;
  323. /**
  324. * A metric which represents session gauges, such as cpu, memory, battery,
  325. * within a session.
  326. **/
  327. @property(nonatomic, readwrite, strong, null_resettable) FPRMSGGaugeMetric *gaugeMetric;
  328. /** Test to see if @c gaugeMetric has been set. */
  329. @property(nonatomic, readwrite) BOOL hasGaugeMetric;
  330. /**
  331. * A metric which represents the transport related information.
  332. * When transport_info field is empty, it means the message is from clearcut.
  333. **/
  334. @property(nonatomic, readwrite, strong, null_resettable) FPRMSGTransportInfo *transportInfo;
  335. /** Test to see if @c transportInfo has been set. */
  336. @property(nonatomic, readwrite) BOOL hasTransportInfo;
  337. @end
  338. #pragma mark - FPRMSGTraceMetric
  339. typedef GPB_ENUM(FPRMSGTraceMetric_FieldNumber) {
  340. FPRMSGTraceMetric_FieldNumber_Name = 1,
  341. FPRMSGTraceMetric_FieldNumber_IsAuto = 2,
  342. FPRMSGTraceMetric_FieldNumber_ClientStartTimeUs = 4,
  343. FPRMSGTraceMetric_FieldNumber_DurationUs = 5,
  344. FPRMSGTraceMetric_FieldNumber_Counters = 6,
  345. FPRMSGTraceMetric_FieldNumber_SubtracesArray = 7,
  346. FPRMSGTraceMetric_FieldNumber_CustomAttributes = 8,
  347. FPRMSGTraceMetric_FieldNumber_PerfSessionsArray = 9,
  348. };
  349. /**
  350. * Metric which represents everything collected in the span of a trace. A trace
  351. * may be further divided into subtraces.
  352. * The trace can either be a default out of the box trace which is a
  353. * part of the default instrumentation provided by the firebase performance sdk
  354. * or a custom trace instrumented by the app developer using the sdk apis.
  355. *
  356. * Next tag: 10
  357. **/
  358. GPB_FINAL @interface FPRMSGTraceMetric : GPBMessage
  359. /**
  360. * The name of the trace. This could either be a user defined name for the
  361. * developer instrumented custom traces or a default for traces automatically
  362. * instrumented by the Firebase Performance SDK. The max length of 64
  363. * characters will be enforced by the sdk.
  364. **/
  365. @property(nonatomic, readwrite, copy, null_resettable) NSString *name;
  366. /** Test to see if @c name has been set. */
  367. @property(nonatomic, readwrite) BOOL hasName;
  368. /**
  369. * If true, then this is considered to be a trace automatically instrumented
  370. * by the performance sdk. Otherwise, it is considered to be a custom trace
  371. * instrumented by the developer using firebase perf sdk apis.
  372. **/
  373. @property(nonatomic, readwrite) BOOL isAuto;
  374. @property(nonatomic, readwrite) BOOL hasIsAuto;
  375. /**
  376. * The timestamp in microseconds since epoch when the trace was started. This
  377. * time is recorded using the device clock.
  378. **/
  379. @property(nonatomic, readwrite) int64_t clientStartTimeUs;
  380. @property(nonatomic, readwrite) BOOL hasClientStartTimeUs;
  381. /** The duration of the trace in microseconds. */
  382. @property(nonatomic, readwrite) int64_t durationUs;
  383. @property(nonatomic, readwrite) BOOL hasDurationUs;
  384. /** A map of custom or default counter names to values. */
  385. @property(nonatomic, readwrite, strong, null_resettable) GPBStringInt64Dictionary *counters;
  386. /** The number of items in @c counters without causing the array to be created. */
  387. @property(nonatomic, readonly) NSUInteger counters_Count;
  388. /**
  389. * The following restrictions are currently enforced by the sdk on subtraces:
  390. * Subtraces should only have 1 level of nesting.
  391. * Subtraces should be non overlapping.
  392. * Subtraces should be continuous, i.e no gaps between consecutive subtraces.
  393. **/
  394. @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<FPRMSGTraceMetric*> *subtracesArray;
  395. /** The number of items in @c subtracesArray without causing the array to be created. */
  396. @property(nonatomic, readonly) NSUInteger subtracesArray_Count;
  397. /** A map of trace-level custom attribute names to values. */
  398. @property(nonatomic, readwrite, strong, null_resettable) NSMutableDictionary<NSString*, NSString*> *customAttributes;
  399. /** The number of items in @c customAttributes without causing the array to be created. */
  400. @property(nonatomic, readonly) NSUInteger customAttributes_Count;
  401. /**
  402. * Sessions across which the trace spanned. A session lasts from one
  403. * change in the app state (foreground/background) to the next. Basically
  404. * every foreground and background session gets it's own session id. A trace
  405. * may span across multiple such sessions. So we need a list to identify which
  406. * sessions it spanned across.
  407. **/
  408. @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<FPRMSGPerfSession*> *perfSessionsArray;
  409. /** The number of items in @c perfSessionsArray without causing the array to be created. */
  410. @property(nonatomic, readonly) NSUInteger perfSessionsArray_Count;
  411. @end
  412. #pragma mark - FPRMSGNetworkRequestMetric
  413. typedef GPB_ENUM(FPRMSGNetworkRequestMetric_FieldNumber) {
  414. FPRMSGNetworkRequestMetric_FieldNumber_URL = 1,
  415. FPRMSGNetworkRequestMetric_FieldNumber_HTTPMethod = 2,
  416. FPRMSGNetworkRequestMetric_FieldNumber_RequestPayloadBytes = 3,
  417. FPRMSGNetworkRequestMetric_FieldNumber_ResponsePayloadBytes = 4,
  418. FPRMSGNetworkRequestMetric_FieldNumber_HTTPResponseCode = 5,
  419. FPRMSGNetworkRequestMetric_FieldNumber_ResponseContentType = 6,
  420. FPRMSGNetworkRequestMetric_FieldNumber_ClientStartTimeUs = 7,
  421. FPRMSGNetworkRequestMetric_FieldNumber_TimeToRequestCompletedUs = 8,
  422. FPRMSGNetworkRequestMetric_FieldNumber_TimeToResponseInitiatedUs = 9,
  423. FPRMSGNetworkRequestMetric_FieldNumber_TimeToResponseCompletedUs = 10,
  424. FPRMSGNetworkRequestMetric_FieldNumber_NetworkClientErrorReason = 11,
  425. FPRMSGNetworkRequestMetric_FieldNumber_CustomAttributes = 12,
  426. FPRMSGNetworkRequestMetric_FieldNumber_PerfSessionsArray = 13,
  427. };
  428. /**
  429. * Metric which represents the latency, bandwidth consumption and other details
  430. * about a network request captured by the firebase sdk.
  431. *
  432. * Next tag: 14
  433. **/
  434. GPB_FINAL @interface FPRMSGNetworkRequestMetric : GPBMessage
  435. /**
  436. * The parameterless url to which the network request was made. The sdk will
  437. * redact the unnecessary components of the URL and only log the components
  438. * which are useful. For a url of the form
  439. * scheme://host[:port]/path[?params][#fragment], the sdk should only log
  440. * scheme://host[:port]/path
  441. * Example:
  442. * Captured Url: https://wwww.google.com/maps/cities#seattle?id=123
  443. * Logged Url: https://wwww.google.com/maps/cities
  444. **/
  445. @property(nonatomic, readwrite, copy, null_resettable) NSString *URL;
  446. /** Test to see if @c URL has been set. */
  447. @property(nonatomic, readwrite) BOOL hasURL;
  448. /**
  449. * The HTTP verb for the network request. Common values include GET,
  450. * PUT, POST and DELETE
  451. **/
  452. @property(nonatomic, readwrite) FPRMSGNetworkRequestMetric_HttpMethod HTTPMethod;
  453. @property(nonatomic, readwrite) BOOL hasHTTPMethod;
  454. /** The size of the payload in the request. */
  455. @property(nonatomic, readwrite) int64_t requestPayloadBytes;
  456. @property(nonatomic, readwrite) BOOL hasRequestPayloadBytes;
  457. /** The size of the payload in the response. */
  458. @property(nonatomic, readwrite) int64_t responsePayloadBytes;
  459. @property(nonatomic, readwrite) BOOL hasResponsePayloadBytes;
  460. /**
  461. * The client error received from the networking library.
  462. * Do not record a client error if we have HTTP response code available.
  463. **/
  464. @property(nonatomic, readwrite) FPRMSGNetworkRequestMetric_NetworkClientErrorReason networkClientErrorReason;
  465. @property(nonatomic, readwrite) BOOL hasNetworkClientErrorReason;
  466. /** The Http response code received from the server. */
  467. @property(nonatomic, readwrite) int32_t HTTPResponseCode;
  468. @property(nonatomic, readwrite) BOOL hasHTTPResponseCode;
  469. /** The value of the content type header in the response. */
  470. @property(nonatomic, readwrite, copy, null_resettable) NSString *responseContentType;
  471. /** Test to see if @c responseContentType has been set. */
  472. @property(nonatomic, readwrite) BOOL hasResponseContentType;
  473. /**
  474. * The timestamp in microseconds since epoch when the network request was
  475. * initiated. This time is recorded using the device clock.
  476. **/
  477. @property(nonatomic, readwrite) int64_t clientStartTimeUs;
  478. @property(nonatomic, readwrite) BOOL hasClientStartTimeUs;
  479. /**
  480. * The time in microseconds since the start of the network request and the
  481. * upload of the last request byte.
  482. **/
  483. @property(nonatomic, readwrite) int64_t timeToRequestCompletedUs;
  484. @property(nonatomic, readwrite) BOOL hasTimeToRequestCompletedUs;
  485. /**
  486. * The time in microseconds between the start of the network request and the
  487. * receipt of the first byte of the response headers.
  488. **/
  489. @property(nonatomic, readwrite) int64_t timeToResponseInitiatedUs;
  490. @property(nonatomic, readwrite) BOOL hasTimeToResponseInitiatedUs;
  491. /**
  492. * The time in microseconds between the start of the network request and the
  493. * receipt of the last response byte.
  494. **/
  495. @property(nonatomic, readwrite) int64_t timeToResponseCompletedUs;
  496. @property(nonatomic, readwrite) BOOL hasTimeToResponseCompletedUs;
  497. /** A map of network-level custom attribute names to values. */
  498. @property(nonatomic, readwrite, strong, null_resettable) NSMutableDictionary<NSString*, NSString*> *customAttributes;
  499. /** The number of items in @c customAttributes without causing the array to be created. */
  500. @property(nonatomic, readonly) NSUInteger customAttributes_Count;
  501. /**
  502. * Sessions across which the network request spanned. A session lasts
  503. * from one change in the app state (foreground/background) to the next.
  504. * Basically every foreground and background session gets it's own session id.
  505. * A network request may span across multiple such sessions. So we need a list
  506. * to identify which sessions it spanned across.
  507. **/
  508. @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<FPRMSGPerfSession*> *perfSessionsArray;
  509. /** The number of items in @c perfSessionsArray without causing the array to be created. */
  510. @property(nonatomic, readonly) NSUInteger perfSessionsArray_Count;
  511. @end
  512. #pragma mark - FPRMSGPerfSession
  513. typedef GPB_ENUM(FPRMSGPerfSession_FieldNumber) {
  514. FPRMSGPerfSession_FieldNumber_SessionId = 1,
  515. FPRMSGPerfSession_FieldNumber_SessionVerbosityArray = 2,
  516. };
  517. /**
  518. * Metadata about a session and the amount of detail information it contains.
  519. **/
  520. GPB_FINAL @interface FPRMSGPerfSession : GPBMessage
  521. /** The id of a session. */
  522. @property(nonatomic, readwrite, copy, null_resettable) NSString *sessionId;
  523. /** Test to see if @c sessionId has been set. */
  524. @property(nonatomic, readwrite) BOOL hasSessionId;
  525. /** The level of amount of detailed information that this session captures. */
  526. // |sessionVerbosityArray| contains |FPRMSGSessionVerbosity|
  527. @property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *sessionVerbosityArray;
  528. /** The number of items in @c sessionVerbosityArray without causing the array to be created. */
  529. @property(nonatomic, readonly) NSUInteger sessionVerbosityArray_Count;
  530. @end
  531. #pragma mark - FPRMSGGaugeMetric
  532. typedef GPB_ENUM(FPRMSGGaugeMetric_FieldNumber) {
  533. FPRMSGGaugeMetric_FieldNumber_SessionId = 1,
  534. FPRMSGGaugeMetric_FieldNumber_CpuMetricReadingsArray = 2,
  535. FPRMSGGaugeMetric_FieldNumber_GaugeMetadata = 3,
  536. FPRMSGGaugeMetric_FieldNumber_AndroidMemoryReadingsArray = 4,
  537. FPRMSGGaugeMetric_FieldNumber_IosMemoryReadingsArray = 5,
  538. };
  539. /**
  540. * Metric which represents gauges collected during the span of a session,
  541. * including cpu, memory, battery, etc.
  542. * The gauges will be collected by our own sdk and be purely numeric readings,
  543. * user cannot pass any information here, so cannot contain PIIs.
  544. *
  545. * Next tag: 6
  546. **/
  547. GPB_FINAL @interface FPRMSGGaugeMetric : GPBMessage
  548. /**
  549. * Identifier of the session in which this gauge reading takes place.
  550. * A session_id is specific to a device instance, and is used to tie gauge
  551. * metrics to other peer traces and network requests that occurs during
  552. * the session.
  553. **/
  554. @property(nonatomic, readwrite, copy, null_resettable) NSString *sessionId;
  555. /** Test to see if @c sessionId has been set. */
  556. @property(nonatomic, readwrite) BOOL hasSessionId;
  557. /** Metadata of gauge metrics whose value stay constant throughout the session. */
  558. @property(nonatomic, readwrite, strong, null_resettable) FPRMSGGaugeMetadata *gaugeMetadata;
  559. /** Test to see if @c gaugeMetadata has been set. */
  560. @property(nonatomic, readwrite) BOOL hasGaugeMetadata;
  561. /** List of cpu gauge readings recorded in the session. */
  562. @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<FPRMSGCpuMetricReading*> *cpuMetricReadingsArray;
  563. /** The number of items in @c cpuMetricReadingsArray without causing the array to be created. */
  564. @property(nonatomic, readonly) NSUInteger cpuMetricReadingsArray_Count;
  565. /** List of Android memory readings recorded, absent for iOS apps. */
  566. @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<FPRMSGAndroidMemoryReading*> *androidMemoryReadingsArray;
  567. /** The number of items in @c androidMemoryReadingsArray without causing the array to be created. */
  568. @property(nonatomic, readonly) NSUInteger androidMemoryReadingsArray_Count;
  569. /** List of iOS memory readings recorded, absent for Android apps. */
  570. @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<FPRMSGIosMemoryReading*> *iosMemoryReadingsArray;
  571. /** The number of items in @c iosMemoryReadingsArray without causing the array to be created. */
  572. @property(nonatomic, readonly) NSUInteger iosMemoryReadingsArray_Count;
  573. @end
  574. #pragma mark - FPRMSGCpuMetricReading
  575. typedef GPB_ENUM(FPRMSGCpuMetricReading_FieldNumber) {
  576. FPRMSGCpuMetricReading_FieldNumber_ClientTimeUs = 1,
  577. FPRMSGCpuMetricReading_FieldNumber_UserTimeUs = 2,
  578. FPRMSGCpuMetricReading_FieldNumber_SystemTimeUs = 3,
  579. };
  580. /**
  581. * One reading of cpu gauge metric.
  582. *
  583. * Next tag: 4
  584. **/
  585. GPB_FINAL @interface FPRMSGCpuMetricReading : GPBMessage
  586. /**
  587. * The timestamp in microseconds since epoch when this snapshot took place.
  588. * This time is recorded using the device clock.
  589. **/
  590. @property(nonatomic, readwrite) int64_t clientTimeUs;
  591. @property(nonatomic, readwrite) BOOL hasClientTimeUs;
  592. /** The total user cpu time since process started in microseconds. */
  593. @property(nonatomic, readwrite) int64_t userTimeUs;
  594. @property(nonatomic, readwrite) BOOL hasUserTimeUs;
  595. /** The total system cpu time since process started in microseconds. */
  596. @property(nonatomic, readwrite) int64_t systemTimeUs;
  597. @property(nonatomic, readwrite) BOOL hasSystemTimeUs;
  598. @end
  599. #pragma mark - FPRMSGIosMemoryReading
  600. typedef GPB_ENUM(FPRMSGIosMemoryReading_FieldNumber) {
  601. FPRMSGIosMemoryReading_FieldNumber_ClientTimeUs = 1,
  602. FPRMSGIosMemoryReading_FieldNumber_UsedAppHeapMemoryKb = 2,
  603. FPRMSGIosMemoryReading_FieldNumber_FreeAppHeapMemoryKb = 3,
  604. };
  605. /**
  606. * One reading of iOS memory gauge metric.
  607. *
  608. * Next tag: 4
  609. **/
  610. GPB_FINAL @interface FPRMSGIosMemoryReading : GPBMessage
  611. /**
  612. * The timestamp in microseconds since epoch when this snapshot took place.
  613. * This time is recorded using the device clock.
  614. **/
  615. @property(nonatomic, readwrite) int64_t clientTimeUs;
  616. @property(nonatomic, readwrite) BOOL hasClientTimeUs;
  617. /** The amount of heap memory that the app is using, in kilobytes. */
  618. @property(nonatomic, readwrite) int32_t usedAppHeapMemoryKb;
  619. @property(nonatomic, readwrite) BOOL hasUsedAppHeapMemoryKb;
  620. /** The amount of heap memory that is free for the app to use, in kilobytes. */
  621. @property(nonatomic, readwrite) int32_t freeAppHeapMemoryKb;
  622. @property(nonatomic, readwrite) BOOL hasFreeAppHeapMemoryKb;
  623. @end
  624. #pragma mark - FPRMSGAndroidMemoryReading
  625. typedef GPB_ENUM(FPRMSGAndroidMemoryReading_FieldNumber) {
  626. FPRMSGAndroidMemoryReading_FieldNumber_ClientTimeUs = 1,
  627. FPRMSGAndroidMemoryReading_FieldNumber_UsedAppJavaHeapMemoryKb = 2,
  628. };
  629. /**
  630. * One reading of Android memory gauge metric.
  631. * Note that this is cheap-to-capture memory reading, which is different from
  632. * application's summary of memory usage (expensive to capture). Summary of
  633. * memory usage will be captured at a much lower frequency in a different proto.
  634. *
  635. * Next tag: 3
  636. **/
  637. GPB_FINAL @interface FPRMSGAndroidMemoryReading : GPBMessage
  638. /**
  639. * The timestamp in microseconds since epoch when this snapshot took place.
  640. * This time is recorded using the device clock.
  641. **/
  642. @property(nonatomic, readwrite) int64_t clientTimeUs;
  643. @property(nonatomic, readwrite) BOOL hasClientTimeUs;
  644. /** The amount of java heap memory that the app is using, in kilobytes. */
  645. @property(nonatomic, readwrite) int32_t usedAppJavaHeapMemoryKb;
  646. @property(nonatomic, readwrite) BOOL hasUsedAppJavaHeapMemoryKb;
  647. @end
  648. #pragma mark - FPRMSGGaugeMetadata
  649. typedef GPB_ENUM(FPRMSGGaugeMetadata_FieldNumber) {
  650. FPRMSGGaugeMetadata_FieldNumber_ProcessName = 1,
  651. FPRMSGGaugeMetadata_FieldNumber_CpuClockRateKhz = 2,
  652. FPRMSGGaugeMetadata_FieldNumber_DeviceRamSizeKb = 3,
  653. FPRMSGGaugeMetadata_FieldNumber_MaxAppJavaHeapMemoryKb = 4,
  654. FPRMSGGaugeMetadata_FieldNumber_MaxEncouragedAppJavaHeapMemoryKb = 5,
  655. FPRMSGGaugeMetadata_FieldNumber_CpuProcessorCount = 6,
  656. };
  657. /**
  658. * Metadata about gauges of a session.
  659. * These are the gauge values that stay constant throughout the entire session.
  660. * Examples include maxAppJavaHeapMemory (max memory allowed for the app) and
  661. * cpuFrequency (frequency of cpu of the device that the app is running on).
  662. * As long as one GaugeMetadata is sent for a session, these metadata will be
  663. * available for all elements of the session. If multiple GaugeMetadata are sent
  664. * for the same session, they are expected to be identical.
  665. *
  666. * Next tag: 7
  667. **/
  668. GPB_FINAL @interface FPRMSGGaugeMetadata : GPBMessage
  669. /**
  670. * The process in which Firebase instance is initialized and collecting data.
  671. * Fireperf sdk collects information in the context of a process (instead of
  672. * the whole app). The process name helps developer identifies which process
  673. * are the gauge data coming from.
  674. **/
  675. @property(nonatomic, readwrite, copy, null_resettable) NSString *processName;
  676. /** Test to see if @c processName has been set. */
  677. @property(nonatomic, readwrite) BOOL hasProcessName;
  678. /** Clock rate of the cpu of the device, in kHz. */
  679. @property(nonatomic, readwrite) int32_t cpuClockRateKhz;
  680. @property(nonatomic, readwrite) BOOL hasCpuClockRateKhz;
  681. /** The number of cpu cores that the device has. */
  682. @property(nonatomic, readwrite) int32_t cpuProcessorCount;
  683. @property(nonatomic, readwrite) BOOL hasCpuProcessorCount;
  684. /** Size of RAM of the device, in kilobytes. */
  685. @property(nonatomic, readwrite) int32_t deviceRamSizeKb;
  686. @property(nonatomic, readwrite) BOOL hasDeviceRamSizeKb;
  687. /**
  688. * Maximum amount of memory the app can use before an OutOfMemoryException
  689. * is triggered, in kilobytes.
  690. * Only present for Android apps.
  691. **/
  692. @property(nonatomic, readwrite) int32_t maxAppJavaHeapMemoryKb;
  693. @property(nonatomic, readwrite) BOOL hasMaxAppJavaHeapMemoryKb;
  694. /**
  695. * The maximum amount of memory the app is encouraged to use to be properly
  696. * respectful of the limits of the client device.
  697. * Only present for Android apps.
  698. **/
  699. @property(nonatomic, readwrite) int32_t maxEncouragedAppJavaHeapMemoryKb;
  700. @property(nonatomic, readwrite) BOOL hasMaxEncouragedAppJavaHeapMemoryKb;
  701. @end
  702. #pragma mark - FPRMSGApplicationInfo
  703. typedef GPB_ENUM(FPRMSGApplicationInfo_FieldNumber) {
  704. FPRMSGApplicationInfo_FieldNumber_GoogleAppId = 1,
  705. FPRMSGApplicationInfo_FieldNumber_AppInstanceId = 2,
  706. FPRMSGApplicationInfo_FieldNumber_AndroidAppInfo = 3,
  707. FPRMSGApplicationInfo_FieldNumber_IosAppInfo = 4,
  708. FPRMSGApplicationInfo_FieldNumber_ApplicationProcessState = 5,
  709. FPRMSGApplicationInfo_FieldNumber_CustomAttributes = 6,
  710. FPRMSGApplicationInfo_FieldNumber_WebAppInfo = 7,
  711. };
  712. /**
  713. * Additional metadata about an application and its state (including state of
  714. * the device at runtime) that is not provided by clearcut.
  715. *
  716. * Next tag: 8
  717. **/
  718. GPB_FINAL @interface FPRMSGApplicationInfo : GPBMessage
  719. /**
  720. * Identifier for the application that has been registered with firebase.
  721. * Contains pantheon project number, platform and the hash of the (package
  722. * name or bundle id) fields in hex.
  723. * [Version]:[Project Number]:[Platform]:[Hash(package_name/bundle_id)]
  724. * The app id contains Pantheon project number which is a GAIA ID that
  725. * identifies a particular organization or a customer.
  726. **/
  727. @property(nonatomic, readwrite, copy, null_resettable) NSString *googleAppId;
  728. /** Test to see if @c googleAppId has been set. */
  729. @property(nonatomic, readwrite) BOOL hasGoogleAppId;
  730. /**
  731. * The App Instance Id which is used to compute the distinct users for which
  732. * the metrics are recorded.
  733. **/
  734. @property(nonatomic, readwrite, copy, null_resettable) NSString *appInstanceId;
  735. /** Test to see if @c appInstanceId has been set. */
  736. @property(nonatomic, readwrite) BOOL hasAppInstanceId;
  737. /** Additional information specific to an android app. */
  738. @property(nonatomic, readwrite, strong, null_resettable) FPRMSGAndroidApplicationInfo *androidAppInfo;
  739. /** Test to see if @c androidAppInfo has been set. */
  740. @property(nonatomic, readwrite) BOOL hasAndroidAppInfo;
  741. /** Additional information specific to an ios app. */
  742. @property(nonatomic, readwrite, strong, null_resettable) FPRMSGIosApplicationInfo *iosAppInfo;
  743. /** Test to see if @c iosAppInfo has been set. */
  744. @property(nonatomic, readwrite) BOOL hasIosAppInfo;
  745. /** Additional information specific to a web app. */
  746. @property(nonatomic, readwrite, strong, null_resettable) FPRMSGWebApplicationInfo *webAppInfo;
  747. /** Test to see if @c webAppInfo has been set. */
  748. @property(nonatomic, readwrite) BOOL hasWebAppInfo;
  749. /** State of the application process during metric collection. */
  750. @property(nonatomic, readwrite) FPRMSGApplicationProcessState applicationProcessState;
  751. @property(nonatomic, readwrite) BOOL hasApplicationProcessState;
  752. /** A map of global-level custom attribute names to values. */
  753. @property(nonatomic, readwrite, strong, null_resettable) NSMutableDictionary<NSString*, NSString*> *customAttributes;
  754. /** The number of items in @c customAttributes without causing the array to be created. */
  755. @property(nonatomic, readonly) NSUInteger customAttributes_Count;
  756. @end
  757. #pragma mark - FPRMSGWebApplicationInfo
  758. typedef GPB_ENUM(FPRMSGWebApplicationInfo_FieldNumber) {
  759. FPRMSGWebApplicationInfo_FieldNumber_SdkVersion = 1,
  760. FPRMSGWebApplicationInfo_FieldNumber_PageURL = 2,
  761. FPRMSGWebApplicationInfo_FieldNumber_ServiceWorkerStatus = 3,
  762. FPRMSGWebApplicationInfo_FieldNumber_VisibilityState = 4,
  763. FPRMSGWebApplicationInfo_FieldNumber_EffectiveConnectionType = 5,
  764. };
  765. /**
  766. * Additional metadata about a web application that is not provided by
  767. * clearcut.
  768. *
  769. * Next tag: 6
  770. **/
  771. GPB_FINAL @interface FPRMSGWebApplicationInfo : GPBMessage
  772. /** The sdk version of the firebase perf web sdk. */
  773. @property(nonatomic, readwrite, copy, null_resettable) NSString *sdkVersion;
  774. /** Test to see if @c sdkVersion has been set. */
  775. @property(nonatomic, readwrite) BOOL hasSdkVersion;
  776. /** The url of the web page from which this event occurs. */
  777. @property(nonatomic, readwrite, copy, null_resettable) NSString *pageURL;
  778. /** Test to see if @c pageURL has been set. */
  779. @property(nonatomic, readwrite) BOOL hasPageURL;
  780. /** Service worker status of the web page. */
  781. @property(nonatomic, readwrite) FPRMSGServiceWorkerStatus serviceWorkerStatus;
  782. @property(nonatomic, readwrite) BOOL hasServiceWorkerStatus;
  783. /** Visibility state of the web page. */
  784. @property(nonatomic, readwrite) FPRMSGVisibilityState visibilityState;
  785. @property(nonatomic, readwrite) BOOL hasVisibilityState;
  786. /** Effective connection type of a web page. */
  787. @property(nonatomic, readwrite) FPRMSGEffectiveConnectionType effectiveConnectionType;
  788. @property(nonatomic, readwrite) BOOL hasEffectiveConnectionType;
  789. @end
  790. #pragma mark - FPRMSGAndroidApplicationInfo
  791. typedef GPB_ENUM(FPRMSGAndroidApplicationInfo_FieldNumber) {
  792. FPRMSGAndroidApplicationInfo_FieldNumber_PackageName = 1,
  793. FPRMSGAndroidApplicationInfo_FieldNumber_SdkVersion = 2,
  794. FPRMSGAndroidApplicationInfo_FieldNumber_VersionName = 3,
  795. };
  796. /**
  797. * Additional metadata about an android application that is not provided by
  798. * clearcut.
  799. *
  800. * Next tag: 4
  801. **/
  802. GPB_FINAL @interface FPRMSGAndroidApplicationInfo : GPBMessage
  803. /**
  804. * The package name of the android application.
  805. * e.g com.google.android.apps.maps
  806. **/
  807. @property(nonatomic, readwrite, copy, null_resettable) NSString *packageName;
  808. /** Test to see if @c packageName has been set. */
  809. @property(nonatomic, readwrite) BOOL hasPackageName;
  810. /** The sdk version of the firebase perf android sdk. */
  811. @property(nonatomic, readwrite, copy, null_resettable) NSString *sdkVersion;
  812. /** Test to see if @c sdkVersion has been set. */
  813. @property(nonatomic, readwrite) BOOL hasSdkVersion;
  814. /**
  815. * The versionName of the android application as shown on the play store.
  816. * Clearcut logs the versionCode in the GWSLogEntryProto field:
  817. * PlayExtension.client_info.android_client_info.application_build
  818. * This field is necessary till clearcut supports logging version_name by
  819. * default: b/32584283
  820. **/
  821. @property(nonatomic, readwrite, copy, null_resettable) NSString *versionName;
  822. /** Test to see if @c versionName has been set. */
  823. @property(nonatomic, readwrite) BOOL hasVersionName;
  824. @end
  825. #pragma mark - FPRMSGNetworkConnectionInfo
  826. typedef GPB_ENUM(FPRMSGNetworkConnectionInfo_FieldNumber) {
  827. FPRMSGNetworkConnectionInfo_FieldNumber_NetworkType = 1,
  828. FPRMSGNetworkConnectionInfo_FieldNumber_MobileSubtype = 2,
  829. };
  830. /**
  831. * To describe the network connectivity of the client.
  832. * Copied from android/play/playlog/proto/clientanalytics.proto
  833. * Next tag: 3
  834. **/
  835. GPB_FINAL @interface FPRMSGNetworkConnectionInfo : GPBMessage
  836. /**
  837. * The current network connectivity type when the event was logged in the
  838. * client
  839. **/
  840. @property(nonatomic, readwrite) FPRMSGNetworkConnectionInfo_NetworkType networkType;
  841. @property(nonatomic, readwrite) BOOL hasNetworkType;
  842. /**
  843. * The current mobile connectivity subtype when the event was logged in the
  844. * client
  845. **/
  846. @property(nonatomic, readwrite) FPRMSGNetworkConnectionInfo_MobileSubtype mobileSubtype;
  847. @property(nonatomic, readwrite) BOOL hasMobileSubtype;
  848. @end
  849. #pragma mark - FPRMSGIosApplicationInfo
  850. typedef GPB_ENUM(FPRMSGIosApplicationInfo_FieldNumber) {
  851. FPRMSGIosApplicationInfo_FieldNumber_SdkVersion = 2,
  852. FPRMSGIosApplicationInfo_FieldNumber_BundleShortVersion = 3,
  853. FPRMSGIosApplicationInfo_FieldNumber_MccMnc = 4,
  854. FPRMSGIosApplicationInfo_FieldNumber_NetworkConnectionInfo = 5,
  855. };
  856. /**
  857. * Additional metadata about an ios application that is not provided by
  858. * clearcut.
  859. *
  860. * Next tag: 6
  861. **/
  862. GPB_FINAL @interface FPRMSGIosApplicationInfo : GPBMessage
  863. /** The version of the firebase perf ios sdk. */
  864. @property(nonatomic, readwrite, copy, null_resettable) NSString *sdkVersion;
  865. /** Test to see if @c sdkVersion has been set. */
  866. @property(nonatomic, readwrite) BOOL hasSdkVersion;
  867. /**
  868. * The CFBundleShortVersionString of the ios application bundle as shown on
  869. * the ios app store.
  870. * Clearcut logs the CFBundleVersion in the GWSLogEntryProto field:
  871. * PlayExtension.client_info.ios_client_info.application_build
  872. **/
  873. @property(nonatomic, readwrite, copy, null_resettable) NSString *bundleShortVersion;
  874. /** Test to see if @c bundleShortVersion has been set. */
  875. @property(nonatomic, readwrite) BOOL hasBundleShortVersion;
  876. /**
  877. * The mobile country code / mobile network code (MCC/MNC) of the device's
  878. * SIM/home network (not the device's active network)
  879. * e.g., 310004 for Verizon USA.
  880. * This field should eventually move to PlaylogIosClientInfo. b/35763500
  881. **/
  882. @property(nonatomic, readwrite, copy, null_resettable) NSString *mccMnc;
  883. /** Test to see if @c mccMnc has been set. */
  884. @property(nonatomic, readwrite) BOOL hasMccMnc;
  885. /** The network connectivity of the client when the fetch was done. */
  886. @property(nonatomic, readwrite, strong, null_resettable) FPRMSGNetworkConnectionInfo *networkConnectionInfo;
  887. /** Test to see if @c networkConnectionInfo has been set. */
  888. @property(nonatomic, readwrite) BOOL hasNetworkConnectionInfo;
  889. @end
  890. #pragma mark - FPRMSGTransportInfo
  891. typedef GPB_ENUM(FPRMSGTransportInfo_FieldNumber) {
  892. FPRMSGTransportInfo_FieldNumber_DispatchDestination = 1,
  893. };
  894. /**
  895. * Transport related metadata info.
  896. * Next tag: 2
  897. **/
  898. GPB_FINAL @interface FPRMSGTransportInfo : GPBMessage
  899. /** Destination to which the events are sent. */
  900. @property(nonatomic, readwrite) FPRMSGTransportInfo_DispatchDestination dispatchDestination;
  901. @property(nonatomic, readwrite) BOOL hasDispatchDestination;
  902. @end
  903. NS_ASSUME_NONNULL_END
  904. CF_EXTERN_C_END
  905. #pragma clang diagnostic pop
  906. // @@protoc_insertion_point(global_scope)