changedInput schema / properties / steps / items / anyOf
Previous value: -[
- {
- "additionalProperties": false,
- "properties": {
- "duration": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "type": {
- "const": "time",
- "type": "string"
- },
- "unit": {
- "enum": [
- "sec",
- "min",
- "hour"
- ],
- "type": "string"
- },
- "value": {
- "description": "e.g. 10",
- "type": "number"
- }
- },
- "required": [
- "type",
- "value",
- "unit"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "type": {
- "const": "distance",
- "type": "string"
- },
- "unit": {
- "enum": [
- "m",
- "km",
- "mi"
- ],
- "type": "string"
- },
- "value": {
- "description": "e.g. 1.5",
- "type": "number"
- }
- },
- "required": [
- "type",
- "value",
- "unit"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "type": {
- "const": "lapButton",
- "type": "string"
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "type": {
- "const": "calories",
- "type": "string"
- },
- "value": {
- "type": "number"
- }
- },
- "required": [
- "type",
- "value"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "End when heart rate crosses a threshold, e.g. warm up until HR > 130.",
- "properties": {
- "bpm": {
- "type": "number"
- },
- "compare": {
- "description": "End when HR is below (lt) or above (gt) bpm.",
- "enum": [
- "lt",
- "gt"
- ],
- "type": "string"
- },
- "type": {
- "const": "heartRate",
- "type": "string"
- }
- },
- "required": [
- "type",
- "bpm",
- "compare"
- ],
- "type": "object"
- }
- ],
- "description": "How the step ends."
- },
- "intensity": {
- "enum": [
- "warmup",
- "active",
- "rest",
- "cooldown"
- ],
- "type": "string"
- },
- "kind": {
- "const": "step",
- "type": "string"
- },
- "name": {
- "description": "Shown on the watch, e.g. 'Threshold 1'.",
- "type": "string"
- },
- "notes": {
- "description": "Free-text note shown on the watch.",
- "type": "string"
- },
- "target": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "type": {
- "const": "none",
- "type": "string"
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Zone 1 recovery, 2 aerobic/base, 3 tempo, 4 threshold, 5 VO2max.",
- "properties": {
- "type": {
- "const": "hrZone",
- "type": "string"
- },
- "zone": {
- "maximum": 5,
- "minimum": 1,
- "type": "integer"
- }
- },
- "required": [
- "type",
- "zone"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Explicit heart rate range in bpm.",
- "properties": {
- "high": {
- "type": "number"
- },
- "low": {
- "type": "number"
- },
- "type": {
- "const": "hrBpm",
- "type": "string"
- }
- },
- "required": [
- "type",
- "low",
- "high"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Pace range. `fast` is the quicker bound. A single pace is widened by 10 s.",
- "properties": {
- "fast": {
- "description": "M:SS, e.g. '4:00'",
- "type": "string"
- },
- "slow": {
- "description": "M:SS. Optional - if omitted, 10 s/unit slower than `fast` is used.",
- "type": "string"
- },
- "type": {
- "const": "pace",
- "type": "string"
- },
- "unit": {
- "enum": [
- "min/km",
- "min/mi"
- ],
- "type": "string"
- }
- },
- "required": [
- "type",
- "fast",
- "unit"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Cycling power in watts.",
- "properties": {
- "high": {
- "type": "number"
- },
- "low": {
- "type": "number"
- },
- "type": {
- "const": "power",
- "type": "string"
- }
- },
- "required": [
- "type",
- "low",
- "high"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Cadence range (rpm / spm).",
- "properties": {
- "high": {
- "type": "number"
- },
- "low": {
- "type": "number"
- },
- "type": {
- "const": "cadence",
- "type": "string"
- }
- },
- "required": [
- "type",
- "low",
- "high"
- ],
- "type": "object"
- }
- ],
- "description": "Intensity target for the step. Omit or use {type:'none'} for no target."
- }
- },
- "required": [
- "kind",
- "intensity",
- "duration"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "A real interval block. Prefer this over repeating steps by hand - the watch then shows a rep counter.",
- "properties": {
- "iterations": {
- "minimum": 2,
- "type": "integer"
- },
- "kind": {
- "const": "repeat",
- "type": "string"
- },
- "steps": {
- "description": "Steps repeated as a block, e.g. an interval plus its recovery.",
- "items": {
- "$ref": "#/properties/steps/items"
- },
- "minItems": 1,
- "type": "array"
- }
- },
- "required": [
- "kind",
- "iterations",
- "steps"
- ],
- "type": "object"
- }
-]New value: +[
+ {
+ "additionalProperties": false,
+ "properties": {
+ "duration": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "type": {
+ "const": "time",
+ "type": "string"
+ },
+ "unit": {
+ "enum": [
+ "sec",
+ "min",
+ "hour"
+ ],
+ "type": "string"
+ },
+ "value": {
+ "description": "e.g. 10",
+ "type": "number"
+ }
+ },
+ "required": [
+ "type",
+ "value",
+ "unit"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "type": {
+ "const": "distance",
+ "type": "string"
+ },
+ "unit": {
+ "enum": [
+ "m",
+ "km",
+ "mi"
+ ],
+ "type": "string"
+ },
+ "value": {
+ "description": "e.g. 1.5",
+ "type": "number"
+ }
+ },
+ "required": [
+ "type",
+ "value",
+ "unit"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "type": {
+ "const": "lapButton",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "type": {
+ "const": "calories",
+ "type": "string"
+ },
+ "value": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "type",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "End when heart rate crosses a threshold, e.g. warm up until HR > 130.",
+ "properties": {
+ "bpm": {
+ "type": "number"
+ },
+ "compare": {
+ "description": "End when HR is below (lt) or above (gt) bpm.",
+ "enum": [
+ "lt",
+ "gt"
+ ],
+ "type": "string"
+ },
+ "type": {
+ "const": "heartRate",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "bpm",
+ "compare"
+ ],
+ "type": "object"
+ }
+ ],
+ "description": "How the step ends."
+ },
+ "equipment": {
+ "description": "Swimming only - equipment used for this step (fins, kickboard, paddles, pull_buoy, snorkel). Only valid when the workout's sport is 'swimming'.",
+ "enum": [
+ "fins",
+ "kickboard",
+ "paddles",
+ "pull_buoy",
+ "snorkel"
+ ],
+ "type": "string"
+ },
+ "intensity": {
+ "enum": [
+ "warmup",
+ "active",
+ "rest",
+ "cooldown"
+ ],
+ "type": "string"
+ },
+ "kind": {
+ "const": "step",
+ "type": "string"
+ },
+ "name": {
+ "description": "Shown on the watch, e.g. 'Threshold 1'.",
+ "type": "string"
+ },
+ "notes": {
+ "description": "Free-text note shown on the watch.",
+ "type": "string"
+ },
+ "stroke": {
+ "description": "Swimming only - the stroke for this step. 'any' = any stroke, 'im' = individual medley. Only valid when the workout's sport is 'swimming'.",
+ "enum": [
+ "any",
+ "backstroke",
+ "breaststroke",
+ "drill",
+ "fly",
+ "free",
+ "im"
+ ],
+ "type": "string"
+ },
+ "target": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "type": {
+ "const": "none",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Zone 1 recovery, 2 aerobic/base, 3 tempo, 4 threshold, 5 VO2max.",
+ "properties": {
+ "type": {
+ "const": "hrZone",
+ "type": "string"
+ },
+ "zone": {
+ "maximum": 5,
+ "minimum": 1,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "type",
+ "zone"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Explicit heart rate range in bpm.",
+ "properties": {
+ "high": {
+ "type": "number"
+ },
+ "low": {
+ "type": "number"
+ },
+ "type": {
+ "const": "hrBpm",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "low",
+ "high"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Pace range. `fast` is the quicker bound. A single pace is widened by 10 s.",
+ "properties": {
+ "fast": {
+ "description": "M:SS, e.g. '4:00'",
+ "type": "string"
+ },
+ "slow": {
+ "description": "M:SS. Optional - if omitted, 10 s/unit slower than `fast` is used.",
+ "type": "string"
+ },
+ "type": {
+ "const": "pace",
+ "type": "string"
+ },
+ "unit": {
+ "enum": [
+ "min/km",
+ "min/mi"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "fast",
+ "unit"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Cycling power in watts.",
+ "properties": {
+ "high": {
+ "type": "number"
+ },
+ "low": {
+ "type": "number"
+ },
+ "type": {
+ "const": "power",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "low",
+ "high"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Cadence range (rpm / spm).",
+ "properties": {
+ "high": {
+ "type": "number"
+ },
+ "low": {
+ "type": "number"
+ },
+ "type": {
+ "const": "cadence",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "low",
+ "high"
+ ],
+ "type": "object"
+ }
+ ],
+ "description": "Intensity target for the step. Omit or use {type:'none'} for no target."
+ }
+ },
+ "required": [
+ "kind",
+ "intensity",
+ "duration"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "A real interval block. Prefer this over repeating steps by hand - the watch then shows a rep counter.",
+ "properties": {
+ "iterations": {
+ "minimum": 2,
+ "type": "integer"
+ },
+ "kind": {
+ "const": "repeat",
+ "type": "string"
+ },
+ "steps": {
+ "description": "Steps repeated as a block, e.g. an interval plus its recovery.",
+ "items": {
+ "$ref": "#/properties/steps/items"
+ },
+ "minItems": 1,
+ "type": "array"
+ }
+ },
+ "required": [
+ "kind",
+ "iterations",
+ "steps"
+ ],
+ "type": "object"
+ }
+]