mirror of
https://github.com/LukeHagar/plexswift.git
synced 2025-12-06 04:20:52 +00:00
ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.295.1
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
lockVersion: 2.0.0
|
||||
id: 5d77204e-e413-4fd0-a14a-bad3aee2247a
|
||||
management:
|
||||
docChecksum: 543cb95355401d2e3c2ba11a50d9dd94
|
||||
docChecksum: 911d74baa0d06121d2ce2c71d94e977a
|
||||
docVersion: 0.0.3
|
||||
speakeasyVersion: 1.285.0
|
||||
generationVersion: 2.326.3
|
||||
releaseVersion: 0.2.0
|
||||
configChecksum: 8e59cbc89b7aa4f53dedf1cd0d7d10a9
|
||||
speakeasyVersion: 1.295.1
|
||||
generationVersion: 2.335.5
|
||||
releaseVersion: 0.3.0
|
||||
configChecksum: ff83ff18de944ae2a94ad7cd0e953eeb
|
||||
repoURL: https://github.com/LukeHagar/plexswift.git
|
||||
features:
|
||||
swift:
|
||||
@@ -16,7 +16,6 @@ features:
|
||||
globals: 2.81.3
|
||||
methodServerURLs: 3.0.1
|
||||
nameOverrides: 2.81.2
|
||||
unions: 2.81.4
|
||||
generatedFiles:
|
||||
- Sources/Plexswift/internal/api/_ServerAPI.swift
|
||||
- Sources/Plexswift/internal/api/_MediaAPI.swift
|
||||
@@ -176,6 +175,21 @@ generatedFiles:
|
||||
- Sources/Plexswift/models/operations/GetLibraryHubsResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryHubsRole.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryHubsWriter.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryItemsCountry.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryItemsDirector.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryItemsErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryItemsGenre.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryItemsLibraryResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryItemsMedia.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryItemsMediaContainer.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryItemsMetadata.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryItemsPart.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryItemsRequest.swift
|
||||
- Sources/Plexswift/internal/models/GetLibraryItemsRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryItemsResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryItemsResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryItemsRole.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryItemsWriter.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryLibraryResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryMediaContainer.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryRequest.swift
|
||||
@@ -430,6 +444,8 @@ generatedFiles:
|
||||
- Sources/Plexswift/models/operations/Role.swift
|
||||
- Sources/Plexswift/models/operations/Scope.swift
|
||||
- Sources/Plexswift/internal/models/Scope+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/SearchLibraryErrors.swift
|
||||
- Sources/Plexswift/models/operations/SearchLibraryLibraryResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/SearchLibraryMediaContainer.swift
|
||||
- Sources/Plexswift/models/operations/SearchLibraryMetadata.swift
|
||||
- Sources/Plexswift/models/operations/SearchLibraryRequest.swift
|
||||
@@ -474,6 +490,8 @@ generatedFiles:
|
||||
- Sources/Plexswift/models/operations/StopTranscodeSessionResponse.swift
|
||||
- Sources/Plexswift/models/operations/StopTranscodeSessionResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/Stream.swift
|
||||
- Sources/Plexswift/models/operations/Tag.swift
|
||||
- Sources/Plexswift/internal/models/Tag+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/TaskName.swift
|
||||
- Sources/Plexswift/internal/models/TaskName+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/Tonight.swift
|
||||
|
||||
@@ -12,7 +12,7 @@ generation:
|
||||
auth:
|
||||
oAuth2ClientCredentialsEnabled: true
|
||||
swift:
|
||||
version: 0.2.0
|
||||
version: 0.3.0
|
||||
author: LukeHagar
|
||||
description: Swift Client SDK Generated by Speakeasy
|
||||
imports:
|
||||
|
||||
@@ -2,8 +2,8 @@ speakeasyVersion: 1.285.1
|
||||
sources:
|
||||
my-source:
|
||||
sourceNamespace: my-source
|
||||
sourceRevisionDigest: sha256:e57617d6790e0c330a0f2ef55e81649186eadee60f384fed42d595467de07223
|
||||
sourceBlobDigest: sha256:f777b439dbc2105056327d987ec43579164f73d7c9b5be957b87b728df3e0cc6
|
||||
sourceRevisionDigest: sha256:a0cdc9c76197fd535824e7065b0f253e299c9ca5a722edced811eb3cdc5f0b95
|
||||
sourceBlobDigest: sha256:55331272dbf4a3cc2212f7db12f93574f3d6633a5fb8bd07f5c3dc05630426fc
|
||||
tags:
|
||||
- latest
|
||||
- main
|
||||
@@ -11,8 +11,8 @@ targets:
|
||||
plexswift:
|
||||
source: my-source
|
||||
sourceNamespace: my-source
|
||||
sourceRevisionDigest: sha256:e57617d6790e0c330a0f2ef55e81649186eadee60f384fed42d595467de07223
|
||||
sourceBlobDigest: sha256:f777b439dbc2105056327d987ec43579164f73d7c9b5be957b87b728df3e0cc6
|
||||
sourceRevisionDigest: sha256:a0cdc9c76197fd535824e7065b0f253e299c9ca5a722edced811eb3cdc5f0b95
|
||||
sourceBlobDigest: sha256:55331272dbf4a3cc2212f7db12f93574f3d6633a5fb8bd07f5c3dc05630426fc
|
||||
outLocation: /github/workspace/repo
|
||||
workflow:
|
||||
workflowVersion: 1.0.0
|
||||
|
||||
@@ -22,7 +22,7 @@ You can add `plexswift` to your project directly in Xcode `(File > Add Packages.
|
||||
|
||||
```bash
|
||||
dependencies: [
|
||||
.package(url: "https://github.com/LukeHagar/plexswift.git", .upToNextMajor(from: "0.2.0"))
|
||||
.package(url: "https://github.com/LukeHagar/plexswift.git", .upToNextMajor(from: "0.3.0"))
|
||||
]
|
||||
```
|
||||
<!-- End SDK Installation [installation] -->
|
||||
|
||||
10
RELEASES.md
10
RELEASES.md
@@ -233,3 +233,13 @@ Based on:
|
||||
- [swift v0.2.0] .
|
||||
### Releases
|
||||
- [Swift Package Manager v0.2.0] https://github.com/LukeHagar/plexswift/releases/tag/v0.2.0 - .
|
||||
|
||||
## 2024-05-23 15:57:01
|
||||
### Changes
|
||||
Based on:
|
||||
- OpenAPI Doc
|
||||
- Speakeasy CLI 1.295.1 (2.335.5) https://github.com/speakeasy-api/speakeasy
|
||||
### Generated
|
||||
- [swift v0.3.0] .
|
||||
### Releases
|
||||
- [Swift Package Manager v0.3.0] https://github.com/LukeHagar/plexswift/releases/tag/v0.3.0 - .
|
||||
@@ -93,6 +93,7 @@ case .empty:
|
||||
- ``Operations/GetLibrariesResponse``
|
||||
- ``Operations/GetLibraryResponse``
|
||||
- ``Operations/GetLibraryHubsResponse``
|
||||
- ``Operations/GetLibraryItemsResponse``
|
||||
- ``Operations/GetMetadataResponse``
|
||||
- ``Operations/GetMetadataChildrenResponse``
|
||||
- ``Operations/GetMyPlexAccountResponse``
|
||||
@@ -232,6 +233,19 @@ case .empty:
|
||||
- ``Operations/GetLibraryHubsResponseBody``
|
||||
- ``Operations/GetLibraryHubsRole``
|
||||
- ``Operations/GetLibraryHubsWriter``
|
||||
- ``Operations/GetLibraryItemsCountry``
|
||||
- ``Operations/GetLibraryItemsDirector``
|
||||
- ``Operations/GetLibraryItemsErrors``
|
||||
- ``Operations/GetLibraryItemsGenre``
|
||||
- ``Operations/GetLibraryItemsLibraryResponseBody``
|
||||
- ``Operations/GetLibraryItemsMedia``
|
||||
- ``Operations/GetLibraryItemsMediaContainer``
|
||||
- ``Operations/GetLibraryItemsMetadata``
|
||||
- ``Operations/GetLibraryItemsPart``
|
||||
- ``Operations/GetLibraryItemsRequest``
|
||||
- ``Operations/GetLibraryItemsResponseBody``
|
||||
- ``Operations/GetLibraryItemsRole``
|
||||
- ``Operations/GetLibraryItemsWriter``
|
||||
- ``Operations/GetMetadataCountry``
|
||||
- ``Operations/GetMetadataDirector``
|
||||
- ``Operations/GetMetadataErrors``
|
||||
@@ -417,6 +431,8 @@ case .empty:
|
||||
- ``Operations/Release``
|
||||
- ``Operations/Role``
|
||||
- ``Operations/Scope``
|
||||
- ``Operations/SearchLibraryErrors``
|
||||
- ``Operations/SearchLibraryLibraryResponseBody``
|
||||
- ``Operations/SearchLibraryMediaContainer``
|
||||
- ``Operations/SearchLibraryMetadata``
|
||||
- ``Operations/SearchLibraryRequest``
|
||||
@@ -446,6 +462,7 @@ case .empty:
|
||||
- ``Operations/StopTranscodeSessionRequest``
|
||||
- ``Operations/StopTranscodeSessionResponseBody``
|
||||
- ``Operations/Stream``
|
||||
- ``Operations/Tag``
|
||||
- ``Operations/TaskName``
|
||||
- ``Operations/Tonight``
|
||||
- ``Operations/TranscodeSession``
|
||||
|
||||
@@ -55,6 +55,15 @@ class _LibraryAPI: LibraryAPI {
|
||||
)
|
||||
}
|
||||
|
||||
public func getLibraryItems(request: Operations.GetLibraryItemsRequest) async throws -> Response<Operations.GetLibraryItemsResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetLibraryItemsRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleGetLibraryItemsResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func refreshLibrary(request: Operations.RefreshLibraryRequest) async throws -> Response<Operations.RefreshLibraryResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
@@ -138,6 +147,13 @@ private func configureDeleteLibraryRequest(with configuration: URLRequestConfigu
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureGetLibraryItemsRequest(with configuration: URLRequestConfiguration, request: Operations.GetLibraryItemsRequest) throws {
|
||||
configuration.path = "/library/sections/{sectionId}/{tag}"
|
||||
configuration.method = .get
|
||||
configuration.pathParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureRefreshLibraryRequest(with configuration: URLRequestConfiguration, request: Operations.RefreshLibraryRequest) throws {
|
||||
configuration.path = "/library/sections/{sectionId}/refresh"
|
||||
configuration.method = .get
|
||||
@@ -289,6 +305,32 @@ private func handleDeleteLibraryResponse(response: Client.APIResponse) throws ->
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleGetLibraryItemsResponse(response: Client.APIResponse) throws -> Operations.GetLibraryItemsResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if httpResponse.statusCode == 200 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .twoHundredApplicationJsonObject(try JSONDecoder().decode(Operations.GetLibraryItemsResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
} else if httpResponse.statusCode == 400 {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .fourHundredAndOneApplicationJsonObject(try JSONDecoder().decode(Operations.GetLibraryItemsLibraryResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleRefreshLibraryResponse(response: Client.APIResponse) throws -> Operations.RefreshLibraryResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
@@ -313,7 +355,17 @@ private func handleSearchLibraryResponse(response: Client.APIResponse) throws ->
|
||||
if httpResponse.statusCode == 200 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .object(try JSONDecoder().decode(Operations.SearchLibraryResponseBody.self, from: data))
|
||||
return .twoHundredApplicationJsonObject(try JSONDecoder().decode(Operations.SearchLibraryResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
} else if httpResponse.statusCode == 400 {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .fourHundredAndOneApplicationJsonObject(try JSONDecoder().decode(Operations.SearchLibraryLibraryResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.GetLibraryItemsRequest: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
switch format {
|
||||
case .path:
|
||||
return try serializePathParameterSerializable(self, with: format)
|
||||
case .query, .header, .multipart, .form:
|
||||
throw SerializationError.invalidSerializationParameter(type: "Operations.GetLibraryItemsRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetLibraryItemsRequest: PathParameterSerializable {
|
||||
func serializedPathParameters(formatOverride: SerializableFormat?) throws -> [String: String] {
|
||||
return [
|
||||
"sectionId": try sectionId.serialize(with: formatOverride ?? .path(explode: false)),
|
||||
"tag": try tag.serialize(with: formatOverride ?? .path(explode: false)),
|
||||
].compactMapValues { $0 }
|
||||
}
|
||||
}
|
||||
14
Sources/Plexswift/internal/models/Tag+Serialization.swift
Normal file
14
Sources/Plexswift/internal/models/Tag+Serialization.swift
Normal file
@@ -0,0 +1,14 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.Tag: 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))]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// A model object
|
||||
public struct GetLibraryItemsCountry {
|
||||
public let tag: String?
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
///
|
||||
public init(tag: String? = nil) {
|
||||
self.tag = tag
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetLibraryItemsCountry: Codable {
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case tag
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// A model object
|
||||
public struct GetLibraryItemsDirector {
|
||||
public let tag: String?
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
///
|
||||
public init(tag: String? = nil) {
|
||||
self.tag = tag
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetLibraryItemsDirector: Codable {
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case tag
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// A model object
|
||||
public struct GetLibraryItemsErrors {
|
||||
@DecimalSerialized
|
||||
public private(set) var code: Double?
|
||||
public let message: String?
|
||||
@DecimalSerialized
|
||||
public private(set) var status: Double?
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
///
|
||||
public init(code: Double? = nil, message: String? = nil, status: Double? = nil) {
|
||||
self._code = DecimalSerialized<Double?>(wrappedValue: code)
|
||||
self.message = message
|
||||
self._status = DecimalSerialized<Double?>(wrappedValue: status)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetLibraryItemsErrors: Codable {
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case code
|
||||
case message
|
||||
case status
|
||||
}
|
||||
|
||||
public init(from decoder: Decoder) throws {
|
||||
let container = try decoder.container(keyedBy: CodingKeys.self)
|
||||
self._code = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .code) ?? DecimalSerialized<Double?>(wrappedValue: nil)
|
||||
self.message = try container.decodeIfPresent(String.self, forKey: .message)
|
||||
self._status = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .status) ?? DecimalSerialized<Double?>(wrappedValue: nil)
|
||||
}
|
||||
|
||||
public func encode(to encoder: Encoder) throws {
|
||||
var container = encoder.container(keyedBy: CodingKeys.self)
|
||||
if self.code != nil {
|
||||
try container.encode(self._code, forKey: .code)
|
||||
}
|
||||
try container.encodeIfPresent(self.message, forKey: .message)
|
||||
if self.status != nil {
|
||||
try container.encode(self._status, forKey: .status)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetLibraryItemsErrors {
|
||||
var codeWrapper: DecimalSerialized<Double?> {
|
||||
return _code
|
||||
}
|
||||
var statusWrapper: DecimalSerialized<Double?> {
|
||||
return _status
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// A model object
|
||||
public struct GetLibraryItemsGenre {
|
||||
public let tag: String?
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
///
|
||||
public init(tag: String? = nil) {
|
||||
self.tag = tag
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetLibraryItemsGenre: Codable {
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case tag
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
public struct GetLibraryItemsLibraryResponseBody {
|
||||
public let errors: [Operations.GetLibraryItemsErrors]?
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
///
|
||||
public init(errors: [Operations.GetLibraryItemsErrors]? = nil) {
|
||||
self.errors = errors
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetLibraryItemsLibraryResponseBody: Codable {
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case errors
|
||||
}
|
||||
}
|
||||
|
||||
107
Sources/Plexswift/models/operations/GetLibraryItemsMedia.swift
Normal file
107
Sources/Plexswift/models/operations/GetLibraryItemsMedia.swift
Normal file
@@ -0,0 +1,107 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// A model object
|
||||
public struct GetLibraryItemsMedia {
|
||||
@DecimalSerialized
|
||||
public private(set) var aspectRatio: Double?
|
||||
public let audioChannels: Int?
|
||||
public let audioCodec: String?
|
||||
public let bitrate: Int?
|
||||
public let container: String?
|
||||
public let duration: Int?
|
||||
public let height: Int?
|
||||
public let id: Int?
|
||||
public let part: [Operations.GetLibraryItemsPart]?
|
||||
public let videoCodec: String?
|
||||
public let videoFrameRate: String?
|
||||
public let videoProfile: String?
|
||||
public let videoResolution: String?
|
||||
public let width: Int?
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
///
|
||||
public init(aspectRatio: Double? = nil, audioChannels: Int? = nil, audioCodec: String? = nil, bitrate: Int? = nil, container: String? = nil, duration: Int? = nil, height: Int? = nil, id: Int? = nil, part: [Operations.GetLibraryItemsPart]? = nil, videoCodec: String? = nil, videoFrameRate: String? = nil, videoProfile: String? = nil, videoResolution: String? = nil, width: Int? = nil) {
|
||||
self._aspectRatio = DecimalSerialized<Double?>(wrappedValue: aspectRatio)
|
||||
self.audioChannels = audioChannels
|
||||
self.audioCodec = audioCodec
|
||||
self.bitrate = bitrate
|
||||
self.container = container
|
||||
self.duration = duration
|
||||
self.height = height
|
||||
self.id = id
|
||||
self.part = part
|
||||
self.videoCodec = videoCodec
|
||||
self.videoFrameRate = videoFrameRate
|
||||
self.videoProfile = videoProfile
|
||||
self.videoResolution = videoResolution
|
||||
self.width = width
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetLibraryItemsMedia: Codable {
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case aspectRatio
|
||||
case audioChannels
|
||||
case audioCodec
|
||||
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(Int.self, forKey: .audioChannels)
|
||||
self.audioCodec = try container.decodeIfPresent(String.self, forKey: .audioCodec)
|
||||
self.bitrate = try container.decodeIfPresent(Int.self, forKey: .bitrate)
|
||||
self.container = try container.decodeIfPresent(String.self, forKey: .container)
|
||||
self.duration = try container.decodeIfPresent(Int.self, forKey: .duration)
|
||||
self.height = try container.decodeIfPresent(Int.self, forKey: .height)
|
||||
self.id = try container.decodeIfPresent(Int.self, forKey: .id)
|
||||
self.part = try container.decodeIfPresent([Operations.GetLibraryItemsPart].self, forKey: .part)
|
||||
self.videoCodec = try container.decodeIfPresent(String.self, forKey: .videoCodec)
|
||||
self.videoFrameRate = try container.decodeIfPresent(String.self, forKey: .videoFrameRate)
|
||||
self.videoProfile = try container.decodeIfPresent(String.self, forKey: .videoProfile)
|
||||
self.videoResolution = try container.decodeIfPresent(String.self, forKey: .videoResolution)
|
||||
self.width = try container.decodeIfPresent(Int.self, forKey: .width)
|
||||
}
|
||||
|
||||
public func encode(to encoder: Encoder) throws {
|
||||
var container = encoder.container(keyedBy: CodingKeys.self)
|
||||
if self.aspectRatio != nil {
|
||||
try container.encode(self._aspectRatio, forKey: .aspectRatio)
|
||||
}
|
||||
try container.encodeIfPresent(self.audioChannels, forKey: .audioChannels)
|
||||
try container.encodeIfPresent(self.audioCodec, forKey: .audioCodec)
|
||||
try container.encodeIfPresent(self.bitrate, forKey: .bitrate)
|
||||
try container.encodeIfPresent(self.container, forKey: .container)
|
||||
try container.encodeIfPresent(self.duration, forKey: .duration)
|
||||
try container.encodeIfPresent(self.height, forKey: .height)
|
||||
try container.encodeIfPresent(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)
|
||||
try container.encodeIfPresent(self.width, forKey: .width)
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetLibraryItemsMedia {
|
||||
var aspectRatioWrapper: DecimalSerialized<Double?> {
|
||||
return _aspectRatio
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// A model object
|
||||
public struct GetLibraryItemsMediaContainer {
|
||||
public let allowSync: Bool?
|
||||
public let art: String?
|
||||
public let identifier: String?
|
||||
public let librarySectionID: Int?
|
||||
public let librarySectionTitle: String?
|
||||
public let librarySectionUUID: String?
|
||||
public let mediaTagPrefix: String?
|
||||
public let mediaTagVersion: Int?
|
||||
public let metadata: [Operations.GetLibraryItemsMetadata]?
|
||||
public let mixedParents: Bool?
|
||||
public let size: Int?
|
||||
public let thumb: String?
|
||||
public let title1: String?
|
||||
public let title2: String?
|
||||
public let viewGroup: String?
|
||||
public let viewMode: Int?
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
///
|
||||
public init(allowSync: Bool? = nil, art: String? = nil, identifier: String? = nil, librarySectionID: Int? = nil, librarySectionTitle: String? = nil, librarySectionUUID: String? = nil, mediaTagPrefix: String? = nil, mediaTagVersion: Int? = nil, metadata: [Operations.GetLibraryItemsMetadata]? = nil, mixedParents: Bool? = nil, size: Int? = nil, thumb: String? = nil, title1: String? = nil, title2: String? = nil, viewGroup: String? = nil, viewMode: Int? = nil) {
|
||||
self.allowSync = allowSync
|
||||
self.art = art
|
||||
self.identifier = identifier
|
||||
self.librarySectionID = librarySectionID
|
||||
self.librarySectionTitle = librarySectionTitle
|
||||
self.librarySectionUUID = librarySectionUUID
|
||||
self.mediaTagPrefix = mediaTagPrefix
|
||||
self.mediaTagVersion = mediaTagVersion
|
||||
self.metadata = metadata
|
||||
self.mixedParents = mixedParents
|
||||
self.size = size
|
||||
self.thumb = thumb
|
||||
self.title1 = title1
|
||||
self.title2 = title2
|
||||
self.viewGroup = viewGroup
|
||||
self.viewMode = viewMode
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetLibraryItemsMediaContainer: Codable {
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case allowSync
|
||||
case art
|
||||
case identifier
|
||||
case librarySectionID
|
||||
case librarySectionTitle
|
||||
case librarySectionUUID
|
||||
case mediaTagPrefix
|
||||
case mediaTagVersion
|
||||
case metadata = "Metadata"
|
||||
case mixedParents
|
||||
case size
|
||||
case thumb
|
||||
case title1
|
||||
case title2
|
||||
case viewGroup
|
||||
case viewMode
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,334 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// A model object
|
||||
public struct GetLibraryItemsMetadata {
|
||||
public let addedAt: Int?
|
||||
public let art: String?
|
||||
@DecimalSerialized
|
||||
public private(set) var audienceRating: Double?
|
||||
public let audienceRatingImage: String?
|
||||
public let chapterSource: String?
|
||||
public let childCount: Int?
|
||||
public let contentRating: String?
|
||||
public let country: [Operations.GetLibraryItemsCountry]?
|
||||
public let director: [Operations.GetLibraryItemsDirector]?
|
||||
public let duration: Int?
|
||||
public let genre: [Operations.GetLibraryItemsGenre]?
|
||||
public let grandparentArt: String?
|
||||
public let grandparentGuid: String?
|
||||
public let grandparentKey: String?
|
||||
public let grandparentRatingKey: String?
|
||||
public let grandparentTheme: String?
|
||||
public let grandparentThumb: String?
|
||||
public let grandparentTitle: String?
|
||||
public let guid: String?
|
||||
public let hasPremiumExtras: String?
|
||||
public let hasPremiumPrimaryExtra: String?
|
||||
public let index: Int?
|
||||
public let key: String?
|
||||
public let lastViewedAt: Int?
|
||||
public let leafCount: Int?
|
||||
public let media: [Operations.GetLibraryItemsMedia]?
|
||||
@DateOnly
|
||||
public private(set) var originallyAvailableAt: Date?
|
||||
public let originalTitle: String?
|
||||
public let parentGuid: String?
|
||||
public let parentIndex: Int?
|
||||
public let parentKey: String?
|
||||
public let parentRatingKey: String?
|
||||
public let parentStudio: String?
|
||||
public let parentTheme: String?
|
||||
public let parentThumb: String?
|
||||
public let parentTitle: String?
|
||||
public let parentYear: Int?
|
||||
public let primaryExtraKey: String?
|
||||
@DecimalSerialized
|
||||
public private(set) var rating: Double?
|
||||
public let ratingImage: String?
|
||||
public let ratingKey: String?
|
||||
public let role: [Operations.GetLibraryItemsRole]?
|
||||
public let skipCount: Int?
|
||||
public let studio: String?
|
||||
public let summary: String?
|
||||
public let tagline: String?
|
||||
public let theme: String?
|
||||
public let thumb: String?
|
||||
public let title: String?
|
||||
public let titleSort: String?
|
||||
public let type: String?
|
||||
public let updatedAt: Int?
|
||||
public let viewCount: Int?
|
||||
public let viewedLeafCount: Int?
|
||||
public let viewOffset: Int?
|
||||
public let writer: [Operations.GetLibraryItemsWriter]?
|
||||
public let year: Int?
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
///
|
||||
public init(addedAt: Int? = nil, art: String? = nil, audienceRating: Double? = nil, audienceRatingImage: String? = nil, chapterSource: String? = nil, childCount: Int? = nil, contentRating: String? = nil, country: [Operations.GetLibraryItemsCountry]? = nil, director: [Operations.GetLibraryItemsDirector]? = nil, duration: Int? = nil, genre: [Operations.GetLibraryItemsGenre]? = nil, grandparentArt: String? = nil, grandparentGuid: String? = nil, grandparentKey: String? = nil, grandparentRatingKey: String? = nil, grandparentTheme: String? = nil, grandparentThumb: String? = nil, grandparentTitle: String? = nil, guid: String? = nil, hasPremiumExtras: String? = nil, hasPremiumPrimaryExtra: String? = nil, index: Int? = nil, key: String? = nil, lastViewedAt: Int? = nil, leafCount: Int? = nil, media: [Operations.GetLibraryItemsMedia]? = nil, originallyAvailableAt: Date? = nil, originalTitle: String? = nil, parentGuid: String? = nil, parentIndex: Int? = nil, parentKey: String? = nil, parentRatingKey: 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, ratingKey: String? = nil, role: [Operations.GetLibraryItemsRole]? = nil, skipCount: Int? = nil, studio: String? = nil, summary: String? = nil, tagline: String? = nil, theme: String? = nil, thumb: String? = nil, title: String? = nil, titleSort: String? = nil, type: String? = nil, updatedAt: Int? = nil, viewCount: Int? = nil, viewedLeafCount: Int? = nil, viewOffset: Int? = nil, writer: [Operations.GetLibraryItemsWriter]? = nil, year: Int? = nil) {
|
||||
self.addedAt = addedAt
|
||||
self.art = art
|
||||
self._audienceRating = DecimalSerialized<Double?>(wrappedValue: audienceRating)
|
||||
self.audienceRatingImage = audienceRatingImage
|
||||
self.chapterSource = chapterSource
|
||||
self.childCount = childCount
|
||||
self.contentRating = contentRating
|
||||
self.country = country
|
||||
self.director = director
|
||||
self.duration = duration
|
||||
self.genre = genre
|
||||
self.grandparentArt = grandparentArt
|
||||
self.grandparentGuid = grandparentGuid
|
||||
self.grandparentKey = grandparentKey
|
||||
self.grandparentRatingKey = grandparentRatingKey
|
||||
self.grandparentTheme = grandparentTheme
|
||||
self.grandparentThumb = grandparentThumb
|
||||
self.grandparentTitle = grandparentTitle
|
||||
self.guid = guid
|
||||
self.hasPremiumExtras = hasPremiumExtras
|
||||
self.hasPremiumPrimaryExtra = hasPremiumPrimaryExtra
|
||||
self.index = index
|
||||
self.key = key
|
||||
self.lastViewedAt = lastViewedAt
|
||||
self.leafCount = leafCount
|
||||
self.media = media
|
||||
self._originallyAvailableAt = DateOnly<Date?>(wrappedValue: originallyAvailableAt)
|
||||
self.originalTitle = originalTitle
|
||||
self.parentGuid = parentGuid
|
||||
self.parentIndex = parentIndex
|
||||
self.parentKey = parentKey
|
||||
self.parentRatingKey = parentRatingKey
|
||||
self.parentStudio = parentStudio
|
||||
self.parentTheme = parentTheme
|
||||
self.parentThumb = parentThumb
|
||||
self.parentTitle = parentTitle
|
||||
self.parentYear = parentYear
|
||||
self.primaryExtraKey = primaryExtraKey
|
||||
self._rating = DecimalSerialized<Double?>(wrappedValue: rating)
|
||||
self.ratingImage = ratingImage
|
||||
self.ratingKey = ratingKey
|
||||
self.role = role
|
||||
self.skipCount = skipCount
|
||||
self.studio = studio
|
||||
self.summary = summary
|
||||
self.tagline = tagline
|
||||
self.theme = theme
|
||||
self.thumb = thumb
|
||||
self.title = title
|
||||
self.titleSort = titleSort
|
||||
self.type = type
|
||||
self.updatedAt = updatedAt
|
||||
self.viewCount = viewCount
|
||||
self.viewedLeafCount = viewedLeafCount
|
||||
self.viewOffset = viewOffset
|
||||
self.writer = writer
|
||||
self.year = year
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetLibraryItemsMetadata: Codable {
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case addedAt
|
||||
case art
|
||||
case audienceRating
|
||||
case audienceRatingImage
|
||||
case chapterSource
|
||||
case childCount
|
||||
case contentRating
|
||||
case country = "Country"
|
||||
case director = "Director"
|
||||
case duration
|
||||
case genre = "Genre"
|
||||
case grandparentArt
|
||||
case grandparentGuid
|
||||
case grandparentKey
|
||||
case grandparentRatingKey
|
||||
case grandparentTheme
|
||||
case grandparentThumb
|
||||
case grandparentTitle
|
||||
case guid
|
||||
case hasPremiumExtras
|
||||
case hasPremiumPrimaryExtra
|
||||
case index
|
||||
case key
|
||||
case lastViewedAt
|
||||
case leafCount
|
||||
case media = "Media"
|
||||
case originallyAvailableAt
|
||||
case originalTitle
|
||||
case parentGuid
|
||||
case parentIndex
|
||||
case parentKey
|
||||
case parentRatingKey
|
||||
case parentStudio
|
||||
case parentTheme
|
||||
case parentThumb
|
||||
case parentTitle
|
||||
case parentYear
|
||||
case primaryExtraKey
|
||||
case rating
|
||||
case ratingImage
|
||||
case ratingKey
|
||||
case role = "Role"
|
||||
case skipCount
|
||||
case studio
|
||||
case summary
|
||||
case tagline
|
||||
case theme
|
||||
case thumb
|
||||
case title
|
||||
case titleSort
|
||||
case type
|
||||
case updatedAt
|
||||
case viewCount
|
||||
case viewedLeafCount
|
||||
case viewOffset
|
||||
case writer = "Writer"
|
||||
case year
|
||||
}
|
||||
|
||||
public init(from decoder: Decoder) throws {
|
||||
let container = try decoder.container(keyedBy: CodingKeys.self)
|
||||
self.addedAt = try container.decodeIfPresent(Int.self, forKey: .addedAt)
|
||||
self.art = try container.decodeIfPresent(String.self, forKey: .art)
|
||||
self._audienceRating = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .audienceRating) ?? DecimalSerialized<Double?>(wrappedValue: nil)
|
||||
self.audienceRatingImage = try container.decodeIfPresent(String.self, forKey: .audienceRatingImage)
|
||||
self.chapterSource = try container.decodeIfPresent(String.self, forKey: .chapterSource)
|
||||
self.childCount = try container.decodeIfPresent(Int.self, forKey: .childCount)
|
||||
self.contentRating = try container.decodeIfPresent(String.self, forKey: .contentRating)
|
||||
self.country = try container.decodeIfPresent([Operations.GetLibraryItemsCountry].self, forKey: .country)
|
||||
self.director = try container.decodeIfPresent([Operations.GetLibraryItemsDirector].self, forKey: .director)
|
||||
self.duration = try container.decodeIfPresent(Int.self, forKey: .duration)
|
||||
self.genre = try container.decodeIfPresent([Operations.GetLibraryItemsGenre].self, forKey: .genre)
|
||||
self.grandparentArt = try container.decodeIfPresent(String.self, forKey: .grandparentArt)
|
||||
self.grandparentGuid = try container.decodeIfPresent(String.self, forKey: .grandparentGuid)
|
||||
self.grandparentKey = try container.decodeIfPresent(String.self, forKey: .grandparentKey)
|
||||
self.grandparentRatingKey = try container.decodeIfPresent(String.self, forKey: .grandparentRatingKey)
|
||||
self.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.hasPremiumExtras = try container.decodeIfPresent(String.self, forKey: .hasPremiumExtras)
|
||||
self.hasPremiumPrimaryExtra = try container.decodeIfPresent(String.self, forKey: .hasPremiumPrimaryExtra)
|
||||
self.index = try container.decodeIfPresent(Int.self, forKey: .index)
|
||||
self.key = try container.decodeIfPresent(String.self, forKey: .key)
|
||||
self.lastViewedAt = try container.decodeIfPresent(Int.self, forKey: .lastViewedAt)
|
||||
self.leafCount = try container.decodeIfPresent(Int.self, forKey: .leafCount)
|
||||
self.media = try container.decodeIfPresent([Operations.GetLibraryItemsMedia].self, forKey: .media)
|
||||
self._originallyAvailableAt = try container.decodeIfPresent(DateOnly<Date?>.self, forKey: .originallyAvailableAt) ?? DateOnly<Date?>(wrappedValue: nil)
|
||||
self.originalTitle = try container.decodeIfPresent(String.self, forKey: .originalTitle)
|
||||
self.parentGuid = try container.decodeIfPresent(String.self, forKey: .parentGuid)
|
||||
self.parentIndex = try container.decodeIfPresent(Int.self, forKey: .parentIndex)
|
||||
self.parentKey = try container.decodeIfPresent(String.self, forKey: .parentKey)
|
||||
self.parentRatingKey = try container.decodeIfPresent(String.self, forKey: .parentRatingKey)
|
||||
self.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.parentTitle = try container.decodeIfPresent(String.self, forKey: .parentTitle)
|
||||
self.parentYear = try container.decodeIfPresent(Int.self, forKey: .parentYear)
|
||||
self.primaryExtraKey = try container.decodeIfPresent(String.self, forKey: .primaryExtraKey)
|
||||
self._rating = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .rating) ?? DecimalSerialized<Double?>(wrappedValue: nil)
|
||||
self.ratingImage = try container.decodeIfPresent(String.self, forKey: .ratingImage)
|
||||
self.ratingKey = try container.decodeIfPresent(String.self, forKey: .ratingKey)
|
||||
self.role = try container.decodeIfPresent([Operations.GetLibraryItemsRole].self, forKey: .role)
|
||||
self.skipCount = try container.decodeIfPresent(Int.self, forKey: .skipCount)
|
||||
self.studio = try container.decodeIfPresent(String.self, forKey: .studio)
|
||||
self.summary = try container.decodeIfPresent(String.self, forKey: .summary)
|
||||
self.tagline = try container.decodeIfPresent(String.self, forKey: .tagline)
|
||||
self.theme = try container.decodeIfPresent(String.self, forKey: .theme)
|
||||
self.thumb = try container.decodeIfPresent(String.self, forKey: .thumb)
|
||||
self.title = try container.decodeIfPresent(String.self, forKey: .title)
|
||||
self.titleSort = try container.decodeIfPresent(String.self, forKey: .titleSort)
|
||||
self.type = try container.decodeIfPresent(String.self, forKey: .type)
|
||||
self.updatedAt = try container.decodeIfPresent(Int.self, forKey: .updatedAt)
|
||||
self.viewCount = try container.decodeIfPresent(Int.self, forKey: .viewCount)
|
||||
self.viewedLeafCount = try container.decodeIfPresent(Int.self, forKey: .viewedLeafCount)
|
||||
self.viewOffset = try container.decodeIfPresent(Int.self, forKey: .viewOffset)
|
||||
self.writer = try container.decodeIfPresent([Operations.GetLibraryItemsWriter].self, forKey: .writer)
|
||||
self.year = try container.decodeIfPresent(Int.self, forKey: .year)
|
||||
}
|
||||
|
||||
public func encode(to encoder: Encoder) throws {
|
||||
var container = encoder.container(keyedBy: CodingKeys.self)
|
||||
try container.encodeIfPresent(self.addedAt, forKey: .addedAt)
|
||||
try container.encodeIfPresent(self.art, forKey: .art)
|
||||
if self.audienceRating != nil {
|
||||
try container.encode(self._audienceRating, forKey: .audienceRating)
|
||||
}
|
||||
try container.encodeIfPresent(self.audienceRatingImage, forKey: .audienceRatingImage)
|
||||
try container.encodeIfPresent(self.chapterSource, forKey: .chapterSource)
|
||||
try container.encodeIfPresent(self.childCount, forKey: .childCount)
|
||||
try container.encodeIfPresent(self.contentRating, forKey: .contentRating)
|
||||
try container.encodeIfPresent(self.country, forKey: .country)
|
||||
try container.encodeIfPresent(self.director, forKey: .director)
|
||||
try container.encodeIfPresent(self.duration, forKey: .duration)
|
||||
try container.encodeIfPresent(self.genre, forKey: .genre)
|
||||
try container.encodeIfPresent(self.grandparentArt, forKey: .grandparentArt)
|
||||
try container.encodeIfPresent(self.grandparentGuid, forKey: .grandparentGuid)
|
||||
try container.encodeIfPresent(self.grandparentKey, forKey: .grandparentKey)
|
||||
try container.encodeIfPresent(self.grandparentRatingKey, forKey: .grandparentRatingKey)
|
||||
try container.encodeIfPresent(self.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.hasPremiumExtras, forKey: .hasPremiumExtras)
|
||||
try container.encodeIfPresent(self.hasPremiumPrimaryExtra, forKey: .hasPremiumPrimaryExtra)
|
||||
try container.encodeIfPresent(self.index, forKey: .index)
|
||||
try container.encodeIfPresent(self.key, forKey: .key)
|
||||
try container.encodeIfPresent(self.lastViewedAt, forKey: .lastViewedAt)
|
||||
try container.encodeIfPresent(self.leafCount, forKey: .leafCount)
|
||||
try container.encodeIfPresent(self.media, forKey: .media)
|
||||
if self.originallyAvailableAt != nil {
|
||||
try container.encode(self._originallyAvailableAt, forKey: .originallyAvailableAt)
|
||||
}
|
||||
try container.encodeIfPresent(self.originalTitle, forKey: .originalTitle)
|
||||
try container.encodeIfPresent(self.parentGuid, forKey: .parentGuid)
|
||||
try container.encodeIfPresent(self.parentIndex, forKey: .parentIndex)
|
||||
try container.encodeIfPresent(self.parentKey, forKey: .parentKey)
|
||||
try container.encodeIfPresent(self.parentRatingKey, forKey: .parentRatingKey)
|
||||
try container.encodeIfPresent(self.parentStudio, forKey: .parentStudio)
|
||||
try container.encodeIfPresent(self.parentTheme, forKey: .parentTheme)
|
||||
try container.encodeIfPresent(self.parentThumb, forKey: .parentThumb)
|
||||
try container.encodeIfPresent(self.parentTitle, forKey: .parentTitle)
|
||||
try container.encodeIfPresent(self.parentYear, forKey: .parentYear)
|
||||
try container.encodeIfPresent(self.primaryExtraKey, forKey: .primaryExtraKey)
|
||||
if self.rating != nil {
|
||||
try container.encode(self._rating, forKey: .rating)
|
||||
}
|
||||
try container.encodeIfPresent(self.ratingImage, forKey: .ratingImage)
|
||||
try container.encodeIfPresent(self.ratingKey, forKey: .ratingKey)
|
||||
try container.encodeIfPresent(self.role, forKey: .role)
|
||||
try container.encodeIfPresent(self.skipCount, forKey: .skipCount)
|
||||
try container.encodeIfPresent(self.studio, forKey: .studio)
|
||||
try container.encodeIfPresent(self.summary, forKey: .summary)
|
||||
try container.encodeIfPresent(self.tagline, forKey: .tagline)
|
||||
try container.encodeIfPresent(self.theme, forKey: .theme)
|
||||
try container.encodeIfPresent(self.thumb, forKey: .thumb)
|
||||
try container.encodeIfPresent(self.title, forKey: .title)
|
||||
try container.encodeIfPresent(self.titleSort, forKey: .titleSort)
|
||||
try container.encodeIfPresent(self.type, forKey: .type)
|
||||
try container.encodeIfPresent(self.updatedAt, forKey: .updatedAt)
|
||||
try container.encodeIfPresent(self.viewCount, forKey: .viewCount)
|
||||
try container.encodeIfPresent(self.viewedLeafCount, forKey: .viewedLeafCount)
|
||||
try container.encodeIfPresent(self.viewOffset, forKey: .viewOffset)
|
||||
try container.encodeIfPresent(self.writer, forKey: .writer)
|
||||
try container.encodeIfPresent(self.year, forKey: .year)
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetLibraryItemsMetadata {
|
||||
var ratingWrapper: DecimalSerialized<Double?> {
|
||||
return _rating
|
||||
}
|
||||
var audienceRatingWrapper: DecimalSerialized<Double?> {
|
||||
return _audienceRating
|
||||
}
|
||||
var originallyAvailableAtWrapper: DateOnly<Date?> {
|
||||
return _originallyAvailableAt
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// A model object
|
||||
public struct GetLibraryItemsPart {
|
||||
public let container: String?
|
||||
public let duration: Int?
|
||||
public let file: String?
|
||||
public let id: Int?
|
||||
public let key: String?
|
||||
public let size: Int?
|
||||
public let videoProfile: String?
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
///
|
||||
public init(container: String? = nil, duration: Int? = nil, file: String? = nil, id: Int? = nil, key: String? = nil, size: Int? = nil, videoProfile: String? = nil) {
|
||||
self.container = container
|
||||
self.duration = duration
|
||||
self.file = file
|
||||
self.id = id
|
||||
self.key = key
|
||||
self.size = size
|
||||
self.videoProfile = videoProfile
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetLibraryItemsPart: Codable {
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case container
|
||||
case duration
|
||||
case file
|
||||
case id
|
||||
case key
|
||||
case size
|
||||
case videoProfile
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// A model object
|
||||
public struct GetLibraryItemsRequest: APIValue {
|
||||
/// the Id of the library to query
|
||||
public let sectionId: Int
|
||||
/// A key representing a specific tag within the section.
|
||||
public let tag: Operations.Tag
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
/// - Parameter sectionId: the Id of the library to query
|
||||
/// - Parameter tag: A key representing a specific tag within the section.
|
||||
///
|
||||
public init(sectionId: Int, tag: Operations.Tag) {
|
||||
self.sectionId = sectionId
|
||||
self.tag = tag
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// A response model
|
||||
public enum GetLibraryItemsResponse {
|
||||
case empty
|
||||
case twoHundredApplicationJsonObject(Operations.GetLibraryItemsResponseBody)
|
||||
case fourHundredAndOneApplicationJsonObject(Operations.GetLibraryItemsLibraryResponseBody)
|
||||
|
||||
var isEmpty: Bool {
|
||||
if case .empty = self {
|
||||
return true
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
public func twoHundredApplicationJsonObject() throws -> Operations.GetLibraryItemsResponseBody {
|
||||
guard case .twoHundredApplicationJsonObject(let value) = self else {
|
||||
throw PlexswiftError.missingResponseData
|
||||
}
|
||||
return value
|
||||
}
|
||||
|
||||
public func fourHundredAndOneApplicationJsonObject() throws -> Operations.GetLibraryItemsLibraryResponseBody {
|
||||
guard case .fourHundredAndOneApplicationJsonObject(let value) = self else {
|
||||
throw PlexswiftError.missingResponseData
|
||||
}
|
||||
return value
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// The contents of the library by section and tag
|
||||
public struct GetLibraryItemsResponseBody {
|
||||
public let mediaContainer: Operations.GetLibraryItemsMediaContainer?
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
///
|
||||
public init(mediaContainer: Operations.GetLibraryItemsMediaContainer? = nil) {
|
||||
self.mediaContainer = mediaContainer
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetLibraryItemsResponseBody: Codable {
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case mediaContainer = "MediaContainer"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// A model object
|
||||
public struct GetLibraryItemsRole {
|
||||
public let tag: String?
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
///
|
||||
public init(tag: String? = nil) {
|
||||
self.tag = tag
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetLibraryItemsRole: Codable {
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case tag
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// A model object
|
||||
public struct GetLibraryItemsWriter {
|
||||
public let tag: String?
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
///
|
||||
public init(tag: String? = nil) {
|
||||
self.tag = tag
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetLibraryItemsWriter: Codable {
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case tag
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// A model object
|
||||
public struct SearchLibraryErrors {
|
||||
@DecimalSerialized
|
||||
public private(set) var code: Double?
|
||||
public let message: String?
|
||||
@DecimalSerialized
|
||||
public private(set) var status: Double?
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
///
|
||||
public init(code: Double? = nil, message: String? = nil, status: Double? = nil) {
|
||||
self._code = DecimalSerialized<Double?>(wrappedValue: code)
|
||||
self.message = message
|
||||
self._status = DecimalSerialized<Double?>(wrappedValue: status)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.SearchLibraryErrors: Codable {
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case code
|
||||
case message
|
||||
case status
|
||||
}
|
||||
|
||||
public init(from decoder: Decoder) throws {
|
||||
let container = try decoder.container(keyedBy: CodingKeys.self)
|
||||
self._code = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .code) ?? DecimalSerialized<Double?>(wrappedValue: nil)
|
||||
self.message = try container.decodeIfPresent(String.self, forKey: .message)
|
||||
self._status = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .status) ?? DecimalSerialized<Double?>(wrappedValue: nil)
|
||||
}
|
||||
|
||||
public func encode(to encoder: Encoder) throws {
|
||||
var container = encoder.container(keyedBy: CodingKeys.self)
|
||||
if self.code != nil {
|
||||
try container.encode(self._code, forKey: .code)
|
||||
}
|
||||
try container.encodeIfPresent(self.message, forKey: .message)
|
||||
if self.status != nil {
|
||||
try container.encode(self._status, forKey: .status)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.SearchLibraryErrors {
|
||||
var codeWrapper: DecimalSerialized<Double?> {
|
||||
return _code
|
||||
}
|
||||
var statusWrapper: DecimalSerialized<Double?> {
|
||||
return _status
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
public struct SearchLibraryLibraryResponseBody {
|
||||
public let errors: [Operations.SearchLibraryErrors]?
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
///
|
||||
public init(errors: [Operations.SearchLibraryErrors]? = nil) {
|
||||
self.errors = errors
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.SearchLibraryLibraryResponseBody: Codable {
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case errors
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,8 @@ extension Operations {
|
||||
/// A response model
|
||||
public enum SearchLibraryResponse {
|
||||
case empty
|
||||
case object(Operations.SearchLibraryResponseBody)
|
||||
case twoHundredApplicationJsonObject(Operations.SearchLibraryResponseBody)
|
||||
case fourHundredAndOneApplicationJsonObject(Operations.SearchLibraryLibraryResponseBody)
|
||||
|
||||
var isEmpty: Bool {
|
||||
if case .empty = self {
|
||||
@@ -16,8 +17,15 @@ extension Operations {
|
||||
}
|
||||
}
|
||||
|
||||
public func object() throws -> Operations.SearchLibraryResponseBody {
|
||||
guard case .object(let value) = self else {
|
||||
public func twoHundredApplicationJsonObject() throws -> Operations.SearchLibraryResponseBody {
|
||||
guard case .twoHundredApplicationJsonObject(let value) = self else {
|
||||
throw PlexswiftError.missingResponseData
|
||||
}
|
||||
return value
|
||||
}
|
||||
|
||||
public func fourHundredAndOneApplicationJsonObject() throws -> Operations.SearchLibraryLibraryResponseBody {
|
||||
guard case .fourHundredAndOneApplicationJsonObject(let value) = self else {
|
||||
throw PlexswiftError.missingResponseData
|
||||
}
|
||||
return value
|
||||
|
||||
28
Sources/Plexswift/models/operations/Tag.swift
Normal file
28
Sources/Plexswift/models/operations/Tag.swift
Normal file
@@ -0,0 +1,28 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// A key representing a specific tag within the section.
|
||||
public enum Tag: String, Codable, APIValue {
|
||||
case all = "all"
|
||||
case unwatched = "unwatched"
|
||||
case newest = "newest"
|
||||
case recentlyAdded = "recentlyAdded"
|
||||
case recentlyViewed = "recentlyViewed"
|
||||
case onDeck = "onDeck"
|
||||
case collection = "collection"
|
||||
case edition = "edition"
|
||||
case genre = "genre"
|
||||
case year = "year"
|
||||
case decade = "decade"
|
||||
case director = "director"
|
||||
case actor = "actor"
|
||||
case country = "country"
|
||||
case contentRating = "contentRating"
|
||||
case rating = "rating"
|
||||
case resolution = "resolution"
|
||||
case firstCharacter = "firstCharacter"
|
||||
case folder = "folder"
|
||||
}
|
||||
}
|
||||
@@ -417,6 +417,7 @@ public protocol SearchAPI {
|
||||
/// - ``getLibraries()``
|
||||
/// - ``getLibrary(request:)``
|
||||
/// - ``deleteLibrary(request:)``
|
||||
/// - ``getLibraryItems(request:)``
|
||||
/// - ``refreshLibrary(request:)``
|
||||
/// - ``searchLibrary(request:)``
|
||||
/// - ``getMetadata(request:)``
|
||||
@@ -503,6 +504,33 @@ public protocol LibraryAPI {
|
||||
/// - Throws: An error of type ``PlexswiftError``
|
||||
func deleteLibrary(request: Operations.DeleteLibraryRequest) async throws -> Response<Operations.DeleteLibraryResponse>
|
||||
|
||||
/// Fetches details from a specific section of the library identified by a section key and a tag. The tag parameter accepts the following values:
|
||||
/// - `all`: All items in the section.
|
||||
/// - `unwatched`: Items that have not been played.
|
||||
/// - `newest`: Items that are recently released.
|
||||
/// - `recentlyAdded`: Items that are recently added to the library.
|
||||
/// - `recentlyViewed`: Items that were recently viewed.
|
||||
/// - `onDeck`: Items to continue watching.
|
||||
/// - `collection`: Items categorized by collection.
|
||||
/// - `edition`: Items categorized by edition.
|
||||
/// - `genre`: Items categorized by genre.
|
||||
/// - `year`: Items categorized by year of release.
|
||||
/// - `decade`: Items categorized by decade.
|
||||
/// - `director`: Items categorized by director.
|
||||
/// - `actor`: Items categorized by starring actor.
|
||||
/// - `country`: Items categorized by country of origin.
|
||||
/// - `contentRating`: Items categorized by content rating.
|
||||
/// - `rating`: Items categorized by rating.
|
||||
/// - `resolution`: Items categorized by resolution.
|
||||
/// - `firstCharacter`: Items categorized by the first letter.
|
||||
/// - `folder`: Items categorized by folder.
|
||||
///
|
||||
///
|
||||
/// - Parameter request: A ``Operations/GetLibraryItemsRequest`` object describing the input to the API operation
|
||||
/// - Returns: A ``Operations/GetLibraryItemsResponse`` object describing the result of the API operation
|
||||
/// - Throws: An error of type ``PlexswiftError``
|
||||
func getLibraryItems(request: Operations.GetLibraryItemsRequest) async throws -> Response<Operations.GetLibraryItemsResponse>
|
||||
|
||||
/// This endpoint Refreshes the library.
|
||||
///
|
||||
///
|
||||
|
||||
@@ -62,7 +62,7 @@ final class URLRequestBuilder: URLRequestConfiguration {
|
||||
urlRequest.setValue(contentType, forHTTPHeaderField: "Content-Type")
|
||||
}
|
||||
|
||||
urlRequest.setValue("speakeasy-sdk/swift 0.2.0 2.326.3 0.0.3 plexswift", forHTTPHeaderField: telemetryHeader.headerName)
|
||||
urlRequest.setValue("speakeasy-sdk/swift 0.3.0 2.335.5 0.0.3 plexswift", forHTTPHeaderField: telemetryHeader.headerName)
|
||||
|
||||
addSecurityParameters(to: &urlRequest)
|
||||
|
||||
|
||||
1238
codeSamples.yaml
1238
codeSamples.yaml
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user