---
title: "POST /v4/{+parent}/dataPoints"
method: POST
path: "/v4/{+parent}/dataPoints"
tags: ["users"]
---

# POST /v4/{+parent}/dataPoints

`POST /v4/{+parent}/dataPoints`

Creates a single identifiable data point.

## Path parameters

- `parent` string, required

## Request body

- DataPoint — A computed or recorded metric.
  - `respiratoryRateSleepSummary` RespiratoryRateSleepSummary — Records respiratory rate details during sleep. Can have multiple per day if the user sleeps multiple times.
    - `deepSleepStats` RespiratoryRateSleepSummaryStatistics — Respiratory rate statistics for a given sleep stage.
      - `breathsPerMinute` number, double — Required. Average breaths per minute.
      - `standardDeviation` number, double — Optional. Standard deviation of the respiratory rate during sleep.
      - `signalToNoise` number, double — Optional. How trustworthy the data is for the computation.
    - `fullSleepStats` RespiratoryRateSleepSummaryStatistics — Respiratory rate statistics for a given sleep stage.
      - `breathsPerMinute` number, double — Required. Average breaths per minute.
      - `standardDeviation` number, double — Optional. Standard deviation of the respiratory rate during sleep.
      - `signalToNoise` number, double — Optional. How trustworthy the data is for the computation.
    - `lightSleepStats` RespiratoryRateSleepSummaryStatistics — Respiratory rate statistics for a given sleep stage.
      - `breathsPerMinute` number, double — Required. Average breaths per minute.
      - `standardDeviation` number, double — Optional. Standard deviation of the respiratory rate during sleep.
      - `signalToNoise` number, double — Optional. How trustworthy the data is for the computation.
    - `remSleepStats` RespiratoryRateSleepSummaryStatistics — Respiratory rate statistics for a given sleep stage.
      - `breathsPerMinute` number, double — Required. Average breaths per minute.
      - `standardDeviation` number, double — Optional. Standard deviation of the respiratory rate during sleep.
      - `signalToNoise` number, double — Optional. How trustworthy the data is for the computation.
    - `sampleTime` ObservationSampleTime — Represents a sample time of an observed data point.
      - `physicalTime` string, google-datetime — Required. The time of the observation.
      - `utcOffset` string, google-duration — Required. The offset of the user's local time during the observation relative to the Coordinated Universal Time (UTC).
      - `civilTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
  - `weight` Weight — Body weight measurement.
    - `notes` string — Optional. Standard free-form notes captured at manual logging.
    - `sampleTime` ObservationSampleTime — Represents a sample time of an observed data point.
      - `physicalTime` string, google-datetime — Required. The time of the observation.
      - `utcOffset` string, google-duration — Required. The offset of the user's local time during the observation relative to the Coordinated Universal Time (UTC).
      - `civilTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
    - `weightGrams` number, double — Required. Weight of a user in grams.
  - `dailySleepTemperatureDerivations` DailySleepTemperatureDerivations — Provides derived sleep temperature values, calculated from skin or internal device temperature readings during sleep.
    - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
      - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
      - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
      - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
    - `baselineTemperatureCelsius` number, double — Optional. The user's baseline skin temperature. It is the median of the user's nightly skin temperature over the past 30 days.
    - `nightlyTemperatureCelsius` number, double — Required. The user's nightly skin temperature. It is the mean of skin temperature samples taken from the user’s sleep.
    - `relativeNightlyStddev30dCelsius` number, double — Optional. The standard deviation of the user’s relative nightly skin temperature (temperature - baseline) over the past 30 days.
  - `dailyRespiratoryRate` DailyRespiratoryRate — A daily average respiratory rate (breaths per minute) for a day of the year. One data point per day calculated for the main sleep.
    - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
      - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
      - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
      - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
    - `breathsPerMinute` number, double — Required. The average number of breaths taken per minute.
  - `dailyVo2Max` DailyVO2Max — Contains a daily summary of the user's VO2 max (cardio fitness score), which is the maximum rate of oxygen the body can use during exercise.
    - `cardioFitnessLevel` 'CARDIO_FITNESS_LEVEL_UNSPECIFIED' | 'POOR' | 'FAIR' | 'AVERAGE' | 'GOOD' | 'VERY_GOOD' | 'EXCELLENT' — Optional. Represents the user's cardio fitness level based on their VO2 max.
    - `vo2MaxCovariance` number, double — Optional. The covariance of the VO2 max value.
    - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
      - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
      - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
      - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
    - `vo2Max` number, double — Required. Daily VO2 max value measured as in ml consumed oxygen / kg of body weight / min.
    - `estimated` boolean — Optional. An estimated field is added to indicate when the confidence has decreased sufficiently to consider the value an estimation.
  - `sleep` Sleep — A sleep session possibly including stages.
    - `stages` SleepStage[] — Optional. List of non-overlapping contiguous sleep stage segments that cover the sleep period.
      - `startTime` string, google-datetime — Required. Sleep stage start time.
      - `endTime` string, google-datetime — Required. Sleep stage end time.
      - `createTime` string, google-datetime — Output only. Creation time of this sleep stages segment.
      - `startUtcOffset` string, google-duration — Required. The offset of the user's local time at the start of the sleep stage relative to the Coordinated Universal Time (UTC).
      - `updateTime` string, google-datetime — Output only. Last update time of this sleep stages segment.
      - `endUtcOffset` string, google-duration — Required. The offset of the user's local time at the end of the sleep stage relative to the Coordinated Universal Time (UTC).
      - `type` 'SLEEP_STAGE_TYPE_UNSPECIFIED' | 'AWAKE' | 'LIGHT' | 'DEEP' | 'REM' | 'ASLEEP' | 'RESTLESS' — Required. Sleep stage type: AWAKE, DEEP, REM, LIGHT etc.
    - `metadata` SleepMetadata — Additional information about how the sleep was processed.
      - `manuallyEdited` boolean — Output only. Some sleeps autodetected by algorithms can be manually edited by users.
      - `processed` boolean — 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.
      - `externalId` string — Optional. Sleep identifier relevant in the context of the data source.
      - `nap` boolean — Output only. Naps are sleeps without stages and relatively short durations.
      - `stagesStatus` 'STAGES_STATE_UNSPECIFIED' | 'REJECTED_COVERAGE' | 'REJECTED_MAX_GAP' | 'REJECTED_START_GAP' | 'REJECTED_END_GAP' | 'REJECTED_NAP' | 'REJECTED_SERVER' | 'TIMEOUT' | 'SUCCEEDED' | 'PROCESSING_INTERNAL_ERROR' — Output only. Sleep stages algorithm processing status.
    - `createTime` string, google-datetime — Output only. Creation time of this sleep observation.
    - `interval` SessionTimeInterval — Represents a time interval of session data point, which bundles multiple observed metrics together.
      - `startTime` string, google-datetime — Required. The start time of the observed session.
      - `endTime` string, google-datetime — Required. The end time of the observed session.
      - `civilStartTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
      - `startUtcOffset` string, google-duration — Required. The offset of the user's local time at the start of the session relative to the Coordinated Universal Time (UTC).
      - `endUtcOffset` string, google-duration — Required. The offset of the user's local time at the end of the session relative to the Coordinated Universal Time (UTC).
      - `civilEndTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
    - `updateTime` string, google-datetime — Output only. Last update time of this sleep observation.
    - `type` 'SLEEP_TYPE_UNSPECIFIED' | 'CLASSIC' | 'STAGES' — Optional. SleepType: classic or stages.
    - `outOfBedSegments` OutOfBedSegment[] — Optional. “Out of bed” segments that can overlap with sleep stages.
      - `startTime` string, google-datetime — Required. Segment tart time.
      - `endTime` string, google-datetime — Required. Segment end time.
      - `startUtcOffset` string, google-duration — Required. The offset of the user's local time at the start of the segment relative to the Coordinated Universal Time (UTC).
      - `endUtcOffset` string, google-duration — Required. The offset of the user's local time at the end of the segment relative to the Coordinated Universal Time (UTC).
    - `summary` SleepSummary — Sleep summary: metrics and stages summary.
      - `minutesAfterWakeUp` string, int64 — Output only. Minutes after wake up calculated by restlessness algorithm.
      - `minutesToFallAsleep` string, int64 — Output only. Minutes to fall asleep calculated by restlessness algorithm.
      - `stagesSummary` StageSummary[] — Output only. List of summaries (total duration and segment count) per each sleep stage type.
        - `type` 'SLEEP_STAGE_TYPE_UNSPECIFIED' | 'AWAKE' | 'LIGHT' | 'DEEP' | 'REM' | 'ASLEEP' | 'RESTLESS' — Output only. Sleep stage type: AWAKE, DEEP, REM, LIGHT etc.
        - `count` string, int64 — Output only. Number of sleep stages segments.
        - `minutes` string, int64 — Output only. Total duration in minutes of a sleep stage.
      - `minutesAwake` string, int64 — Output only. Total number of minutes awake. It is a sum of all AWAKE stages.
      - `minutesAsleep` string, int64 — Output only. Total number of minutes asleep. For classic sleep it is the sum of ASLEEP stages (excluding AWAKE and RESTLESS). For "stages" sleep it is the sum of LIGHT, REM and DEEP stages (excluding AWAKE).
      - `minutesInSleepPeriod` string, int64 — Output only. Delta between wake time and bedtime. It is the sum of all stages.
  - `runVo2Max` RunVO2Max — VO2 max value calculated based on the user's running activity. Value stored in ml/kg/min.
    - `sampleTime` ObservationSampleTime — Represents a sample time of an observed data point.
      - `physicalTime` string, google-datetime — Required. The time of the observation.
      - `utcOffset` string, google-duration — Required. The offset of the user's local time during the observation relative to the Coordinated Universal Time (UTC).
      - `civilTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
    - `runVo2Max` number, double — Required. Run VO2 max value in ml/kg/min.
  - `foodMeasurementUnit` FoodMeasurementUnit — Represents a food measurement unit.
    - `displayName` string — Required. The display name of the food measurement unit (e.g., "gram", "piece").
    - `pluralDisplayName` string — Optional. The plural display name of the food measurement unit (e.g., "grams", "pieces").
  - `heartRateVariability` HeartRateVariability — Captures user's heart rate variability (HRV) as measured by the root mean square of successive differences (RMSSD) between normal heartbeats or by standard deviation of the inter-beat intervals (SDNN).
    - `standardDeviationMilliseconds` number, double — Optional. The standard deviation of the heart rate variability measurement.
    - `sampleTime` ObservationSampleTime — Represents a sample time of an observed data point.
      - `physicalTime` string, google-datetime — Required. The time of the observation.
      - `utcOffset` string, google-duration — Required. The offset of the user's local time during the observation relative to the Coordinated Universal Time (UTC).
      - `civilTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
    - `rootMeanSquareOfSuccessiveDifferencesMilliseconds` number, double — Optional. The root mean square of successive differences between normal heartbeats. This is a measure of heart rate variability used by Google Health.
  - `irregularRhythmNotification` IrregularRhythmNotification — 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.
    - `interval` SessionTimeInterval — Represents a time interval of session data point, which bundles multiple observed metrics together.
      - `startTime` string, google-datetime — Required. The start time of the observed session.
      - `endTime` string, google-datetime — Required. The end time of the observed session.
      - `civilStartTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
      - `startUtcOffset` string, google-duration — Required. The offset of the user's local time at the start of the session relative to the Coordinated Universal Time (UTC).
      - `endUtcOffset` string, google-duration — Required. The offset of the user's local time at the end of the session relative to the Coordinated Universal Time (UTC).
      - `civilEndTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
    - `medicalDeviceInfo` MedicalDeviceInfo — Software as Medical Device (SaMD) metadata. Used to construct the Unique Device Identifier (UDI).
      - `firmwareVersion` string — Output only. The firmware version running on the compatible device used to collect the data.
      - `algorithmVersion` string — Output only. The algorithm version used by the feature.
      - `featureVersion` string — Output only. The version of the feature/app running on the device.
      - `deviceModel` string — Output only. The model name or device type of the compatible device used to collect the data.
      - `serviceVersion` string — Output only. The service version used by the feature.
    - `alertWindows` AlertWindow[] — Optional. The overlapping analysis windows that were used to evaluate rhythm for potential AFib, containing specific information about the user's heart rhythm.
      - `civilStartTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
      - `startTime` string, google-datetime — Required. Observed interval. The start time of the analysis window.
      - `endTime` string, google-datetime — Required. The end time of the analysis window.
      - `heartBeats` HeartBeat[] — Optional. All heart beats in the interval contained in this analysis window.
        - `physicalTime` string, google-datetime — Required. The time of the heart beat measurement.
        - `utcOffset` string, google-duration — Required. The UTC offset of the user's timezone when the heart beat measurement occurred.
        - `beatsPerMinute` integer — 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).
        - `civilTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
          - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
            - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
            - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
            - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
          - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
            - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
            - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
            - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
            - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
      - `endUtcOffset` string, google-duration — Required. The UTC offset of the user's timezone when the analysis window ended.
      - `startUtcOffset` string, google-duration — Required. The UTC offset of the user's timezone when the analysis window started.
      - `civilEndTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
      - `positive` boolean — 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.
  - `dailyHeartRateZones` DailyHeartRateZones — User's heart rate zone thresholds based on the Karvonen algorithm for a specific day.
    - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
      - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
      - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
      - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
    - `heartRateZones` HeartRateZone[] — Required. The heart rate zones.
      - `maxBeatsPerMinute` string, int64 — Required. Maximum heart rate for this zone in beats per minute.
      - `minBeatsPerMinute` string, int64 — Required. Minimum heart rate for this zone in beats per minute.
      - `heartRateZoneType` 'HEART_RATE_ZONE_TYPE_UNSPECIFIED' | 'LIGHT' | 'MODERATE' | 'VIGOROUS' | 'PEAK' — Required. The heart rate zone type.
  - `name` string — 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.
  - `basalEnergyBurned` BasalEnergyBurned — Number of calories burned due to basal metabolic rate (BMR) over a period of time.
    - `interval` ObservationTimeInterval — Represents a time interval of an observed data point.
      - `endUtcOffset` string, google-duration — Required. The offset of the user's local time at the end of the observation relative to the Coordinated Universal Time (UTC).
      - `startUtcOffset` string, google-duration — Required. The offset of the user's local time at the start of the observation relative to the Coordinated Universal Time (UTC).
      - `civilStartTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
      - `startTime` string, google-datetime — Required. Observed interval start time.
      - `endTime` string, google-datetime — Required. Observed interval end time.
      - `civilEndTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
    - `kcal` number, double — Required. Number of calories burned due to basal metabolic rate in kilocalories over the observed interval.
  - `oxygenSaturation` OxygenSaturation — Captures the user's instantaneous oxygen saturation percentage (SpO2).
    - `sampleTime` ObservationSampleTime — Represents a sample time of an observed data point.
      - `physicalTime` string, google-datetime — Required. The time of the observation.
      - `utcOffset` string, google-duration — Required. The offset of the user's local time during the observation relative to the Coordinated Universal Time (UTC).
      - `civilTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
    - `percentage` number, double — Required. The oxygen saturation percentage. Valid values are from 0 to 100.
  - `activeMinutes` ActiveMinutes — Record of active minutes in a given time interval.
    - `interval` ObservationTimeInterval — Represents a time interval of an observed data point.
      - `endUtcOffset` string, google-duration — Required. The offset of the user's local time at the end of the observation relative to the Coordinated Universal Time (UTC).
      - `startUtcOffset` string, google-duration — Required. The offset of the user's local time at the start of the observation relative to the Coordinated Universal Time (UTC).
      - `civilStartTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
      - `startTime` string, google-datetime — Required. Observed interval start time.
      - `endTime` string, google-datetime — Required. Observed interval end time.
      - `civilEndTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
    - `activeMinutesByActivityLevel` ActiveMinutesByActivityLevel[] — Required. Active minutes by activity level. At most one record per activity level is allowed.
      - `activityLevel` 'ACTIVITY_LEVEL_UNSPECIFIED' | 'LIGHT' | 'MODERATE' | 'VIGOROUS' — Required. The level of activity.
      - `activeMinutes` string, int64 — Required. Number of whole minutes spent in activity.
  - `bodyFat` BodyFat — Body fat measurement.
    - `sampleTime` ObservationSampleTime — Represents a sample time of an observed data point.
      - `physicalTime` string, google-datetime — Required. The time of the observation.
      - `utcOffset` string, google-duration — Required. The offset of the user's local time during the observation relative to the Coordinated Universal Time (UTC).
      - `civilTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
    - `percentage` number, double — Required. Body fat percentage, in range [0, 100].
  - `dataSource` DataSource — Data Source definition to track the origin of data. Each health data point, regardless of the complexity or data model (whether a simple step count or a detailed sleep session) must retain information about its source of origin (e.g. the device or app that collected it).
    - `platform` 'PLATFORM_UNSPECIFIED' | 'FITBIT' | 'HEALTH_CONNECT' | 'HEALTH_KIT' | 'FIT' | 'FITBIT_WEB_API' | 'NEST' | 'GOOGLE_WEB_API' | 'GOOGLE_PARTNER_INTEGRATION' — Output only. Captures the platform that uploaded the data.
    - `recordingMethod` 'RECORDING_METHOD_UNSPECIFIED' | 'MANUAL' | 'PASSIVELY_MEASURED' | 'DERIVED' | 'ACTIVELY_MEASURED' | 'UNKNOWN' — Optional. Captures how the data was recorded.
    - `application` Application — Optional metadata for the application that provided this data.
      - `googleWebClientId` string — Output only. The Google OAuth 2.0 client ID of the web application or service that recorded the data. This is the client ID used during the Google OAuth flow to obtain user credentials. This field is system-populated when the data is uploaded from Google Web API.
      - `packageName` string — Output only. A unique identifier for the mobile application that was the source of the data. This is typically the application's package name on Android (e.g., `com.google.fitbit`) or the bundle ID on iOS. This field is informational and helps trace data origin. This field is system-populated when the data is uploaded from the Fitbit mobile application, Health Connect or Health Kit.
      - `webClientId` string — Output only. The client ID of the application that recorded the data. This ID is a legacy Fitbit API client ID, which is different from a Google OAuth client ID. Example format: `ABC123`. This field is system-populated and used for tracing data from legacy Fitbit API integrations. This field is system-populated when the data is uploaded from a legacy Fitbit API integration.
    - `device` Device — Captures metadata about the device that recorded the measurement.
      - `manufacturer` string — Optional. An optional manufacturer of the device.
      - `formFactor` 'FORM_FACTOR_UNSPECIFIED' | 'FITNESS_BAND' | 'WATCH' | 'PHONE' | 'RING' | 'CHEST_STRAP' | 'SCALE' | 'TABLET' | 'HEAD_MOUNTED' | 'SMART_DISPLAY' — Optional. Captures the form factor of the device.
      - `displayName` string — Optional. An optional name for the device.
  - `steps` Steps — Step count over the time interval.
    - `interval` ObservationTimeInterval — Represents a time interval of an observed data point.
      - `endUtcOffset` string, google-duration — Required. The offset of the user's local time at the end of the observation relative to the Coordinated Universal Time (UTC).
      - `startUtcOffset` string, google-duration — Required. The offset of the user's local time at the start of the observation relative to the Coordinated Universal Time (UTC).
      - `civilStartTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
      - `startTime` string, google-datetime — Required. Observed interval start time.
      - `endTime` string, google-datetime — Required. Observed interval end time.
      - `civilEndTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
    - `count` string, int64 — Required. Number of steps in the recorded interval.
  - `bloodGlucose` BloodGlucose — Represents a blood glucose level measurement. LINT: LEGACY_NAMES
    - `specimen` 'SPECIMEN_UNSPECIFIED' | 'CAPILLARY_BLOOD' | 'INTERSTITIAL_FLUID' | 'PLASMA' | 'SERUM' | 'TEARS' | 'WHOLE_BLOOD' — Optional. Type of body fluid used to measure the blood glucose.
    - `sampleTime` ObservationSampleTime — Represents a sample time of an observed data point.
      - `physicalTime` string, google-datetime — Required. The time of the observation.
      - `utcOffset` string, google-duration — Required. The offset of the user's local time during the observation relative to the Coordinated Universal Time (UTC).
      - `civilTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
    - `bloodGlucoseMilligramsPerDeciliter` number, double — Required. Blood glucose level concentration in mg/dL.
    - `notes` string — Optional. Standard free-form notes captured at manual logging.
    - `measurementSource` 'MEASUREMENT_SOURCE_UNSPECIFIED' | 'SELF_MONITORING_BLOOD_GLUCOSE' | 'CONTINUOUS_GLUCOSE_MONITORING' | 'LAB_TEST' — Optional. Source of the measurement.
    - `mealType` 'MEAL_TYPE_UNSPECIFIED' | 'BREAKFAST' | 'LUNCH' | 'DINNER' | 'SNACK' — Optional. Meal type of the measurement.
    - `measurementTiming` 'MEASUREMENT_TIMING_UNSPECIFIED' | 'AFTER_MEAL' | 'BEFORE_MEAL' | 'FASTING' | 'GENERAL' | 'BEFORE_BED' | 'OVER_NIGHT' — Optional. Timing of the measurement.
  - `vo2Max` VO2Max — VO2 max measurement.
    - `sampleTime` ObservationSampleTime — Represents a sample time of an observed data point.
      - `physicalTime` string, google-datetime — Required. The time of the observation.
      - `utcOffset` string, google-duration — Required. The offset of the user's local time during the observation relative to the Coordinated Universal Time (UTC).
      - `civilTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
    - `vo2Max` number, double — Required. VO2 max value measured as in ml consumed oxygen / kg of body weight / min.
    - `measurementMethod` 'MEASUREMENT_METHOD_UNSPECIFIED' | 'FITBIT_RUN' | 'GOOGLE_DEMOGRAPHIC' | 'COOPER_TEST' | 'HEART_RATE_RATIO' | 'METABOLIC_CART' | 'MULTISTAGE_FITNESS_TEST' | 'ROCKPORT_FITNESS_TEST' | 'MAX_EXERCISE' | 'PREDICTION_SUB_MAX_EXERCISE' | 'PREDICTION_NON_EXERCISE' | 'OTHER' — Optional. The method used to measure the VO2 max value.
  - `electrocardiogram` Electrocardiogram — Represents an Electrocardiogram (ECG) measurement session. This data type is based on SaMD feature and any changes to it may require additional review.
    - `leadNumber` integer — Optional. The number of leads used for ECG reading.
    - `samplingFrequencyHertz` integer — Optional. The sampling frequency of waveform samples in hertz.
    - `medicalDeviceInfo` MedicalDeviceInfo — Software as Medical Device (SaMD) metadata. Used to construct the Unique Device Identifier (UDI).
      - `firmwareVersion` string — Output only. The firmware version running on the compatible device used to collect the data.
      - `algorithmVersion` string — Output only. The algorithm version used by the feature.
      - `featureVersion` string — Output only. The version of the feature/app running on the device.
      - `deviceModel` string — Output only. The model name or device type of the compatible device used to collect the data.
      - `serviceVersion` string — Output only. The service version used by the feature.
    - `beatsPerMinuteAvg` string, int64 — Optional. Average heart rate recorded during ECG reading in beats per minute.
    - `interval` SessionTimeInterval — Represents a time interval of session data point, which bundles multiple observed metrics together.
      - `startTime` string, google-datetime — Required. The start time of the observed session.
      - `endTime` string, google-datetime — Required. The end time of the observed session.
      - `civilStartTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
      - `startUtcOffset` string, google-duration — Required. The offset of the user's local time at the start of the session relative to the Coordinated Universal Time (UTC).
      - `endUtcOffset` string, google-duration — Required. The offset of the user's local time at the end of the session relative to the Coordinated Universal Time (UTC).
      - `civilEndTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
    - `resultClassification` 'RESULT_CLASSIFICATION_UNSPECIFIED' | 'NORMAL_SINUS_RHYTHM' | 'ATRIAL_FIBRILLATION' | 'INCONCLUSIVE' | 'INCONCLUSIVE_HIGH_HEART_RATE' | 'INCONCLUSIVE_LOW_HEART_RATE' | 'UNREADABLE' | 'NOT_ANALYZED' — Optional. The result classification of the ECG reading.
    - `waveformSamples` integer[] — 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.
    - `millivoltsScalingFactor` integer — Optional. The factor by which to divide waveform samples to get voltage in millivolts: millivolts = waveform_sample / millivolts_scaling_factor.
  - `coreBodyTemperature` CoreBodyTemperature — Core body temperature measurement, distinct from peripheral body temperature, reflects the temperature of the body's internal organs.
    - `id` string — Optional. The unique identifier of the core body temperature measurement.
    - `sampleTime` ObservationSampleTime — Represents a sample time of an observed data point.
      - `physicalTime` string, google-datetime — Required. The time of the observation.
      - `utcOffset` string, google-duration — Required. The offset of the user's local time during the observation relative to the Coordinated Universal Time (UTC).
      - `civilTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
    - `measurementLocation` 'MEASUREMENT_LOCATION_UNSPECIFIED' | 'OTHER' | 'ARMPIT' | 'BODY' | 'EAR' | 'FINGER' | 'GASTRO_INTESTINAL' | 'MOUTH' | 'RECTUM' | 'TOE' | 'EAR_DRUM' | 'TEMPORAL_ARTERY' | 'FOREHEAD' | 'URINARY_BLADDER' | 'NASAL' | 'NASOPHARYNGEAL' | 'WRIST' | 'VAGINA' — Optional. The location of the core body temperature measurement.
    - `temperatureCelsius` number, double — Required. The core body temperature in Celsius.
  - `dailyRestingHeartRate` DailyRestingHeartRate — Measures the daily resting heart rate for a user, calculated using the all day heart rate measurements.
    - `beatsPerMinute` string, int64 — Required. The resting heart rate value in beats per minute.
    - `dailyRestingHeartRateMetadata` DailyRestingHeartRateMetadata — Metadata for the daily resting heart rate.
      - `calculationMethod` 'CALCULATION_METHOD_UNSPECIFIED' | 'WITH_SLEEP' | 'ONLY_WITH_AWAKE_DATA' — Required. The method used to calculate the resting heart rate.
    - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
      - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
      - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
      - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
  - `food` Food — Represents a food item.
    - `description` string — Optional. The description of the food.
    - `servings` FoodServing[] — Optional. The serving of the food.
      - `foodMeasurementUnitDisplayName` string — Output only. Legacy measurement unit for serving size in singular form (e.g. "piece", "gram").
      - `foodMeasurementUnitDisplayNamePlural` string — Output only. Legacy measurement unit for serving size in plural form (e.g. "pieces", "grams").
      - `multiplier` number, double — Optional. Value representing the multiplier used to compute the energy when using this serving instead of the default serving.
      - `amount` number, double — Optional. Amount of food consumed, fractional values are supported.
      - `foodMeasurementUnit` string — Required. Food measurement unit
    - `brand` string — Optional. The brand of the food.
    - `accessLevel` 'FOOD_ACCESS_LEVEL_UNSPECIFIED' | 'FOOD_ACCESS_LEVEL_PUBLIC' | 'FOOD_ACCESS_LEVEL_PRIVATE' — Required. The access level of the food.
    - `defaultServing` FoodServing — Represents different properties and information about the serving of a specific food.
      - `foodMeasurementUnitDisplayName` string — Output only. Legacy measurement unit for serving size in singular form (e.g. "piece", "gram").
      - `foodMeasurementUnitDisplayNamePlural` string — Output only. Legacy measurement unit for serving size in plural form (e.g. "pieces", "grams").
      - `multiplier` number, double — Optional. Value representing the multiplier used to compute the energy when using this serving instead of the default serving.
      - `amount` number, double — Optional. Amount of food consumed, fractional values are supported.
      - `foodMeasurementUnit` string — Required. Food measurement unit
    - `mealType` 'MEAL_TYPE_UNSPECIFIED' | 'BEFORE_BREAKFAST' | 'BREAKFAST' | 'BEFORE_LUNCH' | 'LUNCH' | 'BEFORE_DINNER' | 'DINNER' | 'AFTER_DINNER' | 'SNACK' | 'ANYTIME' — Optional. The meal type associated with this food.
    - `energyAvg` EnergyQuantity — Represents the energy quantity.
      - `kcal` number, double — Required. The energy value in kilocalories.
      - `userProvidedUnit` 'ENERGY_UNIT_UNSPECIFIED' | 'JOULE' | 'KILOJOULE' | 'KILOCALORIE' | 'SMALL_CALORIE' | 'CALORIE' — Optional. Value representing the user provided unit.
    - `energyFromFat` EnergyQuantity — Represents the energy quantity.
      - `kcal` number, double — Required. The energy value in kilocalories.
      - `userProvidedUnit` 'ENERGY_UNIT_UNSPECIFIED' | 'JOULE' | 'KILOJOULE' | 'KILOCALORIE' | 'SMALL_CALORIE' | 'CALORIE' — Optional. Value representing the user provided unit.
    - `totalFat` WeightQuantity — Represents the weight quantity.
      - `userProvidedUnit` 'WEIGHT_UNIT_UNSPECIFIED' | 'GRAM' | 'KILOGRAM' | 'OUNCE' | 'POUND' | 'STONE' | 'MILLIGRAM' | 'MICROGRAM' | 'NANOGRAM' — Optional. Value representing the user provided unit.
      - `grams` number, double — Required. The weight value in grams.
    - `nutrients` NutrientQuantity[] — Optional. Value representing the nutrients of the food for the default serving.
      - `quantity` WeightQuantity — Represents the weight quantity.
        - `userProvidedUnit` 'WEIGHT_UNIT_UNSPECIFIED' | 'GRAM' | 'KILOGRAM' | 'OUNCE' | 'POUND' | 'STONE' | 'MILLIGRAM' | 'MICROGRAM' | 'NANOGRAM' — Optional. Value representing the user provided unit.
        - `grams` number, double — Required. The weight value in grams.
      - `nutrient` 'NUTRIENT_UNSPECIFIED' | 'BIOTIN' | 'CAFFEINE' | 'CALCIUM' | 'CHLORIDE' | 'CARBOHYDRATES' | 'CHOLESTEROL' | 'CHROMIUM' | 'COPPER' | 'DIETARY_FIBER' | 'FOLIC_ACID' | 'IODINE' | 'IRON' | 'MAGNESIUM' | 'MANGANESE' | 'MOLYBDENUM' | 'MONOUNSATURATED_FAT' | 'NIACIN' | 'PANTOTHENIC_ACID' | 'PHOSPHORUS' | 'POLYUNSATURATED_FAT' | 'POTASSIUM' | 'PROTEIN' | 'RIBOFLAVIN' | 'SATURATED_FAT' | 'SELENIUM' | 'SODIUM' | 'SUGAR' | 'THIAMIN' | 'TRANS_FAT' | 'UNSATURATED_FAT' | 'VITAMIN_A' | 'VITAMIN_B12' | 'VITAMIN_B6' | 'VITAMIN_C' | 'VITAMIN_D' | 'VITAMIN_E' | 'VITAMIN_K' | 'ZINC' | 'FOLATE' — Required. The nutrient type.
    - `energyMin` EnergyQuantity — Represents the energy quantity.
      - `kcal` number, double — Required. The energy value in kilocalories.
      - `userProvidedUnit` 'ENERGY_UNIT_UNSPECIFIED' | 'JOULE' | 'KILOJOULE' | 'KILOCALORIE' | 'SMALL_CALORIE' | 'CALORIE' — Optional. Value representing the user provided unit.
    - `displayName` string — Required. The display name of the food.
    - `languageCode` string — Optional. The language code where the food is available in format xx-XX. Supported values are defined in Settings.food_language_code.
    - `totalCarbohydrate` WeightQuantity — Represents the weight quantity.
      - `userProvidedUnit` 'WEIGHT_UNIT_UNSPECIFIED' | 'GRAM' | 'KILOGRAM' | 'OUNCE' | 'POUND' | 'STONE' | 'MILLIGRAM' | 'MICROGRAM' | 'NANOGRAM' — Optional. Value representing the user provided unit.
      - `grams` number, double — Required. The weight value in grams.
    - `energyMax` EnergyQuantity — Represents the energy quantity.
      - `kcal` number, double — Required. The energy value in kilocalories.
      - `userProvidedUnit` 'ENERGY_UNIT_UNSPECIFIED' | 'JOULE' | 'KILOJOULE' | 'KILOCALORIE' | 'SMALL_CALORIE' | 'CALORIE' — Optional. Value representing the user provided unit.
  - `swimLengthsData` SwimLengthsData — Swim lengths data over the time interval.
    - `strokeCount` string, int64 — Required. Number of strokes in the lap.
    - `interval` ObservationTimeInterval — Represents a time interval of an observed data point.
      - `endUtcOffset` string, google-duration — Required. The offset of the user's local time at the end of the observation relative to the Coordinated Universal Time (UTC).
      - `startUtcOffset` string, google-duration — Required. The offset of the user's local time at the start of the observation relative to the Coordinated Universal Time (UTC).
      - `civilStartTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
      - `startTime` string, google-datetime — Required. Observed interval start time.
      - `endTime` string, google-datetime — Required. Observed interval end time.
      - `civilEndTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
    - `swimStrokeType` 'SWIM_STROKE_TYPE_UNSPECIFIED' | 'FREESTYLE' | 'BACKSTROKE' | 'BREASTSTROKE' | 'BUTTERFLY' — Required. Swim stroke type.
  - `dailyHeartRateVariability` DailyHeartRateVariability — 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`
    - `deepSleepRootMeanSquareOfSuccessiveDifferencesMilliseconds` number, double — Optional. The root mean square of successive differences (RMSSD) value during deep sleep.
    - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
      - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
      - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
      - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
    - `averageHeartRateVariabilityMilliseconds` number, double — Optional. A user's average heart rate variability calculated using the root mean square of successive differences (RMSSD) in times between heartbeats.
    - `nonRemHeartRateBeatsPerMinute` string, int64 — Optional. Non-REM heart rate
    - `entropy` number, double — Optional. The Shanon entropy of heartbeat intervals. Entropy quantifies randomness or disorder in a system. High entropy indicates high HRV. Entropy is measured from the histogram of time interval between successive heart beats values measured during sleep.
  - `floors` Floors — Gained elevation measured in floors over the time interval
    - `interval` ObservationTimeInterval — Represents a time interval of an observed data point.
      - `endUtcOffset` string, google-duration — Required. The offset of the user's local time at the end of the observation relative to the Coordinated Universal Time (UTC).
      - `startUtcOffset` string, google-duration — Required. The offset of the user's local time at the start of the observation relative to the Coordinated Universal Time (UTC).
      - `civilStartTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
      - `startTime` string, google-datetime — Required. Observed interval start time.
      - `endTime` string, google-datetime — Required. Observed interval end time.
      - `civilEndTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
    - `count` string, int64 — Required. Number of floors in the recorded interval
  - `activeEnergyBurned` ActiveEnergyBurned — Energy burned as part of an activity, excluding the basal energy burn.
    - `kcal` number, double — Required. Energy burned during an activity, measured in kilocalories.
    - `interval` ObservationTimeInterval — Represents a time interval of an observed data point.
      - `endUtcOffset` string, google-duration — Required. The offset of the user's local time at the end of the observation relative to the Coordinated Universal Time (UTC).
      - `startUtcOffset` string, google-duration — Required. The offset of the user's local time at the start of the observation relative to the Coordinated Universal Time (UTC).
      - `civilStartTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
      - `startTime` string, google-datetime — Required. Observed interval start time.
      - `endTime` string, google-datetime — Required. Observed interval end time.
      - `civilEndTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
  - `activityLevel` ActivityLevel — Internal type to capture activity level during a certain time interval.
    - `interval` ObservationTimeInterval — Represents a time interval of an observed data point.
      - `endUtcOffset` string, google-duration — Required. The offset of the user's local time at the end of the observation relative to the Coordinated Universal Time (UTC).
      - `startUtcOffset` string, google-duration — Required. The offset of the user's local time at the start of the observation relative to the Coordinated Universal Time (UTC).
      - `civilStartTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
      - `startTime` string, google-datetime — Required. Observed interval start time.
      - `endTime` string, google-datetime — Required. Observed interval end time.
      - `civilEndTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
    - `activityLevelType` 'ACTIVITY_LEVEL_TYPE_UNSPECIFIED' | 'SEDENTARY' | 'LIGHTLY_ACTIVE' | 'MODERATELY_ACTIVE' | 'VERY_ACTIVE' — Required. Activity level type in the given time interval.
  - `sedentaryPeriod` SedentaryPeriod — SedentaryPeriod SedentaryPeriod data represents the periods of time that the user was sedentary (i.e. not moving while wearing the device).
    - `interval` ObservationTimeInterval — Represents a time interval of an observed data point.
      - `endUtcOffset` string, google-duration — Required. The offset of the user's local time at the end of the observation relative to the Coordinated Universal Time (UTC).
      - `startUtcOffset` string, google-duration — Required. The offset of the user's local time at the start of the observation relative to the Coordinated Universal Time (UTC).
      - `civilStartTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
      - `startTime` string, google-datetime — Required. Observed interval start time.
      - `endTime` string, google-datetime — Required. Observed interval end time.
      - `civilEndTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
  - `dailyOxygenSaturation` DailyOxygenSaturation — A daily oxygen saturation (SpO2) record. Represents the user's daily oxygen saturation summary, typically calculated during sleep.
    - `averagePercentage` number, double — Required. The average value of the oxygen saturation samples during the sleep.
    - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
      - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
      - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
      - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
    - `standardDeviationPercentage` number, double — Optional. Standard deviation of the daily oxygen saturation averages from the past 7-30 days.
    - `upperBoundPercentage` number, double — Required. The upper bound of the confidence interval of oxygen saturation samples during sleep.
    - `lowerBoundPercentage` number, double — Required. The lower bound of the confidence interval of oxygen saturation samples during sleep.
  - `nutritionLog` NutritionLog — Holds information about food logged by a user. 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 editable.
    - `serving` Serving — Represents different properties and information about the serving of a specific food.
      - `amount` number, double — Optional. The number of servings.
      - `foodMeasurementUnit` string — Required. Food measurement unit
      - `foodMeasurementUnitDisplayName` string — Output only. Legacy measurement unit for serving size in singular form (e.g. "piece", "gram").
    - `energy` EnergyQuantity — Represents the energy quantity.
      - `kcal` number, double — Required. The energy value in kilocalories.
      - `userProvidedUnit` 'ENERGY_UNIT_UNSPECIFIED' | 'JOULE' | 'KILOJOULE' | 'KILOCALORIE' | 'SMALL_CALORIE' | 'CALORIE' — Optional. Value representing the user provided unit.
    - `food` string — Optional. The resource name of the Food item. Required when creating a nutrition log from an identified food. For anonymous food logs, use the `food_display_name` field instead.
    - `totalCarbohydrate` WeightQuantity — Represents the weight quantity.
      - `userProvidedUnit` 'WEIGHT_UNIT_UNSPECIFIED' | 'GRAM' | 'KILOGRAM' | 'OUNCE' | 'POUND' | 'STONE' | 'MILLIGRAM' | 'MICROGRAM' | 'NANOGRAM' — Optional. Value representing the user provided unit.
      - `grams` number, double — Required. The weight value in grams.
    - `mealType` 'MEAL_TYPE_UNSPECIFIED' | 'BEFORE_BREAKFAST' | 'BREAKFAST' | 'BEFORE_LUNCH' | 'LUNCH' | 'BEFORE_DINNER' | 'DINNER' | 'AFTER_DINNER' | 'SNACK' | 'ANYTIME' — Optional. The meal category. One of `BREAKFAST`, `LUNCH`, `DINNER`, or `SNACK`.
    - `energyFromFat` EnergyQuantity — Represents the energy quantity.
      - `kcal` number, double — Required. The energy value in kilocalories.
      - `userProvidedUnit` 'ENERGY_UNIT_UNSPECIFIED' | 'JOULE' | 'KILOJOULE' | 'KILOCALORIE' | 'SMALL_CALORIE' | 'CALORIE' — Optional. Value representing the user provided unit.
    - `totalFat` WeightQuantity — Represents the weight quantity.
      - `userProvidedUnit` 'WEIGHT_UNIT_UNSPECIFIED' | 'GRAM' | 'KILOGRAM' | 'OUNCE' | 'POUND' | 'STONE' | 'MILLIGRAM' | 'MICROGRAM' | 'NANOGRAM' — Optional. Value representing the user provided unit.
      - `grams` number, double — Required. The weight value in grams.
    - `nutrients` NutrientQuantity[] — Optional. An array of individual nutrient values for the nutrition log.
      - `quantity` WeightQuantity — Represents the weight quantity.
        - `userProvidedUnit` 'WEIGHT_UNIT_UNSPECIFIED' | 'GRAM' | 'KILOGRAM' | 'OUNCE' | 'POUND' | 'STONE' | 'MILLIGRAM' | 'MICROGRAM' | 'NANOGRAM' — Optional. Value representing the user provided unit.
        - `grams` number, double — Required. The weight value in grams.
      - `nutrient` 'NUTRIENT_UNSPECIFIED' | 'BIOTIN' | 'CAFFEINE' | 'CALCIUM' | 'CHLORIDE' | 'CARBOHYDRATES' | 'CHOLESTEROL' | 'CHROMIUM' | 'COPPER' | 'DIETARY_FIBER' | 'FOLIC_ACID' | 'IODINE' | 'IRON' | 'MAGNESIUM' | 'MANGANESE' | 'MOLYBDENUM' | 'MONOUNSATURATED_FAT' | 'NIACIN' | 'PANTOTHENIC_ACID' | 'PHOSPHORUS' | 'POLYUNSATURATED_FAT' | 'POTASSIUM' | 'PROTEIN' | 'RIBOFLAVIN' | 'SATURATED_FAT' | 'SELENIUM' | 'SODIUM' | 'SUGAR' | 'THIAMIN' | 'TRANS_FAT' | 'UNSATURATED_FAT' | 'VITAMIN_A' | 'VITAMIN_B12' | 'VITAMIN_B6' | 'VITAMIN_C' | 'VITAMIN_D' | 'VITAMIN_E' | 'VITAMIN_K' | 'ZINC' | 'FOLATE' — Required. The nutrient type.
    - `foodDisplayName` string — The display name of the food. For identified food logs, this is populated automatically from the referenced food.
    - `interval` SessionTimeInterval — Represents a time interval of session data point, which bundles multiple observed metrics together.
      - `startTime` string, google-datetime — Required. The start time of the observed session.
      - `endTime` string, google-datetime — Required. The end time of the observed session.
      - `civilStartTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
      - `startUtcOffset` string, google-duration — Required. The offset of the user's local time at the start of the session relative to the Coordinated Universal Time (UTC).
      - `endUtcOffset` string, google-duration — Required. The offset of the user's local time at the end of the session relative to the Coordinated Universal Time (UTC).
      - `civilEndTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
  - `height` Height — Body height measurement.
    - `heightMillimeters` string, int64 — Required. Height of the user in millimeters.
    - `sampleTime` ObservationSampleTime — Represents a sample time of an observed data point.
      - `physicalTime` string, google-datetime — Required. The time of the observation.
      - `utcOffset` string, google-duration — Required. The offset of the user's local time during the observation relative to the Coordinated Universal Time (UTC).
      - `civilTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
  - `heartRate` HeartRate — A heart rate measurement.
    - `metadata` HeartRateMetadata — Heart rate metadata.
      - `sensorLocation` 'SENSOR_LOCATION_UNSPECIFIED' | 'CHEST' | 'WRIST' | 'FINGER' | 'HAND' | 'EAR_LOBE' | 'FOOT' — Optional. Indicates the location of the sensor that measured the heart rate.
      - `motionContext` 'MOTION_CONTEXT_UNSPECIFIED' | 'ACTIVE' | 'SEDENTARY' — Optional. Indicates the user’s level of activity when the heart rate sample was measured
    - `beatsPerMinute` string, int64 — Required. The heart rate value in beats per minute.
    - `sampleTime` ObservationSampleTime — Represents a sample time of an observed data point.
      - `physicalTime` string, google-datetime — Required. The time of the observation.
      - `utcOffset` string, google-duration — Required. The offset of the user's local time during the observation relative to the Coordinated Universal Time (UTC).
      - `civilTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
  - `distance` Distance — Distance traveled over an interval of time.
    - `millimeters` string, int64 — Required. Distance in millimeters over the observed interval.
    - `interval` ObservationTimeInterval — Represents a time interval of an observed data point.
      - `endUtcOffset` string, google-duration — Required. The offset of the user's local time at the end of the observation relative to the Coordinated Universal Time (UTC).
      - `startUtcOffset` string, google-duration — Required. The offset of the user's local time at the start of the observation relative to the Coordinated Universal Time (UTC).
      - `civilStartTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
      - `startTime` string, google-datetime — Required. Observed interval start time.
      - `endTime` string, google-datetime — Required. Observed interval end time.
      - `civilEndTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
  - `hydrationLog` HydrationLog — Holds information about a user logged hydration.
    - `interval` SessionTimeInterval — Represents a time interval of session data point, which bundles multiple observed metrics together.
      - `startTime` string, google-datetime — Required. The start time of the observed session.
      - `endTime` string, google-datetime — Required. The end time of the observed session.
      - `civilStartTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
      - `startUtcOffset` string, google-duration — Required. The offset of the user's local time at the start of the session relative to the Coordinated Universal Time (UTC).
      - `endUtcOffset` string, google-duration — Required. The offset of the user's local time at the end of the session relative to the Coordinated Universal Time (UTC).
      - `civilEndTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
    - `amountConsumed` VolumeQuantity — Represents the volume quantity.
      - `userProvidedUnit` 'VOLUME_UNIT_UNSPECIFIED' | 'CUP_IMPERIAL' | 'CUP_US' | 'FLUID_OUNCE_IMPERIAL' | 'FLUID_OUNCE_US' | 'LITER' | 'MILLILITER' | 'PINT_IMPERIAL' | 'PINT_US' — Optional. Value representing the user provided unit, used only for user-facing input and display purposes. In the API format, all volume quantities are converted to milliliters.
      - `milliliters` number, double — Required. Value representing the volume in milliliters.
  - `exercise` Exercise — An exercise that stores information about a physical activity.
    - `metricsSummary` MetricsSummary — Summary metrics for an exercise.
      - `totalSwimLengths` number, double — Optional. Number of full pool lengths completed during the exercise. Only present in the swimming exercises at the top level as in the summary of the whole exercise.
      - `distanceMillimeters` number, double — Optional. Total distance covered by the user during the exercise.
      - `averageSpeedMillimetersPerSecond` number, double — Optional. Average speed in millimeters per second.
      - `averagePaceSecondsPerMeter` number, double — Optional. Average pace in seconds per meter.
      - `averageHeartRateBeatsPerMinute` string, int64 — Optional. Average heart rate during the exercise.
      - `activeZoneMinutes` string, int64 — Optional. Total active zone minutes for the exercise.
      - `heartRateZoneDurations` TimeInHeartRateZones — Time spent in each heart rate zone.
        - `vigorousTime` string, google-duration — Optional. Time spent in vigorous heart rate zone.
        - `peakTime` string, google-duration — Optional. Time spent in peak heart rate zone.
        - `lightTime` string, google-duration — Optional. Time spent in light heart rate zone.
        - `moderateTime` string, google-duration — Optional. Time spent in moderate heart rate zone.
      - `steps` string, int64 — Optional. Total steps taken during the exercise.
      - `mobilityMetrics` MobilityMetrics — Mobility workouts specific metrics
        - `avgVerticalRatio` number, double — Optional. Vertical oscillation/stride length between [5.0, 11.0].
        - `avgVerticalOscillationMillimeters` string, int64 — Optional. Distance off the ground your center of mass moves with each stride while running
        - `avgStrideLengthMillimeters` string, int64 — Optional. Stride length is a measure of the distance covered by a single stride
        - `avgGroundContactTimeDuration` string, google-duration — Optional. The ground contact time for a particular stride is the amount of time for which the foot was in contact with the ground on that stride
        - `avgCadenceStepsPerMinute` number, double — Optional. Cadence is a measure of the frequency of your foot strikes. Steps / min in real time during workout.
      - `elevationGainMillimeters` number, double — Optional. Total elevation gain during the exercise.
      - `runVo2Max` number, double — Optional. Run VO2 max value for the exercise. Only present in the running exercises at the top level as in the summary of the whole exercise.
      - `caloriesKcal` number, double — Optional. Total calories burned by the user during the exercise.
    - `updateTime` string, google-datetime — Output only. This is the timestamp of the last update to the exercise.
    - `displayName` string — Required. Exercise display name.
    - `activeDuration` string, google-duration — Optional. Duration excluding pauses.
    - `exerciseEvents` ExerciseEvent[] — Optional. Exercise events that happen during an exercise, such as pause & restarts.
      - `exerciseEventType` 'EXERCISE_EVENT_TYPE_UNSPECIFIED' | 'START' | 'STOP' | 'PAUSE' | 'RESUME' | 'AUTO_PAUSE' | 'AUTO_RESUME' — Required. The type of the event, such as start, stop, pause, resume.
      - `eventUtcOffset` string, google-duration — Required. Exercise event time offset from UTC
      - `eventTime` string, google-datetime — Required. Exercise event time
    - `exerciseMetadata` ExerciseMetadata — Additional exercise metadata.
      - `poolLengthMillimeters` string, int64 — Optional. Pool length in millimeters. Only present in the swimming exercises.
      - `hasGps` boolean — Optional. Whether the exercise had GPS tracking.
    - `splitSummaries` SplitSummary[] — Optional. Laps or splits recorded within an exercise. Laps could be split based on distance or other criteria (duration, etc.) Laps should not be overlapping with each other.
      - `activeDuration` string, google-duration — Output only. Lap time excluding the pauses.
      - `endUtcOffset` string, google-duration — Required. Lap end time offset from UTC
      - `startUtcOffset` string, google-duration — Required. Lap start time offset from UTC
      - `startTime` string, google-datetime — Required. Lap start time
      - `endTime` string, google-datetime — Required. Lap end time
      - `metricsSummary` MetricsSummary — Summary metrics for an exercise.
        - `totalSwimLengths` number, double — Optional. Number of full pool lengths completed during the exercise. Only present in the swimming exercises at the top level as in the summary of the whole exercise.
        - `distanceMillimeters` number, double — Optional. Total distance covered by the user during the exercise.
        - `averageSpeedMillimetersPerSecond` number, double — Optional. Average speed in millimeters per second.
        - `averagePaceSecondsPerMeter` number, double — Optional. Average pace in seconds per meter.
        - `averageHeartRateBeatsPerMinute` string, int64 — Optional. Average heart rate during the exercise.
        - `activeZoneMinutes` string, int64 — Optional. Total active zone minutes for the exercise.
        - `heartRateZoneDurations` TimeInHeartRateZones — Time spent in each heart rate zone.
          - `vigorousTime` string, google-duration — Optional. Time spent in vigorous heart rate zone.
          - `peakTime` string, google-duration — Optional. Time spent in peak heart rate zone.
          - `lightTime` string, google-duration — Optional. Time spent in light heart rate zone.
          - `moderateTime` string, google-duration — Optional. Time spent in moderate heart rate zone.
        - `steps` string, int64 — Optional. Total steps taken during the exercise.
        - `mobilityMetrics` MobilityMetrics — Mobility workouts specific metrics
          - `avgVerticalRatio` number, double — Optional. Vertical oscillation/stride length between [5.0, 11.0].
          - `avgVerticalOscillationMillimeters` string, int64 — Optional. Distance off the ground your center of mass moves with each stride while running
          - `avgStrideLengthMillimeters` string, int64 — Optional. Stride length is a measure of the distance covered by a single stride
          - `avgGroundContactTimeDuration` string, google-duration — Optional. The ground contact time for a particular stride is the amount of time for which the foot was in contact with the ground on that stride
          - `avgCadenceStepsPerMinute` number, double — Optional. Cadence is a measure of the frequency of your foot strikes. Steps / min in real time during workout.
        - `elevationGainMillimeters` number, double — Optional. Total elevation gain during the exercise.
        - `runVo2Max` number, double — Optional. Run VO2 max value for the exercise. Only present in the running exercises at the top level as in the summary of the whole exercise.
        - `caloriesKcal` number, double — Optional. Total calories burned by the user during the exercise.
      - `splitType` 'SPLIT_TYPE_UNSPECIFIED' | 'MANUAL' | 'DURATION' | 'DISTANCE' | 'CALORIES' — Required. Method used to split the exercise laps. Users may manually mark the lap as complete even if the tracking is automatic.
    - `notes` string — Optional. Standard free-form notes captured at manual logging.
    - `createTime` string, google-datetime — Output only. Represents the timestamp of the creation of the exercise.
    - `exerciseType` 'EXERCISE_TYPE_UNSPECIFIED' | 'AEROBIC_WORKOUT' | 'ARCHERY' | 'ASSAULT_BIKE' | 'BACKPACKING' | 'BADMINTON' | 'BALLET' | 'BALLROOM_DANCE' | 'BARRE_CLASS' | 'BASEBALL' | 'BASKETBALL' | 'BIKING' | 'BILLIARDS' | 'BODY_WEIGHT' | 'BOOTCAMP' | 'BOWLING' | 'BOXING' | 'BREAKDANCING' | 'CALISTHENICS' | 'CANOEING' | 'CARDIO_SCULPT' | 'CARDIO_WORKOUT' | 'CARPENTRY' | 'CHEERLEADING' | 'CIRCUIT_TRAINING' | 'CLEANING' | 'CLIMBING' | 'CORE_TRAINING' | 'CRICKET' | 'CROQUET' | 'CROSS_COUNTRY_SKI' | 'CROSS_TRAINING' | 'CROSSFIT' | 'CURLING' | 'DANCING' | 'DIVING' | 'ELECTRIC_BIKE' | 'ELECTRIC_SCOOTER' | 'ELLIPTICAL' | 'EQUESTRIAN_SPORTS' | 'EXERCISE_CLASS' | 'FENCING' | 'FIELD_HOCKEY' | 'FISHING' | 'FITNESS_GAMING' | 'FOILING' | 'FOOTBALL_AMERICAN' | 'FOOTBALL_AUSTRALIAN' | 'FREE_WEIGHTS' | 'FRISBEE_PLAYING_GENERAL' | 'FUNCTIONAL_STRENGTH_TRAINING' | 'GARDENING' | 'GOLF' | 'GYMNASTICS' | 'HANDBALL' | 'HAND_CYCLING' | 'HIIT' | 'HIKING' | 'HIP_HOP' | 'HOCKEY' | 'HOEING' | 'HOUSEHOLD_CHORES' | 'HUNTING' | 'ICE_SKATING' | 'INCLINE_RUN' | 'INCLINE_WALK' | 'INDOOR_CLIMBING' | 'INTERVAL_WORKOUT' | 'JAZZ_DANCE' | 'JIU_JITSU' | 'JUMPING_ROPE' | 'KARATE' | 'KAYAKING' | 'KICKBOXING' | 'KITESURFING' | 'LACROSSE' | 'MARTIAL_ARTS' | 'MEDITATE' | 'MODERN_DANCE' | 'MOTOCROSS' | 'MOTORCYCLE' | 'MOUNTAIN_BIKE' | 'MOWING_LAWN' | 'MUAY_THAI' | 'MULTISPORT' | 'MUSICAL_PERFORMANCE' | 'NORDIC_WALKING' | 'ORIENTEERING' | 'OTHER' | 'OUTDOOR_BIKE' | 'OUTDOOR_WORKOUT' | 'PADDLEBOARDING' | 'PADEL' | 'PAINTING' | 'PARAGLIDING' | 'PARKOUR' | 'PICKELBALL' | 'PILATES' | 'POLO' | 'POWERLIFTING' | 'POWER_WALKING' | 'RACKET_SPORTS' | 'RACQUETBALL' | 'RESISTANCE_BANDS' | 'ROCK_CLIMBING' | 'ROLLERBLADING' | 'ROLLER_SKATING' | 'ROWING' | 'ROWING_MACHINE' | 'RUCKING' | 'RUGBY' | 'RUNNING' | 'SAILING' | 'SCOOTERING' | 'SCUBA_DIVING' | 'SHOOTING' | 'SHOVELING' | 'SKATEBOARDING' | 'SKATING' | 'SKIING' | 'SKYDIVING' | 'SNORKELING' | 'SNOWBOARDING' | 'SNOWMOBILING' | 'SNOWSHOEING' | 'SNOW_SPORT' | 'SOCCER' | 'SOFTBALL' | 'SPEED_SKATING' | 'SPINNING' | 'SPORT' | 'SQUASH' | 'STAIRCLIMBER' | 'STATIONARY_BIKE' | 'STEP_TRAINING' | 'STRENGTH_TRAINING' | 'STRETCHING' | 'STROLLER_WALK' | 'SURFING' | 'SWIMMING' | 'SWIMMING_OPEN_WATER' | 'SWIMMING_POOL' | 'SYNCHRONIZED_SWIMMING' | 'TABATA_WORKOUT' | 'TABLE_TENNIS' | 'TAEKWONDO' | 'TAI_CHI' | 'TANGO' | 'TENNIS' | 'TRACK_AND_FIELD' | 'TRAIL_RUN' | 'TRAMPOLINE' | 'TREADMILL' | 'TREADMILL_WALK' | 'TRX' | 'ULTIMATE_FRISBEE' | 'UNICYCLING' | 'VOLLEYBALL' | 'VOLLEYBALL_BEACH' | 'WAKEBOARDING' | 'WALKING' | 'WALK_WITH_WEIGHTS' | 'WATER_AEROBICS' | 'WATER_JOGGING' | 'WATER_POLO' | 'WATER_SKIING' | 'WATER_SPORT' | 'WATER_VOLLEYBALL' | 'WEEDING' | 'WEIGHTLIFTING' | 'WEIGHT_MACHINES' | 'WEIGHTS' | 'WHEELCHAIR' | 'WINDSURFING' | 'WORKOUT' | 'WRESTLING' | 'YOGA' | 'YOGA_BIKRAM' | 'YOGA_HATHA' | 'YOGA_POWER' | 'YOGA_VINYASA' | 'ZUMBA' — Required. The type of activity performed during an exercise.
    - `interval` SessionTimeInterval — Represents a time interval of session data point, which bundles multiple observed metrics together.
      - `startTime` string, google-datetime — Required. The start time of the observed session.
      - `endTime` string, google-datetime — Required. The end time of the observed session.
      - `civilStartTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
      - `startUtcOffset` string, google-duration — Required. The offset of the user's local time at the start of the session relative to the Coordinated Universal Time (UTC).
      - `endUtcOffset` string, google-duration — Required. The offset of the user's local time at the end of the session relative to the Coordinated Universal Time (UTC).
      - `civilEndTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
    - `splits` SplitSummary[] — Optional. The default split is 1 km or 1 mile. - if the movement distance is less than the default, then there are no splits - if the movement distance is greater than or equal to the default, then we have splits
      - `activeDuration` string, google-duration — Output only. Lap time excluding the pauses.
      - `endUtcOffset` string, google-duration — Required. Lap end time offset from UTC
      - `startUtcOffset` string, google-duration — Required. Lap start time offset from UTC
      - `startTime` string, google-datetime — Required. Lap start time
      - `endTime` string, google-datetime — Required. Lap end time
      - `metricsSummary` MetricsSummary — Summary metrics for an exercise.
        - `totalSwimLengths` number, double — Optional. Number of full pool lengths completed during the exercise. Only present in the swimming exercises at the top level as in the summary of the whole exercise.
        - `distanceMillimeters` number, double — Optional. Total distance covered by the user during the exercise.
        - `averageSpeedMillimetersPerSecond` number, double — Optional. Average speed in millimeters per second.
        - `averagePaceSecondsPerMeter` number, double — Optional. Average pace in seconds per meter.
        - `averageHeartRateBeatsPerMinute` string, int64 — Optional. Average heart rate during the exercise.
        - `activeZoneMinutes` string, int64 — Optional. Total active zone minutes for the exercise.
        - `heartRateZoneDurations` TimeInHeartRateZones — Time spent in each heart rate zone.
          - `vigorousTime` string, google-duration — Optional. Time spent in vigorous heart rate zone.
          - `peakTime` string, google-duration — Optional. Time spent in peak heart rate zone.
          - `lightTime` string, google-duration — Optional. Time spent in light heart rate zone.
          - `moderateTime` string, google-duration — Optional. Time spent in moderate heart rate zone.
        - `steps` string, int64 — Optional. Total steps taken during the exercise.
        - `mobilityMetrics` MobilityMetrics — Mobility workouts specific metrics
          - `avgVerticalRatio` number, double — Optional. Vertical oscillation/stride length between [5.0, 11.0].
          - `avgVerticalOscillationMillimeters` string, int64 — Optional. Distance off the ground your center of mass moves with each stride while running
          - `avgStrideLengthMillimeters` string, int64 — Optional. Stride length is a measure of the distance covered by a single stride
          - `avgGroundContactTimeDuration` string, google-duration — Optional. The ground contact time for a particular stride is the amount of time for which the foot was in contact with the ground on that stride
          - `avgCadenceStepsPerMinute` number, double — Optional. Cadence is a measure of the frequency of your foot strikes. Steps / min in real time during workout.
        - `elevationGainMillimeters` number, double — Optional. Total elevation gain during the exercise.
        - `runVo2Max` number, double — Optional. Run VO2 max value for the exercise. Only present in the running exercises at the top level as in the summary of the whole exercise.
        - `caloriesKcal` number, double — Optional. Total calories burned by the user during the exercise.
      - `splitType` 'SPLIT_TYPE_UNSPECIFIED' | 'MANUAL' | 'DURATION' | 'DISTANCE' | 'CALORIES' — Required. Method used to split the exercise laps. Users may manually mark the lap as complete even if the tracking is automatic.
  - `activeZoneMinutes` ActiveZoneMinutes — Record of active zone minutes in a given time interval.
    - `activeZoneMinutes` string, int64 — Required. Number of Active Zone Minutes earned in the given time interval. Note: active_zone_minutes equals to 1 for low intensity (fat burn) zones or 2 for high intensity zones (cardio, peak).
    - `heartRateZone` 'HEART_RATE_ZONE_UNSPECIFIED' | 'FAT_BURN' | 'CARDIO' | 'PEAK' — Required. Heart rate zone in which the active zone minutes have been earned, in the given time interval.
    - `interval` ObservationTimeInterval — Represents a time interval of an observed data point.
      - `endUtcOffset` string, google-duration — Required. The offset of the user's local time at the end of the observation relative to the Coordinated Universal Time (UTC).
      - `startUtcOffset` string, google-duration — Required. The offset of the user's local time at the start of the observation relative to the Coordinated Universal Time (UTC).
      - `civilStartTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
      - `startTime` string, google-datetime — Required. Observed interval start time.
      - `endTime` string, google-datetime — Required. Observed interval end time.
      - `civilEndTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
  - `altitude` Altitude — Captures the altitude gain (i.e. deltas), and not level above sea, for a user in millimeters.
    - `gainMillimeters` string, int64 — Required. Altitude gain in millimeters over the observed interval.
    - `interval` ObservationTimeInterval — Represents a time interval of an observed data point.
      - `endUtcOffset` string, google-duration — Required. The offset of the user's local time at the end of the observation relative to the Coordinated Universal Time (UTC).
      - `startUtcOffset` string, google-duration — Required. The offset of the user's local time at the start of the observation relative to the Coordinated Universal Time (UTC).
      - `civilStartTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
      - `startTime` string, google-datetime — Required. Observed interval start time.
      - `endTime` string, google-datetime — Required. Observed interval end time.
      - `civilEndTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
  - `timeInHeartRateZone` TimeInHeartRateZone — Time in heart rate zone record. It's an interval spent in specific heart rate zone.
    - `heartRateZoneType` 'HEART_RATE_ZONE_TYPE_UNSPECIFIED' | 'LIGHT' | 'MODERATE' | 'VIGOROUS' | 'PEAK' — Required. Heart rate zone type.
    - `interval` ObservationTimeInterval — Represents a time interval of an observed data point.
      - `endUtcOffset` string, google-duration — Required. The offset of the user's local time at the end of the observation relative to the Coordinated Universal Time (UTC).
      - `startUtcOffset` string, google-duration — Required. The offset of the user's local time at the start of the observation relative to the Coordinated Universal Time (UTC).
      - `civilStartTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
      - `startTime` string, google-datetime — Required. Observed interval start time.
      - `endTime` string, google-datetime — Required. Observed interval end time.
      - `civilEndTime` CivilDateTime — Civil time representation similar to google.type.DateTime, but ensures that neither the timezone nor the UTC offset can be set to avoid confusion between civil and physical time queries.
        - `date` Date — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
          - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
          - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `time` TimeOfDay — Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
          - `minutes` integer — Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
          - `seconds` integer — Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `hours` integer — Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
          - `nanos` integer — Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.

## Response `200`

Successful response

---

[API](https://skmtc.dev/google/apis/health.md) · [All operations](https://skmtc.dev/google/apis/health/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/google/health/revisions/601e805b7a55/schema)
