From 3d9c4e9182dfe47dc225e13d45176743b4e3d39e Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Wed, 8 May 2024 18:15:36 +0000 Subject: [PATCH] ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.285.0 --- .speakeasy/gen.lock | 26 +- .speakeasy/gen.yaml | 2 +- README.md | 2 +- RELEASES.md | 12 +- Sources/Plexswift/Plexswift.docc/Plexswift.md | 13 - .../Plexswift/internal/api/_LibraryAPI.swift | 32 - ...GetLibraryItemsRequest+Serialization.swift | 24 - .../internal/models/Tag+Serialization.swift | 14 - .../operations/GetLibraryItemsCountry.swift | 24 - .../operations/GetLibraryItemsDirector.swift | 24 - .../operations/GetLibraryItemsGenre.swift | 24 - .../operations/GetLibraryItemsMedia.swift | 107 -- .../GetLibraryItemsMediaContainer.swift | 69 - .../operations/GetLibraryItemsMetadata.swift | 334 ---- .../operations/GetLibraryItemsPart.swift | 42 - .../operations/GetLibraryItemsRequest.swift | 23 - .../operations/GetLibraryItemsResponse.swift | 26 - .../GetLibraryItemsResponseBody.swift | 24 - .../operations/GetLibraryItemsRole.swift | 24 - .../operations/GetLibraryItemsWriter.swift | 24 - Sources/Plexswift/models/operations/Tag.swift | 28 - Sources/plexswift/PlexswiftAPI.swift | 28 - .../internal/client/URLRequestBuilder.swift | 2 +- codeSamples.yaml | 1400 ++++++++--------- 24 files changed, 717 insertions(+), 1611 deletions(-) delete mode 100644 Sources/Plexswift/internal/models/GetLibraryItemsRequest+Serialization.swift delete mode 100644 Sources/Plexswift/internal/models/Tag+Serialization.swift delete mode 100644 Sources/Plexswift/models/operations/GetLibraryItemsCountry.swift delete mode 100644 Sources/Plexswift/models/operations/GetLibraryItemsDirector.swift delete mode 100644 Sources/Plexswift/models/operations/GetLibraryItemsGenre.swift delete mode 100644 Sources/Plexswift/models/operations/GetLibraryItemsMedia.swift delete mode 100644 Sources/Plexswift/models/operations/GetLibraryItemsMediaContainer.swift delete mode 100644 Sources/Plexswift/models/operations/GetLibraryItemsMetadata.swift delete mode 100644 Sources/Plexswift/models/operations/GetLibraryItemsPart.swift delete mode 100644 Sources/Plexswift/models/operations/GetLibraryItemsRequest.swift delete mode 100644 Sources/Plexswift/models/operations/GetLibraryItemsResponse.swift delete mode 100644 Sources/Plexswift/models/operations/GetLibraryItemsResponseBody.swift delete mode 100644 Sources/Plexswift/models/operations/GetLibraryItemsRole.swift delete mode 100644 Sources/Plexswift/models/operations/GetLibraryItemsWriter.swift delete mode 100644 Sources/Plexswift/models/operations/Tag.swift diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index c85f97c..f74fa76 100755 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,12 +1,12 @@ lockVersion: 2.0.0 id: 5d77204e-e413-4fd0-a14a-bad3aee2247a management: - docChecksum: 7a43cd3413d535205cfaee20a4b6a250 + docChecksum: 543cb95355401d2e3c2ba11a50d9dd94 docVersion: 0.0.3 - speakeasyVersion: 1.277.8 - generationVersion: 2.319.10 - releaseVersion: 0.1.5 - configChecksum: 698caaf39e6673ad859437917c82ef62 + speakeasyVersion: 1.285.0 + generationVersion: 2.326.3 + releaseVersion: 0.2.0 + configChecksum: 8e59cbc89b7aa4f53dedf1cd0d7d10a9 repoURL: https://github.com/LukeHagar/plexswift.git features: swift: @@ -16,6 +16,7 @@ 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 @@ -175,19 +176,6 @@ 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/GetLibraryItemsGenre.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 @@ -486,8 +474,6 @@ 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 diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 99745d2..c36a01b 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -12,7 +12,7 @@ generation: auth: oAuth2ClientCredentialsEnabled: true swift: - version: 0.1.5 + version: 0.2.0 author: LukeHagar description: Swift Client SDK Generated by Speakeasy imports: diff --git a/README.md b/README.md index 49c36dc..22e77f3 100644 --- a/README.md +++ b/README.md @@ -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.1.5")) + .package(url: "https://github.com/LukeHagar/plexswift.git", .upToNextMajor(from: "0.2.0")) ] ``` diff --git a/RELEASES.md b/RELEASES.md index 45f8285..d52afda 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -212,4 +212,14 @@ Based on: ### Generated - [swift v0.1.5] . ### Releases -- [Swift Package Manager v0.1.5] https://github.com/LukeHagar/plexswift/releases/tag/v0.1.5 - . \ No newline at end of file +- [Swift Package Manager v0.1.5] https://github.com/LukeHagar/plexswift/releases/tag/v0.1.5 - . + +## 2024-05-08 18:15:01 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.285.0 (2.326.3) https://github.com/speakeasy-api/speakeasy +### Generated +- [swift v0.2.0] . +### Releases +- [Swift Package Manager v0.2.0] https://github.com/LukeHagar/plexswift/releases/tag/v0.2.0 - . \ No newline at end of file diff --git a/Sources/Plexswift/Plexswift.docc/Plexswift.md b/Sources/Plexswift/Plexswift.docc/Plexswift.md index fe657a5..40fb360 100644 --- a/Sources/Plexswift/Plexswift.docc/Plexswift.md +++ b/Sources/Plexswift/Plexswift.docc/Plexswift.md @@ -93,7 +93,6 @@ case .empty: - ``Operations/GetLibrariesResponse`` - ``Operations/GetLibraryResponse`` - ``Operations/GetLibraryHubsResponse`` -- ``Operations/GetLibraryItemsResponse`` - ``Operations/GetMetadataResponse`` - ``Operations/GetMetadataChildrenResponse`` - ``Operations/GetMyPlexAccountResponse`` @@ -233,17 +232,6 @@ case .empty: - ``Operations/GetLibraryHubsResponseBody`` - ``Operations/GetLibraryHubsRole`` - ``Operations/GetLibraryHubsWriter`` -- ``Operations/GetLibraryItemsCountry`` -- ``Operations/GetLibraryItemsDirector`` -- ``Operations/GetLibraryItemsGenre`` -- ``Operations/GetLibraryItemsMedia`` -- ``Operations/GetLibraryItemsMediaContainer`` -- ``Operations/GetLibraryItemsMetadata`` -- ``Operations/GetLibraryItemsPart`` -- ``Operations/GetLibraryItemsRequest`` -- ``Operations/GetLibraryItemsResponseBody`` -- ``Operations/GetLibraryItemsRole`` -- ``Operations/GetLibraryItemsWriter`` - ``Operations/GetMetadataCountry`` - ``Operations/GetMetadataDirector`` - ``Operations/GetMetadataErrors`` @@ -458,7 +446,6 @@ case .empty: - ``Operations/StopTranscodeSessionRequest`` - ``Operations/StopTranscodeSessionResponseBody`` - ``Operations/Stream`` -- ``Operations/Tag`` - ``Operations/TaskName`` - ``Operations/Tonight`` - ``Operations/TranscodeSession`` diff --git a/Sources/Plexswift/internal/api/_LibraryAPI.swift b/Sources/Plexswift/internal/api/_LibraryAPI.swift index 08caec9..70c1d93 100644 --- a/Sources/Plexswift/internal/api/_LibraryAPI.swift +++ b/Sources/Plexswift/internal/api/_LibraryAPI.swift @@ -55,15 +55,6 @@ class _LibraryAPI: LibraryAPI { ) } - public func getLibraryItems(request: Operations.GetLibraryItemsRequest) async throws -> Response { - 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 { return try await client.makeRequest( configureRequest: { configuration in @@ -147,13 +138,6 @@ 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 @@ -305,22 +289,6 @@ 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 .object(try JSONDecoder().decode(Operations.GetLibraryItemsResponseBody.self, from: data)) - } catch { - throw ResponseHandlerError.failedToDecodeJSON(error) - } - } - } - - return .empty -} - private func handleRefreshLibraryResponse(response: Client.APIResponse) throws -> Operations.RefreshLibraryResponse { let httpResponse = response.httpResponse diff --git a/Sources/Plexswift/internal/models/GetLibraryItemsRequest+Serialization.swift b/Sources/Plexswift/internal/models/GetLibraryItemsRequest+Serialization.swift deleted file mode 100644 index e4f8837..0000000 --- a/Sources/Plexswift/internal/models/GetLibraryItemsRequest+Serialization.swift +++ /dev/null @@ -1,24 +0,0 @@ -// 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 } - } -} diff --git a/Sources/Plexswift/internal/models/Tag+Serialization.swift b/Sources/Plexswift/internal/models/Tag+Serialization.swift deleted file mode 100644 index eb04237..0000000 --- a/Sources/Plexswift/internal/models/Tag+Serialization.swift +++ /dev/null @@ -1,14 +0,0 @@ -// 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))] - } -} diff --git a/Sources/Plexswift/models/operations/GetLibraryItemsCountry.swift b/Sources/Plexswift/models/operations/GetLibraryItemsCountry.swift deleted file mode 100644 index e64a8c2..0000000 --- a/Sources/Plexswift/models/operations/GetLibraryItemsCountry.swift +++ /dev/null @@ -1,24 +0,0 @@ -// 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 - } -} - diff --git a/Sources/Plexswift/models/operations/GetLibraryItemsDirector.swift b/Sources/Plexswift/models/operations/GetLibraryItemsDirector.swift deleted file mode 100644 index 918baff..0000000 --- a/Sources/Plexswift/models/operations/GetLibraryItemsDirector.swift +++ /dev/null @@ -1,24 +0,0 @@ -// 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 - } -} - diff --git a/Sources/Plexswift/models/operations/GetLibraryItemsGenre.swift b/Sources/Plexswift/models/operations/GetLibraryItemsGenre.swift deleted file mode 100644 index 6b721eb..0000000 --- a/Sources/Plexswift/models/operations/GetLibraryItemsGenre.swift +++ /dev/null @@ -1,24 +0,0 @@ -// 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 - } -} - diff --git a/Sources/Plexswift/models/operations/GetLibraryItemsMedia.swift b/Sources/Plexswift/models/operations/GetLibraryItemsMedia.swift deleted file mode 100644 index d93f1ef..0000000 --- a/Sources/Plexswift/models/operations/GetLibraryItemsMedia.swift +++ /dev/null @@ -1,107 +0,0 @@ -// 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(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.self, forKey: .aspectRatio) ?? DecimalSerialized(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 { - return _aspectRatio - } -} diff --git a/Sources/Plexswift/models/operations/GetLibraryItemsMediaContainer.swift b/Sources/Plexswift/models/operations/GetLibraryItemsMediaContainer.swift deleted file mode 100644 index 02eaa64..0000000 --- a/Sources/Plexswift/models/operations/GetLibraryItemsMediaContainer.swift +++ /dev/null @@ -1,69 +0,0 @@ -// 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 - } -} - diff --git a/Sources/Plexswift/models/operations/GetLibraryItemsMetadata.swift b/Sources/Plexswift/models/operations/GetLibraryItemsMetadata.swift deleted file mode 100644 index 8715075..0000000 --- a/Sources/Plexswift/models/operations/GetLibraryItemsMetadata.swift +++ /dev/null @@ -1,334 +0,0 @@ -// 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(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(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(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.self, forKey: .audienceRating) ?? DecimalSerialized(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.self, forKey: .originallyAvailableAt) ?? DateOnly(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.self, forKey: .rating) ?? DecimalSerialized(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 { - return _rating - } - var audienceRatingWrapper: DecimalSerialized { - return _audienceRating - } - var originallyAvailableAtWrapper: DateOnly { - return _originallyAvailableAt - } -} diff --git a/Sources/Plexswift/models/operations/GetLibraryItemsPart.swift b/Sources/Plexswift/models/operations/GetLibraryItemsPart.swift deleted file mode 100644 index d6a96ce..0000000 --- a/Sources/Plexswift/models/operations/GetLibraryItemsPart.swift +++ /dev/null @@ -1,42 +0,0 @@ -// 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 - } -} - diff --git a/Sources/Plexswift/models/operations/GetLibraryItemsRequest.swift b/Sources/Plexswift/models/operations/GetLibraryItemsRequest.swift deleted file mode 100644 index 0478aa5..0000000 --- a/Sources/Plexswift/models/operations/GetLibraryItemsRequest.swift +++ /dev/null @@ -1,23 +0,0 @@ -// 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 - } - } -} diff --git a/Sources/Plexswift/models/operations/GetLibraryItemsResponse.swift b/Sources/Plexswift/models/operations/GetLibraryItemsResponse.swift deleted file mode 100644 index b39b7c7..0000000 --- a/Sources/Plexswift/models/operations/GetLibraryItemsResponse.swift +++ /dev/null @@ -1,26 +0,0 @@ -// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. - -import Foundation - -extension Operations { - /// A response model - public enum GetLibraryItemsResponse { - case empty - case object(Operations.GetLibraryItemsResponseBody) - - var isEmpty: Bool { - if case .empty = self { - return true - } else { - return false - } - } - - public func object() throws -> Operations.GetLibraryItemsResponseBody { - guard case .object(let value) = self else { - throw PlexswiftError.missingResponseData - } - return value - } - } -} diff --git a/Sources/Plexswift/models/operations/GetLibraryItemsResponseBody.swift b/Sources/Plexswift/models/operations/GetLibraryItemsResponseBody.swift deleted file mode 100644 index 9442744..0000000 --- a/Sources/Plexswift/models/operations/GetLibraryItemsResponseBody.swift +++ /dev/null @@ -1,24 +0,0 @@ -// 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" - } -} - diff --git a/Sources/Plexswift/models/operations/GetLibraryItemsRole.swift b/Sources/Plexswift/models/operations/GetLibraryItemsRole.swift deleted file mode 100644 index c99840b..0000000 --- a/Sources/Plexswift/models/operations/GetLibraryItemsRole.swift +++ /dev/null @@ -1,24 +0,0 @@ -// 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 - } -} - diff --git a/Sources/Plexswift/models/operations/GetLibraryItemsWriter.swift b/Sources/Plexswift/models/operations/GetLibraryItemsWriter.swift deleted file mode 100644 index 4125cea..0000000 --- a/Sources/Plexswift/models/operations/GetLibraryItemsWriter.swift +++ /dev/null @@ -1,24 +0,0 @@ -// 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 - } -} - diff --git a/Sources/Plexswift/models/operations/Tag.swift b/Sources/Plexswift/models/operations/Tag.swift deleted file mode 100644 index ba79fea..0000000 --- a/Sources/Plexswift/models/operations/Tag.swift +++ /dev/null @@ -1,28 +0,0 @@ -// 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" - } -} diff --git a/Sources/plexswift/PlexswiftAPI.swift b/Sources/plexswift/PlexswiftAPI.swift index f919591..82906f9 100644 --- a/Sources/plexswift/PlexswiftAPI.swift +++ b/Sources/plexswift/PlexswiftAPI.swift @@ -417,7 +417,6 @@ public protocol SearchAPI { /// - ``getLibraries()`` /// - ``getLibrary(request:)`` /// - ``deleteLibrary(request:)`` -/// - ``getLibraryItems(request:)`` /// - ``refreshLibrary(request:)`` /// - ``searchLibrary(request:)`` /// - ``getMetadata(request:)`` @@ -504,33 +503,6 @@ public protocol LibraryAPI { /// - Throws: An error of type ``PlexswiftError`` func deleteLibrary(request: Operations.DeleteLibraryRequest) async throws -> Response - /// 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 - /// This endpoint Refreshes the library. /// /// diff --git a/Sources/plexswift/internal/client/URLRequestBuilder.swift b/Sources/plexswift/internal/client/URLRequestBuilder.swift index 31941db..f8899df 100644 --- a/Sources/plexswift/internal/client/URLRequestBuilder.swift +++ b/Sources/plexswift/internal/client/URLRequestBuilder.swift @@ -62,7 +62,7 @@ final class URLRequestBuilder: URLRequestConfiguration { urlRequest.setValue(contentType, forHTTPHeaderField: "Content-Type") } - urlRequest.setValue("speakeasy-sdk/swift 0.1.5 2.319.10 0.0.3 plexswift", forHTTPHeaderField: telemetryHeader.headerName) + urlRequest.setValue("speakeasy-sdk/swift 0.2.0 2.326.3 0.0.3 plexswift", forHTTPHeaderField: telemetryHeader.headerName) addSecurityParameters(to: &urlRequest) diff --git a/codeSamples.yaml b/codeSamples.yaml index 6a24dc8..9509e38 100644 --- a/codeSamples.yaml +++ b/codeSamples.yaml @@ -3,581 +3,6 @@ info: title: CodeSamples overlay for swift target version: 0.0.0 actions: - - target: $["paths"]["/status/sessions"]["get"] - update: - x-codeSamples: - - lang: swift - label: getSessions - source: |- - import Foundation - import Plexswift - - let client = Client(security: .accessToken("")) - - let response = try await client.getSessions() - - switch response.data { - case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): - // Handle response - break - case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject): - // Handle response - break - case .empty: - // Handle empty response - break - } - - target: $["paths"]["/security/token"]["get"] - update: - x-codeSamples: - - lang: swift - label: getTransientToken - source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.getTransientToken(\n request: Operations.GetTransientTokenRequest(\n scope: .all, \n type: .delegation\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" - - target: $["paths"]["/updater/apply"]["put"] - update: - x-codeSamples: - - lang: swift - label: applyUpdates - source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.applyUpdates(\n request: Operations.ApplyUpdatesRequest(\n skip: .one, \n tonight: .zero\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" - - target: $["paths"]["/"]["get"] - update: - x-codeSamples: - - lang: swift - label: getServerCapabilities - source: |- - import Foundation - import Plexswift - - let client = Client(security: .accessToken("")) - - let response = try await client.getServerCapabilities() - - switch response.data { - case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): - // Handle response - break - case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject): - // Handle response - break - case .empty: - // Handle empty response - break - } - - target: $["paths"]["/:/timeline"]["get"] - update: - x-codeSamples: - - lang: swift - label: getTimeline - source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.getTimeline(\n request: Operations.GetTimelineRequest(\n context: \"home:hub.continueWatching\", \n duration: 10000, \n hasMDE: 1, \n key: \"/library/metadata/23409\", \n playBackTime: 2000, \n playQueueItemID: 1, \n ratingKey: 23409, \n row: 1, \n state: .playing, \n time: 2000\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" - - target: $["paths"]["/video/:/transcode/universal/start.mpd"]["get"] - update: - x-codeSamples: - - lang: swift - label: startUniversalTranscode - source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.startUniversalTranscode(\n request: Operations.StartUniversalTranscodeRequest(\n hasMDE: 1, \n mediaIndex: 0, \n partIndex: 0, \n path: \"/library/metadata/23409\", \n `protocol`: \"hls\", \n addDebugOverlay: 0, \n audioBoost: 100, \n autoAdjustQuality: 0, \n directPlay: 0, \n directStream: 0, \n fastSeek: 0, \n location: \"lan\", \n mediaBufferSize: 102400, \n session: \"zvcage8b7rkioqcm8f4uns4c\", \n subtites: \"burn\", \n subtitleSize: 100\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" - - target: $["paths"]["/butler"]["delete"] - update: - x-codeSamples: - - lang: swift - label: stopAllTasks - source: |- - import Foundation - import Plexswift - - let client = Client(security: .accessToken("")) - - let response = try await client.stopAllTasks() - - switch response.data { - case .object(let object): - // Handle response - break - case .empty: - // Handle empty response - break - } - - target: $["paths"]["/library/sections/{sectionId}/refresh"]["get"] - update: - x-codeSamples: - - lang: swift - label: refreshLibrary - source: |- - import Foundation - import Plexswift - - let client = Client(security: .accessToken("")) - - let response = try await client.refreshLibrary( - request: Operations.RefreshLibraryRequest( - sectionId: 934.16 - ) - ) - - switch response.data { - case .object(let object): - // Handle response - break - case .empty: - // Handle empty response - break - } - - target: $["paths"]["/search"]["get"] - update: - x-codeSamples: - - lang: swift - label: getSearchResults - source: |- - import Foundation - import Plexswift - - let client = Client(security: .accessToken("")) - - let response = try await client.getSearchResults( - request: Operations.GetSearchResultsRequest( - query: "110" - ) - ) - - switch response.data { - case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): - // Handle response - break - case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject): - // Handle response - break - case .empty: - // Handle empty response - break - } - - target: $["paths"]["/log/networked"]["get"] - update: - x-codeSamples: - - lang: swift - label: enablePaperTrail - source: |- - import Foundation - import Plexswift - - let client = Client(security: .accessToken("")) - - let response = try await client.enablePaperTrail() - - switch response.data { - case .object(let object): - // Handle response - break - case .empty: - // Handle empty response - break - } - - target: $["paths"]["/updater/check"]["put"] - update: - x-codeSamples: - - lang: swift - label: checkForUpdates - source: |- - import Foundation - import Plexswift - - let client = Client(security: .accessToken("")) - - let response = try await client.checkForUpdates( - request: Operations.CheckForUpdatesRequest( - download: .one - ) - ) - - switch response.data { - case .object(let object): - // Handle response - break - case .empty: - // Handle empty response - break - } - - target: $["paths"]["/devices"]["get"] - update: - x-codeSamples: - - lang: swift - label: getDevices - source: |- - import Foundation - import Plexswift - - let client = Client(security: .accessToken("")) - - let response = try await client.getDevices() - - switch response.data { - case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): - // Handle response - break - case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject): - // Handle response - break - case .empty: - // Handle empty response - break - } - - target: $["paths"]["/library/onDeck"]["get"] - update: - x-codeSamples: - - lang: swift - label: getOnDeck - source: |- - import Foundation - import Plexswift - - let client = Client(security: .accessToken("")) - - let response = try await client.getOnDeck() - - switch response.data { - case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): - // Handle response - break - case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject): - // Handle response - break - case .empty: - // Handle empty response - break - } - - target: $["paths"]["/playlists/{playlistID}"]["put"] - update: - x-codeSamples: - - lang: swift - label: updatePlaylist - source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.updatePlaylist(\n request: Operations.UpdatePlaylistRequest(\n playlistID: 3915, \n summary: \"\", \n title: \"\"\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" - - target: $["paths"]["/status/sessions/history/all"]["get"] - update: - x-codeSamples: - - lang: swift - label: getSessionHistory - source: |- - import Foundation - import Plexswift - - let client = Client(security: .accessToken("")) - - let response = try await client.getSessionHistory() - - switch response.data { - case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): - // Handle response - break - case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject): - // Handle response - break - case .empty: - // Handle empty response - break - } - - target: $["paths"]["/:/prefs"]["get"] - update: - x-codeSamples: - - lang: swift - label: getServerPreferences - source: |- - import Foundation - import Plexswift - - let client = Client(security: .accessToken("")) - - let response = try await client.getServerPreferences() - - switch response.data { - case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): - // Handle response - break - case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject): - // Handle response - break - case .empty: - // Handle empty response - break - } - - target: $["paths"]["/butler"]["get"] - update: - x-codeSamples: - - lang: swift - label: getButlerTasks - source: |- - import Foundation - import Plexswift - - let client = Client(security: .accessToken("")) - - let response = try await client.getButlerTasks() - - switch response.data { - case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): - // Handle response - break - case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject): - // Handle response - break - case .empty: - // Handle empty response - break - } - - target: $["paths"]["/library/sections/{sectionId}/search"]["get"] - update: - x-codeSamples: - - lang: swift - label: searchLibrary - source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.searchLibrary(\n request: Operations.SearchLibraryRequest(\n sectionId: 933505, \n type: .four\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" - - target: $["paths"]["/playlists/{playlistID}"]["delete"] - update: - x-codeSamples: - - lang: swift - label: deletePlaylist - source: |- - import Foundation - import Plexswift - - let client = Client(security: .accessToken("")) - - let response = try await client.deletePlaylist( - request: Operations.DeletePlaylistRequest( - playlistID: 216.22 - ) - ) - - switch response.data { - case .object(let object): - // Handle response - break - case .empty: - // Handle empty response - break - } - - target: $["paths"]["/transcode/sessions/{sessionKey}"]["delete"] - update: - x-codeSamples: - - lang: swift - label: stopTranscodeSession - source: |- - import Foundation - import Plexswift - - let client = Client(security: .accessToken("")) - - let response = try await client.stopTranscodeSession( - request: Operations.StopTranscodeSessionRequest( - sessionKey: "zz7llzqlx8w9vnrsbnwhbmep" - ) - ) - - switch response.data { - case .object(let object): - // Handle response - break - case .empty: - // Handle empty response - break - } - - target: $["paths"]["/butler"]["post"] - update: - x-codeSamples: - - lang: swift - label: startAllTasks - source: |- - import Foundation - import Plexswift - - let client = Client(security: .accessToken("")) - - let response = try await client.startAllTasks() - - switch response.data { - case .object(let object): - // Handle response - break - case .empty: - // Handle empty response - break - } - - target: $["paths"]["/butler/{taskName}"]["post"] - update: - x-codeSamples: - - lang: swift - label: startTask - source: |- - import Foundation - import Plexswift - - let client = Client(security: .accessToken("")) - - let response = try await client.startTask( - request: Operations.StartTaskRequest( - taskName: .cleanOldBundles - ) - ) - - switch response.data { - case .object(let object): - // Handle response - break - case .empty: - // Handle empty response - break - } - - target: $["paths"]["/butler/{taskName}"]["delete"] - update: - x-codeSamples: - - lang: swift - label: stopTask - source: |- - import Foundation - import Plexswift - - let client = Client(security: .accessToken("")) - - let response = try await client.stopTask( - request: Operations.StopTaskRequest( - taskName: .backupDatabase - ) - ) - - switch response.data { - case .object(let object): - // Handle response - break - case .empty: - // Handle empty response - break - } - - target: $["paths"]["/pins"]["post"] - update: - x-codeSamples: - - lang: swift - label: getPin - source: "import Foundation\nimport Plexswift\n\nlet client = Client()\n\nlet response = try await client.getPin(\n request: Operations.GetPinRequest(\n strong: false, \n )\n)\n\nswitch response.data {\ncase .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject):\n // Handle response\n break\ncase .fourHundredApplicationJsonObject(let fourHundredApplicationJsonObject):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" - - target: $["paths"]["/myplex/account"]["get"] - update: - x-codeSamples: - - lang: swift - label: getMyPlexAccount - source: |- - import Foundation - import Plexswift - - let client = Client(security: .accessToken("")) - - let response = try await client.getMyPlexAccount() - - switch response.data { - case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): - // Handle response - break - case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject): - // Handle response - break - case .empty: - // Handle empty response - break - } - - target: $["paths"]["/:/progress"]["post"] - update: - x-codeSamples: - - lang: swift - label: updatePlayProgress - source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.updatePlayProgress(\n request: Operations.UpdatePlayProgressRequest(\n key: \"\", \n state: \"played\", \n time: 90000\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" - - target: $["paths"]["/playlists/{playlistID}/items"]["put"] - update: - x-codeSamples: - - lang: swift - label: addPlaylistContents - source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.addPlaylistContents(\n request: Operations.AddPlaylistContentsRequest(\n playlistID: 8502.01, \n uri: \"server://12345/com.plexapp.plugins.library/library/metadata/1\", \n playQueueID: 123\n )\n)\n\nswitch response.data {\ncase .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject):\n // Handle response\n break\ncase .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" - - target: $["paths"]["/statistics/media"]["get"] - update: - x-codeSamples: - - lang: swift - label: getStatistics - source: |- - import Foundation - import Plexswift - - let client = Client(security: .accessToken("")) - - let response = try await client.getStatistics( - request: Operations.GetStatisticsRequest( - timespan: 4 - ) - ) - - switch response.data { - case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): - // Handle response - break - case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject): - // Handle response - break - case .empty: - // Handle empty response - break - } - - target: $["paths"]["/photo/:/transcode"]["get"] - update: - x-codeSamples: - - lang: swift - label: getResizedPhoto - source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.getResizedPhoto(\n request: Operations.GetResizedPhotoRequest(\n blur: 20, \n height: 165, \n minSize: .one, \n opacity: 96541, \n upscale: .zero, \n url: \"/library/metadata/49564/thumb/1654258204\", \n width: 110\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" - - target: $["paths"]["/transcode/sessions"]["get"] - update: - x-codeSamples: - - lang: swift - label: getTranscodeSessions - source: |- - import Foundation - import Plexswift - - let client = Client(security: .accessToken("")) - - let response = try await client.getTranscodeSessions() - - switch response.data { - case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): - // Handle response - break - case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject): - // Handle response - break - case .empty: - // Handle empty response - break - } - - target: $["paths"]["/pins/{pinID}"]["get"] - update: - x-codeSamples: - - lang: swift - label: getToken - source: "import Foundation\nimport Plexswift\n\nlet client = Client()\n\nlet response = try await client.getToken(\n request: Operations.GetTokenRequest(\n pinID: \"\", \n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" - - target: $["paths"]["/servers"]["get"] - update: - x-codeSamples: - - lang: swift - label: getServerList - source: |- - import Foundation - import Plexswift - - let client = Client(security: .accessToken("")) - - let response = try await client.getServerList() - - switch response.data { - case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): - // Handle response - break - case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject): - // Handle response - break - case .empty: - // Handle empty response - break - } - target: $["paths"]["/:/scrobble"]["get"] update: x-codeSamples: @@ -616,6 +41,98 @@ actions: let response = try await client.getServerActivities() + switch response.data { + case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): + // Handle response + break + case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject): + // Handle response + break + case .empty: + // Handle empty response + break + } + - target: $["paths"]["/log"]["get"] + update: + x-codeSamples: + - lang: swift + label: logLine + source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.logLine(\n request: Operations.LogLineRequest(\n level: .three, \n message: \"Test log message\", \n source: \"Postman\"\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" + - target: $["paths"]["/playlists/{playlistID}/items"]["put"] + update: + x-codeSamples: + - lang: swift + label: addPlaylistContents + source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.addPlaylistContents(\n request: Operations.AddPlaylistContentsRequest(\n playlistID: 8502.01, \n uri: \"server://12345/com.plexapp.plugins.library/library/metadata/1\", \n playQueueID: 123\n )\n)\n\nswitch response.data {\ncase .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject):\n // Handle response\n break\ncase .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" + - target: $["paths"]["/statistics/media"]["get"] + update: + x-codeSamples: + - lang: swift + label: getStatistics + source: |- + import Foundation + import Plexswift + + let client = Client(security: .accessToken("")) + + let response = try await client.getStatistics( + request: Operations.GetStatisticsRequest( + timespan: 4 + ) + ) + + switch response.data { + case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): + // Handle response + break + case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject): + // Handle response + break + case .empty: + // Handle empty response + break + } + - target: $["paths"]["/devices"]["get"] + update: + x-codeSamples: + - lang: swift + label: getDevices + source: |- + import Foundation + import Plexswift + + let client = Client(security: .accessToken("")) + + let response = try await client.getDevices() + + switch response.data { + case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): + // Handle response + break + case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject): + // Handle response + break + case .empty: + // Handle empty response + break + } + - target: $["paths"]["/search"]["get"] + update: + x-codeSamples: + - lang: swift + label: getSearchResults + source: |- + import Foundation + import Plexswift + + let client = Client(security: .accessToken("")) + + let response = try await client.getSearchResults( + request: Operations.GetSearchResultsRequest( + query: "110" + ) + ) + switch response.data { case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): // Handle response @@ -651,24 +168,22 @@ actions: // Handle empty response break } - - target: $["paths"]["/log"]["get"] + - target: $["paths"]["/library/metadata/{ratingKey}"]["get"] update: x-codeSamples: - lang: swift - label: logLine - source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.logLine(\n request: Operations.LogLineRequest(\n level: .three, \n message: \"Test log message\", \n source: \"Postman\"\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" - - target: $["paths"]["/library/recentlyAdded"]["get"] - update: - x-codeSamples: - - lang: swift - label: getRecentlyAdded + label: getMetadata source: |- import Foundation import Plexswift let client = Client(security: .accessToken("")) - let response = try await client.getRecentlyAdded() + let response = try await client.getMetadata( + request: Operations.GetMetadataRequest( + ratingKey: 8382.31 + ) + ) switch response.data { case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): @@ -681,28 +196,24 @@ actions: // Handle empty response break } - - target: $["paths"]["/library/sections/{sectionId}/{tag}"]["get"] + - target: $["paths"]["/playlists"]["get"] update: x-codeSamples: - lang: swift - label: getLibraryItems - source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.getLibraryItems(\n request: Operations.GetLibraryItemsRequest(\n sectionId: 451092, \n tag: .unwatched\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" - - target: $["paths"]["/library/metadata/{ratingKey}/children"]["get"] + label: getPlaylists + source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.getPlaylists(\n request: Operations.GetPlaylistsRequest(\n playlistType: .audio, \n smart: .zero\n )\n)\n\nswitch response.data {\ncase .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject):\n // Handle response\n break\ncase .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" + - target: $["paths"]["/butler"]["get"] update: x-codeSamples: - lang: swift - label: getMetadataChildren + label: getButlerTasks source: |- import Foundation import Plexswift let client = Client(security: .accessToken("")) - let response = try await client.getMetadataChildren( - request: Operations.GetMetadataChildrenRequest( - ratingKey: 1539.14 - ) - ) + let response = try await client.getButlerTasks() switch response.data { case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): @@ -715,6 +226,216 @@ actions: // Handle empty response break } + - target: $["paths"]["/butler/{taskName}"]["post"] + update: + x-codeSamples: + - lang: swift + label: startTask + source: |- + import Foundation + import Plexswift + + let client = Client(security: .accessToken("")) + + let response = try await client.startTask( + request: Operations.StartTaskRequest( + taskName: .cleanOldBundles + ) + ) + + switch response.data { + case .object(let object): + // Handle response + break + case .empty: + // Handle empty response + break + } + - target: $["paths"]["/identity"]["get"] + update: + x-codeSamples: + - lang: swift + label: getServerIdentity + source: |- + import Foundation + import Plexswift + + let client = Client(security: .accessToken("")) + + let response = try await client.getServerIdentity() + + switch response.data { + case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): + // Handle response + break + case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject): + // Handle response + break + case .empty: + // Handle empty response + break + } + - target: $["paths"]["/photo/:/transcode"]["get"] + update: + x-codeSamples: + - lang: swift + label: getResizedPhoto + source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.getResizedPhoto(\n request: Operations.GetResizedPhotoRequest(\n blur: 20, \n height: 165, \n minSize: .one, \n opacity: 96541, \n upscale: .zero, \n url: \"/library/metadata/49564/thumb/1654258204\", \n width: 110\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" + - target: $["paths"]["/servers"]["get"] + update: + x-codeSamples: + - lang: swift + label: getServerList + source: |- + import Foundation + import Plexswift + + let client = Client(security: .accessToken("")) + + let response = try await client.getServerList() + + switch response.data { + case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): + // Handle response + break + case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject): + // Handle response + break + case .empty: + // Handle empty response + break + } + - target: $["paths"]["/playlists"]["post"] + update: + x-codeSamples: + - lang: swift + label: createPlaylist + source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.createPlaylist(\n request: Operations.CreatePlaylistRequest(\n smart: .one, \n title: \"\", \n type: .photo, \n uri: \"https://inborn-brochure.biz\", \n playQueueID: 3686.33\n )\n)\n\nswitch response.data {\ncase .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject):\n // Handle response\n break\ncase .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" + - target: $["paths"]["/playlists/{playlistID}/items"]["get"] + update: + x-codeSamples: + - lang: swift + label: getPlaylistContents + source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.getPlaylistContents(\n request: Operations.GetPlaylistContentsRequest(\n playlistID: 5004.46, \n type: 9403.59\n )\n)\n\nswitch response.data {\ncase .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject):\n // Handle response\n break\ncase .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" + - target: $["paths"]["/log"]["post"] + update: + x-codeSamples: + - lang: swift + label: logMultiLine + source: |- + import Foundation + import Plexswift + + let client = Client(security: .accessToken("")) + + let response = try await client.logMultiLine() + + switch response.data { + case .object(let object): + // Handle response + break + case .empty: + // Handle empty response + break + } + - target: $["paths"]["/"]["get"] + update: + x-codeSamples: + - lang: swift + label: getServerCapabilities + source: |- + import Foundation + import Plexswift + + let client = Client(security: .accessToken("")) + + let response = try await client.getServerCapabilities() + + switch response.data { + case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): + // Handle response + break + case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject): + // Handle response + break + case .empty: + // Handle empty response + break + } + - target: $["paths"]["/butler/{taskName}"]["delete"] + update: + x-codeSamples: + - lang: swift + label: stopTask + source: |- + import Foundation + import Plexswift + + let client = Client(security: .accessToken("")) + + let response = try await client.stopTask( + request: Operations.StopTaskRequest( + taskName: .backupDatabase + ) + ) + + switch response.data { + case .object(let object): + // Handle response + break + case .empty: + // Handle empty response + break + } + - target: $["paths"]["/status/sessions"]["get"] + update: + x-codeSamples: + - lang: swift + label: getSessions + source: |- + import Foundation + import Plexswift + + let client = Client(security: .accessToken("")) + + let response = try await client.getSessions() + + switch response.data { + case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): + // Handle response + break + case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject): + // Handle response + break + case .empty: + // Handle empty response + break + } + - target: $["paths"]["/transcode/sessions/{sessionKey}"]["delete"] + update: + x-codeSamples: + - lang: swift + label: stopTranscodeSession + source: |- + import Foundation + import Plexswift + + let client = Client(security: .accessToken("")) + + let response = try await client.stopTranscodeSession( + request: Operations.StopTranscodeSessionRequest( + sessionKey: "zz7llzqlx8w9vnrsbnwhbmep" + ) + ) + + switch response.data { + case .object(let object): + // Handle response + break + case .empty: + // Handle empty response + break + } - target: $["paths"]["/updater/status"]["get"] update: x-codeSamples: @@ -739,32 +460,20 @@ actions: // Handle empty response break } - - target: $["paths"]["/hubs/search"]["get"] + - target: $["paths"]["/playlists/{playlistID}/items"]["delete"] update: x-codeSamples: - lang: swift - label: performSearch - source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.performSearch(\n request: Operations.PerformSearchRequest(\n query: \"dylan\", \n limit: 5, \n sectionId: 1516.53\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" - - target: $["paths"]["/library/sections/{sectionId}"]["get"] - update: - x-codeSamples: - - lang: swift - label: getLibrary - source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.getLibrary(\n request: Operations.GetLibraryRequest(\n sectionId: 1000, \n includeDetails: .zero\n )\n)\n\nswitch response.data {\ncase .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject):\n // Handle response\n break\ncase .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" - - target: $["paths"]["/library/sections/{sectionId}"]["delete"] - update: - x-codeSamples: - - lang: swift - label: deleteLibrary + label: clearPlaylistContents source: |- import Foundation import Plexswift let client = Client(security: .accessToken("")) - let response = try await client.deleteLibrary( - request: Operations.DeleteLibraryRequest( - sectionId: 1000 + let response = try await client.clearPlaylistContents( + request: Operations.ClearPlaylistContentsRequest( + playlistID: 1893.18 ) ) @@ -776,18 +485,18 @@ actions: // Handle empty response break } - - target: $["paths"]["/clients"]["get"] + - target: $["paths"]["/myplex/account"]["get"] update: x-codeSamples: - lang: swift - label: getAvailableClients + label: getMyPlexAccount source: |- import Foundation import Plexswift let client = Client(security: .accessToken("")) - let response = try await client.getAvailableClients() + let response = try await client.getMyPlexAccount() switch response.data { case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): @@ -800,18 +509,89 @@ actions: // Handle empty response break } - - target: $["paths"]["/identity"]["get"] + - target: $["paths"]["/:/timeline"]["get"] update: x-codeSamples: - lang: swift - label: getServerIdentity + label: getTimeline + source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.getTimeline(\n request: Operations.GetTimelineRequest(\n context: \"home:hub.continueWatching\", \n duration: 10000, \n hasMDE: 1, \n key: \"/library/metadata/23409\", \n playBackTime: 2000, \n playQueueItemID: 1, \n ratingKey: 23409, \n row: 1, \n state: .playing, \n time: 2000\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" + - target: $["paths"]["/video/:/transcode/universal/start.mpd"]["get"] + update: + x-codeSamples: + - lang: swift + label: startUniversalTranscode + source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.startUniversalTranscode(\n request: Operations.StartUniversalTranscodeRequest(\n hasMDE: 1, \n mediaIndex: 0, \n partIndex: 0, \n path: \"/library/metadata/23409\", \n `protocol`: \"hls\", \n addDebugOverlay: 0, \n audioBoost: 100, \n autoAdjustQuality: 0, \n directPlay: 0, \n directStream: 0, \n fastSeek: 0, \n location: \"lan\", \n mediaBufferSize: 102400, \n session: \"zvcage8b7rkioqcm8f4uns4c\", \n subtites: \"burn\", \n subtitleSize: 100\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" + - target: $["paths"]["/library/sections/{sectionId}/refresh"]["get"] + update: + x-codeSamples: + - lang: swift + label: refreshLibrary source: |- import Foundation import Plexswift let client = Client(security: .accessToken("")) - let response = try await client.getServerIdentity() + let response = try await client.refreshLibrary( + request: Operations.RefreshLibraryRequest( + sectionId: 934.16 + ) + ) + + switch response.data { + case .object(let object): + // Handle response + break + case .empty: + // Handle empty response + break + } + - target: $["paths"]["/playlists/{playlistID}"]["get"] + update: + x-codeSamples: + - lang: swift + label: getPlaylist + source: |- + import Foundation + import Plexswift + + let client = Client(security: .accessToken("")) + + let response = try await client.getPlaylist( + request: Operations.GetPlaylistRequest( + playlistID: 4109.48 + ) + ) + + switch response.data { + case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): + // Handle response + break + case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject): + // Handle response + break + case .empty: + // Handle empty response + break + } + - target: $["paths"]["/playlists/upload"]["post"] + update: + x-codeSamples: + - lang: swift + label: uploadPlaylist + source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.uploadPlaylist(\n request: Operations.UploadPlaylistRequest(\n force: .zero, \n path: \"/home/barkley/playlist.m3u\"\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" + - target: $["paths"]["/:/prefs"]["get"] + update: + x-codeSamples: + - lang: swift + label: getServerPreferences + source: |- + import Foundation + import Plexswift + + let client = Client(security: .accessToken("")) + + let response = try await client.getServerPreferences() switch response.data { case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): @@ -849,6 +629,154 @@ actions: // Handle empty response break } + - target: $["paths"]["/butler"]["post"] + update: + x-codeSamples: + - lang: swift + label: startAllTasks + source: |- + import Foundation + import Plexswift + + let client = Client(security: .accessToken("")) + + let response = try await client.startAllTasks() + + switch response.data { + case .object(let object): + // Handle response + break + case .empty: + // Handle empty response + break + } + - target: $["paths"]["/library/hashes"]["get"] + update: + x-codeSamples: + - lang: swift + label: getFileHash + source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.getFileHash(\n request: Operations.GetFileHashRequest(\n url: \"file://C:\\Image.png&type=13\", \n type: 4462.17\n )\n)\n\nswitch response.data {\ncase .object(let object):\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("")) + + let response = try await client.getOnDeck() + + switch response.data { + case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): + // Handle response + break + case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject): + // Handle response + break + case .empty: + // Handle empty response + break + } + - target: $["paths"]["/hubs/sections/{sectionId}"]["get"] + update: + x-codeSamples: + - lang: swift + label: getLibraryHubs + source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.getLibraryHubs(\n request: Operations.GetLibraryHubsRequest(\n sectionId: 6728.76, \n count: 9010.22, \n onlyTransient: .zero\n )\n)\n\nswitch response.data {\ncase .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject):\n // Handle response\n break\ncase .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" + - target: $["paths"]["/hubs/search"]["get"] + update: + x-codeSamples: + - lang: swift + label: performSearch + source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.performSearch(\n request: Operations.PerformSearchRequest(\n query: \"dylan\", \n limit: 5, \n sectionId: 1516.53\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" + - target: $["paths"]["/library/sections/{sectionId}/search"]["get"] + update: + x-codeSamples: + - lang: swift + label: searchLibrary + source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.searchLibrary(\n request: Operations.SearchLibraryRequest(\n sectionId: 933505, \n type: .four\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" + - target: $["paths"]["/playlists/{playlistID}"]["delete"] + update: + x-codeSamples: + - lang: swift + label: deletePlaylist + source: |- + import Foundation + import Plexswift + + let client = Client(security: .accessToken("")) + + let response = try await client.deletePlaylist( + request: Operations.DeletePlaylistRequest( + playlistID: 216.22 + ) + ) + + switch response.data { + case .object(let object): + // Handle response + break + case .empty: + // Handle empty response + break + } + - target: $["paths"]["/pins"]["post"] + update: + x-codeSamples: + - lang: swift + label: getPin + source: "import Foundation\nimport Plexswift\n\nlet client = Client()\n\nlet response = try await client.getPin(\n request: Operations.GetPinRequest(\n strong: false, \n )\n)\n\nswitch response.data {\ncase .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject):\n // Handle response\n break\ncase .fourHundredApplicationJsonObject(let fourHundredApplicationJsonObject):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" + - target: $["paths"]["/playlists/{playlistID}"]["put"] + update: + x-codeSamples: + - lang: swift + label: updatePlaylist + source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.updatePlaylist(\n request: Operations.UpdatePlaylistRequest(\n playlistID: 3915, \n summary: \"\", \n title: \"\"\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" + - target: $["paths"]["/library/sections/{sectionId}"]["get"] + update: + x-codeSamples: + - lang: swift + label: getLibrary + source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.getLibrary(\n request: Operations.GetLibraryRequest(\n sectionId: 1000, \n includeDetails: .zero\n )\n)\n\nswitch response.data {\ncase .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject):\n // Handle response\n break\ncase .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" + - target: $["paths"]["/pins/{pinID}"]["get"] + update: + x-codeSamples: + - lang: swift + label: getToken + source: "import Foundation\nimport Plexswift\n\nlet client = Client()\n\nlet response = try await client.getToken(\n request: Operations.GetTokenRequest(\n pinID: \"\", \n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" + - target: $["paths"]["/status/sessions/history/all"]["get"] + update: + x-codeSamples: + - lang: swift + label: getSessionHistory + source: |- + import Foundation + import Plexswift + + let client = Client(security: .accessToken("")) + + let response = try await client.getSessionHistory() + + switch response.data { + case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): + // Handle response + break + case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject): + // Handle response + break + case .empty: + // Handle empty response + break + } + - target: $["paths"]["/:/progress"]["post"] + update: + x-codeSamples: + - lang: swift + label: updatePlayProgress + source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.updatePlayProgress(\n request: Operations.UpdatePlayProgressRequest(\n key: \"\", \n state: \"played\", \n time: 90000\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" - target: $["paths"]["/activities/{activityUUID}"]["delete"] update: x-codeSamples: @@ -874,26 +802,53 @@ actions: // Handle empty response break } - - target: $["paths"]["/hubs"]["get"] + - target: $["paths"]["/butler"]["delete"] update: x-codeSamples: - lang: swift - label: getGlobalHubs - source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.getGlobalHubs(\n request: Operations.GetGlobalHubsRequest(\n count: 1262.49, \n onlyTransient: .one\n )\n)\n\nswitch response.data {\ncase .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject):\n // Handle response\n break\ncase .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" - - target: $["paths"]["/playlists/{playlistID}/items"]["delete"] - update: - x-codeSamples: - - lang: swift - label: clearPlaylistContents + label: stopAllTasks source: |- import Foundation import Plexswift let client = Client(security: .accessToken("")) - let response = try await client.clearPlaylistContents( - request: Operations.ClearPlaylistContentsRequest( - playlistID: 1893.18 + let response = try await client.stopAllTasks() + + switch response.data { + case .object(let object): + // Handle response + break + case .empty: + // Handle empty response + break + } + - target: $["paths"]["/hubs"]["get"] + update: + x-codeSamples: + - lang: swift + label: getGlobalHubs + source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.getGlobalHubs(\n request: Operations.GetGlobalHubsRequest(\n count: 1262.49, \n onlyTransient: .one\n )\n)\n\nswitch response.data {\ncase .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject):\n // Handle response\n break\ncase .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" + - target: $["paths"]["/hubs/search/voice"]["get"] + update: + x-codeSamples: + - lang: swift + label: performVoiceSearch + source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.performVoiceSearch(\n request: Operations.PerformVoiceSearchRequest(\n query: \"dead+poop\", \n limit: 5, \n sectionId: 4094.8\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" + - target: $["paths"]["/library/sections/{sectionId}"]["delete"] + update: + x-codeSamples: + - lang: swift + label: deleteLibrary + source: |- + import Foundation + import Plexswift + + let client = Client(security: .accessToken("")) + + let response = try await client.deleteLibrary( + request: Operations.DeleteLibraryRequest( + sectionId: 1000 ) ) @@ -905,20 +860,20 @@ actions: // Handle empty response break } - - target: $["paths"]["/library/metadata/{ratingKey}"]["get"] + - target: $["paths"]["/library/metadata/{ratingKey}/children"]["get"] update: x-codeSamples: - lang: swift - label: getMetadata + label: getMetadataChildren source: |- import Foundation import Plexswift let client = Client(security: .accessToken("")) - let response = try await client.getMetadata( - request: Operations.GetMetadataRequest( - ratingKey: 8382.31 + let response = try await client.getMetadataChildren( + request: Operations.GetMetadataChildrenRequest( + ratingKey: 1539.14 ) ) @@ -933,12 +888,111 @@ actions: // Handle empty response break } - - target: $["paths"]["/playlists/upload"]["post"] + - target: $["paths"]["/updater/apply"]["put"] update: x-codeSamples: - lang: swift - label: uploadPlaylist - source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.uploadPlaylist(\n request: Operations.UploadPlaylistRequest(\n force: .zero, \n path: \"/home/barkley/playlist.m3u\"\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" + label: applyUpdates + source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.applyUpdates(\n request: Operations.ApplyUpdatesRequest(\n skip: .one, \n tonight: .zero\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" + - target: $["paths"]["/log/networked"]["get"] + update: + x-codeSamples: + - lang: swift + label: enablePaperTrail + source: |- + import Foundation + import Plexswift + + let client = Client(security: .accessToken("")) + + let response = try await client.enablePaperTrail() + + switch response.data { + case .object(let object): + // Handle response + break + case .empty: + // Handle empty response + break + } + - target: $["paths"]["/security/token"]["get"] + update: + x-codeSamples: + - lang: swift + label: getTransientToken + source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.getTransientToken(\n request: Operations.GetTransientTokenRequest(\n scope: .all, \n type: .delegation\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" + - target: $["paths"]["/transcode/sessions"]["get"] + update: + x-codeSamples: + - lang: swift + label: getTranscodeSessions + source: |- + import Foundation + import Plexswift + + let client = Client(security: .accessToken("")) + + let response = try await client.getTranscodeSessions() + + switch response.data { + case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): + // Handle response + break + case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject): + // Handle response + break + case .empty: + // Handle empty response + break + } + - target: $["paths"]["/clients"]["get"] + update: + x-codeSamples: + - lang: swift + label: getAvailableClients + source: |- + import Foundation + import Plexswift + + let client = Client(security: .accessToken("")) + + let response = try await client.getAvailableClients() + + switch response.data { + case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): + // Handle response + break + case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject): + // Handle response + break + case .empty: + // Handle empty response + break + } + - target: $["paths"]["/library/recentlyAdded"]["get"] + update: + x-codeSamples: + - lang: swift + label: getRecentlyAdded + source: |- + import Foundation + import Plexswift + + let client = Client(security: .accessToken("")) + + let response = try await client.getRecentlyAdded() + + switch response.data { + case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): + // Handle response + break + case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject): + // Handle response + break + case .empty: + // Handle empty response + break + } - target: $["paths"]["/security/resources"]["get"] update: x-codeSamples: @@ -964,18 +1018,22 @@ actions: // Handle empty response break } - - target: $["paths"]["/log"]["post"] + - target: $["paths"]["/updater/check"]["put"] update: x-codeSamples: - lang: swift - label: logMultiLine + label: checkForUpdates source: |- import Foundation import Plexswift let client = Client(security: .accessToken("")) - let response = try await client.logMultiLine() + let response = try await client.checkForUpdates( + request: Operations.CheckForUpdatesRequest( + download: .one + ) + ) switch response.data { case .object(let object): @@ -985,67 +1043,3 @@ actions: // Handle empty response break } - - target: $["paths"]["/playlists/{playlistID}/items"]["get"] - update: - x-codeSamples: - - lang: swift - label: getPlaylistContents - source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.getPlaylistContents(\n request: Operations.GetPlaylistContentsRequest(\n playlistID: 5004.46, \n type: 9403.59\n )\n)\n\nswitch response.data {\ncase .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject):\n // Handle response\n break\ncase .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" - - target: $["paths"]["/hubs/sections/{sectionId}"]["get"] - update: - x-codeSamples: - - lang: swift - label: getLibraryHubs - source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.getLibraryHubs(\n request: Operations.GetLibraryHubsRequest(\n sectionId: 6728.76, \n count: 9010.22, \n onlyTransient: .zero\n )\n)\n\nswitch response.data {\ncase .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject):\n // Handle response\n break\ncase .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" - - target: $["paths"]["/library/hashes"]["get"] - update: - x-codeSamples: - - lang: swift - label: getFileHash - source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.getFileHash(\n request: Operations.GetFileHashRequest(\n url: \"file://C:\\Image.png&type=13\", \n type: 4462.17\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" - - target: $["paths"]["/playlists"]["post"] - update: - x-codeSamples: - - lang: swift - label: createPlaylist - source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.createPlaylist(\n request: Operations.CreatePlaylistRequest(\n smart: .one, \n title: \"\", \n type: .photo, \n uri: \"https://inborn-brochure.biz\", \n playQueueID: 3686.33\n )\n)\n\nswitch response.data {\ncase .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject):\n // Handle response\n break\ncase .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" - - target: $["paths"]["/playlists"]["get"] - update: - x-codeSamples: - - lang: swift - label: getPlaylists - source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.getPlaylists(\n request: Operations.GetPlaylistsRequest(\n playlistType: .audio, \n smart: .zero\n )\n)\n\nswitch response.data {\ncase .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject):\n // Handle response\n break\ncase .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}" - - target: $["paths"]["/playlists/{playlistID}"]["get"] - update: - x-codeSamples: - - lang: swift - label: getPlaylist - source: |- - import Foundation - import Plexswift - - let client = Client(security: .accessToken("")) - - let response = try await client.getPlaylist( - request: Operations.GetPlaylistRequest( - playlistID: 4109.48 - ) - ) - - switch response.data { - case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): - // Handle response - break - case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject): - // Handle response - break - case .empty: - // Handle empty response - break - } - - target: $["paths"]["/hubs/search/voice"]["get"] - update: - x-codeSamples: - - lang: swift - label: performVoiceSearch - source: "import Foundation\nimport Plexswift\n\nlet client = Client(security: .accessToken(\"\"))\n\nlet response = try await client.performVoiceSearch(\n request: Operations.PerformVoiceSearchRequest(\n query: \"dead+poop\", \n limit: 5, \n sectionId: 4094.8\n )\n)\n\nswitch response.data {\ncase .object(let object):\n // Handle response\n break\ncase .empty:\n // Handle empty response\n break\n}"