0

Post workout plans to a provider

by
Published Oct 17, 2025

Used to post workout plans users can follow on their wearable. This can be strength workouts (sets, reps, weight lifted) or cardio workouts (warmup, intervals of different intensities, cooldown etc)

Script terra Verified

The script

Submitted by hugo697 Bun
Verified 235 days ago
1
//native
2
/**
3
 * Post workout plans to a provider
4
 * Used to post workout plans users can follow on their wearable. This can be strength workouts (sets, reps, weight lifted) or cardio workouts (warmup, intervals of different intensities, cooldown etc)
5
 */
6
export async function main(auth: RT.Terra, user_id: string | undefined, body: Body) {
7
	const url = new URL(`https://api.tryterra.co/v2/plannedWorkout`)
8
	for (const [k, v] of [['user_id', user_id]]) {
9
		if (v !== undefined && v !== '') {
10
			url.searchParams.append(k, v)
11
		}
12
	}
13
	const response = await fetch(url, {
14
		method: 'POST',
15
		headers: {
16
			'dev-id': auth.devId,
17
			'Content-Type': 'application/json',
18
			'X-api-key': auth.apiKey
19
		},
20
		body: JSON.stringify(body)
21
	})
22
	if (!response.ok) {
23
		const text = await response.text()
24
		throw new Error(`${response.status} ${text}`)
25
	}
26
	return await response.json()
27
}
28

29
/* eslint-disable */
30
/**
31
 * This file was automatically generated by json-schema-to-typescript.
32
 * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
33
 * and run json-schema-to-typescript to regenerate this file.
34
 */
35

36
export interface Body {
37
	/**
38
	 * PlannedWorkout entry to post to data provider
39
	 */
40
	data: {
41
		/**
42
		 * List of exercises/steps/intervals for the workout plan
43
		 */
44
		steps?: (
45
			| {
46
					/**
47
					 * List of targets for the workout
48
					 */
49
					targets?: (
50
						| {
51
								/**
52
								 * Type of target for the workout - i.e. metric type for which a criterion must be met for the workout to be completed
53
								 */
54
								target_type?:
55
									| 'SPEED'
56
									| 'HEART_RATE'
57
									| 'OPEN'
58
									| 'CADENCE'
59
									| 'POWER'
60
									| 'GRADE'
61
									| 'RESISTANCE'
62
									| 'POWER_LAP'
63
									| 'SWIM_STROKE'
64
									| 'SPEED_LAP'
65
									| 'HEART_RATE_LAP'
66
									| 'PACE'
67
									| 'HEART_RATE_THRESHOLD_PERCENTAGE'
68
									| 'HEART_RATE_MAX_PERCENTAGE'
69
									| 'SPEED_PERCENTAGE'
70
									| 'POWER_PERCENTAGE'
71
									| 'REPETITION'
72
									| 'TSS'
73
									| 'IF'
74
								[k: string]: unknown
75
						  }
76
						| {
77
								/**
78
								 * Ideal cadence value to be maintained for the workout step
79
								 */
80
								cadence?: number
81
								/**
82
								 * Type of target for the workout - i.e. metric type for which a criterion must be met for the workout to be completed
83
								 */
84
								target_type?:
85
									| 'SPEED'
86
									| 'HEART_RATE'
87
									| 'OPEN'
88
									| 'CADENCE'
89
									| 'POWER'
90
									| 'GRADE'
91
									| 'RESISTANCE'
92
									| 'POWER_LAP'
93
									| 'SWIM_STROKE'
94
									| 'SPEED_LAP'
95
									| 'HEART_RATE_LAP'
96
									| 'PACE'
97
									| 'HEART_RATE_THRESHOLD_PERCENTAGE'
98
									| 'HEART_RATE_MAX_PERCENTAGE'
99
									| 'SPEED_PERCENTAGE'
100
									| 'POWER_PERCENTAGE'
101
									| 'REPETITION'
102
									| 'TSS'
103
									| 'IF'
104
								/**
105
								 * Minimum cadence threshold for the workout step - i.e. the user is to stay above this value during the workout
106
								 */
107
								cadence_low?: number
108
								/**
109
								 * Maximum cadence threshold for the workout step - i.e. the user is to stay under this value during the workout step
110
								 */
111
								cadence_high?: number
112
								[k: string]: unknown
113
						  }
114
						| {
115
								/**
116
								 * Maximum max heart rate percentage threshold for the workout step - i.e. the user is to stay under this value during the workout step
117
								 */
118
								hr_percentage_low?: number
119
								/**
120
								 * Type of target for the workout - i.e. metric type for which a criterion must be met for the workout to be completed
121
								 */
122
								target_type?:
123
									| 'SPEED'
124
									| 'HEART_RATE'
125
									| 'OPEN'
126
									| 'CADENCE'
127
									| 'POWER'
128
									| 'GRADE'
129
									| 'RESISTANCE'
130
									| 'POWER_LAP'
131
									| 'SWIM_STROKE'
132
									| 'SPEED_LAP'
133
									| 'HEART_RATE_LAP'
134
									| 'PACE'
135
									| 'HEART_RATE_THRESHOLD_PERCENTAGE'
136
									| 'HEART_RATE_MAX_PERCENTAGE'
137
									| 'SPEED_PERCENTAGE'
138
									| 'POWER_PERCENTAGE'
139
									| 'REPETITION'
140
									| 'TSS'
141
									| 'IF'
142
								/**
143
								 * Minimum heart rate percentage threshold for the workout step - i.e. the user is to stay above this value during the workout
144
								 */
145
								hr_percentage_high?: number
146
								/**
147
								 * Ideal percentage of user's maximum HR to be maintained workout step
148
								 */
149
								hr_percentage?: number
150
								/**
151
								 * Maximum heart rate threshold for the workout step - i.e. the user is to stay under this value during the workout step
152
								 */
153
								hr_bpm_high?: number
154
								/**
155
								 * Minimum heart rate threshold for the workout step - i.e. the user is to stay above this value during the workout
156
								 */
157
								hr_bpm_low?: number
158
								[k: string]: unknown
159
						  }
160
						| {
161
								/**
162
								 * Type of target for the workout - i.e. metric type for which a criterion must be met for the workout to be completed
163
								 */
164
								target_type?:
165
									| 'SPEED'
166
									| 'HEART_RATE'
167
									| 'OPEN'
168
									| 'CADENCE'
169
									| 'POWER'
170
									| 'GRADE'
171
									| 'RESISTANCE'
172
									| 'POWER_LAP'
173
									| 'SWIM_STROKE'
174
									| 'SPEED_LAP'
175
									| 'HEART_RATE_LAP'
176
									| 'PACE'
177
									| 'HEART_RATE_THRESHOLD_PERCENTAGE'
178
									| 'HEART_RATE_MAX_PERCENTAGE'
179
									| 'SPEED_PERCENTAGE'
180
									| 'POWER_PERCENTAGE'
181
									| 'REPETITION'
182
									| 'TSS'
183
									| 'IF'
184
								/**
185
								 * Maximum percentage of Functional Threshold Power for the workout step - i.e. the user is to stay under this value during the workout step
186
								 */
187
								power_percentage_low?: number
188
								/**
189
								 * Minimum percentage of Functional Threshold Power for the workout step - i.e. the user is to stay above this value during the workout
190
								 */
191
								power_percentage_high?: number
192
								/**
193
								 * Maximum power threshold for the workout step - i.e. the user is to stay under this value during the workout step
194
								 */
195
								power_watt_high?: number
196
								/**
197
								 * Minimum power threshold for the workout step - i.e. the user is to stay above this value during the workout
198
								 */
199
								power_watt_low?: number
200
								power_watt?: number
201
								/**
202
								 * Ideal percentage of user's Functional Threshold Power to be maintained workout step
203
								 */
204
								power_percentage?: number
205
								[k: string]: unknown
206
						  }
207
						| {
208
								/**
209
								 * Type of target for the workout - i.e. metric type for which a criterion must be met for the workout to be completed
210
								 */
211
								target_type?:
212
									| 'SPEED'
213
									| 'HEART_RATE'
214
									| 'OPEN'
215
									| 'CADENCE'
216
									| 'POWER'
217
									| 'GRADE'
218
									| 'RESISTANCE'
219
									| 'POWER_LAP'
220
									| 'SWIM_STROKE'
221
									| 'SPEED_LAP'
222
									| 'HEART_RATE_LAP'
223
									| 'PACE'
224
									| 'HEART_RATE_THRESHOLD_PERCENTAGE'
225
									| 'HEART_RATE_MAX_PERCENTAGE'
226
									| 'SPEED_PERCENTAGE'
227
									| 'POWER_PERCENTAGE'
228
									| 'REPETITION'
229
									| 'TSS'
230
									| 'IF'
231
								/**
232
								 * Maximum speed threshold for the workout step - i.e. the user is to stay under this value during the workout step
233
								 */
234
								speed_percentage_high?: number
235
								/**
236
								 * Minimum speed threshold for the workout step - i.e. the user is to stay above this value during the workout step
237
								 */
238
								speed_percentage_low?: number
239
								/**
240
								 * Ideal percentage of user's Threshold Speed, based off their Threshold Pace, to be maintained workout step. Usually, the Threshold Pace is defined as the pace one could race at for 50 to 60 minutes
241
								 */
242
								speed_percentage?: number
243
								/**
244
								 * Ideal speed value to be maintained for the workout step
245
								 */
246
								speed_meters_per_second?: number
247
								[k: string]: unknown
248
						  }
249
						| {
250
								/**
251
								 * Type of target for the workout - i.e. metric type for which a criterion must be met for the workout to be completed
252
								 */
253
								target_type?:
254
									| 'SPEED'
255
									| 'HEART_RATE'
256
									| 'OPEN'
257
									| 'CADENCE'
258
									| 'POWER'
259
									| 'GRADE'
260
									| 'RESISTANCE'
261
									| 'POWER_LAP'
262
									| 'SWIM_STROKE'
263
									| 'SPEED_LAP'
264
									| 'HEART_RATE_LAP'
265
									| 'PACE'
266
									| 'HEART_RATE_THRESHOLD_PERCENTAGE'
267
									| 'HEART_RATE_MAX_PERCENTAGE'
268
									| 'SPEED_PERCENTAGE'
269
									| 'POWER_PERCENTAGE'
270
									| 'REPETITION'
271
									| 'TSS'
272
									| 'IF'
273
								/**
274
								 * Ideal pace value to be maintained for the workout step
275
								 */
276
								pace_minutes_per_kilometer?: number
277
								[k: string]: unknown
278
						  }
279
						| {
280
								/**
281
								 * Type of target for the workout - i.e. metric type for which a criterion must be met for the workout to be completed
282
								 */
283
								target_type?:
284
									| 'SPEED'
285
									| 'HEART_RATE'
286
									| 'OPEN'
287
									| 'CADENCE'
288
									| 'POWER'
289
									| 'GRADE'
290
									| 'RESISTANCE'
291
									| 'POWER_LAP'
292
									| 'SWIM_STROKE'
293
									| 'SPEED_LAP'
294
									| 'HEART_RATE_LAP'
295
									| 'PACE'
296
									| 'HEART_RATE_THRESHOLD_PERCENTAGE'
297
									| 'HEART_RATE_MAX_PERCENTAGE'
298
									| 'SPEED_PERCENTAGE'
299
									| 'POWER_PERCENTAGE'
300
									| 'REPETITION'
301
									| 'TSS'
302
									| 'IF'
303
								/**
304
								 * Planned Training Stress Score to be achieved for the workout step
305
								 */
306
								tss?: number
307
								[k: string]: unknown
308
						  }
309
						| {
310
								/**
311
								 * Maximum Intensity Factor to be achieved for the workout step
312
								 */
313
								if_high?: number
314
								/**
315
								 * Type of target for the workout - i.e. metric type for which a criterion must be met for the workout to be completed
316
								 */
317
								target_type?:
318
									| 'SPEED'
319
									| 'HEART_RATE'
320
									| 'OPEN'
321
									| 'CADENCE'
322
									| 'POWER'
323
									| 'GRADE'
324
									| 'RESISTANCE'
325
									| 'POWER_LAP'
326
									| 'SWIM_STROKE'
327
									| 'SPEED_LAP'
328
									| 'HEART_RATE_LAP'
329
									| 'PACE'
330
									| 'HEART_RATE_THRESHOLD_PERCENTAGE'
331
									| 'HEART_RATE_MAX_PERCENTAGE'
332
									| 'SPEED_PERCENTAGE'
333
									| 'POWER_PERCENTAGE'
334
									| 'REPETITION'
335
									| 'TSS'
336
									| 'IF'
337
								/**
338
								 * Minimum Intensity Factor to be achieved for the workout step
339
								 */
340
								if_low?: number
341
								[k: string]: unknown
342
						  }
343
						| {
344
								/**
345
								 * Type of target for the workout - i.e. metric type for which a criterion must be met for the workout to be completed
346
								 */
347
								target_type?:
348
									| 'SPEED'
349
									| 'HEART_RATE'
350
									| 'OPEN'
351
									| 'CADENCE'
352
									| 'POWER'
353
									| 'GRADE'
354
									| 'RESISTANCE'
355
									| 'POWER_LAP'
356
									| 'SWIM_STROKE'
357
									| 'SPEED_LAP'
358
									| 'HEART_RATE_LAP'
359
									| 'PACE'
360
									| 'HEART_RATE_THRESHOLD_PERCENTAGE'
361
									| 'HEART_RATE_MAX_PERCENTAGE'
362
									| 'SPEED_PERCENTAGE'
363
									| 'POWER_PERCENTAGE'
364
									| 'REPETITION'
365
									| 'TSS'
366
									| 'IF'
367
								/**
368
								 * Number of repetitions of the workout step to be performed
369
								 */
370
								repetitions?: number
371
								[k: string]: unknown
372
						  }
373
						| {
374
								/**
375
								 * Type of target for the workout - i.e. metric type for which a criterion must be met for the workout to be completed
376
								 */
377
								target_type?:
378
									| 'SPEED'
379
									| 'HEART_RATE'
380
									| 'OPEN'
381
									| 'CADENCE'
382
									| 'POWER'
383
									| 'GRADE'
384
									| 'RESISTANCE'
385
									| 'POWER_LAP'
386
									| 'SWIM_STROKE'
387
									| 'SPEED_LAP'
388
									| 'HEART_RATE_LAP'
389
									| 'PACE'
390
									| 'HEART_RATE_THRESHOLD_PERCENTAGE'
391
									| 'HEART_RATE_MAX_PERCENTAGE'
392
									| 'SPEED_PERCENTAGE'
393
									| 'POWER_PERCENTAGE'
394
									| 'REPETITION'
395
									| 'TSS'
396
									| 'IF'
397
								/**
398
								 * Number of swim strokes to be performed during the workout step
399
								 */
400
								swim_strokes?: number
401
								[k: string]: unknown
402
						  }
403
					)[]
404
					/**
405
					 * Type of workout step - either repeat or one-off
406
					 */
407
					type?: 'STEP' | 'REPEAT_STEP'
408
					/**
409
					 * Planned intensity for the workout step
410
					 */
411
					intensity?: 'REST' | 'WARMUP' | 'COOLDOWN' | 'RECOVERY' | 'INTERVAL' | 'ACTIVE'
412
					/**
413
					 * Position of the workout step in the overall workout
414
					 */
415
					order?: number
416
					/**
417
					 * Description of workout step
418
					 */
419
					description?: string
420
					/**
421
					 * List of conditions to be fulfilled for the workout step to be completed - all of the conditions must be completed
422
					 */
423
					durations?: (
424
						| {
425
								/**
426
								 * Type of condition that must be fulfilled to consider the workout step complete
427
								 */
428
								duration_type?:
429
									| 'TIME'
430
									| 'DISTANCE_METERS'
431
									| 'HR_LESS_THAN'
432
									| 'HR_GREATER_THAN'
433
									| 'CALORIES'
434
									| 'OPEN'
435
									| 'POWER_LESS_THAN'
436
									| 'POWER_GREATER_THAN'
437
									| 'REPETITION_TIME'
438
									| 'REPS'
439
									| 'FIXED_REST'
440
									| 'TIME_AT_VALID_CDA'
441
									| 'STEPS'
442
								[k: string]: unknown
443
						  }
444
						| {
445
								/**
446
								 * Time duration to be elapsed for the workout step
447
								 */
448
								seconds?: number
449
								/**
450
								 * Type of condition that must be fulfilled to consider the workout step complete
451
								 */
452
								duration_type?:
453
									| 'TIME'
454
									| 'DISTANCE_METERS'
455
									| 'HR_LESS_THAN'
456
									| 'HR_GREATER_THAN'
457
									| 'CALORIES'
458
									| 'OPEN'
459
									| 'POWER_LESS_THAN'
460
									| 'POWER_GREATER_THAN'
461
									| 'REPETITION_TIME'
462
									| 'REPS'
463
									| 'FIXED_REST'
464
									| 'TIME_AT_VALID_CDA'
465
									| 'STEPS'
466
								[k: string]: unknown
467
						  }
468
						| {
469
								/**
470
								 * Threshold power goal to complete the workout step - once the user reaches above this power level, the step will be completed
471
								 */
472
								power_above_watts?: number
473
								/**
474
								 * Type of condition that must be fulfilled to consider the workout step complete
475
								 */
476
								duration_type?:
477
									| 'TIME'
478
									| 'DISTANCE_METERS'
479
									| 'HR_LESS_THAN'
480
									| 'HR_GREATER_THAN'
481
									| 'CALORIES'
482
									| 'OPEN'
483
									| 'POWER_LESS_THAN'
484
									| 'POWER_GREATER_THAN'
485
									| 'REPETITION_TIME'
486
									| 'REPS'
487
									| 'FIXED_REST'
488
									| 'TIME_AT_VALID_CDA'
489
									| 'STEPS'
490
								[k: string]: unknown
491
						  }
492
						| {
493
								/**
494
								 * Threshold power goal to complete the workout step - once the user reaches below this power level, the step will be completed
495
								 */
496
								power_below_watts?: number
497
								/**
498
								 * Type of condition that must be fulfilled to consider the workout step complete
499
								 */
500
								duration_type?:
501
									| 'TIME'
502
									| 'DISTANCE_METERS'
503
									| 'HR_LESS_THAN'
504
									| 'HR_GREATER_THAN'
505
									| 'CALORIES'
506
									| 'OPEN'
507
									| 'POWER_LESS_THAN'
508
									| 'POWER_GREATER_THAN'
509
									| 'REPETITION_TIME'
510
									| 'REPS'
511
									| 'FIXED_REST'
512
									| 'TIME_AT_VALID_CDA'
513
									| 'STEPS'
514
								[k: string]: unknown
515
						  }
516
						| {
517
								/**
518
								 * Type of condition that must be fulfilled to consider the workout step complete
519
								 */
520
								duration_type?:
521
									| 'TIME'
522
									| 'DISTANCE_METERS'
523
									| 'HR_LESS_THAN'
524
									| 'HR_GREATER_THAN'
525
									| 'CALORIES'
526
									| 'OPEN'
527
									| 'POWER_LESS_THAN'
528
									| 'POWER_GREATER_THAN'
529
									| 'REPETITION_TIME'
530
									| 'REPS'
531
									| 'FIXED_REST'
532
									| 'TIME_AT_VALID_CDA'
533
									| 'STEPS'
534
								/**
535
								 * Time duration to be elapsed for the rest period
536
								 */
537
								rest_seconds?: number
538
								[k: string]: unknown
539
						  }
540
						| {
541
								/**
542
								 * Calorie burn target for the workout step - once the user reaches the target, the step will be completed
543
								 */
544
								calories?: number
545
								/**
546
								 * Type of condition that must be fulfilled to consider the workout step complete
547
								 */
548
								duration_type?:
549
									| 'TIME'
550
									| 'DISTANCE_METERS'
551
									| 'HR_LESS_THAN'
552
									| 'HR_GREATER_THAN'
553
									| 'CALORIES'
554
									| 'OPEN'
555
									| 'POWER_LESS_THAN'
556
									| 'POWER_GREATER_THAN'
557
									| 'REPETITION_TIME'
558
									| 'REPS'
559
									| 'FIXED_REST'
560
									| 'TIME_AT_VALID_CDA'
561
									| 'STEPS'
562
								[k: string]: unknown
563
						  }
564
						| {
565
								/**
566
								 * Type of condition that must be fulfilled to consider the workout step complete
567
								 */
568
								duration_type?:
569
									| 'TIME'
570
									| 'DISTANCE_METERS'
571
									| 'HR_LESS_THAN'
572
									| 'HR_GREATER_THAN'
573
									| 'CALORIES'
574
									| 'OPEN'
575
									| 'POWER_LESS_THAN'
576
									| 'POWER_GREATER_THAN'
577
									| 'REPETITION_TIME'
578
									| 'REPS'
579
									| 'FIXED_REST'
580
									| 'TIME_AT_VALID_CDA'
581
									| 'STEPS'
582
								/**
583
								 * Threshold heart rate goal to complete the workout step - once the user's heart rate reaches above below this value, the step will be completed
584
								 */
585
								hr_above_bpm?: number
586
								[k: string]: unknown
587
						  }
588
						| {
589
								/**
590
								 * Threshold heart rate goal to complete the workout step - once the user's heart rate reaches below this value, the step will be completed
591
								 */
592
								hr_below_bpm?: number
593
								/**
594
								 * Type of condition that must be fulfilled to consider the workout step complete
595
								 */
596
								duration_type?:
597
									| 'TIME'
598
									| 'DISTANCE_METERS'
599
									| 'HR_LESS_THAN'
600
									| 'HR_GREATER_THAN'
601
									| 'CALORIES'
602
									| 'OPEN'
603
									| 'POWER_LESS_THAN'
604
									| 'POWER_GREATER_THAN'
605
									| 'REPETITION_TIME'
606
									| 'REPS'
607
									| 'FIXED_REST'
608
									| 'TIME_AT_VALID_CDA'
609
									| 'STEPS'
610
								[k: string]: unknown
611
						  }
612
						| {
613
								/**
614
								 * Target number of reps for the workout step - once the user completes this rep target, the step will be completed
615
								 */
616
								reps?: number
617
								/**
618
								 * Type of condition that must be fulfilled to consider the workout step complete
619
								 */
620
								duration_type?:
621
									| 'TIME'
622
									| 'DISTANCE_METERS'
623
									| 'HR_LESS_THAN'
624
									| 'HR_GREATER_THAN'
625
									| 'CALORIES'
626
									| 'OPEN'
627
									| 'POWER_LESS_THAN'
628
									| 'POWER_GREATER_THAN'
629
									| 'REPETITION_TIME'
630
									| 'REPS'
631
									| 'FIXED_REST'
632
									| 'TIME_AT_VALID_CDA'
633
									| 'STEPS'
634
								[k: string]: unknown
635
						  }
636
						| {
637
								/**
638
								 * Type of condition that must be fulfilled to consider the workout step complete
639
								 */
640
								duration_type?:
641
									| 'TIME'
642
									| 'DISTANCE_METERS'
643
									| 'HR_LESS_THAN'
644
									| 'HR_GREATER_THAN'
645
									| 'CALORIES'
646
									| 'OPEN'
647
									| 'POWER_LESS_THAN'
648
									| 'POWER_GREATER_THAN'
649
									| 'REPETITION_TIME'
650
									| 'REPS'
651
									| 'FIXED_REST'
652
									| 'TIME_AT_VALID_CDA'
653
									| 'STEPS'
654
								/**
655
								 * Target distance for the workout step - once the user covers this distance, the step will be completed
656
								 */
657
								distance_meters?: number
658
								[k: string]: unknown
659
						  }
660
						| {
661
								/**
662
								 * Target number of steps for the workout step - once the user performs this number of steps, the step will be completed
663
								 */
664
								steps?: number
665
								/**
666
								 * Type of condition that must be fulfilled to consider the workout step complete
667
								 */
668
								duration_type?:
669
									| 'TIME'
670
									| 'DISTANCE_METERS'
671
									| 'HR_LESS_THAN'
672
									| 'HR_GREATER_THAN'
673
									| 'CALORIES'
674
									| 'OPEN'
675
									| 'POWER_LESS_THAN'
676
									| 'POWER_GREATER_THAN'
677
									| 'REPETITION_TIME'
678
									| 'REPS'
679
									| 'FIXED_REST'
680
									| 'TIME_AT_VALID_CDA'
681
									| 'STEPS'
682
								[k: string]: unknown
683
						  }
684
					)[]
685
					/**
686
					 * Name of workout step
687
					 */
688
					name?: string
689
					[k: string]: unknown
690
			  }
691
			| {
692
					/**
693
					 * List of targets for the workout
694
					 */
695
					targets?: {
696
						/**
697
						 * Type of target for the workout - i.e. metric type for which a criterion must be met for the workout to be completed
698
						 */
699
						target_type?:
700
							| 'SPEED'
701
							| 'HEART_RATE'
702
							| 'OPEN'
703
							| 'CADENCE'
704
							| 'POWER'
705
							| 'GRADE'
706
							| 'RESISTANCE'
707
							| 'POWER_LAP'
708
							| 'SWIM_STROKE'
709
							| 'SPEED_LAP'
710
							| 'HEART_RATE_LAP'
711
							| 'PACE'
712
							| 'HEART_RATE_THRESHOLD_PERCENTAGE'
713
							| 'HEART_RATE_MAX_PERCENTAGE'
714
							| 'SPEED_PERCENTAGE'
715
							| 'POWER_PERCENTAGE'
716
							| 'REPETITION'
717
							| 'TSS'
718
							| 'IF'
719
						[k: string]: unknown
720
					}[]
721
					/**
722
					 * Type of workout step - either repeat or one-off
723
					 */
724
					type?: 'STEP' | 'REPEAT_STEP'
725
					/**
726
					 * List of steps to be repeated for this workout step - e.g. if a user wants to schedule 5 repetitions of 100m sprints plus 20s rest in between
727
					 */
728
					steps?: {
729
						/**
730
						 * List of targets for the workout
731
						 */
732
						targets?: (
733
							| {
734
									/**
735
									 * Type of target for the workout - i.e. metric type for which a criterion must be met for the workout to be completed
736
									 */
737
									target_type?:
738
										| 'SPEED'
739
										| 'HEART_RATE'
740
										| 'OPEN'
741
										| 'CADENCE'
742
										| 'POWER'
743
										| 'GRADE'
744
										| 'RESISTANCE'
745
										| 'POWER_LAP'
746
										| 'SWIM_STROKE'
747
										| 'SPEED_LAP'
748
										| 'HEART_RATE_LAP'
749
										| 'PACE'
750
										| 'HEART_RATE_THRESHOLD_PERCENTAGE'
751
										| 'HEART_RATE_MAX_PERCENTAGE'
752
										| 'SPEED_PERCENTAGE'
753
										| 'POWER_PERCENTAGE'
754
										| 'REPETITION'
755
										| 'TSS'
756
										| 'IF'
757
									[k: string]: unknown
758
							  }
759
							| {
760
									/**
761
									 * Ideal cadence value to be maintained for the workout step
762
									 */
763
									cadence?: number
764
									/**
765
									 * Type of target for the workout - i.e. metric type for which a criterion must be met for the workout to be completed
766
									 */
767
									target_type?:
768
										| 'SPEED'
769
										| 'HEART_RATE'
770
										| 'OPEN'
771
										| 'CADENCE'
772
										| 'POWER'
773
										| 'GRADE'
774
										| 'RESISTANCE'
775
										| 'POWER_LAP'
776
										| 'SWIM_STROKE'
777
										| 'SPEED_LAP'
778
										| 'HEART_RATE_LAP'
779
										| 'PACE'
780
										| 'HEART_RATE_THRESHOLD_PERCENTAGE'
781
										| 'HEART_RATE_MAX_PERCENTAGE'
782
										| 'SPEED_PERCENTAGE'
783
										| 'POWER_PERCENTAGE'
784
										| 'REPETITION'
785
										| 'TSS'
786
										| 'IF'
787
									/**
788
									 * Minimum cadence threshold for the workout step - i.e. the user is to stay above this value during the workout
789
									 */
790
									cadence_low?: number
791
									/**
792
									 * Maximum cadence threshold for the workout step - i.e. the user is to stay under this value during the workout step
793
									 */
794
									cadence_high?: number
795
									[k: string]: unknown
796
							  }
797
							| {
798
									/**
799
									 * Maximum max heart rate percentage threshold for the workout step - i.e. the user is to stay under this value during the workout step
800
									 */
801
									hr_percentage_low?: number
802
									/**
803
									 * Type of target for the workout - i.e. metric type for which a criterion must be met for the workout to be completed
804
									 */
805
									target_type?:
806
										| 'SPEED'
807
										| 'HEART_RATE'
808
										| 'OPEN'
809
										| 'CADENCE'
810
										| 'POWER'
811
										| 'GRADE'
812
										| 'RESISTANCE'
813
										| 'POWER_LAP'
814
										| 'SWIM_STROKE'
815
										| 'SPEED_LAP'
816
										| 'HEART_RATE_LAP'
817
										| 'PACE'
818
										| 'HEART_RATE_THRESHOLD_PERCENTAGE'
819
										| 'HEART_RATE_MAX_PERCENTAGE'
820
										| 'SPEED_PERCENTAGE'
821
										| 'POWER_PERCENTAGE'
822
										| 'REPETITION'
823
										| 'TSS'
824
										| 'IF'
825
									/**
826
									 * Minimum heart rate percentage threshold for the workout step - i.e. the user is to stay above this value during the workout
827
									 */
828
									hr_percentage_high?: number
829
									/**
830
									 * Ideal percentage of user's maximum HR to be maintained workout step
831
									 */
832
									hr_percentage?: number
833
									/**
834
									 * Maximum heart rate threshold for the workout step - i.e. the user is to stay under this value during the workout step
835
									 */
836
									hr_bpm_high?: number
837
									/**
838
									 * Minimum heart rate threshold for the workout step - i.e. the user is to stay above this value during the workout
839
									 */
840
									hr_bpm_low?: number
841
									[k: string]: unknown
842
							  }
843
							| {
844
									/**
845
									 * Type of target for the workout - i.e. metric type for which a criterion must be met for the workout to be completed
846
									 */
847
									target_type?:
848
										| 'SPEED'
849
										| 'HEART_RATE'
850
										| 'OPEN'
851
										| 'CADENCE'
852
										| 'POWER'
853
										| 'GRADE'
854
										| 'RESISTANCE'
855
										| 'POWER_LAP'
856
										| 'SWIM_STROKE'
857
										| 'SPEED_LAP'
858
										| 'HEART_RATE_LAP'
859
										| 'PACE'
860
										| 'HEART_RATE_THRESHOLD_PERCENTAGE'
861
										| 'HEART_RATE_MAX_PERCENTAGE'
862
										| 'SPEED_PERCENTAGE'
863
										| 'POWER_PERCENTAGE'
864
										| 'REPETITION'
865
										| 'TSS'
866
										| 'IF'
867
									/**
868
									 * Maximum percentage of Functional Threshold Power for the workout step - i.e. the user is to stay under this value during the workout step
869
									 */
870
									power_percentage_low?: number
871
									/**
872
									 * Minimum percentage of Functional Threshold Power for the workout step - i.e. the user is to stay above this value during the workout
873
									 */
874
									power_percentage_high?: number
875
									/**
876
									 * Maximum power threshold for the workout step - i.e. the user is to stay under this value during the workout step
877
									 */
878
									power_watt_high?: number
879
									/**
880
									 * Minimum power threshold for the workout step - i.e. the user is to stay above this value during the workout
881
									 */
882
									power_watt_low?: number
883
									power_watt?: number
884
									/**
885
									 * Ideal percentage of user's Functional Threshold Power to be maintained workout step
886
									 */
887
									power_percentage?: number
888
									[k: string]: unknown
889
							  }
890
							| {
891
									/**
892
									 * Type of target for the workout - i.e. metric type for which a criterion must be met for the workout to be completed
893
									 */
894
									target_type?:
895
										| 'SPEED'
896
										| 'HEART_RATE'
897
										| 'OPEN'
898
										| 'CADENCE'
899
										| 'POWER'
900
										| 'GRADE'
901
										| 'RESISTANCE'
902
										| 'POWER_LAP'
903
										| 'SWIM_STROKE'
904
										| 'SPEED_LAP'
905
										| 'HEART_RATE_LAP'
906
										| 'PACE'
907
										| 'HEART_RATE_THRESHOLD_PERCENTAGE'
908
										| 'HEART_RATE_MAX_PERCENTAGE'
909
										| 'SPEED_PERCENTAGE'
910
										| 'POWER_PERCENTAGE'
911
										| 'REPETITION'
912
										| 'TSS'
913
										| 'IF'
914
									/**
915
									 * Maximum speed threshold for the workout step - i.e. the user is to stay under this value during the workout step
916
									 */
917
									speed_percentage_high?: number
918
									/**
919
									 * Minimum speed threshold for the workout step - i.e. the user is to stay above this value during the workout step
920
									 */
921
									speed_percentage_low?: number
922
									/**
923
									 * Ideal percentage of user's Threshold Speed, based off their Threshold Pace, to be maintained workout step. Usually, the Threshold Pace is defined as the pace one could race at for 50 to 60 minutes
924
									 */
925
									speed_percentage?: number
926
									/**
927
									 * Ideal speed value to be maintained for the workout step
928
									 */
929
									speed_meters_per_second?: number
930
									[k: string]: unknown
931
							  }
932
							| {
933
									/**
934
									 * Type of target for the workout - i.e. metric type for which a criterion must be met for the workout to be completed
935
									 */
936
									target_type?:
937
										| 'SPEED'
938
										| 'HEART_RATE'
939
										| 'OPEN'
940
										| 'CADENCE'
941
										| 'POWER'
942
										| 'GRADE'
943
										| 'RESISTANCE'
944
										| 'POWER_LAP'
945
										| 'SWIM_STROKE'
946
										| 'SPEED_LAP'
947
										| 'HEART_RATE_LAP'
948
										| 'PACE'
949
										| 'HEART_RATE_THRESHOLD_PERCENTAGE'
950
										| 'HEART_RATE_MAX_PERCENTAGE'
951
										| 'SPEED_PERCENTAGE'
952
										| 'POWER_PERCENTAGE'
953
										| 'REPETITION'
954
										| 'TSS'
955
										| 'IF'
956
									/**
957
									 * Ideal pace value to be maintained for the workout step
958
									 */
959
									pace_minutes_per_kilometer?: number
960
									[k: string]: unknown
961
							  }
962
							| {
963
									/**
964
									 * Type of target for the workout - i.e. metric type for which a criterion must be met for the workout to be completed
965
									 */
966
									target_type?:
967
										| 'SPEED'
968
										| 'HEART_RATE'
969
										| 'OPEN'
970
										| 'CADENCE'
971
										| 'POWER'
972
										| 'GRADE'
973
										| 'RESISTANCE'
974
										| 'POWER_LAP'
975
										| 'SWIM_STROKE'
976
										| 'SPEED_LAP'
977
										| 'HEART_RATE_LAP'
978
										| 'PACE'
979
										| 'HEART_RATE_THRESHOLD_PERCENTAGE'
980
										| 'HEART_RATE_MAX_PERCENTAGE'
981
										| 'SPEED_PERCENTAGE'
982
										| 'POWER_PERCENTAGE'
983
										| 'REPETITION'
984
										| 'TSS'
985
										| 'IF'
986
									/**
987
									 * Planned Training Stress Score to be achieved for the workout step
988
									 */
989
									tss?: number
990
									[k: string]: unknown
991
							  }
992
							| {
993
									/**
994
									 * Maximum Intensity Factor to be achieved for the workout step
995
									 */
996
									if_high?: number
997
									/**
998
									 * Type of target for the workout - i.e. metric type for which a criterion must be met for the workout to be completed
999
									 */
1000
									target_type?:
1001
										| 'SPEED'
1002
										| 'HEART_RATE'
1003
										| 'OPEN'
1004
										| 'CADENCE'
1005
										| 'POWER'
1006
										| 'GRADE'
1007
										| 'RESISTANCE'
1008
										| 'POWER_LAP'
1009
										| 'SWIM_STROKE'
1010
										| 'SPEED_LAP'
1011
										| 'HEART_RATE_LAP'
1012
										| 'PACE'
1013
										| 'HEART_RATE_THRESHOLD_PERCENTAGE'
1014
										| 'HEART_RATE_MAX_PERCENTAGE'
1015
										| 'SPEED_PERCENTAGE'
1016
										| 'POWER_PERCENTAGE'
1017
										| 'REPETITION'
1018
										| 'TSS'
1019
										| 'IF'
1020
									/**
1021
									 * Minimum Intensity Factor to be achieved for the workout step
1022
									 */
1023
									if_low?: number
1024
									[k: string]: unknown
1025
							  }
1026
							| {
1027
									/**
1028
									 * Type of target for the workout - i.e. metric type for which a criterion must be met for the workout to be completed
1029
									 */
1030
									target_type?:
1031
										| 'SPEED'
1032
										| 'HEART_RATE'
1033
										| 'OPEN'
1034
										| 'CADENCE'
1035
										| 'POWER'
1036
										| 'GRADE'
1037
										| 'RESISTANCE'
1038
										| 'POWER_LAP'
1039
										| 'SWIM_STROKE'
1040
										| 'SPEED_LAP'
1041
										| 'HEART_RATE_LAP'
1042
										| 'PACE'
1043
										| 'HEART_RATE_THRESHOLD_PERCENTAGE'
1044
										| 'HEART_RATE_MAX_PERCENTAGE'
1045
										| 'SPEED_PERCENTAGE'
1046
										| 'POWER_PERCENTAGE'
1047
										| 'REPETITION'
1048
										| 'TSS'
1049
										| 'IF'
1050
									/**
1051
									 * Number of repetitions of the workout step to be performed
1052
									 */
1053
									repetitions?: number
1054
									[k: string]: unknown
1055
							  }
1056
							| {
1057
									/**
1058
									 * Type of target for the workout - i.e. metric type for which a criterion must be met for the workout to be completed
1059
									 */
1060
									target_type?:
1061
										| 'SPEED'
1062
										| 'HEART_RATE'
1063
										| 'OPEN'
1064
										| 'CADENCE'
1065
										| 'POWER'
1066
										| 'GRADE'
1067
										| 'RESISTANCE'
1068
										| 'POWER_LAP'
1069
										| 'SWIM_STROKE'
1070
										| 'SPEED_LAP'
1071
										| 'HEART_RATE_LAP'
1072
										| 'PACE'
1073
										| 'HEART_RATE_THRESHOLD_PERCENTAGE'
1074
										| 'HEART_RATE_MAX_PERCENTAGE'
1075
										| 'SPEED_PERCENTAGE'
1076
										| 'POWER_PERCENTAGE'
1077
										| 'REPETITION'
1078
										| 'TSS'
1079
										| 'IF'
1080
									/**
1081
									 * Number of swim strokes to be performed during the workout step
1082
									 */
1083
									swim_strokes?: number
1084
									[k: string]: unknown
1085
							  }
1086
						)[]
1087
						/**
1088
						 * Type of workout step - either repeat or one-off
1089
						 */
1090
						type?: 'STEP' | 'REPEAT_STEP'
1091
						/**
1092
						 * Planned intensity for the workout step
1093
						 */
1094
						intensity?: 'REST' | 'WARMUP' | 'COOLDOWN' | 'RECOVERY' | 'INTERVAL' | 'ACTIVE'
1095
						/**
1096
						 * Position of the workout step in the overall workout
1097
						 */
1098
						order?: number
1099
						/**
1100
						 * Description of workout step
1101
						 */
1102
						description?: string
1103
						/**
1104
						 * List of conditions to be fulfilled for the workout step to be completed - all of the conditions must be completed
1105
						 */
1106
						durations?: (
1107
							| {
1108
									/**
1109
									 * Type of condition that must be fulfilled to consider the workout step complete
1110
									 */
1111
									duration_type?:
1112
										| 'TIME'
1113
										| 'DISTANCE_METERS'
1114
										| 'HR_LESS_THAN'
1115
										| 'HR_GREATER_THAN'
1116
										| 'CALORIES'
1117
										| 'OPEN'
1118
										| 'POWER_LESS_THAN'
1119
										| 'POWER_GREATER_THAN'
1120
										| 'REPETITION_TIME'
1121
										| 'REPS'
1122
										| 'FIXED_REST'
1123
										| 'TIME_AT_VALID_CDA'
1124
										| 'STEPS'
1125
									[k: string]: unknown
1126
							  }
1127
							| {
1128
									/**
1129
									 * Time duration to be elapsed for the workout step
1130
									 */
1131
									seconds?: number
1132
									/**
1133
									 * Type of condition that must be fulfilled to consider the workout step complete
1134
									 */
1135
									duration_type?:
1136
										| 'TIME'
1137
										| 'DISTANCE_METERS'
1138
										| 'HR_LESS_THAN'
1139
										| 'HR_GREATER_THAN'
1140
										| 'CALORIES'
1141
										| 'OPEN'
1142
										| 'POWER_LESS_THAN'
1143
										| 'POWER_GREATER_THAN'
1144
										| 'REPETITION_TIME'
1145
										| 'REPS'
1146
										| 'FIXED_REST'
1147
										| 'TIME_AT_VALID_CDA'
1148
										| 'STEPS'
1149
									[k: string]: unknown
1150
							  }
1151
							| {
1152
									/**
1153
									 * Threshold power goal to complete the workout step - once the user reaches above this power level, the step will be completed
1154
									 */
1155
									power_above_watts?: number
1156
									/**
1157
									 * Type of condition that must be fulfilled to consider the workout step complete
1158
									 */
1159
									duration_type?:
1160
										| 'TIME'
1161
										| 'DISTANCE_METERS'
1162
										| 'HR_LESS_THAN'
1163
										| 'HR_GREATER_THAN'
1164
										| 'CALORIES'
1165
										| 'OPEN'
1166
										| 'POWER_LESS_THAN'
1167
										| 'POWER_GREATER_THAN'
1168
										| 'REPETITION_TIME'
1169
										| 'REPS'
1170
										| 'FIXED_REST'
1171
										| 'TIME_AT_VALID_CDA'
1172
										| 'STEPS'
1173
									[k: string]: unknown
1174
							  }
1175
							| {
1176
									/**
1177
									 * Threshold power goal to complete the workout step - once the user reaches below this power level, the step will be completed
1178
									 */
1179
									power_below_watts?: number
1180
									/**
1181
									 * Type of condition that must be fulfilled to consider the workout step complete
1182
									 */
1183
									duration_type?:
1184
										| 'TIME'
1185
										| 'DISTANCE_METERS'
1186
										| 'HR_LESS_THAN'
1187
										| 'HR_GREATER_THAN'
1188
										| 'CALORIES'
1189
										| 'OPEN'
1190
										| 'POWER_LESS_THAN'
1191
										| 'POWER_GREATER_THAN'
1192
										| 'REPETITION_TIME'
1193
										| 'REPS'
1194
										| 'FIXED_REST'
1195
										| 'TIME_AT_VALID_CDA'
1196
										| 'STEPS'
1197
									[k: string]: unknown
1198
							  }
1199
							| {
1200
									/**
1201
									 * Type of condition that must be fulfilled to consider the workout step complete
1202
									 */
1203
									duration_type?:
1204
										| 'TIME'
1205
										| 'DISTANCE_METERS'
1206
										| 'HR_LESS_THAN'
1207
										| 'HR_GREATER_THAN'
1208
										| 'CALORIES'
1209
										| 'OPEN'
1210
										| 'POWER_LESS_THAN'
1211
										| 'POWER_GREATER_THAN'
1212
										| 'REPETITION_TIME'
1213
										| 'REPS'
1214
										| 'FIXED_REST'
1215
										| 'TIME_AT_VALID_CDA'
1216
										| 'STEPS'
1217
									/**
1218
									 * Time duration to be elapsed for the rest period
1219
									 */
1220
									rest_seconds?: number
1221
									[k: string]: unknown
1222
							  }
1223
							| {
1224
									/**
1225
									 * Calorie burn target for the workout step - once the user reaches the target, the step will be completed
1226
									 */
1227
									calories?: number
1228
									/**
1229
									 * Type of condition that must be fulfilled to consider the workout step complete
1230
									 */
1231
									duration_type?:
1232
										| 'TIME'
1233
										| 'DISTANCE_METERS'
1234
										| 'HR_LESS_THAN'
1235
										| 'HR_GREATER_THAN'
1236
										| 'CALORIES'
1237
										| 'OPEN'
1238
										| 'POWER_LESS_THAN'
1239
										| 'POWER_GREATER_THAN'
1240
										| 'REPETITION_TIME'
1241
										| 'REPS'
1242
										| 'FIXED_REST'
1243
										| 'TIME_AT_VALID_CDA'
1244
										| 'STEPS'
1245
									[k: string]: unknown
1246
							  }
1247
							| {
1248
									/**
1249
									 * Type of condition that must be fulfilled to consider the workout step complete
1250
									 */
1251
									duration_type?:
1252
										| 'TIME'
1253
										| 'DISTANCE_METERS'
1254
										| 'HR_LESS_THAN'
1255
										| 'HR_GREATER_THAN'
1256
										| 'CALORIES'
1257
										| 'OPEN'
1258
										| 'POWER_LESS_THAN'
1259
										| 'POWER_GREATER_THAN'
1260
										| 'REPETITION_TIME'
1261
										| 'REPS'
1262
										| 'FIXED_REST'
1263
										| 'TIME_AT_VALID_CDA'
1264
										| 'STEPS'
1265
									/**
1266
									 * Threshold heart rate goal to complete the workout step - once the user's heart rate reaches above below this value, the step will be completed
1267
									 */
1268
									hr_above_bpm?: number
1269
									[k: string]: unknown
1270
							  }
1271
							| {
1272
									/**
1273
									 * Threshold heart rate goal to complete the workout step - once the user's heart rate reaches below this value, the step will be completed
1274
									 */
1275
									hr_below_bpm?: number
1276
									/**
1277
									 * Type of condition that must be fulfilled to consider the workout step complete
1278
									 */
1279
									duration_type?:
1280
										| 'TIME'
1281
										| 'DISTANCE_METERS'
1282
										| 'HR_LESS_THAN'
1283
										| 'HR_GREATER_THAN'
1284
										| 'CALORIES'
1285
										| 'OPEN'
1286
										| 'POWER_LESS_THAN'
1287
										| 'POWER_GREATER_THAN'
1288
										| 'REPETITION_TIME'
1289
										| 'REPS'
1290
										| 'FIXED_REST'
1291
										| 'TIME_AT_VALID_CDA'
1292
										| 'STEPS'
1293
									[k: string]: unknown
1294
							  }
1295
							| {
1296
									/**
1297
									 * Target number of reps for the workout step - once the user completes this rep target, the step will be completed
1298
									 */
1299
									reps?: number
1300
									/**
1301
									 * Type of condition that must be fulfilled to consider the workout step complete
1302
									 */
1303
									duration_type?:
1304
										| 'TIME'
1305
										| 'DISTANCE_METERS'
1306
										| 'HR_LESS_THAN'
1307
										| 'HR_GREATER_THAN'
1308
										| 'CALORIES'
1309
										| 'OPEN'
1310
										| 'POWER_LESS_THAN'
1311
										| 'POWER_GREATER_THAN'
1312
										| 'REPETITION_TIME'
1313
										| 'REPS'
1314
										| 'FIXED_REST'
1315
										| 'TIME_AT_VALID_CDA'
1316
										| 'STEPS'
1317
									[k: string]: unknown
1318
							  }
1319
							| {
1320
									/**
1321
									 * Type of condition that must be fulfilled to consider the workout step complete
1322
									 */
1323
									duration_type?:
1324
										| 'TIME'
1325
										| 'DISTANCE_METERS'
1326
										| 'HR_LESS_THAN'
1327
										| 'HR_GREATER_THAN'
1328
										| 'CALORIES'
1329
										| 'OPEN'
1330
										| 'POWER_LESS_THAN'
1331
										| 'POWER_GREATER_THAN'
1332
										| 'REPETITION_TIME'
1333
										| 'REPS'
1334
										| 'FIXED_REST'
1335
										| 'TIME_AT_VALID_CDA'
1336
										| 'STEPS'
1337
									/**
1338
									 * Target distance for the workout step - once the user covers this distance, the step will be completed
1339
									 */
1340
									distance_meters?: number
1341
									[k: string]: unknown
1342
							  }
1343
							| {
1344
									/**
1345
									 * Target number of steps for the workout step - once the user performs this number of steps, the step will be completed
1346
									 */
1347
									steps?: number
1348
									/**
1349
									 * Type of condition that must be fulfilled to consider the workout step complete
1350
									 */
1351
									duration_type?:
1352
										| 'TIME'
1353
										| 'DISTANCE_METERS'
1354
										| 'HR_LESS_THAN'
1355
										| 'HR_GREATER_THAN'
1356
										| 'CALORIES'
1357
										| 'OPEN'
1358
										| 'POWER_LESS_THAN'
1359
										| 'POWER_GREATER_THAN'
1360
										| 'REPETITION_TIME'
1361
										| 'REPS'
1362
										| 'FIXED_REST'
1363
										| 'TIME_AT_VALID_CDA'
1364
										| 'STEPS'
1365
									[k: string]: unknown
1366
							  }
1367
						)[]
1368
						/**
1369
						 * Name of workout step
1370
						 */
1371
						name?: string
1372
						[k: string]: unknown
1373
					}[]
1374
					/**
1375
					 * Planned intensity for the workout step
1376
					 */
1377
					intensity?: number
1378
					/**
1379
					 * Position of the workout step in the overall workout
1380
					 */
1381
					order?: number
1382
					/**
1383
					 * Description of workout step
1384
					 */
1385
					description?: string
1386
					/**
1387
					 * List of conditions to be fulfilled for the workout step to be completed - all of the conditions must be completed
1388
					 */
1389
					durations?: {
1390
						/**
1391
						 * Type of condition that must be fulfilled to consider the workout step complete
1392
						 */
1393
						duration_type?:
1394
							| 'TIME'
1395
							| 'DISTANCE_METERS'
1396
							| 'HR_LESS_THAN'
1397
							| 'HR_GREATER_THAN'
1398
							| 'CALORIES'
1399
							| 'OPEN'
1400
							| 'POWER_LESS_THAN'
1401
							| 'POWER_GREATER_THAN'
1402
							| 'REPETITION_TIME'
1403
							| 'REPS'
1404
							| 'FIXED_REST'
1405
							| 'TIME_AT_VALID_CDA'
1406
							| 'STEPS'
1407
						[k: string]: unknown
1408
					}[]
1409
					/**
1410
					 * Name of workout step
1411
					 */
1412
					name?: string
1413
					[k: string]: unknown
1414
			  }
1415
			| {
1416
					/**
1417
					 * List of targets for the workout
1418
					 */
1419
					targets?: {
1420
						/**
1421
						 * Type of target for the workout - i.e. metric type for which a criterion must be met for the workout to be completed
1422
						 */
1423
						target_type?:
1424
							| 'SPEED'
1425
							| 'HEART_RATE'
1426
							| 'OPEN'
1427
							| 'CADENCE'
1428
							| 'POWER'
1429
							| 'GRADE'
1430
							| 'RESISTANCE'
1431
							| 'POWER_LAP'
1432
							| 'SWIM_STROKE'
1433
							| 'SPEED_LAP'
1434
							| 'HEART_RATE_LAP'
1435
							| 'PACE'
1436
							| 'HEART_RATE_THRESHOLD_PERCENTAGE'
1437
							| 'HEART_RATE_MAX_PERCENTAGE'
1438
							| 'SPEED_PERCENTAGE'
1439
							| 'POWER_PERCENTAGE'
1440
							| 'REPETITION'
1441
							| 'TSS'
1442
							| 'IF'
1443
						[k: string]: unknown
1444
					}[]
1445
					/**
1446
					 * Type of workout step - either repeat or one-off
1447
					 */
1448
					type?: 'STEP' | 'REPEAT_STEP'
1449
					/**
1450
					 * Planned intensity for the workout step
1451
					 */
1452
					intensity?: number
1453
					/**
1454
					 * Position of the workout step in the overall workout
1455
					 */
1456
					order?: number
1457
					/**
1458
					 * Workout equipment to be used during the workout step
1459
					 */
1460
					equipment_type?:
1461
						| 'NONE'
1462
						| 'SWIM_FINS'
1463
						| 'SWIM_KICKBOARD'
1464
						| 'SWIM_PADDLES'
1465
						| 'SWIM_PULL_BUOY'
1466
						| 'SWIM_SNORKEL'
1467
					/**
1468
					 * Description of workout step
1469
					 */
1470
					description?: string
1471
					/**
1472
					 * List of conditions to be fulfilled for the workout step to be completed - all of the conditions must be completed
1473
					 */
1474
					durations?: {
1475
						/**
1476
						 * Type of condition that must be fulfilled to consider the workout step complete
1477
						 */
1478
						duration_type?:
1479
							| 'TIME'
1480
							| 'DISTANCE_METERS'
1481
							| 'HR_LESS_THAN'
1482
							| 'HR_GREATER_THAN'
1483
							| 'CALORIES'
1484
							| 'OPEN'
1485
							| 'POWER_LESS_THAN'
1486
							| 'POWER_GREATER_THAN'
1487
							| 'REPETITION_TIME'
1488
							| 'REPS'
1489
							| 'FIXED_REST'
1490
							| 'TIME_AT_VALID_CDA'
1491
							| 'STEPS'
1492
						[k: string]: unknown
1493
					}[]
1494
					/**
1495
					 * Name of workout step
1496
					 */
1497
					name?: string
1498
					/**
1499
					 * Stroke type used for the workout step (e.g. breaststroke)
1500
					 */
1501
					stroke_type?: 'OTHER' | 'FREESTYLE' | 'BACKSTROKE' | 'BREASTSTROKE' | 'BUTTERFLY' | 'REST'
1502
					[k: string]: unknown
1503
			  }
1504
			| {
1505
					/**
1506
					 * List of targets for the workout
1507
					 */
1508
					targets?: {
1509
						/**
1510
						 * Type of target for the workout - i.e. metric type for which a criterion must be met for the workout to be completed
1511
						 */
1512
						target_type?:
1513
							| 'SPEED'
1514
							| 'HEART_RATE'
1515
							| 'OPEN'
1516
							| 'CADENCE'
1517
							| 'POWER'
1518
							| 'GRADE'
1519
							| 'RESISTANCE'
1520
							| 'POWER_LAP'
1521
							| 'SWIM_STROKE'
1522
							| 'SPEED_LAP'
1523
							| 'HEART_RATE_LAP'
1524
							| 'PACE'
1525
							| 'HEART_RATE_THRESHOLD_PERCENTAGE'
1526
							| 'HEART_RATE_MAX_PERCENTAGE'
1527
							| 'SPEED_PERCENTAGE'
1528
							| 'POWER_PERCENTAGE'
1529
							| 'REPETITION'
1530
							| 'TSS'
1531
							| 'IF'
1532
						[k: string]: unknown
1533
					}[]
1534
					/**
1535
					 * Type of workout step - either repeat or one-off
1536
					 */
1537
					type?: 'STEP' | 'REPEAT_STEP'
1538
					/**
1539
					 * Planned intensity for the workout step
1540
					 */
1541
					intensity?: number
1542
					/**
1543
					 * Position of the workout step in the overall workout
1544
					 */
1545
					order?: number
1546
					/**
1547
					 * Name of exercise to be performed for the workout step
1548
					 */
1549
					exercise_name?: string
1550
					/**
1551
					 * Description of workout step
1552
					 */
1553
					description?: string
1554
					/**
1555
					 * List of conditions to be fulfilled for the workout step to be completed - all of the conditions must be completed
1556
					 */
1557
					durations?: {
1558
						/**
1559
						 * Type of condition that must be fulfilled to consider the workout step complete
1560
						 */
1561
						duration_type?:
1562
							| 'TIME'
1563
							| 'DISTANCE_METERS'
1564
							| 'HR_LESS_THAN'
1565
							| 'HR_GREATER_THAN'
1566
							| 'CALORIES'
1567
							| 'OPEN'
1568
							| 'POWER_LESS_THAN'
1569
							| 'POWER_GREATER_THAN'
1570
							| 'REPETITION_TIME'
1571
							| 'REPS'
1572
							| 'FIXED_REST'
1573
							| 'TIME_AT_VALID_CDA'
1574
							| 'STEPS'
1575
						[k: string]: unknown
1576
					}[]
1577
					/**
1578
					 * Type of exercise to be performed for the workout step
1579
					 */
1580
					exercise_category?:
1581
						| 'UNKNOWN'
1582
						| 'BENCH_PRESS'
1583
						| 'CALF_RAISE'
1584
						| 'CARDIO'
1585
						| 'CARRY'
1586
						| 'CHOP'
1587
						| 'CORE'
1588
						| 'CRUNCH'
1589
						| 'CURL'
1590
						| 'DEADLIFT'
1591
						| 'FLYE'
1592
						| 'HIP_RAISE'
1593
						| 'HIP_STABILITY'
1594
						| 'HIP_SWING'
1595
						| 'HYPEREXTENSION'
1596
						| 'LATERAL_RAISE'
1597
						| 'LEG_CURL'
1598
						| 'LEG_RAISE'
1599
						| 'LUNGE'
1600
						| 'OLYMPIC_LIFT'
1601
						| 'PLANK'
1602
						| 'PLYO'
1603
						| 'PULL_UP'
1604
						| 'PUSH_UP'
1605
						| 'ROW'
1606
						| 'SHOULDER_PRESS'
1607
						| 'SHOULDER_STABILITY'
1608
						| 'SHRUG'
1609
						| 'SIT_UP'
1610
						| 'SQUAT'
1611
						| 'TOTAL_BODY'
1612
						| 'TRICEPS_EXTENSION'
1613
						| 'WARM_UP'
1614
						| 'RUN'
1615
						| 'BIKE'
1616
						| 'CARDIO_SENSORS'
1617
					/**
1618
					 * Name of workout step
1619
					 */
1620
					name?: string
1621
					[k: string]: unknown
1622
			  }
1623
			| {
1624
					/**
1625
					 * Weight to be lifted for the exercise
1626
					 */
1627
					weight_kg?: number
1628
					/**
1629
					 * List of targets for the workout
1630
					 */
1631
					targets?: {
1632
						/**
1633
						 * Type of target for the workout - i.e. metric type for which a criterion must be met for the workout to be completed
1634
						 */
1635
						target_type?:
1636
							| 'SPEED'
1637
							| 'HEART_RATE'
1638
							| 'OPEN'
1639
							| 'CADENCE'
1640
							| 'POWER'
1641
							| 'GRADE'
1642
							| 'RESISTANCE'
1643
							| 'POWER_LAP'
1644
							| 'SWIM_STROKE'
1645
							| 'SPEED_LAP'
1646
							| 'HEART_RATE_LAP'
1647
							| 'PACE'
1648
							| 'HEART_RATE_THRESHOLD_PERCENTAGE'
1649
							| 'HEART_RATE_MAX_PERCENTAGE'
1650
							| 'SPEED_PERCENTAGE'
1651
							| 'POWER_PERCENTAGE'
1652
							| 'REPETITION'
1653
							| 'TSS'
1654
							| 'IF'
1655
						[k: string]: unknown
1656
					}[]
1657
					/**
1658
					 * Type of workout step - either repeat or one-off
1659
					 */
1660
					type?: 'STEP' | 'REPEAT_STEP'
1661
					/**
1662
					 * Planned intensity for the workout step
1663
					 */
1664
					intensity?: number
1665
					/**
1666
					 * Position of the workout step in the overall workout
1667
					 */
1668
					order?: number
1669
					/**
1670
					 * Name of strength exercise to be performed for the workout step
1671
					 */
1672
					exercise_name?: string
1673
					/**
1674
					 * Description of workout step
1675
					 */
1676
					description?: string
1677
					/**
1678
					 * List of conditions to be fulfilled for the workout step to be completed - all of the conditions must be completed
1679
					 */
1680
					durations?: {
1681
						/**
1682
						 * Type of condition that must be fulfilled to consider the workout step complete
1683
						 */
1684
						duration_type?:
1685
							| 'TIME'
1686
							| 'DISTANCE_METERS'
1687
							| 'HR_LESS_THAN'
1688
							| 'HR_GREATER_THAN'
1689
							| 'CALORIES'
1690
							| 'OPEN'
1691
							| 'POWER_LESS_THAN'
1692
							| 'POWER_GREATER_THAN'
1693
							| 'REPETITION_TIME'
1694
							| 'REPS'
1695
							| 'FIXED_REST'
1696
							| 'TIME_AT_VALID_CDA'
1697
							| 'STEPS'
1698
						[k: string]: unknown
1699
					}[]
1700
					/**
1701
					 * Type of strength exercise to be performed for the workout step
1702
					 */
1703
					exercise_category?:
1704
						| 'UNKNOWN'
1705
						| 'BENCH_PRESS'
1706
						| 'CALF_RAISE'
1707
						| 'CARDIO'
1708
						| 'CARRY'
1709
						| 'CHOP'
1710
						| 'CORE'
1711
						| 'CRUNCH'
1712
						| 'CURL'
1713
						| 'DEADLIFT'
1714
						| 'FLYE'
1715
						| 'HIP_RAISE'
1716
						| 'HIP_STABILITY'
1717
						| 'HIP_SWING'
1718
						| 'HYPEREXTENSION'
1719
						| 'LATERAL_RAISE'
1720
						| 'LEG_CURL'
1721
						| 'LEG_RAISE'
1722
						| 'LUNGE'
1723
						| 'OLYMPIC_LIFT'
1724
						| 'PLANK'
1725
						| 'PLYO'
1726
						| 'PULL_UP'
1727
						| 'PUSH_UP'
1728
						| 'ROW'
1729
						| 'SHOULDER_PRESS'
1730
						| 'SHOULDER_STABILITY'
1731
						| 'SHRUG'
1732
						| 'SIT_UP'
1733
						| 'SQUAT'
1734
						| 'TOTAL_BODY'
1735
						| 'TRICEPS_EXTENSION'
1736
						| 'WARM_UP'
1737
						| 'RUN'
1738
						| 'BIKE'
1739
						| 'CARDIO_SENSORS'
1740
					/**
1741
					 * Name of workout step
1742
					 */
1743
					name?: string
1744
					[k: string]: unknown
1745
			  }
1746
			| {
1747
					/**
1748
					 * List of targets for the workout
1749
					 */
1750
					targets?: {
1751
						/**
1752
						 * Type of target for the workout - i.e. metric type for which a criterion must be met for the workout to be completed
1753
						 */
1754
						target_type?:
1755
							| 'SPEED'
1756
							| 'HEART_RATE'
1757
							| 'OPEN'
1758
							| 'CADENCE'
1759
							| 'POWER'
1760
							| 'GRADE'
1761
							| 'RESISTANCE'
1762
							| 'POWER_LAP'
1763
							| 'SWIM_STROKE'
1764
							| 'SPEED_LAP'
1765
							| 'HEART_RATE_LAP'
1766
							| 'PACE'
1767
							| 'HEART_RATE_THRESHOLD_PERCENTAGE'
1768
							| 'HEART_RATE_MAX_PERCENTAGE'
1769
							| 'SPEED_PERCENTAGE'
1770
							| 'POWER_PERCENTAGE'
1771
							| 'REPETITION'
1772
							| 'TSS'
1773
							| 'IF'
1774
						[k: string]: unknown
1775
					}[]
1776
					/**
1777
					 * Type of workout step - either repeat or one-off
1778
					 */
1779
					type?: 'STEP' | 'REPEAT_STEP'
1780
					/**
1781
					 * Planned intensity for the workout step
1782
					 */
1783
					intensity?: number
1784
					/**
1785
					 * Position of the workout step in the overall workout
1786
					 */
1787
					order?: number
1788
					/**
1789
					 * Description of workout step
1790
					 */
1791
					description?: string
1792
					/**
1793
					 * List of conditions to be fulfilled for the workout step to be completed - all of the conditions must be completed
1794
					 */
1795
					durations?: {
1796
						/**
1797
						 * Type of condition that must be fulfilled to consider the workout step complete
1798
						 */
1799
						duration_type?:
1800
							| 'TIME'
1801
							| 'DISTANCE_METERS'
1802
							| 'HR_LESS_THAN'
1803
							| 'HR_GREATER_THAN'
1804
							| 'CALORIES'
1805
							| 'OPEN'
1806
							| 'POWER_LESS_THAN'
1807
							| 'POWER_GREATER_THAN'
1808
							| 'REPETITION_TIME'
1809
							| 'REPS'
1810
							| 'FIXED_REST'
1811
							| 'TIME_AT_VALID_CDA'
1812
							| 'STEPS'
1813
						[k: string]: unknown
1814
					}[]
1815
					/**
1816
					 * Name of workout step
1817
					 */
1818
					name?: string
1819
					[k: string]: unknown
1820
			  }
1821
			| {
1822
					/**
1823
					 * List of targets for the workout
1824
					 */
1825
					targets?: {
1826
						/**
1827
						 * Type of target for the workout - i.e. metric type for which a criterion must be met for the workout to be completed
1828
						 */
1829
						target_type?:
1830
							| 'SPEED'
1831
							| 'HEART_RATE'
1832
							| 'OPEN'
1833
							| 'CADENCE'
1834
							| 'POWER'
1835
							| 'GRADE'
1836
							| 'RESISTANCE'
1837
							| 'POWER_LAP'
1838
							| 'SWIM_STROKE'
1839
							| 'SPEED_LAP'
1840
							| 'HEART_RATE_LAP'
1841
							| 'PACE'
1842
							| 'HEART_RATE_THRESHOLD_PERCENTAGE'
1843
							| 'HEART_RATE_MAX_PERCENTAGE'
1844
							| 'SPEED_PERCENTAGE'
1845
							| 'POWER_PERCENTAGE'
1846
							| 'REPETITION'
1847
							| 'TSS'
1848
							| 'IF'
1849
						[k: string]: unknown
1850
					}[]
1851
					/**
1852
					 * Type of workout step - either repeat or one-off
1853
					 */
1854
					type?: 'STEP' | 'REPEAT_STEP'
1855
					/**
1856
					 * Planned intensity for the workout step
1857
					 */
1858
					intensity?: number
1859
					/**
1860
					 * Position of the workout step in the overall workout
1861
					 */
1862
					order?: number
1863
					/**
1864
					 * Description of workout step
1865
					 */
1866
					description?: string
1867
					/**
1868
					 * List of conditions to be fulfilled for the workout step to be completed - all of the conditions must be completed
1869
					 */
1870
					durations?: {
1871
						/**
1872
						 * Type of condition that must be fulfilled to consider the workout step complete
1873
						 */
1874
						duration_type?:
1875
							| 'TIME'
1876
							| 'DISTANCE_METERS'
1877
							| 'HR_LESS_THAN'
1878
							| 'HR_GREATER_THAN'
1879
							| 'CALORIES'
1880
							| 'OPEN'
1881
							| 'POWER_LESS_THAN'
1882
							| 'POWER_GREATER_THAN'
1883
							| 'REPETITION_TIME'
1884
							| 'REPS'
1885
							| 'FIXED_REST'
1886
							| 'TIME_AT_VALID_CDA'
1887
							| 'STEPS'
1888
						[k: string]: unknown
1889
					}[]
1890
					/**
1891
					 * Name of workout step
1892
					 */
1893
					name?: string
1894
					[k: string]: unknown
1895
			  }
1896
			| {
1897
					/**
1898
					 * List of targets for the workout
1899
					 */
1900
					targets?: {
1901
						/**
1902
						 * Type of target for the workout - i.e. metric type for which a criterion must be met for the workout to be completed
1903
						 */
1904
						target_type?:
1905
							| 'SPEED'
1906
							| 'HEART_RATE'
1907
							| 'OPEN'
1908
							| 'CADENCE'
1909
							| 'POWER'
1910
							| 'GRADE'
1911
							| 'RESISTANCE'
1912
							| 'POWER_LAP'
1913
							| 'SWIM_STROKE'
1914
							| 'SPEED_LAP'
1915
							| 'HEART_RATE_LAP'
1916
							| 'PACE'
1917
							| 'HEART_RATE_THRESHOLD_PERCENTAGE'
1918
							| 'HEART_RATE_MAX_PERCENTAGE'
1919
							| 'SPEED_PERCENTAGE'
1920
							| 'POWER_PERCENTAGE'
1921
							| 'REPETITION'
1922
							| 'TSS'
1923
							| 'IF'
1924
						[k: string]: unknown
1925
					}[]
1926
					/**
1927
					 * Type of workout step - either repeat or one-off
1928
					 */
1929
					type?: 'STEP' | 'REPEAT_STEP'
1930
					/**
1931
					 * Planned intensity for the workout step
1932
					 */
1933
					intensity?: number
1934
					/**
1935
					 * Position of the workout step in the overall workout
1936
					 */
1937
					order?: number
1938
					/**
1939
					 * Description of workout step
1940
					 */
1941
					description?: string
1942
					/**
1943
					 * List of conditions to be fulfilled for the workout step to be completed - all of the conditions must be completed
1944
					 */
1945
					durations?: {
1946
						/**
1947
						 * Type of condition that must be fulfilled to consider the workout step complete
1948
						 */
1949
						duration_type?:
1950
							| 'TIME'
1951
							| 'DISTANCE_METERS'
1952
							| 'HR_LESS_THAN'
1953
							| 'HR_GREATER_THAN'
1954
							| 'CALORIES'
1955
							| 'OPEN'
1956
							| 'POWER_LESS_THAN'
1957
							| 'POWER_GREATER_THAN'
1958
							| 'REPETITION_TIME'
1959
							| 'REPS'
1960
							| 'FIXED_REST'
1961
							| 'TIME_AT_VALID_CDA'
1962
							| 'STEPS'
1963
						[k: string]: unknown
1964
					}[]
1965
					/**
1966
					 * Name of workout step
1967
					 */
1968
					name?: string
1969
					[k: string]: unknown
1970
			  }
1971
			| {
1972
					/**
1973
					 * List of targets for the workout
1974
					 */
1975
					targets?: {
1976
						/**
1977
						 * Type of target for the workout - i.e. metric type for which a criterion must be met for the workout to be completed
1978
						 */
1979
						target_type?:
1980
							| 'SPEED'
1981
							| 'HEART_RATE'
1982
							| 'OPEN'
1983
							| 'CADENCE'
1984
							| 'POWER'
1985
							| 'GRADE'
1986
							| 'RESISTANCE'
1987
							| 'POWER_LAP'
1988
							| 'SWIM_STROKE'
1989
							| 'SPEED_LAP'
1990
							| 'HEART_RATE_LAP'
1991
							| 'PACE'
1992
							| 'HEART_RATE_THRESHOLD_PERCENTAGE'
1993
							| 'HEART_RATE_MAX_PERCENTAGE'
1994
							| 'SPEED_PERCENTAGE'
1995
							| 'POWER_PERCENTAGE'
1996
							| 'REPETITION'
1997
							| 'TSS'
1998
							| 'IF'
1999
						[k: string]: unknown
2000
					}[]
2001
					/**
2002
					 * Type of workout step - either repeat or one-off
2003
					 */
2004
					type?: 'STEP' | 'REPEAT_STEP'
2005
					/**
2006
					 * Planned intensity for the workout step
2007
					 */
2008
					intensity?: number
2009
					/**
2010
					 * Position of the workout step in the overall workout
2011
					 */
2012
					order?: number
2013
					/**
2014
					 * Description of workout step
2015
					 */
2016
					description?: string
2017
					/**
2018
					 * List of conditions to be fulfilled for the workout step to be completed - all of the conditions must be completed
2019
					 */
2020
					durations?: {
2021
						/**
2022
						 * Type of condition that must be fulfilled to consider the workout step complete
2023
						 */
2024
						duration_type?:
2025
							| 'TIME'
2026
							| 'DISTANCE_METERS'
2027
							| 'HR_LESS_THAN'
2028
							| 'HR_GREATER_THAN'
2029
							| 'CALORIES'
2030
							| 'OPEN'
2031
							| 'POWER_LESS_THAN'
2032
							| 'POWER_GREATER_THAN'
2033
							| 'REPETITION_TIME'
2034
							| 'REPS'
2035
							| 'FIXED_REST'
2036
							| 'TIME_AT_VALID_CDA'
2037
							| 'STEPS'
2038
						[k: string]: unknown
2039
					}[]
2040
					/**
2041
					 * Name of workout step
2042
					 */
2043
					name?: string
2044
					[k: string]: unknown
2045
			  }
2046
		)[]
2047
		/**
2048
		 * Metadata for the workout plan
2049
		 */
2050
		metadata?: {
2051
			/**
2052
			 * Estimated energy expenditure for the workout
2053
			 */
2054
			estimated_energy_kj?: number | null
2055
			/**
2056
			 * Estimated speed for the workout
2057
			 */
2058
			estimated_speed_meters_per_second?: number | null
2059
			/**
2060
			 * Estimated elevation gain for the workout
2061
			 */
2062
			estimated_elevation_gain_meters?: number | null
2063
			/**
2064
			 * Estimated Training Stress Score for the workout
2065
			 */
2066
			estimated_tss?: number | null
2067
			/**
2068
			 * Estimated calorie burn for the workout
2069
			 */
2070
			estimated_calories?: number | null
2071
			/**
2072
			 * The creation datetime of the associated workout, in ISO8601 format with microsecond precision. TimeZone info will be provided whenever possible. If absent, the time corresponds to the user's local time
2073
			 */
2074
			created_date?: string | null
2075
			/**
2076
			 * The planned start datetime, in ISO8601 format with microsecond precision. TimeZone info will be provided whenever possible. If absent, the time corresponds to the user's local time
2077
			 */
2078
			planned_date?: string
2079
			/**
2080
			 * The name - either user-entered or given by the fitness data provider - of the associated workout plan
2081
			 */
2082
			type?:
2083
				| 'IN_VEHICLE'
2084
				| 'BIKING'
2085
				| 'STILL'
2086
				| 'UNKNOWN'
2087
				| 'TILTING'
2088
				| 'WALKING'
2089
				| 'RUNNING'
2090
				| 'AEROBICS'
2091
				| 'BADMINTON'
2092
				| 'BASEBALL'
2093
				| 'BASKETBALL'
2094
				| 'BIATHLON'
2095
				| 'HANDBIKING'
2096
				| 'MOUNTAIN_BIKING'
2097
				| 'ROAD_BIKING'
2098
				| 'SPINNING'
2099
				| 'STATIONARY_BIKING'
2100
				| 'UTILITY_BIKING'
2101
				| 'BOXING'
2102
				| 'CALISTHENICS'
2103
				| 'CIRCUIT_TRAINING'
2104
				| 'CRICKET'
2105
				| 'DANCING'
2106
				| 'ELLIPTICAL'
2107
				| 'FENCING'
2108
				| 'AMERICAN_FOOTBALL'
2109
				| 'AUSTRALIAN_FOOTBALL'
2110
				| 'ENGLISH_FOOTBALL'
2111
				| 'FRISBEE'
2112
				| 'GARDENING'
2113
				| 'GOLF'
2114
				| 'GYMNASTICS'
2115
				| 'HANDBALL'
2116
				| 'HIKING'
2117
				| 'HOCKEY'
2118
				| 'HORSEBACK_RIDING'
2119
				| 'HOUSEWORK'
2120
				| 'JUMPING_ROPE'
2121
				| 'KAYAKING'
2122
				| 'KETTLEBELL_TRAINING'
2123
				| 'KICKBOXING'
2124
				| 'KITESURFING'
2125
				| 'MARTIAL_ARTS'
2126
				| 'MEDITATION'
2127
				| 'MIXED_MARTIAL_ARTS'
2128
				| 'P90X_EXERCISES'
2129
				| 'PARAGLIDING'
2130
				| 'PILATES'
2131
				| 'POLO'
2132
				| 'RACQUETBALL'
2133
				| 'ROCK_CLIMBING'
2134
				| 'ROWING'
2135
				| 'ROWING_MACHINE'
2136
				| 'RUGBY'
2137
				| 'JOGGING'
2138
				| 'RUNNING_ON_SAND'
2139
				| 'TREADMILL_RUNNING'
2140
				| 'SAILING'
2141
				| 'SCUBA_DIVING'
2142
				| 'SKATEBOARDING'
2143
				| 'SKATING'
2144
				| 'CROSS_SKATING'
2145
				| 'INDOOR_ROLLERBLADING'
2146
				| 'SKIING'
2147
				| 'BACK_COUNTRY_SKIING'
2148
				| 'CROSS_COUNTRY_SKIING'
2149
				| 'DOWNHILL_SKIING'
2150
				| 'KITE_SKIING'
2151
				| 'ROLLER_SKIING'
2152
				| 'SLEDDING'
2153
				| 'SNOWBOARDING'
2154
				| 'SNOWMOBILE'
2155
				| 'SNOWSHOEING'
2156
				| 'SQUASH'
2157
				| 'STAIR_CLIMBING'
2158
				| 'STAIR_CLIMBING_MACHINE'
2159
				| 'STAND_UP_PADDLEBOARDING'
2160
				| 'STRENGTH_TRAINING'
2161
				| 'SURFING'
2162
				| 'SWIMMING'
2163
				| 'SWIMMING_SWIMMING_POOL'
2164
				| 'SWIMMING_OPEN_WATER'
2165
				| 'TABLE_TENNIS'
2166
				| 'TEAM_SPORTS'
2167
				| 'TENNIS'
2168
				| 'TREADMILL'
2169
				| 'VOLLEYBALL'
2170
				| 'VOLLEYBALL_BEACH'
2171
				| 'VOLLEYBALL_INDOOR'
2172
				| 'WAKEBOARDING'
2173
				| 'WALKING_FITNESS'
2174
				| 'NORDIC_WALKING'
2175
				| 'WALKING_TREADMILL'
2176
				| 'WATERPOLO'
2177
				| 'WEIGHTLIFTING'
2178
				| 'WHEELCHAIR'
2179
				| 'WINDSURFING'
2180
				| 'YOGA'
2181
				| 'ZUMBA'
2182
				| 'DIVING'
2183
				| 'ERGOMETER'
2184
				| 'ICE_SKATING'
2185
				| 'INDOOR_SKATING'
2186
				| 'CURLING'
2187
				| 'OTHER'
2188
				| 'CROSSFIT'
2189
				| 'HIIT'
2190
				| 'INTERVAL_TRAINING'
2191
				| 'WALKING_STROLLER'
2192
				| 'ELEVATOR'
2193
				| 'ESCALATOR'
2194
				| 'ARCHERY'
2195
				| 'SOFTBALL'
2196
				| 'GUIDED_BREATHING'
2197
				| 'CARDIO_TRAINING'
2198
				| 'LACROSSE'
2199
				| 'STRETCHING'
2200
				| 'TRIATHLON'
2201
				| 'INLINE_SKATING'
2202
				| 'SKY_DIVING'
2203
				| 'PADDLING'
2204
				| 'MOUNTAINEERING'
2205
				| 'FISHING'
2206
				| 'WATER_SKIING'
2207
				| 'INDOOR_RUNNING'
2208
			id?: string | null
2209
			/**
2210
			 * Estimated workout duration
2211
			 */
2212
			estimated_duration_seconds?: number | null
2213
			/**
2214
			 * Estimated pace for the workout
2215
			 */
2216
			estimated_pace_minutes_per_kilometer?: number | null
2217
			/**
2218
			 * Name of the original source of the workout plan
2219
			 */
2220
			provider?: string
2221
			/**
2222
			 * Estimated training stress score for the workout (normalized power-based metric)
2223
			 */
2224
			estimated_tscore?: number | null
2225
			/**
2226
			 * Description of the workout
2227
			 */
2228
			description?: string | null
2229
			/**
2230
			 * Name of the workout plan
2231
			 */
2232
			name?: string | null
2233
			/**
2234
			 * Estimated distance for the workout
2235
			 */
2236
			estimated_distance_meters?: number | null
2237
			/**
2238
			 * Estimated Intensity Factor for the workout
2239
			 */
2240
			estimated_if?: number | null
2241
			/**
2242
			 * Pool length of the pool used for the workout - only relevant for swimming activity types
2243
			 */
2244
			pool_length_meters?: number | null
2245
			[k: string]: unknown
2246
		}
2247
		[k: string]: unknown
2248
	}[]
2249
	[k: string]: unknown
2250
}
2251