ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.405.6

This commit is contained in:
speakeasybot
2025-02-08 00:09:11 +00:00
parent 1dff7df598
commit e6b7aa3eba
81 changed files with 2515 additions and 1052 deletions

File diff suppressed because one or more lines are too long

View File

@@ -12,7 +12,7 @@ generation:
auth: auth:
oAuth2ClientCredentialsEnabled: true oAuth2ClientCredentialsEnabled: true
swift: swift:
version: 0.9.11 version: 0.9.13
author: LukeHagar author: LukeHagar
description: Swift Client SDK Generated by Speakeasy description: Swift Client SDK Generated by Speakeasy
imports: imports:

View File

@@ -9,8 +9,8 @@ sources:
- main - main
plexapi: plexapi:
sourceNamespace: plexapi sourceNamespace: plexapi
sourceRevisionDigest: sha256:e6ab335dd91a4165f4510e4a3af8a55819c6310b7e66251266d2384376f3ccae sourceRevisionDigest: sha256:49536684a97842ea7c069f909012b31a22a046d8277aee47b50a334494bf2c64
sourceBlobDigest: sha256:89d1b1133e400c89f0d06efe5e5168f5ba25a413e1ab8380d442d6b233e2e5a9 sourceBlobDigest: sha256:eac671ea32ce31e1e558839153f7effef39bb35b4e461c6e95661d0eaf4ce1c8
tags: tags:
- latest - latest
- main - main
@@ -18,10 +18,10 @@ targets:
plexswift: plexswift:
source: plexapi source: plexapi
sourceNamespace: plexapi sourceNamespace: plexapi
sourceRevisionDigest: sha256:e6ab335dd91a4165f4510e4a3af8a55819c6310b7e66251266d2384376f3ccae sourceRevisionDigest: sha256:49536684a97842ea7c069f909012b31a22a046d8277aee47b50a334494bf2c64
sourceBlobDigest: sha256:89d1b1133e400c89f0d06efe5e5168f5ba25a413e1ab8380d442d6b233e2e5a9 sourceBlobDigest: sha256:eac671ea32ce31e1e558839153f7effef39bb35b4e461c6e95661d0eaf4ce1c8
codeSamplesNamespace: code-samples-swift-plexswift codeSamplesNamespace: code-samples-swift-plexswift
codeSamplesRevisionDigest: sha256:64579b8fbcfab80b7f0ffc43044c9ef8b89629cef77e28e9a3c4a75294c57ad7 codeSamplesRevisionDigest: sha256:cbda8e96fd8d266feec7c3938d440b67c9b5b6673392feec2cf5ac13b4bf98df
workflow: workflow:
workflowVersion: 1.0.0 workflowVersion: 1.0.0
speakeasyVersion: latest speakeasyVersion: latest

View File

@@ -62,7 +62,7 @@ You can add `plexswift` to your project directly in Xcode `(File > Add Packages.
```bash ```bash
dependencies: [ dependencies: [
.package(url: "https://github.com/LukeHagar/plexswift.git", .upToNextMajor(from: "0.9.11")) .package(url: "https://github.com/LukeHagar/plexswift.git", .upToNextMajor(from: "0.9.13"))
] ]
``` ```
<!-- End SDK Installation [installation] --> <!-- End SDK Installation [installation] -->
@@ -142,8 +142,9 @@ case .empty:
* [getSearchLibrary](docs/sdks/library/README.md#getsearchlibrary) - Search Library * [getSearchLibrary](docs/sdks/library/README.md#getsearchlibrary) - Search Library
* [getGenresLibrary](docs/sdks/library/README.md#getgenreslibrary) - Get Genres of library media * [getGenresLibrary](docs/sdks/library/README.md#getgenreslibrary) - Get Genres of library media
* [getCountriesLibrary](docs/sdks/library/README.md#getcountrieslibrary) - Get Countries of library media * [getCountriesLibrary](docs/sdks/library/README.md#getcountrieslibrary) - Get Countries of library media
* [getActorsLibrary](docs/sdks/library/README.md#getactorslibrary) - Get Actors of library media
* [getSearchAllLibraries](docs/sdks/library/README.md#getsearchalllibraries) - Search All Libraries * [getSearchAllLibraries](docs/sdks/library/README.md#getsearchalllibraries) - Search All Libraries
* [getMetaDataByRatingKey](docs/sdks/library/README.md#getmetadatabyratingkey) - Get Metadata by RatingKey * [getMediaMetaData](docs/sdks/library/README.md#getmediametadata) - Get Media Metadata
* [getMetadataChildren](docs/sdks/library/README.md#getmetadatachildren) - Get Items Children * [getMetadataChildren](docs/sdks/library/README.md#getmetadatachildren) - Get Items Children
* [getTopWatchedContent](docs/sdks/library/README.md#gettopwatchedcontent) - Get Top Watched Content * [getTopWatchedContent](docs/sdks/library/README.md#gettopwatchedcontent) - Get Top Watched Content
* [getOnDeck](docs/sdks/library/README.md#getondeck) - Get On Deck * [getOnDeck](docs/sdks/library/README.md#getondeck) - Get On Deck

View File

@@ -833,3 +833,13 @@ Based on:
- [swift v0.9.11] . - [swift v0.9.11] .
### Releases ### Releases
- [Swift Package Manager v0.9.11] https://github.com/LukeHagar/plexswift/releases/tag/v0.9.11 - . - [Swift Package Manager v0.9.11] https://github.com/LukeHagar/plexswift/releases/tag/v0.9.11 - .
## 2025-02-08 00:08:00
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.405.6 (2.428.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [swift v0.9.13] .
### Releases
- [Swift Package Manager v0.9.13] https://github.com/LukeHagar/plexswift/releases/tag/v0.9.13 - .

View File

@@ -118,14 +118,15 @@ case .empty:
- ``Operations/DeleteLibraryBadRequest`` - ``Operations/DeleteLibraryBadRequest``
- ``Operations/DeletePlaylistBadRequest`` - ``Operations/DeletePlaylistBadRequest``
- ``Operations/EnablePaperTrailBadRequest`` - ``Operations/EnablePaperTrailBadRequest``
- ``Operations/GetActorsLibraryBadRequest``
- ``Operations/GetAllLibrariesBadRequest`` - ``Operations/GetAllLibrariesBadRequest``
- ``Operations/GetBannerImageBadRequest`` - ``Operations/GetBannerImageBadRequest``
- ``Operations/GetCountriesLibraryBadRequest`` - ``Operations/GetCountriesLibraryBadRequest``
- ``Operations/GetGenresLibraryBadRequest`` - ``Operations/GetGenresLibraryBadRequest``
- ``Operations/GetLibraryDetailsBadRequest`` - ``Operations/GetLibraryDetailsBadRequest``
- ``Operations/GetLibraryItemsBadRequest`` - ``Operations/GetLibraryItemsBadRequest``
- ``Operations/GetMediaMetaDataBadRequest``
- ``Operations/GetMediaProvidersBadRequest`` - ``Operations/GetMediaProvidersBadRequest``
- ``Operations/GetMetaDataByRatingKeyBadRequest``
- ``Operations/GetRecentlyAddedLibraryBadRequest`` - ``Operations/GetRecentlyAddedLibraryBadRequest``
- ``Operations/GetRefreshLibraryMetadataBadRequest`` - ``Operations/GetRefreshLibraryMetadataBadRequest``
- ``Operations/GetSearchAllLibrariesBadRequest`` - ``Operations/GetSearchAllLibrariesBadRequest``
@@ -197,14 +198,15 @@ case .empty:
- ``Operations/DeleteLibraryResponse`` - ``Operations/DeleteLibraryResponse``
- ``Operations/DeletePlaylistResponse`` - ``Operations/DeletePlaylistResponse``
- ``Operations/EnablePaperTrailResponse`` - ``Operations/EnablePaperTrailResponse``
- ``Operations/GetActorsLibraryResponse``
- ``Operations/GetAllLibrariesResponse`` - ``Operations/GetAllLibrariesResponse``
- ``Operations/GetBannerImageResponse`` - ``Operations/GetBannerImageResponse``
- ``Operations/GetCountriesLibraryResponse`` - ``Operations/GetCountriesLibraryResponse``
- ``Operations/GetGenresLibraryResponse`` - ``Operations/GetGenresLibraryResponse``
- ``Operations/GetLibraryDetailsResponse`` - ``Operations/GetLibraryDetailsResponse``
- ``Operations/GetLibraryItemsResponse`` - ``Operations/GetLibraryItemsResponse``
- ``Operations/GetMediaMetaDataResponse``
- ``Operations/GetMediaProvidersResponse`` - ``Operations/GetMediaProvidersResponse``
- ``Operations/GetMetaDataByRatingKeyResponse``
- ``Operations/GetRecentlyAddedResponse`` - ``Operations/GetRecentlyAddedResponse``
- ``Operations/GetRecentlyAddedLibraryResponse`` - ``Operations/GetRecentlyAddedLibraryResponse``
- ``Operations/GetRefreshLibraryMetadataResponse`` - ``Operations/GetRefreshLibraryMetadataResponse``
@@ -348,6 +350,14 @@ case .empty:
- ``Operations/Friend`` - ``Operations/Friend``
- ``Operations/Genre`` - ``Operations/Genre``
- ``Operations/GeoData`` - ``Operations/GeoData``
- ``Operations/GetActorsLibraryDirectory``
- ``Operations/GetActorsLibraryErrors``
- ``Operations/GetActorsLibraryLibraryErrors``
- ``Operations/GetActorsLibraryMediaContainer``
- ``Operations/GetActorsLibraryQueryParamType``
- ``Operations/GetActorsLibraryRequest``
- ``Operations/GetActorsLibraryResponseBody``
- ``Operations/GetActorsLibraryUnauthorized``
- ``Operations/GetAllLibrariesDirectory`` - ``Operations/GetAllLibrariesDirectory``
- ``Operations/GetAllLibrariesErrors`` - ``Operations/GetAllLibrariesErrors``
- ``Operations/GetAllLibrariesLibraryErrors`` - ``Operations/GetAllLibrariesLibraryErrors``
@@ -363,6 +373,7 @@ case .empty:
- ``Operations/GetCountriesLibraryErrors`` - ``Operations/GetCountriesLibraryErrors``
- ``Operations/GetCountriesLibraryLibraryErrors`` - ``Operations/GetCountriesLibraryLibraryErrors``
- ``Operations/GetCountriesLibraryMediaContainer`` - ``Operations/GetCountriesLibraryMediaContainer``
- ``Operations/GetCountriesLibraryQueryParamType``
- ``Operations/GetCountriesLibraryRequest`` - ``Operations/GetCountriesLibraryRequest``
- ``Operations/GetCountriesLibraryResponseBody`` - ``Operations/GetCountriesLibraryResponseBody``
- ``Operations/GetCountriesLibraryUnauthorized`` - ``Operations/GetCountriesLibraryUnauthorized``
@@ -370,6 +381,7 @@ case .empty:
- ``Operations/GetGenresLibraryErrors`` - ``Operations/GetGenresLibraryErrors``
- ``Operations/GetGenresLibraryLibraryErrors`` - ``Operations/GetGenresLibraryLibraryErrors``
- ``Operations/GetGenresLibraryMediaContainer`` - ``Operations/GetGenresLibraryMediaContainer``
- ``Operations/GetGenresLibraryQueryParamType``
- ``Operations/GetGenresLibraryRequest`` - ``Operations/GetGenresLibraryRequest``
- ``Operations/GetGenresLibraryResponseBody`` - ``Operations/GetGenresLibraryResponseBody``
- ``Operations/GetGenresLibraryUnauthorized`` - ``Operations/GetGenresLibraryUnauthorized``
@@ -434,6 +446,24 @@ case .empty:
- ``Operations/GetLibraryItemsUltraBlurColors`` - ``Operations/GetLibraryItemsUltraBlurColors``
- ``Operations/GetLibraryItemsUnauthorized`` - ``Operations/GetLibraryItemsUnauthorized``
- ``Operations/GetLibraryItemsWriter`` - ``Operations/GetLibraryItemsWriter``
- ``Operations/GetMediaMetaDataCountry``
- ``Operations/GetMediaMetaDataDirector``
- ``Operations/GetMediaMetaDataErrors``
- ``Operations/GetMediaMetaDataGenre``
- ``Operations/GetMediaMetaDataImage``
- ``Operations/GetMediaMetaDataLibraryErrors``
- ``Operations/GetMediaMetaDataLocation``
- ``Operations/GetMediaMetaDataMedia``
- ``Operations/GetMediaMetaDataMediaContainer``
- ``Operations/GetMediaMetaDataMetadata``
- ``Operations/GetMediaMetaDataPart``
- ``Operations/GetMediaMetaDataRequest``
- ``Operations/GetMediaMetaDataResponseBody``
- ``Operations/GetMediaMetaDataRole``
- ``Operations/GetMediaMetaDataStream``
- ``Operations/GetMediaMetaDataUltraBlurColors``
- ``Operations/GetMediaMetaDataUnauthorized``
- ``Operations/GetMediaMetaDataWriter``
- ``Operations/GetMediaProvidersDirectory`` - ``Operations/GetMediaProvidersDirectory``
- ``Operations/GetMediaProvidersErrors`` - ``Operations/GetMediaProvidersErrors``
- ``Operations/GetMediaProvidersMediaContainer`` - ``Operations/GetMediaProvidersMediaContainer``
@@ -441,21 +471,6 @@ case .empty:
- ``Operations/GetMediaProvidersResponseBody`` - ``Operations/GetMediaProvidersResponseBody``
- ``Operations/GetMediaProvidersServerErrors`` - ``Operations/GetMediaProvidersServerErrors``
- ``Operations/GetMediaProvidersUnauthorized`` - ``Operations/GetMediaProvidersUnauthorized``
- ``Operations/GetMetaDataByRatingKeyCountry``
- ``Operations/GetMetaDataByRatingKeyDirector``
- ``Operations/GetMetaDataByRatingKeyErrors``
- ``Operations/GetMetaDataByRatingKeyGenre``
- ``Operations/GetMetaDataByRatingKeyLibraryErrors``
- ``Operations/GetMetaDataByRatingKeyMedia``
- ``Operations/GetMetaDataByRatingKeyMediaContainer``
- ``Operations/GetMetaDataByRatingKeyMetadata``
- ``Operations/GetMetaDataByRatingKeyPart``
- ``Operations/GetMetaDataByRatingKeyRequest``
- ``Operations/GetMetaDataByRatingKeyResponseBody``
- ``Operations/GetMetaDataByRatingKeyRole``
- ``Operations/GetMetaDataByRatingKeyStream``
- ``Operations/GetMetaDataByRatingKeyUnauthorized``
- ``Operations/GetMetaDataByRatingKeyWriter``
- ``Operations/GetRecentlyAddedActiveDirection`` - ``Operations/GetRecentlyAddedActiveDirection``
- ``Operations/GetRecentlyAddedDefaultDirection`` - ``Operations/GetRecentlyAddedDefaultDirection``
- ``Operations/GetRecentlyAddedField`` - ``Operations/GetRecentlyAddedField``
@@ -879,7 +894,7 @@ case .empty:
- ``Operations/QueryParamOnlyTransient`` - ``Operations/QueryParamOnlyTransient``
- ``Operations/QueryParamSmart`` - ``Operations/QueryParamSmart``
- ``Operations/QueryParamType`` - ``Operations/QueryParamType``
- ``Operations/Ratings`` - ``Operations/Rating``
- ``Operations/Release`` - ``Operations/Release``
- ``Operations/ResponseBody`` - ``Operations/ResponseBody``
- ``Operations/Restricted`` - ``Operations/Restricted``
@@ -894,6 +909,7 @@ case .empty:
- ``Operations/SharedServers`` - ``Operations/SharedServers``
- ``Operations/SharedSources`` - ``Operations/SharedSources``
- ``Operations/ShowOrdering`` - ``Operations/ShowOrdering``
- ``Operations/Similar``
- ``Operations/Skip`` - ``Operations/Skip``
- ``Operations/Smart`` - ``Operations/Smart``
- ``Operations/Sort`` - ``Operations/Sort``

View File

@@ -100,6 +100,15 @@ class _LibraryAPI: LibraryAPI {
) )
} }
public func getActorsLibrary(request: Operations.GetActorsLibraryRequest) async throws -> Response<Operations.GetActorsLibraryResponse> {
return try await client.makeRequest(
configureRequest: { configuration in
try configureGetActorsLibraryRequest(with: configuration, request: request)
},
handleResponse: handleGetActorsLibraryResponse
)
}
public func getSearchAllLibraries(request: Operations.GetSearchAllLibrariesRequest) async throws -> Response<Operations.GetSearchAllLibrariesResponse> { public func getSearchAllLibraries(request: Operations.GetSearchAllLibrariesRequest) async throws -> Response<Operations.GetSearchAllLibrariesResponse> {
return try await client.makeRequest( return try await client.makeRequest(
configureRequest: { configuration in configureRequest: { configuration in
@@ -109,12 +118,12 @@ class _LibraryAPI: LibraryAPI {
) )
} }
public func getMetaDataByRatingKey(request: Operations.GetMetaDataByRatingKeyRequest) async throws -> Response<Operations.GetMetaDataByRatingKeyResponse> { public func getMediaMetaData(request: Operations.GetMediaMetaDataRequest) async throws -> Response<Operations.GetMediaMetaDataResponse> {
return try await client.makeRequest( return try await client.makeRequest(
configureRequest: { configuration in configureRequest: { configuration in
try configureGetMetaDataByRatingKeyRequest(with: configuration, request: request) try configureGetMediaMetaDataRequest(with: configuration, request: request)
}, },
handleResponse: handleGetMetaDataByRatingKeyResponse handleResponse: handleGetMediaMetaDataResponse
) )
} }
@@ -212,6 +221,7 @@ private func configureGetGenresLibraryRequest(with configuration: URLRequestConf
configuration.path = "/library/sections/{sectionKey}/genre" configuration.path = "/library/sections/{sectionKey}/genre"
configuration.method = .get configuration.method = .get
configuration.pathParameterSerializable = request configuration.pathParameterSerializable = request
configuration.queryParameterSerializable = request
configuration.telemetryHeader = .userAgent configuration.telemetryHeader = .userAgent
} }
@@ -219,6 +229,15 @@ private func configureGetCountriesLibraryRequest(with configuration: URLRequestC
configuration.path = "/library/sections/{sectionKey}/country" configuration.path = "/library/sections/{sectionKey}/country"
configuration.method = .get configuration.method = .get
configuration.pathParameterSerializable = request configuration.pathParameterSerializable = request
configuration.queryParameterSerializable = request
configuration.telemetryHeader = .userAgent
}
private func configureGetActorsLibraryRequest(with configuration: URLRequestConfiguration, request: Operations.GetActorsLibraryRequest) throws {
configuration.path = "/library/sections/{sectionKey}/actor"
configuration.method = .get
configuration.pathParameterSerializable = request
configuration.queryParameterSerializable = request
configuration.telemetryHeader = .userAgent configuration.telemetryHeader = .userAgent
} }
@@ -230,10 +249,11 @@ private func configureGetSearchAllLibrariesRequest(with configuration: URLReques
configuration.telemetryHeader = .userAgent configuration.telemetryHeader = .userAgent
} }
private func configureGetMetaDataByRatingKeyRequest(with configuration: URLRequestConfiguration, request: Operations.GetMetaDataByRatingKeyRequest) throws { private func configureGetMediaMetaDataRequest(with configuration: URLRequestConfiguration, request: Operations.GetMediaMetaDataRequest) throws {
configuration.path = "/library/metadata/{ratingKey}" configuration.path = "/library/metadata/{ratingKey}"
configuration.method = .get configuration.method = .get
configuration.pathParameterSerializable = request configuration.pathParameterSerializable = request
configuration.queryParameterSerializable = request
configuration.telemetryHeader = .userAgent configuration.telemetryHeader = .userAgent
} }
@@ -566,6 +586,40 @@ private func handleGetCountriesLibraryResponse(response: Client.APIResponse) thr
return .empty return .empty
} }
private func handleGetActorsLibraryResponse(response: Client.APIResponse) throws -> Operations.GetActorsLibraryResponse {
let httpResponse = response.httpResponse
if httpResponse.statusCode == 200 {
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
do {
return .object(try JSONDecoder().decode(Operations.GetActorsLibraryResponseBody.self, from: data))
} catch {
throw ResponseHandlerError.failedToDecodeJSON(error)
}
}
} else if httpResponse.statusCode == 400 {
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
do {
return .badRequest(try JSONDecoder().decode(Operations.GetActorsLibraryBadRequest.self, from: data))
} catch {
throw ResponseHandlerError.failedToDecodeJSON(error)
}
}
} else if httpResponse.statusCode == 401 {
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
do {
return .unauthorized(try JSONDecoder().decode(Operations.GetActorsLibraryUnauthorized.self, from: data))
} catch {
throw ResponseHandlerError.failedToDecodeJSON(error)
}
}
} else if httpResponse.statusCode == 404 {
return .empty
}
return .empty
}
private func handleGetSearchAllLibrariesResponse(response: Client.APIResponse) throws -> Operations.GetSearchAllLibrariesResponse { private func handleGetSearchAllLibrariesResponse(response: Client.APIResponse) throws -> Operations.GetSearchAllLibrariesResponse {
let httpResponse = response.httpResponse let httpResponse = response.httpResponse
@@ -598,13 +652,13 @@ private func handleGetSearchAllLibrariesResponse(response: Client.APIResponse) t
return .empty return .empty
} }
private func handleGetMetaDataByRatingKeyResponse(response: Client.APIResponse) throws -> Operations.GetMetaDataByRatingKeyResponse { private func handleGetMediaMetaDataResponse(response: Client.APIResponse) throws -> Operations.GetMediaMetaDataResponse {
let httpResponse = response.httpResponse let httpResponse = response.httpResponse
if httpResponse.statusCode == 200 { if httpResponse.statusCode == 200 {
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data { if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
do { do {
return .object(try JSONDecoder().decode(Operations.GetMetaDataByRatingKeyResponseBody.self, from: data)) return .object(try JSONDecoder().decode(Operations.GetMediaMetaDataResponseBody.self, from: data))
} catch { } catch {
throw ResponseHandlerError.failedToDecodeJSON(error) throw ResponseHandlerError.failedToDecodeJSON(error)
} }
@@ -612,7 +666,7 @@ private func handleGetMetaDataByRatingKeyResponse(response: Client.APIResponse)
} else if httpResponse.statusCode == 400 { } else if httpResponse.statusCode == 400 {
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data { if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
do { do {
return .badRequest(try JSONDecoder().decode(Operations.GetMetaDataByRatingKeyBadRequest.self, from: data)) return .badRequest(try JSONDecoder().decode(Operations.GetMediaMetaDataBadRequest.self, from: data))
} catch { } catch {
throw ResponseHandlerError.failedToDecodeJSON(error) throw ResponseHandlerError.failedToDecodeJSON(error)
} }
@@ -620,11 +674,13 @@ private func handleGetMetaDataByRatingKeyResponse(response: Client.APIResponse)
} else if httpResponse.statusCode == 401 { } else if httpResponse.statusCode == 401 {
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data { if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
do { do {
return .unauthorized(try JSONDecoder().decode(Operations.GetMetaDataByRatingKeyUnauthorized.self, from: data)) return .unauthorized(try JSONDecoder().decode(Operations.GetMediaMetaDataUnauthorized.self, from: data))
} catch { } catch {
throw ResponseHandlerError.failedToDecodeJSON(error) throw ResponseHandlerError.failedToDecodeJSON(error)
} }
} }
} else if httpResponse.statusCode == 404 {
return .empty
} }
return .empty return .empty

View File

@@ -0,0 +1,14 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations.GetActorsLibraryQueryParamType: Serializable {
func serialize(with format: SerializableFormat) throws -> String {
return try rawValue.serialize(with: format)
}
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
return [QueryParameter(key: [], serialized: try serialize(with: format))]
}
}

View File

@@ -0,0 +1,37 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations.GetActorsLibraryRequest: Serializable {
func serialize(with format: SerializableFormat) throws -> String {
switch format {
case .path:
return try serializePathParameterSerializable(self, with: format)
case .query:
return try serializeQueryParameterSerializable(self, with: format)
case .header, .multipart, .form:
throw SerializationError.invalidSerializationParameter(type: "Operations.GetActorsLibraryRequest", format: format.formatDescription)
}
}
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
return try serializedQueryParameters(with: nil, formatOverride: format)
}
}
extension Operations.GetActorsLibraryRequest: PathParameterSerializable {
func serializedPathParameters(formatOverride: SerializableFormat?) throws -> [String: String] {
return [
"sectionKey": try sectionKey.serialize(with: formatOverride ?? .path(explode: false)),
].compactMapValues { $0 }
}
}
extension Operations.GetActorsLibraryRequest: QueryParameterSerializable {
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
let builder = QueryParameterBuilder()
try builder.addQueryParameters(from: type, named: "type", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
return builder.build()
}
}

View File

@@ -0,0 +1,14 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations.GetCountriesLibraryQueryParamType: Serializable {
func serialize(with format: SerializableFormat) throws -> String {
return try rawValue.serialize(with: format)
}
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
return [QueryParameter(key: [], serialized: try serialize(with: format))]
}
}

View File

@@ -8,10 +8,16 @@ extension Operations.GetCountriesLibraryRequest: Serializable {
switch format { switch format {
case .path: case .path:
return try serializePathParameterSerializable(self, with: format) return try serializePathParameterSerializable(self, with: format)
case .query, .header, .multipart, .form: case .query:
return try serializeQueryParameterSerializable(self, with: format)
case .header, .multipart, .form:
throw SerializationError.invalidSerializationParameter(type: "Operations.GetCountriesLibraryRequest", format: format.formatDescription) throw SerializationError.invalidSerializationParameter(type: "Operations.GetCountriesLibraryRequest", format: format.formatDescription)
} }
} }
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
return try serializedQueryParameters(with: nil, formatOverride: format)
}
} }
extension Operations.GetCountriesLibraryRequest: PathParameterSerializable { extension Operations.GetCountriesLibraryRequest: PathParameterSerializable {
@@ -21,3 +27,11 @@ extension Operations.GetCountriesLibraryRequest: PathParameterSerializable {
].compactMapValues { $0 } ].compactMapValues { $0 }
} }
} }
extension Operations.GetCountriesLibraryRequest: QueryParameterSerializable {
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
let builder = QueryParameterBuilder()
try builder.addQueryParameters(from: type, named: "type", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
return builder.build()
}
}

View File

@@ -0,0 +1,14 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations.GetGenresLibraryQueryParamType: Serializable {
func serialize(with format: SerializableFormat) throws -> String {
return try rawValue.serialize(with: format)
}
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
return [QueryParameter(key: [], serialized: try serialize(with: format))]
}
}

View File

@@ -8,10 +8,16 @@ extension Operations.GetGenresLibraryRequest: Serializable {
switch format { switch format {
case .path: case .path:
return try serializePathParameterSerializable(self, with: format) return try serializePathParameterSerializable(self, with: format)
case .query, .header, .multipart, .form: case .query:
return try serializeQueryParameterSerializable(self, with: format)
case .header, .multipart, .form:
throw SerializationError.invalidSerializationParameter(type: "Operations.GetGenresLibraryRequest", format: format.formatDescription) throw SerializationError.invalidSerializationParameter(type: "Operations.GetGenresLibraryRequest", format: format.formatDescription)
} }
} }
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
return try serializedQueryParameters(with: nil, formatOverride: format)
}
} }
extension Operations.GetGenresLibraryRequest: PathParameterSerializable { extension Operations.GetGenresLibraryRequest: PathParameterSerializable {
@@ -21,3 +27,11 @@ extension Operations.GetGenresLibraryRequest: PathParameterSerializable {
].compactMapValues { $0 } ].compactMapValues { $0 }
} }
} }
extension Operations.GetGenresLibraryRequest: QueryParameterSerializable {
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
let builder = QueryParameterBuilder()
try builder.addQueryParameters(from: type, named: "type", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
return builder.build()
}
}

View File

@@ -32,9 +32,9 @@ extension Operations.GetLibraryItemsRequest: PathParameterSerializable {
extension Operations.GetLibraryItemsRequest: QueryParameterSerializable { extension Operations.GetLibraryItemsRequest: QueryParameterSerializable {
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] { func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
let builder = QueryParameterBuilder() let builder = QueryParameterBuilder()
try builder.addQueryParameters(from: type, named: "type", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
try builder.addQueryParameters(from: includeGuids, named: "includeGuids", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults) try builder.addQueryParameters(from: includeGuids, named: "includeGuids", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
try builder.addQueryParameters(from: includeMeta, named: "includeMeta", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults) try builder.addQueryParameters(from: includeMeta, named: "includeMeta", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
try builder.addQueryParameters(from: type, named: "type", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
try builder.addQueryParameters(from: xPlexContainerSize, named: "X-Plex-Container-Size", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults) try builder.addQueryParameters(from: xPlexContainerSize, named: "X-Plex-Container-Size", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
try builder.addQueryParameters(from: xPlexContainerStart, named: "X-Plex-Container-Start", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults) try builder.addQueryParameters(from: xPlexContainerStart, named: "X-Plex-Container-Start", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
return builder.build() return builder.build()

View File

@@ -0,0 +1,49 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations.GetMediaMetaDataRequest: Serializable {
func serialize(with format: SerializableFormat) throws -> String {
switch format {
case .path:
return try serializePathParameterSerializable(self, with: format)
case .query:
return try serializeQueryParameterSerializable(self, with: format)
case .header, .multipart, .form:
throw SerializationError.invalidSerializationParameter(type: "Operations.GetMediaMetaDataRequest", format: format.formatDescription)
}
}
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
return try serializedQueryParameters(with: nil, formatOverride: format)
}
}
extension Operations.GetMediaMetaDataRequest: PathParameterSerializable {
func serializedPathParameters(formatOverride: SerializableFormat?) throws -> [String: String] {
return [
"ratingKey": try ratingKey.serialize(with: formatOverride ?? .path(explode: false)),
].compactMapValues { $0 }
}
}
extension Operations.GetMediaMetaDataRequest: QueryParameterSerializable {
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
let builder = QueryParameterBuilder()
try builder.addQueryParameters(from: asyncAugmentMetadata, named: "asyncAugmentMetadata", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
try builder.addQueryParameters(from: asyncCheckFiles, named: "asyncCheckFiles", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
try builder.addQueryParameters(from: asyncRefreshAnalysis, named: "asyncRefreshAnalysis", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
try builder.addQueryParameters(from: asyncRefreshLocalMediaAgent, named: "asyncRefreshLocalMediaAgent", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
try builder.addQueryParameters(from: includeChapters, named: "includeChapters", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
try builder.addQueryParameters(from: includeConcerts, named: "includeConcerts", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
try builder.addQueryParameters(from: includeExternalMedia, named: "includeExternalMedia", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
try builder.addQueryParameters(from: includeExtras, named: "includeExtras", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
try builder.addQueryParameters(from: includeOnDeck, named: "includeOnDeck", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
try builder.addQueryParameters(from: includePopularLeaves, named: "includePopularLeaves", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
try builder.addQueryParameters(from: includePreferences, named: "includePreferences", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
try builder.addQueryParameters(from: includeReviews, named: "includeReviews", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
try builder.addQueryParameters(from: includeStations, named: "includeStations", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
return builder.build()
}
}

View File

@@ -1,23 +0,0 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations.GetMetaDataByRatingKeyRequest: Serializable {
func serialize(with format: SerializableFormat) throws -> String {
switch format {
case .path:
return try serializePathParameterSerializable(self, with: format)
case .query, .header, .multipart, .form:
throw SerializationError.invalidSerializationParameter(type: "Operations.GetMetaDataByRatingKeyRequest", format: format.formatDescription)
}
}
}
extension Operations.GetMetaDataByRatingKeyRequest: PathParameterSerializable {
func serializedPathParameters(formatOverride: SerializableFormat?) throws -> [String: String] {
return [
"ratingKey": try ratingKey.serialize(with: formatOverride ?? .path(explode: false)),
].compactMapValues { $0 }
}
}

View File

@@ -4,18 +4,18 @@ import Foundation
extension Operations { extension Operations {
/// Bad Request - A parameter was not specified, or was specified incorrectly. /// Bad Request - A parameter was not specified, or was specified incorrectly.
public struct GetMetaDataByRatingKeyBadRequest { public struct GetActorsLibraryBadRequest {
public let errors: [Operations.GetMetaDataByRatingKeyErrors]? public let errors: [Operations.GetActorsLibraryErrors]?
/// Creates a request model with the specified parameters /// Creates a request model with the specified parameters
/// ///
/// ///
public init(errors: [Operations.GetMetaDataByRatingKeyErrors]? = nil) { public init(errors: [Operations.GetActorsLibraryErrors]? = nil) {
self.errors = errors self.errors = errors
} }
}} }}
extension Operations.GetMetaDataByRatingKeyBadRequest: Codable { extension Operations.GetActorsLibraryBadRequest: Codable {
enum CodingKeys: String, CodingKey { enum CodingKeys: String, CodingKey {
case errors case errors
} }

View File

@@ -0,0 +1,40 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetActorsLibraryDirectory {
/// A fast lookup key for the actor relative url.
public let fastKey: String
/// A unique key representing the actor.
public let key: String
/// URL for the thumbnail image of the actor.
public let thumb: String
/// The name of the actor.
public let title: String
/// Creates an object with the specified parameters
///
/// - Parameter fastKey: A fast lookup key for the actor relative url.
/// - Parameter key: A unique key representing the actor.
/// - Parameter thumb: URL for the thumbnail image of the actor.
/// - Parameter title: The name of the actor.
///
public init(fastKey: String, key: String, thumb: String, title: String) {
self.fastKey = fastKey
self.key = key
self.thumb = thumb
self.title = title
}
}}
extension Operations.GetActorsLibraryDirectory: Codable {
enum CodingKeys: String, CodingKey {
case fastKey
case key
case thumb
case title
}
}

View File

@@ -4,7 +4,7 @@ import Foundation
extension Operations { extension Operations {
/// A model object /// A model object
public struct GetMetaDataByRatingKeyErrors { public struct GetActorsLibraryErrors {
public let code: Int? public let code: Int?
public let message: String? public let message: String?
public let status: Int? public let status: Int?
@@ -19,7 +19,7 @@ extension Operations {
} }
}} }}
extension Operations.GetMetaDataByRatingKeyErrors: Codable { extension Operations.GetActorsLibraryErrors: Codable {
enum CodingKeys: String, CodingKey { enum CodingKeys: String, CodingKey {
case code case code
case message case message

View File

@@ -4,7 +4,7 @@ import Foundation
extension Operations { extension Operations {
/// A model object /// A model object
public struct GetMetaDataByRatingKeyLibraryErrors { public struct GetActorsLibraryLibraryErrors {
public let code: Int? public let code: Int?
public let message: String? public let message: String?
public let status: Int? public let status: Int?
@@ -19,7 +19,7 @@ extension Operations {
} }
}} }}
extension Operations.GetMetaDataByRatingKeyLibraryErrors: Codable { extension Operations.GetActorsLibraryLibraryErrors: Codable {
enum CodingKeys: String, CodingKey { enum CodingKeys: String, CodingKey {
case code case code
case message case message

View File

@@ -0,0 +1,123 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetActorsLibraryMediaContainer {
/// Indicates whether syncing is allowed.
public let allowSync: Bool
/// URL for the background artwork of the media container.
public let art: String
/// An plugin identifier for the media container.
public let identifier: String
/// The prefix used for media tag resource paths.
public let mediaTagPrefix: String
/// The version number for media tags.
public let mediaTagVersion: Int
/// Specifies whether caching is disabled.
public let nocache: Bool
@DecimalSerialized
public private(set) var size: Double
/// URL for the thumbnail image of the media container.
public let thumb: String
/// The primary title of the media container.
public let title1: String
/// The secondary title of the media container.
public let title2: String
/// Identifier for the view group layout.
public let viewGroup: String
/// Identifier for the view mode.
public let viewMode: String
/// An array of actor entries for media items.
public let directory: [Operations.GetActorsLibraryDirectory]?
/// Creates an object with the specified parameters
///
/// - Parameter allowSync: Indicates whether syncing is allowed.
/// - Parameter art: URL for the background artwork of the media container.
/// - Parameter identifier: An plugin identifier for the media container.
/// - Parameter mediaTagPrefix: The prefix used for media tag resource paths.
/// - Parameter mediaTagVersion: The version number for media tags.
/// - Parameter nocache: Specifies whether caching is disabled.
/// - Parameter thumb: URL for the thumbnail image of the media container.
/// - Parameter title1: The primary title of the media container.
/// - Parameter title2: The secondary title of the media container.
/// - Parameter viewGroup: Identifier for the view group layout.
/// - Parameter viewMode: Identifier for the view mode.
/// - Parameter directory: An array of actor entries for media items.
///
public init(allowSync: Bool, art: String, identifier: String, mediaTagPrefix: String, mediaTagVersion: Int, nocache: Bool, size: Double, thumb: String, title1: String, title2: String, viewGroup: String, viewMode: String, directory: [Operations.GetActorsLibraryDirectory]? = nil) {
self.allowSync = allowSync
self.art = art
self.identifier = identifier
self.mediaTagPrefix = mediaTagPrefix
self.mediaTagVersion = mediaTagVersion
self.nocache = nocache
self._size = DecimalSerialized<Double>(wrappedValue: size)
self.thumb = thumb
self.title1 = title1
self.title2 = title2
self.viewGroup = viewGroup
self.viewMode = viewMode
self.directory = directory
}
}}
extension Operations.GetActorsLibraryMediaContainer: Codable {
enum CodingKeys: String, CodingKey {
case allowSync
case art
case identifier
case mediaTagPrefix
case mediaTagVersion
case nocache
case size
case thumb
case title1
case title2
case viewGroup
case viewMode
case directory = "Directory"
}
public init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
self.allowSync = try container.decode(Bool.self, forKey: .allowSync)
self.art = try container.decode(String.self, forKey: .art)
self.identifier = try container.decode(String.self, forKey: .identifier)
self.mediaTagPrefix = try container.decode(String.self, forKey: .mediaTagPrefix)
self.mediaTagVersion = try container.decode(Int.self, forKey: .mediaTagVersion)
self.nocache = try container.decode(Bool.self, forKey: .nocache)
self._size = try container.decode(DecimalSerialized<Double>.self, forKey: .size)
self.thumb = try container.decode(String.self, forKey: .thumb)
self.title1 = try container.decode(String.self, forKey: .title1)
self.title2 = try container.decode(String.self, forKey: .title2)
self.viewGroup = try container.decode(String.self, forKey: .viewGroup)
self.viewMode = try container.decode(String.self, forKey: .viewMode)
self.directory = try container.decodeIfPresent([Operations.GetActorsLibraryDirectory].self, forKey: .directory)
}
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(self.allowSync, forKey: .allowSync)
try container.encode(self.art, forKey: .art)
try container.encode(self.identifier, forKey: .identifier)
try container.encode(self.mediaTagPrefix, forKey: .mediaTagPrefix)
try container.encode(self.mediaTagVersion, forKey: .mediaTagVersion)
try container.encode(self.nocache, forKey: .nocache)
try container.encode(self._size, forKey: .size)
try container.encode(self.thumb, forKey: .thumb)
try container.encode(self.title1, forKey: .title1)
try container.encode(self.title2, forKey: .title2)
try container.encode(self.viewGroup, forKey: .viewGroup)
try container.encode(self.viewMode, forKey: .viewMode)
try container.encodeIfPresent(self.directory, forKey: .directory)
}
}
extension Operations.GetActorsLibraryMediaContainer {
var sizeWrapper: DecimalSerialized<Double> {
return _size
}
}

View File

@@ -0,0 +1,21 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// The type of media to retrieve or filter by.
/// 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
///
public enum GetActorsLibraryQueryParamType: Int, Codable, APIValue {
case movie = 1
case tvShow = 2
case season = 3
case episode = 4
case audio = 8
case album = 9
case track = 10
}}

View File

@@ -0,0 +1,38 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetActorsLibraryRequest: APIValue {
/// The unique key of the Plex library.
/// Note: This is unique in the context of the Plex server.
///
public let sectionKey: Int
/// The type of media to retrieve or filter by.
/// 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
///
public let type: Operations.GetActorsLibraryQueryParamType
/// Creates an object with the specified parameters
///
/// - Parameter sectionKey: The unique key of the Plex library.
/// Note: This is unique in the context of the Plex server.
///
/// - Parameter type: The type of media to retrieve or filter by.
/// 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
///
///
public init(sectionKey: Int, type: Operations.GetActorsLibraryQueryParamType) {
self.sectionKey = sectionKey
self.type = type
}
}}

View File

@@ -4,11 +4,11 @@ import Foundation
extension Operations { extension Operations {
/// A response model /// A response model
public enum GetMetaDataByRatingKeyResponse { public enum GetActorsLibraryResponse {
case empty case empty
case badRequest(Operations.GetMetaDataByRatingKeyBadRequest) case badRequest(Operations.GetActorsLibraryBadRequest)
case object(Operations.GetMetaDataByRatingKeyResponseBody) case object(Operations.GetActorsLibraryResponseBody)
case unauthorized(Operations.GetMetaDataByRatingKeyUnauthorized) case unauthorized(Operations.GetActorsLibraryUnauthorized)
var isEmpty: Bool { var isEmpty: Bool {
if case .empty = self { if case .empty = self {
@@ -18,21 +18,21 @@ extension Operations {
} }
} }
public func badRequest() throws -> Operations.GetMetaDataByRatingKeyBadRequest { public func badRequest() throws -> Operations.GetActorsLibraryBadRequest {
guard case .badRequest(let value) = self else { guard case .badRequest(let value) = self else {
throw PlexswiftError.missingResponseData throw PlexswiftError.missingResponseData
} }
return value return value
} }
public func object() throws -> Operations.GetMetaDataByRatingKeyResponseBody { public func object() throws -> Operations.GetActorsLibraryResponseBody {
guard case .object(let value) = self else { guard case .object(let value) = self else {
throw PlexswiftError.missingResponseData throw PlexswiftError.missingResponseData
} }
return value return value
} }
public func unauthorized() throws -> Operations.GetMetaDataByRatingKeyUnauthorized { public func unauthorized() throws -> Operations.GetActorsLibraryUnauthorized {
guard case .unauthorized(let value) = self else { guard case .unauthorized(let value) = self else {
throw PlexswiftError.missingResponseData throw PlexswiftError.missingResponseData
} }

View File

@@ -0,0 +1,23 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// Successful response containing media container data.
public struct GetActorsLibraryResponseBody {
public let mediaContainer: Operations.GetActorsLibraryMediaContainer?
/// Creates an object with the specified parameters
///
///
public init(mediaContainer: Operations.GetActorsLibraryMediaContainer? = nil) {
self.mediaContainer = mediaContainer
}
}}
extension Operations.GetActorsLibraryResponseBody: Codable {
enum CodingKeys: String, CodingKey {
case mediaContainer = "MediaContainer"
}
}

View File

@@ -4,18 +4,18 @@ import Foundation
extension Operations { extension Operations {
/// Unauthorized - Returned if the X-Plex-Token is missing from the header or query. /// Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
public struct GetMetaDataByRatingKeyUnauthorized { public struct GetActorsLibraryUnauthorized {
public let errors: [Operations.GetMetaDataByRatingKeyLibraryErrors]? public let errors: [Operations.GetActorsLibraryLibraryErrors]?
/// Creates an object with the specified parameters /// Creates an object with the specified parameters
/// ///
/// ///
public init(errors: [Operations.GetMetaDataByRatingKeyLibraryErrors]? = nil) { public init(errors: [Operations.GetActorsLibraryLibraryErrors]? = nil) {
self.errors = errors self.errors = errors
} }
}} }}
extension Operations.GetMetaDataByRatingKeyUnauthorized: Codable { extension Operations.GetActorsLibraryUnauthorized: Codable {
enum CodingKeys: String, CodingKey { enum CodingKeys: String, CodingKey {
case errors case errors
} }

View File

@@ -0,0 +1,21 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// The type of media to retrieve or filter by.
/// 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
///
public enum GetCountriesLibraryQueryParamType: Int, Codable, APIValue {
case movie = 1
case tvShow = 2
case season = 3
case episode = 4
case audio = 8
case album = 9
case track = 10
}}

View File

@@ -9,14 +9,30 @@ extension Operations {
/// Note: This is unique in the context of the Plex server. /// Note: This is unique in the context of the Plex server.
/// ///
public let sectionKey: Int public let sectionKey: Int
/// The type of media to retrieve or filter by.
/// 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
///
public let type: Operations.GetCountriesLibraryQueryParamType
/// Creates an object with the specified parameters /// Creates an object with the specified parameters
/// ///
/// - Parameter sectionKey: The unique key of the Plex library. /// - Parameter sectionKey: The unique key of the Plex library.
/// Note: This is unique in the context of the Plex server. /// Note: This is unique in the context of the Plex server.
/// ///
/// - Parameter type: The type of media to retrieve or filter by.
/// 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
/// ///
public init(sectionKey: Int) { ///
public init(sectionKey: Int, type: Operations.GetCountriesLibraryQueryParamType) {
self.sectionKey = sectionKey self.sectionKey = sectionKey
self.type = type
} }
}} }}

View File

@@ -0,0 +1,21 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// The type of media to retrieve or filter by.
/// 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
///
public enum GetGenresLibraryQueryParamType: Int, Codable, APIValue {
case movie = 1
case tvShow = 2
case season = 3
case episode = 4
case audio = 8
case album = 9
case track = 10
}}

View File

@@ -9,14 +9,30 @@ extension Operations {
/// Note: This is unique in the context of the Plex server. /// Note: This is unique in the context of the Plex server.
/// ///
public let sectionKey: Int public let sectionKey: Int
/// The type of media to retrieve or filter by.
/// 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
///
public let type: Operations.GetGenresLibraryQueryParamType
/// Creates an object with the specified parameters /// Creates an object with the specified parameters
/// ///
/// - Parameter sectionKey: The unique key of the Plex library. /// - Parameter sectionKey: The unique key of the Plex library.
/// Note: This is unique in the context of the Plex server. /// Note: This is unique in the context of the Plex server.
/// ///
/// - Parameter type: The type of media to retrieve or filter by.
/// 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
/// ///
public init(sectionKey: Int) { ///
public init(sectionKey: Int, type: Operations.GetGenresLibraryQueryParamType) {
self.sectionKey = sectionKey self.sectionKey = sectionKey
self.type = type
} }
}} }}

View File

@@ -3,7 +3,7 @@
import Foundation import Foundation
extension Operations { extension Operations {
/// The type of media to retrieve. /// The type of media to retrieve or filter by.
/// 1 = movie /// 1 = movie
/// 2 = show /// 2 = show
/// 3 = season /// 3 = season

View File

@@ -11,20 +11,20 @@ extension Operations {
public let sectionKey: Int public let sectionKey: Int
/// A key representing a specific tag within the section. /// A key representing a specific tag within the section.
public let tag: Operations.Tag public let tag: Operations.Tag
/// Adds the Guids object to the response /// The type of media to retrieve or filter by.
///
public let includeGuids: Operations.IncludeGuids?
/// Adds the Meta object to the response
///
public let includeMeta: Operations.GetLibraryItemsQueryParamIncludeMeta?
/// The type of media to retrieve.
/// 1 = movie /// 1 = movie
/// 2 = show /// 2 = show
/// 3 = season /// 3 = season
/// 4 = episode /// 4 = episode
/// E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries /// E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
/// ///
public let type: Operations.GetLibraryItemsQueryParamType? public let type: Operations.GetLibraryItemsQueryParamType
/// Adds the Guids object to the response
///
public let includeGuids: Operations.IncludeGuids?
/// Adds the Meta object to the response
///
public let includeMeta: Operations.GetLibraryItemsQueryParamIncludeMeta?
/// The number of items to return. If not specified, all items will be returned. /// 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. /// If the number of items exceeds the limit, the response will be paginated.
/// By default this is 50 /// By default this is 50
@@ -42,17 +42,17 @@ extension Operations {
/// Note: This is unique in the context of the Plex server. /// Note: This is unique in the context of the Plex server.
/// ///
/// - Parameter tag: A key representing a specific tag within the section. /// - Parameter tag: A key representing a specific tag within the section.
/// - Parameter includeGuids: Adds the Guids object to the response /// - Parameter type: The type of media to retrieve or filter by.
///
/// - Parameter includeMeta: Adds the Meta object to the response
///
/// - Parameter type: The type of media to retrieve.
/// 1 = movie /// 1 = movie
/// 2 = show /// 2 = show
/// 3 = season /// 3 = season
/// 4 = episode /// 4 = episode
/// E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries /// E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
/// ///
/// - Parameter includeGuids: Adds the Guids object to the response
///
/// - Parameter includeMeta: Adds the Meta object to the response
///
/// - Parameter xPlexContainerSize: The number of items to return. If not specified, all items will be returned. /// - Parameter xPlexContainerSize: 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. /// If the number of items exceeds the limit, the response will be paginated.
/// By default this is 50 /// By default this is 50
@@ -62,12 +62,12 @@ extension Operations {
/// By default this is 0 /// By default this is 0
/// ///
/// ///
public init(sectionKey: Int, tag: Operations.Tag, includeGuids: Operations.IncludeGuids? = nil, includeMeta: Operations.GetLibraryItemsQueryParamIncludeMeta? = nil, type: Operations.GetLibraryItemsQueryParamType? = nil, xPlexContainerSize: Int? = nil, xPlexContainerStart: Int? = nil) { public init(sectionKey: Int, tag: Operations.Tag, type: Operations.GetLibraryItemsQueryParamType, includeGuids: Operations.IncludeGuids? = nil, includeMeta: Operations.GetLibraryItemsQueryParamIncludeMeta? = nil, xPlexContainerSize: Int? = nil, xPlexContainerStart: Int? = nil) {
self.sectionKey = sectionKey self.sectionKey = sectionKey
self.tag = tag self.tag = tag
self.type = type
self.includeGuids = includeGuids self.includeGuids = includeGuids
self.includeMeta = includeMeta self.includeMeta = includeMeta
self.type = type
self.xPlexContainerSize = xPlexContainerSize self.xPlexContainerSize = xPlexContainerSize
self.xPlexContainerStart = xPlexContainerStart self.xPlexContainerStart = xPlexContainerStart
} }

View File

@@ -0,0 +1,23 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// Bad Request - A parameter was not specified, or was specified incorrectly.
public struct GetMediaMetaDataBadRequest {
public let errors: [Operations.GetMediaMetaDataErrors]?
/// Creates a request model with the specified parameters
///
///
public init(errors: [Operations.GetMediaMetaDataErrors]? = nil) {
self.errors = errors
}
}}
extension Operations.GetMediaMetaDataBadRequest: Codable {
enum CodingKeys: String, CodingKey {
case errors
}
}

View File

@@ -0,0 +1,35 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetMediaMetaDataCountry {
/// The filter string for the country.
public let filter: String
/// The unique country identifier.
public let id: Int
/// The country name.
public let tag: String
/// Creates an object with the specified parameters
///
/// - Parameter filter: The filter string for the country.
/// - Parameter id: The unique country identifier.
/// - Parameter tag: The country name.
///
public init(filter: String, id: Int, tag: String) {
self.filter = filter
self.id = id
self.tag = tag
}
}}
extension Operations.GetMediaMetaDataCountry: Codable {
enum CodingKeys: String, CodingKey {
case filter
case id
case tag
}
}

View File

@@ -0,0 +1,50 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetMediaMetaDataDirector {
/// The filter string for the role.
public let filter: String
/// The unique role identifier.
public let id: Int
/// The actor's name.
public let tag: String
/// A key associated with the actor tag.
public let tagKey: String
/// The character name or role.
public let role: String?
/// URL for the role thumbnail image.
public let thumb: String?
/// Creates an object with the specified parameters
///
/// - Parameter filter: The filter string for the role.
/// - Parameter id: The unique role identifier.
/// - Parameter tag: The actor's name.
/// - Parameter tagKey: A key associated with the actor tag.
/// - Parameter role: The character name or role.
/// - Parameter thumb: URL for the role thumbnail image.
///
public init(filter: String, id: Int, tag: String, tagKey: String, role: String? = nil, thumb: String? = nil) {
self.filter = filter
self.id = id
self.tag = tag
self.tagKey = tagKey
self.role = role
self.thumb = thumb
}
}}
extension Operations.GetMediaMetaDataDirector: Codable {
enum CodingKeys: String, CodingKey {
case filter
case id
case tag
case tagKey
case role
case thumb
}
}

View File

@@ -0,0 +1,29 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetMediaMetaDataErrors {
public let code: Int?
public let message: String?
public let status: Int?
/// Creates an object with the specified parameters
///
///
public init(code: Int? = nil, message: String? = nil, status: Int? = nil) {
self.code = code
self.message = message
self.status = status
}
}}
extension Operations.GetMediaMetaDataErrors: Codable {
enum CodingKeys: String, CodingKey {
case code
case message
case status
}
}

View File

@@ -0,0 +1,35 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetMediaMetaDataGenre {
/// The filter string for the genre.
public let filter: String
/// The unique genre identifier.
public let id: Int
/// The genre name.
public let tag: String
/// Creates an object with the specified parameters
///
/// - Parameter filter: The filter string for the genre.
/// - Parameter id: The unique genre identifier.
/// - Parameter tag: The genre name.
///
public init(filter: String, id: Int, tag: String) {
self.filter = filter
self.id = id
self.tag = tag
}
}}
extension Operations.GetMediaMetaDataGenre: Codable {
enum CodingKeys: String, CodingKey {
case filter
case id
case tag
}
}

View File

@@ -0,0 +1,35 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetMediaMetaDataImage {
/// Alternate text for the image.
public let alt: String
/// The type of image (e.g., coverPoster, background, clearLogo).
public let type: String
/// The URL of the image.
public let url: String
/// Creates an object with the specified parameters
///
/// - Parameter alt: Alternate text for the image.
/// - Parameter type: The type of image (e.g., coverPoster, background, clearLogo).
/// - Parameter url: The URL of the image.
///
public init(alt: String, type: String, url: String) {
self.alt = alt
self.type = type
self.url = url
}
}}
extension Operations.GetMediaMetaDataImage: Codable {
enum CodingKeys: String, CodingKey {
case alt
case type
case url
}
}

View File

@@ -0,0 +1,29 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetMediaMetaDataLibraryErrors {
public let code: Int?
public let message: String?
public let status: Int?
/// Creates an object with the specified parameters
///
///
public init(code: Int? = nil, message: String? = nil, status: Int? = nil) {
self.code = code
self.message = message
self.status = status
}
}}
extension Operations.GetMediaMetaDataLibraryErrors: Codable {
enum CodingKeys: String, CodingKey {
case code
case message
case status
}
}

View File

@@ -0,0 +1,25 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetMediaMetaDataLocation {
/// The file path for the location.
public let path: String
/// Creates an object with the specified parameters
///
/// - Parameter path: The file path for the location.
///
public init(path: String) {
self.path = path
}
}}
extension Operations.GetMediaMetaDataLocation: Codable {
enum CodingKeys: String, CodingKey {
case path
}
}

View File

@@ -0,0 +1,139 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetMediaMetaDataMedia {
/// Aspect ratio of the video.
@DecimalSerialized
public private(set) var aspectRatio: Double
/// Number of audio channels.
public let audioChannels: Int
/// Audio codec used.
public let audioCodec: String
/// Bitrate in bits per second.
public let bitrate: Int
/// File container type.
public let container: String
/// Duration of the media in milliseconds.
public let duration: Int
/// Indicates whether voice activity is detected.
public let hasVoiceActivity: Bool
/// Video height in pixels.
public let height: Int
/// Unique media identifier.
public let id: Int
/// An array of parts for this media item.
public let part: [Operations.GetMediaMetaDataPart]
/// Video codec used.
public let videoCodec: String
/// Frame rate of the video (e.g., 24p).
public let videoFrameRate: String
/// Video profile (e.g., main 10).
public let videoProfile: String
/// Video resolution (e.g., 4k).
public let videoResolution: String
/// Video width in pixels.
public let width: Int
/// Creates an object with the specified parameters
///
/// - Parameter aspectRatio: Aspect ratio of the video.
/// - Parameter audioChannels: Number of audio channels.
/// - Parameter audioCodec: Audio codec used.
/// - Parameter bitrate: Bitrate in bits per second.
/// - Parameter container: File container type.
/// - Parameter duration: Duration of the media in milliseconds.
/// - Parameter hasVoiceActivity: Indicates whether voice activity is detected.
/// - Parameter height: Video height in pixels.
/// - Parameter id: Unique media identifier.
/// - Parameter part: An array of parts for this media item.
/// - Parameter videoCodec: Video codec used.
/// - Parameter videoFrameRate: Frame rate of the video (e.g., 24p).
/// - Parameter videoProfile: Video profile (e.g., main 10).
/// - Parameter videoResolution: Video resolution (e.g., 4k).
/// - Parameter width: Video width in pixels.
///
public init(aspectRatio: Double, audioChannels: Int, audioCodec: String, bitrate: Int, container: String, duration: Int, hasVoiceActivity: Bool, height: Int, id: Int, part: [Operations.GetMediaMetaDataPart], videoCodec: String, videoFrameRate: String, videoProfile: String, videoResolution: String, width: Int) {
self._aspectRatio = DecimalSerialized<Double>(wrappedValue: aspectRatio)
self.audioChannels = audioChannels
self.audioCodec = audioCodec
self.bitrate = bitrate
self.container = container
self.duration = duration
self.hasVoiceActivity = hasVoiceActivity
self.height = height
self.id = id
self.part = part
self.videoCodec = videoCodec
self.videoFrameRate = videoFrameRate
self.videoProfile = videoProfile
self.videoResolution = videoResolution
self.width = width
}
}}
extension Operations.GetMediaMetaDataMedia: Codable {
enum CodingKeys: String, CodingKey {
case aspectRatio
case audioChannels
case audioCodec
case bitrate
case container
case duration
case hasVoiceActivity
case height
case id
case part = "Part"
case videoCodec
case videoFrameRate
case videoProfile
case videoResolution
case width
}
public init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
self._aspectRatio = try container.decode(DecimalSerialized<Double>.self, forKey: .aspectRatio)
self.audioChannels = try container.decode(Int.self, forKey: .audioChannels)
self.audioCodec = try container.decode(String.self, forKey: .audioCodec)
self.bitrate = try container.decode(Int.self, forKey: .bitrate)
self.container = try container.decode(String.self, forKey: .container)
self.duration = try container.decode(Int.self, forKey: .duration)
self.hasVoiceActivity = try container.decode(Bool.self, forKey: .hasVoiceActivity)
self.height = try container.decode(Int.self, forKey: .height)
self.id = try container.decode(Int.self, forKey: .id)
self.part = try container.decode([Operations.GetMediaMetaDataPart].self, forKey: .part)
self.videoCodec = try container.decode(String.self, forKey: .videoCodec)
self.videoFrameRate = try container.decode(String.self, forKey: .videoFrameRate)
self.videoProfile = try container.decode(String.self, forKey: .videoProfile)
self.videoResolution = try container.decode(String.self, forKey: .videoResolution)
self.width = try container.decode(Int.self, forKey: .width)
}
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(self._aspectRatio, forKey: .aspectRatio)
try container.encode(self.audioChannels, forKey: .audioChannels)
try container.encode(self.audioCodec, forKey: .audioCodec)
try container.encode(self.bitrate, forKey: .bitrate)
try container.encode(self.container, forKey: .container)
try container.encode(self.duration, forKey: .duration)
try container.encode(self.hasVoiceActivity, forKey: .hasVoiceActivity)
try container.encode(self.height, forKey: .height)
try container.encode(self.id, forKey: .id)
try container.encode(self.part, forKey: .part)
try container.encode(self.videoCodec, forKey: .videoCodec)
try container.encode(self.videoFrameRate, forKey: .videoFrameRate)
try container.encode(self.videoProfile, forKey: .videoProfile)
try container.encode(self.videoResolution, forKey: .videoResolution)
try container.encode(self.width, forKey: .width)
}
}
extension Operations.GetMediaMetaDataMedia {
var aspectRatioWrapper: DecimalSerialized<Double> {
return _aspectRatio
}
}

View File

@@ -0,0 +1,95 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetMediaMetaDataMediaContainer {
/// Indicates whether syncing is allowed.
public let allowSync: Bool
/// An plugin identifier for the media container.
public let identifier: String
/// The unique identifier for the library section.
public let librarySectionID: Int
/// The title of the library section.
public let librarySectionTitle: String
/// The prefix used for media tag resource paths.
public let mediaTagPrefix: String
/// The version number for media tags.
public let mediaTagVersion: Int
/// An array of metadata items.
public let metadata: [Operations.GetMediaMetaDataMetadata]
@DecimalSerialized
public private(set) var size: Double
/// The universally unique identifier for the library section.
public let librarySectionUUID: String?
/// Creates an object with the specified parameters
///
/// - Parameter allowSync: Indicates whether syncing is allowed.
/// - Parameter identifier: An plugin identifier for the media container.
/// - Parameter librarySectionID: The unique identifier for the library section.
/// - Parameter librarySectionTitle: The title of the library section.
/// - Parameter mediaTagPrefix: The prefix used for media tag resource paths.
/// - Parameter mediaTagVersion: The version number for media tags.
/// - Parameter metadata: An array of metadata items.
/// - Parameter librarySectionUUID: The universally unique identifier for the library section.
///
public init(allowSync: Bool, identifier: String, librarySectionID: Int, librarySectionTitle: String, mediaTagPrefix: String, mediaTagVersion: Int, metadata: [Operations.GetMediaMetaDataMetadata], size: Double, librarySectionUUID: String? = nil) {
self.allowSync = allowSync
self.identifier = identifier
self.librarySectionID = librarySectionID
self.librarySectionTitle = librarySectionTitle
self.mediaTagPrefix = mediaTagPrefix
self.mediaTagVersion = mediaTagVersion
self.metadata = metadata
self._size = DecimalSerialized<Double>(wrappedValue: size)
self.librarySectionUUID = librarySectionUUID
}
}}
extension Operations.GetMediaMetaDataMediaContainer: Codable {
enum CodingKeys: String, CodingKey {
case allowSync
case identifier
case librarySectionID
case librarySectionTitle
case mediaTagPrefix
case mediaTagVersion
case metadata = "Metadata"
case size
case librarySectionUUID
}
public init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
self.allowSync = try container.decode(Bool.self, forKey: .allowSync)
self.identifier = try container.decode(String.self, forKey: .identifier)
self.librarySectionID = try container.decode(Int.self, forKey: .librarySectionID)
self.librarySectionTitle = try container.decode(String.self, forKey: .librarySectionTitle)
self.mediaTagPrefix = try container.decode(String.self, forKey: .mediaTagPrefix)
self.mediaTagVersion = try container.decode(Int.self, forKey: .mediaTagVersion)
self.metadata = try container.decode([Operations.GetMediaMetaDataMetadata].self, forKey: .metadata)
self._size = try container.decode(DecimalSerialized<Double>.self, forKey: .size)
self.librarySectionUUID = try container.decodeIfPresent(String.self, forKey: .librarySectionUUID)
}
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(self.allowSync, forKey: .allowSync)
try container.encode(self.identifier, forKey: .identifier)
try container.encode(self.librarySectionID, forKey: .librarySectionID)
try container.encode(self.librarySectionTitle, forKey: .librarySectionTitle)
try container.encode(self.mediaTagPrefix, forKey: .mediaTagPrefix)
try container.encode(self.mediaTagVersion, forKey: .mediaTagVersion)
try container.encode(self.metadata, forKey: .metadata)
try container.encode(self._size, forKey: .size)
try container.encodeIfPresent(self.librarySectionUUID, forKey: .librarySectionUUID)
}
}
extension Operations.GetMediaMetaDataMediaContainer {
var sizeWrapper: DecimalSerialized<Double> {
return _size
}
}

View File

@@ -0,0 +1,443 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetMediaMetaDataMetadata {
/// Unix timestamp when the item was added.
public let addedAt: Int
/// URL of the art image.
public let art: String
/// The audience rating for the content.
@DecimalSerialized
public private(set) var audienceRating: Double
/// The URL for the audience rating image.
public let audienceRatingImage: String
/// The content rating (e.g., TV-MA).
public let contentRating: String
/// Duration of the content in milliseconds.
public let duration: Int
/// The globally unique identifier for the item.
public let guid: String
/// An array of GUID objects.
public let guids: [Operations.Guids]
/// An array of image objects.
public let image: [Operations.GetMediaMetaDataImage]
/// The API key to access metadata details.
public let key: String
/// The ID of the library section.
public let librarySectionID: Int
/// The key of the library section.
public let librarySectionKey: String
/// The title of the library section.
public let librarySectionTitle: String
/// The original release date.
@DateOnly
public private(set) var originallyAvailableAt: Date
/// An array of rating objects.
public let rating: [Operations.Rating]
/// The rating key of the metadata item.
public let ratingKey: String
/// A summary of the content.
public let summary: String
/// URL of the thumbnail image.
public let thumb: String
/// The title of the content.
public let title: String
/// The type of content (e.g., show, movie).
public let type: String
public let ultraBlurColors: Operations.GetMediaMetaDataUltraBlurColors
/// Unix timestamp when the item was last updated.
public let updatedAt: Int
/// The release year.
public let year: Int
public let chapterSource: String?
/// The number of child items.
public let childCount: Int?
/// An array of country tags.
public let country: [Operations.GetMediaMetaDataCountry]?
/// An array of Director roles.
public let director: [Operations.GetMediaMetaDataDirector]?
/// An array of genre tags.
public let genre: [Operations.GetMediaMetaDataGenre]?
/// The URL of the grandparent's art image.
public let grandparentArt: String?
/// A GUID identifying the grandparent entity (e.g., show).
public let grandparentGuid: String?
/// A key identifying the grandparent metadata in the library.
public let grandparentKey: String?
/// The rating key of the grandparent of this metadata item.
public let grandparentRatingKey: String?
/// A URL-friendly identifier (slug) for the grandparent entity.
public let grandparentSlug: String?
/// The URL of the grandparent's thumbnail image.
public let grandparentThumb: String?
/// The title of the grandparent entity (typically the show's title).
public let grandparentTitle: String?
/// The index or order of the item.
public let index: Int?
/// Unix timestamp of when the item was last viewed.
public let lastViewedAt: Int?
/// The total number of episodes (or leaves).
public let leafCount: Int?
/// An array of location objects.
public let location: [Operations.GetMediaMetaDataLocation]?
public let media: [Operations.GetMediaMetaDataMedia]?
/// The original title of the content.
public let originalTitle: String?
/// A GUID identifying the parent entity (e.g., season) for the item.
public let parentGuid: String?
/// The index number of the parent entity, which could indicate its order or position.
public let parentIndex: Int?
/// A key identifying the parent metadata in the library.
public let parentKey: String?
/// The rating key of the parent of this metadata item.
public let parentRatingKey: String?
/// The URL of the parent's thumbnail image.
public let parentThumb: String?
/// The title of the parent entity (typically the season's title).
public let parentTitle: String?
public let primaryExtraKey: String?
/// An array of Writer roles.
public let producer: [Operations.Producer]?
/// An array of Actor roles.
public let role: [Operations.GetMediaMetaDataRole]?
/// An array of similar content objects.
public let similar: [Operations.Similar]?
/// The number of times the item has been skipped.
public let skipCount: Int?
/// A URL-friendly identifier for the item.
public let slug: String?
/// The studio that produced the content.
public let studio: String?
/// The tagline of the content.
public let tagline: String?
/// URL of the theme image.
public let theme: String?
/// The number of times the item has been viewed.
public let viewCount: Int?
/// The number of episodes that have been viewed.
public let viewedLeafCount: Int?
/// An array of Writer roles.
public let writer: [Operations.GetMediaMetaDataWriter]?
/// Creates an object with the specified parameters
///
/// - Parameter addedAt: Unix timestamp when the item was added.
/// - Parameter art: URL of the art image.
/// - Parameter audienceRating: The audience rating for the content.
/// - Parameter audienceRatingImage: The URL for the audience rating image.
/// - Parameter contentRating: The content rating (e.g., TV-MA).
/// - Parameter duration: Duration of the content in milliseconds.
/// - Parameter guid: The globally unique identifier for the item.
/// - Parameter guids: An array of GUID objects.
/// - Parameter image: An array of image objects.
/// - Parameter key: The API key to access metadata details.
/// - Parameter librarySectionID: The ID of the library section.
/// - Parameter librarySectionKey: The key of the library section.
/// - Parameter librarySectionTitle: The title of the library section.
/// - Parameter originallyAvailableAt: The original release date.
/// - Parameter rating: An array of rating objects.
/// - Parameter ratingKey: The rating key of the metadata item.
/// - Parameter summary: A summary of the content.
/// - Parameter thumb: URL of the thumbnail image.
/// - Parameter title: The title of the content.
/// - Parameter type: The type of content (e.g., show, movie).
/// - Parameter updatedAt: Unix timestamp when the item was last updated.
/// - Parameter year: The release year.
/// - Parameter childCount: The number of child items.
/// - Parameter country: An array of country tags.
/// - Parameter director: An array of Director roles.
/// - Parameter genre: An array of genre tags.
/// - Parameter grandparentArt: The URL of the grandparent's art image.
/// - Parameter grandparentGuid: A GUID identifying the grandparent entity (e.g., show).
/// - Parameter grandparentKey: A key identifying the grandparent metadata in the library.
/// - Parameter grandparentRatingKey: The rating key of the grandparent of this metadata item.
/// - Parameter grandparentSlug: A URL-friendly identifier (slug) for the grandparent entity.
/// - Parameter grandparentThumb: The URL of the grandparent's thumbnail image.
/// - Parameter grandparentTitle: The title of the grandparent entity (typically the show's title).
/// - Parameter index: The index or order of the item.
/// - Parameter lastViewedAt: Unix timestamp of when the item was last viewed.
/// - Parameter leafCount: The total number of episodes (or leaves).
/// - Parameter location: An array of location objects.
/// - Parameter originalTitle: The original title of the content.
/// - Parameter parentGuid: A GUID identifying the parent entity (e.g., season) for the item.
/// - Parameter parentIndex: The index number of the parent entity, which could indicate its order or position.
/// - Parameter parentKey: A key identifying the parent metadata in the library.
/// - Parameter parentRatingKey: The rating key of the parent of this metadata item.
/// - Parameter parentThumb: The URL of the parent's thumbnail image.
/// - Parameter parentTitle: The title of the parent entity (typically the season's title).
/// - Parameter producer: An array of Writer roles.
/// - Parameter role: An array of Actor roles.
/// - Parameter similar: An array of similar content objects.
/// - Parameter skipCount: The number of times the item has been skipped.
/// - Parameter slug: A URL-friendly identifier for the item.
/// - Parameter studio: The studio that produced the content.
/// - Parameter tagline: The tagline of the content.
/// - Parameter theme: URL of the theme image.
/// - Parameter viewCount: The number of times the item has been viewed.
/// - Parameter viewedLeafCount: The number of episodes that have been viewed.
/// - Parameter writer: An array of Writer roles.
///
public init(addedAt: Int, art: String, audienceRating: Double, audienceRatingImage: String, contentRating: String, duration: Int, guid: String, guids: [Operations.Guids], image: [Operations.GetMediaMetaDataImage], key: String, librarySectionID: Int, librarySectionKey: String, librarySectionTitle: String, originallyAvailableAt: Date, rating: [Operations.Rating], ratingKey: String, summary: String, thumb: String, title: String, type: String, ultraBlurColors: Operations.GetMediaMetaDataUltraBlurColors, updatedAt: Int, year: Int, chapterSource: String? = nil, childCount: Int? = nil, country: [Operations.GetMediaMetaDataCountry]? = nil, director: [Operations.GetMediaMetaDataDirector]? = nil, genre: [Operations.GetMediaMetaDataGenre]? = nil, grandparentArt: String? = nil, grandparentGuid: String? = nil, grandparentKey: String? = nil, grandparentRatingKey: String? = nil, grandparentSlug: String? = nil, grandparentThumb: String? = nil, grandparentTitle: String? = nil, index: Int? = nil, lastViewedAt: Int? = nil, leafCount: Int? = nil, location: [Operations.GetMediaMetaDataLocation]? = nil, media: [Operations.GetMediaMetaDataMedia]? = nil, originalTitle: String? = nil, parentGuid: String? = nil, parentIndex: Int? = nil, parentKey: String? = nil, parentRatingKey: String? = nil, parentThumb: String? = nil, parentTitle: String? = nil, primaryExtraKey: String? = nil, producer: [Operations.Producer]? = nil, role: [Operations.GetMediaMetaDataRole]? = nil, similar: [Operations.Similar]? = nil, skipCount: Int? = nil, slug: String? = nil, studio: String? = nil, tagline: String? = nil, theme: String? = nil, viewCount: Int? = nil, viewedLeafCount: Int? = nil, writer: [Operations.GetMediaMetaDataWriter]? = nil) {
self.addedAt = addedAt
self.art = art
self._audienceRating = DecimalSerialized<Double>(wrappedValue: audienceRating)
self.audienceRatingImage = audienceRatingImage
self.contentRating = contentRating
self.duration = duration
self.guid = guid
self.guids = guids
self.image = image
self.key = key
self.librarySectionID = librarySectionID
self.librarySectionKey = librarySectionKey
self.librarySectionTitle = librarySectionTitle
self._originallyAvailableAt = DateOnly<Date>(wrappedValue: originallyAvailableAt)
self.rating = rating
self.ratingKey = ratingKey
self.summary = summary
self.thumb = thumb
self.title = title
self.type = type
self.ultraBlurColors = ultraBlurColors
self.updatedAt = updatedAt
self.year = year
self.chapterSource = chapterSource
self.childCount = childCount
self.country = country
self.director = director
self.genre = genre
self.grandparentArt = grandparentArt
self.grandparentGuid = grandparentGuid
self.grandparentKey = grandparentKey
self.grandparentRatingKey = grandparentRatingKey
self.grandparentSlug = grandparentSlug
self.grandparentThumb = grandparentThumb
self.grandparentTitle = grandparentTitle
self.index = index
self.lastViewedAt = lastViewedAt
self.leafCount = leafCount
self.location = location
self.media = media
self.originalTitle = originalTitle
self.parentGuid = parentGuid
self.parentIndex = parentIndex
self.parentKey = parentKey
self.parentRatingKey = parentRatingKey
self.parentThumb = parentThumb
self.parentTitle = parentTitle
self.primaryExtraKey = primaryExtraKey
self.producer = producer
self.role = role
self.similar = similar
self.skipCount = skipCount
self.slug = slug
self.studio = studio
self.tagline = tagline
self.theme = theme
self.viewCount = viewCount
self.viewedLeafCount = viewedLeafCount
self.writer = writer
}
}}
extension Operations.GetMediaMetaDataMetadata: Codable {
enum CodingKeys: String, CodingKey {
case addedAt
case art
case audienceRating
case audienceRatingImage
case contentRating
case duration
case guid
case guids = "Guid"
case image = "Image"
case key
case librarySectionID
case librarySectionKey
case librarySectionTitle
case originallyAvailableAt
case rating = "Rating"
case ratingKey
case summary
case thumb
case title
case type
case ultraBlurColors = "UltraBlurColors"
case updatedAt
case year
case chapterSource
case childCount
case country = "Country"
case director = "Director"
case genre = "Genre"
case grandparentArt
case grandparentGuid
case grandparentKey
case grandparentRatingKey
case grandparentSlug
case grandparentThumb
case grandparentTitle
case index
case lastViewedAt
case leafCount
case location = "Location"
case media = "Media"
case originalTitle
case parentGuid
case parentIndex
case parentKey
case parentRatingKey
case parentThumb
case parentTitle
case primaryExtraKey
case producer = "Producer"
case role = "Role"
case similar = "Similar"
case skipCount
case slug
case studio
case tagline
case theme
case viewCount
case viewedLeafCount
case writer = "Writer"
}
public init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
self.addedAt = try container.decode(Int.self, forKey: .addedAt)
self.art = try container.decode(String.self, forKey: .art)
self._audienceRating = try container.decode(DecimalSerialized<Double>.self, forKey: .audienceRating)
self.audienceRatingImage = try container.decode(String.self, forKey: .audienceRatingImage)
self.contentRating = try container.decode(String.self, forKey: .contentRating)
self.duration = try container.decode(Int.self, forKey: .duration)
self.guid = try container.decode(String.self, forKey: .guid)
self.guids = try container.decode([Operations.Guids].self, forKey: .guids)
self.image = try container.decode([Operations.GetMediaMetaDataImage].self, forKey: .image)
self.key = try container.decode(String.self, forKey: .key)
self.librarySectionID = try container.decode(Int.self, forKey: .librarySectionID)
self.librarySectionKey = try container.decode(String.self, forKey: .librarySectionKey)
self.librarySectionTitle = try container.decode(String.self, forKey: .librarySectionTitle)
self._originallyAvailableAt = try container.decode(DateOnly<Date>.self, forKey: .originallyAvailableAt)
self.rating = try container.decode([Operations.Rating].self, forKey: .rating)
self.ratingKey = try container.decode(String.self, forKey: .ratingKey)
self.summary = try container.decode(String.self, forKey: .summary)
self.thumb = try container.decode(String.self, forKey: .thumb)
self.title = try container.decode(String.self, forKey: .title)
self.type = try container.decode(String.self, forKey: .type)
self.ultraBlurColors = try container.decode(Operations.GetMediaMetaDataUltraBlurColors.self, forKey: .ultraBlurColors)
self.updatedAt = try container.decode(Int.self, forKey: .updatedAt)
self.year = try container.decode(Int.self, forKey: .year)
self.chapterSource = try container.decodeIfPresent(String.self, forKey: .chapterSource)
self.childCount = try container.decodeIfPresent(Int.self, forKey: .childCount)
self.country = try container.decodeIfPresent([Operations.GetMediaMetaDataCountry].self, forKey: .country)
self.director = try container.decodeIfPresent([Operations.GetMediaMetaDataDirector].self, forKey: .director)
self.genre = try container.decodeIfPresent([Operations.GetMediaMetaDataGenre].self, forKey: .genre)
self.grandparentArt = try container.decodeIfPresent(String.self, forKey: .grandparentArt)
self.grandparentGuid = try container.decodeIfPresent(String.self, forKey: .grandparentGuid)
self.grandparentKey = try container.decodeIfPresent(String.self, forKey: .grandparentKey)
self.grandparentRatingKey = try container.decodeIfPresent(String.self, forKey: .grandparentRatingKey)
self.grandparentSlug = try container.decodeIfPresent(String.self, forKey: .grandparentSlug)
self.grandparentThumb = try container.decodeIfPresent(String.self, forKey: .grandparentThumb)
self.grandparentTitle = try container.decodeIfPresent(String.self, forKey: .grandparentTitle)
self.index = try container.decodeIfPresent(Int.self, forKey: .index)
self.lastViewedAt = try container.decodeIfPresent(Int.self, forKey: .lastViewedAt)
self.leafCount = try container.decodeIfPresent(Int.self, forKey: .leafCount)
self.location = try container.decodeIfPresent([Operations.GetMediaMetaDataLocation].self, forKey: .location)
self.media = try container.decodeIfPresent([Operations.GetMediaMetaDataMedia].self, forKey: .media)
self.originalTitle = try container.decodeIfPresent(String.self, forKey: .originalTitle)
self.parentGuid = try container.decodeIfPresent(String.self, forKey: .parentGuid)
self.parentIndex = try container.decodeIfPresent(Int.self, forKey: .parentIndex)
self.parentKey = try container.decodeIfPresent(String.self, forKey: .parentKey)
self.parentRatingKey = try container.decodeIfPresent(String.self, forKey: .parentRatingKey)
self.parentThumb = try container.decodeIfPresent(String.self, forKey: .parentThumb)
self.parentTitle = try container.decodeIfPresent(String.self, forKey: .parentTitle)
self.primaryExtraKey = try container.decodeIfPresent(String.self, forKey: .primaryExtraKey)
self.producer = try container.decodeIfPresent([Operations.Producer].self, forKey: .producer)
self.role = try container.decodeIfPresent([Operations.GetMediaMetaDataRole].self, forKey: .role)
self.similar = try container.decodeIfPresent([Operations.Similar].self, forKey: .similar)
self.skipCount = try container.decodeIfPresent(Int.self, forKey: .skipCount)
self.slug = try container.decodeIfPresent(String.self, forKey: .slug)
self.studio = try container.decodeIfPresent(String.self, forKey: .studio)
self.tagline = try container.decodeIfPresent(String.self, forKey: .tagline)
self.theme = try container.decodeIfPresent(String.self, forKey: .theme)
self.viewCount = try container.decodeIfPresent(Int.self, forKey: .viewCount)
self.viewedLeafCount = try container.decodeIfPresent(Int.self, forKey: .viewedLeafCount)
self.writer = try container.decodeIfPresent([Operations.GetMediaMetaDataWriter].self, forKey: .writer)
}
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(self.addedAt, forKey: .addedAt)
try container.encode(self.art, forKey: .art)
try container.encode(self._audienceRating, forKey: .audienceRating)
try container.encode(self.audienceRatingImage, forKey: .audienceRatingImage)
try container.encode(self.contentRating, forKey: .contentRating)
try container.encode(self.duration, forKey: .duration)
try container.encode(self.guid, forKey: .guid)
try container.encode(self.guids, forKey: .guids)
try container.encode(self.image, forKey: .image)
try container.encode(self.key, forKey: .key)
try container.encode(self.librarySectionID, forKey: .librarySectionID)
try container.encode(self.librarySectionKey, forKey: .librarySectionKey)
try container.encode(self.librarySectionTitle, forKey: .librarySectionTitle)
try container.encode(self._originallyAvailableAt, forKey: .originallyAvailableAt)
try container.encode(self.rating, forKey: .rating)
try container.encode(self.ratingKey, forKey: .ratingKey)
try container.encode(self.summary, forKey: .summary)
try container.encode(self.thumb, forKey: .thumb)
try container.encode(self.title, forKey: .title)
try container.encode(self.type, forKey: .type)
try container.encode(self.ultraBlurColors, forKey: .ultraBlurColors)
try container.encode(self.updatedAt, forKey: .updatedAt)
try container.encode(self.year, forKey: .year)
try container.encodeIfPresent(self.chapterSource, forKey: .chapterSource)
try container.encodeIfPresent(self.childCount, forKey: .childCount)
try container.encodeIfPresent(self.country, forKey: .country)
try container.encodeIfPresent(self.director, forKey: .director)
try container.encodeIfPresent(self.genre, forKey: .genre)
try container.encodeIfPresent(self.grandparentArt, forKey: .grandparentArt)
try container.encodeIfPresent(self.grandparentGuid, forKey: .grandparentGuid)
try container.encodeIfPresent(self.grandparentKey, forKey: .grandparentKey)
try container.encodeIfPresent(self.grandparentRatingKey, forKey: .grandparentRatingKey)
try container.encodeIfPresent(self.grandparentSlug, forKey: .grandparentSlug)
try container.encodeIfPresent(self.grandparentThumb, forKey: .grandparentThumb)
try container.encodeIfPresent(self.grandparentTitle, forKey: .grandparentTitle)
try container.encodeIfPresent(self.index, forKey: .index)
try container.encodeIfPresent(self.lastViewedAt, forKey: .lastViewedAt)
try container.encodeIfPresent(self.leafCount, forKey: .leafCount)
try container.encodeIfPresent(self.location, forKey: .location)
try container.encodeIfPresent(self.media, forKey: .media)
try container.encodeIfPresent(self.originalTitle, forKey: .originalTitle)
try container.encodeIfPresent(self.parentGuid, forKey: .parentGuid)
try container.encodeIfPresent(self.parentIndex, forKey: .parentIndex)
try container.encodeIfPresent(self.parentKey, forKey: .parentKey)
try container.encodeIfPresent(self.parentRatingKey, forKey: .parentRatingKey)
try container.encodeIfPresent(self.parentThumb, forKey: .parentThumb)
try container.encodeIfPresent(self.parentTitle, forKey: .parentTitle)
try container.encodeIfPresent(self.primaryExtraKey, forKey: .primaryExtraKey)
try container.encodeIfPresent(self.producer, forKey: .producer)
try container.encodeIfPresent(self.role, forKey: .role)
try container.encodeIfPresent(self.similar, forKey: .similar)
try container.encodeIfPresent(self.skipCount, forKey: .skipCount)
try container.encodeIfPresent(self.slug, forKey: .slug)
try container.encodeIfPresent(self.studio, forKey: .studio)
try container.encodeIfPresent(self.tagline, forKey: .tagline)
try container.encodeIfPresent(self.theme, forKey: .theme)
try container.encodeIfPresent(self.viewCount, forKey: .viewCount)
try container.encodeIfPresent(self.viewedLeafCount, forKey: .viewedLeafCount)
try container.encodeIfPresent(self.writer, forKey: .writer)
}
}
extension Operations.GetMediaMetaDataMetadata {
var audienceRatingWrapper: DecimalSerialized<Double> {
return _audienceRating
}
var originallyAvailableAtWrapper: DateOnly<Date> {
return _originallyAvailableAt
}
}

View File

@@ -0,0 +1,73 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetMediaMetaDataPart {
/// Container format of the part.
public let container: String
/// Duration of the part in milliseconds.
public let duration: Int
/// File path for the part.
public let file: String
/// Unique part identifier.
public let id: Int
/// Key to access this part.
public let key: String
/// File size in bytes.
public let size: Int
/// An array of streams for this part.
public let stream: [Operations.GetMediaMetaDataStream]
/// Video profile for the part.
public let videoProfile: String
/// Indicates if the part is accessible.
public let accessible: Bool?
/// Indicates if the part exists.
public let exists: Bool?
public let indexes: String?
/// Creates an object with the specified parameters
///
/// - Parameter container: Container format of the part.
/// - Parameter duration: Duration of the part in milliseconds.
/// - Parameter file: File path for the part.
/// - Parameter id: Unique part identifier.
/// - Parameter key: Key to access this part.
/// - Parameter size: File size in bytes.
/// - Parameter stream: An array of streams for this part.
/// - Parameter videoProfile: Video profile for the part.
/// - Parameter accessible: Indicates if the part is accessible.
/// - Parameter exists: Indicates if the part exists.
///
public init(container: String, duration: Int, file: String, id: Int, key: String, size: Int, stream: [Operations.GetMediaMetaDataStream], videoProfile: String, accessible: Bool? = nil, exists: Bool? = nil, indexes: String? = nil) {
self.container = container
self.duration = duration
self.file = file
self.id = id
self.key = key
self.size = size
self.stream = stream
self.videoProfile = videoProfile
self.accessible = accessible
self.exists = exists
self.indexes = indexes
}
}}
extension Operations.GetMediaMetaDataPart: Codable {
enum CodingKeys: String, CodingKey {
case container
case duration
case file
case id
case key
case size
case stream = "Stream"
case videoProfile
case accessible
case exists
case indexes
}
}

View File

@@ -0,0 +1,70 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetMediaMetaDataRequest: APIValue {
/// the id of the library item to return the children of.
public let ratingKey: Int
/// Trigger asynchronous metadata augmentation.
public let asyncAugmentMetadata: Bool?
/// Trigger asynchronous file checking.
public let asyncCheckFiles: Bool?
/// Trigger asynchronous refresh of analysis.
public let asyncRefreshAnalysis: Bool?
/// Trigger asynchronous refresh of the local media agent.
public let asyncRefreshLocalMediaAgent: Bool?
/// Include chapter details.
public let includeChapters: Bool?
/// Include concerts data if set to true.
public let includeConcerts: Bool?
/// Include external media data.
public let includeExternalMedia: Bool?
/// Include extra content (e.g. bonus features).
public let includeExtras: Bool?
/// Include on-deck items.
public let includeOnDeck: Bool?
/// Include popular leaves (episodes/chapters).
public let includePopularLeaves: Bool?
/// Include preferences information.
public let includePreferences: Bool?
/// Include reviews for the content.
public let includeReviews: Bool?
/// Include station data.
public let includeStations: Bool?
/// Creates an object with the specified parameters
///
/// - Parameter ratingKey: the id of the library item to return the children of.
/// - Parameter asyncAugmentMetadata: Trigger asynchronous metadata augmentation.
/// - Parameter asyncCheckFiles: Trigger asynchronous file checking.
/// - Parameter asyncRefreshAnalysis: Trigger asynchronous refresh of analysis.
/// - Parameter asyncRefreshLocalMediaAgent: Trigger asynchronous refresh of the local media agent.
/// - Parameter includeChapters: Include chapter details.
/// - Parameter includeConcerts: Include concerts data if set to true.
/// - Parameter includeExternalMedia: Include external media data.
/// - Parameter includeExtras: Include extra content (e.g. bonus features).
/// - Parameter includeOnDeck: Include on-deck items.
/// - Parameter includePopularLeaves: Include popular leaves (episodes/chapters).
/// - Parameter includePreferences: Include preferences information.
/// - Parameter includeReviews: Include reviews for the content.
/// - Parameter includeStations: Include station data.
///
public init(ratingKey: Int, asyncAugmentMetadata: Bool? = nil, asyncCheckFiles: Bool? = nil, asyncRefreshAnalysis: Bool? = nil, asyncRefreshLocalMediaAgent: Bool? = nil, includeChapters: Bool? = nil, includeConcerts: Bool? = nil, includeExternalMedia: Bool? = nil, includeExtras: Bool? = nil, includeOnDeck: Bool? = nil, includePopularLeaves: Bool? = nil, includePreferences: Bool? = nil, includeReviews: Bool? = nil, includeStations: Bool? = nil) {
self.ratingKey = ratingKey
self.asyncAugmentMetadata = asyncAugmentMetadata
self.asyncCheckFiles = asyncCheckFiles
self.asyncRefreshAnalysis = asyncRefreshAnalysis
self.asyncRefreshLocalMediaAgent = asyncRefreshLocalMediaAgent
self.includeChapters = includeChapters
self.includeConcerts = includeConcerts
self.includeExternalMedia = includeExternalMedia
self.includeExtras = includeExtras
self.includeOnDeck = includeOnDeck
self.includePopularLeaves = includePopularLeaves
self.includePreferences = includePreferences
self.includeReviews = includeReviews
self.includeStations = includeStations
}
}}

View File

@@ -0,0 +1,41 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A response model
public enum GetMediaMetaDataResponse {
case empty
case badRequest(Operations.GetMediaMetaDataBadRequest)
case object(Operations.GetMediaMetaDataResponseBody)
case unauthorized(Operations.GetMediaMetaDataUnauthorized)
var isEmpty: Bool {
if case .empty = self {
return true
} else {
return false
}
}
public func badRequest() throws -> Operations.GetMediaMetaDataBadRequest {
guard case .badRequest(let value) = self else {
throw PlexswiftError.missingResponseData
}
return value
}
public func object() throws -> Operations.GetMediaMetaDataResponseBody {
guard case .object(let value) = self else {
throw PlexswiftError.missingResponseData
}
return value
}
public func unauthorized() throws -> Operations.GetMediaMetaDataUnauthorized {
guard case .unauthorized(let value) = self else {
throw PlexswiftError.missingResponseData
}
return value
}
}}

View File

@@ -4,18 +4,18 @@ import Foundation
extension Operations { extension Operations {
/// The metadata of the library item. /// The metadata of the library item.
public struct GetMetaDataByRatingKeyResponseBody { public struct GetMediaMetaDataResponseBody {
public let mediaContainer: Operations.GetMetaDataByRatingKeyMediaContainer? public let mediaContainer: Operations.GetMediaMetaDataMediaContainer?
/// Creates an object with the specified parameters /// Creates an object with the specified parameters
/// ///
/// ///
public init(mediaContainer: Operations.GetMetaDataByRatingKeyMediaContainer? = nil) { public init(mediaContainer: Operations.GetMediaMetaDataMediaContainer? = nil) {
self.mediaContainer = mediaContainer self.mediaContainer = mediaContainer
} }
}} }}
extension Operations.GetMetaDataByRatingKeyResponseBody: Codable { extension Operations.GetMediaMetaDataResponseBody: Codable {
enum CodingKeys: String, CodingKey { enum CodingKeys: String, CodingKey {
case mediaContainer = "MediaContainer" case mediaContainer = "MediaContainer"
} }

View File

@@ -0,0 +1,50 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetMediaMetaDataRole {
/// The filter string for the role.
public let filter: String
/// The unique role identifier.
public let id: Int
/// The actor's name.
public let tag: String
/// A key associated with the actor tag.
public let tagKey: String
/// The character name or role.
public let role: String?
/// URL for the role thumbnail image.
public let thumb: String?
/// Creates an object with the specified parameters
///
/// - Parameter filter: The filter string for the role.
/// - Parameter id: The unique role identifier.
/// - Parameter tag: The actor's name.
/// - Parameter tagKey: A key associated with the actor tag.
/// - Parameter role: The character name or role.
/// - Parameter thumb: URL for the role thumbnail image.
///
public init(filter: String, id: Int, tag: String, tagKey: String, role: String? = nil, thumb: String? = nil) {
self.filter = filter
self.id = id
self.tag = tag
self.tagKey = tagKey
self.role = role
self.thumb = thumb
}
}}
extension Operations.GetMediaMetaDataRole: Codable {
enum CodingKeys: String, CodingKey {
case filter
case id
case tag
case tagKey
case role
case thumb
}
}

View File

@@ -0,0 +1,352 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetMediaMetaDataStream {
/// Bitrate of the stream.
public let bitrate: Int
/// Codec used by the stream.
public let codec: String
/// Display title for the stream.
public let displayTitle: String
/// Extended display title for the stream.
public let extendedDisplayTitle: String
/// Unique stream identifier.
public let id: Int
/// Index of the stream.
public let index: Int
/// Language of the stream.
public let language: String
/// ISO language code.
public let languageCode: String
/// Language tag (e.g., en).
public let languageTag: String
/// Stream type (1=video, 2=audio, 3=subtitle).
public let streamType: Int
/// Audio channel layout.
public let audioChannelLayout: String?
/// Bit depth of the video stream.
public let bitDepth: Int?
/// Indicates if the stream can auto-sync.
public let canAutoSync: Bool?
/// Number of audio channels (for audio streams).
public let channels: Int?
/// Chroma sample location.
public let chromaLocation: String?
/// Chroma subsampling format.
public let chromaSubsampling: String?
/// Coded video height.
public let codedHeight: Int?
/// Coded video width.
public let codedWidth: Int?
/// Color primaries used.
public let colorPrimaries: String?
/// Color range (e.g., tv).
public let colorRange: String?
/// Color space.
public let colorSpace: String?
/// Color transfer characteristics.
public let colorTrc: String?
/// Indicates if this stream is default.
public let `default`: Bool?
/// Dolby Vision BL compatibility ID.
public let doviblCompatID: Int?
/// Indicates if Dolby Vision BL is present.
public let doviblPresent: Bool?
/// Indicates if Dolby Vision EL is present.
public let dovielPresent: Bool?
/// Dolby Vision level.
public let doviLevel: Int?
/// Indicates if Dolby Vision is present.
public let doviPresent: Bool?
/// Dolby Vision profile.
public let doviProfile: Int?
/// Indicates if Dolby Vision RPU is present.
public let dovirpuPresent: Bool?
/// Dolby Vision version.
public let doviVersion: String?
/// Indicates if the stream is a dub.
public let dub: Bool?
public let forced: Bool?
/// Frame rate of the stream.
@DecimalSerialized
public private(set) var frameRate: Double?
public let hasScalingMatrix: Bool?
/// Indicates if the stream is for the hearing impaired.
public let hearingImpaired: Bool?
/// Height of the video stream.
public let height: Int?
/// Video level.
public let level: Int?
/// Indicates if this is the original stream.
public let original: Bool?
/// Video profile.
public let profile: String?
/// Number of reference frames.
public let refFrames: Int?
/// Sampling rate for the audio stream.
public let samplingRate: Int?
public let scanType: String?
/// Indicates if this stream is selected (applicable for audio streams).
public let selected: Bool?
/// Optional title for the stream (e.g., language variant).
public let title: String?
/// Width of the video stream.
public let width: Int?
/// Creates an object with the specified parameters
///
/// - Parameter bitrate: Bitrate of the stream.
/// - Parameter codec: Codec used by the stream.
/// - Parameter displayTitle: Display title for the stream.
/// - Parameter extendedDisplayTitle: Extended display title for the stream.
/// - Parameter id: Unique stream identifier.
/// - Parameter index: Index of the stream.
/// - Parameter language: Language of the stream.
/// - Parameter languageCode: ISO language code.
/// - Parameter languageTag: Language tag (e.g., en).
/// - Parameter streamType: Stream type (1=video, 2=audio, 3=subtitle).
/// - Parameter audioChannelLayout: Audio channel layout.
/// - Parameter bitDepth: Bit depth of the video stream.
/// - Parameter canAutoSync: Indicates if the stream can auto-sync.
/// - Parameter channels: Number of audio channels (for audio streams).
/// - Parameter chromaLocation: Chroma sample location.
/// - Parameter chromaSubsampling: Chroma subsampling format.
/// - Parameter codedHeight: Coded video height.
/// - Parameter codedWidth: Coded video width.
/// - Parameter colorPrimaries: Color primaries used.
/// - Parameter colorRange: Color range (e.g., tv).
/// - Parameter colorSpace: Color space.
/// - Parameter colorTrc: Color transfer characteristics.
/// - Parameter `default`: Indicates if this stream is default.
/// - Parameter doviblCompatID: Dolby Vision BL compatibility ID.
/// - Parameter doviblPresent: Indicates if Dolby Vision BL is present.
/// - Parameter dovielPresent: Indicates if Dolby Vision EL is present.
/// - Parameter doviLevel: Dolby Vision level.
/// - Parameter doviPresent: Indicates if Dolby Vision is present.
/// - Parameter doviProfile: Dolby Vision profile.
/// - Parameter dovirpuPresent: Indicates if Dolby Vision RPU is present.
/// - Parameter doviVersion: Dolby Vision version.
/// - Parameter dub: Indicates if the stream is a dub.
/// - Parameter frameRate: Frame rate of the stream.
/// - Parameter hearingImpaired: Indicates if the stream is for the hearing impaired.
/// - Parameter height: Height of the video stream.
/// - Parameter level: Video level.
/// - Parameter original: Indicates if this is the original stream.
/// - Parameter profile: Video profile.
/// - Parameter refFrames: Number of reference frames.
/// - Parameter samplingRate: Sampling rate for the audio stream.
/// - Parameter selected: Indicates if this stream is selected (applicable for audio streams).
/// - Parameter title: Optional title for the stream (e.g., language variant).
/// - Parameter width: Width of the video stream.
///
public init(bitrate: Int, codec: String, displayTitle: String, extendedDisplayTitle: String, id: Int, index: Int, language: String, languageCode: String, languageTag: String, streamType: Int, audioChannelLayout: String? = nil, bitDepth: Int? = nil, canAutoSync: Bool? = nil, channels: Int? = nil, chromaLocation: String? = nil, chromaSubsampling: String? = nil, codedHeight: Int? = nil, codedWidth: Int? = nil, colorPrimaries: String? = nil, colorRange: String? = nil, colorSpace: String? = nil, colorTrc: String? = nil, `default`: Bool? = nil, doviblCompatID: Int? = nil, doviblPresent: Bool? = nil, dovielPresent: Bool? = nil, doviLevel: Int? = nil, doviPresent: Bool? = nil, doviProfile: Int? = nil, dovirpuPresent: Bool? = nil, doviVersion: String? = nil, dub: Bool? = nil, forced: Bool? = nil, frameRate: Double? = nil, hasScalingMatrix: Bool? = nil, hearingImpaired: Bool? = nil, height: Int? = nil, level: Int? = nil, original: Bool? = nil, profile: String? = nil, refFrames: Int? = nil, samplingRate: Int? = nil, scanType: String? = nil, selected: Bool? = nil, title: String? = nil, width: Int? = nil) {
self.bitrate = bitrate
self.codec = codec
self.displayTitle = displayTitle
self.extendedDisplayTitle = extendedDisplayTitle
self.id = id
self.index = index
self.language = language
self.languageCode = languageCode
self.languageTag = languageTag
self.streamType = streamType
self.audioChannelLayout = audioChannelLayout
self.bitDepth = bitDepth
self.canAutoSync = canAutoSync
self.channels = channels
self.chromaLocation = chromaLocation
self.chromaSubsampling = chromaSubsampling
self.codedHeight = codedHeight
self.codedWidth = codedWidth
self.colorPrimaries = colorPrimaries
self.colorRange = colorRange
self.colorSpace = colorSpace
self.colorTrc = colorTrc
self.`default` = `default`
self.doviblCompatID = doviblCompatID
self.doviblPresent = doviblPresent
self.dovielPresent = dovielPresent
self.doviLevel = doviLevel
self.doviPresent = doviPresent
self.doviProfile = doviProfile
self.dovirpuPresent = dovirpuPresent
self.doviVersion = doviVersion
self.dub = dub
self.forced = forced
self._frameRate = DecimalSerialized<Double?>(wrappedValue: frameRate)
self.hasScalingMatrix = hasScalingMatrix
self.hearingImpaired = hearingImpaired
self.height = height
self.level = level
self.original = original
self.profile = profile
self.refFrames = refFrames
self.samplingRate = samplingRate
self.scanType = scanType
self.selected = selected
self.title = title
self.width = width
}
}}
extension Operations.GetMediaMetaDataStream: Codable {
enum CodingKeys: String, CodingKey {
case bitrate
case codec
case displayTitle
case extendedDisplayTitle
case id
case index
case language
case languageCode
case languageTag
case streamType
case audioChannelLayout
case bitDepth
case canAutoSync
case channels
case chromaLocation
case chromaSubsampling
case codedHeight
case codedWidth
case colorPrimaries
case colorRange
case colorSpace
case colorTrc
case `default` = "default"
case doviblCompatID = "DOVIBLCompatID"
case doviblPresent = "DOVIBLPresent"
case dovielPresent = "DOVIELPresent"
case doviLevel = "DOVILevel"
case doviPresent = "DOVIPresent"
case doviProfile = "DOVIProfile"
case dovirpuPresent = "DOVIRPUPresent"
case doviVersion = "DOVIVersion"
case dub
case forced
case frameRate
case hasScalingMatrix
case hearingImpaired
case height
case level
case original
case profile
case refFrames
case samplingRate
case scanType
case selected
case title
case width
}
public init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
self.bitrate = try container.decode(Int.self, forKey: .bitrate)
self.codec = try container.decode(String.self, forKey: .codec)
self.displayTitle = try container.decode(String.self, forKey: .displayTitle)
self.extendedDisplayTitle = try container.decode(String.self, forKey: .extendedDisplayTitle)
self.id = try container.decode(Int.self, forKey: .id)
self.index = try container.decode(Int.self, forKey: .index)
self.language = try container.decode(String.self, forKey: .language)
self.languageCode = try container.decode(String.self, forKey: .languageCode)
self.languageTag = try container.decode(String.self, forKey: .languageTag)
self.streamType = try container.decode(Int.self, forKey: .streamType)
self.audioChannelLayout = try container.decodeIfPresent(String.self, forKey: .audioChannelLayout)
self.bitDepth = try container.decodeIfPresent(Int.self, forKey: .bitDepth)
self.canAutoSync = try container.decodeIfPresent(Bool.self, forKey: .canAutoSync)
self.channels = try container.decodeIfPresent(Int.self, forKey: .channels)
self.chromaLocation = try container.decodeIfPresent(String.self, forKey: .chromaLocation)
self.chromaSubsampling = try container.decodeIfPresent(String.self, forKey: .chromaSubsampling)
self.codedHeight = try container.decodeIfPresent(Int.self, forKey: .codedHeight)
self.codedWidth = try container.decodeIfPresent(Int.self, forKey: .codedWidth)
self.colorPrimaries = try container.decodeIfPresent(String.self, forKey: .colorPrimaries)
self.colorRange = try container.decodeIfPresent(String.self, forKey: .colorRange)
self.colorSpace = try container.decodeIfPresent(String.self, forKey: .colorSpace)
self.colorTrc = try container.decodeIfPresent(String.self, forKey: .colorTrc)
self.`default` = try container.decodeIfPresent(Bool.self, forKey: .`default`)
self.doviblCompatID = try container.decodeIfPresent(Int.self, forKey: .doviblCompatID)
self.doviblPresent = try container.decodeIfPresent(Bool.self, forKey: .doviblPresent)
self.dovielPresent = try container.decodeIfPresent(Bool.self, forKey: .dovielPresent)
self.doviLevel = try container.decodeIfPresent(Int.self, forKey: .doviLevel)
self.doviPresent = try container.decodeIfPresent(Bool.self, forKey: .doviPresent)
self.doviProfile = try container.decodeIfPresent(Int.self, forKey: .doviProfile)
self.dovirpuPresent = try container.decodeIfPresent(Bool.self, forKey: .dovirpuPresent)
self.doviVersion = try container.decodeIfPresent(String.self, forKey: .doviVersion)
self.dub = try container.decodeIfPresent(Bool.self, forKey: .dub)
self.forced = try container.decodeIfPresent(Bool.self, forKey: .forced)
self._frameRate = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .frameRate) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.hasScalingMatrix = try container.decodeIfPresent(Bool.self, forKey: .hasScalingMatrix)
self.hearingImpaired = try container.decodeIfPresent(Bool.self, forKey: .hearingImpaired)
self.height = try container.decodeIfPresent(Int.self, forKey: .height)
self.level = try container.decodeIfPresent(Int.self, forKey: .level)
self.original = try container.decodeIfPresent(Bool.self, forKey: .original)
self.profile = try container.decodeIfPresent(String.self, forKey: .profile)
self.refFrames = try container.decodeIfPresent(Int.self, forKey: .refFrames)
self.samplingRate = try container.decodeIfPresent(Int.self, forKey: .samplingRate)
self.scanType = try container.decodeIfPresent(String.self, forKey: .scanType)
self.selected = try container.decodeIfPresent(Bool.self, forKey: .selected)
self.title = try container.decodeIfPresent(String.self, forKey: .title)
self.width = try container.decodeIfPresent(Int.self, forKey: .width)
}
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(self.bitrate, forKey: .bitrate)
try container.encode(self.codec, forKey: .codec)
try container.encode(self.displayTitle, forKey: .displayTitle)
try container.encode(self.extendedDisplayTitle, forKey: .extendedDisplayTitle)
try container.encode(self.id, forKey: .id)
try container.encode(self.index, forKey: .index)
try container.encode(self.language, forKey: .language)
try container.encode(self.languageCode, forKey: .languageCode)
try container.encode(self.languageTag, forKey: .languageTag)
try container.encode(self.streamType, forKey: .streamType)
try container.encodeIfPresent(self.audioChannelLayout, forKey: .audioChannelLayout)
try container.encodeIfPresent(self.bitDepth, forKey: .bitDepth)
try container.encodeIfPresent(self.canAutoSync, forKey: .canAutoSync)
try container.encodeIfPresent(self.channels, forKey: .channels)
try container.encodeIfPresent(self.chromaLocation, forKey: .chromaLocation)
try container.encodeIfPresent(self.chromaSubsampling, forKey: .chromaSubsampling)
try container.encodeIfPresent(self.codedHeight, forKey: .codedHeight)
try container.encodeIfPresent(self.codedWidth, forKey: .codedWidth)
try container.encodeIfPresent(self.colorPrimaries, forKey: .colorPrimaries)
try container.encodeIfPresent(self.colorRange, forKey: .colorRange)
try container.encodeIfPresent(self.colorSpace, forKey: .colorSpace)
try container.encodeIfPresent(self.colorTrc, forKey: .colorTrc)
try container.encodeIfPresent(self.`default`, forKey: .`default`)
try container.encodeIfPresent(self.doviblCompatID, forKey: .doviblCompatID)
try container.encodeIfPresent(self.doviblPresent, forKey: .doviblPresent)
try container.encodeIfPresent(self.dovielPresent, forKey: .dovielPresent)
try container.encodeIfPresent(self.doviLevel, forKey: .doviLevel)
try container.encodeIfPresent(self.doviPresent, forKey: .doviPresent)
try container.encodeIfPresent(self.doviProfile, forKey: .doviProfile)
try container.encodeIfPresent(self.dovirpuPresent, forKey: .dovirpuPresent)
try container.encodeIfPresent(self.doviVersion, forKey: .doviVersion)
try container.encodeIfPresent(self.dub, forKey: .dub)
try container.encodeIfPresent(self.forced, forKey: .forced)
if self.frameRate != nil {
try container.encode(self._frameRate, forKey: .frameRate)
}
try container.encodeIfPresent(self.hasScalingMatrix, forKey: .hasScalingMatrix)
try container.encodeIfPresent(self.hearingImpaired, forKey: .hearingImpaired)
try container.encodeIfPresent(self.height, forKey: .height)
try container.encodeIfPresent(self.level, forKey: .level)
try container.encodeIfPresent(self.original, forKey: .original)
try container.encodeIfPresent(self.profile, forKey: .profile)
try container.encodeIfPresent(self.refFrames, forKey: .refFrames)
try container.encodeIfPresent(self.samplingRate, forKey: .samplingRate)
try container.encodeIfPresent(self.scanType, forKey: .scanType)
try container.encodeIfPresent(self.selected, forKey: .selected)
try container.encodeIfPresent(self.title, forKey: .title)
try container.encodeIfPresent(self.width, forKey: .width)
}
}
extension Operations.GetMediaMetaDataStream {
var frameRateWrapper: DecimalSerialized<Double?> {
return _frameRate
}
}

View File

@@ -0,0 +1,40 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetMediaMetaDataUltraBlurColors {
/// The bottom-left color value.
public let bottomLeft: String
/// The bottom-right color value.
public let bottomRight: String
/// The top-left color value.
public let topLeft: String
/// The top-right color value.
public let topRight: String
/// Creates an object with the specified parameters
///
/// - Parameter bottomLeft: The bottom-left color value.
/// - Parameter bottomRight: The bottom-right color value.
/// - Parameter topLeft: The top-left color value.
/// - Parameter topRight: The top-right color value.
///
public init(bottomLeft: String, bottomRight: String, topLeft: String, topRight: String) {
self.bottomLeft = bottomLeft
self.bottomRight = bottomRight
self.topLeft = topLeft
self.topRight = topRight
}
}}
extension Operations.GetMediaMetaDataUltraBlurColors: Codable {
enum CodingKeys: String, CodingKey {
case bottomLeft
case bottomRight
case topLeft
case topRight
}
}

View File

@@ -0,0 +1,23 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
public struct GetMediaMetaDataUnauthorized {
public let errors: [Operations.GetMediaMetaDataLibraryErrors]?
/// Creates an object with the specified parameters
///
///
public init(errors: [Operations.GetMediaMetaDataLibraryErrors]? = nil) {
self.errors = errors
}
}}
extension Operations.GetMediaMetaDataUnauthorized: Codable {
enum CodingKeys: String, CodingKey {
case errors
}
}

View File

@@ -0,0 +1,50 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetMediaMetaDataWriter {
/// The filter string for the role.
public let filter: String
/// The unique role identifier.
public let id: Int
/// The actor's name.
public let tag: String
/// A key associated with the actor tag.
public let tagKey: String
/// The character name or role.
public let role: String?
/// URL for the role thumbnail image.
public let thumb: String?
/// Creates an object with the specified parameters
///
/// - Parameter filter: The filter string for the role.
/// - Parameter id: The unique role identifier.
/// - Parameter tag: The actor's name.
/// - Parameter tagKey: A key associated with the actor tag.
/// - Parameter role: The character name or role.
/// - Parameter thumb: URL for the role thumbnail image.
///
public init(filter: String, id: Int, tag: String, tagKey: String, role: String? = nil, thumb: String? = nil) {
self.filter = filter
self.id = id
self.tag = tag
self.tagKey = tagKey
self.role = role
self.thumb = thumb
}
}}
extension Operations.GetMediaMetaDataWriter: Codable {
enum CodingKeys: String, CodingKey {
case filter
case id
case tag
case tagKey
case role
case thumb
}
}

View File

@@ -1,29 +0,0 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetMetaDataByRatingKeyCountry {
public let filter: String?
public let id: Int?
public let tag: String?
/// Creates an object with the specified parameters
///
///
public init(filter: String? = nil, id: Int? = nil, tag: String? = nil) {
self.filter = filter
self.id = id
self.tag = tag
}
}}
extension Operations.GetMetaDataByRatingKeyCountry: Codable {
enum CodingKeys: String, CodingKey {
case filter
case id
case tag
}
}

View File

@@ -1,35 +0,0 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetMetaDataByRatingKeyDirector {
public let filter: String?
public let id: Int?
public let tag: String?
public let tagKey: String?
public let thumb: String?
/// Creates an object with the specified parameters
///
///
public init(filter: String? = nil, id: Int? = nil, tag: String? = nil, tagKey: String? = nil, thumb: String? = nil) {
self.filter = filter
self.id = id
self.tag = tag
self.tagKey = tagKey
self.thumb = thumb
}
}}
extension Operations.GetMetaDataByRatingKeyDirector: Codable {
enum CodingKeys: String, CodingKey {
case filter
case id
case tag
case tagKey
case thumb
}
}

View File

@@ -1,29 +0,0 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetMetaDataByRatingKeyGenre {
public let filter: String?
public let id: Int?
public let tag: String?
/// Creates an object with the specified parameters
///
///
public init(filter: String? = nil, id: Int? = nil, tag: String? = nil) {
self.filter = filter
self.id = id
self.tag = tag
}
}}
extension Operations.GetMetaDataByRatingKeyGenre: Codable {
enum CodingKeys: String, CodingKey {
case filter
case id
case tag
}
}

View File

@@ -1,121 +0,0 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetMetaDataByRatingKeyMedia {
@DecimalSerialized
public private(set) var aspectRatio: Double?
public let audioChannels: Int?
public let audioCodec: String?
public let audioProfile: String?
public let bitrate: Int?
public let container: String?
public let duration: Int?
public let has64bitOffsets: Bool?
public let height: Int?
public let id: Int?
public let optimizedForStreaming: Int?
public let part: [Operations.GetMetaDataByRatingKeyPart]?
public let videoCodec: String?
public let videoFrameRate: String?
public let videoProfile: String?
public let videoResolution: String?
public let width: Int?
/// Creates an object with the specified parameters
///
///
public init(aspectRatio: Double? = nil, audioChannels: Int? = nil, audioCodec: String? = nil, audioProfile: String? = nil, bitrate: Int? = nil, container: String? = nil, duration: Int? = nil, has64bitOffsets: Bool? = nil, height: Int? = nil, id: Int? = nil, optimizedForStreaming: Int? = nil, part: [Operations.GetMetaDataByRatingKeyPart]? = nil, videoCodec: String? = nil, videoFrameRate: String? = nil, videoProfile: String? = nil, videoResolution: String? = nil, width: Int? = nil) {
self._aspectRatio = DecimalSerialized<Double?>(wrappedValue: aspectRatio)
self.audioChannels = audioChannels
self.audioCodec = audioCodec
self.audioProfile = audioProfile
self.bitrate = bitrate
self.container = container
self.duration = duration
self.has64bitOffsets = has64bitOffsets
self.height = height
self.id = id
self.optimizedForStreaming = optimizedForStreaming
self.part = part
self.videoCodec = videoCodec
self.videoFrameRate = videoFrameRate
self.videoProfile = videoProfile
self.videoResolution = videoResolution
self.width = width
}
}}
extension Operations.GetMetaDataByRatingKeyMedia: Codable {
enum CodingKeys: String, CodingKey {
case aspectRatio
case audioChannels
case audioCodec
case audioProfile
case bitrate
case container
case duration
case has64bitOffsets
case height
case id
case optimizedForStreaming
case part = "Part"
case videoCodec
case videoFrameRate
case videoProfile
case videoResolution
case width
}
public init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
self._aspectRatio = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .aspectRatio) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.audioChannels = try container.decodeIfPresent(Int.self, forKey: .audioChannels)
self.audioCodec = try container.decodeIfPresent(String.self, forKey: .audioCodec)
self.audioProfile = try container.decodeIfPresent(String.self, forKey: .audioProfile)
self.bitrate = try container.decodeIfPresent(Int.self, forKey: .bitrate)
self.container = try container.decodeIfPresent(String.self, forKey: .container)
self.duration = try container.decodeIfPresent(Int.self, forKey: .duration)
self.has64bitOffsets = try container.decodeIfPresent(Bool.self, forKey: .has64bitOffsets)
self.height = try container.decodeIfPresent(Int.self, forKey: .height)
self.id = try container.decodeIfPresent(Int.self, forKey: .id)
self.optimizedForStreaming = try container.decodeIfPresent(Int.self, forKey: .optimizedForStreaming)
self.part = try container.decodeIfPresent([Operations.GetMetaDataByRatingKeyPart].self, forKey: .part)
self.videoCodec = try container.decodeIfPresent(String.self, forKey: .videoCodec)
self.videoFrameRate = try container.decodeIfPresent(String.self, forKey: .videoFrameRate)
self.videoProfile = try container.decodeIfPresent(String.self, forKey: .videoProfile)
self.videoResolution = try container.decodeIfPresent(String.self, forKey: .videoResolution)
self.width = try container.decodeIfPresent(Int.self, forKey: .width)
}
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
if self.aspectRatio != nil {
try container.encode(self._aspectRatio, forKey: .aspectRatio)
}
try container.encodeIfPresent(self.audioChannels, forKey: .audioChannels)
try container.encodeIfPresent(self.audioCodec, forKey: .audioCodec)
try container.encodeIfPresent(self.audioProfile, forKey: .audioProfile)
try container.encodeIfPresent(self.bitrate, forKey: .bitrate)
try container.encodeIfPresent(self.container, forKey: .container)
try container.encodeIfPresent(self.duration, forKey: .duration)
try container.encodeIfPresent(self.has64bitOffsets, forKey: .has64bitOffsets)
try container.encodeIfPresent(self.height, forKey: .height)
try container.encodeIfPresent(self.id, forKey: .id)
try container.encodeIfPresent(self.optimizedForStreaming, forKey: .optimizedForStreaming)
try container.encodeIfPresent(self.part, forKey: .part)
try container.encodeIfPresent(self.videoCodec, forKey: .videoCodec)
try container.encodeIfPresent(self.videoFrameRate, forKey: .videoFrameRate)
try container.encodeIfPresent(self.videoProfile, forKey: .videoProfile)
try container.encodeIfPresent(self.videoResolution, forKey: .videoResolution)
try container.encodeIfPresent(self.width, forKey: .width)
}
}
extension Operations.GetMetaDataByRatingKeyMedia {
var aspectRatioWrapper: DecimalSerialized<Double?> {
return _aspectRatio
}
}

View File

@@ -1,47 +0,0 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetMetaDataByRatingKeyMediaContainer {
public let allowSync: Bool?
public let identifier: String?
public let librarySectionID: Int?
public let librarySectionTitle: String?
public let librarySectionUUID: String?
public let mediaTagPrefix: String?
public let mediaTagVersion: Int?
public let metadata: [Operations.GetMetaDataByRatingKeyMetadata]?
public let size: Int?
/// Creates an object with the specified parameters
///
///
public init(allowSync: Bool? = nil, identifier: String? = nil, librarySectionID: Int? = nil, librarySectionTitle: String? = nil, librarySectionUUID: String? = nil, mediaTagPrefix: String? = nil, mediaTagVersion: Int? = nil, metadata: [Operations.GetMetaDataByRatingKeyMetadata]? = nil, size: Int? = nil) {
self.allowSync = allowSync
self.identifier = identifier
self.librarySectionID = librarySectionID
self.librarySectionTitle = librarySectionTitle
self.librarySectionUUID = librarySectionUUID
self.mediaTagPrefix = mediaTagPrefix
self.mediaTagVersion = mediaTagVersion
self.metadata = metadata
self.size = size
}
}}
extension Operations.GetMetaDataByRatingKeyMediaContainer: Codable {
enum CodingKeys: String, CodingKey {
case allowSync
case identifier
case librarySectionID
case librarySectionTitle
case librarySectionUUID
case mediaTagPrefix
case mediaTagVersion
case metadata = "Metadata"
case size
}
}

View File

@@ -1,248 +0,0 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetMetaDataByRatingKeyMetadata {
public let addedAt: Int?
public let art: String?
@DecimalSerialized
public private(set) var audienceRating: Double?
public let audienceRatingImage: String?
public let contentRating: String?
public let country: [Operations.GetMetaDataByRatingKeyCountry]?
public let director: [Operations.GetMetaDataByRatingKeyDirector]?
public let duration: Int?
public let genre: [Operations.GetMetaDataByRatingKeyGenre]?
/// The name of the album artist for the track when audio, and the name of the TV show for the episode when video.
public let grandparentTitle: String?
public let guid: String?
public let guids: [Operations.Guids]?
public let hasPremiumPrimaryExtra: String?
/// The index starting from 0 of this media item in the MetaData array.
public let index: Int?
public let key: String?
public let librarySectionID: Int?
public let librarySectionKey: String?
public let librarySectionTitle: String?
public let media: [Operations.GetMetaDataByRatingKeyMedia]?
@DateOnly
public private(set) var originallyAvailableAt: Date?
/// The orginal untranslated name of the media item when non-english.
public let originalTitle: String?
/// The parent index starting from 0 of this media item in the parent MetaData array.
public let parentIndex: Int?
/// The name of the album for the track when audio, and the name of the season for the episode when TV show.
public let parentTitle: String?
public let producer: [Operations.Producer]?
@DecimalSerialized
public private(set) var rating: Double?
public let ratingImage: String?
public let ratingKey: String?
public let ratings: [Operations.Ratings]?
public let role: [Operations.GetMetaDataByRatingKeyRole]?
public let studio: String?
public let summary: String?
public let tagline: String?
public let thumb: String?
public let title: String?
public let type: String?
public let updatedAt: Int?
public let writer: [Operations.GetMetaDataByRatingKeyWriter]?
public let year: Int?
/// Creates an object with the specified parameters
///
/// - Parameter grandparentTitle: The name of the album artist for the track when audio, and the name of the TV show for the episode when video.
/// - Parameter index: The index starting from 0 of this media item in the MetaData array.
/// - Parameter originalTitle: The orginal untranslated name of the media item when non-english.
/// - Parameter parentIndex: The parent index starting from 0 of this media item in the parent MetaData array.
/// - Parameter parentTitle: The name of the album for the track when audio, and the name of the season for the episode when TV show.
///
public init(addedAt: Int? = nil, art: String? = nil, audienceRating: Double? = nil, audienceRatingImage: String? = nil, contentRating: String? = nil, country: [Operations.GetMetaDataByRatingKeyCountry]? = nil, director: [Operations.GetMetaDataByRatingKeyDirector]? = nil, duration: Int? = nil, genre: [Operations.GetMetaDataByRatingKeyGenre]? = nil, grandparentTitle: String? = nil, guid: String? = nil, guids: [Operations.Guids]? = nil, hasPremiumPrimaryExtra: String? = nil, index: Int? = nil, key: String? = nil, librarySectionID: Int? = nil, librarySectionKey: String? = nil, librarySectionTitle: String? = nil, media: [Operations.GetMetaDataByRatingKeyMedia]? = nil, originallyAvailableAt: Date? = nil, originalTitle: String? = nil, parentIndex: Int? = nil, parentTitle: String? = nil, producer: [Operations.Producer]? = nil, rating: Double? = nil, ratingImage: String? = nil, ratingKey: String? = nil, ratings: [Operations.Ratings]? = nil, role: [Operations.GetMetaDataByRatingKeyRole]? = nil, studio: String? = nil, summary: String? = nil, tagline: String? = nil, thumb: String? = nil, title: String? = nil, type: String? = nil, updatedAt: Int? = nil, writer: [Operations.GetMetaDataByRatingKeyWriter]? = nil, year: Int? = nil) {
self.addedAt = addedAt
self.art = art
self._audienceRating = DecimalSerialized<Double?>(wrappedValue: audienceRating)
self.audienceRatingImage = audienceRatingImage
self.contentRating = contentRating
self.country = country
self.director = director
self.duration = duration
self.genre = genre
self.grandparentTitle = grandparentTitle
self.guid = guid
self.guids = guids
self.hasPremiumPrimaryExtra = hasPremiumPrimaryExtra
self.index = index
self.key = key
self.librarySectionID = librarySectionID
self.librarySectionKey = librarySectionKey
self.librarySectionTitle = librarySectionTitle
self.media = media
self._originallyAvailableAt = DateOnly<Date?>(wrappedValue: originallyAvailableAt)
self.originalTitle = originalTitle
self.parentIndex = parentIndex
self.parentTitle = parentTitle
self.producer = producer
self._rating = DecimalSerialized<Double?>(wrappedValue: rating)
self.ratingImage = ratingImage
self.ratingKey = ratingKey
self.ratings = ratings
self.role = role
self.studio = studio
self.summary = summary
self.tagline = tagline
self.thumb = thumb
self.title = title
self.type = type
self.updatedAt = updatedAt
self.writer = writer
self.year = year
}
}}
extension Operations.GetMetaDataByRatingKeyMetadata: Codable {
enum CodingKeys: String, CodingKey {
case addedAt
case art
case audienceRating
case audienceRatingImage
case contentRating
case country = "Country"
case director = "Director"
case duration
case genre = "Genre"
case grandparentTitle
case guid
case guids = "Guid"
case hasPremiumPrimaryExtra
case index
case key
case librarySectionID
case librarySectionKey
case librarySectionTitle
case media = "Media"
case originallyAvailableAt
case originalTitle
case parentIndex
case parentTitle
case producer = "Producer"
case rating
case ratingImage
case ratingKey
case ratings = "Rating"
case role = "Role"
case studio
case summary
case tagline
case thumb
case title
case type
case updatedAt
case writer = "Writer"
case year
}
public init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
self.addedAt = try container.decodeIfPresent(Int.self, forKey: .addedAt)
self.art = try container.decodeIfPresent(String.self, forKey: .art)
self._audienceRating = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .audienceRating) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.audienceRatingImage = try container.decodeIfPresent(String.self, forKey: .audienceRatingImage)
self.contentRating = try container.decodeIfPresent(String.self, forKey: .contentRating)
self.country = try container.decodeIfPresent([Operations.GetMetaDataByRatingKeyCountry].self, forKey: .country)
self.director = try container.decodeIfPresent([Operations.GetMetaDataByRatingKeyDirector].self, forKey: .director)
self.duration = try container.decodeIfPresent(Int.self, forKey: .duration)
self.genre = try container.decodeIfPresent([Operations.GetMetaDataByRatingKeyGenre].self, forKey: .genre)
self.grandparentTitle = try container.decodeIfPresent(String.self, forKey: .grandparentTitle)
self.guid = try container.decodeIfPresent(String.self, forKey: .guid)
self.guids = try container.decodeIfPresent([Operations.Guids].self, forKey: .guids)
self.hasPremiumPrimaryExtra = try container.decodeIfPresent(String.self, forKey: .hasPremiumPrimaryExtra)
self.index = try container.decodeIfPresent(Int.self, forKey: .index)
self.key = try container.decodeIfPresent(String.self, forKey: .key)
self.librarySectionID = try container.decodeIfPresent(Int.self, forKey: .librarySectionID)
self.librarySectionKey = try container.decodeIfPresent(String.self, forKey: .librarySectionKey)
self.librarySectionTitle = try container.decodeIfPresent(String.self, forKey: .librarySectionTitle)
self.media = try container.decodeIfPresent([Operations.GetMetaDataByRatingKeyMedia].self, forKey: .media)
self._originallyAvailableAt = try container.decodeIfPresent(DateOnly<Date?>.self, forKey: .originallyAvailableAt) ?? DateOnly<Date?>(wrappedValue: nil)
self.originalTitle = try container.decodeIfPresent(String.self, forKey: .originalTitle)
self.parentIndex = try container.decodeIfPresent(Int.self, forKey: .parentIndex)
self.parentTitle = try container.decodeIfPresent(String.self, forKey: .parentTitle)
self.producer = try container.decodeIfPresent([Operations.Producer].self, forKey: .producer)
self._rating = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .rating) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.ratingImage = try container.decodeIfPresent(String.self, forKey: .ratingImage)
self.ratingKey = try container.decodeIfPresent(String.self, forKey: .ratingKey)
self.ratings = try container.decodeIfPresent([Operations.Ratings].self, forKey: .ratings)
self.role = try container.decodeIfPresent([Operations.GetMetaDataByRatingKeyRole].self, forKey: .role)
self.studio = try container.decodeIfPresent(String.self, forKey: .studio)
self.summary = try container.decodeIfPresent(String.self, forKey: .summary)
self.tagline = try container.decodeIfPresent(String.self, forKey: .tagline)
self.thumb = try container.decodeIfPresent(String.self, forKey: .thumb)
self.title = try container.decodeIfPresent(String.self, forKey: .title)
self.type = try container.decodeIfPresent(String.self, forKey: .type)
self.updatedAt = try container.decodeIfPresent(Int.self, forKey: .updatedAt)
self.writer = try container.decodeIfPresent([Operations.GetMetaDataByRatingKeyWriter].self, forKey: .writer)
self.year = try container.decodeIfPresent(Int.self, forKey: .year)
}
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encodeIfPresent(self.addedAt, forKey: .addedAt)
try container.encodeIfPresent(self.art, forKey: .art)
if self.audienceRating != nil {
try container.encode(self._audienceRating, forKey: .audienceRating)
}
try container.encodeIfPresent(self.audienceRatingImage, forKey: .audienceRatingImage)
try container.encodeIfPresent(self.contentRating, forKey: .contentRating)
try container.encodeIfPresent(self.country, forKey: .country)
try container.encodeIfPresent(self.director, forKey: .director)
try container.encodeIfPresent(self.duration, forKey: .duration)
try container.encodeIfPresent(self.genre, forKey: .genre)
try container.encodeIfPresent(self.grandparentTitle, forKey: .grandparentTitle)
try container.encodeIfPresent(self.guid, forKey: .guid)
try container.encodeIfPresent(self.guids, forKey: .guids)
try container.encodeIfPresent(self.hasPremiumPrimaryExtra, forKey: .hasPremiumPrimaryExtra)
try container.encodeIfPresent(self.index, forKey: .index)
try container.encodeIfPresent(self.key, forKey: .key)
try container.encodeIfPresent(self.librarySectionID, forKey: .librarySectionID)
try container.encodeIfPresent(self.librarySectionKey, forKey: .librarySectionKey)
try container.encodeIfPresent(self.librarySectionTitle, forKey: .librarySectionTitle)
try container.encodeIfPresent(self.media, forKey: .media)
if self.originallyAvailableAt != nil {
try container.encode(self._originallyAvailableAt, forKey: .originallyAvailableAt)
}
try container.encodeIfPresent(self.originalTitle, forKey: .originalTitle)
try container.encodeIfPresent(self.parentIndex, forKey: .parentIndex)
try container.encodeIfPresent(self.parentTitle, forKey: .parentTitle)
try container.encodeIfPresent(self.producer, forKey: .producer)
if self.rating != nil {
try container.encode(self._rating, forKey: .rating)
}
try container.encodeIfPresent(self.ratingImage, forKey: .ratingImage)
try container.encodeIfPresent(self.ratingKey, forKey: .ratingKey)
try container.encodeIfPresent(self.ratings, forKey: .ratings)
try container.encodeIfPresent(self.role, forKey: .role)
try container.encodeIfPresent(self.studio, forKey: .studio)
try container.encodeIfPresent(self.summary, forKey: .summary)
try container.encodeIfPresent(self.tagline, forKey: .tagline)
try container.encodeIfPresent(self.thumb, forKey: .thumb)
try container.encodeIfPresent(self.title, forKey: .title)
try container.encodeIfPresent(self.type, forKey: .type)
try container.encodeIfPresent(self.updatedAt, forKey: .updatedAt)
try container.encodeIfPresent(self.writer, forKey: .writer)
try container.encodeIfPresent(self.year, forKey: .year)
}
}
extension Operations.GetMetaDataByRatingKeyMetadata {
var ratingWrapper: DecimalSerialized<Double?> {
return _rating
}
var audienceRatingWrapper: DecimalSerialized<Double?> {
return _audienceRating
}
var originallyAvailableAtWrapper: DateOnly<Date?> {
return _originallyAvailableAt
}
}

View File

@@ -1,53 +0,0 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetMetaDataByRatingKeyPart {
public let audioProfile: String?
public let container: String?
public let duration: Int?
public let file: String?
public let has64bitOffsets: Bool?
public let id: Int?
public let key: String?
public let optimizedForStreaming: Bool?
public let size: Int?
public let stream: [Operations.GetMetaDataByRatingKeyStream]?
public let videoProfile: String?
/// Creates an object with the specified parameters
///
///
public init(audioProfile: String? = nil, container: String? = nil, duration: Int? = nil, file: String? = nil, has64bitOffsets: Bool? = nil, id: Int? = nil, key: String? = nil, optimizedForStreaming: Bool? = nil, size: Int? = nil, stream: [Operations.GetMetaDataByRatingKeyStream]? = nil, videoProfile: String? = nil) {
self.audioProfile = audioProfile
self.container = container
self.duration = duration
self.file = file
self.has64bitOffsets = has64bitOffsets
self.id = id
self.key = key
self.optimizedForStreaming = optimizedForStreaming
self.size = size
self.stream = stream
self.videoProfile = videoProfile
}
}}
extension Operations.GetMetaDataByRatingKeyPart: Codable {
enum CodingKeys: String, CodingKey {
case audioProfile
case container
case duration
case file
case has64bitOffsets
case id
case key
case optimizedForStreaming
case size
case stream = "Stream"
case videoProfile
}
}

View File

@@ -1,18 +0,0 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetMetaDataByRatingKeyRequest: APIValue {
/// the id of the library item to return the children of.
public let ratingKey: Int
/// Creates an object with the specified parameters
///
/// - Parameter ratingKey: the id of the library item to return the children of.
///
public init(ratingKey: Int) {
self.ratingKey = ratingKey
}
}}

View File

@@ -1,38 +0,0 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetMetaDataByRatingKeyRole {
public let filter: String?
public let id: Int?
public let role: String?
public let tag: String?
public let tagKey: String?
public let thumb: String?
/// Creates an object with the specified parameters
///
///
public init(filter: String? = nil, id: Int? = nil, role: String? = nil, tag: String? = nil, tagKey: String? = nil, thumb: String? = nil) {
self.filter = filter
self.id = id
self.role = role
self.tag = tag
self.tagKey = tagKey
self.thumb = thumb
}
}}
extension Operations.GetMetaDataByRatingKeyRole: Codable {
enum CodingKeys: String, CodingKey {
case filter
case id
case role
case tag
case tagKey
case thumb
}
}

View File

@@ -1,116 +0,0 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetMetaDataByRatingKeyStream {
public let bitDepth: Int?
public let bitrate: Int?
public let channels: Int?
public let chromaLocation: String?
public let chromaSubsampling: String?
public let codec: String?
public let codedHeight: Int?
public let codedWidth: Int?
public let colorPrimaries: String?
public let colorRange: String?
public let colorSpace: String?
public let colorTrc: String?
public let `default`: Bool?
public let displayTitle: String?
public let extendedDisplayTitle: String?
public let frameRate: Int?
public let hasScalingMatrix: Bool?
public let height: Int?
public let id: Int?
public let index: Int?
public let language: String?
public let languageCode: String?
public let languageTag: String?
public let level: Int?
public let profile: String?
public let refFrames: Int?
public let samplingRate: Int?
public let scanType: String?
public let selected: Bool?
public let streamIdentifier: String?
public let streamType: Int?
public let width: Int?
/// Creates an object with the specified parameters
///
///
public init(bitDepth: Int? = nil, bitrate: Int? = nil, channels: Int? = nil, chromaLocation: String? = nil, chromaSubsampling: String? = nil, codec: String? = nil, codedHeight: Int? = nil, codedWidth: Int? = nil, colorPrimaries: String? = nil, colorRange: String? = nil, colorSpace: String? = nil, colorTrc: String? = nil, `default`: Bool? = nil, displayTitle: String? = nil, extendedDisplayTitle: String? = nil, frameRate: Int? = nil, hasScalingMatrix: Bool? = nil, height: Int? = nil, id: Int? = nil, index: Int? = nil, language: String? = nil, languageCode: String? = nil, languageTag: String? = nil, level: Int? = nil, profile: String? = nil, refFrames: Int? = nil, samplingRate: Int? = nil, scanType: String? = nil, selected: Bool? = nil, streamIdentifier: String? = nil, streamType: Int? = nil, width: Int? = nil) {
self.bitDepth = bitDepth
self.bitrate = bitrate
self.channels = channels
self.chromaLocation = chromaLocation
self.chromaSubsampling = chromaSubsampling
self.codec = codec
self.codedHeight = codedHeight
self.codedWidth = codedWidth
self.colorPrimaries = colorPrimaries
self.colorRange = colorRange
self.colorSpace = colorSpace
self.colorTrc = colorTrc
self.`default` = `default`
self.displayTitle = displayTitle
self.extendedDisplayTitle = extendedDisplayTitle
self.frameRate = frameRate
self.hasScalingMatrix = hasScalingMatrix
self.height = height
self.id = id
self.index = index
self.language = language
self.languageCode = languageCode
self.languageTag = languageTag
self.level = level
self.profile = profile
self.refFrames = refFrames
self.samplingRate = samplingRate
self.scanType = scanType
self.selected = selected
self.streamIdentifier = streamIdentifier
self.streamType = streamType
self.width = width
}
}}
extension Operations.GetMetaDataByRatingKeyStream: Codable {
enum CodingKeys: String, CodingKey {
case bitDepth
case bitrate
case channels
case chromaLocation
case chromaSubsampling
case codec
case codedHeight
case codedWidth
case colorPrimaries
case colorRange
case colorSpace
case colorTrc
case `default` = "default"
case displayTitle
case extendedDisplayTitle
case frameRate
case hasScalingMatrix
case height
case id
case index
case language
case languageCode
case languageTag
case level
case profile
case refFrames
case samplingRate
case scanType
case selected
case streamIdentifier
case streamType
case width
}
}

View File

@@ -1,35 +0,0 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetMetaDataByRatingKeyWriter {
public let filter: String?
public let id: Int?
public let tag: String?
public let tagKey: String?
public let thumb: String?
/// Creates an object with the specified parameters
///
///
public init(filter: String? = nil, id: Int? = nil, tag: String? = nil, tagKey: String? = nil, thumb: String? = nil) {
self.filter = filter
self.id = id
self.tag = tag
self.tagKey = tagKey
self.thumb = thumb
}
}}
extension Operations.GetMetaDataByRatingKeyWriter: Codable {
enum CodingKeys: String, CodingKey {
case filter
case id
case tag
case tagKey
case thumb
}
}

View File

@@ -3,7 +3,7 @@
import Foundation import Foundation
extension Operations { extension Operations {
/// The type of media to retrieve. /// The type of media to retrieve or filter by.
/// 1 = movie /// 1 = movie
/// 2 = show /// 2 = show
/// 3 = season /// 3 = season

View File

@@ -8,7 +8,7 @@ extension Operations {
/// the ID of the playlist /// the ID of the playlist
@DecimalSerialized @DecimalSerialized
public private(set) var playlistID: Double public private(set) var playlistID: Double
/// The type of media to retrieve. /// The type of media to retrieve or filter by.
/// 1 = movie /// 1 = movie
/// 2 = show /// 2 = show
/// 3 = season /// 3 = season
@@ -20,7 +20,7 @@ extension Operations {
/// Creates an object with the specified parameters /// Creates an object with the specified parameters
/// ///
/// - Parameter playlistID: the ID of the playlist /// - Parameter playlistID: the ID of the playlist
/// - Parameter type: The type of media to retrieve. /// - Parameter type: The type of media to retrieve or filter by.
/// 1 = movie /// 1 = movie
/// 2 = show /// 2 = show
/// 3 = season /// 3 = season

View File

@@ -5,7 +5,7 @@ import Foundation
extension Operations { extension Operations {
/// A model object /// A model object
public struct GetRecentlyAddedLibraryRequest: APIValue { public struct GetRecentlyAddedLibraryRequest: APIValue {
/// The type of media to retrieve. /// The type of media to retrieve or filter by.
/// 1 = movie /// 1 = movie
/// 2 = show /// 2 = show
/// 3 = season /// 3 = season
@@ -33,7 +33,7 @@ extension Operations {
/// Creates an object with the specified parameters /// Creates an object with the specified parameters
/// ///
/// - Parameter type: The type of media to retrieve. /// - Parameter type: The type of media to retrieve or filter by.
/// 1 = movie /// 1 = movie
/// 2 = show /// 2 = show
/// 3 = season /// 3 = season

View File

@@ -7,7 +7,7 @@ extension Operations {
public struct GetRecentlyAddedRequest: APIValue { public struct GetRecentlyAddedRequest: APIValue {
/// The content directory ID. /// The content directory ID.
public let contentDirectoryID: Int public let contentDirectoryID: Int
/// The type of media to retrieve. /// The type of media to retrieve or filter by.
/// 1 = movie /// 1 = movie
/// 2 = show /// 2 = show
/// 3 = season /// 3 = season
@@ -36,7 +36,7 @@ extension Operations {
/// Creates an object with the specified parameters /// Creates an object with the specified parameters
/// ///
/// - Parameter contentDirectoryID: The content directory ID. /// - Parameter contentDirectoryID: The content directory ID.
/// - Parameter type: The type of media to retrieve. /// - Parameter type: The type of media to retrieve or filter by.
/// 1 = movie /// 1 = movie
/// 2 = show /// 2 = show
/// 3 = season /// 3 = season

View File

@@ -3,7 +3,7 @@
import Foundation import Foundation
extension Operations { extension Operations {
/// The type of media to retrieve. /// The type of media to retrieve or filter by.
/// 1 = movie /// 1 = movie
/// 2 = show /// 2 = show
/// 3 = season /// 3 = season

View File

@@ -9,7 +9,7 @@ extension Operations {
/// Note: This is unique in the context of the Plex server. /// Note: This is unique in the context of the Plex server.
/// ///
public let sectionKey: Int public let sectionKey: Int
/// The type of media to retrieve. /// The type of media to retrieve or filter by.
/// 1 = movie /// 1 = movie
/// 2 = show /// 2 = show
/// 3 = season /// 3 = season
@@ -23,7 +23,7 @@ extension Operations {
/// - Parameter sectionKey: The unique key of the Plex library. /// - Parameter sectionKey: The unique key of the Plex library.
/// Note: This is unique in the context of the Plex server. /// Note: This is unique in the context of the Plex server.
/// ///
/// - Parameter type: The type of media to retrieve. /// - Parameter type: The type of media to retrieve or filter by.
/// 1 = movie /// 1 = movie
/// 2 = show /// 2 = show
/// 3 = season /// 3 = season

View File

@@ -3,7 +3,7 @@
import Foundation import Foundation
extension Operations { extension Operations {
/// The type of media to retrieve. /// The type of media to retrieve or filter by.
/// 1 = movie /// 1 = movie
/// 2 = show /// 2 = show
/// 3 = season /// 3 = season

View File

@@ -5,7 +5,7 @@ import Foundation
extension Operations { extension Operations {
/// A model object /// A model object
public struct GetTopWatchedContentRequest: APIValue { public struct GetTopWatchedContentRequest: APIValue {
/// The type of media to retrieve. /// The type of media to retrieve or filter by.
/// 1 = movie /// 1 = movie
/// 2 = show /// 2 = show
/// 3 = season /// 3 = season
@@ -19,7 +19,7 @@ extension Operations {
/// Creates an object with the specified parameters /// Creates an object with the specified parameters
/// ///
/// - Parameter type: The type of media to retrieve. /// - Parameter type: The type of media to retrieve or filter by.
/// 1 = movie /// 1 = movie
/// 2 = show /// 2 = show
/// 3 = season /// 3 = season

View File

@@ -5,12 +5,14 @@ import Foundation
extension Operations { extension Operations {
/// A model object /// A model object
public struct Guids { public struct Guids {
public let id: String? /// The GUID value.
public let id: String
/// Creates an object with the specified parameters /// Creates an object with the specified parameters
/// ///
/// - Parameter id: The GUID value.
/// ///
public init(id: String? = nil) { public init(id: String) {
self.id = id self.id = id
} }
}} }}

View File

@@ -5,20 +5,34 @@ import Foundation
extension Operations { extension Operations {
/// A model object /// A model object
public struct Producer { public struct Producer {
public let filter: String? /// The filter string for the role.
public let id: Int? public let filter: String
public let tag: String? /// The unique role identifier.
public let tagKey: String? public let id: Int
/// The actor's name.
public let tag: String
/// A key associated with the actor tag.
public let tagKey: String
/// The character name or role.
public let role: String?
/// URL for the role thumbnail image.
public let thumb: String? public let thumb: String?
/// Creates an object with the specified parameters /// Creates an object with the specified parameters
/// ///
/// - Parameter filter: The filter string for the role.
/// - Parameter id: The unique role identifier.
/// - Parameter tag: The actor's name.
/// - Parameter tagKey: A key associated with the actor tag.
/// - Parameter role: The character name or role.
/// - Parameter thumb: URL for the role thumbnail image.
/// ///
public init(filter: String? = nil, id: Int? = nil, tag: String? = nil, tagKey: String? = nil, thumb: String? = nil) { public init(filter: String, id: Int, tag: String, tagKey: String, role: String? = nil, thumb: String? = nil) {
self.filter = filter self.filter = filter
self.id = id self.id = id
self.tag = tag self.tag = tag
self.tagKey = tagKey self.tagKey = tagKey
self.role = role
self.thumb = thumb self.thumb = thumb
} }
}} }}
@@ -29,6 +43,7 @@ extension Operations.Producer: Codable {
case id case id
case tag case tag
case tagKey case tagKey
case role
case thumb case thumb
} }
} }

View File

@@ -3,7 +3,7 @@
import Foundation import Foundation
extension Operations { extension Operations {
/// The type of media to retrieve. /// The type of media to retrieve or filter by.
/// 1 = movie /// 1 = movie
/// 2 = show /// 2 = show
/// 3 = season /// 3 = season

View File

@@ -0,0 +1,55 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct Rating {
/// The image or reference for the rating.
public let image: String
/// The type of rating (e.g., audience, critic).
public let type: String
/// The rating value.
@DecimalSerialized
public private(set) var value: Double
/// Creates an object with the specified parameters
///
/// - Parameter image: The image or reference for the rating.
/// - Parameter type: The type of rating (e.g., audience, critic).
/// - Parameter value: The rating value.
///
public init(image: String, type: String, value: Double) {
self.image = image
self.type = type
self._value = DecimalSerialized<Double>(wrappedValue: value)
}
}}
extension Operations.Rating: Codable {
enum CodingKeys: String, CodingKey {
case image
case type
case value
}
public init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
self.image = try container.decode(String.self, forKey: .image)
self.type = try container.decode(String.self, forKey: .type)
self._value = try container.decode(DecimalSerialized<Double>.self, forKey: .value)
}
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(self.image, forKey: .image)
try container.encode(self.type, forKey: .type)
try container.encode(self._value, forKey: .value)
}
}
extension Operations.Rating {
var valueWrapper: DecimalSerialized<Double> {
return _value
}
}

View File

@@ -1,51 +0,0 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct Ratings {
public let image: String?
public let type: String?
@DecimalSerialized
public private(set) var value: Double?
/// Creates an object with the specified parameters
///
///
public init(image: String? = nil, type: String? = nil, value: Double? = nil) {
self.image = image
self.type = type
self._value = DecimalSerialized<Double?>(wrappedValue: value)
}
}}
extension Operations.Ratings: Codable {
enum CodingKeys: String, CodingKey {
case image
case type
case value
}
public init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
self.image = try container.decodeIfPresent(String.self, forKey: .image)
self.type = try container.decodeIfPresent(String.self, forKey: .type)
self._value = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .value) ?? DecimalSerialized<Double?>(wrappedValue: nil)
}
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encodeIfPresent(self.image, forKey: .image)
try container.encodeIfPresent(self.type, forKey: .type)
if self.value != nil {
try container.encode(self._value, forKey: .value)
}
}
}
extension Operations.Ratings {
var valueWrapper: DecimalSerialized<Double?> {
return _value
}
}

View File

@@ -0,0 +1,35 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct Similar {
/// The filter string for similar items.
public let filter: String
/// The unique similar item identifier.
public let id: Int
/// The tag or title of the similar content.
public let tag: String
/// Creates an object with the specified parameters
///
/// - Parameter filter: The filter string for similar items.
/// - Parameter id: The unique similar item identifier.
/// - Parameter tag: The tag or title of the similar content.
///
public init(filter: String, id: Int, tag: String) {
self.filter = filter
self.id = id
self.tag = tag
}
}}
extension Operations.Similar: Codable {
enum CodingKeys: String, CodingKey {
case filter
case id
case tag
}
}

View File

@@ -3,7 +3,7 @@
import Foundation import Foundation
extension Operations { extension Operations {
/// The type of media to retrieve. /// The type of media to retrieve or filter by.
/// 1 = movie /// 1 = movie
/// 2 = show /// 2 = show
/// 3 = season /// 3 = season

View File

@@ -743,8 +743,9 @@ public protocol SearchAPI {
/// - ``getSearchLibrary(request:)`` /// - ``getSearchLibrary(request:)``
/// - ``getGenresLibrary(request:)`` /// - ``getGenresLibrary(request:)``
/// - ``getCountriesLibrary(request:)`` /// - ``getCountriesLibrary(request:)``
/// - ``getActorsLibrary(request:)``
/// - ``getSearchAllLibraries(request:)`` /// - ``getSearchAllLibraries(request:)``
/// - ``getMetaDataByRatingKey(request:)`` /// - ``getMediaMetaData(request:)``
/// - ``getMetadataChildren(request:)`` /// - ``getMetadataChildren(request:)``
/// - ``getTopWatchedContent(request:)`` /// - ``getTopWatchedContent(request:)``
/// - ``getOnDeck()`` /// - ``getOnDeck()``
@@ -907,6 +908,14 @@ public protocol LibraryAPI {
/// - Throws: An error of type ``PlexswiftError`` /// - Throws: An error of type ``PlexswiftError``
func getCountriesLibrary(request: Operations.GetCountriesLibraryRequest) async throws -> Response<Operations.GetCountriesLibraryResponse> func getCountriesLibrary(request: Operations.GetCountriesLibraryRequest) async throws -> Response<Operations.GetCountriesLibraryResponse>
/// Retrieves a list of all the actors that are found for the media in this library.
///
///
/// - Parameter request: A ``Operations/GetActorsLibraryRequest`` object describing the input to the API operation
/// - Returns: A ``Operations/GetActorsLibraryResponse`` object describing the result of the API operation
/// - Throws: An error of type ``PlexswiftError``
func getActorsLibrary(request: Operations.GetActorsLibraryRequest) async throws -> Response<Operations.GetActorsLibraryResponse>
/// Search the provided query across all library sections, or a single section, and return matches as hubs, split up by type. /// Search the provided query across all library sections, or a single section, and return matches as hubs, split up by type.
/// ///
/// ///
@@ -915,13 +924,13 @@ public protocol LibraryAPI {
/// - Throws: An error of type ``PlexswiftError`` /// - Throws: An error of type ``PlexswiftError``
func getSearchAllLibraries(request: Operations.GetSearchAllLibrariesRequest) async throws -> Response<Operations.GetSearchAllLibrariesResponse> func getSearchAllLibraries(request: Operations.GetSearchAllLibrariesRequest) async throws -> Response<Operations.GetSearchAllLibrariesResponse>
/// This endpoint will return the metadata of a library item specified with the ratingKey. /// This endpoint will return all the (meta)data of a library item specified with by the ratingKey.
/// ///
/// ///
/// - Parameter request: A ``Operations/GetMetaDataByRatingKeyRequest`` object describing the input to the API operation /// - Parameter request: A ``Operations/GetMediaMetaDataRequest`` object describing the input to the API operation
/// - Returns: A ``Operations/GetMetaDataByRatingKeyResponse`` object describing the result of the API operation /// - Returns: A ``Operations/GetMediaMetaDataResponse`` object describing the result of the API operation
/// - Throws: An error of type ``PlexswiftError`` /// - Throws: An error of type ``PlexswiftError``
func getMetaDataByRatingKey(request: Operations.GetMetaDataByRatingKeyRequest) async throws -> Response<Operations.GetMetaDataByRatingKeyResponse> func getMediaMetaData(request: Operations.GetMediaMetaDataRequest) async throws -> Response<Operations.GetMediaMetaDataResponse>
/// This endpoint will return the children of of a library item specified with the ratingKey. /// This endpoint will return the children of of a library item specified with the ratingKey.
/// ///

View File

@@ -62,7 +62,7 @@ final class URLRequestBuilder: URLRequestConfiguration {
urlRequest.setValue(contentType, forHTTPHeaderField: "Content-Type") urlRequest.setValue(contentType, forHTTPHeaderField: "Content-Type")
} }
urlRequest.setValue("speakeasy-sdk/swift 0.9.11 2.428.1 0.0.3 plexswift", forHTTPHeaderField: telemetryHeader.headerName) urlRequest.setValue("speakeasy-sdk/swift 0.9.13 2.428.1 0.0.3 plexswift", forHTTPHeaderField: telemetryHeader.headerName)
addSecurityParameters(to: &urlRequest) addSecurityParameters(to: &urlRequest)

View File

@@ -566,33 +566,8 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: swift - lang: swift
label: key label: data
source: |- source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"<YOUR_API_KEY_HERE>\"))\n\nlet response = try await client.library.getMediaMetaData(\n request: Operations.GetMediaMetaDataRequest(\n ratingKey: 9518, \n asyncAugmentMetadata: true, \n asyncCheckFiles: true, \n asyncRefreshAnalysis: true, \n asyncRefreshLocalMediaAgent: true, \n includeChapters: true, \n includeConcerts: true, \n includeExternalMedia: true, \n includeExtras: true, \n includeOnDeck: true, \n includePopularLeaves: true, \n includePreferences: true, \n includeReviews: true, \n includeStations: true\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .badRequest(let badRequest):\n // Handle response\n break\ncase .unauthorized(let unauthorized):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}"
import Foundation
import Plexswift
let client = Client(security: .accessToken("<YOUR_API_KEY_HERE>"))
let response = try await client.library.getMetaDataByRatingKey(
request: Operations.GetMetaDataByRatingKeyRequest(
ratingKey: 9518
)
)
switch response.data {
case .object(let object):
// Handle response
break
case .badRequest(let badRequest):
// Handle response
break
case .unauthorized(let unauthorized):
// Handle response
break
case .empty:
// Handle empty response
break
}
- target: $["paths"]["/library/metadata/{ratingKey}/banner"]["get"] - target: $["paths"]["/library/metadata/{ratingKey}/banner"]["get"]
update: update:
x-codeSamples: x-codeSamples:
@@ -717,68 +692,24 @@ actions:
- lang: swift - lang: swift
label: details label: details
source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"<YOUR_API_KEY_HERE>\"))\n\nlet response = try await client.library.getLibraryDetails(\n request: Operations.GetLibraryDetailsRequest(\n sectionKey: 9518, \n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .badRequest(let badRequest):\n // Handle response\n break\ncase .unauthorized(let unauthorized):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"<YOUR_API_KEY_HERE>\"))\n\nlet response = try await client.library.getLibraryDetails(\n request: Operations.GetLibraryDetailsRequest(\n sectionKey: 9518, \n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .badRequest(let badRequest):\n // Handle response\n break\ncase .unauthorized(let unauthorized):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}"
- target: $["paths"]["/library/sections/{sectionKey}/actor"]["get"]
update:
x-codeSamples:
- lang: swift
label: library
source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"<YOUR_API_KEY_HERE>\"))\n\nlet response = try await client.library.getActorsLibrary(\n request: Operations.GetActorsLibraryRequest(\n sectionKey: 9518, \n type: .tvShow\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .badRequest(let badRequest):\n // Handle response\n break\ncase .unauthorized(let unauthorized):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}"
- target: $["paths"]["/library/sections/{sectionKey}/country"]["get"] - target: $["paths"]["/library/sections/{sectionKey}/country"]["get"]
update: update:
x-codeSamples: x-codeSamples:
- lang: swift - lang: swift
label: library label: library
source: |- source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"<YOUR_API_KEY_HERE>\"))\n\nlet response = try await client.library.getCountriesLibrary(\n request: Operations.GetCountriesLibraryRequest(\n sectionKey: 9518, \n type: .tvShow\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .badRequest(let badRequest):\n // Handle response\n break\ncase .unauthorized(let unauthorized):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}"
import Foundation
import Plexswift
let client = Client(security: .accessToken("<YOUR_API_KEY_HERE>"))
let response = try await client.library.getCountriesLibrary(
request: Operations.GetCountriesLibraryRequest(
sectionKey: 9518
)
)
switch response.data {
case .object(let object):
// Handle response
break
case .badRequest(let badRequest):
// Handle response
break
case .unauthorized(let unauthorized):
// Handle response
break
case .empty:
// Handle empty response
break
}
- target: $["paths"]["/library/sections/{sectionKey}/genre"]["get"] - target: $["paths"]["/library/sections/{sectionKey}/genre"]["get"]
update: update:
x-codeSamples: x-codeSamples:
- lang: swift - lang: swift
label: library label: library
source: |- source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"<YOUR_API_KEY_HERE>\"))\n\nlet response = try await client.library.getGenresLibrary(\n request: Operations.GetGenresLibraryRequest(\n sectionKey: 9518, \n type: .tvShow\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .badRequest(let badRequest):\n // Handle response\n break\ncase .unauthorized(let unauthorized):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}"
import Foundation
import Plexswift
let client = Client(security: .accessToken("<YOUR_API_KEY_HERE>"))
let response = try await client.library.getGenresLibrary(
request: Operations.GetGenresLibraryRequest(
sectionKey: 9518
)
)
switch response.data {
case .object(let object):
// Handle response
break
case .badRequest(let badRequest):
// Handle response
break
case .unauthorized(let unauthorized):
// Handle response
break
case .empty:
// Handle empty response
break
}
- target: $["paths"]["/library/sections/{sectionKey}/refresh"]["get"] - target: $["paths"]["/library/sections/{sectionKey}/refresh"]["get"]
update: update:
x-codeSamples: x-codeSamples:
@@ -796,7 +727,7 @@ actions:
x-codeSamples: x-codeSamples:
- lang: swift - lang: swift
label: items label: items
source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"<YOUR_API_KEY_HERE>\"))\n\nlet response = try await client.library.getLibraryItems(\n request: Operations.GetLibraryItemsRequest(\n sectionKey: 9518, \n tag: .edition, \n includeGuids: .enable, \n includeMeta: .enable, \n type: .tvShow, \n xPlexContainerSize: 50, \n xPlexContainerStart: 0\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .badRequest(let badRequest):\n // Handle response\n break\ncase .unauthorized(let unauthorized):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"<YOUR_API_KEY_HERE>\"))\n\nlet response = try await client.library.getLibraryItems(\n request: Operations.GetLibraryItemsRequest(\n sectionKey: 9518, \n tag: .edition, \n type: .tvShow, \n includeGuids: .enable, \n includeMeta: .enable, \n xPlexContainerSize: 50, \n xPlexContainerStart: 0\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .badRequest(let badRequest):\n // Handle response\n break\ncase .unauthorized(let unauthorized):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}"
- target: $["paths"]["/log"]["get"] - target: $["paths"]["/log"]["get"]
update: update:
x-codeSamples: x-codeSamples: