snap_python.schemas.store

class snap_python.schemas.store.categories.Category(*, description: str | None = None, media: Media | None = None, name: str | None = None, summary: str | None = None, title: str | None = None, type: str | None = None, featured: bool | None = None)

Bases: BaseModel

description: str | None
featured: bool | None
media: Media | None
model_config: ClassVar[ConfigDict] = {'exclude_unset': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str | None
summary: str | None
title: str | None
type: str | None
class snap_python.schemas.store.categories.CategoryResponse(*, categories: List[Category] | None = None)

Bases: BaseModel

categories: List[Category] | None
model_config: ClassVar[ConfigDict] = {'exclude_unset': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class snap_python.schemas.store.categories.Media(*, height: float | None = None, type: str, url: str, width: float | None = None)

Bases: BaseModel

height: float | None
model_config: ClassVar[ConfigDict] = {'exclude_unset': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type: str
url: str
width: float | None
class snap_python.schemas.store.categories.SingleCategoryResponse(*, category: Category)

Bases: BaseModel

category: Category
model_config: ClassVar[ConfigDict] = {'exclude_unset': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class snap_python.schemas.store.info.Channel(*, architecture: str, name: str, released_at: AwareDatetime | None = None, risk: str, track: str)

Bases: BaseModel

architecture: str
model_config: ClassVar[ConfigDict] = {'exclude_unset': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str
released_at: AwareDatetime | None
risk: str
track: str
class snap_python.schemas.store.info.ChannelMapItem(*, architectures: List[str] | None = None, base: str | None = None, channel: Channel, common_ids: List[str] | None = None, confinement: str | None = None, created_at: AwareDatetime | None = None, download: Download | None = None, epoch: Epoch | None = None, resources: List[Resource] | None = None, revision: int | None = None, snap_yaml: str | None = None, type: str | None = None, version: str | None = None)

Bases: BaseModel

architectures: List[str] | None
base: str | None
channel: Channel
common_ids: List[str] | None
confinement: str | None
created_at: AwareDatetime | None
download: Download | None
epoch: Epoch | None
model_config: ClassVar[ConfigDict] = {'exclude_unset': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

resources: List[Resource] | None
revision: int | None
snap_yaml: str | None
type: str | None
version: str | None
class snap_python.schemas.store.info.Delta(*, format: str, sha3_384: str | None = None, size: float, source: float, target: float, url: str)

Bases: BaseModel

format: str
model_config: ClassVar[ConfigDict] = {'exclude_unset': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

sha3_384: str | None
size: float
source: float
target: float
url: str
class snap_python.schemas.store.info.Download(*, deltas: List[Delta], sha3_384: str | None = None, size: float, url: str)

Bases: BaseModel

deltas: List[Delta]
model_config: ClassVar[ConfigDict] = {'exclude_unset': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

sha3_384: str | None
size: float
url: str
class snap_python.schemas.store.info.Download1(*, sha3_384: str | None = None, size: int | None = None, url: str | None = None)

Bases: BaseModel

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

sha3_384: str | None
size: int | None
url: str | None
class snap_python.schemas.store.info.Epoch(*, read: List[float], write: List[float])

Bases: BaseModel

model_config: ClassVar[ConfigDict] = {'exclude_unset': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

read: List[float]
write: List[float]
class snap_python.schemas.store.info.ErrorListItem(*, code: str, message: str)

Bases: BaseModel

code: str
message: str
model_config: ClassVar[ConfigDict] = {'exclude_unset': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class snap_python.schemas.store.info.InfoResponse(*, channel_map: List[ChannelMapItem], default_track: str | None = None, error_list: List[ErrorListItem] | None = None, name: str, snap: StoreSnap, snap_id: str)

Bases: BaseModel

channel_map: List[ChannelMapItem]
default_track: str | None
error_list: List[ErrorListItem] | None
model_config: ClassVar[ConfigDict] = {'exclude_unset': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str
snap: StoreSnap
snap_id: str
class snap_python.schemas.store.info.Resource(*, architectures: List[str] | None = None, created_at: str | None = None, description: str | None = None, download: Download1 | None = None, name: str | None = None, revision: int | None = None, type: str | None = None, version: str | None = None)

Bases: BaseModel

architectures: List[str] | None
created_at: str | None
description: str | None
download: Download1 | None
model_config: ClassVar[ConfigDict] = {'exclude_unset': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str | None
revision: int | None
type: str | None
version: str | None
class snap_python.schemas.store.refresh.RefreshResultData(*, default_track: str | None = None, name: str, snap: StoreRefreshSnap, instance_key: str, released_at: AwareDatetime | None = None, result: str, snap_id: str, error: RefreshResultError | None = None)

Bases: BaseModel

default_track: str | None
error: RefreshResultError | None
instance_key: str
property is_error: bool
model_config: ClassVar[ConfigDict] = {'exclude_unset': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str
released_at: AwareDatetime | None
result: str
snap: StoreRefreshSnap
snap_id: str
class snap_python.schemas.store.refresh.RefreshResultError(*, code: str, message: str, extra: dict | None = None)

Bases: BaseModel

code: str
extra: dict | None
message: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class snap_python.schemas.store.refresh.RefreshRevisionResponse(*, error_list: List[ErrorListItem] | None = None, results: List[RefreshResultData])

Bases: BaseModel

error_list: List[ErrorListItem] | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

results: List[RefreshResultData]
class snap_python.schemas.store.refresh.SnapRefreshFields(*, architectures: list[str] | None = None, base: str | None = None, common_ids: list[str] | None = None, confinement: str | None = None, created_at: ~pydantic.types.AwareDatetime | None = None, download: ~snap_python.schemas.store.info.Download | None = None, epoch: dict[str, list[int]] | None = None, gated_snap_ids: list[str] | None = None, license: str | None = None, prices: dict[str, str] | None = None, resources: list[~snap_python.schemas.store.info.Resource] = <factory>, revision: int | None = None, snap_id: str | None = None, snap_yaml: str | None = None, type: str | None = None, version: str | None = None)

Bases: BaseModel

architectures: list[str] | None
base: str | None
common_ids: list[str] | None
confinement: str | None
created_at: AwareDatetime | None
download: Download | None
epoch: dict[str, list[int]] | None
gated_snap_ids: list[str] | None
license: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

prices: dict[str, str] | None
resources: list[Resource]
revision: int | None
snap_id: str | None
snap_yaml: str | None
type: str | None
version: str | None
class snap_python.schemas.store.refresh.StoreRefreshSnap(*, architectures: list[str] | None = None, base: str | None = None, common_ids: list[str] | None = None, confinement: str | None = None, created_at: ~pydantic.types.AwareDatetime | None = None, download: ~snap_python.schemas.store.info.Download | None = None, epoch: dict[str, list[int]] | None = None, gated_snap_ids: list[str] | None = None, license: str = 'unset', prices: dict[str, str] | None = None, resources: list[~snap_python.schemas.store.info.Resource] = <factory>, revision: int | None = None, snap_id: str | None = None, snap_yaml: str | None = None, type: str | None = None, version: str | None = None, contact: str | None = None, description: str | None = None, links: dict[str, list[str]] | None = None, media: list[~snap_python.schemas.common.Media] | None = None, name: str | None = None, private: bool | None = None, publisher: ~snap_python.schemas.common.Publisher | None = None, summary: str | None = None, title: str | None = None, unlisted: bool | None = None, website: str | None = None)

Bases: Snap, SnapRefreshFields

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class snap_python.schemas.store.search.ArchSearchItem(*, aliases: list[dict[str, str]] | None, apps: list[str], package_name: str, summary: str, title: str, version: str)

Bases: BaseModel

aliases: list[dict[str, str]] | None
apps: list[str]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

package_name: str
summary: str
title: str
version: str
class snap_python.schemas.store.search.ArchSearchResponse(*, results: list[ArchSearchItem], arch: str = 'wide')

Bases: BaseModel

arch: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

results: list[ArchSearchItem]
class snap_python.schemas.store.search.ErrorListItem(*, code: str, message: str)

Bases: BaseModel

code: str
message: str
model_config: ClassVar[ConfigDict] = {'exclude_unset': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class snap_python.schemas.store.search.PaginatedResponse(*, total: int, page: Annotated[int, Ge(ge=0)], limit: Annotated[int, Ge(ge=1), Le(le=100)])

Bases: BaseModel

property has_more: bool
limit: int
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

property next_page: int | None
page: int
property previous_page: int | None
total: int
class snap_python.schemas.store.search.PaginatedSnapSearchResponse(*, total: int, page: Annotated[int, Ge(ge=0)], limit: Annotated[int, Ge(ge=1), Le(le=100)], results: list[ArchSearchItem])

Bases: PaginatedResponse

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

results: list[ArchSearchItem]
class snap_python.schemas.store.search.SearchResponse(*, error_list: List[ErrorListItem] | None = None, results: List[SearchResult])

Bases: BaseModel

error_list: List[ErrorListItem] | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

results: List[SearchResult]
class snap_python.schemas.store.search.SearchResult(*, name: str, revision: Revision | None = None, snap: StoreSnap, snap_id: str)

Bases: BaseModel

classmethod from_installed_snap(installed_snap: InstalledSnap)
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str
revision: Revision | None
snap: StoreSnap
snap_id: str
class snap_python.schemas.store.search.SnapDetails(*, aliases: List[Dict] | None = None, anon_download_url: str, apps: List[str] | None = None, architecture: List[str], base: str | None = None, binary_filesize: int, channel: str, common_ids: List[str], confinement: str, contact: str | None = None, content: str | None = None, date_published: AwareDatetime, deltas: List[str] | None = None, description: str, developer_id: str, developer_name: str, developer_validation: str, download_sha3_384: str | None = None, download_sha512: str | None = None, download_url: str, epoch: str, gated_snap_ids: List[str] | None = None, icon_url: str, last_updated: AwareDatetime, license: str, links: Dict[str, Any], name: str, origin: str, package_name: str, prices: Dict[str, Any], private: bool, publisher: str, raitings_average: float = 0.0, release: List[str], revision: int, screenshot_urls: List[str], snap_id: str | None = None, summary: str | None = None, support_url: str | None = None, title: str | None = None, version: str | None = None, website: str | None = None)

Bases: BaseModel

aliases: List[Dict] | None
anon_download_url: str
apps: List[str] | None
architecture: List[str]
base: str | None
binary_filesize: int
channel: str
common_ids: List[str]
confinement: str
contact: str | None
content: str | None
date_published: AwareDatetime
deltas: List[str] | None
description: str
developer_id: str
developer_name: str
developer_validation: str
download_sha3_384: str | None
download_sha512: str | None
download_url: str
epoch: str
gated_snap_ids: List[str] | None
icon_url: str
last_updated: AwareDatetime
license: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str
origin: str
package_name: str
prices: Dict[str, Any]
private: bool
publisher: str
raitings_average: float
release: List[str]
revision: int
screenshot_urls: List[str]
snap_id: str | None
summary: str | None
support_url: str | None
title: str | None
version: str | None
website: str | None
class snap_python.schemas.store.track.TrackRevisionDetails(*, arch: str, base: str, channel: Channel, confinement: str, created_at: AwareDatetime, released_at: AwareDatetime, revision: int, risk: str, track: str, version: str)

Bases: BaseModel

Contains details for a specific track/risk/architecture

Raises:

ValueError: If the architecture is invalid.

arch: str
base: str
channel: Channel
confinement: str
created_at: AwareDatetime
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

released_at: AwareDatetime
revision: int
risk: str
track: str
classmethod validate_arch(value)
version: str
class snap_python.schemas.store.track.TrackRiskMap(*, amd64: TrackRevisionDetails | None = None, arm64: TrackRevisionDetails | None = None, armhf: TrackRevisionDetails | None = None, i386: TrackRevisionDetails | None = None, ppc64el: TrackRevisionDetails | None = None, s390x: TrackRevisionDetails | None = None, riscv64: TrackRevisionDetails | None = None)

Bases: BaseModel

Map of architectures to their revision details for a specific risk level.

amd64: TrackRevisionDetails | None
property architectures: list[str]

Return a list of architectures that have revisions.

arm64: TrackRevisionDetails | None
armhf: TrackRevisionDetails | None
i386: TrackRevisionDetails | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

ppc64el: TrackRevisionDetails | None
riscv64: TrackRevisionDetails | None
s390x: TrackRevisionDetails | None
snap_python.schemas.store.track.channel_map_to_current_track_map(channel_map: list[ChannelMapItem]) dict[str, dict[str, TrackRiskMap]]

Convert a list of ChannelMapItem to a map of track -> risk -> TrackRiskMap.