terra.models.v2.samples
1# Copyright 2022 Terra Enabling Developers Limited 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14import dataclasses 15import typing 16 17from terra.models import base_model 18 19__all__ = [ 20 "GlucoseDataSample", 21 "HeartRateDataSample", 22 "LapSample", 23 "HeartRateVariabilityDataSampleRMSSD", 24 "HeartRateVariabilityDataSampleSDNN", 25 "DistanceSample", 26 "StepSample", 27 "ElevationSample", 28 "PositionSample", 29 "PowerSample", 30 "SpeedSample", 31 "CadenceSample", 32 "ActivityLevelSample", 33 "METSample", 34 "TSSSample", 35 "SleepHypnogramSample", 36 "OxygenSaturationSample", 37 "BreathSample", 38 "SnoringSample", 39 "StressSample", 40 "BloodPressureSample", 41 "MeasurementDataSample", 42 "BodyTemperatureSample", 43 "SkinTemperatureSample", 44 "AmbientTemperatureSample", 45 "TemperatureSample", 46 "OtherDeviceData", 47 "HydrationMeasurementSample", 48 "Vo2MaxSample", 49 "PulseVelocitySample", 50 "AFibClassificationSample", 51 "DrinkSample", 52] 53 54 55@dataclasses.dataclass 56class GlucoseDataSample(base_model.TerraDataModel): 57 timestamp: typing.Optional[str] = dataclasses.field(default=None) 58 blood_glucose_mg_per_dL: typing.Optional[int] = dataclasses.field(default=None) 59 glucose_level_flag: typing.Optional[int] = dataclasses.field(default=None) 60 trend_arrow: typing.Optional[int] = dataclasses.field(default=None) 61 62 63@dataclasses.dataclass 64class HeartRateDataSample(base_model.TerraDataModel): 65 timestamp: typing.Optional[str] = dataclasses.field(default=None) 66 bpm: typing.Optional[float] = dataclasses.field(default=None) 67 68 69@dataclasses.dataclass 70class LapSample(base_model.TerraDataModel): 71 start_time: typing.Optional[str] = dataclasses.field(default=None) 72 distance_meters: typing.Optional[float] = dataclasses.field(default=None) 73 calories: typing.Optional[float] = dataclasses.field(default=None) 74 75 76@dataclasses.dataclass 77class HeartRateVariabilityDataSampleRMSSD(base_model.TerraDataModel): 78 timestamp: typing.Optional[str] = dataclasses.field(default=None) 79 hrv_rmssd: typing.Optional[float] = dataclasses.field(default=None) 80 81 82@dataclasses.dataclass 83class HeartRateVariabilityDataSampleSDNN(base_model.TerraDataModel): 84 timestamp: typing.Optional[str] = dataclasses.field(default=None) 85 hrv_sdnn: typing.Optional[float] = dataclasses.field(default=None) 86 87 88@dataclasses.dataclass 89class DistanceSample(base_model.TerraDataModel): 90 timestamp: typing.Optional[str] = dataclasses.field(default=None) 91 distance_meters: typing.Optional[float] = dataclasses.field(default=None) 92 timer_duration_seconds: typing.Optional[float] = dataclasses.field(default=None) 93 94 95@dataclasses.dataclass 96class StepSample(base_model.TerraDataModel): 97 timestamp: typing.Optional[str] = dataclasses.field(default=None) 98 steps: typing.Optional[float] = dataclasses.field(default=None) 99 timer_duration_seconds: typing.Optional[float] = dataclasses.field(default=None) 100 101 102@dataclasses.dataclass 103class CalorieSample(base_model.TerraDataModel): 104 timestamp: typing.Optional[str] = dataclasses.field(default=None) 105 calories: typing.Optional[float] = dataclasses.field(default=None) 106 timer_duration_seconds: typing.Optional[float] = dataclasses.field(default=None) 107 108 109@dataclasses.dataclass 110class FloorsClimbedSample(base_model.TerraDataModel): 111 timestamp: typing.Optional[str] = dataclasses.field(default=None) 112 floors_climbed: typing.Optional[float] = dataclasses.field(default=None) 113 timer_duration_seconds: typing.Optional[float] = dataclasses.field(default=None) 114 115 116@dataclasses.dataclass 117class ElevationSample(base_model.TerraDataModel): 118 timestamp: typing.Optional[str] = dataclasses.field(default=None) 119 elev_meters: typing.Optional[float] = dataclasses.field(default=None) 120 timer_duration_seconds: typing.Optional[float] = dataclasses.field(default=None) 121 122 123@dataclasses.dataclass 124class PositionSample(base_model.TerraDataModel): 125 timestamp: typing.Optional[str] = dataclasses.field(default=None) 126 coords_lat_lng_deg: typing.List[float] = dataclasses.field(default_factory=list) 127 timer_duration_seconds: typing.Optional[float] = dataclasses.field(default=None) 128 129 130@dataclasses.dataclass 131class PowerSample(base_model.TerraDataModel): 132 timestamp: typing.Optional[str] = dataclasses.field(default=None) 133 watts: typing.Optional[float] = dataclasses.field(default=None) 134 timer_duration_seconds: typing.Optional[float] = dataclasses.field(default=None) 135 136 137@dataclasses.dataclass 138class SpeedSample(base_model.TerraDataModel): 139 timestamp: typing.Optional[str] = dataclasses.field(default=None) 140 speed_meters_per_second: typing.Optional[float] = dataclasses.field(default=None) 141 timer_duration_seconds: typing.Optional[float] = dataclasses.field(default=None) 142 143 144@dataclasses.dataclass 145class CadenceSample(base_model.TerraDataModel): 146 timestamp: typing.Optional[str] = dataclasses.field(default=None) 147 cadence_rpm: typing.Optional[float] = dataclasses.field(default=None) 148 timer_duration_seconds: typing.Optional[float] = dataclasses.field(default=None) 149 150 151@dataclasses.dataclass 152class ActivityLevelSample(base_model.TerraDataModel): 153 timestamp: typing.Optional[str] = dataclasses.field(default=None) 154 activity_level: typing.Optional[int] = dataclasses.field(default=None) 155 156 157@dataclasses.dataclass 158class METSample(base_model.TerraDataModel): 159 timestamp: typing.Optional[str] = dataclasses.field(default=None) 160 level: typing.Optional[float] = dataclasses.field(default=None) 161 162 163@dataclasses.dataclass 164class TSSSample(base_model.TerraDataModel): 165 planned: typing.Optional[float] = dataclasses.field(default=None) 166 actual: typing.Optional[float] = dataclasses.field(default=None) 167 method: typing.Optional[str] = dataclasses.field(default=None) 168 intensity_factor_planned: typing.Optional[float] = dataclasses.field(default=None) 169 intensity_factor_actual: typing.Optional[float] = dataclasses.field(default=None) 170 normalized_power_watts: typing.Optional[float] = dataclasses.field(default=None) 171 172 173@dataclasses.dataclass 174class SleepHypnogramSample(base_model.TerraDataModel): 175 timestamp: typing.Optional[str] = dataclasses.field(default=None) 176 level: typing.Optional[int] = dataclasses.field(default=None) 177 178 179@dataclasses.dataclass 180class OxygenSaturationSample(base_model.TerraDataModel): 181 timestamp: typing.Optional[str] = dataclasses.field(default=None) 182 percentage: typing.Optional[float] = dataclasses.field(default=None) 183 184 185@dataclasses.dataclass 186class BreathSample(base_model.TerraDataModel): 187 timestamp: typing.Optional[str] = dataclasses.field(default=None) 188 breaths_per_min: typing.Optional[float] = dataclasses.field(default=None) 189 190 191@dataclasses.dataclass 192class SnoringSample(base_model.TerraDataModel): 193 timestamp: typing.Optional[str] = dataclasses.field(default=None) 194 duration_seconds: typing.Optional[float] = dataclasses.field(default=None) 195 196 197@dataclasses.dataclass 198class StressSample(base_model.TerraDataModel): 199 timestamp: typing.Optional[str] = dataclasses.field(default=None) 200 level: typing.Optional[float] = dataclasses.field(default=None) 201 202 203@dataclasses.dataclass 204class BloodPressureSample(base_model.TerraDataModel): 205 timestamp: typing.Optional[str] = dataclasses.field(default=None) 206 diastolic_bp: typing.Optional[float] = dataclasses.field(default=None) 207 systolic_bp: typing.Optional[float] = dataclasses.field(default=None) 208 209 210@dataclasses.dataclass 211class MeasurementDataSample(base_model.TerraDataModel): 212 measurement_time: typing.Optional[str] = dataclasses.field(default=None) 213 BMI: typing.Optional[float] = dataclasses.field(default=None) 214 BMR: typing.Optional[float] = dataclasses.field(default=None) 215 RMR: typing.Optional[float] = dataclasses.field(default=None) 216 estimated_fitness_age: typing.Optional[int] = dataclasses.field(default=None) 217 skin_fold_mm: typing.Optional[float] = dataclasses.field(default=None) 218 bodyfat_percentage: typing.Optional[float] = dataclasses.field(default=None) 219 weight_kg: typing.Optional[float] = dataclasses.field(default=None) 220 height_cm: typing.Optional[float] = dataclasses.field(default=None) 221 bone_mass_g: typing.Optional[float] = dataclasses.field(default=None) 222 muscle_mass_g: typing.Optional[float] = dataclasses.field(default=None) 223 lean_mass_g: typing.Optional[float] = dataclasses.field(default=None) 224 water_percentage: typing.Optional[float] = dataclasses.field(default=None) 225 insulin_units: typing.Optional[float] = dataclasses.field(default=None) 226 insulin_type: typing.Optional[str] = dataclasses.field(default=None) 227 urine_color: typing.Optional[str] = dataclasses.field(default=None) 228 229 230@dataclasses.dataclass 231class BodyTemperatureSample(base_model.TerraDataModel): 232 timestamp: typing.Optional[str] = dataclasses.field(default=None) 233 body_temperature_celsius: typing.Optional[float] = dataclasses.field(default=None) 234 235 236@dataclasses.dataclass 237class SkinTemperatureSample(base_model.TerraDataModel): 238 timestamp: typing.Optional[str] = dataclasses.field(default=None) 239 skin_temperature_celsius: typing.Optional[float] = dataclasses.field(default=None) 240 241 242@dataclasses.dataclass 243class AmbientTemperatureSample(base_model.TerraDataModel): 244 temperature_celsius: typing.Optional[float] = dataclasses.field(default=None) 245 timestamp: typing.Optional[str] = dataclasses.field(default=None) 246 247 248@dataclasses.dataclass 249class TemperatureSample(base_model.TerraDataModel): 250 temperature_celsius: typing.Optional[float] = dataclasses.field(default=None) 251 timestamp: typing.Optional[str] = dataclasses.field(default=None) 252 253 254@dataclasses.dataclass 255class OtherDeviceData(base_model.TerraDataModel): 256 name: typing.Optional[str] = dataclasses.field(default=None) 257 manufacturer: typing.Optional[str] = dataclasses.field(default=None) 258 serial_number: typing.Optional[str] = dataclasses.field(default=None) 259 software_version: typing.Optional[str] = dataclasses.field(default=None) 260 hardware_version: typing.Optional[str] = dataclasses.field(default=None) 261 262 263@dataclasses.dataclass 264class HydrationMeasurementSample(base_model.TerraDataModel): 265 timestamp: typing.Optional[str] = dataclasses.field(default=None) 266 hydration_kg: typing.Optional[float] = dataclasses.field(default=None) 267 268 269@dataclasses.dataclass 270class Vo2MaxSample(base_model.TerraDataModel): 271 timestamp: typing.Optional[str] = dataclasses.field(default=None) 272 vo2max_ml_per_min_per_kg: typing.Optional[float] = dataclasses.field(default=None) 273 274 275@dataclasses.dataclass 276class PulseVelocitySample(base_model.TerraDataModel): 277 timestamp: typing.Optional[str] = dataclasses.field(default=None) 278 pulse_wave_velocity_meters_per_second: typing.Optional[float] = dataclasses.field(default=None) 279 280 281@dataclasses.dataclass 282class AFibClassificationSample(base_model.TerraDataModel): 283 timestamp: typing.Optional[str] = dataclasses.field(default=None) 284 afib_classification: typing.Optional[int] = dataclasses.field(default=None) 285 286 287@dataclasses.dataclass 288class DrinkSample(base_model.TerraDataModel): 289 drink_unit: typing.Optional[str] = dataclasses.field(default=None) 290 drink_volume: typing.Optional[str] = dataclasses.field(default=None) 291 drink_name: typing.Optional[str] = dataclasses.field(default=None) 292 timestamp: typing.Optional[str] = dataclasses.field(default=None) 293 294 295@dataclasses.dataclass 296class MenstruationFlowSample(base_model.TerraDataModel): 297 timestamp: typing.Optional[str] = dataclasses.field(default=None) 298 flow: typing.Optional[int] = dataclasses.field(default=None)
56@dataclasses.dataclass 57class GlucoseDataSample(base_model.TerraDataModel): 58 timestamp: typing.Optional[str] = dataclasses.field(default=None) 59 blood_glucose_mg_per_dL: typing.Optional[int] = dataclasses.field(default=None) 60 glucose_level_flag: typing.Optional[int] = dataclasses.field(default=None) 61 trend_arrow: typing.Optional[int] = dataclasses.field(default=None)
GlucoseDataSample(timestamp: Optional[str] = None, blood_glucose_mg_per_dL: Optional[int] = None, glucose_level_flag: Optional[int] = None, trend_arrow: Optional[int] = None)
Inherited Members
64@dataclasses.dataclass 65class HeartRateDataSample(base_model.TerraDataModel): 66 timestamp: typing.Optional[str] = dataclasses.field(default=None) 67 bpm: typing.Optional[float] = dataclasses.field(default=None)
HeartRateDataSample(timestamp: Optional[str] = None, bpm: Optional[float] = None)
Inherited Members
70@dataclasses.dataclass 71class LapSample(base_model.TerraDataModel): 72 start_time: typing.Optional[str] = dataclasses.field(default=None) 73 distance_meters: typing.Optional[float] = dataclasses.field(default=None) 74 calories: typing.Optional[float] = dataclasses.field(default=None)
LapSample(start_time: Optional[str] = None, distance_meters: Optional[float] = None, calories: Optional[float] = None)
Inherited Members
77@dataclasses.dataclass 78class HeartRateVariabilityDataSampleRMSSD(base_model.TerraDataModel): 79 timestamp: typing.Optional[str] = dataclasses.field(default=None) 80 hrv_rmssd: typing.Optional[float] = dataclasses.field(default=None)
HeartRateVariabilityDataSampleRMSSD(timestamp: Optional[str] = None, hrv_rmssd: Optional[float] = None)
Inherited Members
83@dataclasses.dataclass 84class HeartRateVariabilityDataSampleSDNN(base_model.TerraDataModel): 85 timestamp: typing.Optional[str] = dataclasses.field(default=None) 86 hrv_sdnn: typing.Optional[float] = dataclasses.field(default=None)
HeartRateVariabilityDataSampleSDNN(timestamp: Optional[str] = None, hrv_sdnn: Optional[float] = None)
Inherited Members
89@dataclasses.dataclass 90class DistanceSample(base_model.TerraDataModel): 91 timestamp: typing.Optional[str] = dataclasses.field(default=None) 92 distance_meters: typing.Optional[float] = dataclasses.field(default=None) 93 timer_duration_seconds: typing.Optional[float] = dataclasses.field(default=None)
DistanceSample(timestamp: Optional[str] = None, distance_meters: Optional[float] = None, timer_duration_seconds: Optional[float] = None)
Inherited Members
96@dataclasses.dataclass 97class StepSample(base_model.TerraDataModel): 98 timestamp: typing.Optional[str] = dataclasses.field(default=None) 99 steps: typing.Optional[float] = dataclasses.field(default=None) 100 timer_duration_seconds: typing.Optional[float] = dataclasses.field(default=None)
StepSample(timestamp: Optional[str] = None, steps: Optional[float] = None, timer_duration_seconds: Optional[float] = None)
Inherited Members
117@dataclasses.dataclass 118class ElevationSample(base_model.TerraDataModel): 119 timestamp: typing.Optional[str] = dataclasses.field(default=None) 120 elev_meters: typing.Optional[float] = dataclasses.field(default=None) 121 timer_duration_seconds: typing.Optional[float] = dataclasses.field(default=None)
ElevationSample(timestamp: Optional[str] = None, elev_meters: Optional[float] = None, timer_duration_seconds: Optional[float] = None)
Inherited Members
124@dataclasses.dataclass 125class PositionSample(base_model.TerraDataModel): 126 timestamp: typing.Optional[str] = dataclasses.field(default=None) 127 coords_lat_lng_deg: typing.List[float] = dataclasses.field(default_factory=list) 128 timer_duration_seconds: typing.Optional[float] = dataclasses.field(default=None)
PositionSample(timestamp: Optional[str] = None, coords_lat_lng_deg: List[float] =
Inherited Members
131@dataclasses.dataclass 132class PowerSample(base_model.TerraDataModel): 133 timestamp: typing.Optional[str] = dataclasses.field(default=None) 134 watts: typing.Optional[float] = dataclasses.field(default=None) 135 timer_duration_seconds: typing.Optional[float] = dataclasses.field(default=None)
PowerSample(timestamp: Optional[str] = None, watts: Optional[float] = None, timer_duration_seconds: Optional[float] = None)
Inherited Members
138@dataclasses.dataclass 139class SpeedSample(base_model.TerraDataModel): 140 timestamp: typing.Optional[str] = dataclasses.field(default=None) 141 speed_meters_per_second: typing.Optional[float] = dataclasses.field(default=None) 142 timer_duration_seconds: typing.Optional[float] = dataclasses.field(default=None)
SpeedSample(timestamp: Optional[str] = None, speed_meters_per_second: Optional[float] = None, timer_duration_seconds: Optional[float] = None)
Inherited Members
145@dataclasses.dataclass 146class CadenceSample(base_model.TerraDataModel): 147 timestamp: typing.Optional[str] = dataclasses.field(default=None) 148 cadence_rpm: typing.Optional[float] = dataclasses.field(default=None) 149 timer_duration_seconds: typing.Optional[float] = dataclasses.field(default=None)
CadenceSample(timestamp: Optional[str] = None, cadence_rpm: Optional[float] = None, timer_duration_seconds: Optional[float] = None)
Inherited Members
152@dataclasses.dataclass 153class ActivityLevelSample(base_model.TerraDataModel): 154 timestamp: typing.Optional[str] = dataclasses.field(default=None) 155 activity_level: typing.Optional[int] = dataclasses.field(default=None)
ActivityLevelSample(timestamp: Optional[str] = None, activity_level: Optional[int] = None)
Inherited Members
158@dataclasses.dataclass 159class METSample(base_model.TerraDataModel): 160 timestamp: typing.Optional[str] = dataclasses.field(default=None) 161 level: typing.Optional[float] = dataclasses.field(default=None)
METSample(timestamp: Optional[str] = None, level: Optional[float] = None)
Inherited Members
164@dataclasses.dataclass 165class TSSSample(base_model.TerraDataModel): 166 planned: typing.Optional[float] = dataclasses.field(default=None) 167 actual: typing.Optional[float] = dataclasses.field(default=None) 168 method: typing.Optional[str] = dataclasses.field(default=None) 169 intensity_factor_planned: typing.Optional[float] = dataclasses.field(default=None) 170 intensity_factor_actual: typing.Optional[float] = dataclasses.field(default=None) 171 normalized_power_watts: typing.Optional[float] = dataclasses.field(default=None)
TSSSample(planned: Optional[float] = None, actual: Optional[float] = None, method: Optional[str] = None, intensity_factor_planned: Optional[float] = None, intensity_factor_actual: Optional[float] = None, normalized_power_watts: Optional[float] = None)
Inherited Members
174@dataclasses.dataclass 175class SleepHypnogramSample(base_model.TerraDataModel): 176 timestamp: typing.Optional[str] = dataclasses.field(default=None) 177 level: typing.Optional[int] = dataclasses.field(default=None)
SleepHypnogramSample(timestamp: Optional[str] = None, level: Optional[int] = None)
Inherited Members
180@dataclasses.dataclass 181class OxygenSaturationSample(base_model.TerraDataModel): 182 timestamp: typing.Optional[str] = dataclasses.field(default=None) 183 percentage: typing.Optional[float] = dataclasses.field(default=None)
OxygenSaturationSample(timestamp: Optional[str] = None, percentage: Optional[float] = None)
Inherited Members
186@dataclasses.dataclass 187class BreathSample(base_model.TerraDataModel): 188 timestamp: typing.Optional[str] = dataclasses.field(default=None) 189 breaths_per_min: typing.Optional[float] = dataclasses.field(default=None)
BreathSample(timestamp: Optional[str] = None, breaths_per_min: Optional[float] = None)
Inherited Members
192@dataclasses.dataclass 193class SnoringSample(base_model.TerraDataModel): 194 timestamp: typing.Optional[str] = dataclasses.field(default=None) 195 duration_seconds: typing.Optional[float] = dataclasses.field(default=None)
SnoringSample(timestamp: Optional[str] = None, duration_seconds: Optional[float] = None)
Inherited Members
198@dataclasses.dataclass 199class StressSample(base_model.TerraDataModel): 200 timestamp: typing.Optional[str] = dataclasses.field(default=None) 201 level: typing.Optional[float] = dataclasses.field(default=None)
StressSample(timestamp: Optional[str] = None, level: Optional[float] = None)
Inherited Members
204@dataclasses.dataclass 205class BloodPressureSample(base_model.TerraDataModel): 206 timestamp: typing.Optional[str] = dataclasses.field(default=None) 207 diastolic_bp: typing.Optional[float] = dataclasses.field(default=None) 208 systolic_bp: typing.Optional[float] = dataclasses.field(default=None)
BloodPressureSample(timestamp: Optional[str] = None, diastolic_bp: Optional[float] = None, systolic_bp: Optional[float] = None)
Inherited Members
211@dataclasses.dataclass 212class MeasurementDataSample(base_model.TerraDataModel): 213 measurement_time: typing.Optional[str] = dataclasses.field(default=None) 214 BMI: typing.Optional[float] = dataclasses.field(default=None) 215 BMR: typing.Optional[float] = dataclasses.field(default=None) 216 RMR: typing.Optional[float] = dataclasses.field(default=None) 217 estimated_fitness_age: typing.Optional[int] = dataclasses.field(default=None) 218 skin_fold_mm: typing.Optional[float] = dataclasses.field(default=None) 219 bodyfat_percentage: typing.Optional[float] = dataclasses.field(default=None) 220 weight_kg: typing.Optional[float] = dataclasses.field(default=None) 221 height_cm: typing.Optional[float] = dataclasses.field(default=None) 222 bone_mass_g: typing.Optional[float] = dataclasses.field(default=None) 223 muscle_mass_g: typing.Optional[float] = dataclasses.field(default=None) 224 lean_mass_g: typing.Optional[float] = dataclasses.field(default=None) 225 water_percentage: typing.Optional[float] = dataclasses.field(default=None) 226 insulin_units: typing.Optional[float] = dataclasses.field(default=None) 227 insulin_type: typing.Optional[str] = dataclasses.field(default=None) 228 urine_color: typing.Optional[str] = dataclasses.field(default=None)
MeasurementDataSample(measurement_time: Optional[str] = None, BMI: Optional[float] = None, BMR: Optional[float] = None, RMR: Optional[float] = None, estimated_fitness_age: Optional[int] = None, skin_fold_mm: Optional[float] = None, bodyfat_percentage: Optional[float] = None, weight_kg: Optional[float] = None, height_cm: Optional[float] = None, bone_mass_g: Optional[float] = None, muscle_mass_g: Optional[float] = None, lean_mass_g: Optional[float] = None, water_percentage: Optional[float] = None, insulin_units: Optional[float] = None, insulin_type: Optional[str] = None, urine_color: Optional[str] = None)
Inherited Members
231@dataclasses.dataclass 232class BodyTemperatureSample(base_model.TerraDataModel): 233 timestamp: typing.Optional[str] = dataclasses.field(default=None) 234 body_temperature_celsius: typing.Optional[float] = dataclasses.field(default=None)
BodyTemperatureSample(timestamp: Optional[str] = None, body_temperature_celsius: Optional[float] = None)
Inherited Members
237@dataclasses.dataclass 238class SkinTemperatureSample(base_model.TerraDataModel): 239 timestamp: typing.Optional[str] = dataclasses.field(default=None) 240 skin_temperature_celsius: typing.Optional[float] = dataclasses.field(default=None)
SkinTemperatureSample(timestamp: Optional[str] = None, skin_temperature_celsius: Optional[float] = None)
Inherited Members
243@dataclasses.dataclass 244class AmbientTemperatureSample(base_model.TerraDataModel): 245 temperature_celsius: typing.Optional[float] = dataclasses.field(default=None) 246 timestamp: typing.Optional[str] = dataclasses.field(default=None)
AmbientTemperatureSample(temperature_celsius: Optional[float] = None, timestamp: Optional[str] = None)
Inherited Members
249@dataclasses.dataclass 250class TemperatureSample(base_model.TerraDataModel): 251 temperature_celsius: typing.Optional[float] = dataclasses.field(default=None) 252 timestamp: typing.Optional[str] = dataclasses.field(default=None)
TemperatureSample(temperature_celsius: Optional[float] = None, timestamp: Optional[str] = None)
Inherited Members
255@dataclasses.dataclass 256class OtherDeviceData(base_model.TerraDataModel): 257 name: typing.Optional[str] = dataclasses.field(default=None) 258 manufacturer: typing.Optional[str] = dataclasses.field(default=None) 259 serial_number: typing.Optional[str] = dataclasses.field(default=None) 260 software_version: typing.Optional[str] = dataclasses.field(default=None) 261 hardware_version: typing.Optional[str] = dataclasses.field(default=None)
OtherDeviceData(name: Optional[str] = None, manufacturer: Optional[str] = None, serial_number: Optional[str] = None, software_version: Optional[str] = None, hardware_version: Optional[str] = None)
Inherited Members
264@dataclasses.dataclass 265class HydrationMeasurementSample(base_model.TerraDataModel): 266 timestamp: typing.Optional[str] = dataclasses.field(default=None) 267 hydration_kg: typing.Optional[float] = dataclasses.field(default=None)
HydrationMeasurementSample(timestamp: Optional[str] = None, hydration_kg: Optional[float] = None)
Inherited Members
270@dataclasses.dataclass 271class Vo2MaxSample(base_model.TerraDataModel): 272 timestamp: typing.Optional[str] = dataclasses.field(default=None) 273 vo2max_ml_per_min_per_kg: typing.Optional[float] = dataclasses.field(default=None)
Vo2MaxSample(timestamp: Optional[str] = None, vo2max_ml_per_min_per_kg: Optional[float] = None)
Inherited Members
276@dataclasses.dataclass 277class PulseVelocitySample(base_model.TerraDataModel): 278 timestamp: typing.Optional[str] = dataclasses.field(default=None) 279 pulse_wave_velocity_meters_per_second: typing.Optional[float] = dataclasses.field(default=None)
PulseVelocitySample(timestamp: Optional[str] = None, pulse_wave_velocity_meters_per_second: Optional[float] = None)
Inherited Members
282@dataclasses.dataclass 283class AFibClassificationSample(base_model.TerraDataModel): 284 timestamp: typing.Optional[str] = dataclasses.field(default=None) 285 afib_classification: typing.Optional[int] = dataclasses.field(default=None)
AFibClassificationSample(timestamp: Optional[str] = None, afib_classification: Optional[int] = None)
Inherited Members
288@dataclasses.dataclass 289class DrinkSample(base_model.TerraDataModel): 290 drink_unit: typing.Optional[str] = dataclasses.field(default=None) 291 drink_volume: typing.Optional[str] = dataclasses.field(default=None) 292 drink_name: typing.Optional[str] = dataclasses.field(default=None) 293 timestamp: typing.Optional[str] = dataclasses.field(default=None)
DrinkSample(drink_unit: Optional[str] = None, drink_volume: Optional[str] = None, drink_name: Optional[str] = None, timestamp: Optional[str] = None)