---
url: /docs/api/core/variables/workoutStepSchema.md
---
[**@kaiord/core**](../README.md)

***

[@kaiord/core](../README.md) / workoutStepSchema

# Variable: workoutStepSchema

> `const` **workoutStepSchema**: `ZodObject`<{ `duration`: `ZodDiscriminatedUnion`<\[`ZodObject`<{ `seconds`: `ZodNumber`; `type`: `ZodLiteral`<`"time"`>; }, `$strip`>, `ZodObject`<{ `meters`: `ZodNumber`; `type`: `ZodLiteral`<`"distance"`>; }, `$strip`>, `ZodObject`<{ `bpm`: `ZodNumber`; `type`: `ZodLiteral`<`"heart_rate_less_than"`>; }, `$strip`>, `ZodObject`<{ `bpm`: `ZodNumber`; `repeatFrom`: `ZodNumber`; `type`: `ZodLiteral`<`"repeat_until_heart_rate_greater_than"`>; }, `$strip`>], `"type"`>; `durationType`: `ZodEnum`<{ `calories`: `"calories"`; `distance`: `"distance"`; `heart_rate_less_than`: `"heart_rate_less_than"`; `open`: `"open"`; `power_greater_than`: `"power_greater_than"`; `power_less_than`: `"power_less_than"`; `repeat_until_calories`: `"repeat_until_calories"`; `repeat_until_distance`: `"repeat_until_distance"`; `repeat_until_heart_rate_greater_than`: `"repeat_until_heart_rate_greater_than"`; `repeat_until_heart_rate_less_than`: `"repeat_until_heart_rate_less_than"`; `repeat_until_power_greater_than`: `"repeat_until_power_greater_than"`; `repeat_until_power_less_than`: `"repeat_until_power_less_than"`; `repeat_until_time`: `"repeat_until_time"`; `time`: `"time"`; }>; `equipment`: `ZodOptional`<`ZodEnum`<{ `none`: `"none"`; `swim_fins`: `"swim_fins"`; `swim_kickboard`: `"swim_kickboard"`; `swim_paddles`: `"swim_paddles"`; `swim_pull_buoy`: `"swim_pull_buoy"`; `swim_snorkel`: `"swim_snorkel"`; }>>; `extensions`: `ZodOptional`<`ZodRecord`<`ZodString`, `ZodUnknown`>>; `intensity`: `ZodOptional`<`ZodEnum`<{ `active`: `"active"`; `cooldown`: `"cooldown"`; `interval`: `"interval"`; `other`: `"other"`; `recovery`: `"recovery"`; `rest`: `"rest"`; `warmup`: `"warmup"`; }>>; `name`: `ZodOptional`<`ZodString`>; `notes`: `ZodOptional`<`ZodString`>; `stepIndex`: `ZodNumber`; `target`: `ZodDiscriminatedUnion`<\[`ZodObject`<{ `type`: `ZodLiteral`<`"power"`>; `value`: `ZodDiscriminatedUnion`<\[`ZodObject`<{ `unit`: `ZodLiteral`<...>; `value`: `ZodNumber`; }, `$strip`>, `ZodObject`<{ `unit`: `ZodLiteral`<...>; `value`: `ZodNumber`; }, `$strip`>, `ZodObject`<{ `unit`: `ZodLiteral`<...>; `value`: `ZodNumber`; }, `$strip`>, `ZodObject`<{ `basis`: `ZodOptional`<...>; `max`: `ZodNumber`; `min`: `ZodNumber`; `unit`: `ZodLiteral`<...>; }, `$strip`>], `"unit"`>; }, `$strip`>, `ZodObject`<{ `type`: `ZodLiteral`<`"heart_rate"`>; `value`: `ZodDiscriminatedUnion`<\[`ZodObject`<{ `unit`: `ZodLiteral`<...>; `value`: `ZodNumber`; }, `$strip`>, `ZodObject`<{ `unit`: `ZodLiteral`<...>; `value`: `ZodNumber`; }, `$strip`>, `ZodObject`<{ `unit`: `ZodLiteral`<...>; `value`: `ZodNumber`; }, `$strip`>, `ZodObject`<{ `max`: `ZodNumber`; `min`: `ZodNumber`; `unit`: `ZodLiteral`<...>; }, `$strip`>], `"unit"`>; }, `$strip`>, `ZodObject`<{ `type`: `ZodLiteral`<`"cadence"`>; `value`: `ZodDiscriminatedUnion`<\[`ZodObject`<{ `unit`: `ZodLiteral`<...>; `value`: `ZodNumber`; }, `$strip`>, `ZodObject`<{ `max`: `ZodNumber`; `min`: `ZodNumber`; `unit`: `ZodLiteral`<...>; }, `$strip`>], `"unit"`>; }, `$strip`>], `"type"`>; `targetType`: `ZodEnum`<{ `cadence`: `"cadence"`; `heart_rate`: `"heart_rate"`; `open`: `"open"`; `pace`: `"pace"`; `power`: `"power"`; `stroke_type`: `"stroke_type"`; }>; }, `$strip`>

Defined in: [packages/core/src/domain/schemas/workout-step.ts:16](https://github.com/pablo-albaladejo/kaiord/blob/3eacbe62ef72342d970523967cc5155b5935bb85/packages/core/src/domain/schemas/workout-step.ts#L16)

Zod schema for a workout step.

Validates an individual interval or segment within a workout,
including duration, target, and intensity.
