models.py•39.4 kB
# generated by fastapi-codegen:
# filename: openapi.yaml
# timestamp: 2025-06-29T09:31:09+00:00
from __future__ import annotations
from datetime import datetime
from enum import Enum
from typing import List, Optional, Union
from pydantic import BaseModel, Field, RootModel
class GrantType(Enum):
authorization_code = 'authorization_code'
client_credentials = 'client_credentials'
class AuthorizationCode(BaseModel):
authorization_code: Optional[str] = Field(None, description='Authorization code')
client_id: Optional[str] = Field(None, description='Client ID')
client_secret: Optional[str] = Field(None, description='Client secret')
grant_type: Optional[GrantType] = None
redirect_uri: Optional[str] = Field(None, description='Redirect URI')
class User(BaseModel):
avatar_url: Optional[str] = Field(None, description='URL to a JPEG image.')
followers_count: Optional[int] = Field(None, description='number of followers.')
followings_count: Optional[int] = Field(
None, description='number of followed users.'
)
id: Optional[int] = Field(None, description='unique identifier')
kind: Optional[str] = Field(None, description='kind of resource.')
last_modified: Optional[str] = Field(None, description='last modified timestamp.')
permalink: Optional[str] = Field(None, description='permalink of the resource.')
permalink_url: Optional[str] = Field(
None, description='URL to the SoundCloud.com page.'
)
reposts_count: Optional[int] = Field(
None, description='number of reposts from user'
)
uri: Optional[str] = Field(None, description='API resource URL.')
username: Optional[str] = Field(None, description='username')
class Comment(BaseModel):
body: Optional[str] = Field(None, description='Comment body.')
created_at: Optional[str] = Field(None, description='Created timestamp.')
id: Optional[int] = Field(None, description='Identifier.')
kind: Optional[str] = Field(None, description='Kind (comment).')
timestamp: Optional[str] = Field(None, description='Timestamp.')
track_id: Optional[int] = Field(None, description="Track's identifier.")
uri: Optional[str] = Field(None, description="Comment's URL.")
user: Optional[User] = Field(None, description='SoundCloud User object')
user_id: Optional[int] = Field(None, description="User's identifier.")
class Comments(BaseModel):
collection: Optional[List[Comment]] = None
next_href: Optional[str] = None
class CommentsList(RootModel[List[Comment]]):
root: List[Comment]
class Quota(BaseModel):
unlimited_upload_quota: Optional[bool] = Field(
None, description='unlimited upload quota.'
)
upload_seconds_used: Optional[int] = Field(None, description='upload seconds used.')
class CompleteUser(BaseModel):
avatar_url: Optional[str] = Field(None, description='URL to a JPEG image.')
city: Optional[str] = Field(None, description='city.')
country: Optional[str] = Field(None, description='country.')
description: Optional[str] = Field(None, description='description.')
discogs_name: Optional[str] = Field(None, description='discogs name.')
first_name: Optional[str] = Field(None, description='first name.')
followers_count: Optional[int] = Field(None, description='number of followers.')
followings_count: Optional[int] = Field(
None, description='number of followed users.'
)
full_name: Optional[str] = Field(None, description='first and last name.')
id: Optional[int] = Field(None, description='unique identifier')
kind: Optional[str] = Field(None, description='kind of resource.')
last_modified: Optional[str] = Field(None, description='last modified timestamp.')
last_name: Optional[str] = Field(None, description='last name.')
locale: Optional[str] = Field(None, description='locale.')
myspace_name: Optional[str] = Field(None, description='myspace name')
permalink: Optional[str] = Field(None, description='permalink of the resource.')
permalink_url: Optional[str] = Field(
None, description='URL to the SoundCloud.com page.'
)
plan: Optional[str] = Field(None, description='subscription plan of the user.')
playlist_count: Optional[int] = Field(
None, description='number of public playlists.'
)
primary_email_confirmed: Optional[bool] = Field(
None, description='boolean if email is confirmed.'
)
private_playlists_count: Optional[int] = Field(
None, description='number of private playlists.'
)
private_tracks_count: Optional[int] = Field(
None, description='number of private tracks.'
)
public_favorites_count: Optional[int] = Field(
None, description='number of favorited public tracks'
)
quota: Optional[Quota] = Field(None, description="user's upload quota")
reposts_count: Optional[int] = Field(
None, description='number of reposts from user'
)
subscriptions: Optional[List[List]] = Field(
None, description='a list subscriptions associated with the user'
)
track_count: Optional[int] = Field(None, description='number of public tracks.')
uri: Optional[str] = Field(None, description='API resource URL.')
username: Optional[str] = Field(None, description='username')
website: Optional[str] = Field(None, description='a URL to the website.')
website_title: Optional[str] = Field(
None, description='a custom title for the website.'
)
class Connection(BaseModel):
created_at: Optional[str] = Field(None, description='Created timestamp.')
display_name: Optional[str] = Field(None, description='Full Name.')
id: Optional[int] = Field(None, description='Unique identifier')
kind: Optional[str] = Field(None, description='Kind of resource.')
post_favorite: Optional[bool] = None
post_publish: Optional[bool] = None
service: Optional[str] = Field(None, description='Service.')
type: Optional[str] = Field(None, description='Type.')
uri: Optional[str] = Field(None, description='The external link URI.')
class Connections(RootModel[List[Connection]]):
root: List[Connection]
class Sharing(Enum):
public = 'public'
private = 'private'
class Track1(BaseModel):
id: str = Field(..., description='SoundCloud track id')
class Playlist1(BaseModel):
description: Optional[str] = Field(None, description='Description of the playlist')
sharing: Optional[Sharing] = Field(None, description='public or private')
title: Optional[str] = Field(None, description='Title of the playlist')
tracks: Optional[List[Track1]] = Field(
None, description='List of tracks to add to playlist'
)
class CreateUpdatePlaylistRequest(BaseModel):
playlist: Optional[Playlist1] = None
class Error(BaseModel):
code: Optional[int] = None
error: Optional[str] = None
errors: Optional[List] = None
link: Optional[str] = None
message: Optional[str] = None
status: Optional[str] = None
class Found(BaseModel):
location: Optional[str] = Field(None, description='Location URL of the resource.')
status: Optional[str] = Field(None, description='Status code.')
class MetaUser(BaseModel):
avatar_url: Optional[str] = Field(None, description='URL to a JPEG image')
created_at: Optional[datetime] = Field(
None, description='profile creation datetime'
)
id: Optional[int] = Field(None, description='unique identifier')
kind: Optional[str] = Field(None, description='kind of resource')
last_modified: Optional[datetime] = Field(
None, description='last modified datetime'
)
permalink: Optional[str] = Field(None, description='permalink of the resource')
permalink_url: Optional[str] = Field(
None, description='URL to the SoundCloud.com page'
)
uri: Optional[str] = Field(None, description='API resource URL')
username: Optional[str] = Field(None, description='username')
class MetaUsers(BaseModel):
collection: Optional[List[MetaUser]] = None
next_href: Optional[str] = None
class GrantType1(Enum):
password = 'password'
class Password(BaseModel):
client_id: Optional[str] = Field(None, description='Client ID')
client_secret: Optional[str] = Field(None, description='Client secret')
grant_type: Optional[GrantType1] = None
password: Optional[str] = Field(None, description='User password')
redirect_uri: Optional[str] = Field(None, description='Redirect URI')
user_name: Optional[str] = Field(None, description='User name')
class GrantType2(Enum):
refresh_token = 'refresh_token'
class RefreshToken(BaseModel):
client_id: Optional[str] = Field(None, description='Client ID')
client_secret: Optional[str] = Field(None, description='Client secret')
grant_type: Optional[GrantType2] = None
redirect_uri: Optional[str] = Field(None, description='Redirect URI')
refresh_token: Optional[str] = Field(None, description='Refresh token')
class Streams(BaseModel):
hls_mp3_128_url: Optional[str] = None
hls_opus_64_url: Optional[str] = None
http_mp3_128_url: Optional[str] = None
preview_mp3_128_url: Optional[str] = None
class TooManyRequests(Error):
spam_warning_urn: Optional[str] = None
class AccessEnum(Enum):
playable = 'playable'
preview = 'preview'
blocked = 'blocked'
class Access(RootModel[Optional[AccessEnum]]):
root: Optional[AccessEnum] = Field(
None,
description='Level of access the user (logged in or anonymous) has to the track.\n * `playable` - user is allowed to listen to a full track.\n * `preview` - user is allowed to preview a track, meaning a snippet is available\n * `blocked` - user can only see the metadata of a track, no streaming is possible\n',
)
class Track(BaseModel):
access: Optional[Access] = Field(
None,
description='Level of access the user (logged in or anonymous) has to the track.\n * `playable` - user is allowed to listen to a full track.\n * `preview` - user is allowed to preview a track, meaning a snippet is available\n * `blocked` - user can only see the metadata of a track, no streaming is possible\n',
)
artwork_url: Optional[str] = Field(None, description='URL to a JPEG image.')
available_country_codes: Optional[str] = Field(
None, description='List of countries where track is available.'
)
bpm: Optional[int] = Field(None, description='Tempo.')
comment_count: Optional[int] = Field(None, description='Number of comments.')
commentable: Optional[bool] = Field(None, description='Is commentable.')
created_at: Optional[str] = Field(None, description='Created timestamp.')
description: Optional[str] = Field(None, description='Track description.')
download_count: Optional[int] = Field(None, description='NUmber of downloads.')
download_url: Optional[str] = Field(None, description='URL to download a track.')
downloadable: Optional[str] = Field(None, description='Is downloadable.')
duration: Optional[int] = Field(None, description='Track duration.')
embeddable_by: Optional[str] = Field(None, description='Embeddable by.')
favoritings_count: Optional[int] = Field(None, description='Number of favoritings.')
genre: Optional[str] = Field(None, description='Genre')
id: Optional[int] = Field(None, description='Track identifier.')
isrc: Optional[str] = Field(None, description='ISRC code.')
key_signature: Optional[str] = Field(None, description='Key signature.')
kind: Optional[str] = Field(None, description='Type of object (track).')
label_name: Optional[str] = Field(None, description='Label user name.')
license: Optional[str] = Field(None, description='License')
permalink_url: Optional[str] = Field(None, description='Permalink URL.')
playback_count: Optional[int] = Field(None, description='Number of plays.')
purchase_title: Optional[str] = Field(None, description='Purchase title.')
purchase_url: Optional[str] = Field(None, description='Purchase URL.')
release: Optional[str] = Field(None, description='Release.')
release_day: Optional[int] = Field(None, description='Day of release.')
release_month: Optional[int] = Field(None, description='Month of release.')
release_year: Optional[int] = Field(None, description='Year of release.')
reposts_count: Optional[int] = Field(None, description='Number of reposts.')
secret_uri: Optional[str] = Field(None, description='Secret URL.')
sharing: Optional[str] = Field(
None, description='Type of sharing (public/private).'
)
stream_url: Optional[str] = Field(None, description='URL to stream.')
streamable: Optional[bool] = Field(None, description='Is streamable.')
tag_list: Optional[str] = Field(None, description='Tags.')
title: Optional[str] = Field(None, description='Track title.')
uri: Optional[str] = Field(None, description='Track URI.')
user: Optional[MetaUser] = Field(None, description='User who uploaded a track')
user_favorite: Optional[bool] = Field(None, description="Is user's favourite.")
user_playback_count: Optional[int] = Field(
None, description='Number of plays by a user.'
)
waveform_url: Optional[str] = Field(None, description='Waveform URL.')
class TrackEmbeddableBy(Enum):
all = 'all'
me = 'me'
none = 'none'
class TrackLicense(Enum):
no_rights_reserved = 'no-rights-reserved'
all_rights_reserved = 'all-rights-reserved'
cc_by = 'cc-by'
cc_by_nc = 'cc-by-nc'
cc_by_nd = 'cc-by-nd'
cc_by_sa = 'cc-by-sa'
cc_by_nc_nd = 'cc-by-nc-nd'
cc_by_nc_sa = 'cc-by-nc-sa'
class TrackSharing(Enum):
public = 'public'
private = 'private'
class TrackDataRequest(BaseModel):
track_artwork_data_: Optional[bytes] = Field(
None, alias='track[artwork_data]', title='Only for uploading, for PRO users'
)
track_asset_data_: Optional[bytes] = Field(
None, alias='track[asset_data]', title='Only for uploading'
)
track_commentable_: Optional[bool] = Field(True, alias='track[commentable]')
track_description_: Optional[str] = Field(None, alias='track[description]')
track_downloadable_: Optional[bool] = Field(True, alias='track[downloadable]')
track_embeddable_by_: Optional[TrackEmbeddableBy] = Field(
None,
alias='track[embeddable_by]',
description='who can embed this track "all", "me", or "none"',
)
track_genre_: Optional[str] = Field(None, alias='track[genre]')
track_isrc_: Optional[str] = Field(None, alias='track[isrc]')
track_label_name_: Optional[str] = Field(None, alias='track[label_name]')
track_license_: Optional[TrackLicense] = Field(
None,
alias='track[license]',
description='Possible values: no-rights-reserved, all-rights-reserved, cc-by, cc-by-nc, cc-by-nd, cc-by-sa, cc-by-nc-nd, cc-by-nc-sa',
)
track_permalink_: Optional[str] = Field(None, alias='track[permalink]')
track_purchase_url_: Optional[str] = Field(None, alias='track[purchase_url]')
track_release_: Optional[str] = Field(None, alias='track[release]')
track_release_date_: Optional[str] = Field(
None,
alias='track[release_date]',
description='string, formatted as yyyy-mm-dd, representing release date',
title='write only!',
)
track_sharing_: Optional[TrackSharing] = Field('public', alias='track[sharing]')
track_streamable_: Optional[bool] = Field(True, alias='track[streamable]')
track_tag_list_: Optional[str] = Field(
None,
alias='track[tag_list]',
description='The tag_list property contains a list of tags separated by spaces. Multiword tags are quoted in double quotes. We also support machine tags that follow the pattern NAMESPACE:KEY=VALUE. For example: geo:lat=43.555 camel:size=medium “machine:tag=with space” Machine tags are not revealed to the user on the track pages.',
)
track_title_: Optional[str] = Field(None, alias='track[title]')
class EmbeddableBy(Enum):
all = 'all'
me = 'me'
none = 'none'
class License(Enum):
no_rights_reserved = 'no-rights-reserved'
all_rights_reserved = 'all-rights-reserved'
cc_by = 'cc-by'
cc_by_nc = 'cc-by-nc'
cc_by_nd = 'cc-by-nd'
cc_by_sa = 'cc-by-sa'
cc_by_nc_nd = 'cc-by-nc-nd'
cc_by_nc_sa = 'cc-by-nc-sa'
class Track2(BaseModel):
commentable: Optional[bool] = True
description: Optional[str] = None
downloadable: Optional[bool] = True
embeddable_by: Optional[EmbeddableBy] = Field(
None, description='who can embed this track "all", "me", or "none"'
)
genre: Optional[str] = None
isrc: Optional[str] = None
label_name: Optional[str] = None
license: Optional[License] = Field(
None,
description='Possible values: no-rights-reserved, all-rights-reserved, cc-by, cc-by-nc, cc-by-nd, cc-by-sa, cc-by-nc-nd, cc-by-nc-sa',
)
permalink: Optional[str] = None
purchase_url: Optional[str] = None
release: Optional[str] = None
release_date: Optional[str] = Field(
None,
description='string, formatted as yyyy-mm-dd, representing release date',
title='write only!',
)
sharing: Optional[Sharing] = 'public'
streamable: Optional[bool] = True
tag_list: Optional[str] = Field(
None,
description='The tag_list property contains a list of tags separated by spaces. Multiword tags are quoted in double quotes. We also support machine tags that follow the pattern NAMESPACE:KEY=VALUE. For example: geo:lat=43.555 camel:size=medium “machine:tag=with space” Machine tags are not revealed to the user on the track pages.',
)
title: Optional[str] = None
class TrackMetadataRequest(BaseModel):
track: Optional[Track2] = None
class Tracks(BaseModel):
collection: Optional[List[Track]] = None
next_href: Optional[str] = None
class TracksList(RootModel[List[Track]]):
root: List[Track]
class User1(BaseModel):
avatar_url: Optional[str] = Field(None, description='URL to a JPEG image')
city: Optional[str] = Field(None, description='city')
country: Optional[str] = Field(None, description='country')
created_at: Optional[datetime] = Field(
None, description='profile creation datetime'
)
description: Optional[str] = Field(None, description='description')
discogs_name: Optional[str] = Field(None, description='discogs name')
first_name: Optional[str] = Field(None, description='first name')
followers_count: Optional[int] = Field(None, description='number of followers')
followings_count: Optional[int] = Field(
None, description='number of followed users'
)
full_name: Optional[str] = Field(None, description='first and last name')
id: Optional[int] = Field(None, description='unique identifier')
kind: Optional[str] = Field(None, description='kind of resource')
last_modified: Optional[datetime] = Field(
None, description='last modified datetime'
)
last_name: Optional[str] = Field(None, description='last name')
myspace_name: Optional[str] = Field(None, description='myspace name')
permalink: Optional[str] = Field(None, description='permalink of the resource')
permalink_url: Optional[str] = Field(
None, description='URL to the SoundCloud.com page'
)
plan: Optional[str] = Field(None, description='subscription plan of the user')
playlist_count: Optional[int] = Field(
None, description='number of public playlists'
)
public_favorites_count: Optional[int] = Field(
None, description='number of favorited public tracks'
)
reposts_count: Optional[int] = Field(
None, description='number of reposts from user'
)
subscriptions: Optional[List[List]] = Field(
None, description='a list subscriptions associated with the user'
)
track_count: Optional[int] = Field(None, description='number of public tracks')
uri: Optional[str] = Field(None, description='API resource URL')
username: Optional[str] = Field(None, description='username')
website: Optional[str] = Field(None, description='a URL to the website')
website_title: Optional[str] = Field(
None, description='a custom title for the website'
)
class Users(BaseModel):
collection: Optional[List[User1]] = None
next_href: Optional[str] = None
class UsersListItem(BaseModel):
avatar_url: Optional[str] = Field(None, description='URL to a JPEG image')
city: Optional[str] = Field(None, description='city')
country: Optional[str] = Field(None, description='country')
description: Optional[str] = Field(None, description='description')
discogs_name: Optional[str] = Field(None, description='discogs name')
first_name: Optional[str] = Field(None, description='first name')
followers_count: Optional[int] = Field(None, description='number of followers')
followings_count: Optional[int] = Field(
None, description='number of followed users'
)
full_name: Optional[str] = Field(None, description='first and last name')
id: Optional[int] = Field(None, description='unique identifier')
kind: Optional[str] = Field(None, description='kind of resource')
last_modified: Optional[datetime] = Field(
None, description='last modified datetime'
)
last_name: Optional[str] = Field(None, description='last name')
myspace_name: Optional[str] = Field(None, description='myspace name')
permalink: Optional[str] = Field(None, description='permalink of the resource')
permalink_url: Optional[str] = Field(
None, description='URL to the SoundCloud.com page'
)
plan: Optional[str] = Field(None, description='subscription plan of the user')
playlist_count: Optional[int] = Field(
None, description='number of public playlists'
)
public_favorites_count: Optional[int] = Field(
None, description='number of favorited public tracks'
)
reposts_count: Optional[int] = Field(
None, description='number of reposts from user'
)
subscriptions: Optional[List[List]] = Field(
None, description='a list subscriptions associated with the user'
)
track_count: Optional[int] = Field(None, description='number of public tracks')
uri: Optional[str] = Field(None, description='API resource URL')
username: Optional[str] = Field(None, description='username')
website: Optional[str] = Field(None, description='a URL to the website')
website_title: Optional[str] = Field(
None, description='a custom title for the website'
)
class UsersList(RootModel[List[UsersListItem]]):
root: List[UsersListItem]
class WebProfile(BaseModel):
created_at: Optional[str] = Field(
None, description='Timestamp of when the link was added to the profile.'
)
id: Optional[int] = Field(None, description='Id')
kind: Optional[str] = Field(None, description='Kind')
service: Optional[str] = Field(None, description='Service or platform')
title: Optional[str] = Field(None, description="Link's title")
url: Optional[str] = Field(None, description='URL of the external link')
username: Optional[str] = Field(
None, description='Username extracted from the external link'
)
class WebProfiles(RootModel[List[WebProfile]]):
root: List[WebProfile] = Field(
..., description="User's links added to their profile"
)
class ResponseType(Enum):
code = 'code'
token = 'token'
code_and_token = 'code_and_token'
class Acces(Enum):
playable = 'playable'
preview = 'preview'
blocked = 'blocked'
class Access1(RootModel[List[Acces]]):
root: List[Acces]
class Access2(RootModel[List[Acces]]):
root: List[Acces]
class Access3(RootModel[List[Acces]]):
root: List[Acces]
class MeFollowersGetResponse(RootModel[Union[Users, UsersList]]):
root: Union[Users, UsersList]
class MeFollowingsGetResponse(RootModel[Union[Users, UsersList]]):
root: Union[Users, UsersList]
class Access4(RootModel[List[Acces]]):
root: List[Acces]
class MeLikesTracksGetResponse(RootModel[Union[Tracks, TracksList]]):
root: Union[Tracks, TracksList]
class MeTracksGetResponse(RootModel[Union[Tracks, TracksList]]):
root: Union[Tracks, TracksList]
class Oauth2TokenPostRequest(
RootModel[Union[AuthorizationCode, RefreshToken, Password]]
):
root: Union[AuthorizationCode, RefreshToken, Password]
class Oauth2TokenPostResponse(RootModel[Error]):
root: Error
class Access5(RootModel[List[Acces]]):
root: List[Acces]
class Track3(BaseModel):
artwork_url: Optional[str] = Field(None, description='URL to a JPEG image.')
bpm: Optional[int] = Field(None, description='Tempo.')
comment_count: Optional[int] = Field(None, description='Number of comments.')
commentable: Optional[bool] = Field(None, description='Is commentable.')
created_at: Optional[str] = Field(None, description='Created timestamp.')
description: Optional[str] = Field(None, description='Track description.')
download_count: Optional[int] = Field(None, description='NUmber of downloads.')
downloadable: Optional[str] = Field(None, description='Is downloadable.')
duration: Optional[int] = Field(None, description='Track duration.')
embeddable_by: Optional[str] = Field(None, description='Embeddable by.')
favoritings_count: Optional[int] = Field(None, description='Number of favoritings.')
genre: Optional[str] = Field(None, description='Genre')
id: Optional[int] = Field(None, description='Track identifier.')
isrc: Optional[str] = Field(None, description='ISRC code.')
key_signature: Optional[str] = Field(None, description='Key signature.')
kind: Optional[str] = Field(None, description='Type of object (track).')
label_name: Optional[str] = Field(None, description='Label user name.')
license: Optional[str] = Field(None, description='License')
permalink_url: Optional[str] = Field(None, description='Permalink URL.')
playback_count: Optional[int] = Field(None, description='Number of plays.')
purchase_title: Optional[str] = Field(None, description='Purchase title.')
purchase_url: Optional[str] = Field(None, description='Purchase URL.')
release: Optional[str] = Field(None, description='Release.')
release_day: Optional[int] = Field(None, description='Day of release.')
release_month: Optional[int] = Field(None, description='Month of release.')
release_year: Optional[int] = Field(None, description='Year of release.')
sharing: Optional[str] = Field(
None, description='Type of sharing (public/private).'
)
stream_url: Optional[str] = Field(None, description='URL to stream.')
streamable: Optional[bool] = Field(None, description='Is streamable.')
tag_list: Optional[str] = Field(None, description='Tags.')
title: Optional[str] = Field(None, description='Track title.')
uri: Optional[str] = Field(None, description='Track URI.')
user: Optional[MetaUser] = Field(None, description='User who uploaded a track')
user_favorite: Optional[bool] = Field(None, description="Is user's favourite.")
user_playback_count: Optional[int] = Field(
None, description='Number of plays by a user.'
)
waveform_url: Optional[str] = Field(None, description='Waveform URL.')
class PlaylistsPostResponse(BaseModel):
artwork_url: Optional[str] = Field(None, description='URL to a JPEG image.')
created_at: Optional[str] = Field(None, description='Created timestamp.')
description: Optional[str] = Field(None, description='Playlist description.')
downloadable: Optional[bool] = Field(None, description='is downloadable.')
duration: Optional[int] = Field(None, description='Playlist duration.')
ean: Optional[str] = Field(None, description='European Article Number.')
embeddable_by: Optional[str] = Field(None, description='Embeddable by.')
genre: Optional[str] = Field(None, description='Playlist genre.')
id: Optional[int] = Field(None, description='Playlist identifier.')
kind: Optional[str] = Field(
None, description='Type of Soundcloud object (playlist).'
)
label_id: Optional[int] = Field(None, description='Label user identifier.')
label_name: Optional[str] = Field(None, description='Label name.')
last_modified: Optional[str] = Field(None, description='Last modified timestamp.')
license: Optional[str] = Field(None, description='License.')
permalink: Optional[str] = Field(None, description='Playlist permalink.')
permalink_url: Optional[str] = Field(None, description='Playlist permalink URL.')
playlist_type: Optional[str] = Field(None, description='Type of playlist.')
purchase_title: Optional[str] = Field(None, description='Purchase title.')
purchase_url: Optional[str] = Field(None, description='Purchase URL.')
release: Optional[str] = Field(None, description='Release.')
release_day: Optional[int] = Field(None, description='Day of release.')
release_month: Optional[int] = Field(None, description='Month of release.')
release_year: Optional[int] = Field(None, description='Year of release.')
sharing: Optional[str] = Field(
None, description='Type of sharing (private/public).'
)
streamable: Optional[bool] = Field(None, description='Is streamable.')
tag_list: Optional[str] = Field(None, description='Tags.')
title: Optional[str] = Field(None, description='Playlist title.')
track_count: Optional[int] = Field(None, description='Count of tracks.')
tracks: Optional[List[Track3]] = Field(None, description='List of tracks.')
type: Optional[str] = Field(None, description='Playlist type.')
uri: Optional[str] = Field(None, description='Playlist URI.')
user: Optional[MetaUser] = None
user_id: Optional[int] = Field(None, description='User identifier.')
class Access6(RootModel[List[Acces]]):
root: List[Acces]
class PlaylistsPlaylistIdPutResponse(BaseModel):
artwork_url: Optional[str] = Field(None, description='URL to a JPEG image.')
created_at: Optional[str] = Field(None, description='Created timestamp.')
description: Optional[str] = Field(None, description='Playlist description.')
downloadable: Optional[bool] = Field(None, description='is downloadable.')
duration: Optional[int] = Field(None, description='Playlist duration.')
ean: Optional[str] = Field(None, description='European Article Number.')
embeddable_by: Optional[str] = Field(None, description='Embeddable by.')
genre: Optional[str] = Field(None, description='Playlist genre.')
id: Optional[int] = Field(None, description='Playlist identifier.')
kind: Optional[str] = Field(
None, description='Type of Soundcloud object (playlist).'
)
label_id: Optional[int] = Field(None, description='Label user identifier.')
label_name: Optional[str] = Field(None, description='Label name.')
last_modified: Optional[str] = Field(None, description='Last modified timestamp.')
license: Optional[str] = Field(None, description='License.')
permalink: Optional[str] = Field(None, description='Playlist permalink.')
permalink_url: Optional[str] = Field(None, description='Playlist permalink URL.')
playlist_type: Optional[str] = Field(None, description='Type of playlist.')
purchase_title: Optional[str] = Field(None, description='Purchase title.')
purchase_url: Optional[str] = Field(None, description='Purchase URL.')
release: Optional[str] = Field(None, description='Release.')
release_day: Optional[int] = Field(None, description='Day of release.')
release_month: Optional[int] = Field(None, description='Month of release.')
release_year: Optional[int] = Field(None, description='Year of release.')
sharing: Optional[str] = Field(
None, description='Type of sharing (private/public).'
)
streamable: Optional[bool] = Field(None, description='Is streamable.')
tag_list: Optional[str] = Field(None, description='Tags.')
title: Optional[str] = Field(None, description='Playlist title.')
track_count: Optional[int] = Field(None, description='Count of tracks.')
tracks: Optional[List[Track3]] = Field(None, description='List of tracks.')
type: Optional[str] = Field(None, description='Playlist type.')
uri: Optional[str] = Field(None, description='Playlist URI.')
user: Optional[MetaUser] = None
user_id: Optional[int] = Field(None, description='User identifier.')
class PlaylistsPlaylistIdTracksGetResponse(RootModel[Union[Tracks, TracksList]]):
root: Union[Tracks, TracksList]
class Access7(RootModel[List[Acces]]):
root: List[Acces]
class Bpm(BaseModel):
from_: Optional[int] = Field(
None,
alias='from',
description='Return tracks with at least this bpm value',
examples=[123],
)
to: Optional[int] = Field(
None, description='Return tracks with at most this bpm value', examples=[456]
)
class Duration(BaseModel):
from_: Optional[int] = Field(
None,
alias='from',
description='Return tracks with at least this duration value',
examples=[123456],
)
to: Optional[int] = Field(
None,
description='Return tracks with at most this duration value',
examples=[456789],
)
class CreatedAt(BaseModel):
from_: Optional[str] = Field(
None,
alias='from',
description='(yyyy-mm-dd hh:mm:ss) return tracks created at this date or later',
examples=['2020-12-24T00:00:00.000Z'],
)
to: Optional[str] = Field(
None,
description='(yyyy-mm-dd hh:mm:ss) return tracks created at this date or earlier',
examples=['2020-12-26T00:00:00.000Z'],
)
class TracksGetResponse(RootModel[Union[Tracks, TracksList]]):
root: Union[Tracks, TracksList]
class Access8(RootModel[List[Acces]]):
root: List[Acces]
class TracksTrackIdCommentsGetResponse(RootModel[Union[Comments, CommentsList]]):
root: Union[Comments, CommentsList]
class Comment1(BaseModel):
body: str = Field(..., description="Comment's content", examples=['test comment'])
timestamp: Optional[Union[str, float]] = Field(
None,
description='Timestamp of a comment. String or float representation is supported',
)
class TracksTrackIdCommentsPostRequest(BaseModel):
comment: Optional[Comment1] = None
class TracksTrackIdRelatedGetResponse(RootModel[Union[Tracks, TracksList]]):
root: Union[Tracks, TracksList]
class Access9(RootModel[List[Acces]]):
root: List[Acces]
class UsersGetResponse(RootModel[Union[Users, UsersList]]):
root: Union[Users, UsersList]
class UsersUserIdFavoritesGetResponse(RootModel[Union[Tracks, TracksList]]):
root: Union[Tracks, TracksList]
class UsersUserIdFollowersGetResponse(RootModel[Union[Users, UsersList]]):
root: Union[Users, UsersList]
class UsersUserIdFollowingsGetResponse(RootModel[Union[Users, UsersList]]):
root: Union[Users, UsersList]
class UsersUserIdLikesTracksGetResponse(RootModel[Union[Tracks, TracksList]]):
root: Union[Tracks, TracksList]
class Access10(RootModel[List[Acces]]):
root: List[Acces]
class Access11(RootModel[List[Acces]]):
root: List[Acces]
class UsersUserIdTracksGetResponse(RootModel[Union[Tracks, TracksList]]):
root: Union[Tracks, TracksList]
class Access12(RootModel[List[Acces]]):
root: List[Acces]
class Playlist(BaseModel):
artwork_url: Optional[str] = Field(None, description='URL to a JPEG image.')
created_at: Optional[str] = Field(None, description='Created timestamp.')
description: Optional[str] = Field(None, description='Playlist description.')
downloadable: Optional[bool] = Field(None, description='is downloadable.')
duration: Optional[int] = Field(None, description='Playlist duration.')
ean: Optional[str] = Field(None, description='European Article Number.')
embeddable_by: Optional[str] = Field(None, description='Embeddable by.')
genre: Optional[str] = Field(None, description='Playlist genre.')
id: Optional[int] = Field(None, description='Playlist identifier.')
kind: Optional[str] = Field(
None, description='Type of Soundcloud object (playlist).'
)
label: Optional[MetaUser] = None
label_id: Optional[int] = Field(None, description='Label user identifier.')
label_name: Optional[str] = Field(None, description='Label name.')
last_modified: Optional[str] = Field(None, description='Last modified timestamp.')
license: Optional[str] = Field(None, description='License.')
likes_count: Optional[int] = Field(None, description='Count of playlist likes.')
permalink: Optional[str] = Field(None, description='Playlist permalink.')
permalink_url: Optional[str] = Field(None, description='Playlist permalink URL.')
playlist_type: Optional[str] = Field(None, description='Type of playlist.')
purchase_title: Optional[str] = Field(None, description='Purchase title.')
purchase_url: Optional[str] = Field(None, description='Purchase URL.')
release: Optional[str] = Field(None, description='Release.')
release_day: Optional[int] = Field(None, description='Day of release.')
release_month: Optional[int] = Field(None, description='Month of release.')
release_year: Optional[int] = Field(None, description='Year of release.')
sharing: Optional[str] = Field(
None, description='Type of sharing (private/public).'
)
streamable: Optional[bool] = Field(None, description='Is streamable.')
tag_list: Optional[str] = Field(None, description='Tags.')
tags: Optional[str] = Field(None, description='Tags.')
title: Optional[str] = Field(None, description='Playlist title.')
track_count: Optional[int] = Field(None, description='Count of tracks.')
tracks: Optional[List[Track]] = Field(None, description='List of tracks.')
tracks_uri: Optional[str] = Field(None, description='tracks URI.')
type: Optional[str] = Field(None, description='Playlist type.')
uri: Optional[str] = Field(None, description='Playlist URI.')
user: Optional[MetaUser] = None
user_id: Optional[int] = Field(None, description='User identifier.')
class Playlists(BaseModel):
collection: Optional[List[Playlist]] = None
next_href: Optional[str] = None
class PlaylistsArray(RootModel[List[Playlist]]):
root: List[Playlist]
class PlaylistsGetResponse(RootModel[Union[Playlists, PlaylistsArray]]):
root: Union[Playlists, PlaylistsArray]
class UsersUserIdPlaylistsGetResponse(RootModel[Union[Playlists, PlaylistsArray]]):
root: Union[Playlists, PlaylistsArray]
class CollectionItem(BaseModel):
created_at: Optional[str] = Field(None, description='Created timestamp.')
origin: Optional[Union[Track, Playlist]] = Field(None, description='Origin.')
type: Optional[str] = Field(None, description='Type of activity (track).')
class Activities(BaseModel):
collection: Optional[List[CollectionItem]] = None
future_href: Optional[str] = None
next_href: Optional[str] = None