google-api-python-client 2.197.0__py3-none-any.whl → 2.198.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. {google_api_python_client-2.197.0.dist-info → google_api_python_client-2.198.0.dist-info}/METADATA +1 -1
  2. {google_api_python_client-2.197.0.dist-info → google_api_python_client-2.198.0.dist-info}/RECORD +235 -231
  3. googleapiclient/discovery_cache/documents/adexchangebuyer2.v2beta1.json +10 -2
  4. googleapiclient/discovery_cache/documents/admin.directory_v1.json +14 -4
  5. googleapiclient/discovery_cache/documents/admin.directoryv1.json +14 -4
  6. googleapiclient/discovery_cache/documents/admob.v1.json +3 -3
  7. googleapiclient/discovery_cache/documents/admob.v1beta.json +3 -3
  8. googleapiclient/discovery_cache/documents/agentregistry.v1alpha.json +58 -46
  9. googleapiclient/discovery_cache/documents/aiplatform.v1.json +1871 -118
  10. googleapiclient/discovery_cache/documents/aiplatform.v1beta1.json +3611 -563
  11. googleapiclient/discovery_cache/documents/alertcenter.v1beta1.json +17 -3
  12. googleapiclient/discovery_cache/documents/alloydb.v1.json +47 -2
  13. googleapiclient/discovery_cache/documents/alloydb.v1alpha.json +52 -2
  14. googleapiclient/discovery_cache/documents/alloydb.v1beta.json +52 -2
  15. googleapiclient/discovery_cache/documents/analyticsadmin.v1alpha.json +39 -1
  16. googleapiclient/discovery_cache/documents/analyticsadmin.v1beta.json +5 -1
  17. googleapiclient/discovery_cache/documents/analyticshub.v1.json +39 -2
  18. googleapiclient/discovery_cache/documents/androidmanagement.v1.json +65 -2
  19. googleapiclient/discovery_cache/documents/androidpublisher.v3.json +59 -8
  20. googleapiclient/discovery_cache/documents/apphub.v1.json +5 -5
  21. googleapiclient/discovery_cache/documents/apphub.v1alpha.json +5 -5
  22. googleapiclient/discovery_cache/documents/artifactregistry.v1.json +292 -3
  23. googleapiclient/discovery_cache/documents/artifactregistry.v1beta1.json +3 -3
  24. googleapiclient/discovery_cache/documents/artifactregistry.v1beta2.json +3 -3
  25. googleapiclient/discovery_cache/documents/assuredworkloads.v1.json +83 -1
  26. googleapiclient/discovery_cache/documents/assuredworkloads.v1beta1.json +147 -1
  27. googleapiclient/discovery_cache/documents/authorizedbuyersmarketplace.v1alpha.json +2 -2
  28. googleapiclient/discovery_cache/documents/authorizedbuyersmarketplace.v1beta.json +2 -2
  29. googleapiclient/discovery_cache/documents/backupdr.v1.json +13 -1
  30. googleapiclient/discovery_cache/documents/bigquery.v2.json +144 -43
  31. googleapiclient/discovery_cache/documents/bigqueryconnection.v1.json +44 -1
  32. googleapiclient/discovery_cache/documents/bigquerydatatransfer.v1.json +32 -1
  33. googleapiclient/discovery_cache/documents/bigtableadmin.v2.json +3 -3
  34. googleapiclient/discovery_cache/documents/blogger.v3.json +2 -2
  35. googleapiclient/discovery_cache/documents/calendar.v3.json +14 -5
  36. googleapiclient/discovery_cache/documents/ces.v1.json +460 -4
  37. googleapiclient/discovery_cache/documents/ces.v1beta.json +470 -4
  38. googleapiclient/discovery_cache/documents/chat.v1.json +30 -10
  39. googleapiclient/discovery_cache/documents/chromemanagement.v1.json +691 -1
  40. googleapiclient/discovery_cache/documents/chromewebstore.v2.json +39 -1
  41. googleapiclient/discovery_cache/documents/classroom.v1.json +3 -3
  42. googleapiclient/discovery_cache/documents/cloudbuild.v1.json +48 -1
  43. googleapiclient/discovery_cache/documents/cloudbuild.v2.json +3 -3
  44. googleapiclient/discovery_cache/documents/cloudchannel.v1.json +2 -2
  45. googleapiclient/discovery_cache/documents/clouddeploy.v1.json +70 -7
  46. googleapiclient/discovery_cache/documents/clouderrorreporting.v1beta1.json +1 -16
  47. googleapiclient/discovery_cache/documents/cloudidentity.v1.json +7 -5
  48. googleapiclient/discovery_cache/documents/cloudidentity.v1beta1.json +7 -5
  49. googleapiclient/discovery_cache/documents/cloudkms.v1.json +100 -41
  50. googleapiclient/discovery_cache/documents/cloudlocationfinder.v1.json +1 -3
  51. googleapiclient/discovery_cache/documents/cloudlocationfinder.v1alpha.json +1 -3
  52. googleapiclient/discovery_cache/documents/cloudnumberregistry.v1alpha.json +142 -142
  53. googleapiclient/discovery_cache/documents/cloudproductregistry.v1.json +546 -0
  54. googleapiclient/discovery_cache/documents/cloudscheduler.v1.json +5 -5
  55. googleapiclient/discovery_cache/documents/cloudscheduler.v1beta1.json +5 -5
  56. googleapiclient/discovery_cache/documents/cloudsearch.v1.json +4 -4
  57. googleapiclient/discovery_cache/documents/cloudsupport.v2.json +57 -2
  58. googleapiclient/discovery_cache/documents/cloudsupport.v2beta.json +21 -16
  59. googleapiclient/discovery_cache/documents/cloudtasks.v2.json +7 -7
  60. googleapiclient/discovery_cache/documents/cloudtasks.v2beta2.json +2 -2
  61. googleapiclient/discovery_cache/documents/cloudtasks.v2beta3.json +7 -7
  62. googleapiclient/discovery_cache/documents/cloudtrace.v1.json +1 -16
  63. googleapiclient/discovery_cache/documents/cloudtrace.v2.json +1 -16
  64. googleapiclient/discovery_cache/documents/cloudtrace.v2beta1.json +1 -16
  65. googleapiclient/discovery_cache/documents/composer.v1beta1.json +5 -1
  66. googleapiclient/discovery_cache/documents/compute.alpha.json +6094 -3341
  67. googleapiclient/discovery_cache/documents/compute.beta.json +1795 -218
  68. googleapiclient/discovery_cache/documents/compute.v1.json +487 -24
  69. googleapiclient/discovery_cache/documents/config.v1.json +62 -10
  70. googleapiclient/discovery_cache/documents/connectors.v1.json +48 -1
  71. googleapiclient/discovery_cache/documents/connectors.v2.json +170 -1
  72. googleapiclient/discovery_cache/documents/contactcenterinsights.v1.json +198 -2577
  73. googleapiclient/discovery_cache/documents/container.v1.json +343 -71
  74. googleapiclient/discovery_cache/documents/container.v1beta1.json +334 -74
  75. googleapiclient/discovery_cache/documents/containeranalysis.v1.json +249 -54
  76. googleapiclient/discovery_cache/documents/containeranalysis.v1alpha1.json +48 -3
  77. googleapiclient/discovery_cache/documents/containeranalysis.v1beta1.json +250 -63
  78. googleapiclient/discovery_cache/documents/databasecenter.v1beta.json +3633 -0
  79. googleapiclient/discovery_cache/documents/dataflow.v1b3.json +7 -7
  80. googleapiclient/discovery_cache/documents/dataform.v1.json +19 -5
  81. googleapiclient/discovery_cache/documents/dataform.v1beta1.json +161 -5
  82. googleapiclient/discovery_cache/documents/datalineage.v1.json +11 -3
  83. googleapiclient/discovery_cache/documents/datamanager.v1.json +765 -6
  84. googleapiclient/discovery_cache/documents/datapipelines.v1.json +2 -2
  85. googleapiclient/discovery_cache/documents/dataplex.v1.json +628 -13
  86. googleapiclient/discovery_cache/documents/dataproc.v1.json +120 -65
  87. googleapiclient/discovery_cache/documents/datastream.v1.json +254 -1
  88. googleapiclient/discovery_cache/documents/developerconnect.v1.json +14 -1
  89. googleapiclient/discovery_cache/documents/developerknowledge.v1.json +2 -2
  90. googleapiclient/discovery_cache/documents/developerknowledge.v1alpha.json +82 -2
  91. googleapiclient/discovery_cache/documents/dfareporting.v5.json +3 -21
  92. googleapiclient/discovery_cache/documents/dialogflow.v2.json +205 -1
  93. googleapiclient/discovery_cache/documents/dialogflow.v2beta1.json +205 -1
  94. googleapiclient/discovery_cache/documents/dialogflow.v3.json +142 -1
  95. googleapiclient/discovery_cache/documents/dialogflow.v3beta1.json +142 -1
  96. googleapiclient/discovery_cache/documents/discoveryengine.v1.json +550 -32
  97. googleapiclient/discovery_cache/documents/discoveryengine.v1alpha.json +821 -34
  98. googleapiclient/discovery_cache/documents/discoveryengine.v1beta.json +434 -30
  99. googleapiclient/discovery_cache/documents/displayvideo.v2.json +164 -67
  100. googleapiclient/discovery_cache/documents/displayvideo.v3.json +199 -92
  101. googleapiclient/discovery_cache/documents/displayvideo.v4.json +203 -94
  102. googleapiclient/discovery_cache/documents/dlp.v2.json +514 -2
  103. googleapiclient/discovery_cache/documents/domains.v1.json +10 -1
  104. googleapiclient/discovery_cache/documents/domains.v1alpha2.json +10 -1
  105. googleapiclient/discovery_cache/documents/domains.v1beta1.json +10 -1
  106. googleapiclient/discovery_cache/documents/eventarc.v1.json +4 -104
  107. googleapiclient/discovery_cache/documents/fcm.v1.json +12 -2
  108. googleapiclient/discovery_cache/documents/firebase.v1beta1.json +5 -1
  109. googleapiclient/discovery_cache/documents/firebaseappdistribution.v1.json +5 -3
  110. googleapiclient/discovery_cache/documents/firebaseappdistribution.v1alpha.json +5 -3
  111. googleapiclient/discovery_cache/documents/firebaseapphosting.v1.json +3 -3
  112. googleapiclient/discovery_cache/documents/firebaseapphosting.v1beta.json +22 -3
  113. googleapiclient/discovery_cache/documents/firebasedataconnect.v1.json +2 -2
  114. googleapiclient/discovery_cache/documents/firebasedataconnect.v1beta.json +2 -2
  115. googleapiclient/discovery_cache/documents/firebaseml.v2beta.json +277 -7
  116. googleapiclient/discovery_cache/documents/firestore.v1.json +10 -6
  117. googleapiclient/discovery_cache/documents/firestore.v1beta1.json +5 -1
  118. googleapiclient/discovery_cache/documents/gkebackup.v1.json +228 -2
  119. googleapiclient/discovery_cache/documents/gkehub.v1.json +2371 -1262
  120. googleapiclient/discovery_cache/documents/gkehub.v1alpha.json +350 -17
  121. googleapiclient/discovery_cache/documents/gkehub.v1beta.json +334 -15
  122. googleapiclient/discovery_cache/documents/gkehub.v2.json +17 -3
  123. googleapiclient/discovery_cache/documents/gkehub.v2alpha.json +17 -3
  124. googleapiclient/discovery_cache/documents/gkehub.v2beta.json +17 -3
  125. googleapiclient/discovery_cache/documents/gmail.v1.json +4 -6
  126. googleapiclient/discovery_cache/documents/health.v4.json +1962 -36
  127. googleapiclient/discovery_cache/documents/healthcare.v1beta1.json +27 -1
  128. googleapiclient/discovery_cache/documents/homegraph.v1.json +69 -3
  129. googleapiclient/discovery_cache/documents/hypercomputecluster.v1.json +12 -12
  130. googleapiclient/discovery_cache/documents/iamcredentials.v1.json +3 -3
  131. googleapiclient/discovery_cache/documents/language.v1.json +37 -1
  132. googleapiclient/discovery_cache/documents/language.v1beta2.json +37 -1
  133. googleapiclient/discovery_cache/documents/language.v2.json +37 -1
  134. googleapiclient/discovery_cache/documents/logging.v2.json +51 -16
  135. googleapiclient/discovery_cache/documents/looker.v1.json +95 -13
  136. googleapiclient/discovery_cache/documents/managedkafka.v1.json +19 -1
  137. googleapiclient/discovery_cache/documents/memcache.v1.json +3 -3
  138. googleapiclient/discovery_cache/documents/memcache.v1beta2.json +3 -3
  139. googleapiclient/discovery_cache/documents/merchantapi.accounts_v1.json +5 -3
  140. googleapiclient/discovery_cache/documents/merchantapi.accounts_v1beta.json +5 -3
  141. googleapiclient/discovery_cache/documents/merchantapi.conversions_v1.json +5 -3
  142. googleapiclient/discovery_cache/documents/merchantapi.conversions_v1beta.json +5 -3
  143. googleapiclient/discovery_cache/documents/merchantapi.datasources_v1.json +7 -5
  144. googleapiclient/discovery_cache/documents/merchantapi.datasources_v1beta.json +7 -5
  145. googleapiclient/discovery_cache/documents/merchantapi.inventories_v1.json +5 -3
  146. googleapiclient/discovery_cache/documents/merchantapi.inventories_v1beta.json +5 -3
  147. googleapiclient/discovery_cache/documents/merchantapi.issueresolution_v1.json +5 -3
  148. googleapiclient/discovery_cache/documents/merchantapi.issueresolution_v1beta.json +5 -3
  149. googleapiclient/discovery_cache/documents/merchantapi.lfp_v1.json +5 -3
  150. googleapiclient/discovery_cache/documents/merchantapi.lfp_v1beta.json +5 -3
  151. googleapiclient/discovery_cache/documents/merchantapi.notifications_v1.json +6 -4
  152. googleapiclient/discovery_cache/documents/merchantapi.notifications_v1beta.json +6 -4
  153. googleapiclient/discovery_cache/documents/merchantapi.ordertracking_v1.json +5 -3
  154. googleapiclient/discovery_cache/documents/merchantapi.ordertracking_v1beta.json +5 -3
  155. googleapiclient/discovery_cache/documents/merchantapi.products_v1.json +443 -7
  156. googleapiclient/discovery_cache/documents/merchantapi.products_v1beta.json +5 -3
  157. googleapiclient/discovery_cache/documents/merchantapi.promotions_v1.json +5 -3
  158. googleapiclient/discovery_cache/documents/merchantapi.promotions_v1beta.json +5 -3
  159. googleapiclient/discovery_cache/documents/merchantapi.quota_v1.json +5 -3
  160. googleapiclient/discovery_cache/documents/merchantapi.quota_v1beta.json +5 -3
  161. googleapiclient/discovery_cache/documents/merchantapi.reports_v1.json +6 -4
  162. googleapiclient/discovery_cache/documents/merchantapi.reports_v1beta.json +6 -4
  163. googleapiclient/discovery_cache/documents/merchantapi.reviews_v1beta.json +5 -3
  164. googleapiclient/discovery_cache/documents/monitoring.v1.json +147 -3
  165. googleapiclient/discovery_cache/documents/mybusinessverifications.v1.json +1 -20
  166. googleapiclient/discovery_cache/documents/netapp.v1.json +238 -1
  167. googleapiclient/discovery_cache/documents/netapp.v1beta1.json +18 -1
  168. googleapiclient/discovery_cache/documents/networkconnectivity.v1alpha1.json +16 -1
  169. googleapiclient/discovery_cache/documents/networkmanagement.v1.json +1356 -18
  170. googleapiclient/discovery_cache/documents/networkmanagement.v1beta1.json +41 -3
  171. googleapiclient/discovery_cache/documents/networksecurity.v1.json +594 -3
  172. googleapiclient/discovery_cache/documents/networksecurity.v1beta1.json +1082 -8
  173. googleapiclient/discovery_cache/documents/networkservices.v1.json +1127 -126
  174. googleapiclient/discovery_cache/documents/networkservices.v1beta1.json +21 -2
  175. googleapiclient/discovery_cache/documents/notebooks.v1.json +3 -3
  176. googleapiclient/discovery_cache/documents/notebooks.v2.json +24 -7
  177. googleapiclient/discovery_cache/documents/observability.v1.json +76 -1
  178. googleapiclient/discovery_cache/documents/ondemandscanning.v1.json +39 -1
  179. googleapiclient/discovery_cache/documents/ondemandscanning.v1beta1.json +39 -1
  180. googleapiclient/discovery_cache/documents/oracledatabase.v1.json +123 -134
  181. googleapiclient/discovery_cache/documents/osconfig.v1.json +236 -1
  182. googleapiclient/discovery_cache/documents/osconfig.v1alpha.json +236 -1
  183. googleapiclient/discovery_cache/documents/osconfig.v1beta.json +236 -1
  184. googleapiclient/discovery_cache/documents/osconfig.v2.json +236 -1
  185. googleapiclient/discovery_cache/documents/osconfig.v2beta.json +236 -1
  186. googleapiclient/discovery_cache/documents/oslogin.v1.json +5 -1
  187. googleapiclient/discovery_cache/documents/oslogin.v1alpha.json +5 -1
  188. googleapiclient/discovery_cache/documents/oslogin.v1beta.json +5 -1
  189. googleapiclient/discovery_cache/documents/pagespeedonline.v5.json +5 -1
  190. googleapiclient/discovery_cache/documents/parametermanager.v1.json +1 -11
  191. googleapiclient/discovery_cache/documents/paymentsresellersubscription.v1.json +7 -4
  192. googleapiclient/discovery_cache/documents/places.v1.json +210 -12
  193. googleapiclient/discovery_cache/documents/policytroubleshooter.v3beta.json +17 -3
  194. googleapiclient/discovery_cache/documents/privateca.v1.json +2 -2
  195. googleapiclient/discovery_cache/documents/pubsub.v1.json +40 -3
  196. googleapiclient/discovery_cache/documents/recaptchaenterprise.v1.json +5 -3
  197. googleapiclient/discovery_cache/documents/redis.v1.json +348 -33
  198. googleapiclient/discovery_cache/documents/redis.v1beta1.json +348 -33
  199. googleapiclient/discovery_cache/documents/run.v1.json +26 -13
  200. googleapiclient/discovery_cache/documents/run.v2.json +54 -13
  201. googleapiclient/discovery_cache/documents/saasservicemgmt.v1.json +68 -29
  202. googleapiclient/discovery_cache/documents/saasservicemgmt.v1beta1.json +934 -87
  203. googleapiclient/discovery_cache/documents/searchads360.v23.json +59984 -0
  204. googleapiclient/discovery_cache/documents/securitycenter.v1.json +1568 -3723
  205. googleapiclient/discovery_cache/documents/securitycenter.v1beta1.json +1358 -3043
  206. googleapiclient/discovery_cache/documents/securitycenter.v1beta2.json +1417 -3068
  207. googleapiclient/discovery_cache/documents/securityposture.v1.json +4 -4
  208. googleapiclient/discovery_cache/documents/servicecontrol.v1.json +5 -1
  209. googleapiclient/discovery_cache/documents/servicecontrol.v2.json +5 -1
  210. googleapiclient/discovery_cache/documents/servicedirectory.v1.json +3 -3
  211. googleapiclient/discovery_cache/documents/servicedirectory.v1beta1.json +3 -3
  212. googleapiclient/discovery_cache/documents/sheets.v4.json +4 -4
  213. googleapiclient/discovery_cache/documents/sqladmin.v1.json +81 -7
  214. googleapiclient/discovery_cache/documents/sqladmin.v1beta4.json +78 -13
  215. googleapiclient/discovery_cache/documents/storage.v1.json +12 -2
  216. googleapiclient/discovery_cache/documents/storagebatchoperations.v1.json +209 -49
  217. googleapiclient/discovery_cache/documents/tagmanager.v2.json +3 -1
  218. googleapiclient/discovery_cache/documents/threatintelligence.v1beta.json +477 -16
  219. googleapiclient/discovery_cache/documents/toolresults.v1beta3.json +11 -3
  220. googleapiclient/discovery_cache/documents/travelimpactmodel.v1.json +408 -3
  221. googleapiclient/discovery_cache/documents/vault.v1.json +35 -13
  222. googleapiclient/discovery_cache/documents/vmmigration.v1.json +12 -3
  223. googleapiclient/discovery_cache/documents/vmmigration.v1alpha1.json +12 -3
  224. googleapiclient/discovery_cache/documents/vmwareengine.v1.json +80 -2
  225. googleapiclient/discovery_cache/documents/webcontentpublisher.v1.json +167 -0
  226. googleapiclient/discovery_cache/documents/webrisk.v1.json +2 -2
  227. googleapiclient/discovery_cache/documents/workloadmanager.v1.json +211 -211
  228. googleapiclient/discovery_cache/documents/workspaceevents.v1.json +21 -1
  229. googleapiclient/discovery_cache/documents/workstations.v1.json +41 -1
  230. googleapiclient/discovery_cache/documents/workstations.v1beta.json +18 -22
  231. googleapiclient/discovery_cache/documents/youtube.v3.json +201 -33
  232. googleapiclient/version.py +1 -1
  233. {google_api_python_client-2.197.0.dist-info → google_api_python_client-2.198.0.dist-info}/WHEEL +0 -0
  234. {google_api_python_client-2.197.0.dist-info → google_api_python_client-2.198.0.dist-info}/licenses/LICENSE +0 -0
  235. {google_api_python_client-2.197.0.dist-info → google_api_python_client-2.198.0.dist-info}/top_level.txt +0 -0
@@ -8,20 +8,47 @@
8
8
  "https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly": {
9
9
  "description": "See your Google Health activity and fitness data"
10
10
  },
11
+ "https://www.googleapis.com/auth/googlehealth.activity_and_fitness.writeonly": {
12
+ "description": "Add activity and fitness data to Google Health, and edit or delete the data it adds."
13
+ },
14
+ "https://www.googleapis.com/auth/googlehealth.ecg.readonly": {
15
+ "description": "See your Google Health ECG data"
16
+ },
11
17
  "https://www.googleapis.com/auth/googlehealth.health_metrics_and_measurements.readonly": {
12
18
  "description": "See your Google Health health metrics and measurement data"
13
19
  },
20
+ "https://www.googleapis.com/auth/googlehealth.health_metrics_and_measurements.writeonly": {
21
+ "description": "Add health metric and measurements data to Google Health, and edit or delete the data it adds."
22
+ },
23
+ "https://www.googleapis.com/auth/googlehealth.irn.readonly": {
24
+ "description": "See your Google Health Irregular Rhythm Notifications data"
25
+ },
14
26
  "https://www.googleapis.com/auth/googlehealth.location.readonly": {
15
27
  "description": "See exercise GPS location data in Google Health"
16
28
  },
29
+ "https://www.googleapis.com/auth/googlehealth.location.writeonly": {
30
+ "description": "Add exercise GPS location data to Google Health, and edit or delete the data it adds."
31
+ },
32
+ "https://www.googleapis.com/auth/googlehealth.nutrition.writeonly": {
33
+ "description": "Add nutrition data to Google Health, and edit or delete the data it adds."
34
+ },
17
35
  "https://www.googleapis.com/auth/googlehealth.profile.readonly": {
18
36
  "description": "See your Google Health profile data"
19
37
  },
38
+ "https://www.googleapis.com/auth/googlehealth.profile.writeonly": {
39
+ "description": "Add profile data to Google Health, and edit or delete the data it adds."
40
+ },
20
41
  "https://www.googleapis.com/auth/googlehealth.settings.readonly": {
21
42
  "description": "See your Google Health settings"
22
43
  },
44
+ "https://www.googleapis.com/auth/googlehealth.settings.writeonly": {
45
+ "description": "Add settings data to Google Health, and edit or delete the data it adds."
46
+ },
23
47
  "https://www.googleapis.com/auth/googlehealth.sleep.readonly": {
24
48
  "description": "See your Google Health sleep data"
49
+ },
50
+ "https://www.googleapis.com/auth/googlehealth.sleep.writeonly": {
51
+ "description": "Add sleep data to Google Health, and edit or delete the data it adds."
25
52
  }
26
53
  }
27
54
  }
@@ -260,6 +287,145 @@
260
287
  "https://www.googleapis.com/auth/cloud-platform"
261
288
  ]
262
289
  }
290
+ },
291
+ "resources": {
292
+ "subscriptions": {
293
+ "methods": {
294
+ "create": {
295
+ "description": "Creates a subscription for a specific user to a specific subscriber. This method requires the subscriber to have a `SubscriptionCreatePolicy` set to `MANUAL` for the given data types.",
296
+ "flatPath": "v4/projects/{projectsId}/subscribers/{subscribersId}/subscriptions",
297
+ "httpMethod": "POST",
298
+ "id": "health.projects.subscribers.subscriptions.create",
299
+ "parameterOrder": [
300
+ "parent"
301
+ ],
302
+ "parameters": {
303
+ "parent": {
304
+ "description": "Required. The parent subscriber. Format: projects/{project}/subscribers/{subscriber} The {subscriber} ID is user-settable (4-36 characters, matching /[a-z]([a-z0-9-]{2,34}[a-z0-9])/) if provided during creation, or system-generated otherwise.",
305
+ "location": "path",
306
+ "pattern": "^projects/[^/]+/subscribers/[^/]+$",
307
+ "required": true,
308
+ "type": "string"
309
+ },
310
+ "subscriptionId": {
311
+ "description": "Optional. The {subscription_id} is user-settable (4-36 chars, matching /[a-z]([a-z0-9-]{2,34}[a-z0-9])/) or system-generated otherwise. If provided, the ID must be unique within the parent subscriber.",
312
+ "location": "query",
313
+ "type": "string"
314
+ }
315
+ },
316
+ "path": "v4/{+parent}/subscriptions",
317
+ "request": {
318
+ "$ref": "CreateSubscriptionPayload"
319
+ },
320
+ "response": {
321
+ "$ref": "Subscription"
322
+ },
323
+ "scopes": [
324
+ "https://www.googleapis.com/auth/cloud-platform"
325
+ ]
326
+ },
327
+ "delete": {
328
+ "description": "Deletes a specific user subscription, stopping notifications for this user to this subscriber.",
329
+ "flatPath": "v4/projects/{projectsId}/subscribers/{subscribersId}/subscriptions/{subscriptionsId}",
330
+ "httpMethod": "DELETE",
331
+ "id": "health.projects.subscribers.subscriptions.delete",
332
+ "parameterOrder": [
333
+ "name"
334
+ ],
335
+ "parameters": {
336
+ "name": {
337
+ "description": "Required. The resource name of the subscription to delete. Format: `projects/{project}/subscribers/{subscriber}/subscriptions/{subscription}` Example: `projects/my-project/subscribers/my-subscriber-123/subscriptions/my-subscription-456` The {subscriber} ID is user-settable (4-36 characters, matching /[a-z]([a-z0-9-]{2,34}[a-z0-9])/) if provided during creation, or system-generated otherwise. The {subscription} ID is user-settable (4-36 characters, matching /[a-z]([a-z0-9-]{2,34}[a-z0-9])/) or system-generated if not provided during creation.",
338
+ "location": "path",
339
+ "pattern": "^projects/[^/]+/subscribers/[^/]+/subscriptions/[^/]+$",
340
+ "required": true,
341
+ "type": "string"
342
+ }
343
+ },
344
+ "path": "v4/{+name}",
345
+ "response": {
346
+ "$ref": "Empty"
347
+ },
348
+ "scopes": [
349
+ "https://www.googleapis.com/auth/cloud-platform"
350
+ ]
351
+ },
352
+ "list": {
353
+ "description": "Lists all active subscriptions for a given subscriber. This can be filtered, for example, by user or data type.",
354
+ "flatPath": "v4/projects/{projectsId}/subscribers/{subscribersId}/subscriptions",
355
+ "httpMethod": "GET",
356
+ "id": "health.projects.subscribers.subscriptions.list",
357
+ "parameterOrder": [
358
+ "parent"
359
+ ],
360
+ "parameters": {
361
+ "filter": {
362
+ "description": "Optional. A filter to apply to the list of subscriptions. The filter syntax is described in https://google.aip.dev/160. The filter can be applied to the following fields: - `user` - `data_type` The `user` identifier (e.g., `user1` in `users/user1`) refers to the public `health_user_id` Example: user = \"users/user1\" Example: user = \"users/user1\" OR user = \"users/user2\" Example: user = \"users/user1\" AND (data_type = \"sleep\" OR data_type = \"weight\")",
363
+ "location": "query",
364
+ "type": "string"
365
+ },
366
+ "pageSize": {
367
+ "description": "Optional. The maximum number of subscriptions to return. The service may return fewer than this value. If unspecified, at most 50 subscriptions will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.",
368
+ "format": "int32",
369
+ "location": "query",
370
+ "type": "integer"
371
+ },
372
+ "pageToken": {
373
+ "description": "Optional. A page token, received from a previous `ListSubscriptions` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListSubscriptions` must match the call that provided the page token.",
374
+ "location": "query",
375
+ "type": "string"
376
+ },
377
+ "parent": {
378
+ "description": "Required. The parent subscriber. Format: projects/{project}/subscribers/{subscriber} The {subscriber} ID is user-settable (4-36 characters, matching /[a-z]([a-z0-9-]{2,34}[a-z0-9])/) if provided during creation, or system-generated otherwise.",
379
+ "location": "path",
380
+ "pattern": "^projects/[^/]+/subscribers/[^/]+$",
381
+ "required": true,
382
+ "type": "string"
383
+ }
384
+ },
385
+ "path": "v4/{+parent}/subscriptions",
386
+ "response": {
387
+ "$ref": "ListSubscriptionsResponse"
388
+ },
389
+ "scopes": [
390
+ "https://www.googleapis.com/auth/cloud-platform"
391
+ ]
392
+ },
393
+ "patch": {
394
+ "description": "Updates the data types for an existing user subscription.",
395
+ "flatPath": "v4/projects/{projectsId}/subscribers/{subscribersId}/subscriptions/{subscriptionsId}",
396
+ "httpMethod": "PATCH",
397
+ "id": "health.projects.subscribers.subscriptions.patch",
398
+ "parameterOrder": [
399
+ "name"
400
+ ],
401
+ "parameters": {
402
+ "name": {
403
+ "description": "Identifier. The resource name of the Subscription. Format: `projects/{project}/subscribers/{subscriber}/subscriptions/{subscription}` Example: `projects/my-project/subscribers/my-subscriber-123/subscriptions/my-subscription-456` The {project} ID is mandatory (6-30 characters, matching /a-z{6,30}/) The {subscriber} ID is user-settable (4-36 characters, matching /[a-z]([a-z0-9-]{2,34}[a-z0-9])/) if provided during creation, or system-generated otherwise. The {subscription} ID is user-settable (4-36 chars, matching /[a-z]([a-z0-9-]{2,34}[a-z0-9])/) or system-generated otherwise.",
404
+ "location": "path",
405
+ "pattern": "^projects/[^/]+/subscribers/[^/]+/subscriptions/[^/]+$",
406
+ "required": true,
407
+ "type": "string"
408
+ },
409
+ "updateMask": {
410
+ "description": "Optional. The list of fields to update.",
411
+ "format": "google-fieldmask",
412
+ "location": "query",
413
+ "type": "string"
414
+ }
415
+ },
416
+ "path": "v4/{+name}",
417
+ "request": {
418
+ "$ref": "Subscription"
419
+ },
420
+ "response": {
421
+ "$ref": "Subscription"
422
+ },
423
+ "scopes": [
424
+ "https://www.googleapis.com/auth/cloud-platform"
425
+ ]
426
+ }
427
+ }
428
+ }
263
429
  }
264
430
  }
265
431
  }
@@ -289,12 +455,39 @@
289
455
  },
290
456
  "scopes": [
291
457
  "https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly",
458
+ "https://www.googleapis.com/auth/googlehealth.ecg.readonly",
292
459
  "https://www.googleapis.com/auth/googlehealth.health_metrics_and_measurements.readonly",
460
+ "https://www.googleapis.com/auth/googlehealth.irn.readonly",
293
461
  "https://www.googleapis.com/auth/googlehealth.profile.readonly",
294
462
  "https://www.googleapis.com/auth/googlehealth.settings.readonly",
295
463
  "https://www.googleapis.com/auth/googlehealth.sleep.readonly"
296
464
  ]
297
465
  },
466
+ "getIrnProfile": {
467
+ "description": "Returns user's IRN Profile details.",
468
+ "flatPath": "v4/users/{usersId}/irnProfile",
469
+ "httpMethod": "GET",
470
+ "id": "health.users.getIrnProfile",
471
+ "parameterOrder": [
472
+ "name"
473
+ ],
474
+ "parameters": {
475
+ "name": {
476
+ "description": "Required. The resource name of the IRN Profile. Format: `users/{user}/irnProfile` Example: `users/1234567890/irnProfile` or `users/me/irnProfile` The {user} ID is a system-generated Google Health API user ID, a string of 1-63 characters consisting of lowercase and uppercase letters, numbers, and hyphens. The literal `me` can also be used to refer to the authenticated user.",
477
+ "location": "path",
478
+ "pattern": "^users/[^/]+/irnProfile$",
479
+ "required": true,
480
+ "type": "string"
481
+ }
482
+ },
483
+ "path": "v4/{+name}",
484
+ "response": {
485
+ "$ref": "IrnProfile"
486
+ },
487
+ "scopes": [
488
+ "https://www.googleapis.com/auth/googlehealth.irn.readonly"
489
+ ]
490
+ },
298
491
  "getProfile": {
299
492
  "description": "Returns user Profile details.",
300
493
  "flatPath": "v4/users/{usersId}/profile",
@@ -374,7 +567,10 @@
374
567
  },
375
568
  "response": {
376
569
  "$ref": "Profile"
377
- }
570
+ },
571
+ "scopes": [
572
+ "https://www.googleapis.com/auth/googlehealth.profile.writeonly"
573
+ ]
378
574
  },
379
575
  "updateSettings": {
380
576
  "description": "Updates the user's settings details.",
@@ -405,7 +601,10 @@
405
601
  },
406
602
  "response": {
407
603
  "$ref": "Settings"
408
- }
604
+ },
605
+ "scopes": [
606
+ "https://www.googleapis.com/auth/googlehealth.settings.writeonly"
607
+ ]
409
608
  }
410
609
  },
411
610
  "resources": {
@@ -436,7 +635,14 @@
436
635
  },
437
636
  "response": {
438
637
  "$ref": "Operation"
439
- }
638
+ },
639
+ "scopes": [
640
+ "https://www.googleapis.com/auth/googlehealth.activity_and_fitness.writeonly",
641
+ "https://www.googleapis.com/auth/googlehealth.health_metrics_and_measurements.writeonly",
642
+ "https://www.googleapis.com/auth/googlehealth.location.writeonly",
643
+ "https://www.googleapis.com/auth/googlehealth.nutrition.writeonly",
644
+ "https://www.googleapis.com/auth/googlehealth.sleep.writeonly"
645
+ ]
440
646
  },
441
647
  "create": {
442
648
  "description": "Creates a single identifiable data point.",
@@ -461,7 +667,14 @@
461
667
  },
462
668
  "response": {
463
669
  "$ref": "Operation"
464
- }
670
+ },
671
+ "scopes": [
672
+ "https://www.googleapis.com/auth/googlehealth.activity_and_fitness.writeonly",
673
+ "https://www.googleapis.com/auth/googlehealth.health_metrics_and_measurements.writeonly",
674
+ "https://www.googleapis.com/auth/googlehealth.location.writeonly",
675
+ "https://www.googleapis.com/auth/googlehealth.nutrition.writeonly",
676
+ "https://www.googleapis.com/auth/googlehealth.sleep.writeonly"
677
+ ]
465
678
  },
466
679
  "dailyRollUp": {
467
680
  "description": "Roll up data points over civil time intervals for supported data types.",
@@ -565,7 +778,7 @@
565
778
  ],
566
779
  "parameters": {
567
780
  "filter": {
568
- "description": "Optional. Filter expression following https://google.aip.dev/160. A time range (either physical or civil) can be specified. The supported filter fields are: - Interval start time: - Pattern: `{interval_data_type}.interval.start_time` - Supported comparison operators: `>=`, `<` - Timestamp literal expected in RFC-3339 format - Supported logical operators: `AND` - Example: - `steps.interval.start_time >= \"2023-11-24T00:00:00Z\" AND steps.interval.start_time < \"2023-11-25T00:00:00Z\"` - `distance.interval.start_time >= \"2024-08-14T12:34:56Z\"` - Interval civil start time: - Pattern: `{interval_data_type}.interval.civil_start_time` - Supported comparison operators: `>=`, `<` - Date with optional time literal expected in ISO 8601 `YYYY-MM-DD[THH:mm:ss]` format - Supported logical operators: `AND` - Example: - `steps.interval.civil_start_time >= \"2023-11-24\" AND steps.interval.civil_start_time < \"2023-11-25\"` - `distance.interval.civil_start_time >= \"2024-08-14T12:34:56\"` - Sample observation physical time: - Pattern: `{sample_data_type}.sample_time.physical_time` - Supported comparison operators: `>=`, `<` - Timestamp literal expected in RFC-3339 format - Supported logical operators: `AND` - Example: - `weight.sample_time.physical_time >= \"2023-11-24T00:00:00Z\" AND weight.sample_time.physical_time < \"2023-11-25T00:00:00Z\"` - `weight.sample_time.physical_time >= \"2024-08-14T12:34:56Z\"` - Sample observation civil time: - Pattern: `{sample_data_type}.sample_time.civil_time` - Supported comparison operators: `>=`, `<` - Date with optional time literal expected in ISO 8601 `YYYY-MM-DD[THH:mm:ss]` format - Supported logical operators: `AND` - Example: - `weight.sample_time.civil_time >= \"2023-11-24\" AND weight.sample_time.civil_time < \"2023-11-25\"` - `weight.sample_time.civil_time >= \"2024-08-14T12:34:56\"` - Daily summary date: - Pattern: `{daily_summary_data_type}.date` - Supported comparison operators: `>=`, `<` - Date literal expected in ISO 8601 `YYYY-MM-DD` format - Supported logical operators: `AND` - Example: - `daily_heart_rate_variability.date < \"2024-08-15\"` - Session start time (**ECG specific**): - Pattern: `electrocardiogram.interval.start_time` - Supported comparison operators: `>=` - Timestamp literal expected in RFC-3339 format - Example: - `electrocardiogram.interval.start_time >= \"2024-08-14T12:34:56Z\"` - Note: Only filtering by start time is supported for ECG. Filtering by end time (e.g., `electrocardiogram.interval.end_time`) is not supported. - Session civil start time (**Excluding Sleep**): - Pattern: `{session_data_type}.interval.civil_start_time` - Supported comparison operators: `>=`, `<` - Date with optional time literal expected in ISO 8601 `YYYY-MM-DD[THH:mm:ss]` format - Supported logical operators: `AND` - Example: - `exercise.interval.civil_start_time >= \"2023-11-24\" AND exercise.interval.civil_start_time < \"2023-11-25\"` - `exercise.interval.civil_start_time >= \"2024-08-14T12:34:56\"` - Session end time (**Sleep specific**): - Pattern: `sleep.interval.end_time` - Supported comparison operators: `>=`, `<` - Timestamp literal expected in RFC-3339 format - Supported logical operators: `AND`, `OR` - Example: - `sleep.interval.end_time >= \"2023-11-24T00:00:00Z\" AND sleep.interval.end_time < \"2023-11-25T00:00:00Z\"` - Session civil end time (**Sleep specific**): - Pattern: `sleep.interval.civil_end_time` - Supported comparison operators: `>=`, `<` - Date with optional time literal expected in ISO 8601 `YYYY-MM-DD[THH:mm:ss]` format - Supported logical operators: `AND`, `OR` - Example: - `sleep.interval.civil_end_time >= \"2023-11-24\" AND sleep.interval.civil_end_time < \"2023-11-25\"` Data points in the response will be ordered by the interval start time in descending order.",
781
+ "description": "Optional. Filter expression following https://google.aip.dev/160. A time range (either physical or civil) can be specified. The supported filter fields are: - Interval start time: - Pattern: `{interval_data_type}.interval.start_time` - Supported comparison operators: `>=`, `<` - Timestamp literal expected in RFC-3339 format - Supported logical operators: `AND` - Example: - `steps.interval.start_time >= \"2023-11-24T00:00:00Z\" AND steps.interval.start_time < \"2023-11-25T00:00:00Z\"` - `distance.interval.start_time >= \"2024-08-14T12:34:56Z\"` - Interval civil start time: - Pattern: `{interval_data_type}.interval.civil_start_time` - Supported comparison operators: `>=`, `<` - Date with optional time literal expected in ISO 8601 `YYYY-MM-DD[THH:mm:ss]` format - Supported logical operators: `AND` - Example: - `steps.interval.civil_start_time >= \"2023-11-24\" AND steps.interval.civil_start_time < \"2023-11-25\"` - `distance.interval.civil_start_time >= \"2024-08-14T12:34:56\"` - Sample observation physical time: - Pattern: `{sample_data_type}.sample_time.physical_time` - Supported comparison operators: `>=`, `<` - Timestamp literal expected in RFC-3339 format - Supported logical operators: `AND` - Example: - `weight.sample_time.physical_time >= \"2023-11-24T00:00:00Z\" AND weight.sample_time.physical_time < \"2023-11-25T00:00:00Z\"` - `weight.sample_time.physical_time >= \"2024-08-14T12:34:56Z\"` - Sample observation civil time: - Pattern: `{sample_data_type}.sample_time.civil_time` - Supported comparison operators: `>=`, `<` - Date with optional time literal expected in ISO 8601 `YYYY-MM-DD[THH:mm:ss]` format - Supported logical operators: `AND` - Example: - `weight.sample_time.civil_time >= \"2023-11-24\" AND weight.sample_time.civil_time < \"2023-11-25\"` - `weight.sample_time.civil_time >= \"2024-08-14T12:34:56\"` - Daily summary date: - Pattern: `{daily_summary_data_type}.date` - Supported comparison operators: `>=`, `<` - Date literal expected in ISO 8601 `YYYY-MM-DD` format - Supported logical operators: `AND` - Example: - `daily_heart_rate_variability.date < \"2024-08-15\"` - Session civil start time (**Excluding Sleep and ECG**): - Pattern: `{session_data_type}.interval.civil_start_time` - Supported comparison operators: `>=`, `<` - Date with optional time literal expected in ISO 8601 `YYYY-MM-DD[THH:mm:ss]` format - Supported logical operators: `AND` - Example: - `exercise.interval.civil_start_time >= \"2023-11-24\" AND exercise.interval.civil_start_time < \"2023-11-25\"` - `exercise.interval.civil_start_time >= \"2024-08-14T12:34:56\"` - Session start time (**ECG specific**): - Pattern: `electrocardiogram.interval.start_time` - Supported comparison operators: `>=` - Timestamp literal expected in RFC-3339 format - Example: - `electrocardiogram.interval.start_time >= \"2024-08-14T12:34:56Z\"` - Note: Only filtering by start time is supported for ECG. Filtering by end time (e.g., `electrocardiogram.interval.end_time`) is not supported. - Session end time (**Sleep specific**): - Pattern: `sleep.interval.end_time` - Supported comparison operators: `>=`, `<` - Timestamp literal expected in RFC-3339 format - Supported logical operators: `AND`, `OR` - Example: - `sleep.interval.end_time >= \"2023-11-24T00:00:00Z\" AND sleep.interval.end_time < \"2023-11-25T00:00:00Z\"` - Session civil end time (**Sleep specific**): - Pattern: `sleep.interval.civil_end_time` - Supported comparison operators: `>=`, `<` - Date with optional time literal expected in ISO 8601 `YYYY-MM-DD[THH:mm:ss]` format - Supported logical operators: `AND`, `OR` - Example: - `sleep.interval.civil_end_time >= \"2023-11-24\" AND sleep.interval.civil_end_time < \"2023-11-25\"` Data points in the response will be ordered by the interval start time in descending order.",
569
782
  "location": "query",
570
783
  "type": "string"
571
784
  },
@@ -609,7 +822,7 @@
609
822
  ],
610
823
  "parameters": {
611
824
  "name": {
612
- "description": "Identifier. Data point name, only supported for the subset of identifiable data types. For the majority of the data types, individual data points do not need to be identified and this field would be empty. Format: `users/{user}/dataTypes/{data_type}/dataPoints/{data_point}` Example: `users/abcd1234/dataTypes/sleep/dataPoints/a1b2c3d4-e5f6-7890-1234-567890abcdef` The `{user}` ID is a system-generated identifier, as described in Identity.health_user_id. The `{data_type}` ID corresponds to the kebab-case version of the field names in the DataPoint data union field, e.g. `total-calories` for the `total_calories` field. The `{data_point}` ID can be client-provided or system-generated. If client-provided, it must be a string of 4-63 characters, containing only lowercase letters, numbers, and hyphens.",
825
+ "description": "Identifier. Data point name, only supported for the subset of identifiable data types. For the majority of the data types, individual data points do not need to be identified and this field would be empty. Format: `users/{user}/dataTypes/{data_type}/dataPoints/{data_point}` Example: `users/abcd1234/dataTypes/sleep/dataPoints/a1b2c3d4-e5f6-7890-1234-567890abcdef` The `{user}` ID is a system-generated identifier, as described in Identity.health_user_id. The `{data_type}` ID corresponds to the kebab-case version of the field names in the DataPoint data union field, e.g. `heart-rate` for the `heart_rate` field. The `{data_point}` ID can be client-provided or system-generated. If client-provided, it must be a string of 4-63 characters, containing only lowercase letters, numbers, and hyphens.",
613
826
  "location": "path",
614
827
  "pattern": "^users/[^/]+/dataTypes/[^/]+/dataPoints/[^/]+$",
615
828
  "required": true,
@@ -622,7 +835,14 @@
622
835
  },
623
836
  "response": {
624
837
  "$ref": "Operation"
625
- }
838
+ },
839
+ "scopes": [
840
+ "https://www.googleapis.com/auth/googlehealth.activity_and_fitness.writeonly",
841
+ "https://www.googleapis.com/auth/googlehealth.health_metrics_and_measurements.writeonly",
842
+ "https://www.googleapis.com/auth/googlehealth.location.writeonly",
843
+ "https://www.googleapis.com/auth/googlehealth.nutrition.writeonly",
844
+ "https://www.googleapis.com/auth/googlehealth.sleep.writeonly"
845
+ ]
626
846
  },
627
847
  "reconcile": {
628
848
  "description": "Reconcile data points from multiple data sources into a single data stream.",
@@ -707,13 +927,107 @@
707
927
  }
708
928
  }
709
929
  }
930
+ },
931
+ "pairedDevices": {
932
+ "methods": {
933
+ "get": {
934
+ "description": "Returns user's Device.",
935
+ "flatPath": "v4/users/{usersId}/pairedDevices/{pairedDevicesId}",
936
+ "httpMethod": "GET",
937
+ "id": "health.users.pairedDevices.get",
938
+ "parameterOrder": [
939
+ "name"
940
+ ],
941
+ "parameters": {
942
+ "name": {
943
+ "description": "Required. The name of the device to retrieve. Format: users/{user}/devices/{device}",
944
+ "location": "path",
945
+ "pattern": "^users/[^/]+/pairedDevices/[^/]+$",
946
+ "required": true,
947
+ "type": "string"
948
+ }
949
+ },
950
+ "path": "v4/{+name}",
951
+ "response": {
952
+ "$ref": "PairedDevice"
953
+ },
954
+ "scopes": [
955
+ "https://www.googleapis.com/auth/googlehealth.settings.readonly"
956
+ ]
957
+ },
958
+ "list": {
959
+ "description": "Returns the user's list of paired 1P trackers and smartwatches.",
960
+ "flatPath": "v4/users/{usersId}/pairedDevices",
961
+ "httpMethod": "GET",
962
+ "id": "health.users.pairedDevices.list",
963
+ "parameterOrder": [
964
+ "parent"
965
+ ],
966
+ "parameters": {
967
+ "pageSize": {
968
+ "description": "Optional. The maximum number of devices to return. The service may return fewer than this value. If unspecified, at most 5 devices will be returned. The maximum value is 100. values above 100 will be coerced to 100.",
969
+ "format": "int32",
970
+ "location": "query",
971
+ "type": "integer"
972
+ },
973
+ "pageToken": {
974
+ "description": "Optional. A page token, received from a previous `ListPairedDevices` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListPairedDevices` must match the call that provided the page token.",
975
+ "location": "query",
976
+ "type": "string"
977
+ },
978
+ "parent": {
979
+ "description": "Required. The parent, which owns this collection of devices. Format: users/{user}",
980
+ "location": "path",
981
+ "pattern": "^users/[^/]+$",
982
+ "required": true,
983
+ "type": "string"
984
+ }
985
+ },
986
+ "path": "v4/{+parent}/pairedDevices",
987
+ "response": {
988
+ "$ref": "ListPairedDevicesResponse"
989
+ },
990
+ "scopes": [
991
+ "https://www.googleapis.com/auth/googlehealth.settings.readonly"
992
+ ]
993
+ }
994
+ }
710
995
  }
711
996
  }
712
997
  }
713
998
  },
714
- "revision": "20260515",
999
+ "revision": "20260618",
715
1000
  "rootUrl": "https://health.googleapis.com/",
716
1001
  "schemas": {
1002
+ "ActiveEnergyBurned": {
1003
+ "description": "Energy burned as part of an activity, excluding the basal energy burn.",
1004
+ "id": "ActiveEnergyBurned",
1005
+ "properties": {
1006
+ "interval": {
1007
+ "$ref": "ObservationTimeInterval",
1008
+ "description": "Required. Observed interval"
1009
+ },
1010
+ "kcal": {
1011
+ "description": "Required. Energy burned during an activity, measured in kilocalories.",
1012
+ "format": "double",
1013
+ "type": "number"
1014
+ }
1015
+ },
1016
+ "type": "object"
1017
+ },
1018
+ "ActiveEnergyBurnedRollupValue": {
1019
+ "description": "Represents the result of the rollup of active energy burned.",
1020
+ "id": "ActiveEnergyBurnedRollupValue",
1021
+ "properties": {
1022
+ "kcalSum": {
1023
+ "description": "Output only. Sum of the active energy burned in kilocalories.",
1024
+ "format": "double",
1025
+ "readOnly": true,
1026
+ "type": "number"
1027
+ }
1028
+ },
1029
+ "type": "object"
1030
+ },
717
1031
  "ActiveMinutes": {
718
1032
  "description": "Record of active minutes in a given time interval.",
719
1033
  "id": "ActiveMinutes",
@@ -929,6 +1243,54 @@
929
1243
  },
930
1244
  "type": "object"
931
1245
  },
1246
+ "AlertWindow": {
1247
+ "description": "An analysis window evaluated for AFib. Note: The current version of the algorithm will only produce alerts if all windows are positive. So anything returned from the API will always have the positive bit set to true. Internally, windows can be negative, however. We never save \"inconclusive\" windows (they aren't produced by the algorithm).",
1248
+ "id": "AlertWindow",
1249
+ "properties": {
1250
+ "civilEndTime": {
1251
+ "$ref": "CivilDateTime",
1252
+ "description": "Output only. Observed interval end time in civil time in the timezone the subject is in at the end of the observed interval",
1253
+ "readOnly": true
1254
+ },
1255
+ "civilStartTime": {
1256
+ "$ref": "CivilDateTime",
1257
+ "description": "Output only. Observed interval start time in civil time in the timezone the subject is in at the start of the observed interval",
1258
+ "readOnly": true
1259
+ },
1260
+ "endTime": {
1261
+ "description": "Required. The end time of the analysis window.",
1262
+ "format": "google-datetime",
1263
+ "type": "string"
1264
+ },
1265
+ "endUtcOffset": {
1266
+ "description": "Required. The UTC offset of the user's timezone when the analysis window ended.",
1267
+ "format": "google-duration",
1268
+ "type": "string"
1269
+ },
1270
+ "heartBeats": {
1271
+ "description": "Optional. All heart beats in the interval contained in this analysis window.",
1272
+ "items": {
1273
+ "$ref": "HeartBeat"
1274
+ },
1275
+ "type": "array"
1276
+ },
1277
+ "positive": {
1278
+ "description": "Optional. Flag indicating whether the window was positive for AFib or not. A `true` value indicates that AFib was detected in this window. A `false` value means AFib was not detected, but does not guarantee the absence of AFib.",
1279
+ "type": "boolean"
1280
+ },
1281
+ "startTime": {
1282
+ "description": "Required. Observed interval. The start time of the analysis window.",
1283
+ "format": "google-datetime",
1284
+ "type": "string"
1285
+ },
1286
+ "startUtcOffset": {
1287
+ "description": "Required. The UTC offset of the user's timezone when the analysis window started.",
1288
+ "format": "google-duration",
1289
+ "type": "string"
1290
+ }
1291
+ },
1292
+ "type": "object"
1293
+ },
932
1294
  "Altitude": {
933
1295
  "description": "Captures the altitude gain (i.e. deltas), and not level above sea, for a user in millimeters.",
934
1296
  "id": "Altitude",
@@ -1004,7 +1366,117 @@
1004
1366
  "items": {
1005
1367
  "type": "string"
1006
1368
  },
1007
- "type": "array"
1369
+ "type": "array"
1370
+ }
1371
+ },
1372
+ "type": "object"
1373
+ },
1374
+ "BloodGlucose": {
1375
+ "description": "Represents a blood glucose level measurement. LINT: LEGACY_NAMES",
1376
+ "id": "BloodGlucose",
1377
+ "properties": {
1378
+ "bloodGlucoseMilligramsPerDeciliter": {
1379
+ "description": "Required. Blood glucose level concentration in mg/dL.",
1380
+ "format": "double",
1381
+ "type": "number"
1382
+ },
1383
+ "mealType": {
1384
+ "description": "Optional. Meal type of the measurement.",
1385
+ "enum": [
1386
+ "MEAL_TYPE_UNSPECIFIED",
1387
+ "BREAKFAST",
1388
+ "LUNCH",
1389
+ "DINNER",
1390
+ "SNACK"
1391
+ ],
1392
+ "enumDescriptions": [
1393
+ "Unspecified meal type.",
1394
+ "Breakfast.",
1395
+ "Lunch.",
1396
+ "Dinner.",
1397
+ "Snack."
1398
+ ],
1399
+ "type": "string"
1400
+ },
1401
+ "measurementSource": {
1402
+ "description": "Optional. Source of the measurement.",
1403
+ "enum": [
1404
+ "MEASUREMENT_SOURCE_UNSPECIFIED",
1405
+ "SELF_MONITORING_BLOOD_GLUCOSE",
1406
+ "CONTINUOUS_GLUCOSE_MONITORING",
1407
+ "LAB_TEST"
1408
+ ],
1409
+ "enumDescriptions": [
1410
+ "Unspecified measurement source.",
1411
+ "Self-monitoring of blood glucose (Blood glucose meter)",
1412
+ "Continuous glucose monitoring device",
1413
+ "Laboratory test"
1414
+ ],
1415
+ "type": "string"
1416
+ },
1417
+ "measurementTiming": {
1418
+ "description": "Optional. Timing of the measurement.",
1419
+ "enum": [
1420
+ "MEASUREMENT_TIMING_UNSPECIFIED",
1421
+ "AFTER_MEAL",
1422
+ "BEFORE_MEAL",
1423
+ "FASTING",
1424
+ "GENERAL",
1425
+ "BEFORE_BED",
1426
+ "OVER_NIGHT"
1427
+ ],
1428
+ "enumDescriptions": [
1429
+ "Unspecified measurement timing.",
1430
+ "Measurement taken after meal.",
1431
+ "Measurement taken before meal.",
1432
+ "Measurement taken while fasting.",
1433
+ "General measurement (not associated with a meal or time of day).",
1434
+ "Measurement taken before bed.",
1435
+ "Measurement taken over night."
1436
+ ],
1437
+ "type": "string"
1438
+ },
1439
+ "notes": {
1440
+ "description": "Optional. Standard free-form notes captured at manual logging.",
1441
+ "type": "string"
1442
+ },
1443
+ "sampleTime": {
1444
+ "$ref": "ObservationSampleTime",
1445
+ "description": "Required. The time at which blood glucose was measured."
1446
+ },
1447
+ "specimen": {
1448
+ "description": "Optional. Type of body fluid used to measure the blood glucose.",
1449
+ "enum": [
1450
+ "SPECIMEN_UNSPECIFIED",
1451
+ "CAPILLARY_BLOOD",
1452
+ "INTERSTITIAL_FLUID",
1453
+ "PLASMA",
1454
+ "SERUM",
1455
+ "TEARS",
1456
+ "WHOLE_BLOOD"
1457
+ ],
1458
+ "enumDescriptions": [
1459
+ "Unspecified specimen.",
1460
+ "Capillary blood.",
1461
+ "Interstitial fluid.",
1462
+ "Plasma.",
1463
+ "Serum.",
1464
+ "Tears.",
1465
+ "Whole blood."
1466
+ ],
1467
+ "type": "string"
1468
+ }
1469
+ },
1470
+ "type": "object"
1471
+ },
1472
+ "BloodGlucoseRollupValue": {
1473
+ "description": "Represents the result of the rollup of the blood glucose data type. LINT: LEGACY_NAMES",
1474
+ "id": "BloodGlucoseRollupValue",
1475
+ "properties": {
1476
+ "bloodGlucoseMilligramsPerDeciliterAvg": {
1477
+ "description": "Average blood glucose level in mg/dL.",
1478
+ "format": "double",
1479
+ "type": "number"
1008
1480
  }
1009
1481
  },
1010
1482
  "type": "object"
@@ -1111,6 +1583,92 @@
1111
1583
  },
1112
1584
  "type": "object"
1113
1585
  },
1586
+ "CoreBodyTemperature": {
1587
+ "description": "Core body temperature measurement, distinct from peripheral body temperature, reflects the temperature of the body's internal organs.",
1588
+ "id": "CoreBodyTemperature",
1589
+ "properties": {
1590
+ "id": {
1591
+ "description": "Optional. The unique identifier of the core body temperature measurement.",
1592
+ "type": "string"
1593
+ },
1594
+ "measurementLocation": {
1595
+ "description": "Optional. The location of the core body temperature measurement.",
1596
+ "enum": [
1597
+ "MEASUREMENT_LOCATION_UNSPECIFIED",
1598
+ "OTHER",
1599
+ "ARMPIT",
1600
+ "BODY",
1601
+ "EAR",
1602
+ "FINGER",
1603
+ "GASTRO_INTESTINAL",
1604
+ "MOUTH",
1605
+ "RECTUM",
1606
+ "TOE",
1607
+ "EAR_DRUM",
1608
+ "TEMPORAL_ARTERY",
1609
+ "FOREHEAD",
1610
+ "URINARY_BLADDER",
1611
+ "NASAL",
1612
+ "NASOPHARYNGEAL",
1613
+ "WRIST",
1614
+ "VAGINA"
1615
+ ],
1616
+ "enumDescriptions": [
1617
+ "Measurement location is unspecified.",
1618
+ "Other measurement location.",
1619
+ "Armpit measurement location.",
1620
+ "Body measurement location.",
1621
+ "Ear measurement location.",
1622
+ "Finger measurement location.",
1623
+ "Gastro-intestinal measurement location.",
1624
+ "Mouth measurement location.",
1625
+ "Rectum measurement location.",
1626
+ "Toe measurement location.",
1627
+ "Ear drum measurement location.",
1628
+ "Temporal artery measurement location.",
1629
+ "Forehead measurement location.",
1630
+ "Urinary bladder measurement location.",
1631
+ "Nasal measurement location.",
1632
+ "Nasopharyngeal measurement location.",
1633
+ "Wrist measurement location.",
1634
+ "Vagina measurement location."
1635
+ ],
1636
+ "type": "string"
1637
+ },
1638
+ "sampleTime": {
1639
+ "$ref": "ObservationSampleTime",
1640
+ "description": "Required. The time at which core body temperature was measured."
1641
+ },
1642
+ "temperatureCelsius": {
1643
+ "description": "Required. The core body temperature in Celsius.",
1644
+ "format": "double",
1645
+ "type": "number"
1646
+ }
1647
+ },
1648
+ "type": "object"
1649
+ },
1650
+ "CoreBodyTemperatureRollupValue": {
1651
+ "description": "Represents the result of the rollup of the core body temperature data type.",
1652
+ "id": "CoreBodyTemperatureRollupValue",
1653
+ "properties": {
1654
+ "temperatureCelsiusAvg": {
1655
+ "description": "Average core body temperature in Celsius.",
1656
+ "format": "double",
1657
+ "type": "number"
1658
+ },
1659
+ "temperatureCelsiusMax": {
1660
+ "description": "Maximum core body temperature in Celsius.",
1661
+ "format": "double",
1662
+ "type": "number"
1663
+ },
1664
+ "temperatureCelsiusMin": {
1665
+ "description": "Minimum core body temperature in Celsius.",
1666
+ "format": "double",
1667
+ "type": "number"
1668
+ }
1669
+ },
1670
+ "type": "object"
1671
+ },
1114
1672
  "CreateSubscriberPayload": {
1115
1673
  "description": "Payload for creating a subscriber.",
1116
1674
  "id": "CreateSubscriberPayload",
@@ -1133,6 +1691,24 @@
1133
1691
  },
1134
1692
  "type": "object"
1135
1693
  },
1694
+ "CreateSubscriptionPayload": {
1695
+ "description": "Payload for creating a subscription.",
1696
+ "id": "CreateSubscriptionPayload",
1697
+ "properties": {
1698
+ "dataTypes": {
1699
+ "description": "Optional. Data types subscribed to.",
1700
+ "items": {
1701
+ "type": "string"
1702
+ },
1703
+ "type": "array"
1704
+ },
1705
+ "user": {
1706
+ "description": "Required. Immutable. The resource name of the user for whom this subscription is active. Format: `users/{user}` where `{user}` is the public `healthUserId` as returned by the `GetIdentity` action in the profile PAPI (see `google.devicesandservices.health.v4main.HealthProfileService.GetIdentity`).",
1707
+ "type": "string"
1708
+ }
1709
+ },
1710
+ "type": "object"
1711
+ },
1136
1712
  "DailyHeartRateVariability": {
1137
1713
  "description": "Represents the daily heart rate variability data type. At least one of the following fields must be set: - `average_heart_rate_variability_milliseconds` - `non_rem_heart_rate_beats_per_minute` - `entropy` - `deep_sleep_root_mean_square_of_successive_differences_milliseconds`",
1138
1714
  "id": "DailyHeartRateVariability",
@@ -1317,6 +1893,10 @@
1317
1893
  "description": "Value of a daily rollup for a single civil time interval (aggregation window) of reconciled data points from all data sources, excluding those data points that are identified as recorded by wearables in intervals when they were not actually worn.",
1318
1894
  "id": "DailyRollupDataPoint",
1319
1895
  "properties": {
1896
+ "activeEnergyBurned": {
1897
+ "$ref": "ActiveEnergyBurnedRollupValue",
1898
+ "description": "Returned by default when rolling up data points from the `active-energy-burned` data type."
1899
+ },
1320
1900
  "activeMinutes": {
1321
1901
  "$ref": "ActiveMinutesRollupValue",
1322
1902
  "description": "Returned by default when rolling up data points from the `active-minutes` data type, or when requested explicitly using the `active-minutes` rollup type identifier."
@@ -1333,6 +1913,10 @@
1333
1913
  "$ref": "AltitudeRollupValue",
1334
1914
  "description": "Returned by default when rolling up data points from the `altitude` data type, or when requested explicitly using the `altitude` rollup type identifier."
1335
1915
  },
1916
+ "bloodGlucose": {
1917
+ "$ref": "BloodGlucoseRollupValue",
1918
+ "description": "Returned by default when rolling up data points from the `blood-glucose` data type."
1919
+ },
1336
1920
  "bodyFat": {
1337
1921
  "$ref": "BodyFatRollupValue",
1338
1922
  "description": "Returned by default when rolling up data points from the `body-fat` data type, or when requested explicitly using the `body-fat` rollup type identifier."
@@ -1349,6 +1933,10 @@
1349
1933
  "$ref": "CivilDateTime",
1350
1934
  "description": "Start time of the window this value aggregates over"
1351
1935
  },
1936
+ "coreBodyTemperature": {
1937
+ "$ref": "CoreBodyTemperatureRollupValue",
1938
+ "description": "Returned by default when rolling up data points from the `core-body-temperature` data type, or when requested explicitly using the `core-body-temperature` rollup type identifier."
1939
+ },
1352
1940
  "distance": {
1353
1941
  "$ref": "DistanceRollupValue",
1354
1942
  "description": "Returned by default when rolling up data points from the `distance` data type, or when requested explicitly using the `distance` rollup type identifier."
@@ -1369,6 +1957,10 @@
1369
1957
  "$ref": "HydrationLogRollupValue",
1370
1958
  "description": "Returned by default when rolling up data points from the `hydration-log` data type, or when requested explicitly using the `hydration-log` rollup type identifier."
1371
1959
  },
1960
+ "nutritionLog": {
1961
+ "$ref": "NutritionLogRollupValue",
1962
+ "description": "Returned by default when rolling up data points from the `nutrition-log` data type, or when requested explicitly using the `nutrition-log` rollup type identifier."
1963
+ },
1372
1964
  "restingHeartRatePersonalRange": {
1373
1965
  "$ref": "RestingHeartRatePersonalRangeRollupValue",
1374
1966
  "description": "Returned by default when rolling up data points from the `daily-resting-heart-rate` data type, or when requested explicitly using the `resting-heart-rate-personal-range` rollup type identifier."
@@ -1481,6 +2073,10 @@
1481
2073
  "description": "A computed or recorded metric.",
1482
2074
  "id": "DataPoint",
1483
2075
  "properties": {
2076
+ "activeEnergyBurned": {
2077
+ "$ref": "ActiveEnergyBurned",
2078
+ "description": "Optional. Data for points in the `active-energy-burned` interval data type collection."
2079
+ },
1484
2080
  "activeMinutes": {
1485
2081
  "$ref": "ActiveMinutes",
1486
2082
  "description": "Optional. Data for points in the `active-minutes` interval data type collection."
@@ -1501,10 +2097,18 @@
1501
2097
  "$ref": "BasalEnergyBurned",
1502
2098
  "description": "Optional. Data for points in the `basal-energy-burned` interval data type collection."
1503
2099
  },
2100
+ "bloodGlucose": {
2101
+ "$ref": "BloodGlucose",
2102
+ "description": "Optional. Data for points in the `blood-glucose` sample data type collection."
2103
+ },
1504
2104
  "bodyFat": {
1505
2105
  "$ref": "BodyFat",
1506
2106
  "description": "Optional. Data for points in the `body-fat` sample data type collection."
1507
2107
  },
2108
+ "coreBodyTemperature": {
2109
+ "$ref": "CoreBodyTemperature",
2110
+ "description": "Optional. Data for points in the `core-body-temperature` sample data type collection."
2111
+ },
1508
2112
  "dailyHeartRateVariability": {
1509
2113
  "$ref": "DailyHeartRateVariability",
1510
2114
  "description": "Optional. Data for points in the `daily-heart-rate-variability` daily data type collection."
@@ -1541,6 +2145,10 @@
1541
2145
  "$ref": "Distance",
1542
2146
  "description": "Optional. Data for points in the `distance` interval data type collection."
1543
2147
  },
2148
+ "electrocardiogram": {
2149
+ "$ref": "Electrocardiogram",
2150
+ "description": "Optional. Data for points in the `electrocardiogram` session data type collection."
2151
+ },
1544
2152
  "exercise": {
1545
2153
  "$ref": "Exercise",
1546
2154
  "description": "Optional. Data for points in the `exercise` session data type collection."
@@ -1549,6 +2157,14 @@
1549
2157
  "$ref": "Floors",
1550
2158
  "description": "Optional. Data for points in the `floors` interval data type collection."
1551
2159
  },
2160
+ "food": {
2161
+ "$ref": "Food",
2162
+ "description": "Optional. The food details."
2163
+ },
2164
+ "foodMeasurementUnit": {
2165
+ "$ref": "FoodMeasurementUnit",
2166
+ "description": "Optional. The food measurement unit details."
2167
+ },
1552
2168
  "heartRate": {
1553
2169
  "$ref": "HeartRate",
1554
2170
  "description": "Optional. Data for points in the `heart-rate` sample data type collection."
@@ -1565,10 +2181,18 @@
1565
2181
  "$ref": "HydrationLog",
1566
2182
  "description": "Optional. Data for points in the `hydration-log` session data type collection."
1567
2183
  },
2184
+ "irregularRhythmNotification": {
2185
+ "$ref": "IrregularRhythmNotification",
2186
+ "description": "Optional. Data for points in the `irregular-rhythm-notification` session data type collection."
2187
+ },
1568
2188
  "name": {
1569
- "description": "Identifier. Data point name, only supported for the subset of identifiable data types. For the majority of the data types, individual data points do not need to be identified and this field would be empty. Format: `users/{user}/dataTypes/{data_type}/dataPoints/{data_point}` Example: `users/abcd1234/dataTypes/sleep/dataPoints/a1b2c3d4-e5f6-7890-1234-567890abcdef` The `{user}` ID is a system-generated identifier, as described in Identity.health_user_id. The `{data_type}` ID corresponds to the kebab-case version of the field names in the DataPoint data union field, e.g. `total-calories` for the `total_calories` field. The `{data_point}` ID can be client-provided or system-generated. If client-provided, it must be a string of 4-63 characters, containing only lowercase letters, numbers, and hyphens.",
2189
+ "description": "Identifier. Data point name, only supported for the subset of identifiable data types. For the majority of the data types, individual data points do not need to be identified and this field would be empty. Format: `users/{user}/dataTypes/{data_type}/dataPoints/{data_point}` Example: `users/abcd1234/dataTypes/sleep/dataPoints/a1b2c3d4-e5f6-7890-1234-567890abcdef` The `{user}` ID is a system-generated identifier, as described in Identity.health_user_id. The `{data_type}` ID corresponds to the kebab-case version of the field names in the DataPoint data union field, e.g. `heart-rate` for the `heart_rate` field. The `{data_point}` ID can be client-provided or system-generated. If client-provided, it must be a string of 4-63 characters, containing only lowercase letters, numbers, and hyphens.",
1570
2190
  "type": "string"
1571
2191
  },
2192
+ "nutritionLog": {
2193
+ "$ref": "NutritionLog",
2194
+ "description": "Optional. Data for points in the `nutrition-log` session data type collection."
2195
+ },
1572
2196
  "oxygenSaturation": {
1573
2197
  "$ref": "OxygenSaturation",
1574
2198
  "description": "Optional. Data for points in the `oxygen-saturation` sample data type collection."
@@ -1819,6 +2443,80 @@
1819
2443
  },
1820
2444
  "type": "object"
1821
2445
  },
2446
+ "Electrocardiogram": {
2447
+ "description": "Represents an Electrocardiogram (ECG) measurement session. This data type is based on SaMD feature and any changes to it may require additional review.",
2448
+ "id": "Electrocardiogram",
2449
+ "properties": {
2450
+ "beatsPerMinuteAvg": {
2451
+ "description": "Optional. Average heart rate recorded during ECG reading in beats per minute.",
2452
+ "format": "int64",
2453
+ "type": "string"
2454
+ },
2455
+ "interval": {
2456
+ "$ref": "SessionTimeInterval",
2457
+ "description": "Required. Observed interval. NOTE: Historical ECG data lacks timezone offsets, so `start_utc_offset` and `end_utc_offset` will be missing or default to zero. As a result, the civil time fields within this interval will default to UTC. It is recommended to use physical time fields instead for accurate time referencing. NOTE: The `start_time` and `end_time` of the interval are equal, representing the reading time."
2458
+ },
2459
+ "leadNumber": {
2460
+ "description": "Optional. The number of leads used for ECG reading.",
2461
+ "format": "int32",
2462
+ "type": "integer"
2463
+ },
2464
+ "medicalDeviceInfo": {
2465
+ "$ref": "MedicalDeviceInfo",
2466
+ "description": "Output only. The meta information for the compatible device used to conduct the measurement. ECG measurements typically populate `firmware_version`, `feature_version`, and `device_model`.",
2467
+ "readOnly": true
2468
+ },
2469
+ "millivoltsScalingFactor": {
2470
+ "description": "Optional. The factor by which to divide waveform samples to get voltage in millivolts: millivolts = waveform_sample / millivolts_scaling_factor.",
2471
+ "format": "int32",
2472
+ "type": "integer"
2473
+ },
2474
+ "resultClassification": {
2475
+ "description": "Optional. The result classification of the ECG reading.",
2476
+ "enum": [
2477
+ "RESULT_CLASSIFICATION_UNSPECIFIED",
2478
+ "NORMAL_SINUS_RHYTHM",
2479
+ "ATRIAL_FIBRILLATION",
2480
+ "INCONCLUSIVE",
2481
+ "INCONCLUSIVE_HIGH_HEART_RATE",
2482
+ "INCONCLUSIVE_LOW_HEART_RATE",
2483
+ "UNREADABLE",
2484
+ "NOT_ANALYZED"
2485
+ ],
2486
+ "enumDescriptions": [
2487
+ "Unspecified result classification.",
2488
+ "Heart rhythm appears normal. Corresponds to result \"Normal Sinus Rhythm\".",
2489
+ "Signs of Atrial Fibrillation detected. Corresponds to result \"Atrial Fibrillation\".",
2490
+ "The reading is inconclusive as it could not be classified. Corresponds to result \"Inconclusive\".",
2491
+ "The reading is inconclusive as it could not be classified because heart rate is high (>120bpm). Corresponds to result \"Inconclusive: High heart rate\".",
2492
+ "The reading is inconclusive as it could not be classified because heart rate is low (<50bpm). Corresponds to result \"Inconclusive: Low heart rate\".",
2493
+ "The reading is unreadable.",
2494
+ "The reading was not analyzed."
2495
+ ],
2496
+ "type": "string"
2497
+ },
2498
+ "samplingFrequencyHertz": {
2499
+ "description": "Optional. The sampling frequency of waveform samples in hertz.",
2500
+ "format": "int32",
2501
+ "type": "integer"
2502
+ },
2503
+ "waveformSamples": {
2504
+ "description": "Optional. An array of voltage values representing lead I ECG values. Each sample represents voltage difference in ECG graph. The first value in array corresponds to the start of the reading.",
2505
+ "items": {
2506
+ "format": "int32",
2507
+ "type": "integer"
2508
+ },
2509
+ "type": "array"
2510
+ }
2511
+ },
2512
+ "type": "object"
2513
+ },
2514
+ "Empty": {
2515
+ "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
2516
+ "id": "Empty",
2517
+ "properties": {},
2518
+ "type": "object"
2519
+ },
1822
2520
  "EndpointAuthorization": {
1823
2521
  "description": "Authorization mechanism for a subscriber endpoint. For all requests sent by the Webhooks service, the JSON payload is cryptographically signed. The signature is delivered in the `X-HEALTHAPI-SIGNATURE` HTTP header. This is an ECDSA (NIST P256) signature of the JSON payload. Clients must verify this signature using Google Health API's public key to confirm the payload was sent by the Health API.",
1824
2522
  "id": "EndpointAuthorization",
@@ -1835,6 +2533,70 @@
1835
2533
  },
1836
2534
  "type": "object"
1837
2535
  },
2536
+ "EnergyQuantity": {
2537
+ "description": "Represents the energy quantity.",
2538
+ "id": "EnergyQuantity",
2539
+ "properties": {
2540
+ "kcal": {
2541
+ "description": "Required. Value representing the energy in kilocalories.",
2542
+ "format": "double",
2543
+ "type": "number"
2544
+ },
2545
+ "userProvidedUnit": {
2546
+ "description": "Optional. Value representing the user provided unit.",
2547
+ "enum": [
2548
+ "ENERGY_UNIT_UNSPECIFIED",
2549
+ "JOULE",
2550
+ "KILOJOULE",
2551
+ "KILOCALORIE",
2552
+ "SMALL_CALORIE",
2553
+ "CALORIE"
2554
+ ],
2555
+ "enumDescriptions": [
2556
+ "Unspecified energy unit.",
2557
+ "Value representing joule.",
2558
+ "Value representing kilojoule.",
2559
+ "Value representing kilocalorie.",
2560
+ "Value representing small calorie.",
2561
+ "Value representing calorie."
2562
+ ],
2563
+ "type": "string"
2564
+ }
2565
+ },
2566
+ "type": "object"
2567
+ },
2568
+ "EnergyQuantityRollup": {
2569
+ "description": "Rollup for the energy quantity.",
2570
+ "id": "EnergyQuantityRollup",
2571
+ "properties": {
2572
+ "kcalSum": {
2573
+ "description": "Required. The sum of the energy in kilocalories.",
2574
+ "format": "double",
2575
+ "type": "number"
2576
+ },
2577
+ "userProvidedUnitLast": {
2578
+ "description": "Optional. The user provided unit on the last element.",
2579
+ "enum": [
2580
+ "ENERGY_UNIT_UNSPECIFIED",
2581
+ "JOULE",
2582
+ "KILOJOULE",
2583
+ "KILOCALORIE",
2584
+ "SMALL_CALORIE",
2585
+ "CALORIE"
2586
+ ],
2587
+ "enumDescriptions": [
2588
+ "Unspecified energy unit.",
2589
+ "Value representing joule.",
2590
+ "Value representing kilojoule.",
2591
+ "Value representing kilocalorie.",
2592
+ "Value representing small calorie.",
2593
+ "Value representing calorie."
2594
+ ],
2595
+ "type": "string"
2596
+ }
2597
+ },
2598
+ "type": "object"
2599
+ },
1838
2600
  "Exercise": {
1839
2601
  "description": "An exercise that stores information about a physical activity.",
1840
2602
  "id": "Exercise",
@@ -1869,33 +2631,371 @@
1869
2631
  "description": "Required. The type of activity performed during an exercise.",
1870
2632
  "enum": [
1871
2633
  "EXERCISE_TYPE_UNSPECIFIED",
1872
- "RUNNING",
1873
- "WALKING",
2634
+ "AEROBIC_WORKOUT",
2635
+ "ARCHERY",
2636
+ "ASSAULT_BIKE",
2637
+ "BACKPACKING",
2638
+ "BADMINTON",
2639
+ "BALLET",
2640
+ "BALLROOM_DANCE",
2641
+ "BARRE_CLASS",
2642
+ "BASEBALL",
2643
+ "BASKETBALL",
1874
2644
  "BIKING",
1875
- "SWIMMING",
2645
+ "BILLIARDS",
2646
+ "BODY_WEIGHT",
2647
+ "BOOTCAMP",
2648
+ "BOWLING",
2649
+ "BOXING",
2650
+ "BREAKDANCING",
2651
+ "CALISTHENICS",
2652
+ "CANOEING",
2653
+ "CARDIO_SCULPT",
2654
+ "CARDIO_WORKOUT",
2655
+ "CARPENTRY",
2656
+ "CHEERLEADING",
2657
+ "CIRCUIT_TRAINING",
2658
+ "CLEANING",
2659
+ "CLIMBING",
2660
+ "CORE_TRAINING",
2661
+ "CRICKET",
2662
+ "CROQUET",
2663
+ "CROSS_COUNTRY_SKI",
2664
+ "CROSS_TRAINING",
2665
+ "CROSSFIT",
2666
+ "CURLING",
2667
+ "DANCING",
2668
+ "DIVING",
2669
+ "ELECTRIC_BIKE",
2670
+ "ELECTRIC_SCOOTER",
2671
+ "ELLIPTICAL",
2672
+ "EQUESTRIAN_SPORTS",
2673
+ "EXERCISE_CLASS",
2674
+ "FENCING",
2675
+ "FIELD_HOCKEY",
2676
+ "FISHING",
2677
+ "FITNESS_GAMING",
2678
+ "FOILING",
2679
+ "FOOTBALL_AMERICAN",
2680
+ "FOOTBALL_AUSTRALIAN",
2681
+ "FREE_WEIGHTS",
2682
+ "FRISBEE_PLAYING_GENERAL",
2683
+ "FUNCTIONAL_STRENGTH_TRAINING",
2684
+ "GARDENING",
2685
+ "GOLF",
2686
+ "GYMNASTICS",
2687
+ "HANDBALL",
2688
+ "HAND_CYCLING",
2689
+ "HIIT",
1876
2690
  "HIKING",
1877
- "YOGA",
2691
+ "HIP_HOP",
2692
+ "HOCKEY",
2693
+ "HOEING",
2694
+ "HOUSEHOLD_CHORES",
2695
+ "HUNTING",
2696
+ "ICE_SKATING",
2697
+ "INCLINE_RUN",
2698
+ "INCLINE_WALK",
2699
+ "INDOOR_CLIMBING",
2700
+ "INTERVAL_WORKOUT",
2701
+ "JAZZ_DANCE",
2702
+ "JIU_JITSU",
2703
+ "JUMPING_ROPE",
2704
+ "KARATE",
2705
+ "KAYAKING",
2706
+ "KICKBOXING",
2707
+ "KITESURFING",
2708
+ "LACROSSE",
2709
+ "MARTIAL_ARTS",
2710
+ "MEDITATE",
2711
+ "MODERN_DANCE",
2712
+ "MOTOCROSS",
2713
+ "MOTORCYCLE",
2714
+ "MOUNTAIN_BIKE",
2715
+ "MOWING_LAWN",
2716
+ "MUAY_THAI",
2717
+ "MULTISPORT",
2718
+ "MUSICAL_PERFORMANCE",
2719
+ "NORDIC_WALKING",
2720
+ "ORIENTEERING",
2721
+ "OTHER",
2722
+ "OUTDOOR_BIKE",
2723
+ "OUTDOOR_WORKOUT",
2724
+ "PADDLEBOARDING",
2725
+ "PADEL",
2726
+ "PAINTING",
2727
+ "PARAGLIDING",
2728
+ "PARKOUR",
2729
+ "PICKELBALL",
1878
2730
  "PILATES",
1879
- "WORKOUT",
1880
- "HIIT",
1881
- "WEIGHTLIFTING",
2731
+ "POLO",
2732
+ "POWERLIFTING",
2733
+ "POWER_WALKING",
2734
+ "RACKET_SPORTS",
2735
+ "RACQUETBALL",
2736
+ "RESISTANCE_BANDS",
2737
+ "ROCK_CLIMBING",
2738
+ "ROLLERBLADING",
2739
+ "ROLLER_SKATING",
2740
+ "ROWING",
2741
+ "ROWING_MACHINE",
2742
+ "RUCKING",
2743
+ "RUGBY",
2744
+ "RUNNING",
2745
+ "SAILING",
2746
+ "SCOOTERING",
2747
+ "SCUBA_DIVING",
2748
+ "SHOOTING",
2749
+ "SHOVELING",
2750
+ "SKATEBOARDING",
2751
+ "SKATING",
2752
+ "SKIING",
2753
+ "SKYDIVING",
2754
+ "SNORKELING",
2755
+ "SNOWBOARDING",
2756
+ "SNOWMOBILING",
2757
+ "SNOWSHOEING",
2758
+ "SNOW_SPORT",
2759
+ "SOCCER",
2760
+ "SOFTBALL",
2761
+ "SPEED_SKATING",
2762
+ "SPINNING",
2763
+ "SPORT",
2764
+ "SQUASH",
2765
+ "STAIRCLIMBER",
2766
+ "STATIONARY_BIKE",
2767
+ "STEP_TRAINING",
1882
2768
  "STRENGTH_TRAINING",
1883
- "OTHER"
2769
+ "STRETCHING",
2770
+ "STROLLER_WALK",
2771
+ "SURFING",
2772
+ "SWIMMING",
2773
+ "SWIMMING_OPEN_WATER",
2774
+ "SWIMMING_POOL",
2775
+ "SYNCHRONIZED_SWIMMING",
2776
+ "TABATA_WORKOUT",
2777
+ "TABLE_TENNIS",
2778
+ "TAEKWONDO",
2779
+ "TAI_CHI",
2780
+ "TANGO",
2781
+ "TENNIS",
2782
+ "TRACK_AND_FIELD",
2783
+ "TRAIL_RUN",
2784
+ "TRAMPOLINE",
2785
+ "TREADMILL",
2786
+ "TREADMILL_WALK",
2787
+ "TRX",
2788
+ "ULTIMATE_FRISBEE",
2789
+ "UNICYCLING",
2790
+ "VOLLEYBALL",
2791
+ "VOLLEYBALL_BEACH",
2792
+ "WAKEBOARDING",
2793
+ "WALKING",
2794
+ "WALK_WITH_WEIGHTS",
2795
+ "WATER_AEROBICS",
2796
+ "WATER_JOGGING",
2797
+ "WATER_POLO",
2798
+ "WATER_SKIING",
2799
+ "WATER_SPORT",
2800
+ "WATER_VOLLEYBALL",
2801
+ "WEEDING",
2802
+ "WEIGHTLIFTING",
2803
+ "WEIGHT_MACHINES",
2804
+ "WEIGHTS",
2805
+ "WHEELCHAIR",
2806
+ "WINDSURFING",
2807
+ "WORKOUT",
2808
+ "WRESTLING",
2809
+ "YOGA",
2810
+ "YOGA_BIKRAM",
2811
+ "YOGA_HATHA",
2812
+ "YOGA_POWER",
2813
+ "YOGA_VINYASA",
2814
+ "ZUMBA"
1884
2815
  ],
1885
2816
  "enumDescriptions": [
1886
2817
  "Exercise type is unspecified.",
1887
- "Running type.",
1888
- "Walking type.",
2818
+ "Aerobic workout type.",
2819
+ "Archery type.",
2820
+ "Assault bike type.",
2821
+ "Backpacking type.",
2822
+ "Badminton type.",
2823
+ "Ballet type.",
2824
+ "Ballroom dance type.",
2825
+ "Barre class type.",
2826
+ "Baseball type.",
2827
+ "Basketball type.",
1889
2828
  "Biking type.",
1890
- "Swimming type.",
2829
+ "Billiards type.",
2830
+ "Body weight type.",
2831
+ "Bootcamp type.",
2832
+ "Bowling type.",
2833
+ "Boxing type.",
2834
+ "Breakdancing type.",
2835
+ "Calisthenics type.",
2836
+ "Canoeing type.",
2837
+ "Cardio sculpt type.",
2838
+ "Cardio workout type.",
2839
+ "Carpentry type.",
2840
+ "Cheerleading type.",
2841
+ "Circuit training type.",
2842
+ "Cleaning type.",
2843
+ "Climbing type.",
2844
+ "Core training type.",
2845
+ "Cricket type.",
2846
+ "Croquet type.",
2847
+ "Cross country ski type.",
2848
+ "Cross training type.",
2849
+ "Crossfit type.",
2850
+ "Curling type.",
2851
+ "Dancing type.",
2852
+ "Diving type.",
2853
+ "Electric bike type.",
2854
+ "Electric scooter type.",
2855
+ "Elliptical type.",
2856
+ "Equestrian sports type.",
2857
+ "Exercise class type.",
2858
+ "Fencing type.",
2859
+ "Field hockey type.",
2860
+ "Fishing type.",
2861
+ "Fitness gaming type.",
2862
+ "Foiling type.",
2863
+ "Football american type.",
2864
+ "Football australian type.",
2865
+ "Free weights type.",
2866
+ "Frisbee playing general type.",
2867
+ "Functional strength training type.",
2868
+ "Gardening type.",
2869
+ "Golf type.",
2870
+ "Gymnastics type.",
2871
+ "Handball type.",
2872
+ "Hand cycling type.",
2873
+ "Hiit type.",
1891
2874
  "Hiking type.",
1892
- "Yoga type.",
2875
+ "Hip hop type.",
2876
+ "Hockey type.",
2877
+ "Hoeing type.",
2878
+ "Household chores type.",
2879
+ "Hunting type.",
2880
+ "Ice skating type.",
2881
+ "Incline run type.",
2882
+ "Incline walk type.",
2883
+ "Indoor climbing type.",
2884
+ "Interval workout type.",
2885
+ "Jazz dance type.",
2886
+ "Jiu jitsu type.",
2887
+ "Jumping rope type.",
2888
+ "Karate type.",
2889
+ "Kayaking type.",
2890
+ "Kickboxing type.",
2891
+ "Kitesurfing type.",
2892
+ "Lacrosse type.",
2893
+ "Martial arts type.",
2894
+ "Meditate type.",
2895
+ "Modern dance type.",
2896
+ "Motocross type.",
2897
+ "Motorcycle type.",
2898
+ "Mountain bike type.",
2899
+ "Mowing lawn type.",
2900
+ "Muay thai type.",
2901
+ "Multisport type.",
2902
+ "Musical performance type.",
2903
+ "Nordic walking type.",
2904
+ "Orienteering type.",
2905
+ "Other type.",
2906
+ "Outdoor bike type.",
2907
+ "Outdoor workout type.",
2908
+ "Paddleboarding type.",
2909
+ "Padel type.",
2910
+ "Painting type.",
2911
+ "Paragliding type.",
2912
+ "Parkour type.",
2913
+ "Pickelball type.",
1893
2914
  "Pilates type.",
1894
- "Workout type.",
1895
- "HIIT type.",
1896
- "Weightlifting type.",
2915
+ "Polo type.",
2916
+ "Powerlifting type.",
2917
+ "Power walking type.",
2918
+ "Racket sports type.",
2919
+ "Racquetball type.",
2920
+ "Resistance bands type.",
2921
+ "Rock climbing type.",
2922
+ "Rollerblading type.",
2923
+ "Roller skating type.",
2924
+ "Rowing type.",
2925
+ "Rowing machine type.",
2926
+ "Rucking type.",
2927
+ "Rugby type.",
2928
+ "Running type.",
2929
+ "Sailing type.",
2930
+ "Scootering type.",
2931
+ "Scuba diving type.",
2932
+ "Shooting type.",
2933
+ "Shoveling type.",
2934
+ "Skateboarding type.",
2935
+ "Skating type.",
2936
+ "Skiing type.",
2937
+ "Skydiving type.",
2938
+ "Snorkeling type.",
2939
+ "Snowboarding type.",
2940
+ "Snowmobiling type.",
2941
+ "Snowshoeing type.",
2942
+ "Snow sport type.",
2943
+ "Soccer type.",
2944
+ "Softball type.",
2945
+ "Speed skating type.",
2946
+ "Spinning type.",
2947
+ "Sport type.",
2948
+ "Squash type.",
2949
+ "Stairclimber type.",
2950
+ "Stationary bike type.",
2951
+ "Step training type.",
1897
2952
  "Strength training type.",
1898
- "Other type."
2953
+ "Stretching type.",
2954
+ "Stroller walk type.",
2955
+ "Surfing type.",
2956
+ "Swimming type.",
2957
+ "Swimming open water type.",
2958
+ "Swimming pool type.",
2959
+ "Synchronized swimming type.",
2960
+ "Tabata workout type.",
2961
+ "Table tennis type.",
2962
+ "Taekwondo type.",
2963
+ "Tai chi type.",
2964
+ "Tango type.",
2965
+ "Tennis type.",
2966
+ "Track and field type.",
2967
+ "Trail run type.",
2968
+ "Trampoline type.",
2969
+ "Treadmill type.",
2970
+ "Treadmill walk type.",
2971
+ "Trx type.",
2972
+ "Ultimate frisbee type.",
2973
+ "Unicycling type.",
2974
+ "Volleyball type.",
2975
+ "Volleyball beach type.",
2976
+ "Wakeboarding type.",
2977
+ "Walking type.",
2978
+ "Walk with weights type.",
2979
+ "Water aerobics type.",
2980
+ "Water jogging type.",
2981
+ "Water polo type.",
2982
+ "Water skiing type.",
2983
+ "Water sport type.",
2984
+ "Water volleyball type.",
2985
+ "Weeding type.",
2986
+ "Weightlifting type.",
2987
+ "Weight machines type.",
2988
+ "Weights type.",
2989
+ "Wheelchair type.",
2990
+ "Windsurfing type.",
2991
+ "Workout type.",
2992
+ "Wrestling type.",
2993
+ "Yoga type.",
2994
+ "Yoga bikram type.",
2995
+ "Yoga hatha type.",
2996
+ "Yoga power type.",
2997
+ "Yoga vinyasa type.",
2998
+ "Zumba type."
1899
2999
  ],
1900
3000
  "type": "string"
1901
3001
  },
@@ -2028,6 +3128,159 @@
2028
3128
  },
2029
3129
  "type": "object"
2030
3130
  },
3131
+ "Food": {
3132
+ "description": "Represents a food item.",
3133
+ "id": "Food",
3134
+ "properties": {
3135
+ "accessLevel": {
3136
+ "description": "Required. The access level of the food.",
3137
+ "enum": [
3138
+ "FOOD_ACCESS_LEVEL_UNSPECIFIED",
3139
+ "FOOD_ACCESS_LEVEL_PUBLIC",
3140
+ "FOOD_ACCESS_LEVEL_PRIVATE"
3141
+ ],
3142
+ "enumDescriptions": [
3143
+ "Unspecified food access level.",
3144
+ "Public food access level.",
3145
+ "Private food access level."
3146
+ ],
3147
+ "type": "string"
3148
+ },
3149
+ "brand": {
3150
+ "description": "Optional. The brand of the food.",
3151
+ "type": "string"
3152
+ },
3153
+ "defaultServing": {
3154
+ "$ref": "FoodServing",
3155
+ "description": "Required. Value representing the default serving of the food."
3156
+ },
3157
+ "description": {
3158
+ "description": "Optional. The description of the food.",
3159
+ "type": "string"
3160
+ },
3161
+ "displayName": {
3162
+ "description": "Required. The display name of the food.",
3163
+ "type": "string"
3164
+ },
3165
+ "energyAvg": {
3166
+ "$ref": "EnergyQuantity",
3167
+ "description": "Optional. Value representing the average energy of the food for the default serving."
3168
+ },
3169
+ "energyFromFat": {
3170
+ "$ref": "EnergyQuantity",
3171
+ "description": "Optional. Value representing the energy from fat of the food for the default serving."
3172
+ },
3173
+ "energyMax": {
3174
+ "$ref": "EnergyQuantity",
3175
+ "description": "Optional. Value representing the maximum energy of the food for the default serving."
3176
+ },
3177
+ "energyMin": {
3178
+ "$ref": "EnergyQuantity",
3179
+ "description": "Optional. Value representing the minimum energy of the food for the default serving."
3180
+ },
3181
+ "languageCode": {
3182
+ "description": "Optional. The language code where the food is available in format xx-XX. Supported values are defined in Settings.food_language_code.",
3183
+ "type": "string"
3184
+ },
3185
+ "mealType": {
3186
+ "description": "Optional. The meal type associated with this food.",
3187
+ "enum": [
3188
+ "MEAL_TYPE_UNSPECIFIED",
3189
+ "BEFORE_BREAKFAST",
3190
+ "BREAKFAST",
3191
+ "BEFORE_LUNCH",
3192
+ "LUNCH",
3193
+ "BEFORE_DINNER",
3194
+ "DINNER",
3195
+ "AFTER_DINNER",
3196
+ "SNACK",
3197
+ "ANYTIME"
3198
+ ],
3199
+ "enumDescriptions": [
3200
+ "Unspecified meal type.",
3201
+ "Value representing a meal before breakfast.",
3202
+ "Value representing a breakfast.",
3203
+ "Value representing a morning snack.",
3204
+ "Value representing a lunch.",
3205
+ "Value representing an afternoon snack.",
3206
+ "Value representing dinner.",
3207
+ "Value representing an evening snack.",
3208
+ "Value representing any meal outside of the usual three meals per day.",
3209
+ "Value representing any time (legacy NA)."
3210
+ ],
3211
+ "type": "string"
3212
+ },
3213
+ "nutrients": {
3214
+ "description": "Optional. Value representing the nutrients of the food for the default serving.",
3215
+ "items": {
3216
+ "$ref": "NutrientQuantity"
3217
+ },
3218
+ "type": "array"
3219
+ },
3220
+ "servings": {
3221
+ "description": "Optional. The serving of the food.",
3222
+ "items": {
3223
+ "$ref": "FoodServing"
3224
+ },
3225
+ "type": "array"
3226
+ },
3227
+ "totalCarbohydrate": {
3228
+ "$ref": "WeightQuantity",
3229
+ "description": "Optional. Value representing the total carbohydrate of the food for the default serving."
3230
+ },
3231
+ "totalFat": {
3232
+ "$ref": "WeightQuantity",
3233
+ "description": "Optional. Value representing the total fat of the food for the default serving."
3234
+ }
3235
+ },
3236
+ "type": "object"
3237
+ },
3238
+ "FoodMeasurementUnit": {
3239
+ "description": "Represents a food measurement unit.",
3240
+ "id": "FoodMeasurementUnit",
3241
+ "properties": {
3242
+ "displayName": {
3243
+ "description": "Required. The display name of the food measurement unit (e.g., \"gram\", \"piece\").",
3244
+ "type": "string"
3245
+ },
3246
+ "pluralDisplayName": {
3247
+ "description": "Optional. The plural display name of the food measurement unit (e.g., \"grams\", \"pieces\").",
3248
+ "type": "string"
3249
+ }
3250
+ },
3251
+ "type": "object"
3252
+ },
3253
+ "FoodServing": {
3254
+ "description": "Represents different properties and information about the serving of a specific food.",
3255
+ "id": "FoodServing",
3256
+ "properties": {
3257
+ "amount": {
3258
+ "description": "Optional. Amount of food consumed, fractional values are supported.",
3259
+ "format": "double",
3260
+ "type": "number"
3261
+ },
3262
+ "foodMeasurementUnit": {
3263
+ "description": "Required. Food measurement unit",
3264
+ "type": "string"
3265
+ },
3266
+ "foodMeasurementUnitDisplayName": {
3267
+ "description": "Output only. Legacy measurement unit for serving size in singular form (e.g. \"piece\", \"gram\").",
3268
+ "readOnly": true,
3269
+ "type": "string"
3270
+ },
3271
+ "foodMeasurementUnitDisplayNamePlural": {
3272
+ "description": "Output only. Legacy measurement unit for serving size in plural form (e.g. \"pieces\", \"grams\").",
3273
+ "readOnly": true,
3274
+ "type": "string"
3275
+ },
3276
+ "multiplier": {
3277
+ "description": "Optional. Value representing the multiplier used to compute the energy when using this serving instead of the default serving.",
3278
+ "format": "double",
3279
+ "type": "number"
3280
+ }
3281
+ },
3282
+ "type": "object"
3283
+ },
2031
3284
  "GoogleDevicesandservicesHealthV4DataType": {
2032
3285
  "description": "Represents a type of health data a user can have data points recorded for. It matches the parent resource of collection containing data points of the given type. Clients currently do not need to interact with this resource directly.",
2033
3286
  "id": "GoogleDevicesandservicesHealthV4DataType",
@@ -2037,15 +3290,53 @@
2037
3290
  "type": "string"
2038
3291
  }
2039
3292
  },
2040
- "type": "object"
3293
+ "type": "object"
3294
+ },
3295
+ "GoogleDevicesandservicesHealthV4User": {
3296
+ "description": "Represents a user in the Google Health API. It matches the parent resource of collections owned by the user. Clients currently do not need to interact with this resource directly.",
3297
+ "id": "GoogleDevicesandservicesHealthV4User",
3298
+ "properties": {
3299
+ "name": {
3300
+ "description": "Identifier. The resource name of the user. The `{user}` ID is a system-generated identifier, as described in Identity.health_user_id. Format: `users/{user}`",
3301
+ "type": "string"
3302
+ }
3303
+ },
3304
+ "type": "object"
3305
+ },
3306
+ "GoogleDevicesandservicesHealthV4WebhookNotificationCloudLog": {
3307
+ "description": "Log message for a webhook notification sent by the Google Health API to a subscriber's endpoint. Includes the HTTP response received from the endpoint.",
3308
+ "id": "GoogleDevicesandservicesHealthV4WebhookNotificationCloudLog",
3309
+ "properties": {
3310
+ "httpResponse": {
3311
+ "$ref": "HttpResponse",
3312
+ "description": "Required. Represents the HTTP response. This message includes the status code, reason phrase, headers, and body."
3313
+ }
3314
+ },
3315
+ "type": "object"
3316
+ },
3317
+ "HeartBeat": {
3318
+ "description": "A single heart beat measurement.",
3319
+ "id": "HeartBeat",
3320
+ "properties": {
3321
+ "beatsPerMinute": {
3322
+ "description": "Required. The beats-per-minute value extrapolated from the time before the following heart beat. This is calculated as 60000 / rr, where rr is the gap between heart beats in milliseconds (IBI - Interbeat Interval).",
3323
+ "format": "int32",
3324
+ "type": "integer"
3325
+ },
3326
+ "civilTime": {
3327
+ "$ref": "CivilDateTime",
3328
+ "description": "Output only. The civil time in the timezone the subject is in at the time of the observation.",
3329
+ "readOnly": true
3330
+ },
3331
+ "physicalTime": {
3332
+ "description": "Required. The time of the heart beat measurement.",
3333
+ "format": "google-datetime",
3334
+ "type": "string"
2041
3335
  },
2042
- "GoogleDevicesandservicesHealthV4WebhookNotificationCloudLog": {
2043
- "description": "Log message for a webhook notification sent by the Google Health API to a subscriber's endpoint. Includes the HTTP response received from the endpoint.",
2044
- "id": "GoogleDevicesandservicesHealthV4WebhookNotificationCloudLog",
2045
- "properties": {
2046
- "httpResponse": {
2047
- "$ref": "HttpResponse",
2048
- "description": "Required. Represents the HTTP response. This message includes the status code, reason phrase, headers, and body."
3336
+ "utcOffset": {
3337
+ "description": "Required. The UTC offset of the user's timezone when the heart beat measurement occurred.",
3338
+ "format": "google-duration",
3339
+ "type": "string"
2049
3340
  }
2050
3341
  },
2051
3342
  "type": "object"
@@ -2331,6 +3622,54 @@
2331
3622
  },
2332
3623
  "type": "object"
2333
3624
  },
3625
+ "IrnProfile": {
3626
+ "description": "Irregular Rhythm Notifications (IRN) Profile details. The Irregular Rhythm Notifications (IRN) feature checks for signs of atrial fibrillation (AFib). The IrnProfile details include information about the user's onboarding status, enrollment status, and the last update time of analyzable data for this feature.",
3627
+ "id": "IrnProfile",
3628
+ "properties": {
3629
+ "enrollmentStatus": {
3630
+ "description": "Required. Whether or not the user is currently enrolled in having their data processed for IRN alerts.",
3631
+ "type": "boolean"
3632
+ },
3633
+ "name": {
3634
+ "description": "Identifier. The resource name of this IrnProfile resource. Format: `users/{user}/irnProfile` Example: `users/1234567890/irnProfile` or `users/me/irnProfile` The {user} ID is a system-generated Google Health API user ID, a string of 1-63 characters consisting of lowercase and uppercase letters, numbers, and hyphens. The literal `me` can also be used to refer to the authenticated user.",
3635
+ "type": "string"
3636
+ },
3637
+ "onboardingStatus": {
3638
+ "description": "Required. Whether or not the user has onboarded onto the IRN feature.",
3639
+ "type": "boolean"
3640
+ },
3641
+ "updateTime": {
3642
+ "description": "Output only. The timestamp of the last piece of analyzable data synced by the user.",
3643
+ "format": "google-datetime",
3644
+ "readOnly": true,
3645
+ "type": "string"
3646
+ }
3647
+ },
3648
+ "type": "object"
3649
+ },
3650
+ "IrregularRhythmNotification": {
3651
+ "description": "Represents an Irregular Rhythm Notification alert, indicating a potential sign of atrial fibrillation (AFib). This data type is based on SaMD feature and any changes to it may require additional review.",
3652
+ "id": "IrregularRhythmNotification",
3653
+ "properties": {
3654
+ "alertWindows": {
3655
+ "description": "Optional. The overlapping analysis windows that were used to evaluate rhythm for potential AFib, containing specific information about the user's heart rhythm.",
3656
+ "items": {
3657
+ "$ref": "AlertWindow"
3658
+ },
3659
+ "type": "array"
3660
+ },
3661
+ "interval": {
3662
+ "$ref": "SessionTimeInterval",
3663
+ "description": "Required. Observed interval."
3664
+ },
3665
+ "medicalDeviceInfo": {
3666
+ "$ref": "MedicalDeviceInfo",
3667
+ "description": "Output only. The meta information for the compatible device used to conduct the measurement. Irregular Rhythm Notification measurements typically populate `algorithm_version`, `service_version`, and `device_model`.",
3668
+ "readOnly": true
3669
+ }
3670
+ },
3671
+ "type": "object"
3672
+ },
2334
3673
  "ListDataPointsResponse": {
2335
3674
  "description": "Response containing raw data points matching the query",
2336
3675
  "id": "ListDataPointsResponse",
@@ -2349,6 +3688,24 @@
2349
3688
  },
2350
3689
  "type": "object"
2351
3690
  },
3691
+ "ListPairedDevicesResponse": {
3692
+ "description": "Response message for ListPairedDevices.",
3693
+ "id": "ListPairedDevicesResponse",
3694
+ "properties": {
3695
+ "nextPageToken": {
3696
+ "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.",
3697
+ "type": "string"
3698
+ },
3699
+ "pairedDevices": {
3700
+ "description": "The paired devices of the user.",
3701
+ "items": {
3702
+ "$ref": "PairedDevice"
3703
+ },
3704
+ "type": "array"
3705
+ }
3706
+ },
3707
+ "type": "object"
3708
+ },
2352
3709
  "ListSubscribersResponse": {
2353
3710
  "description": "Response message for ListSubscribers.",
2354
3711
  "id": "ListSubscribersResponse",
@@ -2372,6 +3729,56 @@
2372
3729
  },
2373
3730
  "type": "object"
2374
3731
  },
3732
+ "ListSubscriptionsResponse": {
3733
+ "description": "Response message for ListSubscriptions.",
3734
+ "id": "ListSubscriptionsResponse",
3735
+ "properties": {
3736
+ "nextPageToken": {
3737
+ "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.",
3738
+ "type": "string"
3739
+ },
3740
+ "subscriptions": {
3741
+ "description": "The subscriptions from the specified subscriber.",
3742
+ "items": {
3743
+ "$ref": "Subscription"
3744
+ },
3745
+ "type": "array"
3746
+ }
3747
+ },
3748
+ "type": "object"
3749
+ },
3750
+ "MedicalDeviceInfo": {
3751
+ "description": "Software as Medical Device (SaMD) metadata. Used to construct the Unique Device Identifier (UDI).",
3752
+ "id": "MedicalDeviceInfo",
3753
+ "properties": {
3754
+ "algorithmVersion": {
3755
+ "description": "Output only. The algorithm version used by the feature.",
3756
+ "readOnly": true,
3757
+ "type": "string"
3758
+ },
3759
+ "deviceModel": {
3760
+ "description": "Output only. The model name or device type of the compatible device used to collect the data.",
3761
+ "readOnly": true,
3762
+ "type": "string"
3763
+ },
3764
+ "featureVersion": {
3765
+ "description": "Output only. The version of the feature/app running on the device.",
3766
+ "readOnly": true,
3767
+ "type": "string"
3768
+ },
3769
+ "firmwareVersion": {
3770
+ "description": "Output only. The firmware version running on the compatible device used to collect the data.",
3771
+ "readOnly": true,
3772
+ "type": "string"
3773
+ },
3774
+ "serviceVersion": {
3775
+ "description": "Output only. The service version used by the feature.",
3776
+ "readOnly": true,
3777
+ "type": "string"
3778
+ }
3779
+ },
3780
+ "type": "object"
3781
+ },
2375
3782
  "MetricsSummary": {
2376
3783
  "description": "Summary metrics for an exercise.",
2377
3784
  "id": "MetricsSummary",
@@ -2469,6 +3876,308 @@
2469
3876
  },
2470
3877
  "type": "object"
2471
3878
  },
3879
+ "NutrientQuantity": {
3880
+ "description": "Represents the quantity of a nutrient.",
3881
+ "id": "NutrientQuantity",
3882
+ "properties": {
3883
+ "nutrient": {
3884
+ "description": "Required. Value representing the nutrient.",
3885
+ "enum": [
3886
+ "NUTRIENT_UNSPECIFIED",
3887
+ "BIOTIN",
3888
+ "CAFFEINE",
3889
+ "CALCIUM",
3890
+ "CHLORIDE",
3891
+ "CARBOHYDRATES",
3892
+ "CHOLESTEROL",
3893
+ "CHROMIUM",
3894
+ "COPPER",
3895
+ "DIETARY_FIBER",
3896
+ "FOLIC_ACID",
3897
+ "IODINE",
3898
+ "IRON",
3899
+ "MAGNESIUM",
3900
+ "MANGANESE",
3901
+ "MOLYBDENUM",
3902
+ "MONOUNSATURATED_FAT",
3903
+ "NIACIN",
3904
+ "PANTOTHENIC_ACID",
3905
+ "PHOSPHORUS",
3906
+ "POLYUNSATURATED_FAT",
3907
+ "POTASSIUM",
3908
+ "PROTEIN",
3909
+ "RIBOFLAVIN",
3910
+ "SATURATED_FAT",
3911
+ "SELENIUM",
3912
+ "SODIUM",
3913
+ "SUGAR",
3914
+ "THIAMIN",
3915
+ "TRANS_FAT",
3916
+ "UNSATURATED_FAT",
3917
+ "VITAMIN_A",
3918
+ "VITAMIN_B12",
3919
+ "VITAMIN_B6",
3920
+ "VITAMIN_C",
3921
+ "VITAMIN_D",
3922
+ "VITAMIN_E",
3923
+ "VITAMIN_K",
3924
+ "ZINC",
3925
+ "FOLATE"
3926
+ ],
3927
+ "enumDescriptions": [
3928
+ "Unspecified nutrient.",
3929
+ "Value representing biotin nutrient.",
3930
+ "Value representing caffeine nutrient.",
3931
+ "Value representing calcium nutrient.",
3932
+ "Value representing chloride nutrient.",
3933
+ "Value representing carbohydrates nutrient.",
3934
+ "Value representing cholesterol nutrient.",
3935
+ "Value representing chromium nutrient.",
3936
+ "Value representing copper nutrient.",
3937
+ "Value representing dietary fiber nutrient.",
3938
+ "Value representing folic acid nutrient.",
3939
+ "Value representing iodine nutrient.",
3940
+ "Value representing iron nutrient.",
3941
+ "Value representing magnesium nutrient.",
3942
+ "Value representing manganese nutrient.",
3943
+ "Value representing molybdenum nutrient.",
3944
+ "Value representing monounsaturated fat nutrient.",
3945
+ "Value representing niacin nutrient.",
3946
+ "Value representing pantothenic acid nutrient.",
3947
+ "Value representing phosphorus nutrient.",
3948
+ "Value representing polyunsaturated fat nutrient.",
3949
+ "Value representing potassium nutrient.",
3950
+ "Value representing protein nutrient.",
3951
+ "Value representing riboflavin nutrient.",
3952
+ "Value representing saturated fat nutrient.",
3953
+ "Value representing selenium nutrient.",
3954
+ "Value representing sodium nutrient.",
3955
+ "Value representing sugar nutrient.",
3956
+ "Value representing thiamin nutrient.",
3957
+ "Value representing trans fat nutrient.",
3958
+ "Value representing unsaturated fat nutrient.",
3959
+ "Value representing vitamin A nutrient.",
3960
+ "Value representing vitamin B12 nutrient.",
3961
+ "Value representing vitamin B6 nutrient.",
3962
+ "Value representing vitamin C nutrient.",
3963
+ "Value representing vitamin D nutrient.",
3964
+ "Value representing vitamin E nutrient.",
3965
+ "Value representing vitamin K nutrient.",
3966
+ "Value representing zinc nutrient.",
3967
+ "Value representing folate nutrient."
3968
+ ],
3969
+ "type": "string"
3970
+ },
3971
+ "quantity": {
3972
+ "$ref": "WeightQuantity",
3973
+ "description": "Required. Value representing the quantity of the nutrient."
3974
+ }
3975
+ },
3976
+ "type": "object"
3977
+ },
3978
+ "NutrientQuantityRollup": {
3979
+ "description": "Nutrient quantity rollup.",
3980
+ "id": "NutrientQuantityRollup",
3981
+ "properties": {
3982
+ "nutrient": {
3983
+ "description": "Required. Aggregated nutrient.",
3984
+ "enum": [
3985
+ "NUTRIENT_UNSPECIFIED",
3986
+ "BIOTIN",
3987
+ "CAFFEINE",
3988
+ "CALCIUM",
3989
+ "CHLORIDE",
3990
+ "CARBOHYDRATES",
3991
+ "CHOLESTEROL",
3992
+ "CHROMIUM",
3993
+ "COPPER",
3994
+ "DIETARY_FIBER",
3995
+ "FOLIC_ACID",
3996
+ "IODINE",
3997
+ "IRON",
3998
+ "MAGNESIUM",
3999
+ "MANGANESE",
4000
+ "MOLYBDENUM",
4001
+ "MONOUNSATURATED_FAT",
4002
+ "NIACIN",
4003
+ "PANTOTHENIC_ACID",
4004
+ "PHOSPHORUS",
4005
+ "POLYUNSATURATED_FAT",
4006
+ "POTASSIUM",
4007
+ "PROTEIN",
4008
+ "RIBOFLAVIN",
4009
+ "SATURATED_FAT",
4010
+ "SELENIUM",
4011
+ "SODIUM",
4012
+ "SUGAR",
4013
+ "THIAMIN",
4014
+ "TRANS_FAT",
4015
+ "UNSATURATED_FAT",
4016
+ "VITAMIN_A",
4017
+ "VITAMIN_B12",
4018
+ "VITAMIN_B6",
4019
+ "VITAMIN_C",
4020
+ "VITAMIN_D",
4021
+ "VITAMIN_E",
4022
+ "VITAMIN_K",
4023
+ "ZINC",
4024
+ "FOLATE"
4025
+ ],
4026
+ "enumDescriptions": [
4027
+ "Unspecified nutrient.",
4028
+ "Value representing biotin nutrient.",
4029
+ "Value representing caffeine nutrient.",
4030
+ "Value representing calcium nutrient.",
4031
+ "Value representing chloride nutrient.",
4032
+ "Value representing carbohydrates nutrient.",
4033
+ "Value representing cholesterol nutrient.",
4034
+ "Value representing chromium nutrient.",
4035
+ "Value representing copper nutrient.",
4036
+ "Value representing dietary fiber nutrient.",
4037
+ "Value representing folic acid nutrient.",
4038
+ "Value representing iodine nutrient.",
4039
+ "Value representing iron nutrient.",
4040
+ "Value representing magnesium nutrient.",
4041
+ "Value representing manganese nutrient.",
4042
+ "Value representing molybdenum nutrient.",
4043
+ "Value representing monounsaturated fat nutrient.",
4044
+ "Value representing niacin nutrient.",
4045
+ "Value representing pantothenic acid nutrient.",
4046
+ "Value representing phosphorus nutrient.",
4047
+ "Value representing polyunsaturated fat nutrient.",
4048
+ "Value representing potassium nutrient.",
4049
+ "Value representing protein nutrient.",
4050
+ "Value representing riboflavin nutrient.",
4051
+ "Value representing saturated fat nutrient.",
4052
+ "Value representing selenium nutrient.",
4053
+ "Value representing sodium nutrient.",
4054
+ "Value representing sugar nutrient.",
4055
+ "Value representing thiamin nutrient.",
4056
+ "Value representing trans fat nutrient.",
4057
+ "Value representing unsaturated fat nutrient.",
4058
+ "Value representing vitamin A nutrient.",
4059
+ "Value representing vitamin B12 nutrient.",
4060
+ "Value representing vitamin B6 nutrient.",
4061
+ "Value representing vitamin C nutrient.",
4062
+ "Value representing vitamin D nutrient.",
4063
+ "Value representing vitamin E nutrient.",
4064
+ "Value representing vitamin K nutrient.",
4065
+ "Value representing zinc nutrient.",
4066
+ "Value representing folate nutrient."
4067
+ ],
4068
+ "type": "string"
4069
+ },
4070
+ "quantity": {
4071
+ "$ref": "WeightQuantityRollup",
4072
+ "description": "Required. Aggregated nutrient weight."
4073
+ }
4074
+ },
4075
+ "type": "object"
4076
+ },
4077
+ "NutritionLog": {
4078
+ "description": "Holds information about a user logged food. There are two ways of creating a nutrition log based on the food type: 1. Identified food: Using the food field, which is a reference to a Food resource. In this case fields `nutrients`, `energy`, `energy_from_fat`, `total_carbohydrate`, `total_fat`, `food_display_name` will be populated based on the referenced food. 2. Anonymous food: Using the `food_display_name` field and setting the `nutrients`, `energy`, `energy_from_fat`, `total_carbohydrate`, `total_fat` fields manually. The identified food is preferred over the anonymous food. Nutrition logs created from anonymous food are not be editable.",
4079
+ "id": "NutritionLog",
4080
+ "properties": {
4081
+ "energy": {
4082
+ "$ref": "EnergyQuantity",
4083
+ "description": "Optional. Value representing the energy of the nutrition log. For nutrition logs created from an identified food, this field will be populated based on the referenced food. For anonymous food, this field will be populated manually."
4084
+ },
4085
+ "energyFromFat": {
4086
+ "$ref": "EnergyQuantity",
4087
+ "description": "Optional. Value representing the energy from fat of the nutrition log. For nutrition logs created from an identified food, this field will be populated based on the referenced food. For anonymous food, this field will be populated manually."
4088
+ },
4089
+ "food": {
4090
+ "description": "Required. Represents the food ID.",
4091
+ "type": "string"
4092
+ },
4093
+ "foodDisplayName": {
4094
+ "description": "Value representing the display name of the food. For nutrition logs created from an identified food, this field will be populated based on the referenced food. For anonymous food, this field will be populated manually.",
4095
+ "type": "string"
4096
+ },
4097
+ "interval": {
4098
+ "$ref": "SessionTimeInterval",
4099
+ "description": "Required. Observed interval."
4100
+ },
4101
+ "mealType": {
4102
+ "description": "Optional. Value representing the meal type of the nutrition log.",
4103
+ "enum": [
4104
+ "MEAL_TYPE_UNSPECIFIED",
4105
+ "BEFORE_BREAKFAST",
4106
+ "BREAKFAST",
4107
+ "BEFORE_LUNCH",
4108
+ "LUNCH",
4109
+ "BEFORE_DINNER",
4110
+ "DINNER",
4111
+ "AFTER_DINNER",
4112
+ "SNACK",
4113
+ "ANYTIME"
4114
+ ],
4115
+ "enumDescriptions": [
4116
+ "Unspecified meal type.",
4117
+ "Value representing a meal before breakfast.",
4118
+ "Value representing a breakfast.",
4119
+ "Value representing a morning snack.",
4120
+ "Value representing a lunch.",
4121
+ "Value representing an afternoon snack.",
4122
+ "Value representing dinner.",
4123
+ "Value representing an evening snack.",
4124
+ "Value representing any meal outside of the usual three meals per day.",
4125
+ "Value representing any time (legacy NA)."
4126
+ ],
4127
+ "type": "string"
4128
+ },
4129
+ "nutrients": {
4130
+ "description": "Optional. Value representing the nutrients of the nutrition log.",
4131
+ "items": {
4132
+ "$ref": "NutrientQuantity"
4133
+ },
4134
+ "type": "array"
4135
+ },
4136
+ "serving": {
4137
+ "$ref": "Serving",
4138
+ "description": "Optional. Value representing the nutrition log serving."
4139
+ },
4140
+ "totalCarbohydrate": {
4141
+ "$ref": "WeightQuantity",
4142
+ "description": "Optional. Value representing the total carbohydrate of the nutrition log. For nutrition logs created from an identified food, this field will be populated based on the referenced food. For anonymous food, this field will be populated manually."
4143
+ },
4144
+ "totalFat": {
4145
+ "$ref": "WeightQuantity",
4146
+ "description": "Optional. Value representing the total fat of the nutrition log. For nutrition logs created from an identified food, this field will be populated based on the referenced food. For anonymous food, this field will be populated manually."
4147
+ }
4148
+ },
4149
+ "type": "object"
4150
+ },
4151
+ "NutritionLogRollupValue": {
4152
+ "description": "Represents the result of the rollup of the nutrition log data type.",
4153
+ "id": "NutritionLogRollupValue",
4154
+ "properties": {
4155
+ "energy": {
4156
+ "$ref": "EnergyQuantityRollup",
4157
+ "description": "Energy rollup."
4158
+ },
4159
+ "energyFromFat": {
4160
+ "$ref": "EnergyQuantityRollup",
4161
+ "description": "Value Energy from fat rollup."
4162
+ },
4163
+ "nutrients": {
4164
+ "description": "List of the nutrient roll-ups by the nutrient type.",
4165
+ "items": {
4166
+ "$ref": "NutrientQuantityRollup"
4167
+ },
4168
+ "type": "array"
4169
+ },
4170
+ "totalCarbohydrate": {
4171
+ "$ref": "WeightQuantityRollup",
4172
+ "description": "Total carbohydrate rollup."
4173
+ },
4174
+ "totalFat": {
4175
+ "$ref": "WeightQuantityRollup",
4176
+ "description": "Total fat rollup."
4177
+ }
4178
+ },
4179
+ "type": "object"
4180
+ },
2472
4181
  "ObservationSampleTime": {
2473
4182
  "description": "Represents a sample time of an observed data point.",
2474
4183
  "id": "ObservationSampleTime",
@@ -2606,6 +4315,67 @@
2606
4315
  },
2607
4316
  "type": "object"
2608
4317
  },
4318
+ "PairedDevice": {
4319
+ "description": "User's Paired 1P Device The PairedDevice details include information about the device type, battery status, battery level, last sync time, device version, mac address, and features.",
4320
+ "id": "PairedDevice",
4321
+ "properties": {
4322
+ "batteryLevel": {
4323
+ "description": "Output only. The battery level of the device.",
4324
+ "format": "int32",
4325
+ "readOnly": true,
4326
+ "type": "integer"
4327
+ },
4328
+ "batteryStatus": {
4329
+ "description": "Output only. The battery status of the device. Supported: High | Medium | Low | Empty",
4330
+ "readOnly": true,
4331
+ "type": "string"
4332
+ },
4333
+ "deviceType": {
4334
+ "description": "Output only. The device type. Supported: TRACKER | SCALE",
4335
+ "enum": [
4336
+ "DEVICE_TYPE_UNSPECIFIED",
4337
+ "TRACKER",
4338
+ "SCALE"
4339
+ ],
4340
+ "enumDescriptions": [
4341
+ "Device type is not specified.",
4342
+ "Device type is tracker.",
4343
+ "Device type is scale."
4344
+ ],
4345
+ "readOnly": true,
4346
+ "type": "string"
4347
+ },
4348
+ "deviceVersion": {
4349
+ "description": "Output only. The product name of the device",
4350
+ "readOnly": true,
4351
+ "type": "string"
4352
+ },
4353
+ "features": {
4354
+ "description": "Output only. Lists of unique features supported by the device. Comprehensive list of supported features: **Fitness Tracking** - `ACTIVE_MINUTES`: Legacy active minutes. - `AUTOSTRIDE`: Automatic stride length calculation. - `BIKE_ONBOARDING`: Cycling UI support. - `CALORIES`: Daily burned calories. - `DISTANCE`: Daily distance tracking. - `ELEVATION`: Floors climbed. - `INACTIVITY_ALERTS`: Reminders to move. - `SEDENTARY_TIME`: Tracks inactive time. - `STEPS`: Daily steps. - `SWIM`: Swim tracking (laps/strokes). - `AUTORUN`: Automatic run detection. - `ACTIVE_ZONE_MINUTES`: Active Zone Minutes (AZM). **Heart Rate & Health** - `HEART_RATE`: Continuous heart rate (PPG). - `BAT_SIGNAL`: High/Low Heart Rate Alerts. **Advanced Sensors** - `SPO2`: Blood oxygen saturation. - `NIGHTTIME_OXYGEN_SATURATION`: Sleep SpO2. - `ESTIMATED_OXYGEN_VARIATION`: Estimated Oxygen Variation. - `EDA`: Electrodermal Activity (stress). - `SKIN_TEMPERATURE`: Skin temperature variation. - `INTERNAL_DEVICE_TEMPERATURE`: Internal device temperature. **Sleep & Wellness** - `SLEEP`: Basic sleep tracking. - `SMART_SLEEP`: Advanced sleep tracking (stages/score). - `BEDTIME_REMINDER`: Bedtime reminders. - `SOUNDSCAPE`: Snore and noise detection. **Advanced Workouts** - `WB`: Custom Workout Builder. - `AUTOCUES`: Auto Cues / Auto Lap. - `DWR_RUN`: Daily Run Recommendations. - `ADVANCED_RUNNING`: Advanced Running Dynamics (e.g., GCT, VO). **GPS & Location** - `GPS`: Built-in GPS. - `CONNECTED_GPS`: Connected GPS (uses phone). - `LOCATION_HINT`: Location helper. **Payments & NFC** - `PAYMENTS`: NFC payments (Fitbit Pay/Google Wallet). - `FELICA`: FeliCa support (Japan payments/transit). **Activity Detection** - `GROK`: SmartTrack automatic activity detection. - `RETRO_AR`: Retroactive Activity Recognition prompts. **Smart Features & UI** - `ALARMS`: Silent alarms. - `BLE_MUSIC_CONTROL`: BLE music control. - `MUSIC`: Direct music storage/control. - `YOUTUBE_MUSIC_SUPPORTED`: YouTube Music support. - `GALLERY`: App Gallery. - `TUTORIAL_SUPPORTED`: On-screen tutorials. - `SMILEY_EMOTE`: Legacy Zip face. - `MOBILE_TO_DEVICE_DEEPLINK`: Mobile to device settings deep link. - `HIDE_GALLERY`: Option to hide Gallery. - `HIDE_GOAL_SELECTION`: Option to hide goal selection. - `DIGITAL_WARRANTY_SUPPORTED`: Digital warranty display. - `DIRECT_DEVICE_SETTINGS_SUPPORTED`: Direct device settings management. **Gym HR Broadcasting** - `ASPEN_SUPPORTED`: Broadcast HR to gym equipment. - `ASPEN_REMOTE_UI_SUPPORTED`: Remote UI for HR sharing. **Privacy & Security** - `FINITE_IMPROBABILITY`: BLE Resolvable Private Address (RPA) privacy. - `DOMAIN_KEY_SYNC`: Domain key synchronization. **BLE Protocol** - `BONDING`: Secure BLE bonding. - `ADVERTISES_SERIAL`: Advertises serial number. - `STATUS_CHARACTERISTIC`: BLE Status Characteristic. - `TRACKER_CHANNEL_CHARACTERISTIC`: BLE Tracker Channel Characteristic. - `PING_CHARACTERISTIC`: BLE Ping Characteristic. **Cellular & Wi-Fi** - `MOBILE_DATA`: LTE cellular support. - `SINGLE_AP_WIFI`: Single AP Wi-Fi. - `MULTI_AP_WIFI`: Multi AP Wi-Fi. - `WIFI_FWUP`: Firmware updates over Wi-Fi. **Data Sync & Transfer** - `APP_SYNC`: Background app sync. - `LIVE_DATA`: Real-time data streaming. - `EVENT_BASED_SYNC_SUPPORTED`: Event-based sync. - `TIME_SERVICE`: Time synchronization service. - `REMOTE_FILE_PROVIDER`: Remote file transfer. - `DIRECT_COMMS_ALARMS`: Direct communication for alarms. - `DIRECT_COMMS_EXERCISE`: Direct communication for exercise. - `DIRECT_COMMS_BATTERY_ALERTS`: Direct communication for battery alerts. **Google Integrations** - `PARROT_TREE_SUPPORTED`: Find My Device support.",
4355
+ "items": {
4356
+ "type": "string"
4357
+ },
4358
+ "readOnly": true,
4359
+ "type": "array"
4360
+ },
4361
+ "lastSyncTime": {
4362
+ "description": "Output only. The time of last sync with the Fitbit mobile application.",
4363
+ "format": "google-datetime",
4364
+ "readOnly": true,
4365
+ "type": "string"
4366
+ },
4367
+ "macAddress": {
4368
+ "description": "Output only. Mac ID number of the device.",
4369
+ "readOnly": true,
4370
+ "type": "string"
4371
+ },
4372
+ "name": {
4373
+ "description": "Identifier. The resource name of this Device resource. Format: `users/{user}/pairedDevices/{paired_device}` Example: `users/1234567890/pairedDevices/123` or `users/me/pairedDevices/123`",
4374
+ "type": "string"
4375
+ }
4376
+ },
4377
+ "type": "object"
4378
+ },
2609
4379
  "Profile": {
2610
4380
  "description": "Profile details.",
2611
4381
  "id": "Profile",
@@ -2671,6 +4441,10 @@
2671
4441
  "description": "A reconciled computed or recorded metric.",
2672
4442
  "id": "ReconciledDataPoint",
2673
4443
  "properties": {
4444
+ "activeEnergyBurned": {
4445
+ "$ref": "ActiveEnergyBurned",
4446
+ "description": "Data for points in the `active-energy-burned` interval data type collection."
4447
+ },
2674
4448
  "activeMinutes": {
2675
4449
  "$ref": "ActiveMinutes",
2676
4450
  "description": "Data for points in the `active-minutes` interval data type collection."
@@ -2691,10 +4465,18 @@
2691
4465
  "$ref": "BasalEnergyBurned",
2692
4466
  "description": "Data for points in the `basal-energy-burned` interval data type collection."
2693
4467
  },
4468
+ "bloodGlucose": {
4469
+ "$ref": "BloodGlucose",
4470
+ "description": "Data for points in the `blood-glucose` sample data type collection."
4471
+ },
2694
4472
  "bodyFat": {
2695
4473
  "$ref": "BodyFat",
2696
4474
  "description": "Data for points in the `body-fat` sample data type collection."
2697
4475
  },
4476
+ "coreBodyTemperature": {
4477
+ "$ref": "CoreBodyTemperature",
4478
+ "description": "Data for points in the `core-body-temperature` sample data type collection."
4479
+ },
2698
4480
  "dailyHeartRateVariability": {
2699
4481
  "$ref": "DailyHeartRateVariability",
2700
4482
  "description": "Data for points in the `daily-heart-rate-variability` daily data type collection."
@@ -2724,7 +4506,7 @@
2724
4506
  "description": "Data for points in the `daily-vo2-max` daily data type collection."
2725
4507
  },
2726
4508
  "dataPointName": {
2727
- "description": "Identifier. Data point name, only supported for the subset of identifiable data types. For the majority of the data types, individual data points do not need to be identified and this field would be empty. Format: `users/{user}/dataTypes/{data_type}/dataPoints/{data_point}` Example: `users/abcd1234/dataTypes/sleep/dataPoints/a1b2c3d4-e5f6-7890-1234-567890abcdef` The `{user}` ID is a system-generated identifier, as described in Identity.health_user_id. The `{data_type}` ID corresponds to the kebab-case version of the field names in the DataPoint data union field, e.g. `total-calories` for the `total_calories` field. The `{data_point}` ID can be client-provided or system-generated. If client-provided, it must be a string of 4-63 characters, containing only lowercase letters, numbers, and hyphens.",
4509
+ "description": "Identifier. Data point name, only supported for the subset of identifiable data types. For the majority of the data types, individual data points do not need to be identified and this field would be empty. Format: `users/{user}/dataTypes/{data_type}/dataPoints/{data_point}` Example: `users/abcd1234/dataTypes/sleep/dataPoints/a1b2c3d4-e5f6-7890-1234-567890abcdef` The `{user}` ID is a system-generated identifier, as described in Identity.health_user_id. The `{data_type}` ID corresponds to the kebab-case version of the field names in the DataPoint data union field, e.g. `heart-rate` for the `heart_rate` field. The `{data_point}` ID can be client-provided or system-generated. If client-provided, it must be a string of 4-63 characters, containing only lowercase letters, numbers, and hyphens.",
2728
4510
  "type": "string"
2729
4511
  },
2730
4512
  "distance": {
@@ -2755,6 +4537,10 @@
2755
4537
  "$ref": "HydrationLog",
2756
4538
  "description": "Data for points in the `hydration-log` session data type collection."
2757
4539
  },
4540
+ "nutritionLog": {
4541
+ "$ref": "NutritionLog",
4542
+ "description": "Data for points in the `nutrition-log` session data type collection."
4543
+ },
2758
4544
  "oxygenSaturation": {
2759
4545
  "$ref": "OxygenSaturation",
2760
4546
  "description": "Data for points in the `oxygen-saturation` sample data type collection."
@@ -2915,6 +4701,10 @@
2915
4701
  "description": "Value of a rollup for a single physical time interval (aggregation window) of reconciled data points from all data sources, excluding those data points that are identified as recorded by wearables in intervals when they were not actually worn.",
2916
4702
  "id": "RollupDataPoint",
2917
4703
  "properties": {
4704
+ "activeEnergyBurned": {
4705
+ "$ref": "ActiveEnergyBurnedRollupValue",
4706
+ "description": "Returned by default when rolling up data points from the `active-energy-burned` data type."
4707
+ },
2918
4708
  "activeMinutes": {
2919
4709
  "$ref": "ActiveMinutesRollupValue",
2920
4710
  "description": "Returned by default when rolling up data points from the `active-minutes` data type, or when requested explicitly using the `active-minutes` rollup type identifier."
@@ -2931,6 +4721,10 @@
2931
4721
  "$ref": "AltitudeRollupValue",
2932
4722
  "description": "Returned by default when rolling up data points from the `altitude` data type, or when requested explicitly using the `altitude` rollup type identifier."
2933
4723
  },
4724
+ "bloodGlucose": {
4725
+ "$ref": "BloodGlucoseRollupValue",
4726
+ "description": "Returned by default when rolling up data points from the `blood-glucose` data type."
4727
+ },
2934
4728
  "bodyFat": {
2935
4729
  "$ref": "BodyFatRollupValue",
2936
4730
  "description": "Returned by default when rolling up data points from the `body-fat` data type, or when requested explicitly using the `body-fat` rollup type identifier."
@@ -2939,6 +4733,10 @@
2939
4733
  "$ref": "CaloriesInHeartRateZoneRollupValue",
2940
4734
  "description": "Returned by default when rolling up data points from the `calories-in-heart-rate-zone` data type, or when requested explicitly using the `calories-in-heart-rate-zone` rollup type identifier."
2941
4735
  },
4736
+ "coreBodyTemperature": {
4737
+ "$ref": "CoreBodyTemperatureRollupValue",
4738
+ "description": "Returned by default when rolling up data points from the `core-body-temperature` data type, or when requested explicitly using the `core-body-temperature` rollup type identifier."
4739
+ },
2942
4740
  "distance": {
2943
4741
  "$ref": "DistanceRollupValue",
2944
4742
  "description": "Returned by default when rolling up data points from the `distance` data type, or when requested explicitly using the `distance` rollup type identifier."
@@ -2960,6 +4758,10 @@
2960
4758
  "$ref": "HydrationLogRollupValue",
2961
4759
  "description": "Returned by default when rolling up data points from the `hydration-log` data type, or when requested explicitly using the `hydration-log` rollup type identifier."
2962
4760
  },
4761
+ "nutritionLog": {
4762
+ "$ref": "NutritionLogRollupValue",
4763
+ "description": "Returned by default when rolling up data points from the `nutrition-log` data type, or when requested explicitly using the `nutrition-log` rollup type identifier."
4764
+ },
2963
4765
  "runVo2Max": {
2964
4766
  "$ref": "RunVO2MaxRollupValue",
2965
4767
  "description": "Returned by default when rolling up data points from the `run-vo2-max` data type, or when requested explicitly using the `run-vo2-max` rollup type identifier."
@@ -3057,6 +4859,27 @@
3057
4859
  },
3058
4860
  "type": "object"
3059
4861
  },
4862
+ "Serving": {
4863
+ "description": "Represents different properties and information about the serving of a specific food.",
4864
+ "id": "Serving",
4865
+ "properties": {
4866
+ "amount": {
4867
+ "description": "Optional. Amount of food consumed, fractional values are supported.",
4868
+ "format": "double",
4869
+ "type": "number"
4870
+ },
4871
+ "foodMeasurementUnit": {
4872
+ "description": "Required. Food measurement unit",
4873
+ "type": "string"
4874
+ },
4875
+ "foodMeasurementUnitDisplayName": {
4876
+ "description": "Output only. Legacy measurement unit for serving size in singular form (e.g. \"piece\", \"gram\").",
4877
+ "readOnly": true,
4878
+ "type": "string"
4879
+ }
4880
+ },
4881
+ "type": "object"
4882
+ },
3060
4883
  "SessionTimeInterval": {
3061
4884
  "description": "Represents a time interval of session data point, which bundles multiple observed metrics together.",
3062
4885
  "id": "SessionTimeInterval",
@@ -3116,6 +4939,11 @@
3116
4939
  ],
3117
4940
  "type": "string"
3118
4941
  },
4942
+ "foodLanguageCode": {
4943
+ "description": "Output only. The food language code derived from the user's food database. Possible values: `'en-US'`, `'en-GB'`, `'de-DE'`, `'es-ES'`, `'fr-FR'`, `'zh-CN'`, `'zh-TW'`, `'ja-JP'`, `'en-AU'`, `'en-CA'`, `'it-IT'`, `'ko-KR'`, `'es-MX'`, `'en-IN'`, `'en-SG'`, `'en-PH'`, `'en-IE'`, `'fr-CA'`. Updates to this field are currently not supported.",
4944
+ "readOnly": true,
4945
+ "type": "string"
4946
+ },
3119
4947
  "glucoseUnit": {
3120
4948
  "description": "Optional. The measurement unit defined in the user's account settings.",
3121
4949
  "enum": [
@@ -3335,7 +5163,7 @@
3335
5163
  "type": "boolean"
3336
5164
  },
3337
5165
  "processed": {
3338
- "description": "Output only. Sleep and sleep stages algorithms finished processing.",
5166
+ "description": "Output only. Sleep and sleep stages algorithms finished processing. A `true` value indicates whether all data processing for the session is complete. A `false` value means sleep period is detected but sleep stages is still processing.",
3339
5167
  "readOnly": true,
3340
5168
  "type": "boolean"
3341
5169
  },
@@ -3712,6 +5540,28 @@
3712
5540
  },
3713
5541
  "type": "object"
3714
5542
  },
5543
+ "Subscription": {
5544
+ "description": "A subscription to a data collection for a specific user, to be delivered to a subscriber.",
5545
+ "id": "Subscription",
5546
+ "properties": {
5547
+ "dataTypes": {
5548
+ "description": "Optional. Data types subscribed to. A subscriber will only receive notifications for data types that are declared here. A subscription can only subscribe to the data types of the subscriber. The values should be in the format \"users/{health_user_id}/dataTypes/{data_type}\" where `{data_type}` is one of \"altitude\", \"distance\", \"floors\", \"sleep\", \"steps\", \"weight\".",
5549
+ "items": {
5550
+ "type": "string"
5551
+ },
5552
+ "type": "array"
5553
+ },
5554
+ "name": {
5555
+ "description": "Identifier. The resource name of the Subscription. Format: `projects/{project}/subscribers/{subscriber}/subscriptions/{subscription}` Example: `projects/my-project/subscribers/my-subscriber-123/subscriptions/my-subscription-456` The {project} ID is mandatory (6-30 characters, matching /a-z{6,30}/) The {subscriber} ID is user-settable (4-36 characters, matching /[a-z]([a-z0-9-]{2,34}[a-z0-9])/) if provided during creation, or system-generated otherwise. The {subscription} ID is user-settable (4-36 chars, matching /[a-z]([a-z0-9-]{2,34}[a-z0-9])/) or system-generated otherwise.",
5556
+ "type": "string"
5557
+ },
5558
+ "user": {
5559
+ "description": "Immutable. The resource name of the user for whom this subscription is active. Format: `users/{user}` where `{user}` is the public `healthUserId` as returned by the `GetIdentity` action in the profile PAPI (see `google.devicesandservices.health.v4main.HealthProfileService.GetIdentity`).",
5560
+ "type": "string"
5561
+ }
5562
+ },
5563
+ "type": "object"
5564
+ },
3715
5565
  "SwimLengthsData": {
3716
5566
  "description": "Swim lengths data over the time interval.",
3717
5567
  "id": "SwimLengthsData",
@@ -4056,6 +5906,82 @@
4056
5906
  },
4057
5907
  "type": "object"
4058
5908
  },
5909
+ "WeightQuantity": {
5910
+ "description": "Represents the weight quantity.",
5911
+ "id": "WeightQuantity",
5912
+ "properties": {
5913
+ "grams": {
5914
+ "description": "Required. Value representing the weight in grams.",
5915
+ "format": "double",
5916
+ "type": "number"
5917
+ },
5918
+ "userProvidedUnit": {
5919
+ "description": "Optional. Value representing the user provided unit.",
5920
+ "enum": [
5921
+ "WEIGHT_UNIT_UNSPECIFIED",
5922
+ "GRAM",
5923
+ "KILOGRAM",
5924
+ "OUNCE",
5925
+ "POUND",
5926
+ "STONE",
5927
+ "MILLIGRAM",
5928
+ "MICROGRAM",
5929
+ "NANOGRAM"
5930
+ ],
5931
+ "enumDescriptions": [
5932
+ "Unspecified weight unit.",
5933
+ "Value representing gram.",
5934
+ "Value representing kilogram.",
5935
+ "Value representing ounce.",
5936
+ "Value representing pound.",
5937
+ "Value representing stone.",
5938
+ "Value representing milligram.",
5939
+ "Value representing microgram.",
5940
+ "Value representing nanogram."
5941
+ ],
5942
+ "type": "string"
5943
+ }
5944
+ },
5945
+ "type": "object"
5946
+ },
5947
+ "WeightQuantityRollup": {
5948
+ "description": "Rollup for the weight.",
5949
+ "id": "WeightQuantityRollup",
5950
+ "properties": {
5951
+ "gramsSum": {
5952
+ "description": "Required. The sum of the weight in grams.",
5953
+ "format": "double",
5954
+ "type": "number"
5955
+ },
5956
+ "userProvidedUnitLast": {
5957
+ "description": "Optional. The user provided unit on the last element.",
5958
+ "enum": [
5959
+ "WEIGHT_UNIT_UNSPECIFIED",
5960
+ "GRAM",
5961
+ "KILOGRAM",
5962
+ "OUNCE",
5963
+ "POUND",
5964
+ "STONE",
5965
+ "MILLIGRAM",
5966
+ "MICROGRAM",
5967
+ "NANOGRAM"
5968
+ ],
5969
+ "enumDescriptions": [
5970
+ "Unspecified weight unit.",
5971
+ "Value representing gram.",
5972
+ "Value representing kilogram.",
5973
+ "Value representing ounce.",
5974
+ "Value representing pound.",
5975
+ "Value representing stone.",
5976
+ "Value representing milligram.",
5977
+ "Value representing microgram.",
5978
+ "Value representing nanogram."
5979
+ ],
5980
+ "type": "string"
5981
+ }
5982
+ },
5983
+ "type": "object"
5984
+ },
4059
5985
  "WeightRollupValue": {
4060
5986
  "description": "Represents the result of the rollup of the weight data type.",
4061
5987
  "id": "WeightRollupValue",