package api // Entitlements represents account playback and streaming capabilities. type Entitlements struct { LossyStreaming bool `json:"lossy_streaming"` LosslessStreaming bool `json:"lossless_streaming"` HiResStreaming bool `json:"hires_streaming"` HiResPurchasesStreaming bool `json:"hires_purchases_streaming"` OfflineStreaming bool `json:"offline_streaming"` MobileStreaming bool `json:"mobile_streaming"` } // UserSubscription represents subscription offer metadata. type UserSubscription struct { Offer string `json:"offer,omitempty"` EndDate string `json:"end_date,omitempty"` } // UserCredentialParameters represents streaming parameters returned in user credentials. type UserCredentialParameters struct { ShortLabel string `json:"short_label,omitempty"` LossyStreaming bool `json:"lossy_streaming"` LosslessStreaming bool `json:"lossless_streaming"` HiResStreaming bool `json:"hires_streaming"` HiResPurchasesStreaming bool `json:"hires_purchases_streaming"` OfflineStreaming bool `json:"offline_streaming"` MobileStreaming bool `json:"mobile_streaming"` } // UserInfo represents user account metadata. type UserInfo struct { ID ID `json:"id"` Email string `json:"email"` DisplayName string `json:"display_name"` CountryCode string `json:"country_code,omitempty"` LanguageCode string `json:"language_code,omitempty"` Subscription *UserSubscription `json:"subscription,omitempty"` Credential struct { Parameters *UserCredentialParameters `json:"parameters,omitempty"` } `json:"credential"` } // UserLoginResponse represents the response from user authentication. type UserLoginResponse struct { UserAuthToken string `json:"user_auth_token"` User UserInfo `json:"user"` }