@@ -56,27 +56,27 @@ export interface DailyActivity {
56
56
* 4 medium activity
57
57
* 5 high activity
58
58
*/
59
- class_5_min : string ;
59
+ class_5_min : string | null ;
60
60
/** Activity score in range [1, 100] */
61
- score : number ;
61
+ score : number | null ;
62
62
/** Active calories expended (in kilocalories) */
63
63
active_calories : number ;
64
64
/** Average metabolic equivalent (MET) in minutes */
65
65
average_met_minutes : number ;
66
66
/** Object defining activity score contributors */
67
67
contributors : {
68
68
/** Contribution of meeting previous 7-day daily activity targets in range [1, 100] */
69
- meet_daily_targets : number ;
69
+ meet_daily_targets : number | null ;
70
70
/** Contribution of previous 24-hour inactivity alerts in range [1, 100] */
71
- move_every_hour : number ;
71
+ move_every_hour : number | null ;
72
72
/** Contribution of previous 7-day recovery time in range [1, 100] */
73
- recovery_time : number ;
73
+ recovery_time : number | null ;
74
74
/** Contribution of previous 24-hour activity in range [1, 100] */
75
- stay_active : number ;
75
+ stay_active : number | null ;
76
76
/** Contribution of previous 7-day exercise frequency in range [1, 100] */
77
- training_frequency : number ;
77
+ training_frequency : number | null ;
78
78
/** Contribution of previous 7-day exercise volume in range [1, 100] */
79
- training_volume : number ;
79
+ training_volume : number | null ;
80
80
} ;
81
81
/** Equivalent walking distance (in meters) of energy expenditure */
82
82
equivalent_walking_distance : number ;
@@ -129,34 +129,37 @@ export interface DailyReadiness {
129
129
/** Object defining readiness score contributors */
130
130
contributors : {
131
131
/** Contribution of cumulative activity balance in range [1, 100] */
132
- activity_balance : number ;
132
+ activity_balance : number | null ;
133
133
/** Contribution of body temperature in range [1, 100] */
134
- body_temperature : number ;
134
+ body_temperature : number | null ;
135
135
/** Contribution of heart rate variability balance in range [1, 100] */
136
- hrv_balance : number ;
136
+ hrv_balance : number | null ;
137
137
/** Contribution of previous day's activity in range [1, 100] */
138
- previous_day_activity : number ;
138
+ previous_day_activity : number | null ;
139
139
/** Contribution of previous night's sleep in range [1, 100] */
140
- previous_night : number ;
140
+ previous_night : number | null ;
141
141
/** Contribution of recovery index in range [1, 100] */
142
- recovery_index : number ;
142
+ recovery_index : number | null ;
143
143
/** Contribution of resting heart rate in range [1, 100] */
144
- resting_heart_rate : number ;
144
+ resting_heart_rate : number | null ;
145
145
/** Contribution of sleep balance in range [1, 100] */
146
- sleep_balance : number ;
146
+ sleep_balance : number | null ;
147
147
} ;
148
148
/** Day that the daily readiness belongs to */
149
149
day : string ;
150
150
/** Daily readiness score */
151
- score : number ;
151
+ score : number | null ;
152
152
/** Temperature deviation in degrees Celsius */
153
- temperature_deviation : number ;
153
+ temperature_deviation : number | null ;
154
154
/** Temperature trend deviation in degrees Celsius */
155
- temperature_trend_deviation : number ;
155
+ temperature_trend_deviation : number | null ;
156
156
/** Timestamp of the daily readiness */
157
157
timestamp : string ;
158
158
}
159
159
160
+ /** Union of possible of daily stress summaries */
161
+ export type LongTermResilienceLevel = "limited" | "adequate" | "solid" | "strong" | "exceptional" ;
162
+
160
163
/**
161
164
* Represents daily resilience metrics provided by the Oura ring.
162
165
*/
@@ -172,7 +175,7 @@ export interface DailyResilience {
172
175
stress : number ;
173
176
} ;
174
177
/** level of resilience */
175
- level : string ;
178
+ level : LongTermResilienceLevel ;
176
179
}
177
180
178
181
/**
@@ -184,24 +187,24 @@ export interface DailySleep {
184
187
/** Object defining sleep score contributors */
185
188
contributors : {
186
189
/** Contribution of deep sleep in range [1, 100] */
187
- deep_sleep : number ;
190
+ deep_sleep : number | null ;
188
191
/** Contribution of sleep efficiency in range [1, 100] */
189
- efficiency : number ;
192
+ efficiency : number | null ;
190
193
/** Contribution of sleep latency in range [1, 100] */
191
- latency : number ;
194
+ latency : number | null ;
192
195
/** Contribution of REM sleep in range [1, 100] */
193
- rem_sleep : number ;
196
+ rem_sleep : number | null ;
194
197
/** Contribution of sleep restfulness in range [1, 100] */
195
- restfulness : number ;
198
+ restfulness : number | null ;
196
199
/** Contribution of sleep timing in range [1, 100] */
197
- timing : number ;
200
+ timing : number | null ;
198
201
/** Contribution of total sleep in range [1, 100] */
199
- total_sleep : number ;
202
+ total_sleep : number | null ;
200
203
} ;
201
204
/** Day that the daily sleep belongs to. */
202
205
day : string ;
203
206
/** Daily sleep score */
204
- score : number ;
207
+ score : number | null ;
205
208
/** Timestamp of the daily sleep */
206
209
timestamp : number ;
207
210
}
@@ -218,7 +221,7 @@ export interface DailySpo2 {
218
221
spo2_percentage : {
219
222
/** Average oxygen saturation (SpO2) throughout the night */
220
223
average : number ;
221
- } ;
224
+ } | null ;
222
225
}
223
226
224
227
/** Union of Heart Rate sources */
@@ -305,6 +308,11 @@ export interface RingConfiguration {
305
308
size : number ;
306
309
}
307
310
311
+ /** Union of possible of ring hardware generations */
312
+ export type MomentType = "breathing" | "meditation" | "nap" | "relaxation" | "rest" | "body_status" ;
313
+
314
+ /** Union of possible of ring hardware generations */
315
+ export type MomentMood = "bad" | "worse" | "same" | "good" | "great" ;
308
316
/**
309
317
* Represents a recorded activity session tracked by the Oura ring.
310
318
*/
@@ -318,13 +326,13 @@ export interface DailySession {
318
326
/** Timestamp indicating when the Moment ended */
319
327
end_datetime : string ;
320
328
/** Moment type */
321
- type : string ;
329
+ type : MomentType ;
322
330
/** HR samples */
323
331
heart_rate : SampleData ;
324
332
/** HRV samples */
325
333
heart_rate_variability : SampleData ;
326
334
/** Moment mood */
327
- mood : string ;
335
+ mood : MomentMood ;
328
336
/** Motion samples */
329
337
motion_count : SampleData ;
330
338
}
@@ -380,21 +388,21 @@ export interface Sleep {
380
388
/** Object defining readiness score contributors */
381
389
contributors : {
382
390
/** Contribution of cumulative activity balance in range [1, 100] */
383
- activity_balance : number ;
391
+ activity_balance : number | null ;
384
392
/** Contribution of body temperature in range [1, 100] */
385
- body_temperature : number ;
393
+ body_temperature : number | null ;
386
394
/** Contribution of heart rate variability balance in range [1, 100] */
387
- hrv_balance : number ;
395
+ hrv_balance : number | null ;
388
396
/** Contribution of previous day's activity in range [1, 100] */
389
- previous_day_activity : number ;
397
+ previous_day_activity : number | null ;
390
398
/** Contribution of previous night's sleep in range [1, 100] */
391
- previous_night : number ;
399
+ previous_night : number | null ;
392
400
/** Contribution of recovery index in range [1, 100] */
393
- recovery_index : number ;
401
+ recovery_index : number | null ;
394
402
/** Contribution of resting heart rate in range [1, 100] */
395
- resting_heart_rate : number ;
403
+ resting_heart_rate : number | null ;
396
404
/** Contribution of sleep balance in range [1, 100] */
397
- sleep_balance : number ;
405
+ sleep_balance : number | null ;
398
406
} ;
399
407
/** Score */
400
408
score : number ;
@@ -501,19 +509,24 @@ export interface EnhancedTag {
501
509
/** Unique identifier */
502
510
id : string ;
503
511
/** The unique code of the selected tag type, "NULL" for text-only tags, or "custom" for custom tag types */
504
- tag_type_code : string ;
512
+ tag_type_code : string | null ;
505
513
/** Timestamp of the tag (if no duration) or the start time of the tag (with duration) */
506
514
start_time : string ;
507
515
/** Timestamp of the tag's end for events with duration or "NULL" if there is no duration */
508
- end_time : string ;
516
+ end_time : string | null ;
509
517
/** Day of the tag (if no duration) or the start day of the tag (with duration) */
510
518
start_day : string ;
511
519
/** Day of the tag's end for events with duration or "NULL" if there is no duration */
512
- end_day : string ;
520
+ end_day : string | null ;
513
521
/** Additional freeform text on the tag */
514
- comment : string ;
522
+ comment : string | null ;
523
+ /** The name of the tag if the tag_type_code is "custom". */
524
+ custom_name : string | null ;
515
525
}
516
526
527
+ /** Union of possible of daily stress summaries */
528
+ export type DailyStressSummary = "restored" | "normal" | "stressful" ;
529
+
517
530
/**
518
531
* Represents daily strees summary
519
532
*/
@@ -523,11 +536,11 @@ export interface DailyStress {
523
536
/** Day that the daily stress belongs to */
524
537
day : string ;
525
538
/** Time spent in a high stress zone (top quartile of data) */
526
- stress_high : number ;
539
+ stress_high : number | null ;
527
540
/** Time spend in a high recovery zone (bottom quartile data) */
528
- recovery_high : number ;
541
+ recovery_high : number | null ;
529
542
/** Stress summary of full day */
530
- day_summary : string ;
543
+ day_summary : DailyStressSummary | null ;
531
544
}
532
545
533
546
/**
0 commit comments