docs(api): regenerate the spec for unavailableWidgetIds

This commit is contained in:
Antiheld86 committed 2026-09-03 10:30:03 +02:00
1 parent 45fe97e07b
commit 7080ddea44
1 file changed
+254 -19
+254 -19
View File
@@ -18061,8 +18061,9 @@ paths:
tags:
- Dashboard
summary: Read the calling user's dashboard widget layout
description: Returns the resolved effective layout (defaults merged in if the user has not customised it) plus the
optimistic-concurrency `updatedAt` token.
description: Returns the resolved effective layout (defaults merged in if the user has not customised it), the
optimistic-concurrency `updatedAt` token, and `unavailableWidgetIds` — any widget whose toggle cannot do
anything for this account, which a settings UI should not offer.
responses:
"200":
description: The resolved layout (custom or default) plus its token.
@@ -65069,6 +65070,257 @@ components:
- mood
- bmi
DashboardLayout:
type: object
properties:
data:
$ref: "#/components/schemas/DashboardLayoutReadResult"
error:
type: "null"
meta:
type: object
properties:
requestId:
type: string
additionalProperties: false
required:
- data
- error
additionalProperties: false
DashboardLayoutReadResult:
type: object
properties:
version:
type: number
const: 1
widgets:
minItems: 1
maxItems: 50
type: array
items:
type: object
properties:
id:
type: string
enum:
- weight
- bp
- pulse
- bodyFat
- mood
- medications
- sleep
- steps
- glucose
- totalBodyWater
- boneMass
- muscleMass
- bpInTarget
- oxygenSaturation
- hrv
- respiratoryRate
- achievements
- vo2Max
- recentWorkouts
- cardioRecovery
- sixMinuteWalk
- stairAscentSpeed
- stairDescentSpeed
- breathingDisturbances
- wristTemperature
- falls
- walkingSteadiness
- vorsorge
- waterIntake
- restingHeartRate
- walkingSpeed
- walkingAsymmetry
- walkingStepLength
- bmi
- bodyTemperature
- walkingDoubleSupport
- audioExposureEnvironment
- audioExposureHeadphone
- gripStrength
- painNRS
- waistCircumference
- waistToHeight
visible:
type: boolean
tileVisible:
type: boolean
order:
type: integer
minimum: 0
maximum: 99
required:
- id
- visible
- order
additionalProperties: false
comparisonBaseline:
type: string
enum:
- none
- lastMonth
- lastYear
chartOverlayPrefs:
type: object
propertyNames:
type: string
enum:
- bp
- weight
- bmi
- pulse
- bodyFat
- mood
- medications
- sleep
- steps
- vo2Max
- hrv
- restingHr
- oxygenSaturation
- bodyTemperature
- activeEnergy
- bloodGlucose
- totalBodyWater
- boneMass
- flightsClimbed
- walkingRunningDistance
- fatFreeMass
- fatMass
- muscleMass
- skinTemperature
- pulseWaveVelocity
- vascularAge
- visceralFat
- audioExposureEnv
- audioExposureHeadphone
- timeInDaylight
- walkingSteadiness
- audioExposureEvent
- respiratoryRate
- leanBodyMass
- walkingHeartRateAverage
- walkingAsymmetry
- walkingDoubleSupport
- walkingStepLength
- walkingSpeed
- cardioRecovery
- wristTemperature
- fallCount
- sixMinuteWalkDistance
- stairAscentSpeed
- stairDescentSpeed
- breathingDisturbances
- ansCharge
- dayStrain
- workoutStrain
- cardioLoad
- averageHeartRate
- maxHeartRate
- energyExpenditureKj
- gripStrength
- painNrs
- waistCircumference
- waistToHeight
additionalProperties:
type: object
properties:
showTrendIndicator:
type: boolean
showTrendArrow:
type: boolean
showTargetRange:
type: boolean
comparisonBaseline:
type: string
enum:
- none
- lastMonth
- lastYear
rangePoints:
anyOf:
- type: number
const: 0
- type: number
const: 7
- type: number
const: 30
- type: number
const: 90
required:
- showTrendIndicator
- showTrendArrow
- showTargetRange
additionalProperties: false
selectedScoreRings:
maxItems: 3
type: array
items:
type: string
enum:
- READINESS
- RECOVERY_SCORE
- SLEEP_SCORE
- MED_COMPLIANCE
heroRingOrder:
maxItems: 4
type: array
items:
type: string
enum:
- HEALTH_SCORE
- READINESS
- RECOVERY_SCORE
- SLEEP_SCORE
- MED_COMPLIANCE
enabledHeroItemKinds:
description: Today-highlight item kinds in catalogue order. Missing means every current kind is enabled; an empty array
disables all kinds.
maxItems: 9
type: array
items:
type: string
enum:
- coach_checkin
- dose_window
- preventive_care
- sync_issue
- milestone
- ecg_new_recording
- tension_window
- same_time_baseline
- upcoming_visit
hero:
description: 'Primary hero-card content on the dashboard: "score" (the health-score read, default) or "reminders" (the
Today-highlight rail promoted into the hero slot). Missing resolves to "score"; the stored default is
omitted from responses.'
type: string
enum:
- score
- reminders
updatedAt:
description: "Optimistic-concurrency token: the stored row's `updatedAt` at read/write time. Echo it back as
`baseUpdatedAt` on the next write. Opaque."
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
unavailableWidgetIds:
description: "Widget ids whose toggle cannot do anything for this account, and which a settings UI should therefore not
offer — a switch over a tile that can never paint. Resolved per request from the caller's enabled modules
and the data they actually have: `hrv` appears here when the Recovery module is off and the account has no
SDNN series, because its only remaining HRV source (nightly RMSSD) is recovery-owned and withheld. Absent
when nothing is unavailable. Additive: a client that ignores it behaves exactly as before."
type: array
items:
type: string
required:
- version
additionalProperties: false
description: Resolved dashboard layout, its `updatedAt` token, and any widget toggles that are unavailable for this account.
DashboardLayoutSaved:
type: object
properties:
data:
@@ -65310,23 +65562,6 @@ components:
- version
additionalProperties: false
description: Resolved dashboard layout plus the optimistic-concurrency `updatedAt` token.
DashboardLayoutSaved:
type: object
properties:
data:
$ref: "#/components/schemas/DashboardLayoutResult"
error:
type: "null"
meta:
type: object
properties:
requestId:
type: string
additionalProperties: false
required:
- data
- error
additionalProperties: false
DashboardLayoutReset:
type: object
properties: