Regenerated with pythonv2 and newest spec

This commit is contained in:
Luke Hagar
2024-09-09 18:08:47 +00:00
parent 02226c3294
commit 6565d702c6
911 changed files with 49000 additions and 17210 deletions

View File

@@ -0,0 +1,632 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
from datetime import date
from enum import Enum
import httpx
from plex_api_client.types import BaseModel
from plex_api_client.utils import FieldMetadata, PathParamMetadata, QueryParamMetadata
import pydantic
from typing import List, Optional, TypedDict, Union
from typing_extensions import Annotated, NotRequired
class Tag(str, Enum):
r"""A key representing a specific tag within the section."""
ALL = "all"
UNWATCHED = "unwatched"
NEWEST = "newest"
RECENTLY_ADDED = "recentlyAdded"
RECENTLY_VIEWED = "recentlyViewed"
ON_DECK = "onDeck"
COLLECTION = "collection"
EDITION = "edition"
GENRE = "genre"
YEAR = "year"
DECADE = "decade"
DIRECTOR = "director"
ACTOR = "actor"
COUNTRY = "country"
CONTENT_RATING = "contentRating"
RATING = "rating"
RESOLUTION = "resolution"
FIRST_CHARACTER = "firstCharacter"
FOLDER = "folder"
class IncludeGuids(int, Enum):
r"""Adds the Guids object to the response"""
ZERO = 0
ONE = 1
class IncludeMeta(int, Enum):
r"""Adds the Meta object to the response"""
ZERO = 0
ONE = 1
class Type(int, Enum):
r"""The type of media to retrieve.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
"""
ONE = 1
TWO = 2
THREE = 3
FOUR = 4
class GetLibraryItemsRequestTypedDict(TypedDict):
section_key: int
r"""The unique key of the Plex library.
Note: This is unique in the context of the Plex server.
"""
tag: Tag
r"""A key representing a specific tag within the section."""
type: Type
r"""The type of media to retrieve.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
"""
include_guids: NotRequired[IncludeGuids]
r"""Adds the Guids object to the response
"""
include_meta: NotRequired[IncludeMeta]
r"""Adds the Meta object to the response
"""
x_plex_container_start: NotRequired[int]
r"""The index of the first item to return. If not specified, the first item will be returned.
If the number of items exceeds the limit, the response will be paginated.
By default this is 0
"""
x_plex_container_size: NotRequired[int]
r"""The number of items to return. If not specified, all items will be returned.
If the number of items exceeds the limit, the response will be paginated.
By default this is 50
"""
class GetLibraryItemsRequest(BaseModel):
section_key: Annotated[
int,
pydantic.Field(alias="sectionKey"),
FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
]
r"""The unique key of the Plex library.
Note: This is unique in the context of the Plex server.
"""
tag: Annotated[
Tag, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
]
r"""A key representing a specific tag within the section."""
type: Annotated[
Type, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
]
r"""The type of media to retrieve.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
"""
include_guids: Annotated[
Optional[IncludeGuids],
pydantic.Field(alias="includeGuids"),
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
r"""Adds the Guids object to the response
"""
include_meta: Annotated[
Optional[IncludeMeta],
pydantic.Field(alias="includeMeta"),
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
r"""Adds the Meta object to the response
"""
x_plex_container_start: Annotated[
Optional[int],
pydantic.Field(alias="X-Plex-Container-Start"),
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = 0
r"""The index of the first item to return. If not specified, the first item will be returned.
If the number of items exceeds the limit, the response will be paginated.
By default this is 0
"""
x_plex_container_size: Annotated[
Optional[int],
pydantic.Field(alias="X-Plex-Container-Size"),
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = 50
r"""The number of items to return. If not specified, all items will be returned.
If the number of items exceeds the limit, the response will be paginated.
By default this is 50
"""
LibrarySectionIDTypedDict = Union[int, str]
LibrarySectionID = Union[int, str]
class GetLibraryItemsPartTypedDict(TypedDict):
id: NotRequired[int]
key: NotRequired[str]
duration: NotRequired[int]
file: NotRequired[str]
size: NotRequired[int]
container: NotRequired[str]
video_profile: NotRequired[str]
class GetLibraryItemsPart(BaseModel):
id: Optional[int] = None
key: Optional[str] = None
duration: Optional[int] = None
file: Optional[str] = None
size: Optional[int] = None
container: Optional[str] = None
video_profile: Annotated[Optional[str], pydantic.Field(alias="videoProfile")] = None
class GetLibraryItemsMediaTypedDict(TypedDict):
id: NotRequired[int]
duration: NotRequired[int]
bitrate: NotRequired[int]
width: NotRequired[int]
height: NotRequired[int]
aspect_ratio: NotRequired[float]
audio_channels: NotRequired[int]
audio_codec: NotRequired[str]
video_codec: NotRequired[str]
video_resolution: NotRequired[str]
container: NotRequired[str]
video_frame_rate: NotRequired[str]
video_profile: NotRequired[str]
part: NotRequired[List[GetLibraryItemsPartTypedDict]]
class GetLibraryItemsMedia(BaseModel):
id: Optional[int] = None
duration: Optional[int] = None
bitrate: Optional[int] = None
width: Optional[int] = None
height: Optional[int] = None
aspect_ratio: Annotated[Optional[float], pydantic.Field(alias="aspectRatio")] = None
audio_channels: Annotated[Optional[int], pydantic.Field(alias="audioChannels")] = (
None
)
audio_codec: Annotated[Optional[str], pydantic.Field(alias="audioCodec")] = None
video_codec: Annotated[Optional[str], pydantic.Field(alias="videoCodec")] = None
video_resolution: Annotated[
Optional[str], pydantic.Field(alias="videoResolution")
] = None
container: Optional[str] = None
video_frame_rate: Annotated[
Optional[str], pydantic.Field(alias="videoFrameRate")
] = None
video_profile: Annotated[Optional[str], pydantic.Field(alias="videoProfile")] = None
part: Annotated[
Optional[List[GetLibraryItemsPart]], pydantic.Field(alias="Part")
] = None
class GetLibraryItemsGenreTypedDict(TypedDict):
tag: NotRequired[str]
class GetLibraryItemsGenre(BaseModel):
tag: Optional[str] = None
class GetLibraryItemsCountryTypedDict(TypedDict):
tag: NotRequired[str]
class GetLibraryItemsCountry(BaseModel):
tag: Optional[str] = None
class GetLibraryItemsDirectorTypedDict(TypedDict):
tag: NotRequired[str]
class GetLibraryItemsDirector(BaseModel):
tag: Optional[str] = None
class GetLibraryItemsWriterTypedDict(TypedDict):
tag: NotRequired[str]
class GetLibraryItemsWriter(BaseModel):
tag: Optional[str] = None
class GetLibraryItemsRoleTypedDict(TypedDict):
tag: NotRequired[str]
class GetLibraryItemsRole(BaseModel):
tag: Optional[str] = None
class GetLibraryItemsMetadataTypedDict(TypedDict):
rating_key: NotRequired[str]
key: NotRequired[str]
guid: NotRequired[str]
studio: NotRequired[str]
type: NotRequired[str]
title: NotRequired[str]
content_rating: NotRequired[str]
summary: NotRequired[str]
rating: NotRequired[float]
audience_rating: NotRequired[float]
year: NotRequired[int]
tagline: NotRequired[str]
thumb: NotRequired[str]
art: NotRequired[str]
duration: NotRequired[int]
originally_available_at: NotRequired[date]
added_at: NotRequired[int]
updated_at: NotRequired[int]
audience_rating_image: NotRequired[str]
chapter_source: NotRequired[str]
primary_extra_key: NotRequired[str]
rating_image: NotRequired[str]
grandparent_rating_key: NotRequired[str]
grandparent_guid: NotRequired[str]
grandparent_key: NotRequired[str]
grandparent_title: NotRequired[str]
grandparent_thumb: NotRequired[str]
grandparent_art: NotRequired[str]
grandparent_theme: NotRequired[str]
media: NotRequired[List[GetLibraryItemsMediaTypedDict]]
genre: NotRequired[List[GetLibraryItemsGenreTypedDict]]
country: NotRequired[List[GetLibraryItemsCountryTypedDict]]
director: NotRequired[List[GetLibraryItemsDirectorTypedDict]]
writer: NotRequired[List[GetLibraryItemsWriterTypedDict]]
role: NotRequired[List[GetLibraryItemsRoleTypedDict]]
title_sort: NotRequired[str]
view_count: NotRequired[int]
last_viewed_at: NotRequired[int]
original_title: NotRequired[str]
view_offset: NotRequired[int]
skip_count: NotRequired[int]
index: NotRequired[int]
theme: NotRequired[str]
leaf_count: NotRequired[int]
viewed_leaf_count: NotRequired[int]
child_count: NotRequired[int]
has_premium_extras: NotRequired[str]
has_premium_primary_extra: NotRequired[str]
parent_rating_key: NotRequired[str]
parent_guid: NotRequired[str]
parent_studio: NotRequired[str]
parent_key: NotRequired[str]
parent_title: NotRequired[str]
parent_index: NotRequired[int]
parent_year: NotRequired[int]
parent_thumb: NotRequired[str]
parent_theme: NotRequired[str]
class GetLibraryItemsMetadata(BaseModel):
rating_key: Annotated[Optional[str], pydantic.Field(alias="ratingKey")] = None
key: Optional[str] = None
guid: Optional[str] = None
studio: Optional[str] = None
type: Optional[str] = None
title: Optional[str] = None
content_rating: Annotated[Optional[str], pydantic.Field(alias="contentRating")] = (
None
)
summary: Optional[str] = None
rating: Optional[float] = None
audience_rating: Annotated[
Optional[float], pydantic.Field(alias="audienceRating")
] = None
year: Optional[int] = None
tagline: Optional[str] = None
thumb: Optional[str] = None
art: Optional[str] = None
duration: Optional[int] = None
originally_available_at: Annotated[
Optional[date], pydantic.Field(alias="originallyAvailableAt")
] = None
added_at: Annotated[Optional[int], pydantic.Field(alias="addedAt")] = None
updated_at: Annotated[Optional[int], pydantic.Field(alias="updatedAt")] = None
audience_rating_image: Annotated[
Optional[str], pydantic.Field(alias="audienceRatingImage")
] = None
chapter_source: Annotated[Optional[str], pydantic.Field(alias="chapterSource")] = (
None
)
primary_extra_key: Annotated[
Optional[str], pydantic.Field(alias="primaryExtraKey")
] = None
rating_image: Annotated[Optional[str], pydantic.Field(alias="ratingImage")] = None
grandparent_rating_key: Annotated[
Optional[str], pydantic.Field(alias="grandparentRatingKey")
] = None
grandparent_guid: Annotated[
Optional[str], pydantic.Field(alias="grandparentGuid")
] = None
grandparent_key: Annotated[
Optional[str], pydantic.Field(alias="grandparentKey")
] = None
grandparent_title: Annotated[
Optional[str], pydantic.Field(alias="grandparentTitle")
] = None
grandparent_thumb: Annotated[
Optional[str], pydantic.Field(alias="grandparentThumb")
] = None
grandparent_art: Annotated[
Optional[str], pydantic.Field(alias="grandparentArt")
] = None
grandparent_theme: Annotated[
Optional[str], pydantic.Field(alias="grandparentTheme")
] = None
media: Annotated[
Optional[List[GetLibraryItemsMedia]], pydantic.Field(alias="Media")
] = None
genre: Annotated[
Optional[List[GetLibraryItemsGenre]], pydantic.Field(alias="Genre")
] = None
country: Annotated[
Optional[List[GetLibraryItemsCountry]], pydantic.Field(alias="Country")
] = None
director: Annotated[
Optional[List[GetLibraryItemsDirector]], pydantic.Field(alias="Director")
] = None
writer: Annotated[
Optional[List[GetLibraryItemsWriter]], pydantic.Field(alias="Writer")
] = None
role: Annotated[
Optional[List[GetLibraryItemsRole]], pydantic.Field(alias="Role")
] = None
title_sort: Annotated[Optional[str], pydantic.Field(alias="titleSort")] = None
view_count: Annotated[Optional[int], pydantic.Field(alias="viewCount")] = None
last_viewed_at: Annotated[Optional[int], pydantic.Field(alias="lastViewedAt")] = (
None
)
original_title: Annotated[Optional[str], pydantic.Field(alias="originalTitle")] = (
None
)
view_offset: Annotated[Optional[int], pydantic.Field(alias="viewOffset")] = None
skip_count: Annotated[Optional[int], pydantic.Field(alias="skipCount")] = None
index: Optional[int] = None
theme: Optional[str] = None
leaf_count: Annotated[Optional[int], pydantic.Field(alias="leafCount")] = None
viewed_leaf_count: Annotated[
Optional[int], pydantic.Field(alias="viewedLeafCount")
] = None
child_count: Annotated[Optional[int], pydantic.Field(alias="childCount")] = None
has_premium_extras: Annotated[
Optional[str], pydantic.Field(alias="hasPremiumExtras")
] = None
has_premium_primary_extra: Annotated[
Optional[str], pydantic.Field(alias="hasPremiumPrimaryExtra")
] = None
parent_rating_key: Annotated[
Optional[str], pydantic.Field(alias="parentRatingKey")
] = None
parent_guid: Annotated[Optional[str], pydantic.Field(alias="parentGuid")] = None
parent_studio: Annotated[Optional[str], pydantic.Field(alias="parentStudio")] = None
parent_key: Annotated[Optional[str], pydantic.Field(alias="parentKey")] = None
parent_title: Annotated[Optional[str], pydantic.Field(alias="parentTitle")] = None
parent_index: Annotated[Optional[int], pydantic.Field(alias="parentIndex")] = None
parent_year: Annotated[Optional[int], pydantic.Field(alias="parentYear")] = None
parent_thumb: Annotated[Optional[str], pydantic.Field(alias="parentThumb")] = None
parent_theme: Annotated[Optional[str], pydantic.Field(alias="parentTheme")] = None
class GetLibraryItemsMediaContainerTypedDict(TypedDict):
size: NotRequired[int]
allow_sync: NotRequired[bool]
art: NotRequired[str]
identifier: NotRequired[str]
library_section_id: NotRequired[LibrarySectionIDTypedDict]
library_section_title: NotRequired[str]
library_section_uuid: NotRequired[str]
media_tag_prefix: NotRequired[str]
media_tag_version: NotRequired[int]
thumb: NotRequired[str]
title1: NotRequired[str]
title2: NotRequired[str]
view_group: NotRequired[str]
view_mode: NotRequired[int]
mixed_parents: NotRequired[bool]
metadata: NotRequired[List[GetLibraryItemsMetadataTypedDict]]
class GetLibraryItemsMediaContainer(BaseModel):
size: Optional[int] = None
allow_sync: Annotated[Optional[bool], pydantic.Field(alias="allowSync")] = None
art: Optional[str] = None
identifier: Optional[str] = None
library_section_id: Annotated[
Optional[LibrarySectionID], pydantic.Field(alias="librarySectionID")
] = None
library_section_title: Annotated[
Optional[str], pydantic.Field(alias="librarySectionTitle")
] = None
library_section_uuid: Annotated[
Optional[str], pydantic.Field(alias="librarySectionUUID")
] = None
media_tag_prefix: Annotated[
Optional[str], pydantic.Field(alias="mediaTagPrefix")
] = None
media_tag_version: Annotated[
Optional[int], pydantic.Field(alias="mediaTagVersion")
] = None
thumb: Optional[str] = None
title1: Optional[str] = None
title2: Optional[str] = None
view_group: Annotated[Optional[str], pydantic.Field(alias="viewGroup")] = None
view_mode: Annotated[Optional[int], pydantic.Field(alias="viewMode")] = None
mixed_parents: Annotated[Optional[bool], pydantic.Field(alias="mixedParents")] = (
None
)
metadata: Annotated[
Optional[List[GetLibraryItemsMetadata]], pydantic.Field(alias="Metadata")
] = None
class GetLibraryItemsResponseBodyTypedDict(TypedDict):
r"""The contents of the library by section and tag"""
media_container: NotRequired[GetLibraryItemsMediaContainerTypedDict]
class GetLibraryItemsResponseBody(BaseModel):
r"""The contents of the library by section and tag"""
media_container: Annotated[
Optional[GetLibraryItemsMediaContainer], pydantic.Field(alias="MediaContainer")
] = None
class GetLibraryItemsResponseTypedDict(TypedDict):
content_type: str
r"""HTTP response content type for this operation"""
status_code: int
r"""HTTP response status code for this operation"""
raw_response: httpx.Response
r"""Raw HTTP response; suitable for custom response parsing"""
object: NotRequired[GetLibraryItemsResponseBodyTypedDict]
r"""The contents of the library by section and tag"""
class GetLibraryItemsResponse(BaseModel):
content_type: str
r"""HTTP response content type for this operation"""
status_code: int
r"""HTTP response status code for this operation"""
raw_response: httpx.Response
r"""Raw HTTP response; suitable for custom response parsing"""
object: Optional[GetLibraryItemsResponseBody] = None
r"""The contents of the library by section and tag"""