ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.405.6

This commit is contained in:
speakeasybot
2025-03-10 00:08:27 +00:00
parent 0cbaa51460
commit 37dba6bb19
66 changed files with 1004 additions and 1754 deletions

File diff suppressed because one or more lines are too long

View File

@@ -14,7 +14,7 @@ generation:
auth: auth:
oAuth2ClientCredentialsEnabled: true oAuth2ClientCredentialsEnabled: true
swift: swift:
version: 0.10.3 version: 0.10.5
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:bf7001af017ce5072c503bfbaf60793f94549163b517489dc53e4f7b685659c0 sourceRevisionDigest: sha256:2066ba94b55e21d651c79003e3cf402fb77c52a0969fc52310b3383fbed038f4
sourceBlobDigest: sha256:ed2b29043c84f32d2efa92a126083fd9a81644a7ce9c6ac86d9aeb3493cbd6f8 sourceBlobDigest: sha256:1737023e29cd9cf36c07ccd8c8c48c47e14f47ce22b4d6ba9ee241afbbd8f351
tags: tags:
- latest - latest
- main - main
@@ -18,10 +18,10 @@ targets:
plexswift: plexswift:
source: plexapi source: plexapi
sourceNamespace: plexapi sourceNamespace: plexapi
sourceRevisionDigest: sha256:bf7001af017ce5072c503bfbaf60793f94549163b517489dc53e4f7b685659c0 sourceRevisionDigest: sha256:2066ba94b55e21d651c79003e3cf402fb77c52a0969fc52310b3383fbed038f4
sourceBlobDigest: sha256:ed2b29043c84f32d2efa92a126083fd9a81644a7ce9c6ac86d9aeb3493cbd6f8 sourceBlobDigest: sha256:1737023e29cd9cf36c07ccd8c8c48c47e14f47ce22b4d6ba9ee241afbbd8f351
codeSamplesNamespace: code-samples-swift-plexswift codeSamplesNamespace: code-samples-swift-plexswift
codeSamplesRevisionDigest: sha256:2791c989a9154c63541c0e45d5db9e043305012a241de17c40de5c038efcc7e4 codeSamplesRevisionDigest: sha256:d7b2b324db0f365223bee21d09cb657417756c519e67d3425094d0bf48cea1d3
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.10.3")) .package(url: "https://github.com/LukeHagar/plexswift.git", .upToNextMajor(from: "0.10.5"))
] ]
``` ```
<!-- End SDK Installation [installation] --> <!-- End SDK Installation [installation] -->
@@ -148,7 +148,6 @@ case .empty:
* [getMediaMetaData](docs/sdks/library/README.md#getmediametadata) - Get Media Metadata * [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
### [Log](docs/sdks/log/README.md) ### [Log](docs/sdks/log/README.md)

View File

@@ -863,3 +863,13 @@ Based on:
- [swift v0.10.3] . - [swift v0.10.3] .
### Releases ### Releases
- [Swift Package Manager v0.10.3] https://github.com/LukeHagar/plexswift/releases/tag/v0.10.3 - . - [Swift Package Manager v0.10.3] https://github.com/LukeHagar/plexswift/releases/tag/v0.10.3 - .
## 2025-03-10 00:07:14
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.405.6 (2.428.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [swift v0.10.5] .
### Releases
- [Swift Package Manager v0.10.5] https://github.com/LukeHagar/plexswift/releases/tag/v0.10.5 - .

View File

@@ -148,7 +148,6 @@ case .empty:
- ``Operations/GetLibraryHubsBadRequest`` - ``Operations/GetLibraryHubsBadRequest``
- ``Operations/GetMetadataChildrenBadRequest`` - ``Operations/GetMetadataChildrenBadRequest``
- ``Operations/GetMyPlexAccountBadRequest`` - ``Operations/GetMyPlexAccountBadRequest``
- ``Operations/GetOnDeckBadRequest``
- ``Operations/GetPinBadRequest`` - ``Operations/GetPinBadRequest``
- ``Operations/GetPlaylistBadRequest`` - ``Operations/GetPlaylistBadRequest``
- ``Operations/GetPlaylistContentsBadRequest`` - ``Operations/GetPlaylistContentsBadRequest``
@@ -231,7 +230,6 @@ case .empty:
- ``Operations/GetLibraryHubsResponse`` - ``Operations/GetLibraryHubsResponse``
- ``Operations/GetMetadataChildrenResponse`` - ``Operations/GetMetadataChildrenResponse``
- ``Operations/GetMyPlexAccountResponse`` - ``Operations/GetMyPlexAccountResponse``
- ``Operations/GetOnDeckResponse``
- ``Operations/GetPinResponse`` - ``Operations/GetPinResponse``
- ``Operations/GetPlaylistResponse`` - ``Operations/GetPlaylistResponse``
- ``Operations/GetPlaylistContentsResponse`` - ``Operations/GetPlaylistContentsResponse``
@@ -379,8 +377,10 @@ case .empty:
- ``Operations/GetAllMediaLibraryFieldType`` - ``Operations/GetAllMediaLibraryFieldType``
- ``Operations/GetAllMediaLibraryFilter`` - ``Operations/GetAllMediaLibraryFilter``
- ``Operations/GetAllMediaLibraryGenre`` - ``Operations/GetAllMediaLibraryGenre``
- ``Operations/GetAllMediaLibraryGuids``
- ``Operations/GetAllMediaLibraryHasThumbnail`` - ``Operations/GetAllMediaLibraryHasThumbnail``
- ``Operations/GetAllMediaLibraryImage`` - ``Operations/GetAllMediaLibraryImage``
- ``Operations/GetAllMediaLibraryLibrary1``
- ``Operations/GetAllMediaLibraryLibraryErrors`` - ``Operations/GetAllMediaLibraryLibraryErrors``
- ``Operations/GetAllMediaLibraryLibraryOptimizedForStreaming`` - ``Operations/GetAllMediaLibraryLibraryOptimizedForStreaming``
- ``Operations/GetAllMediaLibraryLibraryResponseType`` - ``Operations/GetAllMediaLibraryLibraryResponseType``
@@ -441,13 +441,10 @@ case .empty:
- ``Operations/GetLibraryItemsCountry`` - ``Operations/GetLibraryItemsCountry``
- ``Operations/GetLibraryItemsDefaultDirection`` - ``Operations/GetLibraryItemsDefaultDirection``
- ``Operations/GetLibraryItemsDirector`` - ``Operations/GetLibraryItemsDirector``
- ``Operations/GetLibraryItemsEnableCreditsMarkerGeneration``
- ``Operations/GetLibraryItemsEpisodeSort``
- ``Operations/GetLibraryItemsErrors`` - ``Operations/GetLibraryItemsErrors``
- ``Operations/GetLibraryItemsField`` - ``Operations/GetLibraryItemsField``
- ``Operations/GetLibraryItemsFieldType`` - ``Operations/GetLibraryItemsFieldType``
- ``Operations/GetLibraryItemsFilter`` - ``Operations/GetLibraryItemsFilter``
- ``Operations/GetLibraryItemsFlattenSeasons``
- ``Operations/GetLibraryItemsGenre`` - ``Operations/GetLibraryItemsGenre``
- ``Operations/GetLibraryItemsHasThumbnail`` - ``Operations/GetLibraryItemsHasThumbnail``
- ``Operations/GetLibraryItemsImage`` - ``Operations/GetLibraryItemsImage``
@@ -465,10 +462,8 @@ case .empty:
- ``Operations/GetLibraryItemsLocation`` - ``Operations/GetLibraryItemsLocation``
- ``Operations/GetLibraryItemsMedia`` - ``Operations/GetLibraryItemsMedia``
- ``Operations/GetLibraryItemsMediaContainer`` - ``Operations/GetLibraryItemsMediaContainer``
- ``Operations/GetLibraryItemsMediaGuid``
- ``Operations/GetLibraryItemsMeta`` - ``Operations/GetLibraryItemsMeta``
- ``Operations/GetLibraryItemsMetadata`` - ``Operations/GetLibraryItemsMetadata``
- ``Operations/GetLibraryItemsMetaDataRating``
- ``Operations/GetLibraryItemsOperator`` - ``Operations/GetLibraryItemsOperator``
- ``Operations/GetLibraryItemsOptimizedForStreaming`` - ``Operations/GetLibraryItemsOptimizedForStreaming``
- ``Operations/GetLibraryItemsPart`` - ``Operations/GetLibraryItemsPart``
@@ -477,7 +472,6 @@ case .empty:
- ``Operations/GetLibraryItemsRequest`` - ``Operations/GetLibraryItemsRequest``
- ``Operations/GetLibraryItemsResponseBody`` - ``Operations/GetLibraryItemsResponseBody``
- ``Operations/GetLibraryItemsRole`` - ``Operations/GetLibraryItemsRole``
- ``Operations/GetLibraryItemsShowOrdering``
- ``Operations/GetLibraryItemsSort`` - ``Operations/GetLibraryItemsSort``
- ``Operations/GetLibraryItemsStream`` - ``Operations/GetLibraryItemsStream``
- ``Operations/GetLibraryItemsType`` - ``Operations/GetLibraryItemsType``
@@ -501,9 +495,11 @@ case .empty:
- ``Operations/GetMediaMetaDataMetadata`` - ``Operations/GetMediaMetaDataMetadata``
- ``Operations/GetMediaMetaDataOptimizedForStreaming`` - ``Operations/GetMediaMetaDataOptimizedForStreaming``
- ``Operations/GetMediaMetaDataPart`` - ``Operations/GetMediaMetaDataPart``
- ``Operations/GetMediaMetaDataProducer``
- ``Operations/GetMediaMetaDataRequest`` - ``Operations/GetMediaMetaDataRequest``
- ``Operations/GetMediaMetaDataResponseBody`` - ``Operations/GetMediaMetaDataResponseBody``
- ``Operations/GetMediaMetaDataRole`` - ``Operations/GetMediaMetaDataRole``
- ``Operations/GetMediaMetaDataSimilar``
- ``Operations/GetMediaMetaDataStream`` - ``Operations/GetMediaMetaDataStream``
- ``Operations/GetMediaMetaDataUltraBlurColors`` - ``Operations/GetMediaMetaDataUltraBlurColors``
- ``Operations/GetMediaMetaDataUnauthorized`` - ``Operations/GetMediaMetaDataUnauthorized``
@@ -515,6 +511,7 @@ case .empty:
- ``Operations/GetMediaProvidersResponseBody`` - ``Operations/GetMediaProvidersResponseBody``
- ``Operations/GetMediaProvidersServerErrors`` - ``Operations/GetMediaProvidersServerErrors``
- ``Operations/GetMediaProvidersUnauthorized`` - ``Operations/GetMediaProvidersUnauthorized``
- ``Operations/GetRecentlyAdded1``
- ``Operations/GetRecentlyAddedActiveDirection`` - ``Operations/GetRecentlyAddedActiveDirection``
- ``Operations/GetRecentlyAddedDefaultDirection`` - ``Operations/GetRecentlyAddedDefaultDirection``
- ``Operations/GetRecentlyAddedField`` - ``Operations/GetRecentlyAddedField``
@@ -526,6 +523,7 @@ case .empty:
- ``Operations/GetRecentlyAddedMediaContainer`` - ``Operations/GetRecentlyAddedMediaContainer``
- ``Operations/GetRecentlyAddedMetadata`` - ``Operations/GetRecentlyAddedMetadata``
- ``Operations/GetRecentlyAddedOperator`` - ``Operations/GetRecentlyAddedOperator``
- ``Operations/GetRecentlyAddedOptimizedForStreaming``
- ``Operations/GetRecentlyAddedRequest`` - ``Operations/GetRecentlyAddedRequest``
- ``Operations/GetRecentlyAddedResponseBody`` - ``Operations/GetRecentlyAddedResponseBody``
- ``Operations/GetRecentlyAddedSort`` - ``Operations/GetRecentlyAddedSort``
@@ -683,16 +681,6 @@ case .empty:
- ``Operations/GetMyPlexAccountResponseBody`` - ``Operations/GetMyPlexAccountResponseBody``
- ``Operations/GetMyPlexAccountServerErrors`` - ``Operations/GetMyPlexAccountServerErrors``
- ``Operations/GetMyPlexAccountUnauthorized`` - ``Operations/GetMyPlexAccountUnauthorized``
- ``Operations/GetOnDeckErrors``
- ``Operations/GetOnDeckGuids``
- ``Operations/GetOnDeckLibraryErrors``
- ``Operations/GetOnDeckMedia``
- ``Operations/GetOnDeckMediaContainer``
- ``Operations/GetOnDeckMetadata``
- ``Operations/GetOnDeckPart``
- ``Operations/GetOnDeckResponseBody``
- ``Operations/GetOnDeckStream``
- ``Operations/GetOnDeckUnauthorized``
- ``Operations/GetPinAuthPinContainer`` - ``Operations/GetPinAuthPinContainer``
- ``Operations/GetPinErrors`` - ``Operations/GetPinErrors``
- ``Operations/GetPinRequest`` - ``Operations/GetPinRequest``
@@ -942,6 +930,7 @@ case .empty:
- ``Operations/QueryParamOnlyTransient`` - ``Operations/QueryParamOnlyTransient``
- ``Operations/QueryParamSmart`` - ``Operations/QueryParamSmart``
- ``Operations/QueryParamType`` - ``Operations/QueryParamType``
- ``Operations/Rating``
- ``Operations/Ratings`` - ``Operations/Ratings``
- ``Operations/Release`` - ``Operations/Release``
- ``Operations/ResponseBody`` - ``Operations/ResponseBody``

View File

@@ -154,15 +154,6 @@ class _LibraryAPI: LibraryAPI {
) )
} }
public func getOnDeck() async throws -> Response<Operations.GetOnDeckResponse> {
return try await client.makeRequest(
configureRequest: { configuration in
try configureGetOnDeckRequest(with: configuration)
},
handleResponse: handleGetOnDeckResponse
)
}
} }
// MARK: - Request Configuration // MARK: - Request Configuration
@@ -289,12 +280,6 @@ private func configureGetTopWatchedContentRequest(with configuration: URLRequest
configuration.telemetryHeader = .userAgent configuration.telemetryHeader = .userAgent
} }
private func configureGetOnDeckRequest(with configuration: URLRequestConfiguration) throws {
configuration.path = "/library/onDeck"
configuration.method = .get
configuration.telemetryHeader = .userAgent
}
// MARK: - Response Handlers // MARK: - Response Handlers
private func handleGetFileHashResponse(response: Client.APIResponse) throws -> Operations.GetFileHashResponse { private func handleGetFileHashResponse(response: Client.APIResponse) throws -> Operations.GetFileHashResponse {
@@ -801,35 +786,3 @@ private func handleGetTopWatchedContentResponse(response: Client.APIResponse) th
return .empty return .empty
} }
private func handleGetOnDeckResponse(response: Client.APIResponse) throws -> Operations.GetOnDeckResponse {
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.GetOnDeckResponseBody.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.GetOnDeckBadRequest.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.GetOnDeckUnauthorized.self, from: data))
} catch {
throw ResponseHandlerError.failedToDecodeJSON(error)
}
}
}
return .empty
}

View File

@@ -3,7 +3,7 @@
import Foundation import Foundation
extension Operations.GetLibraryItemsEpisodeSort: Serializable { extension Operations.GetAllMediaLibraryLibrary1: Serializable {
func serialize(with format: SerializableFormat) throws -> String { func serialize(with format: SerializableFormat) throws -> String {
return try rawValue.serialize(with: format) return try rawValue.serialize(with: format)
} }

View File

@@ -1,14 +0,0 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations.GetLibraryItemsEnableCreditsMarkerGeneration: 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

@@ -1,14 +0,0 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations.GetLibraryItemsFlattenSeasons: 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

@@ -3,7 +3,7 @@
import Foundation import Foundation
extension Operations.GetLibraryItemsShowOrdering: Serializable { extension Operations.GetRecentlyAdded1: Serializable {
func serialize(with format: SerializableFormat) throws -> String { func serialize(with format: SerializableFormat) throws -> String {
return try rawValue.serialize(with: format) return try rawValue.serialize(with: format)
} }

View File

@@ -0,0 +1,10 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations.GetRecentlyAddedOptimizedForStreaming: Serializable {
func serialize(with format: SerializableFormat) throws -> String {
return ""
}
}

View File

@@ -5,10 +5,6 @@ import Foundation
extension Operations.OptimizedForStreaming: Serializable { extension Operations.OptimizedForStreaming: Serializable {
func serialize(with format: SerializableFormat) throws -> String { func serialize(with format: SerializableFormat) throws -> String {
return try rawValue.serialize(with: format) return ""
}
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
return [QueryParameter(key: [], serialized: try serialize(with: format))]
} }
} }

View File

@@ -5,12 +5,14 @@ import Foundation
extension Operations { extension Operations {
/// A model object /// A model object
public struct Collection { public struct Collection {
public let tag: String? /// The user-made collection this media item belongs to
public let tag: String
/// Creates an object with the specified parameters /// Creates an object with the specified parameters
/// ///
/// - Parameter tag: The user-made collection this media item belongs to
/// ///
public init(tag: String? = nil) { public init(tag: String) {
self.tag = tag self.tag = tag
} }
}} }}

View File

@@ -3,21 +3,29 @@
import Foundation import Foundation
extension Operations { extension Operations {
/// A model object /// The filter query string for country media items.
public struct Country { public struct Country {
public let tag: String? public let id: Int
/// The country of origin of this media item
public let tag: String
public let filter: String?
/// Creates an object with the specified parameters /// Creates an object with the specified parameters
/// ///
/// - Parameter tag: The country of origin of this media item
/// ///
public init(tag: String? = nil) { public init(id: Int, tag: String, filter: String? = nil) {
self.id = id
self.tag = tag self.tag = tag
self.filter = filter
} }
}} }}
extension Operations.Country: Codable { extension Operations.Country: Codable {
enum CodingKeys: String, CodingKey { enum CodingKeys: String, CodingKey {
case id
case tag case tag
case filter
} }
} }

View File

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

View File

@@ -3,20 +3,30 @@
import Foundation import Foundation
extension Operations { extension Operations {
/// A model object /// The filter query string for similar items.
public struct Genre { public struct Genre {
public let tag: String? public let filter: String
public let id: Int
/// The genre name of this media-item
///
public let tag: String
/// Creates an object with the specified parameters /// Creates an object with the specified parameters
/// ///
/// - Parameter tag: The genre name of this media-item
/// ///
public init(tag: String? = nil) { ///
public init(filter: String, id: Int, tag: String) {
self.filter = filter
self.id = id
self.tag = tag self.tag = tag
} }
}} }}
extension Operations.Genre: Codable { extension Operations.Genre: Codable {
enum CodingKeys: String, CodingKey { enum CodingKeys: String, CodingKey {
case filter
case id
case tag case tag
} }
} }

View File

@@ -5,12 +5,14 @@ import Foundation
extension Operations { extension Operations {
/// A model object /// A model object
public struct GetAllMediaLibraryGenre { public struct GetAllMediaLibraryGenre {
/// The country of origin of this media item /// The genre name of this media-item
///
public let tag: String public let tag: String
/// Creates an object with the specified parameters /// Creates an object with the specified parameters
/// ///
/// - Parameter tag: The country of origin of this media item /// - Parameter tag: The genre name of this media-item
///
/// ///
public init(tag: String) { public init(tag: String) {
self.tag = tag self.tag = tag

View File

@@ -4,18 +4,22 @@ import Foundation
extension Operations { extension Operations {
/// A model object /// A model object
public struct GetOnDeckGuids { public struct GetAllMediaLibraryGuids {
/// The unique identifier for the Guid. Can be imdb://tt0286347, tmdb://1763, tvdb://2337
///
public let id: String? public let id: String?
/// Creates an object with the specified parameters /// Creates an object with the specified parameters
/// ///
/// - Parameter id: The unique identifier for the Guid. Can be imdb://tt0286347, tmdb://1763, tvdb://2337
///
/// ///
public init(id: String? = nil) { public init(id: String? = nil) {
self.id = id self.id = id
} }
}} }}
extension Operations.GetOnDeckGuids: Codable { extension Operations.GetAllMediaLibraryGuids: Codable {
enum CodingKeys: String, CodingKey { enum CodingKeys: String, CodingKey {
case id case id
} }

View File

@@ -0,0 +1,9 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
public enum GetAllMediaLibraryLibrary1: Int, Codable, APIValue {
case zero = 0
case one = 1
}}

View File

@@ -5,14 +5,14 @@ import Foundation
extension Operations { extension Operations {
/// Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true /// Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
public enum GetAllMediaLibraryLibraryOptimizedForStreaming { public enum GetAllMediaLibraryLibraryOptimizedForStreaming {
case getAllMediaLibrary1(Operations.GetAllMediaLibrary1) case getAllMediaLibraryLibrary1(Operations.GetAllMediaLibraryLibrary1)
case bool(Bool) case bool(Bool)
}} }}
extension Operations.GetAllMediaLibraryLibraryOptimizedForStreaming: Codable { extension Operations.GetAllMediaLibraryLibraryOptimizedForStreaming: Codable {
public init(from decoder: Decoder) throws { public init(from decoder: Decoder) throws {
if let value = try? Operations.GetAllMediaLibrary1(from: decoder) { if let value = try? Operations.GetAllMediaLibraryLibrary1(from: decoder) {
self = .getAllMediaLibrary1(value) self = .getAllMediaLibraryLibrary1(value)
} else if let value = try? Bool(from: decoder) { } else if let value = try? Bool(from: decoder) {
self = .bool(value) self = .bool(value)
} else { } else {
@@ -22,7 +22,7 @@ extension Operations.GetAllMediaLibraryLibraryOptimizedForStreaming: Codable {
public func encode(to encoder: Encoder) throws { public func encode(to encoder: Encoder) throws {
switch self { switch self {
case .getAllMediaLibrary1(let value): case .getAllMediaLibraryLibrary1(let value):
try value.encode(to: encoder) try value.encode(to: encoder)
case .bool(let value): case .bool(let value):
try value.encode(to: encoder) try value.encode(to: encoder)

View File

@@ -5,12 +5,8 @@ import Foundation
extension Operations { extension Operations {
/// A model object /// A model object
public struct GetAllMediaLibraryMedia { public struct GetAllMediaLibraryMedia {
/// Indicates whether voice activity is detected.
public let hasVoiceActivity: Bool
/// Unique media identifier. /// Unique media identifier.
public let id: Int public let id: Int
/// An array of parts for this media item.
public let part: [Operations.GetAllMediaLibraryPart]
/// Aspect ratio of the video. /// Aspect ratio of the video.
@DecimalSerialized @DecimalSerialized
public private(set) var aspectRatio: Double? public private(set) var aspectRatio: Double?
@@ -28,10 +24,14 @@ extension Operations {
/// Duration of the media in milliseconds. /// Duration of the media in milliseconds.
public let duration: Int? public let duration: Int?
public let has64bitOffsets: Bool? public let has64bitOffsets: Bool?
/// Indicates whether voice activity is detected.
public let hasVoiceActivity: Bool?
/// Video height in pixels. /// Video height in pixels.
public let height: Int? public let height: Int?
/// Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true /// Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
public let optimizedForStreaming: Operations.GetAllMediaLibraryOptimizedForStreaming? public let optimizedForStreaming: Operations.GetAllMediaLibraryOptimizedForStreaming?
/// An array of parts for this media item.
public let part: [Operations.GetAllMediaLibraryPart]?
/// Video codec used. /// Video codec used.
public let videoCodec: String? public let videoCodec: String?
/// Frame rate of the video. Values found include NTSC, PAL, 24p /// Frame rate of the video. Values found include NTSC, PAL, 24p
@@ -46,9 +46,7 @@ extension Operations {
/// Creates an object with the specified parameters /// Creates an object with the specified parameters
/// ///
/// - Parameter hasVoiceActivity: Indicates whether voice activity is detected.
/// - Parameter id: Unique media identifier. /// - Parameter id: Unique media identifier.
/// - Parameter part: An array of parts for this media item.
/// - Parameter aspectRatio: Aspect ratio of the video. /// - Parameter aspectRatio: Aspect ratio of the video.
/// - Parameter audioChannels: Number of audio channels. /// - Parameter audioChannels: Number of audio channels.
/// - Parameter audioCodec: Audio codec used. /// - Parameter audioCodec: Audio codec used.
@@ -56,8 +54,10 @@ extension Operations {
/// - Parameter bitrate: Bitrate in bits per second. /// - Parameter bitrate: Bitrate in bits per second.
/// - Parameter container: File container type. /// - Parameter container: File container type.
/// - Parameter duration: Duration of the media in milliseconds. /// - Parameter duration: Duration of the media in milliseconds.
/// - Parameter hasVoiceActivity: Indicates whether voice activity is detected.
/// - Parameter height: Video height in pixels. /// - Parameter height: Video height in pixels.
/// - Parameter optimizedForStreaming: Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true /// - Parameter optimizedForStreaming: Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
/// - Parameter part: An array of parts for this media item.
/// - Parameter videoCodec: Video codec used. /// - Parameter videoCodec: Video codec used.
/// - Parameter videoFrameRate: Frame rate of the video. Values found include NTSC, PAL, 24p /// - Parameter videoFrameRate: Frame rate of the video. Values found include NTSC, PAL, 24p
/// ///
@@ -65,10 +65,8 @@ extension Operations {
/// - Parameter videoResolution: Video resolution (e.g., 4k). /// - Parameter videoResolution: Video resolution (e.g., 4k).
/// - Parameter width: Video width in pixels. /// - Parameter width: Video width in pixels.
/// ///
public init(hasVoiceActivity: Bool, id: Int, part: [Operations.GetAllMediaLibraryPart], aspectRatio: Double? = nil, audioChannels: Int? = nil, audioCodec: String? = nil, audioProfile: String? = nil, bitrate: Int? = nil, container: String? = nil, displayOffset: Int? = nil, duration: Int? = nil, has64bitOffsets: Bool? = nil, height: Int? = nil, optimizedForStreaming: Operations.GetAllMediaLibraryOptimizedForStreaming? = nil, videoCodec: String? = nil, videoFrameRate: String? = nil, videoProfile: String? = nil, videoResolution: String? = nil, width: Int? = nil) { public init(id: Int, aspectRatio: Double? = nil, audioChannels: Int? = nil, audioCodec: String? = nil, audioProfile: String? = nil, bitrate: Int? = nil, container: String? = nil, displayOffset: Int? = nil, duration: Int? = nil, has64bitOffsets: Bool? = nil, hasVoiceActivity: Bool? = nil, height: Int? = nil, optimizedForStreaming: Operations.GetAllMediaLibraryOptimizedForStreaming? = nil, part: [Operations.GetAllMediaLibraryPart]? = nil, videoCodec: String? = nil, videoFrameRate: String? = nil, videoProfile: String? = nil, videoResolution: String? = nil, width: Int? = nil) {
self.hasVoiceActivity = hasVoiceActivity
self.id = id self.id = id
self.part = part
self._aspectRatio = DecimalSerialized<Double?>(wrappedValue: aspectRatio) self._aspectRatio = DecimalSerialized<Double?>(wrappedValue: aspectRatio)
self.audioChannels = audioChannels self.audioChannels = audioChannels
self.audioCodec = audioCodec self.audioCodec = audioCodec
@@ -78,8 +76,10 @@ extension Operations {
self.displayOffset = displayOffset self.displayOffset = displayOffset
self.duration = duration self.duration = duration
self.has64bitOffsets = has64bitOffsets self.has64bitOffsets = has64bitOffsets
self.hasVoiceActivity = hasVoiceActivity
self.height = height self.height = height
self.optimizedForStreaming = optimizedForStreaming self.optimizedForStreaming = optimizedForStreaming
self.part = part
self.videoCodec = videoCodec self.videoCodec = videoCodec
self.videoFrameRate = videoFrameRate self.videoFrameRate = videoFrameRate
self.videoProfile = videoProfile self.videoProfile = videoProfile
@@ -90,9 +90,7 @@ extension Operations {
extension Operations.GetAllMediaLibraryMedia: Codable { extension Operations.GetAllMediaLibraryMedia: Codable {
enum CodingKeys: String, CodingKey { enum CodingKeys: String, CodingKey {
case hasVoiceActivity
case id case id
case part = "Part"
case aspectRatio case aspectRatio
case audioChannels case audioChannels
case audioCodec case audioCodec
@@ -102,8 +100,10 @@ extension Operations.GetAllMediaLibraryMedia: Codable {
case displayOffset case displayOffset
case duration case duration
case has64bitOffsets case has64bitOffsets
case hasVoiceActivity
case height case height
case optimizedForStreaming case optimizedForStreaming
case part = "Part"
case videoCodec case videoCodec
case videoFrameRate case videoFrameRate
case videoProfile case videoProfile
@@ -113,9 +113,7 @@ extension Operations.GetAllMediaLibraryMedia: Codable {
public init(from decoder: Decoder) throws { public init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self) let container = try decoder.container(keyedBy: CodingKeys.self)
self.hasVoiceActivity = try container.decode(Bool.self, forKey: .hasVoiceActivity)
self.id = try container.decode(Int.self, forKey: .id) self.id = try container.decode(Int.self, forKey: .id)
self.part = try container.decode([Operations.GetAllMediaLibraryPart].self, forKey: .part)
self._aspectRatio = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .aspectRatio) ?? DecimalSerialized<Double?>(wrappedValue: nil) self._aspectRatio = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .aspectRatio) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.audioChannels = try container.decodeIfPresent(Int.self, forKey: .audioChannels) self.audioChannels = try container.decodeIfPresent(Int.self, forKey: .audioChannels)
self.audioCodec = try container.decodeIfPresent(String.self, forKey: .audioCodec) self.audioCodec = try container.decodeIfPresent(String.self, forKey: .audioCodec)
@@ -125,8 +123,10 @@ extension Operations.GetAllMediaLibraryMedia: Codable {
self.displayOffset = try container.decodeIfPresent(Int.self, forKey: .displayOffset) self.displayOffset = try container.decodeIfPresent(Int.self, forKey: .displayOffset)
self.duration = try container.decodeIfPresent(Int.self, forKey: .duration) self.duration = try container.decodeIfPresent(Int.self, forKey: .duration)
self.has64bitOffsets = try container.decodeIfPresent(Bool.self, forKey: .has64bitOffsets) self.has64bitOffsets = try container.decodeIfPresent(Bool.self, forKey: .has64bitOffsets)
self.hasVoiceActivity = try container.decodeIfPresent(Bool.self, forKey: .hasVoiceActivity)
self.height = try container.decodeIfPresent(Int.self, forKey: .height) self.height = try container.decodeIfPresent(Int.self, forKey: .height)
self.optimizedForStreaming = try container.decodeIfPresent(Operations.GetAllMediaLibraryOptimizedForStreaming.self, forKey: .optimizedForStreaming) self.optimizedForStreaming = try container.decodeIfPresent(Operations.GetAllMediaLibraryOptimizedForStreaming.self, forKey: .optimizedForStreaming)
self.part = try container.decodeIfPresent([Operations.GetAllMediaLibraryPart].self, forKey: .part)
self.videoCodec = try container.decodeIfPresent(String.self, forKey: .videoCodec) self.videoCodec = try container.decodeIfPresent(String.self, forKey: .videoCodec)
self.videoFrameRate = try container.decodeIfPresent(String.self, forKey: .videoFrameRate) self.videoFrameRate = try container.decodeIfPresent(String.self, forKey: .videoFrameRate)
self.videoProfile = try container.decodeIfPresent(String.self, forKey: .videoProfile) self.videoProfile = try container.decodeIfPresent(String.self, forKey: .videoProfile)
@@ -136,9 +136,7 @@ extension Operations.GetAllMediaLibraryMedia: Codable {
public func encode(to encoder: Encoder) throws { public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self) var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(self.hasVoiceActivity, forKey: .hasVoiceActivity)
try container.encode(self.id, forKey: .id) try container.encode(self.id, forKey: .id)
try container.encode(self.part, forKey: .part)
if self.aspectRatio != nil { if self.aspectRatio != nil {
try container.encode(self._aspectRatio, forKey: .aspectRatio) try container.encode(self._aspectRatio, forKey: .aspectRatio)
} }
@@ -150,8 +148,10 @@ extension Operations.GetAllMediaLibraryMedia: Codable {
try container.encodeIfPresent(self.displayOffset, forKey: .displayOffset) try container.encodeIfPresent(self.displayOffset, forKey: .displayOffset)
try container.encodeIfPresent(self.duration, forKey: .duration) try container.encodeIfPresent(self.duration, forKey: .duration)
try container.encodeIfPresent(self.has64bitOffsets, forKey: .has64bitOffsets) try container.encodeIfPresent(self.has64bitOffsets, forKey: .has64bitOffsets)
try container.encodeIfPresent(self.hasVoiceActivity, forKey: .hasVoiceActivity)
try container.encodeIfPresent(self.height, forKey: .height) try container.encodeIfPresent(self.height, forKey: .height)
try container.encodeIfPresent(self.optimizedForStreaming, forKey: .optimizedForStreaming) 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.videoCodec, forKey: .videoCodec)
try container.encodeIfPresent(self.videoFrameRate, forKey: .videoFrameRate) try container.encodeIfPresent(self.videoFrameRate, forKey: .videoFrameRate)
try container.encodeIfPresent(self.videoProfile, forKey: .videoProfile) try container.encodeIfPresent(self.videoProfile, forKey: .videoProfile)

View File

@@ -47,8 +47,6 @@ extension Operations {
/// The sort title used for ordering media items. /// The sort title used for ordering media items.
public let titleSort: String public let titleSort: String
public let type: Operations.GetAllMediaLibraryLibraryType public let type: Operations.GetAllMediaLibraryLibraryType
/// The release year of the media item.
public let year: Int
/// The URL for the audience rating image. /// The URL for the audience rating image.
public let audienceRatingImage: String? public let audienceRatingImage: String?
/// The source from which chapter data is derived. /// The source from which chapter data is derived.
@@ -79,7 +77,7 @@ extension Operations {
public let grandparentThumb: String? public let grandparentThumb: String?
/// The title of the grandparent media item. /// The title of the grandparent media item.
public let grandparentTitle: String? public let grandparentTitle: String?
public let guids: [Operations.Guids]? public let guids: [Operations.GetAllMediaLibraryGuids]?
public let image: [Operations.GetAllMediaLibraryImage]? public let image: [Operations.GetAllMediaLibraryImage]?
/// The Unix timestamp representing the last time the item was rated. /// The Unix timestamp representing the last time the item was rated.
public let lastRatedAt: Int? public let lastRatedAt: Int?
@@ -126,6 +124,8 @@ extension Operations {
/// The current playback offset (in milliseconds). /// The current playback offset (in milliseconds).
public let viewOffset: Int? public let viewOffset: Int?
public let writer: [Operations.GetAllMediaLibraryWriter]? public let writer: [Operations.GetAllMediaLibraryWriter]?
/// The release year of the media item.
public let year: Int?
/// Creates an object with the specified parameters /// Creates an object with the specified parameters
/// ///
@@ -147,7 +147,6 @@ extension Operations {
/// - Parameter thumb: The thumbnail image URL for the media item. /// - Parameter thumb: The thumbnail image URL for the media item.
/// - Parameter title: The title of the media item. /// - Parameter title: The title of the media item.
/// - Parameter titleSort: The sort title used for ordering media items. /// - Parameter titleSort: The sort title used for ordering media items.
/// - Parameter year: The release year of the media item.
/// - Parameter audienceRatingImage: The URL for the audience rating image. /// - Parameter audienceRatingImage: The URL for the audience rating image.
/// - Parameter chapterSource: The source from which chapter data is derived. /// - Parameter chapterSource: The source from which chapter data is derived.
/// - Parameter contentRating: The content rating for the media item. /// - Parameter contentRating: The content rating for the media item.
@@ -181,8 +180,9 @@ extension Operations {
/// - Parameter viewCount: The number of times this media item has been viewed. /// - Parameter viewCount: The number of times this media item has been viewed.
/// - Parameter viewedLeafCount: The number of leaf items that have been viewed. /// - Parameter viewedLeafCount: The number of leaf items that have been viewed.
/// - Parameter viewOffset: The current playback offset (in milliseconds). /// - Parameter viewOffset: The current playback offset (in milliseconds).
/// - Parameter year: The release year of the media item.
/// ///
public init(addedAt: Int, art: String, audienceRating: Double, childCount: Int, duration: Int, guid: String, index: Int, key: String, originallyAvailableAt: Date, rating: Double, ratingKey: String, seasonCount: Int, slug: String, summary: String, tagline: String, theme: String, thumb: String, title: String, titleSort: String, type: Operations.GetAllMediaLibraryLibraryType, year: Int, audienceRatingImage: String? = nil, chapterSource: String? = nil, collection: [Operations.GetAllMediaLibraryCollection]? = nil, contentRating: String? = nil, country: [Operations.GetAllMediaLibraryCountry]? = nil, createdAtAccuracy: String? = nil, createdAtTZOffset: String? = nil, director: [Operations.GetAllMediaLibraryDirector]? = nil, genre: [Operations.GetAllMediaLibraryGenre]? = nil, grandparentArt: String? = nil, grandparentGuid: String? = nil, grandparentKey: String? = nil, grandparentRatingKey: String? = nil, grandparentSlug: String? = nil, grandparentTheme: String? = nil, grandparentThumb: String? = nil, grandparentTitle: String? = nil, guids: [Operations.Guids]? = nil, image: [Operations.GetAllMediaLibraryImage]? = nil, lastRatedAt: Int? = nil, lastViewedAt: Int? = nil, leafCount: Int? = nil, media: [Operations.GetAllMediaLibraryMedia]? = 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, ratingImage: String? = nil, role: [Operations.GetAllMediaLibraryRole]? = nil, skipCount: Int? = nil, studio: String? = nil, subtype: String? = nil, ultraBlurColors: Operations.GetAllMediaLibraryUltraBlurColors? = nil, updatedAt: Int? = nil, userRating: Double? = nil, viewCount: Int? = nil, viewedLeafCount: Int? = nil, viewOffset: Int? = nil, writer: [Operations.GetAllMediaLibraryWriter]? = nil) { public init(addedAt: Int, art: String, audienceRating: Double, childCount: Int, duration: Int, guid: String, index: Int, key: String, originallyAvailableAt: Date, rating: Double, ratingKey: String, seasonCount: Int, slug: String, summary: String, tagline: String, theme: String, thumb: String, title: String, titleSort: String, type: Operations.GetAllMediaLibraryLibraryType, audienceRatingImage: String? = nil, chapterSource: String? = nil, collection: [Operations.GetAllMediaLibraryCollection]? = nil, contentRating: String? = nil, country: [Operations.GetAllMediaLibraryCountry]? = nil, createdAtAccuracy: String? = nil, createdAtTZOffset: String? = nil, director: [Operations.GetAllMediaLibraryDirector]? = nil, genre: [Operations.GetAllMediaLibraryGenre]? = nil, grandparentArt: String? = nil, grandparentGuid: String? = nil, grandparentKey: String? = nil, grandparentRatingKey: String? = nil, grandparentSlug: String? = nil, grandparentTheme: String? = nil, grandparentThumb: String? = nil, grandparentTitle: String? = nil, guids: [Operations.GetAllMediaLibraryGuids]? = nil, image: [Operations.GetAllMediaLibraryImage]? = nil, lastRatedAt: Int? = nil, lastViewedAt: Int? = nil, leafCount: Int? = nil, media: [Operations.GetAllMediaLibraryMedia]? = 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, ratingImage: String? = nil, role: [Operations.GetAllMediaLibraryRole]? = nil, skipCount: Int? = nil, studio: String? = nil, subtype: String? = nil, ultraBlurColors: Operations.GetAllMediaLibraryUltraBlurColors? = nil, updatedAt: Int? = nil, userRating: Double? = nil, viewCount: Int? = nil, viewedLeafCount: Int? = nil, viewOffset: Int? = nil, writer: [Operations.GetAllMediaLibraryWriter]? = nil, year: Int? = nil) {
self.addedAt = addedAt self.addedAt = addedAt
self.art = art self.art = art
self._audienceRating = DecimalSerialized<Double>(wrappedValue: audienceRating) self._audienceRating = DecimalSerialized<Double>(wrappedValue: audienceRating)
@@ -203,7 +203,6 @@ extension Operations {
self.title = title self.title = title
self.titleSort = titleSort self.titleSort = titleSort
self.type = type self.type = type
self.year = year
self.audienceRatingImage = audienceRatingImage self.audienceRatingImage = audienceRatingImage
self.chapterSource = chapterSource self.chapterSource = chapterSource
self.collection = collection self.collection = collection
@@ -247,6 +246,7 @@ extension Operations {
self.viewedLeafCount = viewedLeafCount self.viewedLeafCount = viewedLeafCount
self.viewOffset = viewOffset self.viewOffset = viewOffset
self.writer = writer self.writer = writer
self.year = year
} }
}} }}
@@ -272,7 +272,6 @@ extension Operations.GetAllMediaLibraryMetadata: Codable {
case title case title
case titleSort case titleSort
case type case type
case year
case audienceRatingImage case audienceRatingImage
case chapterSource case chapterSource
case collection = "Collection" case collection = "Collection"
@@ -316,6 +315,7 @@ extension Operations.GetAllMediaLibraryMetadata: Codable {
case viewedLeafCount case viewedLeafCount
case viewOffset case viewOffset
case writer = "Writer" case writer = "Writer"
case year
} }
public init(from decoder: Decoder) throws { public init(from decoder: Decoder) throws {
@@ -340,7 +340,6 @@ extension Operations.GetAllMediaLibraryMetadata: Codable {
self.title = try container.decode(String.self, forKey: .title) self.title = try container.decode(String.self, forKey: .title)
self.titleSort = try container.decode(String.self, forKey: .titleSort) self.titleSort = try container.decode(String.self, forKey: .titleSort)
self.type = try container.decode(Operations.GetAllMediaLibraryLibraryType.self, forKey: .type) self.type = try container.decode(Operations.GetAllMediaLibraryLibraryType.self, forKey: .type)
self.year = try container.decode(Int.self, forKey: .year)
self.audienceRatingImage = try container.decodeIfPresent(String.self, forKey: .audienceRatingImage) self.audienceRatingImage = try container.decodeIfPresent(String.self, forKey: .audienceRatingImage)
self.chapterSource = try container.decodeIfPresent(String.self, forKey: .chapterSource) self.chapterSource = try container.decodeIfPresent(String.self, forKey: .chapterSource)
self.collection = try container.decodeIfPresent([Operations.GetAllMediaLibraryCollection].self, forKey: .collection) self.collection = try container.decodeIfPresent([Operations.GetAllMediaLibraryCollection].self, forKey: .collection)
@@ -358,7 +357,7 @@ extension Operations.GetAllMediaLibraryMetadata: Codable {
self.grandparentTheme = try container.decodeIfPresent(String.self, forKey: .grandparentTheme) self.grandparentTheme = try container.decodeIfPresent(String.self, forKey: .grandparentTheme)
self.grandparentThumb = try container.decodeIfPresent(String.self, forKey: .grandparentThumb) self.grandparentThumb = try container.decodeIfPresent(String.self, forKey: .grandparentThumb)
self.grandparentTitle = try container.decodeIfPresent(String.self, forKey: .grandparentTitle) self.grandparentTitle = try container.decodeIfPresent(String.self, forKey: .grandparentTitle)
self.guids = try container.decodeIfPresent([Operations.Guids].self, forKey: .guids) self.guids = try container.decodeIfPresent([Operations.GetAllMediaLibraryGuids].self, forKey: .guids)
self.image = try container.decodeIfPresent([Operations.GetAllMediaLibraryImage].self, forKey: .image) self.image = try container.decodeIfPresent([Operations.GetAllMediaLibraryImage].self, forKey: .image)
self.lastRatedAt = try container.decodeIfPresent(Int.self, forKey: .lastRatedAt) self.lastRatedAt = try container.decodeIfPresent(Int.self, forKey: .lastRatedAt)
self.lastViewedAt = try container.decodeIfPresent(Int.self, forKey: .lastViewedAt) self.lastViewedAt = try container.decodeIfPresent(Int.self, forKey: .lastViewedAt)
@@ -384,6 +383,7 @@ extension Operations.GetAllMediaLibraryMetadata: Codable {
self.viewedLeafCount = try container.decodeIfPresent(Int.self, forKey: .viewedLeafCount) self.viewedLeafCount = try container.decodeIfPresent(Int.self, forKey: .viewedLeafCount)
self.viewOffset = try container.decodeIfPresent(Int.self, forKey: .viewOffset) self.viewOffset = try container.decodeIfPresent(Int.self, forKey: .viewOffset)
self.writer = try container.decodeIfPresent([Operations.GetAllMediaLibraryWriter].self, forKey: .writer) self.writer = try container.decodeIfPresent([Operations.GetAllMediaLibraryWriter].self, forKey: .writer)
self.year = try container.decodeIfPresent(Int.self, forKey: .year)
} }
public func encode(to encoder: Encoder) throws { public func encode(to encoder: Encoder) throws {
@@ -408,7 +408,6 @@ extension Operations.GetAllMediaLibraryMetadata: Codable {
try container.encode(self.title, forKey: .title) try container.encode(self.title, forKey: .title)
try container.encode(self.titleSort, forKey: .titleSort) try container.encode(self.titleSort, forKey: .titleSort)
try container.encode(self.type, forKey: .type) try container.encode(self.type, forKey: .type)
try container.encode(self.year, forKey: .year)
try container.encodeIfPresent(self.audienceRatingImage, forKey: .audienceRatingImage) try container.encodeIfPresent(self.audienceRatingImage, forKey: .audienceRatingImage)
try container.encodeIfPresent(self.chapterSource, forKey: .chapterSource) try container.encodeIfPresent(self.chapterSource, forKey: .chapterSource)
try container.encodeIfPresent(self.collection, forKey: .collection) try container.encodeIfPresent(self.collection, forKey: .collection)
@@ -454,6 +453,7 @@ extension Operations.GetAllMediaLibraryMetadata: Codable {
try container.encodeIfPresent(self.viewedLeafCount, forKey: .viewedLeafCount) try container.encodeIfPresent(self.viewedLeafCount, forKey: .viewedLeafCount)
try container.encodeIfPresent(self.viewOffset, forKey: .viewOffset) try container.encodeIfPresent(self.viewOffset, forKey: .viewOffset)
try container.encodeIfPresent(self.writer, forKey: .writer) try container.encodeIfPresent(self.writer, forKey: .writer)
try container.encodeIfPresent(self.year, forKey: .year)
} }
} }

View File

@@ -5,14 +5,14 @@ import Foundation
extension Operations { extension Operations {
/// Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true /// Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
public enum GetAllMediaLibraryOptimizedForStreaming { public enum GetAllMediaLibraryOptimizedForStreaming {
case one(Operations.One) case getAllMediaLibrary1(Operations.GetAllMediaLibrary1)
case bool(Bool) case bool(Bool)
}} }}
extension Operations.GetAllMediaLibraryOptimizedForStreaming: Codable { extension Operations.GetAllMediaLibraryOptimizedForStreaming: Codable {
public init(from decoder: Decoder) throws { public init(from decoder: Decoder) throws {
if let value = try? Operations.One(from: decoder) { if let value = try? Operations.GetAllMediaLibrary1(from: decoder) {
self = .one(value) self = .getAllMediaLibrary1(value)
} else if let value = try? Bool(from: decoder) { } else if let value = try? Bool(from: decoder) {
self = .bool(value) self = .bool(value)
} else { } else {
@@ -22,7 +22,7 @@ extension Operations.GetAllMediaLibraryOptimizedForStreaming: Codable {
public func encode(to encoder: Encoder) throws { public func encode(to encoder: Encoder) throws {
switch self { switch self {
case .one(let value): case .getAllMediaLibrary1(let value):
try value.encode(to: encoder) try value.encode(to: encoder)
case .bool(let value): case .bool(let value):
try value.encode(to: encoder) try value.encode(to: encoder)

View File

@@ -5,12 +5,12 @@ import Foundation
extension Operations { extension Operations {
/// A model object /// A model object
public struct GetAllMediaLibraryRole { public struct GetAllMediaLibraryRole {
/// The name of the actor for this role /// The display tag for the actor (typically the actor's name).
public let tag: String public let tag: String
/// Creates an object with the specified parameters /// Creates an object with the specified parameters
/// ///
/// - Parameter tag: The name of the actor for this role /// - Parameter tag: The display tag for the actor (typically the actor's name).
/// ///
public init(tag: String) { public init(tag: String) {
self.tag = tag self.tag = tag

View File

@@ -15,12 +15,6 @@ extension Operations {
public let id: Int public let id: Int
/// Index of the stream. /// Index of the stream.
public let index: Int 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). /// Stream type (1=video, 2=audio, 3=subtitle).
public let streamType: Int public let streamType: Int
/// Audio channel layout. /// Audio channel layout.
@@ -37,6 +31,7 @@ extension Operations {
public let chromaLocation: String? public let chromaLocation: String?
/// Chroma subsampling format. /// Chroma subsampling format.
public let chromaSubsampling: String? public let chromaSubsampling: String?
public let closedCaptions: Bool?
/// Coded video height. /// Coded video height.
public let codedHeight: Int? public let codedHeight: Int?
/// Coded video width. /// Coded video width.
@@ -69,6 +64,7 @@ extension Operations {
public let doviVersion: String? public let doviVersion: String?
/// Indicates if the stream is a dub. /// Indicates if the stream is a dub.
public let dub: Bool? public let dub: Bool?
public let embeddedInVideo: String?
public let forced: Bool? public let forced: Bool?
/// Frame rate of the stream. /// Frame rate of the stream.
@DecimalSerialized @DecimalSerialized
@@ -80,6 +76,12 @@ extension Operations {
public let hearingImpaired: Bool? public let hearingImpaired: Bool?
/// Height of the video stream. /// Height of the video stream.
public let height: Int? public let height: 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?
/// Video level. /// Video level.
public let level: Int? public let level: Int?
/// Indicates if this is the original stream. /// Indicates if this is the original stream.
@@ -105,9 +107,6 @@ extension Operations {
/// - Parameter extendedDisplayTitle: Extended display title for the stream. /// - Parameter extendedDisplayTitle: Extended display title for the stream.
/// - Parameter id: Unique stream identifier. /// - Parameter id: Unique stream identifier.
/// - Parameter index: Index of the stream. /// - 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 streamType: Stream type (1=video, 2=audio, 3=subtitle).
/// - Parameter audioChannelLayout: Audio channel layout. /// - Parameter audioChannelLayout: Audio channel layout.
/// - Parameter bitDepth: Bit depth of the video stream. /// - Parameter bitDepth: Bit depth of the video stream.
@@ -136,6 +135,9 @@ extension Operations {
/// - Parameter headerCompression: Indicates whether header compression is enabled. /// - Parameter headerCompression: Indicates whether header compression is enabled.
/// - Parameter hearingImpaired: Indicates if the stream is for the hearing impaired. /// - Parameter hearingImpaired: Indicates if the stream is for the hearing impaired.
/// - Parameter height: Height of the video stream. /// - Parameter height: Height of the video stream.
/// - Parameter language: Language of the stream.
/// - Parameter languageCode: ISO language code.
/// - Parameter languageTag: Language tag (e.g., en).
/// - Parameter level: Video level. /// - Parameter level: Video level.
/// - Parameter original: Indicates if this is the original stream. /// - Parameter original: Indicates if this is the original stream.
/// - Parameter profile: Video profile. /// - Parameter profile: Video profile.
@@ -145,15 +147,12 @@ extension Operations {
/// - Parameter title: Optional title for the stream (e.g., language variant). /// - Parameter title: Optional title for the stream (e.g., language variant).
/// - Parameter width: Width of the video stream. /// - Parameter width: Width of the video stream.
/// ///
public init(codec: String, displayTitle: String, extendedDisplayTitle: String, id: Int, index: Int, language: String, languageCode: String, languageTag: String, streamType: Int, audioChannelLayout: String? = nil, bitDepth: Int? = nil, bitrate: 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, headerCompression: 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) { public init(codec: String, displayTitle: String, extendedDisplayTitle: String, id: Int, index: Int, streamType: Int, audioChannelLayout: String? = nil, bitDepth: Int? = nil, bitrate: Int? = nil, canAutoSync: Bool? = nil, channels: Int? = nil, chromaLocation: String? = nil, chromaSubsampling: String? = nil, closedCaptions: Bool? = 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, embeddedInVideo: String? = nil, forced: Bool? = nil, frameRate: Double? = nil, hasScalingMatrix: Bool? = nil, headerCompression: Bool? = nil, hearingImpaired: Bool? = nil, height: Int? = nil, language: String? = nil, languageCode: String? = nil, languageTag: String? = 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.codec = codec self.codec = codec
self.displayTitle = displayTitle self.displayTitle = displayTitle
self.extendedDisplayTitle = extendedDisplayTitle self.extendedDisplayTitle = extendedDisplayTitle
self.id = id self.id = id
self.index = index self.index = index
self.language = language
self.languageCode = languageCode
self.languageTag = languageTag
self.streamType = streamType self.streamType = streamType
self.audioChannelLayout = audioChannelLayout self.audioChannelLayout = audioChannelLayout
self.bitDepth = bitDepth self.bitDepth = bitDepth
@@ -162,6 +161,7 @@ extension Operations {
self.channels = channels self.channels = channels
self.chromaLocation = chromaLocation self.chromaLocation = chromaLocation
self.chromaSubsampling = chromaSubsampling self.chromaSubsampling = chromaSubsampling
self.closedCaptions = closedCaptions
self.codedHeight = codedHeight self.codedHeight = codedHeight
self.codedWidth = codedWidth self.codedWidth = codedWidth
self.colorPrimaries = colorPrimaries self.colorPrimaries = colorPrimaries
@@ -178,12 +178,16 @@ extension Operations {
self.dovirpuPresent = dovirpuPresent self.dovirpuPresent = dovirpuPresent
self.doviVersion = doviVersion self.doviVersion = doviVersion
self.dub = dub self.dub = dub
self.embeddedInVideo = embeddedInVideo
self.forced = forced self.forced = forced
self._frameRate = DecimalSerialized<Double?>(wrappedValue: frameRate) self._frameRate = DecimalSerialized<Double?>(wrappedValue: frameRate)
self.hasScalingMatrix = hasScalingMatrix self.hasScalingMatrix = hasScalingMatrix
self.headerCompression = headerCompression self.headerCompression = headerCompression
self.hearingImpaired = hearingImpaired self.hearingImpaired = hearingImpaired
self.height = height self.height = height
self.language = language
self.languageCode = languageCode
self.languageTag = languageTag
self.level = level self.level = level
self.original = original self.original = original
self.profile = profile self.profile = profile
@@ -203,9 +207,6 @@ extension Operations.GetAllMediaLibraryStream: Codable {
case extendedDisplayTitle case extendedDisplayTitle
case id case id
case index case index
case language
case languageCode
case languageTag
case streamType case streamType
case audioChannelLayout case audioChannelLayout
case bitDepth case bitDepth
@@ -214,6 +215,7 @@ extension Operations.GetAllMediaLibraryStream: Codable {
case channels case channels
case chromaLocation case chromaLocation
case chromaSubsampling case chromaSubsampling
case closedCaptions
case codedHeight case codedHeight
case codedWidth case codedWidth
case colorPrimaries case colorPrimaries
@@ -230,12 +232,16 @@ extension Operations.GetAllMediaLibraryStream: Codable {
case dovirpuPresent = "DOVIRPUPresent" case dovirpuPresent = "DOVIRPUPresent"
case doviVersion = "DOVIVersion" case doviVersion = "DOVIVersion"
case dub case dub
case embeddedInVideo
case forced case forced
case frameRate case frameRate
case hasScalingMatrix case hasScalingMatrix
case headerCompression case headerCompression
case hearingImpaired case hearingImpaired
case height case height
case language
case languageCode
case languageTag
case level case level
case original case original
case profile case profile
@@ -254,9 +260,6 @@ extension Operations.GetAllMediaLibraryStream: Codable {
self.extendedDisplayTitle = try container.decode(String.self, forKey: .extendedDisplayTitle) self.extendedDisplayTitle = try container.decode(String.self, forKey: .extendedDisplayTitle)
self.id = try container.decode(Int.self, forKey: .id) self.id = try container.decode(Int.self, forKey: .id)
self.index = try container.decode(Int.self, forKey: .index) 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.streamType = try container.decode(Int.self, forKey: .streamType)
self.audioChannelLayout = try container.decodeIfPresent(String.self, forKey: .audioChannelLayout) self.audioChannelLayout = try container.decodeIfPresent(String.self, forKey: .audioChannelLayout)
self.bitDepth = try container.decodeIfPresent(Int.self, forKey: .bitDepth) self.bitDepth = try container.decodeIfPresent(Int.self, forKey: .bitDepth)
@@ -265,6 +268,7 @@ extension Operations.GetAllMediaLibraryStream: Codable {
self.channels = try container.decodeIfPresent(Int.self, forKey: .channels) self.channels = try container.decodeIfPresent(Int.self, forKey: .channels)
self.chromaLocation = try container.decodeIfPresent(String.self, forKey: .chromaLocation) self.chromaLocation = try container.decodeIfPresent(String.self, forKey: .chromaLocation)
self.chromaSubsampling = try container.decodeIfPresent(String.self, forKey: .chromaSubsampling) self.chromaSubsampling = try container.decodeIfPresent(String.self, forKey: .chromaSubsampling)
self.closedCaptions = try container.decodeIfPresent(Bool.self, forKey: .closedCaptions)
self.codedHeight = try container.decodeIfPresent(Int.self, forKey: .codedHeight) self.codedHeight = try container.decodeIfPresent(Int.self, forKey: .codedHeight)
self.codedWidth = try container.decodeIfPresent(Int.self, forKey: .codedWidth) self.codedWidth = try container.decodeIfPresent(Int.self, forKey: .codedWidth)
self.colorPrimaries = try container.decodeIfPresent(String.self, forKey: .colorPrimaries) self.colorPrimaries = try container.decodeIfPresent(String.self, forKey: .colorPrimaries)
@@ -281,12 +285,16 @@ extension Operations.GetAllMediaLibraryStream: Codable {
self.dovirpuPresent = try container.decodeIfPresent(Bool.self, forKey: .dovirpuPresent) self.dovirpuPresent = try container.decodeIfPresent(Bool.self, forKey: .dovirpuPresent)
self.doviVersion = try container.decodeIfPresent(String.self, forKey: .doviVersion) self.doviVersion = try container.decodeIfPresent(String.self, forKey: .doviVersion)
self.dub = try container.decodeIfPresent(Bool.self, forKey: .dub) self.dub = try container.decodeIfPresent(Bool.self, forKey: .dub)
self.embeddedInVideo = try container.decodeIfPresent(String.self, forKey: .embeddedInVideo)
self.forced = try container.decodeIfPresent(Bool.self, forKey: .forced) self.forced = try container.decodeIfPresent(Bool.self, forKey: .forced)
self._frameRate = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .frameRate) ?? DecimalSerialized<Double?>(wrappedValue: nil) self._frameRate = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .frameRate) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.hasScalingMatrix = try container.decodeIfPresent(Bool.self, forKey: .hasScalingMatrix) self.hasScalingMatrix = try container.decodeIfPresent(Bool.self, forKey: .hasScalingMatrix)
self.headerCompression = try container.decodeIfPresent(Bool.self, forKey: .headerCompression) self.headerCompression = try container.decodeIfPresent(Bool.self, forKey: .headerCompression)
self.hearingImpaired = try container.decodeIfPresent(Bool.self, forKey: .hearingImpaired) self.hearingImpaired = try container.decodeIfPresent(Bool.self, forKey: .hearingImpaired)
self.height = try container.decodeIfPresent(Int.self, forKey: .height) self.height = try container.decodeIfPresent(Int.self, forKey: .height)
self.language = try container.decodeIfPresent(String.self, forKey: .language)
self.languageCode = try container.decodeIfPresent(String.self, forKey: .languageCode)
self.languageTag = try container.decodeIfPresent(String.self, forKey: .languageTag)
self.level = try container.decodeIfPresent(Int.self, forKey: .level) self.level = try container.decodeIfPresent(Int.self, forKey: .level)
self.original = try container.decodeIfPresent(Bool.self, forKey: .original) self.original = try container.decodeIfPresent(Bool.self, forKey: .original)
self.profile = try container.decodeIfPresent(String.self, forKey: .profile) self.profile = try container.decodeIfPresent(String.self, forKey: .profile)
@@ -305,9 +313,6 @@ extension Operations.GetAllMediaLibraryStream: Codable {
try container.encode(self.extendedDisplayTitle, forKey: .extendedDisplayTitle) try container.encode(self.extendedDisplayTitle, forKey: .extendedDisplayTitle)
try container.encode(self.id, forKey: .id) try container.encode(self.id, forKey: .id)
try container.encode(self.index, forKey: .index) 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.encode(self.streamType, forKey: .streamType)
try container.encodeIfPresent(self.audioChannelLayout, forKey: .audioChannelLayout) try container.encodeIfPresent(self.audioChannelLayout, forKey: .audioChannelLayout)
try container.encodeIfPresent(self.bitDepth, forKey: .bitDepth) try container.encodeIfPresent(self.bitDepth, forKey: .bitDepth)
@@ -316,6 +321,7 @@ extension Operations.GetAllMediaLibraryStream: Codable {
try container.encodeIfPresent(self.channels, forKey: .channels) try container.encodeIfPresent(self.channels, forKey: .channels)
try container.encodeIfPresent(self.chromaLocation, forKey: .chromaLocation) try container.encodeIfPresent(self.chromaLocation, forKey: .chromaLocation)
try container.encodeIfPresent(self.chromaSubsampling, forKey: .chromaSubsampling) try container.encodeIfPresent(self.chromaSubsampling, forKey: .chromaSubsampling)
try container.encodeIfPresent(self.closedCaptions, forKey: .closedCaptions)
try container.encodeIfPresent(self.codedHeight, forKey: .codedHeight) try container.encodeIfPresent(self.codedHeight, forKey: .codedHeight)
try container.encodeIfPresent(self.codedWidth, forKey: .codedWidth) try container.encodeIfPresent(self.codedWidth, forKey: .codedWidth)
try container.encodeIfPresent(self.colorPrimaries, forKey: .colorPrimaries) try container.encodeIfPresent(self.colorPrimaries, forKey: .colorPrimaries)
@@ -332,6 +338,7 @@ extension Operations.GetAllMediaLibraryStream: Codable {
try container.encodeIfPresent(self.dovirpuPresent, forKey: .dovirpuPresent) try container.encodeIfPresent(self.dovirpuPresent, forKey: .dovirpuPresent)
try container.encodeIfPresent(self.doviVersion, forKey: .doviVersion) try container.encodeIfPresent(self.doviVersion, forKey: .doviVersion)
try container.encodeIfPresent(self.dub, forKey: .dub) try container.encodeIfPresent(self.dub, forKey: .dub)
try container.encodeIfPresent(self.embeddedInVideo, forKey: .embeddedInVideo)
try container.encodeIfPresent(self.forced, forKey: .forced) try container.encodeIfPresent(self.forced, forKey: .forced)
if self.frameRate != nil { if self.frameRate != nil {
try container.encode(self._frameRate, forKey: .frameRate) try container.encode(self._frameRate, forKey: .frameRate)
@@ -340,6 +347,9 @@ extension Operations.GetAllMediaLibraryStream: Codable {
try container.encodeIfPresent(self.headerCompression, forKey: .headerCompression) try container.encodeIfPresent(self.headerCompression, forKey: .headerCompression)
try container.encodeIfPresent(self.hearingImpaired, forKey: .hearingImpaired) try container.encodeIfPresent(self.hearingImpaired, forKey: .hearingImpaired)
try container.encodeIfPresent(self.height, forKey: .height) try container.encodeIfPresent(self.height, forKey: .height)
try container.encodeIfPresent(self.language, forKey: .language)
try container.encodeIfPresent(self.languageCode, forKey: .languageCode)
try container.encodeIfPresent(self.languageTag, forKey: .languageTag)
try container.encodeIfPresent(self.level, forKey: .level) try container.encodeIfPresent(self.level, forKey: .level)
try container.encodeIfPresent(self.original, forKey: .original) try container.encodeIfPresent(self.original, forKey: .original)
try container.encodeIfPresent(self.profile, forKey: .profile) try container.encodeIfPresent(self.profile, forKey: .profile)

View File

@@ -1,10 +0,0 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled).
public enum GetLibraryItemsEnableCreditsMarkerGeneration: String, Codable, APIValue {
case libraryDefault = "-1"
case disabled = "0"
}}

View File

@@ -1,11 +0,0 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first).
public enum GetLibraryItemsEpisodeSort: String, Codable, APIValue {
case libraryDefault = "-1"
case oldestFirst = "0"
case newestFirst = "1"
}}

View File

@@ -1,11 +0,0 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show).
public enum GetLibraryItemsFlattenSeasons: String, Codable, APIValue {
case libraryDefault = "-1"
case hide = "0"
case show = "1"
}}

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 GetLibraryItemsMediaGuid {
/// Can be one of the following formats:
/// imdb://tt13015952, tmdb://2434012, tvdb://7945991
///
public let id: String
/// Creates an object with the specified parameters
///
/// - Parameter id: Can be one of the following formats:
/// imdb://tt13015952, tmdb://2434012, tvdb://7945991
///
///
public init(id: String) {
self.id = id
}
}}
extension Operations.GetLibraryItemsMediaGuid: Codable {
enum CodingKeys: String, CodingKey {
case id
}
}

View File

@@ -31,11 +31,11 @@ extension Operations {
public let director: [Operations.GetLibraryItemsDirector]? public let director: [Operations.GetLibraryItemsDirector]?
public let duration: Int? public let duration: Int?
/// Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). /// Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled).
public let enableCreditsMarkerGeneration: Operations.GetLibraryItemsEnableCreditsMarkerGeneration? public let enableCreditsMarkerGeneration: Operations.EnableCreditsMarkerGeneration?
/// Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first). /// Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first).
public let episodeSort: Operations.GetLibraryItemsEpisodeSort? public let episodeSort: Operations.EpisodeSort?
/// Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show). /// Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show).
public let flattenSeasons: Operations.GetLibraryItemsFlattenSeasons? public let flattenSeasons: Operations.FlattenSeasons?
public let genre: [Operations.GetLibraryItemsGenre]? public let genre: [Operations.GetLibraryItemsGenre]?
public let grandparentArt: String? public let grandparentArt: String?
public let grandparentGuid: String? public let grandparentGuid: String?
@@ -60,8 +60,8 @@ extension Operations {
public let media: [Operations.GetLibraryItemsMedia]? public let media: [Operations.GetLibraryItemsMedia]?
/// The Guid object is only included in the response if the `includeGuids` parameter is set to `1`. /// The Guid object is only included in the response if the `includeGuids` parameter is set to `1`.
/// ///
public let mediaGuid: [Operations.GetLibraryItemsMediaGuid]? public let mediaGuid: [Operations.MediaGuid]?
public let metaDataRating: [Operations.GetLibraryItemsMetaDataRating]? public let metaDataRating: [Operations.MetaDataRating]?
@DateOnly @DateOnly
public private(set) var originallyAvailableAt: Date? public private(set) var originallyAvailableAt: Date?
public let originalTitle: String? public let originalTitle: String?
@@ -90,7 +90,7 @@ extension Operations {
/// dvd = TheTVDB (DVD), /// dvd = TheTVDB (DVD),
/// absolute = TheTVDB (Absolute)). /// absolute = TheTVDB (Absolute)).
/// ///
public let showOrdering: Operations.GetLibraryItemsShowOrdering? public let showOrdering: Operations.ShowOrdering?
public let skipChildren: Bool? public let skipChildren: Bool?
public let skipCount: Int? public let skipCount: Int?
public let slug: String? public let slug: String?
@@ -134,7 +134,7 @@ extension Operations {
/// ///
/// - Parameter updatedAt: Unix epoch datetime in seconds /// - Parameter updatedAt: Unix epoch datetime in seconds
/// ///
public init(addedAt: Int, guid: String, key: String, ratingKey: String, summary: String, title: String, type: Operations.GetLibraryItemsLibraryType, art: String? = nil, audienceRating: Double? = nil, audienceRatingImage: String? = nil, banner: String? = nil, chapterSource: String? = nil, childCount: Int? = nil, collection: [Operations.GetLibraryItemsCollection]? = nil, contentRating: String? = nil, country: [Operations.GetLibraryItemsCountry]? = nil, director: [Operations.GetLibraryItemsDirector]? = nil, duration: Int? = nil, enableCreditsMarkerGeneration: Operations.GetLibraryItemsEnableCreditsMarkerGeneration? = nil, episodeSort: Operations.GetLibraryItemsEpisodeSort? = nil, flattenSeasons: Operations.GetLibraryItemsFlattenSeasons? = nil, genre: [Operations.GetLibraryItemsGenre]? = nil, grandparentArt: String? = nil, grandparentGuid: String? = nil, grandparentKey: String? = nil, grandparentRatingKey: String? = nil, grandparentSlug: String? = nil, grandparentTheme: String? = nil, grandparentThumb: String? = nil, grandparentTitle: String? = nil, hasPremiumExtras: String? = nil, hasPremiumPrimaryExtra: String? = nil, image: [Operations.GetLibraryItemsImage]? = nil, index: Int? = nil, lastViewedAt: Int? = nil, leafCount: Int? = nil, librarySectionID: Int? = nil, librarySectionKey: String? = nil, librarySectionTitle: String? = nil, location: [Operations.GetLibraryItemsLocation]? = nil, media: [Operations.GetLibraryItemsMedia]? = nil, mediaGuid: [Operations.GetLibraryItemsMediaGuid]? = nil, metaDataRating: [Operations.GetLibraryItemsMetaDataRating]? = nil, originallyAvailableAt: Date? = nil, originalTitle: String? = nil, parentGuid: String? = nil, parentIndex: Int? = nil, parentKey: String? = nil, parentRatingKey: String? = nil, parentSlug: String? = nil, parentStudio: String? = nil, parentTheme: String? = nil, parentThumb: String? = nil, parentTitle: String? = nil, parentYear: Int? = nil, primaryExtraKey: String? = nil, rating: Double? = nil, ratingImage: String? = nil, role: [Operations.GetLibraryItemsRole]? = nil, seasonCount: Int? = nil, showOrdering: Operations.GetLibraryItemsShowOrdering? = nil, skipChildren: Bool? = nil, skipCount: Int? = nil, slug: String? = nil, studio: String? = nil, tagline: String? = nil, theme: String? = nil, thumb: String? = nil, titleSort: String? = nil, ultraBlurColors: Operations.GetLibraryItemsUltraBlurColors? = nil, updatedAt: Int? = nil, viewCount: Int? = nil, viewedLeafCount: Int? = nil, viewOffset: Int? = nil, writer: [Operations.GetLibraryItemsWriter]? = nil, year: Int? = nil) { public init(addedAt: Int, guid: String, key: String, ratingKey: String, summary: String, title: String, type: Operations.GetLibraryItemsLibraryType, art: String? = nil, audienceRating: Double? = nil, audienceRatingImage: String? = nil, banner: String? = nil, chapterSource: String? = nil, childCount: Int? = nil, collection: [Operations.GetLibraryItemsCollection]? = nil, contentRating: String? = nil, country: [Operations.GetLibraryItemsCountry]? = nil, director: [Operations.GetLibraryItemsDirector]? = nil, duration: Int? = nil, enableCreditsMarkerGeneration: Operations.EnableCreditsMarkerGeneration? = nil, episodeSort: Operations.EpisodeSort? = nil, flattenSeasons: Operations.FlattenSeasons? = nil, genre: [Operations.GetLibraryItemsGenre]? = nil, grandparentArt: String? = nil, grandparentGuid: String? = nil, grandparentKey: String? = nil, grandparentRatingKey: String? = nil, grandparentSlug: String? = nil, grandparentTheme: String? = nil, grandparentThumb: String? = nil, grandparentTitle: String? = nil, hasPremiumExtras: String? = nil, hasPremiumPrimaryExtra: String? = nil, image: [Operations.GetLibraryItemsImage]? = nil, index: Int? = nil, lastViewedAt: Int? = nil, leafCount: Int? = nil, librarySectionID: Int? = nil, librarySectionKey: String? = nil, librarySectionTitle: String? = nil, location: [Operations.GetLibraryItemsLocation]? = nil, media: [Operations.GetLibraryItemsMedia]? = nil, mediaGuid: [Operations.MediaGuid]? = nil, metaDataRating: [Operations.MetaDataRating]? = nil, originallyAvailableAt: Date? = nil, originalTitle: String? = nil, parentGuid: String? = nil, parentIndex: Int? = nil, parentKey: String? = nil, parentRatingKey: String? = nil, parentSlug: String? = nil, parentStudio: String? = nil, parentTheme: String? = nil, parentThumb: String? = nil, parentTitle: String? = nil, parentYear: Int? = nil, primaryExtraKey: String? = nil, rating: Double? = nil, ratingImage: String? = nil, role: [Operations.GetLibraryItemsRole]? = nil, seasonCount: Int? = nil, showOrdering: Operations.ShowOrdering? = nil, skipChildren: Bool? = nil, skipCount: Int? = nil, slug: String? = nil, studio: String? = nil, tagline: String? = nil, theme: String? = nil, thumb: String? = nil, titleSort: String? = nil, ultraBlurColors: Operations.GetLibraryItemsUltraBlurColors? = nil, updatedAt: Int? = nil, viewCount: Int? = nil, viewedLeafCount: Int? = nil, viewOffset: Int? = nil, writer: [Operations.GetLibraryItemsWriter]? = nil, year: Int? = nil) {
self.addedAt = addedAt self.addedAt = addedAt
self.guid = guid self.guid = guid
self.key = key self.key = key
@@ -314,9 +314,9 @@ extension Operations.GetLibraryItemsMetadata: Codable {
self.country = try container.decodeIfPresent([Operations.GetLibraryItemsCountry].self, forKey: .country) self.country = try container.decodeIfPresent([Operations.GetLibraryItemsCountry].self, forKey: .country)
self.director = try container.decodeIfPresent([Operations.GetLibraryItemsDirector].self, forKey: .director) self.director = try container.decodeIfPresent([Operations.GetLibraryItemsDirector].self, forKey: .director)
self.duration = try container.decodeIfPresent(Int.self, forKey: .duration) self.duration = try container.decodeIfPresent(Int.self, forKey: .duration)
self.enableCreditsMarkerGeneration = try container.decodeIfPresent(Operations.GetLibraryItemsEnableCreditsMarkerGeneration.self, forKey: .enableCreditsMarkerGeneration) self.enableCreditsMarkerGeneration = try container.decodeIfPresent(Operations.EnableCreditsMarkerGeneration.self, forKey: .enableCreditsMarkerGeneration)
self.episodeSort = try container.decodeIfPresent(Operations.GetLibraryItemsEpisodeSort.self, forKey: .episodeSort) self.episodeSort = try container.decodeIfPresent(Operations.EpisodeSort.self, forKey: .episodeSort)
self.flattenSeasons = try container.decodeIfPresent(Operations.GetLibraryItemsFlattenSeasons.self, forKey: .flattenSeasons) self.flattenSeasons = try container.decodeIfPresent(Operations.FlattenSeasons.self, forKey: .flattenSeasons)
self.genre = try container.decodeIfPresent([Operations.GetLibraryItemsGenre].self, forKey: .genre) self.genre = try container.decodeIfPresent([Operations.GetLibraryItemsGenre].self, forKey: .genre)
self.grandparentArt = try container.decodeIfPresent(String.self, forKey: .grandparentArt) self.grandparentArt = try container.decodeIfPresent(String.self, forKey: .grandparentArt)
self.grandparentGuid = try container.decodeIfPresent(String.self, forKey: .grandparentGuid) self.grandparentGuid = try container.decodeIfPresent(String.self, forKey: .grandparentGuid)
@@ -337,8 +337,8 @@ extension Operations.GetLibraryItemsMetadata: Codable {
self.librarySectionTitle = try container.decodeIfPresent(String.self, forKey: .librarySectionTitle) self.librarySectionTitle = try container.decodeIfPresent(String.self, forKey: .librarySectionTitle)
self.location = try container.decodeIfPresent([Operations.GetLibraryItemsLocation].self, forKey: .location) self.location = try container.decodeIfPresent([Operations.GetLibraryItemsLocation].self, forKey: .location)
self.media = try container.decodeIfPresent([Operations.GetLibraryItemsMedia].self, forKey: .media) self.media = try container.decodeIfPresent([Operations.GetLibraryItemsMedia].self, forKey: .media)
self.mediaGuid = try container.decodeIfPresent([Operations.GetLibraryItemsMediaGuid].self, forKey: .mediaGuid) self.mediaGuid = try container.decodeIfPresent([Operations.MediaGuid].self, forKey: .mediaGuid)
self.metaDataRating = try container.decodeIfPresent([Operations.GetLibraryItemsMetaDataRating].self, forKey: .metaDataRating) self.metaDataRating = try container.decodeIfPresent([Operations.MetaDataRating].self, forKey: .metaDataRating)
self._originallyAvailableAt = try container.decodeIfPresent(DateOnly<Date?>.self, forKey: .originallyAvailableAt) ?? DateOnly<Date?>(wrappedValue: nil) self._originallyAvailableAt = try container.decodeIfPresent(DateOnly<Date?>.self, forKey: .originallyAvailableAt) ?? DateOnly<Date?>(wrappedValue: nil)
self.originalTitle = try container.decodeIfPresent(String.self, forKey: .originalTitle) self.originalTitle = try container.decodeIfPresent(String.self, forKey: .originalTitle)
self.parentGuid = try container.decodeIfPresent(String.self, forKey: .parentGuid) self.parentGuid = try container.decodeIfPresent(String.self, forKey: .parentGuid)
@@ -356,7 +356,7 @@ extension Operations.GetLibraryItemsMetadata: Codable {
self.ratingImage = try container.decodeIfPresent(String.self, forKey: .ratingImage) self.ratingImage = try container.decodeIfPresent(String.self, forKey: .ratingImage)
self.role = try container.decodeIfPresent([Operations.GetLibraryItemsRole].self, forKey: .role) self.role = try container.decodeIfPresent([Operations.GetLibraryItemsRole].self, forKey: .role)
self.seasonCount = try container.decodeIfPresent(Int.self, forKey: .seasonCount) self.seasonCount = try container.decodeIfPresent(Int.self, forKey: .seasonCount)
self.showOrdering = try container.decodeIfPresent(Operations.GetLibraryItemsShowOrdering.self, forKey: .showOrdering) self.showOrdering = try container.decodeIfPresent(Operations.ShowOrdering.self, forKey: .showOrdering)
self.skipChildren = try container.decodeIfPresent(Bool.self, forKey: .skipChildren) self.skipChildren = try container.decodeIfPresent(Bool.self, forKey: .skipChildren)
self.skipCount = try container.decodeIfPresent(Int.self, forKey: .skipCount) self.skipCount = try container.decodeIfPresent(Int.self, forKey: .skipCount)
self.slug = try container.decodeIfPresent(String.self, forKey: .slug) self.slug = try container.decodeIfPresent(String.self, forKey: .slug)

View File

@@ -1,19 +0,0 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// Setting that indicates the episode ordering for the show.
/// None = Library default,
/// tmdbAiring = The Movie Database (Aired),
/// aired = TheTVDB (Aired),
/// dvd = TheTVDB (DVD),
/// absolute = TheTVDB (Absolute)).
///
public enum GetLibraryItemsShowOrdering: String, Codable, APIValue {
case `none` = "None"
case tmdbAiring = "tmdbAiring"
case tvdbAired = "aired"
case tvdbDvd = "dvd"
case tvdbAbsolute = "absolute"
}}

View File

@@ -5,12 +5,8 @@ import Foundation
extension Operations { extension Operations {
/// A model object /// A model object
public struct GetMediaMetaDataMedia { public struct GetMediaMetaDataMedia {
/// Indicates whether voice activity is detected.
public let hasVoiceActivity: Bool
/// Unique media identifier. /// Unique media identifier.
public let id: Int public let id: Int
/// An array of parts for this media item.
public let part: [Operations.GetMediaMetaDataPart]
/// Aspect ratio of the video. /// Aspect ratio of the video.
@DecimalSerialized @DecimalSerialized
public private(set) var aspectRatio: Double? public private(set) var aspectRatio: Double?
@@ -28,10 +24,14 @@ extension Operations {
/// Duration of the media in milliseconds. /// Duration of the media in milliseconds.
public let duration: Int? public let duration: Int?
public let has64bitOffsets: Bool? public let has64bitOffsets: Bool?
/// Indicates whether voice activity is detected.
public let hasVoiceActivity: Bool?
/// Video height in pixels. /// Video height in pixels.
public let height: Int? public let height: Int?
/// Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true /// Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
public let optimizedForStreaming: Operations.GetMediaMetaDataOptimizedForStreaming? public let optimizedForStreaming: Operations.GetMediaMetaDataOptimizedForStreaming?
/// An array of parts for this media item.
public let part: [Operations.GetMediaMetaDataPart]?
/// Video codec used. /// Video codec used.
public let videoCodec: String? public let videoCodec: String?
/// Frame rate of the video. Values found include NTSC, PAL, 24p /// Frame rate of the video. Values found include NTSC, PAL, 24p
@@ -46,9 +46,7 @@ extension Operations {
/// Creates an object with the specified parameters /// Creates an object with the specified parameters
/// ///
/// - Parameter hasVoiceActivity: Indicates whether voice activity is detected.
/// - Parameter id: Unique media identifier. /// - Parameter id: Unique media identifier.
/// - Parameter part: An array of parts for this media item.
/// - Parameter aspectRatio: Aspect ratio of the video. /// - Parameter aspectRatio: Aspect ratio of the video.
/// - Parameter audioChannels: Number of audio channels. /// - Parameter audioChannels: Number of audio channels.
/// - Parameter audioCodec: Audio codec used. /// - Parameter audioCodec: Audio codec used.
@@ -56,8 +54,10 @@ extension Operations {
/// - Parameter bitrate: Bitrate in bits per second. /// - Parameter bitrate: Bitrate in bits per second.
/// - Parameter container: File container type. /// - Parameter container: File container type.
/// - Parameter duration: Duration of the media in milliseconds. /// - Parameter duration: Duration of the media in milliseconds.
/// - Parameter hasVoiceActivity: Indicates whether voice activity is detected.
/// - Parameter height: Video height in pixels. /// - Parameter height: Video height in pixels.
/// - Parameter optimizedForStreaming: Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true /// - Parameter optimizedForStreaming: Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
/// - Parameter part: An array of parts for this media item.
/// - Parameter videoCodec: Video codec used. /// - Parameter videoCodec: Video codec used.
/// - Parameter videoFrameRate: Frame rate of the video. Values found include NTSC, PAL, 24p /// - Parameter videoFrameRate: Frame rate of the video. Values found include NTSC, PAL, 24p
/// ///
@@ -65,10 +65,8 @@ extension Operations {
/// - Parameter videoResolution: Video resolution (e.g., 4k). /// - Parameter videoResolution: Video resolution (e.g., 4k).
/// - Parameter width: Video width in pixels. /// - Parameter width: Video width in pixels.
/// ///
public init(hasVoiceActivity: Bool, id: Int, part: [Operations.GetMediaMetaDataPart], aspectRatio: Double? = nil, audioChannels: Int? = nil, audioCodec: String? = nil, audioProfile: String? = nil, bitrate: Int? = nil, container: String? = nil, displayOffset: Int? = nil, duration: Int? = nil, has64bitOffsets: Bool? = nil, height: Int? = nil, optimizedForStreaming: Operations.GetMediaMetaDataOptimizedForStreaming? = nil, videoCodec: String? = nil, videoFrameRate: String? = nil, videoProfile: String? = nil, videoResolution: String? = nil, width: Int? = nil) { public init(id: Int, aspectRatio: Double? = nil, audioChannels: Int? = nil, audioCodec: String? = nil, audioProfile: String? = nil, bitrate: Int? = nil, container: String? = nil, displayOffset: Int? = nil, duration: Int? = nil, has64bitOffsets: Bool? = nil, hasVoiceActivity: Bool? = nil, height: Int? = nil, optimizedForStreaming: Operations.GetMediaMetaDataOptimizedForStreaming? = nil, part: [Operations.GetMediaMetaDataPart]? = nil, videoCodec: String? = nil, videoFrameRate: String? = nil, videoProfile: String? = nil, videoResolution: String? = nil, width: Int? = nil) {
self.hasVoiceActivity = hasVoiceActivity
self.id = id self.id = id
self.part = part
self._aspectRatio = DecimalSerialized<Double?>(wrappedValue: aspectRatio) self._aspectRatio = DecimalSerialized<Double?>(wrappedValue: aspectRatio)
self.audioChannels = audioChannels self.audioChannels = audioChannels
self.audioCodec = audioCodec self.audioCodec = audioCodec
@@ -78,8 +76,10 @@ extension Operations {
self.displayOffset = displayOffset self.displayOffset = displayOffset
self.duration = duration self.duration = duration
self.has64bitOffsets = has64bitOffsets self.has64bitOffsets = has64bitOffsets
self.hasVoiceActivity = hasVoiceActivity
self.height = height self.height = height
self.optimizedForStreaming = optimizedForStreaming self.optimizedForStreaming = optimizedForStreaming
self.part = part
self.videoCodec = videoCodec self.videoCodec = videoCodec
self.videoFrameRate = videoFrameRate self.videoFrameRate = videoFrameRate
self.videoProfile = videoProfile self.videoProfile = videoProfile
@@ -90,9 +90,7 @@ extension Operations {
extension Operations.GetMediaMetaDataMedia: Codable { extension Operations.GetMediaMetaDataMedia: Codable {
enum CodingKeys: String, CodingKey { enum CodingKeys: String, CodingKey {
case hasVoiceActivity
case id case id
case part = "Part"
case aspectRatio case aspectRatio
case audioChannels case audioChannels
case audioCodec case audioCodec
@@ -102,8 +100,10 @@ extension Operations.GetMediaMetaDataMedia: Codable {
case displayOffset case displayOffset
case duration case duration
case has64bitOffsets case has64bitOffsets
case hasVoiceActivity
case height case height
case optimizedForStreaming case optimizedForStreaming
case part = "Part"
case videoCodec case videoCodec
case videoFrameRate case videoFrameRate
case videoProfile case videoProfile
@@ -113,9 +113,7 @@ extension Operations.GetMediaMetaDataMedia: Codable {
public init(from decoder: Decoder) throws { public init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self) let container = try decoder.container(keyedBy: CodingKeys.self)
self.hasVoiceActivity = try container.decode(Bool.self, forKey: .hasVoiceActivity)
self.id = try container.decode(Int.self, forKey: .id) self.id = try container.decode(Int.self, forKey: .id)
self.part = try container.decode([Operations.GetMediaMetaDataPart].self, forKey: .part)
self._aspectRatio = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .aspectRatio) ?? DecimalSerialized<Double?>(wrappedValue: nil) self._aspectRatio = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .aspectRatio) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.audioChannels = try container.decodeIfPresent(Int.self, forKey: .audioChannels) self.audioChannels = try container.decodeIfPresent(Int.self, forKey: .audioChannels)
self.audioCodec = try container.decodeIfPresent(String.self, forKey: .audioCodec) self.audioCodec = try container.decodeIfPresent(String.self, forKey: .audioCodec)
@@ -125,8 +123,10 @@ extension Operations.GetMediaMetaDataMedia: Codable {
self.displayOffset = try container.decodeIfPresent(Int.self, forKey: .displayOffset) self.displayOffset = try container.decodeIfPresent(Int.self, forKey: .displayOffset)
self.duration = try container.decodeIfPresent(Int.self, forKey: .duration) self.duration = try container.decodeIfPresent(Int.self, forKey: .duration)
self.has64bitOffsets = try container.decodeIfPresent(Bool.self, forKey: .has64bitOffsets) self.has64bitOffsets = try container.decodeIfPresent(Bool.self, forKey: .has64bitOffsets)
self.hasVoiceActivity = try container.decodeIfPresent(Bool.self, forKey: .hasVoiceActivity)
self.height = try container.decodeIfPresent(Int.self, forKey: .height) self.height = try container.decodeIfPresent(Int.self, forKey: .height)
self.optimizedForStreaming = try container.decodeIfPresent(Operations.GetMediaMetaDataOptimizedForStreaming.self, forKey: .optimizedForStreaming) self.optimizedForStreaming = try container.decodeIfPresent(Operations.GetMediaMetaDataOptimizedForStreaming.self, forKey: .optimizedForStreaming)
self.part = try container.decodeIfPresent([Operations.GetMediaMetaDataPart].self, forKey: .part)
self.videoCodec = try container.decodeIfPresent(String.self, forKey: .videoCodec) self.videoCodec = try container.decodeIfPresent(String.self, forKey: .videoCodec)
self.videoFrameRate = try container.decodeIfPresent(String.self, forKey: .videoFrameRate) self.videoFrameRate = try container.decodeIfPresent(String.self, forKey: .videoFrameRate)
self.videoProfile = try container.decodeIfPresent(String.self, forKey: .videoProfile) self.videoProfile = try container.decodeIfPresent(String.self, forKey: .videoProfile)
@@ -136,9 +136,7 @@ extension Operations.GetMediaMetaDataMedia: Codable {
public func encode(to encoder: Encoder) throws { public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self) var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(self.hasVoiceActivity, forKey: .hasVoiceActivity)
try container.encode(self.id, forKey: .id) try container.encode(self.id, forKey: .id)
try container.encode(self.part, forKey: .part)
if self.aspectRatio != nil { if self.aspectRatio != nil {
try container.encode(self._aspectRatio, forKey: .aspectRatio) try container.encode(self._aspectRatio, forKey: .aspectRatio)
} }
@@ -150,8 +148,10 @@ extension Operations.GetMediaMetaDataMedia: Codable {
try container.encodeIfPresent(self.displayOffset, forKey: .displayOffset) try container.encodeIfPresent(self.displayOffset, forKey: .displayOffset)
try container.encodeIfPresent(self.duration, forKey: .duration) try container.encodeIfPresent(self.duration, forKey: .duration)
try container.encodeIfPresent(self.has64bitOffsets, forKey: .has64bitOffsets) try container.encodeIfPresent(self.has64bitOffsets, forKey: .has64bitOffsets)
try container.encodeIfPresent(self.hasVoiceActivity, forKey: .hasVoiceActivity)
try container.encodeIfPresent(self.height, forKey: .height) try container.encodeIfPresent(self.height, forKey: .height)
try container.encodeIfPresent(self.optimizedForStreaming, forKey: .optimizedForStreaming) 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.videoCodec, forKey: .videoCodec)
try container.encodeIfPresent(self.videoFrameRate, forKey: .videoFrameRate) try container.encodeIfPresent(self.videoFrameRate, forKey: .videoFrameRate)
try container.encodeIfPresent(self.videoProfile, forKey: .videoProfile) try container.encodeIfPresent(self.videoProfile, forKey: .videoProfile)

View File

@@ -96,7 +96,7 @@ extension Operations {
public let parentTitle: String? public let parentTitle: String?
public let primaryExtraKey: String? public let primaryExtraKey: String?
/// An array of Writer roles. /// An array of Writer roles.
public let producer: [Operations.Producer]? public let producer: [Operations.GetMediaMetaDataProducer]?
/// The general rating /// The general rating
@DecimalSerialized @DecimalSerialized
public private(set) var rating: Double? public private(set) var rating: Double?
@@ -107,7 +107,7 @@ extension Operations {
/// An array of Actor roles. /// An array of Actor roles.
public let role: [Operations.GetMediaMetaDataRole]? public let role: [Operations.GetMediaMetaDataRole]?
/// An array of similar content objects. /// An array of similar content objects.
public let similar: [Operations.Similar]? public let similar: [Operations.GetMediaMetaDataSimilar]?
/// The number of times the item has been skipped. /// The number of times the item has been skipped.
public let skipCount: Int? public let skipCount: Int?
/// A URL-friendly identifier for the item. /// A URL-friendly identifier for the item.
@@ -183,7 +183,7 @@ extension Operations {
/// - Parameter viewedLeafCount: The number of episodes that have been viewed. /// - Parameter viewedLeafCount: The number of episodes that have been viewed.
/// - Parameter writer: An array of Writer roles. /// - Parameter writer: An array of Writer roles.
/// ///
public init(addedAt: Int, art: String, duration: Int, guid: String, image: [Operations.GetMediaMetaDataImage], key: String, librarySectionID: Int, librarySectionKey: String, librarySectionTitle: String, ratingKey: String, summary: String, thumb: String, title: String, type: String, ultraBlurColors: Operations.GetMediaMetaDataUltraBlurColors, updatedAt: Int, year: Int, audienceRating: Double? = nil, audienceRatingImage: String? = nil, chapterSource: String? = nil, childCount: Int? = nil, contentRating: String? = 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, guids: [Operations.GetMediaMetaDataGuids]? = nil, index: Int? = nil, lastViewedAt: Int? = nil, leafCount: Int? = nil, location: [Operations.GetMediaMetaDataLocation]? = nil, media: [Operations.GetMediaMetaDataMedia]? = nil, originallyAvailableAt: Date? = 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, rating: Double? = nil, ratingImage: String? = nil, ratings: [Operations.Ratings]? = 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) { public init(addedAt: Int, art: String, duration: Int, guid: String, image: [Operations.GetMediaMetaDataImage], key: String, librarySectionID: Int, librarySectionKey: String, librarySectionTitle: String, ratingKey: String, summary: String, thumb: String, title: String, type: String, ultraBlurColors: Operations.GetMediaMetaDataUltraBlurColors, updatedAt: Int, year: Int, audienceRating: Double? = nil, audienceRatingImage: String? = nil, chapterSource: String? = nil, childCount: Int? = nil, contentRating: String? = 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, guids: [Operations.GetMediaMetaDataGuids]? = nil, index: Int? = nil, lastViewedAt: Int? = nil, leafCount: Int? = nil, location: [Operations.GetMediaMetaDataLocation]? = nil, media: [Operations.GetMediaMetaDataMedia]? = nil, originallyAvailableAt: Date? = 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.GetMediaMetaDataProducer]? = nil, rating: Double? = nil, ratingImage: String? = nil, ratings: [Operations.Ratings]? = nil, role: [Operations.GetMediaMetaDataRole]? = nil, similar: [Operations.GetMediaMetaDataSimilar]? = 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.addedAt = addedAt
self.art = art self.art = art
self.duration = duration self.duration = duration
@@ -362,12 +362,12 @@ extension Operations.GetMediaMetaDataMetadata: Codable {
self.parentThumb = try container.decodeIfPresent(String.self, forKey: .parentThumb) self.parentThumb = try container.decodeIfPresent(String.self, forKey: .parentThumb)
self.parentTitle = try container.decodeIfPresent(String.self, forKey: .parentTitle) self.parentTitle = try container.decodeIfPresent(String.self, forKey: .parentTitle)
self.primaryExtraKey = try container.decodeIfPresent(String.self, forKey: .primaryExtraKey) self.primaryExtraKey = try container.decodeIfPresent(String.self, forKey: .primaryExtraKey)
self.producer = try container.decodeIfPresent([Operations.Producer].self, forKey: .producer) self.producer = try container.decodeIfPresent([Operations.GetMediaMetaDataProducer].self, forKey: .producer)
self._rating = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .rating) ?? DecimalSerialized<Double?>(wrappedValue: nil) self._rating = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .rating) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.ratingImage = try container.decodeIfPresent(String.self, forKey: .ratingImage) self.ratingImage = try container.decodeIfPresent(String.self, forKey: .ratingImage)
self.ratings = try container.decodeIfPresent([Operations.Ratings].self, forKey: .ratings) self.ratings = try container.decodeIfPresent([Operations.Ratings].self, forKey: .ratings)
self.role = try container.decodeIfPresent([Operations.GetMediaMetaDataRole].self, forKey: .role) self.role = try container.decodeIfPresent([Operations.GetMediaMetaDataRole].self, forKey: .role)
self.similar = try container.decodeIfPresent([Operations.Similar].self, forKey: .similar) self.similar = try container.decodeIfPresent([Operations.GetMediaMetaDataSimilar].self, forKey: .similar)
self.skipCount = try container.decodeIfPresent(Int.self, forKey: .skipCount) self.skipCount = try container.decodeIfPresent(Int.self, forKey: .skipCount)
self.slug = try container.decodeIfPresent(String.self, forKey: .slug) self.slug = try container.decodeIfPresent(String.self, forKey: .slug)
self.studio = try container.decodeIfPresent(String.self, forKey: .studio) self.studio = try container.decodeIfPresent(String.self, forKey: .studio)

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 GetMediaMetaDataProducer {
/// 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.GetMediaMetaDataProducer: Codable {
enum CodingKeys: String, CodingKey {
case filter
case id
case tag
case tagKey
case role
case thumb
}
}

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 GetMediaMetaDataSimilar {
/// 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.GetMediaMetaDataSimilar: Codable {
enum CodingKeys: String, CodingKey {
case filter
case id
case tag
}
}

View File

@@ -15,12 +15,6 @@ extension Operations {
public let id: Int public let id: Int
/// Index of the stream. /// Index of the stream.
public let index: Int 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). /// Stream type (1=video, 2=audio, 3=subtitle).
public let streamType: Int public let streamType: Int
/// Audio channel layout. /// Audio channel layout.
@@ -37,6 +31,7 @@ extension Operations {
public let chromaLocation: String? public let chromaLocation: String?
/// Chroma subsampling format. /// Chroma subsampling format.
public let chromaSubsampling: String? public let chromaSubsampling: String?
public let closedCaptions: Bool?
/// Coded video height. /// Coded video height.
public let codedHeight: Int? public let codedHeight: Int?
/// Coded video width. /// Coded video width.
@@ -69,6 +64,7 @@ extension Operations {
public let doviVersion: String? public let doviVersion: String?
/// Indicates if the stream is a dub. /// Indicates if the stream is a dub.
public let dub: Bool? public let dub: Bool?
public let embeddedInVideo: String?
public let forced: Bool? public let forced: Bool?
/// Frame rate of the stream. /// Frame rate of the stream.
@DecimalSerialized @DecimalSerialized
@@ -80,6 +76,12 @@ extension Operations {
public let hearingImpaired: Bool? public let hearingImpaired: Bool?
/// Height of the video stream. /// Height of the video stream.
public let height: Int? public let height: 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?
/// Video level. /// Video level.
public let level: Int? public let level: Int?
/// Indicates if this is the original stream. /// Indicates if this is the original stream.
@@ -105,9 +107,6 @@ extension Operations {
/// - Parameter extendedDisplayTitle: Extended display title for the stream. /// - Parameter extendedDisplayTitle: Extended display title for the stream.
/// - Parameter id: Unique stream identifier. /// - Parameter id: Unique stream identifier.
/// - Parameter index: Index of the stream. /// - 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 streamType: Stream type (1=video, 2=audio, 3=subtitle).
/// - Parameter audioChannelLayout: Audio channel layout. /// - Parameter audioChannelLayout: Audio channel layout.
/// - Parameter bitDepth: Bit depth of the video stream. /// - Parameter bitDepth: Bit depth of the video stream.
@@ -136,6 +135,9 @@ extension Operations {
/// - Parameter headerCompression: Indicates whether header compression is enabled. /// - Parameter headerCompression: Indicates whether header compression is enabled.
/// - Parameter hearingImpaired: Indicates if the stream is for the hearing impaired. /// - Parameter hearingImpaired: Indicates if the stream is for the hearing impaired.
/// - Parameter height: Height of the video stream. /// - Parameter height: Height of the video stream.
/// - Parameter language: Language of the stream.
/// - Parameter languageCode: ISO language code.
/// - Parameter languageTag: Language tag (e.g., en).
/// - Parameter level: Video level. /// - Parameter level: Video level.
/// - Parameter original: Indicates if this is the original stream. /// - Parameter original: Indicates if this is the original stream.
/// - Parameter profile: Video profile. /// - Parameter profile: Video profile.
@@ -145,15 +147,12 @@ extension Operations {
/// - Parameter title: Optional title for the stream (e.g., language variant). /// - Parameter title: Optional title for the stream (e.g., language variant).
/// - Parameter width: Width of the video stream. /// - Parameter width: Width of the video stream.
/// ///
public init(codec: String, displayTitle: String, extendedDisplayTitle: String, id: Int, index: Int, language: String, languageCode: String, languageTag: String, streamType: Int, audioChannelLayout: String? = nil, bitDepth: Int? = nil, bitrate: 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, headerCompression: 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) { public init(codec: String, displayTitle: String, extendedDisplayTitle: String, id: Int, index: Int, streamType: Int, audioChannelLayout: String? = nil, bitDepth: Int? = nil, bitrate: Int? = nil, canAutoSync: Bool? = nil, channels: Int? = nil, chromaLocation: String? = nil, chromaSubsampling: String? = nil, closedCaptions: Bool? = 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, embeddedInVideo: String? = nil, forced: Bool? = nil, frameRate: Double? = nil, hasScalingMatrix: Bool? = nil, headerCompression: Bool? = nil, hearingImpaired: Bool? = nil, height: Int? = nil, language: String? = nil, languageCode: String? = nil, languageTag: String? = 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.codec = codec self.codec = codec
self.displayTitle = displayTitle self.displayTitle = displayTitle
self.extendedDisplayTitle = extendedDisplayTitle self.extendedDisplayTitle = extendedDisplayTitle
self.id = id self.id = id
self.index = index self.index = index
self.language = language
self.languageCode = languageCode
self.languageTag = languageTag
self.streamType = streamType self.streamType = streamType
self.audioChannelLayout = audioChannelLayout self.audioChannelLayout = audioChannelLayout
self.bitDepth = bitDepth self.bitDepth = bitDepth
@@ -162,6 +161,7 @@ extension Operations {
self.channels = channels self.channels = channels
self.chromaLocation = chromaLocation self.chromaLocation = chromaLocation
self.chromaSubsampling = chromaSubsampling self.chromaSubsampling = chromaSubsampling
self.closedCaptions = closedCaptions
self.codedHeight = codedHeight self.codedHeight = codedHeight
self.codedWidth = codedWidth self.codedWidth = codedWidth
self.colorPrimaries = colorPrimaries self.colorPrimaries = colorPrimaries
@@ -178,12 +178,16 @@ extension Operations {
self.dovirpuPresent = dovirpuPresent self.dovirpuPresent = dovirpuPresent
self.doviVersion = doviVersion self.doviVersion = doviVersion
self.dub = dub self.dub = dub
self.embeddedInVideo = embeddedInVideo
self.forced = forced self.forced = forced
self._frameRate = DecimalSerialized<Double?>(wrappedValue: frameRate) self._frameRate = DecimalSerialized<Double?>(wrappedValue: frameRate)
self.hasScalingMatrix = hasScalingMatrix self.hasScalingMatrix = hasScalingMatrix
self.headerCompression = headerCompression self.headerCompression = headerCompression
self.hearingImpaired = hearingImpaired self.hearingImpaired = hearingImpaired
self.height = height self.height = height
self.language = language
self.languageCode = languageCode
self.languageTag = languageTag
self.level = level self.level = level
self.original = original self.original = original
self.profile = profile self.profile = profile
@@ -203,9 +207,6 @@ extension Operations.GetMediaMetaDataStream: Codable {
case extendedDisplayTitle case extendedDisplayTitle
case id case id
case index case index
case language
case languageCode
case languageTag
case streamType case streamType
case audioChannelLayout case audioChannelLayout
case bitDepth case bitDepth
@@ -214,6 +215,7 @@ extension Operations.GetMediaMetaDataStream: Codable {
case channels case channels
case chromaLocation case chromaLocation
case chromaSubsampling case chromaSubsampling
case closedCaptions
case codedHeight case codedHeight
case codedWidth case codedWidth
case colorPrimaries case colorPrimaries
@@ -230,12 +232,16 @@ extension Operations.GetMediaMetaDataStream: Codable {
case dovirpuPresent = "DOVIRPUPresent" case dovirpuPresent = "DOVIRPUPresent"
case doviVersion = "DOVIVersion" case doviVersion = "DOVIVersion"
case dub case dub
case embeddedInVideo
case forced case forced
case frameRate case frameRate
case hasScalingMatrix case hasScalingMatrix
case headerCompression case headerCompression
case hearingImpaired case hearingImpaired
case height case height
case language
case languageCode
case languageTag
case level case level
case original case original
case profile case profile
@@ -254,9 +260,6 @@ extension Operations.GetMediaMetaDataStream: Codable {
self.extendedDisplayTitle = try container.decode(String.self, forKey: .extendedDisplayTitle) self.extendedDisplayTitle = try container.decode(String.self, forKey: .extendedDisplayTitle)
self.id = try container.decode(Int.self, forKey: .id) self.id = try container.decode(Int.self, forKey: .id)
self.index = try container.decode(Int.self, forKey: .index) 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.streamType = try container.decode(Int.self, forKey: .streamType)
self.audioChannelLayout = try container.decodeIfPresent(String.self, forKey: .audioChannelLayout) self.audioChannelLayout = try container.decodeIfPresent(String.self, forKey: .audioChannelLayout)
self.bitDepth = try container.decodeIfPresent(Int.self, forKey: .bitDepth) self.bitDepth = try container.decodeIfPresent(Int.self, forKey: .bitDepth)
@@ -265,6 +268,7 @@ extension Operations.GetMediaMetaDataStream: Codable {
self.channels = try container.decodeIfPresent(Int.self, forKey: .channels) self.channels = try container.decodeIfPresent(Int.self, forKey: .channels)
self.chromaLocation = try container.decodeIfPresent(String.self, forKey: .chromaLocation) self.chromaLocation = try container.decodeIfPresent(String.self, forKey: .chromaLocation)
self.chromaSubsampling = try container.decodeIfPresent(String.self, forKey: .chromaSubsampling) self.chromaSubsampling = try container.decodeIfPresent(String.self, forKey: .chromaSubsampling)
self.closedCaptions = try container.decodeIfPresent(Bool.self, forKey: .closedCaptions)
self.codedHeight = try container.decodeIfPresent(Int.self, forKey: .codedHeight) self.codedHeight = try container.decodeIfPresent(Int.self, forKey: .codedHeight)
self.codedWidth = try container.decodeIfPresent(Int.self, forKey: .codedWidth) self.codedWidth = try container.decodeIfPresent(Int.self, forKey: .codedWidth)
self.colorPrimaries = try container.decodeIfPresent(String.self, forKey: .colorPrimaries) self.colorPrimaries = try container.decodeIfPresent(String.self, forKey: .colorPrimaries)
@@ -281,12 +285,16 @@ extension Operations.GetMediaMetaDataStream: Codable {
self.dovirpuPresent = try container.decodeIfPresent(Bool.self, forKey: .dovirpuPresent) self.dovirpuPresent = try container.decodeIfPresent(Bool.self, forKey: .dovirpuPresent)
self.doviVersion = try container.decodeIfPresent(String.self, forKey: .doviVersion) self.doviVersion = try container.decodeIfPresent(String.self, forKey: .doviVersion)
self.dub = try container.decodeIfPresent(Bool.self, forKey: .dub) self.dub = try container.decodeIfPresent(Bool.self, forKey: .dub)
self.embeddedInVideo = try container.decodeIfPresent(String.self, forKey: .embeddedInVideo)
self.forced = try container.decodeIfPresent(Bool.self, forKey: .forced) self.forced = try container.decodeIfPresent(Bool.self, forKey: .forced)
self._frameRate = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .frameRate) ?? DecimalSerialized<Double?>(wrappedValue: nil) self._frameRate = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .frameRate) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.hasScalingMatrix = try container.decodeIfPresent(Bool.self, forKey: .hasScalingMatrix) self.hasScalingMatrix = try container.decodeIfPresent(Bool.self, forKey: .hasScalingMatrix)
self.headerCompression = try container.decodeIfPresent(Bool.self, forKey: .headerCompression) self.headerCompression = try container.decodeIfPresent(Bool.self, forKey: .headerCompression)
self.hearingImpaired = try container.decodeIfPresent(Bool.self, forKey: .hearingImpaired) self.hearingImpaired = try container.decodeIfPresent(Bool.self, forKey: .hearingImpaired)
self.height = try container.decodeIfPresent(Int.self, forKey: .height) self.height = try container.decodeIfPresent(Int.self, forKey: .height)
self.language = try container.decodeIfPresent(String.self, forKey: .language)
self.languageCode = try container.decodeIfPresent(String.self, forKey: .languageCode)
self.languageTag = try container.decodeIfPresent(String.self, forKey: .languageTag)
self.level = try container.decodeIfPresent(Int.self, forKey: .level) self.level = try container.decodeIfPresent(Int.self, forKey: .level)
self.original = try container.decodeIfPresent(Bool.self, forKey: .original) self.original = try container.decodeIfPresent(Bool.self, forKey: .original)
self.profile = try container.decodeIfPresent(String.self, forKey: .profile) self.profile = try container.decodeIfPresent(String.self, forKey: .profile)
@@ -305,9 +313,6 @@ extension Operations.GetMediaMetaDataStream: Codable {
try container.encode(self.extendedDisplayTitle, forKey: .extendedDisplayTitle) try container.encode(self.extendedDisplayTitle, forKey: .extendedDisplayTitle)
try container.encode(self.id, forKey: .id) try container.encode(self.id, forKey: .id)
try container.encode(self.index, forKey: .index) 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.encode(self.streamType, forKey: .streamType)
try container.encodeIfPresent(self.audioChannelLayout, forKey: .audioChannelLayout) try container.encodeIfPresent(self.audioChannelLayout, forKey: .audioChannelLayout)
try container.encodeIfPresent(self.bitDepth, forKey: .bitDepth) try container.encodeIfPresent(self.bitDepth, forKey: .bitDepth)
@@ -316,6 +321,7 @@ extension Operations.GetMediaMetaDataStream: Codable {
try container.encodeIfPresent(self.channels, forKey: .channels) try container.encodeIfPresent(self.channels, forKey: .channels)
try container.encodeIfPresent(self.chromaLocation, forKey: .chromaLocation) try container.encodeIfPresent(self.chromaLocation, forKey: .chromaLocation)
try container.encodeIfPresent(self.chromaSubsampling, forKey: .chromaSubsampling) try container.encodeIfPresent(self.chromaSubsampling, forKey: .chromaSubsampling)
try container.encodeIfPresent(self.closedCaptions, forKey: .closedCaptions)
try container.encodeIfPresent(self.codedHeight, forKey: .codedHeight) try container.encodeIfPresent(self.codedHeight, forKey: .codedHeight)
try container.encodeIfPresent(self.codedWidth, forKey: .codedWidth) try container.encodeIfPresent(self.codedWidth, forKey: .codedWidth)
try container.encodeIfPresent(self.colorPrimaries, forKey: .colorPrimaries) try container.encodeIfPresent(self.colorPrimaries, forKey: .colorPrimaries)
@@ -332,6 +338,7 @@ extension Operations.GetMediaMetaDataStream: Codable {
try container.encodeIfPresent(self.dovirpuPresent, forKey: .dovirpuPresent) try container.encodeIfPresent(self.dovirpuPresent, forKey: .dovirpuPresent)
try container.encodeIfPresent(self.doviVersion, forKey: .doviVersion) try container.encodeIfPresent(self.doviVersion, forKey: .doviVersion)
try container.encodeIfPresent(self.dub, forKey: .dub) try container.encodeIfPresent(self.dub, forKey: .dub)
try container.encodeIfPresent(self.embeddedInVideo, forKey: .embeddedInVideo)
try container.encodeIfPresent(self.forced, forKey: .forced) try container.encodeIfPresent(self.forced, forKey: .forced)
if self.frameRate != nil { if self.frameRate != nil {
try container.encode(self._frameRate, forKey: .frameRate) try container.encode(self._frameRate, forKey: .frameRate)
@@ -340,6 +347,9 @@ extension Operations.GetMediaMetaDataStream: Codable {
try container.encodeIfPresent(self.headerCompression, forKey: .headerCompression) try container.encodeIfPresent(self.headerCompression, forKey: .headerCompression)
try container.encodeIfPresent(self.hearingImpaired, forKey: .hearingImpaired) try container.encodeIfPresent(self.hearingImpaired, forKey: .hearingImpaired)
try container.encodeIfPresent(self.height, forKey: .height) try container.encodeIfPresent(self.height, forKey: .height)
try container.encodeIfPresent(self.language, forKey: .language)
try container.encodeIfPresent(self.languageCode, forKey: .languageCode)
try container.encodeIfPresent(self.languageTag, forKey: .languageTag)
try container.encodeIfPresent(self.level, forKey: .level) try container.encodeIfPresent(self.level, forKey: .level)
try container.encodeIfPresent(self.original, forKey: .original) try container.encodeIfPresent(self.original, forKey: .original)
try container.encodeIfPresent(self.profile, forKey: .profile) try container.encodeIfPresent(self.profile, forKey: .profile)

View File

@@ -1,23 +0,0 @@
// 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 GetOnDeckBadRequest {
public let errors: [Operations.GetOnDeckErrors]?
/// Creates a request model with the specified parameters
///
///
public init(errors: [Operations.GetOnDeckErrors]? = nil) {
self.errors = errors
}
}}
extension Operations.GetOnDeckBadRequest: Codable {
enum CodingKeys: String, CodingKey {
case errors
}
}

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 GetOnDeckErrors {
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.GetOnDeckErrors: Codable {
enum CodingKeys: String, CodingKey {
case code
case message
case status
}
}

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 GetOnDeckLibraryErrors {
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.GetOnDeckLibraryErrors: Codable {
enum CodingKeys: String, CodingKey {
case code
case message
case status
}
}

View File

@@ -1,147 +0,0 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetOnDeckMedia {
@DecimalSerialized
public private(set) var aspectRatio: Double?
@DecimalSerialized
public private(set) var audioChannels: Double?
public let audioCodec: String?
public let audioProfile: String?
@DecimalSerialized
public private(set) var bitrate: Double?
public let container: String?
@DecimalSerialized
public private(set) var duration: Double?
@DecimalSerialized
public private(set) var height: Double?
@DecimalSerialized
public private(set) var id: Double?
public let part: [Operations.GetOnDeckPart]?
public let videoCodec: String?
public let videoFrameRate: String?
public let videoProfile: String?
public let videoResolution: String?
@DecimalSerialized
public private(set) var width: Double?
/// Creates an object with the specified parameters
///
///
public init(aspectRatio: Double? = nil, audioChannels: Double? = nil, audioCodec: String? = nil, audioProfile: String? = nil, bitrate: Double? = nil, container: String? = nil, duration: Double? = nil, height: Double? = nil, id: Double? = nil, part: [Operations.GetOnDeckPart]? = nil, videoCodec: String? = nil, videoFrameRate: String? = nil, videoProfile: String? = nil, videoResolution: String? = nil, width: Double? = nil) {
self._aspectRatio = DecimalSerialized<Double?>(wrappedValue: aspectRatio)
self._audioChannels = DecimalSerialized<Double?>(wrappedValue: audioChannels)
self.audioCodec = audioCodec
self.audioProfile = audioProfile
self._bitrate = DecimalSerialized<Double?>(wrappedValue: bitrate)
self.container = container
self._duration = DecimalSerialized<Double?>(wrappedValue: duration)
self._height = DecimalSerialized<Double?>(wrappedValue: height)
self._id = DecimalSerialized<Double?>(wrappedValue: id)
self.part = part
self.videoCodec = videoCodec
self.videoFrameRate = videoFrameRate
self.videoProfile = videoProfile
self.videoResolution = videoResolution
self._width = DecimalSerialized<Double?>(wrappedValue: width)
}
}}
extension Operations.GetOnDeckMedia: Codable {
enum CodingKeys: String, CodingKey {
case aspectRatio
case audioChannels
case audioCodec
case audioProfile
case bitrate
case container
case duration
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.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .aspectRatio) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self._audioChannels = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .audioChannels) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.audioCodec = try container.decodeIfPresent(String.self, forKey: .audioCodec)
self.audioProfile = try container.decodeIfPresent(String.self, forKey: .audioProfile)
self._bitrate = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .bitrate) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.container = try container.decodeIfPresent(String.self, forKey: .container)
self._duration = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .duration) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self._height = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .height) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self._id = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .id) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.part = try container.decodeIfPresent([Operations.GetOnDeckPart].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(DecimalSerialized<Double?>.self, forKey: .width) ?? DecimalSerialized<Double?>(wrappedValue: nil)
}
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)
}
if self.audioChannels != nil {
try container.encode(self._audioChannels, forKey: .audioChannels)
}
try container.encodeIfPresent(self.audioCodec, forKey: .audioCodec)
try container.encodeIfPresent(self.audioProfile, forKey: .audioProfile)
if self.bitrate != nil {
try container.encode(self._bitrate, forKey: .bitrate)
}
try container.encodeIfPresent(self.container, forKey: .container)
if self.duration != nil {
try container.encode(self._duration, forKey: .duration)
}
if self.height != nil {
try container.encode(self._height, forKey: .height)
}
if self.id != nil {
try container.encode(self._id, forKey: .id)
}
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)
if self.width != nil {
try container.encode(self._width, forKey: .width)
}
}
}
extension Operations.GetOnDeckMedia {
var idWrapper: DecimalSerialized<Double?> {
return _id
}
var durationWrapper: DecimalSerialized<Double?> {
return _duration
}
var bitrateWrapper: DecimalSerialized<Double?> {
return _bitrate
}
var widthWrapper: DecimalSerialized<Double?> {
return _width
}
var heightWrapper: DecimalSerialized<Double?> {
return _height
}
var aspectRatioWrapper: DecimalSerialized<Double?> {
return _aspectRatio
}
var audioChannelsWrapper: DecimalSerialized<Double?> {
return _audioChannels
}
}

View File

@@ -1,77 +0,0 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetOnDeckMediaContainer {
public let allowSync: Bool?
public let identifier: String?
public let mediaTagPrefix: String?
@DecimalSerialized
public private(set) var mediaTagVersion: Double?
public let metadata: [Operations.GetOnDeckMetadata]?
public let mixedParents: Bool?
@DecimalSerialized
public private(set) var size: Double?
/// Creates an object with the specified parameters
///
///
public init(allowSync: Bool? = nil, identifier: String? = nil, mediaTagPrefix: String? = nil, mediaTagVersion: Double? = nil, metadata: [Operations.GetOnDeckMetadata]? = nil, mixedParents: Bool? = nil, size: Double? = nil) {
self.allowSync = allowSync
self.identifier = identifier
self.mediaTagPrefix = mediaTagPrefix
self._mediaTagVersion = DecimalSerialized<Double?>(wrappedValue: mediaTagVersion)
self.metadata = metadata
self.mixedParents = mixedParents
self._size = DecimalSerialized<Double?>(wrappedValue: size)
}
}}
extension Operations.GetOnDeckMediaContainer: Codable {
enum CodingKeys: String, CodingKey {
case allowSync
case identifier
case mediaTagPrefix
case mediaTagVersion
case metadata = "Metadata"
case mixedParents
case size
}
public init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
self.allowSync = try container.decodeIfPresent(Bool.self, forKey: .allowSync)
self.identifier = try container.decodeIfPresent(String.self, forKey: .identifier)
self.mediaTagPrefix = try container.decodeIfPresent(String.self, forKey: .mediaTagPrefix)
self._mediaTagVersion = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .mediaTagVersion) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.metadata = try container.decodeIfPresent([Operations.GetOnDeckMetadata].self, forKey: .metadata)
self.mixedParents = try container.decodeIfPresent(Bool.self, forKey: .mixedParents)
self._size = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .size) ?? DecimalSerialized<Double?>(wrappedValue: nil)
}
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encodeIfPresent(self.allowSync, forKey: .allowSync)
try container.encodeIfPresent(self.identifier, forKey: .identifier)
try container.encodeIfPresent(self.mediaTagPrefix, forKey: .mediaTagPrefix)
if self.mediaTagVersion != nil {
try container.encode(self._mediaTagVersion, forKey: .mediaTagVersion)
}
try container.encodeIfPresent(self.metadata, forKey: .metadata)
try container.encodeIfPresent(self.mixedParents, forKey: .mixedParents)
if self.size != nil {
try container.encode(self._size, forKey: .size)
}
}
}
extension Operations.GetOnDeckMediaContainer {
var sizeWrapper: DecimalSerialized<Double?> {
return _size
}
var mediaTagVersionWrapper: DecimalSerialized<Double?> {
return _mediaTagVersion
}
}

View File

@@ -1,282 +0,0 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetOnDeckMetadata {
@DecimalSerialized
public private(set) var addedAt: Double?
public let allowSync: Bool?
public let art: String?
public let contentRating: String?
@DecimalSerialized
public private(set) var duration: Double?
public let grandparentArt: String?
public let grandparentGuid: String?
public let grandparentKey: String?
@DecimalSerialized
public private(set) var grandparentRatingKey: Double?
public let grandparentTheme: String?
public let grandparentThumb: String?
public let grandparentTitle: String?
public let guid: String?
public let guids: [Operations.GetOnDeckGuids]?
@DecimalSerialized
public private(set) var index: Double?
public let key: String?
@DecimalSerialized
public private(set) var lastViewedAt: Double?
@DecimalSerialized
public private(set) var librarySectionID: Double?
public let librarySectionKey: String?
public let librarySectionTitle: String?
public let librarySectionUUID: String?
public let media: [Operations.GetOnDeckMedia]?
@DateTime
public private(set) var originallyAvailableAt: Date?
public let parentGuid: String?
@DecimalSerialized
public private(set) var parentIndex: Double?
public let parentKey: String?
@DecimalSerialized
public private(set) var parentRatingKey: Double?
public let parentThumb: String?
public let parentTitle: String?
@DecimalSerialized
public private(set) var ratingKey: Double?
public let summary: String?
public let thumb: String?
public let title: String?
public let type: String?
@DecimalSerialized
public private(set) var updatedAt: Double?
@DecimalSerialized
public private(set) var year: Double?
/// Creates an object with the specified parameters
///
///
public init(addedAt: Double? = nil, allowSync: Bool? = nil, art: String? = nil, contentRating: String? = nil, duration: Double? = nil, grandparentArt: String? = nil, grandparentGuid: String? = nil, grandparentKey: String? = nil, grandparentRatingKey: Double? = nil, grandparentTheme: String? = nil, grandparentThumb: String? = nil, grandparentTitle: String? = nil, guid: String? = nil, guids: [Operations.GetOnDeckGuids]? = nil, index: Double? = nil, key: String? = nil, lastViewedAt: Double? = nil, librarySectionID: Double? = nil, librarySectionKey: String? = nil, librarySectionTitle: String? = nil, librarySectionUUID: String? = nil, media: [Operations.GetOnDeckMedia]? = nil, originallyAvailableAt: Date? = nil, parentGuid: String? = nil, parentIndex: Double? = nil, parentKey: String? = nil, parentRatingKey: Double? = nil, parentThumb: String? = nil, parentTitle: String? = nil, ratingKey: Double? = nil, summary: String? = nil, thumb: String? = nil, title: String? = nil, type: String? = nil, updatedAt: Double? = nil, year: Double? = nil) {
self._addedAt = DecimalSerialized<Double?>(wrappedValue: addedAt)
self.allowSync = allowSync
self.art = art
self.contentRating = contentRating
self._duration = DecimalSerialized<Double?>(wrappedValue: duration)
self.grandparentArt = grandparentArt
self.grandparentGuid = grandparentGuid
self.grandparentKey = grandparentKey
self._grandparentRatingKey = DecimalSerialized<Double?>(wrappedValue: grandparentRatingKey)
self.grandparentTheme = grandparentTheme
self.grandparentThumb = grandparentThumb
self.grandparentTitle = grandparentTitle
self.guid = guid
self.guids = guids
self._index = DecimalSerialized<Double?>(wrappedValue: index)
self.key = key
self._lastViewedAt = DecimalSerialized<Double?>(wrappedValue: lastViewedAt)
self._librarySectionID = DecimalSerialized<Double?>(wrappedValue: librarySectionID)
self.librarySectionKey = librarySectionKey
self.librarySectionTitle = librarySectionTitle
self.librarySectionUUID = librarySectionUUID
self.media = media
self._originallyAvailableAt = DateTime<Date?>(wrappedValue: originallyAvailableAt)
self.parentGuid = parentGuid
self._parentIndex = DecimalSerialized<Double?>(wrappedValue: parentIndex)
self.parentKey = parentKey
self._parentRatingKey = DecimalSerialized<Double?>(wrappedValue: parentRatingKey)
self.parentThumb = parentThumb
self.parentTitle = parentTitle
self._ratingKey = DecimalSerialized<Double?>(wrappedValue: ratingKey)
self.summary = summary
self.thumb = thumb
self.title = title
self.type = type
self._updatedAt = DecimalSerialized<Double?>(wrappedValue: updatedAt)
self._year = DecimalSerialized<Double?>(wrappedValue: year)
}
}}
extension Operations.GetOnDeckMetadata: Codable {
enum CodingKeys: String, CodingKey {
case addedAt
case allowSync
case art
case contentRating
case duration
case grandparentArt
case grandparentGuid
case grandparentKey
case grandparentRatingKey
case grandparentTheme
case grandparentThumb
case grandparentTitle
case guid
case guids = "Guid"
case index
case key
case lastViewedAt
case librarySectionID
case librarySectionKey
case librarySectionTitle
case librarySectionUUID
case media = "Media"
case originallyAvailableAt
case parentGuid
case parentIndex
case parentKey
case parentRatingKey
case parentThumb
case parentTitle
case ratingKey
case summary
case thumb
case title
case type
case updatedAt
case year
}
public init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
self._addedAt = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .addedAt) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.allowSync = try container.decodeIfPresent(Bool.self, forKey: .allowSync)
self.art = try container.decodeIfPresent(String.self, forKey: .art)
self.contentRating = try container.decodeIfPresent(String.self, forKey: .contentRating)
self._duration = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .duration) ?? DecimalSerialized<Double?>(wrappedValue: nil)
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(DecimalSerialized<Double?>.self, forKey: .grandparentRatingKey) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.grandparentTheme = try container.decodeIfPresent(String.self, forKey: .grandparentTheme)
self.grandparentThumb = try container.decodeIfPresent(String.self, forKey: .grandparentThumb)
self.grandparentTitle = try container.decodeIfPresent(String.self, forKey: .grandparentTitle)
self.guid = try container.decodeIfPresent(String.self, forKey: .guid)
self.guids = try container.decodeIfPresent([Operations.GetOnDeckGuids].self, forKey: .guids)
self._index = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .index) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.key = try container.decodeIfPresent(String.self, forKey: .key)
self._lastViewedAt = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .lastViewedAt) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self._librarySectionID = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .librarySectionID) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.librarySectionKey = try container.decodeIfPresent(String.self, forKey: .librarySectionKey)
self.librarySectionTitle = try container.decodeIfPresent(String.self, forKey: .librarySectionTitle)
self.librarySectionUUID = try container.decodeIfPresent(String.self, forKey: .librarySectionUUID)
self.media = try container.decodeIfPresent([Operations.GetOnDeckMedia].self, forKey: .media)
self._originallyAvailableAt = try container.decodeIfPresent(DateTime<Date?>.self, forKey: .originallyAvailableAt) ?? DateTime<Date?>(wrappedValue: nil)
self.parentGuid = try container.decodeIfPresent(String.self, forKey: .parentGuid)
self._parentIndex = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .parentIndex) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.parentKey = try container.decodeIfPresent(String.self, forKey: .parentKey)
self._parentRatingKey = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .parentRatingKey) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.parentThumb = try container.decodeIfPresent(String.self, forKey: .parentThumb)
self.parentTitle = try container.decodeIfPresent(String.self, forKey: .parentTitle)
self._ratingKey = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .ratingKey) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.summary = try container.decodeIfPresent(String.self, forKey: .summary)
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(DecimalSerialized<Double?>.self, forKey: .updatedAt) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self._year = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .year) ?? DecimalSerialized<Double?>(wrappedValue: nil)
}
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
if self.addedAt != nil {
try container.encode(self._addedAt, forKey: .addedAt)
}
try container.encodeIfPresent(self.allowSync, forKey: .allowSync)
try container.encodeIfPresent(self.art, forKey: .art)
try container.encodeIfPresent(self.contentRating, forKey: .contentRating)
if self.duration != nil {
try container.encode(self._duration, forKey: .duration)
}
try container.encodeIfPresent(self.grandparentArt, forKey: .grandparentArt)
try container.encodeIfPresent(self.grandparentGuid, forKey: .grandparentGuid)
try container.encodeIfPresent(self.grandparentKey, forKey: .grandparentKey)
if self.grandparentRatingKey != nil {
try container.encode(self._grandparentRatingKey, forKey: .grandparentRatingKey)
}
try container.encodeIfPresent(self.grandparentTheme, forKey: .grandparentTheme)
try container.encodeIfPresent(self.grandparentThumb, forKey: .grandparentThumb)
try container.encodeIfPresent(self.grandparentTitle, forKey: .grandparentTitle)
try container.encodeIfPresent(self.guid, forKey: .guid)
try container.encodeIfPresent(self.guids, forKey: .guids)
if self.index != nil {
try container.encode(self._index, forKey: .index)
}
try container.encodeIfPresent(self.key, forKey: .key)
if self.lastViewedAt != nil {
try container.encode(self._lastViewedAt, forKey: .lastViewedAt)
}
if self.librarySectionID != nil {
try container.encode(self._librarySectionID, forKey: .librarySectionID)
}
try container.encodeIfPresent(self.librarySectionKey, forKey: .librarySectionKey)
try container.encodeIfPresent(self.librarySectionTitle, forKey: .librarySectionTitle)
try container.encodeIfPresent(self.librarySectionUUID, forKey: .librarySectionUUID)
try container.encodeIfPresent(self.media, forKey: .media)
if self.originallyAvailableAt != nil {
try container.encode(self._originallyAvailableAt, forKey: .originallyAvailableAt)
}
try container.encodeIfPresent(self.parentGuid, forKey: .parentGuid)
if self.parentIndex != nil {
try container.encode(self._parentIndex, forKey: .parentIndex)
}
try container.encodeIfPresent(self.parentKey, forKey: .parentKey)
if self.parentRatingKey != nil {
try container.encode(self._parentRatingKey, forKey: .parentRatingKey)
}
try container.encodeIfPresent(self.parentThumb, forKey: .parentThumb)
try container.encodeIfPresent(self.parentTitle, forKey: .parentTitle)
if self.ratingKey != nil {
try container.encode(self._ratingKey, forKey: .ratingKey)
}
try container.encodeIfPresent(self.summary, forKey: .summary)
try container.encodeIfPresent(self.thumb, forKey: .thumb)
try container.encodeIfPresent(self.title, forKey: .title)
try container.encodeIfPresent(self.type, forKey: .type)
if self.updatedAt != nil {
try container.encode(self._updatedAt, forKey: .updatedAt)
}
if self.year != nil {
try container.encode(self._year, forKey: .year)
}
}
}
extension Operations.GetOnDeckMetadata {
var librarySectionIDWrapper: DecimalSerialized<Double?> {
return _librarySectionID
}
var ratingKeyWrapper: DecimalSerialized<Double?> {
return _ratingKey
}
var parentRatingKeyWrapper: DecimalSerialized<Double?> {
return _parentRatingKey
}
var grandparentRatingKeyWrapper: DecimalSerialized<Double?> {
return _grandparentRatingKey
}
var indexWrapper: DecimalSerialized<Double?> {
return _index
}
var parentIndexWrapper: DecimalSerialized<Double?> {
return _parentIndex
}
var lastViewedAtWrapper: DecimalSerialized<Double?> {
return _lastViewedAt
}
var yearWrapper: DecimalSerialized<Double?> {
return _year
}
var durationWrapper: DecimalSerialized<Double?> {
return _duration
}
var originallyAvailableAtWrapper: DateTime<Date?> {
return _originallyAvailableAt
}
var addedAtWrapper: DecimalSerialized<Double?> {
return _addedAt
}
var updatedAtWrapper: DecimalSerialized<Double?> {
return _updatedAt
}
}

View File

@@ -1,93 +0,0 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetOnDeckPart {
public let audioProfile: String?
public let container: String?
@DecimalSerialized
public private(set) var duration: Double?
public let file: String?
@DecimalSerialized
public private(set) var id: Double?
public let key: String?
@DecimalSerialized
public private(set) var size: Double?
public let stream: [Operations.GetOnDeckStream]?
public let videoProfile: String?
/// Creates an object with the specified parameters
///
///
public init(audioProfile: String? = nil, container: String? = nil, duration: Double? = nil, file: String? = nil, id: Double? = nil, key: String? = nil, size: Double? = nil, stream: [Operations.GetOnDeckStream]? = nil, videoProfile: String? = nil) {
self.audioProfile = audioProfile
self.container = container
self._duration = DecimalSerialized<Double?>(wrappedValue: duration)
self.file = file
self._id = DecimalSerialized<Double?>(wrappedValue: id)
self.key = key
self._size = DecimalSerialized<Double?>(wrappedValue: size)
self.stream = stream
self.videoProfile = videoProfile
}
}}
extension Operations.GetOnDeckPart: Codable {
enum CodingKeys: String, CodingKey {
case audioProfile
case container
case duration
case file
case id
case key
case size
case stream = "Stream"
case videoProfile
}
public init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
self.audioProfile = try container.decodeIfPresent(String.self, forKey: .audioProfile)
self.container = try container.decodeIfPresent(String.self, forKey: .container)
self._duration = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .duration) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.file = try container.decodeIfPresent(String.self, forKey: .file)
self._id = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .id) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.key = try container.decodeIfPresent(String.self, forKey: .key)
self._size = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .size) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.stream = try container.decodeIfPresent([Operations.GetOnDeckStream].self, forKey: .stream)
self.videoProfile = try container.decodeIfPresent(String.self, forKey: .videoProfile)
}
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encodeIfPresent(self.audioProfile, forKey: .audioProfile)
try container.encodeIfPresent(self.container, forKey: .container)
if self.duration != nil {
try container.encode(self._duration, forKey: .duration)
}
try container.encodeIfPresent(self.file, forKey: .file)
if self.id != nil {
try container.encode(self._id, forKey: .id)
}
try container.encodeIfPresent(self.key, forKey: .key)
if self.size != nil {
try container.encode(self._size, forKey: .size)
}
try container.encodeIfPresent(self.stream, forKey: .stream)
try container.encodeIfPresent(self.videoProfile, forKey: .videoProfile)
}
}
extension Operations.GetOnDeckPart {
var idWrapper: DecimalSerialized<Double?> {
return _id
}
var durationWrapper: DecimalSerialized<Double?> {
return _duration
}
var sizeWrapper: DecimalSerialized<Double?> {
return _size
}
}

View File

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

View File

@@ -1,23 +0,0 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// The on Deck content
public struct GetOnDeckResponseBody {
public let mediaContainer: Operations.GetOnDeckMediaContainer?
/// Creates an object with the specified parameters
///
///
public init(mediaContainer: Operations.GetOnDeckMediaContainer? = nil) {
self.mediaContainer = mediaContainer
}
}}
extension Operations.GetOnDeckResponseBody: Codable {
enum CodingKeys: String, CodingKey {
case mediaContainer = "MediaContainer"
}
}

View File

@@ -1,217 +0,0 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// A model object
public struct GetOnDeckStream {
@DecimalSerialized
public private(set) var bitDepth: Double?
@DecimalSerialized
public private(set) var bitrate: Double?
public let chromaLocation: String?
public let chromaSubsampling: String?
public let codec: String?
@DecimalSerialized
public private(set) var codedHeight: Double?
@DecimalSerialized
public private(set) var codedWidth: Double?
public let colorRange: String?
public let `default`: Bool?
public let displayTitle: String?
public let extendedDisplayTitle: String?
@DecimalSerialized
public private(set) var frameRate: Double?
@DecimalSerialized
public private(set) var height: Double?
@DecimalSerialized
public private(set) var id: Double?
@DecimalSerialized
public private(set) var index: Double?
public let language: String?
public let languageCode: String?
public let languageTag: String?
@DecimalSerialized
public private(set) var level: Double?
public let profile: String?
@DecimalSerialized
public private(set) var refFrames: Double?
@DecimalSerialized
public private(set) var streamType: Double?
@DecimalSerialized
public private(set) var width: Double?
/// Creates an object with the specified parameters
///
///
public init(bitDepth: Double? = nil, bitrate: Double? = nil, chromaLocation: String? = nil, chromaSubsampling: String? = nil, codec: String? = nil, codedHeight: Double? = nil, codedWidth: Double? = nil, colorRange: String? = nil, `default`: Bool? = nil, displayTitle: String? = nil, extendedDisplayTitle: String? = nil, frameRate: Double? = nil, height: Double? = nil, id: Double? = nil, index: Double? = nil, language: String? = nil, languageCode: String? = nil, languageTag: String? = nil, level: Double? = nil, profile: String? = nil, refFrames: Double? = nil, streamType: Double? = nil, width: Double? = nil) {
self._bitDepth = DecimalSerialized<Double?>(wrappedValue: bitDepth)
self._bitrate = DecimalSerialized<Double?>(wrappedValue: bitrate)
self.chromaLocation = chromaLocation
self.chromaSubsampling = chromaSubsampling
self.codec = codec
self._codedHeight = DecimalSerialized<Double?>(wrappedValue: codedHeight)
self._codedWidth = DecimalSerialized<Double?>(wrappedValue: codedWidth)
self.colorRange = colorRange
self.`default` = `default`
self.displayTitle = displayTitle
self.extendedDisplayTitle = extendedDisplayTitle
self._frameRate = DecimalSerialized<Double?>(wrappedValue: frameRate)
self._height = DecimalSerialized<Double?>(wrappedValue: height)
self._id = DecimalSerialized<Double?>(wrappedValue: id)
self._index = DecimalSerialized<Double?>(wrappedValue: index)
self.language = language
self.languageCode = languageCode
self.languageTag = languageTag
self._level = DecimalSerialized<Double?>(wrappedValue: level)
self.profile = profile
self._refFrames = DecimalSerialized<Double?>(wrappedValue: refFrames)
self._streamType = DecimalSerialized<Double?>(wrappedValue: streamType)
self._width = DecimalSerialized<Double?>(wrappedValue: width)
}
}}
extension Operations.GetOnDeckStream: Codable {
enum CodingKeys: String, CodingKey {
case bitDepth
case bitrate
case chromaLocation
case chromaSubsampling
case codec
case codedHeight
case codedWidth
case colorRange
case `default` = "default"
case displayTitle
case extendedDisplayTitle
case frameRate
case height
case id
case index
case language
case languageCode
case languageTag
case level
case profile
case refFrames
case streamType
case width
}
public init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
self._bitDepth = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .bitDepth) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self._bitrate = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .bitrate) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.chromaLocation = try container.decodeIfPresent(String.self, forKey: .chromaLocation)
self.chromaSubsampling = try container.decodeIfPresent(String.self, forKey: .chromaSubsampling)
self.codec = try container.decodeIfPresent(String.self, forKey: .codec)
self._codedHeight = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .codedHeight) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self._codedWidth = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .codedWidth) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.colorRange = try container.decodeIfPresent(String.self, forKey: .colorRange)
self.`default` = try container.decodeIfPresent(Bool.self, forKey: .`default`)
self.displayTitle = try container.decodeIfPresent(String.self, forKey: .displayTitle)
self.extendedDisplayTitle = try container.decodeIfPresent(String.self, forKey: .extendedDisplayTitle)
self._frameRate = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .frameRate) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self._height = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .height) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self._id = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .id) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self._index = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .index) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.language = try container.decodeIfPresent(String.self, forKey: .language)
self.languageCode = try container.decodeIfPresent(String.self, forKey: .languageCode)
self.languageTag = try container.decodeIfPresent(String.self, forKey: .languageTag)
self._level = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .level) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.profile = try container.decodeIfPresent(String.self, forKey: .profile)
self._refFrames = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .refFrames) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self._streamType = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .streamType) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self._width = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .width) ?? DecimalSerialized<Double?>(wrappedValue: nil)
}
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
if self.bitDepth != nil {
try container.encode(self._bitDepth, forKey: .bitDepth)
}
if self.bitrate != nil {
try container.encode(self._bitrate, forKey: .bitrate)
}
try container.encodeIfPresent(self.chromaLocation, forKey: .chromaLocation)
try container.encodeIfPresent(self.chromaSubsampling, forKey: .chromaSubsampling)
try container.encodeIfPresent(self.codec, forKey: .codec)
if self.codedHeight != nil {
try container.encode(self._codedHeight, forKey: .codedHeight)
}
if self.codedWidth != nil {
try container.encode(self._codedWidth, forKey: .codedWidth)
}
try container.encodeIfPresent(self.colorRange, forKey: .colorRange)
try container.encodeIfPresent(self.`default`, forKey: .`default`)
try container.encodeIfPresent(self.displayTitle, forKey: .displayTitle)
try container.encodeIfPresent(self.extendedDisplayTitle, forKey: .extendedDisplayTitle)
if self.frameRate != nil {
try container.encode(self._frameRate, forKey: .frameRate)
}
if self.height != nil {
try container.encode(self._height, forKey: .height)
}
if self.id != nil {
try container.encode(self._id, forKey: .id)
}
if self.index != nil {
try container.encode(self._index, forKey: .index)
}
try container.encodeIfPresent(self.language, forKey: .language)
try container.encodeIfPresent(self.languageCode, forKey: .languageCode)
try container.encodeIfPresent(self.languageTag, forKey: .languageTag)
if self.level != nil {
try container.encode(self._level, forKey: .level)
}
try container.encodeIfPresent(self.profile, forKey: .profile)
if self.refFrames != nil {
try container.encode(self._refFrames, forKey: .refFrames)
}
if self.streamType != nil {
try container.encode(self._streamType, forKey: .streamType)
}
if self.width != nil {
try container.encode(self._width, forKey: .width)
}
}
}
extension Operations.GetOnDeckStream {
var idWrapper: DecimalSerialized<Double?> {
return _id
}
var streamTypeWrapper: DecimalSerialized<Double?> {
return _streamType
}
var indexWrapper: DecimalSerialized<Double?> {
return _index
}
var bitrateWrapper: DecimalSerialized<Double?> {
return _bitrate
}
var bitDepthWrapper: DecimalSerialized<Double?> {
return _bitDepth
}
var codedHeightWrapper: DecimalSerialized<Double?> {
return _codedHeight
}
var codedWidthWrapper: DecimalSerialized<Double?> {
return _codedWidth
}
var frameRateWrapper: DecimalSerialized<Double?> {
return _frameRate
}
var heightWrapper: DecimalSerialized<Double?> {
return _height
}
var levelWrapper: DecimalSerialized<Double?> {
return _level
}
var refFramesWrapper: DecimalSerialized<Double?> {
return _refFrames
}
var widthWrapper: DecimalSerialized<Double?> {
return _width
}
}

View File

@@ -1,23 +0,0 @@
// 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 GetOnDeckUnauthorized {
public let errors: [Operations.GetOnDeckLibraryErrors]?
/// Creates an object with the specified parameters
///
///
public init(errors: [Operations.GetOnDeckLibraryErrors]? = nil) {
self.errors = errors
}
}}
extension Operations.GetOnDeckUnauthorized: Codable {
enum CodingKeys: String, CodingKey {
case errors
}
}

View File

@@ -0,0 +1,9 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
public enum GetRecentlyAdded1: Int, Codable, APIValue {
case zero = 0
case one = 1
}}

View File

@@ -5,41 +5,53 @@ import Foundation
extension Operations { extension Operations {
/// A model object /// A model object
public struct GetRecentlyAddedMediaContainer { public struct GetRecentlyAddedMediaContainer {
/// Indicates whether syncing is allowed.
public let allowSync: Bool
/// An plugin identifier for the media container.
public let identifier: String
/// Offset value for pagination.
public let offset: Int
/// Number of media items returned in this response.
public let size: Int public let size: Int
public let allowSync: Bool? /// Total number of media items in the library.
public let identifier: String? public let totalSize: Int
/// The Meta object is only included in the response if the `includeMeta` parameter is set to `1`. /// The Meta object is only included in the response if the `includeMeta` parameter is set to `1`.
/// ///
public let meta: Operations.Meta? public let meta: Operations.Meta?
/// An array of metadata items.
public let metadata: [Operations.GetRecentlyAddedMetadata]? public let metadata: [Operations.GetRecentlyAddedMetadata]?
public let offset: Int?
public let totalSize: Int?
/// Creates an object with the specified parameters /// Creates an object with the specified parameters
/// ///
/// - Parameter allowSync: Indicates whether syncing is allowed.
/// - Parameter identifier: An plugin identifier for the media container.
/// - Parameter offset: Offset value for pagination.
/// - Parameter size: Number of media items returned in this response.
/// - Parameter totalSize: Total number of media items in the library.
/// - Parameter meta: The Meta object is only included in the response if the `includeMeta` parameter is set to `1`. /// - Parameter meta: The Meta object is only included in the response if the `includeMeta` parameter is set to `1`.
/// ///
/// - Parameter metadata: An array of metadata items.
/// ///
public init(size: Int, allowSync: Bool? = nil, identifier: String? = nil, meta: Operations.Meta? = nil, metadata: [Operations.GetRecentlyAddedMetadata]? = nil, offset: Int? = nil, totalSize: Int? = nil) { public init(allowSync: Bool, identifier: String, offset: Int, size: Int, totalSize: Int, meta: Operations.Meta? = nil, metadata: [Operations.GetRecentlyAddedMetadata]? = nil) {
self.size = size
self.allowSync = allowSync self.allowSync = allowSync
self.identifier = identifier self.identifier = identifier
self.offset = offset
self.size = size
self.totalSize = totalSize
self.meta = meta self.meta = meta
self.metadata = metadata self.metadata = metadata
self.offset = offset
self.totalSize = totalSize
} }
}} }}
extension Operations.GetRecentlyAddedMediaContainer: Codable { extension Operations.GetRecentlyAddedMediaContainer: Codable {
enum CodingKeys: String, CodingKey { enum CodingKeys: String, CodingKey {
case size
case allowSync case allowSync
case identifier case identifier
case offset
case size
case totalSize
case meta = "Meta" case meta = "Meta"
case metadata = "Metadata" case metadata = "Metadata"
case offset
case totalSize
} }
} }

View File

@@ -3,159 +3,244 @@
import Foundation import Foundation
extension Operations { extension Operations {
/// A model object /// Unknown
///
public struct GetRecentlyAddedMetadata { public struct GetRecentlyAddedMetadata {
/// Unix epoch datetime in seconds
public let addedAt: Int public let addedAt: Int
public let guid: String /// The art image URL for the media item.
public let key: String public let art: String
/// The rating key (Media ID) of this media item. /// The audience rating for the media item.
/// Note: This is always an integer, but is represented as a string in the API.
///
public let ratingKey: String
public let summary: String
public let title: String
/// The type of media content
///
public let type: Operations.GetRecentlyAddedHubsType
public let art: String?
@DecimalSerialized @DecimalSerialized
public private(set) var audienceRating: Double? public private(set) var audienceRating: Double
/// The number of child items associated with this media item.
public let childCount: Int
/// The duration of the media item in milliseconds.
public let duration: Int
/// The globally unique identifier for the media item.
public let guid: String
/// The index position of the media item.
public let index: Int
/// The unique key for the media item.
public let key: String
/// The identifier for the library section.
public let librarySectionID: Int
/// The key corresponding to the library section.
public let librarySectionKey: String
/// The title of the library section.
public let librarySectionTitle: String
/// The original release date of the media item.
@DateOnly
public private(set) var originallyAvailableAt: Date
/// The studio of the parent media item.
public let parentStudio: String
/// The theme URL for the parent media item.
public let parentTheme: String
/// The critic rating for the media item.
@DecimalSerialized
public private(set) var rating: Double
/// The rating key (Media ID) of this media item. Note: Although this is always an integer, it is represented as a string in the API.
public let ratingKey: String
/// The total number of seasons (for TV shows).
public let seasonCount: Int
/// A URLfriendly version of the media title.
public let slug: String
/// A synopsis of the media item.
public let summary: String
/// A brief tagline for the media item.
public let tagline: String
/// The theme URL for the media item.
public let theme: String
/// The thumbnail image URL for the media item.
public let thumb: String
/// The title of the media item.
public let title: String
/// The sort title used for ordering media items.
public let titleSort: String
public let type: Operations.GetRecentlyAddedHubsType
/// The URL for the audience rating image.
public let audienceRatingImage: String? public let audienceRatingImage: String?
public let banner: String? /// The source from which chapter data is derived.
public let chapterSource: String? public let chapterSource: String?
public let childCount: Int?
public let collection: [Operations.Collection]? public let collection: [Operations.Collection]?
/// The content rating for the media item.
public let contentRating: String? public let contentRating: String?
public let country: [Operations.Country]? public let country: [Operations.Country]?
/// The accuracy of the creation timestamp. This value indicates the format(s) provided (for example, 'epoch,local' means both epoch and local time formats are available).
public let createdAtAccuracy: String?
/// The time zone offset for the creation timestamp, represented as a string. This offset indicates the difference from UTC.
public let createdAtTZOffset: String?
public let director: [Operations.Director]? public let director: [Operations.Director]?
public let duration: Int?
/// Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled).
public let enableCreditsMarkerGeneration: Operations.EnableCreditsMarkerGeneration?
/// Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first).
public let episodeSort: Operations.EpisodeSort?
/// Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show).
public let flattenSeasons: Operations.FlattenSeasons?
public let genre: [Operations.Genre]? public let genre: [Operations.Genre]?
/// The art URL for the grandparent media item.
public let grandparentArt: String? public let grandparentArt: String?
/// The GUID of the grandparent media item.
public let grandparentGuid: String? public let grandparentGuid: String?
/// The key of the grandparent media item.
public let grandparentKey: String? public let grandparentKey: String?
/// The rating key of the grandparent media item.
public let grandparentRatingKey: String? public let grandparentRatingKey: String?
/// The slug for the grandparent media item.
public let grandparentSlug: String? public let grandparentSlug: String?
/// The theme URL for the grandparent media item.
public let grandparentTheme: String? public let grandparentTheme: String?
/// The thumbnail URL for the grandparent media item.
public let grandparentThumb: String? public let grandparentThumb: String?
/// The title of the grandparent media item.
public let grandparentTitle: String? public let grandparentTitle: String?
public let hasPremiumExtras: String? public let guids: [Operations.Guids]?
public let hasPremiumPrimaryExtra: String?
public let image: [Operations.GetRecentlyAddedImage]? public let image: [Operations.GetRecentlyAddedImage]?
public let index: Int? /// The Unix timestamp representing the last time the item was rated.
public let lastRatedAt: Int?
/// Unix timestamp for when the media item was last viewed.
public let lastViewedAt: Int? public let lastViewedAt: Int?
/// The number of leaf items (end nodes) under this media item.
public let leafCount: Int? public let leafCount: Int?
public let librarySectionID: Int?
public let librarySectionKey: String?
public let librarySectionTitle: String?
public let location: [Operations.Location]? public let location: [Operations.Location]?
/// The Media object is only included when type query is `4` or higher.
///
public let media: [Operations.Media]? public let media: [Operations.Media]?
/// The Guid object is only included in the response if the `includeGuids` parameter is set to `1`. /// The original title of the media item (if different).
///
public let mediaGuid: [Operations.MediaGuid]?
public let metaDataRating: [Operations.MetaDataRating]?
@DateOnly
public private(set) var originallyAvailableAt: Date?
public let originalTitle: String? public let originalTitle: String?
/// The GUID of the parent media item.
public let parentGuid: String? public let parentGuid: String?
/// The index position of the parent media item.
public let parentIndex: Int? public let parentIndex: Int?
/// The key of the parent media item.
public let parentKey: String? public let parentKey: String?
/// The rating key of the parent item. /// The rating key of the parent media item.
///
public let parentRatingKey: String? public let parentRatingKey: String?
/// The slug for the parent media item.
public let parentSlug: String? public let parentSlug: String?
public let parentStudio: String? /// The thumbnail URL for the parent media item.
public let parentTheme: String?
public let parentThumb: String? public let parentThumb: String?
/// The title of the parent media item.
public let parentTitle: String? public let parentTitle: String?
/// The release year of the parent media item.
public let parentYear: Int? public let parentYear: Int?
/// The primary extra key associated with this media item.
public let primaryExtraKey: String? public let primaryExtraKey: String?
@DecimalSerialized public let producer: [Operations.Producer]?
public private(set) var rating: Double? public let rating1: [Operations.Rating]?
/// The URL for the rating image.
public let ratingImage: String? public let ratingImage: String?
public let role: [Operations.Role]? public let role: [Operations.Role]?
public let seasonCount: Int? public let similar: [Operations.Similar]?
/// Setting that indicates the episode ordering for the show. /// The number of times this media item has been skipped.
/// None = Library default,
/// tmdbAiring = The Movie Database (Aired),
/// aired = TheTVDB (Aired),
/// dvd = TheTVDB (DVD),
/// absolute = TheTVDB (Absolute)).
///
public let showOrdering: Operations.ShowOrdering?
public let skipChildren: Bool?
public let skipCount: Int? public let skipCount: Int?
public let slug: String? /// The studio that produced the media item.
public let studio: String? public let studio: String?
public let tagline: String? /// A classification that further describes the type of media item. For example, 'clip' indicates that the item is a short video clip.
public let theme: String? public let subtype: String?
public let thumb: String?
public let titleSort: String?
public let ultraBlurColors: Operations.UltraBlurColors? public let ultraBlurColors: Operations.UltraBlurColors?
/// Unix epoch datetime in seconds /// Unix epoch datetime in seconds
public let updatedAt: Int? public let updatedAt: Int?
/// The rating provided by a user for the item. This value is expressed as a decimal number.
@DecimalSerialized
public private(set) var userRating: Double?
/// The number of times this media item has been viewed.
public let viewCount: Int? public let viewCount: Int?
/// The number of leaf items that have been viewed.
public let viewedLeafCount: Int? public let viewedLeafCount: Int?
/// The current playback offset (in milliseconds).
public let viewOffset: Int? public let viewOffset: Int?
public let writer: [Operations.Writer]? public let writer: [Operations.Writer]?
/// The release year of the media item.
public let year: Int? public let year: Int?
/// Creates an object with the specified parameters /// Creates an object with the specified parameters
/// ///
/// - Parameter addedAt: Unix epoch datetime in seconds /// - Parameter art: The art image URL for the media item.
/// - Parameter ratingKey: The rating key (Media ID) of this media item. /// - Parameter audienceRating: The audience rating for the media item.
/// Note: This is always an integer, but is represented as a string in the API. /// - Parameter childCount: The number of child items associated with this media item.
/// /// - Parameter duration: The duration of the media item in milliseconds.
/// - Parameter type: The type of media content /// - Parameter guid: The globally unique identifier for the media item.
/// /// - Parameter index: The index position of the media item.
/// - Parameter enableCreditsMarkerGeneration: Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). /// - Parameter key: The unique key for the media item.
/// - Parameter episodeSort: Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first). /// - Parameter librarySectionID: The identifier for the library section.
/// - Parameter flattenSeasons: Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show). /// - Parameter librarySectionKey: The key corresponding to the library section.
/// - Parameter media: The Media object is only included when type query is `4` or higher. /// - Parameter librarySectionTitle: The title of the library section.
/// /// - Parameter originallyAvailableAt: The original release date of the media item.
/// - Parameter mediaGuid: The Guid object is only included in the response if the `includeGuids` parameter is set to `1`. /// - Parameter parentStudio: The studio of the parent media item.
/// /// - Parameter parentTheme: The theme URL for the parent media item.
/// - Parameter parentRatingKey: The rating key of the parent item. /// - Parameter rating: The critic rating for the media item.
/// /// - Parameter ratingKey: The rating key (Media ID) of this media item. Note: Although this is always an integer, it is represented as a string in the API.
/// - Parameter showOrdering: Setting that indicates the episode ordering for the show. /// - Parameter seasonCount: The total number of seasons (for TV shows).
/// None = Library default, /// - Parameter slug: A URLfriendly version of the media title.
/// tmdbAiring = The Movie Database (Aired), /// - Parameter summary: A synopsis of the media item.
/// aired = TheTVDB (Aired), /// - Parameter tagline: A brief tagline for the media item.
/// dvd = TheTVDB (DVD), /// - Parameter theme: The theme URL for the media item.
/// absolute = TheTVDB (Absolute)). /// - Parameter thumb: The thumbnail image URL for the media item.
/// /// - Parameter title: The title of the media item.
/// - Parameter titleSort: The sort title used for ordering media items.
/// - Parameter audienceRatingImage: The URL for the audience rating image.
/// - Parameter chapterSource: The source from which chapter data is derived.
/// - Parameter contentRating: The content rating for the media item.
/// - Parameter createdAtAccuracy: The accuracy of the creation timestamp. This value indicates the format(s) provided (for example, 'epoch,local' means both epoch and local time formats are available).
/// - Parameter createdAtTZOffset: The time zone offset for the creation timestamp, represented as a string. This offset indicates the difference from UTC.
/// - Parameter grandparentArt: The art URL for the grandparent media item.
/// - Parameter grandparentGuid: The GUID of the grandparent media item.
/// - Parameter grandparentKey: The key of the grandparent media item.
/// - Parameter grandparentRatingKey: The rating key of the grandparent media item.
/// - Parameter grandparentSlug: The slug for the grandparent media item.
/// - Parameter grandparentTheme: The theme URL for the grandparent media item.
/// - Parameter grandparentThumb: The thumbnail URL for the grandparent media item.
/// - Parameter grandparentTitle: The title of the grandparent media item.
/// - Parameter lastRatedAt: The Unix timestamp representing the last time the item was rated.
/// - Parameter lastViewedAt: Unix timestamp for when the media item was last viewed.
/// - Parameter leafCount: The number of leaf items (end nodes) under this media item.
/// - Parameter originalTitle: The original title of the media item (if different).
/// - Parameter parentGuid: The GUID of the parent media item.
/// - Parameter parentIndex: The index position of the parent media item.
/// - Parameter parentKey: The key of the parent media item.
/// - Parameter parentRatingKey: The rating key of the parent media item.
/// - Parameter parentSlug: The slug for the parent media item.
/// - Parameter parentThumb: The thumbnail URL for the parent media item.
/// - Parameter parentTitle: The title of the parent media item.
/// - Parameter parentYear: The release year of the parent media item.
/// - Parameter primaryExtraKey: The primary extra key associated with this media item.
/// - Parameter ratingImage: The URL for the rating image.
/// - Parameter skipCount: The number of times this media item has been skipped.
/// - Parameter studio: The studio that produced the media item.
/// - Parameter subtype: A classification that further describes the type of media item. For example, 'clip' indicates that the item is a short video clip.
/// - Parameter updatedAt: Unix epoch datetime in seconds /// - Parameter updatedAt: Unix epoch datetime in seconds
/// - Parameter userRating: The rating provided by a user for the item. This value is expressed as a decimal number.
/// - Parameter viewCount: The number of times this media item has been viewed.
/// - Parameter viewedLeafCount: The number of leaf items that have been viewed.
/// - Parameter viewOffset: The current playback offset (in milliseconds).
/// - Parameter year: The release year of the media item.
/// ///
public init(addedAt: Int, guid: String, key: String, ratingKey: String, summary: String, title: String, type: Operations.GetRecentlyAddedHubsType, art: String? = nil, audienceRating: Double? = nil, audienceRatingImage: String? = nil, banner: String? = nil, chapterSource: String? = nil, childCount: Int? = nil, collection: [Operations.Collection]? = nil, contentRating: String? = nil, country: [Operations.Country]? = nil, director: [Operations.Director]? = nil, duration: Int? = nil, enableCreditsMarkerGeneration: Operations.EnableCreditsMarkerGeneration? = nil, episodeSort: Operations.EpisodeSort? = nil, flattenSeasons: Operations.FlattenSeasons? = nil, genre: [Operations.Genre]? = nil, grandparentArt: String? = nil, grandparentGuid: String? = nil, grandparentKey: String? = nil, grandparentRatingKey: String? = nil, grandparentSlug: String? = nil, grandparentTheme: String? = nil, grandparentThumb: String? = nil, grandparentTitle: String? = nil, hasPremiumExtras: String? = nil, hasPremiumPrimaryExtra: String? = nil, image: [Operations.GetRecentlyAddedImage]? = nil, index: Int? = nil, lastViewedAt: Int? = nil, leafCount: Int? = nil, librarySectionID: Int? = nil, librarySectionKey: String? = nil, librarySectionTitle: String? = nil, location: [Operations.Location]? = nil, media: [Operations.Media]? = nil, mediaGuid: [Operations.MediaGuid]? = nil, metaDataRating: [Operations.MetaDataRating]? = nil, originallyAvailableAt: Date? = nil, originalTitle: String? = nil, parentGuid: String? = nil, parentIndex: Int? = nil, parentKey: String? = nil, parentRatingKey: String? = nil, parentSlug: String? = nil, parentStudio: String? = nil, parentTheme: String? = nil, parentThumb: String? = nil, parentTitle: String? = nil, parentYear: Int? = nil, primaryExtraKey: String? = nil, rating: Double? = nil, ratingImage: String? = nil, role: [Operations.Role]? = nil, seasonCount: Int? = nil, showOrdering: Operations.ShowOrdering? = nil, skipChildren: Bool? = nil, skipCount: Int? = nil, slug: String? = nil, studio: String? = nil, tagline: String? = nil, theme: String? = nil, thumb: String? = nil, titleSort: String? = nil, ultraBlurColors: Operations.UltraBlurColors? = nil, updatedAt: Int? = nil, viewCount: Int? = nil, viewedLeafCount: Int? = nil, viewOffset: Int? = nil, writer: [Operations.Writer]? = nil, year: Int? = nil) { public init(addedAt: Int, art: String, audienceRating: Double, childCount: Int, duration: Int, guid: String, index: Int, key: String, librarySectionID: Int, librarySectionKey: String, librarySectionTitle: String, originallyAvailableAt: Date, parentStudio: String, parentTheme: String, rating: Double, ratingKey: String, seasonCount: Int, slug: String, summary: String, tagline: String, theme: String, thumb: String, title: String, titleSort: String, type: Operations.GetRecentlyAddedHubsType, audienceRatingImage: String? = nil, chapterSource: String? = nil, collection: [Operations.Collection]? = nil, contentRating: String? = nil, country: [Operations.Country]? = nil, createdAtAccuracy: String? = nil, createdAtTZOffset: String? = nil, director: [Operations.Director]? = nil, genre: [Operations.Genre]? = nil, grandparentArt: String? = nil, grandparentGuid: String? = nil, grandparentKey: String? = nil, grandparentRatingKey: String? = nil, grandparentSlug: String? = nil, grandparentTheme: String? = nil, grandparentThumb: String? = nil, grandparentTitle: String? = nil, guids: [Operations.Guids]? = nil, image: [Operations.GetRecentlyAddedImage]? = nil, lastRatedAt: Int? = nil, lastViewedAt: Int? = nil, leafCount: Int? = nil, location: [Operations.Location]? = nil, media: [Operations.Media]? = nil, originalTitle: String? = nil, parentGuid: String? = nil, parentIndex: Int? = nil, parentKey: String? = nil, parentRatingKey: String? = nil, parentSlug: String? = nil, parentThumb: String? = nil, parentTitle: String? = nil, parentYear: Int? = nil, primaryExtraKey: String? = nil, producer: [Operations.Producer]? = nil, rating1: [Operations.Rating]? = nil, ratingImage: String? = nil, role: [Operations.Role]? = nil, similar: [Operations.Similar]? = nil, skipCount: Int? = nil, studio: String? = nil, subtype: String? = nil, ultraBlurColors: Operations.UltraBlurColors? = nil, updatedAt: Int? = nil, userRating: Double? = nil, viewCount: Int? = nil, viewedLeafCount: Int? = nil, viewOffset: Int? = nil, writer: [Operations.Writer]? = nil, year: Int? = nil) {
self.addedAt = addedAt self.addedAt = addedAt
self.guid = guid
self.key = key
self.ratingKey = ratingKey
self.summary = summary
self.title = title
self.type = type
self.art = art self.art = art
self._audienceRating = DecimalSerialized<Double?>(wrappedValue: audienceRating) self._audienceRating = DecimalSerialized<Double>(wrappedValue: audienceRating)
self.audienceRatingImage = audienceRatingImage
self.banner = banner
self.chapterSource = chapterSource
self.childCount = childCount self.childCount = childCount
self.duration = duration
self.guid = guid
self.index = index
self.key = key
self.librarySectionID = librarySectionID
self.librarySectionKey = librarySectionKey
self.librarySectionTitle = librarySectionTitle
self._originallyAvailableAt = DateOnly<Date>(wrappedValue: originallyAvailableAt)
self.parentStudio = parentStudio
self.parentTheme = parentTheme
self._rating = DecimalSerialized<Double>(wrappedValue: rating)
self.ratingKey = ratingKey
self.seasonCount = seasonCount
self.slug = slug
self.summary = summary
self.tagline = tagline
self.theme = theme
self.thumb = thumb
self.title = title
self.titleSort = titleSort
self.type = type
self.audienceRatingImage = audienceRatingImage
self.chapterSource = chapterSource
self.collection = collection self.collection = collection
self.contentRating = contentRating self.contentRating = contentRating
self.country = country self.country = country
self.createdAtAccuracy = createdAtAccuracy
self.createdAtTZOffset = createdAtTZOffset
self.director = director self.director = director
self.duration = duration
self.enableCreditsMarkerGeneration = enableCreditsMarkerGeneration
self.episodeSort = episodeSort
self.flattenSeasons = flattenSeasons
self.genre = genre self.genre = genre
self.grandparentArt = grandparentArt self.grandparentArt = grandparentArt
self.grandparentGuid = grandparentGuid self.grandparentGuid = grandparentGuid
@@ -165,47 +250,34 @@ extension Operations {
self.grandparentTheme = grandparentTheme self.grandparentTheme = grandparentTheme
self.grandparentThumb = grandparentThumb self.grandparentThumb = grandparentThumb
self.grandparentTitle = grandparentTitle self.grandparentTitle = grandparentTitle
self.hasPremiumExtras = hasPremiumExtras self.guids = guids
self.hasPremiumPrimaryExtra = hasPremiumPrimaryExtra
self.image = image self.image = image
self.index = index self.lastRatedAt = lastRatedAt
self.lastViewedAt = lastViewedAt self.lastViewedAt = lastViewedAt
self.leafCount = leafCount self.leafCount = leafCount
self.librarySectionID = librarySectionID
self.librarySectionKey = librarySectionKey
self.librarySectionTitle = librarySectionTitle
self.location = location self.location = location
self.media = media self.media = media
self.mediaGuid = mediaGuid
self.metaDataRating = metaDataRating
self._originallyAvailableAt = DateOnly<Date?>(wrappedValue: originallyAvailableAt)
self.originalTitle = originalTitle self.originalTitle = originalTitle
self.parentGuid = parentGuid self.parentGuid = parentGuid
self.parentIndex = parentIndex self.parentIndex = parentIndex
self.parentKey = parentKey self.parentKey = parentKey
self.parentRatingKey = parentRatingKey self.parentRatingKey = parentRatingKey
self.parentSlug = parentSlug self.parentSlug = parentSlug
self.parentStudio = parentStudio
self.parentTheme = parentTheme
self.parentThumb = parentThumb self.parentThumb = parentThumb
self.parentTitle = parentTitle self.parentTitle = parentTitle
self.parentYear = parentYear self.parentYear = parentYear
self.primaryExtraKey = primaryExtraKey self.primaryExtraKey = primaryExtraKey
self._rating = DecimalSerialized<Double?>(wrappedValue: rating) self.producer = producer
self.rating1 = rating1
self.ratingImage = ratingImage self.ratingImage = ratingImage
self.role = role self.role = role
self.seasonCount = seasonCount self.similar = similar
self.showOrdering = showOrdering
self.skipChildren = skipChildren
self.skipCount = skipCount self.skipCount = skipCount
self.slug = slug
self.studio = studio self.studio = studio
self.tagline = tagline self.subtype = subtype
self.theme = theme
self.thumb = thumb
self.titleSort = titleSort
self.ultraBlurColors = ultraBlurColors self.ultraBlurColors = ultraBlurColors
self.updatedAt = updatedAt self.updatedAt = updatedAt
self._userRating = DecimalSerialized<Double?>(wrappedValue: userRating)
self.viewCount = viewCount self.viewCount = viewCount
self.viewedLeafCount = viewedLeafCount self.viewedLeafCount = viewedLeafCount
self.viewOffset = viewOffset self.viewOffset = viewOffset
@@ -217,26 +289,38 @@ extension Operations {
extension Operations.GetRecentlyAddedMetadata: Codable { extension Operations.GetRecentlyAddedMetadata: Codable {
enum CodingKeys: String, CodingKey { enum CodingKeys: String, CodingKey {
case addedAt case addedAt
case guid
case key
case ratingKey
case summary
case title
case type
case art case art
case audienceRating case audienceRating
case audienceRatingImage
case banner
case chapterSource
case childCount case childCount
case duration
case guid
case index
case key
case librarySectionID
case librarySectionKey
case librarySectionTitle
case originallyAvailableAt
case parentStudio
case parentTheme
case rating
case ratingKey
case seasonCount
case slug
case summary
case tagline
case theme
case thumb
case title
case titleSort
case type
case audienceRatingImage
case chapterSource
case collection = "Collection" case collection = "Collection"
case contentRating case contentRating
case country = "Country" case country = "Country"
case createdAtAccuracy
case createdAtTZOffset
case director = "Director" case director = "Director"
case duration
case enableCreditsMarkerGeneration
case episodeSort
case flattenSeasons
case genre = "Genre" case genre = "Genre"
case grandparentArt case grandparentArt
case grandparentGuid case grandparentGuid
@@ -246,47 +330,34 @@ extension Operations.GetRecentlyAddedMetadata: Codable {
case grandparentTheme case grandparentTheme
case grandparentThumb case grandparentThumb
case grandparentTitle case grandparentTitle
case hasPremiumExtras case guids = "Guid"
case hasPremiumPrimaryExtra
case image = "Image" case image = "Image"
case index case lastRatedAt
case lastViewedAt case lastViewedAt
case leafCount case leafCount
case librarySectionID
case librarySectionKey
case librarySectionTitle
case location = "Location" case location = "Location"
case media = "Media" case media = "Media"
case mediaGuid = "Guid"
case metaDataRating = "Rating"
case originallyAvailableAt
case originalTitle case originalTitle
case parentGuid case parentGuid
case parentIndex case parentIndex
case parentKey case parentKey
case parentRatingKey case parentRatingKey
case parentSlug case parentSlug
case parentStudio
case parentTheme
case parentThumb case parentThumb
case parentTitle case parentTitle
case parentYear case parentYear
case primaryExtraKey case primaryExtraKey
case rating case producer = "Producer"
case rating1 = "Rating"
case ratingImage case ratingImage
case role = "Role" case role = "Role"
case seasonCount case similar = "Similar"
case showOrdering
case skipChildren
case skipCount case skipCount
case slug
case studio case studio
case tagline case subtype
case theme
case thumb
case titleSort
case ultraBlurColors = "UltraBlurColors" case ultraBlurColors = "UltraBlurColors"
case updatedAt case updatedAt
case userRating
case viewCount case viewCount
case viewedLeafCount case viewedLeafCount
case viewOffset case viewOffset
@@ -297,26 +368,38 @@ extension Operations.GetRecentlyAddedMetadata: Codable {
public init(from decoder: Decoder) throws { public init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self) let container = try decoder.container(keyedBy: CodingKeys.self)
self.addedAt = try container.decode(Int.self, forKey: .addedAt) 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.childCount = try container.decode(Int.self, forKey: .childCount)
self.duration = try container.decode(Int.self, forKey: .duration)
self.guid = try container.decode(String.self, forKey: .guid) self.guid = try container.decode(String.self, forKey: .guid)
self.index = try container.decode(Int.self, forKey: .index)
self.key = try container.decode(String.self, forKey: .key) 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.parentStudio = try container.decode(String.self, forKey: .parentStudio)
self.parentTheme = try container.decode(String.self, forKey: .parentTheme)
self._rating = try container.decode(DecimalSerialized<Double>.self, forKey: .rating)
self.ratingKey = try container.decode(String.self, forKey: .ratingKey) self.ratingKey = try container.decode(String.self, forKey: .ratingKey)
self.seasonCount = try container.decode(Int.self, forKey: .seasonCount)
self.slug = try container.decode(String.self, forKey: .slug)
self.summary = try container.decode(String.self, forKey: .summary) self.summary = try container.decode(String.self, forKey: .summary)
self.tagline = try container.decode(String.self, forKey: .tagline)
self.theme = try container.decode(String.self, forKey: .theme)
self.thumb = try container.decode(String.self, forKey: .thumb)
self.title = try container.decode(String.self, forKey: .title) self.title = try container.decode(String.self, forKey: .title)
self.titleSort = try container.decode(String.self, forKey: .titleSort)
self.type = try container.decode(Operations.GetRecentlyAddedHubsType.self, forKey: .type) self.type = try container.decode(Operations.GetRecentlyAddedHubsType.self, forKey: .type)
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.audienceRatingImage = try container.decodeIfPresent(String.self, forKey: .audienceRatingImage)
self.banner = try container.decodeIfPresent(String.self, forKey: .banner)
self.chapterSource = try container.decodeIfPresent(String.self, forKey: .chapterSource) self.chapterSource = try container.decodeIfPresent(String.self, forKey: .chapterSource)
self.childCount = try container.decodeIfPresent(Int.self, forKey: .childCount)
self.collection = try container.decodeIfPresent([Operations.Collection].self, forKey: .collection) self.collection = try container.decodeIfPresent([Operations.Collection].self, forKey: .collection)
self.contentRating = try container.decodeIfPresent(String.self, forKey: .contentRating) self.contentRating = try container.decodeIfPresent(String.self, forKey: .contentRating)
self.country = try container.decodeIfPresent([Operations.Country].self, forKey: .country) self.country = try container.decodeIfPresent([Operations.Country].self, forKey: .country)
self.createdAtAccuracy = try container.decodeIfPresent(String.self, forKey: .createdAtAccuracy)
self.createdAtTZOffset = try container.decodeIfPresent(String.self, forKey: .createdAtTZOffset)
self.director = try container.decodeIfPresent([Operations.Director].self, forKey: .director) self.director = try container.decodeIfPresent([Operations.Director].self, forKey: .director)
self.duration = try container.decodeIfPresent(Int.self, forKey: .duration)
self.enableCreditsMarkerGeneration = try container.decodeIfPresent(Operations.EnableCreditsMarkerGeneration.self, forKey: .enableCreditsMarkerGeneration)
self.episodeSort = try container.decodeIfPresent(Operations.EpisodeSort.self, forKey: .episodeSort)
self.flattenSeasons = try container.decodeIfPresent(Operations.FlattenSeasons.self, forKey: .flattenSeasons)
self.genre = try container.decodeIfPresent([Operations.Genre].self, forKey: .genre) self.genre = try container.decodeIfPresent([Operations.Genre].self, forKey: .genre)
self.grandparentArt = try container.decodeIfPresent(String.self, forKey: .grandparentArt) self.grandparentArt = try container.decodeIfPresent(String.self, forKey: .grandparentArt)
self.grandparentGuid = try container.decodeIfPresent(String.self, forKey: .grandparentGuid) self.grandparentGuid = try container.decodeIfPresent(String.self, forKey: .grandparentGuid)
@@ -326,47 +409,34 @@ extension Operations.GetRecentlyAddedMetadata: Codable {
self.grandparentTheme = try container.decodeIfPresent(String.self, forKey: .grandparentTheme) self.grandparentTheme = try container.decodeIfPresent(String.self, forKey: .grandparentTheme)
self.grandparentThumb = try container.decodeIfPresent(String.self, forKey: .grandparentThumb) self.grandparentThumb = try container.decodeIfPresent(String.self, forKey: .grandparentThumb)
self.grandparentTitle = try container.decodeIfPresent(String.self, forKey: .grandparentTitle) self.grandparentTitle = try container.decodeIfPresent(String.self, forKey: .grandparentTitle)
self.hasPremiumExtras = try container.decodeIfPresent(String.self, forKey: .hasPremiumExtras) self.guids = try container.decodeIfPresent([Operations.Guids].self, forKey: .guids)
self.hasPremiumPrimaryExtra = try container.decodeIfPresent(String.self, forKey: .hasPremiumPrimaryExtra)
self.image = try container.decodeIfPresent([Operations.GetRecentlyAddedImage].self, forKey: .image) self.image = try container.decodeIfPresent([Operations.GetRecentlyAddedImage].self, forKey: .image)
self.index = try container.decodeIfPresent(Int.self, forKey: .index) self.lastRatedAt = try container.decodeIfPresent(Int.self, forKey: .lastRatedAt)
self.lastViewedAt = try container.decodeIfPresent(Int.self, forKey: .lastViewedAt) self.lastViewedAt = try container.decodeIfPresent(Int.self, forKey: .lastViewedAt)
self.leafCount = try container.decodeIfPresent(Int.self, forKey: .leafCount) self.leafCount = try container.decodeIfPresent(Int.self, forKey: .leafCount)
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.location = try container.decodeIfPresent([Operations.Location].self, forKey: .location) self.location = try container.decodeIfPresent([Operations.Location].self, forKey: .location)
self.media = try container.decodeIfPresent([Operations.Media].self, forKey: .media) self.media = try container.decodeIfPresent([Operations.Media].self, forKey: .media)
self.mediaGuid = try container.decodeIfPresent([Operations.MediaGuid].self, forKey: .mediaGuid)
self.metaDataRating = try container.decodeIfPresent([Operations.MetaDataRating].self, forKey: .metaDataRating)
self._originallyAvailableAt = try container.decodeIfPresent(DateOnly<Date?>.self, forKey: .originallyAvailableAt) ?? DateOnly<Date?>(wrappedValue: nil)
self.originalTitle = try container.decodeIfPresent(String.self, forKey: .originalTitle) self.originalTitle = try container.decodeIfPresent(String.self, forKey: .originalTitle)
self.parentGuid = try container.decodeIfPresent(String.self, forKey: .parentGuid) self.parentGuid = try container.decodeIfPresent(String.self, forKey: .parentGuid)
self.parentIndex = try container.decodeIfPresent(Int.self, forKey: .parentIndex) self.parentIndex = try container.decodeIfPresent(Int.self, forKey: .parentIndex)
self.parentKey = try container.decodeIfPresent(String.self, forKey: .parentKey) self.parentKey = try container.decodeIfPresent(String.self, forKey: .parentKey)
self.parentRatingKey = try container.decodeIfPresent(String.self, forKey: .parentRatingKey) self.parentRatingKey = try container.decodeIfPresent(String.self, forKey: .parentRatingKey)
self.parentSlug = try container.decodeIfPresent(String.self, forKey: .parentSlug) self.parentSlug = try container.decodeIfPresent(String.self, forKey: .parentSlug)
self.parentStudio = try container.decodeIfPresent(String.self, forKey: .parentStudio)
self.parentTheme = try container.decodeIfPresent(String.self, forKey: .parentTheme)
self.parentThumb = try container.decodeIfPresent(String.self, forKey: .parentThumb) self.parentThumb = try container.decodeIfPresent(String.self, forKey: .parentThumb)
self.parentTitle = try container.decodeIfPresent(String.self, forKey: .parentTitle) self.parentTitle = try container.decodeIfPresent(String.self, forKey: .parentTitle)
self.parentYear = try container.decodeIfPresent(Int.self, forKey: .parentYear) self.parentYear = try container.decodeIfPresent(Int.self, forKey: .parentYear)
self.primaryExtraKey = try container.decodeIfPresent(String.self, forKey: .primaryExtraKey) self.primaryExtraKey = try container.decodeIfPresent(String.self, forKey: .primaryExtraKey)
self._rating = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .rating) ?? DecimalSerialized<Double?>(wrappedValue: nil) self.producer = try container.decodeIfPresent([Operations.Producer].self, forKey: .producer)
self.rating1 = try container.decodeIfPresent([Operations.Rating].self, forKey: .rating1)
self.ratingImage = try container.decodeIfPresent(String.self, forKey: .ratingImage) self.ratingImage = try container.decodeIfPresent(String.self, forKey: .ratingImage)
self.role = try container.decodeIfPresent([Operations.Role].self, forKey: .role) self.role = try container.decodeIfPresent([Operations.Role].self, forKey: .role)
self.seasonCount = try container.decodeIfPresent(Int.self, forKey: .seasonCount) self.similar = try container.decodeIfPresent([Operations.Similar].self, forKey: .similar)
self.showOrdering = try container.decodeIfPresent(Operations.ShowOrdering.self, forKey: .showOrdering)
self.skipChildren = try container.decodeIfPresent(Bool.self, forKey: .skipChildren)
self.skipCount = try container.decodeIfPresent(Int.self, forKey: .skipCount) 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.studio = try container.decodeIfPresent(String.self, forKey: .studio)
self.tagline = try container.decodeIfPresent(String.self, forKey: .tagline) self.subtype = try container.decodeIfPresent(String.self, forKey: .subtype)
self.theme = try container.decodeIfPresent(String.self, forKey: .theme)
self.thumb = try container.decodeIfPresent(String.self, forKey: .thumb)
self.titleSort = try container.decodeIfPresent(String.self, forKey: .titleSort)
self.ultraBlurColors = try container.decodeIfPresent(Operations.UltraBlurColors.self, forKey: .ultraBlurColors) self.ultraBlurColors = try container.decodeIfPresent(Operations.UltraBlurColors.self, forKey: .ultraBlurColors)
self.updatedAt = try container.decodeIfPresent(Int.self, forKey: .updatedAt) self.updatedAt = try container.decodeIfPresent(Int.self, forKey: .updatedAt)
self._userRating = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .userRating) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.viewCount = try container.decodeIfPresent(Int.self, forKey: .viewCount) self.viewCount = try container.decodeIfPresent(Int.self, forKey: .viewCount)
self.viewedLeafCount = try container.decodeIfPresent(Int.self, forKey: .viewedLeafCount) self.viewedLeafCount = try container.decodeIfPresent(Int.self, forKey: .viewedLeafCount)
self.viewOffset = try container.decodeIfPresent(Int.self, forKey: .viewOffset) self.viewOffset = try container.decodeIfPresent(Int.self, forKey: .viewOffset)
@@ -377,28 +447,38 @@ extension Operations.GetRecentlyAddedMetadata: Codable {
public func encode(to encoder: Encoder) throws { public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self) var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(self.addedAt, forKey: .addedAt) try container.encode(self.addedAt, forKey: .addedAt)
try container.encode(self.guid, forKey: .guid) try container.encode(self.art, forKey: .art)
try container.encode(self.key, forKey: .key)
try container.encode(self.ratingKey, forKey: .ratingKey)
try container.encode(self.summary, forKey: .summary)
try container.encode(self.title, forKey: .title)
try container.encode(self.type, forKey: .type)
try container.encodeIfPresent(self.art, forKey: .art)
if self.audienceRating != nil {
try container.encode(self._audienceRating, forKey: .audienceRating) try container.encode(self._audienceRating, forKey: .audienceRating)
} try container.encode(self.childCount, forKey: .childCount)
try container.encode(self.duration, forKey: .duration)
try container.encode(self.guid, forKey: .guid)
try container.encode(self.index, forKey: .index)
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.parentStudio, forKey: .parentStudio)
try container.encode(self.parentTheme, forKey: .parentTheme)
try container.encode(self._rating, forKey: .rating)
try container.encode(self.ratingKey, forKey: .ratingKey)
try container.encode(self.seasonCount, forKey: .seasonCount)
try container.encode(self.slug, forKey: .slug)
try container.encode(self.summary, forKey: .summary)
try container.encode(self.tagline, forKey: .tagline)
try container.encode(self.theme, forKey: .theme)
try container.encode(self.thumb, forKey: .thumb)
try container.encode(self.title, forKey: .title)
try container.encode(self.titleSort, forKey: .titleSort)
try container.encode(self.type, forKey: .type)
try container.encodeIfPresent(self.audienceRatingImage, forKey: .audienceRatingImage) try container.encodeIfPresent(self.audienceRatingImage, forKey: .audienceRatingImage)
try container.encodeIfPresent(self.banner, forKey: .banner)
try container.encodeIfPresent(self.chapterSource, forKey: .chapterSource) try container.encodeIfPresent(self.chapterSource, forKey: .chapterSource)
try container.encodeIfPresent(self.childCount, forKey: .childCount)
try container.encodeIfPresent(self.collection, forKey: .collection) try container.encodeIfPresent(self.collection, forKey: .collection)
try container.encodeIfPresent(self.contentRating, forKey: .contentRating) try container.encodeIfPresent(self.contentRating, forKey: .contentRating)
try container.encodeIfPresent(self.country, forKey: .country) try container.encodeIfPresent(self.country, forKey: .country)
try container.encodeIfPresent(self.createdAtAccuracy, forKey: .createdAtAccuracy)
try container.encodeIfPresent(self.createdAtTZOffset, forKey: .createdAtTZOffset)
try container.encodeIfPresent(self.director, forKey: .director) try container.encodeIfPresent(self.director, forKey: .director)
try container.encodeIfPresent(self.duration, forKey: .duration)
try container.encodeIfPresent(self.enableCreditsMarkerGeneration, forKey: .enableCreditsMarkerGeneration)
try container.encodeIfPresent(self.episodeSort, forKey: .episodeSort)
try container.encodeIfPresent(self.flattenSeasons, forKey: .flattenSeasons)
try container.encodeIfPresent(self.genre, forKey: .genre) try container.encodeIfPresent(self.genre, forKey: .genre)
try container.encodeIfPresent(self.grandparentArt, forKey: .grandparentArt) try container.encodeIfPresent(self.grandparentArt, forKey: .grandparentArt)
try container.encodeIfPresent(self.grandparentGuid, forKey: .grandparentGuid) try container.encodeIfPresent(self.grandparentGuid, forKey: .grandparentGuid)
@@ -408,51 +488,36 @@ extension Operations.GetRecentlyAddedMetadata: Codable {
try container.encodeIfPresent(self.grandparentTheme, forKey: .grandparentTheme) try container.encodeIfPresent(self.grandparentTheme, forKey: .grandparentTheme)
try container.encodeIfPresent(self.grandparentThumb, forKey: .grandparentThumb) try container.encodeIfPresent(self.grandparentThumb, forKey: .grandparentThumb)
try container.encodeIfPresent(self.grandparentTitle, forKey: .grandparentTitle) try container.encodeIfPresent(self.grandparentTitle, forKey: .grandparentTitle)
try container.encodeIfPresent(self.hasPremiumExtras, forKey: .hasPremiumExtras) try container.encodeIfPresent(self.guids, forKey: .guids)
try container.encodeIfPresent(self.hasPremiumPrimaryExtra, forKey: .hasPremiumPrimaryExtra)
try container.encodeIfPresent(self.image, forKey: .image) try container.encodeIfPresent(self.image, forKey: .image)
try container.encodeIfPresent(self.index, forKey: .index) try container.encodeIfPresent(self.lastRatedAt, forKey: .lastRatedAt)
try container.encodeIfPresent(self.lastViewedAt, forKey: .lastViewedAt) try container.encodeIfPresent(self.lastViewedAt, forKey: .lastViewedAt)
try container.encodeIfPresent(self.leafCount, forKey: .leafCount) try container.encodeIfPresent(self.leafCount, forKey: .leafCount)
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.location, forKey: .location) try container.encodeIfPresent(self.location, forKey: .location)
try container.encodeIfPresent(self.media, forKey: .media) try container.encodeIfPresent(self.media, forKey: .media)
try container.encodeIfPresent(self.mediaGuid, forKey: .mediaGuid)
try container.encodeIfPresent(self.metaDataRating, forKey: .metaDataRating)
if self.originallyAvailableAt != nil {
try container.encode(self._originallyAvailableAt, forKey: .originallyAvailableAt)
}
try container.encodeIfPresent(self.originalTitle, forKey: .originalTitle) try container.encodeIfPresent(self.originalTitle, forKey: .originalTitle)
try container.encodeIfPresent(self.parentGuid, forKey: .parentGuid) try container.encodeIfPresent(self.parentGuid, forKey: .parentGuid)
try container.encodeIfPresent(self.parentIndex, forKey: .parentIndex) try container.encodeIfPresent(self.parentIndex, forKey: .parentIndex)
try container.encodeIfPresent(self.parentKey, forKey: .parentKey) try container.encodeIfPresent(self.parentKey, forKey: .parentKey)
try container.encodeIfPresent(self.parentRatingKey, forKey: .parentRatingKey) try container.encodeIfPresent(self.parentRatingKey, forKey: .parentRatingKey)
try container.encodeIfPresent(self.parentSlug, forKey: .parentSlug) try container.encodeIfPresent(self.parentSlug, forKey: .parentSlug)
try container.encodeIfPresent(self.parentStudio, forKey: .parentStudio)
try container.encodeIfPresent(self.parentTheme, forKey: .parentTheme)
try container.encodeIfPresent(self.parentThumb, forKey: .parentThumb) try container.encodeIfPresent(self.parentThumb, forKey: .parentThumb)
try container.encodeIfPresent(self.parentTitle, forKey: .parentTitle) try container.encodeIfPresent(self.parentTitle, forKey: .parentTitle)
try container.encodeIfPresent(self.parentYear, forKey: .parentYear) try container.encodeIfPresent(self.parentYear, forKey: .parentYear)
try container.encodeIfPresent(self.primaryExtraKey, forKey: .primaryExtraKey) try container.encodeIfPresent(self.primaryExtraKey, forKey: .primaryExtraKey)
if self.rating != nil { try container.encodeIfPresent(self.producer, forKey: .producer)
try container.encode(self._rating, forKey: .rating) try container.encodeIfPresent(self.rating1, forKey: .rating1)
}
try container.encodeIfPresent(self.ratingImage, forKey: .ratingImage) try container.encodeIfPresent(self.ratingImage, forKey: .ratingImage)
try container.encodeIfPresent(self.role, forKey: .role) try container.encodeIfPresent(self.role, forKey: .role)
try container.encodeIfPresent(self.seasonCount, forKey: .seasonCount) try container.encodeIfPresent(self.similar, forKey: .similar)
try container.encodeIfPresent(self.showOrdering, forKey: .showOrdering)
try container.encodeIfPresent(self.skipChildren, forKey: .skipChildren)
try container.encodeIfPresent(self.skipCount, forKey: .skipCount) 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.studio, forKey: .studio)
try container.encodeIfPresent(self.tagline, forKey: .tagline) try container.encodeIfPresent(self.subtype, forKey: .subtype)
try container.encodeIfPresent(self.theme, forKey: .theme)
try container.encodeIfPresent(self.thumb, forKey: .thumb)
try container.encodeIfPresent(self.titleSort, forKey: .titleSort)
try container.encodeIfPresent(self.ultraBlurColors, forKey: .ultraBlurColors) try container.encodeIfPresent(self.ultraBlurColors, forKey: .ultraBlurColors)
try container.encodeIfPresent(self.updatedAt, forKey: .updatedAt) try container.encodeIfPresent(self.updatedAt, forKey: .updatedAt)
if self.userRating != nil {
try container.encode(self._userRating, forKey: .userRating)
}
try container.encodeIfPresent(self.viewCount, forKey: .viewCount) try container.encodeIfPresent(self.viewCount, forKey: .viewCount)
try container.encodeIfPresent(self.viewedLeafCount, forKey: .viewedLeafCount) try container.encodeIfPresent(self.viewedLeafCount, forKey: .viewedLeafCount)
try container.encodeIfPresent(self.viewOffset, forKey: .viewOffset) try container.encodeIfPresent(self.viewOffset, forKey: .viewOffset)
@@ -462,13 +527,16 @@ extension Operations.GetRecentlyAddedMetadata: Codable {
} }
extension Operations.GetRecentlyAddedMetadata { extension Operations.GetRecentlyAddedMetadata {
var ratingWrapper: DecimalSerialized<Double?> { var audienceRatingWrapper: DecimalSerialized<Double> {
return _rating
}
var audienceRatingWrapper: DecimalSerialized<Double?> {
return _audienceRating return _audienceRating
} }
var originallyAvailableAtWrapper: DateOnly<Date?> { var originallyAvailableAtWrapper: DateOnly<Date> {
return _originallyAvailableAt return _originallyAvailableAt
} }
var ratingWrapper: DecimalSerialized<Double> {
return _rating
}
var userRatingWrapper: DecimalSerialized<Double?> {
return _userRating
}
} }

View File

@@ -0,0 +1,32 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
import Foundation
extension Operations {
/// Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
public enum GetRecentlyAddedOptimizedForStreaming {
case getRecentlyAdded1(Operations.GetRecentlyAdded1)
case bool(Bool)
}}
extension Operations.GetRecentlyAddedOptimizedForStreaming: Codable {
public init(from decoder: Decoder) throws {
if let value = try? Operations.GetRecentlyAdded1(from: decoder) {
self = .getRecentlyAdded1(value)
} else if let value = try? Bool(from: decoder) {
self = .bool(value)
} else {
throw PlexswiftError.failedToHandleResponse(.failedToDecodeResponse)
}
}
public func encode(to encoder: Encoder) throws {
switch self {
case .getRecentlyAdded1(let value):
try value.encode(to: encoder)
case .bool(let value):
try value.encode(to: encoder)
}
}
}

View File

@@ -3,6 +3,7 @@
import Foundation import Foundation
extension Operations { extension Operations {
/// Indicates if the part has a thumbnail.
public enum HasThumbnail: String, Codable, APIValue { public enum HasThumbnail: String, Codable, APIValue {
case `false` = "0" case `false` = "0"
case `true` = "1" case `true` = "1"

View File

@@ -3,14 +3,14 @@
import Foundation import Foundation
extension Operations { extension Operations {
/// A model object /// The folder path for the media item.
public struct Location { public struct Location {
public let path: String? public let path: String
/// Creates an object with the specified parameters /// Creates an object with the specified parameters
/// ///
/// ///
public init(path: String? = nil) { public init(path: String) {
self.path = path self.path = path
} }
}} }}

View File

@@ -5,43 +5,81 @@ import Foundation
extension Operations { extension Operations {
/// A model object /// A model object
public struct Media { public struct Media {
public let container: String /// Unique media identifier.
public let id: Int public let id: Int
public let part: [Operations.Part] /// Aspect ratio of the video.
@DecimalSerialized @DecimalSerialized
public private(set) var aspectRatio: Double? public private(set) var aspectRatio: Double?
/// Number of audio channels.
public let audioChannels: Int? public let audioChannels: Int?
/// Audio codec used.
public let audioCodec: String? public let audioCodec: String?
/// The audio profile used for the media (e.g., DTS, Dolby Digital, etc.).
public let audioProfile: String? public let audioProfile: String?
/// Bitrate in bits per second.
public let bitrate: Int? public let bitrate: Int?
/// File container type.
public let container: String?
public let displayOffset: Int?
/// Duration of the media in milliseconds.
public let duration: Int? public let duration: Int?
public let has64bitOffsets: Bool? public let has64bitOffsets: Bool?
/// Indicates whether voice activity is detected.
public let hasVoiceActivity: Bool? public let hasVoiceActivity: Bool?
/// Video height in pixels.
public let height: Int? public let height: Int?
/// Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
public let optimizedForStreaming: Operations.OptimizedForStreaming? public let optimizedForStreaming: Operations.OptimizedForStreaming?
/// An array of parts for this media item.
public let part: [Operations.Part]?
/// Video codec used.
public let videoCodec: String? public let videoCodec: String?
/// Frame rate of the video. Values found include NTSC, PAL, 24p
///
public let videoFrameRate: String? public let videoFrameRate: String?
/// Video profile (e.g., main 10).
public let videoProfile: String? public let videoProfile: String?
/// Video resolution (e.g., 4k).
public let videoResolution: String? public let videoResolution: String?
/// Video width in pixels.
public let width: Int? public let width: Int?
/// Creates an object with the specified parameters /// Creates an object with the specified parameters
/// ///
/// - Parameter id: Unique media identifier.
/// - Parameter aspectRatio: Aspect ratio of the video.
/// - Parameter audioChannels: Number of audio channels.
/// - Parameter audioCodec: Audio codec used.
/// - Parameter audioProfile: The audio profile used for the media (e.g., DTS, Dolby Digital, etc.).
/// - 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 optimizedForStreaming: Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
/// - Parameter part: An array of parts for this media item.
/// - Parameter videoCodec: Video codec used.
/// - Parameter videoFrameRate: Frame rate of the video. Values found include NTSC, PAL, 24p
/// ///
public init(container: String, id: Int, part: [Operations.Part], aspectRatio: Double? = nil, audioChannels: Int? = nil, audioCodec: String? = nil, audioProfile: String? = nil, bitrate: Int? = nil, duration: Int? = nil, has64bitOffsets: Bool? = nil, hasVoiceActivity: Bool? = nil, height: Int? = nil, optimizedForStreaming: Operations.OptimizedForStreaming? = nil, videoCodec: String? = nil, videoFrameRate: String? = nil, videoProfile: String? = nil, videoResolution: String? = nil, width: Int? = nil) { /// - Parameter videoProfile: Video profile (e.g., main 10).
self.container = container /// - Parameter videoResolution: Video resolution (e.g., 4k).
/// - Parameter width: Video width in pixels.
///
public init(id: Int, aspectRatio: Double? = nil, audioChannels: Int? = nil, audioCodec: String? = nil, audioProfile: String? = nil, bitrate: Int? = nil, container: String? = nil, displayOffset: Int? = nil, duration: Int? = nil, has64bitOffsets: Bool? = nil, hasVoiceActivity: Bool? = nil, height: Int? = nil, optimizedForStreaming: Operations.OptimizedForStreaming? = nil, part: [Operations.Part]? = nil, videoCodec: String? = nil, videoFrameRate: String? = nil, videoProfile: String? = nil, videoResolution: String? = nil, width: Int? = nil) {
self.id = id self.id = id
self.part = part
self._aspectRatio = DecimalSerialized<Double?>(wrappedValue: aspectRatio) self._aspectRatio = DecimalSerialized<Double?>(wrappedValue: aspectRatio)
self.audioChannels = audioChannels self.audioChannels = audioChannels
self.audioCodec = audioCodec self.audioCodec = audioCodec
self.audioProfile = audioProfile self.audioProfile = audioProfile
self.bitrate = bitrate self.bitrate = bitrate
self.container = container
self.displayOffset = displayOffset
self.duration = duration self.duration = duration
self.has64bitOffsets = has64bitOffsets self.has64bitOffsets = has64bitOffsets
self.hasVoiceActivity = hasVoiceActivity self.hasVoiceActivity = hasVoiceActivity
self.height = height self.height = height
self.optimizedForStreaming = optimizedForStreaming self.optimizedForStreaming = optimizedForStreaming
self.part = part
self.videoCodec = videoCodec self.videoCodec = videoCodec
self.videoFrameRate = videoFrameRate self.videoFrameRate = videoFrameRate
self.videoProfile = videoProfile self.videoProfile = videoProfile
@@ -52,19 +90,20 @@ extension Operations {
extension Operations.Media: Codable { extension Operations.Media: Codable {
enum CodingKeys: String, CodingKey { enum CodingKeys: String, CodingKey {
case container
case id case id
case part = "Part"
case aspectRatio case aspectRatio
case audioChannels case audioChannels
case audioCodec case audioCodec
case audioProfile case audioProfile
case bitrate case bitrate
case container
case displayOffset
case duration case duration
case has64bitOffsets case has64bitOffsets
case hasVoiceActivity case hasVoiceActivity
case height case height
case optimizedForStreaming case optimizedForStreaming
case part = "Part"
case videoCodec case videoCodec
case videoFrameRate case videoFrameRate
case videoProfile case videoProfile
@@ -74,19 +113,20 @@ extension Operations.Media: Codable {
public init(from decoder: Decoder) throws { public init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self) let container = try decoder.container(keyedBy: CodingKeys.self)
self.container = try container.decode(String.self, forKey: .container)
self.id = try container.decode(Int.self, forKey: .id) self.id = try container.decode(Int.self, forKey: .id)
self.part = try container.decode([Operations.Part].self, forKey: .part)
self._aspectRatio = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .aspectRatio) ?? DecimalSerialized<Double?>(wrappedValue: nil) self._aspectRatio = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .aspectRatio) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.audioChannels = try container.decodeIfPresent(Int.self, forKey: .audioChannels) self.audioChannels = try container.decodeIfPresent(Int.self, forKey: .audioChannels)
self.audioCodec = try container.decodeIfPresent(String.self, forKey: .audioCodec) self.audioCodec = try container.decodeIfPresent(String.self, forKey: .audioCodec)
self.audioProfile = try container.decodeIfPresent(String.self, forKey: .audioProfile) self.audioProfile = try container.decodeIfPresent(String.self, forKey: .audioProfile)
self.bitrate = try container.decodeIfPresent(Int.self, forKey: .bitrate) self.bitrate = try container.decodeIfPresent(Int.self, forKey: .bitrate)
self.container = try container.decodeIfPresent(String.self, forKey: .container)
self.displayOffset = try container.decodeIfPresent(Int.self, forKey: .displayOffset)
self.duration = try container.decodeIfPresent(Int.self, forKey: .duration) self.duration = try container.decodeIfPresent(Int.self, forKey: .duration)
self.has64bitOffsets = try container.decodeIfPresent(Bool.self, forKey: .has64bitOffsets) self.has64bitOffsets = try container.decodeIfPresent(Bool.self, forKey: .has64bitOffsets)
self.hasVoiceActivity = try container.decodeIfPresent(Bool.self, forKey: .hasVoiceActivity) self.hasVoiceActivity = try container.decodeIfPresent(Bool.self, forKey: .hasVoiceActivity)
self.height = try container.decodeIfPresent(Int.self, forKey: .height) self.height = try container.decodeIfPresent(Int.self, forKey: .height)
self.optimizedForStreaming = try container.decodeIfPresent(Operations.OptimizedForStreaming.self, forKey: .optimizedForStreaming) self.optimizedForStreaming = try container.decodeIfPresent(Operations.OptimizedForStreaming.self, forKey: .optimizedForStreaming)
self.part = try container.decodeIfPresent([Operations.Part].self, forKey: .part)
self.videoCodec = try container.decodeIfPresent(String.self, forKey: .videoCodec) self.videoCodec = try container.decodeIfPresent(String.self, forKey: .videoCodec)
self.videoFrameRate = try container.decodeIfPresent(String.self, forKey: .videoFrameRate) self.videoFrameRate = try container.decodeIfPresent(String.self, forKey: .videoFrameRate)
self.videoProfile = try container.decodeIfPresent(String.self, forKey: .videoProfile) self.videoProfile = try container.decodeIfPresent(String.self, forKey: .videoProfile)
@@ -96,9 +136,7 @@ extension Operations.Media: Codable {
public func encode(to encoder: Encoder) throws { public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self) var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(self.container, forKey: .container)
try container.encode(self.id, forKey: .id) try container.encode(self.id, forKey: .id)
try container.encode(self.part, forKey: .part)
if self.aspectRatio != nil { if self.aspectRatio != nil {
try container.encode(self._aspectRatio, forKey: .aspectRatio) try container.encode(self._aspectRatio, forKey: .aspectRatio)
} }
@@ -106,11 +144,14 @@ extension Operations.Media: Codable {
try container.encodeIfPresent(self.audioCodec, forKey: .audioCodec) try container.encodeIfPresent(self.audioCodec, forKey: .audioCodec)
try container.encodeIfPresent(self.audioProfile, forKey: .audioProfile) try container.encodeIfPresent(self.audioProfile, forKey: .audioProfile)
try container.encodeIfPresent(self.bitrate, forKey: .bitrate) try container.encodeIfPresent(self.bitrate, forKey: .bitrate)
try container.encodeIfPresent(self.container, forKey: .container)
try container.encodeIfPresent(self.displayOffset, forKey: .displayOffset)
try container.encodeIfPresent(self.duration, forKey: .duration) try container.encodeIfPresent(self.duration, forKey: .duration)
try container.encodeIfPresent(self.has64bitOffsets, forKey: .has64bitOffsets) try container.encodeIfPresent(self.has64bitOffsets, forKey: .has64bitOffsets)
try container.encodeIfPresent(self.hasVoiceActivity, forKey: .hasVoiceActivity) try container.encodeIfPresent(self.hasVoiceActivity, forKey: .hasVoiceActivity)
try container.encodeIfPresent(self.height, forKey: .height) try container.encodeIfPresent(self.height, forKey: .height)
try container.encodeIfPresent(self.optimizedForStreaming, forKey: .optimizedForStreaming) 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.videoCodec, forKey: .videoCodec)
try container.encodeIfPresent(self.videoFrameRate, forKey: .videoFrameRate) try container.encodeIfPresent(self.videoFrameRate, forKey: .videoFrameRate)
try container.encodeIfPresent(self.videoProfile, forKey: .videoProfile) try container.encodeIfPresent(self.videoProfile, forKey: .videoProfile)

View File

@@ -3,7 +3,30 @@
import Foundation import Foundation
extension Operations { extension Operations {
public enum OptimizedForStreaming: Int, Codable, APIValue { /// Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
case disable = 0 public enum OptimizedForStreaming {
case enable = 1 case one(Operations.One)
case bool(Bool)
}} }}
extension Operations.OptimizedForStreaming: Codable {
public init(from decoder: Decoder) throws {
if let value = try? Operations.One(from: decoder) {
self = .one(value)
} else if let value = try? Bool(from: decoder) {
self = .bool(value)
} else {
throw PlexswiftError.failedToHandleResponse(.failedToDecodeResponse)
}
}
public func encode(to encoder: Encoder) throws {
switch self {
case .one(let value):
try value.encode(to: encoder)
case .bool(let value):
try value.encode(to: encoder)
}
}
}

View File

@@ -5,39 +5,65 @@ import Foundation
extension Operations { extension Operations {
/// A model object /// A model object
public struct Part { public struct Part {
/// The container format of the media file. /// File path for the part.
///
public let container: String
public let file: String public let file: String
/// Unique part identifier.
public let id: Int public let id: Int
/// Key to access this part.
public let key: String public let key: String
/// File size in bytes.
public let size: Int public let size: Int
/// Indicates if the part is accessible.
public let accessible: Bool?
/// The audio profile used for the media (e.g., DTS, Dolby Digital, etc.).
public let audioProfile: String? public let audioProfile: String?
/// Container format of the part.
public let container: String?
/// Duration of the part in milliseconds.
public let duration: Int? public let duration: Int?
/// Indicates if the part exists.
public let exists: Bool?
public let has64bitOffsets: Bool? public let has64bitOffsets: Bool?
public let hasThumbnail: Operations.HasThumbnail? public let hasThumbnail: Operations.HasThumbnail?
public let indexes: String? public let indexes: String?
public let optimizedForStreaming: Bool? /// Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
public let optimizedForStreaming: Operations.GetRecentlyAddedOptimizedForStreaming?
public let packetLength: Int?
/// An array of streams for this part.
public let stream: [Operations.Stream]? public let stream: [Operations.Stream]?
/// Video profile for the part.
public let videoProfile: String? public let videoProfile: String?
/// Creates an object with the specified parameters /// Creates an object with the specified parameters
/// ///
/// - Parameter container: The container format of the media file. /// - 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 accessible: Indicates if the part is accessible.
/// - Parameter audioProfile: The audio profile used for the media (e.g., DTS, Dolby Digital, etc.).
/// - Parameter container: Container format of the part.
/// - Parameter duration: Duration of the part in milliseconds.
/// - Parameter exists: Indicates if the part exists.
/// - Parameter optimizedForStreaming: Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
/// - Parameter stream: An array of streams for this part.
/// - Parameter videoProfile: Video profile for the part.
/// ///
/// public init(file: String, id: Int, key: String, size: Int, accessible: Bool? = nil, audioProfile: String? = nil, container: String? = nil, duration: Int? = nil, exists: Bool? = nil, has64bitOffsets: Bool? = nil, hasThumbnail: Operations.HasThumbnail? = nil, indexes: String? = nil, optimizedForStreaming: Operations.GetRecentlyAddedOptimizedForStreaming? = nil, packetLength: Int? = nil, stream: [Operations.Stream]? = nil, videoProfile: String? = nil) {
public init(container: String, file: String, id: Int, key: String, size: Int, audioProfile: String? = nil, duration: Int? = nil, has64bitOffsets: Bool? = nil, hasThumbnail: Operations.HasThumbnail? = nil, indexes: String? = nil, optimizedForStreaming: Bool? = nil, stream: [Operations.Stream]? = nil, videoProfile: String? = nil) {
self.container = container
self.file = file self.file = file
self.id = id self.id = id
self.key = key self.key = key
self.size = size self.size = size
self.accessible = accessible
self.audioProfile = audioProfile self.audioProfile = audioProfile
self.container = container
self.duration = duration self.duration = duration
self.exists = exists
self.has64bitOffsets = has64bitOffsets self.has64bitOffsets = has64bitOffsets
self.hasThumbnail = hasThumbnail self.hasThumbnail = hasThumbnail
self.indexes = indexes self.indexes = indexes
self.optimizedForStreaming = optimizedForStreaming self.optimizedForStreaming = optimizedForStreaming
self.packetLength = packetLength
self.stream = stream self.stream = stream
self.videoProfile = videoProfile self.videoProfile = videoProfile
} }
@@ -45,17 +71,20 @@ extension Operations {
extension Operations.Part: Codable { extension Operations.Part: Codable {
enum CodingKeys: String, CodingKey { enum CodingKeys: String, CodingKey {
case container
case file case file
case id case id
case key case key
case size case size
case accessible
case audioProfile case audioProfile
case container
case duration case duration
case exists
case has64bitOffsets case has64bitOffsets
case hasThumbnail case hasThumbnail
case indexes case indexes
case optimizedForStreaming case optimizedForStreaming
case packetLength
case stream = "Stream" case stream = "Stream"
case videoProfile case videoProfile
} }

View File

@@ -5,34 +5,30 @@ import Foundation
extension Operations { extension Operations {
/// A model object /// A model object
public struct Producer { public struct Producer {
/// The filter string for the role. /// The filter string used to query this producer.
public let filter: String public let filter: String
/// The unique role identifier. /// Unique identifier for the producer.
public let id: Int public let id: Int
/// The actor's name. /// The name of the producer
public let tag: String public let tag: String
/// A key associated with the actor tag. /// A unique key associated with the producer's tag, used for internal identification.
public let tagKey: String public let tagKey: String?
/// The character name or role. /// The URL of the thumbnail image for the actor.
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 filter: The filter string used to query this producer.
/// - Parameter id: The unique role identifier. /// - Parameter id: Unique identifier for the producer.
/// - Parameter tag: The actor's name. /// - Parameter tag: The name of the producer
/// - Parameter tagKey: A key associated with the actor tag. /// - Parameter tagKey: A unique key associated with the producer's tag, used for internal identification.
/// - Parameter role: The character name or role. /// - Parameter thumb: The URL of the thumbnail image for the actor.
/// - Parameter thumb: URL for the role thumbnail image.
/// ///
public init(filter: String, id: Int, tag: String, tagKey: String, role: String? = nil, thumb: String? = nil) { public init(filter: String, id: Int, tag: String, tagKey: 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
} }
}} }}
@@ -43,7 +39,6 @@ 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,21 +3,15 @@
import Foundation import Foundation
extension Operations { extension Operations {
/// A model object /// The type of rating, for example 'audience' or 'critic'.
public struct GetLibraryItemsMetaDataRating { public struct Rating {
/// A URI or path to the rating image.
public let image: String public let image: String
/// The type of rating (e.g., audience, critic).
public let type: String public let type: String
/// The value of the rating.
@DecimalSerialized @DecimalSerialized
public private(set) var value: Double public private(set) var value: Double
/// Creates an object with the specified parameters /// Creates an object with the specified parameters
/// ///
/// - Parameter image: A URI or path to the rating image.
/// - Parameter type: The type of rating (e.g., audience, critic).
/// - Parameter value: The value of the rating.
/// ///
public init(image: String, type: String, value: Double) { public init(image: String, type: String, value: Double) {
self.image = image self.image = image
@@ -26,7 +20,7 @@ extension Operations {
} }
}} }}
extension Operations.GetLibraryItemsMetaDataRating: Codable { extension Operations.Rating: Codable {
enum CodingKeys: String, CodingKey { enum CodingKeys: String, CodingKey {
case image case image
case type case type
@@ -48,7 +42,7 @@ extension Operations.GetLibraryItemsMetaDataRating: Codable {
} }
} }
extension Operations.GetLibraryItemsMetaDataRating { extension Operations.Rating {
var valueWrapper: DecimalSerialized<Double> { var valueWrapper: DecimalSerialized<Double> {
return _value return _value
} }

View File

@@ -5,33 +5,33 @@ import Foundation
extension Operations { extension Operations {
/// A model object /// A model object
public struct Role { public struct Role {
/// The filter used to find the actor or tag. /// The filter string used to query this actor. For example, it may indicate that this is an actor with a given key.
public let filter: String? public let filter: String
/// The ID of the tag or actor. /// Unique identifier for the actor or role.
public let id: Int? public let id: Int
/// The role of the actor or tag in the media. /// The display tag for the actor (typically the actor's name).
public let tag: String
/// The role played by the actor in the media item.
public let role: String? public let role: String?
/// The name of the tag or actor. /// A unique key associated with the actor's tag, used for internal identification.
public let tag: String?
/// Unique identifier for the tag.
public let tagKey: String? public let tagKey: String?
/// The thumbnail of the actor /// The URL of the thumbnail image for the actor.
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 used to find the actor or tag. /// - Parameter filter: The filter string used to query this actor. For example, it may indicate that this is an actor with a given key.
/// - Parameter id: The ID of the tag or actor. /// - Parameter id: Unique identifier for the actor or role.
/// - Parameter role: The role of the actor or tag in the media. /// - Parameter tag: The display tag for the actor (typically the actor's name).
/// - Parameter tag: The name of the tag or actor. /// - Parameter role: The role played by the actor in the media item.
/// - Parameter tagKey: Unique identifier for the tag. /// - Parameter tagKey: A unique key associated with the actor's tag, used for internal identification.
/// - Parameter thumb: The thumbnail of the actor /// - Parameter thumb: The URL of the thumbnail image for the actor.
/// ///
public init(filter: String? = nil, id: Int? = nil, role: String? = nil, tag: String? = nil, tagKey: String? = nil, thumb: String? = nil) { public init(filter: String, id: Int, tag: String, role: String? = nil, tagKey: String? = nil, thumb: String? = nil) {
self.filter = filter self.filter = filter
self.id = id self.id = id
self.role = role
self.tag = tag self.tag = tag
self.role = role
self.tagKey = tagKey self.tagKey = tagKey
self.thumb = thumb self.thumb = thumb
} }
@@ -41,8 +41,8 @@ extension Operations.Role: Codable {
enum CodingKeys: String, CodingKey { enum CodingKeys: String, CodingKey {
case filter case filter
case id case id
case role
case tag case tag
case role
case tagKey case tagKey
case thumb case thumb
} }

View File

@@ -3,20 +3,14 @@
import Foundation import Foundation
extension Operations { extension Operations {
/// A model object /// The display tag for the similar item, typically the title.
public struct Similar { public struct Similar {
/// The filter string for similar items.
public let filter: String public let filter: String
/// The unique similar item identifier.
public let id: Int public let id: Int
/// The tag or title of the similar content.
public let tag: String public let tag: String
/// Creates an object with the specified parameters /// 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) { public init(filter: String, id: Int, tag: String) {
self.filter = filter self.filter = filter

View File

@@ -5,119 +5,152 @@ import Foundation
extension Operations { extension Operations {
/// A model object /// A model object
public struct Stream { public struct Stream {
/// Codec used by the stream /// Codec used by the stream.
public let codec: String 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 public let id: Int
/// The index of the stream /// Index of the stream.
public let index: Int public let index: Int
/// Type of stream (1 = video, 2 = audio, 3 = subtitle) /// Stream type (1=video, 2=audio, 3=subtitle).
public let streamType: Int public let streamType: Int
/// The audio channel layout /// Audio channel layout.
public let audioChannelLayout: String? public let audioChannelLayout: String?
/// The bit depth of the video stream /// Bit depth of the video stream.
public let bitDepth: Int? public let bitDepth: Int?
/// The bitrate of the stream in kbps /// Bitrate of the stream.
public let bitrate: Int? public let bitrate: Int?
/// Indicates if the subtitle stream can auto-sync /// Indicates if the stream can auto-sync.
public let canAutoSync: Bool? public let canAutoSync: Bool?
/// Number of audio channels (for audio streams) /// Number of audio channels (for audio streams).
public let channels: Int? public let channels: Int?
/// The chroma location of the video stream /// Chroma sample location.
public let chromaLocation: String? public let chromaLocation: String?
/// The chroma subsampling format /// Chroma subsampling format.
public let chromaSubsampling: String? public let chromaSubsampling: String?
public let closedCaptions: Bool? public let closedCaptions: Bool?
/// The coded height of the video stream /// Coded video height.
public let codedHeight: Int? public let codedHeight: Int?
/// The coded width of the video stream /// Coded video width.
public let codedWidth: Int? public let codedWidth: Int?
/// The color primaries of the video stream /// Color primaries used.
public let colorPrimaries: String? public let colorPrimaries: String?
/// The color range of the video stream /// Color range (e.g., tv).
public let colorRange: String? public let colorRange: String?
/// The color space of the video stream /// Color space.
public let colorSpace: String? public let colorSpace: String?
/// The transfer characteristics (TRC) of the video stream /// Color transfer characteristics.
public let colorTrc: String? public let colorTrc: String?
/// Indicates if this is the default stream /// Indicates if this stream is default.
public let `default`: Bool? public let `default`: Bool?
/// Display title of the stream /// Dolby Vision BL compatibility ID.
public let displayTitle: String? 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 embeddedInVideo: String? public let embeddedInVideo: String?
/// Extended display title of the stream public let forced: Bool?
public let extendedDisplayTitle: String? /// Frame rate of the stream.
/// The frame rate of the video stream
@DecimalSerialized @DecimalSerialized
public private(set) var frameRate: Double? public private(set) var frameRate: Double?
/// Indicates if the stream has a scaling matrix
public let hasScalingMatrix: Bool? public let hasScalingMatrix: Bool?
/// Indicates whether header compression is enabled.
public let headerCompression: Bool?
/// Indicates if the stream is for the hearing impaired.
public let hearingImpaired: Bool? public let hearingImpaired: Bool?
/// The height of the video stream /// Height of the video stream.
public let height: Int? public let height: Int?
/// The language of the stream (for audio/subtitle streams) /// Language of the stream.
public let language: String? public let language: String?
/// Language code of the stream /// ISO language code.
public let languageCode: String? public let languageCode: String?
/// Language tag of the stream /// Language tag (e.g., en).
public let languageTag: String? public let languageTag: String?
/// The level of the video codec /// Video level.
public let level: Int? public let level: Int?
/// The profile of the video codec /// Indicates if this is the original stream.
public let original: Bool?
/// Video profile.
public let profile: String? public let profile: String?
/// Number of reference frames /// Number of reference frames.
public let refFrames: Int? public let refFrames: Int?
/// Sampling rate of the audio stream in Hz /// Sampling rate for the audio stream.
public let samplingRate: Int? public let samplingRate: Int?
/// The scan type (progressive or interlaced)
public let scanType: String? public let scanType: String?
/// Indicates if the stream is selected /// Indicates if this stream is selected (applicable for audio streams).
public let selected: Bool? public let selected: Bool?
/// The identifier of the video stream /// Optional title for the stream (e.g., language variant).
public let streamIdentifier: String?
/// Title of the subtitle track (for subtitle streams)
public let title: String? public let title: String?
/// The width of the video stream /// Width of the video stream.
public let width: Int? public let width: Int?
/// Creates an object with the specified parameters /// Creates an object with the specified parameters
/// ///
/// - Parameter codec: Codec used by the stream /// - Parameter codec: Codec used by the stream.
/// - Parameter index: The index of the stream /// - Parameter displayTitle: Display title for the stream.
/// - Parameter streamType: Type of stream (1 = video, 2 = audio, 3 = subtitle) /// - Parameter extendedDisplayTitle: Extended display title for the stream.
/// - Parameter audioChannelLayout: The audio channel layout /// - Parameter id: Unique stream identifier.
/// - Parameter bitDepth: The bit depth of the video stream /// - Parameter index: Index of the stream.
/// - Parameter bitrate: The bitrate of the stream in kbps /// - Parameter streamType: Stream type (1=video, 2=audio, 3=subtitle).
/// - Parameter canAutoSync: Indicates if the subtitle stream can auto-sync /// - Parameter audioChannelLayout: Audio channel layout.
/// - Parameter channels: Number of audio channels (for audio streams) /// - Parameter bitDepth: Bit depth of the video stream.
/// - Parameter chromaLocation: The chroma location of the video stream /// - Parameter bitrate: Bitrate of the stream.
/// - Parameter chromaSubsampling: The chroma subsampling format /// - Parameter canAutoSync: Indicates if the stream can auto-sync.
/// - Parameter codedHeight: The coded height of the video stream /// - Parameter channels: Number of audio channels (for audio streams).
/// - Parameter codedWidth: The coded width of the video stream /// - Parameter chromaLocation: Chroma sample location.
/// - Parameter colorPrimaries: The color primaries of the video stream /// - Parameter chromaSubsampling: Chroma subsampling format.
/// - Parameter colorRange: The color range of the video stream /// - Parameter codedHeight: Coded video height.
/// - Parameter colorSpace: The color space of the video stream /// - Parameter codedWidth: Coded video width.
/// - Parameter colorTrc: The transfer characteristics (TRC) of the video stream /// - Parameter colorPrimaries: Color primaries used.
/// - Parameter `default`: Indicates if this is the default stream /// - Parameter colorRange: Color range (e.g., tv).
/// - Parameter displayTitle: Display title of the stream /// - Parameter colorSpace: Color space.
/// - Parameter extendedDisplayTitle: Extended display title of the stream /// - Parameter colorTrc: Color transfer characteristics.
/// - Parameter frameRate: The frame rate of the video stream /// - Parameter `default`: Indicates if this stream is default.
/// - Parameter hasScalingMatrix: Indicates if the stream has a scaling matrix /// - Parameter doviblCompatID: Dolby Vision BL compatibility ID.
/// - Parameter height: The height of the video stream /// - Parameter doviblPresent: Indicates if Dolby Vision BL is present.
/// - Parameter language: The language of the stream (for audio/subtitle streams) /// - Parameter dovielPresent: Indicates if Dolby Vision EL is present.
/// - Parameter languageCode: Language code of the stream /// - Parameter doviLevel: Dolby Vision level.
/// - Parameter languageTag: Language tag of the stream /// - Parameter doviPresent: Indicates if Dolby Vision is present.
/// - Parameter level: The level of the video codec /// - Parameter doviProfile: Dolby Vision profile.
/// - Parameter profile: The profile of the video codec /// - Parameter dovirpuPresent: Indicates if Dolby Vision RPU is present.
/// - Parameter refFrames: Number of reference frames /// - Parameter doviVersion: Dolby Vision version.
/// - Parameter samplingRate: Sampling rate of the audio stream in Hz /// - Parameter dub: Indicates if the stream is a dub.
/// - Parameter scanType: The scan type (progressive or interlaced) /// - Parameter frameRate: Frame rate of the stream.
/// - Parameter selected: Indicates if the stream is selected /// - Parameter headerCompression: Indicates whether header compression is enabled.
/// - Parameter streamIdentifier: The identifier of the video stream /// - Parameter hearingImpaired: Indicates if the stream is for the hearing impaired.
/// - Parameter title: Title of the subtitle track (for subtitle streams) /// - Parameter height: Height of the video stream.
/// - Parameter width: The width of the video stream /// - Parameter language: Language of the stream.
/// - Parameter languageCode: ISO language code.
/// - Parameter languageTag: Language tag (e.g., en).
/// - 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(codec: String, id: Int, index: Int, streamType: Int, audioChannelLayout: String? = nil, bitDepth: Int? = nil, bitrate: Int? = nil, canAutoSync: Bool? = nil, channels: Int? = nil, chromaLocation: String? = nil, chromaSubsampling: String? = nil, closedCaptions: Bool? = 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, embeddedInVideo: String? = nil, extendedDisplayTitle: String? = nil, frameRate: Double? = nil, hasScalingMatrix: Bool? = nil, hearingImpaired: Bool? = nil, height: 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, title: String? = nil, width: Int? = nil) { public init(codec: String, displayTitle: String, extendedDisplayTitle: String, id: Int, index: Int, streamType: Int, audioChannelLayout: String? = nil, bitDepth: Int? = nil, bitrate: Int? = nil, canAutoSync: Bool? = nil, channels: Int? = nil, chromaLocation: String? = nil, chromaSubsampling: String? = nil, closedCaptions: Bool? = 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, embeddedInVideo: String? = nil, forced: Bool? = nil, frameRate: Double? = nil, hasScalingMatrix: Bool? = nil, headerCompression: Bool? = nil, hearingImpaired: Bool? = nil, height: Int? = nil, language: String? = nil, languageCode: String? = nil, languageTag: String? = 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.codec = codec self.codec = codec
self.displayTitle = displayTitle
self.extendedDisplayTitle = extendedDisplayTitle
self.id = id self.id = id
self.index = index self.index = index
self.streamType = streamType self.streamType = streamType
@@ -136,23 +169,32 @@ extension Operations {
self.colorSpace = colorSpace self.colorSpace = colorSpace
self.colorTrc = colorTrc self.colorTrc = colorTrc
self.`default` = `default` self.`default` = `default`
self.displayTitle = displayTitle 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.embeddedInVideo = embeddedInVideo self.embeddedInVideo = embeddedInVideo
self.extendedDisplayTitle = extendedDisplayTitle self.forced = forced
self._frameRate = DecimalSerialized<Double?>(wrappedValue: frameRate) self._frameRate = DecimalSerialized<Double?>(wrappedValue: frameRate)
self.hasScalingMatrix = hasScalingMatrix self.hasScalingMatrix = hasScalingMatrix
self.headerCompression = headerCompression
self.hearingImpaired = hearingImpaired self.hearingImpaired = hearingImpaired
self.height = height self.height = height
self.language = language self.language = language
self.languageCode = languageCode self.languageCode = languageCode
self.languageTag = languageTag self.languageTag = languageTag
self.level = level self.level = level
self.original = original
self.profile = profile self.profile = profile
self.refFrames = refFrames self.refFrames = refFrames
self.samplingRate = samplingRate self.samplingRate = samplingRate
self.scanType = scanType self.scanType = scanType
self.selected = selected self.selected = selected
self.streamIdentifier = streamIdentifier
self.title = title self.title = title
self.width = width self.width = width
} }
@@ -161,6 +203,8 @@ extension Operations {
extension Operations.Stream: Codable { extension Operations.Stream: Codable {
enum CodingKeys: String, CodingKey { enum CodingKeys: String, CodingKey {
case codec case codec
case displayTitle
case extendedDisplayTitle
case id case id
case index case index
case streamType case streamType
@@ -179,23 +223,32 @@ extension Operations.Stream: Codable {
case colorSpace case colorSpace
case colorTrc case colorTrc
case `default` = "default" case `default` = "default"
case displayTitle 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 embeddedInVideo case embeddedInVideo
case extendedDisplayTitle case forced
case frameRate case frameRate
case hasScalingMatrix case hasScalingMatrix
case headerCompression
case hearingImpaired case hearingImpaired
case height case height
case language case language
case languageCode case languageCode
case languageTag case languageTag
case level case level
case original
case profile case profile
case refFrames case refFrames
case samplingRate case samplingRate
case scanType case scanType
case selected case selected
case streamIdentifier
case title case title
case width case width
} }
@@ -203,6 +256,8 @@ extension Operations.Stream: Codable {
public init(from decoder: Decoder) throws { public init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self) let container = try decoder.container(keyedBy: CodingKeys.self)
self.codec = try container.decode(String.self, forKey: .codec) 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.id = try container.decode(Int.self, forKey: .id)
self.index = try container.decode(Int.self, forKey: .index) self.index = try container.decode(Int.self, forKey: .index)
self.streamType = try container.decode(Int.self, forKey: .streamType) self.streamType = try container.decode(Int.self, forKey: .streamType)
@@ -221,23 +276,32 @@ extension Operations.Stream: Codable {
self.colorSpace = try container.decodeIfPresent(String.self, forKey: .colorSpace) self.colorSpace = try container.decodeIfPresent(String.self, forKey: .colorSpace)
self.colorTrc = try container.decodeIfPresent(String.self, forKey: .colorTrc) self.colorTrc = try container.decodeIfPresent(String.self, forKey: .colorTrc)
self.`default` = try container.decodeIfPresent(Bool.self, forKey: .`default`) self.`default` = try container.decodeIfPresent(Bool.self, forKey: .`default`)
self.displayTitle = try container.decodeIfPresent(String.self, forKey: .displayTitle) 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.embeddedInVideo = try container.decodeIfPresent(String.self, forKey: .embeddedInVideo) self.embeddedInVideo = try container.decodeIfPresent(String.self, forKey: .embeddedInVideo)
self.extendedDisplayTitle = try container.decodeIfPresent(String.self, forKey: .extendedDisplayTitle) self.forced = try container.decodeIfPresent(Bool.self, forKey: .forced)
self._frameRate = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .frameRate) ?? DecimalSerialized<Double?>(wrappedValue: nil) self._frameRate = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .frameRate) ?? DecimalSerialized<Double?>(wrappedValue: nil)
self.hasScalingMatrix = try container.decodeIfPresent(Bool.self, forKey: .hasScalingMatrix) self.hasScalingMatrix = try container.decodeIfPresent(Bool.self, forKey: .hasScalingMatrix)
self.headerCompression = try container.decodeIfPresent(Bool.self, forKey: .headerCompression)
self.hearingImpaired = try container.decodeIfPresent(Bool.self, forKey: .hearingImpaired) self.hearingImpaired = try container.decodeIfPresent(Bool.self, forKey: .hearingImpaired)
self.height = try container.decodeIfPresent(Int.self, forKey: .height) self.height = try container.decodeIfPresent(Int.self, forKey: .height)
self.language = try container.decodeIfPresent(String.self, forKey: .language) self.language = try container.decodeIfPresent(String.self, forKey: .language)
self.languageCode = try container.decodeIfPresent(String.self, forKey: .languageCode) self.languageCode = try container.decodeIfPresent(String.self, forKey: .languageCode)
self.languageTag = try container.decodeIfPresent(String.self, forKey: .languageTag) self.languageTag = try container.decodeIfPresent(String.self, forKey: .languageTag)
self.level = try container.decodeIfPresent(Int.self, forKey: .level) 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.profile = try container.decodeIfPresent(String.self, forKey: .profile)
self.refFrames = try container.decodeIfPresent(Int.self, forKey: .refFrames) self.refFrames = try container.decodeIfPresent(Int.self, forKey: .refFrames)
self.samplingRate = try container.decodeIfPresent(Int.self, forKey: .samplingRate) self.samplingRate = try container.decodeIfPresent(Int.self, forKey: .samplingRate)
self.scanType = try container.decodeIfPresent(String.self, forKey: .scanType) self.scanType = try container.decodeIfPresent(String.self, forKey: .scanType)
self.selected = try container.decodeIfPresent(Bool.self, forKey: .selected) self.selected = try container.decodeIfPresent(Bool.self, forKey: .selected)
self.streamIdentifier = try container.decodeIfPresent(String.self, forKey: .streamIdentifier)
self.title = try container.decodeIfPresent(String.self, forKey: .title) self.title = try container.decodeIfPresent(String.self, forKey: .title)
self.width = try container.decodeIfPresent(Int.self, forKey: .width) self.width = try container.decodeIfPresent(Int.self, forKey: .width)
} }
@@ -245,6 +309,8 @@ extension Operations.Stream: Codable {
public func encode(to encoder: Encoder) throws { public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self) var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(self.codec, forKey: .codec) 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.id, forKey: .id)
try container.encode(self.index, forKey: .index) try container.encode(self.index, forKey: .index)
try container.encode(self.streamType, forKey: .streamType) try container.encode(self.streamType, forKey: .streamType)
@@ -263,25 +329,34 @@ extension Operations.Stream: Codable {
try container.encodeIfPresent(self.colorSpace, forKey: .colorSpace) try container.encodeIfPresent(self.colorSpace, forKey: .colorSpace)
try container.encodeIfPresent(self.colorTrc, forKey: .colorTrc) try container.encodeIfPresent(self.colorTrc, forKey: .colorTrc)
try container.encodeIfPresent(self.`default`, forKey: .`default`) try container.encodeIfPresent(self.`default`, forKey: .`default`)
try container.encodeIfPresent(self.displayTitle, forKey: .displayTitle) 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.embeddedInVideo, forKey: .embeddedInVideo) try container.encodeIfPresent(self.embeddedInVideo, forKey: .embeddedInVideo)
try container.encodeIfPresent(self.extendedDisplayTitle, forKey: .extendedDisplayTitle) try container.encodeIfPresent(self.forced, forKey: .forced)
if self.frameRate != nil { if self.frameRate != nil {
try container.encode(self._frameRate, forKey: .frameRate) try container.encode(self._frameRate, forKey: .frameRate)
} }
try container.encodeIfPresent(self.hasScalingMatrix, forKey: .hasScalingMatrix) try container.encodeIfPresent(self.hasScalingMatrix, forKey: .hasScalingMatrix)
try container.encodeIfPresent(self.headerCompression, forKey: .headerCompression)
try container.encodeIfPresent(self.hearingImpaired, forKey: .hearingImpaired) try container.encodeIfPresent(self.hearingImpaired, forKey: .hearingImpaired)
try container.encodeIfPresent(self.height, forKey: .height) try container.encodeIfPresent(self.height, forKey: .height)
try container.encodeIfPresent(self.language, forKey: .language) try container.encodeIfPresent(self.language, forKey: .language)
try container.encodeIfPresent(self.languageCode, forKey: .languageCode) try container.encodeIfPresent(self.languageCode, forKey: .languageCode)
try container.encodeIfPresent(self.languageTag, forKey: .languageTag) try container.encodeIfPresent(self.languageTag, forKey: .languageTag)
try container.encodeIfPresent(self.level, forKey: .level) 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.profile, forKey: .profile)
try container.encodeIfPresent(self.refFrames, forKey: .refFrames) try container.encodeIfPresent(self.refFrames, forKey: .refFrames)
try container.encodeIfPresent(self.samplingRate, forKey: .samplingRate) try container.encodeIfPresent(self.samplingRate, forKey: .samplingRate)
try container.encodeIfPresent(self.scanType, forKey: .scanType) try container.encodeIfPresent(self.scanType, forKey: .scanType)
try container.encodeIfPresent(self.selected, forKey: .selected) try container.encodeIfPresent(self.selected, forKey: .selected)
try container.encodeIfPresent(self.streamIdentifier, forKey: .streamIdentifier)
try container.encodeIfPresent(self.title, forKey: .title) try container.encodeIfPresent(self.title, forKey: .title)
try container.encodeIfPresent(self.width, forKey: .width) try container.encodeIfPresent(self.width, forKey: .width)
} }

View File

@@ -5,19 +5,36 @@ import Foundation
extension Operations { extension Operations {
/// A model object /// A model object
public struct Writer { public struct Writer {
public let tag: String? /// The filter string used to query this writer.
public let filter: String
/// Unique identifier for the writer.
public let id: Int
/// The role of Writer
public let tag: String
/// A unique key associated with the writers tag, used for internal identification.
public let tagKey: String?
/// Creates an object with the specified parameters /// Creates an object with the specified parameters
/// ///
/// - Parameter filter: The filter string used to query this writer.
/// - Parameter id: Unique identifier for the writer.
/// - Parameter tag: The role of Writer
/// - Parameter tagKey: A unique key associated with the writers tag, used for internal identification.
/// ///
public init(tag: String? = nil) { public init(filter: String, id: Int, tag: String, tagKey: String? = nil) {
self.filter = filter
self.id = id
self.tag = tag self.tag = tag
self.tagKey = tagKey
} }
}} }}
extension Operations.Writer: Codable { extension Operations.Writer: Codable {
enum CodingKeys: String, CodingKey { enum CodingKeys: String, CodingKey {
case filter
case id
case tag case tag
case tagKey
} }
} }

View File

@@ -749,7 +749,6 @@ public protocol SearchAPI {
/// - ``getMediaMetaData(request:)`` /// - ``getMediaMetaData(request:)``
/// - ``getMetadataChildren(request:)`` /// - ``getMetadataChildren(request:)``
/// - ``getTopWatchedContent(request:)`` /// - ``getTopWatchedContent(request:)``
/// - ``getOnDeck()``
/// ///
public protocol LibraryAPI { public protocol LibraryAPI {
/// This resource returns hash values for local files /// This resource returns hash values for local files
@@ -956,13 +955,6 @@ public protocol LibraryAPI {
/// - Returns: A ``Operations/GetTopWatchedContentResponse`` object describing the result of the API operation /// - Returns: A ``Operations/GetTopWatchedContentResponse`` object describing the result of the API operation
/// - Throws: An error of type ``PlexswiftError`` /// - Throws: An error of type ``PlexswiftError``
func getTopWatchedContent(request: Operations.GetTopWatchedContentRequest) async throws -> Response<Operations.GetTopWatchedContentResponse> func getTopWatchedContent(request: Operations.GetTopWatchedContentRequest) async throws -> Response<Operations.GetTopWatchedContentResponse>
/// This endpoint will return the on deck content.
///
///
/// - Returns: A ``Operations/GetOnDeckResponse`` object describing the result of the API operation
/// - Throws: An error of type ``PlexswiftError``
func getOnDeck() async throws -> Response<Operations.GetOnDeckResponse>
} }
// MARK: - WatchlistAPI // MARK: - WatchlistAPI

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.10.3 2.428.1 0.0.3 plexswift", forHTTPHeaderField: telemetryHeader.headerName) urlRequest.setValue("speakeasy-sdk/swift 0.10.5 2.428.1 0.0.3 plexswift", forHTTPHeaderField: telemetryHeader.headerName)
addSecurityParameters(to: &urlRequest) addSecurityParameters(to: &urlRequest)

View File

@@ -586,33 +586,6 @@ actions:
- lang: swift - lang: swift
label: image label: image
source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"<YOUR_API_KEY_HERE>\"))\n\nlet response = try await client.media.getThumbImage(\n request: Operations.GetThumbImageRequest(\n height: 396, \n minSize: 1, \n ratingKey: 9518, \n upscale: 1, \n width: 396, \n xPlexToken: \"CV5xoxjTpFKUzBTShsaf\"\n )\n)\n\nswitch response.data {\ncase .bytes(let bytes):\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.media.getThumbImage(\n request: Operations.GetThumbImageRequest(\n height: 396, \n minSize: 1, \n ratingKey: 9518, \n upscale: 1, \n width: 396, \n xPlexToken: \"CV5xoxjTpFKUzBTShsaf\"\n )\n)\n\nswitch response.data {\ncase .bytes(let bytes):\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/onDeck"]["get"]
update:
x-codeSamples:
- lang: swift
label: getOnDeck
source: |-
import Foundation
import Plexswift
let client = Client(security: .accessToken("<YOUR_API_KEY_HERE>"))
let response = try await client.library.getOnDeck()
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/recentlyAdded"]["get"] - target: $["paths"]["/library/recentlyAdded"]["get"]
update: update:
x-codeSamples: x-codeSamples: