Skip to main content
Glama
amirlazarovich-git

Sond Core API MCP Server

models.py93.1 kB
# generated by fastapi-codegen: # filename: openapi.yaml # timestamp: 2025-08-08T18:14:28+00:00 from __future__ import annotations from datetime import datetime from enum import Enum from typing import Any, Dict, List, Optional from uuid import UUID from pydantic import BaseModel, Field, RootModel class AlarmConfigDto(BaseModel): smartAlarmDreamNonRemThreshold: float = Field( ..., description='Number of consecutive non REM stage response to consider user be out of REM', examples=[0], ) smartAlarmDreamRemThreshold: float = Field( ..., description='Number of consecutive REM stage response to consider user be in the REM', examples=[0], ) smartAlarmGroggyLightThreshold: float = Field( ..., description='Number of consecutive light stage response to consider user be in light sleep', examples=[0], ) class AlarmConfigUpdateDto(BaseModel): smartAlarmDreamNonRemThreshold: Optional[float] = Field( None, description='Number of consecutive non REM stage response to consider user be out of REM', examples=[0], ) smartAlarmDreamRemThreshold: Optional[float] = Field( None, description='Number of consecutive REM stage response to consider user be in the REM', examples=[0], ) smartAlarmGroggyLightThreshold: Optional[float] = Field( None, description='Number of consecutive light stage response to consider user be in light sleep', examples=[0], ) class DaysOfWeekEnum(Enum): sunday = 'sunday' monday = 'monday' tuesday = 'tuesday' wednesday = 'wednesday' thursday = 'thursday' friday = 'friday' saturday = 'saturday' class SmartMode(Enum): lessGroggy = 'lessGroggy' rememberDream = 'rememberDream' class ActionType(Enum): hide = 'hide' view = 'view' skip = 'skip' skipBefore5sPlayed = 'skipBefore5sPlayed' skipBefore1mPlayed = 'skipBefore1mPlayed' upload = 'upload' pause = 'pause' play = 'play' stop = 'stop' budDockingChanged = 'budDockingChanged' budConnectionChanged = 'budConnectionChanged' budBatteryLevel = 'budBatteryLevel' casePower = 'casePower' caseDownloadSpeed = 'caseDownloadSpeed' caseAvgDownloadSpeed = 'caseAvgDownloadSpeed' wifiRssi = 'wifiRssi' wifiConnectionChanged = 'wifiConnectionChanged' memory = 'memory' powerOn = 'powerOn' firmwareVersion = 'firmwareVersion' sessionStart = 'sessionStart' sessionStop = 'sessionStop' error = 'error' audioDrop = 'audioDrop' create = 'create' clone = 'clone' stateChanged = 'stateChanged' class Source(Enum): SOND = 1 TADDY = 2 ASSISTANT = 3 class Type(Enum): user = 'user' track = 'track' page = 'page' collection = 'collection' playlist = 'playlist' sleepPlan = 'sleepPlan' module = 'module' class AnalyticEventTargetDto(BaseModel): id: str source: Optional[Source] = Field( None, description='1:SOND\n\n2:TADDY\n\n3:ASSISTANT', examples=[2] ) type: Type = Field( ..., description='user:user\n\ntrack:track\n\npage:page\n\ncollection:collection\n\nplaylist:playlist\n\nsleepPlan:sleepPlan\n\nmodule:module', examples=['track'], ) class AudioConfigDto(BaseModel): sfxEnabled: bool class AudioConfigUpdateDto(BaseModel): sfxEnabled: Optional[bool] = None class BasicNotificationEnum(Enum): comfortIssues = 'comfortIssues' budsBadRssi = 'budsBadRssi' budsNotCharging = 'budsNotCharging' caseNotCharging = 'caseNotCharging' class BiosignalsDataDto(BaseModel): max: float = Field(..., description='Max value of biosignal') min: float = Field(..., description='Min value of biosignal') time: datetime = Field(..., description='Time of biosignal value') value: float = Field(..., description='Mean value of biosignal') class BiosignalsDto(BaseModel): createdAt: datetime heartRate: Optional[float] = None respirationRate: Optional[float] = None sessionId: str temperaturePerson: Optional[float] = None time: datetime class BiosignalsResponseDto(BaseModel): data: List[BiosignalsDataDto] class Buffer(BaseModel): pass class CacheDeleteResponseDto(BaseModel): deletedCount: float pattern: str class CategoryEnum(Enum): asmr = 'asmr' meditation = 'meditation' soundscape = 'soundscape' music = 'music' masking = 'masking' story = 'story' podcast = 'podcast' audiobook = 'audiobook' alarm = 'alarm' lofi = 'lofi' noise = 'noise' class ClassifyMode(Enum): fallAsleep = 'fallAsleep' asleep = 'asleep' rememberDream = 'rememberDream' lessGroggy = 'lessGroggy' class FilterType(Enum): iir = 'iir' fir = 'fir' class Category(Enum): ALARM = 'alarm' ASMR = 'asmr' AUDIOBOOK = 'audiobook' COLLECTION = 'collection' LOFI = 'lofi' NOISE = 'noise' MASKING = 'masking' MEDITATION = 'meditation' MUSIC = 'music' PODCAST = 'podcast' SOUNDSCAPE = 'soundscape' STORY = 'story' class CreateBasedOnPremadeSleepPlanDto(BaseModel): newPlanName: Optional[str] = None class Type4(Enum): TYPE_UNSPECIFIED = 0 FALLING_ASLEEP = 1 SLEEPING = 2 WAKING_UP = 3 class DeviceDetailsDto(BaseModel): createdAt: datetime deviceName: str deviceSerial: str id: str macAddress: Optional[str] = None mobile: bool notificationKey: Optional[str] = None pairingKey: Optional[str] = None class DeviceDto(BaseModel): id: str name: str class DeviceWithUserIdDetailsDto(BaseModel): createdAt: datetime deviceName: str deviceSerial: str id: str macAddress: Optional[str] = None mobile: bool notificationKey: Optional[str] = None userId: str class Type6(Enum): PrivacyPolicy = 'privacyPolicy' TermsOfConditions = 'termsOfConditions' class DocDto(BaseModel): id: str text: Optional[str] = None type: Type6 = Field( ..., description='privacyPolicy:PrivacyPolicy\n\ntermsOfConditions:TermsOfConditions', examples=['termsOfConditions'], ) url: Optional[str] = None validFrom: datetime validTo: datetime class EndUserSessionDto(BaseModel): endTime: datetime sessionId: str class EspInsightsConfigDto(BaseModel): enabled: bool = Field(..., description='Is ESP Insights enabled') encryptedToken: str = Field(..., description='Encrypted key') token: str = Field(..., description='Key') class EventType(Enum): SleepScore_Events_SleepRecord_Created = 'SleepScore.Events.SleepRecord.Created' SleepScore_Events_Nugget_Delivered = 'SleepScore.Events.Nugget.Delivered' class NuggetStyle(Enum): TextNugget = 'TextNugget' IconNugget = 'IconNugget' ZoomedHypnogramNugget = 'ZoomedHypnogramNugget' FullHypnogramNugget = 'FullHypnogramNugget' ScoreNugget = 'ScoreNugget' class NuggetType(Enum): General = 'General' Insight = 'Insight' Educational = 'Educational' Advice = 'Advice' WeeklyAdvice = 'WeeklyAdvice' MonthlyAdvice = 'MonthlyAdvice' Seasonal = 'Seasonal' DoctorReport = 'DoctorReport' News = 'News' Prompt = 'Prompt' Recommendation = 'Recommendation' Goal = 'Goal' SocialInsight = 'SocialInsight' class EventNuggetDeliveredProperties(BaseModel): body: str dateGenerated: datetime = Field(..., examples=['2025-08-08T16:33:37.524Z']) dateScheduled: datetime = Field(..., examples=['2025-08-08T16:33:37.524Z']) imageUrl: str infoUrl: str nuggetId: float nuggetStyle: NuggetStyle = Field(..., examples=['TextNugget']) nuggetType: NuggetType = Field(..., examples=['Advice']) recordId: float title: str class EventRecordCreatedProperties(BaseModel): averageRespirationRate: float bodyScore: float endDate: datetime interruptions: float mindScore: float perceivedNight: datetime recordId: float sessionId: str = Field(..., examples=['test-session']) sleepScore: float startDate: datetime timeInBed: str totalRecords: float totalSleepTime: str class Type7(Enum): oxygenSaturation = 'HKQuantityTypeIdentifierOxygenSaturation' restingHeartRate = 'HKQuantityTypeIdentifierRestingHeartRate' heartRate = 'HKQuantityTypeIdentifierHeartRate' sleepAnalysis = 'HKCategoryTypeIdentifierSleepAnalysis' respiratoryRate = 'HKQuantityTypeIdentifierRespiratoryRate' class ExternalSleepDataDto(BaseModel): endDate: Optional[datetime] = Field( None, description='End of sample time', examples=['2025-08-08T16:33:37.467Z'] ) sourceName: str = Field( ..., description='Name of source from which the data is coming from' ) startDate: Optional[datetime] = Field( None, description='Start of sample time', examples=['2025-08-08T16:33:37.467Z'] ) type: Type7 = Field( ..., description='HKQuantityTypeIdentifierOxygenSaturation:oxygenSaturation\n\nHKQuantityTypeIdentifierRestingHeartRate:restingHeartRate\n\nHKQuantityTypeIdentifierHeartRate:heartRate\n\nHKCategoryTypeIdentifierSleepAnalysis:sleepAnalysis\n\nHKQuantityTypeIdentifierRespiratoryRate:respiratoryRate', examples=['HKQuantityTypeIdentifierRestingHeartRate'], ) value: str = Field(..., description='Value of sleep data sample') class ExternalSleepDataPayload(BaseModel): data: List[ExternalSleepDataDto] class FeaturesConfigDto(BaseModel): a2dpEnabled: bool = Field(..., examples=[False]) tapsEnabled: bool = Field(..., examples=[False]) class FeaturesConfigUpdateDto(BaseModel): a2dpEnabled: Optional[bool] = Field(None, examples=[False]) tapsEnabled: Optional[bool] = Field(None, examples=[False]) class FirmwareType(Enum): bundle = 'bundle' nordic = 'nordic' qcc = 'qcc' esp = 'esp' class Type8(Enum): bundle = 'bundle' nordic = 'nordic' qcc = 'qcc' esp = 'esp' class FirmwareVersionDto(BaseModel): beta: bool commitHash: Optional[str] = None filename: str id: str md5: str releaseDate: datetime symbolsFilename: Optional[str] = None type: Type8 = Field( ..., description='bundle:bundle\n\nnordic:nordic\n\nqcc:qcc\n\nesp:esp', examples=['nordic'], ) url: str version: str class FirmwareVersionWithReleaseNotesDto(BaseModel): beta: bool commitHash: Optional[str] = None filename: str id: str md5: str releaseDate: datetime releaseNotes: Optional[str] = Field(None, examples=['Release note for version']) symbolsFilename: Optional[str] = None type: Type8 = Field( ..., description='bundle:bundle\n\nnordic:nordic\n\nqcc:qcc\n\nesp:esp', examples=['nordic'], ) url: str version: str class FreeFormNotificationDto(BaseModel): body: str confirmationText: str = Field( ..., description='Confirmation text to trigger the free form notification: "send free form notification to user {userId}"', ) title: str class GetRecommendedTracksRequestDto(BaseModel): pageSize: float = Field(..., description='Number of requested recommended tracks') class GetSleepSessionResponseDto(BaseModel): id: str class GuestSignUpUserDto(BaseModel): id: str previouslyPairedCase: bool timezone: str = Field( ..., description='IANA time zone as string', examples=['Etc/GMT'] ) class HardwareFixesConfigDto(BaseModel): btn1Threshold: float = Field(..., examples=[0]) btn2Threshold: float = Field(..., examples=[0]) btn3Threshold: float = Field(..., examples=[0]) btn4Threshold: float = Field(..., examples=[0]) extendedWifiSpeedTest: bool = Field(..., examples=[False]) frequentlyReportDownloadSpeed: bool = Field(..., examples=[False]) lidPolarityReversed: bool = Field(..., examples=[False]) lidThreshold: float = Field(..., examples=[0]) preloadContent: bool = Field(..., examples=[False]) rfGain: float = Field(..., examples=[8]) class HardwareFixesConfigUpdateDto(BaseModel): btn1Threshold: Optional[float] = Field(None, examples=[0]) btn2Threshold: Optional[float] = Field(None, examples=[0]) btn3Threshold: Optional[float] = Field(None, examples=[0]) btn4Threshold: Optional[float] = Field(None, examples=[0]) extendedWifiSpeedTest: Optional[bool] = Field(None, examples=[False]) frequentlyReportDownloadSpeed: Optional[bool] = Field(None, examples=[False]) lidPolarityReversed: Optional[bool] = Field(None, examples=[False]) lidThreshold: Optional[float] = Field(None, examples=[0]) preloadContent: Optional[bool] = Field(None, examples=[False]) rfGain: Optional[float] = Field(None, examples=[8]) class HwPremadeSleepPlanDescDto(BaseModel): id: UUID name: str class HwPremadeSleepPlanDescResponseDto(BaseModel): data: List[HwPremadeSleepPlanDescDto] nextPageToken: Optional[str] = None class HwUploadType(Enum): nordicCoreDump = 'nordicCoreDump' espCoreDump = 'espCoreDump' qccCoreDump = 'qccCoreDump' class Stage(Enum): awake = 'awake' light = 'light' deep = 'deep' rem = 'rem' asleep = 'asleep' class HypnogramDataDto(BaseModel): endTime: datetime = Field(..., description='End of stage') stage: Stage = Field(..., description='Sleep stage') startTime: datetime = Field(..., description='Start of stage') class HypnogramResponseDto(BaseModel): data: List[HypnogramDataDto] class IdentifierDto(BaseModel): id: str = Field(..., examples=['99416470-a7bb-4f2b-8595-daef57c7ece0']) source: Source = Field( ..., description='1:SOND\n\n2:TADDY\n\n3:ASSISTANT', examples=[2] ) class LcdConfigDto(BaseModel): idleClockEnabled: bool = Field(..., examples=[True]) newIcons: bool = Field(..., examples=[False]) showIconsWithText: bool = Field(..., examples=[False]) class LcdConfigUpdateDto(BaseModel): idleClockEnabled: Optional[bool] = Field(None, examples=[True]) newIcons: Optional[bool] = Field(None, examples=[False]) showIconsWithText: Optional[bool] = Field(None, examples=[False]) class LedConfigDto(BaseModel): brightness: float enabled: bool = Field(..., examples=[True]) class LedConfigUpdateDto(BaseModel): brightness: Optional[float] = None enabled: Optional[bool] = Field(None, examples=[True]) class LifeLogType(Enum): dream = 'dream' generic = 'generic' class ListTrackIdsResponseDto(BaseModel): ids: List[IdentifierDto] class LoginOtpDto(BaseModel): deviceName: Optional[str] = None deviceSerial: str otp: str = Field(..., description='OTP received after requesting a login') otpRequestId: str = Field( ..., description='OTP unique requestId received after requesting a login' ) timezone: Optional[str] = Field( None, description='IANA time zone as string', examples=['Etc/GMT'] ) class LogzConfigDto(BaseModel): enabled: bool = Field(..., description='Is Logz enabled') encryptedToken: str = Field(..., description='Encrypted token') token: str = Field(..., description='Token') url: str = Field(..., description='Logz url') class MinMaxMeanDto(BaseModel): max: float = Field(..., description='To value') mean: float = Field(..., description='Mean value') min: float = Field(..., description='From value') stdDev: float = Field(..., description='Standard de value') class MinMaxMsDto(BaseModel): max: float = Field( ..., description='Maximum value of the property.', examples=[300] ) min: float = Field( ..., description='Minimum value of the property.', examples=[100] ) class NewUserRecommendationsDto(BaseModel): trackIds: List[IdentifierDto] userId: str = Field(..., examples=['9322c384-fd8e-4a13-80cd-1cbd1ef95ba8']) class NewsletterSubscriptionDto(BaseModel): email: str class NewsletterUserSubscriptionDto(BaseModel): email: str previouslyUsedSimilarProducts: Optional[bool] = None class NotificationDto(BaseModel): type: BasicNotificationEnum class NotificationKeyDto(BaseModel): key: str class OnboardingAnswerDto(BaseModel): answers: List[str] questionId: str questionText: str class OnboardingDto(BaseModel): answers: List[OnboardingAnswerDto] timestamp: datetime class OtpRequestDto(BaseModel): email: str = Field(..., description='Email to send verification') class OtpResponseDto(BaseModel): otpRequestId: str = Field( ..., description='OTP request id to be used during verification' ) otpRetryDelayInMin: float = Field( ..., description='Required delay to re-trigger verification email' ) otpTtlInMin: float = Field( ..., description='Time-to-live in minutes for the OTP code' ) class OtpVerification(BaseModel): otp: str = Field(..., description='OTP received after requesting a login') otpRequestId: str = Field( ..., description='OTP unique requestId received after requesting a login' ) class PosixTzDto(BaseModel): posixTz: str = Field(..., description='Posix timezone string') class PowerConfigDto(BaseModel): deepSleepCountdownMin: float = Field( ..., description='Number of min before case deep sleep', examples=[10] ) class PowerConfigUpdateDto(BaseModel): deepSleepCountdownMin: Optional[float] = Field( None, description='Number of min before case deep sleep', examples=[10] ) class Type12(Enum): TYPE_UNSPECIFIED = 0 FALLING_ASLEEP = 1 SLEEPING = 2 WAKING_UP = 3 class PremadeSleepPhaseDefinitionDto(BaseModel): trackIds: List[IdentifierDto] type: Type12 = Field( ..., description='0:TYPE_UNSPECIFIED\n\n1:FALLING_ASLEEP\n\n2:SLEEPING\n\n3:WAKING_UP', examples=[1], ) class PremadeSleepPlanDefinitionDto(BaseModel): description: Optional[str] = None id: UUID imageUri: str name: str sleepPhases: List[PremadeSleepPhaseDefinitionDto] class PremadeSleepPlanDefinitionWithoutTracksDto(BaseModel): description: Optional[str] = None id: UUID imageUri: str key: str name: str class PremadeSleepPlanDefinitionWithoutTracksResultDto(BaseModel): sleepPlan: Optional[PremadeSleepPlanDefinitionWithoutTracksDto] = None class PremadeSleepPlanDescDto(BaseModel): description: Optional[str] = None id: UUID imageUri: str name: str class PremadeSleepPlanDescResultDto(BaseModel): sleepPlan: Optional[PremadeSleepPlanDescDto] = None class RegisterDeviceDto(BaseModel): deviceName: Optional[str] = None deviceSerial: str macAddress: Optional[str] = Field(None, examples=['00:00:00:00:00:00']) class ResetConfigDto(BaseModel): deviceSerial: Optional[str] = Field( None, description='Device serial number used for determining the configuration override', ) class SearchRequestFilterDto(BaseModel): category: Optional[List[CategoryEnum]] = None creatorId: Optional[List[IdentifierDto]] = None filtersAttributeId: Optional[List[str]] = None trackId: Optional[List[IdentifierDto]] = None class SignUpDto(BaseModel): deviceName: Optional[str] = None deviceSerial: str timezone: Optional[str] = Field( None, description='IANA time zone as string', examples=['Etc/GMT'] ) class Prediction(Enum): UNKNOWN = 0 ASLEEP = 1 AWAKE = 2 OUT_OF_EARS = 3 class Stage1(Enum): awake = 'awake' light = 'light' rem = 'rem' deep = 'deep' class SleepClassificationDto(BaseModel): prediction: Prediction = Field( ..., description='0:UNKNOWN\n\n1:ASLEEP\n\n2:AWAKE\n\n3:OUT_OF_EARS', examples=[1], ) stage: Optional[Stage1] = Field( None, description='awake:awake\n\nlight:light\n\nrem:rem\n\ndeep:deep', examples=['light'], ) class SensorStreamingMode(Enum): none = 'none' leftBud = 'leftBud' rightBud = 'rightBud' both = 'both' switching = 'switching' class SleepConfigDto(BaseModel): asleepTransitionDebounce: float = Field( ..., description='Number of following asleep stage needed to transition to masking sound', examples=[10], ) awakeTransitionDebounce: float = Field( ..., description='Number of following awake stage needed to transition to falling asleep sound', examples=[10], ) biosignalsSendPeriodInSec: float = Field( ..., description='Time in seconds for sending biosignals to the server ', examples=[0], ) pauseAudioBatteryPercentage: float = Field(..., examples=[40]) radioOffDelayDebounce: float = Field( ..., description='Number of cycles to disable radio', examples=[10] ) sensorStreamingCycleInSec: float = Field( ..., description='Time in seconds for sending sensor data from one bud before switching to second bud', examples=[1800], ) sensorStreamingMode: SensorStreamingMode = Field( ..., description='Sensor streaming mode', examples=['switching'] ) sensorStreamingOverlapInSec: float = Field( ..., description='Overlap time in seconds for sensor data when switching between buds', examples=[0], ) whileAsleepStageTransition: bool = Field(..., examples=[False]) class SleepConfigUpdateDto(BaseModel): asleepTransitionDebounce: Optional[float] = Field( None, description='Number of following asleep stage needed to transition to masking sound', examples=[10], ) awakeTransitionDebounce: Optional[float] = Field( None, description='Number of following awake stage needed to transition to falling asleep sound', examples=[10], ) biosignalsSendPeriodInSec: Optional[float] = Field( None, description='Time in seconds for sending biosignals to the server ', examples=[0], ) pauseAudioBatteryPercentage: Optional[float] = Field(None, examples=[40]) radioOffDelayDebounce: Optional[float] = Field( None, description='Number of cycles to disable radio', examples=[10] ) sensorStreamingCycleInSec: Optional[float] = Field( None, description='Time in seconds for sending sensor data from one bud before switching to second bud', examples=[1800], ) sensorStreamingMode: Optional[SensorStreamingMode] = Field( None, description='Sensor streaming mode', examples=['switching'] ) sensorStreamingOverlapInSec: Optional[float] = Field( None, description='Overlap time in seconds for sensor data when switching between buds', examples=[0], ) whileAsleepStageTransition: Optional[bool] = Field(None, examples=[False]) class SleepStage(Enum): awake = 'awake' light = 'light' deep = 'deep' rem = 'rem' asleep = 'asleep' class SleepDataPointDto(BaseModel): hr: Optional[float] = Field(None, description='Heart rate') hrv: Optional[float] = Field(None, description='Heart rate variability') rr: Optional[float] = Field(None, description='Respiration rate') sleepStage: SleepStage = Field(..., description='Sleep stage') time: datetime = Field(..., description='Data point time stamp UTC') class SleepPlanAssistantWithoutTracksDto(BaseModel): createdAt: datetime id: UUID name: str tracksCount: float updatedAt: datetime class SleepPlanHwWithoutTracksDto(BaseModel): createdAt: float id: UUID loop: bool name: str shuffle: bool tracksCount: float updatedAt: float class SleepPhase(Enum): number_0 = 0 number_1 = 1 number_2 = 2 number_3 = 3 class SleepPlanTrackMapDto(BaseModel): id: UUID name: str sleepPhases: List[SleepPhase] = Field( ..., description='0:TYPE_UNSPECIFIED\n\n1:FALLING_ASLEEP\n\n2:SLEEPING\n\n3:WAKING_UP', examples=[[1]], ) class SleepPlanUpdatedNotificationDto(BaseModel): sleepPlanId: str = Field( ..., description='Id of the updated sleep plan. This is used to identify which sleep plan was updated.', ) class SocketNamespacesConfigDto(BaseModel): assistant: str = Field( ..., description='Assistant socket namespace', examples=['/'] ) proxyREST: str = Field( ..., description='Proxy REST calls socket namespace', examples=['/proxyREST'] ) class Sort(Enum): publishTimeAsc = 'publishTimeAsc' publishTimeDesc = 'publishTimeDesc' class TestFiles(BaseModel): filesOrderBySize: List[str] class TimeOfDayDto(BaseModel): hour: int minute: int class TimesInStagesDto(BaseModel): awake: float = Field( ..., description='Time in awake stage (wakefulness after sleep onset)' ) deep: float = Field(..., description='Time in deep stage') light: float = Field(..., description='Time in light stage') rem: float = Field(..., description='Time in REM stage') class TimezoneIanaEnum(Enum): Africa_Abidjan = 'Africa/Abidjan' Africa_Accra = 'Africa/Accra' Africa_Addis_Ababa = 'Africa/Addis_Ababa' Africa_Algiers = 'Africa/Algiers' Africa_Asmera = 'Africa/Asmera' Africa_Bamako = 'Africa/Bamako' Africa_Bangui = 'Africa/Bangui' Africa_Banjul = 'Africa/Banjul' Africa_Bissau = 'Africa/Bissau' Africa_Blantyre = 'Africa/Blantyre' Africa_Brazzaville = 'Africa/Brazzaville' Africa_Bujumbura = 'Africa/Bujumbura' Africa_Cairo = 'Africa/Cairo' Africa_Casablanca = 'Africa/Casablanca' Africa_Ceuta = 'Africa/Ceuta' Africa_Conakry = 'Africa/Conakry' Africa_Dakar = 'Africa/Dakar' Africa_Dar_es_Salaam = 'Africa/Dar_es_Salaam' Africa_Djibouti = 'Africa/Djibouti' Africa_Douala = 'Africa/Douala' Africa_El_Aaiun = 'Africa/El_Aaiun' Africa_Freetown = 'Africa/Freetown' Africa_Gaborone = 'Africa/Gaborone' Africa_Harare = 'Africa/Harare' Africa_Johannesburg = 'Africa/Johannesburg' Africa_Juba = 'Africa/Juba' Africa_Kampala = 'Africa/Kampala' Africa_Khartoum = 'Africa/Khartoum' Africa_Kigali = 'Africa/Kigali' Africa_Kinshasa = 'Africa/Kinshasa' Africa_Lagos = 'Africa/Lagos' Africa_Libreville = 'Africa/Libreville' Africa_Lome = 'Africa/Lome' Africa_Luanda = 'Africa/Luanda' Africa_Lubumbashi = 'Africa/Lubumbashi' Africa_Lusaka = 'Africa/Lusaka' Africa_Malabo = 'Africa/Malabo' Africa_Maputo = 'Africa/Maputo' Africa_Maseru = 'Africa/Maseru' Africa_Mbabane = 'Africa/Mbabane' Africa_Mogadishu = 'Africa/Mogadishu' Africa_Monrovia = 'Africa/Monrovia' Africa_Nairobi = 'Africa/Nairobi' Africa_Ndjamena = 'Africa/Ndjamena' Africa_Niamey = 'Africa/Niamey' Africa_Nouakchott = 'Africa/Nouakchott' Africa_Ouagadougou = 'Africa/Ouagadougou' Africa_Porto_Novo = 'Africa/Porto-Novo' Africa_Sao_Tome = 'Africa/Sao_Tome' Africa_Tripoli = 'Africa/Tripoli' Africa_Tunis = 'Africa/Tunis' Africa_Windhoek = 'Africa/Windhoek' America_Anchorage = 'America/Anchorage' America_Anguilla = 'America/Anguilla' America_Antigua = 'America/Antigua' America_Araguaina = 'America/Araguaina' America_Argentina_La_Rioja = 'America/Argentina/La_Rioja' America_Argentina_Rio_Gallegos = 'America/Argentina/Rio_Gallegos' America_Argentina_Salta = 'America/Argentina/Salta' America_Argentina_San_Juan = 'America/Argentina/San_Juan' America_Argentina_San_Luis = 'America/Argentina/San_Luis' America_Argentina_Tucuman = 'America/Argentina/Tucuman' America_Argentina_Ushuaia = 'America/Argentina/Ushuaia' America_Aruba = 'America/Aruba' America_Asuncion = 'America/Asuncion' America_Bahia = 'America/Bahia' America_Bahia_Banderas = 'America/Bahia_Banderas' America_Barbados = 'America/Barbados' America_Belem = 'America/Belem' America_Belize = 'America/Belize' America_Blanc_Sablon = 'America/Blanc-Sablon' America_Boa_Vista = 'America/Boa_Vista' America_Bogota = 'America/Bogota' America_Boise = 'America/Boise' America_Buenos_Aires = 'America/Buenos_Aires' America_Cambridge_Bay = 'America/Cambridge_Bay' America_Campo_Grande = 'America/Campo_Grande' America_Cancun = 'America/Cancun' America_Caracas = 'America/Caracas' America_Catamarca = 'America/Catamarca' America_Cayenne = 'America/Cayenne' America_Cayman = 'America/Cayman' America_Chicago = 'America/Chicago' America_Chihuahua = 'America/Chihuahua' America_Coral_Harbour = 'America/Coral_Harbour' America_Cordoba = 'America/Cordoba' America_Costa_Rica = 'America/Costa_Rica' America_Creston = 'America/Creston' America_Cuiaba = 'America/Cuiaba' America_Curacao = 'America/Curacao' America_Danmarkshavn = 'America/Danmarkshavn' America_Dawson = 'America/Dawson' America_Dawson_Creek = 'America/Dawson_Creek' America_Denver = 'America/Denver' America_Detroit = 'America/Detroit' America_Dominica = 'America/Dominica' America_Edmonton = 'America/Edmonton' America_Eirunepe = 'America/Eirunepe' America_El_Salvador = 'America/El_Salvador' America_Fortaleza = 'America/Fortaleza' America_Glace_Bay = 'America/Glace_Bay' America_Godthab = 'America/Godthab' America_Goose_Bay = 'America/Goose_Bay' America_Grand_Turk = 'America/Grand_Turk' America_Grenada = 'America/Grenada' America_Guadeloupe = 'America/Guadeloupe' America_Guatemala = 'America/Guatemala' America_Guayaquil = 'America/Guayaquil' America_Guyana = 'America/Guyana' America_Halifax = 'America/Halifax' America_Havana = 'America/Havana' America_Hermosillo = 'America/Hermosillo' America_Indiana_Knox = 'America/Indiana/Knox' America_Indiana_Marengo = 'America/Indiana/Marengo' America_Indiana_Petersburg = 'America/Indiana/Petersburg' America_Indiana_Tell_City = 'America/Indiana/Tell_City' America_Indiana_Vevay = 'America/Indiana/Vevay' America_Indiana_Vincennes = 'America/Indiana/Vincennes' America_Indiana_Winamac = 'America/Indiana/Winamac' America_Indianapolis = 'America/Indianapolis' America_Inuvik = 'America/Inuvik' America_Iqaluit = 'America/Iqaluit' America_Jamaica = 'America/Jamaica' America_Jujuy = 'America/Jujuy' America_Juneau = 'America/Juneau' America_Kentucky_Monticello = 'America/Kentucky/Monticello' America_Kralendijk = 'America/Kralendijk' America_La_Paz = 'America/La_Paz' America_Lima = 'America/Lima' America_Los_Angeles = 'America/Los_Angeles' America_Louisville = 'America/Louisville' America_Lower_Princes = 'America/Lower_Princes' America_Maceio = 'America/Maceio' America_Managua = 'America/Managua' America_Manaus = 'America/Manaus' America_Marigot = 'America/Marigot' America_Martinique = 'America/Martinique' America_Matamoros = 'America/Matamoros' America_Mazatlan = 'America/Mazatlan' America_Mendoza = 'America/Mendoza' America_Menominee = 'America/Menominee' America_Merida = 'America/Merida' America_Mexico_City = 'America/Mexico_City' America_Moncton = 'America/Moncton' America_Monterrey = 'America/Monterrey' America_Montevideo = 'America/Montevideo' America_Montreal = 'America/Montreal' America_Montserrat = 'America/Montserrat' America_Nassau = 'America/Nassau' America_New_York = 'America/New_York' America_Nipigon = 'America/Nipigon' America_Nome = 'America/Nome' America_Noronha = 'America/Noronha' America_North_Dakota_Beulah = 'America/North_Dakota/Beulah' America_North_Dakota_Center = 'America/North_Dakota/Center' America_North_Dakota_New_Salem = 'America/North_Dakota/New_Salem' America_Ojinaga = 'America/Ojinaga' America_Panama = 'America/Panama' America_Pangnirtung = 'America/Pangnirtung' America_Paramaribo = 'America/Paramaribo' America_Phoenix = 'America/Phoenix' America_Port_au_Prince = 'America/Port-au-Prince' America_Port_of_Spain = 'America/Port_of_Spain' America_Porto_Velho = 'America/Porto_Velho' America_Puerto_Rico = 'America/Puerto_Rico' America_Rainy_River = 'America/Rainy_River' America_Rankin_Inlet = 'America/Rankin_Inlet' America_Recife = 'America/Recife' America_Regina = 'America/Regina' America_Resolute = 'America/Resolute' America_Rio_Branco = 'America/Rio_Branco' America_Santarem = 'America/Santarem' America_Santiago = 'America/Santiago' America_Santo_Domingo = 'America/Santo_Domingo' America_Sao_Paulo = 'America/Sao_Paulo' America_Scoresbysund = 'America/Scoresbysund' America_Sitka = 'America/Sitka' America_St_Barthelemy = 'America/St_Barthelemy' America_St_Johns = 'America/St_Johns' America_St_Kitts = 'America/St_Kitts' America_St_Lucia = 'America/St_Lucia' America_St_Thomas = 'America/St_Thomas' America_St_Vincent = 'America/St_Vincent' America_Swift_Current = 'America/Swift_Current' America_Tegucigalpa = 'America/Tegucigalpa' America_Thule = 'America/Thule' America_Thunder_Bay = 'America/Thunder_Bay' America_Tijuana = 'America/Tijuana' America_Toronto = 'America/Toronto' America_Tortola = 'America/Tortola' America_Vancouver = 'America/Vancouver' America_Whitehorse = 'America/Whitehorse' America_Winnipeg = 'America/Winnipeg' America_Yakutat = 'America/Yakutat' America_Yellowknife = 'America/Yellowknife' Antarctica_Casey = 'Antarctica/Casey' Antarctica_Davis = 'Antarctica/Davis' Antarctica_DumontDUrville = 'Antarctica/DumontDUrville' Antarctica_Macquarie = 'Antarctica/Macquarie' Antarctica_Mawson = 'Antarctica/Mawson' Antarctica_McMurdo = 'Antarctica/McMurdo' Antarctica_Palmer = 'Antarctica/Palmer' Antarctica_Rothera = 'Antarctica/Rothera' Antarctica_Syowa = 'Antarctica/Syowa' Antarctica_Vostok = 'Antarctica/Vostok' Arctic_Longyearbyen = 'Arctic/Longyearbyen' Asia_Aden = 'Asia/Aden' Asia_Almaty = 'Asia/Almaty' Asia_Amman = 'Asia/Amman' Asia_Anadyr = 'Asia/Anadyr' Asia_Aqtau = 'Asia/Aqtau' Asia_Aqtobe = 'Asia/Aqtobe' Asia_Ashgabat = 'Asia/Ashgabat' Asia_Baghdad = 'Asia/Baghdad' Asia_Bahrain = 'Asia/Bahrain' Asia_Baku = 'Asia/Baku' Asia_Bangkok = 'Asia/Bangkok' Asia_Beirut = 'Asia/Beirut' Asia_Bishkek = 'Asia/Bishkek' Asia_Brunei = 'Asia/Brunei' Asia_Calcutta = 'Asia/Calcutta' Asia_Chita = 'Asia/Chita' Asia_Choibalsan = 'Asia/Choibalsan' Asia_Colombo = 'Asia/Colombo' Asia_Damascus = 'Asia/Damascus' Asia_Dhaka = 'Asia/Dhaka' Asia_Dili = 'Asia/Dili' Asia_Dubai = 'Asia/Dubai' Asia_Dushanbe = 'Asia/Dushanbe' Asia_Hong_Kong = 'Asia/Hong_Kong' Asia_Hovd = 'Asia/Hovd' Asia_Irkutsk = 'Asia/Irkutsk' Asia_Jakarta = 'Asia/Jakarta' Asia_Jayapura = 'Asia/Jayapura' Asia_Jerusalem = 'Asia/Jerusalem' Asia_Kabul = 'Asia/Kabul' Asia_Kamchatka = 'Asia/Kamchatka' Asia_Karachi = 'Asia/Karachi' Asia_Kathmandu = 'Asia/Kathmandu' Asia_Khandyga = 'Asia/Khandyga' Asia_Kolkata = 'Asia/Kolkata' Asia_Krasnoyarsk = 'Asia/Krasnoyarsk' Asia_Kuala_Lumpur = 'Asia/Kuala_Lumpur' Asia_Kuching = 'Asia/Kuching' Asia_Kuwait = 'Asia/Kuwait' Asia_Macau = 'Asia/Macau' Asia_Magadan = 'Asia/Magadan' Asia_Makassar = 'Asia/Makassar' Asia_Manila = 'Asia/Manila' Asia_Muscat = 'Asia/Muscat' Asia_Nicosia = 'Asia/Nicosia' Asia_Novokuznetsk = 'Asia/Novokuznetsk' Asia_Novosibirsk = 'Asia/Novosibirsk' Asia_Omsk = 'Asia/Omsk' Asia_Oral = 'Asia/Oral' Asia_Phnom_Penh = 'Asia/Phnom_Penh' Asia_Pontianak = 'Asia/Pontianak' Asia_Pyongyang = 'Asia/Pyongyang' Asia_Qatar = 'Asia/Qatar' Asia_Qyzylorda = 'Asia/Qyzylorda' Asia_Rangoon = 'Asia/Rangoon' Asia_Riyadh = 'Asia/Riyadh' Asia_Saigon = 'Asia/Saigon' Asia_Sakhalin = 'Asia/Sakhalin' Asia_Samarkand = 'Asia/Samarkand' Asia_Seoul = 'Asia/Seoul' Asia_Shanghai = 'Asia/Shanghai' Asia_Singapore = 'Asia/Singapore' Asia_Srednekolymsk = 'Asia/Srednekolymsk' Asia_Taipei = 'Asia/Taipei' Asia_Tashkent = 'Asia/Tashkent' Asia_Tbilisi = 'Asia/Tbilisi' Asia_Tehran = 'Asia/Tehran' Asia_Thimphu = 'Asia/Thimphu' Asia_Tokyo = 'Asia/Tokyo' Asia_Ulaanbaatar = 'Asia/Ulaanbaatar' Asia_Urumqi = 'Asia/Urumqi' Asia_Ust_Nera = 'Asia/Ust-Nera' Asia_Vientiane = 'Asia/Vientiane' Asia_Vladivostok = 'Asia/Vladivostok' Asia_Yakutsk = 'Asia/Yakutsk' Asia_Yekaterinburg = 'Asia/Yekaterinburg' Asia_Yerevan = 'Asia/Yerevan' Atlantic_Azores = 'Atlantic/Azores' Atlantic_Bermuda = 'Atlantic/Bermuda' Atlantic_Canary = 'Atlantic/Canary' Atlantic_Cape_Verde = 'Atlantic/Cape_Verde' Atlantic_Faeroe = 'Atlantic/Faeroe' Atlantic_Madeira = 'Atlantic/Madeira' Atlantic_Reykjavik = 'Atlantic/Reykjavik' Atlantic_South_Georgia = 'Atlantic/South_Georgia' Atlantic_St_Helena = 'Atlantic/St_Helena' Atlantic_Stanley = 'Atlantic/Stanley' Australia_Adelaide = 'Australia/Adelaide' Australia_Brisbane = 'Australia/Brisbane' Australia_Broken_Hill = 'Australia/Broken_Hill' Australia_Currie = 'Australia/Currie' Australia_Darwin = 'Australia/Darwin' Australia_Hobart = 'Australia/Hobart' Australia_Lindeman = 'Australia/Lindeman' Australia_Melbourne = 'Australia/Melbourne' Australia_Perth = 'Australia/Perth' Australia_Sydney = 'Australia/Sydney' CST6CDT = 'CST6CDT' EST5EDT = 'EST5EDT' Etc_GMT = 'Etc/GMT' Etc_GMT_1 = 'Etc/GMT+1' Etc_GMT_10 = 'Etc/GMT+10' Etc_GMT_11 = 'Etc/GMT+11' Etc_GMT_12 = 'Etc/GMT+12' Etc_GMT_2 = 'Etc/GMT+2' Etc_GMT_3 = 'Etc/GMT+3' Etc_GMT_4 = 'Etc/GMT+4' Etc_GMT_5 = 'Etc/GMT+5' Etc_GMT_6 = 'Etc/GMT+6' Etc_GMT_7 = 'Etc/GMT+7' Etc_GMT_1_1 = 'Etc/GMT-1' Etc_GMT_10_1 = 'Etc/GMT-10' Etc_GMT_11_1 = 'Etc/GMT-11' Etc_GMT_12_1 = 'Etc/GMT-12' Etc_GMT_13 = 'Etc/GMT-13' Etc_GMT_2_1 = 'Etc/GMT-2' Etc_GMT_3_1 = 'Etc/GMT-3' Etc_GMT_4_1 = 'Etc/GMT-4' Etc_GMT_5_1 = 'Etc/GMT-5' Etc_GMT_6_1 = 'Etc/GMT-6' Etc_GMT_7_1 = 'Etc/GMT-7' Etc_GMT_8 = 'Etc/GMT-8' Etc_GMT_9 = 'Etc/GMT-9' Europe_Amsterdam = 'Europe/Amsterdam' Europe_Andorra = 'Europe/Andorra' Europe_Astrakhan = 'Europe/Astrakhan' Europe_Athens = 'Europe/Athens' Europe_Belgrade = 'Europe/Belgrade' Europe_Berlin = 'Europe/Berlin' Europe_Bratislava = 'Europe/Bratislava' Europe_Brussels = 'Europe/Brussels' Europe_Bucharest = 'Europe/Bucharest' Europe_Budapest = 'Europe/Budapest' Europe_Busingen = 'Europe/Busingen' Europe_Chisinau = 'Europe/Chisinau' Europe_Copenhagen = 'Europe/Copenhagen' Europe_Dublin = 'Europe/Dublin' Europe_Gibraltar = 'Europe/Gibraltar' Europe_Guernsey = 'Europe/Guernsey' Europe_Helsinki = 'Europe/Helsinki' Europe_Isle_of_Man = 'Europe/Isle_of_Man' Europe_Istanbul = 'Europe/Istanbul' Europe_Jersey = 'Europe/Jersey' Europe_Kaliningrad = 'Europe/Kaliningrad' Europe_Kiev = 'Europe/Kiev' Europe_Kyiv = 'Europe/Kyiv' Europe_Kirov = 'Europe/Kirov' Europe_Lisbon = 'Europe/Lisbon' Europe_Ljubljana = 'Europe/Ljubljana' Europe_London = 'Europe/London' Europe_Luxembourg = 'Europe/Luxembourg' Europe_Madrid = 'Europe/Madrid' Europe_Malta = 'Europe/Malta' Europe_Mariehamn = 'Europe/Mariehamn' Europe_Minsk = 'Europe/Minsk' Europe_Monaco = 'Europe/Monaco' Europe_Moscow = 'Europe/Moscow' Europe_Nicosia = 'Europe/Nicosia' Europe_Oslo = 'Europe/Oslo' Europe_Paris = 'Europe/Paris' Europe_Podgorica = 'Europe/Podgorica' Europe_Prague = 'Europe/Prague' Europe_Riga = 'Europe/Riga' Europe_Rome = 'Europe/Rome' Europe_Samara = 'Europe/Samara' Europe_San_Marino = 'Europe/San_Marino' Europe_Sarajevo = 'Europe/Sarajevo' Europe_Simferopol = 'Europe/Simferopol' Europe_Skopje = 'Europe/Skopje' Europe_Sofia = 'Europe/Sofia' Europe_Stockholm = 'Europe/Stockholm' Europe_Tallinn = 'Europe/Tallinn' Europe_Tirane = 'Europe/Tirane' Europe_Ulyanovsk = 'Europe/Ulyanovsk' Europe_Uzhgorod = 'Europe/Uzhgorod' Europe_Vaduz = 'Europe/Vaduz' Europe_Vatican = 'Europe/Vatican' Europe_Vienna = 'Europe/Vienna' Europe_Vilnius = 'Europe/Vilnius' Europe_Volgograd = 'Europe/Volgograd' Europe_Warsaw = 'Europe/Warsaw' Europe_Zagreb = 'Europe/Zagreb' Europe_Zaporozhye = 'Europe/Zaporozhye' Europe_Zurich = 'Europe/Zurich' Indian_Antananarivo = 'Indian/Antananarivo' Indian_Chagos = 'Indian/Chagos' Indian_Christmas = 'Indian/Christmas' Indian_Cocos = 'Indian/Cocos' Indian_Comoro = 'Indian/Comoro' Indian_Kerguelen = 'Indian/Kerguelen' Indian_Mahe = 'Indian/Mahe' Indian_Maldives = 'Indian/Maldives' Indian_Mauritius = 'Indian/Mauritius' Indian_Mayotte = 'Indian/Mayotte' Indian_Reunion = 'Indian/Reunion' MST7MDT = 'MST7MDT' PST8PDT = 'PST8PDT' Pacific_Apia = 'Pacific/Apia' Pacific_Auckland = 'Pacific/Auckland' Pacific_Efate = 'Pacific/Efate' Pacific_Enderbury = 'Pacific/Enderbury' Pacific_Fakaofo = 'Pacific/Fakaofo' Pacific_Fiji = 'Pacific/Fiji' Pacific_Funafuti = 'Pacific/Funafuti' Pacific_Galapagos = 'Pacific/Galapagos' Pacific_Guadalcanal = 'Pacific/Guadalcanal' Pacific_Guam = 'Pacific/Guam' Pacific_Honolulu = 'Pacific/Honolulu' Pacific_Johnston = 'Pacific/Johnston' Pacific_Kosrae = 'Pacific/Kosrae' Pacific_Kwajalein = 'Pacific/Kwajalein' Pacific_Majuro = 'Pacific/Majuro' Pacific_Midway = 'Pacific/Midway' Pacific_Nauru = 'Pacific/Nauru' Pacific_Niue = 'Pacific/Niue' Pacific_Noumea = 'Pacific/Noumea' Pacific_Pago_Pago = 'Pacific/Pago_Pago' Pacific_Palau = 'Pacific/Palau' Pacific_Ponape = 'Pacific/Ponape' Pacific_Port_Moresby = 'Pacific/Port_Moresby' Pacific_Rarotonga = 'Pacific/Rarotonga' Pacific_Saipan = 'Pacific/Saipan' Pacific_Tahiti = 'Pacific/Tahiti' Pacific_Tarawa = 'Pacific/Tarawa' Pacific_Tongatapu = 'Pacific/Tongatapu' Pacific_Truk = 'Pacific/Truk' Pacific_Wake = 'Pacific/Wake' Pacific_Wallis = 'Pacific/Wallis' US_Alaska = 'US/Alaska' US_Aleutian = 'US/Aleutian' US_Arizona = 'US/Arizona' US_Central = 'US/Central' US_Eastern = 'US/Eastern' US_East_Indiana = 'US/East=Indiana' US_Hawaii = 'US/Hawaii' US_Indiana_Starke = 'US/Indiana-Starke' US_Michigan = 'US/Michigan' US_Mountain = 'US/Mountain' US_Pacific = 'US/Pacific' US_Samoa = 'US/Samoa' class TokenDto(BaseModel): accessToken: str = Field( ..., description='Token used for accessing all protected resources, it should have `mobile` or `hardware` and `stream` scopes assigned.', ) refreshToken: str = Field( ..., description='Refresh token used for refreshing the current token that has expired. Used to authorize on `/auth/refreshTokens` endpoint.', ) streamToken: str = Field( ..., description='Token used for accessing protected resources only related with streaming data.', ) class TotalLikesDto(BaseModel): count: float id: IdentifierDto class Type16(Enum): TRACK_TYPE_UNSPECIFIED = 0 TRACK = 1 PODCAST = 2 AUDIOBOOK = 3 ALARM = 4 class TrackMetricsDto(BaseModel): fallAsleep: Optional[int] = None likes: Optional[int] = None plays: Optional[int] = None class Status(Enum): healthy = 'healthy' down = 'down' class UpDto(BaseModel): message: Optional[str] = None status: Status class UpdateFirmwareVersionDto(BaseModel): beta: Optional[bool] = Field(None, examples=[True]) releaseNotes: Optional[str] = Field(None, examples=['Release note for version']) class UpdateUserDto(BaseModel): timezone: str = Field( ..., description='IANA time zone as string', examples=['Etc/GMT'] ) class UserDto(BaseModel): email: Optional[str] = None id: str newsletterSubscribed: bool previouslyPairedCase: bool timezone: str = Field( ..., description='IANA time zone as string', examples=['Etc/GMT'] ) class VpnClientConfigDto(BaseModel): clientIp: str = Field(..., examples=['10.0.0.2']) enabled: bool = Field(..., description='Client enabled', examples=[False]) outboundPort: float = Field(..., description='Outgoing port', examples=[51820]) privateKey: str = Field(..., description='Client private key') class VpnClientUpdateDto(BaseModel): clientIp: Optional[str] = Field(None, examples=['10.0.0.2']) enabled: Optional[bool] = Field( None, description='Client enabled', examples=[False] ) outboundPort: Optional[float] = Field( None, description='Outgoing port', examples=[51820] ) privateKey: Optional[str] = Field(None, description='Client private key') class VpnServerConfigDto(BaseModel): host: str = Field(..., description='VPN server url', examples=['hwvpn.sond.com']) keepAlive: float = Field( ..., description='Keep connection alive time', examples=[10] ) port: float = Field(..., description='VPN server port', examples=[51820]) publicKey: str = Field(..., description='Server PublicKey') subnetMask: str = Field( ..., description='VPN subnet mask', examples=['255.255.255.0'] ) class WifiAssistantConfigDto(BaseModel): dnsOverride: Optional[str] = Field( None, description='DNS override', examples=['8.8.8.8'] ) lowRSSI: float = Field(..., description='Low RSSI', examples=[-85]) preloadTicks: float = Field(..., description='Preload ticks', examples=[100]) thresholdPercent: float = Field( ..., description='Threshold percent, 0 turns off the mechanism', examples=[70] ) thresholdTicks: float = Field(..., description='Thicks threshold', examples=[15]) underrunRSSI: float = Field(..., description='Underrun RSSI', examples=[-68]) class WifiAssistantConfigUpdateDto(BaseModel): dnsOverride: Optional[str] = Field( None, description='DNS override', examples=['8.8.8.8'] ) lowRSSI: Optional[float] = Field(None, description='Low RSSI', examples=[-85]) preloadTicks: Optional[float] = Field( None, description='Preload ticks', examples=[100] ) thresholdPercent: Optional[float] = Field( None, description='Threshold percent, 0 turns off the mechanism', examples=[70] ) thresholdTicks: Optional[float] = Field( None, description='Thicks threshold', examples=[15] ) underrunRSSI: Optional[float] = Field( None, description='Underrun RSSI', examples=[-68] ) class AdminDevicesGetResponse(RootModel[List[DeviceWithUserIdDetailsDto]]): root: List[DeviceWithUserIdDetailsDto] class AdminDevicesByMacAddressMacAddressGetResponse( RootModel[List[DeviceWithUserIdDetailsDto]] ): root: List[DeviceWithUserIdDetailsDto] class AdminFirmwareVersionsGetResponse( RootModel[List[FirmwareVersionWithReleaseNotesDto]] ): root: List[FirmwareVersionWithReleaseNotesDto] class AssistantBiosignalsGetResponse(RootModel[List[BiosignalsDto]]): root: List[BiosignalsDto] class AssistantUsersUserIdSleepPlansGetResponse( RootModel[List[SleepPlanAssistantWithoutTracksDto]] ): root: List[SleepPlanAssistantWithoutTracksDto] class DocsGetResponse(RootModel[List[DocDto]]): root: List[DocDto] class Type17(Enum): privacyPolicy = 'privacyPolicy' termsOfConditions = 'termsOfConditions' class Source2(Enum): number_1 = 1 number_2 = 2 number_3 = 3 class HwFirmwareVersionsGetResponse(RootModel[List[FirmwareVersionDto]]): root: List[FirmwareVersionDto] class HwSleepPlansGetResponse(RootModel[List[SleepPlanHwWithoutTracksDto]]): root: List[SleepPlanHwWithoutTracksDto] class HwTestAppFirmwareVersionsGetResponse( RootModel[List[FirmwareVersionWithReleaseNotesDto]] ): root: List[FirmwareVersionWithReleaseNotesDto] class MobileAssistantBiosignalsGetResponse( RootModel[List[FirmwareVersionWithReleaseNotesDto]] ): root: List[FirmwareVersionWithReleaseNotesDto] class ContentType(Enum): collection = 'collection' class MobileFirmwareVersionsGetResponse( RootModel[List[FirmwareVersionWithReleaseNotesDto]] ): root: List[FirmwareVersionWithReleaseNotesDto] class MobileHwAuthorizationsGetResponse(RootModel[List[DeviceDetailsDto]]): root: List[DeviceDetailsDto] class Type19(Enum): whatsNew = 'whatsNew' recommended = 'recommended' mightAlsoLike = 'mightAlsoLike' recentlyPlayed = 'recentlyPlayed' class BiosignalsType(Enum): hr = 'hr' rr = 'rr' hrv = 'hrv' class Source12(Enum): apple = 'apple' class Resolution(Enum): day = 'day' week = 'week' month = 'month' quarter = 'quarter' year = 'year' class Source13(Enum): number_1 = 1 number_2 = 2 number_3 = 3 class MobileSleepPlanTracksGetResponse(RootModel[List[SleepPlanTrackMapDto]]): root: List[SleepPlanTrackMapDto] class MobileSleepPlanTracksSleepPlanIdPhasePhaseDeleteResponse( RootModel[List[SleepPlanTrackMapDto]] ): root: List[SleepPlanTrackMapDto] class Phase(Enum): number_0 = 0 number_1 = 1 number_2 = 2 number_3 = 3 class MobileSleepPlanTracksSleepPlanIdPhasePhasePostResponse( RootModel[List[SleepPlanTrackMapDto]] ): root: List[SleepPlanTrackMapDto] class MobileSleepPlanTracksSleepPlanIdReplaceMaskingSoundPutResponse( RootModel[List[SleepPlanTrackMapDto]] ): root: List[SleepPlanTrackMapDto] class IanaTz(Enum): Africa_Abidjan = 'Africa/Abidjan' Africa_Accra = 'Africa/Accra' Africa_Addis_Ababa = 'Africa/Addis_Ababa' Africa_Algiers = 'Africa/Algiers' Africa_Asmera = 'Africa/Asmera' Africa_Bamako = 'Africa/Bamako' Africa_Bangui = 'Africa/Bangui' Africa_Banjul = 'Africa/Banjul' Africa_Bissau = 'Africa/Bissau' Africa_Blantyre = 'Africa/Blantyre' Africa_Brazzaville = 'Africa/Brazzaville' Africa_Bujumbura = 'Africa/Bujumbura' Africa_Cairo = 'Africa/Cairo' Africa_Casablanca = 'Africa/Casablanca' Africa_Ceuta = 'Africa/Ceuta' Africa_Conakry = 'Africa/Conakry' Africa_Dakar = 'Africa/Dakar' Africa_Dar_es_Salaam = 'Africa/Dar_es_Salaam' Africa_Djibouti = 'Africa/Djibouti' Africa_Douala = 'Africa/Douala' Africa_El_Aaiun = 'Africa/El_Aaiun' Africa_Freetown = 'Africa/Freetown' Africa_Gaborone = 'Africa/Gaborone' Africa_Harare = 'Africa/Harare' Africa_Johannesburg = 'Africa/Johannesburg' Africa_Juba = 'Africa/Juba' Africa_Kampala = 'Africa/Kampala' Africa_Khartoum = 'Africa/Khartoum' Africa_Kigali = 'Africa/Kigali' Africa_Kinshasa = 'Africa/Kinshasa' Africa_Lagos = 'Africa/Lagos' Africa_Libreville = 'Africa/Libreville' Africa_Lome = 'Africa/Lome' Africa_Luanda = 'Africa/Luanda' Africa_Lubumbashi = 'Africa/Lubumbashi' Africa_Lusaka = 'Africa/Lusaka' Africa_Malabo = 'Africa/Malabo' Africa_Maputo = 'Africa/Maputo' Africa_Maseru = 'Africa/Maseru' Africa_Mbabane = 'Africa/Mbabane' Africa_Mogadishu = 'Africa/Mogadishu' Africa_Monrovia = 'Africa/Monrovia' Africa_Nairobi = 'Africa/Nairobi' Africa_Ndjamena = 'Africa/Ndjamena' Africa_Niamey = 'Africa/Niamey' Africa_Nouakchott = 'Africa/Nouakchott' Africa_Ouagadougou = 'Africa/Ouagadougou' Africa_Porto_Novo = 'Africa/Porto-Novo' Africa_Sao_Tome = 'Africa/Sao_Tome' Africa_Tripoli = 'Africa/Tripoli' Africa_Tunis = 'Africa/Tunis' Africa_Windhoek = 'Africa/Windhoek' America_Anchorage = 'America/Anchorage' America_Anguilla = 'America/Anguilla' America_Antigua = 'America/Antigua' America_Araguaina = 'America/Araguaina' America_Argentina_La_Rioja = 'America/Argentina/La_Rioja' America_Argentina_Rio_Gallegos = 'America/Argentina/Rio_Gallegos' America_Argentina_Salta = 'America/Argentina/Salta' America_Argentina_San_Juan = 'America/Argentina/San_Juan' America_Argentina_San_Luis = 'America/Argentina/San_Luis' America_Argentina_Tucuman = 'America/Argentina/Tucuman' America_Argentina_Ushuaia = 'America/Argentina/Ushuaia' America_Aruba = 'America/Aruba' America_Asuncion = 'America/Asuncion' America_Bahia = 'America/Bahia' America_Bahia_Banderas = 'America/Bahia_Banderas' America_Barbados = 'America/Barbados' America_Belem = 'America/Belem' America_Belize = 'America/Belize' America_Blanc_Sablon = 'America/Blanc-Sablon' America_Boa_Vista = 'America/Boa_Vista' America_Bogota = 'America/Bogota' America_Boise = 'America/Boise' America_Buenos_Aires = 'America/Buenos_Aires' America_Cambridge_Bay = 'America/Cambridge_Bay' America_Campo_Grande = 'America/Campo_Grande' America_Cancun = 'America/Cancun' America_Caracas = 'America/Caracas' America_Catamarca = 'America/Catamarca' America_Cayenne = 'America/Cayenne' America_Cayman = 'America/Cayman' America_Chicago = 'America/Chicago' America_Chihuahua = 'America/Chihuahua' America_Coral_Harbour = 'America/Coral_Harbour' America_Cordoba = 'America/Cordoba' America_Costa_Rica = 'America/Costa_Rica' America_Creston = 'America/Creston' America_Cuiaba = 'America/Cuiaba' America_Curacao = 'America/Curacao' America_Danmarkshavn = 'America/Danmarkshavn' America_Dawson = 'America/Dawson' America_Dawson_Creek = 'America/Dawson_Creek' America_Denver = 'America/Denver' America_Detroit = 'America/Detroit' America_Dominica = 'America/Dominica' America_Edmonton = 'America/Edmonton' America_Eirunepe = 'America/Eirunepe' America_El_Salvador = 'America/El_Salvador' America_Fortaleza = 'America/Fortaleza' America_Glace_Bay = 'America/Glace_Bay' America_Godthab = 'America/Godthab' America_Goose_Bay = 'America/Goose_Bay' America_Grand_Turk = 'America/Grand_Turk' America_Grenada = 'America/Grenada' America_Guadeloupe = 'America/Guadeloupe' America_Guatemala = 'America/Guatemala' America_Guayaquil = 'America/Guayaquil' America_Guyana = 'America/Guyana' America_Halifax = 'America/Halifax' America_Havana = 'America/Havana' America_Hermosillo = 'America/Hermosillo' America_Indiana_Knox = 'America/Indiana/Knox' America_Indiana_Marengo = 'America/Indiana/Marengo' America_Indiana_Petersburg = 'America/Indiana/Petersburg' America_Indiana_Tell_City = 'America/Indiana/Tell_City' America_Indiana_Vevay = 'America/Indiana/Vevay' America_Indiana_Vincennes = 'America/Indiana/Vincennes' America_Indiana_Winamac = 'America/Indiana/Winamac' America_Indianapolis = 'America/Indianapolis' America_Inuvik = 'America/Inuvik' America_Iqaluit = 'America/Iqaluit' America_Jamaica = 'America/Jamaica' America_Jujuy = 'America/Jujuy' America_Juneau = 'America/Juneau' America_Kentucky_Monticello = 'America/Kentucky/Monticello' America_Kralendijk = 'America/Kralendijk' America_La_Paz = 'America/La_Paz' America_Lima = 'America/Lima' America_Los_Angeles = 'America/Los_Angeles' America_Louisville = 'America/Louisville' America_Lower_Princes = 'America/Lower_Princes' America_Maceio = 'America/Maceio' America_Managua = 'America/Managua' America_Manaus = 'America/Manaus' America_Marigot = 'America/Marigot' America_Martinique = 'America/Martinique' America_Matamoros = 'America/Matamoros' America_Mazatlan = 'America/Mazatlan' America_Mendoza = 'America/Mendoza' America_Menominee = 'America/Menominee' America_Merida = 'America/Merida' America_Mexico_City = 'America/Mexico_City' America_Moncton = 'America/Moncton' America_Monterrey = 'America/Monterrey' America_Montevideo = 'America/Montevideo' America_Montreal = 'America/Montreal' America_Montserrat = 'America/Montserrat' America_Nassau = 'America/Nassau' America_New_York = 'America/New_York' America_Nipigon = 'America/Nipigon' America_Nome = 'America/Nome' America_Noronha = 'America/Noronha' America_North_Dakota_Beulah = 'America/North_Dakota/Beulah' America_North_Dakota_Center = 'America/North_Dakota/Center' America_North_Dakota_New_Salem = 'America/North_Dakota/New_Salem' America_Ojinaga = 'America/Ojinaga' America_Panama = 'America/Panama' America_Pangnirtung = 'America/Pangnirtung' America_Paramaribo = 'America/Paramaribo' America_Phoenix = 'America/Phoenix' America_Port_au_Prince = 'America/Port-au-Prince' America_Port_of_Spain = 'America/Port_of_Spain' America_Porto_Velho = 'America/Porto_Velho' America_Puerto_Rico = 'America/Puerto_Rico' America_Rainy_River = 'America/Rainy_River' America_Rankin_Inlet = 'America/Rankin_Inlet' America_Recife = 'America/Recife' America_Regina = 'America/Regina' America_Resolute = 'America/Resolute' America_Rio_Branco = 'America/Rio_Branco' America_Santarem = 'America/Santarem' America_Santiago = 'America/Santiago' America_Santo_Domingo = 'America/Santo_Domingo' America_Sao_Paulo = 'America/Sao_Paulo' America_Scoresbysund = 'America/Scoresbysund' America_Sitka = 'America/Sitka' America_St_Barthelemy = 'America/St_Barthelemy' America_St_Johns = 'America/St_Johns' America_St_Kitts = 'America/St_Kitts' America_St_Lucia = 'America/St_Lucia' America_St_Thomas = 'America/St_Thomas' America_St_Vincent = 'America/St_Vincent' America_Swift_Current = 'America/Swift_Current' America_Tegucigalpa = 'America/Tegucigalpa' America_Thule = 'America/Thule' America_Thunder_Bay = 'America/Thunder_Bay' America_Tijuana = 'America/Tijuana' America_Toronto = 'America/Toronto' America_Tortola = 'America/Tortola' America_Vancouver = 'America/Vancouver' America_Whitehorse = 'America/Whitehorse' America_Winnipeg = 'America/Winnipeg' America_Yakutat = 'America/Yakutat' America_Yellowknife = 'America/Yellowknife' Antarctica_Casey = 'Antarctica/Casey' Antarctica_Davis = 'Antarctica/Davis' Antarctica_DumontDUrville = 'Antarctica/DumontDUrville' Antarctica_Macquarie = 'Antarctica/Macquarie' Antarctica_Mawson = 'Antarctica/Mawson' Antarctica_McMurdo = 'Antarctica/McMurdo' Antarctica_Palmer = 'Antarctica/Palmer' Antarctica_Rothera = 'Antarctica/Rothera' Antarctica_Syowa = 'Antarctica/Syowa' Antarctica_Vostok = 'Antarctica/Vostok' Arctic_Longyearbyen = 'Arctic/Longyearbyen' Asia_Aden = 'Asia/Aden' Asia_Almaty = 'Asia/Almaty' Asia_Amman = 'Asia/Amman' Asia_Anadyr = 'Asia/Anadyr' Asia_Aqtau = 'Asia/Aqtau' Asia_Aqtobe = 'Asia/Aqtobe' Asia_Ashgabat = 'Asia/Ashgabat' Asia_Baghdad = 'Asia/Baghdad' Asia_Bahrain = 'Asia/Bahrain' Asia_Baku = 'Asia/Baku' Asia_Bangkok = 'Asia/Bangkok' Asia_Beirut = 'Asia/Beirut' Asia_Bishkek = 'Asia/Bishkek' Asia_Brunei = 'Asia/Brunei' Asia_Calcutta = 'Asia/Calcutta' Asia_Chita = 'Asia/Chita' Asia_Choibalsan = 'Asia/Choibalsan' Asia_Colombo = 'Asia/Colombo' Asia_Damascus = 'Asia/Damascus' Asia_Dhaka = 'Asia/Dhaka' Asia_Dili = 'Asia/Dili' Asia_Dubai = 'Asia/Dubai' Asia_Dushanbe = 'Asia/Dushanbe' Asia_Hong_Kong = 'Asia/Hong_Kong' Asia_Hovd = 'Asia/Hovd' Asia_Irkutsk = 'Asia/Irkutsk' Asia_Jakarta = 'Asia/Jakarta' Asia_Jayapura = 'Asia/Jayapura' Asia_Jerusalem = 'Asia/Jerusalem' Asia_Kabul = 'Asia/Kabul' Asia_Kamchatka = 'Asia/Kamchatka' Asia_Karachi = 'Asia/Karachi' Asia_Kathmandu = 'Asia/Kathmandu' Asia_Khandyga = 'Asia/Khandyga' Asia_Kolkata = 'Asia/Kolkata' Asia_Krasnoyarsk = 'Asia/Krasnoyarsk' Asia_Kuala_Lumpur = 'Asia/Kuala_Lumpur' Asia_Kuching = 'Asia/Kuching' Asia_Kuwait = 'Asia/Kuwait' Asia_Macau = 'Asia/Macau' Asia_Magadan = 'Asia/Magadan' Asia_Makassar = 'Asia/Makassar' Asia_Manila = 'Asia/Manila' Asia_Muscat = 'Asia/Muscat' Asia_Nicosia = 'Asia/Nicosia' Asia_Novokuznetsk = 'Asia/Novokuznetsk' Asia_Novosibirsk = 'Asia/Novosibirsk' Asia_Omsk = 'Asia/Omsk' Asia_Oral = 'Asia/Oral' Asia_Phnom_Penh = 'Asia/Phnom_Penh' Asia_Pontianak = 'Asia/Pontianak' Asia_Pyongyang = 'Asia/Pyongyang' Asia_Qatar = 'Asia/Qatar' Asia_Qyzylorda = 'Asia/Qyzylorda' Asia_Rangoon = 'Asia/Rangoon' Asia_Riyadh = 'Asia/Riyadh' Asia_Saigon = 'Asia/Saigon' Asia_Sakhalin = 'Asia/Sakhalin' Asia_Samarkand = 'Asia/Samarkand' Asia_Seoul = 'Asia/Seoul' Asia_Shanghai = 'Asia/Shanghai' Asia_Singapore = 'Asia/Singapore' Asia_Srednekolymsk = 'Asia/Srednekolymsk' Asia_Taipei = 'Asia/Taipei' Asia_Tashkent = 'Asia/Tashkent' Asia_Tbilisi = 'Asia/Tbilisi' Asia_Tehran = 'Asia/Tehran' Asia_Thimphu = 'Asia/Thimphu' Asia_Tokyo = 'Asia/Tokyo' Asia_Ulaanbaatar = 'Asia/Ulaanbaatar' Asia_Urumqi = 'Asia/Urumqi' Asia_Ust_Nera = 'Asia/Ust-Nera' Asia_Vientiane = 'Asia/Vientiane' Asia_Vladivostok = 'Asia/Vladivostok' Asia_Yakutsk = 'Asia/Yakutsk' Asia_Yekaterinburg = 'Asia/Yekaterinburg' Asia_Yerevan = 'Asia/Yerevan' Atlantic_Azores = 'Atlantic/Azores' Atlantic_Bermuda = 'Atlantic/Bermuda' Atlantic_Canary = 'Atlantic/Canary' Atlantic_Cape_Verde = 'Atlantic/Cape_Verde' Atlantic_Faeroe = 'Atlantic/Faeroe' Atlantic_Madeira = 'Atlantic/Madeira' Atlantic_Reykjavik = 'Atlantic/Reykjavik' Atlantic_South_Georgia = 'Atlantic/South_Georgia' Atlantic_St_Helena = 'Atlantic/St_Helena' Atlantic_Stanley = 'Atlantic/Stanley' Australia_Adelaide = 'Australia/Adelaide' Australia_Brisbane = 'Australia/Brisbane' Australia_Broken_Hill = 'Australia/Broken_Hill' Australia_Currie = 'Australia/Currie' Australia_Darwin = 'Australia/Darwin' Australia_Hobart = 'Australia/Hobart' Australia_Lindeman = 'Australia/Lindeman' Australia_Melbourne = 'Australia/Melbourne' Australia_Perth = 'Australia/Perth' Australia_Sydney = 'Australia/Sydney' CST6CDT = 'CST6CDT' EST5EDT = 'EST5EDT' Etc_GMT = 'Etc/GMT' Etc_GMT_1 = 'Etc/GMT+1' Etc_GMT_10 = 'Etc/GMT+10' Etc_GMT_11 = 'Etc/GMT+11' Etc_GMT_12 = 'Etc/GMT+12' Etc_GMT_2 = 'Etc/GMT+2' Etc_GMT_3 = 'Etc/GMT+3' Etc_GMT_4 = 'Etc/GMT+4' Etc_GMT_5 = 'Etc/GMT+5' Etc_GMT_6 = 'Etc/GMT+6' Etc_GMT_7 = 'Etc/GMT+7' Etc_GMT_1_1 = 'Etc/GMT-1' Etc_GMT_10_1 = 'Etc/GMT-10' Etc_GMT_11_1 = 'Etc/GMT-11' Etc_GMT_12_1 = 'Etc/GMT-12' Etc_GMT_13 = 'Etc/GMT-13' Etc_GMT_2_1 = 'Etc/GMT-2' Etc_GMT_3_1 = 'Etc/GMT-3' Etc_GMT_4_1 = 'Etc/GMT-4' Etc_GMT_5_1 = 'Etc/GMT-5' Etc_GMT_6_1 = 'Etc/GMT-6' Etc_GMT_7_1 = 'Etc/GMT-7' Etc_GMT_8 = 'Etc/GMT-8' Etc_GMT_9 = 'Etc/GMT-9' Europe_Amsterdam = 'Europe/Amsterdam' Europe_Andorra = 'Europe/Andorra' Europe_Astrakhan = 'Europe/Astrakhan' Europe_Athens = 'Europe/Athens' Europe_Belgrade = 'Europe/Belgrade' Europe_Berlin = 'Europe/Berlin' Europe_Bratislava = 'Europe/Bratislava' Europe_Brussels = 'Europe/Brussels' Europe_Bucharest = 'Europe/Bucharest' Europe_Budapest = 'Europe/Budapest' Europe_Busingen = 'Europe/Busingen' Europe_Chisinau = 'Europe/Chisinau' Europe_Copenhagen = 'Europe/Copenhagen' Europe_Dublin = 'Europe/Dublin' Europe_Gibraltar = 'Europe/Gibraltar' Europe_Guernsey = 'Europe/Guernsey' Europe_Helsinki = 'Europe/Helsinki' Europe_Isle_of_Man = 'Europe/Isle_of_Man' Europe_Istanbul = 'Europe/Istanbul' Europe_Jersey = 'Europe/Jersey' Europe_Kaliningrad = 'Europe/Kaliningrad' Europe_Kiev = 'Europe/Kiev' Europe_Kyiv = 'Europe/Kyiv' Europe_Kirov = 'Europe/Kirov' Europe_Lisbon = 'Europe/Lisbon' Europe_Ljubljana = 'Europe/Ljubljana' Europe_London = 'Europe/London' Europe_Luxembourg = 'Europe/Luxembourg' Europe_Madrid = 'Europe/Madrid' Europe_Malta = 'Europe/Malta' Europe_Mariehamn = 'Europe/Mariehamn' Europe_Minsk = 'Europe/Minsk' Europe_Monaco = 'Europe/Monaco' Europe_Moscow = 'Europe/Moscow' Europe_Nicosia = 'Europe/Nicosia' Europe_Oslo = 'Europe/Oslo' Europe_Paris = 'Europe/Paris' Europe_Podgorica = 'Europe/Podgorica' Europe_Prague = 'Europe/Prague' Europe_Riga = 'Europe/Riga' Europe_Rome = 'Europe/Rome' Europe_Samara = 'Europe/Samara' Europe_San_Marino = 'Europe/San_Marino' Europe_Sarajevo = 'Europe/Sarajevo' Europe_Simferopol = 'Europe/Simferopol' Europe_Skopje = 'Europe/Skopje' Europe_Sofia = 'Europe/Sofia' Europe_Stockholm = 'Europe/Stockholm' Europe_Tallinn = 'Europe/Tallinn' Europe_Tirane = 'Europe/Tirane' Europe_Ulyanovsk = 'Europe/Ulyanovsk' Europe_Uzhgorod = 'Europe/Uzhgorod' Europe_Vaduz = 'Europe/Vaduz' Europe_Vatican = 'Europe/Vatican' Europe_Vienna = 'Europe/Vienna' Europe_Vilnius = 'Europe/Vilnius' Europe_Volgograd = 'Europe/Volgograd' Europe_Warsaw = 'Europe/Warsaw' Europe_Zagreb = 'Europe/Zagreb' Europe_Zaporozhye = 'Europe/Zaporozhye' Europe_Zurich = 'Europe/Zurich' Indian_Antananarivo = 'Indian/Antananarivo' Indian_Chagos = 'Indian/Chagos' Indian_Christmas = 'Indian/Christmas' Indian_Cocos = 'Indian/Cocos' Indian_Comoro = 'Indian/Comoro' Indian_Kerguelen = 'Indian/Kerguelen' Indian_Mahe = 'Indian/Mahe' Indian_Maldives = 'Indian/Maldives' Indian_Mauritius = 'Indian/Mauritius' Indian_Mayotte = 'Indian/Mayotte' Indian_Reunion = 'Indian/Reunion' MST7MDT = 'MST7MDT' PST8PDT = 'PST8PDT' Pacific_Apia = 'Pacific/Apia' Pacific_Auckland = 'Pacific/Auckland' Pacific_Efate = 'Pacific/Efate' Pacific_Enderbury = 'Pacific/Enderbury' Pacific_Fakaofo = 'Pacific/Fakaofo' Pacific_Fiji = 'Pacific/Fiji' Pacific_Funafuti = 'Pacific/Funafuti' Pacific_Galapagos = 'Pacific/Galapagos' Pacific_Guadalcanal = 'Pacific/Guadalcanal' Pacific_Guam = 'Pacific/Guam' Pacific_Honolulu = 'Pacific/Honolulu' Pacific_Johnston = 'Pacific/Johnston' Pacific_Kosrae = 'Pacific/Kosrae' Pacific_Kwajalein = 'Pacific/Kwajalein' Pacific_Majuro = 'Pacific/Majuro' Pacific_Midway = 'Pacific/Midway' Pacific_Nauru = 'Pacific/Nauru' Pacific_Niue = 'Pacific/Niue' Pacific_Noumea = 'Pacific/Noumea' Pacific_Pago_Pago = 'Pacific/Pago_Pago' Pacific_Palau = 'Pacific/Palau' Pacific_Ponape = 'Pacific/Ponape' Pacific_Port_Moresby = 'Pacific/Port_Moresby' Pacific_Rarotonga = 'Pacific/Rarotonga' Pacific_Saipan = 'Pacific/Saipan' Pacific_Tahiti = 'Pacific/Tahiti' Pacific_Tarawa = 'Pacific/Tarawa' Pacific_Tongatapu = 'Pacific/Tongatapu' Pacific_Truk = 'Pacific/Truk' Pacific_Wake = 'Pacific/Wake' Pacific_Wallis = 'Pacific/Wallis' US_Alaska = 'US/Alaska' US_Aleutian = 'US/Aleutian' US_Arizona = 'US/Arizona' US_Central = 'US/Central' US_Eastern = 'US/Eastern' US_East_Indiana = 'US/East=Indiana' US_Hawaii = 'US/Hawaii' US_Indiana_Starke = 'US/Indiana-Starke' US_Michigan = 'US/Michigan' US_Mountain = 'US/Mountain' US_Pacific = 'US/Pacific' US_Samoa = 'US/Samoa' class AnalyticEventDto(BaseModel): actionType: ActionType = Field( ..., description='hide:hide\n\nview:view\n\nskip:skip\n\nskipBefore5sPlayed:skipBefore5sPlayed\n\nskipBefore1mPlayed:skipBefore1mPlayed\n\nupload:upload\n\npause:pause\n\nplay:play\n\nstop:stop\n\nbudDockingChanged:budDockingChanged\n\nbudConnectionChanged:budConnectionChanged\n\nbudBatteryLevel:budBatteryLevel\n\ncasePower:casePower\n\ncaseDownloadSpeed:caseDownloadSpeed\n\ncaseAvgDownloadSpeed:caseAvgDownloadSpeed\n\nwifiRssi:wifiRssi\n\nwifiConnectionChanged:wifiConnectionChanged\n\nmemory:memory\n\npowerOn:powerOn\n\nfirmwareVersion:firmwareVersion\n\nsessionStart:sessionStart\n\nsessionStop:sessionStop\n\nerror:error\n\naudioDrop:audioDrop\n\ncreate:create\n\nclone:clone\n\nstateChanged:stateChanged', examples=['view'], ) data: Optional[Dict[str, Any]] = Field(None, description='Additional event data') date: Optional[datetime] = None target: Optional[AnalyticEventTargetDto] = None class BinaryUploadDto(BaseModel): commitHash: str = Field(..., description='Hash of the firmware build commit') data: Optional[Dict[str, Any]] = Field(None, description='Additional upload data') deviceId: str = Field(..., description='Device Id') filename: str = Field(..., description='Filename of the uploaded file') id: str type: HwUploadType uploadDate: datetime = Field(..., description='Server time of the upload') userDate: datetime = Field( ..., description='User (client) time related to the upload (eg. time when the crash has happened)', ) userId: str = Field(..., description='User Id') version: str = Field(..., description='Firmware version') class CaseConfigUpdateDto(BaseModel): alarm: Optional[AlarmConfigUpdateDto] = None audio: Optional[AudioConfigUpdateDto] = None features: Optional[FeaturesConfigUpdateDto] = None hardwareFixes: Optional[HardwareFixesConfigUpdateDto] = None lcd: Optional[LcdConfigUpdateDto] = None led: Optional[LedConfigUpdateDto] = None power: Optional[PowerConfigUpdateDto] = None sleep: Optional[SleepConfigUpdateDto] = None timezone: Optional[str] = Field( None, description='IANA time zone as string', examples=['Etc/GMT'] ) vpnClient: Optional[VpnClientUpdateDto] = None wifiAssistant: Optional[WifiAssistantConfigUpdateDto] = None class CoefficientsV1DetailsDto(BaseModel): afterSource: Optional[float] = Field( None, description='Information after which source this source should be played.', examples=[1], ) coefficients: List[float] = Field( ..., description='Coefficients', examples=[[1, 0.5, 0.2]] ) durationMs: Optional[float] = Field( None, description='Duration of the source in milliseconds. If not given, the source will be played indefinitely.', examples=[1], ) fadeInMs: Optional[float] = Field( None, description='Fade in duration in milliseconds.', examples=[100] ) fadeMinGain: Optional[float] = Field( None, description='Minimum gain when it fades (defaults to fade to black)', examples=[0.5], ) fadeOutMs: Optional[float] = Field( None, description='Fade out duration in milliseconds.', examples=[0] ) filterType: FilterType = Field( ..., description='Filter type for the given coefficients', examples=['fir'] ) gain: float = Field( ..., description='Gain for the given coefficients', examples=[1] ) loop: Optional[bool] = Field( None, description='Loop the source. Relevant only if duration is given (defaults to true)', examples=[True], ) name: str = Field(..., description='Source name', examples=[1]) nextIterationDelayMs: Optional[float] = Field( None, description='Delay of next iteration when looping (defaults to no delay) in milliseconds', examples=[1], ) order: Optional[float] = Field(None, description='Play order', examples=[1]) randomNextIterationDelayMs: Optional[MinMaxMsDto] = Field( None, description="Next iteration delay when looping, used for random delay value between iterations Can't be used when nextIterationDelayMs is used.", ) randomStartDelayMs: Optional[MinMaxMsDto] = Field( None, description='Random start delay values in milliseconds.' ) source: float = Field(..., description='Noise source number', examples=[1]) startDelayMs: Optional[float] = Field( None, description='Start delay in milliseconds. If not given, the source will start immediately.', examples=[1], ) class ContentCreatorDto(BaseModel): alias: Optional[str] = None firstName: Optional[str] = None id: Optional[IdentifierDto] = None imageUri: Optional[str] = None lastName: Optional[str] = None class CreateBinaryUploadDto(BaseModel): commitHash: str = Field(..., description='Hash of the firmware build commit') data: Optional[Dict[str, Any]] = Field(None, description='Additional upload data') file: bytes type: HwUploadType userDate: float = Field( ..., description='User (client) epoch time related to the upload (eg. time when the crash has happened)', examples=[1622547802000], ) version: str = Field(..., description='Firmware version') class CreateFirmwareVersionDto(BaseModel): commitHash: Optional[str] = Field( None, examples=['13c988d4f15e06bcdd0b0af290086a3079cdadb0'] ) file: bytes md5: Optional[str] = Field( None, description='MD5 to verify uploaded firmware binary upload' ) releaseNotes: Optional[str] = Field(None, examples=['Release note for version']) symbolsFile: Optional[bytes] = None symbolsMd5: Optional[str] = Field( None, description='MD5 to verify uploaded symbols binary upload' ) type: FirmwareType version: str = Field(..., examples=['1.0.0']) class CreateUpdateAlarmDto(BaseModel): bedtime: Optional[TimeOfDayDto] = None bedtimeChime: Optional[bool] = None bedtimeLight: Optional[bool] = None daysOfWeek: List[DaysOfWeekEnum] enabled: bool playlistTrackIds: Optional[List[IdentifierDto]] = None sleepPlanId: Optional[str] = None smartMode: Optional[SmartMode] = Field( None, description='lessGroggy:lessGroggy\n\nrememberDream:rememberDream', examples=['rememberDream'], ) smartThresholdInMin: Optional[int] = Field( None, description='Time threshold to predict smart alarm' ) snooze: Optional[bool] = None timerInSeconds: Optional[int] = None trackId: IdentifierDto wakeUpTime: Optional[TimeOfDayDto] = None class CreateUpdatePremadeSleepPhaseDefinitionDto(BaseModel): trackIds: List[IdentifierDto] type: Type4 = Field( ..., description='0:TYPE_UNSPECIFIED\n\n1:FALLING_ASLEEP\n\n2:SLEEPING\n\n3:WAKING_UP', examples=[1], ) class CreateUpdatePremadeSleepPlanDefinitionDto(BaseModel): description: Optional[str] = None imageUri: str key: str name: str sleepPhases: List[CreateUpdatePremadeSleepPhaseDefinitionDto] class CreateUpdateSleepPhaseDto(BaseModel): trackIds: List[IdentifierDto] type: Type4 = Field( ..., description='0:TYPE_UNSPECIFIED\n\n1:FALLING_ASLEEP\n\n2:SLEEPING\n\n3:WAKING_UP', examples=[1], ) class CreateUpdateSleepPlanDto(BaseModel): imageUri: Optional[str] = Field( None, description='This property will become required in the upcoming versions' ) loop: Optional[bool] = None name: str shuffle: Optional[bool] = None sleepPhases: Optional[List[CreateUpdateSleepPhaseDto]] = None class EmbeddedContentDto(BaseModel): ext: str id: IdentifierDto metaUrl: Dict[str, Any] size: float url: str versionTs: float class EmbeddedContentListDto(BaseModel): tracks: List[EmbeddedContentDto] class EmbeddedContentResponseDto(BaseModel): data: EmbeddedContentListDto nextPageToken: Optional[str] = None total: float class EndSessionDto(BaseModel): ianaTimezone: Optional[TimezoneIanaEnum] = Field(None, description='IANA timezone') time: datetime class EndUserSessionsDto(BaseModel): ianaTimezone: Optional[TimezoneIanaEnum] = Field(None, description='IANA timezone') sessions: List[EndUserSessionDto] = Field( ..., description='Array of end-user session objects' ) class EventNuggetDelivered(BaseModel): eventType: EventType = Field( ..., examples=['SleepScore.Events.SleepRecord.Created'] ) properties: EventNuggetDeliveredProperties timestamp: datetime = Field(..., examples=['2025-08-08T16:33:37.524Z']) userId: str = Field(..., examples=['d290f1ee-6c54-4b01-90e6-d701748f0851']) class EventRecordCreated(BaseModel): eventType: EventType = Field( ..., examples=['SleepScore.Events.SleepRecord.Created'] ) properties: EventRecordCreatedProperties timestamp: datetime = Field(..., examples=['2025-08-08T16:33:37.522Z']) userId: str = Field(..., examples=['d290f1ee-6c54-4b01-90e6-d701748f0851']) class GetTracksRequestHwDto(BaseModel): ids: IdentifierDto class GuestSignUpResponseDto(BaseModel): device: DeviceDto = Field(..., description='Basic device information') tokens: TokenDto = Field(..., description='Set of access and refresh tokens') user: GuestSignUpUserDto = Field(..., description='Basic user information') class LifeLog(BaseModel): createdAt: datetime id: str text: str type: LifeLogType class LifeLogsResponse(BaseModel): data: List[LifeLog] nextPageToken: Optional[str] = None class LoginResponseDto(BaseModel): device: DeviceDto = Field(..., description='Basic device information') tokens: TokenDto = Field(..., description='Set of access and refresh tokens') user: UserDto = Field(..., description='Basic user information') class LongTermSleepSummaryDto(BaseModel): durationInSec: float = Field(..., description='Session duration (time in bed)') endTime: Optional[datetime] = Field(None, description='End time') heartRateScore: Optional[float] = Field(None, description='Heart rate score') hr: Optional[MinMaxMeanDto] = Field(None, description='Heart rate') hrv: Optional[float] = Field(None, description='Heart rate variability') hrvScore: Optional[float] = Field(None, description='Heart rate variability score') respirationScore: Optional[float] = Field(None, description='Respiration score') rr: Optional[MinMaxMeanDto] = Field(None, description='Respiration rate') sleepDetected: bool = Field( ..., description='Was sleep detected during the session' ) sleepDurationScore: Optional[float] = Field( None, description='Sleep duration score' ) sleepEfficiency: float = Field(..., description='Sleep efficiency') sleepScore: Optional[float] = Field(None, description='Sleep score') startTime: Optional[datetime] = Field(None, description='Start time') timeInBedAfterWakeUp: Optional[float] = Field( None, description='Time in bed after wake up (time to get up)' ) timeInBedBeforeSleep: Optional[float] = Field( None, description='Time in bed before falling asleep (sleep onset latency)' ) timeInStages: TimesInStagesDto = Field( ..., description='Time spend in each sleep stage' ) timeZone: TimezoneIanaEnum = Field( ..., description='Time zone of the sleep session' ) wakeUps: float = Field(..., description='Number of wake ups') class NewRecommendationsDto(BaseModel): data: List[NewUserRecommendationsDto] class PremadeSleepPlanDefinitionResponseDto(BaseModel): data: List[PremadeSleepPlanDefinitionWithoutTracksResultDto] nextPageToken: Optional[str] = None class PremadeSleepPlanDescResponseDto(BaseModel): data: List[PremadeSleepPlanDescResultDto] nextPageToken: Optional[str] = None class RegisterDeviceResponseDto(BaseModel): device: DeviceDetailsDto tokens: TokenDto class ReportLikesResponseDto(BaseModel): data: List[TotalLikesDto] nextPageToken: Optional[str] = None class SearchRequestDto(BaseModel): filters: Optional[SearchRequestFilterDto] = None pageSize: float pageToken: Optional[str] = None retrieveMetrics: Optional[bool] = None skip: Optional[float] = None term: Optional[str] = None useOnlyCurated: Optional[bool] = None class SleepSummaryDto(BaseModel): durationInSec: float = Field(..., description='Session duration (time in bed)') endTime: Optional[datetime] = Field(None, description='End time') heartRateScore: Optional[float] = Field(None, description='Heart rate score') hr: Optional[MinMaxMeanDto] = Field(None, description='Heart rate') hrv: Optional[float] = Field(None, description='Heart rate variability') hrvScore: Optional[float] = Field(None, description='Heart rate variability score') recoveryScore: Optional[float] = Field( None, description="Recovery score, representing the body's readiness to perform. Ranges from 0 to 100, where higher values indicate better recovery. Calculated based on heart rate variability, sleep quality, and other physiological metrics.", ) respirationScore: Optional[float] = Field(None, description='Respiration score') rr: Optional[MinMaxMeanDto] = Field(None, description='Respiration rate') sleepDetected: bool = Field( ..., description='Was sleep detected during the session' ) sleepDurationScore: Optional[float] = Field( None, description='Sleep duration score' ) sleepEfficiency: float = Field(..., description='Sleep efficiency') sleepScore: Optional[float] = Field(None, description='Sleep score') startTime: Optional[datetime] = Field(None, description='Start time') summaryBody: Optional[str] = Field( None, description='AI-generated text summary of the sleep session' ) summaryTitle: Optional[str] = Field( None, description='AI-generated title for the sleep session summary' ) summaryTrackId: Optional[IdentifierDto] = Field( None, description='Track ID associated with the sleep summary' ) timeInBedAfterWakeUp: Optional[float] = Field( None, description='Time in bed after wake up (time to get up)' ) timeInBedBeforeSleep: Optional[float] = Field( None, description='Time in bed before falling asleep (sleep onset latency)' ) timeInStages: TimesInStagesDto = Field( ..., description='Time spend in each sleep stage' ) timeZone: TimezoneIanaEnum = Field( ..., description='Time zone of the sleep session' ) wakeUps: float = Field(..., description='Number of wake ups') class SleepSummaryResponseDto(BaseModel): durationInSec: float = Field(..., description='Session duration (time in bed)') endTime: Optional[datetime] = Field(None, description='End time') heartRateScore: Optional[float] = Field(None, description='Heart rate score') hr: Optional[MinMaxMeanDto] = Field(None, description='Heart rate') hrv: Optional[float] = Field(None, description='Heart rate variability') hrvScore: Optional[float] = Field(None, description='Heart rate variability score') recoveryScore: Optional[float] = Field( None, description="Recovery score, representing the body's readiness to perform. Ranges from 0 to 100, where higher values indicate better recovery. Calculated based on heart rate variability, sleep quality, and other physiological metrics.", ) respirationScore: Optional[float] = Field(None, description='Respiration score') rr: Optional[MinMaxMeanDto] = Field(None, description='Respiration rate') sessionId: str = Field(..., description='Session id') sleepDetected: bool = Field( ..., description='Was sleep detected during the session' ) sleepDurationScore: Optional[float] = Field( None, description='Sleep duration score' ) sleepEfficiency: float = Field(..., description='Sleep efficiency') sleepScore: Optional[float] = Field(None, description='Sleep score') startTime: Optional[datetime] = Field(None, description='Start time') summaryBody: Optional[str] = Field( None, description='AI-generated text summary of the sleep session' ) summaryTitle: Optional[str] = Field( None, description='AI-generated title for the sleep session summary' ) summaryTrackId: Optional[IdentifierDto] = Field( None, description='Track ID associated with the sleep summary' ) timeInBedAfterWakeUp: Optional[float] = Field( None, description='Time in bed after wake up (time to get up)' ) timeInBedBeforeSleep: Optional[float] = Field( None, description='Time in bed before falling asleep (sleep onset latency)' ) timeInStages: TimesInStagesDto = Field( ..., description='Time spend in each sleep stage' ) timeZone: TimezoneIanaEnum = Field( ..., description='Time zone of the sleep session' ) wakeUps: float = Field(..., description='Number of wake ups') class SocketConfigDto(BaseModel): baseUrl: str = Field( ..., description='Base url for socket connection', examples=['https://core-api-dev.sond.com'], ) namespaces: SocketNamespacesConfigDto = Field(..., description='Socket namespace') class AdminBinaryUploadsGetResponse(RootModel[List[BinaryUploadDto]]): root: List[BinaryUploadDto] class HwAnalyticsEventsPostRequest(RootModel[List[AnalyticEventDto]]): root: List[AnalyticEventDto] class MobileAnalyticsEventsPostRequest(RootModel[List[AnalyticEventDto]]): root: List[AnalyticEventDto] class AggregatedSleepSummaryDto(BaseModel): stats: LongTermSleepSummaryDto = Field(..., description='Aggregated data') timeAggregated: datetime = Field(..., description='Time for aggregated stats') class ApiConfigDto(BaseModel): espInsights: EspInsightsConfigDto logz: LogzConfigDto socket: SocketConfigDto vpnServer: VpnServerConfigDto class CaseConfigDto(BaseModel): alarm: AlarmConfigDto api: ApiConfigDto audio: AudioConfigDto features: FeaturesConfigDto hardwareFixes: HardwareFixesConfigDto lcd: LcdConfigDto led: LedConfigDto power: PowerConfigDto sleep: SleepConfigDto timezone: str = Field( ..., description='IANA time zone as string', examples=['Etc/GMT'] ) vpnClient: Optional[VpnClientConfigDto] = None wifiAssistant: WifiAssistantConfigDto class CoefficientsDto(BaseModel): v1: List[CoefficientsV1DetailsDto] class ContentCollectionDto(BaseModel): category: Category = Field( ..., description='alarm:ALARM\n\nasmr:ASMR\n\naudiobook:AUDIOBOOK\n\ncollection:COLLECTION\n\nlofi:LOFI\n\nnoise:NOISE\n\nmasking:MASKING\n\nmeditation:MEDITATION\n\nmusic:MUSIC\n\npodcast:PODCAST\n\nsoundscape:SOUNDSCAPE\n\nstory:STORY', examples=['asmr'], ) creator: Optional[ContentCreatorDto] = None description: Optional[str] = None id: IdentifierDto imageUri: Optional[str] = None name: str publishTime: Optional[datetime] = None uri: Optional[str] = None class GetCollectionResponseDto(BaseModel): collection: ContentCollectionDto followed: bool class LongTermSleepDataDto(BaseModel): summaries: Optional[List[AggregatedSleepSummaryDto]] = Field( None, description='List of sleep summaries aggregates with aggregate times' ) class SleepSummaryListResponseDto(BaseModel): data: List[SleepSummaryResponseDto] class TrackDto(BaseModel): category: Optional[str] = None coefficients: Optional[CoefficientsDto] = Field( None, description='Coefficients used for masking sound generation.' ) collection: Optional[ContentCollectionDto] = None creator: ContentCreatorDto durationSec: Optional[float] = None episodeNumber: Optional[int] = None genre: Optional[str] = None id: IdentifierDto imageUri: Optional[str] = None masking: Optional[bool] = None mediaUri: Optional[str] = None metrics: Optional[TrackMetricsDto] = None resumable: bool seasonNumber: Optional[int] = None streamUri: Optional[str] = None title: str type: Type16 = Field( ..., description='0:TRACK_TYPE_UNSPECIFIED\n\n1:TRACK\n\n2:PODCAST\n\n3:AUDIOBOOK\n\n4:ALARM', examples=[1], ) versionCreateTime: Optional[datetime] = Field( None, description='Date when current track version was created.' ) class TrackHwDto(BaseModel): coefficients: Optional[CoefficientsDto] = Field( None, description='Coefficients used for masking sound generation.' ) creatorName: str durationSec: Optional[float] = None id: IdentifierDto mediaUri: Optional[str] = None resumable: bool streamUri: Optional[str] = None title: str versionCreateTime: Optional[float] = Field( None, description='Date when current track version was created (epoch time).' ) class TrackResultDto(BaseModel): liked: Optional[bool] = None track: TrackDto class TracksHwDto(BaseModel): tracks: List[TrackHwDto] class MobileAlarmsTracksGetResponse(RootModel[List[TrackDto]]): root: List[TrackDto] class AlarmDto(BaseModel): bedtime: Optional[TimeOfDayDto] = None bedtimeChime: bool bedtimeLight: bool daysOfWeek: List[DaysOfWeekEnum] enabled: bool id: UUID playlistTrackIds: Optional[List[IdentifierDto]] = None sleepPlanId: Optional[str] = None smartMode: Optional[SmartMode] = Field( None, description='lessGroggy:lessGroggy\n\nrememberDream:rememberDream', examples=['rememberDream'], ) smartThresholdInMin: Optional[int] = None snooze: bool timerInSeconds: Optional[int] = None track: TrackDto updatedAt: datetime wakeUpTime: Optional[TimeOfDayDto] = None class GetCollectionTracksResponseDto(BaseModel): data: List[TrackResultDto] nextPageToken: Optional[str] = None class ListTracksResponseDto(BaseModel): nextPageToken: Optional[str] = None tracks: List[TrackDto] class PlayedTrackDto(BaseModel): durationInSec: float = Field(..., description='Track playtime') endTime: datetime = Field(..., description='End time') startTime: datetime = Field(..., description='Start time') track: TrackDto = Field(..., description='Track') class PremadeSleepPhaseDto(BaseModel): tracks: List[TrackDto] type: Type12 = Field( ..., description='0:TYPE_UNSPECIFIED\n\n1:FALLING_ASLEEP\n\n2:SLEEPING\n\n3:WAKING_UP', examples=[1], ) class PremadeSleepPlanDto(BaseModel): description: Optional[str] = None id: UUID imageUri: str name: str sleepPhases: List[PremadeSleepPhaseDto] class SearchResultDto(BaseModel): collection: Optional[ContentCollectionDto] = None creator: Optional[ContentCreatorDto] = None liked: Optional[bool] = None track: Optional[TrackDto] = None class SearchResultHwDto(BaseModel): track: Optional[TrackDto] = None class SleepDataDto(BaseModel): biosignals: List[SleepDataPointDto] = Field( ..., description='List of sleep data point' ) playedTracks: Optional[List[PlayedTrackDto]] = Field( None, description='Summary for the night' ) summary: Optional[SleepSummaryDto] = Field( None, description='Summary for the night' ) class SleepPlanTrackDto(BaseModel): recommended: bool track: TrackDto class SleepPlanTrackHwDto(BaseModel): recommended: bool track: TrackHwDto class MobileAlarmsGetResponse(RootModel[List[AlarmDto]]): root: List[AlarmDto] class GetPlaylistResponseDto(BaseModel): data: List[SearchResultDto] class SearchResponseDto(BaseModel): data: List[SearchResultDto] nextPageToken: Optional[str] = None class SearchResponseHwDto(BaseModel): data: List[SearchResultHwDto] nextPageToken: Optional[str] = None class SleepPhaseDto(BaseModel): tracks: List[SleepPlanTrackDto] type: Type12 = Field( ..., description='0:TYPE_UNSPECIFIED\n\n1:FALLING_ASLEEP\n\n2:SLEEPING\n\n3:WAKING_UP', examples=[1], ) class SleepPhaseHwDto(BaseModel): tracks: List[SleepPlanTrackHwDto] type: Type12 = Field( ..., description='0:TYPE_UNSPECIFIED\n\n1:FALLING_ASLEEP\n\n2:SLEEPING\n\n3:WAKING_UP', examples=[1], ) class SleepPlanDto(BaseModel): createdAt: datetime id: UUID imageUri: str loop: bool name: str shuffle: bool sleepPhases: List[SleepPhaseDto] class SleepPlanHwDto(BaseModel): createdAt: float id: UUID loop: bool name: str shuffle: bool sleepPhases: List[SleepPhaseHwDto] updatedAt: float class MobileSleepPlansGetResponse(RootModel[List[SleepPlanDto]]): root: List[SleepPlanDto] class CreateOnboardingResponseDto(BaseModel): answers: List[OnboardingAnswerDto] sleepPlan: SleepPlanDto timestamp: datetime

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/amirlazarovich-git/sond-core-api'

If you have feedback or need assistance with the MCP directory API, please join our Discord server